From unknown Sat Aug 16 21:21:50 2025 X-Loop: owner@emacsbugs.donarmstrong.com Subject: bug#4026: `characterp' undocumented optional arg 'ignore' Reply-To: MON KEY , 4026@debbugs.gnu.org Resent-From: MON KEY Original-Sender: stan@derbycityprints.com Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Mon, 03 Aug 2009 22:25:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-Emacs-PR-Message: report 4026 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by submit@emacsbugs.donarmstrong.com id=B.124933772814790 (code B ref -1); Mon, 03 Aug 2009 22:25:06 +0000 Received: (at submit) by emacsbugs.donarmstrong.com; 3 Aug 2009 22:15:28 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-0.8 required=4.0 tests=AWL,MURPHY_DRUGS_REL8 autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n73MFNiC014782 for ; Mon, 3 Aug 2009 15:15:24 -0700 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MY5oQ-0005IM-K7 for bug-gnu-emacs@gnu.org; Mon, 03 Aug 2009 18:15:22 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MY5oK-0004u4-PK for bug-gnu-emacs@gnu.org; Mon, 03 Aug 2009 18:15:21 -0400 Received: from [199.232.76.173] (port=37010 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MY5oK-0004t2-IZ for bug-gnu-emacs@gnu.org; Mon, 03 Aug 2009 18:15:16 -0400 Received: from mail-yw0-f189.google.com ([209.85.211.189]:54819) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MY5oJ-0005nf-H8 for bug-gnu-emacs@gnu.org; Mon, 03 Aug 2009 18:15:15 -0400 Received: by ywh27 with SMTP id 27so4390911ywh.26 for ; Mon, 03 Aug 2009 15:15:14 -0700 (PDT) MIME-Version: 1.0 Sender: stan@derbycityprints.com Received: by 10.151.83.1 with SMTP id k1mr6983084ybl.48.1249337714005; Mon, 03 Aug 2009 15:15:14 -0700 (PDT) Date: Mon, 3 Aug 2009 18:15:13 -0400 X-Google-Sender-Auth: d4f63ddab5500f9b Message-ID: From: MON KEY To: bug-gnu-emacs@gnu.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) `characterp' has undocumented optional arg 'ignore' This may be another one of the +/- 500 `bootstrapping documentation' arg bugs... If not, following is what I found: --- @Circa line 313 in "../src/character.c" doc: /* Return non-nil if OBJECT is a character. */) --- (describe-function 'characterp) ;;; docstring in *Help* "characterp is a built-in function in `character.c'. (characterp object &optional ignore) Return non-nil if object is a character." --- (info "(elisp)Character Codes)") @Circa line 313 of "../info/elisp-7" as from "./elisp.texi" of Emacs version 23.1.50 " -- Function: characterp charcode This returns `t' if CHARCODE is a valid character, and `nil' otherwise." ---- In GNU Emacs 23.1.50.1 (i386-mingw-nt5.1.2600) of 2009-06-30 on LENNART-69DE564 (patched) Windowing system distributor `Microsoft Corp.', version 5.1.2600 configured using `configure --with-gcc (3.4) --cflags -Ic:/g/include' From unknown Sat Aug 16 21:21:50 2025 X-Loop: owner@emacsbugs.donarmstrong.com Subject: bug#4026: `characterp' undocumented optional arg 'ignore' Reply-To: martin rudalics , 4026@debbugs.gnu.org Resent-From: martin rudalics Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Tue, 04 Aug 2009 16:50:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-Emacs-PR-Message: followup 4026 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by 4026-submit@emacsbugs.donarmstrong.com id=B4026.124940429626970 (code B ref 4026); Tue, 04 Aug 2009 16:50:05 +0000 Received: (at 4026) by emacsbugs.donarmstrong.com; 4 Aug 2009 16:44:56 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-3.8 required=4.0 tests=AWL,HAS_BUG_NUMBER, PHONENUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with SMTP id n74GimfW026963 for <4026@emacsbugs.donarmstrong.com>; Tue, 4 Aug 2009 09:44:50 -0700 Received: (qmail invoked by alias); 04 Aug 2009 16:44:41 -0000 Received: from 88-117-42-252.adsl.highway.telekom.at (EHLO [88.117.42.252]) [88.117.42.252] by mail.gmx.net (mp006) with SMTP; 04 Aug 2009 18:44:41 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX1+9aEMMbMK9xMAxtE/DzP2LeX69QnOhv9xWhdx1J2 qxUWtWaWldkULJ Message-ID: <4A786578.7080503@gmx.at> Date: Tue, 04 Aug 2009 18:44:40 +0200 From: martin rudalics User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 To: MON KEY , 4026@debbugs.gnu.org References: In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-FuHaFi: 0.5 > `characterp' has undocumented optional arg 'ignore' > > This may be another one of the +/- 500 `bootstrapping documentation' arg bugs... ... which are not really bugs. > If not, following is what I found: > > --- > @Circa line 313 in "../src/character.c" > > doc: /* Return non-nil if OBJECT is a character. */) > > --- > (describe-function 'characterp) > > ;;; docstring in *Help* > > "characterp is a built-in function in `character.c'. > > (characterp object &optional ignore) > > Return non-nil if object is a character." > > --- > (info "(elisp)Character Codes)") > > @Circa line 313 of "../info/elisp-7" as from "./elisp.texi" of Emacs > version 23.1.50 > > " -- Function: characterp charcode > This returns `t' if CHARCODE is a valid character, and `nil' > otherwise." In my code I run an extra check whether an argument is called IGNORE(D) and do _not_ flag an error in that case. A more comprehensive list of what my code currently considers a bug in the Elisp manual is given below. I'd appreciate if people could help me point out other false positives. martin buffers.texi:725:8 `inhibit-read-only' is an option commands.texi:130:9 `interactive' has mismatching optional or rest of arguments commands.texi:948:8 `global-disable-point-adjustment' is an option commands.texi:1201:6 Use @kbd for @code{M-f3} commands.texi:1453:6 Use @kbd for @code{M-double-mouse-2} commands.texi:3135:7 `recursive-edit' is a command compile.texi:637:15 `disassemble' lacks description of argument `indent' control.texi:757:7 `error' has mismatching optional or rest of arguments debugging.texi:431:7 `debug' is a command display.texi:126:8 `redisplay-dont-pause' is an option display.texi:132:8 `redisplay-preemption-period' is an option display.texi:178:8 `default-truncate-lines' is not an option display.texi:2289:7 `set-face-foreground' is a command display.texi:2290:8 `set-face-background' is a command display.texi:2296:7 `set-face-stipple' is a command display.texi:2301:7 `set-face-font' is a command display.texi:2318:7 `set-face-underline-p' is a command display.texi:2323:7 `set-face-inverse-video-p' is a command display.texi:2328:7 `invert-face' is a command display.texi:2365:7 `face-font' lacks description of argument `character' display.texi:2574:7 `make-face' is a command display.texi:2574:7 `make-face' lacks description of optional argument(s). display.texi:2599:7 `face-id' lacks description of optional argument(s). display.texi:2826:8 `font-list-limit' is an option display.texi:3159:8 `fringes-outside-margins' is an option display.texi:3165:8 `left-fringe-width' is an option display.texi:3171:8 `right-fringe-width' is an option display.texi:3261:8 `fringe-indicator-alist' is an option display.texi:3356:8 `fringe-cursor-alist' is an option display.texi:3608:8 `scroll-bar-width' is an option display.texi:3968:8 `left-margin-width' is an option display.texi:3973:8 `right-margin-width' is an option files.texi:2994:64 Use non-@code{nil} instead of non-nil files.texi:3029:8 `buffer-auto-save-file-format' is an option frames.texi:115:7 `make-frame' is a command frames.texi:1363:7 `select-frame' is a command frames.texi:1837:8 `void-text-area-pointer' is an option frames.texi:1876:15 `x-set-selection' is not a command functions.texi:517:9 `defun' lacks description of argument `body...' functions.texi:782:7 `ignore' is a command functions.texi:1199:7 `make-obsolete' is a command help.texi:494:7 `read-kbd-macro' is a command help.texi:607:7 `describe-prefix-bindings' is a command keymaps.texi:1267:6 Use @kbd for @code{C-H-left} keymaps.texi:2706:8 `auto-resize-tool-bars' is an option keymaps.texi:2719:8 `auto-raise-tool-bar-buttons' is an option keymaps.texi:2724:8 `tool-bar-button-margin' is an option keymaps.texi:2729:8 `tool-bar-button-relief' is an option keymaps.texi:2734:8 `tool-bar-border' is an option macros.texi:205:9 `defmacro' lacks description of argument `[decl]' maps.texi:80:19 Use @key for @kbd{ESC} minibuf.texi:503:8 `history-add-new-input' is an option minibuf.texi:1325:11 Use non-@code{nil} instead of non-nil minibuf.texi:1395:41 Use @kbd for @code{M-x set-visited-file-name} modes.texi:716:15 `describe-mode' lacks description of optional argument(s). modes.texi:740:8 `define-derived-mode' has mismatching optional or rest of arguments modes.texi:1398:8 `define-minor-mode' has mismatching optional or rest of arguments modes.texi:2166:7 `imenu-add-to-menubar' is a command modes.texi:2679:8 `font-lock-keywords-case-fold-search' is an option modes.texi:2766:8 `font-lock-mark-block-function' is an option modes.texi:2969:8 `font-lock-keywords-only' is an option modes.texi:2983:8 `font-lock-beginning-of-syntax-function' is an option nonascii.texi:107:8 `default-enable-multibyte-characters' is an option nonascii.texi:617:7 `decode-char' lacks description of optional argument(s). nonascii.texi:628:7 `encode-char' lacks description of optional argument(s). nonascii.texi:985:8 `file-name-coding-system' is an option nonascii.texi:1138:41 Use @key for @code{ESC} nonascii.texi:1780:8 `default-buffer-file-type' is not an option nonascii.texi:1818:15 `set-input-method' lacks description of optional argument(s). os.texi:861:15 `setenv' lacks description of argument `substitute-env-vars' os.texi:1661:8 `timer-max-repeats' is an option os.texi:2044:7 `play-sound-file' is a command processes.texi:98:8 `exec-suffixes' is an option processes.texi:600:7 `start-file-process-shell-command' has mismatching optional or rest of arguments processes.texi:1039:54 Use @key for @code{DEL} processes.texi:1076:7 `signal-process' is a command streams.texi:802:8 `print-circle' is an option streams.texi:814:8 `print-continuous-numbering' is an option text.texi:1724:7 `fill-context-prefix' lacks description of optional argument(s). text.texi:3489:61 Use @key for @kbd{RET} text.texi:4028:15 `base64-encode-string' is not a command text.texi:4040:7 `base64-decode-region' is a command variables.texi:432:9 `defvar' has mismatching optional or rest of arguments variables.texi:1752:7 `dir-locals-set-directory-class' lacks description of optional argument(s). variables.texi:1835:7 `make-obsolete-variable' is a command windows.texi:1788:8 `auto-window-vscroll' is an option windows.texi:2219:8 `window-size-fixed' is an option From unknown Sat Aug 16 21:21:50 2025 X-Loop: owner@emacsbugs.donarmstrong.com Subject: bug#4026: `characterp' undocumented optional arg 'ignore' Reply-To: MON KEY , 4026@debbugs.gnu.org Resent-From: MON KEY Original-Sender: stan@derbycityprints.com Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Tue, 04 Aug 2009 17:00:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-Emacs-PR-Message: followup 4026 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by 4026-submit@emacsbugs.donarmstrong.com id=B4026.124940472727774 (code B ref 4026); Tue, 04 Aug 2009 17:00:04 +0000 Received: (at 4026) by emacsbugs.donarmstrong.com; 4 Aug 2009 16:52:07 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-2.1 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from mail-gx0-f224.google.com (mail-gx0-f224.google.com [209.85.217.224]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n74Gq3k8027769 for <4026@emacsbugs.donarmstrong.com>; Tue, 4 Aug 2009 09:52:04 -0700 Received: by gxk24 with SMTP id 24so6947432gxk.1 for <4026@emacsbugs.donarmstrong.com>; Tue, 04 Aug 2009 09:51:57 -0700 (PDT) MIME-Version: 1.0 Sender: stan@derbycityprints.com Received: by 10.150.199.12 with SMTP id w12mr12205889ybf.300.1249404717842; Tue, 04 Aug 2009 09:51:57 -0700 (PDT) In-Reply-To: <4A786578.7080503@gmx.at> References: <4A786578.7080503@gmx.at> Date: Tue, 4 Aug 2009 12:51:57 -0400 X-Google-Sender-Auth: afa7dabec5578e5d Message-ID: From: MON KEY To: martin rudalics Cc: 4026@debbugs.gnu.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Tue, Aug 4, 2009 at 12:44 PM, martin rudalics wrote: This may be another one of the +/- 500 `bootstrapping documentation' arg >> bugs... > > ... which are not really bugs. Well they certainly aren't features! :) > below. I'd appreciate if people could help me point out other false > positives. How would you like these to be formatted/pointed out. What is most useful for you/your code? What are your criterion for 'false positives'? > martin s_P From unknown Sat Aug 16 21:21:50 2025 X-Loop: owner@emacsbugs.donarmstrong.com Subject: bug#4026: `characterp' undocumented optional arg 'ignore' Reply-To: martin rudalics , 4026@debbugs.gnu.org Resent-From: martin rudalics Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Tue, 04 Aug 2009 17:40:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-Emacs-PR-Message: followup 4026 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by 4026-submit@emacsbugs.donarmstrong.com id=B4026.124940710331861 (code B ref 4026); Tue, 04 Aug 2009 17:40:04 +0000 Received: (at 4026) by emacsbugs.donarmstrong.com; 4 Aug 2009 17:31:43 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-4.5 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with SMTP id n74HVbMx031850 for <4026@emacsbugs.donarmstrong.com>; Tue, 4 Aug 2009 10:31:39 -0700 Received: (qmail invoked by alias); 04 Aug 2009 17:31:31 -0000 Received: from 88-117-42-252.adsl.highway.telekom.at (EHLO [88.117.42.252]) [88.117.42.252] by mail.gmx.net (mp009) with SMTP; 04 Aug 2009 19:31:31 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX1/ntNY3Lh3nKHcjBBGMxqH3RI94Fp3O9mfG04gqjB XeUk3xns9ZnrpM Message-ID: <4A78706C.1060601@gmx.at> Date: Tue, 04 Aug 2009 19:31:24 +0200 From: martin rudalics User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 To: MON KEY CC: 4026@debbugs.gnu.org References: <4A786578.7080503@gmx.at> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-FuHaFi: 0.74 >> below. I'd appreciate if people could help me point out other false >> positives. > > How would you like these to be formatted/pointed out. > What is most useful for you/your code? People would have to look at the functions/variables they are familar with and check whether my code flags the error correctly. If it does, the manual (or the definition) should be corrected. If it is flagged incorrectly, a simple note why it is correct should be sufficent for me to change my code appropriately. Obviously, anyone seriously interested should run my code because it can automatically display (in separate windows) the corresponding texinfo lines and the Elisp source. > What are your criterion for 'false positives'? Social feedback - and this goes for false negatives as well ;-) martin, who'd like that list get empty before the next release From unknown Sat Aug 16 21:21:50 2025 X-Loop: owner@emacsbugs.donarmstrong.com Subject: bug#4026: `characterp' undocumented optional arg 'ignore' Reply-To: MON KEY , 4026@debbugs.gnu.org Resent-From: MON KEY Original-Sender: stan@derbycityprints.com Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Tue, 04 Aug 2009 20:55:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-Emacs-PR-Message: followup 4026 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by 4026-submit@emacsbugs.donarmstrong.com id=B4026.124941890617389 (code B ref 4026); Tue, 04 Aug 2009 20:55:05 +0000 Received: (at 4026) by emacsbugs.donarmstrong.com; 4 Aug 2009 20:48:26 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-2.3 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from mail-gx0-f224.google.com (mail-gx0-f224.google.com [209.85.217.224]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n74KmKiv017384 for <4026@emacsbugs.donarmstrong.com>; Tue, 4 Aug 2009 13:48:22 -0700 Received: by gxk24 with SMTP id 24so7171823gxk.1 for <4026@emacsbugs.donarmstrong.com>; Tue, 04 Aug 2009 13:48:15 -0700 (PDT) MIME-Version: 1.0 Sender: stan@derbycityprints.com Received: by 10.151.141.16 with SMTP id t16mr13841849ybn.266.1249418895225; Tue, 04 Aug 2009 13:48:15 -0700 (PDT) In-Reply-To: <4A78706C.1060601@gmx.at> References: <4A786578.7080503@gmx.at> <4A78706C.1060601@gmx.at> Date: Tue, 4 Aug 2009 16:48:15 -0400 X-Google-Sender-Auth: 93af9ae61371f93c Message-ID: From: MON KEY To: martin rudalics Cc: 4026@debbugs.gnu.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On Tue, Aug 4, 2009 at 1:31 PM, martin rudalics wrote: > Obviously, anyone seriously interested should run my code because it can > automatically display (in separate windows) the corresponding texinfo > lines and the Elisp source. > Sorry in advance for being so dense, but what/where specifically is this code? s_P From unknown Sat Aug 16 21:21:50 2025 X-Loop: owner@emacsbugs.donarmstrong.com Subject: bug#4026: `characterp' undocumented optional arg 'ignore' Reply-To: martin rudalics , 4026@debbugs.gnu.org Resent-From: martin rudalics Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Wed, 05 Aug 2009 14:35:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-Emacs-PR-Message: followup 4026 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by 4026-submit@emacsbugs.donarmstrong.com id=B4026.124948264717269 (code B ref 4026); Wed, 05 Aug 2009 14:35:05 +0000 Received: (at 4026) by emacsbugs.donarmstrong.com; 5 Aug 2009 14:30:47 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-4.0 required=4.0 tests=AWL,HAS_BUG_NUMBER,MIXEDBDN autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with SMTP id n75EUdtF017254 for <4026@emacsbugs.donarmstrong.com>; Wed, 5 Aug 2009 07:30:41 -0700 Received: (qmail invoked by alias); 05 Aug 2009 14:30:30 -0000 Received: from 62-47-55-223.adsl.highway.telekom.at (EHLO [62.47.55.223]) [62.47.55.223] by mail.gmx.net (mp003) with SMTP; 05 Aug 2009 16:30:30 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX1+wtk4ZnbGwlnBHWNXnouXrAIrsfJAz5U6GcD9tOU 2Sr2kkix66Pbs1 Message-ID: <4A798DF1.50402@gmx.at> Date: Wed, 05 Aug 2009 15:49:37 +0200 From: martin rudalics User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 To: MON KEY CC: 4026@debbugs.gnu.org References: <4A786578.7080503@gmx.at> <4A78706C.1060601@gmx.at> In-Reply-To: Content-Type: multipart/mixed; boundary="------------090705060708070109070606" X-Y-GMX-Trusted: 0 X-FuHaFi: 0.74 This is a multi-part message in MIME format. --------------090705060708070109070606 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit > Sorry in advance for being so dense, but what/where specifically is this code? It's code on my machine; see the attached copy. Your entry point is `elinfo-check-directory'. If you set `elinfo-log-warnings' to a non-nil value, you should be also able to see some 600 "bugs" where the argument names differ in code and manual. So I hope to convince you that fixing all these is hardly fesible ;-) martin --------------090705060708070109070606 Content-Type: application/emacs-lisp; name="elinfo.el" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="elinfo.el" Ozs7IGVsaW5mby5lbCAtLS0gRWxpc3AgSW5mbyBhbmQgVGV4aW5mbyBzdXBwb3J0IHJvdXRp bmVzCgo7OyBDb3B5cmlnaHQgKEMpIDIwMDkgTWFydGluIFJ1ZGFsaWNzCgo7OyBUaW1lLXN0 YW1wOiAiMjAwOS0wOC0wNSAxMToyNTozOSBtYXJ0aW4iCjs7IEF1dGhvcjogTWFydGluIFJ1 ZGFsaWNzIDxydWRhbGljc0BnbXguYXQ+Cgo7OyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo7OyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQo7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lv biAzIG9mIHRoZSBMaWNlbnNlLCBvcgo7OyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgoKOzsgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCjs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCjs7IE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKOzsgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCjs7IFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Cjs7IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgoKOzs7IENvbW1lbnRhcnk6Cgo7OyBUaGlzIGZpbGUgcHJv dmlkZXMgZnVuY3Rpb25zIGZvciBjaGVja2luZyB0aGUgdmFsaWRpdHkgb2YgRW1hY3MnIElu Zm8KOzsgZmlsZXMsIG5hdmlnYXRpbmcgYmV0d2VlbiBFbWFjcycgSW5mbyBmaWxlcyBhbmQg Y29ycmVzcG9uZGluZyBUZXhpbmZvCjs7IGJ1ZmZlcnMsIGFuZCBmb3IgY3JlYXRpbmcgVGV4 aW5mbyBlbnRyaWVzIGZyb20gZG9jdW1lbnRhdGlvbiBzdHJpbmdzLgoKKHJlcXVpcmUgJ2lu Zm8pCihyZXF1aXJlICd0ZXhpbmZvKQoKKGRlZmdyb3VwIGVsaW5mbyBuaWwKICAiRWxpbmZv LiIKICA6dmVyc2lvbiAiMjMuMiIKICA6Z3JvdXAgJ2xpc3ApCgo7OyBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo7OyAJCQkJCQkJCQkJCjs7OwkJCSAgVXRpbGl0eSBGdW5jdGlvbnMJCQkJ CQo7OyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo7OyAJCQkJCQkJCQkJCgo7OyBNb3ZlIHRv IGFuZCByZXR1cm4gc3RhcnQgb2YgZmlyc3Qgbm9uLXdoaXRlc3BhY2UgY2hhciBhZnRlciBg cG9pbnQnLgooZGVmdW4gZWxpbmZvLS1tb3ZlLXRvLW5leHQgKCkKICAoZm9yd2FyZC1jb21t ZW50IChidWZmZXItc2l6ZSkpCiAgKHBvaW50KSkKCjs7IE1vdmUgdG8gZW5kIG9mIGFuZCBy ZXR1cm4gbmV4dCBuYW1lLgooZGVmdW4gZWxpbmZvLS1nZXQtbmV4dCAoKQogIChsZXQgKChm cm9tIChlbGluZm8tLW1vdmUtdG8tbmV4dCkpKQogICAgKHNraXAtY2hhcnMtZm9yd2FyZCAi XiBcdFxuIikKICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgZnJvbSAocG9p bnQpKSkpCgo7OyBMaWtlIGBlbGluZm8tLWdldC1uZXh0JyBidXQgZG9uJ3QgbGVhdmUgY3Vy cmVudCBsaW5lLgooZGVmdW4gZWxpbmZvLS1nZXQtbmV4dC1hcmcgKCkKICAoc2F2ZS1yZXN0 cmljdGlvbgogICAgKG5hcnJvdy10by1yZWdpb24gKHBvaW50KSAobGluZS1lbmQtcG9zaXRp b24pKQogICAgKGVsaW5mby0tZ2V0LW5leHQpKSkKCjs7IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCjs7IAkJCQkJCQkJCQkKOzs7CQkgIENoZWNraW5nIGFuZCBFbGluZm8gTG9nIFV0aWxp dGllcwkJCQkKOzsgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KOzsgCQkJCQkJCQkJCQoKKGRl ZmN1c3RvbSBlbGluZm8tbG9nLXdhcm5pbmdzIG5pbAogICJOb24tbmlsIG1lYW5zIGxvZyB3 YXJuaW5ncyBpbiBFbGluZm8gTG9nIGJ1ZmZlci4iCiAgOmdyb3VwICdlbGluZm8KICA6dHlw ZSAnYm9vbGVhbgogIDp2ZXJzaW9uICIyMy4yIikKCihkZWZjdXN0b20gZWxpbmZvLXNob3ct ZGVmaW5pdGlvbiB0CiAgIk5vbi1uaWwgbWVhbnMgc2hvdyBkZWZpbml0aW9ucyB3aGVuIGJy b3dzaW5nIEVsaW5mbyBMb2dzLiIKICA6Z3JvdXAgJ2VsaW5mbwogIDp0eXBlICdib29sZWFu CiAgOnZlcnNpb24gIjIzLjIiKQoKKGRlZmN1c3RvbSBlbGluZm8tYmFsYW5jZS13aW5kb3dz IHQKICAiTm9uLW5pbCBtZWFucyBiYWxhbmNlIHdpbmRvd3Mgd2hlbiBicm93c2luZyBFbGlu Zm8gTG9ncy4iCiAgOmdyb3VwICdlbGluZm8KICA6dHlwZSAnYm9vbGVhbgogIDp2ZXJzaW9u ICIyMy4yIikKCihkZWZjdXN0b20gZWxpbmZvLXJldXNlLXdpbmRvd3MgdAogICJOb24tbmls IG1lYW5zIHJldXNlIHdpbmRvd3Mgd2hlbiBicm93c2luZyBFbGluZm8gTG9ncy4iCiAgOmdy b3VwICdlbGluZm8KICA6dHlwZSAnYm9vbGVhbgogIDp2ZXJzaW9uICIyMy4yIikKCihkZWZj dXN0b20gZWxpbmZvLWxvZy1sb2NhdGlvbi1mYWNlICd1bmRlcmxpbmUKICAiRmFjZSBuYW1l IGZvciBoaWdobGlnaHRpbmcgbG9jYXRpb25zIGluIEVsaW5mbyBMb2dzLiIKICA6Z3JvdXAg J2VsaW5mbwogIDp0eXBlICdmYWNlCiAgOnZlcnNpb24gIjIzLjIiKQoKKGRlZmN1c3RvbSBl bGluZm8tbG9nLWRlZi1mYWNlIGZvbnQtbG9jay1jb25zdGFudC1mYWNlCiAgIkZhY2UgbmFt ZSBmb3IgaGlnaGxpZ2h0aW5nIHRoaW5ncyBpbiBFbGluZm8gTG9ncy4iCiAgOmdyb3VwICdl bGluZm8KICA6dHlwZSAnZmFjZQogIDp2ZXJzaW9uICIyMy4yIikKCjs7IFdpbmRvdyBuYXZp Z2F0aW9uLgooZGVmdmFyIGVsaW5mby1zb3VyY2Utd2luZG93IG5pbAogICJUaGUgd2luZG93 IHdoZXJlIHRoZSBUZXhpbmZvIHNvdXJjZSBidWZmZXIgd2FzIGRpc3BsYXllZC4iKQooZGVm dmFyIGVsaW5mby1kZWYtd2luZG93IG5pbAogICJUaGUgd2luZG93IHdoZXJlIHRoZSBkZWZp bml0aW9uIG9mIHNvbWUgc3ltYm9sIHdhcyBkaXNwbGF5ZWQuIikKCihkZWZ1biBlbGluZm8t c2hvdy1kZWZpbml0aW9uIChzeW1ib2wgJm9wdGlvbmFsIHR5cGUpCiAgIlNob3cgZGVmaW5p dGlvbiBvZiBTWU1CT0wgaW4gYSBzdWl0YWJsZSB3aW5kb3cuCkZvciBjb21wYXRpYmlsaXR5 IHdpdGggYGZpbmQtZGVmaW5pdGlvbi1ub3NlbGVjdCcgVFlQRSBtdXN0IGJlCm9taXR0ZWQg b3IgbmlsIGZvciBmdW5jdGlvbnMgYW5kIGBkZWZ2YXInIGZvciB2YXJpYWJsZXMuIgogIDs7 IGBmaW5kLWRlZmluaXRpb24tbm9zZWxlY3QnIGlzIGF1dG9sb2FkZWQgaW4gZmluZC1mdW5j LmVsIGFuZCBzaG91bGQKICA7OyByZXR1cm4gYSBjb25zIHdob3NlIGNhciBpcyB0aGUgYnVm ZmVyIGNvbnRhaW5pbmcgdGhlIGRlZmluaXRpb24KICA7OyB3aGlsZSBpdHMgY2RyIGNvbnRh aW5zIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIGJ1ZmZlci4KICAobGV0ICgoYnVmZmVyLXBv c2l0aW9uLXBhaXIgKHNhdmUtZXhjdXJzaW9uCgkJCQkoZmluZC1kZWZpbml0aW9uLW5vc2Vs ZWN0IHN5bWJvbCB0eXBlKSkpKQogICAgKHdoZW4gYnVmZmVyLXBvc2l0aW9uLXBhaXIKICAg ICAgKGxldCAoKGJ1ZmZlciAoY2FyIGJ1ZmZlci1wb3NpdGlvbi1wYWlyKSkKCSAgICAocG9z aXRpb24gKGNkciBidWZmZXItcG9zaXRpb24tcGFpcikpKQoJKGlmIChhbmQgZWxpbmZvLXJl dXNlLXdpbmRvd3MgKHdpbmRvdy1saXZlLXAgZWxpbmZvLWRlZi13aW5kb3cpKQoJICAgIChz ZXQtd2luZG93LWJ1ZmZlciBlbGluZm8tZGVmLXdpbmRvdyBidWZmZXIpCgkgIChzZXRxIGVs aW5mby1kZWYtd2luZG93IChkaXNwbGF5LWJ1ZmZlciBidWZmZXIpKSkKCTs7IFJlY29yZCB3 aW5kb3cvYnVmZmVyIHJlbGF0aW9uc2hpcC4KCShzZXQtd2luZG93LXBvaW50IGVsaW5mby1k ZWYtd2luZG93IHBvc2l0aW9uKQoJKHdpdGgtc2VsZWN0ZWQtd2luZG93IGVsaW5mby1kZWYt d2luZG93CgkgIDs7IFB1dCB0aGUgZGVmaW5pdGlvbiBhdCB0aGUgdG9wIG9mIHRoZSB3aW5k b3cuCgkgIChyZWNlbnRlciAxKSkpKSkpCgooZGVmdW4gZWxpbmZvLXNob3ctc291cmNlICgm b3B0aW9uYWwgbG9nLXBvcykKICAiU2hvdyBUZXhpbmZvIHNvdXJjZSBjb3JyZXNwb25kaW5n IHRvIEVsaW5mbyBMb2cgZW50cnkgYXQgTE9HLVBPUy4KTE9HLVBPUyBuaWwgb3Igb21pdHRl ZCBtZWFucyBjb25zaWRlciB0aGUgZW50cnkgbG9jYXRlZCBhdApgcG9pbnQnLgoKVGhpcyBm dW5jdGlvbiBtYXkgYWxzbyBkaXNwbGF5IGEgY29ycmVzcG9uZGluZyBkZWZpbml0aW9uIGlu IGNhc2UKYGVsaW5mby1zaG93LWRlZmluaXRpb24nIGlzIG5vbi1uaWwgYW5kIGJhbGFuY2Ug dGhlIHJlc3BlY3RpdmUKd2luZG93cyBwcm92aWRlZCBgZWxpbmZvLWJhbGFuY2Utd2luZG93 cycgaXMgbm9uLW5pbC4iCiAgKHNhdmUtZXhjdXJzaW9uCiAgICAobGV0KiAoKGxvZy1wb3Mg KG9yIGxvZy1wb3MgKHBvaW50KSkpCgkgICAoZmlsZS1uYW1lIChnZXQtdGV4dC1wcm9wZXJ0 eSBsb2ctcG9zICdlbGluZm8tZmlsZS1uYW1lKSkKCSAgIChwb3NpdGlvbiAoZ2V0LXRleHQt cHJvcGVydHkgbG9nLXBvcyAnZWxpbmZvLXBvc2l0aW9uKSkKCSAgIChidWZmZXIgKGZpbmQt ZmlsZS1ub3NlbGVjdCBmaWxlLW5hbWUpKQoJICAgYmFsYW5jZSkKICAgICAgOzsgRGlzcGxh eSBUZXhpbmZvIHNvdXJjZS4KICAgICAgKGlmIChhbmQgZWxpbmZvLXJldXNlLXdpbmRvd3Mg KHdpbmRvdy1saXZlLXAgZWxpbmZvLXNvdXJjZS13aW5kb3cpKQoJICAoc2V0LXdpbmRvdy1i dWZmZXIgZWxpbmZvLXNvdXJjZS13aW5kb3cgYnVmZmVyKQoJKHNldHEgZWxpbmZvLXNvdXJj ZS13aW5kb3cgKGRpc3BsYXktYnVmZmVyIGJ1ZmZlcikpKQogICAgICA7OyBTZXQgd2luZG93 L2J1ZmZlciByZWxhdGlvbnNoaXAuCiAgICAgIChzZXQtd2luZG93LXBvaW50IGVsaW5mby1z b3VyY2Utd2luZG93IHBvc2l0aW9uKQogICAgICAod2l0aC1zZWxlY3RlZC13aW5kb3cgZWxp bmZvLXNvdXJjZS13aW5kb3cKCTs7IFdlIGNvdWxkIG1ha2UgdGhlICIxIiBjdXN0b21pemFi bGUuCgkocmVjZW50ZXIgMSkpCiAgICAgIDs7IERpc3BsYXkgZGVmaW5pdGlvbiBpZiBwb3Nz aWJsZS4KICAgICAgKGNvbmQKICAgICAgICgobm90IGVsaW5mby1zaG93LWRlZmluaXRpb24p KQogICAgICAgKChtZW1xIChnZXQtdGV4dC1wcm9wZXJ0eSBsb2ctcG9zICdlbGluZm8tdHlw ZSkKCSAgICAgICcoY29tbWFuZCBuby1jb21tYW5kIGFyZy1taXNtYXRjaCkpCgkoZWxpbmZv LXNob3ctZGVmaW5pdGlvbgoJIChpbnRlcm4gKGdldC10ZXh0LXByb3BlcnR5IGxvZy1wb3Mg J2VsaW5mby1uYW1lKSkpCgkoc2V0cSBiYWxhbmNlIHQpKQogICAgICAgKChtZW1xIChnZXQt dGV4dC1wcm9wZXJ0eSBsb2ctcG9zICdlbGluZm8tdHlwZSkKCSAgICAgICcob3B0aW9uIG5v LW9wdGlvbikpCgkoZWxpbmZvLXNob3ctZGVmaW5pdGlvbgoJIChpbnRlcm4gKGdldC10ZXh0 LXByb3BlcnR5IGxvZy1wb3MgJ2VsaW5mby1uYW1lKSkgJ2RlZnZhcikKCShzZXRxIGJhbGFu Y2UgdCkpKQogICAgICA7OyBCYWxhbmNlIHdpbmRvd3MgaWYgcG9zc2libGUuCiAgICAgICh3 aGVuIChhbmQgZWxpbmZvLWJhbGFuY2Utd2luZG93cyBiYWxhbmNlCgkJIChlcSAod2luZG93 LWZyYW1lIGVsaW5mby1zb3VyY2Utd2luZG93KQoJCSAgICAgKHdpbmRvdy1mcmFtZSBlbGlu Zm8tZGVmLXdpbmRvdykpKQoJOzsgYGJhbGFuY2Utd2luZG93cycgc2hvdWxkIGJhbGFuY2Ug c2libGluZ3Mgb2YgdGhlCgk7OyBzb3VyY2Utd2luZG93IG9ubHkuCgkoYmFsYW5jZS13aW5k b3dzIGVsaW5mby1zb3VyY2Utd2luZG93KSkpKSkKCjs7IFRoZSBuZXh0LS9wcmV2aW91cy1l cnJvciBmdW5jdGlvbnMgaGF2ZSBiZWVuIGNvcGllZCBmcm9tIGNvbXBpbGUuZWwKOzsgYW5k IHNsaWdodGx5IGFkYXB0ZWQgZm9yIG91ciBuZWVkcy4gIEZvciBVSSBhbmQga2V5YmluZGlu Z3Mgc3RpY2sgdG8KOzsgdGhvc2UgdXNlZCBieSBjb21waWxlIGFuZCByZWxhdGVkIG1vZGVz LiAgQWxzbyByZXRhaW4gdGhlIC1lcnJvcgo7OyBwb3N0Zml4IGZvciBhbGwgZW50cmllcyBh bmQgZG9uJ3QgbW9kaWZ5IHRoZSBkb2Mgc3RyaW5ncyB0byBtYWtlIHRoaXMKOzsgbG9vayBm YW1pbGlhci4KKGRlZnVuIGVsaW5mby1uZXh0LWVycm9yIChuICZvcHRpb25hbCBvdGhlci1m aWxlKQogICJTaG93IFRleGluZm8gc291cmNlIGZvciBuZXh0IGVudHJ5IGluIEVsaW5mbyBM b2cuClByZWZpeCBhcmcgTiBzYXlzIGhvdyBtYW55IGVudHJpZXMgdG8gbW92ZSBmb3J3YXJk cyBcKGJhY2t3YXJkcywKaWYgbmVnYXRpdmUpLgoKT3B0aW9uYWwgYXJnIE9USEVSLUZJTEUs IGlmIG5vbi1uaWwsIG1lYW5zIGZpbmQgZW50cnkgZm9yIGEgZmlsZQp0aGF0IGlzIGRpZmZl cmVudCBmcm9tIHRoZSBjdXJyZW50IG9uZS4gIEluIHRoYXQgY2FzZSwgTgpzcGVjaWZpZXMg dGhlIG51bWJlciBvZiBmaWxlcyB3aG9zZSBlbnRyaWVzIHNoYWxsIGJlIHNraXBwZWQuCgpU aGlzIGZ1bmN0aW9uIG1heSBhbHNvIGRpc3BsYXkgYSBjb3JyZXNwb25kaW5nIGRlZmluaXRp b24gaW4gY2FzZQpgZWxpbmZvLXNob3ctZGVmaW5pdGlvbicgaXMgbm9uLW5pbCBhbmQgYmFs YW5jZSB0aGUgcmVzcGVjdGl2ZQp3aW5kb3dzIHByb3ZpZGVkIGBlbGluZm8tYmFsYW5jZS13 aW5kb3dzJyBpcyBub24tbmlsLiIKICAoaW50ZXJhY3RpdmUgInAiKQogIChpZiBvdGhlci1m aWxlCiAgICAgIChsZXQgKChsYXN0LWZpbGUgKGdldC10ZXh0LXByb3BlcnR5IChwb2ludCkg J2VsaW5mby1maWxlLW5hbWUpKQoJICAgIChjdXJyZW50LWZpbGUgIiIpKQoJKGlmICg+IG4g MCkKCSAgICAod2hpbGUgKGFuZCAobm90IChlb2JwKSkKCQkJKHNldHEgY3VycmVudC1maWxl CgkJCSAgICAgIChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQpICdlbGluZm8tZmlsZS1uYW1l KSkKCQkJKG9yIChzdHJpbmctZXF1YWwgY3VycmVudC1maWxlIGxhc3QtZmlsZSkKCQkJICAg IChhbmQgKHNldHEgbGFzdC1maWxlIGN1cnJlbnQtZmlsZSkKCQkJCSAoPiAoc2V0cSBuICgx LSBuKSkgMCkpKSkKCSAgICAgIChmb3J3YXJkLWxpbmUpKQoJICAod2hpbGUgKGFuZCAobm90 IChib2JwKSkKCQkgICAgICAoc2V0cSBjdXJyZW50LWZpbGUKCQkJICAgIChnZXQtdGV4dC1w cm9wZXJ0eSAocG9pbnQpICdlbGluZm8tZmlsZS1uYW1lKSkKCQkgICAgICAob3IgKHN0cmlu Zy1lcXVhbCBjdXJyZW50LWZpbGUgbGFzdC1maWxlKQoJCQkgIChhbmQgKHNldHEgbGFzdC1m aWxlIGN1cnJlbnQtZmlsZSkKCQkJICAgICAgICg8IChzZXRxIG4gKDErIG4pKSAwKSkpKQoJ ICAgICAgKGZvcndhcmQtbGluZSAtMSkpKSkKICAgIChmb3J3YXJkLWxpbmUgbikpCgogIChl bGluZm8tc2hvdy1zb3VyY2UpKQoKKGRlZnVuIGVsaW5mby1uZXh0LWVycm9yLWZ1bmN0aW9u IChuICZvcHRpb25hbCByZXNldCkKICAiTW92ZSB0byBuZXh0IGVudHJ5IGluIEVsaW5mbyBM b2cgYW5kIHNob3cgY29ycmVzcG9uZGluZyBUZXhpbmZvIHNvdXJjZS4KT3B0aW9uYWwgYXJn dW1lbnQgUkVTRVQgbm9uLW5pbCBtZWFucyBnbyB0byBmaXJzdCBFbGluZm8gTG9nCmVudHJ5 LiAgU2VlIGFsc28gYGVsaW5mby1uZXh0LWVycm9yJy4KClRoaXMgZnVuY3Rpb24gcHJvdmlk ZXMgdGhlIHZhbHVlIG9mIGBuZXh0LWVycm9yLWZ1bmN0aW9uJyBpbgpFbGluZm8gTG9nIGJ1 ZmZlcnMuIgogIChpbnRlcmFjdGl2ZSAicCIpCiAgKHdoZW4gcmVzZXQgKGdvdG8tY2hhciAo cG9pbnQtbWluKSkpCiAgKGVsaW5mby1uZXh0LWVycm9yIG4pKQoKKGRlZnVuIGVsaW5mby1w cmV2aW91cy1lcnJvciAobikKICAiU2hvdyBUZXhpbmZvIHNvdXJjZSBjb3JyZXNwb25kaW5n IHRvIHByZXZpb3VzIGVudHJ5IGluIEVsaW5mbyBMb2cuClByZWZpeCBhcmcgTiBzYXlzIGhv dyBtYW55IGVudHJpZXMgdG8gbW92ZSBiYWNrd2FyZHMgXChmb3J3YXJkcywKaWYgbmVnYXRp dmUpLiAgU2VlIGFsc28gYGVsaW5mby1uZXh0LWVycm9yJy4iCiAgKGludGVyYWN0aXZlICJw IikKICAoZWxpbmZvLW5leHQtZXJyb3IgKC0gbikpKQoKKGRlZnVuIGVsaW5mby1uZXh0LWZp bGUgKG4pCiAgIlNob3cgVGV4aW5mbyBzb3VyY2Ugb2YgbmV4dCBFbGluZm8gTG9nIGVudHJ5 IG5hbWluZyBhbm90aGVyIGZpbGUuClByZWZpeCBhcmcgTiBzYXlzIGhvdyBtYW55IGZpbGVz IHRvIG1vdmUgZm9yd2FyZHMgXChvciBiYWNrd2FyZHMsCmlmIG5lZ2F0aXZlKS4gIFNlZSBh bHNvIGBlbGluZm8tbmV4dC1lcnJvcicuIgogIChpbnRlcmFjdGl2ZSAicCIpCiAgKGVsaW5m by1uZXh0LWVycm9yIG4gdCkpCgooZGVmdW4gZWxpbmZvLXByZXZpb3VzLWZpbGUgKG4pCiAg IlNob3cgVGV4aW5mbyBzb3VyY2Ugb2YgcHJldmlvdXMgRWxpbmZvIExvZyBlbnRyeSBuYW1p bmcgYW5vdGhlciBmaWxlLgpQcmVmaXggYXJnIE4gc2F5cyBob3cgbWFueSBmaWxlcyB0byBt b3ZlIGJhY2t3YXJkcyBcKG9yIGZvcndhcmRzLAppZiBuZWdhdGl2ZSkuICBTZWUgYWxzbyBg ZWxpbmZvLW5leHQtZXJyb3InLiIKICAoaW50ZXJhY3RpdmUgInAiKQogIChlbGluZm8tbmV4 dC1maWxlICgtIG4pKSkKCihkZWZ1biBlbGluZm8tZ290by1lcnJvciAoJm9wdGlvbmFsIGV2 ZW50KQogICJTaG93IFRleGluZm8gc291cmNlIGZvciBFbGluZm8gTG9nIGVudHJ5IGF0IGBw b2ludCcuClNlZSBhbHNvIGBlbGluZm8tbmV4dC1lcnJvcicuIgogIChpbnRlcmFjdGl2ZSAo bGlzdCBsYXN0LWlucHV0LWV2ZW50KSkKICAod2hlbiBldmVudCAocG9zbi1zZXQtcG9pbnQg KGV2ZW50LWVuZCBldmVudCkpKQogIChuZXh0LWVycm9yLWludGVybmFsKSkKCihkZWZ2YXIg ZWxpbmZvLWxvZy1tb2RlLW1hcAogIChsZXQgKChtYXAgKG1ha2Utc3BhcnNlLWtleW1hcCkp KQogICAgKGRlZmluZS1rZXkgbWFwIFttb3VzZS0yXSAnZWxpbmZvLWdvdG8tZXJyb3IpCiAg ICAoZGVmaW5lLWtleSBtYXAgW2ZvbGxvdy1saW5rXSAnbW91c2UtZmFjZSkKICAgIChkZWZp bmUta2V5IG1hcCAiXEMtY1xDLWMiICdlbGluZm8tZ290by1lcnJvcikKICAgIDs7IEVsaW5m byBnb3RvIGNvbXBhdGliaWxpdHkuCiAgICAoZGVmaW5lLWtleSBtYXAgIlxDLWNcQy1nIiAn ZWxpbmZvLWdvdG8tZXJyb3IpCiAgICAoZGVmaW5lLWtleSBtYXAgIlxDLW0iICdlbGluZm8t Z290by1lcnJvcikKICAgIChkZWZpbmUta2V5IG1hcCAiXE0tbiIgJ2VsaW5mby1uZXh0LWVy cm9yKQogICAgKGRlZmluZS1rZXkgbWFwICJcTS1wIiAnZWxpbmZvLXByZXZpb3VzLWVycm9y KQogICAgKGRlZmluZS1rZXkgbWFwICJcTS17IiAnZWxpbmZvLXByZXZpb3VzLWZpbGUpCiAg ICAoZGVmaW5lLWtleSBtYXAgIlxNLX0iICdlbGluZm8tbmV4dC1maWxlKQogICAgKGRlZmlu ZS1rZXkgbWFwICJcdCIgJ2VsaW5mby1uZXh0LWVycm9yKQogICAgKGRlZmluZS1rZXkgbWFw IFtiYWNrdGFiXSAnZWxpbmZvLXByZXZpb3VzLWVycm9yKQogICAgKGRlZmluZS1rZXkgbWFw ICJxIiAncXVpdC13aW5kb3cpCiAgICAoZGVmaW5lLWtleSBtYXAgIiAiICdzY3JvbGwtdXAp CiAgICAoZGVmaW5lLWtleSBtYXAgIlxePyIgJ3Njcm9sbC1kb3duKQogICAgKGRlZmluZS1r ZXkgbWFwICJcQy1jXEMtZiIgJ25leHQtZXJyb3ItZm9sbG93LW1pbm9yLW1vZGUpCiAgICBt YXApCiAgIktleW1hcCBmb3IgRWxpbmZvIExvZ3MuIikKCihkZWZ1biBlbGluZm8tbG9nLW1v ZGUgKCkKICAiTWFqb3IgbW9kZSBmb3IgYnJvd3NpbmcgRWxpbmZvIExvZ3MuClxce2VsaW5m by1sb2ctbW9kZS1tYXB9IgogIChpbnRlcmFjdGl2ZSkKICAoa2lsbC1hbGwtbG9jYWwtdmFy aWFibGVzKQogICh1c2UtbG9jYWwtbWFwIGVsaW5mby1sb2ctbW9kZS1tYXApCiAgKHNldHEg bWFqb3ItbW9kZSAnZWxpbmZvLWxvZy1tb2RlKQogIChzZXRxIG1vZGUtbmFtZSAiRWxpbmZv IikKICAoc2V0cSBuZXh0LWVycm9yLWZ1bmN0aW9uICdlbGluZm8tbmV4dC1lcnJvci1mdW5j dGlvbikKICAoc2V0cSBidWZmZXItcmVhZC1vbmx5IHQpKQoKKGRlZnZhciBlbGluZm8tbG9n LWJ1dHRvbi1tYXAKICAobGV0ICgobWFwIChtYWtlLXNwYXJzZS1rZXltYXApKSkKICAgIChk ZWZpbmUta2V5IG1hcCBbbW91c2UtMl0gJ2VsaW5mby1nb3RvLWVycm9yKQogICAgKGRlZmlu ZS1rZXkgbWFwIFtmb2xsb3ctbGlua10gJ21vdXNlLWZhY2UpCiAgICAoZGVmaW5lLWtleSBt YXAgIlxDLW0iICdlbGluZm8tZ290by1lcnJvcikKICAgIG1hcCkKICAiS2V5bWFwIGZvciBF bGluZm8gTG9nIGJ1dHRvbnMuIikKKGZzZXQgJ2VsaW5mby1sb2ctYnV0dG9uLW1hcCBlbGlu Zm8tbG9nLWJ1dHRvbi1tYXApCgo7OyBUd28gdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGdldHRp bmcgcHJvcGVydGllcyBvZiBmdW5jdGlvbnMgYW5kCjs7IHZhcmlhYmxlcy4gIFRoZXNlIGFy ZSB1c2VkIGZvciBjaGVja2luZyBwcm9wZXJ0aWVzIGRlc2NyaWJlZCBieQo7OyBUZXhpbmZv IHRleHQuCihkZWZ1biBlbGluZm8tLWZ1bi1wcm9wZXJ0aWVzIChmdW5jdGlvbikKICAiUmV0 dXJuIHByb3BlcnRpZXMgb2YgRlVOQ1RJT04uClJldHVybiB2YWx1ZSBpcyBhIGxpc3Qgb2Yg dGhyZWUgZWxlbWVudHM6IFRoZSBmaXJzdCBlbGVtZW50LCB3aGVuCm5vbi1uaWwsIHRlbGxz IHRoYXQgRlVOQ1RJT04gaXMgYSBjb21tYW5kLiAgVGhlIHNlY29uZCBlbGVtZW50LAp3aGVu IG5vbi1uaWwsIHNwZWNpZmllcyB0aGUgZnVuY3Rpb24gRlVOQ1RJT04gaXMgYWxpYXNlZCB0 by4gIFRoZQp0aGlyZCBlbGVtZW50IHNwZWNpZmllcyB0aGUgYXJndW1lbnQgbGlzdCBvZiBG VU5DVElPTiAoYW5kIGlzIHQKd2hlbiB0aGF0IGFyZ3VtZW50IGxpc3QgaXMgbm90IGF2YWls YWJsZSkuIgogIChsZXQgKGRlZiBjb21tYW5kIGFsaWFzIGFyZ2xpc3QgZG9jKQogICAgKHNl dHEgZGVmIChpZiAoc3ltYm9scCBmdW5jdGlvbikKCQkgIChzeW1ib2wtZnVuY3Rpb24gZnVu Y3Rpb24pCgkJZnVuY3Rpb24pKQogICAgKHNldHEgY29tbWFuZCAoY29tbWFuZHAgZGVmKSkK ICAgICh3aGVuIChzeW1ib2xwIGRlZikKICAgICAgKHdoaWxlIChhbmQgKGZib3VuZHAgZGVm KSAoc3ltYm9scCAoc3ltYm9sLWZ1bmN0aW9uIGRlZikpKQoJKHNldHEgZGVmIChpbmRpcmVj dC1mdW5jdGlvbiBkZWYpKSkKICAgICAgKHNldHEgYWxpYXMgZGVmKSkKICAgIChzZXRxIGFy Z2xpc3QKCSAgKGlmIChhbmQgKHNldHEgZG9jIChkb2N1bWVudGF0aW9uIGZ1bmN0aW9uKSkK CQkgICAoc3RyaW5nLW1hdGNoICJcblxuKGZuWyBcXSpcXCguKlxcKSlbIFx0XG5dKlxcJyIg ZG9jKSkKCSAgICAgIChtYXBjYXIgJ2Rvd25jYXNlIChzcGxpdC1zdHJpbmcgKG1hdGNoLXN0 cmluZyAxIGRvYykpKQoJICAgIDs7IEhhbmRsZSBzeW1ib2xzIGFsaWFzZWQgdG8gb3RoZXIg c3ltYm9scy4KCSAgICAod2hlbiAoYW5kIChzeW1ib2xwIGRlZikgKGZib3VuZHAgZGVmKSkK CSAgICAgIChzZXRxIGRlZiAoaW5kaXJlY3QtZnVuY3Rpb24gZGVmKSkpCgkgICAgOzsgSWYg ZGVmaW5pdGlvbiBpcyBhIG1hY3JvLCBmaW5kIHRoZSBmdW5jdGlvbiBpbnNpZGUgaXQuCgkg ICAgKHdoZW4gKGVxIChjYXItc2FmZSBkZWYpICdtYWNybykKCSAgICAgIChzZXRxIGRlZiAo Y2RyIGRlZikpKQoJICAgIChjb25kCgkgICAgICgoYnl0ZS1jb2RlLWZ1bmN0aW9uLXAgZGVm KSAoYXJlZiBkZWYgMCkpCgkgICAgICgoZXEgKGNhci1zYWZlIGRlZikgJ2xhbWJkYSkgKG50 aCAxIGRlZikpCgkgICAgICh0IHQpKSkpCiAgICAobGlzdCBjb21tYW5kIGFsaWFzIChpZiAo bGlzdHAgYXJnbGlzdCkgYXJnbGlzdCB0KSkpKQoKKGRlZnVuIGVsaW5mby0taXMtb3B0aW9u ICh2YXJpYWJsZSkKICAiUmV0dXJuIHQgaWYgVkFSSUFCTEUgaXMgYW4gb3B0aW9uLiIKICAo bGV0KiAoKGZpbGUtbmFtZSAoZmluZC1saXNwLW9iamVjdC1maWxlLW5hbWUgdmFyaWFibGUg J2RlZnZhcikpCgkgKGFsaWFzIChjb25kaXRpb24tY2FzZSBuaWwKCQkgICAgKGluZGlyZWN0 LXZhcmlhYmxlIHZhcmlhYmxlKQoJCSAgKGVycm9yIHZhcmlhYmxlKSkpCgkgKGRvYwoJICAo Y29uZGl0aW9uLWNhc2UgbmlsCgkgICAgICAob3IgKGRvY3VtZW50YXRpb24tcHJvcGVydHkg dmFyaWFibGUgJ3ZhcmlhYmxlLWRvY3VtZW50YXRpb24pCgkJICAoZG9jdW1lbnRhdGlvbi1w cm9wZXJ0eSBhbGlhcyAndmFyaWFibGUtZG9jdW1lbnRhdGlvbikpCgkgICAgKGVycm9yIG5p bCkpKQoJIChvcHRpb24gKG9yIChjdXN0b20tdmFyaWFibGUtcCB2YXJpYWJsZSkKCQkgICAg IChhbmQgKHN0cmluZ3AgZG9jKQoJCQkgIChzdHJpbmctZXF1YWwKCQkJICAgIioiIChzdWJz dHJpbmctbm8tcHJvcGVydGllcyBkb2MgMCAxKSkpKSkpCiAgICBvcHRpb24pKQoKOzsgU29t ZSBjb3VudGVycy4KKGRlZnZhciBlbGluZm8tZmlsZXMtY291bnQgbmlsKQooZGVmdmFyIGVs aW5mby1lcnJvcnMtY291bnQgMCkKKGRlZnZhciBlbGluZm8td2FybmluZ3MtY291bnQgMCkK CihkZWZ1biBlbGluZm8tY2xlYXItbG9nICgpCiAgIkNsZWFyIEVsaW5mbyBMb2cgYnVmZmVy IGFuZCByZXNldCBlcnJvciBjb3VudHMuIgogIDs7IE1heWJlIHdlIHNob3VsZCBtYWtlIGNs ZWFyaW5nIGN1c3RvbWl6YWJsZS4KICAod2l0aC1jdXJyZW50LWJ1ZmZlciAoZ2V0LWJ1ZmZl ci1jcmVhdGUgIipFbGluZm8tTG9nKiIpCiAgICAobGV0ICgoaW5oaWJpdC1yZWFkLW9ubHkg dCkpCiAgICAgIChkZWxldGUtcmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgpKSkpCiAg OzsgV2UgY291bGQgaW5zZXJ0IHNvbWUgaGVhZGVyLCBidXQgd2hvJ2QgY2FyZSBhbnl3YXk/ CiAgKHNldHEgZWxpbmZvLWVycm9ycy1jb3VudCAwKQogIChzZXRxIGVsaW5mby13YXJuaW5n cy1jb3VudCAwKSkKCihkZWZ1biBlbGluZm8tZGlzcGxheS1sb2cgKCZvcHRpb25hbCBmaWxl LW5hbWUpCiAgIkRpc3BsYXkgRWxpbmZvIExvZy4KSWYgdGhlcmUgd2VyZSBubyBlcnJvcnMg anVzdCB3cml0ZSBhIG1lc3NhZ2UuICBPcHRpb25hbCBhcmd1bWVudApGSUxFLU5BTUUgbXVz dCBuYW1lIHRoZSBmaWxlIHdob3NlIGNvbnRlbnRzIHdlcmUgY2hlY2tlZC4iCiAgKGlmIChh bmQgKHplcm9wIGVsaW5mby1lcnJvcnMtY291bnQpICh6ZXJvcCBlbGluZm8td2FybmluZ3Mt Y291bnQpKQogICAgICAobGV0ICgodGV4dAoJICAgICAoY29uY2F0CgkgICAgICAiTm8gZXJy b3JzIGZvdW5kIgoJICAgICAgKGNvbmQKCSAgICAgICAoZmlsZS1uYW1lCgkJKGZvcm1hdCAi IGluIGZpbGUgJXMiIGZpbGUtbmFtZSkpCgkgICAgICAgKGVsaW5mby1maWxlcy1jb3VudAoJ CShmb3JtYXQgIiBpbiAlcyBjaGVja2VkIGZpbGUocykiIGVsaW5mby1maWxlcy1jb3VudCkp KSkpKQoJKG1lc3NhZ2UgdGV4dCkpCiAgICAobGV0KiAoKGJ1ZmZlciAoZ2V0LWJ1ZmZlciAi KkVsaW5mby1Mb2cqIikpCgkgICAod2luZG93ICh3aGVuIGJ1ZmZlcgoJCSAgICAgKGRpc3Bs YXktYnVmZmVyIGJ1ZmZlcikpKQoJICAgKHRleHQgKGNvbmNhdAoJCSAgKGZvcm1hdCAiJXMg ZXJyb3IocykiIGVsaW5mby1lcnJvcnMtY291bnQpCgkJICAod2hlbiBlbGluZm8tbG9nLXdh cm5pbmdzCgkJICAgIChmb3JtYXQgIiBhbmQgJXMgd2FybmluZyhzKSIgZWxpbmZvLXdhcm5p bmdzLWNvdW50KSkKCQkgIChjb25kCgkJICAgKGZpbGUtbmFtZQoJCSAgICAoZm9ybWF0ICIg aW4gZmlsZSAlcyIgZmlsZS1uYW1lKSkKCQkgICAoZWxpbmZvLWZpbGVzLWNvdW50CgkJICAg IChmb3JtYXQgIiBpbiAlcyBjaGVja2VkIGZpbGUocykiIGVsaW5mby1maWxlcy1jb3VudCkp KSkpKQogICAgICA7OyBXZSByZWFsbHkgc2hvdWxkIGhhdmUgYW4gb3B0aW9uIHdoaWNoIGxl dHMgdXNlcnMgc2VsZWN0CiAgICAgIDs7IExvZy9IZWxwIHdpbmRvd3MuCiAgICAgICh3aGVu IHdpbmRvdwoJKHNldC13aW5kb3ctcG9pbnQgd2luZG93IChwb2ludC1taW4pKSkKICAgICAg KG1lc3NhZ2UgdGV4dCkpKSkKCihkZWZ1biBlbGluZm8tbG9nLXN0cmluZyAodHlwZSBuYW1l IGZpbGUtbmFtZSBwb3NpdGlvbiBzdHJpbmcgJm9wdGlvbmFsIHdhcm5pbmcpCiAgIkxvZyBT VFJJTkcgaW4gRWxpbmZvIExvZyBidWZmZXIuClNUUklORyBpcyBwcm9wZXJ0aXplZCB3aXRo IFRZUEUgXCh0aGUgdHlwZSBvZiB0aGUgZXJyb3IpLCBOQU1FClwodXN1YWxseSB0aGUgbmFt ZSBvZiBzb21lIGZ1bmN0aW9uIG9yIHZhcmlhYmxlKSwgRklMRS1OQU1FIFwodGhlCm5hbWUg b2YgYSBmaWxlKSwgUE9TSVRJT04gXChhIHBvc2l0aW9uIHZhbGlkIGluIGEgYnVmZmVyIHZp c2l0aW5nCkZJTEUtTkFNRSkuICBPcHRpb25hbCBhcmd1bWVudCBXQVJOSU5HIG5vbi1uaWwg bWVhbnMgbm8gbG9nZ2luZwpvY2N1cnMgdW5sZXNzIGBlbGluZm8tbG9nLXdhcm5pbmdzJyBp cyBub24tbmlsLiIKICAod2hlbiAob3IgKG5vdCB3YXJuaW5nKSBlbGluZm8tbG9nLXdhcm5p bmdzKQogICAgKGlmIHdhcm5pbmcKCShzZXRxIGVsaW5mby13YXJuaW5ncy1jb3VudCAoMSsg ZWxpbmZvLXdhcm5pbmdzLWNvdW50KSkKICAgICAgKHNldHEgZWxpbmZvLWVycm9ycy1jb3Vu dCAoMSsgZWxpbmZvLWVycm9ycy1jb3VudCkpKQogICAgKGxldCAoKGxpbmUgKGNvdW50LWxp bmVzIChwb2ludC1taW4pIHBvc2l0aW9uKSkKCSAgKGNvbHVtbiAoc2F2ZS1leGN1cnNpb24K CQkgICAgKGdvdG8tY2hhciBwb3NpdGlvbikKCQkgICAgKGN1cnJlbnQtY29sdW1uKSkpKQog ICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAoZ2V0LWJ1ZmZlci1jcmVhdGUgIipFbGluZm8t TG9nKiIpCgkodW5sZXNzIChlcSBtYWpvci1tb2RlICdlbGluZm8tbG9nLW1vZGUpCgkgIChl bGluZm8tbG9nLW1vZGUpKQoJKGxldCAoKGluaGliaXQtcmVhZC1vbmx5IHQpCgkgICAgICBm cm9tIHRvKQoJICAoZ290by1jaGFyIChzZXRxIGZyb20gKHBvaW50LW1heCkpKQoJICAoaW5z ZXJ0CgkgICA7OyBQcm9wZXJ0aXplZCBpbmZvcm1hdGlvbi4KCSAgIChwcm9wZXJ0aXplCgkg ICAgKGNvbmNhdAoJICAgICAocHJvcGVydGl6ZQoJICAgICAgKGNvbmNhdAoJICAgICAgICh3 aGVuIGZpbGUtbmFtZQoJCSAoY29uY2F0IChmaWxlLW5hbWUtbm9uZGlyZWN0b3J5IGZpbGUt bmFtZSkgIjoiKSkKCSAgICAgICAoZm9ybWF0ICIlczolcyIgbGluZSBjb2x1bW4pKQoJICAg ICAgJ2ZhY2UgZWxpbmZvLWxvZy1sb2NhdGlvbi1mYWNlKQoJICAgICAiICIgc3RyaW5nKQoJ ICAgICdlbGluZm8tdHlwZSB0eXBlICdlbGluZm8tbmFtZSBuYW1lCgkgICAgJ2VsaW5mby1m aWxlLW5hbWUgZmlsZS1uYW1lICdlbGluZm8tcG9zaXRpb24gcG9zaXRpb24KCSAgICAnbW91 c2UtZmFjZSAnaGlnaGxpZ2h0ICdmb2xsb3ctbGluayAnZWxpbmZvLWZvbGxvdy1saW5rKQoJ ICAgOzsgU1RSSU5HIGl0c2VsZiBmb2xsb3dlZCBieSBhIG5ld2xpbmUuCgkgICAiXG4iKSkp KSkpCgooZGVmc3Vic3QgZWxpbmZvLS1zeW1ib2wtbmFtZSAoYXJnKQogICJJZiBBUkcgaXMg YSBzeW1ib2wgcmV0dXJuIGl0cyBuYW1lLCBlbHNlIHJldHVybiBBUkcuIgogIChpZiAoc3lt Ym9scCBhcmcpIChzeW1ib2wtbmFtZSBhcmcpIGFyZykpCgooZGVmdW4gZWxpbmZvLWNoZWNr IChmaWxlLW5hbWUpCiAgIkNoZWNrIGN1cnJlbnQgYnVmZmVyLgpGSUxFLU5BTUUgbXVzdCBz cGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBmaWxlIHdob3NlIGNvbnRlbnRzIGFyZSBpbgp0aGUg Y3VycmVudCBidWZmZXIuIgogIChpbnRlcmFjdGl2ZSkKICAoc2F2ZS1leGN1cnNpb24KICAg IChzYXZlLXJlc3RyaWN0aW9uCiAgICAgICh3aWRlbikKICAgICAgOzsgTWFrZSBzdXJlIGBj YXNlLWZvbGQtc2VhcmNoJyBpcyBuaWwgdG8gY2F0Y2ggdGhlICJDLSIgYW5kICJNLSIKICAg ICAgOzsgZW50cmllcyBvbmx5IGFuZCBub3QgdGhlIEMtbW9kZSAiYy0uLi4iIHN0dWZmLgog ICAgICAobGV0IChjYXNlLWZvbGQtc2VhcmNoCgkgICAgdGV4aS1uYW1lIHRleGktcGQtbmFt ZSB0ZXhpLWFyZy1uYW1lIHRleGktY29tbWFuZCB0ZXhpLW9wdGlvbgoJICAgIHBvc2l0aW9u IHByb3BlcnRpZXMgYXJnLWxpc3QgYXJnLW5hbWUgaXMtb3B0aW9uKQoJKGdvdG8tY2hhciAo cG9pbnQtbWluKSkKCTs7IFdlIHByb2JhYmx5IHdvbid0IGV2ZXIgYm90aGVyIHRvIG9wdGlt aXplIHRoZSByZWdleHAgYmVsb3cuCgkod2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkCgkJOzsg UkVHRVhQIE1ORU1OT05JQ1M6IDEuLmRlZnVuL2RlZmZuLCA0Li5kZWZ2YXIvZGVmb3B0LAoJ CTs7IDguLnRleHQgd2UgaWdub3JlLCA5Li5DLS9NLSBwcmVmaXhlZCBzdHJpbmcgaW4gQGNv ZGUsCgkJOzsgMTAuLlNQQy9SRVQvZXRjLiBpbiBAY29kZSwgMTEuLlNQQy9SRVQvZXRjLiBp biBAa2JkLAoJCTs7IDEzLi5ub24tbmlsLgoJCSJeQFxcKD86XFwoXFwoZGVmdW54P1xcfGRl Zm1hY1xcfGRlZnNwZWNcXClcXHxcXChkZWZmbiBDb21tYW5kXFwpXFwpXApcXHxcXChcXChk ZWZ2YXJ4P1xcKVxcfFxcKGRlZm9wdHg/XFwpXFwpXApcXHxcXChzbWFsbFxcKT9cXChleGFt cGxlXFx8bGlzcFxcfHZlcmJhdGltXFx8aWdub3JlXFwpXFwpXApcXHxAY29kZXtcXChbQ01d LVtefV0rXFwpXFx8QFxcKD86XFwoY29kZVxcKVwKXFx8XFwoa2JkXFwpXFwpe1xcKFNQQ1xc fFJFVFxcfExGRFxcfFRBQlxcfEJTXFx8RVNDXFx8REVMXFx8U0hJRlRcXHxDVFJMXFx8TUVU QVxcfEZbMC05XStcXCl9XApcXHxcXChub24tbmlsXFwpIiBuaWwgdCkKCSAgKGNvbmQKCSAg ICgobWF0Y2gtYmVnaW5uaW5nIDEpCgkgICAgKHNldHEgdGV4aS1jb21tYW5kIChtYXRjaC1i ZWdpbm5pbmcgMykpCgkgICAgKHNldHEgcG9zaXRpb24gKGVsaW5mby0tbW92ZS10by1uZXh0 KSkKCSAgICAoc2V0cSB0ZXhpLW5hbWUgKGVsaW5mby0tZ2V0LW5leHQpKQoJICAgIChzZXRx IHRleGktcGQtbmFtZSAocHJvcGVydGl6ZSB0ZXhpLW5hbWUgJ2ZhY2UgZWxpbmZvLWxvZy1k ZWYtZmFjZSkpCgkgICAgKGlmIChub3QgKGZib3VuZHAgKGludGVybiB0ZXhpLW5hbWUpKSkK CQkocHJvZ24KCQkgIChlbGluZm8tbG9nLXN0cmluZwoJCSAgICdmdW4tdW5ib3VuZCB0ZXhp LW5hbWUgZmlsZS1uYW1lIHBvc2l0aW9uCgkJICAgKGNvbmNhdCAiVW5ib3VuZCBmdW5jdGlv biBgIiB0ZXhpLXBkLW5hbWUgIiciKSB0KQoJCSAgKGZvcndhcmQtbGluZSkpCgkgICAgICAo c2V0cSBwcm9wZXJ0aWVzIChlbGluZm8tLWZ1bi1wcm9wZXJ0aWVzIChpbnRlcm4gdGV4aS1u YW1lKSkpCgkgICAgICAoaWYgKGFuZCAoZXEgKG50aCAxIHByb3BlcnRpZXMpICdpZ25vcmUp CgkJICAgICAgIChub3QgKHN0cmluZy1lcXVhbCB0ZXhpLW5hbWUgImlnbm9yZSIpKSkKCQkg IDs7IFdoZW4gdGhlIGZ1bmN0aW9uIGlzIHJlbWFwcGVkIHRvIGBpZ25vcmUnIHdlIGNhbid0 CgkJICA7OyBkbyBhbnl0aGluZyByZWFzb25hYmxlIG9uIHRoZSBjdXJyZW50IHBsYXRmb3Jt LgoJCSAgKHByb2duCgkJICAgIChlbGluZm8tbG9nLXN0cmluZwoJCSAgICAgJ3JlbWFwcGVk LXRvLWlnbm9yZSB0ZXhpLW5hbWUgZmlsZS1uYW1lIHBvc2l0aW9uCgkJICAgICAoY29uY2F0 ICJgIiB0ZXhpLXBkLW5hbWUgIicgcmVtYXBwZWQgdG8gYGlnbm9yZScgb24gdGhpcyBwbGF0 Zm9ybSIpIHQpCgkJICAgIChmb3J3YXJkLWxpbmUpKQoJCTs7IENoZWNrIGNvbW1hbmQgcHJv cGVydHkuCgkJKGNvbmQKCQkgKChhbmQgdGV4aS1jb21tYW5kIChub3QgKG50aCAwIHByb3Bl cnRpZXMpKSkKCQkgIChlbGluZm8tbG9nLXN0cmluZwoJCSAgICdjb21tYW5kIHRleGktbmFt ZSBmaWxlLW5hbWUgcG9zaXRpb24KCQkgICAoY29uY2F0ICJgIiB0ZXhpLXBkLW5hbWUgIicg aXMgbm90IGEgY29tbWFuZCIpKSkKCQkgKChhbmQgKG5vdCB0ZXhpLWNvbW1hbmQpIChudGgg MCBwcm9wZXJ0aWVzKSkKCQkgIChlbGluZm8tbG9nLXN0cmluZwoJCSAgICduby1jb21tYW5k IHRleGktbmFtZSBmaWxlLW5hbWUgcG9zaXRpb24KCQkgICAoY29uY2F0ICJgIiB0ZXhpLXBk LW5hbWUgIicgaXMgYSBjb21tYW5kIikpKSkKCQk7OyBDaGVjayBhcmd1bWVudHMuCgkJKHNl dHEgYXJnLWxpc3QgKG50aCAyIHByb3BlcnRpZXMpKQoJCShjb25kCgkJICgobm90IGFyZy1s aXN0KQoJCSAgKHVubGVzcyAoc3RyaW5nLWVxdWFsIChlbGluZm8tLWdldC1uZXh0LWFyZykg IiIpCgkJICAgIDs7IFRoZSBmdW5jdGlvbiBkb2Vzbid0IGhhdmUgYXJndW1lbnRzLgoJCSAg ICAoZWxpbmZvLWxvZy1zdHJpbmcKCQkgICAgICdhcmctbWlzbWF0Y2ggdGV4aS1uYW1lIGZp bGUtbmFtZSBwb3NpdGlvbgoJCSAgICAgKGNvbmNhdCAiYCIgdGV4aS1wZC1uYW1lICInIGhh cyBubyBhcmd1bWVudHMiKSkpKQoJCSAoKG5vdCAobGlzdHAgYXJnLWxpc3QpKQoJCSAgOzsg VXN1YWxseSB0aGlzIGlzIGFuICJBcmdsaXN0IG5vdCBhdmFpbGFibGUgLi4uIiBwcm9ibGVt LgoJCSAgKGVsaW5mby1sb2ctc3RyaW5nCgkJICAgJ2FyZy1ub3QtYXZhaWxhYmxlIHRleGkt bmFtZSBmaWxlLW5hbWUgcG9zaXRpb24KCQkgICAoY29uY2F0ICJBcmd1bWVudHMgb2YgYCIg dGV4aS1wZC1uYW1lICInIG5vdCBhdmFpbGFibGUiKSB0KSkKCQkgKHQKCQkgIChjYXRjaCAn YnVnCgkJICAgIChkb2xpc3QgKGFyZyBhcmctbGlzdCkKCQkgICAgICAoc2V0cSBhcmctbmFt ZSAoZWxpbmZvLS1zeW1ib2wtbmFtZSBhcmcpKQoJCSAgICAgIChzZXRxIHRleGktYXJnLW5h bWUgKGVsaW5mby0tZ2V0LW5leHQtYXJnKSkKCQkgICAgICAoY29uZAoJCSAgICAgICAoKHN0 cmluZy1lcXVhbCBhcmctbmFtZSB0ZXhpLWFyZy1uYW1lKSkgOyA6LSkKCQkgICAgICAgKChz dHJpbmctZXF1YWwgdGV4aS1hcmctbmFtZSAiIikKCQkJOzsgVGhlIGZ1bmN0aW9uIGhhcyBt b3JlIGFyZ3VtZW50cyB0aGFuIGRlc2NyaWJlZC4KCQkJKG9yIChhbmQgKHN0cmluZy1tYXRj aCAiJm9wdGlvbmFsXFx8JnJlc3QiIGFyZy1uYW1lKQoJCQkJIDs7IE1heWJlIHRoZSBtYW51 YWwganVzdCB3YW50cyB1cyB0bwoJCQkJIDs7IGlnbm9yZSB0aGUgYXJndW1lbnRzLgoJCQkJ IChsZXQgKChsYXN0LW5hbWUgKGNhciAobGFzdCBhcmctbGlzdCkpKSkKCQkJCSAgIChzdHJp bmctbWF0Y2gKCQkJCSAgICAiaWdub3JlZD8iIChlbGluZm8tLXN5bWJvbC1uYW1lIGxhc3Qt bmFtZSkpKSkKCQkJICAgIChlbGluZm8tbG9nLXN0cmluZwoJCQkgICAgICdhcmctbWlzbWF0 Y2ggdGV4aS1uYW1lIGZpbGUtbmFtZSBwb3NpdGlvbgoJCQkgICAgIChjb25jYXQKCQkJICAg ICAgImAiIHRleGktcGQtbmFtZSAiJyBsYWNrcyBkZXNjcmlwdGlvbiBvZiAiCgkJCSAgICAg IChjb25kCgkJCSAgICAgICAoKHN0cmluZy1lcXVhbCBhcmctbmFtZSAiJm9wdGlvbmFsIikK CQkJCSJvcHRpb25hbCBhcmd1bWVudChzKS4iKQoJCQkgICAgICAgKChzdHJpbmctZXF1YWwg YXJnLW5hbWUgIiVyZXN0IikKCQkJCSJyZXN0IG9mIGFyZ3VtZW50cy4iKQoJCQkgICAgICAg KHQgKGNvbmNhdCAiYXJndW1lbnQgYCIgYXJnLW5hbWUgIiciKSkpKSkpCgkJCSh0aHJvdyAn YnVnIHQpKQoJCSAgICAgICAoKG9yIChzdHJpbmctbWF0Y2ggIiZvcHRpb25hbFxcfCZyZXN0 IiBhcmctbmFtZSkKCQkJICAgIChzdHJpbmctbWF0Y2ggIiZvcHRpb25hbFxcfCZyZXN0IiB0 ZXhpLWFyZy1uYW1lKSkKCQkJKG9yIChhbmQgKHN0cmluZy1tYXRjaCAiJm9wdGlvbmFsXFx8 JnJlc3QiIHRleGktYXJnLW5hbWUpCgkJCQkgOzsgTWF5YmUgd2UgZG9uJ3Qgd2FudCB0byBr bm93IGFsbAoJCQkJIDs7IGFyZ3VtZW50cz8gIExldCdzIGdldCBoZXVyaXN0aWNhbAoJCQkJ IDs7IG9uY2UgbW9yZS4KCQkJCSAobGV0ICgobmV4dC1uYW1lIChlbGluZm8tLWdldC1uZXh0 LWFyZykpKQoJCQkJICAgKHN0cmluZy1tYXRjaAoJCQkJICAgICJlbGVtZW50c1xcfGFyZ3Vt ZW50c1xcfGFyZ3MiIG5leHQtbmFtZSAwKSkpCgkJCSAgICA7OyBUaGUgZm9sbG93aW5nIGlk aW9tIGlzIHBvcHVsYXIgd2l0aGluCgkJCSAgICA7OyBtYWNyb3MgYW5kIHNwZWNpYWwgZm9y bXMuCgkJCSAgICAoYW5kIChzdHJpbmctbWF0Y2ggIiZyZXN0IiBhcmctbmFtZSkKCQkJCSAo b3IgKHN0cmluZy1tYXRjaCAiQGRvdHN7fSQiIHRleGktYXJnLW5hbWUpCgkJCQkgICAgIChy ZS1zZWFyY2gtZm9yd2FyZAoJCQkJICAgICAgIkBkb3Rze30kIiAobGluZS1lbmQtcG9zaXRp b24pIHQpKSkKCQkJICAgIChlbGluZm8tbG9nLXN0cmluZwoJCQkgICAgICdhcmctbWlzbWF0 Y2ggdGV4aS1uYW1lIGZpbGUtbmFtZSBwb3NpdGlvbgoJCQkgICAgIChjb25jYXQKCQkJICAg ICAgImAiIHRleGktcGQtbmFtZQoJCQkgICAgICAiJyBoYXMgbWlzbWF0Y2hpbmcgb3B0aW9u YWwgb3IgcmVzdCBvZiBhcmd1bWVudHMiKSkpCgkJCSh0aHJvdyAnYnVnIHQpKQoJCSAgICAg ICAodAoJCQkoZWxpbmZvLWxvZy1zdHJpbmcKCQkJICdhcmctbWlzbWF0Y2ggdGV4aS1uYW1l IGZpbGUtbmFtZSBwb3NpdGlvbgoJCQkgKGNvbmNhdCAiJyIgdGV4aS1wZC1uYW1lICInIHVz ZXMgYCIgdGV4aS1hcmctbmFtZQoJCQkJICInIGZvciBhcmd1bWVudCBgIiBhcmctbmFtZSAi JyIpIHQpKQoJCSAgICAgICAodGhyb3cgJ2J1ZyB0KSkpKSkpKSkpCgkgICAoKG1hdGNoLWJl Z2lubmluZyA0KQoJICAgIChzZXRxIHRleGktb3B0aW9uIChtYXRjaC1iZWdpbm5pbmcgNikp CgkgICAgKHNldHEgcG9zaXRpb24gKGVsaW5mby0tbW92ZS10by1uZXh0KSkKCSAgICAoc2V0 cSB0ZXhpLW5hbWUgKGVsaW5mby0tZ2V0LW5leHQpKQoJICAgIChzZXRxIHRleGktcGQtbmFt ZSAocHJvcGVydGl6ZSB0ZXhpLW5hbWUgJ2ZhY2UgZWxpbmZvLWxvZy1kZWYtZmFjZSkpCgkg ICAgKGlmIChub3QgKGJvdW5kcCAoaW50ZXJuIHRleGktbmFtZSkpKQoJCShwcm9nbgoJCSAg KGVsaW5mby1sb2ctc3RyaW5nCgkJICAgJ3Zhci11bmJvdW5kIHRleGktbmFtZSBmaWxlLW5h bWUgcG9zaXRpb24KCQkgICAoY29uY2F0ICJVbmJvdW5kIHZhcmlhYmxlIGAiIHRleGktcGQt bmFtZSAiJyIpIHQpCgkJICAoZm9yd2FyZC1saW5lKSkKCSAgICAgIDs7IENoZWNrIG9wdGlv biBwcm9wZXJ0eS4KCSAgICAgIChzZXRxIGlzLW9wdGlvbiAoZWxpbmZvLS1pcy1vcHRpb24g KGludGVybiB0ZXhpLW5hbWUpKSkKCSAgICAgIChjb25kCgkgICAgICAgKChhbmQgdGV4aS1v cHRpb24gKG5vdCBpcy1vcHRpb24pKQoJCShlbGluZm8tbG9nLXN0cmluZwoJCSAnbm8tb3B0 aW9uIHRleGktbmFtZSBmaWxlLW5hbWUgcG9zaXRpb24KCQkgKGNvbmNhdCAiYCIgdGV4aS1w ZC1uYW1lICInIGlzIG5vdCBhbiBvcHRpb24iKSkpCgkgICAgICAgKChhbmQgKG5vdCB0ZXhp LW9wdGlvbikgaXMtb3B0aW9uKQoJCShlbGluZm8tbG9nLXN0cmluZwoJCSAnb3B0aW9uIHRl eGktbmFtZSBmaWxlLW5hbWUgcG9zaXRpb24KCQkgKGNvbmNhdCAiYCIgdGV4aS1wZC1uYW1l ICInIGlzIGFuIG9wdGlvbiIpKSkpKSkKCSAgICgobWF0Y2gtYmVnaW5uaW5nIDgpCgkgICAg KHNldHEgcG9zaXRpb24gKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkKCSAgICA7OyBBbiBl eGFtcGxlLXZlcmJhdGltLWxpc3AgZ3JvdXAsIHNraXAgaXQuCgkgICAgKHVubGVzcyAocmUt c2VhcmNoLWZvcndhcmQKCQkgICAgIChjb25jYXQgIl5AZW5kICIgKG1hdGNoLXN0cmluZy1u by1wcm9wZXJ0aWVzIDcpCgkJCSAgICAgKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDgp KSBuaWwgdCkKCSAgICAgIChlbGluZm8tbG9nLXN0cmluZwoJICAgICAgICduby1lbmQgbmls IGZpbGUtbmFtZSBwb3NpdGlvbgoJICAgICAgIChjb25jYXQgIlVudGVybWluYXRlZCAiICht YXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyA3KQoJCSAgICAgICAobWF0Y2gtc3RyaW5nLW5v LXByb3BlcnRpZXMgOCkpKSkpCgkgICAoKG1hdGNoLWJlZ2lubmluZyA5KQoJICAgIChlbGlu Zm8tbG9nLXN0cmluZwoJICAgICAnY29kZS1rYmQgbmlsIGZpbGUtbmFtZSAobWF0Y2gtYmVn aW5uaW5nIDkpCgkgICAgIChjb25jYXQgIlVzZSBAa2JkIGZvciBAY29kZXsiCgkJICAgICAo cmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCgkJICAgICAgIlxuIiAiICIgKG1hdGNoLXN0cmlu Zy1uby1wcm9wZXJ0aWVzIDkpKSAifSIpKSkKCSAgICgobWF0Y2gtYmVnaW5uaW5nIDEwKQoJ ICAgIChlbGluZm8tbG9nLXN0cmluZwoJICAgICAnY29kZS1rZXkgbmlsIGZpbGUtbmFtZSAo bWF0Y2gtYmVnaW5uaW5nIDEwKQoJICAgICAoY29uY2F0ICJVc2UgQGtleSBmb3IgQGNvZGV7 IgoJCSAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZwoJCSAgICAgICJcbiIgIiAiICht YXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAxMikpICJ9IikpKQoJICAgKChtYXRjaC1iZWdp bm5pbmcgMTEpCgkgICAgKGVsaW5mby1sb2ctc3RyaW5nCgkgICAgICdrYmQta2V5IG5pbCBm aWxlLW5hbWUgKG1hdGNoLWJlZ2lubmluZyAxMSkKCSAgICAgKGNvbmNhdCAiVXNlIEBrZXkg Zm9yIEBrYmR7IgoJCSAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZwoJCSAgICAgICJc biIgIiAiIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAxMikpICJ9IikpKQoJICAgKCht YXRjaC1iZWdpbm5pbmcgMTMpCgkgICAgOzsgQ3VycmVudGx5IHdlIGRvbid0IGNhdGVyIGZv ciBAY29kZXtuaWx9IG1pc3dyaXR0ZW4gYXMgbmlsCgkgICAgOzsgYW5kIHByb2JhYmx5IG5l dmVyIHdpbGwuCgkgICAgKGVsaW5mby1sb2ctc3RyaW5nCgkgICAgICdrYmQta2V5IG5pbCBm aWxlLW5hbWUgKG1hdGNoLWJlZ2lubmluZyAxMykKCSAgICAgKGNvbmNhdCAiVXNlIG5vbi1A Y29kZXtuaWx9IGluc3RlYWQgb2Ygbm9uLW5pbCIpKSkKCSAgIDs7IEFkZGl0aW9uYWwgY2Fz ZXMgYWRkZWQgaGVyZS4KCSAgICkpKSkpKQoKKGRlZnVuIGVsaW5mby1jaGVjay1idWZmZXIg KCkKICAiQ2hlY2sgdmFsaWRpdHkgb2YgY3VycmVudCBUZXhpbmZvIGJ1ZmZlci4KVGhlIGJ1 ZmZlciBtdXN0IGJlIHZpc2l0aW5nIGEgZmlsZS4iCiAgKGludGVyYWN0aXZlKQogIChlbGlu Zm8tY2xlYXItbG9nKQogIChjb25kCiAgICgobm90IGJ1ZmZlci1maWxlLW5hbWUpCiAgICAo ZXJyb3IgIlRoZSBjdXJyZW50IGJ1ZmZlciBkb2VzIG5vdCB2aXNpdCBhIGZpbGUiKSkKICAg KChhbmQgKGJ1ZmZlci1tb2RpZmllZC1wKQoJICh5LW9yLW4tcCAoZm9ybWF0ICJTYXZlIGJ1 ZmZlciAlcyBmaXJzdD8gIiAoYnVmZmVyLW5hbWUpKSkpCiAgICAoc2F2ZS1idWZmZXIpKSkK ICAoc2V0cSBlbGluZm8tZmlsZXMtY291bnQgbmlsKQogIChnb3RvLWNoYXIgKHBvaW50LW1p bikpCiAgKGVsaW5mby1jaGVjayBidWZmZXItZmlsZS1uYW1lKQogIChlbGluZm8tZGlzcGxh eS1sb2cgYnVmZmVyLWZpbGUtbmFtZSkpCgooZGVmdW4gZWxpbmZvLWNoZWNrLWZpbGUgKGZp bGUtbmFtZSkKICAiQ2hlY2sgdmFsaWRpdHkgb2YgVGV4aW5mbyBmaWxlIEZJTEUtTkFNRS4i CiAgKGludGVyYWN0aXZlICJmQ2hlY2sgVGV4aW5mbyBmaWxlICIpCiAgKGVsaW5mby1jbGVh ci1sb2cpCiAgKHNldHEgZWxpbmZvLWZpbGVzLWNvdW50IG5pbCkKICAod2l0aC10ZW1wLWJ1 ZmZlcgogICAgKGluc2VydC1maWxlLWNvbnRlbnRzIGZpbGUtbmFtZSkKICAgIChlbGluZm8t Y2hlY2sgZmlsZS1uYW1lKSkKICAoZWxpbmZvLWRpc3BsYXktbG9nIGZpbGUtbmFtZSkpCgoo ZGVmdW4gZWxpbmZvLWNoZWNrLWRpcmVjdG9yeSAoZGlyZWN0b3J5KQogICJDaGVjayB2YWxp ZGl0eSBvZiBUZXhpbmZvIGZpbGVzIGluIERJUkVDVE9SWS4iCiAgKGludGVyYWN0aXZlICJE Q2hlY2sgYWxsIHRleGluZm8gZmlsZXMgaW4gIikKICAobGV0ICgoZmlsZXMgKGRpcmVjdG9y eS1maWxlcyBkaXJlY3RvcnkgJ2Z1bGwpKSkKICAgIChlbGluZm8tY2xlYXItbG9nKQogICAg KHNldHEgZWxpbmZvLWZpbGVzLWNvdW50IDApCiAgICAoZG9saXN0IChmaWxlIGZpbGVzKQog ICAgICAod2hlbiAoYW5kIChzdHJpbmctZXF1YWwgKGZpbGUtbmFtZS1leHRlbnNpb24gZmls ZSkgInRleGkiKQoJCSAobm90IChiYWNrdXAtZmlsZS1uYW1lLXAgZmlsZSkpKQoJKHdpdGgt dGVtcC1idWZmZXIKCSAgKGluc2VydC1maWxlLWNvbnRlbnRzIGZpbGUpCgkgIChlbGluZm8t Y2hlY2sgZmlsZSkKCSAgKHNldHEgZWxpbmZvLWZpbGVzLWNvdW50ICgxKyBlbGluZm8tZmls ZXMtY291bnQpKQoJICAobGV0IChtZXNzYWdlLWxvZy1tYXgpCgkgICAgKG1lc3NhZ2UgIiVz IGZpbGVzIGNoZWNrZWQiIGVsaW5mby1maWxlcy1jb3VudCkpKSkpCiAgICAoZWxpbmZvLWRp c3BsYXktbG9nKSkpCgo7OyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo7OyAJCQkJCQkJCQkJ Cjs7OwkJCU5hdmlnYXRpb24gVXRpbGl0aWVzCQkJCQkKOzsgX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KOzsgCQkJCQkJCQkJCQoKKGRlZmN1c3RvbSBlbGluZm8tbmFtZXMtYWxpc3QKICAn KCgiZWxpc3AiIC4gImxpc3ByZWYiKSAoImVtYWNzIiAuICJlbWFjcyIpKQogICJBbGlzdCBv ZiAoaW5mby1maWxlLW5hbWUgdGV4aS1zdWJkaXJlY3RvcnkpIGFzc29jaWF0aW9ucy4KSWYg ZWxpbmZvIGNhbid0IGZpbmQgYW4gYXNzb2NpYXRpb24gaXQgd2lsbCBsb29rIGluIHRoZSBc Im1pc2NcIgpzdWJkaXJlY3RvcnkuIgogIDp0eXBlICcocmVwZWF0IChncm91cCAoc3RyaW5n IDp0YWcgImluZm8tZmlsZSIgOmZvcm1hdCAiICAldDogJXYiIDpzaXplIDE1KQoJCQkoc3Ry aW5nIDp0YWcgInRleGktc3ViZGlyIiA6Zm9ybWF0ICIgICV0OiAldlxuIiA6c2l6ZSAxNSkp KQogIDpncm91cCAnZWxpbmZvKQoKKGRlZmN1c3RvbSBlbGluZm8tdGV4aS1kaXJlY3Rvcnkg KGNvbmNhdCBpbnN0YWxsYXRpb24tZGlyZWN0b3J5ICJkb2MvIikKICAiRGlyZWN0b3J5IHdo ZXJlIGRvYyBmaWxlcyByZXNpZGUuIgogIDp0eXBlICdmaWxlCiAgOmdyb3VwICdlbGluZm8p CgooZGVmdW4gZWxpbmZvLS1kZWZhdWx0LXRhZyAoKQogICJSZXR1cm4gY29ucyBob2xkaW5n IHN0YXJ0IGFuZCBuYW1lIG9mIHRhZyBuZWFyIGBwb2ludCcuIgogIChsZXQgKGZyb20gdG8g Ym91bmQpCiAgICAod2hlbiAob3IgKHByb2duCgkJOzsgTG9vayBhdCB0ZXh0IGFyb3VuZCBg cG9pbnQnLgoJCShzYXZlLWV4Y3Vyc2lvbgoJCSAgKHNraXAtY2hhcnMtYmFja3dhcmQgImEt ejAtOSIpIChzZXRxIGZyb20gKHBvaW50KSkpCgkJKHNhdmUtZXhjdXJzaW9uCgkJICAoc2tp cC1jaGFycy1mb3J3YXJkICJhLXowLTkiKSAoc2V0cSB0byAocG9pbnQpKSkKCQkoPiB0byBm cm9tKSkKCSAgICAgIDs7IExvb2sgYmV0d2VlbiBgbGluZS1iZWdpbm5pbmctcG9zaXRpb24n IGFuZCBgcG9pbnQnLgoJICAgICAgKHNhdmUtZXhjdXJzaW9uCgkJKGFuZCAoc2V0cSBib3Vu ZCAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKQoJCSAgICAgKHNraXAtY2hhcnMtYmFja3dh cmQgIl5hLXowLTkiIGJvdW5kKQoJCSAgICAgKD4gKHNldHEgdG8gKHBvaW50KSkgYm91bmQp CgkJICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiYS16MC05IikKCQkgICAgIChzZXRxIGZy b20gKHBvaW50KSkpKQoJICAgICAgOzsgTG9vayBiZXR3ZWVuIGBwb2ludCcgYW5kIGBsaW5l LWVuZC1wb3NpdGlvbicuCgkgICAgICAoc2F2ZS1leGN1cnNpb24KCQkoYW5kIChzZXRxIGJv dW5kIChsaW5lLWVuZC1wb3NpdGlvbikpCgkJICAgICAoc2tpcC1jaGFycy1mb3J3YXJkICJe YS16MC05IiBib3VuZCkKCQkgICAgICg8IChzZXRxIGZyb20gKHBvaW50KSkgYm91bmQpCgkJ ICAgICAoc2tpcC1jaGFycy1mb3J3YXJkICJhLXowLTkiKQoJCSAgICAgKHNldHEgdG8gKHBv aW50KSkpKSkKICAgICAgKGNvbnMgZnJvbSAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0 aWVzIGZyb20gdG8pKSkpKQoKKGRlZmNvbnN0IGVsaW5mby1hdC1yZWdleHAgIlxcKD86XFwo PzpAW2Etel0re1xcfFt9YCdcIl86XSpcXCkqWyBcdFxuXSpcXCkiCiAgIlJlZ2V4cCBzdXBw b3NlZCB0byBtYXRjaCBUZXhpbmZvIGNvbnN0cnVjdHMgdGhhdCBzZXBhcmF0ZSBpdGVtcy4i KQoKOzsgVHdvIGdsb2JhbHMsIGluaXRpYWxpemVkIGluIGBlbGluZm8tZ290by10ZXhpJyBh bmQgdXBkYXRlZCBieQo7OyBgZWxpbmZvLS11cGRhdGUtcmVnZXhwJy4KKGRlZnZhciBlbGlu Zm8tZnJvbSBuaWwpCihkZWZ2YXIgZWxpbmZvLXJlZ2V4cCBuaWwpCgooZGVmdW4gZWxpbmZv LS1tYWtlLXJlZ2V4cCAoZnJvbSB0bykKICAiUmV0dXJuIGJ1ZmZlciB0ZXh0IGZyb20gRlJP TSB0byBUTyBhcyByZWdleHAuIgogIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKICAgIlsg XHRdKyIgIlsgXHRcbl0rIgogICAgKHJlZ2V4cC1xdW90ZQogICAgIChkb3duY2FzZQogICAg ICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIGZyb20gdG8pKSkgbmlsIHQpKQoK KGRlZnVuIGVsaW5mby0tbWFrZS1yZWdleHAtMiAoZnJvbSB0bykKICAiUmV0dXJuIGJ1ZmZl ciB0ZXh0IGZyb20gRlJPTSB0byBUTyBhcyBUZXhpbmZvaXNoIHJlZ2V4cC4iCiAgKHJlcGxh Y2UtcmVnZXhwLWluLXN0cmluZwogICAiQFxcKFtAe31dXFwpIiAobGFtYmRhIChzdHJpbmcp IChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAxIHN0cmluZykpCiAgIChlbGluZm8tLW1h a2UtcmVnZXhwIGZyb20gdG8pKSkKCihkZWZ1biBlbGluZm8tLXVwZGF0ZS1yZWdleHAgKCZv cHRpb25hbCByZXN0KQogIChzZXRxIGVsaW5mby1yZWdleHAKCShjb25jYXQKCSBlbGluZm8t cmVnZXhwCgkgKGVsaW5mby0tbWFrZS1yZWdleHAgZWxpbmZvLWZyb20gKG1hdGNoLWJlZ2lu bmluZyAwKSkKCSAodW5sZXNzICg9IGVsaW5mby1mcm9tIChtYXRjaC1iZWdpbm5pbmcgMCkp CgkgICBlbGluZm8tYXQtcmVnZXhwKQoJICh3aGVuIHJlc3QKCSAgIChjb25jYXQgcmVzdCBl bGluZm8tYXQtcmVnZXhwKSkpKSkKCihkZWZjb25zdCBlbGluZm8taW5mby1yZWdleHAKICAi XFwoLS0gXFwoPzpGdW5jdGlvblxcfENvbW1hbmRcXHxWYXJpYWJsZVxcfE1hY3JvXFx8U3Bl Y2lhbCBGb3JtXFx8VXNlciBPcHRpb25cXHxTeW50YXggY2xhc3NcXCk6IFxcKVwKXFx8XFwo PzpcXChcXCpOb3RlXFwpXFx8XFwoOjpcXClcXHxcXCpcXChXYXJuaW5nOlxcKVxcKlxcKVsg XSpcXHxbYF0qPFxcKFtBLVowLTldK1xcKT5bJ10qXApcXHxcXChcXCg/OkxhXFwpP1RlWFxc fChbQ1JdKVxcfEV1cm9cXClcXHxcXChbYF0qXFwoW0EtWjAtOV0rXFwpWyddKlxcKVxcfFxc KFtgXSpcXChbYS16MC05XStcXClbJ10qXFwpXApcXHxcXChbIFx0XG5dK1xcKVxcfFxcKFtg J1wiX10rXFwpXFx8XFwoLStcXClcXHxcXChcXC5bLl0rXFwpXApcXHxcXChcXCg/OmVycm9y XFwpP1stLiE9PnwqI11bLS4hPT58KiNdK1xcKVxcfFxcKFt7fV1cXCkiCiAgIlRoZSBiYXNp YyByZWdleHAgdXNlZCBieSBgZWxpbmZvLWdvdG8tdGV4aScuIikKCjs7IFVzZWQgZm9yIHRl c3Rpbmcgb25seSBzbyBSRU1PVkUgaXQuCihkZWZ2YXIgZWxpbmZvLXRlc3QtdGV4aS13aW5k b3cgbmlsKQoKKGRlZnVuIGVsaW5mby1nb3RvLXRleGkgKCkKICAiSW4gYEluZm8tbW9kZScg ZGlzcGxheSBjb3JyZXNwb25kaW5nIFRleGluZm8gdGV4dCBpbiBvdGhlciB3aW5kb3cuCklm IGludm9raW5nIHRoaXMgY29tbWFuZCBkb2Vzbid0IGdldCB5b3UgdG8gdGhlIGRlc2lyZWQg cG9zaXRpb24KaW4gdGhlIFRleGluZm8gYnVmZmVyLCB5b3UgbWlnaHQgdHJ5IHRvIGludm9r ZSBpdCBmcm9tIGEgcG9zaXRpb24Kb25lIGxpbmUgYWJvdmUgb3IgYmVsb3cgdGhlIGN1cnJl bnQgb25lIGluIHRoZSBJbmZvIGJ1ZmZlci4iCiAgKGludGVyYWN0aXZlKQogICh1bmxlc3Mg KGVxIG1ham9yLW1vZGUgJ0luZm8tbW9kZSkKICAgIChlcnJvciAiVGhpcyBmdW5jdGlvbiBj YW4gYmUgaW52b2tlZCBpbiBJbmZvLW1vZGUgb25seSIpKQogIChsZXQqICgoaW5mby13aW5k b3cgKHNlbGVjdGVkLXdpbmRvdykpCgkgKHdpbmRvdy1wb2ludCAod2luZG93LXBvaW50KSkK CSAoaW5mby1maWxlLW5hbWUKCSAgKHdoZW4gKGJvdW5kcCAnSW5mby1jdXJyZW50LWZpbGUp CgkgICAgKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgSW5mby1jdXJyZW50LWZpbGUpKSkKCSAo dGFnCgkgICh3aGVuIChib3VuZHAgJ0luZm8tY3VycmVudC1ub2RlKQoJICAgIEluZm8tY3Vy cmVudC1ub2RlKSkKCSAodGV4aS1zdWJkaXIKCSAgKHdoZW4gaW5mby1maWxlLW5hbWUKCSAg ICAobGV0ICgoY2VsbCAoYXNzb2MgaW5mby1maWxlLW5hbWUgZWxpbmZvLW5hbWVzLWFsaXN0 KSkpCgkgICAgICAoaWYgY2VsbCAoY2RyIGNlbGwpICJtaXNjIikpKSkKCSAoYXQgKHBvaW50 KSkKCSAob2Zmc2V0IDApCgkgdGV4aS1kaXIgdGV4aS1maWxlIHRhZ3MtZmlsZS1uYW1lCgkg ZGVmYXVsdC10YWcgYW5jaG9yIHJlcGVhdCBmcm9tIHRvCgkgY2FzZS1mb2xkLXNlYXJjaCkK ICAgIChjb25kCiAgICAgKChub3QgdGV4aS1zdWJkaXIpCiAgICAgIChlcnJvciAiQ2FuJ3Qg aWRlbnRpZnkgdGV4aW5mbyBzdWJkaXJlY3RvcnkiKSkKICAgICAoKGZpbGUtZXhpc3RzLXAK ICAgICAgIChzZXRxIHRleGktZGlyIChjb25jYXQgZWxpbmZvLXRleGktZGlyZWN0b3J5IHRl eGktc3ViZGlyICIvIikpKSkKICAgICAodAogICAgICAoZXJyb3IgIkNhbid0IGZpbmQgdGV4 aW5mbyBzdWJkaXJlY3RvcnkiKSkpCgogICAgOzsgU2lnaCAuLi4KICAgIChzYXZlLWV4Y3Vy c2lvbgogICAgICA7OyBNb3ZlIGF3YXkgZnJvbSBlbXB0eSBsaW5lcy4KICAgICAgKHNhdmUt ZXhjdXJzaW9uCgkoYmVnaW5uaW5nLW9mLWxpbmUpCgkod2hlbiAobG9va2luZy1hdCAiWyBc dF0qJCIpCgkgIChsZXQgKChwcmV2LWF0CgkJIChwcm9nbgoJCSAgIChza2lwLWNoYXJzLWJh Y2t3YXJkICIgXHRcbiIpCgkJICAgKHVubGVzcyAoYm9icCkKCQkgICAgIChwb2ludCkpKSkK CQkobmV4dC1hdAoJCSAocHJvZ24KCQkgICAoc2tpcC1jaGFycy1mb3J3YXJkICIgXHRcbiIp CgkJICAgKHVubGVzcyAoZW9icCkKCQkgICAgIChwb2ludCkpKSkpCgkgICAgKHNldHEgYXQK CQkgIChjb25kCgkJICAgKChhbmQgcHJldi1hdCBuZXh0LWF0KQoJCSAgICAoaWYgKD4gKC0g YXQgcHJldi1hdCkgKC0gbmV4dC1hdCBhdCkpIG5leHQtYXQgcHJldi1hdCkpCgkJICAgKHBy ZXYtYXQgcHJldi1hdCkKCQkgICAobmV4dC1hdCBuZXh0LWF0KSkpKSkpCiAgICAgIChnb3Rv LWNoYXIgYXQpCiAgICAgIChzZXRxIGZyb20gKHByb2duCgkJICAgKGJlZ2lubmluZy1vZi1s aW5lKQoJCSAgIChza2lwLWNoYXJzLWZvcndhcmQgIiBcdCIpCgkJICAgKHBvaW50KSkpCiAg ICAgIChzZXRxIHRvIChwcm9nbgoJCSAoZW5kLW9mLWxpbmUpCgkJIChza2lwLWNoYXJzLWJh Y2t3YXJkICIgXHQiKQoJCSAocG9pbnQpKSkKICAgICAgOzsgVHJ5IHRvIGhhbmRsZSBhbiB4 cmVmIHRoYXQgc3BhbnMgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGxpbmUuCiAgICAgIDs7IFRo aXMgd2lsbCBwdXQgdXMgYWZ0ZXIgdGhlIHJlZmVyZW5jZSBpbiB0aGUgdGV4aSBidWZmZXIs IGJ1dAogICAgICA7OyB0aGF0J3Mgc3RpbGwgYmV0dGVyIHRoYW4gZ2V0dGluZyB0byB0aGUg aGVhZCBvZiB0aGUgc2VjdGlvbi4KICAgICAgKHdoZW4gKHNhdmUtZXhjdXJzaW9uCgkgICAg ICAoZ290by1jaGFyIGZyb20pCgkgICAgICAoYW5kIChyZS1zZWFyY2gtYmFja3dhcmQKCQkg ICAgIlxcKltObl1vdGUiIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbiAwKSB0KQoJCSAgIChu b3QgKHJlLXNlYXJjaC1mb3J3YXJkICJbLixdXFx8OjoiIGZyb20gdCkpKSkKCShnb3RvLWNo YXIgZnJvbSkKCShyZS1zZWFyY2gtZm9yd2FyZCAiOjpcXHxcXChbLixdKT9cXCkiIHRvIHQp Cgkod2hlbiAobWF0Y2gtYmVnaW5uaW5nIDEpCgkgIDs7IEZvdW5kIGEgY2xvc2luZyBgLicg b3IgYCwnIHNvIHJlbG9jYXRlIGBmcm9tJy4KCSAgKHNldHEgZnJvbSAocG9pbnQpKQoJICAo c2V0cSBhdCAobWF4IGZyb20gYXQpKSkpCgogICAgICAoZ290by1jaGFyIGF0KQogICAgICAo d2hlbiAoc2V0cSBkZWZhdWx0LXRhZyAoZWxpbmZvLS1kZWZhdWx0LXRhZykpCgkoc2V0cSBv ZmZzZXQgKC0gYXQgKGNhciBkZWZhdWx0LXRhZykpKQoJKHNldHEgYW5jaG9yIChjZHIgZGVm YXVsdC10YWcpKQoJKHNhdmUtZXhjdXJzaW9uCgkgIChnb3RvLWNoYXIgZnJvbSkKCSAgKGNh dGNoICdkb25lCgkgICAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggdCkpCgkgICAgICAod2hp bGUgKHJlLXNlYXJjaC1mb3J3YXJkIGFuY2hvciBuaWwgdCkKCQkoaWYgKD0gKG1hdGNoLWJl Z2lubmluZyAwKSAoY2FyIGRlZmF1bHQtdGFnKSkKCQkgICAgKHRocm93ICdkb25lIHQpCgkJ ICAoc2V0cSByZXBlYXQKCQkJKGlmIHJlcGVhdCAoMSsgcmVwZWF0KSAyKSkpKSkpKSkKCiAg ICAgIChnb3RvLWNoYXIgKHNldHEgZWxpbmZvLWZyb20gZnJvbSkpCiAgICAgIChzZXRxIGVs aW5mby1yZWdleHAgbmlsKQogICAgICA7OyBTY2FuIGxpbmUuCiAgICAgICh3aGlsZSAocmUt c2VhcmNoLWZvcndhcmQgZWxpbmZvLWluZm8tcmVnZXhwIHRvIHQpCgkoY29uZAoJICgobWF0 Y2gtYmVnaW5uaW5nIDEpKQkJCTsgLS0gRnVuY3Rpb246IC4uLgoJICgobWF0Y2gtYmVnaW5u aW5nIDIpCQkJOyAqTm90ZQoJICAoZWxpbmZvLS11cGRhdGUtcmVnZXhwKQoJICAobGV0ICgo ZnJvbS0xIChwb2ludCkpCgkJdG8tMSkKCSAgICAoaWYgKHJlLXNlYXJjaC1mb3J3YXJkICI6 IiB0byB0KQoJCShwcm9nbgoJCSAgKHNldHEgdG8tMSAobWF0Y2gtYmVnaW5uaW5nIDApKQoJ CSAgKGlmIChsb29raW5nLWF0LXAgIjoiKQoJCSAgICAgIDs7IDo6IGlzIGhhbmRsZWQgYnkg bWFpbiBsb29wLCByZXNjYW4uCgkJICAgICAgKGdvdG8tY2hhciBmcm9tLTEpCgkJICAgIDs7 IEEgY29tcGxleCB4cmVmLCBoYW5kbGUgaXQgaGVyZS4KCQkgICAgKHNldHEgZWxpbmZvLXJl Z2V4cAoJCQkgIChjb25jYXQgZWxpbmZvLXJlZ2V4cCA7IEZvcmNlIGEgYHsnIGhlcmU/CgkJ CQkgICJbYS16QS1aLCBcdFxuXSoiCgkJCQkgIChlbGluZm8tLW1ha2UtcmVnZXhwIGZyb20t MSB0by0xKQoJCQkJICAiW2EtekEtWiwgXHRcbl0qfSIpKQoJCSAgICA7OyBRdWl0IGxvb3Au CgkJICAgIChzZXRxIGZyb20gdG8pCgkJICAgIChnb3RvLWNoYXIgdG8pKSkKCSAgICAgIChz ZXRxIGVsaW5mby1yZWdleHAKCQkgICAgKGNvbmNhdCBlbGluZm8tcmVnZXhwCTsgRm9yY2Ug YSBgeycgaGVyZT8KCQkJICAgICJbYS16QS1aLCBcdFxuXSoiCgkJCSAgICAoZWxpbmZvLS1t YWtlLXJlZ2V4cCBmcm9tLTEgdG8pCgkJCSAgICAiW2EtekEtWiwgXHRcbl0qfSIpKQoJICAg ICAgOzsgUXVpdCBsb29wLgoJICAgICAgKHNldHEgZnJvbSB0bykKCSAgICAgIChnb3RvLWNo YXIgdG8pKSkpCgkgKChtYXRjaC1iZWdpbm5pbmcgMykJCQk7IDo6CgkgIChlbGluZm8tLXVw ZGF0ZS1yZWdleHApKQoJICgobWF0Y2gtYmVnaW5uaW5nIDQpCQkJOyAqV2FybmluZzoqCgkg IChlbGluZm8tLXVwZGF0ZS1yZWdleHApKQoJICgobWF0Y2gtYmVnaW5uaW5nIDUpCQkJOyBg PEtFWT4nCgkgIChlbGluZm8tLXVwZGF0ZS1yZWdleHAKCSAgIChlbGluZm8tLW1ha2UtcmVn ZXhwIChtYXRjaC1iZWdpbm5pbmcgNSkgKG1hdGNoLWVuZCA1KSkpKQoJICgobWF0Y2gtYmVn aW5uaW5nIDYpCgkgIChlbGluZm8tLXVwZGF0ZS1yZWdleHAKCSAgIChjb25jYXQgIkA/IiAo bWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgNikgIlxcKD86W3t9XStcXCk/IikpKQoJICgo bWF0Y2gtYmVnaW5uaW5nIDcpCQkJOyBVcHBlci1jYXNlIHN0cmluZy4KCSAgKGVsaW5mby0t dXBkYXRlLXJlZ2V4cAoJICAgKGVsaW5mby0tbWFrZS1yZWdleHAgKG1hdGNoLWJlZ2lubmlu ZyA4KSAobWF0Y2gtZW5kIDgpKSkpCgkgKChtYXRjaC1iZWdpbm5pbmcgOSkJCQk7IExvd2Vy LWNhc2Ugc3RyaW5nLgoJICAoZWxpbmZvLS11cGRhdGUtcmVnZXhwCgkgICAoZWxpbmZvLS1t YWtlLXJlZ2V4cCAobWF0Y2gtYmVnaW5uaW5nIDEwKSAobWF0Y2gtZW5kIDEwKSkpKQoJICgo bWF0Y2gtYmVnaW5uaW5nIDExKQkJCTsgV2hpdGVzcGFjZQoJICAoZWxpbmZvLS11cGRhdGUt cmVnZXhwICJbIFx0XG5dKyIpKQoJICgobWF0Y2gtYmVnaW5uaW5nIDEyKQkJCTsgYCciCgkg IChlbGluZm8tLXVwZGF0ZS1yZWdleHApKQoJICgobWF0Y2gtYmVnaW5uaW5nIDEzKQkJCTsg LS0KCSAgKGVsaW5mby0tdXBkYXRlLXJlZ2V4cCAiWy1dKyIpKQoJICgobWF0Y2gtYmVnaW5u aW5nIDE0KQkJCTsgLi4KCSAgKGVsaW5mby0tdXBkYXRlLXJlZ2V4cCAiXFwoPzpcXC5bLl0r XFx8QGRvdHN7fVxcKSIpKQoJICgobWF0Y2gtYmVnaW5uaW5nIDE1KQkJCTsgPT4KCSAgKGVs aW5mby0tdXBkYXRlLXJlZ2V4cAoJICAgKGNvbmNhdAoJICAgICJcXCg/OkBbYS16XSt7fVxc KVxcfCIKCSAgICAoZWxpbmZvLS1tYWtlLXJlZ2V4cCAobWF0Y2gtYmVnaW5uaW5nIDE1KSAo bWF0Y2gtZW5kIDE1KSkpKSkKCSAoKG1hdGNoLWJlZ2lubmluZyAxNikJCQk7IHsgb3IgfQoJ ICAoZWxpbmZvLS11cGRhdGUtcmVnZXhwCgkgICAoY29uY2F0ICJAPyIgKG1hdGNoLXN0cmlu Zy1uby1wcm9wZXJ0aWVzIDE2KSBlbGluZm8tYXQtcmVnZXhwKSkpCgkgOzsgRnV0dXJlIGFk ZGl0aW9ucyBnbyBoZXJlLgoJICkKCShzZXRxIGVsaW5mby1mcm9tIChwb2ludCkpKQogICAg ICAoc2V0cSBlbGluZm8tcmVnZXhwCgkgICAgKGNvbmNhdCBlbGluZm8tcmVnZXhwIChlbGlu Zm8tLW1ha2UtcmVnZXhwIGVsaW5mby1mcm9tIHRvKSkpKQoKICAgIChpZiAobm90IChmaWxl LWV4aXN0cy1wCgkgICAgICAoc2V0cSB0YWdzLWZpbGUtbmFtZSAoY29uY2F0IHRleGktZGly ICJUQUdTIikpKSkKCShlcnJvciAiTm8gdGFncyBmaWxlIGZvdW5kIikKICAgICAgKGZpbmQt dGFnLW90aGVyLXdpbmRvdyAoY29uY2F0ICJeQG5vZGUgIiB0YWcgIlt/LF0iKSBuaWwgdCkK CiAgICAgIDs7IFVzZWQgZm9yIHRlc3Rpbmcgb25seSBzbyBSRU1PVkUgaXQuCiAgICAgIChz ZXRxIGVsaW5mby10ZXN0LXRleGktd2luZG93IChzZWxlY3RlZC13aW5kb3cpKQoKICAgICAg KGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggdCkpCgkod2hlbiBlbGluZm8tcmVnZXhwCgkgICh3 aXRoLWN1cnJlbnQtYnVmZmVyIChnZXQtYnVmZmVyLWNyZWF0ZSAiKnRlc3QqIikKCSAgICAo ZGVsZXRlLXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkKCSAgICAoaW5zZXJ0IGVs aW5mby1yZWdleHApKQoJICAobGV0ICgoYXQgKHBvaW50KSkpCgkgICAgKGNvbmQKCSAgICAg KChhbmQgKHJlLXNlYXJjaC1mb3J3YXJkIChjb25jYXQgIlxcKCIgZWxpbmZvLXJlZ2V4cCAi XFwpXFx8Xm5vZGUiKSBuaWwgdCkKCQkgICAobWF0Y2gtYmVnaW5uaW5nIDEpKQoJICAgICAg KGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDEpKQoJICAgICAgKHNhdmUtcmVzdHJpY3Rp b24KCQkod2lkZW4pCgkJKG5hcnJvdy10by1yZWdpb24gKG1hdGNoLWJlZ2lubmluZyAxKSAo bWF0Y2gtZW5kIDEpKQoJCSh3aGVuIChhbmQgYW5jaG9yIChyZS1zZWFyY2gtZm9yd2FyZCBh bmNob3IgbmlsIHQgcmVwZWF0KSkKCQkgIChnb3RvLWNoYXIgKCsgKG1hdGNoLWJlZ2lubmlu ZyAwKSBvZmZzZXQpKSkpKQoJICAgICAodAoJICAgICAgKGdvdG8tY2hhciBhdCkpKSkpKSkK CiAgICAoc2V0LXdpbmRvdy1wb2ludCBpbmZvLXdpbmRvdyB3aW5kb3ctcG9pbnQpCiAgICA7 OyBUaGUgZm9sbG93aW5nIG1pZ2h0IGdldCByZW1vdmVkLgogICAgKHNlbGVjdC13aW5kb3cg aW5mby13aW5kb3cpCiAgICApKQoKKGRlZmNvbnN0IGVsaW5mby10ZXhpLWdseXBoLXJlZ2V4 cAogIChyZWdleHAtb3B0CiAgICcoImRvdHMiICJlbmRkb3RzIiAiYnVsbGV0IiAibWludXMi ICJyZXN1bHQiICJleHBhbnNpb24iCiAgICAgInByaW50IiAiZXJyb3IiICJlcXVpdiIgInBv aW50IiAiY29weXJpZ2h0IgogICAgICJyZWdpc3RlcmVkc3ltYm9sIiAiZXVybyIgInBvdW5k cyIgIkxhVGVYIiAiVGVYIikpCiAgIlJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgZ2x5cGhzIGlu IHRleGkgYnVmZmVycy4iKQoKKGRlZmNvbnN0IGVsaW5mby10ZXhpLXJlZ2V4cAogIChjb25j YXQKICAgIkBkZWZcXCh1blxcfGZuIENvbW1hbmRcXHx2YXJcXHxtYWNyb1xcfHNwZWNcXHxv cHRcXClbIFx0XStcClxcfFxcKD86QHA/eHJlZntcXChbXn1dK1xcKVxcKD86fVxcfCRcXClc XClcXHxAXFwoPzpzdHJvbmdcXHxlbXBoXFwpe1xcKFtefV0rXFwpfVwKXFx8XFwoQCIgZWxp bmZvLXRleGktZ2x5cGgtcmVnZXhwICJ7fVxcKVxcfFxcKD86QGRmbntcXChbXn1dK1xcKX1c XClcClxcfFxcKEBbYS16XSt7XFwpXFx8XFwofVxcKVxcfFxcKFsgXHRdK1xcKVxcfFxcKFtg J1wiXVtgJ1wiXStcXCkiKQogICJUaGUgYmFzaWMgcmVnZXhwIHVzZWQgYnkgYGVsaW5mby1n b3RvLWluZm8nLiIpCgooZGVmdW4gZWxpbmZvLWdvdG8taW5mbyAoKQogICJJbiBgdGV4aW5m by1tb2RlJyBkaXNwbGF5IGNvcnJlc3BvbmRpbmcgSW5mbyBub2RlIGluIG90aGVyIHdpbmRv dy4KSWYgaW52b2tpbmcgdGhpcyBjb21tYW5kIGRvZXNuJ3QgZ2V0IHlvdSB0byB0aGUgZGVz aXJlZCBwb3NpdGlvbgppbiB0aGUgSW5mbyBidWZmZXIsIHlvdSBtaWdodCB0cnkgdG8gaW52 b2tlIGl0IGZyb20gYSBwb3NpdGlvbgpvbmUgbGluZSBhYm92ZSBvciBiZWxvdyB0aGUgY3Vy cmVudCBvbmUgaW4gdGhlIFRleGluZm8gYnVmZmVyLiIKICAoaW50ZXJhY3RpdmUpCiAgKHVu bGVzcyAoZXEgbWFqb3ItbW9kZSAndGV4aW5mby1tb2RlKQogICAgKGVycm9yICJUaGlzIGZ1 bmN0aW9uIGNhbiBiZSBpbnZva2VkIGluIHRleGluZm8tbW9kZSBvbmx5IikpCiAgKGxldCog KCh0ZXhpLXdpbmRvdyAoc2VsZWN0ZWQtd2luZG93KSkKCSAod2luZG93LXBvaW50ICh3aW5k b3ctcG9pbnQpKQoJIChpbmZvLW5vZGUtMwoJICAoc2F2ZS1leGN1cnNpb24KCSAgICAod2hl biAocmUtc2VhcmNoLWJhY2t3YXJkICJeQG5vZGUgXFwoWy1hLXpBLVogXStcXCkiIG5pbCB0 KQoJICAgICAgKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDEpKSkpCgkgKGluZm8tbm9k ZS0yCgkgIChzYXZlLWV4Y3Vyc2lvbgoJICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCgkg ICAgKHdoZW4gKHJlLXNlYXJjaC1mb3J3YXJkICJeQG5vZGUgXFwoWy1hLXpBLVogXStcXCki IG5pbCB0KQoJICAgICAgKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDEpKSkpCgkgKGlu Zm8tbm9kZS0xCgkgIDs7IElmIHdlIGNhbid0IGZpbmQgYW4gYXNzb2NpYXRpb24sIGBpbmZv LW90aGVyLXdpbmRvdycgd2lsbAoJICA7OyBzdGFydCBhdCB0aGUgdG9wIG5vZGUuCgkgIChj YXIgKHJhc3NvYwoJCShmaWxlLW5hbWUtbm9uZGlyZWN0b3J5CgkJIChkaXJlY3RvcnktZmls ZS1uYW1lCgkJICAoZmlsZS1uYW1lLWRpcmVjdG9yeSBidWZmZXItZmlsZS1uYW1lKSkpCgkJ ZWxpbmZvLW5hbWVzLWFsaXN0KSkpCgkgKG9mZnNldCAwKQoJIHJlZ2V4cCBkZWZhdWx0LXRh ZyBhbmNob3IgcmVwZWF0CgkgY2FzZS1mb2xkLXNlYXJjaCkKCiAgICAoc2F2ZS1leGN1cnNp b24KICAgICAgOzsgVXNlIGJydXRlIGZvcmNlLgogICAgICAod2hpbGUgKHNhdmUtZXhjdXJz aW9uCgkgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQoJICAgICAgIChvciAobG9va2luZy1h dCAiWyBcdF0qXG5cXHxAYW5jaG9yeyIpCgkJICAgKGFuZCAobG9va2luZy1hdCAiQFthLXpd K1xcKD86IFxcfCRcXCkiKQoJCQkobm90IChsb29raW5nLWF0ICJAZGVmXFwodW5cXHxmbiBD b21tYW5kXFx8dmFyXFx8bWFjcm9cXHxzcGVjXFx8b3B0XFwpIikpKSkpCgkoZm9yd2FyZC1s aW5lKSkKICAgICAgKGxldCAoKGF0IChwb2ludCkpCgkgICAgIChmcm9tIChwcm9nbgoJCSAg ICAgKGJlZ2lubmluZy1vZi1saW5lKQoJCSAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0 IikKCQkgICAgIChwb2ludCkpKQoJICAgICAodG8gKHByb2duCgkJICAgKGVuZC1vZi1saW5l KQoJCSAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiKQoJCSAgIChwb2ludCkpKSkKCgk7 OyBHZXQgb3V0IG9mIGFueSByZWZlcmVuY2UgYXQgQk9MLCB3ZSBjYW4ndCB0cmFjZSBpdCBh bnl3YXkuCgkoY29uZGl0aW9uLWNhc2UgbmlsCgkgICAgKGFuZCAocHJvZ24KCQkgICAoZ290 by1jaGFyIGZyb20pCgkJICAgKHVwLWxpc3QgLTEpCgkJICAgKGxvb2tpbmctYXQgInsiKSkK CQkgKGxvb2tpbmctYmFjayAieHJlZiIpCgkJIChwcm9nbgoJCSAgIChmb3J3YXJkLXNleHAp CgkJICAgKHNldHEgZnJvbSAocG9pbnQpKQoJCSAgIChzZXRxIGF0IChtYXggYXQgZnJvbSkp KSkKCSAgKGVycm9yIG5pbCkpCgoJKGdvdG8tY2hhciAobWF4IGF0IGZyb20pKQoJKHdoZW4g KHNldHEgZGVmYXVsdC10YWcgKGVsaW5mby0tZGVmYXVsdC10YWcpKQoJICAoc2V0cSBvZmZz ZXQgKC0gYXQgKGNhciBkZWZhdWx0LXRhZykpKQoJICAoc2V0cSBhbmNob3IgKGNkciBkZWZh dWx0LXRhZykpCgkgIChzYXZlLWV4Y3Vyc2lvbgoJICAgIChnb3RvLWNoYXIgZnJvbSkKCSAg ICAoY2F0Y2ggJ2RvbmUKCSAgICAgIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpKQoJCSh3 aGlsZSAocmUtc2VhcmNoLWZvcndhcmQgYW5jaG9yIG5pbCB0KQoJCSAgKGlmICg9IChtYXRj aC1iZWdpbm5pbmcgMCkgKGNhciBkZWZhdWx0LXRhZykpCgkJICAgICAgKHRocm93ICdkb25l IHQpCgkJICAgIChzZXRxIHJlcGVhdAoJCQkgIChpZiByZXBlYXQgKDErIHJlcGVhdCkgMikp KSkpKSkpCgoJKGdvdG8tY2hhciBmcm9tKQoJOzsgU2NhbiBsaW5lLgoJKHdoaWxlIChyZS1z ZWFyY2gtZm9yd2FyZCBlbGluZm8tdGV4aS1yZWdleHAgdG8gdCkKCSAgKGNvbmQKCSAgICgo bWF0Y2gtYmVnaW5uaW5nIDEpKQoJICAgKChtYXRjaC1iZWdpbm5pbmcgMikJCQk7IEBwP3hy ZWYKCSAgICAob3IgKGFuZCAoc2F2ZS1leGN1cnNpb24KCQkgICAgICAgKGdvdG8tY2hhciAo bWF0Y2gtZW5kIDIpKQoJCSAgICAgICAoYW5kIChzYXZlLW1hdGNoLWRhdGEKCQkJICAgICAg OzsgQSBjb21tYSB3aXRoaW4gdGhlIGJyYWNlcyBzdGFuZHMgZm9yIGEKCQkJICAgICAgOzsg Y29tcGxleCByZWZlcmVuY2UuCgkJCSAgICAgIChyZS1zZWFyY2gtYmFja3dhcmQgIiwiICht YXRjaC1iZWdpbm5pbmcgMikgdCkpCgkJCSAgICAoc2tpcC1jaGFycy1mb3J3YXJkICIgXHRc biwiKQoJCQkgICAgKHNldHEgcmVnZXhwCgkJCQkgIChjb25jYXQKCQkJCSAgIHJlZ2V4cAoJ CQkJICAgKGVsaW5mby0tbWFrZS1yZWdleHAtMiBmcm9tIChtYXRjaC1iZWdpbm5pbmcgMCkp CgkJCQkgICAiXFwqbm90ZVsgXHRcbl0qIgoJCQkJICAgKGVsaW5mby0tbWFrZS1yZWdleHAt MiAocG9pbnQpIChtYXRjaC1lbmQgMikpKSkpKQoJCSAgICAgOzsgTGVhdmUgbWFpbiBsb29w LgoJCSAgICAgKHNldHEgZnJvbSB0bykKCQkgICAgIChnb3RvLWNoYXIgdG8pKQoJCShzZXRx IHJlZ2V4cAoJCSAgICAgIChjb25jYXQKCQkgICAgICAgcmVnZXhwIChlbGluZm8tLW1ha2Ut cmVnZXhwLTIgZnJvbSAobWF0Y2gtYmVnaW5uaW5nIDApKQoJCSAgICAgICAiXFwqbm90ZVsg XHRcbl0qIgoJCSAgICAgICAoZWxpbmZvLS1tYWtlLXJlZ2V4cC0yIChtYXRjaC1iZWdpbm5p bmcgMikgKG1hdGNoLWVuZCAyKSkKCQkgICAgICAgIjo6WyBcdFxuXSoiKSkpKQoJICAgKCht YXRjaC1iZWdpbm5pbmcgMykJCQk7IEBzdHJvbmcgb3IgQGVtcGgKCSAgICAoc2V0cSByZWdl eHAKCQkgIChjb25jYXQKCQkgICByZWdleHAgKGVsaW5mby0tbWFrZS1yZWdleHAtMiBmcm9t IChtYXRjaC1iZWdpbm5pbmcgMCkpCgkJICAgIlsqX10iIChlbGluZm8tLW1ha2UtcmVnZXhw LTIgKG1hdGNoLWJlZ2lubmluZyAzKSAobWF0Y2gtZW5kIDMpKQoJCSAgICJbKl9dWyBcdFxu XSoiKSkpCgkgICAoKG1hdGNoLWJlZ2lubmluZyA0KQkJCTsgU29tZSBzb3J0IG9mIGdseXBo CgkgICAgKHNldHEgcmVnZXhwCgkJICAoY29uY2F0CgkJICAgcmVnZXhwIChlbGluZm8tLW1h a2UtcmVnZXhwLTIgZnJvbSAobWF0Y2gtYmVnaW5uaW5nIDApKQoJCSAgICJcXCg/OlxcKD86 ZXJyb3JcXCk/Wy0uIT0+fCpdWy0uIT0+fCpdK1xcfFxcKD86TGFcXCk/VGVYXFx8KFtDUl0p XFx8RXVyb1xcfCNcXClbIFx0XG5dKiIpKSkKCSAgICgobWF0Y2gtYmVnaW5uaW5nIDUpCQkJ OyBAZGZuCgkgICAgKHNldHEgcmVnZXhwCgkJICAoY29uY2F0CgkJICAgcmVnZXhwIChlbGlu Zm8tLW1ha2UtcmVnZXhwLTIgZnJvbSAobWF0Y2gtYmVnaW5uaW5nIDApKQoJCSAgICJcIiIg KGVsaW5mby0tbWFrZS1yZWdleHAtMiAobWF0Y2gtYmVnaW5uaW5nIDUpIChtYXRjaC1lbmQg NSkpCgkJICAgIlwiIikpKQoJICAgKChtYXRjaC1iZWdpbm5pbmcgNikJCQk7IEAuLi57Cgkg ICAgKHNldHEgcmVnZXhwCgkJICAoY29uY2F0CgkJICAgcmVnZXhwIChlbGluZm8tLW1ha2Ut cmVnZXhwLTIgZnJvbSAobWF0Y2gtYmVnaW5uaW5nIDApKQoJCSAgICJgPyIpKSkKCSAgICgo bWF0Y2gtYmVnaW5uaW5nIDcpCQkJOyB9CgkgICAgKHNldHEgcmVnZXhwCgkJICAoY29uY2F0 CgkJICAgcmVnZXhwIChlbGluZm8tLW1ha2UtcmVnZXhwLTIgZnJvbSAobWF0Y2gtYmVnaW5u aW5nIDApKQoJCSAgICInPyIpKSkKCSAgICgobWF0Y2gtYmVnaW5uaW5nIDgpCQkJOyB3aGl0 ZXNwYWNlCgkgICAgKHNldHEgcmVnZXhwCgkJICAoY29uY2F0CgkJICAgcmVnZXhwIChlbGlu Zm8tLW1ha2UtcmVnZXhwLTIgZnJvbSAobWF0Y2gtYmVnaW5uaW5nIDApKQoJCSAgICJbIFx0 XG5dKiIpKSkKCSAgICgobWF0Y2gtYmVnaW5uaW5nIDkpCQk7IHF1b3RlcyBsaWtlIGBgLi4u JycKCSAgICAoc2V0cSByZWdleHAKCQkgIChjb25jYXQKCQkgICByZWdleHAgKGVsaW5mby0t bWFrZS1yZWdleHAtMiBmcm9tIChtYXRjaC1iZWdpbm5pbmcgMCkpCgkJICAgIltgJ1wiXSsi KSkpCgkgICApCQkJCSAgICAgOyBGdXR1cmUgYWRkaXRpb25zIGdvIGhlcmUuCgkgIChzZXRx IGZyb20gKHBvaW50KSkpCgkoc2V0cSByZWdleHAKCSAgICAgIChjb25jYXQgcmVnZXhwIChl bGluZm8tLW1ha2UtcmVnZXhwLTIgZnJvbSB0bykpKSkpCgogICAgKGluZm8tb3RoZXItd2lu ZG93IGluZm8tbm9kZS0xKQogICAgKEluZm8tZ290by1ub2RlIGluZm8tbm9kZS0yKQogICAg KHdoZW4gaW5mby1ub2RlLTMKICAgICAgKEluZm8tZ290by1ub2RlIGluZm8tbm9kZS0zKSkK CiAgICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCB0KSkKICAgICAgKHdoZW4gcmVnZXhwCgko d2l0aC1jdXJyZW50LWJ1ZmZlciAoZ2V0LWJ1ZmZlci1jcmVhdGUgIip0ZXN0KiIpCgkgIChk ZWxldGUtcmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgpKQoJICAoaW5zZXJ0IHJlZ2V4 cCkpCgkobGV0ICgoYXQgKHBvaW50KSkpCgkgIChjb25kCgkgICA7OyBXZSBjb3VsZCBhZGQg bmFtZSBhZnRlciBGaWxlOiBiZWxvdy4KCSAgICgoYW5kIChyZS1zZWFyY2gtZm9yd2FyZCAo Y29uY2F0ICJcXCgiIHJlZ2V4cCAiXFwpXFx8XkZpbGU6ICIpIG5pbCB0KQoJCSAobWF0Y2gt YmVnaW5uaW5nIDEpKQoJICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAxKSkKCSAg ICAoc2F2ZS1yZXN0cmljdGlvbgoJICAgICAgKHdpZGVuKQoJICAgICAgKG5hcnJvdy10by1y ZWdpb24gKG1hdGNoLWJlZ2lubmluZyAxKSAobWF0Y2gtZW5kIDEpKQoJICAgICAgKHdoZW4g KGFuZCBhbmNob3IgKHJlLXNlYXJjaC1mb3J3YXJkIGFuY2hvciBuaWwgdCByZXBlYXQpKQoJ CShnb3RvLWNoYXIgKCsgKG1hdGNoLWJlZ2lubmluZyAwKSBvZmZzZXQpKSkpKQoJICAgKHQK CSAgICAoZ290by1jaGFyIGF0KSkpKSkpCgogICAgKHNldC13aW5kb3ctcG9pbnQgdGV4aS13 aW5kb3cgd2luZG93LXBvaW50KQogICAgKHNlbGVjdC13aW5kb3cgdGV4aS13aW5kb3cpCQkJ OyByZW1vdmUgdGhpcyBldnRseQogICAgKSkKCjs7IFVubGVzcyBwZW9wbGUgb2JqZWN0IC4u LgooZGVmaW5lLWtleSBJbmZvLW1vZGUtbWFwICJcQy1jXEMtZyIgJ2VsaW5mby1nb3RvLXRl eGkpCihkZWZpbmUta2V5IHRleGluZm8tbW9kZS1tYXAgIlxDLWNcQy1nIiAnZWxpbmZvLWdv dG8taW5mbykKCjs7IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCjs7IAkJCQkJCQkJCQkKOzs7 CQkgICBHcmFiYmluZyBEb2N1bWVudGF0aW9uIER0cmluZ3MJCQkJCjs7IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCjs7IAkJCQkJCQkJCQkKCihkZWZ1biBlbGluZm8tZ2V0LWRlZmluaXRp b24gKCkKICAiQWRkIGRvYyBzdHJpbmcgb2Ygb2JqZWN0IGF0IGBwb2ludCcgdG8ga2lsbCBy aW5nLgpUaGUgZG9jIHN0cmluZyBpcyBzdWl0YWJsZSBmb3IgaW5zZXJ0aW9uIGludG8gRWxp c3AgVGV4aW5mbwpidWZmZXJzLiIKICAoaW50ZXJhY3RpdmUpCiAgKHNhdmUtZXhjdXJzaW9u CiAgICAobGV0ICgoYXQgKHBvaW50KSkKCSAgbGltaXQgZnJvbSB0bwoJICB0eXBlIG5hbWUg YXJnLWxpc3QgaW5pdC12YWx1ZSBkb2Mgb3Blbi1wYXJlbi1hdCkKICAgICAgKGNvbmQKICAg ICAgICgoZXEgbWFqb3ItbW9kZSAnZW1hY3MtbGlzcC1tb2RlKQoJKGJlZ2lubmluZy1vZi1k ZWZ1bikKCSh3aGVuIChsb29raW5nLWF0ICIoXFwoPzpcXChkZWZ1blxcKVxcfFxcKGRlZnZh clxcKVxcfFxcKGRlZmN1c3RvbVxcKVxcfFxcKGRlZm1hY3JvXFwpXFwpWyBcdF0rIikKCSAg KHNldHEgdHlwZQoJCShjb25kCgkJICgobWF0Y2gtYmVnaW5uaW5nIDEpICdmdW5jdGlvbikK CQkgKChtYXRjaC1iZWdpbm5pbmcgMikgJ3ZhcmlhYmxlKQoJCSAoKG1hdGNoLWJlZ2lubmlu ZyAzKSAnb3B0aW9uKQoJCSAoKG1hdGNoLWJlZ2lubmluZyA0KSAnbWFjcm8pKSkKCSAgKGdv dG8tY2hhciAobWF0Y2gtZW5kIDApKQoJICAoc2V0cSBuYW1lIChlbGluZm8tLWdldC1uZXh0 KSkKCSAgKGNvbmQKCSAgICgobWVtcSB0eXBlICcoZnVuY3Rpb24gY29tbWFuZCBtYWNybykp CgkgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0XG4oIikKCSAgICAod2hpbGUgKG5vdCAo bG9va2luZy1hdCAiKSIpKQoJICAgICAgKHNldHEgYXJnLWxpc3QKCQkgICAgKGNvbnMgKGJ1 ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcwoJCQkgICAocG9pbnQpCgkJCSAgIChwcm9n bgoJCQkgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIl4gXHRcbikiKQoJCQkgICAgIChwb2lu dCkpKQoJCQkgIGFyZy1saXN0KSkKCSAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIiBcdFxu IikpCgkgICAgKHNldHEgYXJnLWxpc3QgKG5yZXZlcnNlIGFyZy1saXN0KSkpCgkgICAoKG1l bXEgdHlwZSAnKHZhcmlhYmxlIG9wdGlvbikpCgkgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAi IFx0XG4iKQoJICAgIChzZXRxIGluaXQtdmFsdWUKCQkgIChidWZmZXItc3Vic3RyaW5nLW5v LXByb3BlcnRpZXMKCQkgICAocG9pbnQpCgkJICAgKHByb2duCgkJICAgICAoZm9yd2FyZC1z ZXhwKQoJCSAgICAgKHBvaW50KSkpKSkpCgkgIChza2lwLWNoYXJzLWZvcndhcmQgIiBcdFxu KSIpCgkgIDs7IFdlIG11c3QgYmUgYmVmb3JlIHRoZSBkb2Mtc3RyaW5nIG5vdy4KCSAgKHNl dHEgZG9jIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKCQkgICAgIChwcm9nbgoJ CSAgICAgICAoc2tpcC1jaGFycy1mb3J3YXJkICIgXHRcbiIpCgkJICAgICAgICgxKyAocG9p bnQpKSkKCQkgICAgIChwcm9nbgoJCSAgICAgICAoZm9yd2FyZC1zZXhwKQoJCSAgICAgICAo MS0gKHBvaW50KSkpKSkKCSAgKHdoZW4gKGVxIHR5cGUgJ2Z1bmN0aW9uKQoJICAgIDs7IENo ZWNrIGZvciBpbnRlcmFjdGl2ZSBwcm9wZXJ0eS4KCSAgICAoZm9yd2FyZC1jb21tZW50IChi dWZmZXItc2l6ZSkpCgkgICAgKHdoZW4gKGxvb2tpbmctYXQgIihpbnRlcmFjdGl2ZSIpCgkg ICAgICAoc2V0cSB0eXBlICdjb21tYW5kKSkpKSkKICAgICAgICgoZXEgbWFqb3ItbW9kZSAn Yy1tb2RlKQoJKGJlZ2lubmluZy1vZi1kZWZ1bikKCShjb25kCgkgKChsb29raW5nLWF0ICJ2 b2lkWyBcdFxuXSpzeW1zX29mIikKCSAgKHNldHEgbGltaXQgKHBvaW50KSkKCSAgKGdvdG8t Y2hhciBhdCkKCSAgKHdoZW4gKG9yIChzYXZlLWV4Y3Vyc2lvbgoJCSAgICAgIChiZWdpbm5p bmctb2YtbGluZSkKCQkgICAgICAobG9va2luZy1hdAoJCSAgICAgICAiWyBcdF0qREVGVkFS X1xcKD86TElTUFxcfEJPT0xcXHxJTlRcXClbIFx0XSsoXCJcXChbXlwiIFx0XG5dK1xcKSIp KQoJCSAgICAocmUtc2VhcmNoLWJhY2t3YXJkCgkJICAgICAiREVGVkFSX1xcKD86TElTUFxc fEJPT0xcXHxJTlRcXClbIFx0XSsoXCJcXChbXlwiIFx0XG5dK1xcKSIgbGltaXQgdCkpCgkg ICAgKHNldHEgdHlwZSAndmFyaWFibGUpCgkgICAgKHNldHEgbmFtZSAobWF0Y2gtc3RyaW5n LW5vLXByb3BlcnRpZXMgMSkpKSkKCSA7OyBUaGUgZm9sbG93aW5nIG11c3QgYmUgZGVjaWRl ZC4KCSA7OyAod2hlbiAoZXEgdHlwZSAndmFyaWFibGUpIChjdXN0b20tdmFyaWFibGUtcCAo aW50ZXJuIG5hbWUpKSkKCSA7OyAoc2V0cSB0eXBlICdvcHRpb24pKQoJICgobG9va2luZy1h dCAiXFwoPzpERUZVTlxcKVsgXHRdKyhcIlxcKFteXCIgXHRcbl0rXFwpIikKCSAgKHNldHEg dHlwZSAnZnVuY3Rpb24pCgkgIChzZXRxIG5hbWUgKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0 aWVzIDMpKSkpCgkoY29uZAoJICgoZXEgdHlwZSAnZnVuY3Rpb24pCgkgIChsZXQgKChpbmRl eCAwKQoJCWZyb20gdG8gbWluLWFyZ3MpCgkgICAgKHJlLXNlYXJjaC1mb3J3YXJkICIsWyBc dF0qIiBuaWwgbmlsIDMpCgkgICAgOzsgTXVzdCBiZSBiZWZvcmUgTUlOIG5vdy4KCSAgICAo c2V0cSBtaW4tYXJncwoJCSAgKHN0cmluZy10by1udW1iZXIKCQkgICAoYnVmZmVyLXN1YnN0 cmluZy1uby1wcm9wZXJ0aWVzCgkJICAgIChwb2ludCkKCQkgICAgKHByb2duIChza2lwLWNo YXJzLWZvcndhcmQgIjAtOSIpIChwb2ludCkpKSkpCgkgICAgKHJlLXNlYXJjaC1mb3J3YXJk ICIsWyBcdFxuXSoiIG5pbCB0IDIpCgkgICAgKHVubGVzcyAobG9va2luZy1hdCAiMCIpCgkg ICAgICA7OyBDb21tYW5kLgoJICAgICAgKHNldHEgdHlwZSAnY29tbWFuZCkpCgkgICAgKHJl LXNlYXJjaC1mb3J3YXJkICJeWyBcdF0qZG9jOlsgXF0qXFwoL1xcKlsgXHRdKlxcKSIgbmls IHQpCgkgICAgKHNldHEgZnJvbSAobWF0Y2gtZW5kIDApKQoJICAgIChnb3RvLWNoYXIgKG1h dGNoLWJlZ2lubmluZyAxKSkKCSAgICAoZm9yd2FyZC1jb21tZW50IDEpCgkgICAgKHNraXAt Y2hhcnMtYmFja3dhcmQgIiovIFx0IikKCSAgICAoc2V0cSB0byAocG9pbnQpKQoJICAgIChz ZXRxIGRvYyAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIGZyb20gdG8pKQoJICAg ICh1bmxlc3MgYXJnLWxpc3QKCSAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIikgXHRcbigi KQoJICAgICAgKHdoaWxlIChub3QgKGxvb2tpbmctYXQgIlsgXHRcbl0qKSIpKQoJCShza2lw LWNoYXJzLWZvcndhcmQgIiBcdFxuLCIpCgkJKGlmICg8IGluZGV4IG1pbi1hcmdzKQoJCSAg ICAoc2V0cSBpbmRleCAoMSsgaW5kZXgpKQoJCSAgKHNldHEgYXJnLWxpc3QgKGNvbnMgIiZv cHRpb25hbCIgYXJnLWxpc3QpKSkKCQkoc2V0cSBhcmctbGlzdAoJCSAgICAgIChjb25zIChi dWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKCQkJICAgICAocG9pbnQpCgkJCSAgICAg KHByb2duCgkJCSAgICAgICAoc2tpcC1jaGFycy1mb3J3YXJkICJeLCBcdFxuKSIpCgkJCSAg ICAgICAocG9pbnQpKSkKCQkJICAgIGFyZy1saXN0KSkpCgkgICAgICAoc2V0cSBhcmctbGlz dCAobnJldmVyc2UgYXJnLWxpc3QpKSkpKQoJICgoZXEgdHlwZSAndmFyaWFibGUpCgkgIChy ZS1zZWFyY2gtZm9yd2FyZCAiXlsgXHRdKmRvYzpbIFxdKlxcKC9cXCpbIFx0XSpcXCkiIG5p bCB0KQoJICAoc2V0cSBmcm9tIChtYXRjaC1lbmQgMCkpCgkgIChnb3RvLWNoYXIgKG1hdGNo LWJlZ2lubmluZyAxKSkKCSAgKGZvcndhcmQtY29tbWVudCAxKQoJICAoc2F2ZS1leGN1cnNp b24KCSAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiKi8gXHQiKQoJICAgIChzZXRxIHRvIChw b2ludCkpKQoJICA7OyBSZW1vdmUgbGVhZGluZyBhc3Rlcmlzay4KCSAgKGdvdG8tY2hhciBm cm9tKQoJICAod2hlbiAobG9va2luZy1hdCAiXFwqIikKCSAgICAoc2V0cSBmcm9tICgxKyBm cm9tKSkpCgkgIChzZXRxIGRvYyAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIGZy b20gdG8pKSkpKSkKCiAgICAgICh3aGVuIGRvYwoJKHdpdGgtY3VycmVudC1idWZmZXIgKGdl dC1idWZmZXItY3JlYXRlICIqRWxpbmZvLVRlbXAqIikKCSAgKGRlbGV0ZS1yZWdpb24gKHBv aW50LW1pbikgKHBvaW50LW1heCkpCgkgIChpbnNlcnQgZG9jKQoJICA7OyBIYW5kbGUgdXNh Z2UgaW5mb3JtYXRpb24uCgkgICh3aGVuIChtZW1xIHR5cGUgJyhmdW5jdGlvbiBjb21tYW5k KSkKCSAgICAod2hlbiAocmUtc2VhcmNoLWJhY2t3YXJkICJedXNhZ2U6WyBcdF0qKCIgZnJv bSB0KQoJICAgICAgKHNldHEgZnJvbSAocG9pbnQpKQoJICAgICAgKGdvdG8tY2hhciAobWF0 Y2gtZW5kIDApKQoJICAgICAgKHNhdmUtZXhjdXJzaW9uCgkJKGdvdG8tY2hhciAobWF0Y2gt YmVnaW5uaW5nIDApKQoJCShza2lwLWNoYXJzLWJhY2t3YXJkICIgXHRcbiIpCgkJKHNldHEg dG8gKHBvaW50KSkpCgkgICAgICAoc2tpcC1jaGFycy1mb3J3YXJkICJeIFx0XG4iKQoJICAg ICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0XG4iKQoJICAgICAgKHNldHEgYXJnLWxpc3Qg bmlsKQoJICAgICAgKHdoaWxlIChub3QgKG9yIChsb29raW5nLWF0ICIpIikgKGVvYnApKSkK CQkoc2V0cSBhcmctbGlzdAoJCSAgICAgIChjb25zCgkJICAgICAgIChkb3duY2FzZQoJCQko YnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCgkJCSAocG9pbnQpCgkJCSAocHJvZ24K CQkJICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiXiBcdFxuKSIpCgkJCSAgIChwb2ludCkpKSkK CQkgICAgICAgYXJnLWxpc3QpKQoJCShza2lwLWNoYXJzLWZvcndhcmQgIiBcdFxuIikpCgkg ICAgICAoc2V0cSBhcmctbGlzdCAobnJldmVyc2UgYXJnLWxpc3QpKQoJICAgICAgKGRlbGV0 ZS1yZWdpb24gKHBvaW50KSAocG9pbnQtbWF4KSkpKQoKCSAgKHdoZW4gYXJnLWxpc3QKCSAg ICA7OyBIYW5kbGUgYXJncyB3aXRoaW4gZG9jLiAgVGhpcyBjYXNlIGNvdWxkIGJlIG1lcmdl ZCB3aXRoCgkgICAgOzsgdGhlIHJlbWFpbmluZyBvbmVzIGJ1dCBoYXJkbHkgc2VlbXMgd29y dGggdGhlIGVmZm9ydC4KCSAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQoJICAgIChsZXQg KChyZWdleHAgKG1hcGNvbmNhdAoJCQkgICAncmVnZXhwLXF1b3RlCgkJCSAgIChtYXBjYXIg J3VwY2FzZSBhcmctbGlzdCkgIlxcfCIpKQoJCSAgKHRvIChtYWtlLW1hcmtlcikpCgkJICBj YXNlLWZvbGQtc2VhcmNoKQoJICAgICAgKHdoaWxlIChyZS1zZWFyY2gtZm9yd2FyZCByZWdl eHAgbmlsIHQpCgkJKGxldCAoKHN0cmluZyAoZG93bmNhc2UgKG1hdGNoLXN0cmluZy1uby1w cm9wZXJ0aWVzIDApKSkKCQkgICAgICAoZnJvbSAobWF0Y2gtYmVnaW5uaW5nIDApKSkKCQkg IChzZXQtbWFya2VyIHRvIChtYXRjaC1lbmQgMCkpCgkJICAoY2F0Y2ggJ2ZvdW5kCgkJICAg IChkb2xpc3QgKGFyZyBhcmctbGlzdCkKCQkgICAgICA7OyBXZSBhc3N1bWUgdGhhdCBhbGwg YXJncyBhcmUgZG93bmNhc2UuCgkJICAgICAgKHdoZW4gKHN0cmluZy1lcXVhbCBzdHJpbmcg YXJnKQoJCQkocmVwbGFjZS1tYXRjaCAoY29uY2F0ICJAdmFyeyIgc3RyaW5nICJ9IikgdCkK CQkJKHRocm93ICdmb3VuZCB0KSkpKSkpCgkgICAgICAoc2V0LW1hcmtlciB0byBuaWwpKSkK CgkgIDs7IExvb2sgZm9yIHF1b3RlcywgZG91YmxlLXF1b3RlcywgbmlsIGFuZCBvdGhlciBm dW5ueSB0aGluZ3MuCgkgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCgkgIChsZXQgKHF1b3Rl ZCkKCSAgICAod2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkICJcXChgXFwpXFwoPzpbXiBcdFxu J10rXFwpXFwoJ1xcKVwKXFx8XFwoPzpeXFx8WyBcdFxuKCpgXVxcKVxcKFxcKD86W05uXW9u LVxcKT9cXChuaWxcXClcXHx0XFx8XFwoXFwoPzpbQ01dLVxcKStcXCg/OlthLXpBLVpdK1xc fFteIGEtekEtWlx0XG5dK1xcKVxcKVwKXFx8XFwoU1BDXFx8UkVUXFx8TEZEXFx8VEFCXFx8 QlNcXHxFU0NcXHxERUxcXHxTSElGVFxcfENUUkxcXHxNRVRBXFx8RlswLTldK1xcKVxcKVxc KD86JFxcfFsgXHRcbiwuOzo/IScpXVxcKVwKXFx8XFwoXFxcXD9cIlxcKVxcfFxcKD86XFwo XFxcXFxcXFxbW3tdXFwpW15dfV0rXFwoW119XVxcKVxcfFxcKDxbXj5dKz5cXClcXClcClxc fFxcXFxcXChbKFt7XVxcKVxcfFxcKFxcXFwkXFwpIiBuaWwgdCkKCSAgICAgIChjb25kCgkg ICAgICAgKChtYXRjaC1iZWdpbm5pbmcgMSkKCQk7OyBgLi4uJwoJCShyZXBsYWNlLW1hdGNo ICJAY29kZXsiIG5pbCBuaWwgbmlsIDEpCgkJKHJlcGxhY2UtbWF0Y2ggIn0iIG5pbCBuaWwg bmlsIDIpKQoJICAgICAgICgobWF0Y2gtYmVnaW5uaW5nIDMpCgkJOzsgYG5pbCcsIGBub24t bmlsJyBhbmQgYHQnLgoJCShjb25kCgkJICgobWF0Y2gtYmVnaW5uaW5nIDQpCgkJICAocmVw bGFjZS1tYXRjaCAoY29uY2F0ICJAY29kZXtuaWx9IikgdCBuaWwgbmlsIDQpKQoJCSAoKG1h dGNoLWJlZ2lubmluZyA1KQoJCSAgKHJlcGxhY2UtbWF0Y2ggKGNvbmNhdCAiQGtiZHsiICht YXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyA1KSAifSIpCgkJCQkgdCBuaWwgbmlsIDUpKQoJ CSAoKG1hdGNoLWJlZ2lubmluZyA2KQoJCSAgKHJlcGxhY2UtbWF0Y2ggKGNvbmNhdCAiQGtl eXsiIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyA2KSAifSIpCgkJCQkgdCBuaWwgbmls IDYpKQoJCSAodAoJCSAgKHJlcGxhY2UtbWF0Y2ggKGNvbmNhdCAiQGNvZGV7IiAobWF0Y2gt c3RyaW5nLW5vLXByb3BlcnRpZXMgMykgIn0iKQoJCQkJIHQgbmlsIG5pbCAzKSkpKQoJICAg ICAgICgobWF0Y2gtYmVnaW5uaW5nIDcpCgkJOzsgXCIKCQkocmVwbGFjZS1tYXRjaCAoaWYg cXVvdGVkICInJyIgImBgIikpCgkJKHNldHEgcXVvdGVkIChub3QgcXVvdGVkICkpKQoJICAg ICAgICgobWF0Y2gtYmVnaW5uaW5nIDgpCgkJOzsgXFxbLi4uXSwgXFx7Li4ufQoJCShyZXBs YWNlLW1hdGNoICJAY29kZXsiIG5pbCB0IG5pbCA4KQoJCShyZXBsYWNlLW1hdGNoICJ9IiBu aWwgdCBuaWwgOSkpCgkgICAgICAgKChtYXRjaC1iZWdpbm5pbmcgMTApCgkJOzsgXFw8Li4u PgoJCShyZXBsYWNlLW1hdGNoICIiKSkKCSAgICAgICAoKG1hdGNoLWJlZ2lubmluZyAxMSkK CQk7OyBBbiBlc2NhcGVkIHBhcmVuICh0aGlzIG11c3QgZm9sbG93IGNhc2UgMikuCgkJKHJl cGxhY2UtbWF0Y2ggKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDExKSkpCgkgICAgICAg KChtYXRjaC1iZWdpbm5pbmcgMTIpCgkJOzsgQSBiYWNrc2xhc2ggYXQgRU9MLgoJCShyZXBs YWNlLW1hdGNoICIiKSkKCSAgICAgICApKSkKCSAgOzsgRmlsbC4KCSAgKGxldCAoKGZpbGwt Y29sdW1uIDcwKSkKCSAgICAoZmlsbC1yZWdpb24gKHBvaW50LW1pbikgKHBvaW50LW1heCkp KQoJICA7OyBIYW5kbGUga2V5LWJpbmRpbmdzLCBtYW51YWwgcmVmZXJlbmNlcyBhbmQgVVJM cywgbWF5YmUuCgkgIChzZXRxIGRvYyAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVz IChwb2ludC1taW4pIChwb2ludC1tYXgpKSkpKQoKICAgICAgKGxldCAoYXQtc3RyaW5nIGFy Zy1saXN0LXN0cmluZykKCShjb25kCgkgKChlcSB0eXBlICdjb21tYW5kKQoJICAoc2V0cSBh dC1zdHJpbmcgKGNvbnMgIkBkZWZmbiBDb21tYW5kIiAiQGVuZCBkZWZmbiIpKSkKCSAoKGVx IHR5cGUgJ2Z1bmN0aW9uKQoJICAoc2V0cSBhdC1zdHJpbmcgKGNvbnMgIkBkZWZ1biIgIkBl bmQgZGVmdW4iKSkpCgkgKChlcSB0eXBlICd2YXJpYWJsZSkKCSAgKHNldHEgYXQtc3RyaW5n IChjb25zICJAZGVmdmFyIiAiQGVuZCBkZWZ2YXIiKSkpCgkgKChlcSB0eXBlICdvcHRpb24p CgkgIChzZXRxIGF0LXN0cmluZyAoY29ucyAiQGRlZm9wdCIgIkBlbmQgZGVmb3B0IikpKQoJ ICgoZXEgdHlwZSAnbWFjcm8pCgkgIChzZXRxIGF0LXN0cmluZyAoY29ucyAiQGRlZm1hYyIg IkBlbmQgZGVmbWFjIikpKSkKCgkoZG9saXN0IChhcmcgYXJnLWxpc3QpCgkgIChzZXRxIGFy Zy1saXN0LXN0cmluZyAoY29uY2F0IGFyZy1saXN0LXN0cmluZyAiICIgYXJnKSkpCgoJOzsg SGFyZGx5IGFueW9uZSB3YW50cyB0byBzZWUgdGhpcyBzbyBSRU1PVkUgaXQuCgkod2l0aC1z ZWxlY3RlZC13aW5kb3cgKGRpc3BsYXktYnVmZmVyIChnZXQtYnVmZmVyLWNyZWF0ZSAiKkVs aW5mby1zaG93IikpCgkgIChkZWxldGUtcmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgp KQoJICAoaW5zZXJ0IChjb25jYXQgKGNhciBhdC1zdHJpbmcpICIgIiBuYW1lIGFyZy1saXN0 LXN0cmluZyAiXG4iCgkJCSAgZG9jICJcbiIgKGNkciBhdC1zdHJpbmcpICJcblxuIikpKQoK CShraWxsLW5ldyAoY29uY2F0IChjYXIgYXQtc3RyaW5nKSAiICIgbmFtZSBhcmctbGlzdC1z dHJpbmcgIlxuIgoJCQkgIGRvYyAiXG4iIChjZHIgYXQtc3RyaW5nKSAiXG5cbiIpKSkpKSkK Cjs7IFRPRE86IGRlZmluZS1tb2RlIGFuZCBkZWZpbmUtZGVyaXZlZC1tb2RlIGFyZSBub3Qg aGFuZGxlZC4KCjs7IFRPRE86IFNwZWNpYWwgZm9ybXMgYXJlIHdyaXR0ZW4gaW4gQyBhbmQg aGF2ZSBVTkVWQUxMRUQgc2V0LgoKKHByb3ZpZGUgJ2VsaW5mbykKCjs7IEJlbG93IHRoaXMg bGluZSBhcmUgbW9uc3RlcnMuCgo7OyBVc2VkIGZvciB0ZXN0aW5nIG9ubHksIHNvIFJFTU9W RSBpdC4KKGRlZnVuIGVsaW5mby10ZXN0ICgpCiAgKGludGVyYWN0aXZlKQogICh3aXRoLWN1 cnJlbnQtYnVmZmVyIChnZXQtYnVmZmVyLWNyZWF0ZSAiKmVsaW5mby10ZXN0KiIpCiAgICAo ZGVsZXRlLXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpCiAgKGxldCAoKG9sZC1w b2ludCAocG9pbnQpKQoJbmV3LXBvaW50IG5vZGUgc3BsaXQtaGVpZ2h0LXRocmVzaG9sZCBz cGxpdC13aWR0aC10aHJlc2hvbGQpCiAgICAod2hpbGUgdAogICAgICAoSW5mby1mb3J3YXJk LW5vZGUgbmlsIG5pbCB0KQogICAgICAoZm9yd2FyZC1saW5lIChyYW5kb20gNDMpKQogICAg ICAoc2V0cSBvbGQtcG9pbnQgKHBvaW50KSkKICAgICAgKHNldHEgbm9kZSBJbmZvLWN1cnJl bnQtbm9kZSkKICAgICAgKGVsaW5mby1nb3RvLXRleGkpCiAgICAgICh3aXRoLXNlbGVjdGVk LXdpbmRvdyBlbGluZm8tdGVzdC10ZXhpLXdpbmRvdwoJKGVsaW5mby1nb3RvLWluZm8pCgko c2l0LWZvciAwLjEpKQogICAgICAoc2V0cSBuZXctcG9pbnQgKHBvaW50KSkKICAgICAgKHdp dGgtY3VycmVudC1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlICIqZWxpbmZvLXRlc3QqIikK CShnb3RvLWNoYXIgKHBvaW50LW1heCkpCgkoaW5zZXJ0CgkgKGZvcm1hdCAibm9kZTogJXMg ICBvbGQ6ICVzICAgbmV3OiAlcyAgIGRpZmY6ICVzIFxuIgoJCSBub2RlIG9sZC1wb2ludCBu ZXctcG9pbnQgKC0gb2xkLXBvaW50IG5ldy1wb2ludCkpKSkKICAgICAgKGdvdG8tY2hhciBv bGQtcG9pbnQpKSkpCg== --------------090705060708070109070606-- From unknown Sat Aug 16 21:21:50 2025 X-Loop: owner@emacsbugs.donarmstrong.com Subject: bug#4026: `characterp' undocumented optional arg 'ignore' Reply-To: Stefan Monnier , 4026@debbugs.gnu.org Resent-From: Stefan Monnier Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Thu, 06 Aug 2009 18:50:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-Emacs-PR-Message: followup 4026 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by 4026-submit@emacsbugs.donarmstrong.com id=B4026.124958416816671 (code B ref 4026); Thu, 06 Aug 2009 18:50:04 +0000 Received: (at 4026) by emacsbugs.donarmstrong.com; 6 Aug 2009 18:42:48 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-5.0 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from ironport2-out.teksavvy.com (ironport2-out.teksavvy.com [206.248.154.182]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n76IgkC2016668 for <4026@emacsbugs.donarmstrong.com>; Thu, 6 Aug 2009 11:42:47 -0700 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuEEABTBekpFxL8W/2dsb2JhbACBUM9ShBgFhzQ X-IronPort-AV: E=Sophos;i="4.43,335,1246852800"; d="scan'208";a="43113035" Received: from 69-196-191-22.dsl.teksavvy.com (HELO ceviche.home) ([69.196.191.22]) by ironport2-out.teksavvy.com with ESMTP; 06 Aug 2009 14:42:41 -0400 Received: by ceviche.home (Postfix, from userid 20848) id C2B78B40CD; Thu, 6 Aug 2009 14:42:40 -0400 (EDT) From: Stefan Monnier To: martin rudalics Cc: 4026@debbugs.gnu.org, MON KEY Message-ID: References: <4A786578.7080503@gmx.at> <4A78706C.1060601@gmx.at> <4A798DF1.50402@gmx.at> Date: Thu, 06 Aug 2009 14:42:40 -0400 In-Reply-To: <4A798DF1.50402@gmx.at> (martin rudalics's message of "Wed, 05 Aug 2009 15:49:37 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii >> Sorry in advance for being so dense, but what/where specifically is >> this code? > It's code on my machine; see the attached copy. Your entry point is > `elinfo-check-directory'. If you set `elinfo-log-warnings' to a non-nil > value, you should be also able to see some 600 "bugs" where the argument > names differ in code and manual. So I hope to convince you that fixing > all these is hardly fesible ;-) Why don't you add it somewhere (e.g. maybe in the `admin' or `test' subdir)? Stefan From unknown Sat Aug 16 21:21:50 2025 X-Loop: owner@emacsbugs.donarmstrong.com Subject: bug#4026: `characterp' undocumented optional arg 'ignore' Reply-To: martin rudalics , 4026@debbugs.gnu.org Resent-From: martin rudalics Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Fri, 07 Aug 2009 13:10:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-Emacs-PR-Message: followup 4026 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by 4026-submit@emacsbugs.donarmstrong.com id=B4026.124965009219373 (code B ref 4026); Fri, 07 Aug 2009 13:10:04 +0000 Received: (at 4026) by emacsbugs.donarmstrong.com; 7 Aug 2009 13:01:32 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-4.5 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with SMTP id n77D1Tit019368 for <4026@emacsbugs.donarmstrong.com>; Fri, 7 Aug 2009 06:01:31 -0700 Received: (qmail invoked by alias); 07 Aug 2009 13:01:19 -0000 Received: from 62-47-54-134.adsl.highway.telekom.at (EHLO [62.47.54.134]) [62.47.54.134] by mail.gmx.net (mp037) with SMTP; 07 Aug 2009 15:01:19 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX18OH8AkSoUOW3m67cKWGRSWu93zKxMtnDB/3aAf/8 EvFTW+6I8z83ez Message-ID: <4A7C259B.8060206@gmx.at> Date: Fri, 07 Aug 2009 15:01:15 +0200 From: martin rudalics User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 To: Stefan Monnier CC: 4026@debbugs.gnu.org, MON KEY References: <4A786578.7080503@gmx.at> <4A78706C.1060601@gmx.at> <4A798DF1.50402@gmx.at> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-FuHaFi: 0.82 > Why don't you add it somewhere (e.g. maybe in the `admin' or `test' > subdir)? I haven't tested most of its functionality yet. As soon as I've done that I can add it to `admin'. martin From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 12 16:19:42 2011 Received: (at control) by debbugs.gnu.org; 12 Jul 2011 20:19:42 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QgjQj-0000Nh-S4 for submit@debbugs.gnu.org; Tue, 12 Jul 2011 16:19:42 -0400 Received: from hermes.netfonds.no ([80.91.224.195]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QgjQj-0000NX-1b for control@debbugs.gnu.org; Tue, 12 Jul 2011 16:19:41 -0400 Received: from cm-84.215.51.58.getinternet.no ([84.215.51.58] helo=quimbies.gnus.org) by hermes.netfonds.no with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1QgjQY-00059m-6g for control@debbugs.gnu.org; Tue, 12 Jul 2011 22:19:30 +0200 Date: Tue, 12 Jul 2011 22:19:29 +0200 Message-Id: To: control@debbugs.gnu.org From: Lars Magne Ingebrigtsen Subject: control message for bug #4026 X-MailScanner-ID: 1QgjQY-00059m-6g X-Netfonds-MailScanner: Found to be clean X-Netfonds-MailScanner-From: larsi@gnus.org MailScanner-NULL-Check: 1311106770.35482@JRu4gFhWezkO6TnZgl+ubA X-Spam-Status: No X-Spam-Score: -2.7 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.7 (--) tags 4026 notabug close 4026 From unknown Sat Aug 16 21:21:50 2025 X-Loop: help-debbugs@gnu.org Subject: bug#4026: `characterp' undocumented optional arg 'ignore' Resent-From: Lars Magne Ingebrigtsen Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Jul 2011 20:21:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 4026 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: notabug To: MON KEY Cc: 4026@debbugs.gnu.org Received: via spool by 4026-submit@debbugs.gnu.org id=B4026.13105020271648 (code B ref 4026); Tue, 12 Jul 2011 20:21:05 +0000 Received: (at 4026) by debbugs.gnu.org; 12 Jul 2011 20:20:27 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QgjRP-0000QN-1y for submit@debbugs.gnu.org; Tue, 12 Jul 2011 16:20:27 -0400 Received: from hermes.netfonds.no ([80.91.224.195]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QgjQy-0000O2-Rv for 4026@debbugs.gnu.org; Tue, 12 Jul 2011 16:20:02 -0400 Received: from cm-84.215.51.58.getinternet.no ([84.215.51.58] helo=quimbies.gnus.org) by hermes.netfonds.no with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1QgjQl-0005B0-Er; Tue, 12 Jul 2011 22:19:43 +0200 From: Lars Magne Ingebrigtsen In-Reply-To: (MON KEY's message of "Mon, 3 Aug 2009 18:15:13 -0400") Date: Tue, 12 Jul 2011 22:19:25 +0200 Message-ID: References: User-Agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.50 (gnu/linux) X-Now-Playing: Peter Gabriel's _Peter Gabriel 4_: "San Jacinto" X-Hashcash: 1:23:110712:monkey@sandpframing.com::9l6FC8h1iMtRSFFP:00000000000000000000000000000000000000PN91 X-Hashcash: 1:23:110712:4026@debbugs.gnu.org::MP97kASo2MiPiwWZ:00000000000000000000000000000000000000000WyKE MIME-Version: 1.0 Content-Type: text/plain X-MailScanner-ID: 1QgjQl-0005B0-Er X-Netfonds-MailScanner: Found to be clean X-Netfonds-MailScanner-From: larsi@gnus.org MailScanner-NULL-Check: 1311106783.54047@F4//hOn1gfwgC1dbaLVuzA X-Spam-Status: No X-Spam-Score: -2.7 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.7 (--) MON KEY writes: > `characterp' has undocumented optional arg 'ignore' It's called `ignore', and it's optional. I think you can ignore it. Closing this bug report. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog http://lars.ingebrigtsen.no/ From unknown Sat Aug 16 21:21:50 2025 X-Loop: help-debbugs@gnu.org Subject: bug#4026: `characterp' undocumented optional arg 'ignore' Resent-From: Andreas Schwab Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Jul 2011 21:20:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 4026 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: notabug To: MON KEY Cc: 4026@debbugs.gnu.org X-Debbugs-Original-Cc: 4026@emacsbugs.donarmstrong.com, bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.131050559417125 (code B ref -1); Tue, 12 Jul 2011 21:20:03 +0000 Received: (at submit) by debbugs.gnu.org; 12 Jul 2011 21:19:54 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QgkN0-0004SA-2A for submit@debbugs.gnu.org; Tue, 12 Jul 2011 17:19:54 -0400 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QgkMy-0004Rw-60 for submit@debbugs.gnu.org; Tue, 12 Jul 2011 17:19:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QgkMo-00067a-6M for submit@debbugs.gnu.org; Tue, 12 Jul 2011 17:19:45 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([140.186.70.17]:42181) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QgkMn-00067O-7t for submit@debbugs.gnu.org; Tue, 12 Jul 2011 17:19:41 -0400 Received: from eggs.gnu.org ([140.186.70.92]:52900) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QgkMi-0007P5-Mm for bug-gnu-emacs@gnu.org; Tue, 12 Jul 2011 17:19:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QgkMb-00063f-Fn for bug-gnu-emacs@gnu.org; Tue, 12 Jul 2011 17:19:35 -0400 Received: from mail-out.m-online.net ([212.18.0.9]:59227) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QgkMa-000632-O2 for bug-gnu-emacs@gnu.org; Tue, 12 Jul 2011 17:19:29 -0400 Received: from frontend1.mail.m-online.net (unknown [192.168.8.180]) by mail-out.m-online.net (Postfix) with ESMTP id F161D1C01DC8; Tue, 12 Jul 2011 23:19:25 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.8.164]) by mail.m-online.net (Postfix) with ESMTP id E13311C000AA; Tue, 12 Jul 2011 23:19:25 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.180]) by localhost (dynscan1.mail.m-online.net [192.168.8.164]) (amavisd-new, port 10024) with ESMTP id CAM9yUyTpWbJ; Tue, 12 Jul 2011 23:19:25 +0200 (CEST) Received: from igel.home (ppp-93-104-141-65.dynamic.mnet-online.de [93.104.141.65]) by mail.mnet-online.de (Postfix) with ESMTP; Tue, 12 Jul 2011 23:19:25 +0200 (CEST) Received: by igel.home (Postfix, from userid 501) id C3C84CA293; Tue, 12 Jul 2011 23:19:24 +0200 (CEST) From: Andreas Schwab References: X-Yow: .. My pants just went on a wild rampage through a Long Island Bowling Alley!! Date: Tue, 12 Jul 2011 23:19:24 +0200 In-Reply-To: (MON KEY's message of "Mon, 3 Aug 2009 18:15:13 -0400") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -2.6 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) The ignored argument is no longer advertised. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."