Received: (at 61436) by debbugs.gnu.org; 17 Apr 2024 13:22:41 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 17 09:22:40 2024 Received: from localhost ([127.0.0.1]:46077 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1rx5FH-0001DN-3e for submit <at> debbugs.gnu.org; Wed, 17 Apr 2024 09:22:40 -0400 Received: from mail.muc.de ([193.149.48.3]:40515) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <acm@HIDDEN>) id 1rx5FD-0001C8-E0 for 61436 <at> debbugs.gnu.org; Wed, 17 Apr 2024 09:22:37 -0400 Received: (qmail 81841 invoked by uid 3782); 17 Apr 2024 15:22:16 +0200 Received: from muc.de (pd953ac81.dip0.t-ipconnect.de [217.83.172.129]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Wed, 17 Apr 2024 15:22:16 +0200 Received: (qmail 7831 invoked by uid 1000); 17 Apr 2024 13:22:16 -0000 Date: Wed, 17 Apr 2024 13:22:16 +0000 To: 61436 <at> debbugs.gnu.org Subject: Re: bug#61436: Emacs Freezing With Java Files Message-ID: <Zh_NCNXE7bkgwezF@ACM> References: <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM> <8734yew8yr.fsf@HIDDEN> <ZSru9aiO614QDrR5@ACM> <CA+OMD9iMzSxj36xHOw993oo+YcmenUwR8dgzsf_jWUgwjAbHDg@HIDDEN> <ZS1DIGWbZCTGKkXQ@ACM> <878r7voc6k.fsf@HIDDEN> <ZTUubFvcv4LMfIW3@ACM> <87il6yzid4.fsf@HIDDEN> <CA+OMD9hgM_NX7GmeW8ph5fBW6SkFGogf4W4JOO5o62H3X15WHw@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <CA+OMD9hgM_NX7GmeW8ph5fBW6SkFGogf4W4JOO5o62H3X15WHw@HIDDEN> X-Submission-Agent: TMDA/1.3.x (Ph3nix) From: Alan Mackenzie <acm@HIDDEN> X-Primary-Address: acm@HIDDEN X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 61436 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hello, Bob. On Tue, Apr 16, 2024 at 21:35:59 -0400, Robert Weiner wrote: > Hi Alan: > I just re-read this whole thread and realized you resolved the problem > for the Java defun-prompt-regexp but not the C++ > defun-prompt-regexp in Hyperbole's hui-select.el:L404 (probably were > just tired after all of that). > Today, someone else reported that the C++ regexp was hanging their > Emacs. Do you think you could pick this back up and rework the C++ > regexp as you did the Java one? It would be a big help; otherwise, I > think we'll just have to disable that functionality in Hyperbole. > Best regards, > Bob > On Sun, Oct 22, 2023 at 1:18â¯PM Mats Lidell > <[1]mats.lidell@HIDDEN> wrote: Yes, I'll happily finish off that C++ regexp. I made considerable progress with it back in October, getting smething basically working but with some rough edges. One problem is that the regexp was ~1600 characters long. I don't know if this might make the program slow - possibly not. I've found the .el file I was working in, and located my notes from October. It's going to take longer than a day or two, but hopefully less than a week or two. [ .... ] -- Alan Mackenzie (Nuremberg, Germany).
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Alan Mackenzie <acm@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Debbugs Internal Request <help-debbugs@HIDDEN>
to internal_control <at> debbugs.gnu.org
.
Full text available.Received: (at 61436-done) by debbugs.gnu.org; 22 Oct 2023 17:18:38 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 22 13:18:37 2023 Received: from localhost ([127.0.0.1]:48011 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1quc61-0002QQ-K4 for submit <at> debbugs.gnu.org; Sun, 22 Oct 2023 13:18:37 -0400 Received: from smtp.egensajt.se ([194.68.80.251]:33880) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mats.lidell@HIDDEN>) id 1quc5y-0002QC-RM for 61436-done <at> debbugs.gnu.org; Sun, 22 Oct 2023 13:18:36 -0400 Received: from ethel (c80-217-132-174.bredband.tele2.se [80.217.132.174]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: mats.lidell@HIDDEN) by smtp.egensajt.se (Postfix) with ESMTPSA id 03F69204A9; Sun, 22 Oct 2023 19:17:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lidells.se; s=dkim; t=1697995080; bh=orW3T8uCW6vh1OL2r+ixy5Pz3zgpx3WzP7t3m59JD+g=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=txKdQUs6ua85+/Fwnhf5eg8+NPeQFLAWCxsWjoHUKBirN4FpyJsr+aHmxzfgdl47w HQppjSrB7DIWm2TsMHeQRVqeYBNUIQP5K3eFZszfxbkreOYjquVLu07AByu3grBb71 m+5TNo8UtT7WU3vcPAqVIKQyv/70FUAYre7Igxvk= From: Mats Lidell <mats.lidell@HIDDEN> To: Alan Mackenzie <acm@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files In-Reply-To: <ZTUubFvcv4LMfIW3@ACM> (Alan Mackenzie's message of "Sun, 22 Oct 2023 14:15:08 +0000") References: <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM> <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM> <8734yew8yr.fsf@HIDDEN> <ZSru9aiO614QDrR5@ACM> <CA+OMD9iMzSxj36xHOw993oo+YcmenUwR8dgzsf_jWUgwjAbHDg@HIDDEN> <ZS1DIGWbZCTGKkXQ@ACM> <878r7voc6k.fsf@HIDDEN> <ZTUubFvcv4LMfIW3@ACM> Date: Sun, 22 Oct 2023 19:17:59 +0200 Message-ID: <87il6yzid4.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 61436-done Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, 61436-done <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, Robert Weiner <rswgnu@HIDDEN>, Jens Schmidt <jschmidt4gnu@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) Hi Alan, > Alan Mackenzie writes: > Can I ask you to delete that buggy version and try the following > instead? Thanks! Looks good to me. With the regexp and using Emacs 30.0.50 I moved around, jumping from function to function back and forth. I tested that with a few java files including the one submitted with the initial bug report. During the testing I did not experience any noticeable freeze. %% Mats
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436-done) by debbugs.gnu.org; 22 Oct 2023 14:15:53 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 22 10:15:52 2023 Received: from localhost ([127.0.0.1]:47883 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1quZFA-0004nU-Bp for submit <at> debbugs.gnu.org; Sun, 22 Oct 2023 10:15:52 -0400 Received: from mail.muc.de ([193.149.48.3]:43817) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <acm@HIDDEN>) id 1quZF4-0004n6-Gv for 61436-done <at> debbugs.gnu.org; Sun, 22 Oct 2023 10:15:50 -0400 Received: (qmail 67533 invoked by uid 3782); 22 Oct 2023 16:15:11 +0200 Received: from acm.muc.de (p4fe15a7d.dip0.t-ipconnect.de [79.225.90.125]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Sun, 22 Oct 2023 16:15:10 +0200 Received: (qmail 21494 invoked by uid 1000); 22 Oct 2023 14:15:08 -0000 Date: Sun, 22 Oct 2023 14:15:08 +0000 To: Mats Lidell <mats.lidell@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files Message-ID: <ZTUubFvcv4LMfIW3@ACM> References: <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM> <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM> <8734yew8yr.fsf@HIDDEN> <ZSru9aiO614QDrR5@ACM> <CA+OMD9iMzSxj36xHOw993oo+YcmenUwR8dgzsf_jWUgwjAbHDg@HIDDEN> <ZS1DIGWbZCTGKkXQ@ACM> <878r7voc6k.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <878r7voc6k.fsf@HIDDEN> X-Submission-Agent: TMDA/1.3.x (Ph3nix) From: Alan Mackenzie <acm@HIDDEN> X-Primary-Address: acm@HIDDEN X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 61436-done Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, 61436-done <at> debbugs.gnu.org, acm@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, Robert Weiner <rswgnu@HIDDEN>, Jens Schmidt <jschmidt4gnu@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hello, Mats. On Sun, Oct 22, 2023 at 00:14:43 +0200, Mats Lidell wrote: > Hi Alan, > Sorry for coming back late to this issue but today I tried to use the > suggested regexp and got into some problems doing that. Sorry about that. > > Alan Mackenzie writes: > > Here's the regexp. Would people please try it out and let me know how > > well it works. > > > > (defconst java-defun-prompt-regexp > > (let ((space* "[ \t\n\r\f]*") > > (space+ "[ \t\n\r\f]+") > > (modifier* > > (concat "\\(?:" > > (regexp-opt '("abstract" "const" "default" "final" "native" > > "private" "protected" "public" "static" > > "strictfp" "synchronized" "threadsafe" > > "transient" "volatile") > > 'words) ; Compatible with XEmacs > > space+ "\\)*")) > > (ids-with-dots "[_$a-zA-Z][_$.a-zA-Z0-9]*") > > (ids-with-dot-\[\] "[[_$a-zA-Z][][_$.a-zA-Z0-9]*") > > (paren-exp "([^);{}]*)") > > (generic-exp "<[^(){};]*>")) > > (concat "^[ \t]*" > > modifier* > > "\\(?:" generic-exp space* "\\)?" > > ids-with-dot-\[\] space+ ; first part of type > > "\\(?:" ids-with-dot-\[\] space+ "\\)?" ; optional second part of type. > > "\\(?:[_a-zA-Z][^][ \t:;.,{}()=<>]*" ; defun name > > "\\|" ids-with-dot* > > "\\)" space* > > paren-exp > > "\\(?:" space* "]\\)*" ; What's this for? > > "\\(?:" space* "\\<throws\\>" space* ids-with-dot-\[\]s* > > "\\(?:," space* ids-with-dot-\[\]s* "\\)*" > > "\\)?" > > space*))) > Can there be some typos in there or missing lines? I get a compiler warning > for space+ being used in the let, should it be a let*? ids-with-dots is > reported as not used. Can it be meant to be ids-with-dot*? > ids-with-dot-\[\]s* is undefined!? No, the regexp just wasn't tested right. I made the mistake in "testing" it of having all the things like space+ already defined as defconsts. So I failed to pick up the let which should have been let* and giving all the uses of the bound variables their actual names. :-( Can I ask you to delete that buggy version and try the following instead? Thanks! (defconst java-defun-prompt-regexp (let* ((space* "[ \t\n\r\f]*") (space+ "[ \t\n\r\f]+") (modifier* (concat "\\(?:" (regexp-opt '("abstract" "const" "default" "final" "native" "private" "protected" "public" "static" "strictfp" "synchronized" "threadsafe" "transient" "volatile") 'words) ; Compatible with XEmacs space+ "\\)*")) (ids-with-dots "[_$a-zA-Z][_$.a-zA-Z0-9]*") (ids-with-dot-\[\] "[[_$a-zA-Z][][_$.a-zA-Z0-9]*") (paren-exp "([^);{}]*)") (generic-exp "<[^(){};]*>")) (concat "^[ \t]*" modifier* "\\(?:" generic-exp space* "\\)?" ids-with-dot-\[\] space+ ; first part of type "\\(?:" ids-with-dot-\[\] space+ "\\)?" ; optional second part of type. "\\(?:[_a-zA-Z][^][ \t:;.,{}()=<>]*" ; defun name "\\|" ids-with-dots "\\)" space* paren-exp "\\(?:" space* "]\\)*" ; What's this for? "\\(?:" space* "\\<throws\\>" space* ids-with-dot-\[\] "\\(?:," space* ids-with-dot-\[\] "\\)*" "\\)?" space*))) > Yours > -- > %% Mats -- Alan Mackenzie (Nuremberg, Germany).
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436-done) by debbugs.gnu.org; 21 Oct 2023 22:15:27 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 21 18:15:27 2023 Received: from localhost ([127.0.0.1]:45203 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1quKFf-0000uk-TS for submit <at> debbugs.gnu.org; Sat, 21 Oct 2023 18:15:27 -0400 Received: from smtp.egensajt.se ([194.68.80.251]:54842) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mats.lidell@HIDDEN>) id 1quKFa-0000uU-S9 for 61436-done <at> debbugs.gnu.org; Sat, 21 Oct 2023 18:15:23 -0400 Received: from ethel (c80-217-132-174.bredband.tele2.se [80.217.132.174]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: mats.lidell@HIDDEN) by smtp.egensajt.se (Postfix) with ESMTPSA id 5B3F420259; Sun, 22 Oct 2023 00:14:44 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lidells.se; s=dkim; t=1697926484; bh=HfHDRKdFE+db0zZzLusjMaZlndYw5PxDBvEg0BqeTic=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=T38DEBMhnJFoiOqDEMWz57L8vucPK3Xtjt8LQUhthi3KjQ++r1qlHFXcUBpPQIuyt 8GS8zvpJpBpiZS6YIH4u2kso6zoO48vfzrwSblCV87qoeHvnoLqsAWq0QYIJi9jA+H W4ZDCZa/oJuopSqSTBBqpni/XsltGdX98UwbwoiA= From: Mats Lidell <mats.lidell@HIDDEN> To: Alan Mackenzie <acm@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files In-Reply-To: <ZS1DIGWbZCTGKkXQ@ACM> (Alan Mackenzie's message of "Mon, 16 Oct 2023 14:05:20 +0000") References: <87il7ew5wx.fsf@HIDDEN> <87il7dbosk.fsf@HIDDEN> <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM> <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM> <8734yew8yr.fsf@HIDDEN> <ZSru9aiO614QDrR5@ACM> <CA+OMD9iMzSxj36xHOw993oo+YcmenUwR8dgzsf_jWUgwjAbHDg@HIDDEN> <ZS1DIGWbZCTGKkXQ@ACM> Date: Sun, 22 Oct 2023 00:14:43 +0200 Message-ID: <878r7voc6k.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 61436-done Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, 61436-done <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, Robert Weiner <rswgnu@HIDDEN>, Jens Schmidt <jschmidt4gnu@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) Hi Alan, Sorry for coming back late to this issue but today I tried to use the suggested regexp and got into some problems doing that. > Alan Mackenzie writes: > Here's the regexp. Would people please try it out and let me know how > well it works. > > (defconst java-defun-prompt-regexp > (let ((space* "[ \t\n\r\f]*") > (space+ "[ \t\n\r\f]+") > (modifier* > (concat "\\(?:" > (regexp-opt '("abstract" "const" "default" "final" "native" > "private" "protected" "public" "static" > "strictfp" "synchronized" "threadsafe" > "transient" "volatile") > 'words) ; Compatible with XEmacs > space+ "\\)*")) > (ids-with-dots "[_$a-zA-Z][_$.a-zA-Z0-9]*") > (ids-with-dot-\[\] "[[_$a-zA-Z][][_$.a-zA-Z0-9]*") > (paren-exp "([^);{}]*)") > (generic-exp "<[^(){};]*>")) > (concat "^[ \t]*" > modifier* > "\\(?:" generic-exp space* "\\)?" > ids-with-dot-\[\] space+ ; first part of type > "\\(?:" ids-with-dot-\[\] space+ "\\)?" ; optional second part of type. > "\\(?:[_a-zA-Z][^][ \t:;.,{}()=<>]*" ; defun name > "\\|" ids-with-dot* > "\\)" space* > paren-exp > "\\(?:" space* "]\\)*" ; What's this for? > "\\(?:" space* "\\<throws\\>" space* ids-with-dot-\[\]s* > "\\(?:," space* ids-with-dot-\[\]s* "\\)*" > "\\)?" > space*))) Can there be some typos in there or missing lines? I get a compiler warning for space+ being used in the let, should it be a let*? ids-with-dots is reported as not used. Can it be meant to be ids-with-dot*? ids-with-dot-\[\]s* is undefined!? Yours -- %% Mats
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436-done) by debbugs.gnu.org; 16 Oct 2023 19:11:05 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 16 15:11:05 2023 Received: from localhost ([127.0.0.1]:58029 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qsSzW-0007Xi-L9 for submit <at> debbugs.gnu.org; Mon, 16 Oct 2023 15:11:05 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:40199) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <rswgnu@HIDDEN>) id 1qsSzQ-0007X7-TB for 61436-done <at> debbugs.gnu.org; Mon, 16 Oct 2023 15:11:00 -0400 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-4053e6e8ca7so16443005e9.1 for <61436-done <at> debbugs.gnu.org>; Mon, 16 Oct 2023 12:10:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697483426; x=1698088226; darn=debbugs.gnu.org; h=to:in-reply-to:cc:references:message-id:date:subject:mime-version :from:content-transfer-encoding:from:to:cc:subject:date:message-id :reply-to; bh=Truq3eY3pji/kkBQ1pXY+2p+Pji1iKi1U6Yjkd0lMIo=; b=cKhIcPWTOhT+6Bd4duY/VgQZeCR/zpTE2hZz9A8ji4rnTnc2rYZ8RZbs/qld0SUoBL RaVaBO+5d9spPYef2K+Sp2JFhy6WVFbvpmuQzwBXMCF3XKhIyFYoamLg7iTrJWtQcBbI GFfM+qeKL9Jh73Kih3ro4e96bfbQTNc//D8ffM7Ci/si5p3HPvCFqQpfe7A4TgKU7Udj LmM2Ab+Wdib9wsVFgOHfyz2rHNpEuutxQeISw+K5sdD3I7xdgMCm04bfAKEoJkpiujqG qw8XaPDEBiD2jdtPF+7bm3QVAxWUi/Aos9NTjeYDy36R3h4/NLzJi578pccQEPcxeEvU qSzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697483426; x=1698088226; h=to:in-reply-to:cc:references:message-id:date:subject:mime-version :from:content-transfer-encoding:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Truq3eY3pji/kkBQ1pXY+2p+Pji1iKi1U6Yjkd0lMIo=; b=tZQXRK+06N0dUs5nu6GxCMlPI6lo4BbrvE+vJNQxSzu8AU6YQK90cprnfskyxWsxd3 +EbNqVkuaXdSaAsocGoUyzsaKCkQjbtXbYJpTLFjM1LhuG2Xw4tnzsnjhfZdaz1pKBJ1 UIw0EWtRU69RW/b/N9ggeOzOK9/nPCbC+Nx9uDPmpMa6sxPKWvOx0DaRz4uvGXUc+1IV vTj5+iaTLZCjbqXiXcctlK49WwDXE9A3nQ5GqoBYaD7Ia+hXtoEoCEF9X50UPCiESxTm bSz0Y9cgRXYMbeRsSyikViShIMYdTn5ugH90akhQsvc9f4JBpCEgzsUs3PRM9vZRrRKM cHdw== X-Gm-Message-State: AOJu0Yx9cfLNp88hjMsbzcRQrLGlhSL1wu0EbEcf8YhWZr+FK2xuAVAQ J14Uw08wULUh1il85//9Zqs= X-Google-Smtp-Source: AGHT+IGfyySBTg97UWKt+ArPJYr+Y4J1YHeWdnHpv6GWd4cFx4QoXELHic1aaPHldYkNbOXdyl0zDA== X-Received: by 2002:adf:b305:0:b0:32d:b9c5:82fd with SMTP id j5-20020adfb305000000b0032db9c582fdmr211825wrd.7.1697483425531; Mon, 16 Oct 2023 12:10:25 -0700 (PDT) Received: from smtpclient.apple ([94.4.55.6]) by smtp.gmail.com with ESMTPSA id u12-20020adff88c000000b0032d9a1f2ec3sm8968044wrp.27.2023.10.16.12.10.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 16 Oct 2023 12:10:25 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable From: Robert Weiner <rswgnu@HIDDEN> Mime-Version: 1.0 (1.0) Subject: Re: bug#61436: Emacs Freezing With Java Files Date: Mon, 16 Oct 2023 20:10:14 +0100 Message-Id: <787A7578-55E3-4FED-8FA8-1DD0EA47FC65@HIDDEN> References: <ZS1DIGWbZCTGKkXQ@ACM> In-Reply-To: <ZS1DIGWbZCTGKkXQ@ACM> To: Alan Mackenzie <acm@HIDDEN> X-Mailer: iPhone Mail (20H30) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 61436-done Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, Mats Lidell <mats.lidell@HIDDEN>, 61436-done <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, Jens Schmidt <jschmidt4gnu@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Nice job, Alan. Thanks, look forward to trying it out. -- Bob > On Oct 16, 2023, at 3:05 PM, Alan Mackenzie <acm@HIDDEN> wrote: >=20 > =EF=BB=BFHello, Bob. >=20 >> On Sun, Oct 15, 2023 at 06:20:15 -0400, Robert Weiner wrote: >> Hi Alan: >=20 >> Would be great if you can improve those two regexps. The only >> requirement is that they be able to recognize all defuns in the two >> languages as best a regexp can, so that the whole defun can be >> selected based on finding the opening brace regardless of coding >> style. >=20 > So far, I've only looked at the Java regexp. It had some serious > deficiencies, notably: > (i) It used "\\s-" (space syntax) a lot. This fails to mach \n, which in > Java mode has comment-end syntax. > (ii) The bit for the parenthesis expression was in an optional part of > the regexp with the result that it would match "almost anything" rather > than a defun start. >=20 > In the following regexp these faults are fixed. Additionally, I've > included more modifiers (things like private, volatile) which Java seems > to have gathered over the years. I've also attempted to match generic > functions. I don't know how well this will work out. >=20 > Here's the regexp. Would people please try it out and let me know how > well it works. =20 >=20 > (defconst java-defun-prompt-regexp > (let ((space* "[ \t\n\r\f]*") > (space+ "[ \t\n\r\f]+") > (modifier* > (concat "\\(?:" > (regexp-opt '("abstract" "const" "default" "final" "native= " > "private" "protected" "public" "static" > "strictfp" "synchronized" "threadsafe" > "transient" "volatile") > 'words) ; Compatible with XEmacs > space+ "\\)*")) > (ids-with-dots "[_$a-zA-Z][_$.a-zA-Z0-9]*") > (ids-with-dot-\[\] "[[_$a-zA-Z][][_$.a-zA-Z0-9]*") > (paren-exp "([^);{}]*)") > (generic-exp "<[^(){};]*>")) > (concat "^[ \t]*" > modifier* > "\\(?:" generic-exp space* "\\)?" > ids-with-dot-\[\] space+ ; first part of type > "\\(?:" ids-with-dot-\[\] space+ "\\)?" ; optional second part o= f type. > "\\(?:[_a-zA-Z][^][ \t:;.,{}()=3D<>]*" ; defun name > "\\|" ids-with-dot* > "\\)" space* > paren-exp > "\\(?:" space* "]\\)*" ; What's this for? > "\\(?:" space* "\\<throws\\>" space* ids-with-dot-\[\]s* > "\\(?:," space* ids-with-dot-\[\]s* "\\)*" > "\\)?" > space*))) >=20 >> Thanks. >=20 >> -- Bob >=20 >>> On Oct 14, 2023, at 8:41 PM, Alan Mackenzie <acm@HIDDEN> wrote: >=20 > [ .... ] >=20 >>> Mats, I'm willing to work on that regular expression, and also the one >>> for C++. As I mentioned earlier, I've got some tools which work on >>> regexps, in particular pp-regexp, which prints a regexp more readably on= >>> several lines, and fix-re, which rewrites a regexp when it is >>> ill-conditioned in certain ways. >=20 >>> I foresee reverse engineering the regexps into more readable forms built= >>> up by concatenating basic blocks. For example for the java regexp I >>> would define >=20 >>> (defconst id "[a-zA-Z][][_$.a-zA-Z0-9]*") >=20 >>> , and use this id in a largish concat form. >=20 >>> I'm also willing to share pp-regexp and fix-re with you(r team), if that= >>> might help, on the understanding that neither is of release quality. >=20 > --=20 > Alan Mackenzie (Nuremberg, Germany).
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436-done) by debbugs.gnu.org; 16 Oct 2023 14:06:01 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 16 10:06:01 2023 Received: from localhost ([127.0.0.1]:57445 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qsOEK-0002y9-PJ for submit <at> debbugs.gnu.org; Mon, 16 Oct 2023 10:06:01 -0400 Received: from mail.muc.de ([193.149.48.3]:14536) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <acm@HIDDEN>) id 1qsOEE-0002xm-Q1 for 61436-done <at> debbugs.gnu.org; Mon, 16 Oct 2023 10:05:58 -0400 Received: (qmail 80511 invoked by uid 3782); 16 Oct 2023 16:05:23 +0200 Received: from acm.muc.de (pd953a1c7.dip0.t-ipconnect.de [217.83.161.199]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Mon, 16 Oct 2023 16:05:22 +0200 Received: (qmail 8699 invoked by uid 1000); 16 Oct 2023 14:05:20 -0000 Date: Mon, 16 Oct 2023 14:05:20 +0000 To: Robert Weiner <rswgnu@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files Message-ID: <ZS1DIGWbZCTGKkXQ@ACM> References: <87il7ew5wx.fsf@HIDDEN> <87il7dbosk.fsf@HIDDEN> <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM> <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM> <8734yew8yr.fsf@HIDDEN> <ZSru9aiO614QDrR5@ACM> <CA+OMD9iMzSxj36xHOw993oo+YcmenUwR8dgzsf_jWUgwjAbHDg@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <CA+OMD9iMzSxj36xHOw993oo+YcmenUwR8dgzsf_jWUgwjAbHDg@HIDDEN> X-Submission-Agent: TMDA/1.3.x (Ph3nix) From: Alan Mackenzie <acm@HIDDEN> X-Primary-Address: acm@HIDDEN X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 61436-done Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, Mats Lidell <mats.lidell@HIDDEN>, 61436-done <at> debbugs.gnu.org, acm@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, Jens Schmidt <jschmidt4gnu@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hello, Bob. On Sun, Oct 15, 2023 at 06:20:15 -0400, Robert Weiner wrote: > Hi Alan: > Would be great if you can improve those two regexps. The only > requirement is that they be able to recognize all defuns in the two > languages as best a regexp can, so that the whole defun can be > selected based on finding the opening brace regardless of coding > style. So far, I've only looked at the Java regexp. It had some serious deficiencies, notably: (i) It used "\\s-" (space syntax) a lot. This fails to mach \n, which in Java mode has comment-end syntax. (ii) The bit for the parenthesis expression was in an optional part of the regexp with the result that it would match "almost anything" rather than a defun start. In the following regexp these faults are fixed. Additionally, I've included more modifiers (things like private, volatile) which Java seems to have gathered over the years. I've also attempted to match generic functions. I don't know how well this will work out. Here's the regexp. Would people please try it out and let me know how well it works. (defconst java-defun-prompt-regexp (let ((space* "[ \t\n\r\f]*") (space+ "[ \t\n\r\f]+") (modifier* (concat "\\(?:" (regexp-opt '("abstract" "const" "default" "final" "native" "private" "protected" "public" "static" "strictfp" "synchronized" "threadsafe" "transient" "volatile") 'words) ; Compatible with XEmacs space+ "\\)*")) (ids-with-dots "[_$a-zA-Z][_$.a-zA-Z0-9]*") (ids-with-dot-\[\] "[[_$a-zA-Z][][_$.a-zA-Z0-9]*") (paren-exp "([^);{}]*)") (generic-exp "<[^(){};]*>")) (concat "^[ \t]*" modifier* "\\(?:" generic-exp space* "\\)?" ids-with-dot-\[\] space+ ; first part of type "\\(?:" ids-with-dot-\[\] space+ "\\)?" ; optional second part of type. "\\(?:[_a-zA-Z][^][ \t:;.,{}()=<>]*" ; defun name "\\|" ids-with-dot* "\\)" space* paren-exp "\\(?:" space* "]\\)*" ; What's this for? "\\(?:" space* "\\<throws\\>" space* ids-with-dot-\[\]s* "\\(?:," space* ids-with-dot-\[\]s* "\\)*" "\\)?" space*))) > Thanks. > -- Bob > > On Oct 14, 2023, at 8:41 PM, Alan Mackenzie <acm@HIDDEN> wrote: [ .... ] > > Mats, I'm willing to work on that regular expression, and also the one > > for C++. As I mentioned earlier, I've got some tools which work on > > regexps, in particular pp-regexp, which prints a regexp more readably on > > several lines, and fix-re, which rewrites a regexp when it is > > ill-conditioned in certain ways. > > I foresee reverse engineering the regexps into more readable forms built > > up by concatenating basic blocks. For example for the java regexp I > > would define > > (defconst id "[a-zA-Z][][_$.a-zA-Z0-9]*") > > , and use this id in a largish concat form. > > I'm also willing to share pp-regexp and fix-re with you(r team), if that > > might help, on the understanding that neither is of release quality. -- Alan Mackenzie (Nuremberg, Germany).
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436-done) by debbugs.gnu.org; 15 Oct 2023 10:21:17 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 15 06:21:17 2023 Received: from localhost ([127.0.0.1]:51266 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qryFI-0005zp-JK for submit <at> debbugs.gnu.org; Sun, 15 Oct 2023 06:21:16 -0400 Received: from mail-ot1-x331.google.com ([2607:f8b0:4864:20::331]:40181) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <rswgnu@HIDDEN>) id 1qryFE-0005zb-IX for 61436-done <at> debbugs.gnu.org; Sun, 15 Oct 2023 06:21:15 -0400 Received: by mail-ot1-x331.google.com with SMTP id 46e09a7af769-6bf106fb6a0so770651a34.0 for <61436-done <at> debbugs.gnu.org>; Sun, 15 Oct 2023 03:20:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697365242; x=1697970042; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=DelfcIMYUymT/6tEdEh8PmsQsVh2bREoDMjsnJkezko=; b=EwPsDKonSJS8iR68sIhOz/NEGn7A2NI9Flc8OBLaM6ppZFUe7Xqv7iopNgX791ZUu0 Mk+kkHS9XkmWIyxJQ0BIy7rYxu38ka/V00gf3FQnyxc8WdrzC9t5bVeByUUYliygT7fy AC3nKgmWiO796cOnazc21vAdYAcC0JiJOz0egZ+NsYJTcZtnf1yX7oXt/kQB3oDGQDlH Msxc8FZsifMfx+NDT39N1UegG+zKgBKOs9H8XM+uMsPr/czjvnWCA4tPb/TWI1UBhaAu Dr9W02Dp9rwqm/MRkdao++hhFAHbXt2weJmT5/I1FE/AtAkayizyVZR0w3bcP1UWlzmv XHWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697365242; x=1697970042; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DelfcIMYUymT/6tEdEh8PmsQsVh2bREoDMjsnJkezko=; b=FTD74SFz+Peac716XbAQ8M/kduFEWo81Fyb397fD8OnGzSx+teW2XNLUUfifWnP9F9 DqXkH4waEXjdZfgOOX9koBkbJoKN1i+2Mp2igduPvTZNauBjtmT80fMXFd11ZbaCcg3S fjlXhR3wu4W8qmb8cB2Bo5X8m6KfmOCs5zIwPUcgxB/3gYbw3qGVWEcfAAdh5DtVz7R3 lilDYSu93eA7NiCCX5LilrTggfZ6FIwpMq47mZQK/CgCRvUEvMkWrSBKNPTYSLUMxpmv H+qqU5OE0Y+gQ3M85DDndyTyPMNiJs0IJXDeO5MdaFC4vwIIITNze4sXV2mhSRepQ6tj lLMQ== X-Gm-Message-State: AOJu0YxpPj4gYn8FA+e9sVw92YdCYQvZhHccCXCIrZz05qrTlB4lDvsW jaWoaW5gVGUDoR1o2G0Mf4Hg4N8eG8zbFa7gpvY= X-Google-Smtp-Source: AGHT+IGaepYLYIA5gLwa8zoN2dSUpyrR+R/CN5tQBPFAw8eVPqrsnp7OngJ6iq/R0yuGZilGEbC/5O9BGcZYo+u0P0o= X-Received: by 2002:a4a:b588:0:b0:578:c2af:45b5 with SMTP id t8-20020a4ab588000000b00578c2af45b5mr28948807ooo.0.1697365242602; Sun, 15 Oct 2023 03:20:42 -0700 (PDT) MIME-Version: 1.0 References: <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN> <87il7dbosk.fsf@HIDDEN> <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM> <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM> <8734yew8yr.fsf@HIDDEN> <ZSru9aiO614QDrR5@ACM> In-Reply-To: <ZSru9aiO614QDrR5@ACM> From: Robert Weiner <rswgnu@HIDDEN> Date: Sun, 15 Oct 2023 06:20:15 -0400 Message-ID: <CA+OMD9iMzSxj36xHOw993oo+YcmenUwR8dgzsf_jWUgwjAbHDg@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files To: Alan Mackenzie <acm@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 61436-done Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, Mats Lidell <mats.lidell@HIDDEN>, 61436-done <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, Jens Schmidt <jschmidt4gnu@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hi Alan: Would be great if you can improve those two regexps. The only requirement is that they be able to recognize all defuns in the two languages as best a regexp can, so that the whole defun can be selected based on finding the opening brace regardless of coding style. Thanks. -- Bob > On Oct 14, 2023, at 8:41 PM, Alan Mackenzie <acm@HIDDEN> wrote: > > =EF=BB=BFHello, Jens and Mats. > >> On Fri, Oct 13, 2023 at 22:42:04 +0200, Jens Schmidt wrote: >> Hi Alan, > >> Alan Mackenzie <acm@HIDDEN> writes: > >>> To solve the bug, I'm amending the macro c-beginning-of-defun-1 so that >>> it only stops at a debug-prompt-regexp position when it also found a {. >>> Otherwise it will keep looping until it finds a better position or BOB. > >> Thanks. > >>> Then please confirm that the bug is indeed fixed. > >> For the fun of it I tried Hank's initial testcase as well, which is a >> bit less straight-forward to set up. The freezes are indeed gone with >> your patch. > > Thanks for the testing. Seeing as how both of you confirm the original > bug is fixed with the patch, I'm closing it with this post. > >> But I noticed that which-function-mode, when rapidly moving through >> the file, cannot always determine the current function name, then >> displaying "[n/a]" in the mode line. > >> And indeed, when executing the simplified test case > >> ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java > >> and then immediately hitting C-M-a, point jumps to the beginning of the >> preceeding catch clause (point=3D5779 of 18142) instead of BOD. > > I can't reproduce this, even when setting defun-prompt-regexp to the > original large regexp from hui-select.el. > >> This behavior is again tied to the `defun-prompt-regexp' used by >> Hyperbole - without that regexp C-M-a jumps to the real BOD. > > Mats, I'm willing to work on that regular expression, and also the one > for C++. As I mentioned earlier, I've got some tools which work on > regexps, in particular pp-regexp, which prints a regexp more readably on > several lines, and fix-re, which rewrites a regexp when it is > ill-conditioned in certain ways. > > I foresee reverse engineering the regexps into more readable forms built > up by concatenating basic blocks. For example for the java regexp I > would define > > (defconst id "[a-zA-Z][][_$.a-zA-Z0-9]*") > > , and use this id in a largish concat form. > > I'm also willing to share pp-regexp and fix-re with you(r team), if that > might help, on the understanding that neither is of release quality. > > -- > Alan Mackenzie (Nuremberg, Germany).
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436-done) by debbugs.gnu.org; 14 Oct 2023 19:42:24 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 14 15:42:24 2023 Received: from localhost ([127.0.0.1]:50581 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qrkWl-0007qT-MM for submit <at> debbugs.gnu.org; Sat, 14 Oct 2023 15:42:24 -0400 Received: from mail.muc.de ([193.149.48.3]:50126) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <acm@HIDDEN>) id 1qrkWh-0007qE-Q8 for 61436-done <at> debbugs.gnu.org; Sat, 14 Oct 2023 15:42:22 -0400 Received: (qmail 5221 invoked by uid 3782); 14 Oct 2023 21:41:50 +0200 Received: from acm.muc.de (pd953a921.dip0.t-ipconnect.de [217.83.169.33]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Sat, 14 Oct 2023 21:41:48 +0200 Received: (qmail 11201 invoked by uid 1000); 14 Oct 2023 19:41:41 -0000 Date: Sat, 14 Oct 2023 19:41:41 +0000 To: Jens Schmidt <jschmidt4gnu@HIDDEN>, Mats Lidell <mats.lidell@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files Message-ID: <ZSru9aiO614QDrR5@ACM> References: <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN> <87il7dbosk.fsf@HIDDEN> <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM> <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM> <8734yew8yr.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8734yew8yr.fsf@HIDDEN> X-Submission-Agent: TMDA/1.3.x (Ph3nix) From: Alan Mackenzie <acm@HIDDEN> X-Primary-Address: acm@HIDDEN X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 61436-done Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, 61436-done <at> debbugs.gnu.org, acm@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, rswgnu@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hello, Jens and Mats. On Fri, Oct 13, 2023 at 22:42:04 +0200, Jens Schmidt wrote: > Hi Alan, > Alan Mackenzie <acm@HIDDEN> writes: > > To solve the bug, I'm amending the macro c-beginning-of-defun-1 so that > > it only stops at a debug-prompt-regexp position when it also found a {. > > Otherwise it will keep looping until it finds a better position or BOB. > Thanks. > > Then please confirm that the bug is indeed fixed. > For the fun of it I tried Hank's initial testcase as well, which is a > bit less straight-forward to set up. The freezes are indeed gone with > your patch. Thanks for the testing. Seeing as how both of you confirm the original bug is fixed with the patch, I'm closing it with this post. > But I noticed that which-function-mode, when rapidly moving through > the file, cannot always determine the current function name, then > displaying "[n/a]" in the mode line. > And indeed, when executing the simplified test case > ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java > and then immediately hitting C-M-a, point jumps to the beginning of the > preceeding catch clause (point=5779 of 18142) instead of BOD. I can't reproduce this, even when setting defun-prompt-regexp to the original large regexp from hui-select.el. > This behavior is again tied to the `defun-prompt-regexp' used by > Hyperbole - without that regexp C-M-a jumps to the real BOD. Mats, I'm willing to work on that regular expression, and also the one for C++. As I mentioned earlier, I've got some tools which work on regexps, in particular pp-regexp, which prints a regexp more readably on several lines, and fix-re, which rewrites a regexp when it is ill-conditioned in certain ways. I foresee reverse engineering the regexps into more readable forms built up by concatenating basic blocks. For example for the java regexp I would define (defconst id "[a-zA-Z][][_$.a-zA-Z0-9]*") , and use this id in a largish concat form. I'm also willing to share pp-regexp and fix-re with you(r team), if that might help, on the understanding that neither is of release quality. -- Alan Mackenzie (Nuremberg, Germany).
Hank Greenburg <hank.greenburg@HIDDEN>
:Alan Mackenzie <acm@HIDDEN>
:Received: (at 61436) by debbugs.gnu.org; 13 Oct 2023 20:43:05 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Oct 13 16:43:05 2023 Received: from localhost ([127.0.0.1]:47483 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qrOzx-0005hd-9Z for submit <at> debbugs.gnu.org; Fri, 13 Oct 2023 16:43:05 -0400 Received: from mr3.vodafonemail.de ([145.253.228.163]:46592) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <jschmidt4gnu@HIDDEN>) id 1qrOzs-0005h3-1b for 61436 <at> debbugs.gnu.org; Fri, 13 Oct 2023 16:43:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vodafonemail.de; s=vfde-mb-mr2-23sep; t=1697229751; bh=FA6YQSQcX6SQUkQ6xxj+yjCRvPeiyzRxMuiLO6lN/88=; h=From:To:Subject:References:Date:In-Reply-To:Message-ID:User-Agent: Content-Type:From; b=CH09edxamF760elNvYdF1U3JEZR89YG+NdAVaxudBMDCJ/+QKwquv6K2lktntR6po 6txoN0IqQ8n4xou7RoAlbASdf5jtjGhXSi3E2nd6qHR3oUpIxrzwPoUVWy2/Hyueay jRwL5YuJZ1UkOixyKltJ3LbAFXN5PxNSDfUSmBOU= Received: from smtp.vodafone.de (unknown [10.0.0.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by mr3.vodafonemail.de (Postfix) with ESMTPS id 4S6djg2gPjz1yhl; Fri, 13 Oct 2023 20:42:31 +0000 (UTC) Received: from sappc2 (port-92-194-124-224.dynamic.as20676.net [92.194.124.224]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp.vodafone.de (Postfix) with ESMTPSA id 4S6djD5B6czMks9; Fri, 13 Oct 2023 20:42:05 +0000 (UTC) From: Jens Schmidt <jschmidt4gnu@HIDDEN> To: Alan Mackenzie <acm@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files References: <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> <835yc6hl0c.fsf@HIDDEN> <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN> <87il7dbosk.fsf@HIDDEN> <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM> <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM> Date: Fri, 13 Oct 2023 22:42:04 +0200 In-Reply-To: <ZSk7FS-pS2Euz1aA@ACM> (Alan Mackenzie's message of "Fri, 13 Oct 2023 12:41:57 +0000") Message-ID: <8734yew8yr.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-purgate-type: clean X-purgate: clean X-purgate-size: 1056 X-purgate-ID: 155817::1697229747-55FF9E6D-37EA2CAC/0/0 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 61436 Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, Mats Lidell <mats.lidell@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, rswgnu@HIDDEN, 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) Hi Alan, Alan Mackenzie <acm@HIDDEN> writes: > To solve the bug, I'm amending the macro c-beginning-of-defun-1 so that > it only stops at a debug-prompt-regexp position when it also found a {. > Otherwise it will keep looping until it finds a better position or BOB. Thanks. > Then please confirm that the bug is > indeed fixed. For the fun of it I tried Hank's initial testcase as well, which is a bit less straight-forward to set up. The freezes are indeed gone with your patch. But I noticed that which-function-mode, when rapidly moving through the file, cannot always determine the current function name, then displaying "[n/a]" in the mode line. And indeed, when executing the simplified test case ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java and then immediately hitting C-M-a, point jumps to the beginning of the preceeding catch clause (point=5779 of 18142) instead of BOD. This behavior is again tied to the `defun-prompt-regexp' used by Hyperbole - without that regexp C-M-a jumps to the real BOD.
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 13 Oct 2023 18:03:17 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Oct 13 14:03:17 2023 Received: from localhost ([127.0.0.1]:47389 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qrMVI-0000Ui-Sj for submit <at> debbugs.gnu.org; Fri, 13 Oct 2023 14:03:17 -0400 Received: from smtp.egensajt.se ([194.68.80.251]:54484) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mats.lidell@HIDDEN>) id 1qrMVD-0000UO-LQ for 61436 <at> debbugs.gnu.org; Fri, 13 Oct 2023 14:03:15 -0400 Received: from ethel (c80-217-132-174.bredband.tele2.se [80.217.132.174]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: mats.lidell@HIDDEN) by smtp.egensajt.se (Postfix) with ESMTPSA id D90B32014C; Fri, 13 Oct 2023 20:02:41 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lidells.se; s=dkim; t=1697220162; bh=tvmbngYH7Zq9sVCLla6nl6fMHAnWNzM/mRqY/ncYPG4=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=tVB2S26WBnS2wRbLZDL1NMtzvI+3efXc78B5WdM8SzzK7/M/eQEbYfS9S/J7Dvyf6 WurhUPpeuXj4XHal1J2fJ7BPY6C0yg44CEaZEcFyRkEteMWjzsoXkVA42YhF6YV8C0 AlwPzHXzahrAabAPR+D1r/fR+fBnuSMqwlh68jT0= From: Mats Lidell <mats.lidell@HIDDEN> To: Alan Mackenzie <acm@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files In-Reply-To: <ZSk7FS-pS2Euz1aA@ACM> (Alan Mackenzie's message of "Fri, 13 Oct 2023 12:41:57 +0000") References: <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> <835yc6hl0c.fsf@HIDDEN> <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN> <87il7dbosk.fsf@HIDDEN> <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM> <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM> Date: Fri, 13 Oct 2023 20:02:40 +0200 Message-ID: <87cyxi764f.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 61436 Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, rswgnu@HIDDEN, Jens Schmidt <jschmidt4gnu@HIDDEN>, 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) Hi Alan, > Alan Mackenzie writes: > Would all concerned please apply the attached patch to the Emacs master > branch, directory lisp/progmodes. Then please byte compile CC Mode in > full (a macro has been changed), and try the result on your real Java > code. (If anybody wants any help applying the patch or byte compiling, > feel free to send me private mail.) Then please confirm that the bug is > indeed fixed. Thanks! I have verified that there is no freeze with the patch applied for the test case with the P1.java file. Latest master as of today with native byte compilation. (Commit = baf778c7caa) Without the patch the freeze is there. So is looking good. :-) Yours -- %% Mats
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 13 Oct 2023 12:42:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Oct 13 08:42:34 2023 Received: from localhost ([127.0.0.1]:45444 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qrHUv-0003hn-US for submit <at> debbugs.gnu.org; Fri, 13 Oct 2023 08:42:34 -0400 Received: from mail.muc.de ([193.149.48.3]:51784) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <acm@HIDDEN>) id 1qrHUr-0003hU-9L for 61436 <at> debbugs.gnu.org; Fri, 13 Oct 2023 08:42:32 -0400 Received: (qmail 7041 invoked by uid 3782); 13 Oct 2023 14:42:00 +0200 Received: from acm.muc.de (pd953a199.dip0.t-ipconnect.de [217.83.161.153]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Fri, 13 Oct 2023 14:41:58 +0200 Received: (qmail 3694 invoked by uid 1000); 13 Oct 2023 12:41:57 -0000 Date: Fri, 13 Oct 2023 12:41:57 +0000 To: Jens Schmidt <jschmidt4gnu@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files Message-ID: <ZSk7FS-pS2Euz1aA@ACM> References: <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> <835yc6hl0c.fsf@HIDDEN> <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN> <87il7dbosk.fsf@HIDDEN> <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM> <875y3bbokx.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Hf/FvbKl43qLgJz6" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <875y3bbokx.fsf@HIDDEN> X-Submission-Agent: TMDA/1.3.x (Ph3nix) From: Alan Mackenzie <acm@HIDDEN> X-Primary-Address: acm@HIDDEN X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 61436 Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, Mats Lidell <mats.lidell@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, rswgnu@HIDDEN, 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --Hf/FvbKl43qLgJz6 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit Hello, Jens. On Thu, Oct 12, 2023 at 21:58:06 +0200, Jens Schmidt wrote: > Hi Alan, > Alan Mackenzie <acm@HIDDEN> writes: [ .... ] > >> That always freezes Emacs (29 and master) even before it has a chance to > >> display P1.java. The freeze happens in function > >> `c-get-fallback-scan-pos', where the while loop inf-loops. Yes. > > c-get-fallback-scan-pos tries to move to the beginning of a function. > > This probably involves defun-prompt-regexp when it is non-nil. :-( > Otherwise we would see hangs or exponential behavior (?) somewhere in > the Emacs regexp machinerie, but they take place in that while loop. So > I guess that there must be some other, additional quality that this > regexp fulfills. Like: "matches the empty string" (which it does not, > as far as I can tell) or: "must only match before curlies" or whatnot. > Unfortunately, the doc string/info doc of `defun-prompt-regexp´ provides > only exactly that latter criterion: > That is to say, a defun begins on a line that starts with a match for > this regular expression, followed by a character with open-parenthesis > syntax. > I guess that only pruning that regexp until things start unfreezing > could give an answer here. Or more tracing to see how point moves in > `c-get-fallback-scan-pos'. But I need some tracing break here ... > ... or so I thought, I just couldn't resist: > I expanded and instrumented that function from emacs-29 as follows, > (hopefully) not changing any of its logic: > ------------------------- snip ------------------------- > (defun c-get-fallback-scan-pos (here) > ;; Return a start position for building `c-state-cache' from scratch. This > ;; will be at the top level, 2 defuns back. Return nil if we don't find > ;; these defun starts a reasonable way back. > (message "c-get-fallback-scan-pos") > (save-excursion > (save-restriction > (when (> here (* 10 c-state-cache-too-far)) > (narrow-to-region (- here (* 10 c-state-cache-too-far)) here)) > ;; Go back 2 bods, but ignore any bogus positions returned by > ;; beginning-of-defun (i.e. open paren in column zero). > (goto-char here) > (let ((cnt 2)) > (message "beginning-of-defun-loop-00: %d %d" cnt (point)) > (while (not (or (bobp) (zerop cnt))) > (message "beginning-of-defun-loop-01: %d" (point)) > (let (beginning-of-defun-function end-of-defun-function) > (beginning-of-defun)) > (and defun-prompt-regexp > (looking-at defun-prompt-regexp) > (message "beginning-of-defun-loop-02: %d" (point)) > (goto-char (match-end 0))) > (message "beginning-of-defun-loop-03: %d" (point)) > (if (eq (char-after) ?\{) > (setq cnt (1- cnt))))) > (and (not (bobp)) > (point))))) > ------------------------- snip ------------------------- > That results in the message triple > ------------------------- snip ------------------------- > beginning-of-defun-loop-01: 5879 > beginning-of-defun-loop-02: 5801 > beginning-of-defun-loop-03: 5879 > beginning-of-defun-loop-01: 5879 > beginning-of-defun-loop-02: 5801 > beginning-of-defun-loop-03: 5879 > ... > ------------------------- snip ------------------------- > inf-looping. These points are (|: 5801, ^: 5879) here in P1.java: > ------------------------- snip ------------------------- > 178 } catch (Exception e) { > 179| error("symTable.addDecl", "unexpected error with a single HashMap " + e)^; > 180 } > 181 > ------------------------- snip ------------------------- > So the catch-block just before line 181 is recognized as a potential BOD > (previous trailing open curly?). But then `defun-prompt-regexp' matches > the function call in the catch-block as defun prompt regexp (which it > better should not?), taking point back to where, on next BOD search, the > exact previous BOD is found again. > So probably there are really two issues here: > 1. The `defun-prompt-regexp' used by Hyperbole, which matches too > broadly, and > 2. function `c-get-fallback-scan-pos', which could try harder to avoid > inf-loops when such things happen. > But that's where I *really* stop here :-) You've diagnosed the bug completely. Thanks! The hang was caused entirely by the loop in c-get-fallback-scan-pos, not the deficiencies in that long regexp. defun-prompt-regexp, when appended with a \\s( (as is done in beginning-of-defun-raw) matches the " error(" on L179 of P1.java. The bare defun-prompt-regexp (as used in CC Mode) matches the entire line except the terminating ;. This regexp could do with some amendment, but it is not the main cause of the bug. To solve the bug, I'm amending the macro c-beginning-of-defun-1 so that it only stops at a debug-prompt-regexp position when it also found a {. Otherwise it will keep looping until it finds a better position or BOB. Would all concerned please apply the attached patch to the Emacs master branch, directory lisp/progmodes. Then please byte compile CC Mode in full (a macro has been changed), and try the result on your real Java code. (If anybody wants any help applying the patch or byte compiling, feel free to send me private mail.) Then please confirm that the bug is indeed fixed. Thanks! -- Alan Mackenzie (Nuremberg, Germany). --Hf/FvbKl43qLgJz6 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="diff.20231013.diff" diff -r b680bbba3141 cc-defs.el --- a/cc-defs.el Fri Sep 29 11:15:58 2023 +0000 +++ b/cc-defs.el Fri Oct 13 12:23:11 2023 +0000 @@ -944,7 +944,8 @@ (when dest (goto-char dest) t))) (defmacro c-beginning-of-defun-1 () - ;; Wrapper around beginning-of-defun. + ;; Wrapper around beginning-of-defun. Note that the return value from this + ;; macro has no significance. ;; ;; NOTE: This function should contain the only explicit use of ;; beginning-of-defun in CC Mode. Eventually something better than @@ -957,44 +958,49 @@ ;; `c-parse-state'. `(progn - (if (and ,(fboundp 'buffer-syntactic-context-depth) - c-enable-xemacs-performance-kludge-p) - ,(when (fboundp 'buffer-syntactic-context-depth) - ;; XEmacs only. This can improve the performance of - ;; c-parse-state to between 3 and 60 times faster when - ;; braces are hung. It can also degrade performance by - ;; about as much when braces are not hung. - '(let (beginning-of-defun-function end-of-defun-function - pos) - (while (not pos) - (save-restriction - (widen) - (setq pos (c-safe-scan-lists - (point) -1 (buffer-syntactic-context-depth)))) - (cond - ((bobp) (setq pos (point-min))) - ((not pos) - (let ((distance (skip-chars-backward "^{"))) - ;; unbalanced parenthesis, while invalid C code, - ;; shouldn't cause an infloop! See unbal.c - (when (zerop distance) - ;; Punt! - (beginning-of-defun) - (setq pos (point))))) - ((= pos 0)) - ((not (eq (char-after pos) ?{)) - (goto-char pos) - (setq pos nil)) - )) - (goto-char pos))) - ;; Emacs, which doesn't have buffer-syntactic-context-depth - (let (beginning-of-defun-function end-of-defun-function) - (beginning-of-defun))) - ;; if defun-prompt-regexp is non-nil, b-o-d won't leave us at the - ;; open brace. - (and defun-prompt-regexp - (looking-at defun-prompt-regexp) - (goto-char (match-end 0))))) + (while + (progn + (if (and ,(fboundp 'buffer-syntactic-context-depth) + c-enable-xemacs-performance-kludge-p) + ,(when (fboundp 'buffer-syntactic-context-depth) + ;; XEmacs only. This can improve the performance of + ;; c-parse-state to between 3 and 60 times faster when + ;; braces are hung. It can also degrade performance by + ;; about as much when braces are not hung. + '(let (beginning-of-defun-function end-of-defun-function + pos) + (while (not pos) + (save-restriction + (widen) + (setq pos (c-safe-scan-lists + (point) -1 (buffer-syntactic-context-depth)))) + (cond + ((bobp) (setq pos (point-min))) + ((not pos) + (let ((distance (skip-chars-backward "^{"))) + ;; unbalanced parenthesis, while invalid C code, + ;; shouldn't cause an infloop! See unbal.c + (when (zerop distance) + ;; Punt! + (beginning-of-defun) + (setq pos (point))))) + ((= pos 0)) + ((not (eq (char-after pos) ?{)) + (goto-char pos) + (setq pos nil)) + )) + (goto-char pos))) + ;; Emacs, which doesn't have buffer-syntactic-context-depth + (let (beginning-of-defun-function end-of-defun-function) + (beginning-of-defun))) + (and (not (bobp)) + ;; if defun-prompt-regexp is non-nil, b-o-d won't leave us at + ;; the open brace. + defun-prompt-regexp + (looking-at (concat defun-prompt-regexp "\\s(")) + (or (not (eq (char-before (match-end 0)) ?{)) + (progn (goto-char (1- (match-end 0))) + nil))))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; --Hf/FvbKl43qLgJz6--
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 12 Oct 2023 19:59:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 12 15:59:07 2023 Received: from localhost ([127.0.0.1]:44328 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qr1pr-0002AQ-Dt for submit <at> debbugs.gnu.org; Thu, 12 Oct 2023 15:59:07 -0400 Received: from mr5.vodafonemail.de ([145.253.228.165]:34608) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <jschmidt4gnu@HIDDEN>) id 1qr1pm-00029a-33 for 61436 <at> debbugs.gnu.org; Thu, 12 Oct 2023 15:59:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vodafonemail.de; s=vfde-mb-mr2-21dec; t=1697140714; bh=AMps77Trf0zmFk5p7XIee+hJtP7QyIVCAnYFTD0Dlf8=; h=From:To:Subject:References:Date:In-Reply-To:Message-ID:User-Agent: Content-Type:From; b=TdQ5zvmJpsGdZwmH56VYybPyZj3nDuPi9iKbPWO/NIvpluXMboBAwD8iYyGTONvsf zBudEF6dPRgZyBxkSYmj/pOW3BRsZyq94v2KiBeXQHOTokc/ib9GdM1/TmwQvQHRld e/0Bgn5WvX494uPn/UYvH5RKwcMPNy9D+GRuepAs= Received: from smtp.vodafone.de (unknown [10.0.0.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by mr5.vodafonemail.de (Postfix) with ESMTPS id 4S60nP62Lxz1y9J; Thu, 12 Oct 2023 19:58:33 +0000 (UTC) Received: from sappc2 (port-92-194-185-170.dynamic.as20676.net [92.194.185.170]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp.vodafone.de (Postfix) with ESMTPSA id 4S60my5jK2z9s6R; Thu, 12 Oct 2023 19:58:07 +0000 (UTC) From: Jens Schmidt <jschmidt4gnu@HIDDEN> To: Alan Mackenzie <acm@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files References: <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com> <83cz6fiefb.fsf@HIDDEN> <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> <835yc6hl0c.fsf@HIDDEN> <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN> <87il7dbosk.fsf@HIDDEN> <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM> Date: Thu, 12 Oct 2023 21:58:06 +0200 In-Reply-To: <ZScbmT8PV6ucBGwA@ACM> (Alan Mackenzie's message of "Wed, 11 Oct 2023 22:03:05 +0000") Message-ID: <875y3bbokx.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-purgate-type: clean X-purgate: clean X-purgate-size: 4583 X-purgate-ID: 155817::1697140709-F97F97FF-1EB2DCC7/0/0 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 61436 Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, Mats Lidell <mats.lidell@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, rswgnu@HIDDEN, 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) Hi Alan, Alan Mackenzie <acm@HIDDEN> writes: > It may well be that persevering with this regexp is a lost cause, and > you'd do better to construct a new regexp from scratch using more > structured methods (perhaps something similar to what's in cc-awk.el). > In fact the regexp looks horribly like one in the CC Mode manual which > was explicitly designated unsupported. ;-( and thanks for your analysis. I felt as well that this regexp looks, well, funny, but what intrigues me is that it cannot (only) be the complexity and ill-conditioned-ness of that regexp that lets Emacs freeze. >> That always freezes Emacs (29 and master) even before it has a chance to >> display P1.java. The freeze happens in function >> `c-get-fallback-scan-pos', where the while loop inf-loops. > > c-get-fallback-scan-pos tries to move to the beginning of a function. > This probably involves defun-prompt-regexp when it is non-nil. :-( Otherwise we would see hangs or exponential behavior (?) somewhere in the Emacs regexp machinerie, but they take place in that while loop. So I guess that there must be some other, additional quality that this regexp fulfills. Like: "matches the empty string" (which it does not, as far as I can tell) or: "must only match before curlies" or whatnot. Unfortunately, the doc string/info doc of `defun-prompt-regexp=C2=B4 provid= es only exactly that latter criterion: That is to say, a defun begins on a line that starts with a match for this regular expression, followed by a character with open-parenthesis syntax. I guess that only pruning that regexp until things start unfreezing could give an answer here. Or more tracing to see how point moves in `c-get-fallback-scan-pos'. But I need some tracing break here ... ... or so I thought, I just couldn't resist: I expanded and instrumented that function from emacs-29 as follows, (hopefully) not changing any of its logic: ------------------------- snip ------------------------- (defun c-get-fallback-scan-pos (here) ;; Return a start position for building `c-state-cache' from scratch. Th= is ;; will be at the top level, 2 defuns back. Return nil if we don't find ;; these defun starts a reasonable way back. (message "c-get-fallback-scan-pos") (save-excursion (save-restriction (when (> here (* 10 c-state-cache-too-far)) (narrow-to-region (- here (* 10 c-state-cache-too-far)) here)) ;; Go back 2 bods, but ignore any bogus positions returned by ;; beginning-of-defun (i.e. open paren in column zero). (goto-char here) (let ((cnt 2)) (message "beginning-of-defun-loop-00: %d %d" cnt (point)) (while (not (or (bobp) (zerop cnt))) (message "beginning-of-defun-loop-01: %d" (point)) (let (beginning-of-defun-function end-of-defun-function) (beginning-of-defun)) (and defun-prompt-regexp (looking-at defun-prompt-regexp) (message "beginning-of-defun-loop-02: %d" (point)) (goto-char (match-end 0))) (message "beginning-of-defun-loop-03: %d" (point)) (if (eq (char-after) ?\{) (setq cnt (1- cnt))))) (and (not (bobp)) (point))))) ------------------------- snip ------------------------- That results in the message triple ------------------------- snip ------------------------- beginning-of-defun-loop-01: 5879 beginning-of-defun-loop-02: 5801 beginning-of-defun-loop-03: 5879 beginning-of-defun-loop-01: 5879 beginning-of-defun-loop-02: 5801 beginning-of-defun-loop-03: 5879 ... ------------------------- snip ------------------------- inf-looping. These points are (|: 5801, ^: 5879) here in P1.java: ------------------------- snip ------------------------- 178 } catch (Exception e) { 179| error("symTable.addDecl", "unexpected error with a single HashMap= " + e)^; 180 } 181 ------------------------- snip ------------------------- So the catch-block just before line 181 is recognized as a potential BOD (previous trailing open curly?). But then `defun-prompt-regexp' matches the function call in the catch-block as defun prompt regexp (which it better should not?), taking point back to where, on next BOD search, the exact previous BOD is found again. So probably there are really two issues here: 1. The `defun-prompt-regexp' used by Hyperbole, which matches too broadly, and 2. function `c-get-fallback-scan-pos', which could try harder to avoid inf-loops when such things happen. But that's where I *really* stop here :-)
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 11 Oct 2023 22:03:40 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 11 18:03:39 2023 Received: from localhost ([127.0.0.1]:40195 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qqhIp-0001SF-93 for submit <at> debbugs.gnu.org; Wed, 11 Oct 2023 18:03:39 -0400 Received: from mail.muc.de ([193.149.48.3]:39662) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <acm@HIDDEN>) id 1qqhIm-0001Rs-GT for 61436 <at> debbugs.gnu.org; Wed, 11 Oct 2023 18:03:37 -0400 Received: (qmail 59748 invoked by uid 3782); 12 Oct 2023 00:03:07 +0200 Received: from acm.muc.de (pd953a848.dip0.t-ipconnect.de [217.83.168.72]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Thu, 12 Oct 2023 00:03:06 +0200 Received: (qmail 5786 invoked by uid 1000); 11 Oct 2023 22:03:05 -0000 Date: Wed, 11 Oct 2023 22:03:05 +0000 To: Jens Schmidt <jschmidt4gnu@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files Message-ID: <ZScbmT8PV6ucBGwA@ACM> References: <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com> <83cz6fiefb.fsf@HIDDEN> <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> <835yc6hl0c.fsf@HIDDEN> <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN> <87il7dbosk.fsf@HIDDEN> <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> <87r0m1t0el.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <87r0m1t0el.fsf@HIDDEN> X-Submission-Agent: TMDA/1.3.x (Ph3nix) From: Alan Mackenzie <acm@HIDDEN> X-Primary-Address: acm@HIDDEN X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 61436 Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, Mats Lidell <mats.lidell@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, rswgnu@HIDDEN, 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hello, Jens. On Wed, Oct 11, 2023 at 21:38:26 +0200, Jens Schmidt wrote: > Hi Alan, > could you please have a look as well? This seems to be related to > cc-mode/java-mode. New, complete reproducer at the very bottom of this > mail. > Thanks! > Hi Robert & Mats, > Robert Weiner <rsw@HIDDEN> writes: > > Jens wrote: > >> That always freezes Emacs (29 and master) even before it has a chance = to > >> display P1.java. The freeze happens in function > >> `c-get-fallback-scan-pos', where the while loop inf-loops, BUT: > >> If you uncomment the line setting `hkey-init' to nil in init.el and > >> repeat: No freeze. > > As you note above, the infinite loop is coming from a Lisp function in > > Emacs core, not from Hyperbole. A Hyperbole setting may help you to > > see a state reached in that function that you otherwise would not, but > > it is not a Hyperbole bug; it is an unhandled state outside of > > Hyperbole. > Well, yes and no. The next closest culprit seems to be this hook > addition from function `hui-select-initialize': > ;; These hooks let you select C++ and Java methods and classes by > ;; double-clicking on the first character of a definition or on its > ;; opening or closing brace. This is all necessary since some > ;; programmers don't put their function braces in the first column. > (var:add-and-run-hook > 'java-mode-hook > (lambda () > (setq defun-prompt-regexp > "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|sy= nchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)= \\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\= )\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_= a-zA-Z][^][ \t:;.,{}()=7F=3D]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(= ([^);{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-z= A-Z0-9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*"))) > I (very generally) think that Emacs does not have to grok every regexp > in every context, but I leave that concrete case for Alan and/or others > to decide. I think that that regexp might be the source of the hang. It is ill-conditioned. (I've elided all of the keywords between "public" and "volatile" to try and make it more readable): "^[ \t]*\\(\\(\\(public\\|volatile\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-= Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\))\\s-+\\)\\)? \\(\\([[a-zA-Z]= [][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][ \t:;.,{}()^?=3D]*\\|\\([= _$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\= <throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*" The first problem seems to be just after "volatile\\)\\s-+\\)*", where you'= ve got: [[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z] ^ ^ , in other words [...]*[...]+, where the ...s match largely the same characters. In the event of a failure to match, the Emacs regexp engine will try every possible combination of these. This isn't all that bad, but in a string of N matching characters inside a global mismatch, it will try out all N-1 ways of splitting up the string between those two regexp fragments. In fact, here, the [...]* is entirely redundant (as well as being harmful) and could be removed. Another problem is right near the end of the regexp where there is: \\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, \t\n\r\f]*\\)+ , or rewriting it in an easier to read fashion on several lines: \\( \\)+ =20 \\( \\)[, \t\n\r\f]* [_$a-zA-Z][_$.a-zA-Z0-9]* 1111111111111111111111111 2222222222222 =2E Here, if you have a sequence of identifier characters, which are inside a global mismatch, they can all be matched by 1. However, they can also be matched by 1, with any number (especially an infinite number) of zero length strings matching 2. In this case, the regexp engine will try out all the ways of matching, an infinite number of them, before giving up. Here might be one of the places in the regexp which is hanging. It might well be that the second * in that expression should be a +. Earlier on in the regexp, I can see \\s-*\\)\\s-+, a possibly zero-length sequence of space-syntax characters, followed by a non-empty sequence of them. I haven't analysed this in detail, but it smells like trouble. It may well be that persevering with this regexp is a lost cause, and you'd do better to construct a new regexp from scratch using more structured methods (perhaps something similar to what's in cc-awk.el). In fact the regexp looks horribly like one in the CC Mode manual which was explicitly designated unsupported. ;-( Just as a matter of interest, I wrote a tool quite a few years ago to diagnose and rewrite ill-conditioned regexps, but never got it to release quality. I tried out this tool on the regexp, but its output regexp hung in Java Mode just as much as the original. But this tool did help me spot some of the solecisms which I analysed above. > > On Wed, Oct 11, 2023 at 3:29=E2=80=AFAM Mats Lidell <mats.lidell@lidell= s.se> wrote: > > > > Thanks for the report. > Actually, not mine. I'm just the messenger who did some root-cause > analysis. > > Note: I don't know what P1.java means here. I have picked a java file > > at random that I had on my machine that is large. Is P1.java a > > specific file that has been shared earlier? > The OP has provided that, see below. > > Hyperbole has its own tracker. > > > > https://debbugs.gnu.org/cgi/pkgreport.cgi?package=3Dhyperbole > Ok, thanks. As soon as we know whose bug this is we could forward or > not. > Now for the next reproducer (Hyperbole no longer required, but still > present through its regexp :-): > - Save the following to ~/tmp/init.el: > ------------------------- snip ------------------------- > (add-hook > 'java-mode-hook > (lambda () > (setq defun-prompt-regexp > "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|sync= hronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\= s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\= \s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-= zA-Z][^][ \t:;.,{}()=7F=3D]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([= ^);{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-= Z0-9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*"))) > ------------------------- snip ------------------------- > - Save attachment P1.java from the initial message > https://yhetil.org/emacs-bugs/ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkI= B3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=3D@proto= nmail.com/ > to ~/tmp/P1.java. > - Start Emacs as > ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java > That always freezes Emacs (29 and master) even before it has a chance to > display P1.java. The freeze happens in function > `c-get-fallback-scan-pos', where the while loop inf-loops. c-get-fallback-scan-pos tries to move to the beginning of a function. This probably involves defun-prompt-regexp when it is non-nil. :-( --=20 Alan Mackenzie (Nuremberg, Germany).
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 11 Oct 2023 21:43:44 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 11 17:43:44 2023 Received: from localhost ([127.0.0.1]:40176 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qqgzY-0000Xk-5H for submit <at> debbugs.gnu.org; Wed, 11 Oct 2023 17:43:44 -0400 Received: from smtp.egensajt.se ([193.42.159.246]:42844) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mats.lidell@HIDDEN>) id 1qqgzK-0000Wr-K3 for 61436 <at> debbugs.gnu.org; Wed, 11 Oct 2023 17:43:34 -0400 Received: from ethel (c80-217-132-174.bredband.tele2.se [80.217.132.174]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: mats.lidell@HIDDEN) by smtp.egensajt.se (Postfix) with ESMTPSA id B9408202AB; Wed, 11 Oct 2023 23:43:02 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lidells.se; s=dkim; t=1697060582; bh=AxH6AfZu2tD4Xd/OtY9kmOiWcszVBPQaqzBxw535/V8=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=WhcuDCn4tGklCnmXPqmA67hUpaySWbm38cYlswc1eso5hH574IlGzd+W05X7mvfqf ZiFClFLTROrvde3s38v6c+dPBlzeoR2zLrMjXEK8xoEcAO0Xtn8qntuulzag+wy1zR 1mOou0/X2E1urZtOSn1XPsKd654GdLHTKKNDMslE= From: Mats Lidell <mats.lidell@HIDDEN> To: Jens Schmidt <jschmidt4gnu@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files In-Reply-To: <87r0m1t0el.fsf@HIDDEN> (Jens Schmidt's message of "Wed, 11 Oct 2023 21:38:26 +0200") References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com> <83cz6fiefb.fsf@HIDDEN> <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> <835yc6hl0c.fsf@HIDDEN> <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN> <87il7dbosk.fsf@HIDDEN> <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> <87r0m1t0el.fsf@HIDDEN> Date: Wed, 11 Oct 2023 23:43:02 +0200 Message-ID: <877cnsn8d5.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 61436 Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, Alan Mackenzie <acm@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, rswgnu@HIDDEN, 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) Hi, > Jens Schmidt writes: > Now for the next reproducer (Hyperbole no longer required, but still > present through its regexp :-): I can confirm that I get a harder freeze this time using the submitted P1.j= ava file. I now get the reported behavior of not even displaying the file. I've tried at occasions, over the last years, to use Emacs for coding java = in my day job. It has always ended in some freeze that feels quite like this. I bet it is this. Would be a fun irony if it is Hyperboles regexp that has caused it, and it is about to be solved now when I'm not coding java! =F0= =9F=A4=A3 Anyway, I will take a look too. With the clear description and easy to reproduce it could be possible to solve! ;-)=20 %% Mats
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 11 Oct 2023 20:07:53 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 11 16:07:53 2023 Received: from localhost ([127.0.0.1]:40115 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qqfUm-0004EU-Pt for submit <at> debbugs.gnu.org; Wed, 11 Oct 2023 16:07:53 -0400 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:41041) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <rswgnu@HIDDEN>) id 1qqfUk-0004EB-6O for 61436 <at> debbugs.gnu.org; Wed, 11 Oct 2023 16:07:51 -0400 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-405e48d8e72so687355e9.0 for <61436 <at> debbugs.gnu.org>; Wed, 11 Oct 2023 13:07:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697054842; x=1697659642; darn=debbugs.gnu.org; h=to:in-reply-to:cc:references:message-id:date:subject:mime-version :from:content-transfer-encoding:from:to:cc:subject:date:message-id :reply-to; bh=7CGny5FV3Xsu8s5zgwfchKMVLBmRJVxPmgPPrDs6GBg=; b=XveuuGGVGP2o08XV4q5ghEYiUTgGcHEKqANnXY53Fgss7wMKfP+hoakYYnA+FAWXp2 thzRjaLrXMIYS5NatTDKEZSLsa4WKbw1Zd5eqST5mPpZke62+FJGUs6K+2qk7dO2c21D 4dUKjyTvByOmLooyZRTbDtbV+Lze1sMElNNhYJpYIz1v9kkVTJjDll3Acu7E7j3eCwtL 6rSiEKggI8pGmTioDS+dRReXd43ZcNk65oIe+tVpc+geF7DXgz9c/YJrHifvstGpDSKB IPO+YUAbVZCFEW6EDzzythtVicL1C2MMFoaG4+naUXMG0Rf9MvXfKaDnS4KgdBwL5eLw vM3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697054842; x=1697659642; h=to:in-reply-to:cc:references:message-id:date:subject:mime-version :from:content-transfer-encoding:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7CGny5FV3Xsu8s5zgwfchKMVLBmRJVxPmgPPrDs6GBg=; b=TDvfr+HArLQ3K6sFunB7Z8eySZc11DPX+9vRwE2nawGwgYRScUbWDjQp0cIsszEV3x CimX5ajgJGUe29yjH13RTR2ZM4kcIAcPNBihBrBgn21Wm6VN2xV/uNGpxiWpGnYgeu5o d+Qdww8U8iJ/xuL+/45npXekalp7kNabhrxLZ3rlazpOAkj9heI3XQck6WdqnY+sg7gt gy94VDlpWMbnyBLHXUJ1zh4lYTNC+H6D60+uzPtR2OKFCAiiAqafSaCDrcmMdWyGXhzH JL4hEqU+sjl94YOMszErHTOtT5utS0Fv9ktmtQYInHt08o56FByw7tQOYXR6yzniMwt6 0sYQ== X-Gm-Message-State: AOJu0YyktfiFUbrEaJ6HxJjTx6hFIzBI510P8TXyeflDehsDqwOU5hIX Mdz7V/yDVCl6RAnCLee+UOXngF45Z6A2Vg== X-Google-Smtp-Source: AGHT+IGhy5oWXFVj2cBc4jAziZcS9ewM3d4AD89+0nsb6le/Bm1z1n3OfV7tnIXQUm7+nqKi8SrJ+w== X-Received: by 2002:a05:600c:1d18:b0:404:72f9:d59a with SMTP id l24-20020a05600c1d1800b0040472f9d59amr19899634wms.0.1697054841977; Wed, 11 Oct 2023 13:07:21 -0700 (PDT) Received: from smtpclient.apple ([94.4.55.6]) by smtp.gmail.com with ESMTPSA id m6-20020adfa3c6000000b0032d8034724esm4034220wrb.94.2023.10.11.13.07.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 11 Oct 2023 13:07:21 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable From: Robert Weiner <rswgnu@HIDDEN> Mime-Version: 1.0 (1.0) Subject: Re: bug#61436: Emacs Freezing With Java Files Date: Wed, 11 Oct 2023 21:07:10 +0100 Message-Id: <BBEA5381-21D1-44F4-B5F3-2762D9086080@HIDDEN> References: <87r0m1t0el.fsf@HIDDEN> In-Reply-To: <87r0m1t0el.fsf@HIDDEN> To: Jens Schmidt <jschmidt4gnu@HIDDEN> X-Mailer: iPhone Mail (20H19) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 61436 Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, Mats Lidell <mats.lidell@HIDDEN>, Alan Mackenzie <acm@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Those are some pretty old regexps in Hyperbole that we have not updated in m= any years. Maybe we just need to cross-check them against what is currently= in Emacs to resolve this. I will have a look. Thanks for tracing through t= his. -- rsw > On Oct 11, 2023, at 8:38 PM, Jens Schmidt <jschmidt4gnu@HIDDEN> w= rote: >=20 > =EF=BB=BFHi Alan, >=20 > could you please have a look as well? This seems to be related to > cc-mode/java-mode. New, complete reproducer at the very bottom of this > mail. >=20 > Thanks! >=20 > Hi Robert & Mats, >=20 > Robert Weiner <rsw@HIDDEN> writes: >=20 >> Jens wrote: >>=20 >>> That always freezes Emacs (29 and master) even before it has a chance to= >>> display P1.java. The freeze happens in function >>> `c-get-fallback-scan-pos', where the while loop inf-loops, BUT: >>>=20 >>> If you uncomment the line setting `hkey-init' to nil in init.el and >>> repeat: No freeze. >>=20 >> As you note above, the infinite loop is coming from a Lisp function in >> Emacs core, not from Hyperbole. A Hyperbole setting may help you to >> see a state reached in that function that you otherwise would not, but >> it is not a Hyperbole bug; it is an unhandled state outside of >> Hyperbole. >=20 > Well, yes and no. The next closest culprit seems to be this hook > addition from function `hui-select-initialize': >=20 > ;; These hooks let you select C++ and Java methods and classes by > ;; double-clicking on the first character of a definition or on its > ;; opening or closing brace. This is all necessary since some > ;; programmers don't put their function braces in the first column. > (var:add-and-run-hook > 'java-mode-hook > (lambda () > (setq defun-prompt-regexp > "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|s= ynchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)= \\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)= \\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-= zA-Z][^][ \t:;.,{}()=7F=3D]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^= );{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0= -9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*"))) >=20 > I (very generally) think that Emacs does not have to grok every regexp > in every context, but I leave that concrete case for Alan and/or others > to decide. >=20 >> On Wed, Oct 11, 2023 at 3:29=E2=80=AFAM Mats Lidell <mats.lidell@lidells.= se> wrote: >>=20 >> Thanks for the report. >=20 > Actually, not mine. I'm just the messenger who did some root-cause > analysis. >=20 >> Note: I don't know what P1.java means here. I have picked a java file >> at random that I had on my machine that is large. Is P1.java a >> specific file that has been shared earlier? >=20 > The OP has provided that, see below. >=20 >> Hyperbole has its own tracker. >>=20 >> https://debbugs.gnu.org/cgi/pkgreport.cgi?package=3Dhyperbole >=20 > Ok, thanks. As soon as we know whose bug this is we could forward or > not. >=20 >=20 > Now for the next reproducer (Hyperbole no longer required, but still > present through its regexp :-): >=20 > - Save the following to ~/tmp/init.el: >=20 > ------------------------- snip ------------------------- > (add-hook > 'java-mode-hook > (lambda () > (setq defun-prompt-regexp > "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|syn= chronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\= s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\= s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA= -Z][^][ \t:;.,{}()=7F=3D]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);= {}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9= ]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*"))) > ------------------------- snip ------------------------- >=20 > - Save attachment P1.java from the initial message >=20 > https://yhetil.org/emacs-bugs/ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3= dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=3D@protonma= il.com/ >=20 > to ~/tmp/P1.java. >=20 > - Start Emacs as >=20 > ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java >=20 > That always freezes Emacs (29 and master) even before it has a chance to > display P1.java. The freeze happens in function > `c-get-fallback-scan-pos', where the while loop inf-loops.
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 11 Oct 2023 19:39:27 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 11 15:39:27 2023 Received: from localhost ([127.0.0.1]:40094 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qqf3H-0002yN-5h for submit <at> debbugs.gnu.org; Wed, 11 Oct 2023 15:39:27 -0400 Received: from mr6.vodafonemail.de ([145.253.228.166]:35496) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <jschmidt4gnu@HIDDEN>) id 1qqf3B-0002y5-HI for 61436 <at> debbugs.gnu.org; Wed, 11 Oct 2023 15:39:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vodafonemail.de; s=vfde-mb-mr2-21dec; t=1697053133; bh=ACIu1WSOmcH0W1FZKR4ENmd1hiBf6Jpf8s4A6Ou8x0Q=; h=From:To:Subject:References:Date:In-Reply-To:Message-ID:User-Agent: Content-Type:From; b=Yi/C3S8h8Ibyowoz4q+FMbMl8ZeH7oNxOUn6yoCQG+On2CPXUHgq7RUWYUzivau3X 2x3lU+UizlRgi5J0O/K6rSA2LpBQ7y6HoESkAcgpfgftXQYluHPhjyoP5YI4WqICbl 61ki01kn9njZ36m2sIYJ8eANKCc001muhug6SA5M= Received: from smtp.vodafone.de (unknown [10.0.0.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by mr6.vodafonemail.de (Postfix) with ESMTPS id 4S5NP92jDBz1xsb; Wed, 11 Oct 2023 19:38:53 +0000 (UTC) Received: from sappc2 (port-92-194-230-114.dynamic.as20676.net [92.194.230.114]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp.vodafone.de (Postfix) with ESMTPSA id 4S5NNk3fvgzHnHf; Wed, 11 Oct 2023 19:38:27 +0000 (UTC) From: Jens Schmidt <jschmidt4gnu@HIDDEN> To: Alan Mackenzie <acm@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com> <83cz6fiefb.fsf@HIDDEN> <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> <835yc6hl0c.fsf@HIDDEN> <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN> <87il7dbosk.fsf@HIDDEN> <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> Date: Wed, 11 Oct 2023 21:38:26 +0200 In-Reply-To: <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> (Robert Weiner's message of "Wed, 11 Oct 2023 06:17:50 -0400") Message-ID: <87r0m1t0el.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-purgate-type: clean X-purgate: clean X-purgate-size: 3977 X-purgate-ID: 155817::1697053129-BE7FD94E-0D39D584/0/0 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 61436 Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>, Mats Lidell <mats.lidell@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, rswgnu@HIDDEN, 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) Hi Alan, could you please have a look as well? This seems to be related to cc-mode/java-mode. New, complete reproducer at the very bottom of this mail. Thanks! Hi Robert & Mats, Robert Weiner <rsw@HIDDEN> writes: > Jens wrote: > >> That always freezes Emacs (29 and master) even before it has a chance to >> display P1.java. The freeze happens in function >> `c-get-fallback-scan-pos', where the while loop inf-loops, BUT: >> >> If you uncomment the line setting `hkey-init' to nil in init.el and >> repeat: No freeze. > > As you note above, the infinite loop is coming from a Lisp function in > Emacs core, not from Hyperbole. A Hyperbole setting may help you to > see a state reached in that function that you otherwise would not, but > it is not a Hyperbole bug; it is an unhandled state outside of > Hyperbole. Well, yes and no. The next closest culprit seems to be this hook addition from function `hui-select-initialize': ;; These hooks let you select C++ and Java methods and classes by ;; double-clicking on the first character of a definition or on its ;; opening or closing brace. This is all necessary since some ;; programmers don't put their function braces in the first column. (var:add-and-run-hook 'java-mode-hook (lambda () (setq defun-prompt-regexp "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|sync= hronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\= s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\= \s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-= zA-Z][^][ \t:;.,{}()=3D]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^)= ;{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0= -9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*"))) I (very generally) think that Emacs does not have to grok every regexp in every context, but I leave that concrete case for Alan and/or others to decide. > On Wed, Oct 11, 2023 at 3:29=E2=80=AFAM Mats Lidell <mats.lidell@lidells.= se> wrote: > > Thanks for the report. Actually, not mine. I'm just the messenger who did some root-cause analysis. > Note: I don't know what P1.java means here. I have picked a java file > at random that I had on my machine that is large. Is P1.java a > specific file that has been shared earlier? The OP has provided that, see below. > Hyperbole has its own tracker. > > https://debbugs.gnu.org/cgi/pkgreport.cgi?package=3Dhyperbole Ok, thanks. As soon as we know whose bug this is we could forward or not. Now for the next reproducer (Hyperbole no longer required, but still present through its regexp :-): - Save the following to ~/tmp/init.el: ------------------------- snip ------------------------- (add-hook 'java-mode-hook (lambda () (setq defun-prompt-regexp "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|synchr= onized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\s-= +\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s= -*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA= -Z][^][ \t:;.,{}()=3D]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{= }]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9= ]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*"))) ------------------------- snip ------------------------- - Save attachment P1.java from the initial message https://yhetil.org/emacs-bugs/ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3= dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=3D@protonm= ail.com/ to ~/tmp/P1.java. - Start Emacs as ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java That always freezes Emacs (29 and master) even before it has a chance to display P1.java. The freeze happens in function `c-get-fallback-scan-pos', where the while loop inf-loops.
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 11 Oct 2023 10:18:50 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 11 06:18:50 2023 Received: from localhost ([127.0.0.1]:37543 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qqWIk-0005FM-1T for submit <at> debbugs.gnu.org; Wed, 11 Oct 2023 06:18:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51624) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <rsw@HIDDEN>) id 1qqWIf-0005F3-5M for 61436 <at> debbugs.gnu.org; Wed, 11 Oct 2023 06:18:48 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <rsw@HIDDEN>) id 1qqWID-0001BY-GU for 61436 <at> debbugs.gnu.org; Wed, 11 Oct 2023 06:18:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=To:Subject:Date:From:In-Reply-To:References: MIME-Version; bh=W6t1JrSVxMwE/2qVitgjqK6OwIkL8xmvZfIhNQRnQYs=; b=Sk1sYiPUlTSc cHcxL2hVdHKov0Y88Lr9DFSlM6ykz0X68MP98PP8faa07TqIarRTeAHfooE84tZ1OzBb+M9+yIPuJ pET/uK1naLQz709/37UWBsmxBIqd+HvzSS6QTtW5RZV1FgTnTAn5FfVE/l4cKgjZLpPhRbxkFBfzZ XI0U9m/v0m4ltXPqWpk6BXlmEkCsmCmO7xlFixnXxTePlSH+7bhFlY9yfSgrMoN0MwjH77Iy6oVWG UORB28uhWoa57fOw6kk2bbDOv77d6meO5Aw2QUue/0FtrTQDx6H4tgJGxeUWte5CoCUwE2C3Gdqjb sb5ekk83+U03IR/0AMR25g==; X-Gm-Message-State: AOJu0YxXh+G8eyvzIMPQ4jOzmMFOXNHFBpQKW4twg3wf6+dT8bMreuN/ D6i9/9E+97nvAUCwVEY7cA3RFmDyyNipxsWpFrs= X-Google-Smtp-Source: AGHT+IHbo8foko55S3lI2GeS+gsus2dw26LADqt5SL2I8rsJV+zbD8Pf2kw8Al5En4dnp7P7ooWY/W24rdFkEYRWxYI= X-Received: by 2002:a67:ead5:0:b0:452:5a06:b6ae with SMTP id s21-20020a67ead5000000b004525a06b6aemr11675406vso.2.1697019496528; Wed, 11 Oct 2023 03:18:16 -0700 (PDT) MIME-Version: 1.0 References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com> <83cz6fiefb.fsf@HIDDEN> <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> <835yc6hl0c.fsf@HIDDEN> <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN> <87il7dbosk.fsf@HIDDEN> In-Reply-To: <87il7dbosk.fsf@HIDDEN> From: Robert Weiner <rsw@HIDDEN> Date: Wed, 11 Oct 2023 06:17:50 -0400 X-Gmail-Original-Message-ID: <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> Message-ID: <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files To: Mats Lidell <mats.lidell@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000448fe006076e24a4" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 61436 Cc: Hank Greenburg <hank.greenburg@HIDDEN>, Jens Schmidt <jschmidt4gnu@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Reply-To: rswgnu@HIDDEN Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) --000000000000448fe006076e24a4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Jens wrote: > That always freezes Emacs (29 and master) even before it has a chance to > display P1.java. The freeze happens in function > `c-get-fallback-scan-pos', where the while loop inf-loops, BUT: > > If you uncomment the line setting `hkey-init' to nil in init.el and > repeat: No freeze. As you note above, the infinite loop is coming from a Lisp function in Emacs core, not from Hyperbole. A Hyperbole setting may help you to see a state reached in that function that you otherwise would not, but it is not a Hyperbole bug; it is an unhandled state outside of Hyperbole. When the issue is found, we will have to work around it in Hyperbole since we support Emacs versions back to 27.1 but that is another matter. Thanks for pointing it out. -- rsw On Wed, Oct 11, 2023 at 3:29=E2=80=AFAM Mats Lidell <mats.lidell@HIDDEN= > wrote: > Hi Jens, > > Thanks for the report. Seems non trivial. > > > Jens Schmidt writes: > > Jens Schmidt <jschmidt4gnu@HIDDEN> writes: > > > > > Ensure package "hyperbole" is installed. (Its only role in this > > > issue seems to be a "background load generator", but I'm not 100% > > > sure here.) > > > > The second part above is not true! Hyperbole mode is the culprit, > > unless proven otherwise. Here is a 100%-freezing reproducer (with > > P1.java as from the initial post): > > > > ------------------------- init.el ------------------------- > > (require 'package) > > (add-to-list 'package-archives > > '("melpa" . "https://melpa.org/packages/")) > > (add-to-list 'package-archives > > '("gnu" . "https://elpa.gnu.org/packages/")) > > (package-initialize) > > ;(setq hkey-init nil) > > (hyperbole-mode 1) > > ------------------------- init.el ------------------------- > > > > Execute Emacs as: > > > > ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java > > > > That always freezes Emacs (29 and master) even before it has a chance t= o > > display P1.java. The freeze happens in function > > `c-get-fallback-scan-pos', where the while loop inf-loops, BUT: > > > > If you uncomment the line setting `hkey-init' to nil in init.el and > > repeat: No freeze. > > I have tried to recreate the freezing (with 29.1 running docker) and I > don't > see the exact same behavior. For me P1.java is displayed and there us no > freeze but when I try to go to top or bottom of file it freezes and I hav= e > to > hit C-g. After that it seems to work. This is just an observation. There > can > be more things affected of course. > > I have tried both with the hyperbole stable and devel packages and get th= e > same behavior. > > Note: I don't know what P1.java means here. I have picked a java file at > random that I had on my machine that is large. Is P1.java a specific file > that > has been shared earlier? > > > Not sure how to continue here - since this is a GNU ELPA package, it ca= n > > be further handled on Emacs debbugs, no? Mats, Bob? > > Hyperbole has its own tracker. > > https://debbugs.gnu.org/cgi/pkgreport.cgi?package=3Dhyperbole > > %% Mats > --000000000000448fe006076e24a4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac= e,monospace">Jens wrote:</div><div class=3D"gmail_default" style=3D"font-fa= mily:monospace,monospace"><br></div><div class=3D"gmail_default" style=3D"f= ont-family:monospace,monospace">> That always freezes Emacs (29 and mast= er) even before it has a chance to<br> > display P1.java.=C2=A0 The freeze happens in function<br> > `c-get-fallback-scan-pos', where the while loop inf-loops, BUT:<br= > ><br> > If you uncomment the line setting `hkey-init' to nil in init.el an= d<br> > repeat: No freeze.</div><div class=3D"gmail_default" style=3D"font-fam= ily:monospace,monospace"><br></div><div class=3D"gmail_default" style=3D"fo= nt-family:monospace,monospace">As you note above, the infinite loop is comi= ng from a Lisp function in Emacs core, not from Hyperbole.=C2=A0 A Hyperbol= e setting may help you to see a state reached in that function that you oth= erwise would not, but it is not a Hyperbole bug; it is an unhandled state o= utside of Hyperbole.=C2=A0 When the issue is found, we will have to work ar= ound it in Hyperbole since we support Emacs versions back to 27.1 but that = is another matter.=C2=A0 Thanks for pointing it out.</div><div class=3D"gma= il_default" style=3D"font-family:monospace,monospace"><br></div><div class= =3D"gmail_default" style=3D"font-family:monospace,monospace">-- rsw</div><d= iv class=3D"gmail_default" style=3D"font-family:monospace,monospace"><br></= div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_at= tr">On Wed, Oct 11, 2023 at 3:29=E2=80=AFAM Mats Lidell <<a href=3D"mail= to:mats.lidell@HIDDEN">mats.lidell@HIDDEN</a>> wrote:<br></div><= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft:1px solid rgb(204,204,204);padding-left:1ex">Hi Jens,<br> <br> Thanks for the report. Seems non trivial.<br> <br> > Jens Schmidt writes:<br> > Jens Schmidt <<a href=3D"mailto:jschmidt4gnu@HIDDEN" targe= t=3D"_blank">jschmidt4gnu@HIDDEN</a>> writes:<br> ><br> > >=C2=A0 =C2=A0Ensure package "hyperbole" is installed.=C2= =A0 (Its only role in this<br> > >=C2=A0 =C2=A0issue seems to be a "background load generator&q= uot;, but I'm not 100%<br> > >=C2=A0 =C2=A0sure here.)<br> ><br> > The second part above is not true!=C2=A0 Hyperbole mode is the culprit= ,<br> > unless proven otherwise.=C2=A0 Here is a 100%-freezing reproducer (wit= h<br> > P1.java as from the initial post):<br> ><br> > ------------------------- init.el -------------------------<br> > (require 'package)<br> > (add-to-list 'package-archives<br> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 '("melpa" . &qu= ot;<a href=3D"https://melpa.org/packages/" rel=3D"noreferrer" target=3D"_bl= ank">https://melpa.org/packages/</a>"))<br> > (add-to-list 'package-archives<br> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 '("gnu" . "= ;<a href=3D"https://elpa.gnu.org/packages/" rel=3D"noreferrer" target=3D"_b= lank">https://elpa.gnu.org/packages/</a>"))<br> > (package-initialize)<br> > ;(setq hkey-init nil)<br> > (hyperbole-mode 1)<br> > ------------------------- init.el -------------------------<br> ><br> > Execute Emacs as:<br> ><br> >=C2=A0 =C2=A0./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java<br> ><br> > That always freezes Emacs (29 and master) even before it has a chance = to<br> > display P1.java.=C2=A0 The freeze happens in function<br> > `c-get-fallback-scan-pos', where the while loop inf-loops, BUT:<br= > ><br> > If you uncomment the line setting `hkey-init' to nil in init.el an= d<br> > repeat: No freeze.<br> <br> I have tried to recreate the freezing (with 29.1 running docker) and I don&= #39;t<br> see the exact same behavior. For me P1.java is displayed and there us no<br= > freeze but when I try to go to top or bottom of file it freezes and I have = to<br> hit C-g. After that it seems to work. This is just an observation. There ca= n<br> be more things affected of course.<br> <br> I have tried both with the hyperbole stable and devel packages and get the<= br> same behavior. <br> <br> Note: I don't know what P1.java means here. I have picked a java file a= t<br> random that I had on my machine that is large. Is P1.java a specific file t= hat<br> has been shared earlier?<br> <br> > Not sure how to continue here - since this is a GNU ELPA package, it c= an<br> > be further handled on Emacs debbugs, no?=C2=A0 Mats, Bob?<br> <br> Hyperbole has its own tracker.<br> <br> <a href=3D"https://debbugs.gnu.org/cgi/pkgreport.cgi?package=3Dhyperbole" r= el=3D"noreferrer" target=3D"_blank">https://debbugs.gnu.org/cgi/pkgreport.c= gi?package=3Dhyperbole</a><br> <br> %% Mats<br> </blockquote></div> --000000000000448fe006076e24a4--
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 11 Oct 2023 07:29:32 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 11 03:29:31 2023 Received: from localhost ([127.0.0.1]:37392 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qqTet-000874-Iz for submit <at> debbugs.gnu.org; Wed, 11 Oct 2023 03:29:31 -0400 Received: from smtp.egensajt.se ([193.42.159.246]:34396) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mats.lidell@HIDDEN>) id 1qqTep-00086n-KO for 61436 <at> debbugs.gnu.org; Wed, 11 Oct 2023 03:29:30 -0400 Received: from ethel (c80-217-132-174.bredband.tele2.se [80.217.132.174]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: mats.lidell@HIDDEN) by smtp.egensajt.se (Postfix) with ESMTPSA id 4231820107; Wed, 11 Oct 2023 09:29:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lidells.se; s=dkim; t=1697009340; bh=ht4HSeTL80ToNKSIGzHSIONnvqHcVpY0rzBvuyV+dyY=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=cO3fFAxE2sqtDXK8VTOz4/xPD6tLlkpa0fc6vGXOxv4hW2IGabxcTkUESqdUrNHAc aVUiCp46cctgnzzUNIsqNoPbmAs8T8jtg6m1d3eR+Snhd+7M5cSwmK0u37zmVr13F9 QIym6LVr/mUifTuDL5Y2beYLo8QeDhpj8CwIuQXU= From: Mats Lidell <mats.lidell@HIDDEN> To: Jens Schmidt <jschmidt4gnu@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files In-Reply-To: <87il7ew5wx.fsf@HIDDEN> (Jens Schmidt's message of "Tue, 10 Oct 2023 22:58:54 +0200") References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com> <83cz6fiefb.fsf@HIDDEN> <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> <835yc6hl0c.fsf@HIDDEN> <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN> Date: Wed, 11 Oct 2023 09:28:59 +0200 Message-ID: <87il7dbosk.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 61436 Cc: Hank Greenburg <hank.greenburg@HIDDEN>, 61436 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, Bob Weiner <rsw@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) Hi Jens, Thanks for the report. Seems non trivial. > Jens Schmidt writes: > Jens Schmidt <jschmidt4gnu@HIDDEN> writes: > > > Ensure package "hyperbole" is installed. (Its only role in this > > issue seems to be a "background load generator", but I'm not 100% > > sure here.) > > The second part above is not true! Hyperbole mode is the culprit, > unless proven otherwise. Here is a 100%-freezing reproducer (with > P1.java as from the initial post): > > ------------------------- init.el ------------------------- > (require 'package) > (add-to-list 'package-archives > '("melpa" . "https://melpa.org/packages/")) > (add-to-list 'package-archives > '("gnu" . "https://elpa.gnu.org/packages/")) > (package-initialize) > ;(setq hkey-init nil) > (hyperbole-mode 1) > ------------------------- init.el ------------------------- > > Execute Emacs as: > > ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java > > That always freezes Emacs (29 and master) even before it has a chance to > display P1.java. The freeze happens in function > `c-get-fallback-scan-pos', where the while loop inf-loops, BUT: > > If you uncomment the line setting `hkey-init' to nil in init.el and > repeat: No freeze. I have tried to recreate the freezing (with 29.1 running docker) and I don't see the exact same behavior. For me P1.java is displayed and there us no freeze but when I try to go to top or bottom of file it freezes and I have to hit C-g. After that it seems to work. This is just an observation. There can be more things affected of course. I have tried both with the hyperbole stable and devel packages and get the same behavior. Note: I don't know what P1.java means here. I have picked a java file at random that I had on my machine that is large. Is P1.java a specific file that has been shared earlier? > Not sure how to continue here - since this is a GNU ELPA package, it can > be further handled on Emacs debbugs, no? Mats, Bob? Hyperbole has its own tracker. https://debbugs.gnu.org/cgi/pkgreport.cgi?package=hyperbole %% Mats
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 10 Oct 2023 20:59:49 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Oct 10 16:59:49 2023 Received: from localhost ([127.0.0.1]:36997 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qqJpV-0003Hv-DT for submit <at> debbugs.gnu.org; Tue, 10 Oct 2023 16:59:49 -0400 Received: from mr4.vodafonemail.de ([145.253.228.164]:37434) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <jschmidt4gnu@HIDDEN>) id 1qqJpP-0003HU-NJ for 61436 <at> debbugs.gnu.org; Tue, 10 Oct 2023 16:59:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vodafonemail.de; s=vfde-mb-mr2-21dec; t=1696971556; bh=tDMFk+BEIOeEAMyzFMEFEJLbdpiZcorhxut7vIK3XPs=; h=From:To:Subject:References:Date:In-Reply-To:Message-ID:User-Agent: Content-Type:From; b=LUkwjYJYRbzpJ2bUljhO7AdO+dv0m41MtqX/1rOag6NnubmYJhU/SAeNn3esJgqo2 WSwpqP+HTtTETXj85sqo2iG5CG0fzebYOg6bVnnYHyWPZm2zETLJetgYBEhbS8gSS9 LEyAsNXE6gDf5jqBUvJW9ZQFEMIdKy5SQLxZyYVo= Received: from smtp.vodafone.de (unknown [10.0.0.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by mr4.vodafonemail.de (Postfix) with ESMTPS id 4S4pDN0C6gz1yD5; Tue, 10 Oct 2023 20:59:15 +0000 (UTC) Received: from sappc2 (port-92-194-29-92.dynamic.as20676.net [92.194.29.92]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp.vodafone.de (Postfix) with ESMTPSA id 4S4pD32HpFz9s5p; Tue, 10 Oct 2023 20:58:56 +0000 (UTC) From: Jens Schmidt <jschmidt4gnu@HIDDEN> To: Hank Greenburg <hank.greenburg@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com> <83cz6fiefb.fsf@HIDDEN> <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> <835yc6hl0c.fsf@HIDDEN> <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> <87bkd7fsp4.fsf@HIDDEN> Date: Tue, 10 Oct 2023 22:58:54 +0200 In-Reply-To: <87bkd7fsp4.fsf@HIDDEN> (Jens Schmidt's message of "Mon, 09 Oct 2023 22:26:31 +0200") Message-ID: <87il7ew5wx.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-purgate-type: clean X-purgate: clean X-purgate-size: 2088 X-purgate-ID: 155817::1696971551-B8FF67FF-D2938192/0/0 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 61436 Cc: Eli Zaretskii <eliz@HIDDEN>, 61436 <at> debbugs.gnu.org, Mats Lidell <mats.lidell@HIDDEN>, Bob Weiner <rsw@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) Jens Schmidt <jschmidt4gnu@HIDDEN> writes: > Ensure package "hyperbole" is installed. (Its only role in this > issue seems to be a "background load generator", but I'm not 100% > sure here.) The second part above is not true! Hyperbole mode is the culprit, unless proven otherwise. Here is a 100%-freezing reproducer (with P1.java as from the initial post): ------------------------- init.el ------------------------- (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) (add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/")) (package-initialize) ;(setq hkey-init nil) (hyperbole-mode 1) ------------------------- init.el ------------------------- Execute Emacs as: ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java That always freezes Emacs (29 and master) even before it has a chance to display P1.java. The freeze happens in function `c-get-fallback-scan-pos', where the while loop inf-loops, BUT: If you uncomment the line setting `hkey-init' to nil in init.el and repeat: No freeze. Not sure how to continue here - since this is a GNU ELPA package, it can be further handled on Emacs debbugs, no? Mats, Bob? Disclaimer: I do not use Hyperbole as a regular user, I installed it through `package-install' just for the purpose of this bug, as follows: ------------------------- snip ------------------------- Package hyperbole is installed. Status: Installed in =E2=80=98hyperbole-8.0.0/=E2=80=99. Delete Version: 8.0.0 Commit: 4214716e06920a3e10db5811bd22a343ad6435d9 Summary: GNU Hyperbole: The Everyday Hypertextual Information Manager Requires: emacs-27.0 Website: https://www.gnu.org/software/hyperbole Keywords: comm convenience files frames hypermedia languages mail matchi= ng mouse multimedia outlines tools wp Maintainer: Bob Weiner <rsw@HIDDEN>, Mats Lidell <matsl@HIDDEN> Author: Bob Weiner Other versions: 8.0.0 (gnu). ------------------------- snip -------------------------
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Jens Schmidt <jschmidt4gnu@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Jens Schmidt <jschmidt4gnu@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 9 Oct 2023 20:27:24 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 09 16:27:24 2023 Received: from localhost ([127.0.0.1]:33462 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qpwqX-0003IU-Nt for submit <at> debbugs.gnu.org; Mon, 09 Oct 2023 16:27:24 -0400 Received: from mr5.vodafonemail.de ([145.253.228.165]:45362) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <jschmidt4gnu@HIDDEN>) id 1qpwqR-0003I6-Ns; Mon, 09 Oct 2023 16:27:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vodafonemail.de; s=vfde-mb-mr2-21dec; t=1696883209; bh=Dmh4sfvZeSN3Wfo73M1TpasSg/VQhYA6/zCJ7rPdi2A=; h=From:To:Subject:References:Date:In-Reply-To:Message-ID:User-Agent: Content-Type:From; b=Vv7vnGV+CnfyRhvH+hnqFQ4Ag2FZ39jZwkG5k7Dh2scLu4dDgMGONr7SBljNi9YKj 95YtLuIFDVE/+SOibglvYY/pscq5Yz9iHVL77OVEYfRHyu4UMQ4puQVMpK+ilDjRs1 Te0ez5kmoi9YHFbqms6SfjoKf72z0xZkRUlvn3lA= Received: from smtp.vodafone.de (unknown [10.0.0.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by mr5.vodafonemail.de (Postfix) with ESMTPS id 4S49YP3QFTz1y7F; Mon, 9 Oct 2023 20:26:49 +0000 (UTC) Received: from sappc2 (port-92-194-109-97.dynamic.as20676.net [92.194.109.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp.vodafone.de (Postfix) with ESMTPSA id 4S49Y74bN0zHpxd; Mon, 9 Oct 2023 20:26:32 +0000 (UTC) From: Jens Schmidt <jschmidt4gnu@HIDDEN> To: Hank Greenburg <hank.greenburg@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com> <83cz6fiefb.fsf@HIDDEN> <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> <835yc6hl0c.fsf@HIDDEN> <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> Date: Mon, 09 Oct 2023 22:26:31 +0200 In-Reply-To: <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> (Hank Greenburg's message of "Sun, 12 Feb 2023 17:11:22 +0000") Message-ID: <87bkd7fsp4.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-purgate-type: clean X-purgate: clean X-purgate-size: 1591 X-purgate-ID: 155817::1696883205-60FF418D-BAA7DA78/0/0 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 61436 Cc: Eli Zaretskii <eliz@HIDDEN>, 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) found 61436 29.1.50 found 61436 30.0.50 thanks Hank Greenburg <hank.greenburg@HIDDEN> writes: > This works just fine until which-function-mode is > activated. After that is activated I can scroll through maybe > twice before it freezes. I can confirm both on emacs-29 and on master. (Actually, I was hoping for another case of my bug#60768 wracking havoc, but this issue is actually something different. Even though `beginning-of-defun' is also involved here through `which-function' calls ...) A slightly easier to follow reproducer: - Ensure package "hyperbole" is installed. (Its only role in this issue seems to be a "background load generator", but I'm not 100% sure here.) - Save Hank's Java source P1.java to ~/tmp. - Save the following to ~/tmp/init.el: ------------------------- snip ------------------------- (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) (add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/")) (package-initialize) (hyperbole-mode 1) (which-function-mode 1) ------------------------- snip ------------------------- - Start emacs as ./src/emacs -Q -l ~/tmp/init.el ~/tmp/P1.java and wait for the compiler warnings to calm down. - As Hank has recommended, forward/backward paragraph through P1.java. Rather soon it should hang. And yes, it's which-function-mode which at some level inf-loops. Maybe the timer itself, maybe some upper layer. If I'll find time I could try digging into this.
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 12 Feb 2023 17:11:40 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 12 12:11:40 2023 Received: from localhost ([127.0.0.1]:46552 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pRFt4-00026Q-TX for submit <at> debbugs.gnu.org; Sun, 12 Feb 2023 12:11:40 -0500 Received: from mail-4322.protonmail.ch ([185.70.43.22]:32061) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <hank.greenburg@HIDDEN>) id 1pRFt1-00026A-R7 for 61436 <at> debbugs.gnu.org; Sun, 12 Feb 2023 12:11:37 -0500 Date: Sun, 12 Feb 2023 17:11:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1676221888; x=1676481088; bh=3F1RnbAZohIQwupOfe75G3sZXoTt6EFjZRowlxCCkSA=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=zENi9lDv0dmX8xuEGaPVqZkyzPJxp1g1f6aK2vwnOtXN/5ws1woIRZ6rAcekJdCOu jM24zJZTfRQqua5Xzm2TfYocSNoLTPYY3YYIiTh+GEeD8fzuS8zEovuoT+RoVypxD0 5PGnHNhwIL5hxIzC37rz8ouct6dko70XWotXYGPSusTkZqfON9w9CqoJJLwhj9RUiM kS2g++f62byVDJEOE4SNcEVlRGfBRyJO3V+GZObahDRrK3bA0j/Ul/UZV3i9B3HQWH 5tZWlVHruNlMKzMi5MeLzpFZN2oRUEsv0N41NEjyAxvC6Qi22HK0ViY5yvYs872wll aYSkfvvJRwOfQ== To: Eli Zaretskii <eliz@HIDDEN> From: Hank Greenburg <hank.greenburg@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files Message-ID: <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com> In-Reply-To: <835yc6hl0c.fsf@HIDDEN> References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com> <83cz6fiefb.fsf@HIDDEN> <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> <835yc6hl0c.fsf@HIDDEN> Feedback-ID: 10943770:user:proton MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_0RivMYcIFzDWLX2R6VxDjfZjRkHocvgBoHn7ostww" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 61436 Cc: 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --b1_0RivMYcIFzDWLX2R6VxDjfZjRkHocvgBoHn7ostww Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Sorry, by blocks I mean the org-mode code blocks that are under the headers= "Repos (Elpa and Melpa)" and "Hyperbole" in the init.org file I sent with = my first email. I've attached it again here. Underneath those headers is an org-mode source block, if you go inside of t= he block and run "org-babel-execute-src-block" then say yes when it asks if= you want to run the code. If you do that for Repos and Hyperbole blocks th= en follow the steps below. Go to the Java file. Hold CTRL + Up/Down Arrow keys to quickly move through= the file. This works just fine until which-function-mode is activated. After that is = activated I can scroll through maybe twice before it freezes. It almost always happens after hitting the end of the file, and the first j= ump up after that. Or at least it has happened 4/5 times by doing that. The= other time I avoided the end of the file to see if that was the trigger an= d it still froze. ------- Original Message ------- On Sunday, February 12th, 2023 at 11:05 AM, Eli Zaretskii <eliz@HIDDEN> wr= ote: >=20 >=20 > > Date: Sun, 12 Feb 2023 16:52:51 +0000 >=20 > > From: Hank Greenburg hank.greenburg@HIDDEN > > Cc: 61436 <at> debbugs.gnu.org > >=20 > > Launch with emacs -Q > >=20 > > org-babel-execute-src-block for the Repos block and Hyperbole. The Hype= rbole block won't work unless you do the Repos block first. >=20 >=20 > Sorry, I don't understand: what is "the Repos block", and what is the > "Hyperbole block"? What do I need to do after starting "emacs -Q" to > reproduce what you describe above? which commands to type? --b1_0RivMYcIFzDWLX2R6VxDjfZjRkHocvgBoHn7ostww Content-Type: text/org; name=init.org Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=init.org CiogUmVwb3MgKEVscGEgYW5kIE1lbHBhKQojK0JFR0lOX1NSQyBlbGlzcAoocmVxdWlyZSAncGFj a2FnZSkKKGFkZC10by1saXN0ICdwYWNrYWdlLWFyY2hpdmVzCgkgICAgICcoIm1lbHBhIiAuICJo dHRwczovL21lbHBhLm9yZy9wYWNrYWdlcy8iKSkKKGFkZC10by1saXN0ICdwYWNrYWdlLWFyY2hp dmVzCgkgICAgICcoImdudSIgLiAiaHR0cHM6Ly9lbHBhLmdudS5vcmcvcGFja2FnZXMvIikpCihw YWNrYWdlLWluaXRpYWxpemUpCiMrRU5EX1NSQwoKKiBEaXJ2aXNoCiMrQkVHSU5fU1JDIGVsaXNw Cih1c2UtcGFja2FnZSBkaXJ2aXNoCiAgOmluaXQKICAoZGlydmlzaC1vdmVycmlkZS1kaXJlZC1t b2RlKQogIDpjdXN0b20KICA7OyBHbyBiYWNrIGhvbWU/IEp1c3QgcHJlc3MgYGJoJwogIChkaXJ2 aXNoLWJvb2ttYXJrLWVudHJpZXMKICAgJygoImgiICJ+LyIgICAgICAgICAgICAgICAgICAgICAg ICAgICJIb21lIikKICAgICAoImQiICJ+L0Rvd25sb2Fkcy8iICAgICAgICAgICAgICAgICJEb3du bG9hZHMiKQogICAgICgibSIgIi9tbnQvIiAgICAgICAgICAgICAgICAgICAgICAgIkRyaXZlcyIp CiAgICAgKCJ0IiAifi8ubG9jYWwvc2hhcmUvVHJhc2gvZmlsZXMvIiAiVHJhc2hDYW4iKSkpCiAg OzsgKGRpcnZpc2gtaGVhZGVyLWxpbmUtZm9ybWF0ICcoOmxlZnQgKHBhdGgpIDpyaWdodCAoZnJl ZS1zcGFjZSkpKQogIChkaXJ2aXNoLW1vZGUtbGluZS1mb3JtYXQgOyBpdCdzIG9rIHRvIHBsYWNl IHN0cmluZyBpbnNpZGUKICAgJyg6bGVmdCAoc29ydCBmaWxlLXRpbWUgIiAiIGZpbGUtc2l6ZSBz eW1saW5rKSA6cmlnaHQgKG9taXQgeWFuayBpbmRleCkpKQogIDs7IERvbid0IHdvcnJ5LCBEaXJ2 aXNoIGlzIHN0aWxsIHBlcmZvcm1hbnQgZXZlbiB5b3UgZW5hYmxlIGFsbCB0aGVzZSBhdHRyaWJ1 dGVzCiAgKGRpcnZpc2gtYXR0cmlidXRlcyAnKGFsbC10aGUtaWNvbnMgZmlsZS1zaXplIGNvbGxh cHNlIHN1YnRyZWUtc3RhdGUgdmMtc3RhdGUgZ2l0LW1zZykpCiAgOzsgTWF5YmUgdGhlIGljb25z IGFyZSB0b28gYmlnIHRvIHlvdXIgZXllcwogIDs7IChkaXJ2aXNoLWFsbC10aGUtaWNvbnMtaGVp Z2h0IDAuOCkKICA7OyBJbiBjYXNlIHlvdSB3YW50IHRoZSBkZXRhaWxzIGF0IHN0YXJ0dXAgbGlr ZSBgZGlyZWQnCiAgOzsgKGRpcnZpc2gtaGlkZS1kZXRhaWxzIG5pbCkKICA6Y29uZmlnCiAgKGRp cnZpc2gtcGVlay1tb2RlKQogIDs7IERpcmVkIG9wdGlvbnMgYXJlIHJlc3BlY3RlZCBleGNlcHQg YSBmZXcgZXhjZXB0aW9ucywgc2VlICpJbiByZWxhdGlvbiB0byBEaXJlZCogc2VjdGlvbiBhYm92 ZQogIChzZXRxIGRpcmVkLWR3aW0tdGFyZ2V0IHQpCiAgKHNldHEgZGVsZXRlLWJ5LW1vdmluZy10 by10cmFzaCB0KQogIDs7IEVuYWJsZSBtb3VzZSBkcmFnLWFuZC1kcm9wIGZpbGVzIHRvIG90aGVy IGFwcGxpY2F0aW9ucwogIChzZXRxIGRpcmVkLW1vdXNlLWRyYWctZmlsZXMgdCkgICAgICAgICAg ICAgICAgICAgOyBhZGRlZCBpbiBFbWFjcyAyOQogIChzZXRxIG1vdXNlLWRyYWctYW5kLWRyb3At cmVnaW9uLWNyb3NzLXByb2dyYW0gdCkgOyBhZGRlZCBpbiBFbWFjcyAyOQogIDs7IE1ha2Ugc3Vy ZSB0byB1c2UgdGhlIGxvbmcgbmFtZSBvZiBmbGFncyB3aGVuIGV4aXN0cwogIDs7IGVnLiB1c2Ug Ii0tYWxtb3N0LWFsbCIgaW5zdGVhZCBvZiAiLUEiCiAgOzsgT3RoZXJ3aXNlIHNvbWUgY29tbWFu ZHMgd29uJ3Qgd29yayBwcm9wZXJseQogIChzZXRxIGRpcmVkLWxpc3Rpbmctc3dpdGNoZXMKICAg ICAgICAiLWwgLS1hbG1vc3QtYWxsIC0taHVtYW4tcmVhZGFibGUgLS10aW1lLXN0eWxlPWxvbmct aXNvIC0tZ3JvdXAtZGlyZWN0b3JpZXMtZmlyc3QgLS1uby1ncm91cCIpCiAgOmJpbmQKICA7OyBC aW5kIGBkaXJ2aXNofGRpcnZpc2gtc2lkZXxkaXJ2aXNoLWR3aW0nIGFzIHlvdSBzZWUgZml0CiAg KCgiQy1jIGYiIC4gZGlydmlzaC1mZCkKICAgOm1hcCBkaXJlZC1tb2RlLW1hcCA7IERpcnZpc2gg cmVzcGVjdHMgYWxsIHRoZSBrZXliaW5kaW5ncyBpbiB0aGlzIG1hcAogICAoIjxwcmlvcj4iIC4g ZGlyZWQtdXAtZGlyZWN0b3J5KQogICA7OyAoImoiIC4gZGlyZWQtbmV4dC1saW5lKQogICA7OyAo ImsiIC4gZGlyZWQtcHJldmlvdXMtbGluZSkKICAgOzsgKCJsIiAuIGRpcmVkLWZpbmQtZmlsZSkK ICAgOzsgKCJpIiAuIHdkaXJlZC1jaGFuZ2UtdG8td2RpcmVkLW1vZGUpCiAgIDs7ICgiLiIgLiBk aXJlZC1vbWl0LW1vZGUpCiAgICgiYiIgICAuIGRpcnZpc2gtYm9va21hcmstanVtcCkKICAgKCJm IiAgIC4gZGlydmlzaC1maWxlLWluZm8tbWVudSkKICAgKCJ5IiAgIC4gZGlydmlzaC15YW5rLW1l bnUpCiAgICgiTiIgICAuIGRpcnZpc2gtbmFycm93KQogICAoIl4iICAgLiBkaXJ2aXNoLWhpc3Rv cnktbGFzdCkKICAgKCJzIiAgIC4gZGlydmlzaC1xdWlja3NvcnQpIDsgcmVtYXBwZWQgYGRpcmVk LXNvcnQtdG9nZ2xlLW9yLWVkaXQnCiAgICgiPyIgICAuIGRpcnZpc2gtZGlzcGF0Y2gpICA7IHJl bWFwcGVkIGBkaXJlZC1zdW1tYXJ5JwogICAoIlRBQiIgLiBkaXJ2aXNoLXN1YnRyZWUtdG9nZ2xl KQogICAoIlNQQyIgLiBkaXJ2aXNoLWhpc3RvcnktanVtcCkKICAgKCJNLW4iIC4gZGlydmlzaC1o aXN0b3J5LWdvLWZvcndhcmQpCiAgICgiTS1wIiAuIGRpcnZpc2gtaGlzdG9yeS1nby1iYWNrd2Fy ZCkKICAgKCJNLWwiIC4gZGlydmlzaC1scy1zd2l0Y2hlcy1tZW51KQogICAoIk0tbSIgLiBkaXJ2 aXNoLW1hcmstbWVudSkKICAgKCJNLWYiIC4gZGlydmlzaC10b2dnbGUtZnVsbHNjcmVlbikKICAg KCJNLXMiIC4gZGlydmlzaC1zZXR1cC1tZW51KQogICAoIk0tZSIgLiBkaXJ2aXNoLWVtZXJnZS1t ZW51KQogICAoIk0taiIgLiBkaXJ2aXNoLWZkLWp1bXApKSkKIytFTkRfU1JDCgoqIFlhc25pcHBl dApBbHNvIG1ha2Ugc3VyZSB0byBsb29rdXAgeWFzbmlwcGV0LXNuaXBwZXRzIHdoaWNoIGhhcyBh IGdyZWF0IGNvbGxlY3Rpb24gb2Ygc25pcHBldHMKaHR0cHM6Ly9naXRodWIuY29tL0FuZHJlYUNy b3R0aS95YXNuaXBwZXQtc25pcHBldHMKCml2eS15YXNuaXBwZXQgd2lsbCBzaG93IHlvdSB0aGUg YXZhaWxhYmxlIHNuaXBwZXRzIGZvciB0aGUgY3VycmVudCBtYWpvciBtb2RlIHlvdSBhcmUgaW4K YW5kIHdpbGwgaW5zZXJ0IHRoZW0uCiMrQkVHSU5fU1JDIGVsaXNwCihyZXF1aXJlICd5YXNuaXBw ZXQpCih5YXMtZ2xvYmFsLW1vZGUgMSkKKHNldHEgeWFzLWluZGVudC1saW5lIG5pbCkKKGdsb2Jh bC1zZXQta2V5IChrYmQgIkMtYyBpIikgJ2l2eS15YXNuaXBwZXQpCiMrRU5EX1NSQwoKKiBPcmcg Um9hbQojK0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2Ugb3JnLXJvYW0KCSAgICAgOmVuc3Vy ZSB0CgkgICAgIDpjdXN0b20KCSAgICAgKG9yZy1yb2FtLWRpcmVjdG9yeSAoZmlsZS10cnVlbmFt ZSAifi9Eb2N1bWVudHMvcm9hbS1ub3RlcyIpKQoJICAgICA6YmluZCAoKCJDLWMgbiBsIiAuIG9y Zy1yb2FtLWJ1ZmZlci10b2dnbGUpCgkJICAgICgiQy1jIG4gZiIgLiBvcmctcm9hbS1ub2RlLWZp bmQpCgkJICAgICgiQy1jIG4gZyIgLiBvcmctcm9hbS1ncmFwaCkKCQkgICAgKCJDLWMgbiBpIiAu IG9yZy1yb2FtLW5vZGUtaW5zZXJ0KQoJCSAgICAoIkMtYyBuIGMiIC4gb3JnLXJvYW0tY2FwdHVy ZSkKCQkgICAgOztEYWlseQoJCSAgICAoIkMtYyBuIGoiIC4gb3JnLXJvYW0tZGFpbGllcy1jYXB0 dXJlLXRvZGF5KSkKCSAgICAgOmNvbmZpZwoJICAgICAoc2V0cSBvcmctcm9hbS1ub2RlLWRpc3Bs YXktdGVtcGxhdGUgKGNvbmNhdCAiJHt0aXRsZToqfSAiIChwcm9wZXJ0aXplICIke3RhZ3M6MTB9 IiAnZmFjZSAnb3JnLXRhZykpKQoJICAgICAob3JnLXJvYW0tZGItYXV0b3N5bmMtbW9kZSkKCSAg ICAgKHJlcXVpcmUgJ29yZy1yb2FtLXByb3RvY29sKSkKIytFTkRfU1JDCgoqIE1pc2NlbGxhbmVv dXMgT3JnIFN0dWZmCiMrQkVHSU5fU1JDIGVsaXNwCihzZXRxIG9yZy1zcmMtcHJlc2VydmUtaW5k ZW50YXRpb24gdCkKCjsgb3JnLWZyYWd0b2cgbWFrZXMgaXQgc28geW91IGNhbiBhdXRvbWF0aWNh bGx5IHByZXZpZXcgTGFUZVggd2l0aG91dCBoYXZpbmcgdG8gZG8gYW55dGhpbmcKKGFkZC1ob29r ICdvcmctbW9kZS1ob29rICdvcmctZnJhZ3RvZy1tb2RlKQo7KHBsaXN0LXB1dCBvcmctZm9ybWF0 LWxhdGV4LW9wdGlvbnMgOnNjYWxlIDIpCjsoYWZ0ZXIhIG9yZyAocGxpc3QtcHV0IG9yZy1mb3Jt YXQtbGF0ZXgtb3B0aW9ucyA6c2NhbGUgMS41KSkKKGZvbnQtbG9jay1hZGQta2V5d29yZHMgJ29y Zy1tb2RlCgkJCScoKCJeICpcXChbLV1cXCkgIgoJCQkgICAoMCAocHJvZzEgKCkgKGNvbXBvc2Ut cmVnaW9uIChtYXRjaC1iZWdpbm5pbmcgMSkgKG1hdGNoLWVuZCAxKSAi4oCiIikpKSkpKQoocmVx dWlyZSAnb3JnLXN1cGVyc3RhcikKKGFkZC1ob29rICdvcmctbW9kZS1ob29rIChsYW1iZGEgKCkg KG9yZy1zdXBlcnN0YXItbW9kZSAxKSkpCjs7aGlkZXMgbWFya3VwIGVtcGhhc2lzIGxpa2UgKmRk Kgooc2V0cSBvcmctaGlkZS1lbXBoYXNpcy1tYXJrZXJzIHQpCjs7IEFnZW5kYQooc2V0cSBvcmct YWdlbmRhLWZpbGVzICJ+L0RvY3VtZW50cy9BZ2VuZGEvYWdlbmRhLm9yZyIpCiMrRU5EX1NSQwoK KiBGbHlzcGVsbAojK0JFR0lOX1NSQyBlbGlzcAooZmx5c3BlbGwtbW9kZSkKKGFkZC1ob29rICd0 ZXh0LW1vZGUtaG9vayAnZmx5c3BlbGwtbW9kZSkKKGFkZC1ob29rICdwcm9nLW1vZGUtaG9vayAn Zmx5c3BlbGwtcHJvZy1tb2RlKQojK0VORF9TUkMKKiBIeXBlcmJvbGUKIytCRUdJTl9TUkMgZWxp c3AKKGh5cGVyYm9sZS1tb2RlIDEpCiMrRU5EX1NSQwoKKiBFbGZlZWQKIytCRUdJTl9TUkMgZWxp c3AKKHNldHEgZWxmZWVkLWZlZWRzCiAgICAgICcoKCJodHRwczovL29vb2hzcG9va3kubGlic3lu LmNvbS9yc3MiIEFkYW1Lbm94KQoJKCJodHRwczovL2dvZG90ZW5naW5lLm9yZy9yc3MueG1sIiBH b2RvdCkKCSgiaHR0cHM6Ly9zdGFja2FidXNlLmNvbS9yc3MvIiBTdGFja0FidXNlKQoJKCJodHRw czovL29wZW5zb3VyY2UuY29tL2ZlZWQiIE9wZW5Tb3VyY2UpCgkoImh0dHBzOi8vZGF2ZXJ1cGVy dC5jb20vYXRvbS54bWwiIERhdmVSdXBlcnQpCgkoImh0dHBzOi8vZmVlZC5wb2RiZWFuLmNvbS9t YXRlaXRzYXN1cmV0aGluZy9mZWVkLnhtbCIgV29sZmUpCgkoImh0dHBzOi8vd3d3Lm9tbnljb250 ZW50LmNvbS9kL3BsYXlsaXN0L2U3M2M5OThlLTZlNjAtNDMyZi04NjEwLWFlMjEwMTQwYzViMS8w YzZmYzk0NC1lYWE1LTQwMjItOGU3Ny1hZTMzMDAzNDZkNzYvNDVhNzM1YjYtZTFiOC00OWY5LWE1 OTUtYWUzMzAwMzQ2ZDg0L3BvZGNhc3QucnNzIiBTY3J1YnMpKSkKCihyZXF1aXJlICdlbGZlZWQt b3JnKQoocmVxdWlyZSAnZWxmZWVkLWdvb2RpZXMpCihlbGZlZWQtZ29vZGllcy9zZXR1cCkKCihn bG9iYWwtc2V0LWtleSAoa2JkICJDLXggdyIpICdlbGZlZWQpCihlbGZlZWQtb3JnKQooc2V0cSBy bWgtZWxmZWVkLW9yZy1maWxlcyAobGlzdCAifi8uZW1hY3MuZC9lbGZlZWQtZGFzaGJvYXJkLm9y ZyIpKQoKKHVzZS1wYWNrYWdlIGVsZmVlZC1kYXNoYm9hcmQKICA6ZW5zdXJlIHQKICA6Y29uZmln CiAgKHNldHEgZWxmZWVkLWRhc2hib2FyZC1maWxlICJ+L2VsZmVlZC1kYXNoYm9hcmQub3JnIikK ICA7OyB1cGRhdGUgZmVlZCBjb3VudHMgb24gZWxmZWVkLXF1aXQKICAoYWR2aWNlLWFkZCAnZWxm ZWVkLXNlYXJjaC1xdWl0LXdpbmRvdyA6YWZ0ZXIgIydlbGZlZWQtZGFzaGJvYXJkLXVwZGF0ZS1s aW5rcykpCgo7OzsgZyA9IHJlZnJlc2ggdmlldwo7OzsgRyA9IGZldGNoIGZlZWQgdXBkYXRlcwo7 OzsgcyA9IFVwZGF0ZSBzZWFyY2ggZmlsdGVyCjs7OyBjID0gY2xlYXIgc2VhcmNoIGZpbHRlcgoj K0VORF9TUkMKCiogRU1NUwojK0JFR0lOX1NSQyBlbGlzcAo7IGh0dHBzOi8vd3d3LmRyYWtldG8u ZGUvc29mdHdhcmUvZW1hY3MtdGlwcHMjZWxmZWVkLWVtbXMKKHVzZS1wYWNrYWdlIGVtbXMKICA6 ZW5zdXJlIHQKICA6Y29uZmlnKQooZ2xvYmFsLXNldC1rZXkgKGtiZCAiQy14IHAiKSAnaXZ5LWVt bXMpCihyZXF1aXJlICdlbW1zLXNldHVwKQoocmVxdWlyZSAnZW1tcy1wbGF5ZXItbXBsYXllcikK KGVtbXMtYWxsKQooc2V0cSBlbW1zLXBsYXllci1saXN0ICcoCgkJCSBlbW1zLXBsYXllci1tcGcz MjEKCQkJIGVtbXMtcGxheWVyLW9nZzEyMwoJCQkgZW1tcy1wbGF5ZXItbXBsYXllcikpCihkZWZ1 biBlbW1zLXBsYXllci1tcGxheWVyLXZvbHVtZShhbW91bnQpCiAgKHByb2Nlc3Mtc2VuZC1zdHJp bmcKICAgZW1tcy1wbGF5ZXItc2ltcGxlLXByb2Nlc3MtbmFtZQogICAoZm9ybWF0ICJ2b2x1bWUg JWRcbiIgYW1vdW50KSkpCihzZXRxIGVtbXMtdm9sdW1lLWNoYW5nZS1mdW5jdGlvbiAnZW1tcy1w bGF5ZXItbXBsYXllci12b2x1bWUpCihlbW1zLWRlZmF1bHQtcGxheWVycykKOyhlbW1zLWFkZC1k aXJlY3RvcnktdHJlZSAifi9NdXNpYy8iKQo7KGVtbXMtYWRkLWRpcmVjdG9yeS10cmVlICJ+L0Rv d25sb2Fkcy8iKQojK0VORF9TUkMKCiogTWVvdyAoTW9kYWwgRWRpdGluZykKIytCRUdJTl9TUkMg ZWxpc3AKKGRlZnVuIG1lb3ctc2V0dXAgKCkKICAoc2V0cSBtZW93LWNoZWF0c2hlZXQtbGF5b3V0 IG1lb3ctY2hlYXRzaGVldC1sYXlvdXQtcXdlcnR5KQogIChtZW93LW1vdGlvbi1vdmVyd3JpdGUt ZGVmaW5lLWtleQogICAnKCJrIiAuIG1lb3ctbmV4dCkKICAgJygiaiIgLiBtZW93LXByZXYpCiAg ICcoIjxlc2NhcGU+IiAuIGlnbm9yZSkpCiAgKG1lb3ctbGVhZGVyLWRlZmluZS1rZXkKICAgOzsg U1BDIGovayB3aWxsIHJ1biB0aGUgb3JpZ2luYWwgY29tbWFuZCBpbiBNT1RJT04gc3RhdGUuCiAg ICcoImoiIC4gIkgtaiIpCiAgICcoImsiIC4gIkgtayIpCiAgIDs7IFVzZSBTUEMgKDAtOSkgZm9y IGRpZ2l0IGFyZ3VtZW50cy4KICAgJygiMSIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAnKCIy IiAuIG1lb3ctZGlnaXQtYXJndW1lbnQpCiAgICcoIjMiIC4gbWVvdy1kaWdpdC1hcmd1bWVudCkK ICAgJygiNCIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAnKCI1IiAuIG1lb3ctZGlnaXQtYXJn dW1lbnQpCiAgICcoIjYiIC4gbWVvdy1kaWdpdC1hcmd1bWVudCkKICAgJygiNyIgLiBtZW93LWRp Z2l0LWFyZ3VtZW50KQogICAnKCI4IiAuIG1lb3ctZGlnaXQtYXJndW1lbnQpCiAgICcoIjkiIC4g bWVvdy1kaWdpdC1hcmd1bWVudCkKICAgJygiMCIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAn KCIvIiAuIG1lb3cta2V5cGFkLWRlc2NyaWJlLWtleSkKICAgJygiPyIgLiBtZW93LWNoZWF0c2hl ZXQpKQogIChtZW93LW5vcm1hbC1kZWZpbmUta2V5CiAgICcoIjAiIC4gbWVvdy1leHBhbmQtMCkK ICAgJygiOSIgLiBtZW93LWV4cGFuZC05KQogICAnKCI4IiAuIG1lb3ctZXhwYW5kLTgpCiAgICco IjciIC4gbWVvdy1leHBhbmQtNykKICAgJygiNiIgLiBtZW93LWV4cGFuZC02KQogICAnKCI1IiAu IG1lb3ctZXhwYW5kLTUpCiAgICcoIjQiIC4gbWVvdy1leHBhbmQtNCkKICAgJygiMyIgLiBtZW93 LWV4cGFuZC0zKQogICAnKCIyIiAuIG1lb3ctZXhwYW5kLTIpCiAgICcoIjEiIC4gbWVvdy1leHBh bmQtMSkKICAgJygiLSIgLiBuZWdhdGl2ZS1hcmd1bWVudCkKICAgJygiOyIgLiBtZW93LXJldmVy c2UpCiAgICcoIiwiIC4gbWVvdy1pbm5lci1vZi10aGluZykKICAgJygiLiIgLiBtZW93LWJvdW5k cy1vZi10aGluZykKICAgJygiWyIgLiBtZW93LWJlZ2lubmluZy1vZi10aGluZykKICAgJygiXSIg LiBtZW93LWVuZC1vZi10aGluZykKICAgJygiYSIgLiBtZW93LWFwcGVuZCkKICAgJygiQSIgLiBt ZW93LW9wZW4tYmVsb3cpCiAgICcoImIiIC4gbWVvdy1iYWNrLXdvcmQpCiAgICcoIkIiIC4gbWVv dy1iYWNrLXN5bWJvbCkKICAgJygiYyIgLiBtZW93LWNoYW5nZSkKICAgJygiZCIgLiBtZW93LWRl bGV0ZSkKICAgJygiRCIgLiBtZW93LWJhY2t3YXJkLWRlbGV0ZSkKICAgJygiZSIgLiBtZW93LW5l eHQtd29yZCkKICAgJygiRSIgLiBtZW93LW5leHQtc3ltYm9sKQogICAnKCJmIiAuIG1lb3ctZmlu ZCkKICAgJygiZyIgLiBtZW93LWNhbmNlbC1zZWxlY3Rpb24pCiAgICcoIkciIC4gbWVvdy1ncmFi KQogICAnKCJoIiAuIG1lb3ctbGVmdCkKICAgJygiSCIgLiBtZW93LWxlZnQtZXhwYW5kKQogICAn KCJpIiAuIG1lb3ctaW5zZXJ0KQogICAnKCJJIiAuIG1lb3ctb3Blbi1hYm92ZSkKICAgJygiaiIg LiBtZW93LW5leHQpCiAgICcoIkoiIC4gbWVvdy1uZXh0LWV4cGFuZCkKICAgJygiayIgLiBtZW93 LXByZXYpCiAgICcoIksiIC4gbWVvdy1wcmV2LWV4cGFuZCkKICAgJygibCIgLiBtZW93LXJpZ2h0 KQogICAnKCJMIiAuIG1lb3ctcmlnaHQtZXhwYW5kKQogICAnKCJtIiAuIG1lb3ctam9pbikKICAg JygibiIgLiBtZW93LXNlYXJjaCkKICAgJygibyIgLiBtZW93LWJsb2NrKQogICAnKCJPIiAuIG1l b3ctdG8tYmxvY2spCiAgICcoInAiIC4gbWVvdy15YW5rKQogICAnKCJxIiAuIG1lb3ctcXVpdCkK ICAgJygiUSIgLiBtZW93LWdvdG8tbGluZSkKICAgJygiciIgLiBtZW93LXJlcGxhY2UpCiAgICco IlIiIC4gbWVvdy1zd2FwLWdyYWIpCiAgICcoInMiIC4gbWVvdy1raWxsKQogICAnKCJ0IiAuIG1l b3ctdGlsbCkKICAgJygidSIgLiBtZW93LXVuZG8pCiAgICcoIlUiIC4gbWVvdy11bmRvLWluLXNl bGVjdGlvbikKICAgJygidiIgLiBtZW93LXZpc2l0KQogICAnKCJ3IiAuIG1lb3ctbWFyay13b3Jk KQogICAnKCJXIiAuIG1lb3ctbWFyay1zeW1ib2wpCiAgICcoIngiIC4gbWVvdy1saW5lKQogICAn KCJYIiAuIG1lb3ctZ290by1saW5lKQogICAnKCJ5IiAuIG1lb3ctc2F2ZSkKICAgJygiWSIgLiBt ZW93LXN5bmMtZ3JhYikKICAgJygieiIgLiBtZW93LXBvcC1zZWxlY3Rpb24pCiAgICcoIiciIC4g cmVwZWF0KQogICAnKCI8ZXNjYXBlPiIgLiBpZ25vcmUpKSkKCihzZXRxIG1lb3ctY3Vyc29yLXR5 cGUtbm9ybWFsICdoYmFyKQooc2V0cSBtZW93LWN1cnNvci10eXBlLWluc2VydCAnYm94KQoKKHJl cXVpcmUgJ21lb3cpCihtZW93LXNldHVwKQoobWVvdy1nbG9iYWwtbW9kZSAxKQojK0VORF9TUkMK KiA6VE9ETzogU2V0dXAgTVU0RQojK0JFR0lOX1NSQyBlbGlzcAo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 bXU0ZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CjsoYWRkLXRvLWxpc3QgJ2xv YWQtcGF0aCAiL3Vzci9sb2NhbC9zaGFyZS9lbWFjcy9zaXRlLWxpc3AvbXU0ZSIpCjsocmVxdWly ZSAnbXU0ZSkKCjsobXU0ZS1hbGVydC1zZXQtZGVmYXVsdC1zdHlsZSAnbGlibm90aWZ5KQo7KGFk ZC1ob29rICdhZnRlci1pbml0LWhvb2sgJ211NGUtYWxlcnQtZW5hYmxlLW5vdGlmaWNhdGlvbnMp CjsobXU0ZS1hbGVydC1ub3RpZmljYXRpb25zKQojK0VORF9TUkMKCiogUmFuZG9tIFN0dWZmClNo aWZ0IGFuZCBhcnJvdyBrZXkgY2hhbmdlcyB3aW5kb3dzCiMrQkVHSU5fU1JDIGVsaXNwCih3aGVu IChmYm91bmRwICd3aW5kbW92ZS1kZWZhdWx0LWtleWJpbmRpbmdzKQogICh3aW5kbW92ZS1kZWZh dWx0LWtleWJpbmRpbmdzKSkKIytFTkRfU1JDCgpLaWxscyB0aGUgc2NyYXRjaCBidWZmZXIgb24g bGF1bmNoIGFuZCBjaGFuZ2VzIGEgZmV3IFVJIHRoaW5ncy4KIytCRUdJTl9TUkMgZWxpc3AKKGtp bGwtYnVmZmVyICIqc2NyYXRjaCoiKQo7KHNldHEgaW5oaWJpdC1zcGxhc2gtc2NyZWVuIHQpCihz ZXRxIGluaGliaXQtc3RhcnR1cC1zY3JlZW4gdCkKKHNjcm9sbC1iYXItbW9kZSAtMSkKKG1lbnUt YmFyLW1vZGUgLTEpCih0b29sLWJhci1tb2RlIC0xKQooZGlzcGxheS10aW1lLW1vZGUgdCkKOztH ZXR0aW5nIHJpZCBvZiBsaW5lIHdyYXBwaW5nLgooc2V0LWRlZmF1bHQgJ3RydW5jYXRlLWxpbmVz IHQpCjs7Ozs7Ozs7Ozs7Ozs7OyB0dXJuIG9mZiB0aGUgYmVlcGluZyA7Ozs7Ozs7Ozs7Owooc2V0 cSB2aXNpYmxlLWJlbGwgMSkKCjs7KGdsb2JhbC1saW51bS1tb2RlIHQpCjs7IHJlcGxhY2luZyBs aW51bS1tb2RlIHdpdGggZGlzcGxheS1saW5lLW1vZGUgYXMgaXQgZm9sbG93cyB0aGUgdGhlbWUK KGdsb2JhbC1kaXNwbGF5LWxpbmUtbnVtYmVycy1tb2RlIHQpCihnbG9iYWwtc2V0LWtleSAoa2Jk ICJDLXggaSIpIChsYW1iZGEgKCkgKGludGVyYWN0aXZlKShmaW5kLWZpbGUgIn4vLmVtYWNzLmQv aW5pdC5vcmciKSkpCiMrRU5EX1NSQwoKKiBEaWFyeQojK0JFR0lOX1NSQyBlbGlzcAo7ZGVza3Rv cCBub3RpZmljYXRpb25zCihyZXF1aXJlICdub3RpZmljYXRpb25zKQoKKGRlZmN1c3RvbSBhcHB0 LW5vdGlmaWNhdGlvbi1idXMgOnNlc3Npb24KICAiZGJ1cyBub3RpZmljYXRpb25zIgogIDp2ZXJz aW9uICIyOS4wNSIKICA6Z3JvdXAgJ2FwcHQtbm90aWZpY2F0aW9uCiAgOnR5cGUgJyhjaG9pY2Ug KGNvbnN0IDp0YWcgIlNlc3Npb24gYnVzIiA6c2Vzc2lvbikgc3RyaW5nKSkKCihkZWZ1biB1c2Vy L2FwcHQtZGlzcGxheSAobWluLXRvLWFwcCBuZXctdGltZSBtc2cpCiAgInNlbmRzIG5vdGlmaWNh dGlvbnMiCiAgKG5vdGlmaWNhdGlvbnMtbm90aWZ5IDpidXMgYXBwdC1ub3RpZmljYXRpb24tYnVz CgkJCTp0aXRsZSAoZm9ybWF0ICJBcHBvaW50bWVudCBpbiAlcyBtaW51dGVzIiBtaW4tdG8tYXBw KQoJCQk6Ym9keSAoZm9ybWF0ICIlcyIgbXNnKQoJCQk6cmVwbGFjZXMtaWQgbmlsCgkJCTphcHAt aWNvbiBub3RpZmljYXRpb25zLWFwcGxpY2F0aW9uLWljb24KCQkJOnRpbWVvdXQgODAwMAoJCQk6 ZGVza3RvcC1lbnRyeSAiZGlhcnkiKSkKCihzZXRxIGFwcHQtZGlzcC13aW5kb3ctZnVuY3Rpb24g KGZ1bmN0aW9uIHVzZXIvYXBwdC1kaXNwbGF5KSkKCihzZXRxLWRlZmF1bHQgZGlhcnktZmlsZSAi fi8uZW1hY3MuZC9kaWFyeSIKCSAgICAgIGFwcHQtZGlzcGxheS1mb3JtYXQgJ3dpbmRvdwoJICAg ICAgYXBwdC1kaXNwbGF5LWR1cmF0aW9uIDYwCgkgICAgICBhcHB0LWF1ZGlibGUgdAoJICAgICAg YXBwdC1kaXNwbGF5LWludGVydmFsIDE1CgkgICAgICBhcHB0LW1lc3NhZ2Utd2FybmluZy10aW1l IDE1CgkgICAgICBkaXNwbGF5LXRpbWUtMjRoci1mb3JtYXQgdAoJICAgICAgZGlzcGxheS10aW1l LWRheS1hbmQtZGF0ZSB0KQoKKGFwcHQtYWN0aXZhdGUgdCkKCjtpbXBvcnRzIGljYWwgZmlsZSwg dGFrZXMgYSBsb25nIHRpbWUgc2luY2UgbXkgaWNhbCBpcyBodWdlIGZyb20gb2xkIGV2ZW50cwo7 KGljYWxlbmRhci1pbXBvcnQtZmlsZSAifi8ubG9jYWwvc2hhcmUvZXZvbHV0aW9uL2NhbGVuZGFy L3N5c3RlbS9jYWxlbmRhci5pY3MiCjsJCSAgICAgICAifi8uZW1hY3MuZC9kaWFyeSIpCgojK0VO RF9TUkMKCiogRW1vamlmeQojK0JFR0lOX1NSQyBlbGlzcAo7Ozs7ZGlzcGxheXMgZW1vamlzIGZv ciB3ZWF0aGVyCihlbW9qaWZ5LW1vZGUgMSkKKGVtb2ppZnktbW9kZS1saW5lLW1vZGUgMSkKIytF TkRfU1JDCiogRGFzaGJvYXJkCiMrQkVHSU5fU1JDIGVsaXNwCjs7IFNldCB0aGUgdGl0bGUKKHJl cXVpcmUgJ2Rhc2hib2FyZCkKKHNldHEgZGFzaGJvYXJkLXdlZWstYWdlbmRhIHQpCihzZXRxIGRh c2hib2FyZC1iYW5uZXItbG9nby10aXRsZSAiSSdtIHVzaW5nIExpbnV4LiBBIGxpYnJhcnkgdGhh dCBlbWFjcyB1c2VzIHRvIGNvbW11bmljYXRlIHdpdGggSW50ZWwgaGFyZHdhcmUuIikgCjsoc2V0 cSBkYXNoYm9hcmQtc3RhcnR1cC1iYW5uZXIgIn4vRG93bmxvYWRzL3Jzel9lbWFjcy1jb2xvcmZ1 bC5wbmciKQooc2V0cSBkYXNoYm9hcmQtc3RhcnR1cC1iYW5uZXIgIn4vUGljdHVyZXMvZW1hY3Mt Y29sb3JmdWwucG5nIikKOyhzZXRxIGRhc2hib2FyZC1zdGFydHVwLWJhbm5lciAnb2ZmaWNpYWwp CihzZXRxIGRhc2hib2FyZC1zZXQtaGVhZGluZy1pY29ucyB0KQooc2V0cSBkYXNoYm9hcmQtc2V0 LWZpbGUtaWNvbnMgdCkKKHNldHEgZGFzaGJvYXJkLXNldC1uYXZpZ2F0b3IgdCkKKHNldHEgZGFz aGJvYXJkLWNlbnRlci1jb250ZW50IHQpCjs7IFRvIGRpc2FibGUgc2hvcnRjdXQgImp1bXAiIGlu ZGljYXRvcnMgZm9yIGVhY2ggc2VjdGlvbiwgc2V0CihzZXRxIGRhc2hib2FyZC1zaG93LXNob3J0 Y3V0cyBuaWwpCgooZGFzaGJvYXJkLXNldHVwLXN0YXJ0dXAtaG9vaykKCihhdXRvLWltYWdlLWZp bGUtbW9kZSAxKQoKKHVzZS1wYWNrYWdlIHBhZ2UtYnJlYWstbGluZXMKICA6ZW5zdXJlIHQKICA6 ZGVtYW5kIHQpCgooZ2xvYmFsLXBhZ2UtYnJlYWstbGluZXMtbW9kZSAxKQojK0VORF9TUkMKCiog U1ZHIFRhZwojK0JFR0lOX1NSQyBlbGlzcAooZGVmY29uc3QgZGF0ZS1yZSAiWzAtOV1cXHs0XFx9 LVswLTldXFx7MlxcfS1bMC05XVxcezJcXH0iKQooZGVmY29uc3QgdGltZS1yZSAiWzAtOV1cXHsy XFx9OlswLTldXFx7MlxcfSIpCihkZWZjb25zdCBkYXktcmUgIltBLVphLXpdXFx7M1xcfSIpCihk ZWZjb25zdCBkYXktdGltZS1yZSAoZm9ybWF0ICJcXCglc1xcKT8gP1xcKCVzXFwpPyIgZGF5LXJl IHRpbWUtcmUpKQoKKGRlZnVuIHN2Zy1wcm9ncmVzcy1wZXJjZW50ICh2YWx1ZSkKICAoc3ZnLWlt YWdlIChzdmctbGliLWNvbmNhdAogICAgICAgICAgICAgIChzdmctbGliLXByb2dyZXNzLWJhciAo LyAoc3RyaW5nLXRvLW51bWJlciB2YWx1ZSkgMTAwLjApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbmlsIDptYXJnaW4gMCA6c3Ryb2tlIDIgOnJhZGl1cyAzIDpwYWRkaW5nIDIgOndp ZHRoIDExKQogICAgICAgICAgICAgIChzdmctbGliLXRhZyAoY29uY2F0IHZhbHVlICIlIikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmlsIDpzdHJva2UgMCA6bWFyZ2luIDApKSA6YXNjZW50 ICdjZW50ZXIpKQoKKGRlZnVuIHN2Zy1wcm9ncmVzcy1jb3VudCAodmFsdWUpCiAgKGxldCogKChz ZXEgKG1hcGNhciAjJ3N0cmluZy10by1udW1iZXIgKHNwbGl0LXN0cmluZyB2YWx1ZSAiLyIpKSkK ICAgICAgICAgKGNvdW50IChmbG9hdCAoY2FyIHNlcSkpKQogICAgICAgICAodG90YWwgKGZsb2F0 IChjYWRyIHNlcSkpKSkKICAoc3ZnLWltYWdlIChzdmctbGliLWNvbmNhdAogICAgICAgICAgICAg IChzdmctbGliLXByb2dyZXNzLWJhciAoLyBjb3VudCB0b3RhbCkgbmlsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDptYXJnaW4gMCA6c3Ryb2tlIDIgOnJhZGl1cyAzIDpwYWRk aW5nIDIgOndpZHRoIDExKQogICAgICAgICAgICAgIChzdmctbGliLXRhZyB2YWx1ZSBuaWwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgOnN0cm9rZSAwIDptYXJnaW4gMCkpIDphc2NlbnQgJ2Nl bnRlcikpKQoKO1NldHRpbmcgbXkgb3duIGZhY2UKOyhkZWZmYWNlIG15ZmFjZSAnKCh0ICg6aW5o ZXJpdCBvcmctdG9kbykgOmhlaWdodCAxLjAgOmJhY2tncm91bmQgIiM5NTdEQUQiKSkgIkZhY2Ug Zm9yIHRvZG8iKQooZGVmZmFjZSBwYXN0ZWxwdXJwbGUgJygodCAoOmluaGVyaXQgb3JnLXRvZG8g OmhlaWdodCAyLjAgOmZvcmVncm91bmQgIiM5NTdEQUQiKSkpICJGYWNlIGZvciB0b2RvIikKKGRl ZmZhY2UgcGFzdGVsZ3JlZW4gJygodCAoOmluaGVyaXQgb3JnLXRvZG8gOmhlaWdodCAyLjAgOmZv cmVncm91bmQgIiNCMEVCOTMiKSkpICJGYWNlIGZvciBXSVAiKQooZGVmZmFjZSBwYXN0ZWxibHVl ICcoKHQgKDppbmhlcml0IG9yZy10b2RvIDpoZWlnaHQgMi4wIDpmb3JlZ3JvdW5kICIjQjNFM0RB IikpKSAiRmFjZSBmb3IgRE9ORSIpCihkZWZmYWNlIHBhc3RlbHJlZCAnKCh0ICg6aW5oZXJpdCBv cmctdG9kbyA6aGVpZ2h0IDIuMCA6Zm9yZWdyb3VuZCAiI0Y5ODI4NCIpKSkgIkZhY2UgZm9yIHRh Z3MiKQooZGVmZmFjZSBwYXN0ZWxwaW5rICcoKHQgKDppbmhlcml0IG9yZy10b2RvIDpoZWlnaHQg Mi4wIDpmb3JlZ3JvdW5kICIjRkVBQUU0IikpKSAiRmFjZSBmb3IgRGF0ZSIpCgoKKHNldHEgc3Zn LXRhZy10YWdzCiAgICAgIGAoCiAgICAgICAgOzsgT3JnIHRhZ3MgOlRISVM6CiAgICAgICAgKCJc XCg6W0EtWmEtejAtOV0rOlxcKSIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlIHRhZyA6 YmVnIDEgOmVuZCAtMSA6aW52ZXJzZSB0IDpmYWNlICdwYXN0ZWxyZWQpKSkpCgkKCTsoMSkKCTso IlwoWzAtOzlhLXpBLVpdXCkiIC4gKChsYW1iZGEgKHRhZykKICAgICAgICA7ICAgICAgICAgICAg ICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJlZyAxIDplbmQgLTEgOnJhZGl1cyAxMikp KSkKCgk7KDA5KQogICAgICAgIDsoIlwoWzAtOWEtekEtWl1bMC05YS16QS1aXVwpIiAuICgobGFt YmRhICh0YWcpCiAgICAgICAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2 Zy10YWctbWFrZSB0YWcgOmJlZyAxIDplbmQgLTEgOnJhZGl1cyA4KSkpKQoKCTsoMDA3KQogICAg ICAgIDsoIlwoWzAtOWEtekEtWl1bMC05YS16QS1aXVswLTlhLXpBLVpdXCkiIC4gKChsYW1iZGEg KHRhZykKICAgICAgICA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ZnLXRh Zy1tYWtlIHRhZyA6YmVnIDEgOmVuZCAtMSA6cmFkaXVzIDgpKSkpCgoJO1Vuc3VyZT8KCTsoInxb MC05YS16QS1aLSBdKz98IiAuICgobGFtYmRhICh0YWcpCiAgICAgICAgOyAgICAgICAgICAgICAg ICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmZhY2UgJ2ZvbnQtbG9jay1jb21tZW50LWZh Y2UKICAgICAgICA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDptYXJn aW4gMCA6YmVnIDEgOmVuZCAtMSkpKSkKCQogICAgICAgIDs7IFRhc2sgcHJpb3JpdHkgWyNhXQog ICAgICAgICgiXFxbI1thLXpBLVpdXFxdIiAuICggKGxhbWJkYSAodGFnKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6ZmFjZSAnb3JnLXByaW9yaXR5IAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpiZWcgMiA6ZW5kIC0x IDptYXJnaW4gMCA6aW52ZXJzZSB0KSkpKQoKICAgICAgICA7OyBQcm9ncmVzcyBbMS8zXSBvciBb NDUlXQogICAgICAgICgiXFwoXFxbWzAtOV1cXHsxLDNcXH0lXFxdXFwpIiAuICgobGFtYmRhICh0 YWcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy1wcm9n cmVzcy1wZXJjZW50IChzdWJzdHJpbmcgdGFnIDEgLTIpKSkpKQogICAgICAgICgiXFwoXFxbWzAt OV0rL1swLTldK1xcXVxcKSIgLiAoKGxhbWJkYSAodGFnKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc3ZnLXByb2dyZXNzLWNvdW50IChzdWJzdHJpbmcgdGFnIDEg LTEpKSkpKQogICAgICAgIAogICAgICAgIDs7IE9yZyBUQUdTCiAgICAgICAgKCI6VE9ETzoiIC4g KChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiVE9ETyIgOmludmVyc2UgdCA6ZmFjZSAncGFz dGVscHVycGxlKSkpKQogICAgICAgICgiOldJUDoiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWct bWFrZSAiV0lQIiA6aW52ZXJzZSB0IDpmYWNlICdwYXN0ZWxncmVlbikpKSkKICAgICAgICAoIjpE T05FOiIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlICJET05FIiA6aW52ZXJzZSB0IDpm YWNlICdwYXN0ZWxibHVlKSkpKQogICAgICAgICgiOk5PVEU6IiAuICgobGFtYmRhICh0YWcpIChz dmctdGFnLW1ha2UgIk5PVEUiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10b2RvKSkpKQogICAgICAg ICgiU0NIRURVTEVEOiIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlICJTQ0hFRFVMRUQi IDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCJERUFETElORToiIC4gKChs YW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiREVBRExJTkUiIDppbnZlcnNlIHQgOmZhY2UgJ29y Zy10YWcpKSkpCiAgICAgICAgKCIrQkVHSU5fU1JDIiAuICgobGFtYmRhICh0YWcpIChzdmctdGFn LW1ha2UgIkJFR0lOIiA6aW52ZXJzZSB0IDpmYWNlICdvcmctdGFnKSkpKQogICAgICAgICgiK0VO RF9TUkMiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiRU5EIiA6aW52ZXJzZSB0IDpm YWNlICdvcmctdGFnKSkpKQogICAgICAgICgiK1JFU1VMVFM6IiAuICgobGFtYmRhICh0YWcpIChz dmctdGFnLW1ha2UgIlJFU1VMVFMiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAg ICAgKCIrdGl0bGUiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiVElUTEUiIDppbnZl cnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCIrQkVHSU46IiAuICgobGFtYmRhICh0 YWcpIChzdmctdGFnLW1ha2UgIkJFR0lOIiA6aW52ZXJzZSB0IDpmYWNlICdvcmctdGFnKSkpKQog ICAgICAgICgiK0NBUFRJT046IiAuICgobGFtYmRhICh0YWcpIChzdmctdGFnLW1ha2UgIkNBUFRJ T04iIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCIrRU5EOiIgLiAoKGxh bWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlICJFTkQiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcp KSkpCgkoIjpYIiAuICgobGFtYmRhICh0YWcpIChzdmctdGFnLW1ha2UgIltYXSIgOmludmVyc2Ug dCA6ZmFjZSAnb3JnLXRvZG8pKSkpCiAgICAgICAgKCI6LSIgLiAoKGxhbWJkYSAodGFnKSAoc3Zn LXRhZy1tYWtlICJbLV0iIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCgkKICAgICAgICA7 OyBDaXRhdGlvbiBvZiB0aGUgZm9ybSBbY2l0ZTpAS251dGg6MTk4NF0gCiAgICAgICAgKCJcXChc XFtjaXRlOkBbQS1aYS16XSs6XFwpIiAuICgobGFtYmRhICh0YWcpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChzdmctdGFnLW1ha2UgdGFnCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmludmVyc2UgdAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpiZWcg NyA6ZW5kIC0xCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOmNyb3AtcmlnaHQgdCkpKSkKICAgICAgICAoIlxcW2NpdGU6QFtBLVphLXpdKzpc XChbMC05XStcXF1cXCkiIC4gKChsYW1iZGEgKHRhZykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW5kIC0xCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOmNyb3AtbGVmdCB0KSkpKQoKCgk7OzsgV29ya3MgZm9yIHN0dWZmIGxpa2UgOlhYWHxZWVk6 CgkoIlxcKDpbQS1aXStcXClcfFthLXpBLVojMC05XSs6IiAuICgobGFtYmRhICh0YWcpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6 YmVnIDEgOmludmVyc2UgdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOm1hcmdpbiAwIDpjcm9wLXJpZ2h0IHQpKSkpICAgICAgICAKCiAg ICAgICAgKCI6W0EtWl0rXFwoXHxbYS16QS1aIzAtOV0rOlxcKSIgLiAoKGxhbWJkYSAodGFnKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0 YWcgOmJlZyAxIDplbmQgLTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOm1hcmdpbiAwIDpjcm9wLWxlZnQgdCkpKSkKCTs7IEFjdGl2ZSBk YXRlICh3aXRoIG9yIHdpdGhvdXQgZGF5IG5hbWUsIHdpdGggb3Igd2l0aG91dCB0aW1lKQogICAg ICAgICgsKGZvcm1hdCAiXFwoPCVzPlxcKSIgZGF0ZS1yZSkgLgogICAgICAgICAoKGxhbWJkYSAo dGFnKQogICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6YmVnIDEgOmVuZCAtMSA6bWFyZ2lu IDAgOmZhY2UgJ3Bhc3RlbHBpbmsgOmludmVyc2UgdCkpKSkKICAgICAgICAoLChmb3JtYXQgIlxc KDwlcyBcXCklcz4iIGRhdGUtcmUgZGF5LXRpbWUtcmUpIC4KICAgICAgICAgKChsYW1iZGEgKHRh ZykKICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJlZyAxIDppbnZlcnNlIHQgOmNyb3At cmlnaHQgdCA6bWFyZ2luIDAgOmZhY2UgJ3Bhc3RlbHBpbmspKSkpCiAgICAgICAgKCwoZm9ybWF0 ICI8JXMgXFwoJXM+XFwpIiBkYXRlLXJlIGRheS10aW1lLXJlKSAuCiAgICAgICAgICgobGFtYmRh ICh0YWcpCiAgICAgICAgICAgIChzdmctdGFnLW1ha2UgdGFnIDplbmQgLTEgOmludmVyc2Ugbmls IDpjcm9wLWxlZnQgdCA6bWFyZ2luIDAgOmZhY2UgJ3Bhc3RlbHBpbmspKSkpKSkKCiAgICAgICAg OzsgSW5hY3RpdmUgZGF0ZSAgKHdpdGggb3Igd2l0aG91dCBkYXkgbmFtZSwgd2l0aCBvciB3aXRo b3V0IHRpbWUpCiAgICAgICAgIDsoLChmb3JtYXQgIlxcKFxcWyVzXFxdXFwpIiBkYXRlLXJlKSAu CiAgICAgICAgIDsgKChsYW1iZGEgKHRhZykKICAgICAgICAgOyAgICAoc3ZnLXRhZy1tYWtlIHRh ZyA6YmVnIDEgOmVuZCAtMSA6bWFyZ2luIDAgOmZhY2UgJ29yZy1kYXRlKSkpKQogICAgICAgICA7 KCwoZm9ybWF0ICJcXChcXFslcyBcXCklc1xcXSIgZGF0ZS1yZSBkYXktdGltZS1yZSkgLgogICAg ICAgICA7ICgobGFtYmRhICh0YWcpCiAgICAgICAgIDsgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJl ZyAxIDppbnZlcnNlIG5pbCA6Y3JvcC1yaWdodCB0IDptYXJnaW4gMCA6ZmFjZSAnb3JnLWRhdGUp KSkpCiAgICAgICAgIDsoLChmb3JtYXQgIlxcWyVzIFxcKCVzXFxdXFwpIiBkYXRlLXJlIGRheS10 aW1lLXJlKSAuCiAgICAgICAgIDsgKChsYW1iZGEgKHRhZykKICAgICAgICAgOyAgICAoc3ZnLXRh Zy1tYWtlIHRhZyA6ZW5kIC0xIDppbnZlcnNlIHQgOmNyb3AtbGVmdCB0IDptYXJnaW4gMCA6ZmFj ZSAnb3JnLWRhdGUpKSkpKSkKCihyZXF1aXJlICdzdmctdGFnLW1vZGUpCihnbG9iYWwtc3ZnLXRh Zy1tb2RlIDEpCih1c2UtcGFja2FnZSBzdmctbGliKQojK0VORF9TUkMKCiogSXZ5LCBTbWV4LCBP cmRlcmxlc3MgYW5kIFN3aXBlcgojK0JFR0lOX1NSQyBlbGlzcAooaXZ5LW1vZGUgMSkKCihyZXF1 aXJlICdzbWV4KQooZ2xvYmFsLXNldC1rZXkgKGtiZCAiTS14IikgJ3NtZXgpCgooZ2xvYmFsLXNl dC1rZXkgKGtiZCAiQy1zIikgJ3N3aXBlcikKCgoodXNlLXBhY2thZ2Ugb3JkZXJsZXNzCiAgOmVu c3VyZSB0CiAgOmN1c3RvbQogIChjb21wbGV0aW9uLXN0eWxlcyAnKG9yZGVybGVzcyBiYXNpYykp CiAgKGNvbXBsZXRpb24tY2F0ZWdvcnktb3ZlcnJpZGVzICcoKGZpbGUgKHN0eWxlcyBiYXNpYyBw YXJ0aWFsLWNvbXBsZXRpb24pKSkpKQoKKHNldHEgaXZ5LXJlLWJ1aWxkZXJzLWFsaXN0ICcoKHQg LiBvcmRlcmxlc3MtaXZ5LXJlLWJ1aWxkZXIpKSkKKGFkZC10by1saXN0ICdpdnktaGlnaGxpZ2h0 LWZ1bmN0aW9ucy1hbGlzdCAnKG9yZGVybGVzcy1pdnktcmUtYnVpbGRlciAuIG9yZGVybGVzcy1p dnktaGlnaGxpZ2h0KSkKCiMrRU5EX1NSQwoqIENlbnRhdXIgVGFicwojK0JFR0lOX1NSQyBlbGlz cAoodXNlLXBhY2thZ2UgY2VudGF1ci10YWJzCiAgOmRlbWFuZAogIDpjb25maWcKICAoY2VudGF1 ci10YWJzLW1vZGUgdCkKICA6YmluZAogICgiQy08cHJpb3I+IiAuIGNlbnRhdXItdGFicy1iYWNr d2FyZCkKICAoIkMtPG5leHQ+IiAuIGNlbnRhdXItdGFicy1mb3J3YXJkKSkKKGNlbnRhdXItdGFi cy1oZWFkbGluZS1tYXRjaCkKKHNldHEgY2VudGF1ci10YWJzLXN0eWxlICJiYXIiKQooc2V0cSBj ZW50YXVyLXRhYnMtaGVpZ2h0IDEyKQooc2V0cSBjZW50YXVyLXRhYnMtc2V0LWljb25zIHQpCihz ZXRxIGNlbnRhdXItdGFicy1jbG9zZS1idXR0b24gIlgiKQooc2V0cSBjZW50YXVyLXRhYnMtc2V0 LW1vZGlmaWVkLW1hcmtlciB0KQooc2V0cSBjZW50YXVyLXRhYnMtbW9kaWZpZWQtbWFya2VyICIq IikKKHNldHEgY2VudGF1ci10YWJzLXNldC1iYXIgJ2xlZnQpCiMrRU5EX1NSQwoKKiBMU1AtTW9k ZSAoRGV2ZWxvcG1lbnQgaW4gZ2VuZXJhbCkKQ29tbWVudGluZyBvdXQgdGhlIGxpbmVzIHdpdGgg YSBudW1iZXIgYWZ0ZXJ3YXJkcyBiZWNhdXNlIEkgYW0gdHJ5aW5nIHRvIHN3aXRjaAp0byBMU1At QnJpZGdlIHRvIHNlZSBpZiBpdCBzb2x2ZXMgdGhlIGlzc3VlIG9mIG15IEVtYWNzIGZyZWV6aW5n LgojK0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2UgcHJvamVjdGlsZSkKKHVzZS1wYWNrYWdl IGZseWNoZWNrIDplbnN1cmUgdCA6aW5pdCAoZ2xvYmFsLWZseWNoZWNrLW1vZGUpKQoodXNlLXBh Y2thZ2UgeWFzbmlwcGV0IDpjb25maWcgKHlhcy1nbG9iYWwtbW9kZSkpCjsodXNlLXBhY2thZ2Ug bHNwLXVpKSAxCih1c2UtcGFja2FnZSB3aGljaC1rZXkgOmNvbmZpZyAod2hpY2gta2V5LW1vZGUp KQo7OyBMU1AtSmF2YSBmcmVlemVzIG15IG1hY2hpbmUgc28gaXQncyBjdXJyZW50bHkgY29tbWVu dGVkIG91dAo7KHVzZS1wYWNrYWdlIGxzcC1qYXZhIDpjb25maWcgKGFkZC1ob29rICdqYXZhLW1v ZGUtaG9vayAnbHNwKSkKOyh1c2UtcGFja2FnZSBkYXAtbW9kZSA6YWZ0ZXIgbHNwLW1vZGUgOmNv bmZpZyAoZGFwLWF1dG8tY29uZmlndXJlLW1vZGUpKSAxCgo7Oyh1c2UtcGFja2FnZSBsc3AtbW9k ZSAxCjs7ICA6aG9vayAoKGxzcC1tb2RlIC4gbHNwLWVuYWJsZS13aGljaC1rZXktaW50ZWdyYXRp b24pKQo7OyAgOmNvbmZpZwo7OyAgKHNldHEKOzsgICBsc3AtZW5hYmxlLWZpbGUtd2F0Y2hlcnMg bmlsCjs7ICAgbHNwLWhlYWRlcmxpbmUtYnJlYWRjcnVtYi1lbmFibGUgbmlsCjs7ICAgKQo7OyAg OzsgUGVyZm9ybWFuY2UgdHdlYWtzLCBzZWUKOzsgIDs7IGh0dHBzOi8vZ2l0aHViLmNvbS9lbWFj cy1sc3AvbHNwLW1vZGUjcGVyZm9ybWFuY2UKOzsgIChzZXRxIGdjLWNvbnMtdGhyZXNob2xkIDEw MDAwMDAwMCkKOzsgIChzZXRxIHJlYWQtcHJvY2Vzcy1vdXRwdXQtbWF4ICgqIDEwMjQgMTAyNCkp IDs7IDFtYgo7OyAgKHNldHEgbHNwLWlkbGUtZGVsYXkgMC41MDApCjs7ICApCgoocmVxdWlyZSAn Z28tbW9kZSkKCjsocmVxdWlyZSAnY29tcGFueSkgMQoKOyhhZGQtaG9vayAnYWZ0ZXItaW5pdC1o b29rICdnbG9iYWwtY29tcGFueS1tb2RlKSAxCgo7KHVzZS1wYWNrYWdlIGNvbXBhbnktYm94IDEK OyAgOmhvb2sgKGNvbXBhbnktbW9kZSAuIGNvbXBhbnktYm94LW1vZGUpKQoKOzsgbHNwIGV4dHJh cyAxCjs7KHNldHEgbHNwLXVpLXNpZGVsaW5lLWVuYWJsZSB0Cjs7ICAgICAgbHNwLXVpLXNpZGVs aW5lLXNob3ctc3ltYm9sIHQKOzsgICAgICBsc3AtdWktc2lkZWxpbmUtc2hvdy1ob3ZlciB0Cjs7 ICAgICAgbHNwLXVpLXNpZGVsaW5lLXNob3ctZmx5Y2hlY2sgdAo7OyAgICAgIGxzcC11aS1zaWRl bGluZS1zaG93LWNvZGUtYWN0aW9ucyBuaWwKOzsgICAgICBsc3AtdWktc2lkZWxpbmUtc2hvdy1k aWFnbm9zdGljcyBuaWwpCgoKOzsgRWxweQoodXNlLXBhY2thZ2UgZWxweQogIDplbnN1cmUgdAog IDppbml0CiAgKGVscHktZW5hYmxlKSkKCjs7IFRhYk5pbmUgaW50ZWdyYXRpb24gZm9yIGNvZGUg Y29tcGxldGlvbgo7Oyh1c2UtcGFja2FnZSBjb21wYW55LXRhYm5pbmUgOmVuc3VyZSB0KSAxCjs7 KHJlcXVpcmUgJ2NvbXBhbnktdGFibmluZSkgMQo7OyhhZGQtdG8tbGlzdCAnY29tcGFueS1iYWNr ZW5kcyAjJ2NvbXBhbnktdGFibmluZSkgMQo7OyBUcmlnZ2VyIGNvbXBsZXRpb24gaW1tZWRpYXRl bHkuCjs7KHNldHEgY29tcGFueS1pZGxlLWRlbGF5IDAuMTUpIDEKCjs7IE51bWJlciB0aGUgY2Fu ZGlkYXRlcyAodXNlIE0tMSwgTS0yIGV0YyB0byBzZWxlY3QgY29tcGxldGlvbnMpLgo7OyhzZXRx IGNvbXBhbnktc2hvdy1udW1iZXJzIHQpIDEKCjs7IEpTIGRldmVsb3BtZW50Cjs7KHVzZS1wYWNr YWdlIGZyb250c2lkZS1qYXZhc2NyaXB0IDEKOzsgIDppbml0IChmcm9udHNpZGUtamF2YXNjcmlw dCkpCgojK0VORF9TUkMKKiBGb250CiMrQkVHSU5fU1JDIGVsaXNwCjtXb3JrcyB3aXRoIE9wdGlv bnMtPlNldCBEZWZhdWx0IEZvbnQKKHNldC1mYWNlLWF0dHJpYnV0ZSAnZGVmYXVsdCBuaWwgOmZh bWlseSAiSW9zZXZrYSIpCjsoc2V0LWZyYW1lLWZvbnQgIklvc2V2a2EgMTgiIG5pbCB0KQojK0VO RF9TUkMKCiogR29sZGVuIFJhdGlvCk1ha2VzIGl0IHNvIHRoZSBidWZmZXIgeW91IGFyZSBmb2N1 c2VkIG9uIGlzIGxhcmdlciB0aGFuIHRoZSBvbmVzIG5vdCBmb2N1c2VkIG9uLgojK0JFR0lOX1NS QyBlbGlzcAo7IGh0dHBzOi8vZ2l0aHViLmNvbS9yb21hbi9nb2xkZW4tcmF0aW8uZWwKKGdvbGRl bi1yYXRpby1tb2RlIDEpCiMrRU5EX1NSQwoqIEJhYmVsCiMrQkVHSU5fU1JDIGVsaXNwCjs7IE9y ZyBCYWJlbAo7KGxvYWQtbGlicmFyeSAnb2ItcnVzdCkKKG9yZy1iYWJlbC1kby1sb2FkLWxhbmd1 YWdlcwogJ29yZy1iYWJlbC1sb2FkLWxhbmd1YWdlcwogJygocHl0aG9uIC4gdCkpKQo7ICAgKG9j dGF2ZSAuIHQpCjsgICAocnVzdCAuIHQpKSkKIytFTkRfU1JDCiogWWFzbmlwcGV0CiMrQkVHSU5f U1JDIGVsaXNwCihyZXF1aXJlICd5YXNuaXBwZXQpCiMrRU5EX1NSQwoKKiBQZXJzcGVjdGl2ZQoj K0JFR0lOX1NSQyBlbGlzcAoocmVxdWlyZSAncGVyc3BlY3RpdmUpCihnbG9iYWwtc2V0LWtleSAo a2JkICJDLXggQy1iIikgJ3BlcnNwLWxpc3QtYnVmZmVycykKKGdsb2JhbC1zZXQta2V5IChrYmQg IkMteCBDLXAiKSAncGVyc3Atc3dpdGNoKQooY3VzdG9taXplLXNldC12YXJpYWJsZSAncGVyc3At bW9kZS1wcmVmaXgta2V5IChrYmQgIkMtYyBNLXAiKSkKKHBlcnNwLW1vZGUpCiMrRU5EX1NSQwoK KiBNYXJnaW5hbGlhCiMrQkVHSU5fU1JDIGVsaXNwCihtYXJnaW5hbGlhLW1vZGUgMSkKIytFTkRf U1JDCiogRG9vbSBNb2RlbGluZQojK0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2UgZG9vbS1t b2RlbGluZQogIDplbnN1cmUgdAogIDppbml0IChkb29tLW1vZGVsaW5lLW1vZGUgMSkpCiMrRU5E X1NSQwoqIENlbnRlcmVkIEN1cnNvciBNb2RlCiMrQkVHSU5fU1JDIGVsaXNwCih1c2UtcGFja2Fn ZSBjZW50ZXJlZC1jdXJzb3ItbW9kZQogIDpkZW1hbmQKICA6Y29uZmlnCiAgOzsgT3B0aW9uYWws IGVuYWJsZXMgY2VudGVyZWQtY3Vyc29yLW1vZGUgaW4gYWxsIGJ1ZmZlcnMuCiAgKGdsb2JhbC1j ZW50ZXJlZC1jdXJzb3ItbW9kZSkpCiMrRU5EX1NSQwoqIEJ1aWx0LUluIGZ1bmN0aW9ucyAoRWxl Y3RyaWMgcGFpciBhbmQgd2hpY2ggZnVuY3Rpb24pCj1zaG93LXBhcmVuLWNvbnRleHQtd2hlbi1v ZmZzY3JlZW49IGlzIGEgZnVuY3Rpb24gdG8gY3VzdG9taXplIHdoaWNoIG1ha2VzIGl0CnNvIHRo YXQgeW91IGNhbiBzZWUgd2hhdCBmdW5jdGlvbiB5b3VyIGN1cnJlbnQgYnJhY2UvcGFyZW4gaXMg bWF0Y2hpbmcgd2hlbgp0aGF0IGZ1bmN0aW9uIGlzIG9mZnNjcmVlbi4gVGhpcyBvbmx5IHdvcmtz IG9uIEVtYWNzIDI5IGFuZCBuZXdlciB0aG91Z2guCiMrQkVHSU5fU1JDIGVsaXNwCjs7OyBFbGVj dHJpYy1wYWlyIG1vZGUgKE1hdGNoZXMgcGFyZW5zIGFuZCBicmFja2V0cykKKGVsZWN0cmljLXBh aXItbW9kZSAxKQooc2V0cSBzaG93LXBhcmVuLWNvbnRleHQtd2hlbi1vZmZzY3JlZW4gJ292ZXJs YXkpCjs7IHRvcC1iYXIgd2hpY2ggZnVuY3Rpb24geW91J3JlIGN1aXJyZW50bHkgaW4KOzsod2hp Y2gtZnVuY3Rpb24tbW9kZSkKIytFTkRfU1JDCgoqIFJhaW5ib3cgRGVsaW1pdGVyIE1vZGUKUmFp bmJvdyBkZWxpbWl0ZXIgbW9kZSBjaGFuZ2VzIGNvbG9ycyBvZiBkZWxpbWl0ZXMgdG8gbWF0Y2gg dGhlaXIgcGFydG5lcgojK0JFR0lOX1NSQyBlbGlzcAooYWRkLWhvb2sgJ3Byb2ctbW9kZS1ob29r ICMncmFpbmJvdy1kZWxpbWl0ZXJzLW1vZGUpCiMrRU5EX1NSQwoqIExpbmUtUmVtaW5kZXIgTW9k ZQpMaW5lLXJlbWluZGVyLW1vZGUsIGJhc2ljYWxseSBzaG93cyB3aGF0IHlvdSd2ZSBjaGFuZ2Vk IGluIHlvdXIgY3VycmVudCBzZXNzaW9uCgpPbmUgdGhpbmcgdG8gbm90ZSB0aG91Z2ggaXMgdGhh dCB3aXRoIHRoZSBjdXJyZW50IHRoZW1lIHNldHVwLCB0aGVyZSBpcyBhbiBpc3N1ZQp3aXRoIHNl ZWluZyB0aGUgeWVsbG93IG1hcmtlciBzbyBJIGNoYW5nZWQgdGhhdCB2YWx1ZSB0byBiZSAjRERF MTY1LiBJdCBpcyBhcHBhcmVudGx5CmJlaW5nIHdvcmtlZCBvbiB1cHN0cmVhbSBpbiB0aGUgdGhl bWUsIGJ1dCBoYXNuJ3QgYmVlbiBmaW5pc2hlZCB5ZXQuCgo6VE9ETzogRmlndXJlIG91dCBob3cg dG8gY2hhbmdlIHRoZSBpZGVudGlmaWVyIHRvIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgdGhlIGZy aW5nZT8/PwojK0JFR0lOX1NSQyBlbGlzcAoocmVxdWlyZSAnaW5kaWNhdG9ycykKKHVzZS1wYWNr YWdlIGxpbmUtcmVtaW5kZXIKICA6ZW5zdXJlIHQKICA6aW5pdAogIChzZXRxIGxpbmUtcmVtaW5k ZXItc2hvdy1vcHRpb24gJ2luZGljYXRvcnMpCiAgOzsgQ3VzdG9taXplIHRoZSBtb2RpZmllZCBz aWduLgogIDs7KHNldHEgbGluZS1yZW1pbmRlci1tb2RpZmllZC1zaWduICLilpAiKSAgOyBub3Qg bmVlZGVkCiAgOztDdXN0b21pemUgdGhlIHNhdmVkIHNpZ24uCiAgOzsoc2V0cSBsaW5lLXJlbWlu ZGVyLXNhdmVkLXNpZ24gIuKWkCIpICA7IG5vdCBuZWVkZWQKICA7O0N1c3RvbWl6ZSBzdHJpbmcg b24gdGhlIHJpZ2h0L2xlZnQgc2lkZSBvZiB0aGUgbGluZSBudW1iZXIuCiAgKHNldHEgbGluZS1y ZW1pbmRlci1saW51bS1sZWZ0LXN0cmluZyAiIikKICAoc2V0cSBsaW5lLXJlbWluZGVyLWxpbnVt LXJpZ2h0LXN0cmluZyAiICIpCiAgOmNvbmZpZwogIChhZGQtaG9vayAncHJvZy1tb2RlLWhvb2sK ICAgICAgICAgICAgKGZ1bmN0aW9uCiAgICAgICAgICAgICAobGFtYmRhICgpCiAgICAgICAgICAg ICAgIChsaW5lLXJlbWluZGVyLW1vZGUgdCkKICAgICAgICAgICAgICAgKHNldHEgbGluZS1yZW1p bmRlci1zaG93LW9wdGlvbiAnaW5kaWNhdG9ycykpKSkpCihnbG9iYWwtbGluZS1yZW1pbmRlci1t b2RlIHQpCiMrRU5EX1NSQwoK --b1_0RivMYcIFzDWLX2R6VxDjfZjRkHocvgBoHn7ostww--
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 12 Feb 2023 17:06:15 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 12 12:06:15 2023 Received: from localhost ([127.0.0.1]:46547 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pRFnr-0001yP-2c for submit <at> debbugs.gnu.org; Sun, 12 Feb 2023 12:06:15 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46238) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1pRFno-0001y8-Jh for 61436 <at> debbugs.gnu.org; Sun, 12 Feb 2023 12:06:13 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pRFnj-0002Ve-Cz; Sun, 12 Feb 2023 12:06:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=+QQ0VNSlEi0kY9IV9Xi+tVuhdDRGUETorjFpyT+t8kM=; b=Lqto98rFnCpv cGJJqHxikJIzcw5IdX1Ty5dHFUHkgrVgCij4YA1/XjwN12Nd44C2BSYF75N38CVpLYF6UhfpuFQcx GwxwqWWNi9MpL+WfNINbtZKIMhDnuuvvghhk4L0iwnZ4nqnjUlglSJ9hr6aUdGwFvP5PQ98NrBetl 4X8Ca3HJStJBByzy9ukCbPDXR7eVAB7AJhpczGuS8pbhKV0Tw765VmiqEKhoISncfM8P07XTEqAj2 oxbL/HFriqHT/LXhlqHXymf1cwI3l2bZDzxWs7ZNKiEOnbZpOPXwX/vsymOm5D8kHjWZRkeldZLdB 3aPcowskQv1j0iHx/E/3zg==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pRFni-0005bA-Sh; Sun, 12 Feb 2023 12:06:07 -0500 Date: Sun, 12 Feb 2023 19:05:39 +0200 Message-Id: <835yc6hl0c.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Hank Greenburg <hank.greenburg@HIDDEN> In-Reply-To: <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> (message from Hank Greenburg on Sun, 12 Feb 2023 16:52:51 +0000) Subject: Re: bug#61436: Emacs Freezing With Java Files References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com> <83cz6fiefb.fsf@HIDDEN> <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 61436 Cc: 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Date: Sun, 12 Feb 2023 16:52:51 +0000 > From: Hank Greenburg <hank.greenburg@HIDDEN> > Cc: 61436 <at> debbugs.gnu.org > > Launch with emacs -Q > > org-babel-execute-src-block for the Repos block and Hyperbole. The Hyperbole block won't work unless you do the Repos block first. Sorry, I don't understand: what is "the Repos block", and what is the "Hyperbole block"? What do I need to do after starting "emacs -Q" to reproduce what you describe above? which commands to type?
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 12 Feb 2023 16:53:12 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 12 11:53:12 2023 Received: from localhost ([127.0.0.1]:46532 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pRFbD-0001bN-M4 for submit <at> debbugs.gnu.org; Sun, 12 Feb 2023 11:53:12 -0500 Received: from mail-40134.protonmail.ch ([185.70.40.134]:24331) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <hank.greenburg@HIDDEN>) id 1pRFbA-0001b8-NE for 61436 <at> debbugs.gnu.org; Sun, 12 Feb 2023 11:53:09 -0500 Date: Sun, 12 Feb 2023 16:52:51 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1676220782; x=1676479982; bh=F6e4RPUnHTb4CCx/RQnYdhqxPDdhq+lYV03unL2O0xQ=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=GDnhQ49ZvKv38ZhvrxcSY7h2coh8fLhj5Kw7KzQDvgiXE1s/9vWpZYyeF7XE/fkwe ETPT9dzex0aUuLLL64T6/0gdtXIRSgwGRHntWEoaT5LnlePTzSTdN1xuHQmE+vhWrs zK60pId42ZRvgDIHL3eLdIgvaiIh3EkQRCraAbtL5lkIJy4wTqF04Zn/rToQ7ruE1O PldWgzNEaF87XBHYmco/B18feEVs8f8gPu7oixBA6dJzTwpHbPWQoHhKU1L03tZbMY VUh9T9lsLbZ8W/a2cem1/F0WC28Hcof0bVzLubLznr38tJ4nxf9fyBlHsFon1bpDMf Zajy/CD6CX77w== To: Eli Zaretskii <eliz@HIDDEN> From: Hank Greenburg <hank.greenburg@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files Message-ID: <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com> In-Reply-To: <83cz6fiefb.fsf@HIDDEN> References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com> <83cz6fiefb.fsf@HIDDEN> Feedback-ID: 10943770:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 61436 Cc: 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) I was just able to reproduce this 5 times in a row with doing the steps bel= ow.=20 Launch with emacs -Q org-babel-execute-src-block for the Repos block and Hyperbole. The Hyperbol= e block won't work unless you do the Repos block first. Go to the Java file. Hold CTRL + Up/Down Arrow keys to quickly move through= the file.=20 This works just fine until which-function-mode is activated. After that is = activated I can scroll through maybe twice before it freezes.=20 It almost always happens after hitting the end of the file, and the first j= ump up after that. Or at least it has happened 4/5 times by doing that. The= other time I avoided the end of the file to see if that was the trigger an= d it still froze.=20 ------- Original Message ------- On Sunday, February 12th, 2023 at 12:30 AM, Eli Zaretskii <eliz@HIDDEN> wr= ote: >=20 >=20 > > Cc: 61436 <at> debbugs.gnu.org >=20 > > Date: Sun, 12 Feb 2023 00:24:49 +0000 > > From: Hank Greenburg via "Bug reports for GNU Emacs, > > the Swiss army knife of text editors" bug-gnu-emacs@HIDDEN > >=20 > > To follow up on this, somehow disabling which-function-mode from my con= fig has solved the problem. That > > doesn't make sense though because I didn't add that until after it had = frozen in the first place. I know that for > > certain because I had to use IntelliJ and got the idea for using which-= function-mode from IntelliJ. > >=20 > > To clarify, this froze every single time I tried to edit the file no ma= tter what modes I had turned on or off. It > > happened at least 40 times in total and never once was I able to actual= ly edit the file within Emacs. After > > disabling which-function-mode though I have restarted Emacs a few times= , written in the file, scrolled though > > it all without a single hiccup. > >=20 > > So my problem is seemingly solved but there is an underlying bug somewh= ere that I'm not really able to > > isolate aside from disabling which-function-mode. >=20 >=20 > If I visit the file you posted, and then turn on which-function-mode > in it, I cannot reproduce the freezes. Scrolling through the file > becomes slower, but nowhere near "freezing". >=20 > Do you see something different when you enable just > which-function-mode in "emacs -Q"? >
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 12 Feb 2023 06:30:53 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 12 01:30:53 2023 Received: from localhost ([127.0.0.1]:43888 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pR5sz-0004NE-9Y for submit <at> debbugs.gnu.org; Sun, 12 Feb 2023 01:30:53 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55562) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1pR5sw-0004Mz-VD for 61436 <at> debbugs.gnu.org; Sun, 12 Feb 2023 01:30:52 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pR5sq-00018P-W7; Sun, 12 Feb 2023 01:30:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=9cLogEUf8CPKuA0nvkZbC+SkJiMf0C0VA7CacW+Qvn4=; b=g7EYQm/ntKqh X70qdZLgOiubJ1rVbuUoaK34G7KNtmRWbvFAzd9UxWQ85G7zLHlPrg64F2g8X4V6W4qLEkGeGqkbt jEjmUGUyWoXoVaPIa72XFM0Rt3CN6gxu2n0a1jTQvTUjiL1uoRHrWUr1KwzpX4/zsS0eNOl/90xL3 ZU0f7+vGstBPWvOWU2IDVMXI+uuyaysWJN+rUc6ZSurfTRXQrM56Fi7x4P7cHiS4+oGZIZq+7auOO lPTKq5yiv+jJkPcJ3mU5dSlEpQp9gV6+Y9yvn5l50iSzE5/O/tDRorEA5BVr9sBuwEeb5cG1JHrjT KTV+2gU0ZUUbu4YtWM5cEQ==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pR5sp-0002GR-Q7; Sun, 12 Feb 2023 01:30:44 -0500 Date: Sun, 12 Feb 2023 08:30:16 +0200 Message-Id: <83cz6fiefb.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Hank Greenburg <hank.greenburg@HIDDEN> In-Reply-To: <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com> (bug-gnu-emacs@HIDDEN) Subject: Re: bug#61436: Emacs Freezing With Java Files References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 61436 Cc: 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Cc: 61436 <at> debbugs.gnu.org > Date: Sun, 12 Feb 2023 00:24:49 +0000 > From: Hank Greenburg via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN> > > To follow up on this, somehow disabling which-function-mode from my config has solved the problem. That > doesn't make sense though because I didn't add that until after it had frozen in the first place. I know that for > certain because I had to use IntelliJ and got the idea for using which-function-mode from IntelliJ. > > To clarify, this froze every single time I tried to edit the file no matter what modes I had turned on or off. It > happened at least 40 times in total and never once was I able to actually edit the file within Emacs. After > disabling which-function-mode though I have restarted Emacs a few times, written in the file, scrolled though > it all without a single hiccup. > > So my problem is seemingly solved but there is an underlying bug somewhere that I'm not really able to > isolate aside from disabling which-function-mode. If I visit the file you posted, and then turn on which-function-mode in it, I cannot reproduce the freezes. Scrolling through the file becomes slower, but nowhere near "freezing". Do you see something different when you enable just which-function-mode in "emacs -Q"?
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 12 Feb 2023 06:00:56 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 12 01:00:56 2023 Received: from localhost ([127.0.0.1]:43856 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pR5Pz-0003Oh-UI for submit <at> debbugs.gnu.org; Sun, 12 Feb 2023 01:00:56 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57426) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1pR5Pw-0003OT-KR for 61436 <at> debbugs.gnu.org; Sun, 12 Feb 2023 01:00:54 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pR5Pn-0002Am-G6; Sun, 12 Feb 2023 01:00:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=Nnwm0ld/WBcAQh00hNFh2PrdnOsYD2Yz/We2B+jCklM=; b=E8LwxNeqjZ7k nrw9kmBztcigkgALuZB0i1cOSvAyTz4wD9QO+HLCKHt3gsW6Y0LNlfYRvzji98ObxfCMZbtFmmNDP 0cqp9j2+O0v//C4d9ux0Ihblf6B9zFRmHtyybLMFWmUO7Pyt40yu3uHz4IEssygX59xC9V33l2EZq 63wRY6ScUnK7yQWaV4ks9sCequnxmQftkxgZTiyT1lK1x1egbaE626cVTOM1noCH0Fk/HocMkG3G6 oAI9EWP6MT1QFXraYYCI1FfrMWlGXnt1pFT+6RMsG27mHvNS/1LKh/Fpo9sMhQmoJ3usBI369Gkzl uo8UYK9RYUhBovyEiNgeUw==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pR5Pb-0003lv-UN; Sun, 12 Feb 2023 01:00:38 -0500 Date: Sun, 12 Feb 2023 08:00:04 +0200 Message-Id: <83k00niftn.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Hank Greenburg <hank.greenburg@HIDDEN> In-Reply-To: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> (bug-gnu-emacs@HIDDEN) Subject: Re: bug#61436: Emacs Freezing With Java Files References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 61436 Cc: 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Date: Sat, 11 Feb 2023 18:16:41 +0000 > From: Hank Greenburg via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN> > > I have a few Java files that are about 500 lines of code and I can't move around in them much before Emacs > freezes. I first thought it was java-lsp but it still happened after disabling and uninstalling it. I also uninstalled > lsp-mode as well, but that didn't change anything. > > I started doing CPU profiles of it and found that which-function-mode was taking up 67% of my CPU usage. > While this is happening all I was doing was holding the down arrow until it froze about 350 lines in. Didn't > press any other buttons. > > So I disabled which-function-mode and moved around the buffer just fine! Though when trying to edit the file > (just hit enter), it froze again. This time it seems like electric-indent-mode was taking up close to 50% of my > CPU usage. > > I disabled that and tried again and then it froze again with c-indent-line-or-region eating up 63% of my CPU > when I use TAB. > > While using debug-on-quit I get the below output. Any idea what's happening here and how it can be > addressed? I do know though that if I launch emacs with the -Q argument, then there aren't any problems at > all. I tried large files of other types and it only seems to happen with Java files. I attached screenshots of the > CPU profiler outputs for each of the three scenarios. Attached is also the Java file as well as my init file. > > I am using emacs version 28.2 on EndeavorOS, but reproduced the results using both emacs 29 and the > master branch. I confirm that the issue doesn't happen with "emacs -Q" and the file you posted. So some of your customizations trigger the problem, and we must find out which one(s). Can you try selectively enabling only parts of your init files to find which customizations are the reason? If your customizations are not too many, starting "emacs -Q" and then evaluating the customizations one by one could be a good way of finding the culprit(s). Another possibility is bisecting: successively divide the init file in two halves and see which half causes the problem, then divide that half in tow, etc. etc., until you get to a small enough part you can post here (or figure out yourself). Thanks.
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at 61436) by debbugs.gnu.org; 12 Feb 2023 05:38:58 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 12 00:38:58 2023 Received: from localhost ([127.0.0.1]:43832 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pR54g-0002jp-Ti for submit <at> debbugs.gnu.org; Sun, 12 Feb 2023 00:38:58 -0500 Received: from mail-4322.protonmail.ch ([185.70.43.22]:53869) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <hank.greenburg@HIDDEN>) id 1pR0Aw-0000bb-Ey for 61436 <at> debbugs.gnu.org; Sat, 11 Feb 2023 19:25:06 -0500 Date: Sun, 12 Feb 2023 00:24:49 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1676161495; x=1676420695; bh=26uyH0qh/6ue0EKzkAnN1EfL4Pbq4GmO/E3Z6CMqNjo=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=zRBt2MbUNUARInenvsnuTyJbahiujNYF1NNLPVB9+R5dY9AFNQOc49KxxuoH421Xn +gZm3a9vsAjUgeqf8Kez5TdRFrGuKk9S9WgMhtF8xHATaQuXerZNIaM3aFAAQJwL20 m9uEZLFvzAa56d4a+PKwzbSbS6TTckK/BjDGIWNk02F0mI4K+rCb/p6eIoJlVNK3Dv uP86siTtOtbs4YeeQGqCs5HIx0kESUd3VftuT2rfycHNPzrYfSehW/BfuO6BPrCbEA H3jFSajimiGMnZdpreZAF9zVHqzevAcN6S4myRgse9O6r9keRtC9PkUwmTiHVG8Ses 7Uu66DU9YxsCA== To: Hank Greenburg <hank.greenburg@HIDDEN> From: Hank Greenburg <hank.greenburg@HIDDEN> Subject: Re: bug#61436: Emacs Freezing With Java Files Message-ID: <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com> In-Reply-To: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> Feedback-ID: 10943770:user:proton MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="b1_mITuvyJsiOhpmDnbWFQzhlum1fa0ly6SkEuJp6jV7I" X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 61436 X-Mailman-Approved-At: Sun, 12 Feb 2023 00:38:53 -0500 Cc: 61436 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --b1_mITuvyJsiOhpmDnbWFQzhlum1fa0ly6SkEuJp6jV7I Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 VG8gZm9sbG93IHVwIG9uIHRoaXMsIHNvbWVob3cgZGlzYWJsaW5nIHdoaWNoLWZ1bmN0aW9uLW1v ZGUgZnJvbSBteSBjb25maWcgaGFzIHNvbHZlZCB0aGUgcHJvYmxlbS4gVGhhdCBkb2Vzbid0IG1h a2Ugc2Vuc2UgdGhvdWdoIGJlY2F1c2UgSSBkaWRuJ3QgYWRkIHRoYXQgdW50aWwgYWZ0ZXIgaXQg aGFkIGZyb3plbiBpbiB0aGUgZmlyc3QgcGxhY2UuIEkga25vdyB0aGF0IGZvciBjZXJ0YWluIGJl Y2F1c2UgSSBoYWQgdG8gdXNlIEludGVsbGlKIGFuZCBnb3QgdGhlIGlkZWEgZm9yIHVzaW5nIHdo aWNoLWZ1bmN0aW9uLW1vZGUgZnJvbSBJbnRlbGxpSi4KClRvIGNsYXJpZnksIHRoaXMgZnJvemUg ZXZlcnkgc2luZ2xlIHRpbWUgSSB0cmllZCB0byBlZGl0IHRoZSBmaWxlIG5vIG1hdHRlciB3aGF0 IG1vZGVzIEkgaGFkIHR1cm5lZCBvbiBvciBvZmYuIEl0IGhhcHBlbmVkIGF0IGxlYXN0IDQwIHRp bWVzIGluIHRvdGFsIGFuZCBuZXZlciBvbmNlIHdhcyBJIGFibGUgdG8gYWN0dWFsbHkgZWRpdCB0 aGUgZmlsZSB3aXRoaW4gRW1hY3MuIEFmdGVyIGRpc2FibGluZyB3aGljaC1mdW5jdGlvbi1tb2Rl IHRob3VnaCBJIGhhdmUgcmVzdGFydGVkIEVtYWNzIGEgZmV3IHRpbWVzLCB3cml0dGVuIGluIHRo ZSBmaWxlLCBzY3JvbGxlZCB0aG91Z2ggaXQgYWxsIHdpdGhvdXQgYSBzaW5nbGUgaGljY3VwLgoK U28gbXkgcHJvYmxlbSBpcyBzZWVtaW5nbHkgc29sdmVkIGJ1dCB0aGVyZSBpcyBhbiB1bmRlcmx5 aW5nIGJ1ZyBzb21ld2hlcmUgdGhhdCBJJ20gbm90IHJlYWxseSBhYmxlIHRvIGlzb2xhdGUgYXNp ZGUgZnJvbSBkaXNhYmxpbmcgd2hpY2gtZnVuY3Rpb24tbW9kZS4KCi0tLS0tLS0gT3JpZ2luYWwg TWVzc2FnZSAtLS0tLS0tCk9uIFNhdHVyZGF5LCBGZWJydWFyeSAxMXRoLCAyMDIzIGF0IDEyOjE2 IFBNLCBIYW5rIEdyZWVuYnVyZyB2aWEgIkJ1ZyByZXBvcnRzIGZvciBHTlUgRW1hY3MsIHRoZSBT d2lzcyBhcm15IGtuaWZlIG9mIHRleHQgZWRpdG9ycyIgPGJ1Zy1nbnUtZW1hY3NAZ251Lm9yZz4g d3JvdGU6Cgo+IEkgaGF2ZSBhIGZldyBKYXZhIGZpbGVzIHRoYXQgYXJlIGFib3V0IDUwMCBsaW5l cyBvZiBjb2RlIGFuZCBJIGNhbid0IG1vdmUgYXJvdW5kIGluIHRoZW0gbXVjaCBiZWZvcmUgRW1h Y3MgZnJlZXplcy4gSSBmaXJzdCB0aG91Z2h0IGl0IHdhcyBqYXZhLWxzcCBidXQgaXQgc3RpbGwg aGFwcGVuZWQgYWZ0ZXIgZGlzYWJsaW5nIGFuZCB1bmluc3RhbGxpbmcgaXQuIEkgYWxzbyB1bmlu c3RhbGxlZCBsc3AtbW9kZSBhcyB3ZWxsLCBidXQgdGhhdCBkaWRuJ3QgY2hhbmdlIGFueXRoaW5n Lgo+Cj4gSSBzdGFydGVkIGRvaW5nIENQVSBwcm9maWxlcyBvZiBpdCBhbmQgZm91bmQgdGhhdCB3 aGljaC1mdW5jdGlvbi1tb2RlIHdhcyB0YWtpbmcgdXAgNjclIG9mIG15IENQVSB1c2FnZS4gV2hp bGUgdGhpcyBpcyBoYXBwZW5pbmcgYWxsIEkgd2FzIGRvaW5nIHdhcyBob2xkaW5nIHRoZSBkb3du IGFycm93IHVudGlsIGl0IGZyb3plIGFib3V0IDM1MCBsaW5lcyBpbi4gRGlkbid0IHByZXNzIGFu eSBvdGhlciBidXR0b25zLgo+Cj4gU28gSSBkaXNhYmxlZCB3aGljaC1mdW5jdGlvbi1tb2RlIGFu ZCBtb3ZlZCBhcm91bmQgdGhlIGJ1ZmZlciBqdXN0IGZpbmUhIFRob3VnaCB3aGVuIHRyeWluZyB0 byBlZGl0IHRoZSBmaWxlIChqdXN0IGhpdCBlbnRlciksIGl0IGZyb3plIGFnYWluLiBUaGlzIHRp bWUgaXQgc2VlbXMgbGlrZSBlbGVjdHJpYy1pbmRlbnQtbW9kZSB3YXMgdGFraW5nIHVwIGNsb3Nl IHRvIDUwJSBvZiBteSBDUFUgdXNhZ2UuCj4KPiBJIGRpc2FibGVkIHRoYXQgYW5kIHRyaWVkIGFn YWluIGFuZCB0aGVuIGl0IGZyb3plIGFnYWluIHdpdGggYy1pbmRlbnQtbGluZS1vci1yZWdpb24g ZWF0aW5nIHVwIDYzJSBvZiBteSBDUFUgd2hlbiBJIHVzZSBUQUIuCj4KPiBXaGlsZSB1c2luZyBk ZWJ1Zy1vbi1xdWl0IEkgZ2V0IHRoZSBiZWxvdyBvdXRwdXQuIEFueSBpZGVhIHdoYXQncyBoYXBw ZW5pbmcgaGVyZSBhbmQgaG93IGl0IGNhbiBiZSBhZGRyZXNzZWQ/IEkgZG8ga25vdyB0aG91Z2gg dGhhdCBpZiBJIGxhdW5jaCBlbWFjcyB3aXRoIHRoZSAtUSBhcmd1bWVudCwgdGhlbiB0aGVyZSBh cmVuJ3QgYW55IHByb2JsZW1zIGF0IGFsbC4gSSB0cmllZCBsYXJnZSBmaWxlcyBvZiBvdGhlciB0 eXBlcyBhbmQgaXQgb25seSBzZWVtcyB0byBoYXBwZW4gd2l0aCBKYXZhIGZpbGVzLiBJIGF0dGFj aGVkIHNjcmVlbnNob3RzIG9mIHRoZSBDUFUgcHJvZmlsZXIgb3V0cHV0cyBmb3IgZWFjaCBvZiB0 aGUgdGhyZWUgc2NlbmFyaW9zLiBBdHRhY2hlZCBpcyBhbHNvIHRoZSBKYXZhIGZpbGUgYXMgd2Vs bCBhcyBteSBpbml0IGZpbGUuCj4KPiBJIGFtIHVzaW5nIGVtYWNzIHZlcnNpb24gMjguMiBvbiBF bmRlYXZvck9TLCBidXQgcmVwcm9kdWNlZCB0aGUgcmVzdWx0cyB1c2luZyBib3RoIGVtYWNzIDI5 IGFuZCB0aGUgbWFzdGVyIGJyYW5jaC4KPgo+IERlYnVnZ2VyIGVudGVyZWQtLUxpc3AgZXJyb3I6 IChxdWl0KQo+IGJlZ2lubmluZy1vZi1kZWZ1bigpCj4gYy1nZXQtZmFsbGJhY2stc2Nhbi1wb3Mo MTc3OTQpCj4gYy1wYXJzZS1zdGF0ZS1nZXQtc3RyYXRlZ3koMTc3OTQgMSkKPiBjLXBhcnNlLXN0 YXRlLTEoKQo+IGMtcGFyc2Utc3RhdGUoKQo+IGMtZ3Vlc3MtYmFzaWMtc3ludGF4KCkKPiBjLWlu ZGVudC1saW5lKCkKPiAjZihjb21waWxlZC1mdW5jdGlvbiAoKSAoaW50ZXJhY3RpdmUgbmlsKSAj PGJ5dGVjb2RlIDB4MTgwMjQ4ZGNjYTFjYzU3ZT4pKCkKPiBjLWluZGVudC1jb21tYW5kKG5pbCkK PiBjLWluZGVudC1saW5lLW9yLXJlZ2lvbihuaWwgbmlsKQo+IGZ1bmNhbGwtaW50ZXJhY3RpdmVs eShjLWluZGVudC1saW5lLW9yLXJlZ2lvbiBuaWwgbmlsKQo+IGNhbGwtaW50ZXJhY3RpdmVseShj LWluZGVudC1saW5lLW9yLXJlZ2lvbiBuaWwgbmlsKSBjb21tYW5kLWV4ZWN1dGUoYy1pbmRlbnQt bGluZS1vci1yZWdpb24p --b1_mITuvyJsiOhpmDnbWFQzhlum1fa0ly6SkEuJp6jV7I Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0 cHg7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij5UbyBmb2xsb3cgdXAgb24gdGhpcywgc29tZWhvdyBk aXNhYmxpbmcgd2hpY2gtZnVuY3Rpb24tbW9kZSBmcm9tIG15IGNvbmZpZyBoYXMgc29sdmVkIHRo ZSBwcm9ibGVtLiBUaGF0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0aG91Z2ggYmVjYXVzZSBJIGRpZG4n dCBhZGQgdGhhdCB1bnRpbCBhZnRlciBpdCBoYWQgZnJvemVuIGluIHRoZSBmaXJzdCBwbGFjZS4g SSBrbm93IHRoYXQgZm9yIGNlcnRhaW4gYmVjYXVzZSBJIGhhZCB0byB1c2UgSW50ZWxsaUogYW5k IGdvdCB0aGUgaWRlYSBmb3IgdXNpbmcgd2hpY2gtZnVuY3Rpb24tbW9kZSBmcm9tIEludGVsbGlK LiA8YnI+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBm b250LXNpemU6IDE0cHg7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij48YnI+PC9kaXY+PGRpdiBzdHls ZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IGNvbG9y OiByZ2IoMCwgMCwgMCk7Ij5UbyBjbGFyaWZ5LCB0aGlzIGZyb3plIGV2ZXJ5IHNpbmdsZSB0aW1l IEkgdHJpZWQgdG8gZWRpdCB0aGUgZmlsZSBubyBtYXR0ZXIgd2hhdCBtb2RlcyBJIGhhZCB0dXJu ZWQgb24gb3Igb2ZmLiBJdCBoYXBwZW5lZCBhdCBsZWFzdCA0MCB0aW1lcyBpbiB0b3RhbCBhbmQg bmV2ZXIgb25jZSB3YXMgSSBhYmxlIHRvIGFjdHVhbGx5IGVkaXQgdGhlIGZpbGUgd2l0aGluIEVt YWNzLiBBZnRlciBkaXNhYmxpbmcgd2hpY2gtZnVuY3Rpb24tbW9kZSB0aG91Z2ggSSBoYXZlIHJl c3RhcnRlZCBFbWFjcyBhIGZldyB0aW1lcywgd3JpdHRlbiBpbiB0aGUgZmlsZSwgc2Nyb2xsZWQg dGhvdWdoIGl0IGFsbCB3aXRob3V0IGEgc2luZ2xlIGhpY2N1cC4gPGJyPjwvZGl2PjxkaXYgc3R5 bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBjb2xv cjogcmdiKDAsIDAsIDApOyI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlh bCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogcmdiKDAsIDAsIDApOyI+U28g bXkgcHJvYmxlbSBpcyBzZWVtaW5nbHkgc29sdmVkIGJ1dCB0aGVyZSBpcyBhbiB1bmRlcmx5aW5n IGJ1ZyBzb21ld2hlcmUgdGhhdCBJJ20gbm90IHJlYWxseSBhYmxlIHRvIGlzb2xhdGUgYXNpZGUg ZnJvbSBkaXNhYmxpbmcgd2hpY2gtZnVuY3Rpb24tbW9kZS4gPGJyPjwvZGl2PjxkaXYgc3R5bGU9 ImZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjog cmdiKDAsIDAsIDApOyI+PGJyPjwvZGl2Pg0KPGRpdiBjbGFzcz0icHJvdG9ubWFpbF9zaWduYXR1 cmVfYmxvY2sgcHJvdG9ubWFpbF9zaWduYXR1cmVfYmxvY2stZW1wdHkiIHN0eWxlPSJmb250LWZh bWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPg0KICAgIDxkaXYgY2xh c3M9InByb3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrLXVzZXIgcHJvdG9ubWFpbF9zaWduYXR1cmVf YmxvY2stZW1wdHkiPg0KICAgICAgICANCiAgICAgICAgICAgIDwvZGl2Pg0KICAgIA0KICAgICAg ICAgICAgPGRpdiBjbGFzcz0icHJvdG9ubWFpbF9zaWduYXR1cmVfYmxvY2stcHJvdG9uIHByb3Rv bm1haWxfc2lnbmF0dXJlX2Jsb2NrLWVtcHR5Ij4NCiAgICAgICAgDQogICAgICAgICAgICA8L2Rp dj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBm b250LXNpemU6IDE0cHg7Ij48YnI+PC9kaXY+PGRpdiBjbGFzcz0icHJvdG9ubWFpbF9xdW90ZSI+ DQogICAgICAgIC0tLS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLS0tPGJyPg0KICAgICAgICBP biBTYXR1cmRheSwgRmVicnVhcnkgMTF0aCwgMjAyMyBhdCAxMjoxNiBQTSwgSGFuayBHcmVlbmJ1 cmcgdmlhICJCdWcgcmVwb3J0cyBmb3IgR05VIEVtYWNzLCB0aGUgU3dpc3MgYXJteSBrbmlmZSBv ZiB0ZXh0IGVkaXRvcnMiICZsdDtidWctZ251LWVtYWNzQGdudS5vcmcmZ3Q7IHdyb3RlOjxicj48 YnI+DQogICAgICAgIDxibG9ja3F1b3RlIGNsYXNzPSJwcm90b25tYWlsX3F1b3RlIiB0eXBlPSJj aXRlIj4NCiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1z ZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+PHNwYW4+SQ0KIGhhdmUgYSBmZXcgSmF2YSBmaWxlcyB0 aGF0IGFyZSBhYm91dCA1MDAgbGluZXMgb2YgY29kZSBhbmQgSSBjYW4ndCBtb3ZlDQogYXJvdW5k IGluIHRoZW0gbXVjaCBiZWZvcmUgRW1hY3MgZnJlZXplcy4gSSBmaXJzdCB0aG91Z2h0IGl0IHdh cw0KamF2YS1sc3AgYnV0IGl0IHN0aWxsIGhhcHBlbmVkIGFmdGVyIGRpc2FibGluZyBhbmQgdW5p bnN0YWxsaW5nIGl0LiBJDQphbHNvIHVuaW5zdGFsbGVkIGxzcC1tb2RlIGFzIHdlbGwsIGJ1dCB0 aGF0IGRpZG4ndCBjaGFuZ2UgYW55dGhpbmcuIDwvc3Bhbj48ZGl2Pjxicj48L2Rpdj48ZGl2PkkN CiBzdGFydGVkIGRvaW5nIENQVSBwcm9maWxlcyBvZiBpdCBhbmQgZm91bmQgdGhhdCB3aGljaC1m dW5jdGlvbi1tb2RlIHdhcw0KIHRha2luZyB1cCA2NyUgb2YgbXkgQ1BVIHVzYWdlLiBXaGlsZSB0 aGlzIGlzIGhhcHBlbmluZyBhbGwgSSB3YXMgZG9pbmcNCndhcyBob2xkaW5nIHRoZSBkb3duIGFy cm93IHVudGlsIGl0IGZyb3plIGFib3V0IDM1MCBsaW5lcyBpbi4gRGlkbid0DQpwcmVzcyBhbnkg b3RoZXIgYnV0dG9ucy4gPGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+U28NCiBJIGRpc2Fi bGVkIHdoaWNoLWZ1bmN0aW9uLW1vZGUgYW5kIG1vdmVkIGFyb3VuZCB0aGUgYnVmZmVyIGp1c3Qg ZmluZSENClRob3VnaCB3aGVuIHRyeWluZyB0byBlZGl0IHRoZSBmaWxlIChqdXN0IGhpdCBlbnRl ciksIGl0IGZyb3plIGFnYWluLg0KVGhpcyB0aW1lIGl0IHNlZW1zIGxpa2UgZWxlY3RyaWMtaW5k ZW50LW1vZGUgd2FzIHRha2luZyB1cCBjbG9zZSB0byA1MCUNCm9mIG15IENQVSB1c2FnZS4gPGJy PjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+SSBkaXNhYmxlZCB0aGF0IGFuZCB0cmllZCBhZ2Fp biBhbmQgdGhlbiBpdCBmcm96ZSBhZ2FpbiB3aXRoIGMtaW5kZW50LWxpbmUtb3ItcmVnaW9uIGVh dGluZyB1cCA2MyUgb2YgbXkgQ1BVIHdoZW4gSSB1c2UgVEFCLjwvZGl2PjxkaXY+PGJyPjwvZGl2 PjxkaXY+V2hpbGUNCiB1c2luZyBkZWJ1Zy1vbi1xdWl0IEkgZ2V0IHRoZSBiZWxvdyBvdXRwdXQu IEFueSBpZGVhIHdoYXQncyBoYXBwZW5pbmcNCmhlcmUgYW5kIGhvdyBpdCBjYW4gYmUgYWRkcmVz c2VkPyBJIGRvIGtub3cgdGhvdWdoIHRoYXQgaWYgSSBsYXVuY2ggZW1hY3MNCndpdGggdGhlIC1R IGFyZ3VtZW50LCB0aGVuIHRoZXJlIGFyZW4ndCBhbnkgcHJvYmxlbXMgYXQgYWxsLiBJIHRyaWVk IGxhcmdlIGZpbGVzIG9mIG90aGVyIHR5cGVzIGFuZA0KIGl0IG9ubHkgc2VlbXMgdG8gaGFwcGVu IHdpdGggSmF2YSBmaWxlcy4gSSBhdHRhY2hlZCBzY3JlZW5zaG90cyBvZiB0aGUNCkNQVSBwcm9m aWxlciBvdXRwdXRzIGZvciBlYWNoIG9mIHRoZSB0aHJlZSBzY2VuYXJpb3MuIEF0dGFjaGVkIGlz IGFsc28gdGhlIEphdmEgZmlsZSBhcyB3ZWxsIGFzIG15IGluaXQgZmlsZS4gPGJyPjwvZGl2Pjxk aXY+PGJyPjwvZGl2PjxkaXY+SSBhbSB1c2luZyBlbWFjcyB2ZXJzaW9uIDI4LjIgb24gRW5kZWF2 b3JPUywgYnV0IHJlcHJvZHVjZWQgdGhlIHJlc3VsdHMgdXNpbmcgYm90aCBlbWFjcyAyOSBhbmQg dGhlIG1hc3RlciBicmFuY2guIDxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PjxzcGFuPkRl YnVnZ2VyIGVudGVyZWQtLUxpc3AgZXJyb3I6IChxdWl0KTwvc3Bhbj48ZGl2PjxzcGFuPiZuYnNw OyBiZWdpbm5pbmctb2YtZGVmdW4oKTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPiZuYnNwOyBjLWdl dC1mYWxsYmFjay1zY2FuLXBvcygxNzc5NCk8L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj4mbmJzcDsg Yy1wYXJzZS1zdGF0ZS1nZXQtc3RyYXRlZ3koMTc3OTQgMSk8L3NwYW4+PC9kaXY+PGRpdj48c3Bh bj4mbmJzcDsgYy1wYXJzZS1zdGF0ZS0xKCk8L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj4mbmJzcDsg Yy1wYXJzZS1zdGF0ZSgpPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+Jm5ic3A7IGMtZ3Vlc3MtYmFz aWMtc3ludGF4KCk8L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj4mbmJzcDsgYy1pbmRlbnQtbGluZSgp PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+Jm5ic3A7ICNmKGNvbXBpbGVkLWZ1bmN0aW9uICgpIChp bnRlcmFjdGl2ZSBuaWwpICMmbHQ7Ynl0ZWNvZGUgMHgxODAyNDhkY2NhMWNjNTdlJmd0OykoKTwv c3Bhbj48L2Rpdj48ZGl2PjxzcGFuPiZuYnNwOyBjLWluZGVudC1jb21tYW5kKG5pbCk8L3NwYW4+ PC9kaXY+PGRpdj48c3Bhbj4mbmJzcDsgYy1pbmRlbnQtbGluZS1vci1yZWdpb24obmlsIG5pbCk8 L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj4mbmJzcDsgZnVuY2FsbC1pbnRlcmFjdGl2ZWx5KGMtaW5k ZW50LWxpbmUtb3ItcmVnaW9uIG5pbCBuaWwpPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+Jm5ic3A7 IGNhbGwtaW50ZXJhY3RpdmVseShjLWluZGVudC1saW5lLW9yLXJlZ2lvbiBuaWwgbmlsKTwvc3Bh bj48L2Rpdj48c3Bhbj48c3Bhbj4mbmJzcDsgY29tbWFuZC1leGVjdXRlKGMtaW5kZW50LWxpbmUt b3ItcmVnaW9uKTwvc3Bhbj48L3NwYW4+PC9kaXY+PGJyPjwvZGl2Pg0KPGRpdiBzdHlsZT0iZm9u dC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IiBjbGFzcz0icHJv dG9ubWFpbF9zaWduYXR1cmVfYmxvY2sgcHJvdG9ubWFpbF9zaWduYXR1cmVfYmxvY2stZW1wdHki Pg0KICAgIDxkaXYgY2xhc3M9InByb3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrLXVzZXIgcHJvdG9u bWFpbF9zaWduYXR1cmVfYmxvY2stZW1wdHkiPg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAg ICAgICAgICAgPGRpdiBjbGFzcz0icHJvdG9ubWFpbF9zaWduYXR1cmVfYmxvY2stcHJvdG9uIHBy b3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrLWVtcHR5Ij4NCg0KICAgICAgICAgICAgPC9kaXY+DQo8 L2Rpdj4NCg0KICAgICAgICA8L2Jsb2NrcXVvdGU+PGJyPg0KICAgIDwvZGl2Pg== --b1_mITuvyJsiOhpmDnbWFQzhlum1fa0ly6SkEuJp6jV7I--
bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.Received: (at submit) by debbugs.gnu.org; 11 Feb 2023 20:46:06 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 11 15:46:06 2023 Received: from localhost ([127.0.0.1]:43315 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pQwl4-0002rE-Dw for submit <at> debbugs.gnu.org; Sat, 11 Feb 2023 15:46:06 -0500 Received: from lists.gnu.org ([209.51.188.17]:33064) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <hank.greenburg@HIDDEN>) id 1pQuQq-0006pE-AJ for submit <at> debbugs.gnu.org; Sat, 11 Feb 2023 13:17:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <hank.greenburg@HIDDEN>) id 1pQuQq-0008JK-0g for bug-gnu-emacs@HIDDEN; Sat, 11 Feb 2023 13:17:04 -0500 Received: from mail-40131.protonmail.ch ([185.70.40.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <hank.greenburg@HIDDEN>) id 1pQuQk-0003Ag-6k for bug-gnu-emacs@HIDDEN; Sat, 11 Feb 2023 13:17:03 -0500 Date: Sat, 11 Feb 2023 18:16:41 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1676139412; x=1676398612; bh=5SLGnbMNZUpuro5HS3KleolWugWGsPdZqgae9SaewFY=; h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=Pqtaundxk8/fIlP33CJ44H30O7To/3AInYqMXIDCxWBEY+N2FDWia19uNCVGOnnnQ /FY9W1sw21nkHVpQP9bMJR1uzxnIDvds0nTeeEf4vCvaQVhBFTQtWX+ZctbjUlLVNl Codx+qz+UAGM5vwGZnsw7VMY/V6Son7vYHik/3Ka1xm56rBHqDP/31aRn0iF1XMcG5 EIkAfWkMw1OWJ1XfdQlvIs6OCpqAr3y/NQlMX+37l4dYRfZQefGPyRxE8dea736vqB xwS4lsQLP2h7amKN5gb4fzOeLkpI/w6nGxGczhtNXQaJjHPAnmob1Uftb0Wg8Oevnh ofXt8lZO3xj5Q== To: "bug-gnu-emacs@HIDDEN" <bug-gnu-emacs@HIDDEN> From: Hank Greenburg <hank.greenburg@HIDDEN> Subject: Emacs Freezing With Java Files Message-ID: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com> Feedback-ID: 10943770:user:proton MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys" Received-SPF: pass client-ip=185.70.40.131; envelope-from=hank.greenburg@HIDDEN; helo=mail-40131.protonmail.ch X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FILL_THIS_FORM=0.001, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Sat, 11 Feb 2023 15:46:05 -0500 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> This is a multi-part message in MIME format. --b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys Content-Type: multipart/alternative; boundary="b2_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys" --b2_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SSBoYXZlIGEgZmV3IEphdmEgZmlsZXMgdGhhdCBhcmUgYWJvdXQgNTAwIGxpbmVzIG9mIGNvZGUg YW5kIEkgY2FuJ3QgbW92ZSBhcm91bmQgaW4gdGhlbSBtdWNoIGJlZm9yZSBFbWFjcyBmcmVlemVz LiBJIGZpcnN0IHRob3VnaHQgaXQgd2FzIGphdmEtbHNwIGJ1dCBpdCBzdGlsbCBoYXBwZW5lZCBh ZnRlciBkaXNhYmxpbmcgYW5kIHVuaW5zdGFsbGluZyBpdC4gSSBhbHNvIHVuaW5zdGFsbGVkIGxz cC1tb2RlIGFzIHdlbGwsIGJ1dCB0aGF0IGRpZG4ndCBjaGFuZ2UgYW55dGhpbmcuCgpJIHN0YXJ0 ZWQgZG9pbmcgQ1BVIHByb2ZpbGVzIG9mIGl0IGFuZCBmb3VuZCB0aGF0IHdoaWNoLWZ1bmN0aW9u LW1vZGUgd2FzIHRha2luZyB1cCA2NyUgb2YgbXkgQ1BVIHVzYWdlLiBXaGlsZSB0aGlzIGlzIGhh cHBlbmluZyBhbGwgSSB3YXMgZG9pbmcgd2FzIGhvbGRpbmcgdGhlIGRvd24gYXJyb3cgdW50aWwg aXQgZnJvemUgYWJvdXQgMzUwIGxpbmVzIGluLiBEaWRuJ3QgcHJlc3MgYW55IG90aGVyIGJ1dHRv bnMuCgpTbyBJIGRpc2FibGVkIHdoaWNoLWZ1bmN0aW9uLW1vZGUgYW5kIG1vdmVkIGFyb3VuZCB0 aGUgYnVmZmVyIGp1c3QgZmluZSEgVGhvdWdoIHdoZW4gdHJ5aW5nIHRvIGVkaXQgdGhlIGZpbGUg KGp1c3QgaGl0IGVudGVyKSwgaXQgZnJvemUgYWdhaW4uIFRoaXMgdGltZSBpdCBzZWVtcyBsaWtl IGVsZWN0cmljLWluZGVudC1tb2RlIHdhcyB0YWtpbmcgdXAgY2xvc2UgdG8gNTAlIG9mIG15IENQ VSB1c2FnZS4KCkkgZGlzYWJsZWQgdGhhdCBhbmQgdHJpZWQgYWdhaW4gYW5kIHRoZW4gaXQgZnJv emUgYWdhaW4gd2l0aCBjLWluZGVudC1saW5lLW9yLXJlZ2lvbiBlYXRpbmcgdXAgNjMlIG9mIG15 IENQVSB3aGVuIEkgdXNlIFRBQi4KCldoaWxlIHVzaW5nIGRlYnVnLW9uLXF1aXQgSSBnZXQgdGhl IGJlbG93IG91dHB1dC4gQW55IGlkZWEgd2hhdCdzIGhhcHBlbmluZyBoZXJlIGFuZCBob3cgaXQg Y2FuIGJlIGFkZHJlc3NlZD8gSSBkbyBrbm93IHRob3VnaCB0aGF0IGlmIEkgbGF1bmNoIGVtYWNz IHdpdGggdGhlIC1RIGFyZ3VtZW50LCB0aGVuIHRoZXJlIGFyZW4ndCBhbnkgcHJvYmxlbXMgYXQg YWxsLiBJIHRyaWVkIGxhcmdlIGZpbGVzIG9mIG90aGVyIHR5cGVzIGFuZCBpdCBvbmx5IHNlZW1z IHRvIGhhcHBlbiB3aXRoIEphdmEgZmlsZXMuIEkgYXR0YWNoZWQgc2NyZWVuc2hvdHMgb2YgdGhl IENQVSBwcm9maWxlciBvdXRwdXRzIGZvciBlYWNoIG9mIHRoZSB0aHJlZSBzY2VuYXJpb3MuIEF0 dGFjaGVkIGlzIGFsc28gdGhlIEphdmEgZmlsZSBhcyB3ZWxsIGFzIG15IGluaXQgZmlsZS4KCkkg YW0gdXNpbmcgZW1hY3MgdmVyc2lvbiAyOC4yIG9uIEVuZGVhdm9yT1MsIGJ1dCByZXByb2R1Y2Vk IHRoZSByZXN1bHRzIHVzaW5nIGJvdGggZW1hY3MgMjkgYW5kIHRoZSBtYXN0ZXIgYnJhbmNoLgoK RGVidWdnZXIgZW50ZXJlZC0tTGlzcCBlcnJvcjogKHF1aXQpCmJlZ2lubmluZy1vZi1kZWZ1bigp CmMtZ2V0LWZhbGxiYWNrLXNjYW4tcG9zKDE3Nzk0KQpjLXBhcnNlLXN0YXRlLWdldC1zdHJhdGVn eSgxNzc5NCAxKQpjLXBhcnNlLXN0YXRlLTEoKQpjLXBhcnNlLXN0YXRlKCkKYy1ndWVzcy1iYXNp Yy1zeW50YXgoKQpjLWluZGVudC1saW5lKCkKI2YoY29tcGlsZWQtZnVuY3Rpb24gKCkgKGludGVy YWN0aXZlIG5pbCkgIzxieXRlY29kZSAweDE4MDI0OGRjY2ExY2M1N2U+KSgpCmMtaW5kZW50LWNv bW1hbmQobmlsKQpjLWluZGVudC1saW5lLW9yLXJlZ2lvbihuaWwgbmlsKQpmdW5jYWxsLWludGVy YWN0aXZlbHkoYy1pbmRlbnQtbGluZS1vci1yZWdpb24gbmlsIG5pbCkKY2FsbC1pbnRlcmFjdGl2 ZWx5KGMtaW5kZW50LWxpbmUtb3ItcmVnaW9uIG5pbCBuaWwpIGNvbW1hbmQtZXhlY3V0ZShjLWlu ZGVudC1saW5lLW9yLXJlZ2lvbik= --b2_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0 cHg7Ij48c3Bhbj5JDQogaGF2ZSBhIGZldyBKYXZhIGZpbGVzIHRoYXQgYXJlIGFib3V0IDUwMCBs aW5lcyBvZiBjb2RlIGFuZCBJIGNhbid0IG1vdmUNCiBhcm91bmQgaW4gdGhlbSBtdWNoIGJlZm9y ZSBFbWFjcyBmcmVlemVzLiBJIGZpcnN0IHRob3VnaHQgaXQgd2FzDQpqYXZhLWxzcCBidXQgaXQg c3RpbGwgaGFwcGVuZWQgYWZ0ZXIgZGlzYWJsaW5nIGFuZCB1bmluc3RhbGxpbmcgaXQuIEkNCmFs c28gdW5pbnN0YWxsZWQgbHNwLW1vZGUgYXMgd2VsbCwgYnV0IHRoYXQgZGlkbid0IGNoYW5nZSBh bnl0aGluZy4gPC9zcGFuPjxkaXY+PGJyPjwvZGl2PjxkaXY+SQ0KIHN0YXJ0ZWQgZG9pbmcgQ1BV IHByb2ZpbGVzIG9mIGl0IGFuZCBmb3VuZCB0aGF0IHdoaWNoLWZ1bmN0aW9uLW1vZGUgd2FzDQog dGFraW5nIHVwIDY3JSBvZiBteSBDUFUgdXNhZ2UuIFdoaWxlIHRoaXMgaXMgaGFwcGVuaW5nIGFs bCBJIHdhcyBkb2luZw0Kd2FzIGhvbGRpbmcgdGhlIGRvd24gYXJyb3cgdW50aWwgaXQgZnJvemUg YWJvdXQgMzUwIGxpbmVzIGluLiBEaWRuJ3QNCnByZXNzIGFueSBvdGhlciBidXR0b25zLiA8YnI+ PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5Tbw0KIEkgZGlzYWJsZWQgd2hpY2gtZnVuY3Rpb24t bW9kZSBhbmQgbW92ZWQgYXJvdW5kIHRoZSBidWZmZXIganVzdCBmaW5lIQ0KVGhvdWdoIHdoZW4g dHJ5aW5nIHRvIGVkaXQgdGhlIGZpbGUgKGp1c3QgaGl0IGVudGVyKSwgaXQgZnJvemUgYWdhaW4u DQpUaGlzIHRpbWUgaXQgc2VlbXMgbGlrZSBlbGVjdHJpYy1pbmRlbnQtbW9kZSB3YXMgdGFraW5n IHVwIGNsb3NlIHRvIDUwJQ0Kb2YgbXkgQ1BVIHVzYWdlLiA8YnI+PC9kaXY+PGRpdj48YnI+PC9k aXY+PGRpdj5JIGRpc2FibGVkIHRoYXQgYW5kIHRyaWVkIGFnYWluIGFuZCB0aGVuIGl0IGZyb3pl IGFnYWluIHdpdGggYy1pbmRlbnQtbGluZS1vci1yZWdpb24gZWF0aW5nIHVwIDYzJSBvZiBteSBD UFUgd2hlbiBJIHVzZSBUQUIuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5XaGlsZQ0KIHVzaW5n IGRlYnVnLW9uLXF1aXQgSSBnZXQgdGhlIGJlbG93IG91dHB1dC4gQW55IGlkZWEgd2hhdCdzIGhh cHBlbmluZw0KaGVyZSBhbmQgaG93IGl0IGNhbiBiZSBhZGRyZXNzZWQ/IEkgZG8ga25vdyB0aG91 Z2ggdGhhdCBpZiBJIGxhdW5jaCBlbWFjcw0Kd2l0aCB0aGUgLVEgYXJndW1lbnQsIHRoZW4gdGhl cmUgYXJlbid0IGFueSBwcm9ibGVtcyBhdCBhbGwuIEkgdHJpZWQgbGFyZ2UgZmlsZXMgb2Ygb3Ro ZXIgdHlwZXMgYW5kDQogaXQgb25seSBzZWVtcyB0byBoYXBwZW4gd2l0aCBKYXZhIGZpbGVzLiBJ IGF0dGFjaGVkIHNjcmVlbnNob3RzIG9mIHRoZQ0KQ1BVIHByb2ZpbGVyIG91dHB1dHMgZm9yIGVh Y2ggb2YgdGhlIHRocmVlIHNjZW5hcmlvcy4gQXR0YWNoZWQgaXMgYWxzbyB0aGUgSmF2YSBmaWxl IGFzIHdlbGwgYXMgbXkgaW5pdCBmaWxlLiA8YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5J IGFtIHVzaW5nIGVtYWNzIHZlcnNpb24gMjguMiBvbiBFbmRlYXZvck9TLCBidXQgcmVwcm9kdWNl ZCB0aGUgcmVzdWx0cyB1c2luZyBib3RoIGVtYWNzIDI5IGFuZCB0aGUgbWFzdGVyIGJyYW5jaC4g PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PHNwYW4+RGVidWdnZXIgZW50ZXJlZC0tTGlz cCBlcnJvcjogKHF1aXQpPC9zcGFuPjxkaXY+PHNwYW4+Jm5ic3A7IGJlZ2lubmluZy1vZi1kZWZ1 bigpPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+Jm5ic3A7IGMtZ2V0LWZhbGxiYWNrLXNjYW4tcG9z KDE3Nzk0KTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPiZuYnNwOyBjLXBhcnNlLXN0YXRlLWdldC1z dHJhdGVneSgxNzc5NCAxKTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPiZuYnNwOyBjLXBhcnNlLXN0 YXRlLTEoKTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPiZuYnNwOyBjLXBhcnNlLXN0YXRlKCk8L3Nw YW4+PC9kaXY+PGRpdj48c3Bhbj4mbmJzcDsgYy1ndWVzcy1iYXNpYy1zeW50YXgoKTwvc3Bhbj48 L2Rpdj48ZGl2PjxzcGFuPiZuYnNwOyBjLWluZGVudC1saW5lKCk8L3NwYW4+PC9kaXY+PGRpdj48 c3Bhbj4mbmJzcDsgI2YoY29tcGlsZWQtZnVuY3Rpb24gKCkgKGludGVyYWN0aXZlIG5pbCkgIyZs dDtieXRlY29kZSAweDE4MDI0OGRjY2ExY2M1N2UmZ3Q7KSgpPC9zcGFuPjwvZGl2PjxkaXY+PHNw YW4+Jm5ic3A7IGMtaW5kZW50LWNvbW1hbmQobmlsKTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPiZu YnNwOyBjLWluZGVudC1saW5lLW9yLXJlZ2lvbihuaWwgbmlsKTwvc3Bhbj48L2Rpdj48ZGl2Pjxz cGFuPiZuYnNwOyBmdW5jYWxsLWludGVyYWN0aXZlbHkoYy1pbmRlbnQtbGluZS1vci1yZWdpb24g bmlsIG5pbCk8L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj4mbmJzcDsgY2FsbC1pbnRlcmFjdGl2ZWx5 KGMtaW5kZW50LWxpbmUtb3ItcmVnaW9uIG5pbCBuaWwpPC9zcGFuPjwvZGl2PjxzcGFuPjxzcGFu PiZuYnNwOyBjb21tYW5kLWV4ZWN1dGUoYy1pbmRlbnQtbGluZS1vci1yZWdpb24pPC9zcGFuPjwv c3Bhbj48L2Rpdj48YnI+PC9kaXY+DQo8ZGl2IGNsYXNzPSJwcm90b25tYWlsX3NpZ25hdHVyZV9i bG9jayBwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9jay1lbXB0eSIgc3R5bGU9ImZvbnQtZmFtaWx5 OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+DQogICAgPGRpdiBjbGFzcz0i cHJvdG9ubWFpbF9zaWduYXR1cmVfYmxvY2stdXNlciBwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9j ay1lbXB0eSI+DQogICAgICAgIA0KICAgICAgICAgICAgPC9kaXY+DQogICAgDQogICAgICAgICAg ICA8ZGl2IGNsYXNzPSJwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9jay1wcm90b24gcHJvdG9ubWFp bF9zaWduYXR1cmVfYmxvY2stZW1wdHkiPg0KICAgICAgICANCiAgICAgICAgICAgIDwvZGl2Pg0K PC9kaXY+DQo= --b2_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys-- --b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys Content-Type: image/png; name=emacs-freezing-cpu-profile-indent-mode-off.png Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=emacs-freezing-cpu-profile-indent-mode-off.png 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 --b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys Content-Type: image/png; name=emacs-freezing-cpu-profile.png Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=emacs-freezing-cpu-profile.png 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 VkiXXHH16o2Kylp/tteK5fOxdWPWLe7rU16+nEcmk4Kns9944/Vvv03Q0j53bliHqDPjct7QkOaV V4LQJ2E5HNaHH8SmXso6djyZSqV4ek5bt3bRizyygfzlIcjkvSNfBYFAnsDwtx1DIH8NXtxhNQQC gUBeCqAjgUAgEIhBQEcCgUAgEIOAeyQQCAQCMQg4I4FAIBCIQUBHAoFAIBCDgI4EAoFAIAYBHQkE AoFADAI6EggEAoEYBHQkEAgEAjEI3fFISkqqfj1/ubW1nUwm+/l5rI9damr6+CXVhYUlqZeyhEIx lWrsz/Zat24Rg2GiJeFcMi8z8/r+fZ9ZWDC1iu7da0pIOCOWSI/8+L9IYDg99RqOTqu++jpuuBh5 CkXvoUOnamrrmUzTzZtW+Pp6aDSaj7d9Y29vM9r4wS8L+rz2o7aucf/+Y56eU7dv2zS+kvEZHBw6 mXghP7+YSDSaOYMTG7vkRX7j2ahoaGj+8l8H9Y/MCADY+eleZ2fH995dO+7G4PyHQiA60eFIGhpb Dnx/Ytq0yZs3r5J3KdLSs+PiE7/4/AOktKSk6oeE036+HgsXzJLK5Fwuv0Mk+XLXh9i34CkUPVlZ N6KjIrW8iEajuXw5L/nXDCJRR2wMfL2GM5xVq1ZG9/Q+DnFaU1OfmXkdiVaSl3eruqZ+w4alOTmF v5zl+vp6NDW1SaXyFcvnj5dVLyO9PX1KpUoiedaxXfN+v5mbe3PpkrkaDUi9lOXi4hgeHvSMbfhr g/8fCoEMhw5Hcu3abQqFvOOTt5C41iYmtP+eON/W1oEE/b6anW9jM3H79k3IYJDJZBw/ntzY1Oo8 xQGVwOXl0mjUBQsitSSfOHkhN/dmdHSkGZNx5ue0Uek1nOGs8vKahk2WllYxmQxnZ0cAgELRQ6dT Z88KbWsTIWGFBIIKEokYEOAzLia9pPj7e8Ud3GViole8snGkpqbBxmbismWvAQCaW4S9vQ+fsQF/ efD/QyGQ4dDhSGaEcjj+LKQ3BwA4OtoCAGSybqRDDw72M6HT0CUFN1dnAEBHuwR1JHK54urV/PXr l6ASUGbNCgme7sdiuWZl3RitXgPBsQrL0NBQcfHdwACf4V4zXlRc6ePjTqdrh+P9u2Furr1i+QwY GFCj3uvjf7z57A34y4P/HwqBDIcOR6IVQ7e5pR0AYGNrhSTDwwKxpX19DwEA2N6Zy+Xb2VkFBfqo 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 --b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys Content-Type: image/png; name=emacs-freezing-cpu-profile-no-function-mode.png Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=emacs-freezing-cpu-profile-no-function-mode.png iVBORw0KGgoAAAANSUhEUgAAAogAAAMiCAIAAABi26XRAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg AElEQVR4nOzdd1xTV/848APZwRi2TCFsCBCmgEVRH7WuugcKaF20tWqVqq2/Pu3Tfp8+j6vP4972 wVWrVMXBsCLLwZQVoASQJZBAEggQiAkrvz+uXlPEy8UERXreL//IvTfn3M85QT455x7u1ZK0dgAI giAIgoYH7XcdAARBEARBL8HEDEEQBEHDCHGwBXbvOSkSNe/d8xWB8DypHz16MSMzX/U9o0bRjx/7 P3QzIyP/xs0EgUBEpVI8PVxCQuYyGDp9qr0SFXv37sN9e7/W12cOvhX9GDCq9PS8W7cT+XwhEtWK FR+NHj0KACCVdhw5cqG0rJLJHL12zWJ3dyelUrll64/m5iY7tq/XSGwjWFVV7Xf/OLh92zp3d6d3 HYtadny1h8Wy/OzTFe86EAiC/nIGl5jLyqqKi8vD1y9DszJCX183JGQuukkivqw2P7/k6LGLHHen ObMnN0taY2KSG4Xi777dqKWlhb5HKm1PSHg0a+YkTWXlAaPKySk6dvwXDw/nObMnSyRtt2MS+fzG 77/frK2tnZqaxSutXLVqQVJSxq+XY9zdnWpq+M3NrYsXzdBgbBAEQRDUr8El5uvRd42NDcaP9+6z n06jjvN177fIvcQ0ExPDiIg12traAAAmk3HmTFR1TT3L2gJ9T0xsCo1GnT170uBiHwhGVHHxqZaW plu3rEaiMjLSP3L0QklJBZttL5W20+nUKZMD+HxhRkY+ACAnp4hIJHh7u2k2PAiCIAh61SCuMSPD 5fnzpvYZLmPz8+MsD/4IyX8AAAd7FgCgsUGMvqG1VXrvXtrixTOoVAr+atUkEAidnGzQqFxc7JCd /b45N6/Yzc2RTqe+tfAgCIKgv6xBjJhfN1xGyeUKIpFIJBJUd04I9FHdlMmeAQBUc3BMTLKZmZGv j1t3d0+fshrRb1Q9PT2qM9utrVIAQHdPz6vFxWLJ06f8ObMnazywfj18+DgmNlkgENFoFC9P9ooV c0eNoqNHX3ddvLVVunHTD65s+/InNRYWJosXzTh69KKu7uidOz8dPXoU9lEAgFKpjIlNTk7OaGpq oVLJrmyH0ND5enqjkZN+/8MhBkNnypSACxduNDe3ODrYhIcHGxjoIkeVSmX0jYR79x7J5QovL/aU yQGDaq9qi9zcHJYv/8hA/3nNP/10pvxJzX/+s3OUDh0AcP3679E3Er7/x2Zb27EDlsXuSaRFX0as RTb7XBc/dPh8djYXACAQiNLScgEA2tra587uxRMzBEGQ+vCOfbGHy82S1m3bd68P/2bd+p0HDp6V Sl/7t9EPHmRTKGQHBxayKZPJU1Iz+XzhJ59+u279zsOHz7d3yN6gGf3CGdXjnKL/++cRdJNEJnV2 dgkEIpGomUwi8XgVRkb6np4umooKQ05O0clTl01MjD79ZPnMmUGPc4r2H4hUKpXo0WPHfzEy1P/0 k+Xz5v4tL/+Pn34609vb+zJyEiksbH5FxdPYuJS1a5fU8xsfPnyM52hMTHJUVByH4/zpJ8vnz5tW Wla176fT6HkBAM3NrQkJjxYumL5g/vTyJ9XHjl1EDyUnZ0RH37WztVq3dqmVlfm1678Pqr3Hjv9i aWkaHr5swYJppaVVu3ad6OrqRo6GhMxTKDpv3EgAAEgkbbFxKYGBPmhWxi6L3ZPYZs0M2rRppZ7e aEdH1qZNKzdtWrnx81CcMUMQBKkP74gZHS4nJaVHnr128sQ/6XQaelQme2ZvZxUaMk8iab18JebI 0Qs7v/701Uri76QmJqWHhc1Hp4XT0nPlcoWnp8vfpgSIxZLLV2KPHftFU4ufB4yqp6f3t9/i4u/c nzUrKCYmGdkZ4O+RkPBox1d7AADBy2YHBvr4+LgRiXg7SiZ71tPT22cnjUbFMxkQfyfV0tL0i82r kJVxBvq6J09drqnhW1ubAwDi4lPHjjXbunU1ctTISP/Q4fPIdXGkuKcXO2jiuJ9//s3RkeXj48Zk MoSiZrRyjKMicfP0aYFhYfORTUNDvUOHz1dX17FYlsgesVjy7d8/R+c5rl67IxQ2GRsbAABS72ep RgUAKCurwtkbcfGpTk62Gz4LQfZbjTX/967jhYWlXl5sAICpqdH0aYF3Ex5OnxZ463aitrb20iWz 0Eqwy2L3JDY7OysAwNWr8QYGeq+uUcA+LwRBkPpw5ZvXLcZG0WjUzZtXkckkAIBSqYw8e622VmBp aYq+QS5XnPk5KiuLG7xs9vRpgej+goISPT3m5k0rkcynBODcuet1dQ0WFiZqNQtHVC2t0t27T9Tz G7dvW2dnZ4UmZnNzk/3//aauvkGXydDVZezec7K4uJxEIi5ZMnPmjKABT7p33+mKiqd9duL88yE+ X+jv74FmOA7HaXnwHDQdCgR/Ours/Py6OJqYkQNaWlpaQAt5oex9OUbEOLpm9WLkRWdnp0LRhXzl am9/OXXBYlmgYTg72wIAxGIJkphFIom/PweNyvHFXAie3hAIhL4+7uhMBjI9Lm6SoO+cP3/ao7Sc Eyd/ffKkZsmSmejs+oBlsXtSHQPGDEEQpCZciTk6+q6+PtPd3Ukq7ZDLFQCA9nYZmUxGxj2hofOC u+cg+Q8A4O7uCACorq5DU6BMJt+1+3hDg3jr1tWeHn+aE376VMBm26PjUQ+O0zkAKitr1U/MA0aV lpZrZ2f14z8j9PWZSKNQdDq1QSCKjU329/MoLi5fv24Zt5AXFRU3fdqEARe+fbxq0bNn8j47Lcea 9vvmPvpc+WYwRs2aNel1R5HO7/e6+GD19vbGxCYnJqY1N7eiO1UnfkkkYp/X3d3dL6LqVo1K9Z1g oN7o6elJSk5PSk7vEwz6mk6nLl0y68zPUcbGBjNnTFR9G3ZZ7J5Ux4AxQxAEqQlXYq6sqpXJ5Bs3 /YDu+XLbLnTcw2QyVN9Mp9MBAM+evUx1J0/9yueLdn79CTJJqKpT0Yks7VEt2ydNvpkBo+JwnLd8 8fHrZpjv/H7fwsIESSo+Pq4KRWdmZkFXVxeBMMCoC89k6XBzPfrurVuJU6eOd2U70GhUQYMwMvKa RmoesDf8/Dh/mzJedc+YMYaqm8hVDyqVgi6hx192iLyr80IQ9BeBKzF/GbEWvVKYm1d85879iIg1 Ni+W4eTl/UEkEtzcHJHN9vYO8OL3KQCgrKwqN7c4LHT+q1kZADCKoaO6Jgspq7oO+Y1hR0UgEIyN 9dGs3N3dAwAgEp5v1tc31tYK5s2d2qG5lWh4EAiEru6Xy4ik0vaU1CxfHzcTE6NXj/aJWR2PHuWM D/BaGbYA2ewz6h0oZqJqVINaBkUgEOg0GjI3DgBQKpUKRafq2Ts7O3+5dMvM1PjpU35SUvrUqR/g LIvdk0QiQTXOfmPW0tIGL+YMeKWVLZI2f38PPDFDEASpCdeqbAcHlrOzLfLP1MQIAODowEJHusgK 2M7OLnQTAGBnZ41sZmVzKRTypEl+/dbs6MgqLCpVKDqRzcePCwEANjZj37g9KOyoTE2NS0ur0Nla Hq8C2YlspqfnEYkEDudt31TSzMyYx6tEo8rPL4mKipPLO/uNuaTkiWrM6ujq6u5RmRIv4VXgL2tk pKcaVanKyq8BmZkZcwt5aF4sL69eH/5NQQEPfcOtW0nNza0bN4aNG8f57eodqbQdZ1nsnjQ00K+q qkMnZkpK+mkvg0EXiZ9fOb55IyEmNhlnzBAEQWrSwDf96dMDH6Xl7N13KmjiOHFTy+3biX5+HBOT 55N79XUNTCYjv6BEtYijAwuZap41MygtLXfP3lNTJvuLRM23Y5L8/TzQskMX1ayZQQcOnt2/PzIg wFMiab15K5FlbYEMg5RKZXpGHtvFnkql0HVoAIDExPTSsioymYxesR4iM2cEHTh49uChc37jOEJR U0xMsoO9tZWV2YAxq8nZ2TYzs8B4jIGlhWl1dd2gEnPQxHGRZ6/t3x/p7+8hFDUNKkXNmjlp/4HI vftOB030lcnksXHJRob6rq4OyNHGRnFsXPKUyf6WlqbLg2fv+Kr4SlTcurVL8ZTF7snAQO9HaTk/ /efMpCC/pqaWvPw/Xo3Nx9vtl0u3oqPvamtrF//xZOHC6XjOC0EQpD7C1zu/GVSBqqq6/PySj+ZM IZGeZykmk+Fgzyoo4CWnZD6t4Y8P8Fr98ULCiynWxKT02lpBVlaB6j822x65LMdgjHJ0ZHELS5OT M54+5U+Y4LNq5QKCJqZnsaMyMzM2NTHKy/8jOSWzouKpp4fLJ58sR1btVlbWxsalzJ41icWyMDEx 5POFKSkZUmnH8uUf2bz486EhYmZmbGykn5tXnJycUVNT7+PtGh4eTKGQB4xZoeiMi0/18mRbW1vc uJHg7Gzr5GQTf+e+qYmRp6cL9lEAgKMDq66uIT09j1vIG2NsOGvWpAcPsj8Y74V8RimpmRQKeXyA FxJGS0tbckometTa2gJoaT3OKczK5tJptNmzJz98lIMexWZqamxuNoZbyEtNzSovr7K3Z23YEILc 8wQAcPLUrxJJ25YtH1MoZDqdpujsTEh4xOE46ekxByyL3ZPGxgY6OrScnKLsbK6ODm32rH5iZrEs 2ztkiUnpvNKqwEDvpUtmIRe5sc8LQRCkPi1J62tvBgJBEARB0FsGn8cMQRAEQcMITMwQBEEQNIzA xAxBEARBwwhMzBAEQRA0jMDEDEEQBEHDCEzMEARBEDSMwMQMQRAEQcMITMwQBEEQNIzAxAxBEARB wwhMzBAEQRA0jAz6IRa795wUiZr37vmKQHie1I8evZiRma/6nlGj6MeP/R+6mZGRf+NmgkAgolIp nh4uISFzGQwdPDWrY8Co0tPzbt1O5POFSFQrVnyE3PFYKu04cuRCaVklkzl67ZrF7u5OSqVyy9Yf zc1Ndmxfr35g70ROTtGBg2eR1xMCfcLDg/EfxaOsvHrfvtPOzrYRW9cMtuyOr/awWJaffbpisAWH FHZU6rT3ddT/FCAIGhkGl5jLyqqKi8vD1y/rkzv19XVDQuaimyTiy2rz80uOHrvIcXeaM3tys6Q1 Jia5USj+7tuNWlpaeGpWB0ZUOTlFx47/4uHhPGf2ZImk7XZMIp/f+P33m7W1tVNTs3illatWLUhK yvj1coy7u1NNDb+5uXXxohmaCuzts7EZu2nTSgDA+fPRgz2KR0e7TC5XiF88J3HEG4r2qv8pQBA0 MgwuMV+PvmtsbDB+vHef/XQadZyve79F7iWmmZgYRkSsQR7Ow2QyzpyJqq6pZ1lb4KlZHRhRxcWn Wlqabt2yGonKyEj/yNELJSUVbLa9VNpOp1OnTA7g84UZGfkAgJycIiKR4O3tpsHY3jI9vdFIV1y5 EjvYo3h4erocOvitzotHdI94Q9Fe9T8FCIJGhkEMT5FB7fx5Uwc1qPXz4ywP/gjJfwAAB3sWAKCx Qax+zeoQCIROTjZoVC4udsjOft+cm1fs5uZIp1PfTmzvKT095lA/r3pY+au1F4Kgt2YQI+YBB7Vy uYJIJBKJf3qa8oRAH9VNmewZAAB5ijD+mtXRb1Q9PT2qM9utrVIAQHdPz6vFxWLJ06f8ObMnD0Vs g/Xw4eOY2GSBQESjUbw82StWzB016vmgTalUxsQmJydnNDW1UKlkV7ZDaOh8Pb3RQx0S9pXR7384 xGDoTJkScOHCjebmFkcHm/DwYAMDXeToocPns7O5AACBQJSWlgsA0NbWPnd2L1pcdR2Am5vD8uUf GejrokePn7hUVVW74bPQ4ycuiURNvj5u4eHByCO3B+wNjJ7EjgqjvQpF52cbvpvx4cSlS2che+Ry xaeffffRnCmLFn2Ip0UYvtjyo4O99eefhyKbfIHwq6/2rlu3NGjiODzFIQh6j+BNzNjXgJslrdu2 725sFBMI2h4eLmvXLOl3eRcA4MGDbAqF7ODAwlmzOnBG9Tin6NSpy+gmiUzq7OwSCEQiUTOZROLx KoyM9D09XTQb2xvIySk6eeqyt7frvLlThaKm2NiURmHT37/ZgFytj4lJjvotburUDxzsrVta2mLj Uvb9dPpfP0b0uZavcQNeGW1ubk1IeLRwwfSmppabt+4dO3bx2283IodmzQzy9/e4ePGGsbHB9OkT AACqsSLrAAICPOfMmSyVdsTGpuzadWLXv7eRSC9/aHt7lRd/uTF92gd8gfDu3Ydubo6BgT5goN7A 7knsqDDaS6GQXdkO+QUlaGIuKirr6enx9nbF36LX8fRwzsws6O3tRaZ5uFweAMCD4zxgQQiC3jt4 EzM6qE1KSo88e+3kiX/S6TT0qEz2zN7OKjRknkTSevlKzJGjF3Z+/emrlcTfSU1MSg8Lm686LYxd szoGjKqnp/e33+Li79yfNSsoJiYZ2Rng75GQ8GjHV3sAAMHLZgcG+vj4uBGJg16+/rqQenp6++yk 0ah9BvT9ir+Tamlp+sXmVUj+MNDXPXnqck0N39raHAAgEjdPnxYYFjYfebOhod6hw+erq+tYLMsh jXnAK6NiseTbv3+OzpFcvXZHKGwyNjYAANjZWQEArl6NNzDQe3U1QFx8qpOT7YbPQpBNq7Hm/951 vLCw1MuLjb5HKGxa/fEiNtteqVRyubym5hZkP3ZvYPckdlTY7fX0dPlf5FWJpA0ZnXMLS/X0RltZ meFv0etwPJwTk9IrKp7a21sDAAoLy1jWFkwmY8CCEAS9d3DlmwEHtTQadfPmVcglN6VSGXn2Wm2t wNLSFH2DXK4483NUVhY3eNns6dMC8desDuyoWlqlu3efqOc3bt+2zs7OCk3M5uYm+//7TV19gy6T oavL2L3nZHFxOYlEXLJk5swZQWqGtHff6YqKp312bt+2zt3dacCyfL7Q398DHQFzOE7Lg+egCW/N 6sXIi87OToWiC/ly094uUzNgNWMGALBYFmiQzs62AACxWIIkZmwCgdDXx10q7UA2kQlwcdOfFkJT KGRkfYCWlta+vV+j+7F7A7sn1eHlxY48e43L5QUFjQMAFBSUeHm5oifC06LXYbvYk0hELrfU3t66 q6ubx6uYPTwur0AQpHG4EnN09F19faa7u5NU2iGXKwAA7e0yMpmMjJlCQ+cFd89BF8K4uzsCAKqr 69AUKJPJd+0+3tAg3rp1taeHC/6a1TFgVGlpuXZ2Vj/+M0Jfn4mcGkWnUxsEotjYZH8/j+Li8vXr lnELeVFRcdOnTVDzC8THqxY9eybvs9NyrGm/b+6jz3VxBmPUrFmT0M3e3t6Y2OTExLTm5lZ0p1Kp VCdahDoxAwBU52mR193d3XgK9vT0JCWnJyWnq+7s7f3T2F1Xl9HvXD12b2D3pDqYTAaLZVHA5QUF jaura2hubvX0eDnbjKdFr0Mmk9hs+wIub9GiD3mllZ2dXao1QxA0kuBKzJVVtTKZfOOmH9A9X27b hY6Z+syn0el0AMCzZy9T3clTv/L5op1ff4JMEuKvWR0DRsXhOG/54uPXfQO48/t9CwsTJCH5+Lgq FJ2ZmQVdXV0EglrjKmSydChcj75761bi1KnjXdkONBpV0CCMjLymkZqHLuYB+flx/jZlvOqeMWMM VTdfdwV96HpjQF5e7Li4lJ6e3gIuj0qlsNn2qkcHbBEGD47zufPRUmk7l8tjMhnWf/6DQwiCRgxc ifnLiLXoVcbcvOI7d+5HRKyxsR2L7MnL+4NIJLi5OSKb7e0dAAD0KnJZWVVubnFY6PxXs/KANasD OyoCgWBsrI9m5e7uHgAAkfB8s76+sbZWMG/u1I4ODUwFawqBQOhSGWtKpe0pqVm+Pm4mJkYAgEeP csYHeK0MW4AcxbOeaJjQ0tIGL8ayvNLKFkmbv78HAIBAINBpNGT2GwCgVCoVik6c7cLuDeyexI5q QF6e7KtX75Q/qeYW8FzZ9qqrE9RpEQDAw8Pl7Lnr3MJSLreUw3Ea6mV9EAS9K7gmZh0cWM7Otsg/ UxMjAICjA2vUi7srIGtcOzu70E0AgJ2dNbKZlc2lUMiTJvm9Qc3qwI7K1NS4tLQKndvk8SqQnchm enoekUjgcNQdtWuWmZkxj1eJxpyfXxIVFSeXdyKbXV3dPSp/7lXCq3gHIb4RBoMuenELrZs3EmJi n1/sNzMz5hbyurqeZ9Dy8ur14d8UFPDw1IndG9g9iR3VgCwtTY0M9bOzuKVlVV4v1mOr3yIAgIGB rqWlaUpKFp/f2OeSEARBI4kGxlXTpwc+SsvZu+9U0MRx4qaW27cT/fw4JibPJ+jq6xqYTEZ+QYlq EUcH1lAvKMWOatbMoAMHz+7fHxkQ4CmRtN68lciytkCGMkqlMj0jj+1iT6VS6Do0AEBiYnppWRWZ TH63N5SYOSPowMGzBw+d8xvHEYqaYmKSHeyt0RW/zs62mZkFxmMMLC1Mq6vr+qSimpr6RmETAECh 6BSJJVnZXACAl6cLMp7DPopNnbIIH2+3Xy7dio6+q62tXfzHk4ULpyP7Z82ctP9A5N59p4Mm+spk 8ti4ZCNDfVdXBzx1YvcGdk9iR4WnvZ6eLknJ6b29vR5//m6H3SI8NXt4ON++nUQgEHD2AwRB7yMN JOaxY822b1t/+XLMmZ9/o9OoEwJ9Q0I+Qo/KFZ1CYdPhw+dVi2jkKrI6UXl7u274LOTW7cQTJ39F H2KB/IVoZWWtUNiE3FHEx9vV19c9+sZdKpUSGjoPvVPYO+Ht7fpJeHBMbPLxE5fodKqvj9uKFXPR +czQkHkymTw+PpVEIvqN81i+/KN//esYWjYlNevevUfI69ZWKTJDcOzoDwwGccCj2NQpi5g2LbBR 2BQXn9rbq5w40Re9l4uXF3vj52E3biacPhNFpZKdne1CVszF+d0IuzewexI7Kjzt9fZ2vZvw0NGR xWCMUq0Tu0V4avbwcLl9O8nZyUYja8ghCBqetCStHe86BgiCcGlqbtmy5ceQkLkzPpz4rmOBIGio wOcxQ9B7o5BbCgDw4MALzBA0ksHEDEHvjfyCEhMTI3SpBARBIxJMzBD0fuju7i4qKoPrsSFoxIPX mCEIgiBoGIEjZgiCIAgaRmBihiAIgqBhBCZmCIIgCBpGYGKGIAiCoGEEJmYIgiAIGkZgYoYgCIKg YWTQ98reveekSNS8d89XBMLzpH706MWMzHzV94waRT9+7P/QzYyM/Bs3EwQCEXJX6pCQuQyGDno0 P7/kt6vx9fUNJBKJw3FaGbZg9Og/3WH4zQwYVXp63q3biXy+EL1XNnJeqbTjyJELpWWVTObotWsW u7s7KZXKLVt/NDc32bF9vfqBDament6z566lpeURCNofjPcKC5v/bu/vnZNTdODgWeT1hECf8PBg /EfxKCuv3rfvtLOzbcTWNYMtu+OrPSyW5WefrhhswSGFHZU67X0d9T8FCII0a3CJuaysqri4PHz9 MjQrI/T1dUNC5qKbJJXn4eTnlxw9dpHj7jRn9uRmSWtMTHKjUPzdtxuRZwZUVdftPxBpZ2e1du3S 1hbprduJhw6f+/s3n6vXqIGjyskpOnb8Fw8P5zmzJ0skbbdjEvn8xu+/36ytrZ2amsUrrVy1akFS Usavl2Pc3Z1qavjNza2LF83QSFRDKvV+ZkpK5oL505RKcONmgo2N5YQJvu8wHhubsZs2rQQAnD8f PdijeHS0y+RyhfjF8xlHvKFor/qfAgRBmjW4xHw9+q6xscH48d599tNp1HG+7v0WuZeYZmJiGBGx Bhm6MZmMM2eiqmvqWdYWAIAHD7LJZNL2beuQp+Xo6ND+F3mVz280MxvzJq3BHVVcfKqlpenWLauR qIyM9I8cvVBSUsFm20ul7XQ6dcrkAD5fmJGRDwDIySkiEgne3m7qhzTUSkurTEwMFy78EABQWyfo 6Hj2buPR0xuNfARXrsQO9igenp4uhw5+q6OJB3i/F4aivep/ChAEadYgEvPrhsvY/Pw4OnQaOqHq YM8CADQ2iJHEPD7Ay8uTjT7DztLSFAAgkbRpJDFjEAiE/v4eaFQuLnbITjbb/tU35+YVu7k50unU IQ1JI7q6utHf2lu++PidxvKW6Okx33UIb9Vfrb0Q9Bc0iMT8uuEySi5XEIlEIpGgunNCoI/qpkz2 DACAZmI7OyvVo7V1DQAAE1Mj/FENqN+oenp6VGe2W1ulAIDunp5Xi4vFkqdP+ejjeIctmexZT09v d1d3b0+vVNoBANDS1hr1Ikl//8MhBkPny4i1yGZVVe13/ziIPhUbOTplSsCFCzeam1scHWzCw4MN DHTRyh8+fBwTmywQiGg0ipcne8WKuaNGPa9ZqVTGxCYnJ2c0NbVQqWRXtkNo6Hw9vdFD3V7sK6PY LTp0+Hx2NhcAIBCI0tJyAQDa2trnzu5Fi6uuP3Bzc1i+/CMD/Ze9cfzEpaqq2g2fhR4/cUkkavL1 cQsPDyYQCABHb2D0JHZUGO1VKDo/2/DdjA8nLl06C9kjlys+/ey7j+ZMWbToQzwtwvDFlh8d7K0/ /zwU2eQLhF99tXfduqVBE8fhKQ5B0BvAm5ixh8vNktZt23c3NooJBG0PD5e1a5aoLu9S9eBBNoVC dnBg9dkvkbSVlVVFRcVOCPTB+StjQDijepxTdOrUZXSTRCZ1dnYJBCKRqJlMIvF4FUZG+p6ew/3J AXv3na6oeIq83vD5P8Ari92wNTe3JiQ8WrhgelNTy81b944du/jttxuRQzk5RSdPXfb2dp03d6pQ 1BQbm9IobPr7NxuQVQIxMclRv8VNnfqBg711S0tbbFzKvp9O/+vHCOTo0BnwyihGi2bNDPL397h4 8YaxscH06RMAAKqxIusPAgI858yZLJV2xMam7Np1Yte/t5FIL/+z9PYqL/5yY/q0D/gC4d27D93c HAMDfcBAvYHdk9hRYbSXQiG7sh3yC0rQxFxUVNbT0+Pt7Yq/Ra/j6eGcmVnQ29uLTC9xuTwAgAfH ecCCEAS9MbyJGR0uJyWlR569dvLEP+l0GnpUJntmb2cVGjJPImm9fCXmyNELO7IvydoAACAASURB VL/+9NVK4u+kJialh4XNf3VaePuO3QpFp7Oz7dq1S9+4MX0MGFVPT+9vv8XF37k/a1ZQTEwysjPA 3yMh4dGOr/YAAIKXzQ4M9PHxcSMSB718/c0C7unp7bOTRqP2Ge736+NVi549k1+//nubtOPjVQsB AAQcpVBiseTbv3+OzmRcvXZHKGwyNjYAAMTfSbW0NP1i8yokfxjo6548dbmmhm9tbQ4AEImbp08L DAubjxQ0NNQ7dPh8dXUdi2WJ/+z9wu6NAa+MYrQImae5ejXewEDv1VUIcfGpTk62Gz4LQTatxpr/ e9fxwsJSLy82+h6hsGn1x4vYbHulUsnl8pqaW5D92L2B3ZPYUWG319PT5X+RVyWSNmR0zi0s1dMb bWVlhr9Fr8PxcE5MSq+oeGpvbw0AKCwsY1lbMJmMAQtCEPTGcOWbAa8u02jUzZtXkckkAIBSqYw8 e622VoBcMEbI5YozP0dlZXGDl82ePi3w1Rq2blld/qT69u2k8+ejV69e9EZtGVxULa3S3btP1PMb t29bZ2dnhSZmc3OT/f/9pq6+QZfJ0NVl7N5zsri4nEQiLlkyc+aMII0E9jqqo14UOuGMDfnlzhg9 qqu729nZdrCnZrEs0ByGFBeLJUga4/OF/v4e6AiYw3FaHjwHffOa1YuRF52dnQpFF/J1rb1dNtgA XqVObwDMFmETCIS+Pu7I5QAAADIBLm7600JoCoWMrEvQ0tLat/drdD92b2D3pDq8vNiRZ69xubyg oHEAgIKCEi8vV/REeFr0OmwXexKJyOWW2ttbd3V183gVs4f9ZR0Iet/hSszR0Xf19Znu7k5SaYdc rgAAtLfLyGQyMnYJDZ0X3D0HyX8AAHd3RwBAdXUdmgJlMvmu3ccbGsRbt65+3dNk2Wx7NtvezNT4 8JELH3zg9epc92ANGFVaWq6dndWP/4zQ12cijULR6dQGgSg2Ntnfz6O4uHz9umXcQl5UVNz0aRMG tfBtsJBRb5+dlmNN+32zZqnOaiKvu7u7kc0+1+MZjFGzZk1CN3t7e2NikxMT05qbW9GdSqVS/ZDU 7A2MFmHr6elJSk5PSk5X3dnb+6exu64uo9+5euzewO5JdTCZDBbLooDLCwoaV1fX0Nzc6unxcrYZ T4teh0wmsdn2BVzeokUf8korOzu7VGuGIGgo4ErMlVW1Mpl846Yf0D1fbtuFjl36zGvR6XQAwLNn L1PdyVO/8vminV9/0mep16t8fd2pVEp+QYn6iXnAqDgc5y1ffPy6WeI7v9+3sDBBEoOPj6tC0ZmZ WdDV1UUgaGB88zrIqPf9cj367q1biVOnjndlO9BoVEGDMDLymkZqfoe94efH+duU8ap7xowxVN18 3RX0oeuNAXl5sePiUnp6egu4PCqV0ufvCwZsEQYPjvO589FSaTuXy2MyGdbWFhoLGoKg/uBKzF9G rEWv9uXmFd+5cz8iYo2N7VhkT17eH0Qiwc3NEdlsb+8AAKBXkcvKqnJzi8NC5/ebla9d+93O3orz YnJSS0uLSCAoFJ1qtAjgiYpAIBgb66NZubu7BwBAJDzfrK9vrK0VzJs7taNDA1OywwGRSOjqejle VH09IAKB0KUy1pRK21NSs3x93ExMjAAAjx7ljA/wWhm2ADmKZz3RMKGlpQ1ejGV5pZUtkjZ/fw8A AIFAoNNo6OUApVKpUHTibBd2b2D3JHZUA/LyZF+9eqf8STW3gOfKtlddFaFOiwAAHh4uZ89d5xaW crmlHI7TUC/rgyAI18SsgwPL2dkW+WdqYgQAcHRgoX+Kg6w17ezsQjcBAHZ21shmVjaXQiFPmuTX b82Pcwpv3UpE5/oqK2vbO2Rjx5q9eYNewI7K1NS4tLQKPS+PV4HsRDbT0/OIRAKHg+ta5nvB0EC/ qqoOnbEvKanAX9bMzJjHq0T7Kj+/JCoqTi5//uWpq6u7R+XPzEp4g6j53WIw6KIXt9C6eSMhJvb5 IgMzM2NuIQ/97lJeXr0+/JuCAh6eOrF7A7snsaMakKWlqZGhfnYWt7SsyuvFemz1WwQAMDDQtbQ0 TUnJ4vMbX3cpCoIgDdLA+Gb69MBHaTl7950KmjhO3NRy+3ainx/HxOT5RFl9XQOTycgvKFEt4ujA QqaaZ80MOnX6ysFD53x93dra2uPiUo2M9P39cA0R1Ilq1sygAwfP7t8fGRDgKZG03ryVyLK2QIYU SqUyPSOP7WJPpVLoOjQAQGJiemlZFZlMRq9Yv3cCA70fpeX89J8zk4L8mppa8vL/wF925oygAwfP Hjx0zm8cRyhqiolJdrC3Rlf8OjvbZmYWGI8xsLQwra6u65OKamrqG4VNAACFolMklmRlcwEAXp4u yHgO+yg2dcoifLzdfrl0Kzr6rra2dvEfTxYunI7snzVz0v4DkXv3nQ6a6CuTyWPjko0M9V1dHfDU id0b2D2JHRWe9np6uiQlp/f29nr8+Tsldovw1Ozh4Xz7dhKBQMDZDxAEqUMDiXnsWLPt29Zfvhxz 5uff6DTqhEDfkJCP0KNyRadQ2HT48HnVIuj16QkTfIGWVmxs8qlTV8hkkqurQ2joPAqFPNRReXu7 bvgs5NbtxBMnf0UfYoH8pWZlZa1Q2ITcUcTH29XX1z36xl0qlRIaOu/dPhBCHUjH3rqV+L/Iq15e 7CWLZ+7ecxJnWW9v10/Cg2Nik4+fuESnU3193FasmIvOZ4aGzJPJ5PHxqSQS0W+cx/LlH/3rX8fQ simpWffuPUJet7ZKkZmJY0d/YDCIAx7Fpk5ZxLRpgY3Cprj41N5e5cSJvug9ZLy82Bs/D7txM+H0 mSgqlezsbBeyYi7O72TYvYHdk9hR4Wmvt7fr3YSHjo4sBuNPj4HBbhGemj08XG7fTnJ2stHIGnII grBpSVo73nUMEAQNa03NLVu2/BgSMnfGhxPfdSwQNPK9r0NACILemkJuKQDAgwMvMEPQ2wATMwRB A8gvKDExMUKXaEAQNKRgYoYgCEt3d3dRURlcjw1Bbw28xgxBEARBwwgcMUMQBEHQMAITMwRBEAQN IzAxQxAEQdAwAhMzBEEQBA0jMDFDEARB0DACEzMEQRAEDSN4byycn1/y29X4+voGEonE4TitDFsw evTL+/E+zim6ejW+sVFMJpO9vNihIfN0dGh9argSFXv37sN9e7/W12eq7s/IyL9xM0EgECH3rA4J mctg6KjZqj527zkpEjXv3fMVgfDyi8jrziuVdhw5cqG0rJLJHL12zWJ3dyelUrll64/m5iY7tq/X bGAjQE5O0YGDZ5HXEwJ9wsODX31PWXn1vn2nnZ1tI7aueavBQRAEvYdwjZirquv2H4ikUilr1y6d N3cql1t66PA59OiTJzWHDp3T0x29bu3SOXMmZ2dzj5+41KcGqbQ9IeHRrJmT+mTl/PySo8cuGhro rV+3dPbsSbl5xf/d/z/0uXgaUVZWVVxcPn/eVNWsjHHe1NQsXmnlypULGAydXy/HAABqavjNza0B +B6L+1djYzN206aVmzatRB4X1q+OdplcrhC/eJohBEEQhAHXiPnBg2wymbR92zrk2TI6OrT/RV7l 8xvNzMYAAB6l5dJolIiIteij16Oi4qTSdtVH3MTEptBo1NmzJ/Wp+V5imomJYUTEGuTBTUwm48yZ qOqaepa1hSZaBwAA16PvGhsbjB/vjfO8Umk7nU6dMjmAzxdmZOQDAHJyiohEgre3m6ZCGkn09EaP 83UHAFy5Evu693h6uhw6+K3Oiwd4QxAEQRhwJebxAV5enmz0iW+WlqYAAImkDUnMnZ2dOnQ6mpV1 mQwAQGdnN1q8tVV6717aypXzX31mnJ8fR4dOQx+n6GDPAgA0Nog1lZiR4XL4+mWqw+XBnjc3r9jN zZFOp2okpL8mPT3mwG+CIAiCcCZmOzsr1c3augYAgImpEbLp7GR7/352WXm1g701ACAtLdfY2EB1 yjomJtnMzMjXx627u4dIJKhWNSHQR3VTJnsGANDgM1/7HS4P6rxiseTpUz76WNz31Pc/HGIwdKZM Cbhw4UZzc4ujg014eLCBgS76hvT0vFu3E/l8IZVKcXNzWL78IwN9XfDiEvKe3duRL2GIw0cuNDSI /vVjxIDnxb4C/cZRQRAEjWCDW5UtkbRlZhZERcVOCPRBf0UGBHjZ2FgePXqBz2+8fDmmqLg8ROXx 7zKZPCU1k88XfvLpt+vW7zx8+Hx7h+x19T94kE2hkB0cWG/cHlX9Xl0e8LwkMqmzs0sgEIlEzWQS icerMDLS9/R87+/g39zcmpDwaOGC6QvmTy9/Un3s2EX0UE5O0bHjv1hamoaHL1uwYFppadWuXSe6 uroBAObmYwAAEkmbalUSSSuyf0ADXoF+s6ggCIJGMLyrshHbd+xWKDqdnW3Xrl2K7iQQtLd9ue6n /5zZ+f/+o1Qqw9cv8/Jio0fT0nPlcoWnp8vfpgSIxZLLV2KPHful3+XN8XdSE5PSw8Lma2rSGB0u JyWlR569dvLEP+n0vmvFXz1vgL9HQsKjHV/tAQAEL5sdGOjj4+NGJA6uo4aCTPasp6e3z04ajdpn EuJ1xGLJt3//HJ0VuHrtjlDYZGxsAACIi091crLd8FkIcshqrPm/dx0vLCz18mIbGRkQiQSJpBUA UFPD19VlMJmMFkmbu7sjnpMOeAX6zaLCc2oIgqD31ODyzdYtq8ufVN++nXT+fPTq1YvQ/Q0NIrFY wmQyWlraeKWV48d7EQjPs0VBQYmeHnPzppVIblMCcO7c9bq6BgsLE7S4XK4483NUVhY3eNns6dMC NdGu115dVtXvec3NTfb/95u6+gZdJkNXl7F7z8ni4nISibhkycyZM4I0Etub2bvvdEXF0z47t29b 5+7uhKc4i2WB5j9nZ1sAgFgsQVKgQCD09XGXSp8/ZwyZTBY3SQAABIK2yRgjiaRNImn9+7f/nTTJ b83qxZKWVtWZbXW8WVQQBEEj2OASM5ttz2bbm5kaHz5y4YMPvJC534YG0d59p+3trTdvWlnCqzh8 +DyBQFizejFS5OlTAZttj444PThO5wCorKxFE7NMJt+1+3hDg3jr1tUafOZrdPRdfX2mu7uTVNoh lysAAO3tMjKZjI4vMc5Lp1MbBKLY2GR/P4/i4vL165ZxC3lRUXHTp00YcFZ86Hy8atGzZ/I+Oy3H muIsjq7OQ193dz+fFu7p6UlKTk9KTld9f2/v89G5mZmxpKX1aa1AW1u7tlbQ3i7r7u4x11BifuOo IAiCRqo3maH19XWnUin5BSVIYr527Xc6nfbF5lUUCtnTwyU4eM6FCzdmfDjh+ZptRecolb+TodPp AAAkUyJOnvqVzxft/PqTPkvM1FRZVSuTyTdu+gHd8+W2XarjS+zz3vn9voWFCZIIfXxcFYrOzMyC rq4uAkFjC9MGy9rafOgq9/Pj/G3KeNU9Y8YYIi/MzMbU1QnqagUeHs7FxeXNza0EgjZ6dEhhRAVB EDRS4UrM1679bmdvxXmR0rS0tIgEgkLRiWyW8Cp8vF0pFDKy6TeOc+HCDV5pJZKYRzF00NlIAEB7 ewcAYNSo56m6rKwqN7c4LHS+ZrMyAODLiLXoFdncvOI7d+5HRKyxsR2L57z19Y21tYJ5c6d2vH6d 2khCIBDoNBoykwwAUCqVCkUnOpY1Nx9TWFhaW9fg4eFSVVVbXl5lbGyA88L20EUFQRA0UuGamH2c U3jrViJ6Q67Kytr2DtnYsWbIJo1GaRQ2oW8WCpsAADTq8wVcjo6swqJSNIs/flwIALCxeZ4gs7K5 FAp50iQ/DTTlzxwcWM7Otsg/UxMjAICjAwsdu2OfNz09j0gkcDi4rt2OAGZmxtxCHrrguby8en34 NwUFPPSopKW1tlZgw7JgsSy53FJNzWOrExUEQdBIhWv8MWtm0KnTVw4eOufr69bW1h4Xl2pkpO/v 9/wWlVMmB1z69fbJU5fd3RzbpO1xcal6eqM9PJzRsmlpuXv2npoy2V8kar4dk+Tv52Fi8nxCsr6u gclk5BeUqJ7O0YGFcX9HjcA4r1KpTM/IY7vYU6kUug4NAJCYmF5aVkUmk8lk0pBG9a7Mmjlp/4HI vftOB030lcnksXHJRob6rq4OyFFTU+PW1naZTG5hYWJtbRETk/zhhy8X6NXU1CNfyxSKTpFYkpXN BQB4ebogqwqwj6oTFQRB0EiFKzFPmOALtLRiY5NPnbpCJpNcXR1CQ+ehc9czZkwkEAh3Ex5mZOSR ySRHR5vQkHk02vMRs5nZmB3b1/96OebMz1E0GnXSJL/gZbPRmuWKTqGw6fDh86qnw7/S+I1hnLey slYobELuKOLj7err6x594y6VSgkNnYfeKWyE8fJib/w87MbNhNNnoqhUsrOzXciKuei3EBKJaGCg O2oUnUAg2LAsOjs7Vf+IOSU16969R8jr1lYpj1cBADh29AcGgzjgUXWigiAIGqm0JK0dA78LgiAI gqC3YmQOASEIgiDoPQUTMwRBEAQNIzAxQxAEQdAwAhMzBEEQBA0jMDFDEARB0DACEzMEQRAEDSMw MUMQBEHQMAITMwRBEAQNIzAxQxAEQdAwAhMzBEEQBA0jeB+il59f8tvV+Pr6BhKJxOE4rQxbMHr0 KPTo45yiq1fjGxvFZDLZy4sdGjJPR4fWp4YrUbF37z7ct/drfX2m6v6MjPwbNxMEAhGVSvH0cAkJ mctg6KjZqj527zkpEjXv3fMVgfDyi8jrziuVdhw5cqG0rJLJHL12zWJ3dyelUrll64/m5iY7tq/X bGAjQE5O0YGDZ5HXEwJ9wsODX31PT0/v2XPX0tLyCATtD8Z7hYXNx3/X8bLy6n37Tjs720ZsXaOp mNW346s9LJblZ5+ueNeBvG1VVbXf/ePgW7ibPQT9leH6/VhVXbf/QCSVSlm7dum8uVO53NJDh8+h R588qTl06Jye7uh1a5fOmTM5O5t7/MSlPjVIpe0JCY9mzZzUJyvn55ccPXbR0EBv/bqls2dPys0r /u/+/6HPl9SIsrKq4uLy+fOmqmZljPOmpmbxSitXrlzAYOj8ejkGAFBTw29ubg3w99BgVCOGjc3Y TZtWbtq0EuOBYKn3M1NSMmfPCvpw+oR7iWmPHuXgr7+jXSaXK8RiiSaChSAIeg/gGjE/eJBNJpO2 b1tHpVIAADo6tP9FXuXzG83MxgAAHqXl0miUiIi16EPso6LipNJ2BuPlkDomNoVGo86ePalPzfcS 00xMDCMi1iBDKCaTceZMVHVNPcvaQhOtAwCA69F3jY0Nxo/3xnleqbSdTqdOmRzA5wszMvIBADk5 RUQiwdvbTVMhjSR6eqPH+boDAK5ciX3de0pLq0xMDBcu/BAAUFsn6Oh4hr9+T0+XQwe/1XnxIG0I gqARD1diHh/g5eXJRrIyAMDS0hQAIJG0IYm5s7NTh05Hs7IukwEA6OzsRou3tkrv3UtbuXI+WgPK z4+jQ6ehE5sO9iwAQGODWFOJGRkuh69fpjpcHux5c/OK3dwc6XSqRkL6C+rq6kYz65YvPh5scT09 5sBvgiAIGilwJWY7OyvVzdq6BgCAiakRsunsZHv/fnZZebWDvTUAIC0t19jYQHXKOiYm2czMyNfH rbu7h0gkqFY1IdBHdVMmewYAeDV/v7F+h8uDOq9YLHn6lI88nnkES0nJjItPEQqbKRQS8uRjIyN9 9Gh6et6t24l8vpBKpbi5OSxf/pGBvi6eamWyZz09vd1d3b09vVJpBwBAS1trFL7hL/bV6+9/OMRg 6EyZEnDhwo3m5hZHB5vw8GADg5dRqdOi4ycuVVXVbvgs9PiJSyJRk6+PW3h4MIFAAAAcOnw+O5sL ABAIRGlpuQAAbW3tc2f34mkRAODhw8cxsckCgYhGo3h5slesmDtq1MveUI3K08NlxYqPkJUcra3S jZt+cGXblz+psbAwWbxoxtGjF3V1R+/c+eno0aOwjwIAlEplTGxycnJGU1MLlUp2ZTuEhs7X0xuN pyeVSmX0jYR79x7J5QovL/aUyQE4WwpB0Bsb3KpsiaQtM7MgKip2QqAP+ossIMDLxsby6NELfH7j 5csxRcXlISvmamlpIUdlMnlKaiafL/zk02/Xrd95+PD59g7Z6+p/8CCbQiE7OLDeuD2q+r26POB5 SWRSZ2eXQCASiZrJJBKPV2FkpO/p6aKRkIanvLw/fv7fb5YWpuvXL120cEZl5dOffjqDXunPySk6 dvwXS0vT8PBlCxZMKy2t2rXrRFdXN3adiL37Tm/4/B95+X9UVddt+PwfGz7/x/btu3FGNeDV6+bm 1oSERwsXTF8wf3r5k+pjxy5qsEW9vcqLv9yYPu2DyZP909Lz0tPzkP2zZgZt2rRST2+0oyMLCW/j 56E4W5STU3Ty1GUTE6NPP1k+c2bQ45yi/Qci+0RlZKj/6SfL5839W17+Hz/9dKa3txctTiKRwsLm V1Q8jY1LWbt2ST2/8eHDx3iOxsQkR0XFcTjOn36yfP68aaVlVft+Oq26kgOjJ5OTM6Kj79rZWq1b u9TKyvza9d9xNhaCoDeGd1U2YvuO3QpFp7Oz7dq1S9GdBIL2ti/X/fSfMzv/33+USmX4+mVeXmz0 aFp6rlyu8PR0+duUALFYcvlK7LFjv/S7vDn+TmpiUnpY2HxNTRqjw+WkpPTIs9dOnvgnnd53rfir 5w3w90hIeLTjqz0AgOBlswMDfXx83IjEwXXU24eMTfvspNGofaYo+pWfX6KnN3rjxjDk69QYE8Pf f3/Q1taOZMS4+FQnJ9sNn4Ugb7Yaa/7vXccLC0tVP+XX+XjVomfP5Nev/94m7fh41UIAAEElHuyY B7x6LRZLvv375+g8x9Vrd4TCJmNjA420SChsWv3xIjbbXqlUcrm8puYWZD8ye3T1aryBgR4Snirs FsXfSbW0NP1i8yokKgN93ZOnLtfU8K2tzZGoxo4127p1NXLUyEj/0OHzJSUVbLY9Uo+nFzto4rif f/7N0ZHl4+PGZDKEomb0LBhHReLm6dMCw8LmI5uGhnqHDp+vrq5jsSwH7MnU+1mqUQEAysqq+v04 IAjSlMHlm61bVpc/qb59O+n8+ejVqxeh+xsaRGKxhMlktLS08Uorx4/3Qub9AAAFBSV6eszNm1Yi uU0JwLlz1+vqGiwsTNDicrnizM9RWVnc4GWzp08L1ES7Xnt1WVW/5zU3N9n/32/q6ht0mQxdXcbu PSeLi8tJJOKSJTNnzgjSSGxDYe++0xUVT/vsxPlnLQaGum1tHaWllU5OtgAAjrsTR6WUQCD09XFH JqIBAMgkp7gJ1zJpJOUwRo/q6u52drbVYMwAABbLAs0lSOVisQRJJ+q3iEIhu7jYAQC0tLT27f0a TzwDtojPF/r7e6AZjsNxWh48B22CQPCno87OdshONDEjB7S0tLSAFvJC2fty1ItxdM3qxciLzs5O haIL+Xra3v5y4gqjJ0Uiib8/B43KUUOzWRAEYRhcYmaz7dlsezNT48NHLnzwgRcy99vQINq777S9 vfXmTStLeBWHD58nEAjo74KnTwVstj064vTgOJ0DoLKyFk3MMpl81+7jDQ3irVtXe3pobMY4Ovqu vj7T3d1JKu2QyxUAgPZ2GZlMRkeQGOel06kNAlFsbLK/n0dxcfn6dcu4hbyoqLjp0yYMOCv+riBj 0z47Lcea4ik7fVpgQX7Jv/593MzU2NXNIWjiuLFjzdCjPT09ScnpScnpqkVUp1jfScwAAHS9Ifq6 u/v5dLT6LdLVZaDZCD/sFvX09JBUpl4YjFGzZk1SjUr1KPKD2t3TM9gYXtXb2xsTm5yYmNbc3Iru VJ3KxujJnp5u1ahU3wlB0BB5k/9mvr7uVColv6AESczXrv1Op9O+2LyKQiF7ergEB8+5cOHGjA8n PF+zrehUXexDp9MBAEimRJw89SufL9r59Sd9lpipqbKqViaTb9z0A7rny227VEdj2Oe98/t9CwsT 5Jesj4+rQtGZmVnQ1dVFIGhsYZpmIWPTN0OlUr75ZkNOTlFGZsGDB48TEh4tWTLzozlT0Df4+XH+ NmW8apExYwzfPNYX1IkZm/oteoOsDIayReq4Hn331q3EqVPHu7IdaDSqoEEYGXntXQcFQdBr4UrM 1679bmdvhU4GamlpEQkEhaIT2SzhVfh4u1IoZGTTbxznwoUbvNJKJDGPYuigc4YAgPb2DgAAuhK1 rKwqN7c4LHS+ZrMyAODLiLXo1b7cvOI7d+5HRKyxsR2L57z19Y21tYJ5c6d2vH6d2gijra3t6+vu 6+ve3d3z229xUVFxfuM4yGQmgUCg02joRLRSqVQoOof/yGlIW6SlpQ1ejDh5pZUtkjZ/HPefIRAI Xd0vl5hJpe0pqVm+Pm4mJkavHu3u7gEAEAkDLxEY0KNHOeMDvFaGLUA2B9VSAoGoGhXORX8QBKkD 18Ts45zCW7cS0bmvysra9g4ZOjdIo1EahU3om4XCJgAAjfp8AZejI6uwqBTN4o8fFwIAbGyeJ8is bC6FQp40yU8DTfkzBweWs7Mt8s/UxAgA4OjAQsfu2OdNT88jEgkczl/lpoP/i7x64cIN5DWRSPDw cAEANL9Y7mRmZswt5KG/kcvLq9eHf1NQwHsnoeI01C1iMOiiFzcju3kjISY2GU8pMzNjHq8S/X+U n18SFRUnlz//r2FqalxaWoUeLSl5guzEH9XrdHV196hMiZfwKvCXNTLSU42qFK78gqChh+u786yZ QadOXzl46Jyvr1tbW3tcXKqRkb6/3/MhwpTJAZd+vX3y1GV3N8c2aXtcXKqe3mgPD2e0bFpa7p69 p6ZM9heJmm/HJPn7eZiYPJ82rK9rYDIZ+QUlqqdzdGBh3N9RIzDOq1Qq0zPy2C72VCqFrkMDACQm ppeWVZHJZDKZNKRRvStGhvpRv8X1KpX2dlayZ/K4uBQ9PaaNzfMlu7NmMmLmrgAAIABJREFUTtp/ IHLvvtNBE31lMnlsXLKRob6rqwNytKamHvlaplB0isSSrGwuAMDL00X9dezq1KxOi/Dw8Xb75dKt 6Oi72traxX88WbhwOp5SM2cEHTh49uChc37jOEJRU0xMsoO9tZWV2Yuogg4cPLt/f2RAgKdE0nrz ViLL2uLVFXNvwNnZNjOzwHiMgaWFaXV13aASc9DEcZFnr+3fH+nv7yEUNQ3zL2QQNDLg+u05YYIv 0NKKjU0+deoKmUxydXUIDZ2Hzl3PmDGRQCDcTXiYkZFHJpMcHW1CQ+bRaM9HzGZmY3ZsX//r5Zgz P0fRaNRJk/yCl81Ga5YrOoXCpsOHz6ue7i3cIh/jvJWVtUJhE3JHER9vV19f9+gbd6lUSmjoPPyP Xni/zJkzWQmUyckZSUnpVCrZycl2efAcMvn55+vlxd74ediNmwmnz0RRqWTkZh3od5SU1Kx79x4h r1tbpTxeBQDg2NEfGAx1E7M6NavTIjymTQtsFDbFxaf29ionTvTFef8Zb2/XT8KDY2KTj5+4RKdT fX3cVqj8xb+3t+uGz0Ju3U48cfJX9AYjGvmRCw2ZJ5PJ4+NTSSSi3ziP5cs/+te/juEsO3myf0ur 9N69R0XFZZ4eLosXzdi956T6IUEQhEFL0tox8LsgCIIgCHorRuYQEIIgCILeUzAxQxAEQdAwAhMz BEEQBA0jMDFDEARB0DACEzMEQRAEDSMwMUMQBEHQMAITMwRBEAQNIzAxQxAEQdAwAhMzBEEQBA0j MDFDEARB0DCC94bG+fklv12Nr69vIJFIHI7TyrAFo0ePQo8+zim6ejW+sVFMJpO9vNihIfN0dGjI oaNHL2Zk5qtWNWoU/fix/3v1FLv3nBSJmvfu+YpA0PDXhX5rzsjIv3EzQSAQIfclDgmZy2DoAACk 0o4jRy6UllUymaPXrlns7u6kVCq3bP3R3Nxkx/b1mg1sBMjJKTpw8CzyekKgT3h4sGbr3/HVHhbL 8rNPV7xB2bLy6n37Tjs720ZsXaPZqDRSc1VV7Xf/OKjBO8Or01dD5+1Hhednsqen9+y5a2lpeQSC 9gfjvcLC5uO/LfnQ/VypQ51+Vqc31IEd8/Ds57cDV2Kuqq7bfyDSzs5q7dqlrS3SW7cTDx0+9/dv PkeOPnlSc+jQObaL3UdzpjRLWm/evCeVdmz7ci1aXF9fNyRkLrpJ6u/pQGVlVcXF5eHrl2k8K/db c35+ydFjFznuTnNmT26WtMbEJDcKxd99u1FLSys1NYtXWrlq1YKkpIxfL8e4uzvV1PCbm1sXL5qh 2cBGBhubsZs2rQQAnD8f/a5j6aujXSaXK8Qvns/4XtQMqQ/Pz2Tq/cyUlMwF86cpleDGzQQbG8sJ E3xx1j/yPn11emPojLx+xg9XYn7wIJtMJm3fto5KpQAAdHRo/4u8yuc3mpmNAQA8Ssul0SgREWvR B7BHRcVJpe0MxvMhNZ1GHefrjn2K69F3jY0Nxo/3fvOmDKbme4lpJiaGERFrkC+GTCbjzJmo6pp6 lrWFVNpOp1OnTA7g84UZGfkAgJycIiKR4O3tpvHYRgA9vdHIh3vlSuy7jqUvT0+XQwe/1XnxEO73 omZIfXh+JktLq0xMDBcu/BAAUFsn6Oh4hr/+kffpq9MbQ2fk9TN+uBLz+AAvL082kpUBAJaWpgAA iaQNScydnZ06dDqalXWZDABAZ2c3/iDe8nAZAODnx9Gh09DpGgd7FgCgsUHMsrZ4tZLcvGI3N0c6 narZ2KC3QE+P+d7VDL0FXV3d6G/8LV98PNjiI+zTV7M3hs4I62f8cCVmOzsr1c3augYAgImpEbLp 7GR7/352WXm1g701ACAtLdfY2EBfv2+HyuUKIpFIJBJerf8tD5cBABMCfVQ3ZbJnAAD0m4cqsVjy 9Ckf5wN3R6r09LxbtxP5fCGVSnFzc1i+/CMDfV2NlH348HFMbLJAIKLRKF6e7BUr5o4a9fwXxKHD 57OzuQAAgUCUlpYLANDW1j53di9a9viJS1VVtRs+Cz1+4pJI1OTr4xYeHkwgEACOq4wY58WGXfP3 PxxiMHSmTAm4cOFGc3OLo4NNeHiwgcHz9iqVyugbCffuPZLLFV5e7CmTA/D3FXbNA/YVBqTmoCC/ S5duNTe32NiMXbtmsbm5Sb9RIU+JVl1fkpKSGRefIhQ2Uygk5MnWRkb66keFXTN2X2GTyZ719PR2 d3X39vRKpR0AAC1trVH4hmXqfPpqtgjjp12dfsbuDaRFX0Y8vy7ZZ1XEgO194//dA/7/xfiZHDCq 9wLh653f4H+3RNLG5fJ+uXTTbxwHzW3m5ibcQt6DB9kcd6fY2JRHabnh64PNzIyRo9nZ3Oqa+tTU rF8vx8TEJFXX1LPZ9hQKGa2zrKzq6rU7ISvmWvc3WlUH/ppv3brH5wtDQ+eTSMTSsqrS0spxvpys rIKOdpmRkf7Tp/zQkHnE/i6N/xXk5BQdPnKBzbafPXuSjY1lenp+enre5Mn+fSYh7t59aGig5+3t ir9sTk7R0WMXHRxY8+dNNTMzTk3N+qPkycQJvlpaWgAAAwNdd3en8vIqKyuzFSvm+vlx/Ma5m5uP QSt//Liwubm1rLxqUtA4Q0O9lNSsMWMMx441AwDQaFQ7eys/P05paeWYMYavRoVxXmzYNaekZnZ0 PKuvb5w+LdDKyjwtPfdJeXVQ0DjkaHJyxq+XY9gu9nPn/o1MIScnZzQ1tXww3mvMGMMB+wq75gH7 CkNKaqa0rUPYKJ7+YaCdrVX248KsbO7UqeOR+SQkKlubsQvmT7OyMktJzeIW8IKCxiF9lZf3x7Hj v7g4282ZM9nO1jozKz87izt16nicnyAG7JrV+Zn817+PX7x4s6FB1NLSFhuXEhuXkpqaifObtzqf vpotwvhpV6efsXsjJTWTQiGPD/BCNlta2pJTMtGfWOz2qvO/e8D/vxg/k9hRvS8Gl2y279itUHQ6 O9uuXbsU3UkgaG/7ct1P/zmz8//9R6lUhq9f5uXFVi0lkz2zt7MKDZknkbRevhJz5OiFnV9/ih5F B7VJSemRZ6+dPPFPOp2mZqsGVXP8ndTEpPSwsPnIZHWAv0dCwqMdX+0BAAQvmx0Y6OPj4/a+Z2Xk e3GfnTQatd8JjD7i4lOdnGw3fBaCbFqNNf/3ruOFhaV9PuU3KBt/J9XS0vSLzaue/1/V1z156nJN Dd/a2hy8mKe5ejXewEDvdWsUhMKm1R8vYrPtlUoll8tram5B9mNfZcQ+L3ZfDXj9UiyWfPv3z9HZ l6vX7giFTcbGBgCA1PtZY8eabd26Gv0GUFZWhbOvsGvG7qsBP/2Wlrbvv9+MfF02MtI/dPh8cXE5 h+OMRKUaM3K0pKSCzbYHAOTnl+jpjd64MQw5OsbE8PffH7S1tTOZDDWjwq5ZnZ/Jj1ctevZMfv36 723Sjo9XLQQAEFT+Fwzdp69+i173065OP2P3xoAw2qvO/27sfsb+mcSO6n0xuHyzdcvq8ifVt28n nT8fvXr1InR/Q4NILJYwmYyWljZeaeX48V7IHAuCRqNu3ryKTCYBAJRKZeTZa7W1AuRC9du/uqxK Llec+TkqK4sbvGz29GmByE5zc5P9//2mrr5Bl8nQ1WXs3nOyuLicRCIuWTJz5owgzQb51uzdd7qi 4mmfnTj/UEcgEPr6uCPTXAAAZFJI3IRrqSR2WT5f6O/vgWYpDsdpefCcfi8ovA6FQnZxsQMAaGlp 7dv7Nc5S2OdVp68AACyWBVqVs7MtAEAsliC/FEQiib8/Bz2vowNLteCA/YxRM7YBW2RlbY5OYjk7 2wEARC+WwgoEf+or5KhAIER+CRoY6ra1dZSWVjo52QIAOO5OHNx/+oUdFXbN6vxMIomBMXpUV3c3 0o34oxoQxmekfove7Kcdu0XYvaFOe9X/3/062D+T2FG9LwaXmNlsezbb3szU+PCRC/+fvTOPa+pY G/9AQjaMYZdFNoGwBBK2EKAgylXqgmKrVhSs141uauvW1tfb+7t97+11a18V3EBbVFpFlIKsKkJE yyLIKpQAyiKyJUCAQEzCkt8fR09TxHAkoGjn++GPzMyZZ55nOMkz88ycM++840qnWwIA2toEBw+d trGx2Lb1wyrew4iI8zgcbsP6FUiV0NCg4MFAxCsDAJhMWwBAQ8NjxDEnJNzQ0aExmXYiUb9EIgUA 9PWJCQQClpmccsaULBZL9u0/2dbWsX37ehdnB8W6FAqprVWQmsr15DhXVtZu3rSq/D4vLi4tYL7v hA8gXg3IuHhEpqmZEZa6Q0NDWdy8LG6eYubw8Mgx+DjqDg0NKT47R6VOW7RoDhaxKFpaVCzx5+e1 UtKuKn0FAEB3QaKfBwcHn7U7qNiu4pUAQz8rkaycMS1SlIx8QRR0/lNfPS0dGkKSAfN9ykqrvvvv SWMjA0cnut9sDyS4qrpWyiWrck+qotWYKPkfqW7R+O52FS1SjtK7XdVv94tQfk8q1+pNYTwRWjab SSIRS8uqEMccH3+dQiF/vm0dkUhwcXYIDg6MiUlc8K4vsmcbCdSgUCgUAMCTJ1IkWVffJBZLtmz9 Fr1g5659E/LKhTElR0ZdbGkR7Pn6oxFb2xCuXb89c6YhckO7uztKpbK7d8sGBgZwuAkY8b16kHHx uOFwWH/z91bMQRaZJrvumIzjd2pMVOwrVZikvpo8i0gk4t69nxYVVeTfLbtz515GRs7KlQuXBPqr rtWYkt++vhrTovHd7a/xfoaMG0yOOT7+urWNORp4UVNTw+NwUqkMSVbxHrq7OaKhMI4HKyYmkVdd hzjmkpLf8Xick5MtUtrX1w8AQB892rljI7r+UVxSee3a7R07NsyyMlPdMOWSa2rqi4sr14YuG9Ur Nze3NzW1Bi2d198vVl2TNx0cDkchk9Ewl1wul0plI2Z746uLw+EGFEayIlHfrewCtruToaE+mqmm pg7kcuQzr7quW9jr6emsukVjtjsZ4HB4xXYHBgb/XDr+fkYYd18NKmgyODgEAEA3VYzoq6elCgtV 6urqbDaTzWYODg5dvpwWF5fG8WAphg3HrZUSyar31WthUi2ajG8KHo9TvEtH3LHKmbxv95j35FsA psDsvaL7SUmZ8mc9WFfX1NcvRuMwZDKxnd+JXszndwIAyKSnrreoqCIyKlYmG0CTAABrawskSadb 2ttbIX9GhvoAAFu6JcZHF5SjXHJBYTmRSJgzhzNq3by8Ejwex2JNzIsS33SMjQ3K7/PQ72RtbcPm sL1lZTzV6xobG/B4deh9VVpaFReXJpHIFCVQqRR0vfNqYkZKKndCLBqz3clAX1+7uroebbdaYecX UK2fEcbdVw0NzX+Ms6seAAD09bSRpJGRgaLOSKmR0dNnLn6KvhITk4h8xuNxzs4OAICuZ5uSVNFK uWTV++rVM9kWTcY3RU9Xp77+MbIUCACoqnqIve7kfbuV35NvB5hGZIsW+kWdvnQ0/Byb7dTb25eW lq2vr+PJeTq08Z/rdeFicmRULNPJtlfUl5aWra093dnZHikNCPDJyS06eCjKb7ZHR2d3cnImh8My NJywYOb4aH7cRqNRS8uqFDNt6ZY0GlUul+fllzAcbEgkIkWTDADIzMyrrqknEAjoSvlfikUL5xw+ En3w0Gm/2WyxWJKaxtXX03F0pCOljY3NyLBMKpUJOoQFheUAAFcXB2TKpbzuwgV+R46ePRp+juPB 4gs6U1K4dBsLc/M/LVK6uzn9ciEpIeGGurp65e8P3n8/AIvOyrXC0u74JCvHb7ZH9Nn4w4ejPT2d +YLOET+7yvsKC+PrKwDAdBo1POL8O96u3d29V5MydXW10H00ixb6HTl69vDhaC8vF6Gw52pSpqXF THRip6+nE3c5bVgut7E2Fz+RpKXd0tamzZplqrpWyiWrck+qgiqSVbEIC+P+7yvBx8ctJ7fo+x/O zPHjdHZ2l5T+jr2uKt/usX5VlN2TbweY7lRfXzZQU0tN5UZFXSIQNBwd6aGhQWjsesGC2Tgc7kbG b/n5JQSChq3trNCQIDL56YzZzMx4967NsbEpZ368TCGTfH3YISFLJssazEikMj6/MyLivGImsgJd V9fE53ciT/K5uzmy2cyExBskEjE0NOjVvNh9quHqytjy2drEqxmnz8SRSATkxQjoGOVWdsHNmznI 554eEY/3EABw4vi3VCp+zLpubo4fhQWnpHJPnrpAoZDY7k5r1iwdsZA2f75PO78zLT17eFg+ezYb 4/OmyrXC0u74JCtn7lzP7h7RzZs5FZU1Ls4OK5Yv2H8gEi1V3ldYGF9fAQAMDHR8fdmxsSnoC0ZQ T+Pm5vjpJyFJyZmnIi+iL3NAvwiBgXPlQM7l5mdl5ZFIBDs7q9XBgQQCQVH4+LRSLlmVe1IVVJGs ikVYGPd/XwnIT31SUuZP0VdcXRkrVyxUvGOVo8q3e8zvr5J78u1ATdjT/7p1gEAgr40Rb3eCQCCv nbdqlAGBQCAQyJsOdMwQCAQCgUwhoGOGQCAQCGQKAdeYIRAIBAKZQsAZMwQCgUAgUwjomCEQCAQC mUJAxwyBQCAQyBQCOmYIBAKBQKYQ0DFDIBAIBDKFgI4ZAoFAIJApBNaXx5aWVl2+kt7c3KahocFi 2X249r3p06ehpfeKKq5cSW9v7yAQCK6ujNCQIE1NMlJ0/PjP+XdLFUVNm0Y5eeJ/n29i/4FIgaDr 4IGvcLgJHi6MKjk/vzTxakZrqwB522pIyFIqVRMAIBL1HzsWU11TR6NN37hhBZNpJ5fLv9j+HxMT wy93b55Yxd4aamobDh06bW9vtWP7hnELqa9v+uf/Ozohp3EjfPnVAUtL008+XjMh0qYUo/bVhPwX xsEU7+cJv68gkMkGk2Oub3h8+Ei0tbX5xo0f9HSLkpIzwyPO/WPvZ0jpgweN4eHnGA7WSwL9u4Q9 V6/eFIn6d+3849W7OjpaISFL0aTGaCex1NTUV1bWhm1eNeFeeVTJpaVVx0/8zGLaBS6e2yXsSUnh tvM7/vnNFjU1tezsAl513bp172Vl5V+MTWEy7RobW7q6elYsXzCxir1N9PeJJRJpx7MT3CCvBfhf gEDeDjA55jt3CgkEjd27NpFIRACApib5p+grLS3txsYzAAA5ucVkMnHHjo3osd5xcWkiUR+V+nRK TSGTPNhM5U38mnDDwEDX29tt/Ka8jOSbmbmGhno7dmxAziSh0ahnzsQ1NDZbWswUifooFJL/XK+W Fn5+fikAoKioAo/Hubk5Tbhubw0uLg7hR7/RnIiDtCHjBv4XIJC3A0yO2dvL1dWFgXhlAICpqREA QCjsRRyzTCbTpFBQr6xFowIAZLJB7Eq84ukyAIDDYWlSyOhJYXQbSwBAe1uHpcXM54UUl1Q6OdlS KKSJ1e0tQ1ub9rpVgMD/AgTyNoDJMVtbmysmmx63AQAMjfSRpL2d1e3bhTW1DXQbCwBAbm6xgYGu js7IHwiJRIrH4/F43PPyX/F0GQDg6+OumBSLnwAA0JGHIh0dwkePWibkcNO3kqKiiiNHzyKffX3c w8KCFUuRIwX9/b1iYhK7urpt6bPCwoJ1dbWQUrlcnpCYcfNmjkQidXVl+M/1GiE8L68kKTmzpYVP IhGdnOirVy/R1dHCIjk84nxhYTkAoLVVkJtbDABQV1c/d/YgFovkcnlKKpfLze/s7CaRCI4Memjo Mm3t6egFv/12LyWV29oqIJOJri6MNWuWTptGwViqaBFyjqziXo2Tpy7U1zd9+knoyVMXBIJOtrtT WFgwDocbs68m9r+wb/8pjCuyY/azcntfRE+PaMvWbx0ZNrUPGmfONFyxfMHx4z9raU3fs+djtLoS yarcVxDIVAD39Z692K8WCnvLy3m/XLjK8WChvs3ExLD8Pu/OnUIW0y419VZObnHY5mBjYwOktLCw vKGxOTu74GJsSkpKVkNjM4NhQyT+cZR6TU39lfhrIWuWWow2W1UF7JKTkm62tPBDQ5dpaOCra+qr q+s82KyCgrL+PrG+vs6jRy2hIUH40ZbGIWQyydrGnMNhVVfXzZih5+bmqFh6K/tuf/+T5ub2gPk+ 5uYmuXnFD2ob/Pw8kFIuN/9ibArDwWbp0r8RiATEF77j7Tpjhh4AoKioIuJYDINhs3jxnFmzTPPy SvPySubO9USCH8ol6+pqMZl2tbX15ubGa9Ys5XBYHA+mickMLBalpHDjLqd5e7u+G+BrYTEzL7+0 qKjC398LOeO9qKji+Imf6XTLZUHzjI0NsrMLfq96MNuXjbE04liM1Syz95bNNzc3vpVdUF7G8/Pz QE+Pv3fvfldXT01t/Rw/Dz097VvZBTNm6JmZGY/ZV5P3X1CO8n4e094XIZXK0tKzTUwMFyycnZmZ 29MjWr783ZuZudOnT7OxsRhTsir3FQQyFXg5Z7P7y/1Sqcze3mrjxg/QTBxOfdfOTd//cGbP//wg l8vDNq9ydWUo1hKLn9hYm4eGBAmFPbGXUo4dj9nz9cdoKTqpzcrKiz4bH3nq3xQKWUWrXkpy+rXs zKy8tWuXIcFqL0/njIycL786AAAIXrXYx8fd3d3p7fbKYvGToaHhEZlkMmnU8MYItLWnIxsILl1K HfWCjg7hN//4DI1GXIm/xud3GhjoAgCybxeYmRlv374e/aWuqalHK6alZ9vZWX36SQiSNDcz+e++ k/fvV6N3lxLJSIznypV0XV3t5/c3KLdX0NEVMN9n7dplSL6ennZ4xPmGhseWlqYAgPRr2aamRp9v W4forKujFRkV29jYYmFhMmZpWnq2or36+jrhEeerqh4yGDaoGnx+5/q/L2cwbORyeXk5r7OrG8lX 3leT919Q3lfK+1m5vWPedS6uDL/ZHj/+eNnW1tLd3YlGo/IFXVgkq3hfQSCvnZfzN9u/WF/7oCE5 Oev8+YT165ej+W1tgo4OIY1G7e7u5VXXeXu7IvE3BDKZtG3bOgJBAwAgl8ujz8Y3NbUiC9WvfnVZ EYlEeubHuIKC8uBViwPm+yCZJiaGh/9v7+PmNi0aVUuLuv9AZGVlrYYGfuXKhQsX+E2sklOEg4dO P3z4aETmRD1eYmk5E/UH9vZWAICODiHiEgQCoacnC/31tKVbKlZsbeWz3Zki0dPTz5DQa0enEItk 5Si3d8P6FUiOTCaTSgeQwVxfnxjJbGnhe3o6ozqzWHargwNRNZSXtrb+qdTe3hrJVHTMRCLBwcEa AKCmpnbo4NdovvK+GpNx/xdUuTeU2zumZKSampqaGlBDPsiH5Vgkq3hfQSCvnZdzzAyGDYNhY2xk EHEs5p13XOl0SwBAW5vg4KHTNjYW27Z+WMV7GBFxHofDob9uoaFBwYOBiFcGADCZtgCAhobHiGNO SLiho0NjMu1Eon6JRAoA6OsTEwgELHM15YwpWSyW7Nt/sq2tY/v29S7ODop1KRRSW6sgNZXryXGu rKzdvGlV+X1eXFxawHzftzLe9fd1y588kYzINDUzmhDh6K5A9PPg4NONgUNDg4rPzileCQAYGhrK 4uZlcfMUM4eHh0e9foRk5Si3d3h4OCWVm5mZ29XVg5bK5XJUK0WdqdRpixbNUdQZeylyKw4ODSmq oaVFHTXSq7yvxmTc/wVV7g3l9k6eZBXvKwjktTOeCC2bzSSRiKVlVYhjjo+/TqGQP9+2jkgkuDg7 BAcHxsQkLnjXF9mzTaNRFetSKBQAwJMnUiRZV98kFku2bP0WvWDnrn0TMlcbU3Jk1MWWFsGerz8a sbUN4dr12zNnGiI/HO7ujlKp7O7dsoGBARxulA1ibzpIoHUKwuGw/ubvrZiDZeFzTJTb+2vCjaSk zHnzvB0ZdDKZ1NrGj46OV71RjIy5/vqKmbx74zXedZN0X0EgEwUmxxwff93axpyFhpjU1PA4nFQq Q5JVvIfubo7ofi6OBysmJpFXXYc45pKS3/F4nJOTLVLa19cPAEAfPdq5YyO6zlRcUnnt2u0dOzbM sjJT3TDlkmtq6ouLK9eGLhvVKzc3tzc1tQYtndffL1ZdE8iLwOHwAwpz3IGBwT+X4ihkMhJ3BQDI 5XKpVPZSM0U1NXXwbKbLq67rFvZ6ejqPWSsnp8jby/XDte8hyREt4nA4RZ1For5b2QVsdydDQ/2X LR0cHAIA4HGYgkPK+0oVVJf8on5WxV7lKJc82fcVBDLZYArM3iu6n5SUiUbz6uqa+vrFyGZRAACZ TGznd6IX8/mdAAAy6anrLSqqiIyKlckG0CQAwNraAknS6Zb29lbIn5GhPgDAlm45bSLekKBcckFh OZFImDOHM2rdvLwSPB7HYsEX+E0u+vra1dX16H1VrbBDBwBgbGxQfp+H/qrW1jZsDttbVsbDLp9K pQievQbramJGSioXS62BgcEhhfByFe/hCK14vDpU59LSqri4NIlEhqXUyMhA0d6qqgdIJhatlPeV Kqgu+UX9rIq9ylEuebLvKwhkssE0Tly00C/q9KWj4efYbKfe3r60tGx9fR1PztPJh/9crwsXkyOj YplOtr2ivrS0bG3t6c7O9khpQIBPTm7RwUNRfrM9Ojq7k5MzORyWoeFrDhw1P26j0ailZVWKmbZ0 SxqNKpfL8/JLGA42JBKRokkGAGRm5lXX1BMIBHSlHILS2NiMDMukUpmgQ1hQWA4AcHVxwLKP3W+2 R/TZ+MOHoz09nfmCzhE/josWzjl8JPrgodN+s9lisSQ1jauvp+PoSMeum7ub0y8XkhISbqirq1f+ /uD99wOw1LK3t7p7t8xghq7pTKOGhscjHPPCBX5Hjp49Gn6O48HiCzpTUrh0Gwtzc2MspYsW+h05 evbw4WgvLxehsOdqUqalxUx06qYc5X01If8FLy+Xjk5hcXElFn0UeVE/q2KvcpRLnuz7CgKZbDA5 Zl9fNlBTS03lRkVdIhA0HB3poaFBaOx6wYLZOBzuRsZv+fklBIIWIXtxAAAgAElEQVSGre2s0JAg MvnpjNnMzHj3rs2xsSlnfrxMIZN8fdghIUsmyxrMSKQyPr8zIuK8YiayAl1X18TndyJvFHF3c2Sz mQmJN0gkYmhoEPqmMAjKreyCmzdzkM89PSIe7yEA4MTxb6nUsW+tuXM9u3tEN2/mVFTWuDg7rFi+ YP+BSLTU1ZWx5bO1iVczTp+JI5EI9vbWIWuWvtTYaP58n3Z+Z1p69vCwfPZsNsa3xISGBInFkvT0 bA0NPMfDefXqJd99dwItdXNz/CgsOCWVe/LUBQqFxHZ3WrNmKbowPGbpp5+EJCVnnoq8iL4WA+NN pbyvJu+/gIUX9bMq9ipHueTJvq8gkMlGTdjT/7p1gEAgU4Wamvp//+f4nq8/Rp7agkAgrx44BYRA /tIc+v7Mvn2n0CSvug4AYPTshbsQCOTVA/ciQiB/aTzYzDM/xiF7RNraO5KTMz08WPAwDAjkNQJD 2RDIX52bN3Ou37gjEHSRySRPT5fVwYsJBMLY1SAQyOQAHTMEAoFAIFMIuMYMgUAgEMgUAjpmCAQC gUCmENAxQyAQCAQyhYCOGQKBQCCQKQR0zBAIBAKBTCGgY4ZAIBAIZAqB9QUjpaVVl6+kNze3aWho sFh2H659b/r0aWjpvaKKK1fS29s7CASCqysjNCRIU5OMFB0//nP+3VJFUdOmUU6e+N/nm9h/IFIg 6Dp44CscboKHC6NKzs8vTbya0doqQN61GxKylErVBACIRP3HjsVU19TRaNM3bljBZNrJ5fIvtv/H xMTwy92bJ1YxyJjU1DYcOnTa3t5qx/YN4xZSX9/0z/93dELO+Ub48qsDlpamn3y85qVqFRVVHDl6 Fvns6+MeFhb8/DUTYi8EAnmjweSY6xseHz4SbW1tvnHjBz3doqTkzPCIc//Y+xlS+uBBY3j4OYaD 9ZJA/y5hz9WrN0Wi/l07N6LVdXS0QkKWokmN0U68qampr6ysDdu8asK98qiSS0urjp/4mcW0C1w8 t0vYk5LCbed3/PObLWpqatnZBbzqunXr3svKyr8Ym8Jk2jU2tnR19axYvmBiFYNgob9PLJFIO56d KvhGM2uW2datHwIAzp9PeNE1b5O9EAhkfGByzHfuFBIIGrt3bSKRiAAATU3yT9FXWlrajY1nAABy covJZOKOHRvRw8bj4tJEoj4q9emUmkImebCZypv4NeGGgYGut7fb+E15Gck3M3MNDfV27NiAnEhD o1HPnIlraGy2tJgpEvVRKCT/uV4tLfz8/FIAQFFRBR6Pc3NzmnDdIGPi4uIQfvQbzYk4ovu1o609 HfkiXLqU+qJr3iZ7IRDI+MDkmL29XF1dGIhXBgCYmhoBAITCXsQxy2QyTQoF9cpaNCoAQCYbxK7E K54uAwA4HJYmhYyeE0e3sQQAtLd1WFrMfF5IcUmlk5MthUKaWN0gGPmrvbf5r2YvBAIZASbHbG1t rphsetwGADB8dv6MvZ3V7duFNbUNdBsLAEBubrGBga6OzsgfF4lEisfj8Xjc8/Jf8XQZAODr466Y FIufAADQkYciHR3CR49aMB7lC3me3367l5LKbW0VkMlEVxfGmjVLp03DNB1UviL7r2/DqVRNf3+v mJjErq5uW/qssLBgXV0tpFQulyckZty8mSORSF1dGf5zvUYIz8srSUrObGnhk0hEJyf66tVLdHW0 sEgOjzhfWFgOAGhtFeTmFgMA1NXVz509OL7OmSh7lVsEgUDeLF5uhioU9t69WxYXl+rr445+7b28 XGfNMj1+PKalpT02NqWisjZE4XB4AECXsGfX7v2bw/Zu2rznyNGzItGf3s6NTGqXBc2bpOkyFsl3 7hQSiQQ63RIAoEHQkMkGWlsFAkEXQUODx3uor6/j4uIwsbr9RSgqqoiMijU01P/4o9ULF/rdK6o4 fCRaLpdjqYusyG7d+iGNRh31gq6unoyMnPffC3hvWUDtg4YTJ35Gi7jc/ISEG9ZW5ps2fmBubhL/ 6/URWp04+YupqVFY2Kr33ptfXV2/b9+pgYFBLJIXLfTbuvVDbe3ptraWiHpbPgt9uU6ZBHvHtAgC gbxBvNyxj7u/3C+VyuztrTZu/ADNxOHUd+3c9P0PZ/b8zw9yuTxs8ypXV4ZiLbH4iY21eWhIkFDY E3sp5djxmD1ff4yWopParKy86LPxkaf+TaGQVbTqpSSnX8vOzMpbu3YZEqz28nTOyMj58qsDAIDg VYt9fNzd3Z3wo21Y+4sgFj8ZGhoekUkmk0YNfowg/Vq2qanR59vWIQM1XR2tyKjYxsYWCwuTMSWP uSLb0SH85h+foXGOK/HX+PxOAwNdAED27QIzM+Pt29ejA8Samnq0Ylp6tp2d1aefhCBJczOT/+47 ef9+NXrfKpGMRI+uXEnX1dV+fueEKn2lir1jWgSBQN4gXs7fbP9ife2DhuTkrPPnE9avX47mt7UJ OjqENBq1u7uXV13n7e2Kw/3xS0Qmk7ZtW0cgaAAA5HJ59Nn4pqZWZKH61a8uKyKRSM/8GFdQUB68 anHAfB8k08TE8PD/7X3c3KZFo2ppUfcfiKysrNXQwK9cuXDhAr+JVfKN4OCh0w8fPhqRifHRo5YW vqenM+odWSy71cGBqGtRRTIAwNJyJirK3t4KANDRIUQclUAg9PRkoe3a0i0VK7a28tnuTDRygwSE OzqFWCQrR0WLlKNEqzEtgkAgbxAv55gZDBsGw8bYyCDiWMw777gisd+2NsHBQ6dtbCy2bf2wivcw IuI8DofbsH4FUiU0NCh4MBDxygAAJtMWANDQ8BhxzAkJN3R0aEymnUjUL5FIAQB9fWICgYBlhqGc MSWLxZJ9+0+2tXVs377exflPkWoKhdTWKkhN5XpynCsrazdvWlV+nxcXlxYw33fCBxBTn7+vW/7k iWREpqmZEZa6Q0NDik/HUanTFi2aMyGSAQDofkP08+Dg4LN2BxXbVbwS0SqLm5fFzVPMHB4eHvX6 EZKVo6JFylFq7xgWQSCQN4jxRGjZbCaJRCwtq0Icc3z8dQqF/Pm2dUQiwcXZITg4MCYmccG7vsie 7RELZhQKBQDw5IkUSdbVN4nFki1bv0Uv2Llr34TMMMaUHBl1saVFsOfrj0ZsbUO4dv32zJmGyI+s u7ujVCq7e7dsYGAAhxtlg9jbDRJ2frMkjwmHw/qbv7dizowZeqqLffssgkAgrx5Mjjk+/rq1jTnr mUtTU1PD43BSqQxJVvEeurs5EokEJMnxYMXEJPKq6xDHXFLyOx6Pc3KyRUr7+voBAOijRzt3bETX 5IpLKq9du71jx4ZZVmaqG6Zcck1NfXFx5drQZaN65ebm9qam1qCl8/r7xapr8lcGh8MNKMw1RaK+ W9kFbHcnQ0P9SW4Xr9juiG1QOByOQiYj0WAAgFwul0plI2bVylFTUwfPtrDxquu6hb2ens4qaz1+ VLcIAoFMHTAFZu8V3U9KykQ309bVNfX1i83MjJEkmUxs53eiF/P5nQAAMump60X25cpkA2gSAGBt bYEk6XRLe3sr5M/IUB8AYEu3nDYRb1dQLrmgsJxIJMyZwxm1bl5eCR6PY7Em5vWNf2WMjQ14vDr0 ziktrYqLS5NIZJPdrr6+dnV1PdputcLOL0Sr8vs81FvX1jZsDttbVsbDLp9KpQievZzramJGSip3 IrQeP6pbBIFApg6YxtSLFvpFnb50NPwcm+3U29uXlpatr6/jyXk6RfCf63XhYnJkVCzTybZX1JeW lq2tPd3Z2R4pDQjwycktOngoym+2R0dnd3JyJofDMjR8zUG25sdtNBq1tKxKMdOWbkmjUeVyeV5+ CcPBhkQiUjTJAIDMzLzqmnoCgYCulEMwsnCB35GjZ4+Gn+N4sPiCzpQULt3GwtzcGEvdxsZmZMAn lcoEHcKCwnIAgKuLA5Yd8n6zPaLPxh8+HO3p6cwXdI5wUYsWzjl8JPrgodN+s9lisSQ1jauvp+Po SMdul7ub0y8XkhISbqirq1f+/uD99wNUt0gVe1W3CAKBTB0wOWZfXzZQU0tN5UZFXSIQNBwd6aGh QWjsesGC2Tgc7kbGb/n5JQSChq3trNCQIDL56YzZzMx4967NsbEpZ368TCGTfH3YISFLJssazEik Mj6/MyLivGImsgJdV9fE53cibxRxd3Nks5kJiTdIJGJoaBD6pjAIRtzcHD8KC05J5Z48dYFCIbHd ndb8+Rl3JdzKLrh5Mwf53NMj4vEeAgBOHP+WSh37pp0717O7R3TzZk5FZY2Ls8OK5Qv2H4hES11d GVs+W5t4NeP0mTgSiWBvbx2yZulLjbrmz/dp53empWcPD8tnz2ZjfP+McotUsVd1iyAQyNRBTdjT P/ZVEAgEAoFAXglwCgiBQCAQyBQCOmYIBAKBQKYQ0DFDIBAIBDKFgI4ZAoFAIJApBHTMEAgEAoFM IaBjhkAgEAhkCgEdMwQCgUAgUwjomCEQCAQCmUJAxwyBQCAQyBQCOmYIBAKBQKYQWA+GKy2tunwl vbm5TUNDg8Wy+3Dte9OnT0NL7xVVXLmS3t7eQSAQXF0ZoSFBmppkpOj48Z/z75Yqipo2jXLyxP8+ 38T+A5ECQdfBA1/hcBM8XBhVcn5+aeLVjNZWAYlEdHF2CAlZSqVqAgBEov5jx2Kqa+potOkbN6xg Mu3kcvkX2/9jYmL45e7NE6sY5C/Fv74Np1I1d+7YOEnya2obDh06bW9vtWP7hklqYsL58qsDlpam n3y85nUrAoFMITA55vqGx4ePRFtbm2/c+EFPtygpOTM84tw/9n6GlD540Bgefo7hYL0k0L9L2HP1 6k2RqH/Xzj9+fXR0tEJClqJJjdFOy6mpqa+srA3bvGrCvfKokktLq46f+JnFtAtcPLdL2JOSwm3n d/zzmy1qamrZ2QW86rp1697Lysq/GJvCZNo1NrZ0dfWsWL5gYhWDQCaW/j6xRCLteHYeJQQCeUPB 5Jjv3CkkEDR279pEIhEBAJqa5J+ir7S0tBsbzwAA5OQWk8nEHTs2ogezx8WliUR9VOrTKTWFTPJg M5U38WvCDQMDXW9vt/Gb8jKSb2bmGhrq7dixATkwikajnjkT19DYbGkxUyTqo1BI/nO9Wlr4+fml AICiogo8Hufm5jThukEgE4iLi0P40W80J+I4cwgE8hrB5Ji9vVxdXRiIVwYAmJoaAQCEwl7EMctk Mk0KBfXKWjQqAEAmG8SuxCueLgMAOByWJoWMHuNIt7EEALS3dVhazHxeSHFJpZOTLYVCmljdIJAJ R1ub9rpVgEAgqoLJMVtbmysmmx63AQAMjfSRpL2d1e3bhTW1DXQbCwBAbm6xgYGujs7IHwiJRIrH 4/F43PPyX/F0GQDg6+OumBSLnwAA0JGHIh0dwkePWjAeuAt5WX777V5KKre1VUAmE11dGGvWLJ02 DdOETy6XJyRm3LyZI5FIXV0Z/nO99u0/hZyoDZ5bza2vb/rn/zuKlgIA8vJKkpIzW1r4JBLRyYm+ evUSXR0tVPitW3fT0m/x+V1EogZytrG+vg7G0jG5V1Rx4UJSV1f3rFlmGzesMDExRC1KSeVyufmd nd0kEsGRQQ8NXaatPR1Lu0VFFUeOnkU++/q4h4UFj2h03P2svN3Pv/gP3cbis89CkWRLK/+rrw5u 2vSB32wP8Oy/4O/vFROT2NXVbUufFRYWrKv7tJ/DI84XFpYDAFpbBbm5xQAAdXX1c2cPYumN778/ U/ug8Ycf9kzTpAAAfv31ekJixr/+3zYrKzOMRkEgU5mXm6EKhb1375bFxaX6+rijP2ReXq6zZpke Px7T0tIeG5tSUVkbsmapmpoaWqtL2LNr9/7NYXs3bd5z5OhZkehPJ0Ajk9plQfMmabqMRfKdO4VE IoFOtwQAaBA0ZLKB1laBQNBF0NDg8R7q6+u4uDhMrG4QAEBRUUVkVKyhof7HH61euNDvXlHF4SPR crkcS10uNz8h4Ya1lfmmjR+Ym5vE/3r9pdo9cfIXU1OjsLBV7703v7q6ft++UwMDT2M8JSW///jT ZdOZRps3f7D8/QV1dY++//4MqpXy0jHpEAhvcfOXL3/3g5WLmpvbD31/ZnDwabspKdy4uDQWy/7j j1YvC5pfXVN/6PvTGNudNcts69YPt279kEajjmrvuPtZebsuzvYVFTXDw8NIsrycBwBwZtmj1bu6 ejIyct5/L+C9ZQG1DxpOnPgZLVq00G/r1g+1tafb2loiym955uDH7I2QkCCpVJaYmAEAEAp7U9Nu +fi4Q68MeWvAuisbYfeX+6VSmb291caNH6CZOJz6rp2bvv/hzJ7/+UEul4dtXuXqylCsJRY/sbE2 Dw0JEgp7Yi+lHDses+frj9FSdFKblZUXfTY+8tS/KRSyila9lOT0a9mZWXlr1y5DgtVens4ZGTlf fnUAABC8arGPj7u7uxN+tA1rEACAWPxkaGh4RCaZTBo1NDKC9GvZpqZGn29bhwzjdHW0IqNiGxtb LCxMxpScfbvAzMx4+/b16BCwpqYeo85p6dl2dlaffhKCJM3NTP677+T9+9XIfVtaWqWtPX3LlrWI 5BmGetev3+nt7UN8nvLSMXuju7v3X//aRiQSAAD6+jrhEecrK2tZLHsAgKCjK2C+z9q1y5Ar9fS0 wyPONzQ8trQ0HbNdbe3pyDaOS5dSJ7aflbfLcrbPzMp7+PCRjY0FAOD+/RpLi5mKg4OODuE3//gM jUVdib/G53caGOiCZ3G4K1fSdXW1n9+Dorw3jIz0A+b73Mj4LWC+T1Jyprq6+gcrFyn5j0MgbxYv 52+2f7G+9kFDcnLW+fMJ69cvR/Pb2gQdHUIajdrd3currvP2dsXh/vhdJpNJ27atIxA0AAByuTz6 bHxTUyuyUP3qV5cVkUikZ36MKygoD161OGC+D5JpYmJ4+P/2Pm5u06JRtbSo+w9EVlbWamjgV65c uHCB38Qq+RZw8NDphw8fjchUDBoroaWF7+npjHpWFstudXAg+iOuXLJAIPT0ZKF1bemW2HVubeWz 3Zlo5AYJrnZ0Pt3MrKun1dvbX11dZ2dnBQBgMe1YCrYoLx2zN8wtTBCvDACwt7cGAAiebaLesH4F 8kEmk0mlA8ggsq9PjKVd5ajSz8rbZTjYaGjgy8urbWwsBgYGebyHi/+86GNpORNtyN7eCgDQ0SFE HLNylPcGAGDZsvk5uUWnIi8+eNC4cuVCxZg/BPKm83KOmcGwYTBsjI0MIo7FvPOOKxL7bWsTHDx0 2sbGYtvWD6t4DyMizuNwOPR7FRoaFDwYiHhlAACTaQsAaGh4jDjmhIQbOjo0JtNOJOqXSKQAgL4+ MYFAwDLfUs6YksViyb79J9vaOrZvX+/i/KdINYVCamsVpKZyPTnOlZW1mzetKr/Pi4tLC5jvO+ED iDedv69b/uSJZESmqZkRlrpDQ0OKz85RqdMWLZqDUfLQ0KBiXXTvIcZ2s7h5Wdw8xUw0Hhsw36es tOq7/540NjJwdKL7zfYwMzNGL1NeOmZvKOqJ3IpoKHt4eDgllZuZmdvV1YNegwZvlbc7pr3j7mfl 7RIIGgyGTVk5b/nyd3nVdTLZgIuzvaIcRXuRz6i9ylHeGwAACoX0wcpFZ36MMzDQXbhgNhaZEMib wngitGw2k0QilpZVIY45Pv46hUL+fNs6IpHg4uwQHBwYE5O44F1fZM/2iEUvCoUCAHjyRIok6+qb xGLJlq3fohfs3LUP43xLOWNKjoy62NIi2PP1RyO2tiFcu3575kxD5AfL3d1RKpXdvVs2MDCAw42y QeyvDBIOfbMkAwA4HNbf/L0Vc2bM0EM+kEjEvXs/LSqqyL9bdufOvYyMnJUrFy4J9MdSqorOvybc SErKnDfP25FBJ5NJrW386Oh4tFR5u6qgXOcx23Vm2Z87nyAS9ZWX82g0qsVozzWMA+W9gYCsPZFI RPTxCgjk7QCTY46Pv25tY46GsNTU1PA4nFQqQ5JVvIfubo5ogI7jwYqJSeRV1yGOuaTkdzwe5+Rk i5T29fWDZ98oAMDOHRvR9a3ikspr127v2LFh1kRs4lAuuaamvri4cm3oslG9cnNze1NTa9DSef39 4udLIRMFDocbUJg/iUR9t7IL2O5Ohob6GOriFeuiW7cQ8HicYs6IUhwORyGTkcgqAEAul0ulMsW5 nbq6OpvNZLOZg4NDly+nxcWlcTxYaABWealyBhU0GRwcAgCg2xdycoq8vVw/XPseknw+BjDudlXp 5zHbdXZ2OHvu1/L71eXl1SyWneKuTyyoqamDZ/NgXnVdt7DX09MZYOgNmUz2y4UkYyODR49asrLy 5s1756XahUCmMphGmveK7iclZaJxpLq6pr5+MRrRIpOJ7fxO9GI+vxMAQCY9db3IjlCZbABNAgCs rS2QJJ1uaW9vhfwZGeoDAGzpltMm4g0JyiUXFJYTiYQ5czij1s3LK8HjcSyWqrN2iHKMjQ14vDr0 viotrYqLS5NIZFjq6utrV1fXo3Wr/7zzS09Xp77+MbKEAQCoqno4ot3y+zzUW9fWNmwO21tWxkOS P0VfiYlJRD7j8ThnZwcAQFdXN5bSMWloaP5jRFv1AACgr6eNJAcGBoeGhtArq3h/0lmVdlXp5zHb 1dXVMjU1unWroKWlfcSSEBaoVAq6yn41MSMllYt8Vt4bAICkpKyurp4tW9Z6eLAuX7kmEvW9bNMQ yJQF04x50UK/qNOXjoafY7Odenv70tKy9fV1PDnOSKn/XK8LF5Mjo2KZTra9or60tGxt7enOz5aa AgJ8cnKLDh6K8pvt0dHZnZycyeGwDA31JssgbDQ/bqPRqKVlVYqZtnRLGo0ql8vz8ksYDjYkEpGi SQYAZGbmVdfUEwgEdKUcMiEsXOB35OjZo+HnOB4svqAzJYVLt7EwN8e0dOo32yP6bPzhw9FeXi4d ncLi4krFUh8ft5zcou9/ODPHj9PZ2V1S+rti6aKFcw4fiT546LTfbLZYLElN4+rr6Tg60pFSfT2d uMtpw3K5jbW5+IkkLe2WtjZt1ixTLKVjMp1GDY84/463a3d379WkTF1dLQbDBimyt7e6e7fMYIau 6UyjhobHI1yR8nYbG5uRwbFUKhN0CAsKywEAri4OyHRclX7GYq+zs31ychYOh0P7EDvubk6/XEhK SLihrq5e+fuD998PwNIb7e0dqWlc/7mepqZGq4MXf/lV5aW4tE0Kj4pAIG80mByzry8bqKmlpnKj oi4RCBqOjvTQ0CA0dr1gwWwcDncj47f8/BICQcPWdlZoSBCZ/HTGbGZmvHvX5tjYlDM/XqaQSb4+ 7JCQJZNlDWYkUhmf3xkRcV4xE1mBrqtr4vM7kTeKuLs5stnMhMQbJBIxNDQILmVNLG5ujh+FBaek ck+eukChkNjuTmv+/AS8EubO9ezuEd28mVNRWePi7LBi+YL9ByLRUuQWTUrK/Cn6iqsrY+WKhYql rq6MLZ+tTbyacfpMHIlEQF6agY66AgPnyoGcy83PysojkQh2dlargwMJBAKW0jExMNDx9WXHxqag LxhBQ9mhIUFisSQ9PVtDA8/xcF69esl3351AKypv91Z2wc2bOcjnnh4Rj/cQAHDi+LdUKl7FfsZi r7OzQ3Jylr3drFFf0aOc+fN92vmdaenZw8Py2bPZ6Jt8lPfGz79c1dDQWL78XQCAnp7OggWzU1K4 /nM9Z82CjzJD3gbUhD39Y18FgUxtamrq//2f43u+/tjBwfp16/KXo7Or+4sv/hMSsnTBu3B3NAQy AcApIOSN5ND3Z/btO4UmedV1AAAjI0y7mSATy/3yagCAMwu+HQ8CmRjgC60gbyQebOaZH+OQnQ1t 7R3JyZkeHix4hMNrobSsytBQ/7VvHIFA3hqgY4a8kfj5eQwMDFy/cScvr5hMJvn5cVYHL37dSv0V GRwcrKio8Z/r9boVgUDeHuAaMwQCgUAgUwi4xgyBQCAQyBQCOmYIBAKBQKYQ0DFDIBAIBDKFgI4Z AoFAIJApBHTMEAgEAoFMIaBjhkAgEAhkCoH1OebS0qrLV9Kbm9s0NDRYLLsP1743ffo0tPReUcWV K+nt7R0EAsHVlREaEqSpSUaKjh//Of9uqaKoadMoJ0/87/NN7D8QKRB0HTzwFQ43wcOFUSXn55cm Xs1obRWQSEQXZ4eQkKVUqiYAQCTqP3YsprqmjkabvnHDCibTTi6Xf7H9PyYmhl/u3jyxikEgL8WX Xx2wtDT95OM1r7guBAJ5lWByzPUNjw8fiba2Nt+48YOeblFScmZ4xLl/7P0MKX3woDE8/BzDwXpJ oH+XsOfq1ZsiUf+unRvR6jo6WiEhS9GkBn6URmtq6isra8M2r5pwrzyq5NLSquMnfmYx7QIXz+0S 9qSkcNv5Hf/8Zouamlp2dgGvum7duveysvIvxqYwmXaNjS1dXT0rli+YWMUgEAgEAnkeTI75zp1C AkFj965NyOkxmprkn6KvtLS0GxvPAADk5BaTycQdOzaih5nHxaWJRH1U6tMpNYVM8mAzlTfxa8IN AwNdb2+38ZvyMpJvZuYaGurt2LEBOTCKRqOeORPX0NhsaTFTJOqjUEj+c71aWvj5+aUAgKKiCjwe 5+bmNOG6QSAQCAQyAkyO2dvL1dWFgZ7pZmpqBAAQCnsRxyyTyTQpFNQra9GoAACZbBC7Eq94ugwA 4HBYmhQyeowj3cYSANDe1mFpMfN5IcUllU5OthQKaWJ1g0AgEAjkeTA5Zmtrc8Vk0+M2AIDhs5N8 7O2sbt8urKltoNtYAAByc4sNDHR1dEYeJyCRSPF4PB6Pe17+K54uAwB8fdwVk2LxEwDAqKfJdnQI Hz1qQY+JhbxKfvvtXkoqt7VVQCYTXV0Ya9YsnTaNgqXiv74Np1I1/fw4Fy4koScfm5gYIqVyuTwl lcvl5nd2dpNIBEcGPTR0mbb2dLT6yVMX6uubPv0k9OSpCy0S2HcAACAASURBVAJBJ9vdKSwsGId7 euveunU3Lf0Wn99FJGogZznr6+ugdfPySpKSM1ta+CQS0cmJvnr1El0dLYz2KpEcHnG+sLAcANDa KsjNLQYAqKurnzt7EItFyuuqqDMEAplwcF/v2Yv9aqGwt7yc98uFqxwPFurbTEwMy+/z7twpZDHt UlNv5eQWh20ONjY2QEoLC8sbGpuzswsuxqakpGQ1NDYzGDZE4h8HrdfU1F+JvxayZqnFaLNVVcAu OSnpZksLPzR0mYYGvrqmvrq6zoPNKigo6+8T6+vrPHrUEhoShB9taRwyeRQVVRw/8TOdbrksaJ6x sUF2dsHvVQ9m+7LV1NTGrHsr+66ot5/f3hHwro+1lXnhvfsFheXz5nkjMZKUFG7c5TRvb9d3A3wt LGbm5ZcWFVX4+3uhku/du9/V1VNTWz/Hz0NPT/tWdsGMGXpmZsYAgJKS30+c/MXB3jowcK61lcXd gtLCgvJ587yRukVFFRHHYhgMm8WL58yaZZqXV5qXVzJ3rieWUJByybq6WkymXW1tvbm58Zo1Szkc FseDaWIyA6mr3CLldVXRGQKBTAYv52x2f7lfKpXZ21tt3PgBmonDqe/auen7H87s+Z8f5HJ52OZV rq4MxVpi8RMba/PQkCChsCf2Usqx4zF7vv4YLUUntVlZedFn4yNP/ZtCIato1UtJTr+WnZmVt3bt MiRY7eXpnJGR8+VXBwAAwasW+/i4u7s7Qa88PsTiJ0NDwyMyyWTSqIGTEaRfyzY1Nfp827qn3kVH KzIqtrGxxcLCBIvk7u7ef/1rGzIE1NfXCY84X1lZy2LZAwAEHV0B833Wrl2GXKmnpx0ecb6h4bGl pSkqis/vXP/35QyGjVwuLy/ndXZ1I/mlpVXa2tO3bFmLaDXDUO/69Tu9vX00GhUAkJaebWdn9ekn IcjF5mYm/9138v79auQboVxn5ZKRqNWVK+m6utrP79hQbpHyusp1hkAgr56X8zfbv1hf+6AhOTnr /PmE9euXo/ltbYKODiGNRu3u7uVV13l7u6JxPwAAmUzatm0dgaABAJDL5dFn45uaWpGF6le/uqyI RCI982NcQUF58KrFAfN9kEwTE8PD/7f3cXObFo2qpUXdfyCysrJWQwO/cuXChQv8JlbJt56Dh04/ fPhoRObuXZuYTLsx67a08D09ndFZLItltzo4EF1uGFOyuYUJGpixt7cGAAg6hEhyw/oVyAeZTCaV DiDDtb4+saIoIpHg4GANAFBTUzt08Gs0X1dPq7e3v7q6zs7OCgDAYtqxFGxpbeWz3Zki0dMT23R1 tQAAHZ1CLDorl6wcLBa9COU6QyCQV8/LOWYGw4bBsDE2Mog4FvPOO650uiUAoK1NcPDQaRsbi21b P6ziPYyIOI/D4dBfitDQoODBQMQrAwCYTFsAQEPDY8QxJyTc0NGhMZl2IlG/RCIFAPT1iQkEApYZ lXLGlCwWS/btP9nW1rF9+3oXZwfFuhQKqa1VkJrK9eQ4V1bWbt60qvw+Ly4uLWC+L4zvvRR/X7f8 yRPJiExTMyMsdYeGhhSfrKNSpy1aNAe7ZHQ3IgAA+acPDj7dkDg8PJySys3MzO3q6kGvkcvliqK0 tKijxswD5vuUlVZ999+TxkYGjk50v9keSIgb1TmLm5fFzVOsMjw8jEVn5ZKVg8WiF6FcZwgE8uoZ T4SWzWaSSMTSsirEMcfHX6dQyJ9vW0ckElycHYKDA2NiEhe864vs2UYCcSgUCgUA8OSJFEnW1TeJ xZItW79FL9i5ax/GGZVyxpQcGXWxpUWw5+uPRmxtQ7h2/fbMmYbIz6i7u6NUKrt7t2xgYACHG2WD GORFIGHnqSb514QbSUmZ8+Z5OzLoZDKptY0fHR0/4poXrWSTSMS9ez8tKqrIv1t25869jIyclSsX Lgn0Ry/gcFh/8/dWrDJjhh4WnceUrKJFSlCiMwQCefVgcszx8detbczRwJqamhoeh5NKZUiyivfQ 3c0RDRtyPFgxMYm86jrEMZeU/I7H45ycbJHSvr5+AAD66NHOHRvRVbfikspr127v2LFhlpWZ6oYp l1xTU19cXLk2dNmoXrm5ub2pqTVo6bz+fkzBQMhkgMPhBgb/eOhOJOq7lV3AdncyNNTHUn1w4I+6 g4NDAAB0o0BOTpG3l+uHa99Dkopzayyoq6uz2Uw2mzk4OHT5clpcXBrHg2VgoIvoTCGT7e2tkCvl crlUKsMuX4lkBDU1dfBsHsyrrusW9np6OmO06EV1VdQZAoFMOJgCs/eK7iclZaKRsbq6pr5+MRpn I5OJ7fxO9GI+vxMAQCY9db1FRRWRUbEy2QCaBABYW1sgSTrd0t7eCvkzMtQHANjSLadpYnokRjnK JRcUlhOJhDlzOKPWzcsrweNxLJaqs3aIKhgbG/B4dehdV1paFReXJpHIMFZvaGj+Y+xY9QAAoK+n jSQHBgaHhobQK6t4D7Fr9VP0lZiYROQzHo9zdnYAAHQ92xpmbGxQfp838GxMUFvbsDlsb1kZT3XJ CFQqBV0pv5qYkZLKxW7Ri+qqojMEApkMMI2LFy30izp96Wj4OTbbqbe3Ly0tW19fx5PjjJT6z/W6 cDE5MiqW6WTbK+pLS8vW1p7u7GyPlAYE+OTkFh08FOU326Ojszs5OZPDYRkavuZAWfPjNhqNWlpW pZhpS7ek0ahyuTwvv4ThYEMiESmaZABAZmZedU09gUBAV8ohr4CFC/yOHD17NPwcx4PFF3SmpHDp Nhbm5liXXafTqOER59/xdu3u7r2alKmrq8Vg2CBF9vZWd++WGczQNZ1p1NDw+KUcs76eTtzltGG5 3MbaXPxEkpZ2S1ubNmvW0+3cixbOOXwk+uCh036z2WKxJDWNq6+n4+hIV10ygrub0y8XkhISbqir q1f+/uD99wOwW/SiuqroDIFAJgNMjtnXlw3U1FJTuVFRlwgEDUdHemhoEBq7XrBgNg6Hu5HxW35+ CYGgYWs7KzQkiEx+OmM2MzPevWtzbGzKmR8vU8gkXx92SMiSybIGMxKpjM/vjIg4r5iJrEDX1TXx +Z3IG0Xc3RzZbGZC4g0SiRgaGoS+KQzyCnBzc/woLDgllXvy1AUKhcR2d1qzZimWh5gRDAx0fH3Z sbEp6AtG0FB2aEiQWCxJT8/W0MBzPJxXr17y3XcnMIoNDJwrB3IuNz8rK49EItjZWa0ODiQQnn4X XF0ZWz5bm3g14/SZOBKJgLwkBON4TrlkhPnzfdr5nWnp2cPD8tmz2eh7b7BY9KK6qugMgUAmAzVh T//r1gECmWCQN3/t3LFx7EshEAhkigGngBAIBAKBTCGgY4ZAIBAIZAoBHTMEAoFAIFMIuMYMgUAg EMgUAs6YIRAIBAKZQkDHDIFAIBDIFAI6ZggEAoFAphDQMUMgEAgEMoWAjhkCgUAgkCkEdMwQCAQC gUwhsB7uVlpadflKenNzm4aGBotl9+Ha96ZPn4aW3iuquHIlvb29g0AguLoyQkOCNDXJSNHx4z/n 3y1VFDVtGuXkif99von9ByIFgq6DB77C4SZ4uDCq5Pz80sSrGa2tAhKJ6OLsEBKylErVBACIRP3H jsVU19TRaNM3bljBZNrJ5fIvtv/HxMTwy92bJ1YxCGQC+fKrA5aWpp98vOYV11XOgweNJ078Iujo ijz1bwqFPOHyIZC3D0yOub7h8eEj0dbW5hs3ftDTLUpKzgyPOPePvZ8hpQ8eNIaHn2M4WC8J9O8S 9ly9elMk6t+184/XFOvoaIWELEWTGvhRGq2pqa+srA3bvGrCvfKokktLq46f+JnFtAtcPLdL2JOS wm3nd/zzmy1qamrZ2QW86rp1697Lysq/GJvCZNo1NrZ0dfWsWL5gYhWDQN5u5HJ5enp23OU0HA73 unWBQN4kMDnmO3cKCQSN3bs2kUhEAICmJvmn6CstLe3GxjMAADm5xWQycceOjejh6nFxaSJRH5X6 dEpNIZM82EzlTfyacMPAQNfb2238pryM5JuZuYaGejt2bEAOjKLRqGfOxDU0NltazBSJ+igUkv9c r5YWfn5+KQCgqKgCj8e5uTlNuG4QyFtM9Nn4W7fuLlo0R4tG/eVC0utWBwJ5Y8DkmL29XF1dGIhX BgCYmhoBAITCXsQxy2QyTQoF9cpaNCoAQCYbxK7EK54uAwA4HJYmhYwe40i3sQQAtLd1WFrMfF5I cUmlk5MthUKaWN0gkLebuXM9OR4sBsMmIyPndesCgbxJYHLM1tbmismmx20AAEMjfSRpb2d1+3Zh TW0D3cYCAJCbW2xgoKujQxshRCKR4vF4PH6UoNYrni4DAHx93BWTYvETAAA68lCko0P46FELengt ZOrw22/3UlK5ra0CMpno6sJYs2bptGkULBWRQyH9/DgXLiShpzWbmBgipXK5PCWVy+Xmd3Z2k0gE RwY9NHSZtvZ0tPrJUxfq65s+/ST05KkLAkEn290pLCwYjdbeunU3Lf0Wn99FJGogZxvr6+ugdfPy SpKSM1ta+CQS0cmJvnr1El0dLYz2KpEcHnG+sLAcANDaKsjNLQYAqKurnzt7EItFyuuqovOow1wI BDImuK/37MV+tVDYW17O++XCVY4HC/VtJiaG5fd5d+4Usph2qam3cnKLwzYHGxsbIKWFheUNjc3Z 2QUXY1NSUrIaGpsZDBsi8Y/j32tq6q/EXwtZs9Rior/G2CUnJd1saeGHhi7T0MBX19RXV9d5sFkF BWX9fWJ9fZ1Hj1pCQ4Lwoy2NQ14XRUUVx0/8TKdbLguaZ2xskJ1d8HvVg9m+bDU1tTHr3sq+K+rt 57d3BLzrY21lXnjvfkFh+bx53kgEJSWFG3c5zdvb9d0AXwuLmXn5pUVFFf7+Xqjke/fud3X11NTW z/Hz0NPTvpVdMGOGnpmZMQCgpOT3Eyd/cbC3Dgyca21lcbegtLCgfN48b6RuUVFFxLEYBsNm8eI5 s2aZ5uWV5uWVzJ3riSVQpFyyrq4Wk2lXW1tvbm68Zs1SDofF8WCamMxA6iq3SHldVXRGqatrKivn LQn019DQwF4LAvnL8nLOZveX+6VSmb291caNH6CZOJz6rp2bvv/hzJ7/+UEul4dtXuXqylCsJRY/ sbE2Dw0JEgp7Yi+lHDses+frj9FSdFKblZUXfTZ+ArduYpScfi07Mytv7dplSLDay9M5IyPny68O AACCVy328XF3d3eCXnkyEIufDA0Nj8gkk0mjhlVGkH4t29TU6PNt6556Fx2tyKjYxsYWCwsTLJK7 u3v/9a9tyABRX18nPOJ8ZWUti2UPABB0dAXM91m7dhlypZ6ednjE+YaGx5aWpqgoPr9z/d+XMxg2 crm8vJzX2dWN5JeWVmlrT9+yZS2i1QxDvevX7/T29tFoVABAWnq2nZ3Vp5+EIBebm5n8d9/J+/er ke+Lcp2VS0ZiWleupOvqaj+/n0O5RcrrqqIzBAIZHy/nb7Z/sb72QUNyctb58wnr1y9H89vaBB0d QhqN2t3dy6uu8/Z2VdyHSSaTtm1bRyBoAADkcnn02fimplZkofrVry4rIpFIz/wYV1BQHrxqccB8 HyTTxMTw8P/tfdzcpkWjamlR9x+IrKys1dDAr1y5cOECv4lV8i/OwUOnHz58NCJz965NTKbdmHVb Wviens7oLJbFslsdHIguRowp2dzCBA3b2NtbAwAEHUIkuWH9CuSDTCaTSgeQwVxfn1hRFJFIcHCw BgCoqakdOvg1mq+rp9Xb219dXWdnZwUAYDHtWAq2tLby2e5MkejpeW66uloAgI5OIRadlUtWDhaL XoQqOkMgkPHxco6ZwbBhMGyMjQwijsW8844rnW4JAGhrExw8dNrGxmLb1g+reA8jIs7jcDj0tyA0 NCh4MBDxygAAJtMWANDQ8BhxzAkJN3R0aEymnUjUL5FIAQB9fWICgaD6iHtMyWKxZN/+k21tHdu3 r3dxdlCsS6GQ2loFqalcT45zZWXt5k2ryu/z4uLSAub7TvgA4q/M39ctf/JEMiLT1MwIS92hoSHF 5+6o1GmLFs3BLhndqwgAQG6JwcGn2xWHh4dTUrmZmbldXT3oNXK5XFGUlhZ11Jh5wHyfstKq7/57 0tjIwNGJ7jfbAwlxozpncfOyuHmKVYaHh7HorFyycrBY9CJU0RkCgYyP8URo2WwmiUQsLatCHHN8 /HUKhfz5tnVEIsHF2SE4ODAmJnHBu77Inm0k1IZCoVAAAE+eSJFkXX2TWCzZsvVb9IKdu/ZNyIh7 TMmRURdbWgR7vv5oxNY2hGvXb8+caYj86Li7O0qlsrt3ywYGBnC4UTaIQcYHEnaeapJ/TbiRlJQ5 b563I4NOJpNa2/jR0fEjrnnRSjaJRNy799Oioor8u2V37tzLyMhZuXLhkkB/9AIOh/U3f2/FKjNm 6GHReUzJKlqkhHHrDIFAxgcmxxwff93axhwNnampqeFxOKlUhiSreA/d3RzRwCDHgxUTk8irrkMc c0nJ73g8zsnJFint6+sHAKCPHu3csRFdoyouqbx27faOHRtmWZmpbphyyTU19cXFlWtDl43qlZub 25uaWoOWzuvvxxTug7x6cDjcwOAfj+SJRH23sgvY7k6GhvpYqg8O/FF3cHAIAIBuI8jJKfL2cv1w 7XtIUnFujQV1dXU2m8lmMwcHhy5fTouLS+N4sAwMdBGdKWSyvb0VcqVcLpdKZdjlK5GMoKamDp7N g3nVdd3CXk9PZ4wWvaiuijpDIJBxgCkwe6/oflJSJhr7qqtr6usXo5E0MpnYzu9EL+bzOwEAZNJT 11tUVBEZFSuTDaBJAIC1tQWSpNMt7e2tkD8jQ30AgC3dcpompodelKNcckFhOZFImDOHM2rdvLwS PB7HYsF1sqmLsbEBj1eH3pOlpVVxcWkSiQxj9YaG5j9GllUPAAD6etpIcmBgcGhoCL2yivcQu1Y/ RV+JiUlEPuPxOGdnBwBA17OtYcbGBuX3eQPPxgS1tQ2bw/aWlfFUl4xApVLQlfKriRkpqVzsFr2o rio6QyCQ8YFp5LtooV/U6UtHw8+x2U69vX1padn6+jqeHGek1H+u14WLyZFRsUwn215RX1patrb2 dGdne6Q0IMAnJ7fo4KEov9keHZ3dycmZHA7L0FBvsgzCRvPjNhqNWlpWpZhpS7ek0ahyuTwvv4Th YEMiESmaZABAZmZedU09gUBAV8ohr52FC/yOHD17NPwcx4PFF3SmpHDpNhbm5liXXafTqOER59/x du3u7r2alKmrq8Vg2CBF9vZWd++WGczQNZ1p1NDw+KUcs76eTtzltGG53MbaXPxEkpZ2S1ubNmvW 0+3cixbOOXwk+uCh036z2WKxJDWNq6+n4+hIV10ygrub0y8XkhISbqirq1f+/uD99wOwW/Siuqro DIFAxgcmx+zrywZqaqmp3KioSwSChqMjPTQ0CI1dL1gwG4fD3cj4LT+/hEDQsLWdFRoSRCY/nTGb mRnv3rU5NjblzI+XKWSSrw87JGTJZFmDGYlUxud3RkScV8xEVqDr6pr4/E7kjSLubo5sNjMh8QaJ RAwNDULfFAZ57bi5OX4UFpySyj156gKFQmK7O61ZsxTLQ8wIBgY6vr7s2NgU9AUjaCg7NCRILJak p2draOA5Hs6rVy/57rsTGMUGBs6VAzmXm5+VlUciEezsrFYHBxIIT78prq6MLf+fvfOOi+roHv6B LewuvUoR6UjvCBgUJVbsHQU01iS2qNEkvj75JXlSrHmMvZFYSAxiAZGiIgIqVZeOsKAUgaUssMAC wrLLvn9cvdkgXq4uKOp8P/zBnTNz5sy5u3vulDuzLijiatyp4DAGg45tEkLyaY9YM8bEid519Y0x sUk9PZKxY93xXXHItOhlZWWxGYFAvB5y/Jb2t20DAvFGwXb++nLLyv6zIhAIxBsHdQERCAQCgRhC oMCMQCAQCMQQAgVmBAKBQCCGEGiOGYFAIBCIIQTqMSMQCAQCMYRAgRmBQCAQiCEECswIBAKBQAwh UGBGIBAIBGIIgQIzAoFAIBBDCBSYEQgEAoEYQpA9vi07u/Dipdjq6loajeboaLU0aI6KihIufcDO v3Qptq6ugU6nu7jYBgbMUlRkYqIjR/5MS8+WVqWkxDp29L8vVrFr9wker2nP7q8plAF+XOhTc1pa dsTVuJoaHoOh4OxkExAwU1lZEQAEgvbDh0M4xaWqqiorV8x3cLCSSCSbNv9kYKD71bbVA2sYAvHG +Orr3SYmhp9/tuQNlx08Bs+qd1Ez4n2CVGAuK6/a/9tpc3OjlSsXtjQLIq/FHzx09j871mHSR48q Dh48a2tjPmO6bxO/5erVWwJB+9Yv/9mIWENDLSBgJn5Jo/ZRaXFxWUFByZrViwY8KvepOTu78MjR Px0drKZPG9/Eb4mKSqirb/i/b9fLycklJWUUcUqXLZtz+3ba36FRDg5WFRXcpqaW+fOmDKxhCAQC gUC8CKnAfPfufTqdtm3rKgZDAQAUFZl/nL7E5dbp6w8DgOSUTCZTYcuWlfjx6WFhMQJBm7Lysy41 i8kY5e5AXMWV8Js6OpqjR7u+flNeRfOt+BRdXa0tW1ZgB0apqioHB4eVV1SbGA8XCNpYLIbveC8u tz4tLRsA2Ox8KpXi6mo/4LYhEAgEAtELUoF5tJeLi7MtFpUBwNBQDwD4/FYsMAuFQkUWC4/KaqrK ACAUisgb8Ya7ywDg4eGoyGLixzhaWpgAQF1tg4nx8BeVZGYV2NuPZLEYA2sbAoFAIBAvQiowm5sb SV9WVtUCgK6eNnZpbWV258794pJySwtjAEhJydTR0dTQUO2lpLOzi0qlUqmUF/W/4e4yAIzxdpO+ 7Oh4CgD4k4c0DQ38J0+4+PG0iHeFe/ceREUn1NTwmEwFF2fbJUtmKimxyBTEDoX08fE4fz4SP63Z wEAXk0okkqjohISEtMbGZgaDbmdrGRg4W11dBS9+7Pj5srLKtZ8HHjt+nsdrdHezX7PGn0J59rFP TEyPiU2sr29SUKBhZxtra2vgZVNTsyKvxXO59QyGgr295eLFMzQ11Ei2l0DzwUPn7t/PBYCaGl5K SiYAyMvLnz2zh0yLiMvKYrNEIgmPiLt1K7mzs8vFxdZ3vNfOXcexM9H71dyvVYPkKyC8v4PnSWJf fbHpJ0sL43XrArHM3Jr6r7/es2rVQp+xo0g6BDHUoHyzfQf53Hx+a25u0V/nr3qMcsRjm4GBbm5e 0d279x0drKKjE5NTMtes9tfX18Gk9+/nlldUJyVl/B0aFRV1u7yi2tbWQkHhnwPei4vLLl2+HrBk pnFfvVVZIK85MvIWl1sfGDibRqNyiss4nNJR7o4ZGTntbR3a2hpPnnADA2ZR+5oaRwxN2Oz8I0f/ tLQ0mT1rgr6+TlJSxsPCR2PHuMvJyfVbNjEpXdDaXl/XMGmyt7mZ0f0HeRn3cydMGI2Nr0RFJYRd jBk92mXypDHGxsNT07LZ7HxfXy9c84MHeU1NLcUlZeN8RmlpqScmZQwbpjVihD4AZGU9PHrsLxtr 8+nTx5ubGadnZN/PyJ0wYTRWls3OP3Q4xNbWYtq0caamhqmp2ampWePHe5IZRiLWrKmp5uBgVVJS ZmSkv2TJTA8PR49RDgYGw7CyxC0iLiuLzQkJaX+HRtnaWMyc+TFdgY7Fs49GuwwbptWvZmKrBs9X xPd38DxJ7Ku6Wl5W1kM/Px+souQUdl4eZ8Xy+X32NBDvBK8WbLZ9taurS2htbbZy5UI8kUKR3/rl qn2/Bm//f79KJJI1qxe5uNhKl+roeGphbhQYMIvPbwm9EHX4SMj2bz7DpXin9vbt1NNnLp84/iOL xZSxVa+kOfZ6Uvzt1KCg2dhgtZenU1xc8ldf7wYA/0XTvL3d3NzsUVR+83R0PBWLe3olMpmMPgdd ehF7PcnQUO+Ljcue/SZqqJ04GVpRwTU2NiCjubm59fvvN2KPj9raGgcPnSsoKHF0tAYAXkPTpIne QUGzsZxaWuoHD50rL68yMTHEVdXXNy7/ZJ6trYVEIsnNLWpsasbSs7ML1dVV1q8Pwqwapqt148bd 1tY2VVVlAIiJTbKyMlv7eQCW2WiEwS87j+XlcbBvE7HNxJqxEa9Ll2I1NdVfXO1B3CLisrLYnHQn Y8QI/c2bl+PPNMXFZSQ1E1s1eL7CeNn9HTxPEvvK0ck6/nbq48dPLCyMASAvr9jEeDjWHMQ7yqvF m82blpc8Kr927fa5c+HLl8/D02treQ0NfFVV5ebm1iJO6ejRLvjYHQAwmYyNG5fR6TQAkEgkp89c rqyswSaq3/zssjSdnV3Bv4dlZOT6L5o2aaI3lmhgoLv/fzuqqmvVVJXV1JR37T5RUFBCo1EXLJg6 dYrPwBqJIGDP3lOPHz/plSg91EkAl1vv6emE/4o5Olot9p+OdyD61WxkbIAP6lhbmwMAr4GPXa5Y Ph/7RygUdnV1Y496bW0d0qoUFOg2NuYAICcnt3fPN3i6ppZaa2s7h1NqZWUGAI4OVo5SbampqXd3 cxAInp32pqmpBgANjXwyNhNrJoZMi16GLDbzeHxPT0f8Ho20NCGvmZjB8xXGy+7v4HmS2Fe2NhY0 GjU3l2NhYdzdLSoqejwNTb2947xaYLa1tbC1tdDX0zl0OOSjj1wsLU0AoLaWt2fvKQsL440blhYW PT506ByFQsE/o4GBs/xF07GoDAAODiMBoLy8CgvM4eE3NTRUHRysBIL2zs4uAGhr66DT6WR6RcT0 q7mjo3PnrmO1tQ2bNy93drKRLstiMWpreNHRCZ4eTgUFJatXLcrNKwoLi5k0ccyAP0AgXsYny+Y9 fdrZK9FwhB6ZsmKxWPqtPGVlJT+/ceQ14ysZAQD7wIhEzxYz9vT0REUnxMenNDW14HkkEom0KjU1 5T7HzCdN9M7JLvz5l2P6ejp29pY+Y0dhQ6C4zbcTcOL9QgAAIABJREFUUm8npEoX6enpIWMzsWZi yLToZchis1gskr5H0j7vVzMxg+crjJfd38HzJLGv6HSara1FTm7RvHmTizilQmG3s5M1+eYghiCv M0Lr7u7AYChk5xRigfny5RssFvOLjcsUFOjOTjb+/tNDQiKmTB6DrdnuNaLCYrEA4OnTLuyytKyy o6Nz/YYf8Axfbt1JsldETL+aT5z8m8vlbf/m015L2zCu37gzfLgu9vV2c7Pr6hKmp+d0d3dTKGja 5g2BDTsPNc1Xwm9GRsZPmDDaztaSyWTU1NafPn25V56XzWQzGAo7dqxls/PT0nPu3n0QF5e8YMHU GdN98QweHo4f+46WLoJNIvZrc7+aZWwRAa9tsyyaiRk8X2G87P4Onif7xcnR+uy5cIGgLTe3SFVV ecDX6yDeMKQC8+XLN8wtjPABHzk5OSqF0tUlxC4Lix67udrhQ38eoxxDQiKKOKVYYM7KekilUuzt R2LStrZ2AMBfPfpyy0p8Nigzq+D69TtbtqwwNRshe8OINRcXl2VmFgQFzu4zKldX11VW1syaOaG9 ndQwFGKoQaFQukX/vLAnELQlJmW4u9nr6mqTKS7q/qesSCQGAHyRQXIye7SXy9KgOdhlr75Lv8jL y7u7O7i7O4hE4osXY8LCYjxGOeroaGI2s5hMa2szLKdEIunqEpLXT6AZQ05OHp733oo4pc38Vk9P J5ItellZWWymUKjS96i7W/Rvaf+aX2ZVv7y2r4gZPE8S+woAnJxszpy9kpvHyc3lODpakVnkiBjK kBqYfcDOi4yMx8dkSksr29o78PEfJlOhrr4Rz1xf3wgATMaz0Mtm5584GSoUduOXAGBuboxdWlqa WFubYX96utoAMNLSREmR1GstxBBrzrifq6BAHzfOo8+yqalZVCrF0VHWXjvibaGvr1NUVIp/YrOz C8PCYjo7hSSLl5dX//PcWfgIALS11LHL7m6RWCzGcxYWPSZv1R+nL4WERGD/U6kUJycbAGh6vnRI X18nN68I/80tKSlfvWZHTk6R7JoxlJVZ+Ez51Yi4qOgE8i16WVlZbNbWVudwyvB7xJFazURS88us IkYWXxEzeJ4k9hUAaGqqGRrqJSZmcLl1vSbmEO8ipF6XUqDTbsbde1JZI+4RFxSUhIREKCsrfrJs Ljb9JhaJ42+n8nhN3cLuh4WP/jp/jcGgBwXOxh73tLTUb8bdKyx8JCcnl5n1MDzipru7va+v14u1 lJVVZWcXzpjuS6PRBraRL2qOjU0Si3u0tNSruXX4n5ISi8FQkEgkf5y+ZGpiOHbsqLr6xvv3c1lM ZsHDR3x+65zZE9Gj6DuBoiLr5s17TyprJBJJZlbBxUvXTU0MZ878mOTrUhQKJS+/WA4gL4/zd2iU iopSYMAs7HWpsvKq9IwckVgsaG2/d+9Bbm4Rn9+Kv7gCAA8e5DU3t058vpZQmqqq2shr8QJBe0f7 U05x2YUL0QoK9EWL/LCVkkpKircT0jjFZfJyckVFpX+dj1RSVFyyZKb0OsqXQawZo6OjMzEpXQ6g uLgs6c79jz/2wlY/9dsigrKy2CzpkSQlZZSXVwNAdk5hZmZBU1MLXi8ZzS+zavB8BYT3d/A8Sewr jMam5pSUTAqFsmLFfPQWybsOqcBsZGSgra2RlVWQlJRRXFxuZWW2fn0QduQDAJibGykpKd6/n3vv 3oPi4jIzsxHr1wWpqT17rV5VVdnSwiQnpyghMf1JBXe0l8vyT+b2+b19k4E5/nZqZWVNRkaO9J+t rcWwYVqlpZXRMYnT/MaZmAzX1dXicusTE9MEgvbFi2eYSr0SgxjK6Ovr6GhrZGYVJCSkVVRUu7na rVnjL/32PAGJSekaGqpjx44KuxjzgJ1nZGSwfl0g/nkeaWlSVVWbmpqVm1c0TEfLz2/c3bv3SQZm S0tjKo2alpZ17x67uLjUzGzE2s+XqKo+06ynp2OgPyw3rygpKaOkpMzCwmTt2gDpo2IIINaMYWJi 2NbeEX87tYhT5u3tunCBH/ao0W+LCMrKYrOx8XCQk3vAzsvIyGEyFKZNG38vmY3XS0bzy6waPF8B 4f0dPE8S+wqDRqfduZNha2P+soFAxDuEHL+l/W3bgEAMIbCdv77csrL/rIiBo7i47Mefjmz/5jPs TSQEAX36qrGpedOmnwICZk6ZPPYt2oYYENDLPwgE4i2wd1/wzp3H8csiTikA6OmRWp33oUHGV3m5 HABwckQTzO8DaCoCgUC8BUa5OwT/HnbiZKiD/cjauoZr1+JHjXJUV++9xz4CyPkqO6dQV1dbV5fs G1aIoQwKzAgE4i3g4zOqu7v7xs27qamZTCbDx8djsf+0t23UEKVfX4lEovz8Yt/xfSyqRbyLoDlm BAKBQCCGEGiOGYFAIBCIIQQKzAgEAoFADCFQYEYgEAgEYgiBAjMCgUAgEEMIFJgRCAQCgRhCoMCM QCAQCMQQgux7zNnZhRcvxVZX19JoNEdHq6VBc/B9XL//4eDjx0965X/xTOULYdE3b97bu+cbDY0+ 9hAglsrIrt0neLymPbu/plD+9SDy6FHF0aN/8RqaThz/kcViYokCQfvhwyGc4lJVVZWVK+Y7OFhJ JJJNm38yMND9atvqAbcN8aHx1de7TUwMP/9syWuUFYt7zpy9nJKSRaHIfzTaJShoNpndodns/N8O nMH+H+PttmaNP3np4G1QevXqrSvhN8+e2TPgmhGIdx1SgbmsvGr/b6fNzY1WrlzY0iyIvBZ/8NDZ /+xYh0kXLvBrkzq3mMMpvXnznpLSv45uFAja4uKS/aaO6zPuEktlpLi4rKCgZM3qRdJRWSKRxMYm hV2MefE4jaSkjCJO6bJlc27fTvs7NMrBwaqigtvU1DJ/3pQBtw2BeCWS7qQnJqbPmT1RIoGIq3Gm poZjxrj3W8rUdMSGDUsB4Ny58FeVIhCINw+pwHz37n06nbZt6yoGQwEAFBWZf5y+xOXW6esPA4Be m87n5BSqqiqb/PsgpqjoRCaTMW3auD71E0tl5Er4TR0dzdGjXaUTT5+5nJiY7uc3Tk1V+a/zkdIi gaCNxWL4jvficuvT0rIBgM3Op1Iprq72g2EeAkEeDqdMV1dr7tzJAFBZVdPe/pRMKXV1lVHuDgBw 4UL0q0oRCMSbh1RgHu3l4uJsi0VlADA01AMAPr8VC8zS9PT0ZGU9dHO1lz74tqVFcOtWytKls3EN 0hBLZaTP7jIAjB/v6THK0dbWIi4uuV8lmVkF9vYjWSzGgJuHQLwS3d0iRcVnY1GbvvjkrdqCQCAG C1KB2dzcSPqysqoWAHT7OgemuKRcIGh3dbWVToyKStDX13Z3sxeJxFRq76FjYqmM9NldBgAT4+Ek NTQ08J884U6fNn5gDUO8Xe7dexAVnVBTw2MyFVycbZcsmdlr8uVlSCSS8Ii4W7eSOzu7XFxsfcd7 7dx1XHpFRWpqVuS1eC63nsFQsLe3XLx4hqaGGiY6eOjc/fu5AFBTw0tJyQQAeXl5kpOsHR1PxeIe UbeoR9wjELQDgJy8nNLzIC2RSKKiExIS0hobmxkMup2tZWDgbHV1FUKVr8ADdv7585FNTc2mpiNW rphvYKBLsl6SfhaLe3buOlZdXffTj1s0NdXImJSYmB4Tm1hf36SgQLO2Ng9YMlNbW4NMvcQ2Y3Pq vr5eISERTU3NIy1N16zxJ2kSVtbHx6NPX8G/PxvOTjZLlsyQPmGauEWID4pXW5XN57emp+eEhUWP 8XbDf26kYbPzGQwFW1sLPKWjozMxKZ3Lrf/0s29Xrd5+6NA56QlpYqmMYN3l2bMm9OouE0Oj04TC 7poaHo/XRKfRiooea2trODujw9TeH9js/BMnQ3V1tT/7dPHUqT4P2Pn7fzstkUjIlE1ISAsPv2lu ZrRq5UIjI4PLV2700nz02F+Ghnpr1iyaM2cih1O2c+fx7m4RJvWb6rNhw1J1dZWRI002bFi6YcPS 9esCSdq8Z++pteu+y8p+WFZetXbdd2vXfbdt2y5cGhWVEBYW4+ho/dmni2fPmsgpLtu77xTJFvVL A4+fmJA2b97khQv8qqvr9u4LFolEZOol7+ewizHFxeVrPw8gGQKzsh7+/sdFw+F6q1cvnDd3Smnp k337gknW26+vmppa4uKS586ZNGf2pJJH5UeP/jkgvsI+G9paGp99unjWzI+zsh/u2xfc09NDpkWI D41XO11q21e7urqE1tZmK1cu7DMDm53v4GBFpf6jNiU1s7Ozy9nZ5mNfr4YGfuiF6KNH/8KXNxNL ZQTvLt++nXr6zGXppdcEeHk6xcUlf/X1bgDwXzTN29vNzc1eukWIoQDWg+yVyGQyyAy6xF5PMjTU +2LjMmzCRVND7cTJ0IoKrrGxQb+ak+5kjBihv3nzcnyypri4DM8WE5tkZWW29vMA7NJohMEvO4/l 5XFcXGzh+cjTpUuxmprq2LQu+RZ9smze06edV67caBW0f7JsLgBQpFrKa2iaNNE7KGg2dqmlpX7w 0Lny8qpeSz1ej+bm1u+/36igQAcAbW2Ng4fOFRSUODpa91svsZ9x2Oz8mJjEOXMm2duPJOmN7OxC dXWV9euDMM3DdLVu3Ljb2tqmqqrcb739+qqhgf/tf9bhM2uXLl+vr2/U0dHs1ypiX8XEJkl/cjBp YeFjrBtD3CLEh8arxZvNm5aXPCq/du32uXPhy5fP6yWtrKzh8ZoWzJ8qnZiTU6iurrpxw1IstkkA zp69UlVVO3y4br9SWXjZ7HK/GBjo7v/fjqrqWjVVZTU15V27TxQUlNBo1AULpk6d4iOjVYiBYs/e U2Re0usTLrfe09MJj6yOjlaL/afjP8TEmnk8vqenI152pKWJdLaamnp3NwdsqBkAsP5fQyNf9hZh QUVZRalbJLK2NuuVbcXy+dg/QqGwq6sbewBtaxuYwScjYwMs0gCAtbU5APAa+GTqJfYzRn1948lT ofb2lnNmT5ROJ/aGppZaa2s7h1NqZWUGAI4OVo5S95243n59ZWIyHM+MubqhgY8F5n4/dQS+qqn5 l1WYtKamHgvMxC1CfGi8WmC2tbWwtbXQ19M5dDjko49cLP/9q/SAnU+lUpycrKUTnzypsbW1wHuc To5WZwFKSyux0EsslYXw8JsaGqoODlYCQXtnZxcAtLV10Ol0Mj0qFotRW8OLjk7w9HAqKChZvWpR bl5RWFjMpIljXjXMIwYJrAfZK9FwhB6ZsmKxmCY1BKKsrOTnN46kZrFYJF2WRvvXN0gsFt9OSL2d kCqdiA9XEiNLi3p6eqKiE+LjU5qaWvDEgRoIlW4j9vXBh2eJ6yX2M5bz4KGzQmH3p2sWSy8Xhf68 MWmid0524c+/HNPX07Gzt/QZO2rECH08G3G9/fpKur3Y/3h7+71HBL7qZdUzqVhMpkWID43XGaF1 d3dgMBSycwp7BWY2O9/GxoLJ/NfqZWGXEF+iAgAsFgsAsEjZr1QWSssqOzo612/4AU/5cutOkj0q ALh+487w4brYl9DNza6rS5ientPd3U2hDPzSccRr0Gs4dOho9vBw/Nh3tHTKsGFag13vlfCbkZHx EyaMtrO1ZDIZNbX1p09ffm1tb6xeiURSXV0nEonT03MmTfKWFhF7g8FQ2LFjLZudn5aec/fug7i4 5AULps6Y7jvYNg/ep06WFiHeP0gF5suXb5hbGOFDK3JyclQKpatLKJ2noYFfUVGNDxPhKCkr4iN7 ANDW1g4A+ApJYqksfLllJT4blJlVcP36nS1bVpiajSBTtrq6rrKyZtbMCe0DtxINMXSgUCjdz/sx ACAQtCUmZbi72evq9vGiwQtlqdJl8YVduGYWk4kPNUskkq4uYa9etZycPDzvnxVxSpv5rZ6eTq/d FozkZPZoL5elQXOwy141yohIqo0ikRgA8CEu4nrJ+Hn5J/MfPaq4EBbj5GSNDReTRF5e3t3dwd3d QSQSX7wYExYW4zHKEdNAXO/b8lUvq55JpTY4ImgR4kOD1MDsA3ZeZGQ8PtpTWlrZ1t7Ra6QlM7NA Tk4OW+QizciRJnn5HDyKP3iQBwCmpiPISGXB0tLE2toM+9PT1QaAkZYm0r1zAlJTs6hUiqMjmuN5 P9HX1ykqKsU/z9nZhWFhMZ2dQuJSGNra6hxOGV6WI7XyC9Ocm1eER+uSkvLVa3bk5BRJ51FWZuHz jlcj4qKiE2RpC0Z3t0j8fFAUAAqLHsuuE6e8vBr/hhYWPgIAbS11MvX262d5efmxY939/acrKTFP nbpAfuz9j9OXQkIisP+pVIqTkw0ANDU1k6n3bflKT09H+pODSfX0dMi0CPGhQepp0W+qz8lTFw4c POvubt/a2hYTk6StreHp8a/H/AfsPDOzES+uIfSb6pOSkrl7z0nf8Z48XtO1qNueHk66ulpkpG8F iUSSmpZla2PBYCiwFJkAEB+fyikuo9PpdDrtLRqGGCimTvH57cCZAwfPeoxyrOc1RkUlWFoYGxmR mtLzGTvq9JnL+/ef9vJybmjkZ2YWSEv9po7b/9vpPXtP+Yx17+jojI5J0NbSsLOzlM7j5mr/1/nI 8PCb8vLyBQ8fzZ07SfYWWVubpafn6AzTNByuV15e1SvYVFRU19U3AkBXl5DXwM+4nwsALs42WGeO WAoAKqrKBw+d+2i0S3Nz69XIeE1NNfx9SOJ6SfqZxWIs/2T+r//7Pe5W8qSJ3kACbS2NsIsxPRKJ hblRx9POmJhEdXVVU1NDMvUS2ywjBL7ym+rz24Ez2CeHz2+5GhlvYjwcH1whbhHiQ4NUYB4zxh3k 5KKjE06evECn0+zsLAMDZ+GLDwFAIGgrKipdtGjai2X19Yd9tW3136FRwb+HMZmMceM8/KWyEUvf CqWllfX1jdiOIm6udu7uDuERNxkMhcDAWWQODEAMfVxd7T5d4x8VnXDs+HkWi+HuZr9kycxei49e xvjxns0tglu3kvMLip2dbObPm7Jr9wlc6uJiu35dUMTVuFPBYQwGHdsmotfz3MSJ3nX1jTGxST09 krFj3Qdk75rAgFkdHZ2xsUk0GtVjlNPixTN+/vkoLk1Myrh169kOdy0tgqKixwBw9MgPysrUfqUA oKOjMWaMe2hoFL5pBh6ziesl72cnJ+sx3m4XLsQ4OZIa0J4+fbwEJAkJabdvpzIYdCsrs8X+0+l0 Opl6iW2WEQJfubrarf08IPJa/PETf+MbjOA/KcQtQnxoyPFb2vvPhUAg+qK4uOzHn45s/+azXjvG Iz5ABu8kLsSHBuoCIhCvwN59wTt3HscvizilAKDX1/a0CAQC8XqgDa0QiFdglLtD8O9hJ06GOtiP rK1ruHYtftQoR3X1gT+uFIFAfLCgwIxAvAI+PqO6u7tv3LybmprJZDJ8fDwW+7/lVREIBOI9A80x IxAIBAIxhEBzzAgEAoFADCFQYEYgEAgEYgiBAjMCgUAgEEMIFJgRCAQCgRhCoMCMQCAQCMQQAgVm BAKBQCCGEGTfY87OLrx4Kba6upZGozk6Wi0NmqOiooRLU1OzIq/Fc7n1+B6w0tK0tOyIq3E1NTxM GhAwU1lZEZc+YOdfuhRbV9dAp9NdXGwDA2YpKjIHpG3ENr9MKhC0Hz4cwikuVVVVWblivoODlUQi 2bT5JwMD3a+2rR4QwxBDmcHeWLG4pHzv3lPW1mZbNq94VzTLgljcc+bs5ZSULApF/qPRLkFBs19j z/myssr/++4A+fPUB6peBOKtQOqTWlZetf+30wyGwsqVC2fNnJCbyzl46CwuZbPzjx77S0tLfc3q RTOm+2ZlF+zbF9zT8+ws5OzswiNH/9TSVF+9auG0aeMyswr+t/8P/OyzR48qDh48q66msmrlwunT x9+/n3vs+PkBaRixzQTSpKSMIk7p0qVzlJUV/w6NAoCKCm5TU4uXzIfmIhAA0N7W0dnZ1fD85Md3 QrMsJN1JT0xMn+bnM3nSmFvxKcnJ7Pe7XgRCdkj1mO/evU+n07ZtXcVgKACAoiLzj9OXuNw6ff1h ABATm2RoqLd503LsgVRbW+PwkZDCwsfYeWe34lN0dbW2bFmBSVVVlYODw8orqk2MhwNAckomk6mw ZctK/LjysLAYgaBNWVnpZcaQhNhmAqlA0MZiMXzHe3G59Wlp2QDAZudTqRRXV3sZTUIgAMDZ2ebg gW8VyR0NPkQ0ywKHU6arqzV37mQAqKyqaW9/+n7Xi0DIDqnAPNrLxcXZFothAGBoqAcAfH4rFuRq auo9PZ3wYSLsmJ2amnosMHt4OCqymLjU0sIEAOpqG7DALBQKFVksPCqrqSoDgFAokr1hxDYTS3uR mVVgbz+SxWLIbhUCAQCDt7f2ENy1u7tbhD8rbPrik/e+XgRCdkgFZnNzI+nLyqpaANB9fqKOWCym Uf/R09IiAACRWIxdjvF2ky7b0fEUAPCIaG1ldufO/eKScksLYwBIScnU0dHU0BiAHxdim4ml0jQ0 8J884Q7IobmId4gH7Pzz5yPxU3UNDHRxkfSKCnt7y8WLZ2hqqGEiiUQSHhF361ZyZ2eXi4ut73iv nbuO4zOjbHb+bwfOYDnHeLutWeMvXSM2t+3r6xUSEtHU1DzS0nTNGn9NTTUyUlk0E9vcLwTrSzo6 norFPaJuUY+4RyBoBwA5eTklch36F60iqLfXXSCut9cagl6z18S+QiDeDK+2GoLPb01PzwkLix7j 7YZ/DaR5wM7/74+HCTTcvXtfQYFuaWmCXXp5uZiaGh45EsLl1oWGRuUXlASQPrJ+QGx+UUqj04TC 7poaHo/XRKfRiooea2trODvbDKBJiCFOA4+fmJA2b97khQv8qqvr9u4LFomejeJgKyoMDfXWrFk0 Z85EDqds587j3d3PpAkJaeHhN83NjFatXGhkZHD5yg1ptaamIzZsWLphw1JVVeU+621qaomLS547 Z9Kc2ZNKHpUfPfonSaksmoltJgbzhraWxmefLp418+Os7IfS60v27D21dt13WdkPy8qr1q77bu26 77Zt20VSM7FVxHdBlnqhv7uAQLwBXu10qW1f7erqElpbm61cubCXSCzuuXgxJvb6HT8/n6iohD6L x15Pir+dGhQ0Gx8WplDkt365at+vwdv/368SiWTN6kUuLrav0YzXs7lPqZenU1xc8ldf7wYA/0XT vL3d3NzsqVR0DNe7BNZn6pXIZDKoVAqZ4s3Nrd9/v1FBgQ4A2toaBw+dKygocXS0BoCY2CQrK7O1 nwdgOY1GGPyy81heHgf73CbdyRgxQn/z5uX4w2VxcRmuVl1dZZS7AwBcuBDdZ70NDfxv/7MOH0+6 dPl6fX2jjo5mv1JZNBPbTOzJmNgk6bKYr/D1JZ8sm/f0aeeVKzdaBe2fLJsLABQp/xNrJraK+C4Q 19svxHcBgXgDvFq82bxpecmj8mvXbp87F758+Tw8vblFsGvX8Wpu3batq8zNjV4MzJ2dXcG/h2Vk 5PovmjZpore0qLaW19DAV1VVbm5uLeKUjh7tQqG8wrfotW1+mdTAQHf//3ZUVdeqqSqrqSnv2n2i oKCERqMuWDB16hSfATQMMXjs2Xvq8eMnvRLJD88aGRtgURkArK3NAYD3fKlzTU29u5sDNkAKANgg Z0PjMymPx/f0dMRjycjnI0MkMTEZ/s8sj7UZADQ08PGQQCx9bc3ENhN7EltfgpfFfIWvLzE2NgAA ZRWlbpEIq5S8ZmKriO8Ccb39IoufEYgB4dUCs62tha2thb6ezqHDIR995IKPSKekZJqbG/304xYN DdXOzq5epTo6OnfuOlZb27B583Jnp3+NCdfW8vbsPWVhYbxxw9LCoseHDp2jUCgrls+XpUkkbSaQ sliM2hpedHSCp4dTQUHJ6lWLcvOKwsJiJk0cQ6GgVyHfAbA+U69EwxF6JIvjqxEBAOvA4UPZYrH4 dkLq7YRU6fz44K1YLJJebyGt51Xrxf7H6+1X+tqaiW0m9mSv9SXPfPV8fQkx/Wkmsor4LsiILH5G IAaE1xmhdXd3YDAUsnMK8SDn6Gi96YtPXjZOeOLk31wub/s3n/ZacgUAly/fYLGYX2xcpqBAd3ay 8fefHhISMWXymD5XR8vCizYTS6/fuDN8uC72w+HmZtfVJUxPz+nu7qZQFAbWMMRggPWZBgkPD8eP fUdLpwwbpjV41b1dBs+TMmr+oO4C4kODVGC+fPmGuYWR4/NhQDk5OSqF0tUlxC4pFIqOjgYelUUi MQBQnw9HFxeXZWYWBAXOfjEqA0Bh0WM3Vzt82NBjlGNISEQRp1T2wExsM7G0urqusrJm1swJ7e0d MpqBeBcRdf/TQ3r2eX7ee6NQKCwmEx8glUgkXV1CvI9FoVC7pXpX3d3vQE9LFpspFIp02V7f/cGz ivguEEOlUqS1vRP3CPGhQWpg9gE7LzIyHt+uq7S0sq29Y8QIfexST0+HwynDpUVFj7FE7DLjfq6C An3cOI8+NTOZCnX1jfhlfX0jADAZA/DGMLHNxNLU1CwqleLoSHbzP8R7Rnl5Nf6UVlj4CAC0tdSx S319ndy8IvzXvKSkfPWaHTk5Rdiltra69HeBI7Veacgii829vvuYr/Dv/uBZRXwXiNHS1Cgrq8Jn 3AoLH8tuLQIxsJB6xvSb6nPy1IUDB8+6u9u3trbFxCRpa2t4ejjh0t8OnNm//7SXlzOf33I1Mt7E eDj+MFtdVauqqpydUyitcKSlCfZeh+94r/N/XztxMtTBfmSroC0mJkldXcXJyVr2hvVr88ukEokk NS3L1saCwVBgKTIBID4+lVNcRqfT6XSa7IYhhj4qqsoHD537aLRLc3Pr1ch4TU01bDUTAPhNHbf/ t9N79p7yGeve0dEZHZOgraVhZ2eJSX3Gjjp95jL2XWho5GdmFkirraioxh5Du7qEvAZ+xv1cAHBx tpF9zb8smoltJob4uy8LuFWenk71vMZeQZfAoNkQAAAgAElEQVT4LhDj7e2anMLe92vwOB+Pxsbm rOyHsluLQAwspH4RxoxxBzm56OiEkycv0Ok0OzvLwMBZ+Pizq6vd2s8DIq/FHz/xN77JAL7VV2eX sL6+8dChc9IK8bWXU6aMpVAoN+PupaVl0em0kSNNAwNmMZkD0GMmtplAWlpaWV/fiO0o4uZq5+7u EB5xk8FQCAychTbB/0DQ0dEYM8Y9NDQK32AEj3AuLrbr1wVFXI07FRzGYNCtrc0DlszEn9jGj/ds bhHcupWcX1Ds7GQzf96UXbtP4GoTkzJu3UrG/m9pEWBjS0eP/KCsLGtglkUzsc3EEH/3ZYHYKuK7 QAz2ZY+MjP/j9CUXF9sF86eSby8C8WaQ47e0v20bEIj3k+Lish9/OrL9m8+wfWrfCd5FmxGI9wzU BUQgBoy9+4J37jyOXxZxSgFAr6+tXocO76LNCMT7DeWb7Tvetg0IxHuCqFt04+ZdHq+pW9j9gJ0f GXnLzc3ex2fU27aLiHfRZgTi/QYNZSMQA8mtW8lYnGMyGZ6ezov9p9Hp9LdtVD+8izYjEO8xKDAj EAgEAjGEQHPMCAQCgUAMIVBgRiAQCARiCIECMwKBQCAQQwgUmBEIBAKBGEKgwIxAIBAIxBACBWYE AoFAIIYQZDfpTUvLjrgaV1PDw3bEDQiYqays2CvPhbDomzfv7d3zjYaGKp74/Q8HHz9+0isnvlf2 kSN/pqVnS4uUlFjHjv73ldvx6jaz2fnhETerqmpZLKaXl7P/ounYsXECQfvhwyGc4lJVVZWVK+Y7 OFhJJJJNm38yMND9atvqATEM8e7y/Q8HlZUVv9yycpD0F5eU7917ytrabMvmFe+KZlkQi3vOnL2c kpJFoch/NNolKGj2a2y1XVZW+X/fHcB/Vd5YvQjEIEEqMGdnFx45+qejg9X0aeOb+C1RUQl19Q3/ 9+16OTk5PI9A0BYXl+w3dZx0VAaAhQv82qRONeZwSm/evKekxMJTNDTUAgJm4pc0mU/aIWPzw4eP Dhw8a2tjvmrlwiZ+y7Vrt592dK5Z4w8ASUkZRZzSZcvm3L6d9ndolIODVUUFt6mpZf68KQNiGAJB QHtbR2dnV0MD/x3SLAtJd9ITE9PnzJ4okUDE1ThTU8MxY9zf43oRCDKQioK34lN0dbW2bFmBPVSq qioHB4eVV1SbGA/H80RFJzKZjGnTxvUq22sr/JycQlVVZRMTQzyFxWSMcnd47Qa8ns3RMYk6Oppb t66iUCgAoKaqEvx72Lx5UzQ11QSCNhaL4Tvei8utT0vLBgA2O59Kpbi62g+4kQhEL5ydbQ4e+FZR kdV/1iGjWRY4nDJdXa25cycDQGVVTXv70/e7XgSCDKQCs4eHoyKLiQ/1WFqYAEBdbQMemFtaBLdu pSxdOpvBUCDQ09PTk5X10M3VXrqrPUgQ2/zkCdfZyQaLygBgbz9SIpEUF5d5eTm/qCozq8DefiSL NQCHUSIQ/aKurtp/piGm+bXp7hbhzwqbvvjkva8XgSADufOYvd2kLzs6ngKAdAyOikrQ19d2d7MX icRUKuVleopLygWCdldX2xdFnZ1dVCqVoOyrQmyzSCSi0v6p69nsclsfu5M2NPCfPOFixzMjEBgP 2Pnnz0fipzUbGOjiotTUrMhr8VxuPYOhYG9vuXjxDE0NNUwkkUjCI+Ju3Uru7OxycbH1He+1c9dx fGaUzc7/7cAZLOcYbzdsYgUHm9v29fUKCYloamoeaWm6Zo2/pqYaGaksmolt7hdpb2CnNauoKGGi jo6nYnGPqFvUI+4RCNoBQE5eTolch/5Fqwjq7XUXiOvttYag1+w1sa/65djx82VllWs/Dzx2/DyP 1+juZr9mjT/WPZBIJFHRCQkJaY2NzQwG3c7WMjBwtrq6Cjy/fbt3bdPXH4arOnQ4pLaW9/NPW0hW jXi3eJ0J3bt37yso0C0tTbDLjo7OxKT0np6eTz/7lkKRd3WxW75ifp9fMDY7n8FQsLW1kE5s4rds 3barrq6BQpF3crJZuWLBi8vKZKeXzTo6muXl1bi0rKwSABgKCgBAo9OEwu6aGh6P10Sn0YqKHmtr azg72wy4SYh3lAYePzEhbd68yS3NgquR8Xv3Be/b+w2VSgUANjv/6LG/vLycp08fLxC0R0cn7tx5 fOcvW7Env4SEtPDwm85ONp6eTo1NzZev3JBWa2o6YsOGpQBw7lx4n/U2NbXExSXPnTOpsbH5auSt o0f//Pbb9WSksmgmtpkYzBvOTjYzZ3zM57dcjYzncuu+/34jNo61Z+8pfFno2nXfwass/CS2ivgu yFIv9HcX+qWnR/LnXxGTJn7Eram/efOevf1Ib283AIiKSgi7GDNhwkeWFsbNza3RMYl79536+act cnJyBgbDAIDPb5UOzHx+C5aOeC955cAcez0p/nZqUNBsfGg3JTWzs7PL2dnmY1+vhgZ+6IXoo0f/ 6nMBM5ud7+BgRf338q6OjqcW5kaBAbP4/JbQC1GHj4Rs/+az12sMeZvHjHE/e/bKlfCbPj6jmhqb Q/6MAABDQ10A8PJ0iotL/urr3QDgv2iat7ebm5s9dYCWpCGGAlifqVcik8kgOWDT3Nz6/fcbFRTo AKCtrXHw0LmCghJHR2sAiIlNsrIyW/t5AJbTaITBLzuP5eVxXFxsASDpTsaIEfqbNy/Hp3KKi8tw terqKthiiwsXovust6GB/+1/1uGjPpcuX6+vb9TR0exXKotmYpuJPRkTmyRdFvNVYeFj7NH8k2Xz nj7tvHLlRqug/ZNlcwGAIuV/Ys3EVhHfBeJ6+4XAV2Q+V/X1jcs/mWdrayGRSHJzixqbmrF0XkPT pIneQUGzsUstLfWDh86Vl1eZmBhqa2tSqRQ+vwUAKiq4amrKqqrKzfxWB4eR5M1GvFu8Qrzp7OwK /j0sIyPXf9G0SRO98fScnEJ1ddWNG5Zi0UsCcPbslaqq2uHDdaWLV1bW8HhNC+ZP7aWWyWRs3LiM TqcBgEQiOX3mcmVljaGh3uu3iYTNH/t61dbyIiLiwsNvYimqqspGRgYAYGCgu/9/O6qqa9VUldXU lHftPlFQUEKjURcsmDp1is+AWIV4u0j3mXDID88aGRtgURkArK3NAYD3fKlzTU29u5sDNkAKANgg Z0PjMymPx/f0dMRjycjn4zckMTEZjscDa2szAGho4OOBmVj62pqJbSb2ZE1NvaenE14W81VNTT0W mI2NDQBAWUWpWyTCKiWvmdgq4rtAXG+/EPiKzOdKQYGOrYeVk5Pbu+cbPH3F8vnYP0KhsKurm8Vi AkBbWwcAUCjyusO0+fxWPr/lP9/+b9w4jxXL5/ObW6Q70Ij3DLKBuaOjc+euY7W1DZs3L3d2+te4 7pMnNba2Fnif0snR6ixAaWllr8D8gJ1PpVKcnKylEwMDZ/mLpmNRGQCwZ8Dy8qoBCcwENsvJyQUG zJo54+PauoZmfsvhI3+OH+eJrxRjsRi1Nbzo6ARPD6eCgpLVqxbl5hWFhcVMmjiGQkEvO77zYH2m XomGI8h+5LARUQysMyQSibBLsVh8OyH1dkKqdP6enp7nUpH024DSel61Xux/vN5+pa+tmdhmYk+K xWLpss98JRaTMak/zURWEd8FGSHwFZnPlZqacp9LX3t6eqKiE+LjU5qaWvBEiUSC/aOvr8NvbnlS WSMvL19ZWdPW1iESiQ1QYH5/IfvTcOLk31wub/s3n5qbG/USCbuE0jPKLBYLADo7u3plY7PzbWws mMx/rW1WVVWWvsTKPn3au+zrQWAzhoqKkoqK0oGDZ2k06oQJo6VF12/cGT5cF/uaubnZdXUJ09Nz uru7KRSiZeeIdwKszzRIeHg4fuz7r8/SsGFag1fd22XwPCmj5rdyF8jY/LIXUq6E34yMjJ8wYbSd rSWTyaiprT99+jIu1dcfVlVVU1VZ4+RkXVBQ0tTUQqHIv8efKwSpwFxcXJaZWRAUOLvPCKekrIiP GgFAW1s7AEhvIQIADQ38iopqfLgGJyvrIZVKsbcfKV12QF5MIrYZp7q6ls3OnzJ5rPQjQnV1XWVl zayZE9qltkZBIDBE3f/0REUiMQDgw0UUCoXFZOIDpBKJpKtLiPexKBRqt1QvtrubbI/2LSKLzRQK RbrsM19RBuDNC2KriO8CMVQqRVrbG7tHycns0V4uS4PmYJe9rDUwGJaXx6msqnVysikrqywpKdPR 0RzAd1gQQw1SA7MZ93MVFOjjxnn0KR050iQvn9PVJcQuHzzIAwBT0xHSeTIzC+Tk5LDFF9Kw2fkn ToYKhd34JQCYmxu/Qgtey2acyGu3aTTa9On/ehsqNTWLSqU4OpLd3g/xQVFeXo1/2gsLHwGAtpY6 dqmvr5ObV4T/mpeUlK9esyMnpwi71NZW53DK8PFJjtR6pSGLLDbr6elIl8V8paenM9hWEd8FYrQ0 NcrKqvABv8LCx7JbS4bubpFYapC/sOhf9WJD2ZWVNaYmw01MDHNzOWgc+/2G1FNkdVWtqqpydk6h dOJISxOsl+k31SclJXP3npO+4z15vKZrUbc9PZx0df81zPKAnWdmNqLXwDUATJrknZzC3rP3pM/Y UQ2NzdeuxXt4OPYq+3oQ24xRX9+Ylpbt5+eDv1sJABKJJDUty9bGgsFQYCkyASA+PpVTXEan0/G5 cMSHjIqq8sFD5z4a7dLc3Ho1Ml5TUw1/A9Bv6rj9v53es/eUz1j3jo7O6JgEbS0NOztLTOozdtTp M5f37z/t5eXc0MjPzCyQVltRUV1X3wgAXV1CXgM/434uALg428j+RoAsmoltJsZvqs9vB85gZbHX pUyMh7/GeisCqzw9nep5jb2CLvFdIMbb2zU5hb3v1+BxPh6Njc1Z2Q9lt5YM1tZm6ek5OsM0DYfr lZdX9QrMeno6LS1tHR2dw4frGhsPj4pKmDzZ+2WqEO8BpL7znV3C+vrGQ4fOSSfiqw319Yd9tW31 36FRwb+HMZmMceM8/BdNk84pELQVFZUu+ncixogR+tu2rg4NjQr+/SKLyRjj7R4QMEOG5pC1GSMq KoFGo/pNHSedp7S0sr6+EdtRxM3Vzt3dITziJoOhEBg4C21zjwAAHR2NMWPcQ0Oj8A1G8Ajn4mK7 fl1QxNW4U8FhDAbd2to8YMlM/Hlu/HjP5hbBrVvJ+QXFzk428+dN2bX7BK42MSnj1q1k7P+WFkFR 0WMAOHrkB2VlWQOzLJqJbSbG1dVu7ecBkdfij5/4G99gZEC+RMRWEd8FYuzsLAMDZ0VGxv9x+pKL i+2C+VPJt1cWAgNmdXR0xsYm0WhUj1FOixfP+Pnno7iURqNqaqopKbEoFIqpyXChUIheYn6/keO3 9LHdFQKBGGyKi8t+/OnI9m8+67Wf/FDmXbQZgXjnQF1ABOINsXdf8M6dx/HLIk4pAOjpab89i/rn XbQZgXjXoXyzfcfbtgGB+CAQdYtu3LzL4zV1C7sfsPMjI2+5udn7+Ix623YR8S7ajEC866ChbATi zXHrVjIW55hMhqen82L/aXQ6/W0b1Q/vos0IxDsNCswIBAKBQAwh0BwzAoFAIBBDCBSYEQgEAoEY QqDAjEAgEAjEEAIFZgQCgUAghhAoMCMQCAQCMYRAgRmBQCAQiCGErNvwYjxg51+6FFtX10Cn011c bAMDZikqMnFpampW5LV4Lrce3y8XPzTiyJE/09KzpVUpKbGOHf3vgFj1ejYLBO2HD4dwiktVVVVW rpjv4GAlkUg2bf7JwED3q22r34BhCMTL+Orr3SYmhp9/tuRtG4JAIAaRAQjMjx5VHDx41tbGfMZ0 3yZ+y9WrtwSC9q1frsSkbHb+0WN/OTlZT582ns9vvRYVz+XWff/9Rnwvew0NtYCAmbg2msxn6cho c1JSRhGndNmyObdvp/0dGuXgYFVRwW1qapk/b8obMAyBQCAQHzgDEAWTUzKZTIUtW1bih3uHhcUI BG3KykoAEBObZGiot3nTciwSa2trHD4SUlj4GD8pj8VkjHJ3kN2MgbJZIGhjsRi+47243Pq0tGwA YLPzqVSKq6v9GzYSgUAgEB8gAzDHLBQKFVksPMKpqSoDgFD47JTympp6KytTvH+MHUpTU1Mve72y QGxzLzKzCuztR7JYjDdnHwKBQCA+VAagx2xtZXbnzv3iknJLC2MASEnJ1NHR1NBQxaRisVh6dLql RQAAIrG4l5LOzi4qlUqlUmS3R3abpWlo4D95wsWOZ0Yg+iUxMT0mNrG+vklBgYadBKytrYGJvtj0 k6WF8bp1gdglt6b+66/3rFq10GfsKAD4/oeDysqKvr5eISERTU3NIy1N16zx19RUwzIfPHTu/v1c AKip4aWkZAKAvLz82TN7MKlEIomKTkhISGtsbGYw6Ha2loGBs9XVVTDpvn3BJY8qfv11u5IiCwCu XLkRHhH3/XcbzcxG9NsczCofH4/z5yPx86cNDHTJSIm90a8UgfhgGYAes5eXi6mp4ZEjIVxuXWho VH5BScCSmXJyci/mfMDO/++Ph3slNvFbtm7btXrNjlWrt/924IxA8Cb27iawmUanCYXdNTU8Hq+J TqMVFT3W1tZwdrZ5A1Yh3nWysh7+/sdFw+F6q1cvnDd3Smnpk337giUSCSZ1drLOzy/u6enBLnNz iwDAydEaL97U1BIXlzx3zqQ5syeVPCo/evRPXOQ31WfDhqXq6iojR5ps2LB0w4al658HeACIikoI C4txdLT+7NPFs2dN5BSX7d13Cq83IGBWV5cwIiIOAPj81uiYRG9vNzJRGaOBx09MSJs3b/LCBX7V 1XV79wWLRCIyUmJvEEsRiA+ZAegxUyjyW79cte/X4O3/71eJRLJm9SIXF9teecTinosXY2Kv3/Hz 84mKSpAWdXQ8tTA3CgyYxee3hF6IOnwkZPs3n8lu1Wvb7OXpFBeX/NXXuwHAf9E0b283Nzd76htZ koYYCnR0PBWLe3olMpkMMsM52dmF6uoq69cHYQ95w3S1bty429rapqqqDACOTtbxt1MfP35iYWEM AHl5xSbGwzERRkMD/9v/rGMwFLDLS5ev19c36uhoAoC5uREAXLoUq6mp/uKaDF5D06SJ3kFBs7FL LS31g4fOlZdXmZgYAoCenvakid434+5NmugdeS1eXl5+4QI/8u1tbm79/vuNCgp0ANDW1jh46FxB QYnj8+cJAimxN4ilCMSHzMDEm9paXkMDX1VVubm5tYhTOnq0C4Xyz69Yc4tg167j1dy6bVtXmZsb 9QrMTCZj48ZldDoNACQSyekzlysrawwN9QbEsNew2cBAd///dlRV16qpKqupKe/afaKgoIRGoy5Y MHXqFJ/Btgrx1tmz99Tjx096JW7busrBwarfsppaaq2t7RxOqZWVGQA4Olg5SpWytbGg0ai5uRwL C+PublFR0eNp/54iMTEZjkdla2szAGho4GOBmZgVy+dj/wiFwq6ubhaLCQBtbR14htmzJyansI+f +PvRo4oFC6bio9xk2mtkbIDFXQCwtjYHAF4DH89JICX2BrEUgfiQGYDAXFvL27P3lIWF8cYNSwuL Hh86dI5CoeC/FACQkpJpbm70049bNDRUOzu7pMsGBs7yF03HojIAODiMBIDy8qrBDszENrNYjNoa XnR0gqeHU0FByepVi3LzisLCYiZNHEOhoC1Z3nM+WTbv6dPOXomGI0h9ICdN9M7JLvz5l2P6ejp2 9pY+Y0eNGKGPS+l0mq2tRU5u0bx5k4s4pUJht7OTtXRxfDUi/r/0oDEBPT09UdEJ8fEpTU0teKL0 sDCLxVi4wC/49zAdHc2pU8ZKl+23vdJWYd1oaasIpMTeIJYiEB8yAxCYL1++wWIxv9i4TEGB7uxk 4+8/PSQkYsrkMfr6w7AMjo7Wm774pM+RwF7DViwWCwCePu16MefA0q/N12/cGT5cF/vBcnOz6+oS pqfndHd3UygKg20b4u1ibGzw2mUZDIUdO9ay2flp6Tl37z6Ii0tesGDqjOm+eAYnR+uz58IFgrbc 3CJVVWVj4+EDYTJcCb8ZGRk/YcJoO1tLJpNRU1t/+vTlXnmw1woYDAX8FQkMWdpLDLE3+vUVAvHB MgD9v8Kix85O1vhwlscoRwAo4pRilxQKRUdHA4/KIpEYAKjPB7qzsh7m5XFwVW1t7fD8F2RQIba5 urqusrLG1cVusM1AvH/Iy8u7uztsWB909MgPU6eMDQuLqa9vxKVOTjYSiSQ3j5Oby3F0tOpzjSQB cnLy8LwfXMQpxd6zB4DkZPZoL5elQXNcXGytrc1GGPbuegqFwr/OR+rr6Tx5wr19O/WVKhV1/9M/ fvb9lVpyQSwl9gaxFIH4YBmAwMxkKtRJfZ2wrxaT8Sy46unpcDhl+KhaUdFjLBG7ZLPzT5wMFQq7 8UsAMDc3lt0qWWxOTc2iUimOjmjGC/Fq/HH6UkhIBPY/lUpxcrIBgKamZjyDpqaaoaFeYmIGl1vn 7PTKS/2VlVn4DO7ViLio6GfLNbq7RWKpVxALix73KhgZebupqWX9+qBRoxwvXrouELSRr7S8vLqr S/hMc+EjANDWUicjJfZGv75CID5YBmAo23e81/m/r504GepgP7JV0BYTk6SuruL0fPLMb6rPbwfO 7N9/2svLmc9vuRoZb2I8HFvYAgCTJnknp7D37D3pM3ZUQ2PztWvxHh6Ourpaslv12jZLJJLUtCxb GwsGQ4GlyASA+PhUTnEZnU7H58IRiD7R1tIIuxjTI5FYmBt1PO2MiUlUV1c1NTWUzuPkZH3t2m0K hWJnZ/mq+t1c7f86HxkeflNeXr7g4aO5cydh6dbWZunpOTrDNA2H65WXV/UKzHV1DdExCb7jPQ0N 9Rb7T/vq64ILYTGrVi4kWamKqvLBQ+c+Gu3S3Nx6NTJeU1MN37aPWErsDTK+QiA+TAYgME+ZMpZC odyMu5eWlkWn00aONA0MmMVkPut9urrarf08IPJa/PETf+OHWOCzXCNG6G/bujo0NCr494ssJmOM t3tAwAzZTZLF5tLSyvr6RmxHETdXO3d3h/CImwyGQmDgrF6TcwhEL6ZPHy8BSUJC2u3bqQwG3crK bLH/dDqdLp3Hycnm2rXb1lam+AJs8kyc6F1X3xgTm9TTIxk71h3f9yYwYFZHR2dsbBKNRvUY5bR4 8Yyffz6Kl/rzr6s0Gm3evMkAoKWlMWXK2KioBN/xnqampF5l1tHRGDPGPTQ0Ct9CRHqwmkBK7A0y vkIgPkzk+C1vYkMPBAKB0djUvGnTTwEBM6dMHtt/7rcNtrfXl1tWvoYUgUC8HqgLiEC8UfJyOQDg 5Ij2kkMgEH2DAjMC8UbJzinU1dV+AwspEAjEOwoKzAjEm0MkEuXnF7/GemwEAvHhgOaYEQgEAoEY QqAeMwKBQCAQQwgUmBEIBAKBGEKgwIxAIBAIxBACBWYEAoFAIIYQKDAjEAgEAjGEQIEZgUAgEIgh xADslS0j2dmFFy/FVlfX0mg0R0erpUFzVFSU3kC9qalZkdfiudx6fAdvrF6BoP3w4RBOcamqqsrK FfMdHKwkEsmmzT8ZGOh+tW31GzAM8R6z4z//GzZMa+OGpVVVtdv/375NX3zi6voOnC5aXFK+d+8p a2uzLZtXSKez2fm/HTiD/T/G223NGv/XrqKsrPL/vjuwbesqBwdSp7q97PvbL/1uI/qAnX/pUmxd XQOdTndxsQ0MmKWoyMSlbHZ+eMTNqqpaFovp5eXsv2g6jUbqV1T2zU3F4p4zZy+npGRRKPIfjXYJ CpqN796flpYdcTWupoaHeSMgYKaysiJekFhKzGv7ud+yxL/8stj8HvCWe8xl5VX7fzvNYCisXLlw 1swJubmcg4fOvoF62ez8o8f+0tJSX7N60YzpvlnZBfv2Bff09ABAUlJGEad06dI5ysqKf4dGAUBF BbepqcXL0+kNGIZADEHa2zo6O7sanp84iWNqOmLDhqUbNixVVVV+k/YQfH9l5NGjioMHz6qrqaxa uXD69PH37+ceO34elz58+OjAwbPKSoqrVi6cMmXsnTv3T5++JHulJEm6k56YmD7Nz2fypDG34lOS k9lYenZ24ZGjf2ppqq9etXDatHGZWQX/2/8HftIusZQYWfxMXJb4l18Wm98P3nKP+e7d+3Q6bdvW VdhJO4qKzD9OX+Jy6/T1hw1qvTGxSYaGeps3LcceObW1NQ4fCSksfGxrayEQtLFYDN/xXlxuPXYQ PZudT6VSXF3tB9UkBGLI4uxsc/DAt4qKrF7p6uoqo9wdAODCheg3aQ/B91dGzckpmUymwpYtK/F+ cFhYjEDQpqysBADRMYk6Oppbt66iUCgAoKaqEvx72Lx5UzQ11WSslwwcTpmurtbcuZMBoLKqpr39 KZZ+Kz5FV1dry5YVmDdUVZWDg8PKK6pNjIf3KyVGFj8TlyX+5ZfF5veDt9xjHu3l8sXGZfj5d4aG egDA57cOdr01NfVWVqb4QJCNjTmW2GfmzKwCe/uRLBZjsK1CIHAkEgmbnd/R8fRtG/IMdXXVoXMe +St9f18JoVCoyGLhUVlNVRkAhEIRdvnkCdfG2hyLygBgbz9SIpEUF5fJXi8ZurtF+LPRpi8+mTLl 2elkHh6Oi/3/OUvX0sIEAOpqG8hIiZHFz8RliX/5iW3OzS1qbh70GPF2ecs9ZnNzI+nLyqpaANDV 0x7sesViMU3qTNmWFgEAiMTiF3M2NPCfPOHiB98iEK9HTEwiNjPy5Ak3aOlWLPG3A2cUFOjBp36R zomF5PCIuCdPuGtWLxozxh1Lv3fvQVR0Qk0Nj8lUcHG2XbJkppLSP13Yl83ntbQI1m/4wc7WouRR xfDhuvPnTTly5E81NZXt2z/DMmCzmz4+HufPR+JnKhsY6GJqZZxFlrbK3t5y8eIZmhpqeDPDI+Ju 3Uru7OxycbH1He9FXi3x93ffvuCSR6+wZAwAACAASURBVBW//rpdSZEFAFeu3AiPiPv+u41mZv+c P/2And9ne62tzO7cuV9cUm5pYQwAKSmZOjqaGhqqmFQkElFpFFwJFr8Fbf/sakx8jwjqJZZ2dDwV i3tE3aIecY9A0A4AcvJySs+D9BhvN2kl2MMcHvOIpcQ29/s7SXB/icsS//IT2NzT03P2XDif3zJ+ nOf06b7q6irwPjJUVmXz+a3p6TlhYdFjvN3wW/tmeMDO/++Ph/FLGp0mFHbX1PB4vCY6jVZU9Fhb W8PZGZ06gJAJFxfbDRuWammpm5mN2LBh6ZIlMwBgmt+4zz9bgueRSCTp6Tk7/vO/AwfPammp//eH L/CozGbnnzgZqqur/dmni6dO9XnAzt//22l81g2bz9PW0vjs08WzZn6clf2w11wgjUYLCpr9+PGT 6JjElSsXVHPr7t17gEsbePzEhLR58yYvXOBXXV23d1+wSPSsjyjLLDJmlaGh3po1i+bMmcjhlO3c eby7+5nmhIS08PCb5mZGq1YuNDIyuHzlxqvqx+j1/QWAgIBZXV3CiIg4AODzW6NjEr293aSjMkF7 vbxcTE0NjxwJ4XLrQkOj8gtKApbMlJOTw6Q6Oprl5dW4nrKySgBgKCjg7SW4R8T1Ekv37D21dt13 WdkPy8qr1q77bu2677Zt2/Uyh9y9e19BgW5paUJG2q/NBH4mvr/EZXHI/PJL2ywvL//Lz18uWDA1 PSPny62/nD17pbGp+WWueHd5+6uyMbZ9taurS2htbbZy5cI3VqlY3HPxYkzs9Tt+fj5RUQlYopen U1xc8ldf7wYA/0XTvL3d3NzsqdSh4ijEO4qurraurvbVq7c0NNRGuTtUVdUCXLOwMMZXZbPZ+WEX Y7ncOldXu0/X+BsZGUgXj72eZGio98XGZViQ0NRQO3Ey9P+zd99xTZ3748AfyCBEwgbZyJAhI+xV FMFRoCrOioqrKm2tu9rx7e2v7W3vdd66B2qvq45iFUSGsgJeAaEGHFCWMkQSSJgGkJGQ3x9HT9Mo hyiQRP28X7585YznnM9zTsjnPM9ZtbWcMWNMEULJKdkWFiYbNy7HphoY6O7bf1ryXKC7h1PQBJ9f frlob2/l5eWipcXg8Vvwhbe1Pfn++3VqalS8bElJJZPpiIZ2Fjk5JdvBwWb1p4uwQUsL039vPXz/ frmHhxNCKPtGgWTMCKFX7RN+6d8vQsjY2GDqlMDUtJtTpwQmXM1QVVX9cF64ZEGC+pJIqps/X7nr P8e//r//iMXi6FXzsWgx48d7nzp1+XJcalCQT0tz25lf4xFC5ubP2rXE+4h4vcRTly2d8/Rp9+XL 158IOpctnY0QIpH/arhLSrmWnZGZt3jxzJeeentx6qAxE2xn4v1LXBY36C//izGrqVHDQoMmhQRk svKSkrJYWflBE3zmzg19my7bVpZ8s3HD8soHNVevZp4+Hbd8+Rw5rLGtXbBt25F6TuOWzSttbS3x L42pqdHun795XN+grcXQ1mZs2x5TUlJJoZDnzQsLCw2SQ2Dg3XQ1MZPPbx7ofiEOh+fn54bnMCbT YUHkNLxDksv921RHx2fn8/DEjE1QUVFRQSrYB3H/X60iyzGmWD7Ay/JfuAD7NXC5PG8vV6zrFSGE XSHV1PxsyXx+q58fE4/ZfoAW3kAG+vvFzJw5JSeXfSTm/IMHtfPmhUl1eBLXt6GB39TUqqXFaGt7 UlZeFRDggZ9UnhTi39DAj49Pi4tLxcZoaTHwQyjifTToegmmYmmSoanRJxQ6Otq8dIN0d/cc/yW2 oOBe5PwPpk4JlHHqoDETbGfi/UtcFkfwy09cIyqVEvr+hJBgv337z2Sy8jw9nWS80e6NoCyJ2clp rJPTWBNjw/0Hzrz3nsdA/TDDKDe30NbW8qcfN+nqanV390hOotNpDVx+UhLLz9etpKRy1cr59+6X xcYmT50ynkRSls5/8Gbp7e3r6entF/UL+4QCQWdnZxdC6OnT7o6OLuyU3qRJARcvpuzZe3J8oPf0 6SH6+jqSxaXO2DEYGuHhEweaSiaT0ADXTLyU5J24z8oKX9Ih+apEIlEmKy+TlSc5Eu9gF4mEkjHL eDcwjuDvFyFEp9M+nBd+/JdYQ0O9sOcXSb10XVL1bWjg79h5bOzYMevWLikte7h//2kSifTR8rnY VBUVlahFETOmT2pobGprbT9w8NfgiX74NUrE+4h4vYNOJdbV1b112+GGhqaNG5e/+LZvgqmDxkyw nYn3L3FZ3EC//MQ1wlZUUHAv/koah8Pz8Xa1sDAZYNu8kZQlMWO8vV1pNLU7d0vlkJiZTMcN65eR B+gRunb9hpmZ0dOn3QghLy/nnp7e/Py7fX19JJLaS+cHgFh6eg528dfj+obVn32HjYw5egG/+Gt8 oJe/n1tWdsHVqxnZN/IDA71mTJ9kaKinyKCHzNeXOSkkQHLM6NH6w7Jk4r9fhBDW80mjqeGJUxaX Ll2n09XXr1uqpkZ1dxsXGTntzJn40PfHS97AqampoampsXffKQqFPHlyAMHS5Cbm6HkOh//1Vx9L XVQly1RixNuZeP8Ouo9wL/7yE8QsEvXn5RVeSchobGzy9WGuXbNY6hq6t4CCE/OlS9dtx1oyn3dB qKiokEmknp7ekV4viUQyNNTFvzFCoQghRH7eYVVf31hXx42YMRlr1gAwdL5+blZW5sd/idXV0Zo9 +30+v+XY8d/mzgl1cLDG5yGTyZMnBUwM8r1xoyDhasb//nf74+jIgAAPhBCJROqTaD8JBB1Z2QXe Xi5GRgYvTpX6Pg9K2PdC2eG4qIJEItHV1fGuV7FY3NPTi7cLSSSyZMwvvWiIYMkEf78Iod7e3rPn EkyMDR894mRm5k2e/J5kcYL6lpY99PJ0xruUfX2YZ87El5VXST1Zob6+gc0uDn1/guQ1ccT7iHi9 g04lUFFRXVhYsjhq5kvzLvHUQb9XBNt5sP1LVJb4l58gZpGo/x/f/lxf3+jry9ywfpmp6cg+8UJR FNwxe5t9PyEhA78IsKqqrqOzSw6dEsbGhuXl1fh6y8oeYiOxwby8IjKZxGS+PWcsgMLp6Wo7OtrQ aGoMTQ1HRxtra3OEkJmZkb29tdScZDIpJMR/186vly+b4+xsh400MTEsK6uSfJxTbGxyd/ezHzKp 73Np6QMk8X0eVE1NPf6biJU1+HtH+usxMTG8d78Mz7iVlTWror+5e7cMGzQw0JGMufxVrvwi/vtF CCUkZLa0tK9Zs9jHh3nx92sCQYdkcYL6qqurNfKa8Tl5vGaEkDpN+kKqhKuZFApl2rS/3UVJvI+I 1zvoVAIFf9xTU6NOnOj7GlNf6XsltZ2J9y9xWeJffoKYSSTViBmTt2/74rPVUW9rVkYIkb76+hsF rl6NSklNu/mojivqF5WUVJ45E89gjFq2dLYsvR9DoTGKfj31f9idD/fvl587n2hmajRvXpiKiopY LP7vid+trcwnTPBp5DX/8cc9urp6yZ8PWlufzJo5Bb9KAoDXkJmZp6FB9/VlPnnSkZGR6+fnZmLy 8vSpqqo6ZowZ3nQbNYqemnrzUR1XLBYXFpVc/P2atZX5jBmTsC+k1Pf5/IW/vs89Pb3JKdke7k5j xpjFx6c5Oto4OFinXLthbGSA3QSYlZ1PIpHuF1eoPC+rqakRtSgC6wGura2vqKyp5zQWFpaokkg0 mlo9p3H0aD1ZpmpojMpk3SqvqFZVUSkrqzp7LkFj1KiFC2dg11KJ+8XZ2QU1NfVisZhdWHznTmlL S/t7AR6y9HUT/P0ihBobmw4fORs80TcoyMfG2vz69f89edKBXypMXF+RUJSRmcfnt/T19v1Z+uDs uas0GnVx1EzJE8A8XvOJE5dCQ8d7evztOefE+4h4vcRTMfkFd58+7X4xXaWkZItE/fr6OvWcRvyf hgYdu4aLeOorfa+ktjPx/iUuS/zLTxyzmZnR23QB9kspuCt7/HhvpKKSlMQ6evQ3KpXi7GwXFRWB /xiNHE9P59WfLkq4mnEk5jz+QAbsb6Cqqo7Ha8aeKOLl6ezt7RoXn0qjqUVFRbzSySoAhhF2D1Vi EuvwkXN0Os3by2WhxP21BN9nWRga6o4f733hQiL+aAu8EzUruyA9PQf73N4uwNo9hw7+wGCQB53q 4eG05rPF8VfSjh2PpdGojo62ixbOwB8fFhzs19YuSE/PKS6pcHcbN3dO6LbtMbJvDYL6/nr2CoVC mTPnfYSQvr5uaOiExERWSLCftbXFoPUNDZ1AIpFS027eulVEpVLs7a2jFkWoq/+txZyYyKJQyOFh E1+MimAfEa930KkEunt6ebzm/ftPS47EL+8nnjqU7xXx/iUuS/zLTxzzu0Cltb1z8LkAAG8pWd5r BACQJ2gCAgAAAEoEEjMAAACgRCAxAwAAAEoEzjEDAAAASgRazAAAAIASgcQMAAAAKBFIzAAAAIAS gcQMAAAAKBFIzAAAAIASgcQMAAAAKBEleh/ztu0xfH7Lju1fkkjyOFzIyytKuJrB4fDw57hqamog hASCzgMHzpRXVGlpaa74aK6rq4NYLN6w8SdTU6MvtqySQ2DvGpGo/+SpS7m5RSSS6nsBHosXz5R8 yPMXX263sjL/9JOFCoxQEjzAEgAw0pSlxVxRUV1SUjkzYrJ8sjKbXXzo8Fl9fZ3oVfOnTwspulOy a9fx/v5+hFB2dkFZedWSJbMYjFHYm+1razktLe3+fm5yCOwdlH0jPysr/4PwoPenjk/PyM3JYSs6 IgAAUCRlaTFfjks1NNQLCPCUz+qSU7LNzY03bliONc4MDHQPHDxTWvrQyWmsQNBBp9NCgv05HN6t W3cQQmx2MZlM8vR0kU9s75ry8mojI/3Zs99HCNU95nZ2PlV0RAAAoEhK0WKWc3MZIcTl8hwcrPEu 03HjbLGRL525sKjExcWeTpd+WToYFn19wlGj6NjnDeuXhYZOUGw8AACgWErRYpZzcxkhJBKJKBLv Om1vFyCEhCLRi3M2NbU+esTBXs/8zrp583ZiEovL5aurq3m4Oy1cOENDgy5LQbFYnJjEYrFuNTe3 0WhUZye7qKiZOjqa2NSurqciUb+wT9gv6hcIOhFCKqoqGs+T9L79p//44x5CiMvl5+YWIoRUVVVP ndyBL1zyKgEXF7sFC6br6WrjUw8fOVddXbf606jDR87x+c3eXi7R0ZHYK9yHXt+iO3+eORPf0tJm b2cdHR2pp6ctS32x89MhIf4DlY2LT0tPz+nu7vHwcAoJ9t+67YjkO2iJ6wsAeGuQvvr6G8VGUFFR /fula4sWzhgzxkxuK01MzBwzxszFxR4hdJtd/PPu/wqFQldXe1tby/KK6vLyKh9vZkHB3c6OLgMD 3UePOFGLImR8afnbh80uPnjoVzs7q5kRk01MDLOzC/4sfTBhvLfkG+AHkpjIir2YHBDg8f7U8WPG mOXdusNmF4eE+GNl//Xvw7/+eqWhgd/W9iQpOSspOSs7Ox8/BtLT03Z1daisrLa0NFm4cIavL9PX x9XUdDQe1f4DZ5ycxn7wwURra/O8vDt5eUXBwX54p8vt2/dbWtorKqsnBvno6+tkZReMHq1vYWEy xPpmZed3dj6tr2+cOiXQ0tI0N6/wQWVNUJCPLPUlLsti3Tp/IdFp3NgZMyZR1ahYdn8vwGP0aH1Z 6gsAeGsoPtngzeXMzLwTJy/FHPmRTleXz6pFov6LF5NTrt0IDw9KTGRhI/393NLScr74cjtCKHL+ B4GBXl5eLm96VsbaplIj1dVpZPLgLciUa9nm5sbr1y3FsouernbM0Qu1tZwxY0wHXTK/qWXqlMDF i2di4/X1dfbtP11T89jKyhwhtGzpnKdPuy9fvv5E0Lls6WyEEEkiHltbS4TQ77+n6Onp+Hi7Sq0i OSXbwcFm9aeLsEFLC9N/bz18/365h4cTPg+P17x82Rwnp7FisfjevbLmljZZtgZxfRFCTU2t3/7j MxpNDRv8/dI1Hq/Z0FBv0PoSl82+UWBhYbJx43L8iKeiovqV6gsAeDsoON9gZ5ejV82X/4F/W7tg 27Yj9ZzGLZtX2tpa4onZ1NRo98/fPK5v0NZiaGsztm2PKSmppFDI8+aFhYUGyTnI4bJj57GHDx9J jZTsJiXA4fD8/NzwbMFkOiyInIanFuIlf7R8Ljamt7e3p6cPO+Tq6OjCRmKpjqGp0ScUOjravFKN uFyet5cr1gGOEMI6hJuaWyXnUVOjYlcPqKio7NzxFT6eOGbi+iKErKzM8EEs7KamViy5EteXuCyf 3+rnx8TXa29n9ar1BQC8HRScmOPiUnV1tVxdHQSCzu7uHoRQR0cXlUqVpSU3RLm5hba2lj/9uElX VwtbNY5OpzVw+UlJLD9ft5KSylUr59+7XxYbmzx1yvg3tOcQa5tKjTS3MJalrNT5eAZDIzx8ooxL 7u/vT0xiZWTktrS041PFYvGrxD5gVJmsvExWnuRI7IY3nLY246X97cQxE9cXIUShkKU+C4VCPADi +hKUFYmEkuuVnFPG+gIA3g4KTsxV1XVdXd1r1v6Aj/l881YZW3JDxGQ6bli/bKAjgGvXb5iZGWE/ 315ezj09vfn5d/v6+kgktZfOr+Twblg5L/lyXGpCQsbkyQHOTnbq6jRuA+/EiUvDtWpfX+akkADJ MdjpWNxAZ8FHbmsotr4AgLeDghPz55tW4Gf7CotKrl27sWnTR9Y2FiO9XhKJZGioi2dloVCEECI/ v2S3vr6xro4bMWNyZ2fXgIt4Z5BIpL7nrTqEkEDQkZVd4O3lYmRkMGjZnBx2gL/HksWzsEGpVqAs VFRU0fMWZ1l5VVvrEz8/Nywquro63gEuFot7enpfY/kvUlR9SSSy5Hr7+oR/nzpS9QUAKBsFd8za 2Vk5Otpg/4yNDBBC9nZW+A0zI8fY2LC8vBrvYywre4iNxAbz8orIZBKTOeKt9jeCiYlhWVkVvq3u 3CmNjU3u7u6VpWxfn1AkcRNaadnDV107g0HnNz07k3olPi0xiYVHde9+GZ69KitrVkV/c/du2asu /0WKqq+BgY7kd7Jc4sovNJL1BQAom3f0iDs8LGjP3pO7d5/w93dvbW2/kpBhNcYMa46IxeK8W0VO 48bSaGr0UeoIoYyMvPKKaiqVSqVSFB24AoSFBu3Ze3LvvlO+PkwevzkxkWU3doyl5eD3HSGEHB1t 8vPvGo7WMzczrql5/BqJ2cvT5ey5hLi4VFVV1ZI/H8yePRUbHx42cfeeEzt2Hgua4N3V1Z2UzDLQ 13V2tnvV5b9IUfUNmuBz4uQl7DvZ1NxaWFgiOXXk6gsAUDbvaGL29HRe/emihKsZR2LO4y+xwB4E VlVVx+M1Y3fTenk6e3u7xsWn0mhqUVERki9XeHd4ejp/HB2ZmMQ6fOQcnU7z9nJZuHCGLDcxI4Si FkV0dXWnpGRTKGRfH7cFC6b/61+HXmntU6YENvKak1Oy+/vFEyZ443c5e3g4rflscfyVtGPHY2k0 qqOj7aKFM4blyElR9Q0O9mtrF6Sn5xSXVLi7jZs7J3Tb9hh86sjVFwCgbFRa2zsVHQMAQFpFRfWP Px38+qtPsDu+AADvjnexCQiAEtq56/jWrUfwwbLyKoSQsfHgV5wBAN4y72hXNgDKxsfb9fgvsTFH L7i62Dc0Nl29muHjw9TR0VJ0XAAAeYOubACURXp6zvXU//H5LerqND8/9wWRH1CpVEUHBQCQN0jM AAAAgBKBc8wAAACAEoHEDAAAACgRSMwAAACAEoHEDAAAACgRSMwAAACAEoHEDAAAACgRJXrAyLbt MXx+y47tX5JI8jhcyMsrSriaweHw8Gdla2pqIIQEgs4DB86UV1RpaWmu+Giuq6uDWCzesPEnU1Oj L7askkNgAAAA3mXK0mKuqKguKamcGTFZPlmZzS4+dPisvr5O9Kr506eFFN0p2bXreH9/P0IoO7ug rLxqyZJZDMao8xcSEUK1tZyWlnZ/Pzc5BAYAAOAdpywt5stxqYaGegEBnvJZXXJKtrm58cYNy7EX RhkY6B44eKa09KGT01iBoINOp4UE+3M4vFu37iCE2OxiMpnk6ekin9gAAAC8y5SixSzn5jJCiMvl OThY469xxF7gw+XyXjpzYVGJi4s9nU6TT2wAAADeZUrRYpZzcxkhJBKJKOS/6t7eLkAICUWiF+ds amp99IiDvwYYSGpvF6xZ+4Oz09jKB7VmZkZz54QePPirtrbm119/gp2wF4vFiUksFutWc3MbjUZ1 drKLipqpo6OJFf/+h30MxqigIN9z5xJaWtqsrS1WfDTX1NQIX/7Nm7cTk1hcLl9dXc3D3Wnhwhka GnTFVBUAAORF8S1m+TeXpdxmF//zxwP4IIVK6e3t43L5fH4LlUIpK3toYKDr7j5OIbG9ESgUyuLF Mx8+fJSUnLVixbx6TuPNm7exSYmJrNjYZCbT8ZOPF8yMmFJeUb1z1zGxWIyXbeK3ZrFuzZnz/ofz wuvrG3fuOi4UCrFJbHZxzNELRkYGn3y8ICws6Da7ePeeE5JlAQDgraT4FjPeXM7MzDtx8lLMkR/p dHX5rFok6r94MTnl2o3w8KDERBY20t/PLS0t54svtyOEIud/EBjo5eXlQiYrfkONnK6upyJRv9RI dXUamUySpbi7h1PQBJ9ffrlob2/l5eWipcXg8VuwSfymlqlTAhcvnokN6uvr7Nt/uqbmsZWVOTam re3J99+vU1OjIoQMDHT37T9dUlLJZDoihFKuZZubG69ft1RFRQUhpKerHXP0Qm0tZ8wY0+GoNAAA KCkF5xusuRy9ar78m8tt7YJt247Ucxq3bF5pa2uJJ2ZTU6PdP3/zuL5BW4uhrc3Ytj2mpKSSQiHP mxcWFhok5yDlY8fOYw8fPpIauWXzSldXB1mKq2D/q6ioIBXsg7j/Wbv2o+VzsQ+9vb09PX3YIVdH Rxde1nKMKZaVEUKOjrYIIX5TKzbI4fD8/NywrIwQYjIdFkROo9HUXr1+AADwJlFwYo6LS9XV1XJ1 dRAIOru7exBCHR1dVCpVxrbaUOTmFtraWv704yZdXS1s1Tg6ndbA5Sclsfx83UpKKletnH/vflls bPLUKeMV1d8+opYtnfP0abfUSHML46Evub+/PzGJlZGR29LSjo+U7I6mUP76BmI7He/KlroOgMHQ CA+fOPSQAABAySk4MVdV13V1da9Z+wM+5vPNW2Vvqw0Fk+m4Yf2ygY4Arl2/YWZmhKUrLy/nnp7e /Py7fX19JNJb2GIbuc7hy3GpCQkZkycHODvZqavTuA28EycujdC6AADg7aDgxPz5phX42c3CopJr 125s2vSRtY3FSK+XRCIZGuriWVkoFCGEyKRng/X1jXV13IgZkzs7uwZcBJBBTg47wN9jyeJZ2KBk +xgj7BP+9RnbC89bySQSqU/411SBoCMru8Dby8XIyGBkgwYAAIVScGK2s7PCP2O3EdvbWcnh4i9j Y8Py8mqxWIydwiwre4iNxKbm5RWRySQm0yE3t3CkI3m79fUJRRI3oZWWPZSaoaamvqenFzvNXFr6 ACFkoK+DTTIxMSwrq8L30Z07pbGxyS7O9nIKHQAAFORtvtiYQHhY0J69J3fvPuHv797a2n4lIcNq jJmjow1CSCwW590qcho3lkZTo49SRwhlZOSVV1RTqVQqlaLowN8wjo42+fl3DUfrmZsZ19Q8fjEx a2ox9u0//V6AR1vbkysJGXp62k5OY7FJYaFBe/ae3LvvlK8Pk8dvTkxk2Y0dY2lpIvdKAACAXL2j idnT03n1p4sSrmYciTmPv8QCexBYVVUdj9eMPVHEy9PZ29s1Lj6VRlOLiorAnxQGZBS1KKKrqzsl JZtCIfv6uC1YMP1f/zokOYOhoe748d4XLiTiDxjBu7I9PZ0/jo5MTGIdPnKOTqd5e7ksXDgDv0gb AADeViqt7Z2KjgG8o7Anf32+aYWiAwEAACUCTUAAAABAiUBiBgAAAJQIJGYAAABAicA5ZgAAAECJ QIsZAAAAUCKQmAEAAAAlAokZAAAAUCKQmAEAAAAlAokZAAAAUCKQmAEAAAAlokTPyt62PYbPb9mx /UsSSR6HC3l5RQlXMzgcHv6sbE1NDYSQQNB54MCZ8ooqLS3NFR/NdXV1EIvFGzb+ZGpq9MWWVXII 7C3zzT9+Hj1af93aJY8fN3z9f7s2rF/m6ems6KAGV1FZs3PnMUdHm00bP5Icz2YX79l7Evs8PtAr OjrytVdRXV33/77bO1xvHx/o+zx0d+6UXvw9pb6+gUKhMJkOSxbPklzybXbx77+nNDY2UalUDw+n qEURo0Y9ezvcwYO/3sq/I7koDQ364UP/xD5//8O+hw8fSa1LcmsQLBkhxGYXx8WnPn7cQKer+/u7 R86fhr9UVMZHvf4Wm5SaenPnjq90dbWkJj14UHvo0Fl+U0vMkR9ffNmdSNR/8tSl3NwiEkn1vQCP xYtnSj1Fn2DJmBd/6wbdGiO3f4ESUpbEXFFRXVJSGb1qvnyyMptdfOjwWTc3x2kfBLe2PrmamMHh NH7//TpVVdXs7IKy8qqlS2dlZt46fyHR1dWhtpbT0tI+d06oHAIDSqKzo6u7u6epqVVqvLW1xdq1 SxBCp0/HKSKulyP4Pg9xydU1j3fvOWFra7lixYftbYKEqxn79p/6xzefYVMfPKjdt++U0zjb6dNC Wlrbr1xJFwg6N3/+V0bU1dVetGgGPkgh//WD8+G88A6J952Xl1elpt7U0KDLsuQ//3ywd98pp3G2 K1d82NLafvVq5tOu7lc6SBIIOtLScsLDJkrlTrFYnJKSHXsxmfT87ewvyr6Rn5WVP2vmFLEYxV9J s7Y2Hz/ee9Al4176W0e8NUZu/wLlpCyJ+XJcqqGhXkCAp3xWl5ySbW5uvHHDcuybbWCge+DgmdLS h05OYwWCDjqdFhLsz+Hwbt26eLYYkQAAIABJREFUgxBis4vJZJKnp4t8YgPKwN193L69344aRZca r6Oj6ePtihD67bckRcT1cgTf5yEu+X//+4NKpWzZvJJGU0MIjRql/t8Tv3M4jSYmoxFCObmF6upq mzatwFursbHJAkEHg/GsMUdXp2Gb60XjxtlKDt69W6qlxbCyMscGiZeclJxlaKi3efNKLH1qa2ke /yV2zpxQPT1tGeuVmJSlrk774IOJUuNPnLyUlZUfHj5RW4tx9lzCS8uWl1cbGenPnv0+QqjuMbez 86ksS8a99LeOeGuM3P4FykkpDriwQ8iZEZPl01xGCHG5PAcHa/x4E/ur4HJ5L525sKjExcWeTqfJ J7Z3llgsZrOLu7qeDj6rXOjoaL0pb+B+pe/zKwnw91i/bimWlRFC5ubGCKHW1ifYYG9v7yg6Hc+d 2loMhFBvr/BV19Lf319U9KeHuxP+Wk/iJT96xBnnaIs3al1c7MVicUVFtYyra28XpKfnzp0bitcL Fxzs9+UX0ZHzPyBoMff1CfEjtg3rl4WGTpBlyRhZfute3BrE+/fevbK2tifEVQZvFqVoMcu5uYwQ EolEkr1q7e0ChJBQJHpxzqam1kePONjrmcErSU7OOn8hESH06BFn8ZLN2Mg9e0+qqVGPH/u35JxY So6LT3v0iBO9aj7eMXjz5u3EJBaXy1dXV/Nwd1q4cAbeuYcGPuvW3i5Ys/YHZ6exlQ9qzcyM5s4J PXjwV21tza+//gSbATsHGRTke+5cAv4eaFNTI2yxQzyLLBmVi4vdggXT9XS18WrGxaelp+d0d/d4 eDiFBPu/2gYdGPH3edeu45UPav/zn681RtERQpcvX4+LT/v+u3U2NhZYVIlJLBbrVnNzG41GdXay i4qaqaOjiZW1tbWUXFHd4waEkJGxATbo6GBz48YfFZU1dmPHIIRycwsNDfVe7MLt7u4hk8lk8oCp rqKyRiDo9PR0wscQL1koFJIpfy0Ny9+Cjr89Xfg2u/il+xchlJjIMjEx8PZyEQpFUlFZjTEbKEiE UFfXU5GoX9gn7Bf1CwSdCCEVVRUNiW4VgiVjZPmte3FrEOzf/v7+U6fjWlvbgyf6TZsWgu848EZT fItZ/s1lKbfZxf/88QA+SKFSenv7uFw+n99CpVDKyh4aGOi6u49TSGxvNA8Pp7Vrl+jr69jYWKxd u2ThwukIoQ/CJ376yUJ8HrFYnJ9/95t//Lx33yl9fZ1//rAez8psdnHM0QtGRgaffLwgLCzoNrt4 954TYrEYn3ro8FkDfd1PPl4QMWNS0Z0/d+063t/fjy+ZQqEsXjzz4cNHSclZK1bMq+c03rx5G5/a xG/NYt2aM+f9D+eF19c37tx1XCh81hrDziKvXbtES4vxqlXGojI3N46Onj9r1pTy8uqtW4/09T1b Mot1Ky4u1dbGcuWKDy0tTS9dvv6qy5eF1PcZIbRoUURPT298fBpCqLX1SVJyVmCgF5aVEUKJiazY 2GQm0/GTjxfMjJhSXlG9c9cxfDvjWluf5OffjY1NGh/ohR9q+Pt7WFubHzx4hsNpvHAhsbikctHC GXg7DyHU0tq+ecu2VdHfrFz19Z69J7Fk9iI2u5hGU5PsmCVesqGhXk1NPT5zdXUdQoim9lcjlWD/ dnV1Z2Xnczi8jz/5duWqr/fvPy15cpfYjp3HVn/2XdGdP6trHq/+7LvVn323Zcs2fOqgS5bxt+7F rSFJav+qqqr++1+fz5sXll9w9/PN/z516nJzS5uM1QFKS/EtZvwQMjMz78TJSy+9DHKEiET9Fy8m p1y7ER4elJjIwkb6+7mlpeV88eV2hFDk/A8CA728vFzIZMVvKEXBWglSI9XVaQQNIIyRkYGRkcGV K+m6uto+3q6PHzcgdHXs2DH4VdlsdnHsxRQOp9HT0/nj6EhLS1PJ4inXss3NjdevW4r9HOvpascc vVBbyxkzxhQhlJySbWFhsnHjcmyqgYHuvv2nJc+6uXs4BU3w+eWXi/b2Vl5eLlpaDB6/BV94W9uT 779fp6ZGxcuWlFQymY5oaGeRk1OyHRxsVn+6CBu0tDD999bD9++Xe3g4IYSybxRIxowQkr33VZa9 8NLvM0LI2Nhg6pTA1LSbU6cEJlzNUFVV/XBeOD6V39QydUrg4sUzsUF9fZ19+0/X1DzGT3Bitnyx raen19HRZsWKD/GRJJLq5s9X7vrP8a//7z9isTh61XysppJhj7W1jFoU0drafuG3xAMHz3z91Scv 1o7NLnZ1dZD8KyNe8vjx3qdOXb4clxoU5NPS3Hbm13iEkLn5X21igv2bm1fY3d3j7j5uUoh/U1Pr hd+SDh06K+MNF8uWznn6tPvy5etPBJ3Lls5GCJEktv+gS5bxt+7FrYEZaP+qqVHDQoMmhQRksvKS krJYWflBE3zmzg1lMEbJUimghBScb+R8MbaktnbBtm1H6jmNWzavtLW1xL/opqZGu3/+5nF9g7YW Q1ubsW17TElJJYVCnjcvLCw0SM5BKoMdO48R38jx2q4mZvL5zQMtisPh+fm54TmMyXRYEDkNP3XH 5f5tqqPjs7NueGLGJqioqKggFeyDuP+vVqDlGFPsVxsvy3/hAuzXwOXyvL1c8XYhdi1SU/OzJfP5 rX5+TDxmezsr2Zc86F4Y6PuMmTlzSk4u+0jM+QcPaufNC5Ps8Pxo+VzsQ29vb09PH5YqOjqkG5Eb NyyvfFBz9Wrm6dNxy5fPwcc3NPCbmlq1tBhtbU/KyqsCAjwkz86qq9PWrVuKnaoXi8UnTl6qq+Ni J6pxdXVcPr9l3twwqTUSLHlSiH9DAz8+Pi0uLhUbo6XFkDywI9i/d++W6uhorVu7BMt8YoROnbr8 +HGDmdlfeX0g2EEhQ1OjTyh0dLSRmkq8ZBl/6wbaGsT7FyFEpVJC358QEuy3b/+ZTFaep6fTsNyG BxRCwYk5Li5VV1fL1dVBIOjs7u5BCHV0dFGp1EFbY0OXm1toa2v504+bdHW1sFXj6HRaA5eflMTy 83UrKalctXL+vftlsbHJU6eMV1R/uwJhrQSpkeYWxi+dWVJvb19PT2+/qF/YJxQIOjs7uxBCT592 d3R0YaeKJ00KuHgxZc/ek+MDvadPD9HX15EsLnVejcHQCA+fONBU7Avz0qsEXgq/quivssJXvmTp RSKRKJOVl8nKkxyJd7CLRELJmCVjGNSge4Hg+4wQotNpH84LP/5LrKGhXpjExUpYeIlJrIyM3JaW dnzki13ZTk5jnZzGmhgb7j9w5r33POzsrBBCDQ38HTuPjR07Zt3aJaVlD/fvP00ikfBMHxUVESmc hl9A5+pqjxCqqXkslZhvs4vJZJKbm6PkSOIlq6ioRC2KmDF9UkNjU1tr+4GDvwZP9JO8d4hg/z56 xHVyGou3R92YDqcQqqqqkyUxEyNesoy/dS/dGmiw/YsQ6u/vLyi4F38ljcPh+Xi7WliYDLE6QIEU nJirquu6urrXrP0BH/P55q3D9cgFYkym44b1ywY6Arh2/YaZmRH2U+jl5dzT05uff7evr49EevnF lm8xrJXwGtLTc7CLvx7XN6z+7DtsZMzRC/jFX+MDvfz93LKyC65ezci+kR8Y6DVj+iRDQ73hilwh fH2Zk0ICJMeMHq0/9MUOuheIv88IIey2AhpNTerm18txqQkJGZMnBzg72amr07gNvBMnLg20EG9v VxpN7c7dUiwxX7p0nU5XX79uqZoa1d1tXGTktDNn4kPfH4/dTCV1kp5OpyOEnj6VTipsdvG4cWPV 1f921wPxkjGamhqamhp7952iUMiTJwcg2fT29EperoVF9dJU96qIlyzjb91LtwYi3L8iUX9eXuGV hIzGxiZfH+baNYslr3QDbyIFJ+bPN63Az5wVFpVcu3Zj06aPrJ9fljJySCSSoaEu/i0XCkUIIfLz jrL6+sa6Om7EjMmdMl8VAl7k6+dmZWV+/JdYXR2t2bPf5/Nbjh3/be6cUAcHa3weMpk8eVLAxCDf GzcKEq5m/O9/tz+OjgwI8EAIkUikPolWrEDQkZVd4O3lYmRk8OJUqT04KGHfC2WH4zICEolEV1fH OznFYnFPTy/eeiORyJIx9/UNQxsdXy/B9xkh1Nvbe/Zcgomx4aNHnMzMvMmT38Mn5eSwA/w9liye hQ1KteMvXbpuO9aS+Tx5qKiokEmknp5ebLC07KGXpzPeaezrwzxzJr6svApLn0VFf5LJJBcXe2xq R0cnen58gGtqaq2trcebwjjiJePq6xvY7OLQ9ydIHQQQ7F8NxijJa9CwqCSv9n9txEuW5bduoK1B sH9Fov5/fPtzfX2jry9zw/plpqajEXjzKTgx20mcZsNuy7O3s5LDxV/Gxobl5dVisRg74VdW9hAb iU3Nyysik0lMpkNubuFIR/IW09PV1tPVptHUGJoajo422KUoZmZG9vbWUnOSyaSQEP8JE3xu3rzt 7GyHjTQxMSwrq8L30Z07pbGxyS7Oz37lpfZgaekDJLEHB1VTU9/T04v97mNlDf7ekf56TEwM790v 6+sTYumtsrLmx58ObtywHLtwycBARzLmcpmv/BoU8fcZIZSQkNnS0v6vnzbFX0m/+Ps1X18m/gyQ vj6hSOIUQGnZQ8kl32bf/7P0gauLPbbkqqq6js4uvJtUXV2tkdeMz8zjNSOE1GnPUi+bXXznbunP //k/rDebzS5GCNnajpFcfmFhiYqKitQlY4Mu+a96Xc2kUCjTpknfzUiwf+3trYqK/sSn3r59HyFk bT0MjQHiJcvyWzfQ1iDYvySSasSMyZaWpsbP72EDb4F39GLj8LCgPXtP7t59wt/fvbW1/UpChtUY M6yhIxaL824VOY0bS6Op0UepI4QyMvLKK6qpVOqb8riJNxSZTJo40RcfDAsN2rP35N59p3x9mDx+ c2Iiy27sGEvLZymBYA/KQlOLsW//6fcCPNranlxJyNDT08avGqutrcdSQk9PL7+pteCPewghD/dx WJOLeGp42MTde07s2HksaIJ3V1d3UjLLQF8XP9QImuBz4uSl3btP+Pm58fjNd++WDcdmG3xrNDY2 JSWzQoL9zM2NF0R+8MWXJb/FJq98fnG1o6NNfv5dw9F65mbGNTWPpRJzeFjQ0WO/7d13ytvb5cmT juTkbAMDXT9fN2xqSLD/ufNXY45ecHWxfyLoSE7O1tHRxM+PTp0amJPL3rHzaNAEn6bmtqtXM3x9 mUZGf+vYv82+b2Nj8eKdacRLxvB4zbdu3QkPD3rxqdEE+zc8LCg3t3D7jqMhwX58fsvVxEw/Xzep qF7P0Jc80NYg3r9+fm5DDx4olXc0MXt6Oq/+dFHC1YwjMefxx1Ng596qqup4vGbsiSJens7e3q5x 8ak0mlpUVAQ8mVaesHuoEpNYh4+co9Np3l4uCyXuZCXYg7IwNNQdP977woVE/AEUeFdnVnZBenoO 9rm9XYC1Tg4d/IHBIA861cPDac1ni+OvpB07HkujUR0dbRctnIEfzwUH+7W1C9LTc4pLKtzdxs2d E7pte8xwbSuCrfHr2SsUCmXOnPcRQvr6uqGhExITWSHBflhjLmpRRFdXd0pKNoVC9vVxW7Bg+r/+ dQhf8vjx3khFJSmJdfTob1QqxdnZLioqAu9hDg2dQCKRUtNu3rpVRKVS7O2toxZF4OdHLSxMtmxe deFC4vFfLtLVaeMDvRctmi4ZtkDQUVZWNX/+By/WiHjJmMREFoVCDg+b+GJxgv1rYjL6iy2rzl9I PP5LrLo6beJE38iXBfAahrhkgq0xxG87eOOotLa//JZ/AN5WMr59CAAAFAKOuQAAAAAlAokZAAAA UCKQmAEAAAAlAueYAQAAACUCLWYAAABAiUBiBgAAAJQIJGYAAABAiUBiBgAAAJQIJGYAAABAiUBi BgAAAJSIEj0re9v2GD6/Zcf2L0kkeRwu5OUVJVzN4HB4+LNnsUfhCwSdBw6cKa+o0tLSXPHRXFdX B7FYvGHjT6amRl9sWSWHwMDQwUM3R0h1dd3/+27vK70xXSTqP3nqUm5uEYmk+l6Ax+LFM7GHPLPZ xXv2nsTmGR/oFR0dOUIxv4aKypqdO485Otps2viRomMB7yJlaTFXVFSXlFTOjJgsn6zMZhcfOnxW X18netX86dNCiu6U7Np1vL+/HyGUnV1QVl61ZMksBmPU+QuJCKHaWk5LS7s/vMIFgFeXfSM/Kyv/ g/Cg96eOT8/IzclhY+OtrS3Wrl2ydu2SF1+mpHCdHV3d3T1NTa2KDgS8o5SlxXw5LtXQUC8gwFM+ q0tOyTY3N964YTl28G5goHvg4JnS0odOTmMFgg46nRYS7M/h8G7duoMQYrOLyWSSp6eLfGID4G1S Xl5tZKQ/e/b7CKG6x9zOzqfYeB0dTR9vV4TQb78lKTK+l3F3H7dv77ejRtEVHQh4RylFi1nOzWWE EJfLc3Cwxt+bNm6cLXr+9vIXFRaVuLjY0+nSL2kHAAyqr0+IZ7gN65eFhk5QbDwy0tHRgvevA0VR ihaznJvLCCGRSEQh/1X39nYBQkgoEr04Z1NT66NHHOz1zGDY3bx5OzGJxeXy1dXVPNydFi6coaEh azNl0LJFd/48cya+paXN3s46OjpST08bGy8WixOTWCzWrebmNhqN6uxkFxU1U0dHE5uKnZ8OCfEf qGxcfFp6ek53d4+Hh1NIsP/WbUckz7lKXrvg4mK3YMF0PV1tGWtEUHbXruOVD2r/85+vNUbREUKX L1+Pi0/7/rt1NjYWeMxBQb7nziXgbyA2NTUaifrKWBeEUFfXU5GoX9gn7Bf1CwSdCCEVVRWNYWqG Hj5yrrq6bvWnUYePnOPzm729XKKjI0kkEjaVYEsS78FBz3wPdG0KGmxLAiA7xbeY5d9clnKbXfzP Hw/ggxQqpbe3j8vl8/ktVAqlrOyhgYGuu/s4hcT2dmOzi2OOXjAyMvjk4wVhYUG32cW795wQi8XD UralpT0tLWf2rKmzZk6tfFBz6NCv+KTERFZsbDKT6fjJxwtmRkwpr6jeueuYjGVZrFtxcam2NpYr V3xoaWl66fJ1qagOHT5rbm4cHT1/1qwp5eXVW7ce6esTylgjgrKLFkX09PTGx6chhFpbnyQlZwUG emFZGdPEb81i3Zoz5/0P54XX1zfu3HVcKBSOdH2J7dh5bPVn3xXd+bO65vHqz75b/dl3W7Zsk734 oPr7xb+ejZ865b3gYL/cvKK8vCJsPPGWJK4R8ZlvbMkG+rqffLwgYsakojt/4temYAi2JACyU3yL GW8uZ2bmnTh5KebIj3S6unxWLRL1X7yYnHLtRnh4UGIiCxvp7+eWlpbzxZfbEUKR8z8IDPTy8nIh kxW/oZQT1iqSGqmuTiOTSYOWTbmWbW5uvH7dUhUVFYSQnq52zNELtbWcMWNMB10ycVmEUFNT67f/ +IxGU8MGf790jcdrNjTUQwjxm1qmTglcvHgmNklfX2ff/tM1NY+trMwHLZt9o8DCwmTjxuXYehFC FRXVeHjJKdkODjarP12EDVpamP576+H798s9PJwGrRFxWWNjg6lTAlPTbk6dEphwNUNVVfXDeeGS y2lre/L99+vU1KgIIQMD3X37T5eUVDKZjiNaX+IaLVs65+nT7suXrz8RdC5bOhshRJLhWyHLkjE8 XvPyZXOcnMaKxeJ798qaW9qw8cRbkrhGxGe+k1OyJcti2xm7NgWbgWBLAiA7BecbrLkcvWq+/JvL be2CbduO1HMat2xeaWtriSdmU1Oj3T9/87i+QVuLoa3N2LY9pqSkkkIhz5sXFhYaJOcgld+Oncce PnwkNVLG22k4HJ6fnxv++8hkOiyInIb/qBEvmbgsQsjKygwfdHS0QQg1NbViP5EfLZ+Lje/t7e3p 6cMOBDs6umQpy+e3+vkx8fXa21lJhsfl8ry9XLFuW4QQ1o3Z1NwqS42IyyKEZs6ckpPLPhJz/sGD 2nnzwvC+aIzlGFMsKyOEHB1tEUL85xcVj1x9iWuEHSQxNDX6hEJssbKT5XulpkbFrg5RUVHZueMr fDzxliSuETEu92/fOmw7c7k8PDETbEkAZKfgxBwXl6qrq+Xq6iAQdHZ39yCEOjq6qFSqLO2tIcrN LbS1tfzpx026ulrYqnF0Oq2By09KYvn5upWUVK5aOf/e/bLY2OSpU8Yrqr9daWGtIqmR5hbGspSV OtPPYGiEh0+UccnEZRFCFApZ6jPetdvf35+YxMrIyG1pacfnkezaJSgrEgkl1ys5JxZVJisvk5Un ORLv6hy0RgRlEUJ0Ou3DeeHHf4k1NNQLe+ESKslIsD8fOdR3KHufmCxL1tZm4DlSEvGWJK4RMalv 3bPtLHFtCsGWBEB2Ck7MVdV1XV3da9b+gI/5fPPWV3p8wWtjMh03rF820BHAtes3zMyMsJ8GLy/n np7e/Py7fX19JJLaS+d/Z+Fdx2/Qki/HpSYkZEyeHODsZKeuTuM28E6cuDRcC/f1ZU4KCZAcM3q0 PvZh0BoRlMVgtwbQaGr4DQWyGLn6KnbvvzQrYwbdkgAoMwUn5s83rcDPJBUWlVy7dmPTpo+sJS5p GSEkEsnQUBfPykKhCCFEfn5JZ319Y10dN2LG5M7OrgEXAYaMRCL1SbQnBIKOrOwCby8XIyODES2b k8MO8PdYsngWNvhKbSYSiSy5XqkLu0gkEl1dHe+2FYvFPT29Mi5/0LK9vb1nzyWYGBs+esTJzMyb PPk9yeJCiUiefZ+ft+1Grr7KiXhLDqVGUt86qd8NAIaLgjtm7eysHB1tsH/GRgYIIXs7q+G6oYKA sbFheXk13ptXVvYQG4kN5uUVkckkJnPEW+3vOBMTw7KyKnwv3LlTGhub3N3dO9Jl+/qEIonux9Ky h7LHbGCgI/nNKZe4bgiL6t79Mvy3vrKyZlX0N3fvlsmy5EHLJiRktrS0r1mz2MeHefH3awJBh2Tx mpr6np5n1S8tfYAQMtDXwQZHrr7KiXhLDqVGUr8b2HbGfzcAGC7v6MXG4WFBe/ae3L37hL+/e2tr +5WEDKsxZtghtlgszrtV5DRuLI2mRh+ljhDKyMgrr6imUqnwwIHhFRYatGfvyb37Tvn6MHn85sRE lt3YMZaWJiNd1tHRJj//ruFoPXMz45qax6+UqIIm+Jw4eQn75jQ1txYWlkhODQ+buHvPiR07jwVN 8O7q6k5KZhno6zo728myZOKyjY1NScmskGA/c3PjBZEffPFlyW+xyStXfIgX19Ri7Nt/+r0Aj7a2 J1cSMvT0tPErkoalvn5+bjx+s4wHGbKora1v5DUjhHp6evlNrQV/3EMIebiPG/odEMRbkngPEkdF 8LsBwDB6RxOzp6fz6k8XJVzNOBJzHn9QAHberqqqjsdrxp4o4uXp7O3tGhefSqOpRUVFvNKJPTAo T0/nj6MjE5NYh4+co9Np3l4uCxfOIDhxOFxloxZFdHV1p6RkUyhkXx+3BQum/+tfh2SMOTjYr61d kJ6eU1xS4e42bu6c0G3bY/CpHh5Oaz5bHH8l7djxWBqN6uhou2jhDBmP54jL/nr2CoVCmTPnfYSQ vr5uaOiExERWSLCftfWz8z6Ghrrjx3tfuJCIP2AEz3AjV9+hyMouSE/PwT63twuwXqtDB39gMIb6 o0S8JYlrRBwVwe8GAMNIpbW9U9ExAPCmqqio/vGng19/9Ql2346iwNu0XpuS7EEAJMGxHgCvYOeu 41u3HsEHy8qrEELGxoNfcQaUBOxBoPze0a5sAF6Pj7fr8V9iY45ecHWxb2hsuno1w8eHqaOjpei4 gKxgDwLlB4kZgFcQFOTT19d3PfV/eXmF6uq0oCDfBZEfKDoo8ApgDwLlB+eYAQAAACUC55gBAAAA JQKJGQAAAFAikJgBAAAAJQKJGQAAAFAikJgBAAAAJQKJGQAAAFAiSnQf87btMXx+y47tX5JI8jhc yMsrSriaweHw8GfeampqIIQEgs4DB86UV1RpaWmu+Giuq6uDWCzesPEnU1OjL7askkNgYLiIRP0n T13KzS0ikVTfC/BYvHgm9lhjNrt4z96T2DzjA72ioyNfexXV1XX/77u9w/IG8WGMaiiGsUYAgNej LC3miorqkpLKmRGT5ZOV2eziQ4fP6uvrRK+aP31aSNGdkl27jvf39yOEsrMLysqrliyZxWCMOn8h ESFUW8tpaWn393OTQ2BgGGXfyM/Kyv8gPOj9qePTM3JzctjYeGtri7Vrl6xdu0RLi6HYCCUpZ1QA APlTlhbz5bhUQ0O9gABP+awuOSXb3Nx444blWBPKwED3wMEzpaUPnZzGCgQddDotJNifw+HdunUH IcRmF5PJJE9PF/nEBoZLeXm1kZH+7NnvI4TqHnM7O59i43V0NH28XRFCv/2WpMj4/k45owIAyJ9S tJjl3FxGCHG5PAcHa/x9bdiLZbhc3ktnLiwqcXGxp9Np8okNDJe+PuGoUXTs84b1y0JDJyg2HgAA kIVStJjl3FxGCIlEIorE+9jb2wUIIaFI9OKcTU2tjx5xsNczAzm7efN2YhKLy+Wrq6t5uDstXDhD Q4MuS8GurqciUb+wT9gv6hcIOhFCKqoqGqNkKktMLBbHxaelp+d0d/d4eDiFBPtLzSB57YKLi92C BdP1dLWHXqNBEawXeylkSIj/mTPxLS1t9nbW0dGRenraMtYIACBnik/MWHM5etV8uTWXpdxmFx89 egEfpFApvb19XC6fz2+hUihlZQ8NDHTd3ccpJLZ3GZtdHHP0gqenc8SMyTx+c1JSViOv+R/frFZR URm07I6dxx4+fIR9Xv3ZdwghDQ364UP/HHpULNatuLhUd7dxfn5uzS1tly5fl4r50OGz/v7u06YF CwSdSUlZW7ce2frvzRQKeYg1Ika8XoRQS0t7WlrO7FlTm5vbriSkHzr067ffrpGlRgAA+VN8Ysab y5mZeSdOXoo58iOdri5Yz6WiAAAgAElEQVSfVYtE/RcvJqdcuxEeHpSYyMJG+vu5paXlfPHldoRQ 5PwPAgO9vLxcyGTFb6g3EdZylRqprk4jk0mDlk25lm1ubrx+3VIsb+npasccvVBbyxkzxnTQJS9b Oufp0+7Ll68/EXQuWzobIUSSYY2yxJx9o8DCwmTjxuV4Nq2oqMZnS07JdnCwWf3pImzQ0sL031sP 379f7uHhNGiNhhIV8XoRQk1Nrd/+4zMaTQ0b/P3SNR6v2dBQb9AaAQDkT8H5RoHN5bZ2wbZtR+o5 jVs2r7S1tcQTs6mp0e6fv3lc36CtxdDWZmzbHlNSUkmhkOfNCwsLDZJzkG86yZYrTsZbcTgcnp+f G54tmEyHBZHT8NRCvGQs1TE0NfqEQkdHm2GMmc9v9fNj4lHZ21lJzsbl8ry9XLHOc4QQ1l3c1Nwq S42GEhXxehFCVlZm+IqwDdLU1IolZuIaAQDkT8GJOS4uVVdXy9XVQSDo7O7uQQh1dHRRqVRZWlRD lJtbaGtr+dOPm3R1tbBV4+h0WgOXn5TE8vN1KympXLVy/r37ZbGxyVOnjFdUf/sbCmu5So00tzCW pazUdQAMhkZ4+MRhWTIx4iWLRELJqPC+YjzmTFZeJitPciR2Gx4arEZDi4povVJxYp+FQqEsNQIA yJ+C/wirquu6urrXrP0BH/P55q3yebgBk+m4Yf2ygY4Arl2/YWZmhP0Uenk59/T05uff7evrI5Fk at8AjCydtG/Zkn19mZNCAiTHjB6tP7SIEJIhqhFaLwBA/hScmD/ftAI/c1ZYVHLt2o1Nmz6ytrEY 6fWSSCRDQ108KwuFIoQQmfRssL6+sa6OGzFjcmdn10hHAgZCIpH6nrfqEEICQUdWdoG3l4uRkYFC oyJLRtXXJ/z7VBJdXR3vPBeLxT09vXgbdORqRLzewcoS1QgAIH8K7pi1s7NydLTB/hkbGSCE7O2s huW2FmLGxobl5dVisRgbLCt7iI3EBvPyishkEpMJjyRUJBMTw7KyKnwf3blTGhub3N3dq9ioDAx0 JL855X+/TsrExPDe/TI8t1VW1qyK/ubu3TJ86gjViHi9Q6kRAED+SF99/Y2iY3imuvrxnTul06eF UCiUkV6Xxij69dT/1dTUI4Tu3y8/dz7RzNRo3rwwFRUVsVj83xO/W1uZT5jg08hr/uOPe3R19ZI/ H7S2Ppk1c8rQ72wBMho1ip6aevNRHVcsFhcWlVz8/Zq1lfmMGZNk3wX5BXefPu2eONFXanxtbX1F ZU09p7GwsESVRKLR1Oo5jaNH6+EPnCEg7hdnZxfU1NSLxWJ2YfGdO6UtLe3vBXhg/cYaGqMyWbfK K6pVVVTKyqrOnkvQGDVq4cIZJBJp0BoNJSri9WZl56upUQP8PbCZ29qesLLy8ZiJawQAkL939EIP T0/n1Z8uSriacSTmPP4SC+wXsKqqjsdrxp4o4uXp7O3tGhefSqOpRUVFyPITCYaLp6fzx9GRiUms w0fO0ek0by+XhQtnDMuBUVZ2QXp6Dva5vV2A9ZccOvgDgzH4n0NwsF9buyA9Pae4pMLdbdzcOaHb tsfgUz08nNZ8tjj+Stqx47E0GtXR0XbRwhlUKkWWGg0lKuL1DqVGAAD5U2lt71R0DAAAAAB4BpqA AAAAgBKBxAwAAAAoEUjMAAAAgBKBxAwAAAAoEUjMAAAAgBKBxAwAAAAoEUjMAAAAgBKBxAwAAAAo EUjMAAAAgBKBxAwAAAAoESV6icW27TFx8WmTJ72nqiqPF0Xk5RUdOnz2zJn4a9du1D9utLOzUlOj IoQEgs6ff/7vL/+NZWXlm5oYjh6tLxaLN2z86f79ivfe85RDYEDOqqvr1q3/0dbGQvbXNnzx5fYH Dx95e7mMaGAvqqis+errnQ8e1Pr7u8tnjWx28Zdf7YiLS42LS23it3h6Og9vVMRlFbWdAVAsZWkx V1RUl5RUzoyYTCLJIyQ2u/jQ4bP6+jrRq+ZPnxZSdKdk167j/f39CKHs7IKy8qolS2YxGKPOX0hE CNXWclpa2v393OQQGAAEOju6urt7mppa5bZGa2uLtWuXrF27REuLMRJRyb9GACg/ZXm71OW4VEND vYAAOTVJk1Oyzc2NN25Yjr0wysBA98DBM6WlD52cxgoEHXQ6LSTYn8Ph3bp1ByHEZheTySRPTzhs Bwrm7j5u395vR438C8txOjqaPt6uCKHffksaiajkXyMAlJ9StJjl3FxGCHG5PAcHa/w1juPG2WIj XzpzYVGJi4s9nU6TT2wAENDR0ZLxfY7yNJSolLNGACiQUrSY5dxcRgiJRCIK+a+6t7cLEEJCkejF OZuaWh894mCvZwZK5ebN24lJLC6Xr66u5uHutHDhDA0NmRpeYrE4Lj4tPT2nu7vHw8MpJNhfaoa8 vKKEqxkcDo9GU3NxsVuwYLqerjY2ad/+03/8cQ8hxOXyc3MLEUKqqqqnTu6QpSxC6PCRc9XVdas/ jTp85Byf3+zt5RIdHUkikdrbBWvW/uDsNLbyQa2ZmdHcOaEHD/6qra359defaGpqIITY7OI9e09i Cxkf6BUdHSkZ8Pc/7GMwRoWE+J85E9/S0mZvZx0dHamnpy1jVK+NIKoh1mjQ7QzAW0zxLWb5N5el 3GYX//PHA/gghUrp7e3jcvl8fguVQikre2hgoOvuPk4hsYGBsNnFMUcvGBkZfPLxgrCwoNvs4t17 TojFYlnKsli34uJSbW0sV6740NLS9NLl61JLPnT4rLm5cXT0/FmzppSXV2/deqSvT4hNDQ8LWrt2 iY6Opr29FXbydc1nUTKWxfT3i389Gz91ynvBwX65eUV5eUX4JAqFsnjxzIcPHyUlZ61YMa+e03jz 5m1s0qDnelta2tPScmbPmjpr5tTKBzWHDv36SlG9nkGjeu0aEW9nAN5uim8x483lzMy8EycvxRz5 kU5Xl8+qRaL+ixeTU67dCA8PSkxkYSP9/dzS0nK++HI7Qihy/geBgV5eXi5ksuI3FJCUci3b3Nx4 /bqlKioqCCE9Xe2YoxdqazljxpgihLq6nopE/VJF1NVpZDIJIZR9o8DCwmTjxuVYWYRQRUU1Plty SraDg83qTxdhg5YWpv/eevj+/XIPDyeEkK2tJULo999T9PR0sJOvkojLYni85uXL5jg5jRWLxffu lTW3tOGT3D2cgib4/PLLRXt7Ky8vFy0tBo/fgk0a9FxvU1Prt//4jEZTwwZ/v3SNx2s2NNQbNCri bUVs0Kheu0bE2xmAt5uC8w3WXI5eNV/+zeW2dsG2bUfqOY1bNq+0tbXEE7OpqdHun795XN+grcXQ 1mZs2x5TUlJJoZDnzQsLCw2Sc5BgIBwOz8/PDc+sTKbDgshpeFrasfPYw4ePpIps2bzS1dUBIcTn t/r5MfGy9nZWkrNxuTxvL1eBoBMbxDqEm5plumxYlrJqalTsmgYVFZWdO76SnIQFpKKiooJUsA/i fpn6ABBCVlZmePUdHW0QQk1NrVhiJo6KeFsN0VBqBMA7S8GJOS4uVVdXy9XVQSDo7O7uQQh1dHRR qVRZjtaHKDe30NbW8qcfN+nqamGrxtHptAYuPymJ5efrVlJSuWrl/Hv3y2Jjk6dOGa+o/nYgReoq AQZDIzx8Ij64bOmcp0+7pYqYWxg/LyuULEuh/O2vQCQSZbLyMll5kiOxW+lkiWrQstraDPyYYBhJ 1gL7LBQKZYmKeFsBAORPwYm5qrquq6t7zdof8DGfb946XEfrxJhMxw3rlw10BHDt+g0zMyPsB8vL y7mnpzc//25fXx+JpDbSgYGhwzq0X5uvL3NSSIDkGNmfPTJo2ZHIyoMiiGqI2woAMOwUnJg/37QC P79VWFRy7dqNTZs+sraxGOn1kkgkQ0NdPCsLhSKEEJn0bLC+vrGujhsxY3JnZ9dIRwJeD4lE6hP+ dfmSQNCRlV3g7eViZGQgQ1myZFmpy6BIJBJdXR3rDUYIicXinp5eqVa1iooqen6hWVl5VVvrEz8/ NxnLyp9yRiWLgbYzAG83BXfM2tlZOTraYP+MjQwQQvZ2Vhoj/7QBY2PD8vJq/CLesrKH2EhsMC+v iEwmMZkj3moHr83ExLCsrArfg3fulMbGJnd398pS1sBAR3Lvl0tc+YUt+d79MjxbV1bWrIr+5u7d Msl5GAw6//nDqq7EpyUmsWQvK3/KGZUsBtrOALzd3oCj5pEQHha0Z+/J3btP+Pu7t7a2X0nIsBpj hjUpxGJx3q0ip3FjaTQ1+ih1hFBGRl55RTWVSoXHICiPsNCgPXtP7t13yteHyeM3Jyay7MaOsbQ0 kaVs0ASfEycv7d59ws/PjcdvlkpR4WETd+85sWPnsaAJ3l1d3UnJLAN9XWdnO8l5vDxdzp5LiItL VVVVLfnzwezZU2Uv+3pqa+sbec0IoZ6eXn5Ta8Ef9xBCHu7jZLlfYChREa93KFHJUnag7QzA2+0d Tcyens6rP12UcDXjSMx5Gk3N3W3cwoXTsQeBVVXV8XjN2BNFvDydvb1d4+JTaTS1qKgI/ElhQOE8 PZ0/jo5MTGIdPnKOTqd5e7ksXDhDxtO3wcF+be2C9PSc4pIKd7dxc+eEbtseg0/18HBa89ni+Ctp x47H0mhUR0fbRQtnSB2TTZkS2MhrTk7J7u8XT5jgjT9/RpayrycruyA9PQf73N4uwPp4Dh38gcEY /E94KFERr3coUclSdqDtDMDbTaW1vVPRMQAAAADgGWgCAgAAAEoEEjMAAACgRCAxAwAAAEoEEjMA AACgRCAxAwAAAEoEEjMAAACgRCAxAwAAAEoEEjMAAACgRCAxAwAAAEoEEjMAAACgRJToWdnbtsfw +S07tn9JIsnjcCEvryjhagaHw8Ofla2pqYEQEgg6Dxw4U15RpaWlueKjua6uDmKxeMPGn0xNjb7Y skoOgb1Z2OziPXtPYp/HB3pFR0cO7/K/+HK7lZX5p58sfI2yFZU1O3cec3S02bTxo+GNaiiUMypi Q9kLr0eW75VI1H/y1KXc3CISSfW9AI/Fi2fK/jR75dwLQ9nOQ9kaQ0Ecs3JuZ+WnLC3miorqkpLK mRGT5ZOV2eziQ4fP6uvrRK+aP31aSNGdkl27jvf39yOEsrMLysqrliyZxWCMOn8hESFUW8tpaWn3 hxfBvoy1tcXatUvWrl2ipcVQdCzSOju6urt7mp6/N1BJKGdUykaW71X2jfysrPz/z959h0VxrY8D f2ELyyqdXanSkb70oijqFRQ0YoktorEnMSZRY8zN48335v5SrDfGEks0wR6DBUVYC6FpEDAiRQhN AUWKC+zSpeyyvz9G525QZ1cXllXfz5Mnz+6cOTPvOTNy5pw5OzM5ImRi2Ojfk66np2crvv3X7ygo UxsD5/WrZ9VQlx7z2dgrXK7RyJE+qtkd/2KapaXpmtWLiYtKDsdw949Hi4ruuro6tLa2sdms8eOC amoEmZm5AJCdXUCn03x83FUT26vFwEDX388DAH77LWGwY+nLy8tl544vhwz8671fiHpGpW4UOa9K SipMTIxnzJgIAFUPatvbHym+/dfvKChTGwPn9atn1VCLhpnoLq9YPkc13WUAqK0VBAZ6kkM9Li72 xEJXV4enV76VU+juPoLNZqkmNtSPDAz0BjuEZ1DPqF45PT1i8i/+6k8WvWj21+woKFkbA+c1q2fV UIuGWcXdZQCQSCQMmfexNze3AoBYInl6zYYG0f37NW/4i2Bl78e7uzvOm/eWkaF+v+T944+b8Qkp tbX12tpa3l6u77wzdejQx39cdu468uef+QBQW1t//fotANDU1Dx8aAuZd+++ExUVVSs/iNq770R9 faOfr/uKFXNpNBoocIeSYr/UvvrPTh2dISEhASdOxAmFTba2w5cuedvc3IRIlUql8QkpKSmZjY1N LBbTzdUxKmqagYEukSo3KooSKRMVPH9GBSE1NYt/MVUgEGppMYi3NXM4hkSS3KNAjWLLoMR51dHx SCLpFfeIeyW9ra3tAKChqTFUsW4Z9VEganL8+KCjR88JhU0jHG1XrJhrZPS/qJQpEcXxVaaeqWuD KNGna5cSXysqqv7v3zs+W7fMw8NJkfK+9L9QuWc7xTkpN6rXHu2fX2wY3AhKSytOn7k0/52p1tYW KttpfHyytbWFu/sIALiZXfD99l/EYrGHxwh7e6uS0oqSknJ/P96NG3ntbR0cjuH9+zVR8yPpdLW4 iFG97OyCXbuPuro6TJ481tbWMiMjNyMjZ9y4wD7DG1eu/GFsZODj46Z43uzsgh/3HHN0tJkWOcHM jJuWduOvojtjRvtpaGgAgJGRvoeHU1lZhZWV2TvvTA0I4AX4e5ibDyM3fvPmbaGwubSsYmyIv7Gx QWrajWHDjIcPNwMAbW2WvYNVQACvpKR82DDjp6Oi2C+11LSs1pZ2wcOGsInB9nZWf968fePP/AkT RhKjL/HxKTGn+CNHek8MG21tbZGRmZudXTB+fBCxZeqoqEukTFTEUbCzHT59WqiVlVlq2o38vOKQ EH8iqpycv/bsPe7ibD9lyjh7O+usG7l/3sifMGGkgkeBAvWWlTmvvv1u77Fj5+vq6puaWhL4qQn8 1LS0LAWvnqmPQmpaVnv7o+rqh2GhwVZW5tczbt0pqwwJ8e+XElEcX2Xqmbo2UtOytLSYI4O8ia9N TS0pqVmjRnoPG2Yst7zK/AuV+2+Q4pykjupNMPiNDdldTk7OiD50Zv++r9lsbdXsWiLpPXWKf/HS 1YiIkPj4FGJhUKBnYmL6+s83A8DcOZODg319fd1f9VaZuKbus1Bbm0Wny++N8S+mOTnZrfxgPvHV arj5dxv33r5d4u3tqmTei5fSLC1NP/n43cf/zg319/908t69GmtrcwCwt7cCgNOnLxoZGRC3G58m EDQuXjTT1dVBKpXm5xc3CpuI5dR3KKn3K7eumppavvrqYy0tJgBwOIY7dx0pLCzj8ZwBoL5BGBYa vGDBNGJNY2ODnbuOVFY+sLGxlBsVdYmUiYp/MW34cLM1axYT5SVSiRkVAJCbW2RgoLtq1QIidZiJ 8eXL11pa2ohZV9RHgToq6i0rc14tenfmo0edZ89ebmltX/TuDACgyZzJ1FHJPQoNDaIv//Uhi6VF fD195pJA0MjlGvVLiZ53fJWpZ+rakIuivMr8C6WuZ+pzkjqqN8Egtzeqv7tMampu3bRpX3XNw8/W LbO3tyIbZnNzk+3fb3hQXaevp6Ovr7Np8/7CwjIGgz5rVnj4pBAVB9lftmw9cPfu/T4LyeEsarW1 Aj9fD2KIDACIAaWGRoWmWVLnrakRBAZ6kv1UHs9p3twp5D9FRWhpMYn5ARoaGlu3/FPBXNT7lVtX VtbmRPsHAM7O9gBQ/2TS6ZLFbxMfuru7u7p6iEvMtrYO5UukTFTEjAqyvEQqOaPCyFi/paW9pKTc yckOAHgeTjwFzgpFoqLesjLnFdEw6OgO7RGLnZ3tXigquWxsLMiTgdh4Q4OIaBKUL9HLnbHUJaKu DWXKq/y/0OehPiepo3oTDHLDHBt7xdBQz8PDqbW1vbOzCwDa2jqYTKYiPTklXb9+y97e6puv1xoa 6hG7JrHZrLra+oSElMAAz8LCsuXL5uTfLo6J4YeFjlb9BUS/IK6p+yy0HG6qSF6JRJKckpGckiG7 kPhpmZJ5+9zp19EZGhExVpHNkvT1dRQZf346Kor9yq0rBuN/eYkTVSwWE197e3vjE1KSkq4Lhc3k OlKpVPHYnlciZaLqU97HqU9mVISFBuflFn373V4zU66bu2PIGH9FBs8ViYp6y8qcV8pEJZdsTRKf yZpUvkQvd8YqWSJqFOVV/l/o81Cfk9RRvQkGuWEur6jq6Ohc9dF/yCWfrtuo+LWtMng859WfLHre FcCly1ctLEyIfwy+vm5dXd1ZWXk9PT00Wj9cLaoecU390gICeP8YP1J2CXGDaqDzyvUSf+PkUqau zsZeiYtLmjBhpJuro7Y2q7ZOEB195oW28LwSKXkEKbBYWhs2rMzOLsjMyrt27WZiYvqsWeFvTRmv SF7qqORueYDOjUGsK7klerkzduBKhNTTIDfMn65dSt47uZVTeOnS1bVrl9jaDR/o/dJoNC7XkGyV xWIJANCfTH+trn5YVVUbOXVCe/sLDEK+rmg0Gltbmxwik0qlXV3dstezL52XRqP1yFwFt7a2pabd 8PN1NzHhkAs1NDThSY+zuKS8SdQSqPSTXhTZLwVxz//yPj5znlz7p6dnjwzyXrhgOvFVwVrqFxRR 9Slvn7MdADQ1Nf38PPz8PMRiyalT/JgYfoA/T3bY8KWPAsWWlTmvBtGAlmggznY6ndYjc27IfpZr 4P6Fyj0n33CDPDDr6Gjj7GxH/GdqwgGAEY42Cv7sQRmmptySkgpyjLG4+C6xkPiakZFDp9N4vAHv tb8SzMy4+beLyX/PZWWVy1dsyMsrVj6vmRm3uLicPAq5uUUxMfzOzm7ZLejosMl7pefPJcYnpPRL ieTul0JlZXVX1+OVi4ruAADH2ID42tMjlsgMxxUV31U+WuWj6nO2E6nk2f5L9OmjR88Rn+l0mqen CwAIn0xKIrzcUaDesjLn1WAZ6BINxNlubGRYUfGAvFtXVPQC5+TA/QulPieRul+fDpCI8JAfdhza vj06KMhLJGo+H5dkY21BXOpKpdKMzBxXFwcWS4s9RBsAkpIySkormEwmk8kY7MAHQUT42O0/RG/Z eiBkjF9HR2cCP4VjbOjm5kik3rtX/VDQCABdXd31DaIbf+YDgLeXC9Fdo84bPinkhx2Hduw8HODP E9Q3xsenODpYW1n97Qanr4/78RNxsbFXNDU1C/+6M2NGmCIxU0elyH4p6Orp7Nx1ZNRI76amlvNx SUZG+uSMFWdnu6ysPO4wI0sL08rKB30aZuqolEQRFcXZDgAcY8OYU/xeqdTB3qrjUSefn2pgoGdr aym78Zc7CtRbVua8UoYyW1amRIp4uXqmFhzsk349e9t/D44NCWhsbMrJ/UvxvMr8C5X3l4HqnERv aMPs4+O28oP5cReS9u3/lfx5O/Gjz/LyKoGgkfgVoK+Pm5+fR+y5KyyWVlRUpGoeCq9uvL1dV324 4Nz5xAMHY1gsJvFQBfIaJTXtxu+/pxOfm5tbibGHPT/+R0eHLjevj4/beyvmxiek7N13gs1m+fm6 v/PO1D434UJDgx8KGvkX03p7pWPG+Cn4W1XqqBTZLwUu13D0aL+TJ+PJR3mQf9Oj5kd2dHRevJjG YNAD/D3nzXvr22/3KBiVkiiiojjbAWDKlHFSkKakZCYnZ7BYTCcnu3lzpzCZTNmNv9xRoN6yMueV MpTZsjIlUsTL1TM1NzfHqKjIuLikX6JPe3u7zno7fNPm/QrmVeZfqNx/gxTnJNIQNbcPdgwIvTL6 PEdJTahnVAihl4NXKAghhJAawYYZIYQQUiPYMCOEEEJqBO8xI4QQQmoEe8wIIYSQGsGGGSGEEFIj 2DAjhBBCagQbZoQQQkiNYMOMEEIIqRFsmBFCCCE1okbPyt60eX99vXDL5s9pNFVcLmRk5MRdSKqp EZBPatXVHQoAra3tu3cfLSkt19PTXbrkbQ8PJ6lUunrNN+bmJus/W66CwF4n2dkFP+w4RHweHey7 YsXc/t3++s8329hYfvD+Oy+Rt7SscuvWA87OdmvXLOnfqJShnlFRU+YoKEOZupJIeg8dPnP9eg6N pjlqpPeCBdPwQc1IfajLuVhaWlFYWDYtcoJqWuXs7II9e48bGxusWD7nrSnjc3ILt2072NvbCwBp aTeKS8oXLpyuozPk15PxAHDvXo1Q2Byk9ItR30C2tsM/+mjhRx8t1NPTGexY+mpv6+js7Gp48sY6 NaGeUaknZeoq7WpWamrW5IiQiWGjf0+6np6e3e/hIfTS1KXHfDb2CpdrNHKkj2p2x7+YZmlpumb1 YuIymcMx3P3j0aKiu66uDq2tbWw2a/y4oJoaQWZmLgBkZxfQ6TQfH3fVxPY6MTDQ9ffzAIDffksY 7Fj68vJy2bnjyyED//LvF6KeUaknZeqqpKTCxMR4xoyJAFD1oLa9/VF/R4fQy1OLhpnoLq9YPkc1 3WUAqK0VBAZ6koNXLi72xELyFbaybuUUuruPYLNZqokNqYyBgd5gh/AM6hmVenrpuurpEZMt+upP FvVbQAj1B7VomFXcXQYAiUTCkHkvenNzKwCIJZKn12xoEN2/X9MvL0Z9XcnerXd3d5w37y0jQ/1+ yfvHHzfjE1Jqa+u1tbW8vVzfeWfq0KGP/5ju3HXkzz/zAaC2tv769VsAoKmpefjQFjLv3n0nKiqq Vn4QtXffifr6Rj9f9xUr5tJoNFDgzjfFfqkRr18MCQk4cSKOfC+yubkJkSqVSuMTUlJSMhsbm1gs ppurY1TUNAMDXSJVblQUJZIrNTWLfzFVIBBqaTGI9wRzOIZE0ierv3F0sP7wwyjia02t4PPPtyxb NjtkjD9ZovHjg44ePScUNo1wtF2xYq6R0eNjRH0UqMu7bdvBsjv3/vvfL4YOYQPA2bOXY88lfvXv j+3shsstDnVdUcfc0fFIIukV94h7Jb2tre0AoKGpMVSm2/282ScIqQztn19sGNwISksrTp+5NP+d qdbWFirbaXx8srW1hbv7CAC4mV3w/fZfxGKxh8cIe3urktKKkpJyfz/ejRt57W0dHI7h/fs1UfMj 6XS1uIhRN9nZBbt2H3V1dZg8eaytrWVGRm5GRs64cYF9Bj+uXPnD2MjAx8dN8bzZ2QU/7jnm6Ggz LXKCmRk3Le3GX0V3xoz2I97TbmSk7+HhVFZWYWVl9s47UwMCeAH+Hubmw8iN37x5WyhsLi2rGBvi b2xskJp2Y9gw4+HDzQBAW5tl72AVEMArKSkfNsz46ago9kstNS2rtaVd8LAhbGKwvZ3Vnzdv3/gz f8KEkcTYTHx8SsijlmAAACAASURBVMwp/siR3hPDRltbW2Rk5mZnF4wfH0RsmToq6hJRy8n5a8/e 4y7O9lOmjLO3s866kfvnjfwJE0YS+31YV5+T81dERAjxNf169u3bJUsWv81iaRElam9/VF39MCw0 2MrK/HrGrTtllSEh/sSWqY8CdXltbCwvX7nW3d3j4eEkErX8uOdYUJB3aOgoucWRW1fUMX/73d5j x87X1dU3NbUk8FMT+KlpaVnklTdxTtrZDp8+LdTKyiw17UZ+XnFIiL8iRx+h/jL4jQ3ZXU5Ozog+ dGb/vq/ZbG3V7Foi6T11in/x0tWIiJD4+BRiYVCgZ2Ji+vrPNwPA3DmTg4N9fX3dX+9WmehD9Fmo rc2i0+X3xvgX05yc7FZ+MJ/4ajXc/LuNe2/fLvH2dlUy78VLaZaWpp98/O7jlthQf/9PJ+/dq7G2 NgcAe3srADh9+qKRkQFxG/tpAkHj4kUzXV0dpFJpfn5xo7CJWE5955t6v3Lrqqmp5auvPtbSYgIA h2O4c9eRwsIyHs8ZAOobhGGhwQsWTCPWNDY22LnrSGXlAxsbS7lRUZeIOqrc3CIDA91VqxYQJRpm Ynz58rWWljZiRh7P0zkpOePu3fsODtYAcPt2qY21hexkvYYG0Zf/+pBopwHg9JlLAkEjl2sk9yhQ l9fUlBMWGnwl8Y+w0OC4C0mampqzZ0WQealLJLeuKGJe9O7MR486z5693NLavujdGQBAkznP+RfT hg83W7NmMVFXxBEkZp88+5AgNAAGub1R/d1lUlNz66ZN+6prHn62bpm9vRXZMJubm2z/fsOD6jp9 PR19fZ1Nm/cXFpYxGPRZs8LDJ4WoOEjV2LL1wN279/ss/GzdMg8PJ7l5a2sFfr4exJAgABADhg2N Ck2Upc5bUyMIDPQkeyo8ntO8uVPIP7WK0NJiErMHNDQ0tm75p4K5qPcrt66srM2JVhkAnJ3tAaD+ ybThJYvfJj50d3d3dfUQF6BtbR3Kl4g6KiNj/ZaW9pKScicnOwDgeTjxZI6sq4sDg0HPzy9xcLDu 6REXF9+d/PcbNzY2FmTxnZ3tAKChQUQ0ctTklnfatND069n79v965869WbPCyVFuuSWSiyJm4gJL R3doj1hMJMkiZp+QR584gs+bfYLQABnkhjk29oqhoZ6Hh1Nra3tnZxcAtLV1MJlMRfpqSrp+/Za9 vdU3X681NNQjdk1is1l1tfUJCSmBAZ6FhWXLl83Jv10cE8MPCx2t+gsIFSD6EH0WWg43VSSvRCJJ TslITsmQXUj88EzJvH3mAejoDI2IGKvIZkn6+jovMQJJvV+5dcVg/C8vcRqLxWLia29vb3xCSlLS daGwmVxHKpUqHtvzSkQdVVhocF5u0bff7TUz5bq5O4aM8ZcdAGcyGa6uDnn5xTNnTiwuKe/u7vHy dJbdjmyJiM9kiajJLS+bzZo9K+LgzzFcrlH4pDGKl0iul465z9F/fASfNfsEoYEzyA1zeUVVR0fn qo/+Qy75dN1Gxa+LlcHjOa/+ZNHzrgAuXb5qYWFC/Gnw9XXr6urOysrr6emh0V6gx/aqIPoQLy0g gPeP8SNllwwbZqyCvHINxH1BZerqbOyVuLikCRNGurk6amuzausE0dFnXmgLzysRdVQsltaGDSuz swsys/KuXbuZmJg+a1b4W1PGkyt48pwPH4ltbW3Lzy/W09Ppr9keipSX+LEDi6XV5/keSp6TCL3S Brlh/nTtUvJO0q2cwkuXrq5du8RWgWmZSqLRaFyuIdkqi8USAKA/meBaXf2wqqo2cuqE9vYXGGZ8 M9FoNLa2NjkkKJVKu7q6ZfsrL52XRqP1yPRyWlvbUtNu+Pm6m5hwyIUaGprwpAdWXFLeJGoJVPo5 MIrsl4K45395H59XT3pg6enZI4O8Fy6YTnxVsJb6haampp+fh5+fh1gsOXWKHxPDD/DnkcPRnp4u hw6fzb9dkp9fwuM5vegFzfOOgtzydnd3Hz8RZ2bKvX+/Jjk5Y8IEhWZ+Dag+R7/PXwaEVGOQB2Yd HW2cne2I/0xNOAAwwtFm6MA/XcHUlFtSUkGOqhUX3yUWEl8zMnLodBqPN+C99teAmRk3/3Zxz5PW qKyscvmKDXl5xcrnNTPjFheXk8coN7coJobf2dktuwUdHTZ5B/f8ucT4hJR+KZHc/VKorKzu6nq8 clHRHQDgGBsQX3t6xBKZQdGi4rvKR6uIX6JPHz16jvhMp9M8PV0AQPhk4hgAGBnpW1qapqbeqKl5 6OXp8qLbf95RkFveuLhkobB51aoF/v68U6cvtba2veiu+12fvwzEEST/MiCkGq/zZGMKEeEhP+w4 tH17dFCQl0jUfD4uycbagui6SaXSjMwcVxcHFkuLPUQbAJKSMkpKK5hMJpPJGOzA1U5E+NjtP0Rv 2XogZIxfR0dnAj+FY2zo5uZIpN67V/1Q0AgAXV3d9Q2iG3/mA4C3lwvRiaTOGz4p5Icdh3bsPBzg zxPUN8bHpzg6WFtZ/e3XQb4+7sdPxMXGXtHU1Cz8686MGWGKxEwdlSL7paCrp7Nz15FRI72bmlrO xyUZGemT84acne2ysvK4w4wsLUwrKx/0aaioo1IGx9gw5hS/Vyp1sLfqeNTJ56caGOjZ2lrKruPp 6XzhQjKNRiPrX3HPOwrU5X34sCGBnzJ+XKClpem8uZPXf174Wwx/2dLZiuxx4OqK4i8DQirzhjbM Pj5uKz+YH3chad/+X8nHCBB3ucrLqwSCRuJ3jb4+bn5+HrHnrrBYWlFRkfiY+6d5e7uu+nDBufOJ Bw7GsFhM4uEV5BVMatqN339PJz43N7cSIxN7fvyPjg5dbl4fH7f3VsyNT0jZu+8Em83y83V/552p fUZZQ0ODHwoa+RfTenulY8b4KfgcGOqoFNkvBS7XcPRov5Mn48kHjJCtRdT8yI6OzosX0xgMeoC/ 57x5b3377R4Fo1LGlCnjpCBNSclMTs5gsZhOTnbz5k5hMpmy63h6uly4kOzsZPtC894JzzsK1OU9 dvw8g8GYOXMiABgbG06aNCY+PmX8uEBbW/l3sgaurij+MiCkMhqi5vbBjgGh1wTxzKlP1y4d7EBe WKOwafXqb+bPnzpp4hj5ayOEBhJeCSKE4HZ+CQB48l74BjNCqN9hw4wQgty8IhMTjolJv/1WDSH0 0rBhRuhNJxaLCwpKX2I+NkJoIOA9ZoQQQkiNYI8ZIYQQUiPYMCOEEEJqBBtmhBBCSI1gw4wQQgip EWyYEUIIITWCDTNCCCGkRtToWdmbNu+vrxdu2fw5jaaKy4WMjJy4C0k1NQLyibi6ukMBoLW1fffu oyWl5Xp6ukuXvO3h4SSVSlev+cbc3GT9Z8tVEBhS3PrPN9vYWH7w/juDHQhCCPUbdekxl5ZWFBaW TYucoJpWOTu7YM/e48bGBiuWz3lryvic3MJt2w729vYCQFrajeKS8oULp+voDPn1ZDwA3LtXIxQ2 Byn9ol+EEEJILnXpMZ+NvcLlGo0c6aOa3fEvpllamq5ZvZh4bwyHY7j7x6NFRXddXR1aW9vYbNb4 cUE1NYLMzFwAyM4uoNNpPj7uqokNIYTQm0wteswq7i4DQG2twMnJlnybm4uLPbHwmSvfyil0dx/B ZrNUExtCCKE3mVr0mFXcXQYAiUTCkHmnenNzKwCIJZKn12xoEN2/X6Pgi37R01JTs/gXUwUCoZYW g3jjModjSCR9svobRwfrDz+MIr7W1Ao+/3zLsmWzQ8b4w5NXKI4fH3T06DmhsGmEo+2KFXONjPSJ lXfuOvLnn/kAUFtbf/36LQDQ1NQ8fGgLkSqVSuMTUlJSMhsbm1gsppurY1TUNAMDXSJ127aDZXfu /fe/XwwdwgaAs2cvx55L/OrfH9vZyX8TMBFVSEjAiRNx5BuXzc1NFEmlrg25qQihN8Tg95hV313u 42Z2wf/7ejf5lcFkdHf31NbW19cLmQxGcfFdDsfQywuf7/8ycnL++vmXU5YWpsuXz545Y1J5+f1t 2w5KpVIi1cvTuaCglLi1DwD5+cUA4MlzJrMLhc2JiekzpodNnxZWdqdyz55jZFJEeMhHHy00MNAd McLmo48WfvTRwlVPGngAiI9PiYnh83jO7783b1pkaElpxdZtB8j9zp8f2dXVfe5cIgCIRC0J/NTg YF9FWmVCQ70oNSVz5syJs2dFVFc/3LrtoFgsViSVujaoUxFCb47B7zGT3eXk5IzoQ2f27/uazdZW za4lkt5Tp/gXL12NiAiJj08hFgYFeiYmpq//fDMAzJ0zOTjY19fXnU4f/Ip6FeXmFhkY6K5atUBD QwMAhpkYX758raWlTU9PBwB4ns5JyRl37953cLAGgNu3S22sLYgkQkOD6Mt/fchiaRFfT5+5JBA0 crlGAGBvbwUAp09fNDIy8Pfz6LPf+gZhWGjwggXTiK/GxgY7dx2prHxgY2MJAKamnLDQ4CuJf4SF BsddSNLU1Jw9K4LM29HxSCLp7bNBbW0WnU4jPjc1tXz11cdaWkwA4HAMd+46UlhYxntyPUGRSl0b 1KkIoTfHILc3RHd5xfI5qu8uNzW3btq0r7rm4WfrltnbW5ENs7m5yfbvNzyortPX09HX19m0eX9h YRmDQZ81Kzx8UoiKg3zVGRnrt7S0l5SUOznZAQDPw4nn4USmuro4MBj0/PwSBwfrnh5xcfHdyX+/ ZWBjY0G2ys7OdgDQ0CAiGmZqSxa/TXzo7u7u6uohLvXa2jrIFaZNC02/nr1v/6937tybNSucHOUG gC1bD9y9e7/PBj9bt8zjSeRW1uZEuwsAzs72AFDfICLXpEilrg3qVITQm2OQG+bY2CuGhnoeHk6t re2dnV0A0NbWwWQyyd7JwLl+/Za9vdU3X681NNQjdk1is1l1tfUJCSmBAZ6FhWXLl83Jv10cE8MP Cx09WOPtr6iw0OC83KJvv9trZsp1c3cMGeM/fLgZmcpkMlxdHfLyi2fOnFhcUt7d3ePl6SybncGg 9/ksO2hMobe3Nz4hJSnpulDYTC6UHRZms1mzZ0Uc/DmGyzUKnzRGNu+id2c+etTZZ4OWw02fGRVx ospGRZFKXRvUqQihN8cgN8zlFVUdHZ2rPvoPueTTdRtleycDh8dzXv3JouddAVy6fNXCwoT4A+3r 69bV1Z2VldfT00OjaQ10YK8TFktrw4aV2dkFmVl5167dTExMnzUr/K0p48kVPHnOh4/Etra25ecX 6+npWFtb9Mt+z8ZeiYtLmjBhpJuro7Y2q7ZOEB19ps86xDR7FkuLnJxPsLY275cYnkZdG3LrCiH0 hhjkhvnTtUvJ+3m3cgovXbq6du0SW4Wn4bw0Go3G5RqSrbJYLAEAOu3x1+rqh1VVtZFTJ7S3dzx3 E0gxmpqafn4efn4eYrHk1Cl+TAw/wJ9HDkd7erocOnw2/3ZJfn4Jj+dE3F5VnIaGJjzpBxeXlDeJ WgIDPQEgPT17ZJD3wgXTiSTZXiyhu7v7+Ik4M1Pu/fs1yckZEyaMUnyn4p7/9Y8fnzkyUxCoU6lr gzoVIfSGGOSBWUdHG2dnO+I/UxMOAIxwtCF+xDKgTE25JSUV5NhmcfFdYiHxNSMjh06n8Xh4h09Z v0SfPnr0HPGZTqd5eroAgFDYRK5gZKRvaWmamnqjpuahl+cLT33X0WGTd3DPn0uMT3g8UaCnRyyR +fFbUfHdPhnj4pKFwuZVqxb4+/NOnb7U2tqm+E4rK6u7urofb7noDgBwjA0USaWuDbl1hRB6Q7yh k40jwkN+2HFo+/booCAvkaj5fFySjbUFMb1IKpVmZOa4ujiwWFrsIdoAkJSUUVJawWQymUzGYAf+ iuEYG8ac4vdKpQ72Vh2POvn8VAMDPVtbS9l1PD2dL1xIptFobm6OL7p9Xx/34yfiYmOvaGpqFv51 Z8aMMGK5s7NdVlYed5iRpYVpZeWDPg3zw4cNCfyU8eMCLS1N582dvP7zwt9i+MuWzlZwp7p6Ojt3 HRk10rupqeV8XJKRkb6rq4MiqdS1oUhdIYTeBG9ow+zj47byg/lxF5L27f+VfIkFca+xvLxKIGgk niji6+Pm5+cRe+4Ki6UVFRXZ52YkkmvKlHFSkKakZCYnZ7BYTCcnu3lzpzCZTNl1PD1dLlxIdnay JSdgKy40NPihoJF/Ma23VzpmjB/5HJio+ZEdHZ0XL6YxGPQAf89589769ts9ZK5jx88zGIyZMycC gLGx4aRJY+LjU8aPC7S1VegeCpdrOHq038mT8eQjRGQHqylSqWtDkbpCCL0JNETN7YMdA3qjNQqb Vq/+Zv78qZMmjpG/9mAjnu316dqlL5GKEEKKwC4gGmS380sAwJOHz1ZDCCEAbJjRoMvNKzIx4ZiY GA92IAghpBawYUaDSSwWFxSUvsR8bIQQel3hPWaEEEJIjWCPGSGEEFIj2DAjhBBCagQbZoQQQkiN YMOMEEIIqRFsmBFCCCE1gg0zQgghpEb651nZmZm5584n1tbWE8+dnj9/qo7OEDI1O7sg9tyVBw/q 2GztoCCvuXOmyL6Gjzp14OTmFp06fbG6uo7BYPB4TgsXTNfVHQoAra3tu3cfLSkt19PTXbrkbQ8P J6lUunrNN+bmJus/W66CwBBCCL3J+qHHnJtb9OOeY8ZGBsuXzZ48eeytnMLvt/9CvlHxr7/u7Nh5 WGfokGVLZ0+aNObq1T+jo0+TealTB05F5YPtP0SzWFpLl86OnDohP79k567DRFJa2o3ikvKFC6fr 6Az59WQ8ANy7VyMUNgcFeqogMIQQQm+4fuib/p503cTEeO3aJcTLl/T0dA4ejKm8V21jbQEACfxU Ltdo3bplNBoNAPT1dA/+HDNz5iQjI325qQPn2rU/mUzGZ+uWEW80GjJE+5fo0zU1D83MhrW2trHZ rPHjgmpqBJmZuQCQnV1Ap9N8fNwHNCSEEEII+qXHHBDAmzf3LfKViI4ONgDwsK6B+Hr/fo2Lsz3R 7gKAu/sIqVRaWlqhSOrAGRnk/cnH75LvGbS0NAUAkajlmSvfyil0dx/BZrMGOiqEEEKoH3rMo4N9 Zb92dDwCALLNE4vFdAaNTCXuH7e2tSuSOnDs7a1kv1Y9qAMAE1PO02s2NIju368hX/SrDt5dtH7G 9LDIyAkvlCs1NYt/MVUgEGppMZyd7ee/M5XDMQSA5ubWVR/9x83VoezOPQsLk7dnTvrxx2P6+rpf fPE+cdMdADIycuIuJNXUCFgsLXd3x3nz3jIyfDyksW3bwbI79/773y+GDmEDwNmzl2PPJX7174/t 7BR6tzFCCKE++n9W9rVrf2ppMR0dbYivXK5RZWU1mVpRUQUALC0tRVJVQCRqycrKi4lJGB3sSzQ2 DCaju7untra+vl7IZDCKi+9yOIZeXq/2WxZycv76+ZdTlhamy5fPnjljUnn5/W3bDpLzAACAwWAs WDDt7t37CfzUpUtnVdc8/OOPm0RSdnbBnr3HLS1NV6yYM316aElJxcaN+3p6xETq/PmRXV3d584l AoBI1JLATw0O9sVWGSGEXlo/z3++eCktKTljwYJp5MDv6NF+hw+fPRt7JSTEX9jYdPTYOQCwtDRR JFUFPlu/qaur29nZbunS2cSSoEDPxMT09Z9vBoC5cyYHB/v6+rrT6aqYKE6to+ORRNJLfO7q7m5t bQcAbW0WnU6jzAcAkJtbZGCgu2rVAg0NDQAYZmJ8+fK1lpY2PT0dYgUvb9eQMf4//3xqxAgbX193 PT0dQb2QSOJfTHNyslv5wXziq9Vw8+827r19u8Tb2xUATE05YaHBVxL/CAsNjruQpKmpOXtWRH8X HSGE3iD91t50dnYd/Dnmxo38uXMmh4UGk8v/MT6orq7+3LnE2NgrxBI9PR0rK3NFUlVgzerFZXcq L1xIPnIkdvHimQBgbm6y/fsND6rr9PV09PV1Nm3eX1hYxmDQZ80KD58UorLAnrZl64G7d+8Tny9c SL5wIRkAPlu3zMPDSW5eI2P9lpb2kpJyJyc7AOB5OPH+nkuD+L+GhgZoEB+kvY/707W1Aj9fD+I6 AACIeXkNjSIy77RpoenXs/ft//XOnXuzZoUbGOgqWVKEEHqT9U/D3NHRuXHT3rq6hjVrFvd5t66G hkbU/Mipb/2j7mFDk6h594/Hxo0NJGeKUaeqgKurg6urg5kpd9fuo6NGeRMj8Gw2q662PiEhJTDA s7CwbPmyOfm3i2Ni+GGho2m0QXsky6J3Zz561AkAGzftGzPab9QoHwCwHG6qSN6w0OC83KJvv9tr Zsp1c3cMGeM/fLiZgvuVSCTJKRnJKRmyC3t7e8nPbDZr9qyIgz/HcLlG4ZPGKFoehBBCz9I/DfP+ n36tqan/4p/v9ZlURdLVHaqrO3THzsMMBn3ChJEvlKoCfn4eLJZWbl4ReWv80uWrFhYmREPo6+vW 1dWdlZXX09NDo6nu/ncf1taPBxI0NDQ4HENnZzvF87JYWhs2rMzOLsjMyrt27WZiYvqsWeFvTRmv YPaAAN4/xv/tuAwbZiz7lbhzwWJpqfKiCiGEXkv90DCXllbculW4IGra81plQnV1XXZ2waSJY8j7 moqn9rszZy7bO1iRw7kaGhp0Gq2rq/tJMA+rqmojp05ob+9QQTCqoamp6efn4efnIRZLTp3ix8Tw A/x5XK6R3Iw0Go2trU1eB0il0q6ubtmns3V3dx8/EWdmyr1/vyY5OWPChFEDVQaEEHoD9EP/5saf +VpazLFjA6hXi7uQzGAwpkx59u+OqFP73c3s23FxSeS05PLyqrb2DnJ0NyMjh06n8Xjy790OisOH trzob6V+iT599Og54jOdTvP0dAEAobBJkbxmZtz828XkNOyyssrlKzbk5RWTK8TFJQuFzatWLfD3 5506fam1te2FYkMIISSrH3rM1Q/q9PR0cvOKZBeOcLSR7fsKBI2ZmbkRESHkT2NlUacOhIjwkJ8O /LZj52E/P/eWljY+P43DMQwM8AQAqVSakZnj6uLAYmmxh2gDQFJSRklpBZPJZDIZqgmv33GMDWNO 8XulUgd7q45HnXx+qoGBnq2tpSJ5I8LHbv8hesvWAyFj/Do6OhP4KRxjQzc3RyL14cOGBH7K+HGB lpam8+ZOXv954W8x/GVPprgjhBB6Uf3QMHd2dQsEjbt2HZFd2Ge2cHx8CoNBjwgf+8wtUKcOhNGj /UBDIyEh5aeffmMyGW5ujlFRkVpaTAAoL68SCBqJJ4r4+rj5+XnEnrvCYmlFRUW+ujdQp0wZJwVp SkpmcnIGi8V0crKbN3cKk8lUJK+3t+uqDxecO5944GAMi8UkHk5CXqMcO36ewWDMnDkRAIyNDSdN GhMfnzJ+XKCtLf6UGSGEXoaGqHnAH7OFEEIIIQW9ql1AhBBC6LWEDTNCCCGkRrBhRgghhNQINswI IYSQGsGGGSGEEFIj2DAjhBBCagQbZoQQQkiNYMOMEEIIqRFsmBFCCCE1gg0zQgghpEb6rWG+c+fe 2rXfLVi4rqPj0fPW2bR5/6frNkokvU8n/RaTsHTZF0Jhc3/Fo4hnxtza2r5x475Fi9d/svqb/Pxi AJBKpZ+s/nrL1gOqjO11UlpWuXzFhu+3/zLYgTyWnV2wYOE64r+ffjr5zHXULWaE0JujHxpmqVTK 56d+8+2PzS2tFKuVllYUFpZNi5xAo/XdaWtrW2JiekT4WENDPeXjUQRFzGlpN4pLyhcunK6jM+TX k/EAcO9ejVDYHBToqZrYXj/tbR2dnV0NDaLBDuQxW9vhH3208KOPFlK8/FvdYkYIvTn64e1S0YfO pKZmRUSM1dfTOX4i7nmrnY29wuUajRzp83RSfEKqtjZr8uSxygejIIqYW1vb2GzW+HFBNTWCzMxc AMjOLqDTaT4+7ioL7zXj5eWyc8eXQ4awBzuQxwwMdP39PADgt98SnreOusWMEHpz9EPDPG5cYIA/ z9XVITEx/XnrEN3lFcvnPN1dbm5u/f336wsXTmOxtJQPRkGKxEy6lVPo7j6CzWapILDXlYGBisZC +tGrGDNC6DXQDw2zjbWF3HWousvxKWZmHD9fd7FYQqfTlI9HEYrETGhoEN2/X0O8nllNvLto/Yzp YZGRExTP8tV/duroDAkJCThxIk4obLK1Hb50ydvm5ibkCnv3naioqFr5QdTefSfq6xv9fN1XrJhL oz0+HBkZOXEXkmpqBCyWlru747x5bxkZ6gNAV1f3Byv/b9LEMbNnRxBrdnZ2vf/B/701ZTzxhubs 7IIfdhwikkYH+65YMbdPYLJb9vJ0eeedt3R1h8rG/OnapcTXioqq//v3Dtn3fKemZvEvpgoEQi0t BvGWaA7H8AXq8TmoYyaiGj8+6OjRc0Jh0whH2xUr5hoZ6T+zRLJ1hRBCClLFrGyKu8sdHZ2paVk1 NYL33v9y2fIvdu060tbeoYKQKDCYjO7untra+vp6IZPBKC6+y+EYenm5DG5UymuoF6WmZM6cOXH2 rIjq6odbtx0Ui8WyK/T2So8dPxcWOmrcuMDrGTkZGTnE8uzsgj17j1tamq5YMWf69NCSkoqNG/f1 9IgBQEuL6ebqmJtXRG6koKBUIpH4+LgRX6nv5hJb5hgbvv/evMip/8jJ/WvbtoO9vc+YG/i0nJy/ fv7llKWF6fLls2fOmFRefn/btoNSqfTlKkeW3DvQQmFzYmL6jOlh06eFld2p3LPnWJ8SPbOuEEJI Qf3QY5aL7C4nJ2dEHzqzf9/XbLY2kXQ941ZnZ5eXl8s/xgc1NIhO/pawZ8/x9Z8tV0FUzxMU6JmY mL7+880AMHfO5OBgX19fdzpdFRVFraPjETmhvau7u7W1HQC0tVkKDjM0NbV89dXHWlpMAOBwDHfu OlJYWMbjOZMrCASNixfNdHV1kEql+fnFjcImYjn/YpqTk93KD+YTX62Gm3+3ce/t2yXe3q4A4OXl 8kv0aZGo8K5f8QAAIABJREFUxcBAFwDyb5cYGOhaWZkRK1PfzeVfTBs+3GzNmsUaGhpkVEVFd11d HeQWJze3yMBAd9WqBUTeYSbGly9fa2lpI1pT2boiKVhXcu9ANzSIvvzXh+Sdl9NnLgkEjVyuEcir K4QQUsSAtzcUd5cBIC+vyMBA7+OPFhItnxTg8OGzDx7UWViYPL2yapibm2z/fsOD6jp9PR19fZ1N m/cXFpYxGPRZs8LDJ4UMVlQAsGXrgbt37xOfL1xIvnAhGQBkh3apWVmbE60yADg72wNA/d+nHGtp MV1c7AFAQ0Nj65Z/kstrawV+vh7EdQAAEMO2DY2P83p7u0YfOpOfXxwS4g8AeXlF3t5uRGMpV22t IDDQk1yZiKq2VqBIw2xkrN/S0l5SUu7kZAcAPA8nnkw9yNYVSfG6omZjY0G2ys7OdgDQ0CAiGmbq ukIIIUUMeMMcG3vF0FDPw8OptbW9s7MLANraOphMJtF3uX+/1tXVgeyPevKcDgOUl1cNYsMMAGw2 q662PiEhJTDAs7CwbPmyOfm3i2Ni+GGho595eaEai96d+ehRJwBs3LRvzGi/UaN8AMByuKmC2RmM /x1rovL7DGXr6+s8s0GVSCTJKRnJKRmyC8kBZz09HRsbi7z84pAQ/wcP6oTCZi9P56c38kwSiYRB fyoqiUSRvGGhwXm5Rd9+t9fMlOvm7hgyxn/4cDMylawrWYrXFTXZmiQ+kzVJXVcIIaSIAW+Yyyuq Ojo6V330H3LJp+s2kn2X7q7uoTK/SGGz2QBAtN+D69LlqxYWJsQfd19ft66u7qysvJ6eHhpNdVPH +7C2Nic+aGhocDiGRF+tH1F0cwMCeP8YP1J2ybBhxuRnb29XPj9VIunNyy9msbQU6e8qj8XS2rBh ZXZ2QWZW3rVrNxMT02fNCn9ryngilawr1aOuK4QQkmvAG+ZP1y4l7/bdyim8dOnq2rVLbO2GE0uG 6gwhx/0AoK2tHQCGDh3kH49WVz+sqqqNnDqhfbBnovUjscwUJLFYAgAK3jin0WhsbW3yOkAqlXZ1 dcv2Gr29XE+fvlR2pzI/r9hNZvxDkS33iJ+K6slUcDqdJjtt6ukpVJqamn5+Hn5+HmKx5NQpfkwM P8CfRwwpDxa5dYUQQnIN+MCso6ONs7Md8Z+pCQcARjjakL3kESNsbheUdHV1E19v3rwNALa2wwc6 KmoZGTl0Oo3H64f7kQPh8KEtL/RbKUJlZTVZz0VFdwCAY2ygSEYzM27+7WKyXSwrq1y+YkNeXjG5 gqWlKcfY8M8b+SWlFd5P5mMrwtSUW1JSQU6lJqIyNeUSX42NDCsqHpDDJ0VFd2Xz/hJ9+ujRc8Rn Op3m6ekCAMInE9YGi9y6QgghuQb5Wj4iPOT69Vubt/w0flxgfb3wQnxyYICniclgDv1JpdKMzBxX FwcWS4s9RBsAkpIySkormEwmk8kYxMCUpKuns3PXkVEjvZuaWs7HJRkZ6Ss45hwRPnb7D9Fbth4I GePX0dGZwE/hGBu6uTnKruPl5ZKcktHb2+v596uZe/eqHwoaAaCrq7u+QXTjz3wA8PZyIXrVEeEh P+w4tH17dFCQl0jUfD4uycbaguxuBgf7pF/P3vbfg2NDAhobm3Jy/5LdMsfYMOYUv1cqdbC36njU yeenGhjo2dpaKlIi6qioU5WvK4QQojbIDbOZ2bD1ny3/9WT8wZ9jtLVZY8cGzJ0zeXBDKi+vEgga iSeK+Pq4+fl5xJ67wmJpRUVFamq+wi/j4nINR4/2O3kynnzAiIJjzt7erqs+XHDufOKBgzEsFpN4 lEefaxQfH7criX+MGGGjozNUdnlq2o3ff3/8bLXm5tbi4rsAsOfH/+jo0IlcKz+YH3chad/+X8kH jJCV7ObmGBUVGReX9Ev0aW9v11lvh2/avJ/c8pQp46QgTUnJTE7OYLGYTk528+ZOYTKZipSIOirq VOXrCiGEqGmImtvlr4VecX2eooUQQkhtvcJdQIQQQuj1gw0zQgghpEawYUYIIYTUCN5jRgghhNQI 9pgRQgghNYINM0IIIaRGsGFGCCGE1Ag2zAghhJAawYYZIYQQUiPYMCOEEEJqpN+elX3nzr09e47X Nwj37/uazdaWTcrIyIm7kFRTIyCfh6yrO/TpLWzavL++Xrhl8+c0moouF54Zc2tr++7dR0tKy/X0 dJcuedvDw0kqla5e8425ucn6z5arJrABIpH0Hjp85vr1HBpNc9RI7wULpr1CT/+uqKj6v3/vIN/k jWThI1cRep30w99lqVTK56d+8+2PzS2tT6dmZxfs2Xvc2NhgxfI5b00Zn5NbuG3bwd7e3j6rlZZW FBaWTYucoJpWmSLmtLQbxSXlCxdO19EZ8uvJeAC4d69GKGwOCvRUQWADKu1qVmpq1uSIkIlho39P up6enj3YESGEEOqrH3rM0YfOpKZmRUSM1dfTOX4irk8q/2KapaXpmtWLic4Zh2O4+8ejRUV3+7xz 8GzsFS7XaORIH+XjUTLm1tY2Nps1flxQTY0gMzMXALKzC+h0mo+Pu2piGzglJRUmJsYzZkwEgKoH te3tjwY7IoQQQn31Q8M8blxggD/P1dUhMTH96dTaWkFgoCc5ZOriYk8slG2Yie7yiuVzVDaITR1z H7dyCt3dR7DZLBUENqB6esRDhrCJz6s/WTSosSCEEHq2fmiYbawtKFIlEglD5r2/zc2tACCWSGTX UXF3GeTFLKuhQXT/fg3xemY18e6i9TOmh0VGTlA8S0fHI4mkV9wj7pX0tra2A4CGpsbQJ400yJsH sHffiYqKqpUfRO3dd6K+vtHP133Firk0Gi07u+CHHYc2b/rMzGwYufKu3Ufr6uq//WYtAEil0viE lJSUzMbGJhaL6ebqGBU1zcBAV+6Wibyx5xJ//z29s7PL29t1/LggxctL3HMNCQk4cSKOfP+0ubkJ kapkVBR5n45546Z9svfFX3rL1CUi5OT+dfToOaGwaYSj7YoVc42M9BWvMYSQ+lDp3J+b2QX/7+vd fRaq+O6yXAwmo7u7p7a2vr5eyGQwiovvcjiGXl4ugx2XUrZsPbDyw3/n5P5VUflg5Yf/Xvnhvz/7 bBOZSswD4Bgbvv/evMip/8jJ/evpeQC9vdJjx8+FhY4aNy7wekZORkYOAJibDwMAkahFdk2RqJlY DgDx8SkxMXwez/n99+ZNiwwtKa3Yuu2AVCqVu2UASEnJjI29Ym9ntWzpbCsr8zNnL79QkRvqRakp mTNnTpw9K6K6+uHWbQfFYrHyUVHnVSTml9sydYkAQChsTkxMnzE9bPq0sLI7lXv2HHuh6kIIqY9+ m5VNTSLpPXWKf/HS1YiIkPj4FNkksrucnJwRfejM05O6VSwo0DMxMX3955sBYO6cycHBvr6+7nS6 iiqKAtHrJT53dXcTHV9tbRadTpObd9G7Mx896jx79nJLa/uid2cAAE0mF/9i2vDhZmvWLNbQ0AAA Dsdw564jfeYBCASNixfNdHV1kEql+fnFjcImAOBwjOh0mkjUDAD37tXo6+vo6ek0iVo8PEYQueob hGGhwQsWTCO+Ghsb7Nx1pLLygY2NJfWWASDt6g3ZqACgtLTimbVBkq2NpqaWr776WEuLSZaosLCM x3NWMirqvNQxK7Nl6hIBQEOD6Mt/fchiaRFfT5+5JBA0crlGgBB61aiivWlqbt20aV91zcPP1i2z t7eSbZhVf3dZLnNzk+3fb3hQXaevp6Ovr7Np8/7CwjIGgz5rVnj4pJBBDGzL1gN3794nPl+4kHzh QjIAKPjzIWtrcwDQ0R3aIxY7O9v1SSXmAZBtibPzM+YBaGkxifkBGhoaW7f8k1hIo2maDOOIRC0i UfO/vvx+7NiAJYvfFjU1kyPbSxa/TXzo7u7u6uohLrna2jpk9/7MLQNAfb0oMJBHRjXC0eZ5tUGS rQ0ra3OiDSNLVN8gUj4q6rzUMSuzZeoSAYCNjQXZKhOHuKFBhA0zQq8iVTTM16/fsre3+ubrtYaG ep2dXbJJsbFXDA31PDycWlvbiaS2tg4mk6lIL3DgsNmsutr6hISUwADPwsKy5cvm5N8ujonhh4WO HsQLCKLXCwAbN+0bM9pv1CgfALAcbqr8lvvMAyAqv888AH19HbK9kWVmxhU1Nd+vqtXU1Kyqqm1r 6xCLJeZPGube3t74hJSkpOtCYTOZpc+g8fO2LJGIZaNiMP52rpK1IUu2NmTXf1yiJwO/ykRFnZc6 ZmW2TF2iPqnEZ9lUhNArRBUNM4/nvPqTRc9sa8srqjo6Old99B9yyafrNqrDQyQuXb5qYWFC/On3 9XXr6urOysrr6emh0bQGKySi1wsAGhoaHI7h0x3fAfXMtgQAzMyGPXhQ+6Cq1tPTubCwTChsptE0 hw0zJlLPxl6Ji0uaMGGkm6ujtjartk4QHX1GwS1TI2vjJSgTlSJ5qQ3clhFCr4cBb5hpNBqXa0i2 ymKxBADotMdfP127lLxTeCun8NKlq2vXLrG1Gz7QUVGrrn5YVVUbOXVCe3uH/LVffTQarUemd9Xn GFEzNx92+3ZJ1YM6T0+XioqqsrIKLteIPNzp6dkjg7wXLphOfH1mD/L5UdFlo+rpebH+n7jnqRI9 6csqExV1XmVilhsVRYkQQq+TAf+HbWrKLSmpkEqlREehuPgusZBIdZS5CVdbKwCAEY42gzv5CwAy MnLodBqP53T9+q3BjeSZDh/a0r8b7HOMiorugMwxokYMZfeIxeGTxtjYWObnl5jL/HSqp0cskRkS Lyq+q3hUHI6BbFQlT82iolZZWd3V1U3clCVKxDE2UD4q6rzKxCw3KooSIYReJwPeMEeEh/yw49D2 7dFBQV4iUfP5uCQbawsVD8O+EKlUmpGZ4+riwGJpsYdoA0BSUkZJaQWTyWQyGYMd3YBQ5hiZmnKb m9s6OjotLEysrS3i41MmTgwmU52d7bKy8rjDjCwtTCsrH7xQExgyxj/60Jnt26MDAz0F9Y15ecUv VChdPZ2du46MGund1NRyPi7JyEifnMumTFTUecmYg4K8GhpFt24V9teWqUuEEHqdDPhUJh8ft5Uf zK9vEO7b/+v5uCQvT5d165ap87sTysurBIJGHx83APD1cfPz84g9d6W8/H5UVKQ6h60MZY4Rg0E3 MtI3M+PSaDRbG4vu7m7yR8wAEDU/0t19xMWLadGHTnd0dM6b95biUY0bFzh9etidu/cO/hxTdb/2 7ZmTXqhQXK5hSIj/6TOXYk7xzc2HfbZuGTnwq0xU1HnJmA8c/K2y4sELxSw3KooSIYReJxqi5vbB jgGhfqYmb1sqLa34+psfv/jn+8Tvo5ShJiVCCKnA69kFRGhQbN12cOPGfeTX4pJyADA15QxeRAih Vw8OhSHUb/z9PA7+HLP/p5Me7iPqHjZcuJDk788zMNAb7LgQQq8SbJgR6jchIf49PT2Xr1zLyLil rc0KCQmYN3fyYAeFEHrF4D1mhBBCSI3gPWaEEEJIjWDDjBBCCKkRbJgRQgghNYINM0IIIaRGsGFG CCGE1Ag2zAghhJAaUcXvmLOzC2LPXXnwoI7N1g4K8po7Z4rsK+0yM3PPnU+sra1nsbS8PF3mz5+q ozNEBVEBwJ079/bsOV7fINy/72vylVatre27dx8tKS3X09NduuRtDw8nqVS6es035uYm6z9brprA +t3APdDx/Pnfz8Ze6fcXXr2oioqq//v3DnV4k7cawsd5IvRqGfAe819/3dmx87DO0CHLls6eNGnM 1at/RkefJlNzc4t+3HPM2Mhg+bLZkyePvZVT+P32X6RS6UBHJZVK+fzUb779sbmltU9SWtqN4pLy hQun6+gM+fVkPADcu1cjFDYHBXoOdFQIIYTQgPeYE/ipXK7RunXLaDQaAOjr6R78OWbmzElGRvoA 8HvSdRMT47VrlxDvMtLT0zl4MKbyXrWNtcWARhV96ExqalZExFh9PZ3jJ+Jkk1pb29hs1vhxQTU1 gszMXADIzi6g02k+Pu4DGhJCCCEEKmiY79+v8fJ0IVplAHB3HyGVSktLK4KCvAAgIIA3hK1NvmHQ 0cEGAB7WNQx0wzxuXGCAP8/V1SExMV3uyrdyCt3dR7DZrAENCSGEEAIVNMxisZjOoJFfibvLrW2P nwM6OthXduWOjkcAwGJpDXRUijf8DQ2i+/drpkweN6DxvJB3F62fMT0sMnLCi2a8mV1w4kScUNhk azt86ZK3zc1NiOVSqTQ+ISUlJbOxsYnFYrq5OkZFTTMw0CUz/vHHzfiElNraem1tLW8v13femTp0 KPvp7UskvRs37a2ufvjN12uNjPSzswt+2HFo86bPzMz+94bmXbuP1tXVf/vNWkX2u3ffiYqKqpUf RO3dd6K+vtHP133FirnERZ5UKo09l/j77+mdnV3e3q7jxwUpXg/EPdeQkICXqw3qqCjyPh3zxk37 ZO+Lv/SWqUtEyMn96+jRc0Jh0whH2xUr5hJDVgghNTTg95i5XKPKymrya0VFFQCwtJ7d9F679qeW FtPR0Wago6LAYDK6u3tqa+vr64VMBqO4+C6HY+jl5TKIIfWLhnpRakrmzJkTZ8+KqK5+uHXbQbFY TCTFx6fExPB5POf335s3LTK0pLRi67YD5J3+7OyC/T+dNDHhvP/evPDwkJvZBdt/iH7mPICYU/zS 0sqVH8wn/uibmw8DAJGoRXYdkaiZWC53v4TeXumx4+fCQkeNGxd4PSMnIyOHWJ6Skhkbe8XezmrZ 0tlWVuZnzl5WTW1QR0WdV5GYX27L1CUCAKGwOTExfcb0sOnTwsruVO7Zc+yFqgshpEoD3mMePdrv 8OGzZ2OvhIT4Cxubjh47BwCWliZPr3nxUlpScsaCBdMGd9A4KNAzMTF9/eebAWDunMnBwb6+vu50 +uC/hquj45FE0kt87urubm1tBwBtbRadTqPM91hTU8tXX32spcUEAA7HcOeuI4WFZTyeMwDUNwjD QoMXLJhGrGlsbLBz15HKygc2NpYAcPFSmqWl6Scfv6uhoQEARob6+386ee9ejbW1uez2s7ML+PzU 6dPD3N1HEEs4HCM6nSYSNQPAvXs1+vo6eno6TaIWD4/HK1DvlyAQNC5eNNPV1UEqlebnFzcKm4jl aVdvDB9utmbNYiIqACgtrXhmXZFk6+qla4M6Kuq81DErs2XqEgFAQ4Poy399SI5FnT5zSSBo5HKN ACGkfga8vfnH+KC6uvpz5xJjY68QS/T0dKys/vY3vbOz6+DPMTdu5M+dMzksNHigQ6Jmbm6y/fsN D6rr9PV09PV1Nm3eX1hYxmDQZ80KD58UMoiBbdl64O7d+8TnCxeSL1xIBgDFfyBkZW1O/NUGAGdn ewCobxARX5csfpv40N3d3dXVQ/xyrK2tg1hYUyMIDPQk2xIez2ne3Cl9bjcIBI0/HTjp7u44fVoo uZBG0zQZxhGJWkSi5n99+f3YsQFLFr8tamomR7ap90vQ0mK6uNgDgIaGxtYt/ySX19eLAgN5ZFQj /j7KIltXJNm6eunaoI6KOi91zMpsmbpEAGBjY0EeMmdnOwBoaBBhw4yQehrwhllDQyNqfuTUt/5R 97ChSdS8+8dj48YGkrO9AKCjo3Pjpr11dQ1r1iz28lSLEWM2m1VXW5+QkBIY4FlYWLZ82Zz828Ux Mfyw0NE02qA9kmXRuzMfPeoEgI2b9o0Z7TdqlA8AWA43VTC77G/HiY4jOdTZ29sbn5CSlHRdKGwm 1yGHSSUSCUNmwEBHZ2hExFjZLUul0p27Dnd397y3Yh7Z6hDMzLiipub7VbWamppVVbVtbR1iscT8 ScNMvV+Cvr5On20+iUosG5Vs6UCmrmTJ1tVL1wZ1VPJqkipmZbZMXaI+qcRn2VSEkFpR0Qitru5Q Xd2hO3YeZjDoEyaMlE3a/9OvNTX1X/zzPXt7K9UEo4hLl69aWJgQf9x9fd26urqzsvJ6enpotAGf mPY85NCxhoYGh2NI9Hv6xdnYK3FxSRMmjHRzddTWZtXWCaKjzyieXSqVVlc/FIslWVl5YWF/G/Aw Mxv24EHtg6paT0/nwsIyobCZRtMcNsxY8f0+s5WSq88w+wtRJiola3JAt4wQelWo7tZpdXVddnbB pIlj9PR0yIWlpRW3bhUuiJqmVq1ydfXDqqrayKkT2ts75K/9ihD3/K+HJBZLAIC8cZ6enj0yyHvh gunE1z49ORqN1iPTu2ptbUtNu+Hn625iwiEXLl709p07936L4Xt6OssOkJqbD7t9u6TqQZ2np0tF RVVZWQWXa0Te6KXeLzUajS4bVU/Pi/X/Xro2qMmryZePWW5UFCVCCL1aVDcwG3chmcFgTJnyt98d 3fgzX0uLOXZsgMrCUERGRg6dTuPx1PThjocPbXmJ30pVVlZ3dXUTn4uK7gAAx9iA+NrTI5ZIJOSa RcV3ZTOamXGLi8vJUdPc3KKYGH5nZze5gqam5pgxfnPnThk6VPvAgd9kx1eJoeyqqlpbGwsbG8v8 /BJzmZ9OUe+XGodjUFJSQe6r5KlZVNReujaoUedVJma5UVGUCCH0alHRNbVA0JiZmRsREaKrO1R2 efWDOj09ndy8ItmFIxxtZHvVKiaVSjMyc1xdHFgsLfYQbQBISsooKa1gMplMJmOwolKerp7Ozl1H Ro30bmpqOR+XZGSk7+rqQCQ5O9tlZeVxhxlZWphWVj7o80c/fFLIDzsO7dh5OMCfJ6hvjI9PcXSw trIy67N9Npu1eNHb//3+58Tf08kZfKam3Obmto6OTgsLE2tri/j4lIkT/zfWTb1faiFj/KMPndm+ PTow0FNQ35iXV6ya2qBGnZeMOSjIq6FRdOtWYX9tmbpECKFXi4oa5vj4FAaDHhE+ts/yzq5ugaBx 164jsgsH91UE5eVVAkEj8UQRXx83Pz+P2HNXWCytqKhI2Tlrrxwu13D0aL+TJ+PJB1CQQ51R8yM7 OjovXkxjMOgB/p7z5r317bd7yIw+Pm7vrZgbn5Cyd98JNpvl5+v+zjtTn3kr1NPTeXSw72+/8T15 jwe0GQy6kZH+0KFsGo1ma2PR3d1N/ohZ7n6pjRsX2NTc+vvv6QWFpV6eLm/PnLRp834V1AY16rzK xCw3KooSIYReLRqi5vbBjgEhlVKTty2VllZ8/c2PX/zzfeL3UcpQkxIhhPrFK9wFROjVsnXbwY0b 95Ffi0vKAcDUlPP8HAihNxEOdiGkIv5+Hgd/jtn/00kP9xF1DxsuXEjy9+cZGOgNdlwIIfWCDTNC KhIS4t/T03P5yrWMjFva2qyQkIB5cycPdlAIIbWD95gR+v/t3XlYE1e7APA3JCEhEPYgi6i4IIhs AgIK4gaf4F6rIi51xWq1X/Vpbft4v3vb236fVr217mvdtYq2KqtK2erCopFFkACyqUkgYUeQPfeP 0WkKdTIQgti+v8c/kjk557xzxicvM3MyByGE+hG8x4wQQgj1I5iYEUIIoX4EEzNCCCHUj2BiRggh hPoRTMwIIYRQP4KJGSGEEOpH+uJ3zCkpGdeux0qlci6X4+oyavHiWXy+LlmanJweHhEnkciI0pCQ mZ0WutCQN/VbX9+wf//ZvPwiAwP9VSvfd3KyUygUn2z61srKfMtna/ogsHeLUJj9w55TxGtfH/fQ 0ODebX/L59/Z2Fiv+zCkB3XzC0p27jxmbz9s86aVvRWP5h5+ef36r79cvXX61I5ebxkh9G7R+Blz RkbugYPnTE2M1qxeMH36xIfpOd/vPkGufCcUZh88dN7U1Ch0zcKZMyanZ+Ts2nW8o6ND01FR9JuU lCbKK1q2bC6fr/vTxUgAKC2VVFXVenu5aDqqd9HQoYM2bly2ceOyt7gg2Js0vGhsamquqKh+24Eg hFA3aPyM+de4e+bmpps3rySWZjIw4B8/HlZSKrYZMhAAomOSrK0tNn2ygigVCIz3Hzibm1uo6RXr KPqtr3/B43EnT/KWSGQpKRkAIBRms1hMNzdHjYb0jjIy0h/r4QQAly5Fve1YOnN1HbV3z790dXlv OxCEEOoGjZ8xe3o6LwqeSS6YaDvCBgDKyyqIt1KpzM5uKFlKLLMjlco0HVW3+n2YnuPoOJLH42o6 KtTrjIwM3ulVtBFCf0MaP2P29XFXftvY+BIAuFwO8ba9vZ2ttGpsbW09ALS1t2s6Kvr9VlRUP30q IZZn7ic+WL7lvbkBs2dP7VatO3ceREYlSKVyHR3OGFeHkJBZenp0TyWV78c7OtouWjTTxNiwV+pS RLV335n797MAQCqV37v3EAC0tLSUb8EeOnyhuPjZ+nVLDh2+IJdXerg7hoYGM5lMoHHnW53RAIAH wuwLF8LJlY+trMyJ7QqFIjIqISEhpbKyhsvVHu1gu2TJHCMj/e72297esW37IbG4/NtvNpuYvBqu xMTU6JhEmayKw2Hb2w9fHDJLIDAmiog7335+npqISp2jjxDqgb6elX379n0OR9vW1qZr0QNh9v9+ s7+P4+naL1ub3dLSKpXK5fIqbTZbJCoUCIxdXUf1fWC9SCjMPnL0orm54MO1iwID/R4Is3f/cJK8 06+y7sFD562tLUJDF86d65+XV7xt2+HW1jb161JHFRTot3HjMiMj/ZEjbYjb2Bs+WtKp/Y4Oxbnz 1wL8x0+a5HUvOT05OZ3YTn3nW53RAIAKeXViQsq8ef9YMD9ILC7fuet4W9urPYqMTAgLi3Z2tv9w 7aI5s/3z8ot37jqmPKOCZr9hl6Pz80vWr1tMZuX09Mc/nrhsPdBizZoF896bVlT0dNeu48p1NRSV OkcfIdQzfbq6VMyNpLj45KVL53S6LNze3nH5cnTMjd+CgvwiIxP6LJ4/7dfbyyU29u6Wz78DgOCF 03183N3dHVmst78MV2Pjy/b2V9Pimlta6usbAEBHh8tiMVXWjbmRZG1t8c+PP2AwGABgYmx45OjF 0lKEHUXXAAATz0lEQVTJkCFWnVomkS1HxyTZ2Q1bv24xsX3wIKv/bDv06FHemDEOKvulrksd1fDh gwHgypUYExMj4jZ2VzJZ5Yrl8xwcRigUiqwsUWVVDbGd+s63OqMBADU1dV999TGHow0AAoHx3n1n cnIKnJ3tAUBeURXg77N06Rzik6amRnv3nSkpeW5jY62yX5JQmB0dnTh3boCj40hyY0ZGrpGR/oYN S4m6A8xNb968XVf3gvzLQ0NRqXP0EUI900f5pqmp+fiPYWlpWcELpwf4+ygX1dTWb99+WCwp/+zT 1cOHD+6zxPymfq2szHd/v/W5uMzQgG9oyN/+3ZGcnAI2mzV/fmDgNL++ie1P7dh5rLDwKfE6IiI+ IiIeAD77dLWTk53KuhKJzMvLhfjmBQBnZ7tFwTPIGwrKLZPIlqVSmYe7E/F3AAAQ53AVlbSmOlPX pY6KDg5Hm5gfwGAwdu74gmYtdUYDAAYPsSLyHwDY2w8HAPnrid8rV7xPvGhpaWlubuXxdADgxYtG +vsrk1UePXbR0dF27hx/5e0mpoZ1dQ15eUV2dsMAwNnJzvmPx11DUalz9BFCPdMXibmxsWnb9kNl ZRWbNq1wdel8TfjevYfDhw/+9pvNxsYGTU3NfRCPyn55PG6ZVB4VleDl6ZKTU7Bm9cKsR6KwsOgA f18m8609kmX5B/NevmwCgG3bD0/w9Rg/3g0ArAdZ0Knb6Z46n68XFDSxa8vKyJbb29vjE5LjE5KV S2n+pI26LnVUdBga8smMQp86owEAbPbvdYnTaPKicUdHR2RUQlzcvaqqWvIz5GVhlfurUCj27jvd 0tK6NnRRp/0K8PfJzMj9938OWVqYjXa09ZswdtAgS+UPaCgqdY4+Qqhn+iIxHzn6k0Qi//KLtcTF yU6cne0/+edyOtdjexd1vzdu/jZwoDnxBe3uPrq5uSU1NbO1tZXJ7Mb5XO8iL3gyGAyBwNjefliv t/wmnp7OUyaPU94yYIApzcbVqatSD7KySipHg8IvV2+Fh8dNnTputIOtjg5XWiY7efJn+tUVCoVY XN7W1p6amhkQ8IcLS1wuZ+vW9UJhdkpq5u3bD2Jj786fHzhzxuQ+iEqjRxAh1JXGE3N+fvHDhzlL l8z506zMZDLNzIzJ7NjW1g4ALKbGkzR1v2Jx+bNn0tmzpjY0NGo6kr7BZDJb236fsFNf/yIxKc3D 3dHcXECnLk9Hh/w7QKFQNDe3KJ+f9bgunagYDC14fW4nyiuqqa7zUvtJL+qMBgC0KU19evU/5/UZ 5927wnHeY5YtnUu87TRKdPpdsfz9J09KL4VFu7jYm5mZKFfX0tLy8HDy8HBqa2u/fDk6LCzac6wz +RkNRaXO0UcI9YzGL8ym3c/icLQnTvT801ILC7O8vGLyqppIVEhs1HRU1P0mJ6ezWExnZ9X3bt+K 06d2dPe3UpaWZiJREbm/GRm5YWHRTU0tNOtmPRKRE3ELCkrWhG7NzBSpX5dOVHw+j7xXev1abGRU L0xBUGc0AKCkRNzc/OrDublPAEBgakS8bW1ta1f60V2uqLBb/WppaU2Y4BEcPENPT+fYsUvKk65P nLxy9uw14jWLxXRxGQUAVa8nu2kuKnWOPkKoZ5hffLlVox3ExCS1t3eYmhqJJeXkPz09HjG7RE+X d/PW7ZISMQA8epR34afIgVbm8+cHauISpTKKfhUKxYmTV4baWE+YMLZcVnn/fhZPRyfn8ZPq6rq5 c/w1HZiG6Orybt268/SZVKFQPEzPuXzlxlAb61mzptDZHT093fiElLz8Yi0GQyQqOn8hXE9XNyRk FvGL4dJScX5BiVhS/vBhjhaTyeVyxJLyAQNMiIe3UNelE1VjY1NiUioDID+/OOm3+1OmeBOznwDg wYNHNTV1/n+cS0igjkqd0UhMSmUymY+y8xkAjx7l/XQxUl9fb8ni2UTLxSXPU9My29rb6+sa7tx5 kJUlqq6uGz9uDHHtl7rfvLyiXFHh3Dn+bDbLwtwsIjJej687bNggot/nz8vCI+Lq6xsaG17m5Rdf uhTF4WgvXBhEjKTmoqI+ggghTdB4Yo6LT372TJqWlqn8z8FhBPGlYGlpZmEuSM94nJCYWlj41NVl 1Nq1i7o1L7dnKPotKnoWFZ04PWiijc1Ac3NTiUSWmJhSX9+waNHMoTbWmg5MQywtzcwExg/TcxIS UkpLxe5uo0NDg8lJvNQsLMysLAdkPRIlJaUVFBSPGGGzfv1icqGR6+FxFy9GpqVlNje3VFRUE8f3 HwG+ROPUdelEZWNj/aKhMS4+WZRX7OPjtmB+EPm8NorETB2VOqORmJRqbGwwYcLYsMvRD4SPBg+2 2vDREkPDVw/rGGlr8/x5WXJyetYj0QAz06Cgibdv3ydTIHW/ZGIGAHNzQYW86uatO95eLsQjRW1t h7DYrJSU9Dt3hPn5RcOGDVq/LsTAQF/TUVEfQYSQJjCqaxvedgwIIbVobs0rhFDfw/WYEUIIoX4E EzNCCCHUj2BiRgghhPoRvMeMEEII9SN4xowQQgj1I5iYEUIIoX4EEzNCCCHUj2BiRgghhPoRTMwI IYRQP4KJGSGEEOpH6C7flpKSce16rFQq53I5ri6jFi+exefrKn/gyZPSgwfPyyuqjhz+hsfTUS7K yMi9fCVGLC5js9nOznbLls5VftauUJh99dqt58/LeDwdb2/X4IUzemtROeqY3xRVfX3D/v1n8/KL DAz0V61838nJTqFQfLLpWysr8y2fremVwP5u8gtKdu48Zm8/bPOmlV1Lt3z+nY2N9boPQ3pQFyGE /nponTFnZOQeOHjO1MRozeoF06dPfJie8/3uE+Q6cQqFIjo68dt/H6itq+9at7jk+e4fTnK5nFWr FsyeNTUrK2/vvtNk6ePHT/bsPc3X0129asG0aRN+++3+yZNXemXHqGOmiCopKU2UV7Rs2Vw+X/en i5EAUFoqqaqq9VZ7GeC/rYYXjU1NzRWvV2/ss7oIIfQuonVu+mvcPXNz082bVxIL+xgY8I8fDysp FdsMGQgAJ0/9nJiYGhQ00dCAf/5CeKe6t2/f19Zmf/bpamLtJl1dnRMnr0gk5ZaWAwAgKjrRzMzk 009XE6vIGRroH/8xbN68aSYmhmruGHXMFFHV17/g8biTJ3lLJLKUlAwAEAqzWSymm5ujmiH9bbm6 jtq751/EKkl9WRchhN5FtBKzp6ezLk+HXG7PdoQNAJSXVRBJbtIkL8+xzg4OI2Jj73atO857zBhX B3IlR2trCwCorq4jEvPTpxJXl1Hk2q6OjiMVCkV+frG3t6uaO0YdM3VUnTxMz3F0HMnjcdUM6e/M yMjgrdRFCKF3Dq3E7Ovjrvy2sfElAJBZjUh1bzJ8+GDlt8+elwGAuYWAeNvW1sZi/77iOnF3uf5F LzwllDpm6qiUVVRUP30qmTF9UncD+GD5lvfmBsyePbVbte7ceRAZlSCVynV0OGNcHUJCZunp8VSW 1tbWb9j49WiHEQVPSgcONH9/3rQDB84ZGup/+eWHdJbOJRYN9PPzvHAhvKqqZujQQatWvm9lZU5+ IDk5PTwiTiKREXfrQ0JmKjebmJgaHZMok1VxOGx7++GLQ2YJBMZEkVCY/cOeU8RrXx/30NBg5X73 7jtz/34WAEil8nv3HgKAlpbW6VM76NSljorYo8mTvc+evVZVVTPSdmhoaDD9yzAUR6HTAovFxc/+ +3/2fPbpaicnO2LLocMXioufrV+35NDhC3J5pYe7Y2hoMPmnJ8VYqRxn6pYRQn8ZPZmVffv2fQ5H 29bWplu1qqvrUlMzw8KifH3cTYxffUWamZmUlIjJzxQXPwMALofTg6iovSnmrlGxtdktLa1SqVwu r9Jms0WiQoHA2NV1VK+H1JVQmH3k6EVzc8GHaxcFBvo9EGbv/uEkeV+cuhQA2Gz20qVzCgufRkUn rlo1Xywpv3PnAc2uK+TViQkp8+b9Y8H8ILG4fOeu421tbWS/Bw+dF5gaf7h20exZU9IzHu/adbyj o4MoTU9//OOJy9YDLdasWTDvvWlFRU937TpORjV06KCNG5dt3LjMwIDftdOgQL+NG5cZGemPHGlD fGzDR0vIUuq61FEBQFVVbWzs3ffmBsydE1DwpOTgwXM0h0LlOKvU0aE4d/5agP/4SZO87iWnJyen E9upx0rlHlG0jBD6K+n2/OeYG0lx8clLl87p7qXdz7Zsb25usbcftmrVAnKjr6/H6dO//HL1lp/f 2KrKmrPnrgGAtbX5m5vpCYqYu0bl7eUSG3t3y+ffAUDwwuk+Pu7u7o4sFt2Bamx82d7+6su0uaWl vr4BAHR0uCyW6jObmBtJ1tYW//z4AwaDAQAmxoZHjl4sLZUMGWKlshQAXMc4+E0Y++OPl0eOtHF3 dzQw4MvkVV2jIilHVVNT99VXH3M42gAgEBjv3XcmJ6fA2dkeAKJjkgYNsty0aQXRL1Gam1vo4DAC ADIyco2M9DdsWEqUDjA3vXnzdl3dCyKbGhnpj/VwAoBLl6K67i9x3eLKlRgTEyPiY8qo61JHBQAV FdX/+q+PyGskV36+IZNVmpmZqBwNleOskkxWuWL5PAeHEQqFIitLVFlVQ2ynHiuVe0TRMkLor6Qb ibmpqfn4j2FpaVnBC6cH+Pt0t6dNn6woeFISERF/5szVFSvmERunTPYuK5NfuxZ79eotYouBAX/w YLrfgOrH3DUqKyvz3d9vfS4uMzTgGxryt393JCengM1mzZ8fGDjNT2WPO3YeKyx8SryOiIiPiIgH AOVLnRQkEpmXlwvxvQwAzs52i4JnkKmFuhQAiAIGg8EABvFC0aHoGhVJOarBQ6yIrAwA9vbDAUD+ eiK0VPqHfolSqVRGJAwTU8O6uoa8vCI7u2EA4Oxk50xjT9VHHRUA2NgMJAfH3n4YAFRUVBOJmXo0 VI6zShyO9qhRwwGAwWDs3PEFuZ16rFTuEUXLCKG/Evongk3bth8qK6vYtGmFq0tPrus6OIxwcBhh aWG2b//Z8ePHEFeVGQzGksWzZ82cUlZeUVNdu//AuUkTvcgZW2qiE/OfRsXjccuk8qioBC9Pl5yc gjWrF2Y9EoWFRQf4+zKZKmJb/sG8ly+bAGDb9sMTfD3Gj3cDAOtBFnQCbm9vZyudmvP5ekFBE2mW 0oxKmXJUyr8dJ04cyUvZnfp9VdreTrwN8PfJzMj9938OWVqYjXa09ZswdtAgS5pRqYM6KvjjHhGv yT2iHg11xplgaMgn86sy6rFSuUcULSOE/kroJuYjR3+SSORffrG207Sp7vLwcOJyORmZucq3e/X1 9fT19fbsPc1ms6ZOHadO+8rox9w1qhs3fxs40Jz4+nZ3H93c3JKamtna2spkqjhzIi94MhgMgcCY OFd76+hfhu0uLpezdet6oTA7JTXz9u0HsbF3588PnDljsoa66xWaGw3Cm3Kn+mOFWRmhvwNa56b5 +cUPH+YsXBDUg6z88883M7NE5FsGg8FiMpubWzp9TCwuEwqzp0we96czfXqAOmbqqMTi8mfPpG5j RvdKJPQxmczW12d1AFBf/yIiMr6sTE6nVE1trb+33NbWDgDkbfVO/b4qVZoMrKWl5eHhtHHD0oMH vg6cNiEsLFomq6TfNYOhBa8nQInyiojfjqukMqoeox5nFovZqjRWyq/poBgrze0RQujdQisxp93P 4nC0J0707EEHD4SPwsPjyKmnRUXPXjQ0dr3aGR4Rz2azZ8zo9q+S3oQ6ZuqokpPTWSyms7Na90pP n9rR3d9KWVqaiURFZFQZGblhYdFNTS10StVUUiIm/y7JzX0CAAJTI+KthYVZXl4x2S9RamFhRrw9 cfLK2bPXiNcsFtPFZRQAVHVnUhKfzyPvZ1+/FhsZlUCnFnVU6qAeZ1MT4+Li501Nza/7LaTfMvVY aW6PEELvFlqXssXPywwM+BmZucobR9ra0Dm7DQr0O3rs0p69pz08HOvqXkRHJwkExl6ef3i8pUxW mZKSERTkR+dHtzRRx0wRlUKhSE5Jdxg1gsvl8HR1ACAuLjkvv1hbW1tbm91b4f2pwGl+P+w5tWfv ac+xzjJ5ZWRkgu2IIYMHW9IpVZO+AX/vvjPjx42pqam7Hh5nYmJIzjkKCvT7Yc+p3btPenu7VlfX Xg+PsxkykLxELzA1Drsc3aFQjBg+uPFlU3R0opGRwdCh1kRpaam4XFYJAM3NLfKK6rT7WQAwxnWU 8ix3dzfH8xfCr169paWllfP4yXvvBdCpSx2VOqjH2cfH7e494a7/Oz7Rz7OysiY94zH9lqnHSnN7 hBB6t9BKzE3NLTJZ5b59Z5Q30pxp7OvrAQxGVFTC0aOXtLXZo0fbLlkym5wATIiMTGCzWUGBE7sT uVoxU0RVVPRMJqskniji7jbaw8Pp6rVbXC5nyZLZvTUr7U3c3EavDQ2OjEo4dPgCj8f1cHcMCZlF 3lakLlWTmZmxr6/HxYuR5ANGyNzp5jZ6/brF4RFxh4/8RD74ghyKGTMmKUCRkJASH5/M5Wrb2Q1b FDxDW/vV8U1MSvv111fPg6utrReJCgHg4IGv+fzf/+P5+/uUyyqjY5I6OhQTJniQz3KhrksdlTqo x5n4rxIeHnfi5JUxYxzmvx+4/bsjNFumHivN7RFC6N3CqK7thcdsoXdap6dZIYQQeovw73GEEEKo H8HEjBBCCPUjmJgRQgihfgTvMSOEEEL9CJ4xI4QQQv0IJmaEEEKoH8HEjBBCCPUjmJgRQgihfgQT M0IIIdSP/D8sLk2WTszKxgAAAABJRU5ErkJggg== --b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys Content-Type: text/x-java; name=P1.java Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=P1.java cHVibGljIGNsYXNzIFAxIHsKICAvKgogIFRoaXMgdGVzdHMgdGhlIFN5bSBhbmQgU3ltVGFibGUg Y2xhc3Nlcy4gVGhlIHRlc3RzIGhhdmUgYmVlbiBicm9rZW4gdXAgaW50bwogIGZpdmUgcHJpdmF0 ZSBoZWxwZXIgbWV0aG9kcyBmb3Igb3JnYW5pemF0aW9uYWwgcHVycG9zZXMuCiAgKi8KCiAgcHVi bGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgdGVzdFN5bSgpOwogICAg dGVzdEV4Y2VwdGlvbnMoKTsKICAgIHRlc3RBZGREZWNsKCk7CiAgICB0ZXN0TG9va3VwKCk7CiAg ICB0ZXN0UHJpbnQoKTsKICB9CgogIC8qCiAgSGVscGVyIG1ldGhvZCB0byBmb3JtYXQgZXJyb3Jz IHByb3Blcmx5IHdoaWNoIHByaW50cyBvdXQgdG8gc3RkZXJyCiAgKi8KICBwcml2YXRlIHN0YXRp YyB2b2lkIGVycm9yKFN0cmluZyBtZXRob2QsIFN0cmluZyBtc2cpIHsKICAgIFN5c3RlbS5lcnIu cHJpbnRsbigiRVJST1I6ICIgKyBtZXRob2QgKyAiOiAiICsgbXNnKTsKICB9CgogIHByaXZhdGUg c3RhdGljIHZvaWQgdGVzdFN5bSgpIHsKICAgIC8qCiAgICAgIFRlc3Rpbmcgb3VyIFN5bSBtZXRo b2RzIHVzaW5nIHRoZSBkaWZmZXJlbnQgdmFyaWFibGUgdHlwZXMgKGJvb2wsIGludCwKICAgICAg c3RyaW5nKQogICAgICovCiAgICBTdHJpbmdbXSB0eXBlTGlzdCA9IHsiYm9vbCIsICJpbnQiLCAi c3RyaW5nIn07CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHR5cGVMaXN0Lmxlbmd0aDsgaSsrKSB7 CiAgICAgIFN5bSBzeW0gPSBuZXcgU3ltKHR5cGVMaXN0W2ldKTsKICAgICAgU3RyaW5nIHR5cGUg PSBzeW0uZ2V0VHlwZSgpOwoKICAgICAgaWYgKCF0eXBlLmVxdWFscyh0eXBlTGlzdFtpXSkpIHsK ICAgICAgICBlcnJvcigiU3ltLmdldFR5cGUgZXhwZWN0aW5nICIsIHR5cGUgKyAiLCBidXQgZ290 ICIgKyB0eXBlTGlzdFtpXSk7CiAgICAgIH0KICAgICAgdHlwZSA9IHN5bS50b1N0cmluZygpOwog ICAgICBpZiAoIXR5cGUuZXF1YWxzKHR5cGVMaXN0W2ldKSkgewogICAgICAgIGVycm9yKCJTeW0u dG9TdHJpbmcgZXhwZWN0aW5nICIsIHR5cGUgKyAiLCBidXQgZ290ICIgKyB0eXBlTGlzdFtpXSk7 CiAgICAgIH0KICAgIH0KICB9CgogIHByaXZhdGUgc3RhdGljIHZvaWQgdGVzdEV4Y2VwdGlvbnMo KSB7CiAgICAvKgogICAgVGhpcyBpcyB0ZXN0aW5nIHRoYXQgdGhlIFN5bVRhYmxlIGNsYXNzIHdp bGwgdGhyb3cgdGhlIEVtcHR5U3ltVGFibGUKICAgIGV4Y2VwdGlvbiB3aGVuIGV4cGVjdGVkIGFz IHdlbGwgYXMgdGhlIGFiaWxpdHkgdG8gYWRkIGFuZCByZW1vdmUgc2NvcGUsIHRoZQogICAgYWJp bGl0eSB0byBhZGQgdG8gb3VyIFN5bVRhYmxlIHdpdGggb25lIGFuZCBtdWx0aXBsZSBIYXNoTWFw cyB3aXRoIGFkZERlY2wKICAgICovCiAgICBTeW1UYWJsZSBzeW1UYWJsZTsKCiAgICAvLyB0ZXN0 aW5nIHJlbW92ZSBhZnRlciBjYWxsaW5nIHRoZSBjb25zdHJ1Y3RvcgogICAgdHJ5IHsKICAgICAg c3ltVGFibGUgPSBuZXcgU3ltVGFibGUoKTsKICAgICAgc3ltVGFibGUucmVtb3ZlU2NvcGUoKTsK ICAgICAgdHJ5IHsKICAgICAgICBzeW1UYWJsZS5yZW1vdmVTY29wZSgpOyAvLyBTaG91bGQgdGhy b3cgYW4gZXhjZXB0aW9uLgogICAgICAgIGVycm9yKCJTeW1UYWJsZS5yZW1vdmVTY29wZSIsCiAg ICAgICAgICAgICAgInNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24gZm9yIGFuIGVtcHR5IHRhYmxl Iik7CiAgICAgIH0gY2F0Y2ggKEVtcHR5U3ltVGFibGVFeGNlcHRpb24gZSkgewogICAgICAgIC8v IEV4cGVjdGluZwogICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewogICAgICAgIGVycm9yKCJT eW1UYWJsZS5yZW1vdmVTY29wZSIsICJ3cm9uZyBleGNlcHRpb24gZm9yIGFuIGVtcHR5IHRhYmxl Iik7CiAgICAgIH0KICAgIH0gY2F0Y2ggKEVtcHR5U3ltVGFibGVFeGNlcHRpb24gZSkgewogICAg ICBlcnJvcigiU3ltVGFibGUucmVtb3ZlU2NvcGUiLAogICAgICAgICAgICAiRW1wdHlTeW1UYWJs ZUV4Y2VwdGlvbiB0aHJvd24gYWZ0ZXIgY2FsbGluZyBTeW1UYWJsZSBjb25zdHJ1Y3RvciIpOwog ICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKICAgICAgZXJyb3IoIlN5bVRhYmxlLnJlbW92ZVNj b3BlIiwKICAgICAgICAgICAgZSArICIgdGhyb3duIGFmdGVyIGNhbGxpbmcgU3ltVGFibGUgY29u c3RydWN0b3IiKTsKICAgIH0KCiAgICAvLyB0ZXN0aW5nIHJlbW92ZSBhZnRlciBhZGRpbmcvcmVt b3ZpbmcgYSBtYXAKICAgIHRyeSB7CiAgICAgIHN5bVRhYmxlID0gbmV3IFN5bVRhYmxlKCk7CiAg ICAgIHN5bVRhYmxlLmFkZFNjb3BlKCk7CiAgICAgIHN5bVRhYmxlLmFkZFNjb3BlKCk7CiAgICAg IHN5bVRhYmxlLmFkZFNjb3BlKCk7CgogICAgICB0cnkgewogICAgICAgIHN5bVRhYmxlLnJlbW92 ZVNjb3BlKCk7CiAgICAgICAgc3ltVGFibGUucmVtb3ZlU2NvcGUoKTsKICAgICAgICBzeW1UYWJs ZS5yZW1vdmVTY29wZSgpOwogICAgICAgIHN5bVRhYmxlLnJlbW92ZVNjb3BlKCk7IC8vIFNob3Vs ZCBoYXZlIHplcm8gbWFwcyBub3cKCiAgICAgICAgdHJ5IHsKICAgICAgICAgIHN5bVRhYmxlLnJl bW92ZVNjb3BlKCk7IC8vIFNob3VsZCB0aHJvdyBhbiBlcnJvci4KICAgICAgICAgIGVycm9yKCJT eW1UYWJsZS5yZW1vdmVTY29wZSIsCiAgICAgICAgICAgICAgICAic2hvdWxkIHRocm93IGFuIGV4 Y2VwdGlvbiBmb3IgYW4gZW1wdHkgdGFibGUiKTsKICAgICAgICB9IGNhdGNoIChFbXB0eVN5bVRh YmxlRXhjZXB0aW9uIGUpIHsKICAgICAgICAgIC8vIEV4cGVjdGluZwogICAgICAgIH0gY2F0Y2gg KEV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICBlcnJvcigiU3ltVGFibGUucmVtb3ZlU2NvcGUiLCAi d3JvbmcgZXhjZXB0aW9uIGZvciBhbiBlbXB0eSB0YWJsZSIpOwogICAgICAgIH0KICAgICAgfSBj YXRjaCAoRXhjZXB0aW9uIGUpIHsKICAgICAgICBlcnJvcigiU3ltVGFibGUucmVtb3ZlU2NvcGUi LAogICAgICAgICAgICAgICJ1bmV4cGVjdGVkIGV4Y2VwdGlvbiBmb3IgYSBub24tZW1wdHkgdGFi bGUgIiArIGUpOwogICAgICB9CiAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewogICAgICBlcnJv cigiU3ltVGFibGUuYWRkU2NvcGUiLCAidW5leHBlY3RlZCBleGNlcHRpb24gIiArIGUpOwogICAg fQoKICAgIC8vIFRlc3RpbmcgdG8gc2VlIGlmIGFkZERlY2wgdGhyb3dzIGFuIEVtcHR5U3ltVGFi bGVFeGNlcHRpb24KICAgIHRyeSB7CiAgICAgIHN5bVRhYmxlID0gbmV3IFN5bVRhYmxlKCk7CiAg ICAgIHN5bVRhYmxlLnJlbW92ZVNjb3BlKCk7CgogICAgICB0cnkgewogICAgICAgIHN5bVRhYmxl LmFkZERlY2woIm5hbWUiLCBuZXcgU3ltKCJ0eXBlIikpOwogICAgICAgIGVycm9yKCJTeW1UYWJs ZS5hZGREZWNsIiwKICAgICAgICAgICAgICAic2hvdWxkIHRocm93IGFuIEVtcHR5U3ltVGFibGVF eGNlcHRpb24gZm9yIGFuIGVtcHR5IFN5bVRhYmxlIik7CiAgICAgIH0gY2F0Y2ggKEVtcHR5U3lt VGFibGVFeGNlcHRpb24gZSkgewogICAgICAgIC8vIEV4cGVjdGluZwogICAgICB9IGNhdGNoIChF eGNlcHRpb24gZSkgewogICAgICAgIGVycm9yKCJTeW1UYWJsZS5hZGREZWNsIiwgIndyb25nIGV4 Y2VwdGlvbiBmb3IgYW4gZW1wdHkgU3ltVGFibGUiKTsKICAgICAgfQogICAgfSBjYXRjaCAoRXhj ZXB0aW9uIGUpIHsKICAgICAgZXJyb3IoIlN5bVRhYmxlLnJlbW92ZVNjb3BlIiwKICAgICAgICAg ICAgInVuZXhwZWN0ZWQgZXhjZXB0aW9uIHRocm93biBmb3IgYSBub24tZW1wdHkgdGFibGUgIiAr IGUpOwogICAgfQoKICAgIC8vIFRlc3RpbmcgdG8gc2VlIGlmIGFkZERlY2wgdGhyb3dzIGFuIE51 bGxQb2ludGVyRXhjZXB0aW9uCiAgICBzeW1UYWJsZSA9IG5ldyBTeW1UYWJsZSgpOwoKICAgIHRy eSB7CiAgICAgIHN5bVRhYmxlLmFkZERlY2wobnVsbCwgbmV3IFN5bSgidHlwZSIpKTsKICAgICAg ZXJyb3IoIlN5bVRhYmxlLmFkZERlY2wiLAogICAgICAgICAgICAic2hvdWxkIHRocm93IGFuIE51 bGxQb2ludGVyRXhjZXB0aW9uIGZvciAnYWRkRGVjbChudWxsLCBzeW0pJyIpOwogICAgfSBjYXRj aCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgewogICAgICAvLyAgRXhwZWN0aW5nCiAgICB9IGNh dGNoIChFeGNlcHRpb24gZSkgewogICAgICBlcnJvcigiU3ltVGFibGUuYWRkRGVjbCIsICIgd3Jv bmcgZXhjZXB0aW9uIGZvciAnYWRkRGVjbChudWxsLCBzeW0pJyIpOwogICAgfQoKICAgIHRyeSB7 CiAgICAgIHN5bVRhYmxlLmFkZERlY2woIm5hbWUiLCBudWxsKTsKICAgICAgZXJyb3IoIlN5bVRh YmxlLmFkZERlY2wiLAogICAgICAgICAgICAic2hvdWxkIHRocm93IGFuIE51bGxQb2ludGVyRXhj ZXB0aW9uIGZvciAnYWRkRGVjbChuYW1lLCBudWxsKSciKTsKICAgIH0gY2F0Y2ggKE51bGxQb2lu dGVyRXhjZXB0aW9uIGUpIHsKICAgICAgLy8gRXhwZWN0aW5nCiAgICB9IGNhdGNoIChFeGNlcHRp b24gZSkgewogICAgICBlcnJvcigiU3ltVGFibGUuYWRkRGVjbCIsICIgd3JvbmcgZXhjZXB0aW9u IGZvciAnYWRkRGVjbChuYW1lLCBudWxsKSciKTsKICAgIH0KCiAgICB0cnkgewogICAgICBzeW1U YWJsZS5hZGREZWNsKG51bGwsIG51bGwpOwogICAgICBlcnJvcigiU3ltVGFibGUuYWRkRGVjbCIs CiAgICAgICAgICAgICJzaG91bGQgdGhyb3cgYW4gTnVsbFBvaW50ZXJFeGNlcHRpb24gZm9yICdh ZGREZWNsKG51bGwsIG51bGwpJyIpOwogICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24g ZSkgewogICAgICAvLyBFeHBlY3RpbmcKICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAgICAg IGVycm9yKCJTeW1UYWJsZS5hZGREZWNsIiwgIiB3cm9uZyBleGNlcHRpb24gZm9yICdhZGREZWNs KG51bGwsIG51bGwpJyIpOwogICAgfQogIH0KICBwcml2YXRlIHN0YXRpYyB2b2lkIHRlc3RBZGRE ZWNsKCkgewogICAgLyoKICAgIFRoaXMgaXMgdGVzdGluZyBhZGRpbmcgdG8gb3VyIHRhYmxlIHdp dGggbm90IG9ubHkgb25lLCBidXQgbXVsdGlwbGUgSGFzaE1hcCwKICAgIGFzIHdlbGwgYXMgd2l0 aCBhbmQgd2l0aG91dCB1bmlxdWUgbmFtZXMsIGFuZCBtYWtlcyBzdXJlIHRoYXQgZHVwbGljYXRl CiAgICBuYW1lcyB0aHJvdyB0aGUgRHVwbGljYXRlU3ltRXhjZXB0aW9uCiAgICAqLwogICAgU3lt VGFibGUgc3ltVGFibGU7CiAgICBTdHJpbmcgbmFtZTEgPSAibmFtZTEiLCBuYW1lMiA9ICJuYW1l MiIsIG5hbWUzID0gIm5hbWUzIjsKICAgIFN5bSBzeW0xID0gbmV3IFN5bSgiYm9vbCIpLCBzeW0y ID0gbmV3IFN5bSgiaW50Iik7CgogICAgLy8gQWRkIGludG8gc3ltVGFibGUgd2l0aCBhIHNpbmds ZSBIYXNoTWFwCiAgICB0cnkgewogICAgICBzeW1UYWJsZSA9IG5ldyBTeW1UYWJsZSgpOwogICAg ICBzeW1UYWJsZS5hZGREZWNsKG5hbWUxLCBzeW0xKTsKICAgICAgc3ltVGFibGUuYWRkRGVjbChu YW1lMiwgc3ltMik7CiAgICAgIHN5bVRhYmxlLmFkZERlY2wobmFtZTMsIHN5bTEpOwoKICAgICAg dHJ5IHsKICAgICAgICBzeW1UYWJsZS5hZGREZWNsKG5hbWUxLCBzeW0yKTsKICAgICAgICBlcnJv cigiU3ltVGFibGUuYWRkRGVjbCIsICJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBmb3IgZHVwbGlj YXRlIG5hbWUiKTsKICAgICAgfSBjYXRjaCAoRHVwbGljYXRlU3ltRXhjZXB0aW9uIGUpIHsKICAg ICAgICAvLyBFeHBlY3RpbmcKICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKICAgICAgICBl cnJvcigiU3ltVGFibGUuYWRkRGVjbCIsICJ3cm9uZyBleGNlcHRpb24gZm9yIGR1cGxpY2F0ZSBu YW1lIik7CiAgICAgIH0KICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAgICAgIGVycm9yKCJz eW1UYWJsZS5hZGREZWNsIiwgInVuZXhwZWN0ZWQgZXJyb3Igd2l0aCBhIHNpbmdsZSBIYXNoTWFw ICIgKyBlKTsKICAgIH0KCiAgICAvLyBBZGQgaW50byBzeW1UYWJsZSB3aXRoIG11bHRpcGxlIEhh c2hNYXAKICAgIHRyeSB7CiAgICAgIHN5bVRhYmxlID0gbmV3IFN5bVRhYmxlKCk7CiAgICAgIHN5 bVRhYmxlLmFkZERlY2wobmFtZTEsIHN5bTEpOwoKICAgICAgc3ltVGFibGUuYWRkU2NvcGUoKTsK ICAgICAgc3ltVGFibGUuYWRkRGVjbChuYW1lMiwgc3ltMik7CgogICAgICBzeW1UYWJsZS5hZGRT Y29wZSgpOwogICAgICBzeW1UYWJsZS5hZGREZWNsKG5hbWUzLCBzeW0xKTsKCiAgICAgIHRyeSB7 CiAgICAgICAgc3ltVGFibGUuYWRkRGVjbChuYW1lMSwgc3ltMik7CiAgICAgIH0gY2F0Y2ggKER1 cGxpY2F0ZVN5bUV4Y2VwdGlvbiBlKSB7CiAgICAgICAgZXJyb3IoIlN5bVRhYmxlLmFkZERlY2wi LAogICAgICAgICAgICAgICJleGNlcHRpb24gdGhyb3duIHdoZW4gbmFtZSBhZGRlZCBpbiBhbm90 aGVyIEhhc2hNYXAiKTsKICAgICAgfQogICAgICB0cnkgewogICAgICAgIHN5bVRhYmxlLmFkZERl Y2wobmFtZTMsIHN5bTIpOwogICAgICAgIGVycm9yKAogICAgICAgICAgICAiU3ltVGFibGUuYWRk RGVjbCIsCiAgICAgICAgICAgICJleGNlcHRpb24gbm90IHRocm93biB3aGVuIGR1cGxpY2F0ZSBu YW1lIGFkZGVkIHdpdGggbXVsdGlwbGUgSGFzaE1hcHMiKTsKICAgICAgfSBjYXRjaCAoRHVwbGlj YXRlU3ltRXhjZXB0aW9uIGUpIHsKICAgICAgICAvLyBFeHBlY3RpbmcKICAgICAgfSBjYXRjaCAo RXhjZXB0aW9uIGUpIHsKICAgICAgICBlcnJvcigKICAgICAgICAgICAgIlN5bVRhYmxlLmFkZERl Y2wiLAogICAgICAgICAgICAid3JvbmcgZXhjZXB0aW9uIHRocm93biB3aGVuIGR1cGxpY2F0ZSBu YW1lIGFkZGVkIHdpdGggbXVsdGlwbGUgSGFzaE1hcHMiKTsKICAgICAgfQogICAgfSBjYXRjaCAo RXhjZXB0aW9uIGUpIHsKICAgICAgZXJyb3IoIlN5bVRhYmxlLmFkZERlY2wiLAogICAgICAgICAg ICAidW5leHBlY3RlZCBleGNlcHRpb24gd2l0aCBtdWx0aXBsZSBIYXNoTWFwcyAiICsgZSk7CiAg ICB9CiAgfQoKICBwcml2YXRlIHN0YXRpYyB2b2lkIHRlc3RMb29rdXAoKSB7CiAgICAvKgogICAg VGVzdHMgYm90aCB0aGUgbG9jYWwgYW5kIGdsb2JhbCBsb29rdXAgbWV0aG9kcyB3aGVyZSBib3Ro IHdvdWxkIHN1Y2NlZWQgYW5kCiAgICBmYWlsIHdpdGggb25lIGFuZCBtdWx0aXBsZSBIYXNoTWFw CiAgICAgKi8KICAgIFN5bSBzeW0sIGludFN5bSA9IG5ldyBTeW0oImludCIpOwogICAgU3ltVGFi bGUgc3ltVGFibGUgPSBuZXcgU3ltVGFibGUoKTsKICAgIFN0cmluZyBuYW1lOwoKICAgIC8vICB3 cmFwIHRoZSBtZXRob2QgaW4gYSB0cnktY2F0Y2ggYmxvY2sgc28gd2UgY2FuIGNhdGNoIGFueSBl eGNlcHRpb25zCiAgICAvLyAgdGhyb3duCiAgICB0cnkgewogICAgICBzeW1UYWJsZSA9IG5ldyBT eW1UYWJsZSgpOwogICAgICBzeW1UYWJsZS5yZW1vdmVTY29wZSgpOwoKICAgICAgLy8gVGVzdGlu ZyBsb2NhbCBhbmQgZ2xvYmFsIGxvb2t1cCB3aXRoIG5vIG1hcAogICAgICB0cnkgewogICAgICAg IGlmIChzeW1UYWJsZS5sb29rdXBMb2NhbCgieHl6IikgIT0gbnVsbCkgewogICAgICAgICAgZXJy b3IoInN5bVRhYmxlLmxvb2t1cExvY2FsKCd4eXonKSIsCiAgICAgICAgICAgICAgICAiZGlkIG5v dCB0aHJvdyBhbiBleGNlcHRpb24gZm9yIGEgU3ltdGFibGUgd2l0aCBubyBtYXBzIik7CiAgICAg ICAgfQogICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewogICAgICAgIC8vIEV4cGVjdGluZwog ICAgICB9CiAgICAgIHRyeSB7CiAgICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1cEdsb2JhbCgieHl6 IikgIT0gbnVsbCkgewogICAgICAgICAgZXJyb3IoInN5bVRhYmxlLmxvb2t1cEdsb2JhbCgneHl6 JykiLAogICAgICAgICAgICAgICAgImRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uIGZvciBhIFN5 bXRhYmxlIHdpdGggbm8gbWFwcyIpOwogICAgICAgIH0KICAgICAgfSBjYXRjaCAoRXhjZXB0aW9u IGUpIHsKICAgICAgICAvLyBFeHBlY3RpbmcKICAgICAgfQoKICAgICAgLy8gVGVzdGluZyBsb2Nh bCBhbmQgZ2xvYmFsIGxvb2t1cCB3aXRoIGEgc2luZ2xlIG1hcAogICAgICBzeW1UYWJsZSA9IG5l dyBTeW1UYWJsZSgpOwogICAgICBpZiAoc3ltVGFibGUubG9va3VwTG9jYWwoInh5eiIpICE9IG51 bGwpIHsKICAgICAgICBlcnJvcigic3ltVGFibGUubG9va3VwTG9jYWwoJ3h5eicpIiwKICAgICAg ICAgICAgICAiZGlkIG5vdCByZXR1cm4gbnVsbCBmb3IgYSBTeW10YWJsZSBsb29rdXAgb2YgeHl6 Iik7CiAgICAgIH0KICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1cEdsb2JhbCgieHl6IikgIT0gbnVs bCkgewogICAgICAgIGVycm9yKCJzeW1UYWJsZS5sb29rdXBHbG9iYWwoJ3h5eicpIiwKICAgICAg ICAgICAgICAiZGlkIG5vdCByZXR1cm4gbnVsbCBmb3IgYSBTeW10YWJsZSBsb29rdXAgb2YgeHl6 Iik7CiAgICAgIH0KCiAgICAgIC8vIExvb2t1cCBmb3IgaXRlbXMgdGhhdCBoYXZlIGJlZW4gYWRk ZWQgdG8gdGhlIHRhYmxlLCBhbmQgbWFrZSBzdXJlCiAgICAgIC8vIHRoZXJlIGlzbid0IGFuIHVu ZXhwZWN0ZWQgc3VjY2VzcwogICAgICBzeW1UYWJsZS5hZGREZWNsKCJ4eXoiLCBpbnRTeW0pOwog ICAgICBpZiAoc3ltVGFibGUubG9va3VwTG9jYWwoInh5eiIpID09IG51bGwpIHsKICAgICAgICBl cnJvcigic3ltVGFibGUubG9jYWxMb29rdXAoJ3h5eicpIiwKICAgICAgICAgICAgICAiZmFpbGVk IGZvciB0YWJsZSB3aXRoIG9uZSBpdGVtIHVuZXhwZWN0ZWRseSIpOyAvLz8/PwogICAgICB9CiAg ICAgIGlmIChzeW1UYWJsZS5sb29rdXBHbG9iYWwoInh5eiIpID09IG51bGwpIHsKICAgICAgICBl cnJvcigic3ltVGFibGUubG9jYWxHbG9iYWwoJ3h5eicpIiwKICAgICAgICAgICAgICAiZmFpbGVk IGZvciB0YWJsZSB3aXRoIG9uZSBpdGVtIHVuZXhwZWN0ZWRseSIpOyAvLz8/PwogICAgICB9CiAg ICAgIGlmIChzeW1UYWJsZS5sb29rdXBMb2NhbCgieCIpICE9IG51bGwpIHsKICAgICAgICBlcnJv cigic3ltVGFibGUubG9jYWxMb29rdXAoJ3gnKSIsCiAgICAgICAgICAgICAgInN1Y2NlZWRlZCBm b3IgdGFibGUgd2l0aCBvbmUgaXRlbSwgd2hlbiB0aGUgaXRlbSBkb2Vzbid0IGV4aXN0Iik7CiAg ICAgIH0KICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1cEdsb2JhbCgieCIpICE9IG51bGwpIHsKICAg ICAgICBlcnJvcigic3ltVGFibGUubG9jYWxHbG9iYWwoJ3gnKSIsCiAgICAgICAgICAgICAgInN1 Y2NlZWRlZCBmb3IgdGFibGUgd2l0aCBvbmUgaXRlbSwgd2hlbiB0aGUgaXRlbSBkb2Vzbid0IGV4 aXN0Iik7CiAgICAgIH0KCiAgICAgIC8vIFRlc3RpbmcgbG9jYWwvZ2xvYmFsIGxvb2t1cCB3aXRo IG11bHRpcGxlIG1hcHMKICAgICAgc3ltVGFibGUuYWRkU2NvcGUoKTsKICAgICAgc3ltVGFibGUu YWRkRGVjbCgienl4IiwgaW50U3ltKTsKICAgICAgc3ltVGFibGUuYWRkU2NvcGUoKTsKICAgICAg U3ltIGRvdWJsZVN5bSA9IG5ldyBTeW0oImRvdWJsZSIpOwogICAgICBzeW1UYWJsZS5hZGREZWNs KCJhYmMiLCBkb3VibGVTeW0pOwoKICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1cExvY2FsKCJ4eXoi KSAhPSBudWxsKSB7CiAgICAgICAgZXJyb3IoInN5bVRhYmxlLmxvb2t1cExvY2FsKCd4eXonKSIs CiAgICAgICAgICAgICAgIm51bGwgbm90IHJldHVybmVkIGZvciB2YWx1ZSBsb29rdXAgb2YgJ3h5 eicgaW4gdGhpcmQgbWFwIik7CiAgICAgIH0KICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1cEdsb2Jh bCgieHl6IikgIT0gaW50U3ltKSB7CiAgICAgICAgZXJyb3IoCiAgICAgICAgICAgICJzeW1UYWJs ZS5sb29rdXBHbG9iYWwoJ3h5eicpIiwKICAgICAgICAgICAgImluY29ycmVjdCB2YWx1ZSByZXR1 cm5lZCBmb3IgdmFsdWUgbG9va3VwIG9mICd4eXonIGluIHRoaXJkIG1hcCIpOwogICAgICB9CiAg ICAgIGlmIChzeW1UYWJsZS5sb29rdXBMb2NhbCgienl4IikgIT0gbnVsbCkgewogICAgICAgIGVy cm9yKCJzeW1UYWJsZS5sb29rdXBMb2NhbCgnenl4JykiLAogICAgICAgICAgICAgICJudWxsIG5v dCByZXR1cm5lZCBmb3IgdmFsdWUgbG9va3VwIG9mICd6eXgnIGluIHNlY29uZCBtYXAiKTsKICAg ICAgfQogICAgICBpZiAoc3ltVGFibGUubG9va3VwR2xvYmFsKCJ6eXgiKSAhPSBpbnRTeW0pIHsK ICAgICAgICBlcnJvcigKICAgICAgICAgICAgInN5bVRhYmxlLmxvb2t1cEdsb2JhbCgnenl4Jyki LAogICAgICAgICAgICAiaW5jb3JyZWN0IHZhbHVlIHJldHVybmVkIGZvciB2YWx1ZSBsb29rdXAg b2YgJ3p5eCcgaW4gc2Vjb25kIG1hcCIpOwogICAgICB9CiAgICAgIGlmIChzeW1UYWJsZS5sb29r dXBMb2NhbCgiYWJjIikgIT0gZG91YmxlU3ltKSB7CiAgICAgICAgZXJyb3IoInN5bVRhYmxlLmxv b2t1cExvY2FsKCdhYmMnKSIsCiAgICAgICAgICAgICAgIm51bGwgbm90IHJldHVybmVkIGZvciB2 YWx1ZSBsb29rdXAgb2YgJ2FiYycgaW4gbG9jYWwgbWFwIik7CiAgICAgIH0KICAgICAgaWYgKHN5 bVRhYmxlLmxvb2t1cEdsb2JhbCgiYWJjIikgIT0gZG91YmxlU3ltKSB7CiAgICAgICAgZXJyb3Io CiAgICAgICAgICAgICJzeW1UYWJsZS5sb29rdXBHbG9iYWwoJ2FiYycpIiwKICAgICAgICAgICAg ImluY29ycmVjdCB2YWx1ZSByZXR1cm5lZCBmb3IgdmFsdWUgbG9va3VwIG9mICdhYmMnIGluIGxv Y2FsIG1hcCIpOwogICAgICB9CgogICAgICAvLyB0ZXN0aW5nIGxvY2FsL2dsb2JhbCBhZnRlciBy ZW1vdmluZyBhIG1hcAogICAgICBzeW1UYWJsZS5yZW1vdmVTY29wZSgpOwogICAgICBpZiAoc3lt VGFibGUubG9va3VwTG9jYWwoImFiYyIpICE9IG51bGwpIHsKICAgICAgICBlcnJvcigKICAgICAg ICAgICAgInN5bVRhYmxlLmxvb2t1cExvY2FsKCdhYmMnKSIsCiAgICAgICAgICAgICJudWxsIG5v dCByZXR1cm5lZCBmb3IgJ2FiYycgbG9va3VwLCBhZnRlciBiZWluZyByZW1vdmVkIGZyb20gdGFi bGUiKTsKICAgICAgfQogICAgICBpZiAoc3ltVGFibGUubG9va3VwR2xvYmFsKCJhYmMiKSAhPSBu dWxsKSB7CiAgICAgICAgZXJyb3IoCiAgICAgICAgICAgICJzeW1UYWJsZS5sb29rdXBHbG9iYWwo J2FiYycpIiwKICAgICAgICAgICAgIm51bGwgbm90IHJldHVybmVkIGZvciAnYWJjJyBsb29rdXAs IGFmdGVyIGJlaW5nIHJlbW92ZWQgZnJvbSB0YWJsZSIpOwogICAgICB9CgogICAgICAvLyBBZGRp bmcgaW4gbXVsdGlwbGUgaXRlbXMsIGxvb2tpbmcgdGhlbSB1cCBsb2NhbHkvZ2xvYmFseSBhZnRl ciBhZGRpbmcKICAgICAgLy8gYW5kIGFnYWluIGFmdGVyIGFsbCBhcmUgYWRkZWQKICAgICAgc3lt VGFibGUgPSBuZXcgU3ltVGFibGUoKTsKICAgICAgbmFtZSA9ICJ4IjsKICAgICAgc3ltID0gbmV3 IFN5bSgiZmxvYXQiKTsKCiAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7CiAgICAg ICAgdHJ5IHsKICAgICAgICAgIHN5bVRhYmxlLmFkZERlY2wobmFtZSwgc3ltKTsKICAgICAgICB9 IGNhdGNoIChEdXBsaWNhdGVTeW1FeGNlcHRpb24gZSkgewogICAgICAgICAgZXJyb3IoCiAgICAg ICAgICAgICAgInN5bVRhYmxlLmFkZERlY2wiLAogICAgICAgICAgICAgICJEdXBsaWNhdGVTeW1F eGNlcHRpb24gZm9yIHRhYmxlIHdpdGggb25lIEhhc2hNYXAsIGJ1dCBtdWx0aXBsZSBlbnRyaWVz Iik7CiAgICAgICAgfSBjYXRjaCAoRW1wdHlTeW1UYWJsZUV4Y2VwdGlvbiBlKSB7CiAgICAgICAg ICBlcnJvcigKICAgICAgICAgICAgICAic3ltVGFibGUuYWRkRGVjbCIsCiAgICAgICAgICAgICAg IkVtcHR5U3ltVGFibGVFeGNlcHRpb24gZm9yIHRhYmxlIHdpdGggb25lIEhhc2hNYXAsIGJ1dCBt dWx0aXBsZSBlbnRyaWVzIik7CiAgICAgICAgfQogICAgICAgIGlmIChzeW1UYWJsZS5sb29rdXBM b2NhbChuYW1lKSA9PSBudWxsKSB7CiAgICAgICAgICBlcnJvcigic3ltVGFibGUubG9jYWxMb29r dXAiLAogICAgICAgICAgICAgICAgImZhaWx1cmUgZm9yIHRhYmxlIHdpdGggb25lIEhhc2hNYXAs IGJ1dCBtdWx0aXBsZSBlbnRyaWVzIik7CiAgICAgICAgfSBlbHNlIGlmIChzeW1UYWJsZS5sb29r dXBMb2NhbChuYW1lKSAhPSBzeW0pIHsKICAgICAgICAgIGVycm9yKAogICAgICAgICAgICAgICJz eW1UYWJsZS5sb2NhbExvb2t1cCIsCiAgICAgICAgICAgICAgIndyb25nIHZhbHVlIHJldHVybmVk IGZvciB0YWJsZSB3aXRoIG9uZSBIYXNoTWFwLCBidXQgbXVsdGlwbGUgZW50cmllcyIpOwogICAg ICAgIH0KICAgICAgICBpZiAoc3ltVGFibGUubG9va3VwR2xvYmFsKG5hbWUpID09IG51bGwpIHsK ICAgICAgICAgIGVycm9yKCJzeW1UYWJsZS5sb2NhbEdsb2JhbCIsCiAgICAgICAgICAgICAgICAi ZmFpbHVyZSBmb3IgdGFibGUgd2l0aCBvbmUgSGFzaE1hcCwgYnV0IG11bHRpcGxlIGVudHJpZXMi KTsKICAgICAgICB9IGVsc2UgaWYgKHN5bVRhYmxlLmxvb2t1cEdsb2JhbChuYW1lKSAhPSBzeW0p IHsKICAgICAgICAgIGVycm9yKAogICAgICAgICAgICAgICJzeW1UYWJsZS5sb2NhbEdsb2JhbCIs CiAgICAgICAgICAgICAgIndyb25nIHZhbHVlIHJldHVybmVkIGZvciB0YWJsZSB3aXRoIG9uZSBI YXNoTWFwLCBidXQgbXVsdGlwbGUgZW50cmllcyIpOwogICAgICAgIH0KICAgICAgICBuYW1lICs9 ICJ4IjsKICAgICAgfQoKICAgICAgLy8gTG9va3VwIGZvciBpdGVtcyB0aGF0IGhhdmUgYmVlbiBh ZGRlZCB0byB0aGUgdGFibGUKICAgICAgbmFtZSA9ICJ4IjsKICAgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCA1OyBpKyspIHsKICAgICAgICBpZiAoc3ltVGFibGUubG9va3VwTG9jYWwobmFtZSkgPT0g bnVsbCkgewogICAgICAgICAgZXJyb3IoInN5bVRhYmxlLmxvY2FsTG9va3VwIiwKICAgICAgICAg ICAgICAgICJmYWlsdXJlIGZvciB0YWJsZSB3aXRoIG9uZSBIYXNoTWFwLCBidXQgbXVsdGlwbGUg ZW50cmllcyIKICAgICAgICAgICAgICAgICAgICArICJsb29rdXAgYWZ0ZXIgYWRkaW5nIGFsbCB2 YWx1ZXMiKTsKICAgICAgICB9CiAgICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1cEdsb2JhbChuYW1l KSA9PSBudWxsKSB7CiAgICAgICAgICBlcnJvcigic3ltVGFibGUubG9jYWxHbG9iYWwiLAogICAg ICAgICAgICAgICAgImZhaWx1cmUgZm9yIHRhYmxlIHdpdGggb25lIEhhc2hNYXAsIGJ1dCBtdWx0 aXBsZSBlbnRyaWVzIgogICAgICAgICAgICAgICAgICAgICsgImxvb2t1cCBhZnRlciBhZGRpbmcg YWxsIHZhbHVlcyIpOwogICAgICAgIH0KICAgICAgICBuYW1lICs9ICJ4IjsKICAgICAgfQoKICAg ICAgLyoKICAgICAgQWRkaW5nIGEgc2Vjb25kIEhhc2hNYXAgYW5kIHRha2luZyB0aGUgbmFtZXMg ZnJvbSB0aGUgZmlyc3QgSGFzaE1hcCBhbmQKICAgICAgcHV0dGluZyB0aGVtIGluIHRoZSBzZWNv bmQgb25lIGFuZCBtYWtpbmcgc3VyZSB0aGV5IGNhbiBiZSBhZGRlZAogICAgICB3aXRob3V0IGVy cm9ycyBiZWluZyB0cmlnZ2VyZWQuCiAgICAgICAqLwogICAgICBzeW1UYWJsZS5hZGRTY29wZSgp OwogICAgICBuYW1lID0gIngiOwogICAgICBpZiAoc3ltVGFibGUubG9va3VwR2xvYmFsKG5hbWUp ICE9IHN5bSkgewogICAgICAgIGVycm9yKAogICAgICAgICAgICAic3ltVGFibGUubG9jYWxHbG9i YWwiLAogICAgICAgICAgICAiYmFkIHZhbHVlIHJldHVybmVkIGZvciBuYW1lIGluIG5vbiBsb2Nh bCBIYXNoTWFwIG9mIHRhYmxlIHdpdGggbXVsdGlwbGUgSGFzaE1hcCIpOwogICAgICB9CiAgICAg IGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7CiAgICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1 cExvY2FsKG5hbWUpICE9IG51bGwpIHsKICAgICAgICAgIGVycm9yKAogICAgICAgICAgICAgICJz eW1UYWJsZS5sb2NhbExvb2t1cCIsCiAgICAgICAgICAgICAgIm51bGwgbm90IHJldHVybmVkLCB3 aGVuIGV4cGVjdGVkLCBmb3IgbmFtZSBpbiBsb2NhbCBIYXNoTWFwIG9mIHRhYmxlIHdpdGggbXVs dGlwbGUgSGFzaE1hcCIpOwogICAgICAgIH0KICAgICAgICBpZiAoc3ltVGFibGUubG9va3VwR2xv YmFsKG5hbWUpICE9IHN5bSkgewogICAgICAgICAgZXJyb3IoCiAgICAgICAgICAgICAgInN5bVRh YmxlLmxvY2FsR2xvYmFsIiwKICAgICAgICAgICAgICAibnVsbCByZXR1cm5lZCwgd2hlbiB1bmV4 cGVjdGVkLCBmb3IgbmFtZSBpbiBub24gbG9jYWwgSGFzaE1hcCBvZiB0YWJsZSB3aXRoIG11bHRp cGxlIEhhc2hNYXAiKTsKICAgICAgICB9CiAgICAgICAgbmFtZSArPSAieCI7CiAgICAgIH0KCiAg ICAgIC8vIEFkZGluZyBuYW1lcyBpbnRvIHRoZSBzZWNvbmQgSGFzaE1hcCB0aGF0IGFyZW4ndCBp biB0aGUgZmlyc3Qgb25lIGFuZAogICAgICAvLyBtYWtpbmcgc3VyZSB0aGF0IHRoZXkgY2FuIGJl IGZvdW5kCiAgICAgIG5hbWUgPSAieiI7CiAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsr KSB7CiAgICAgICAgc3ltID0gbmV3IFN5bSgiZmxvYXQiKTsKICAgICAgICB0cnkgewogICAgICAg ICAgc3ltVGFibGUuYWRkRGVjbChuYW1lLCBzeW0pOwogICAgICAgICAgaWYgKHN5bVRhYmxlLmxv b2t1cExvY2FsKG5hbWUpID09IG51bGwpIHsKICAgICAgICAgICAgZXJyb3IoInN5bVRhYmxlLmxv Y2FsTG9va3VwIiwKICAgICAgICAgICAgICAgICAgImZhaWx1cmUgZm9yIGFkZGluZyBuZXcgbmFt ZSBpbiBzZWNvbmQgSGFzaE1hcCIpOwogICAgICAgICAgfSBlbHNlIGlmIChzeW1UYWJsZS5sb29r dXBMb2NhbChuYW1lKSAhPSBzeW0pIHsKICAgICAgICAgICAgZXJyb3IoCiAgICAgICAgICAgICAg ICAic3ltVGFibGUubG9jYWxMb29rdXAiLAogICAgICAgICAgICAgICAgImluY29ycmVjdCB2YWx1 ZSByZXR1cm5lZCBmb3IgYWRkaW5nIG5hbWUgdG8gdGFibGUgd2l0aCBtdWx0aXBsZSBIYXNoTWFw Iik7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoc3ltVGFibGUubG9va3VwR2xvYmFsKG5hbWUp ID09IG51bGwpIHsKICAgICAgICAgICAgZXJyb3IoInN5bVRhYmxlLmxvY2FsR2xvYmFsIiwKICAg ICAgICAgICAgICAgICAgImZhaWx1cmUgZm9yIGFkZGluZyBuZXcgbmFtZSBpbiBzZWNvbmQgSGFz aE1hcCIpOwogICAgICAgICAgfSBlbHNlIGlmIChzeW1UYWJsZS5sb29rdXBHbG9iYWwobmFtZSkg IT0gc3ltKSB7CiAgICAgICAgICAgIGVycm9yKAogICAgICAgICAgICAgICAgInN5bVRhYmxlLmxv Y2FsR2xvYmFsIiwKICAgICAgICAgICAgICAgICJpbmNvcnJlY3QgdmFsdWUgcmV0dXJuZWQgZm9y IGFkZGluZyBuYW1lIHRvIHRhYmxlIHdpdGggbXVsdGlwbGUgSGFzaE1hcCIpOwogICAgICAgICAg fQoKICAgICAgICB9IGNhdGNoIChEdXBsaWNhdGVTeW1FeGNlcHRpb24gZSkgewogICAgICAgICAg ZXJyb3IoCiAgICAgICAgICAgICAgInN5bVRhYmxlLmFkZERlY2wiLAogICAgICAgICAgICAgICJE dXBsaWNhdGVTeW1FeGNlcHRpb24gZm9yIHRhYmxlIHdpdGggbXVsdGlwbGUgSGFzaE1hcCwgbmV3 IG5hbWUiKTsKICAgICAgICB9IGNhdGNoIChFbXB0eVN5bVRhYmxlRXhjZXB0aW9uIGUpIHsKICAg ICAgICAgIGVycm9yKAogICAgICAgICAgICAgICJzeW1UYWJsZS5hZGREZWNsIiwKICAgICAgICAg ICAgICAiRW1wdHlTeW1UYWJsZUV4Y2VwdGlvbiBmb3IgdGFibGUgd2l0aCBtdWx0aXBsZSBIYXNo TWFwLCBuZXcgbmFtZSIpOwogICAgICAgIH0KICAgICAgICBuYW1lICs9ICJ6IjsKICAgICAgfQog ICAgICAvLyBTeW10YWJsZSB3aXRoIDEwIEhhc2hNYXAgYW5kIDEwIG5hbWVzIGluIGVhY2ggSGFz aE1hcAogICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspIHsKICAgICAgICBJbnRlZ2Vy IHRhYmxlSW50ID0gSW50ZWdlci52YWx1ZU9mKGkpOwogICAgICAgIHN5bVRhYmxlLmFkZFNjb3Bl KCk7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAxMDsgaisrKSB7CiAgICAgICAgICBJbnRl Z2VyIHN5bUludCA9IEludGVnZXIudmFsdWVPZihqKTsKICAgICAgICAgIG5hbWUgPSB0YWJsZUlu dC50b1N0cmluZygpICsgc3ltSW50LnRvU3RyaW5nKCk7CiAgICAgICAgICBzeW0gPSBuZXcgU3lt KCJpbnQiKTsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHN5bVRhYmxlLmFkZERlY2wobmFt ZSwgc3ltKTsKICAgICAgICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1cExvY2FsKG5hbWUpICE9IHN5 bSkgewogICAgICAgICAgICAgIGVycm9yKCJzeW1UYWJsZS5sb2NhbExvb2t1cCIsCiAgICAgICAg ICAgICAgICAgICAgImZhaWx1cmUgZm9yIHRhYmxlIHdpdGggbWFueSBIYXNoTWFwICgxMCkiKTsK ICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc3ltVGFibGUubG9va3VwR2xvYmFsKG5hbWUp ICE9IHN5bSkgewogICAgICAgICAgICAgIGVycm9yKCJzeW1UYWJsZS5sb2NhbEdsb2JhbCIsCiAg ICAgICAgICAgICAgICAgICAgImZhaWx1cmUgZm9yIHRhYmxlIHdpdGggbWFueSBIYXNoTWFwICgx MCkiKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoRHVwbGljYXRlU3ltRXhjZXB0 aW9uIGUpIHsKICAgICAgICAgICAgZXJyb3IoInN5bVRhYmxlLmFkZERlY2wiLAogICAgICAgICAg ICAgICAgICAiRHVwbGljYXRlU3ltRXhjZXB0aW9uIGZvciB0YWJsZSB3aXRoIG1hbnkgSGFzaE1h cCAoMTApIik7CiAgICAgICAgICB9IGNhdGNoIChFbXB0eVN5bVRhYmxlRXhjZXB0aW9uIGUpIHsK ICAgICAgICAgICAgZXJyb3IoInN5bVRhYmxlLmFkZERlY2wiLAogICAgICAgICAgICAgICAgICAi RW1wdHlTeW1UYWJsZUV4Y2VwdGlvbiBmb3IgdGFibGUgd2l0aCBtYW55IEhhc2hNYXAgKDEwKSIp OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gVGVzdGluZyBnbG9iYWwg bG9va3VwIGZvciBhIG5hbWUgZnJvbSBlYWNoIEhhc2hNYXAKICAgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCAxMDsgaSsrKSB7CiAgICAgICAgSW50ZWdlciB0YWJsZUludCA9IEludGVnZXIudmFsdWVP ZihpKTsKICAgICAgICBuYW1lID0gdGFibGVJbnQudG9TdHJpbmcoKSArICIxIjsKICAgICAgICBp ZiAoc3ltVGFibGUubG9va3VwR2xvYmFsKG5hbWUpID09IG51bGwpIHsKICAgICAgICAgIGVycm9y KCJzeW1UYWJsZS5nbG9iYWxMb29rdXAiLAogICAgICAgICAgICAgICAgImZhaWx1cmUgZm9yIHRh YmxlIHdpdGggbWFueSBIYXNoTWFwICgxMCwgYWZ0ZXIgYWxsIGFkZGVkKSIpOwogICAgICAgIH0K ICAgICAgfQogICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKICAgICAgZXJyb3IoIlN5bVRhYmxl IiwgInVuZXhwZWN0ZWQgZXhjZXB0aW9uICIgKyBlICsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICIgdXNpbmcgYWRkRGVjbC9yZW1vdmVTY29wZSB3aGVuIHRlc3RpbmcgbG9va3VwIik7CiAg ICB9CiAgfQoKICBwcml2YXRlIHN0YXRpYyB2b2lkIHRlc3RQcmludCgpIHsKICAgIC8qCiAgICBU ZXN0cyB0aGUgcHJpbnQgZnVuY3Rpb24gYnkgY2FsbGluZyBpdCB3aXRoIG5vIEhhc2hNYXAsIGEg c2luZ2xlIEhhc2hNYXAsCiAgICBhbmQgbXVsdGlwbGUgSGFzaE1hcC4KICAgICAqLwogICAgU3lt VGFibGUgc3ltVGFibGUgPSBuZXcgU3ltVGFibGUoKTsKICAgIHRyeSB7CiAgICAgIHN5bVRhYmxl LnByaW50KCk7CiAgICAgIHRyeSB7CiAgICAgICAgc3ltVGFibGUuYWRkRGVjbCgieCIsIG5ldyBT eW0oImludCIpKTsKICAgICAgICBzeW1UYWJsZS5hZGREZWNsKCJ5IiwgbmV3IFN5bSgiYm9vbCIp KTsKICAgICAgICBzeW1UYWJsZS5hZGRTY29wZSgpOwogICAgICAgIHN5bVRhYmxlLmFkZERlY2wo InoiLCBuZXcgU3ltKCJ2b2lkIikpOwogICAgICAgIHN5bVRhYmxlLmFkZFNjb3BlKCk7CiAgICAg ICAgc3ltVGFibGUuYWRkRGVjbCgicSIsIG5ldyBTeW0oImRvdWJsZSIpKTsKICAgICAgfSBjYXRj aCAoRXhjZXB0aW9uIGUpIHsKICAgICAgICBlcnJvcigiU3ltVGFibGUuYWRkRGVjbCwgdW5leHBl Y3RlZCBleGNlcHRpb246ICIsIGUudG9TdHJpbmcoKSk7CiAgICAgIH0KICAgICAgc3ltVGFibGUu cHJpbnQoKTsKCiAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgaSsrKSB7CiAgICAgICAgdHJ5 IHsKICAgICAgICAgIHN5bVRhYmxlLnJlbW92ZVNjb3BlKCk7CiAgICAgICAgfSBjYXRjaCAoRXhj ZXB0aW9uIGUpIHsKICAgICAgICAgIGVycm9yKCJTeW1UYWJsZS5yZW1vdmVTY29wZSwgdW5leHBl Y3RlZCBleGNlcHRpb246ICIsIGUudG9TdHJpbmcoKSk7CiAgICAgICAgfQogICAgICAgIHN5bVRh YmxlLnByaW50KCk7CiAgICAgIH0KICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAgICAgIGVy cm9yKCJTeW1UYWJsZS5wcmludCwgdW5leHBlY3RlZCBleGNlcHRpb246ICIsIGUudG9TdHJpbmco KSk7CiAgICB9CiAgfQp9Cg== --b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys Content-Type: text/org; name=init.org Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=init.org IytTVEFSVFVQOiBvdmVydmlldyAKIytQUk9QRVJUWTogaGVhZGVyLWFyZ3MgOmNvbW1lbnRzIHll cyA6cmVzdWx0cyBzaWxlbnQKCiogUmVwb3MgKEVscGEgYW5kIE1lbHBhKQojK0JFR0lOX1NSQyBl bGlzcAoocmVxdWlyZSAncGFja2FnZSkKKGFkZC10by1saXN0ICdwYWNrYWdlLWFyY2hpdmVzCgkg ICAgICcoIm1lbHBhIiAuICJodHRwczovL21lbHBhLm9yZy9wYWNrYWdlcy8iKSkKKGFkZC10by1s aXN0ICdwYWNrYWdlLWFyY2hpdmVzCgkgICAgICcoImdudSIgLiAiaHR0cHM6Ly9lbHBhLmdudS5v cmcvcGFja2FnZXMvIikpCihwYWNrYWdlLWluaXRpYWxpemUpCiMrRU5EX1NSQwoKKiBEaXJ2aXNo CiMrQkVHSU5fU1JDIGVsaXNwCih1c2UtcGFja2FnZSBkaXJ2aXNoCiAgOmluaXQKICAoZGlydmlz aC1vdmVycmlkZS1kaXJlZC1tb2RlKQogIDpjdXN0b20KICA7OyBHbyBiYWNrIGhvbWU/IEp1c3Qg cHJlc3MgYGJoJwogIChkaXJ2aXNoLWJvb2ttYXJrLWVudHJpZXMKICAgJygoImgiICJ+LyIgICAg ICAgICAgICAgICAgICAgICAgICAgICJIb21lIikKICAgICAoImQiICJ+L0Rvd25sb2Fkcy8iICAg ICAgICAgICAgICAgICJEb3dubG9hZHMiKQogICAgICgibSIgIi9tbnQvIiAgICAgICAgICAgICAg ICAgICAgICAgIkRyaXZlcyIpCiAgICAgKCJ0IiAifi8ubG9jYWwvc2hhcmUvVHJhc2gvZmlsZXMv IiAiVHJhc2hDYW4iKSkpCiAgOzsgKGRpcnZpc2gtaGVhZGVyLWxpbmUtZm9ybWF0ICcoOmxlZnQg KHBhdGgpIDpyaWdodCAoZnJlZS1zcGFjZSkpKQogIChkaXJ2aXNoLW1vZGUtbGluZS1mb3JtYXQg OyBpdCdzIG9rIHRvIHBsYWNlIHN0cmluZyBpbnNpZGUKICAgJyg6bGVmdCAoc29ydCBmaWxlLXRp bWUgIiAiIGZpbGUtc2l6ZSBzeW1saW5rKSA6cmlnaHQgKG9taXQgeWFuayBpbmRleCkpKQogIDs7 IERvbid0IHdvcnJ5LCBEaXJ2aXNoIGlzIHN0aWxsIHBlcmZvcm1hbnQgZXZlbiB5b3UgZW5hYmxl IGFsbCB0aGVzZSBhdHRyaWJ1dGVzCiAgKGRpcnZpc2gtYXR0cmlidXRlcyAnKGFsbC10aGUtaWNv bnMgZmlsZS1zaXplIGNvbGxhcHNlIHN1YnRyZWUtc3RhdGUgdmMtc3RhdGUgZ2l0LW1zZykpCiAg OzsgTWF5YmUgdGhlIGljb25zIGFyZSB0b28gYmlnIHRvIHlvdXIgZXllcwogIDs7IChkaXJ2aXNo LWFsbC10aGUtaWNvbnMtaGVpZ2h0IDAuOCkKICA7OyBJbiBjYXNlIHlvdSB3YW50IHRoZSBkZXRh aWxzIGF0IHN0YXJ0dXAgbGlrZSBgZGlyZWQnCiAgOzsgKGRpcnZpc2gtaGlkZS1kZXRhaWxzIG5p bCkKICA6Y29uZmlnCiAgKGRpcnZpc2gtcGVlay1tb2RlKQogIDs7IERpcmVkIG9wdGlvbnMgYXJl IHJlc3BlY3RlZCBleGNlcHQgYSBmZXcgZXhjZXB0aW9ucywgc2VlICpJbiByZWxhdGlvbiB0byBE aXJlZCogc2VjdGlvbiBhYm92ZQogIChzZXRxIGRpcmVkLWR3aW0tdGFyZ2V0IHQpCiAgKHNldHEg ZGVsZXRlLWJ5LW1vdmluZy10by10cmFzaCB0KQogIDs7IEVuYWJsZSBtb3VzZSBkcmFnLWFuZC1k cm9wIGZpbGVzIHRvIG90aGVyIGFwcGxpY2F0aW9ucwogIChzZXRxIGRpcmVkLW1vdXNlLWRyYWct ZmlsZXMgdCkgICAgICAgICAgICAgICAgICAgOyBhZGRlZCBpbiBFbWFjcyAyOQogIChzZXRxIG1v dXNlLWRyYWctYW5kLWRyb3AtcmVnaW9uLWNyb3NzLXByb2dyYW0gdCkgOyBhZGRlZCBpbiBFbWFj cyAyOQogIDs7IE1ha2Ugc3VyZSB0byB1c2UgdGhlIGxvbmcgbmFtZSBvZiBmbGFncyB3aGVuIGV4 aXN0cwogIDs7IGVnLiB1c2UgIi0tYWxtb3N0LWFsbCIgaW5zdGVhZCBvZiAiLUEiCiAgOzsgT3Ro ZXJ3aXNlIHNvbWUgY29tbWFuZHMgd29uJ3Qgd29yayBwcm9wZXJseQogIChzZXRxIGRpcmVkLWxp c3Rpbmctc3dpdGNoZXMKICAgICAgICAiLWwgLS1hbG1vc3QtYWxsIC0taHVtYW4tcmVhZGFibGUg LS10aW1lLXN0eWxlPWxvbmctaXNvIC0tZ3JvdXAtZGlyZWN0b3JpZXMtZmlyc3QgLS1uby1ncm91 cCIpCiAgOmJpbmQKICA7OyBCaW5kIGBkaXJ2aXNofGRpcnZpc2gtc2lkZXxkaXJ2aXNoLWR3aW0n IGFzIHlvdSBzZWUgZml0CiAgKCgiQy1jIGYiIC4gZGlydmlzaC1mZCkKICAgOm1hcCBkaXJlZC1t b2RlLW1hcCA7IERpcnZpc2ggcmVzcGVjdHMgYWxsIHRoZSBrZXliaW5kaW5ncyBpbiB0aGlzIG1h cAogICAoIjxwcmlvcj4iIC4gZGlyZWQtdXAtZGlyZWN0b3J5KQogICA7OyAoImoiIC4gZGlyZWQt bmV4dC1saW5lKQogICA7OyAoImsiIC4gZGlyZWQtcHJldmlvdXMtbGluZSkKICAgOzsgKCJsIiAu IGRpcmVkLWZpbmQtZmlsZSkKICAgOzsgKCJpIiAuIHdkaXJlZC1jaGFuZ2UtdG8td2RpcmVkLW1v ZGUpCiAgIDs7ICgiLiIgLiBkaXJlZC1vbWl0LW1vZGUpCiAgICgiYiIgICAuIGRpcnZpc2gtYm9v a21hcmstanVtcCkKICAgKCJmIiAgIC4gZGlydmlzaC1maWxlLWluZm8tbWVudSkKICAgKCJ5IiAg IC4gZGlydmlzaC15YW5rLW1lbnUpCiAgICgiTiIgICAuIGRpcnZpc2gtbmFycm93KQogICAoIl4i ICAgLiBkaXJ2aXNoLWhpc3RvcnktbGFzdCkKICAgKCJzIiAgIC4gZGlydmlzaC1xdWlja3NvcnQp IDsgcmVtYXBwZWQgYGRpcmVkLXNvcnQtdG9nZ2xlLW9yLWVkaXQnCiAgICgiPyIgICAuIGRpcnZp c2gtZGlzcGF0Y2gpICA7IHJlbWFwcGVkIGBkaXJlZC1zdW1tYXJ5JwogICAoIlRBQiIgLiBkaXJ2 aXNoLXN1YnRyZWUtdG9nZ2xlKQogICAoIlNQQyIgLiBkaXJ2aXNoLWhpc3RvcnktanVtcCkKICAg KCJNLW4iIC4gZGlydmlzaC1oaXN0b3J5LWdvLWZvcndhcmQpCiAgICgiTS1wIiAuIGRpcnZpc2gt aGlzdG9yeS1nby1iYWNrd2FyZCkKICAgKCJNLWwiIC4gZGlydmlzaC1scy1zd2l0Y2hlcy1tZW51 KQogICAoIk0tbSIgLiBkaXJ2aXNoLW1hcmstbWVudSkKICAgKCJNLWYiIC4gZGlydmlzaC10b2dn bGUtZnVsbHNjcmVlbikKICAgKCJNLXMiIC4gZGlydmlzaC1zZXR1cC1tZW51KQogICAoIk0tZSIg LiBkaXJ2aXNoLWVtZXJnZS1tZW51KQogICAoIk0taiIgLiBkaXJ2aXNoLWZkLWp1bXApKSkKIytF TkRfU1JDCgoqIFlhc25pcHBldApBbHNvIG1ha2Ugc3VyZSB0byBsb29rdXAgeWFzbmlwcGV0LXNu aXBwZXRzIHdoaWNoIGhhcyBhIGdyZWF0IGNvbGxlY3Rpb24gb2Ygc25pcHBldHMKaHR0cHM6Ly9n aXRodWIuY29tL0FuZHJlYUNyb3R0aS95YXNuaXBwZXQtc25pcHBldHMKCml2eS15YXNuaXBwZXQg d2lsbCBzaG93IHlvdSB0aGUgYXZhaWxhYmxlIHNuaXBwZXRzIGZvciB0aGUgY3VycmVudCBtYWpv ciBtb2RlIHlvdSBhcmUgaW4KYW5kIHdpbGwgaW5zZXJ0IHRoZW0uCiMrQkVHSU5fU1JDIGVsaXNw Cih5YXMtZ2xvYmFsLW1vZGUgMSkKKHNldHEgeWFzLWluZGVudC1saW5lIG5pbCkKKGdsb2JhbC1z ZXQta2V5IChrYmQgIkMtYyBpIikgJ2l2eS15YXNuaXBwZXQpCiMrRU5EX1NSQwoKKiBPcmcgUm9h bQojK0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2Ugb3JnLXJvYW0KCSAgICAgOmVuc3VyZSB0 CgkgICAgIDpjdXN0b20KCSAgICAgKG9yZy1yb2FtLWRpcmVjdG9yeSAoZmlsZS10cnVlbmFtZSAi fi9Eb2N1bWVudHMvcm9hbS1ub3RlcyIpKQoJICAgICA6YmluZCAoKCJDLWMgbiBsIiAuIG9yZy1y b2FtLWJ1ZmZlci10b2dnbGUpCgkJICAgICgiQy1jIG4gZiIgLiBvcmctcm9hbS1ub2RlLWZpbmQp CgkJICAgICgiQy1jIG4gZyIgLiBvcmctcm9hbS1ncmFwaCkKCQkgICAgKCJDLWMgbiBpIiAuIG9y Zy1yb2FtLW5vZGUtaW5zZXJ0KQoJCSAgICAoIkMtYyBuIGMiIC4gb3JnLXJvYW0tY2FwdHVyZSkK CQkgICAgOztEYWlseQoJCSAgICAoIkMtYyBuIGoiIC4gb3JnLXJvYW0tZGFpbGllcy1jYXB0dXJl LXRvZGF5KSkKCSAgICAgOmNvbmZpZwoJICAgICAoc2V0cSBvcmctcm9hbS1ub2RlLWRpc3BsYXkt dGVtcGxhdGUgKGNvbmNhdCAiJHt0aXRsZToqfSAiIChwcm9wZXJ0aXplICIke3RhZ3M6MTB9IiAn ZmFjZSAnb3JnLXRhZykpKQoJICAgICAob3JnLXJvYW0tZGItYXV0b3N5bmMtbW9kZSkKCSAgICAg KHJlcXVpcmUgJ29yZy1yb2FtLXByb3RvY29sKSkKIytFTkRfU1JDCgoqIE1pc2NlbGxhbmVvdXMg T3JnIFN0dWZmCiMrQkVHSU5fU1JDIGVsaXNwCihzZXRxIG9yZy1zcmMtcHJlc2VydmUtaW5kZW50 YXRpb24gdCkKCjsgb3JnLWZyYWd0b2cgbWFrZXMgaXQgc28geW91IGNhbiBhdXRvbWF0aWNhbGx5 IHByZXZpZXcgTGFUZVggd2l0aG91dCBoYXZpbmcgdG8gZG8gYW55dGhpbmcKKGFkZC1ob29rICdv cmctbW9kZS1ob29rICdvcmctZnJhZ3RvZy1tb2RlKQo7KHBsaXN0LXB1dCBvcmctZm9ybWF0LWxh dGV4LW9wdGlvbnMgOnNjYWxlIDIpCjsoYWZ0ZXIhIG9yZyAocGxpc3QtcHV0IG9yZy1mb3JtYXQt bGF0ZXgtb3B0aW9ucyA6c2NhbGUgMS41KSkKKGZvbnQtbG9jay1hZGQta2V5d29yZHMgJ29yZy1t b2RlCgkJCScoKCJeICpcXChbLV1cXCkgIgoJCQkgICAoMCAocHJvZzEgKCkgKGNvbXBvc2UtcmVn aW9uIChtYXRjaC1iZWdpbm5pbmcgMSkgKG1hdGNoLWVuZCAxKSAi4oCiIikpKSkpKQoocmVxdWly ZSAnb3JnLXN1cGVyc3RhcikKKGFkZC1ob29rICdvcmctbW9kZS1ob29rIChsYW1iZGEgKCkgKG9y Zy1zdXBlcnN0YXItbW9kZSAxKSkpCjs7aGlkZXMgbWFya3VwIGVtcGhhc2lzIGxpa2UgKmRkKgoo c2V0cSBvcmctaGlkZS1lbXBoYXNpcy1tYXJrZXJzIHQpCjs7IEFnZW5kYQooc2V0cSBvcmctYWdl bmRhLWZpbGVzICJ+L0RvY3VtZW50cy9BZ2VuZGEvYWdlbmRhLm9yZyIpCiMrRU5EX1NSQwoKKiBG bHlzcGVsbAojK0JFR0lOX1NSQyBlbGlzcAooZmx5c3BlbGwtbW9kZSkKKGFkZC1ob29rICd0ZXh0 LW1vZGUtaG9vayAnZmx5c3BlbGwtbW9kZSkKKGFkZC1ob29rICdwcm9nLW1vZGUtaG9vayAnZmx5 c3BlbGwtcHJvZy1tb2RlKQojK0VORF9TUkMKKiBIeXBlcmJvbGUKIytCRUdJTl9TUkMgZWxpc3AK KGh5cGVyYm9sZS1tb2RlIDEpCiMrRU5EX1NSQwoKKiBFbGZlZWQKIytCRUdJTl9TUkMgZWxpc3AK KHNldHEgZWxmZWVkLWZlZWRzCiAgICAgICcoKCJodHRwczovL29vb2hzcG9va3kubGlic3luLmNv bS9yc3MiIEFkYW1Lbm94KQoJKCJodHRwczovL2dvZG90ZW5naW5lLm9yZy9yc3MueG1sIiBHb2Rv dCkKCSgiaHR0cHM6Ly9zdGFja2FidXNlLmNvbS9yc3MvIiBTdGFja0FidXNlKQoJKCJodHRwczov L29wZW5zb3VyY2UuY29tL2ZlZWQiIE9wZW5Tb3VyY2UpCgkoImh0dHBzOi8vZGF2ZXJ1cGVydC5j b20vYXRvbS54bWwiIERhdmVSdXBlcnQpCgkoImh0dHBzOi8vZmVlZC5wb2RiZWFuLmNvbS9tYXRl aXRzYXN1cmV0aGluZy9mZWVkLnhtbCIgV29sZmUpCgkoImh0dHBzOi8vd3d3Lm9tbnljb250ZW50 LmNvbS9kL3BsYXlsaXN0L2U3M2M5OThlLTZlNjAtNDMyZi04NjEwLWFlMjEwMTQwYzViMS8wYzZm Yzk0NC1lYWE1LTQwMjItOGU3Ny1hZTMzMDAzNDZkNzYvNDVhNzM1YjYtZTFiOC00OWY5LWE1OTUt YWUzMzAwMzQ2ZDg0L3BvZGNhc3QucnNzIiBTY3J1YnMpKSkKCihyZXF1aXJlICdlbGZlZWQtb3Jn KQoocmVxdWlyZSAnZWxmZWVkLWdvb2RpZXMpCihlbGZlZWQtZ29vZGllcy9zZXR1cCkKCihnbG9i YWwtc2V0LWtleSAoa2JkICJDLXggdyIpICdlbGZlZWQpCihlbGZlZWQtb3JnKQooc2V0cSBybWgt ZWxmZWVkLW9yZy1maWxlcyAobGlzdCAifi8uZW1hY3MuZC9lbGZlZWQtZGFzaGJvYXJkLm9yZyIp KQoKKHVzZS1wYWNrYWdlIGVsZmVlZC1kYXNoYm9hcmQKICA6ZW5zdXJlIHQKICA6Y29uZmlnCiAg KHNldHEgZWxmZWVkLWRhc2hib2FyZC1maWxlICJ+L2VsZmVlZC1kYXNoYm9hcmQub3JnIikKICA7 OyB1cGRhdGUgZmVlZCBjb3VudHMgb24gZWxmZWVkLXF1aXQKICAoYWR2aWNlLWFkZCAnZWxmZWVk LXNlYXJjaC1xdWl0LXdpbmRvdyA6YWZ0ZXIgIydlbGZlZWQtZGFzaGJvYXJkLXVwZGF0ZS1saW5r cykpCgo7OzsgZyA9IHJlZnJlc2ggdmlldwo7OzsgRyA9IGZldGNoIGZlZWQgdXBkYXRlcwo7Ozsg cyA9IFVwZGF0ZSBzZWFyY2ggZmlsdGVyCjs7OyBjID0gY2xlYXIgc2VhcmNoIGZpbHRlcgojK0VO RF9TUkMKCiogRU1NUwojK0JFR0lOX1NSQyBlbGlzcAo7IGh0dHBzOi8vd3d3LmRyYWtldG8uZGUv c29mdHdhcmUvZW1hY3MtdGlwcHMjZWxmZWVkLWVtbXMKKHVzZS1wYWNrYWdlIGVtbXMKICA6ZW5z dXJlIHQKICA6Y29uZmlnKQooZ2xvYmFsLXNldC1rZXkgKGtiZCAiQy14IHAiKSAnaXZ5LWVtbXMp CihyZXF1aXJlICdlbW1zLXNldHVwKQoocmVxdWlyZSAnZW1tcy1wbGF5ZXItbXBsYXllcikKKGVt bXMtYWxsKQooc2V0cSBlbW1zLXBsYXllci1saXN0ICcoCgkJCSBlbW1zLXBsYXllci1tcGczMjEK CQkJIGVtbXMtcGxheWVyLW9nZzEyMwoJCQkgZW1tcy1wbGF5ZXItbXBsYXllcikpCihkZWZ1biBl bW1zLXBsYXllci1tcGxheWVyLXZvbHVtZShhbW91bnQpCiAgKHByb2Nlc3Mtc2VuZC1zdHJpbmcK ICAgZW1tcy1wbGF5ZXItc2ltcGxlLXByb2Nlc3MtbmFtZQogICAoZm9ybWF0ICJ2b2x1bWUgJWRc biIgYW1vdW50KSkpCihzZXRxIGVtbXMtdm9sdW1lLWNoYW5nZS1mdW5jdGlvbiAnZW1tcy1wbGF5 ZXItbXBsYXllci12b2x1bWUpCihlbW1zLWRlZmF1bHQtcGxheWVycykKOyhlbW1zLWFkZC1kaXJl Y3RvcnktdHJlZSAifi9NdXNpYy8iKQo7KGVtbXMtYWRkLWRpcmVjdG9yeS10cmVlICJ+L0Rvd25s b2Fkcy8iKQojK0VORF9TUkMKCiogTWVvdyAoTW9kYWwgRWRpdGluZykKIytCRUdJTl9TUkMgZWxp c3AKKGRlZnVuIG1lb3ctc2V0dXAgKCkKICAoc2V0cSBtZW93LWNoZWF0c2hlZXQtbGF5b3V0IG1l b3ctY2hlYXRzaGVldC1sYXlvdXQtcXdlcnR5KQogIChtZW93LW1vdGlvbi1vdmVyd3JpdGUtZGVm aW5lLWtleQogICAnKCJrIiAuIG1lb3ctbmV4dCkKICAgJygiaiIgLiBtZW93LXByZXYpCiAgICco Ijxlc2NhcGU+IiAuIGlnbm9yZSkpCiAgKG1lb3ctbGVhZGVyLWRlZmluZS1rZXkKICAgOzsgU1BD IGovayB3aWxsIHJ1biB0aGUgb3JpZ2luYWwgY29tbWFuZCBpbiBNT1RJT04gc3RhdGUuCiAgICco ImoiIC4gIkgtaiIpCiAgICcoImsiIC4gIkgtayIpCiAgIDs7IFVzZSBTUEMgKDAtOSkgZm9yIGRp Z2l0IGFyZ3VtZW50cy4KICAgJygiMSIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAnKCIyIiAu IG1lb3ctZGlnaXQtYXJndW1lbnQpCiAgICcoIjMiIC4gbWVvdy1kaWdpdC1hcmd1bWVudCkKICAg JygiNCIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAnKCI1IiAuIG1lb3ctZGlnaXQtYXJndW1l bnQpCiAgICcoIjYiIC4gbWVvdy1kaWdpdC1hcmd1bWVudCkKICAgJygiNyIgLiBtZW93LWRpZ2l0 LWFyZ3VtZW50KQogICAnKCI4IiAuIG1lb3ctZGlnaXQtYXJndW1lbnQpCiAgICcoIjkiIC4gbWVv dy1kaWdpdC1hcmd1bWVudCkKICAgJygiMCIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAnKCIv IiAuIG1lb3cta2V5cGFkLWRlc2NyaWJlLWtleSkKICAgJygiPyIgLiBtZW93LWNoZWF0c2hlZXQp KQogIChtZW93LW5vcm1hbC1kZWZpbmUta2V5CiAgICcoIjAiIC4gbWVvdy1leHBhbmQtMCkKICAg JygiOSIgLiBtZW93LWV4cGFuZC05KQogICAnKCI4IiAuIG1lb3ctZXhwYW5kLTgpCiAgICcoIjci IC4gbWVvdy1leHBhbmQtNykKICAgJygiNiIgLiBtZW93LWV4cGFuZC02KQogICAnKCI1IiAuIG1l b3ctZXhwYW5kLTUpCiAgICcoIjQiIC4gbWVvdy1leHBhbmQtNCkKICAgJygiMyIgLiBtZW93LWV4 cGFuZC0zKQogICAnKCIyIiAuIG1lb3ctZXhwYW5kLTIpCiAgICcoIjEiIC4gbWVvdy1leHBhbmQt MSkKICAgJygiLSIgLiBuZWdhdGl2ZS1hcmd1bWVudCkKICAgJygiOyIgLiBtZW93LXJldmVyc2Up CiAgICcoIiwiIC4gbWVvdy1pbm5lci1vZi10aGluZykKICAgJygiLiIgLiBtZW93LWJvdW5kcy1v Zi10aGluZykKICAgJygiWyIgLiBtZW93LWJlZ2lubmluZy1vZi10aGluZykKICAgJygiXSIgLiBt ZW93LWVuZC1vZi10aGluZykKICAgJygiYSIgLiBtZW93LWFwcGVuZCkKICAgJygiQSIgLiBtZW93 LW9wZW4tYmVsb3cpCiAgICcoImIiIC4gbWVvdy1iYWNrLXdvcmQpCiAgICcoIkIiIC4gbWVvdy1i YWNrLXN5bWJvbCkKICAgJygiYyIgLiBtZW93LWNoYW5nZSkKICAgJygiZCIgLiBtZW93LWRlbGV0 ZSkKICAgJygiRCIgLiBtZW93LWJhY2t3YXJkLWRlbGV0ZSkKICAgJygiZSIgLiBtZW93LW5leHQt d29yZCkKICAgJygiRSIgLiBtZW93LW5leHQtc3ltYm9sKQogICAnKCJmIiAuIG1lb3ctZmluZCkK ICAgJygiZyIgLiBtZW93LWNhbmNlbC1zZWxlY3Rpb24pCiAgICcoIkciIC4gbWVvdy1ncmFiKQog ICAnKCJoIiAuIG1lb3ctbGVmdCkKICAgJygiSCIgLiBtZW93LWxlZnQtZXhwYW5kKQogICAnKCJp IiAuIG1lb3ctaW5zZXJ0KQogICAnKCJJIiAuIG1lb3ctb3Blbi1hYm92ZSkKICAgJygiaiIgLiBt ZW93LW5leHQpCiAgICcoIkoiIC4gbWVvdy1uZXh0LWV4cGFuZCkKICAgJygiayIgLiBtZW93LXBy ZXYpCiAgICcoIksiIC4gbWVvdy1wcmV2LWV4cGFuZCkKICAgJygibCIgLiBtZW93LXJpZ2h0KQog ICAnKCJMIiAuIG1lb3ctcmlnaHQtZXhwYW5kKQogICAnKCJtIiAuIG1lb3ctam9pbikKICAgJygi biIgLiBtZW93LXNlYXJjaCkKICAgJygibyIgLiBtZW93LWJsb2NrKQogICAnKCJPIiAuIG1lb3ct dG8tYmxvY2spCiAgICcoInAiIC4gbWVvdy15YW5rKQogICAnKCJxIiAuIG1lb3ctcXVpdCkKICAg JygiUSIgLiBtZW93LWdvdG8tbGluZSkKICAgJygiciIgLiBtZW93LXJlcGxhY2UpCiAgICcoIlIi IC4gbWVvdy1zd2FwLWdyYWIpCiAgICcoInMiIC4gbWVvdy1raWxsKQogICAnKCJ0IiAuIG1lb3ct dGlsbCkKICAgJygidSIgLiBtZW93LXVuZG8pCiAgICcoIlUiIC4gbWVvdy11bmRvLWluLXNlbGVj dGlvbikKICAgJygidiIgLiBtZW93LXZpc2l0KQogICAnKCJ3IiAuIG1lb3ctbWFyay13b3JkKQog ICAnKCJXIiAuIG1lb3ctbWFyay1zeW1ib2wpCiAgICcoIngiIC4gbWVvdy1saW5lKQogICAnKCJY IiAuIG1lb3ctZ290by1saW5lKQogICAnKCJ5IiAuIG1lb3ctc2F2ZSkKICAgJygiWSIgLiBtZW93 LXN5bmMtZ3JhYikKICAgJygieiIgLiBtZW93LXBvcC1zZWxlY3Rpb24pCiAgICcoIiciIC4gcmVw ZWF0KQogICAnKCI8ZXNjYXBlPiIgLiBpZ25vcmUpKSkKCihzZXRxIG1lb3ctY3Vyc29yLXR5cGUt bm9ybWFsICdoYmFyKQooc2V0cSBtZW93LWN1cnNvci10eXBlLWluc2VydCAnYm94KQoKKHJlcXVp cmUgJ21lb3cpCihtZW93LXNldHVwKQoobWVvdy1nbG9iYWwtbW9kZSAxKQojK0VORF9TUkMKKiA6 VE9ETzogU2V0dXAgTVU0RQojK0JFR0lOX1NSQyBlbGlzcAo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bXU0 ZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CjsoYWRkLXRvLWxpc3QgJ2xvYWQt cGF0aCAiL3Vzci9sb2NhbC9zaGFyZS9lbWFjcy9zaXRlLWxpc3AvbXU0ZSIpCjsocmVxdWlyZSAn bXU0ZSkKCjsobXU0ZS1hbGVydC1zZXQtZGVmYXVsdC1zdHlsZSAnbGlibm90aWZ5KQo7KGFkZC1o b29rICdhZnRlci1pbml0LWhvb2sgJ211NGUtYWxlcnQtZW5hYmxlLW5vdGlmaWNhdGlvbnMpCjso bXU0ZS1hbGVydC1ub3RpZmljYXRpb25zKQojK0VORF9TUkMKCiogUmFuZG9tIFN0dWZmClNoaWZ0 IGFuZCBhcnJvdyBrZXkgY2hhbmdlcyB3aW5kb3dzCiMrQkVHSU5fU1JDIGVsaXNwCih3aGVuIChm Ym91bmRwICd3aW5kbW92ZS1kZWZhdWx0LWtleWJpbmRpbmdzKQogICh3aW5kbW92ZS1kZWZhdWx0 LWtleWJpbmRpbmdzKSkKIytFTkRfU1JDCgpLaWxscyB0aGUgc2NyYXRjaCBidWZmZXIgb24gbGF1 bmNoIGFuZCBjaGFuZ2VzIGEgZmV3IFVJIHRoaW5ncy4KIytCRUdJTl9TUkMgZWxpc3AKKGtpbGwt YnVmZmVyICIqc2NyYXRjaCoiKQo7KHNldHEgaW5oaWJpdC1zcGxhc2gtc2NyZWVuIHQpCihzZXRx IGluaGliaXQtc3RhcnR1cC1zY3JlZW4gdCkKKHNjcm9sbC1iYXItbW9kZSAtMSkKKG1lbnUtYmFy LW1vZGUgLTEpCih0b29sLWJhci1tb2RlIC0xKQooZGlzcGxheS10aW1lLW1vZGUgdCkKOztHZXR0 aW5nIHJpZCBvZiBsaW5lIHdyYXBwaW5nLgooc2V0LWRlZmF1bHQgJ3RydW5jYXRlLWxpbmVzIHQp Cjs7Ozs7Ozs7Ozs7Ozs7OyB0dXJuIG9mZiB0aGUgYmVlcGluZyA7Ozs7Ozs7Ozs7Owooc2V0cSB2 aXNpYmxlLWJlbGwgMSkKCjs7KGdsb2JhbC1saW51bS1tb2RlIHQpCjs7IHJlcGxhY2luZyBsaW51 bS1tb2RlIHdpdGggZGlzcGxheS1saW5lLW1vZGUgYXMgaXQgZm9sbG93cyB0aGUgdGhlbWUKKGds b2JhbC1kaXNwbGF5LWxpbmUtbnVtYmVycy1tb2RlIHQpCihnbG9iYWwtc2V0LWtleSAoa2JkICJD LXggaSIpIChsYW1iZGEgKCkgKGludGVyYWN0aXZlKShmaW5kLWZpbGUgIn4vLmVtYWNzLmQvaW5p dC5vcmciKSkpCiMrRU5EX1NSQwoKKiBEaWFyeQojK0JFR0lOX1NSQyBlbGlzcAo7ZGVza3RvcCBu b3RpZmljYXRpb25zCihyZXF1aXJlICdub3RpZmljYXRpb25zKQoKKGRlZmN1c3RvbSBhcHB0LW5v dGlmaWNhdGlvbi1idXMgOnNlc3Npb24KICAiZGJ1cyBub3RpZmljYXRpb25zIgogIDp2ZXJzaW9u ICIyOS4wNSIKICA6Z3JvdXAgJ2FwcHQtbm90aWZpY2F0aW9uCiAgOnR5cGUgJyhjaG9pY2UgKGNv bnN0IDp0YWcgIlNlc3Npb24gYnVzIiA6c2Vzc2lvbikgc3RyaW5nKSkKCihkZWZ1biB1c2VyL2Fw cHQtZGlzcGxheSAobWluLXRvLWFwcCBuZXctdGltZSBtc2cpCiAgInNlbmRzIG5vdGlmaWNhdGlv bnMiCiAgKG5vdGlmaWNhdGlvbnMtbm90aWZ5IDpidXMgYXBwdC1ub3RpZmljYXRpb24tYnVzCgkJ CTp0aXRsZSAoZm9ybWF0ICJBcHBvaW50bWVudCBpbiAlcyBtaW51dGVzIiBtaW4tdG8tYXBwKQoJ CQk6Ym9keSAoZm9ybWF0ICIlcyIgbXNnKQoJCQk6cmVwbGFjZXMtaWQgbmlsCgkJCTphcHAtaWNv biBub3RpZmljYXRpb25zLWFwcGxpY2F0aW9uLWljb24KCQkJOnRpbWVvdXQgODAwMAoJCQk6ZGVz a3RvcC1lbnRyeSAiZGlhcnkiKSkKCihzZXRxIGFwcHQtZGlzcC13aW5kb3ctZnVuY3Rpb24gKGZ1 bmN0aW9uIHVzZXIvYXBwdC1kaXNwbGF5KSkKCihzZXRxLWRlZmF1bHQgZGlhcnktZmlsZSAifi8u ZW1hY3MuZC9kaWFyeSIKCSAgICAgIGFwcHQtZGlzcGxheS1mb3JtYXQgJ3dpbmRvdwoJICAgICAg YXBwdC1kaXNwbGF5LWR1cmF0aW9uIDYwCgkgICAgICBhcHB0LWF1ZGlibGUgdAoJICAgICAgYXBw dC1kaXNwbGF5LWludGVydmFsIDE1CgkgICAgICBhcHB0LW1lc3NhZ2Utd2FybmluZy10aW1lIDE1 CgkgICAgICBkaXNwbGF5LXRpbWUtMjRoci1mb3JtYXQgdAoJICAgICAgZGlzcGxheS10aW1lLWRh eS1hbmQtZGF0ZSB0KQoKKGFwcHQtYWN0aXZhdGUgdCkKCjtpbXBvcnRzIGljYWwgZmlsZSwgdGFr ZXMgYSBsb25nIHRpbWUgc2luY2UgbXkgaWNhbCBpcyBodWdlIGZyb20gb2xkIGV2ZW50cwo7KGlj YWxlbmRhci1pbXBvcnQtZmlsZSAifi8ubG9jYWwvc2hhcmUvZXZvbHV0aW9uL2NhbGVuZGFyL3N5 c3RlbS9jYWxlbmRhci5pY3MiCjsJCSAgICAgICAifi8uZW1hY3MuZC9kaWFyeSIpCgojK0VORF9T UkMKCiogRW1vamlmeQojK0JFR0lOX1NSQyBlbGlzcAo7Ozs7ZGlzcGxheXMgZW1vamlzIGZvciB3 ZWF0aGVyCihlbW9qaWZ5LW1vZGUgMSkKKGVtb2ppZnktbW9kZS1saW5lLW1vZGUgMSkKIytFTkRf U1JDCiogRGFzaGJvYXJkCiMrQkVHSU5fU1JDIGVsaXNwCjs7IFNldCB0aGUgdGl0bGUKKHJlcXVp cmUgJ2Rhc2hib2FyZCkKKHNldHEgZGFzaGJvYXJkLXdlZWstYWdlbmRhIHQpCihzZXRxIGRhc2hi b2FyZC1iYW5uZXItbG9nby10aXRsZSAiSSdtIHVzaW5nIExpbnV4LiBBIGxpYnJhcnkgdGhhdCBl bWFjcyB1c2VzIHRvIGNvbW11bmljYXRlIHdpdGggSW50ZWwgaGFyZHdhcmUuIikgCjsoc2V0cSBk YXNoYm9hcmQtc3RhcnR1cC1iYW5uZXIgIn4vRG93bmxvYWRzL3Jzel9lbWFjcy1jb2xvcmZ1bC5w bmciKQooc2V0cSBkYXNoYm9hcmQtc3RhcnR1cC1iYW5uZXIgIn4vUGljdHVyZXMvZW1hY3MtY29s b3JmdWwucG5nIikKOyhzZXRxIGRhc2hib2FyZC1zdGFydHVwLWJhbm5lciAnb2ZmaWNpYWwpCihz ZXRxIGRhc2hib2FyZC1zZXQtaGVhZGluZy1pY29ucyB0KQooc2V0cSBkYXNoYm9hcmQtc2V0LWZp bGUtaWNvbnMgdCkKKHNldHEgZGFzaGJvYXJkLXNldC1uYXZpZ2F0b3IgdCkKKHNldHEgZGFzaGJv YXJkLWNlbnRlci1jb250ZW50IHQpCjs7IFRvIGRpc2FibGUgc2hvcnRjdXQgImp1bXAiIGluZGlj YXRvcnMgZm9yIGVhY2ggc2VjdGlvbiwgc2V0CihzZXRxIGRhc2hib2FyZC1zaG93LXNob3J0Y3V0 cyBuaWwpCgooZGFzaGJvYXJkLXNldHVwLXN0YXJ0dXAtaG9vaykKCihhdXRvLWltYWdlLWZpbGUt bW9kZSAxKQoKKHVzZS1wYWNrYWdlIHBhZ2UtYnJlYWstbGluZXMKICA6ZW5zdXJlIHQKICA6ZGVt YW5kIHQpCgooZ2xvYmFsLXBhZ2UtYnJlYWstbGluZXMtbW9kZSAxKQojK0VORF9TUkMKCiogU1ZH IFRhZwojK0JFR0lOX1NSQyBlbGlzcAooZGVmY29uc3QgZGF0ZS1yZSAiWzAtOV1cXHs0XFx9LVsw LTldXFx7MlxcfS1bMC05XVxcezJcXH0iKQooZGVmY29uc3QgdGltZS1yZSAiWzAtOV1cXHsyXFx9 OlswLTldXFx7MlxcfSIpCihkZWZjb25zdCBkYXktcmUgIltBLVphLXpdXFx7M1xcfSIpCihkZWZj b25zdCBkYXktdGltZS1yZSAoZm9ybWF0ICJcXCglc1xcKT8gP1xcKCVzXFwpPyIgZGF5LXJlIHRp bWUtcmUpKQoKKGRlZnVuIHN2Zy1wcm9ncmVzcy1wZXJjZW50ICh2YWx1ZSkKICAoc3ZnLWltYWdl IChzdmctbGliLWNvbmNhdAogICAgICAgICAgICAgIChzdmctbGliLXByb2dyZXNzLWJhciAoLyAo c3RyaW5nLXRvLW51bWJlciB2YWx1ZSkgMTAwLjApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmlsIDptYXJnaW4gMCA6c3Ryb2tlIDIgOnJhZGl1cyAzIDpwYWRkaW5nIDIgOndpZHRo IDExKQogICAgICAgICAgICAgIChzdmctbGliLXRhZyAoY29uY2F0IHZhbHVlICIlIikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgbmlsIDpzdHJva2UgMCA6bWFyZ2luIDApKSA6YXNjZW50ICdj ZW50ZXIpKQoKKGRlZnVuIHN2Zy1wcm9ncmVzcy1jb3VudCAodmFsdWUpCiAgKGxldCogKChzZXEg KG1hcGNhciAjJ3N0cmluZy10by1udW1iZXIgKHNwbGl0LXN0cmluZyB2YWx1ZSAiLyIpKSkKICAg ICAgICAgKGNvdW50IChmbG9hdCAoY2FyIHNlcSkpKQogICAgICAgICAodG90YWwgKGZsb2F0IChj YWRyIHNlcSkpKSkKICAoc3ZnLWltYWdlIChzdmctbGliLWNvbmNhdAogICAgICAgICAgICAgIChz dmctbGliLXByb2dyZXNzLWJhciAoLyBjb3VudCB0b3RhbCkgbmlsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDptYXJnaW4gMCA6c3Ryb2tlIDIgOnJhZGl1cyAzIDpwYWRkaW5n IDIgOndpZHRoIDExKQogICAgICAgICAgICAgIChzdmctbGliLXRhZyB2YWx1ZSBuaWwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgOnN0cm9rZSAwIDptYXJnaW4gMCkpIDphc2NlbnQgJ2NlbnRl cikpKQoKO1NldHRpbmcgbXkgb3duIGZhY2UKOyhkZWZmYWNlIG15ZmFjZSAnKCh0ICg6aW5oZXJp dCBvcmctdG9kbykgOmhlaWdodCAxLjAgOmJhY2tncm91bmQgIiM5NTdEQUQiKSkgIkZhY2UgZm9y IHRvZG8iKQooZGVmZmFjZSBwYXN0ZWxwdXJwbGUgJygodCAoOmluaGVyaXQgb3JnLXRvZG8gOmhl aWdodCAyLjAgOmZvcmVncm91bmQgIiM5NTdEQUQiKSkpICJGYWNlIGZvciB0b2RvIikKKGRlZmZh Y2UgcGFzdGVsZ3JlZW4gJygodCAoOmluaGVyaXQgb3JnLXRvZG8gOmhlaWdodCAyLjAgOmZvcmVn cm91bmQgIiNCMEVCOTMiKSkpICJGYWNlIGZvciBXSVAiKQooZGVmZmFjZSBwYXN0ZWxibHVlICco KHQgKDppbmhlcml0IG9yZy10b2RvIDpoZWlnaHQgMi4wIDpmb3JlZ3JvdW5kICIjQjNFM0RBIikp KSAiRmFjZSBmb3IgRE9ORSIpCihkZWZmYWNlIHBhc3RlbHJlZCAnKCh0ICg6aW5oZXJpdCBvcmct dG9kbyA6aGVpZ2h0IDIuMCA6Zm9yZWdyb3VuZCAiI0Y5ODI4NCIpKSkgIkZhY2UgZm9yIHRhZ3Mi KQooZGVmZmFjZSBwYXN0ZWxwaW5rICcoKHQgKDppbmhlcml0IG9yZy10b2RvIDpoZWlnaHQgMi4w IDpmb3JlZ3JvdW5kICIjRkVBQUU0IikpKSAiRmFjZSBmb3IgRGF0ZSIpCgoKKHNldHEgc3ZnLXRh Zy10YWdzCiAgICAgIGAoCiAgICAgICAgOzsgT3JnIHRhZ3MgOlRISVM6CiAgICAgICAgKCJcXCg6 W0EtWmEtejAtOV0rOlxcKSIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlIHRhZyA6YmVn IDEgOmVuZCAtMSA6aW52ZXJzZSB0IDpmYWNlICdwYXN0ZWxyZWQpKSkpCgkKCTsoMSkKCTsoIlwo WzAtOzlhLXpBLVpdXCkiIC4gKChsYW1iZGEgKHRhZykKICAgICAgICA7ICAgICAgICAgICAgICAg ICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJlZyAxIDplbmQgLTEgOnJhZGl1cyAxMikpKSkK Cgk7KDA5KQogICAgICAgIDsoIlwoWzAtOWEtekEtWl1bMC05YS16QS1aXVwpIiAuICgobGFtYmRh ICh0YWcpCiAgICAgICAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy10 YWctbWFrZSB0YWcgOmJlZyAxIDplbmQgLTEgOnJhZGl1cyA4KSkpKQoKCTsoMDA3KQogICAgICAg IDsoIlwoWzAtOWEtekEtWl1bMC05YS16QS1aXVswLTlhLXpBLVpdXCkiIC4gKChsYW1iZGEgKHRh ZykKICAgICAgICA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ZnLXRhZy1t YWtlIHRhZyA6YmVnIDEgOmVuZCAtMSA6cmFkaXVzIDgpKSkpCgoJO1Vuc3VyZT8KCTsoInxbMC05 YS16QS1aLSBdKz98IiAuICgobGFtYmRhICh0YWcpCiAgICAgICAgOyAgICAgICAgICAgICAgICAg ICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmZhY2UgJ2ZvbnQtbG9jay1jb21tZW50LWZhY2UK ICAgICAgICA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDptYXJnaW4g MCA6YmVnIDEgOmVuZCAtMSkpKSkKCQogICAgICAgIDs7IFRhc2sgcHJpb3JpdHkgWyNhXQogICAg ICAgICgiXFxbI1thLXpBLVpdXFxdIiAuICggKGxhbWJkYSAodGFnKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6ZmFjZSAnb3JnLXByaW9yaXR5IAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpiZWcgMiA6ZW5kIC0xIDpt YXJnaW4gMCA6aW52ZXJzZSB0KSkpKQoKICAgICAgICA7OyBQcm9ncmVzcyBbMS8zXSBvciBbNDUl XQogICAgICAgICgiXFwoXFxbWzAtOV1cXHsxLDNcXH0lXFxdXFwpIiAuICgobGFtYmRhICh0YWcp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy1wcm9ncmVz cy1wZXJjZW50IChzdWJzdHJpbmcgdGFnIDEgLTIpKSkpKQogICAgICAgICgiXFwoXFxbWzAtOV0r L1swLTldK1xcXVxcKSIgLiAoKGxhbWJkYSAodGFnKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3ZnLXByb2dyZXNzLWNvdW50IChzdWJzdHJpbmcgdGFnIDEgLTEp KSkpKQogICAgICAgIAogICAgICAgIDs7IE9yZyBUQUdTCiAgICAgICAgKCI6VE9ETzoiIC4gKChs YW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiVE9ETyIgOmludmVyc2UgdCA6ZmFjZSAncGFzdGVs cHVycGxlKSkpKQogICAgICAgICgiOldJUDoiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFr ZSAiV0lQIiA6aW52ZXJzZSB0IDpmYWNlICdwYXN0ZWxncmVlbikpKSkKICAgICAgICAoIjpET05F OiIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlICJET05FIiA6aW52ZXJzZSB0IDpmYWNl ICdwYXN0ZWxibHVlKSkpKQogICAgICAgICgiOk5PVEU6IiAuICgobGFtYmRhICh0YWcpIChzdmct dGFnLW1ha2UgIk5PVEUiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10b2RvKSkpKQogICAgICAgICgi U0NIRURVTEVEOiIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlICJTQ0hFRFVMRUQiIDpp bnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCJERUFETElORToiIC4gKChsYW1i ZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiREVBRExJTkUiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10 YWcpKSkpCiAgICAgICAgKCIrQkVHSU5fU1JDIiAuICgobGFtYmRhICh0YWcpIChzdmctdGFnLW1h a2UgIkJFR0lOIiA6aW52ZXJzZSB0IDpmYWNlICdvcmctdGFnKSkpKQogICAgICAgICgiK0VORF9T UkMiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiRU5EIiA6aW52ZXJzZSB0IDpmYWNl ICdvcmctdGFnKSkpKQogICAgICAgICgiK1JFU1VMVFM6IiAuICgobGFtYmRhICh0YWcpIChzdmct dGFnLW1ha2UgIlJFU1VMVFMiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAg KCIrdGl0bGUiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiVElUTEUiIDppbnZlcnNl IHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCIrQkVHSU46IiAuICgobGFtYmRhICh0YWcp IChzdmctdGFnLW1ha2UgIkJFR0lOIiA6aW52ZXJzZSB0IDpmYWNlICdvcmctdGFnKSkpKQogICAg ICAgICgiK0NBUFRJT046IiAuICgobGFtYmRhICh0YWcpIChzdmctdGFnLW1ha2UgIkNBUFRJT04i IDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCIrRU5EOiIgLiAoKGxhbWJk YSAodGFnKSAoc3ZnLXRhZy1tYWtlICJFTkQiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkp CgkoIjpYIiAuICgobGFtYmRhICh0YWcpIChzdmctdGFnLW1ha2UgIltYXSIgOmludmVyc2UgdCA6 ZmFjZSAnb3JnLXRvZG8pKSkpCiAgICAgICAgKCI6LSIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRh Zy1tYWtlICJbLV0iIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCgkKICAgICAgICA7OyBD aXRhdGlvbiBvZiB0aGUgZm9ybSBbY2l0ZTpAS251dGg6MTk4NF0gCiAgICAgICAgKCJcXChcXFtj aXRlOkBbQS1aYS16XSs6XFwpIiAuICgobGFtYmRhICh0YWcpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzdmctdGFnLW1ha2UgdGFnCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmludmVyc2UgdAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpiZWcgNyA6 ZW5kIC0xCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOmNyb3AtcmlnaHQgdCkpKSkKICAgICAgICAoIlxcW2NpdGU6QFtBLVphLXpdKzpcXChb MC05XStcXF1cXCkiIC4gKChsYW1iZGEgKHRhZykKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW5kIC0xCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OmNyb3AtbGVmdCB0KSkpKQoKCgk7OzsgV29ya3MgZm9yIHN0dWZmIGxpa2UgOlhYWHxZWVk6Cgko IlxcKDpbQS1aXStcXClcfFthLXpBLVojMC05XSs6IiAuICgobGFtYmRhICh0YWcpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6YmVn IDEgOmludmVyc2UgdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOm1hcmdpbiAwIDpjcm9wLXJpZ2h0IHQpKSkpICAgICAgICAKCiAgICAg ICAgKCI6W0EtWl0rXFwoXHxbYS16QS1aIzAtOV0rOlxcKSIgLiAoKGxhbWJkYSAodGFnKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcg OmJlZyAxIDplbmQgLTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOm1hcmdpbiAwIDpjcm9wLWxlZnQgdCkpKSkKCTs7IEFjdGl2ZSBkYXRl ICh3aXRoIG9yIHdpdGhvdXQgZGF5IG5hbWUsIHdpdGggb3Igd2l0aG91dCB0aW1lKQogICAgICAg ICgsKGZvcm1hdCAiXFwoPCVzPlxcKSIgZGF0ZS1yZSkgLgogICAgICAgICAoKGxhbWJkYSAodGFn KQogICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6YmVnIDEgOmVuZCAtMSA6bWFyZ2luIDAg OmZhY2UgJ3Bhc3RlbHBpbmsgOmludmVyc2UgdCkpKSkKICAgICAgICAoLChmb3JtYXQgIlxcKDwl cyBcXCklcz4iIGRhdGUtcmUgZGF5LXRpbWUtcmUpIC4KICAgICAgICAgKChsYW1iZGEgKHRhZykK ICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJlZyAxIDppbnZlcnNlIHQgOmNyb3Atcmln aHQgdCA6bWFyZ2luIDAgOmZhY2UgJ3Bhc3RlbHBpbmspKSkpCiAgICAgICAgKCwoZm9ybWF0ICI8 JXMgXFwoJXM+XFwpIiBkYXRlLXJlIGRheS10aW1lLXJlKSAuCiAgICAgICAgICgobGFtYmRhICh0 YWcpCiAgICAgICAgICAgIChzdmctdGFnLW1ha2UgdGFnIDplbmQgLTEgOmludmVyc2UgbmlsIDpj cm9wLWxlZnQgdCA6bWFyZ2luIDAgOmZhY2UgJ3Bhc3RlbHBpbmspKSkpKSkKCiAgICAgICAgOzsg SW5hY3RpdmUgZGF0ZSAgKHdpdGggb3Igd2l0aG91dCBkYXkgbmFtZSwgd2l0aCBvciB3aXRob3V0 IHRpbWUpCiAgICAgICAgIDsoLChmb3JtYXQgIlxcKFxcWyVzXFxdXFwpIiBkYXRlLXJlKSAuCiAg ICAgICAgIDsgKChsYW1iZGEgKHRhZykKICAgICAgICAgOyAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6 YmVnIDEgOmVuZCAtMSA6bWFyZ2luIDAgOmZhY2UgJ29yZy1kYXRlKSkpKQogICAgICAgICA7KCwo Zm9ybWF0ICJcXChcXFslcyBcXCklc1xcXSIgZGF0ZS1yZSBkYXktdGltZS1yZSkgLgogICAgICAg ICA7ICgobGFtYmRhICh0YWcpCiAgICAgICAgIDsgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJlZyAx IDppbnZlcnNlIG5pbCA6Y3JvcC1yaWdodCB0IDptYXJnaW4gMCA6ZmFjZSAnb3JnLWRhdGUpKSkp CiAgICAgICAgIDsoLChmb3JtYXQgIlxcWyVzIFxcKCVzXFxdXFwpIiBkYXRlLXJlIGRheS10aW1l LXJlKSAuCiAgICAgICAgIDsgKChsYW1iZGEgKHRhZykKICAgICAgICAgOyAgICAoc3ZnLXRhZy1t YWtlIHRhZyA6ZW5kIC0xIDppbnZlcnNlIHQgOmNyb3AtbGVmdCB0IDptYXJnaW4gMCA6ZmFjZSAn b3JnLWRhdGUpKSkpKSkKCihyZXF1aXJlICdzdmctdGFnLW1vZGUpCihnbG9iYWwtc3ZnLXRhZy1t b2RlIDEpCih1c2UtcGFja2FnZSBzdmctbGliKQojK0VORF9TUkMKCiogSXZ5LCBTbWV4LCBPcmRl cmxlc3MgYW5kIFN3aXBlcgojK0JFR0lOX1NSQyBlbGlzcAooaXZ5LW1vZGUgMSkKCihyZXF1aXJl ICdzbWV4KQooZ2xvYmFsLXNldC1rZXkgKGtiZCAiTS14IikgJ3NtZXgpCgooZ2xvYmFsLXNldC1r ZXkgKGtiZCAiQy1zIikgJ3N3aXBlcikKCgoodXNlLXBhY2thZ2Ugb3JkZXJsZXNzCiAgOmVuc3Vy ZSB0CiAgOmN1c3RvbQogIChjb21wbGV0aW9uLXN0eWxlcyAnKG9yZGVybGVzcyBiYXNpYykpCiAg KGNvbXBsZXRpb24tY2F0ZWdvcnktb3ZlcnJpZGVzICcoKGZpbGUgKHN0eWxlcyBiYXNpYyBwYXJ0 aWFsLWNvbXBsZXRpb24pKSkpKQoKKHNldHEgaXZ5LXJlLWJ1aWxkZXJzLWFsaXN0ICcoKHQgLiBv cmRlcmxlc3MtaXZ5LXJlLWJ1aWxkZXIpKSkKKGFkZC10by1saXN0ICdpdnktaGlnaGxpZ2h0LWZ1 bmN0aW9ucy1hbGlzdCAnKG9yZGVybGVzcy1pdnktcmUtYnVpbGRlciAuIG9yZGVybGVzcy1pdnkt aGlnaGxpZ2h0KSkKCiMrRU5EX1NSQwoqIENlbnRhdXIgVGFicwojK0JFR0lOX1NSQyBlbGlzcAoo dXNlLXBhY2thZ2UgY2VudGF1ci10YWJzCiAgOmRlbWFuZAogIDpjb25maWcKICAoY2VudGF1ci10 YWJzLW1vZGUgdCkKICA6YmluZAogICgiQy08cHJpb3I+IiAuIGNlbnRhdXItdGFicy1iYWNrd2Fy ZCkKICAoIkMtPG5leHQ+IiAuIGNlbnRhdXItdGFicy1mb3J3YXJkKSkKKGNlbnRhdXItdGFicy1o ZWFkbGluZS1tYXRjaCkKKHNldHEgY2VudGF1ci10YWJzLXN0eWxlICJiYXIiKQooc2V0cSBjZW50 YXVyLXRhYnMtaGVpZ2h0IDEyKQooc2V0cSBjZW50YXVyLXRhYnMtc2V0LWljb25zIHQpCihzZXRx IGNlbnRhdXItdGFicy1jbG9zZS1idXR0b24gIlgiKQooc2V0cSBjZW50YXVyLXRhYnMtc2V0LW1v ZGlmaWVkLW1hcmtlciB0KQooc2V0cSBjZW50YXVyLXRhYnMtbW9kaWZpZWQtbWFya2VyICIqIikK KHNldHEgY2VudGF1ci10YWJzLXNldC1iYXIgJ2xlZnQpCiMrRU5EX1NSQwoKKiBMU1AtTW9kZSAo RGV2ZWxvcG1lbnQgaW4gZ2VuZXJhbCkKQ29tbWVudGluZyBvdXQgdGhlIGxpbmVzIHdpdGggYSBu dW1iZXIgYWZ0ZXJ3YXJkcyBiZWNhdXNlIEkgYW0gdHJ5aW5nIHRvIHN3aXRjaAp0byBMU1AtQnJp ZGdlIHRvIHNlZSBpZiBpdCBzb2x2ZXMgdGhlIGlzc3VlIG9mIG15IEVtYWNzIGZyZWV6aW5nLgoj K0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2UgcHJvamVjdGlsZSkKKHVzZS1wYWNrYWdlIGZs eWNoZWNrIDplbnN1cmUgdCA6aW5pdCAoZ2xvYmFsLWZseWNoZWNrLW1vZGUpKQoodXNlLXBhY2th Z2UgeWFzbmlwcGV0IDpjb25maWcgKHlhcy1nbG9iYWwtbW9kZSkpCjsodXNlLXBhY2thZ2UgbHNw LXVpKSAxCih1c2UtcGFja2FnZSB3aGljaC1rZXkgOmNvbmZpZyAod2hpY2gta2V5LW1vZGUpKQo7 OyBMU1AtSmF2YSBmcmVlemVzIG15IG1hY2hpbmUgc28gaXQncyBjdXJyZW50bHkgY29tbWVudGVk IG91dAo7KHVzZS1wYWNrYWdlIGxzcC1qYXZhIDpjb25maWcgKGFkZC1ob29rICdqYXZhLW1vZGUt aG9vayAnbHNwKSkKOyh1c2UtcGFja2FnZSBkYXAtbW9kZSA6YWZ0ZXIgbHNwLW1vZGUgOmNvbmZp ZyAoZGFwLWF1dG8tY29uZmlndXJlLW1vZGUpKSAxCgo7Oyh1c2UtcGFja2FnZSBsc3AtbW9kZSAx Cjs7ICA6aG9vayAoKGxzcC1tb2RlIC4gbHNwLWVuYWJsZS13aGljaC1rZXktaW50ZWdyYXRpb24p KQo7OyAgOmNvbmZpZwo7OyAgKHNldHEKOzsgICBsc3AtZW5hYmxlLWZpbGUtd2F0Y2hlcnMgbmls Cjs7ICAgbHNwLWhlYWRlcmxpbmUtYnJlYWRjcnVtYi1lbmFibGUgbmlsCjs7ICAgKQo7OyAgOzsg UGVyZm9ybWFuY2UgdHdlYWtzLCBzZWUKOzsgIDs7IGh0dHBzOi8vZ2l0aHViLmNvbS9lbWFjcy1s c3AvbHNwLW1vZGUjcGVyZm9ybWFuY2UKOzsgIChzZXRxIGdjLWNvbnMtdGhyZXNob2xkIDEwMDAw MDAwMCkKOzsgIChzZXRxIHJlYWQtcHJvY2Vzcy1vdXRwdXQtbWF4ICgqIDEwMjQgMTAyNCkpIDs7 IDFtYgo7OyAgKHNldHEgbHNwLWlkbGUtZGVsYXkgMC41MDApCjs7ICApCgoocmVxdWlyZSAnZ28t bW9kZSkKCjsocmVxdWlyZSAnY29tcGFueSkgMQoKOyhhZGQtaG9vayAnYWZ0ZXItaW5pdC1ob29r ICdnbG9iYWwtY29tcGFueS1tb2RlKSAxCgo7KHVzZS1wYWNrYWdlIGNvbXBhbnktYm94IDEKOyAg Omhvb2sgKGNvbXBhbnktbW9kZSAuIGNvbXBhbnktYm94LW1vZGUpKQoKOzsgbHNwIGV4dHJhcyAx Cjs7KHNldHEgbHNwLXVpLXNpZGVsaW5lLWVuYWJsZSB0Cjs7ICAgICAgbHNwLXVpLXNpZGVsaW5l LXNob3ctc3ltYm9sIHQKOzsgICAgICBsc3AtdWktc2lkZWxpbmUtc2hvdy1ob3ZlciB0Cjs7ICAg ICAgbHNwLXVpLXNpZGVsaW5lLXNob3ctZmx5Y2hlY2sgdAo7OyAgICAgIGxzcC11aS1zaWRlbGlu ZS1zaG93LWNvZGUtYWN0aW9ucyBuaWwKOzsgICAgICBsc3AtdWktc2lkZWxpbmUtc2hvdy1kaWFn bm9zdGljcyBuaWwpCgoKOzsgRWxweQoodXNlLXBhY2thZ2UgZWxweQogIDplbnN1cmUgdAogIDpp bml0CiAgKGVscHktZW5hYmxlKSkKCjs7IFRhYk5pbmUgaW50ZWdyYXRpb24gZm9yIGNvZGUgY29t cGxldGlvbgo7Oyh1c2UtcGFja2FnZSBjb21wYW55LXRhYm5pbmUgOmVuc3VyZSB0KSAxCjs7KHJl cXVpcmUgJ2NvbXBhbnktdGFibmluZSkgMQo7OyhhZGQtdG8tbGlzdCAnY29tcGFueS1iYWNrZW5k cyAjJ2NvbXBhbnktdGFibmluZSkgMQo7OyBUcmlnZ2VyIGNvbXBsZXRpb24gaW1tZWRpYXRlbHku Cjs7KHNldHEgY29tcGFueS1pZGxlLWRlbGF5IDAuMTUpIDEKCjs7IE51bWJlciB0aGUgY2FuZGlk YXRlcyAodXNlIE0tMSwgTS0yIGV0YyB0byBzZWxlY3QgY29tcGxldGlvbnMpLgo7OyhzZXRxIGNv bXBhbnktc2hvdy1udW1iZXJzIHQpIDEKCjs7IEpTIGRldmVsb3BtZW50Cjs7KHVzZS1wYWNrYWdl IGZyb250c2lkZS1qYXZhc2NyaXB0IDEKOzsgIDppbml0IChmcm9udHNpZGUtamF2YXNjcmlwdCkp CgojK0VORF9TUkMKKiBGb250CiMrQkVHSU5fU1JDIGVsaXNwCjtXb3JrcyB3aXRoIE9wdGlvbnMt PlNldCBEZWZhdWx0IEZvbnQKKHNldC1mYWNlLWF0dHJpYnV0ZSAnZGVmYXVsdCBuaWwgOmZhbWls eSAiSW9zZXZrYSIpCjsoc2V0LWZyYW1lLWZvbnQgIklvc2V2a2EgMTgiIG5pbCB0KQojK0VORF9T UkMKCiogR29sZGVuIFJhdGlvCk1ha2VzIGl0IHNvIHRoZSBidWZmZXIgeW91IGFyZSBmb2N1c2Vk IG9uIGlzIGxhcmdlciB0aGFuIHRoZSBvbmVzIG5vdCBmb2N1c2VkIG9uLgojK0JFR0lOX1NSQyBl bGlzcAo7IGh0dHBzOi8vZ2l0aHViLmNvbS9yb21hbi9nb2xkZW4tcmF0aW8uZWwKKGdvbGRlbi1y YXRpby1tb2RlIDEpCiMrRU5EX1NSQwoqIEJhYmVsCiMrQkVHSU5fU1JDIGVsaXNwCjs7IE9yZyBC YWJlbAo7KGxvYWQtbGlicmFyeSAnb2ItcnVzdCkKKG9yZy1iYWJlbC1kby1sb2FkLWxhbmd1YWdl cwogJ29yZy1iYWJlbC1sb2FkLWxhbmd1YWdlcwogJygocHl0aG9uIC4gdCkpKQo7ICAgKG9jdGF2 ZSAuIHQpCjsgICAocnVzdCAuIHQpKSkKIytFTkRfU1JDCiogWWFzbmlwcGV0CiMrQkVHSU5fU1JD IGVsaXNwCihyZXF1aXJlICd5YXNuaXBwZXQpCiMrRU5EX1NSQwoKKiBQZXJzcGVjdGl2ZQojK0JF R0lOX1NSQyBlbGlzcAoocmVxdWlyZSAncGVyc3BlY3RpdmUpCihnbG9iYWwtc2V0LWtleSAoa2Jk ICJDLXggQy1iIikgJ3BlcnNwLWxpc3QtYnVmZmVycykKKGdsb2JhbC1zZXQta2V5IChrYmQgIkMt eCBDLXAiKSAncGVyc3Atc3dpdGNoKQooY3VzdG9taXplLXNldC12YXJpYWJsZSAncGVyc3AtbW9k ZS1wcmVmaXgta2V5IChrYmQgIkMtYyBNLXAiKSkKKHBlcnNwLW1vZGUpCiMrRU5EX1NSQwoKKiBN YXJnaW5hbGlhCiMrQkVHSU5fU1JDIGVsaXNwCihtYXJnaW5hbGlhLW1vZGUgMSkKIytFTkRfU1JD CiogRG9vbSBNb2RlbGluZQojK0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2UgZG9vbS1tb2Rl bGluZQogIDplbnN1cmUgdAogIDppbml0IChkb29tLW1vZGVsaW5lLW1vZGUgMSkpCiMrRU5EX1NS QwoqIENlbnRlcmVkIEN1cnNvciBNb2RlCiMrQkVHSU5fU1JDIGVsaXNwCih1c2UtcGFja2FnZSBj ZW50ZXJlZC1jdXJzb3ItbW9kZQogIDpkZW1hbmQKICA6Y29uZmlnCiAgOzsgT3B0aW9uYWwsIGVu YWJsZXMgY2VudGVyZWQtY3Vyc29yLW1vZGUgaW4gYWxsIGJ1ZmZlcnMuCiAgKGdsb2JhbC1jZW50 ZXJlZC1jdXJzb3ItbW9kZSkpCiMrRU5EX1NSQwoqIEJ1aWx0LUluIGZ1bmN0aW9ucyAoRWxlY3Ry aWMgcGFpciBhbmQgd2hpY2ggZnVuY3Rpb24pCiMrQkVHSU5fU1JDIGVsaXNwCjs7OyBFbGVjdHJp Yy1wYWlyIG1vZGUgKE1hdGNoZXMgcGFyZW5zIGFuZCBicmFja2V0cykKKGVsZWN0cmljLXBhaXIt bW9kZSAxKQoKOzsgdG9wLWJhciB3aGljaCBmdW5jdGlvbiB5b3UncmUgY3VpcnJlbnRseSBpbgoo d2hpY2gtZnVuY3Rpb24tbW9kZSkKIytFTkRfU1JDCgoqIFJhaW5ib3cgRGVsaW1pdGVyIE1vZGUK UmFpbmJvdyBkZWxpbWl0ZXIgbW9kZSBjaGFuZ2VzIGNvbG9ycyBvZiBkZWxpbWl0ZXMgdG8gbWF0 Y2ggdGhlaXIgcGFydG5lcgojK0JFR0lOX1NSQyBlbGlzcAooYWRkLWhvb2sgJ3Byb2ctbW9kZS1o b29rICMncmFpbmJvdy1kZWxpbWl0ZXJzLW1vZGUpCiMrRU5EX1NSQwoqIExpbmUtUmVtaW5kZXIg TW9kZQpMaW5lLXJlbWluZGVyLW1vZGUsIGJhc2ljYWxseSBzaG93cyB3aGF0IHlvdSd2ZSBjaGFu Z2VkIGluIHlvdXIgY3VycmVudCBzZXNzaW9uCgpPbmUgdGhpbmcgdG8gbm90ZSB0aG91Z2ggaXMg dGhhdCB3aXRoIHRoZSBjdXJyZW50IHRoZW1lIHNldHVwLCB0aGVyZSBpcyBhbiBpc3N1ZQp3aXRo IHNlZWluZyB0aGUgeWVsbG93IG1hcmtlciBzbyBJIGNoYW5nZWQgdGhhdCB2YWx1ZSB0byBiZSAj RERFMTY1LiBJdCBpcyBhcHBhcmVudGx5CmJlaW5nIHdvcmtlZCBvbiB1cHN0cmVhbSBpbiB0aGUg dGhlbWUsIGJ1dCBoYXNuJ3QgYmVlbiBmaW5pc2hlZCB5ZXQuCgo6VE9ETzogRmlndXJlIG91dCBo b3cgdG8gY2hhbmdlIHRoZSBpZGVudGlmaWVyIHRvIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgdGhl IGZyaW5nZT8/PwojK0JFR0lOX1NSQyBlbGlzcAoocmVxdWlyZSAnaW5kaWNhdG9ycykKKHVzZS1w YWNrYWdlIGxpbmUtcmVtaW5kZXIKICA6ZW5zdXJlIHQKICA6aW5pdAogIChzZXRxIGxpbmUtcmVt aW5kZXItc2hvdy1vcHRpb24gJ2luZGljYXRvcnMpCiAgOzsgQ3VzdG9taXplIHRoZSBtb2RpZmll ZCBzaWduLgogIDs7KHNldHEgbGluZS1yZW1pbmRlci1tb2RpZmllZC1zaWduICLilpAiKSAgOyBu b3QgbmVlZGVkCiAgOztDdXN0b21pemUgdGhlIHNhdmVkIHNpZ24uCiAgOzsoc2V0cSBsaW5lLXJl bWluZGVyLXNhdmVkLXNpZ24gIuKWkCIpICA7IG5vdCBuZWVkZWQKICA7O0N1c3RvbWl6ZSBzdHJp bmcgb24gdGhlIHJpZ2h0L2xlZnQgc2lkZSBvZiB0aGUgbGluZSBudW1iZXIuCiAgKHNldHEgbGlu ZS1yZW1pbmRlci1saW51bS1sZWZ0LXN0cmluZyAiIikKICAoc2V0cSBsaW5lLXJlbWluZGVyLWxp bnVtLXJpZ2h0LXN0cmluZyAiICIpCiAgOmNvbmZpZwogIChhZGQtaG9vayAncHJvZy1tb2RlLWhv b2sKICAgICAgICAgICAgKGZ1bmN0aW9uCiAgICAgICAgICAgICAobGFtYmRhICgpCiAgICAgICAg ICAgICAgIChsaW5lLXJlbWluZGVyLW1vZGUgdCkKICAgICAgICAgICAgICAgKHNldHEgbGluZS1y ZW1pbmRlci1zaG93LW9wdGlvbiAnaW5kaWNhdG9ycykpKSkpCihnbG9iYWwtbGluZS1yZW1pbmRl ci1tb2RlIHQpCiMrRU5EX1NSQwoKKiBPcmlnYW1pIG1vZGUKVGhpcyBpcyB1c2VkIGZvciBjb2Rl IGZvbGRpbmcsIHRob3VnaCBJIGRvIHRoaW5rIFRyZWUtU2l0dGVyIGNhbiBkbyB0aGUgc2FtZSB0 aGluZyBzbyBJIG1heSBnZXQKcmlkIG9mIHRoaXMuIE5vdCBleGFjdGx5IHN1cmUgeWV0IHRob3Vn aCBzaW5jZSBJIGhhdmVuJ3QgZG9uZSB0aGF0IHlldCB3aXRoIHRyZWUtc2l0dGVyCiMrQkVHSU5f U1JDIGVsaXNwCjs7KGdsb2JhbC1vcmlnYW1pLW1vZGUgMSkKOzsoZ2xvYmFsLXNldC1rZXkgKGti ZCAiQy1jIEMtYyIpICdvcmlnYW1pLWNsb3NlLWFsbC1ub2RlcykKOzsoZ2xvYmFsLXNldC1rZXkg KGtiZCAiQy1jIEMtbyIpICdvcmlnYW1pLW9wZW4tYWxsLW5vZGVzKQo7OyhnbG9iYWwtc2V0LWtl eSAoa2JkICJDLWMgYyIpICdvcmlnYW1pLWNsb3NlLW5vZGUtcmVjdXJzaXZlbHkpCjs7KGdsb2Jh bC1zZXQta2V5IChrYmQgIkMtYyBvIikgJ29yaWdhbWktb3Blbi1ub2RlLXJlY3Vyc2l2ZWx5KQoj K0VORF9TUkMKKiBUcmVlLVNpdHRlciBNb2RlCjpJTVBPUlRBTlQ6IHRvIHZpZXcgQVNUIHJ1biB0 cmVlLXNpdHRlci1kZWJ1Zy1tb2RlCgo6VE9ETzogV29yayB3aXRoIHRyZWUgcXVlcmllcyB3aXRo IGh0dHBzOi8vZW1hY3MtdHJlZS1zaXR0ZXIuZ2l0aHViLmlvL2dldHRpbmctc3RhcnRlZC8jcGxh eS1hcm91bmQtd2l0aC10cmVlLXF1ZXJpZXMKcnVuIHRyZWUtc2l0dGVyLXF1ZXJ5LWJ1aWxkZXIg YW5kIHVzZSBhbiBleGFtcGxlIGZyb20gYmVsb3cKIFB5dGhvbjoKIChjbGFzc19kZWZpbml0aW9u IChpZGVudGlmaWVyKSBAY2xhc3MpCiAoZnVuY3Rpb25fZGVmaW5pdGlvbiAoaWRlbnRpZmllcikg QGZ1bmMpCgpSdXN0OgogKGZ1bmN0aW9uX2l0ZW0gKGlkZW50aWZpZXIpIEBmdW5jKQogKGltcGxf aXRlbSAodHlwZV9pZGVudGlmaWVyKSBAaW1wbCkKCkphdmFzY3JpcHQ6CiAoZnVuY3Rpb25fZGVj bGFyYXRpb24gKGlkZW50aWZpZXIpIEBmdW5jKQogKHZhcmlhYmxlX2RlY2xhcmF0b3IgKGlkZW50 aWZpZXIpIEB2YXIpCgpHcmVhdCB0YWxrIGZvdW5kIGhlcmUKaHR0cHM6Ly93d3cueW91dHViZS5j b20vd2F0Y2g/dj1NWlBSX1NDOUx6RQoKIytCRUdJTl9TUkMgZWxpc3AKKHJlcXVpcmUgJ3RyZWUt c2l0dGVyKQoocmVxdWlyZSAndHJlZS1zaXR0ZXItbGFuZ3MpCgo7OyBUdXJucyBvbiB0cmVlLXNp dHRlci1tb2RlIGdsb2JhbHkgYW5kIHR1cm5zIG9uIHRoZSBoaWdobGlnaHRpbmcgZm9yIGl0Cihn bG9iYWwtdHJlZS1zaXR0ZXItbW9kZSkKKGFkZC1ob29rICd0cmVlLXNpdHRlci1hZnRlci1vbi1o b29rICMndHJlZS1zaXR0ZXItaGwtbW9kZSkKOzsgVG8gY2hlY2sgc3VwcG9ydGVkIG1ham9yIG1v ZGVzIHJ1biB0cmVlLXNpdHRlci1tYWpvci1tb2RlLWxhbmd1YWdlLWFsaXN0CgoodHJlZS1zaXR0 ZXItcmVxdWlyZSAncnVzdCkKKHRyZWUtc2l0dGVyLXJlcXVpcmUgJ3B5dGhvbikKKHRyZWUtc2l0 dGVyLXJlcXVpcmUgJ2phdmEpCih0cmVlLXNpdHRlci1yZXF1aXJlICdqYXZhc2NyaXB0KQoKOyBD b2RlIGZvbGRpbmcKKHVzZS1wYWNrYWdlIHRzLWZvbGQKICA6bG9hZC1wYXRoICJ+Ly5lbWFjcy5k L3RzLWZvbGQiKQoKKHVzZS1wYWNrYWdlIHRzLWZvbGQtaW5kaWNhdG9ycwogICA6bG9hZC1wYXRo ICJ+Ly5lbWFjcy5kL3RzLWZvbGQiKQoKOzsgSWRlbnRpZmllciBmb3IgZm9sZGluZwo7KHVzZS1w YWNrYWdlIHRzLWZvbGQtaW5kaWNhdG9ycwo7ICA6c3RyYWlnaHQgKHRzLWZvbGQtaW5kaWNhdG9y cyA6dHlwZSBnaXQgOmhvc3QgZ2l0aHViIDpyZXBvICJlbWFjcy10cmVlLXNpdHRlci90cy1mb2xk IikpCjsocmVxdWlyZSAndHMtZm9sZCkKKGdsb2JhbC10cy1mb2xkLW1vZGUgMSkKKGdsb2JhbC10 cy1mb2xkLWluZGljYXRvcnMtbW9kZSAxKQoKKGFkZC1ob29rICd0cmVlLXNpdHRlci1hZnRlci1v bi1ob29rICMndHMtZm9sZC1pbmRpY2F0b3JzLW1vZGUpCjsoc2V0cSB0cy1mb2xkLWluZGljYXRv cnMtZnJpbmdlICdyaWdodC1mcmluZ2UpCihzZXRxIHRzLWZvbGQtaW5kaWNhdG9ycy1wcmlvcml0 eSAzMCkKCihzZXRxIHRzLWZvbGQtaW5kaWNhdG9ycy1mYWNlLWZ1bmN0aW9uCiAgICAgIChsYW1i ZGEgKHBvcyAmcmVzdCBfKQogICAgICAgIDs7IFJldHVybiB0aGUgZmFjZSBvZiBpdCdzIGZ1bmN0 aW9uLgogICAgICAgIChsaW5lLXJlbWluZGVyLS1nZXQtZmFjZSAobGluZS1udW1iZXItYXQtcG9z IHBvcyB0KSkpKQoKKGFkdmljZS1hZGQgJ2xpbmUtcmVtaW5kZXItdHJhbnNmZXItdG8tc2F2ZWQt bGluZXMgOmFmdGVyCiAgICAgICAgICAgIDs7IFJlZnJlc2ggaW5kaWNhdG9ycyBmb3IgcGFja2Fn ZSBgdHMtZm9sZCcuCiAgICAgICAgICAgICMndHMtZm9sZC1pbmRpY2F0b3JzLXJlZnJlc2gpCgo7 OyA6VE9ETzogQXMgaXQgdHVybnMgb3V0LCBtb3N0IG9mIHRoZSBtYWpvciBtb2RlcyBJIHVzZSBo YXZlIGEga2V5YmluZGluZyBmb3IgYm90aCB0aGUgb3Blbi9jbG9zZS1hbGwgZnVuY3Rpb24KOzsg YmluZGluZ3MgSSBoYXZlIGJlbG93LgooZ2xvYmFsLXNldC1rZXkgKGtiZCAiQy1jIEMtYyIpICd0 cy1mb2xkLWNsb3NlLWFsbCkKKGdsb2JhbC1zZXQta2V5IChrYmQgIkMtYyBDLW8iKSAndHMtZm9s ZC1vcGVuLWFsbCkKKGdsb2JhbC1zZXQta2V5IChrYmQgIkMtYyBjIikgJ3RzLWZvbGQtY2xvc2Up CihnbG9iYWwtc2V0LWtleSAoa2JkICJDLWMgbyIpICd0cy1mb2xkLW9wZW4tcmVjdXJzaXZlbHkp IDs7IG1pZ2h0IGNoYW5nZSB0byB0cy1mb2xkLW9wZW4KCjs7IENvbW1lbnQgc3VtbWFyaWVzIHdo ZW4gZm9sZGVkCjsoc2V0cSB0cy1mb2xkLXN1bW1hcnktc2hvdyBuaWwpCihzZXRxIHRzLWZvbGQt c3VtbWFyeS1tYXgtbGVuZ3RoIDYwKQojK0VORF9TUkMKCg== --b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys--
Hank Greenburg <hank.greenburg@HIDDEN>
:bug-gnu-emacs@HIDDEN
.
Full text available.bug-gnu-emacs@HIDDEN
:bug#61436
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.