From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Tim Hesterberg Newsgroups: gmane.emacs.bugs Subject: undigestify is fooled by messages containing lines of dashes Date: Wed, 06 Feb 2008 09:26:03 -0800 Message-ID: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="++----------20080206092304-189805385----------++" Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1202318957 22524 80.91.229.12 (6 Feb 2008 17:29:17 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 6 Feb 2008 17:29:17 +0000 (UTC) To: bug-gnu-emacs@gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Feb 06 18:29:39 2008 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1JMo5I-0005b7-Kv for geb-bug-gnu-emacs@m.gmane.org; Wed, 06 Feb 2008 18:29:28 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JMo4o-0007c8-Ge for geb-bug-gnu-emacs@m.gmane.org; Wed, 06 Feb 2008 12:28:50 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JMo2Q-0006JO-6E for bug-gnu-emacs@gnu.org; Wed, 06 Feb 2008 12:26:22 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JMo2O-0006Im-SH for bug-gnu-emacs@gnu.org; Wed, 06 Feb 2008 12:26:21 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JMo2O-0006Ih-Kf for bug-gnu-emacs@gnu.org; Wed, 06 Feb 2008 12:26:20 -0500 Original-Received: from sewinexch00.insightful.com ([70.98.76.55]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JMo2L-0003Up-UR for bug-gnu-emacs@gnu.org; Wed, 06 Feb 2008 12:26:20 -0500 Original-Received: from THESTERBERG-XP.insightful.com ([172.16.102.54]) by sewinexch00.insightful.com with Microsoft SMTPSVC(6.0.3790.1830); Wed, 6 Feb 2008 09:26:03 -0800 X-OriginalArrivalTime: 06 Feb 2008 17:26:03.0994 (UTC) FILETIME=[599733A0:01C868E5] X-detected-kernel: by monty-python.gnu.org: Genre and OS details not recognized. X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:17486 Archived-At: This is a multi-part message in MIME format. --++----------20080206092304-189805385----------++ Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Here is * a review of a problem I reported previously, * a new problem that occurs with the workaround. On 10 Aug 2007 I reported: > Using emacs 21.3, undigestify-rmail-message works fine, giving a large > number of individual messages. > > Using emacs 22.1, the result is only two message: > * correct first message, the "Today's Topics" message > * all other real messages are kept as part of a single message. > > I get the same result using --no-init-file. > ... > > If I use emacs 22.1 but load the emacs 21.3 version of > .../lisp/mail/undigest.el, then undigestify works correctly. Since then I've been using the version of undigest.el from emacs 21.3. There is a new problem that occurs with this solution - that undigestify thinks a line of dashes -------------------------------------------------- separates messages, hence splits messages containing such lines into multiple messages. I'll attach an rmail file containing a single message, a digest message from a mailing list. Message 14 in the digest is a relatively long message, containing multiple topics separated by dashed lines. To reproduce this, load undigest.el from emacs 21.3, open the file using rmail, and undigestify the digest. That long message 14 is split into multiple messages, with all but the first having a blank subject. Here is the rmail summary: 1D 6-Feb -devel-request@r-project.[1335] R-devel Digest, Vol 60, Issue 6 2 6-Feb -devel-request@r-project. [43] R-devel Digest, Vol 60, Issue 6 3- 4-Feb scott.yonker@gmail.com [24] [Rd] garchFit (PR#10698) ... 15- 6-Feb p.murrell@auckland.ac.nz [141] Re: [Rd] Error in grid.text after tcltk package loaded 16- 6-Feb to: r-devel@stat.math.eth [10] [Rd] Suggestions for R-intro manual (PR#10701) 17- to: r-devel@r-project.org [23] 18- to: r-devel@r-project.org [18] 19- to: r-devel@r-project.org [10] 20- to: r-devel@r-project.org [14] 21- to: r-devel@r-project.org [8] 22- to: r-devel@r-project.org [14] 23- to: r-devel@r-project.org [7] 24- to: r-devel@r-project.org [9] 25- to: r-devel@r-project.org [31] 26- 6-Feb ripley@stats.ox.ac.uk [47] Re: [Rd] R valgrind question 27 to: r-devel@r-project.org [8] In contrast, the list of topics within the original digest: Today's Topics: 1. garchFit (PR#10698) (scott.yonker@gmail.com) ... 13. Re: Error in grid.text after tcltk package loaded (Paul Murrell) 14. Suggestions for R-intro manual (PR#10701) (timh@insightful.com) 15. Re: R valgrind question (Prof Brian Ripley) If I start emacs with --no-init-file I can reproduce both bugs; failure to split into component messages with the current version of undigest.el, and extra splits using the old version. In GNU Emacs 22.1.1 (i386-mingw-nt5.1.2600) of 2007-06-02 on RELEASE Windowing system distributor `Microsoft Corp.', version 5.1.2600 configured using `configure --with-gcc (3.4) --cflags -Ic:/gnuwin32/include' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: ENU locale-coding-system: cp1252 default-enable-multibyte-characters: t Major mode: RMAIL Summary Minor modes in effect: display-time-mode: t shell-dirtrack-mode: t show-paren-mode: t encoded-kbd-mode: t tooltip-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t unify-8859-on-encoding-mode: t utf-translate-cjk-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t Recent input: SPC a n d SPC e x t r a SPC s p l i t s SPC u s i n g SPC t h e SPC o l d SPC v e r s i o n . C-n C-SPC C-n C-n C-n C-n C-n C-w C-u C-x r t e m p C-x k C-x 1 v C-u C-u C-p C-u C-p C-u C-p C-u C-p C-e a SPC l i n e C-n C-n C-u C-f C-u C-f C-u C-f C-f d s p l i t s C-n C-a d C-d C-u C-p C-n C-e SPC o f SPC d a s y e s h e s C-u C-p C-u C-p C-u C-p C-u C-p C-p C-p C-p C-u C-f C-u C-f C-e SPC . C-p C-p C-p C-p C-e C-n C-n C-n C-a C-SPC > C-x C-x C-SPC C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n w C-x N C-x b t e m p 2 C-y < C-x N C-x k C-u C-x r t e m p x u n d i g e s t i f y h x e m a c s - r e p r e p o r t Recent messages: Counting messages...done Mark set [3 times] Saved text from "First some background on a problem I rep" Mark set [2 times] Counting messages...done Message successfully undigestified Counting messages...done Computing summary lines...done Making completion list... Loading emacsbug...done --++----------20080206092304-189805385----------++ Content-Type: application/octet-stream; name="temp" Content-Transfer-Encoding: base64 QkFCWUwgT1BUSU9OUzogLSotIHJtYWlsIC0qLQpWZXJzaW9uOiA1CkxhYmVsczoKTm90ZTogICBU aGlzIGlzIHRoZSBoZWFkZXIgb2YgYW4gcm1haWwgZmlsZS4KTm90ZTogICBJZiB5b3UgYXJlIHNl ZWluZyBpdCBpbiBybWFpbCwKTm90ZTogICAgaXQgbWVhbnMgdGhlIGZpbGUgaGFzIG5vIG1lc3Nh Z2VzIGluIGl0LgofDAoxLCBmaWxlZCwgZGV0YWNoZWQsLApYLUNvZGluZy1TeXN0ZW06IHVzLWFz Y2lpLXVuaXgKUmVjZWl2ZWQ6IGZyb20gc2VzcGFtMDMuaW5zaWdodGZ1bC5jb20gKFsxNzIuMTYu MS4yNTFdKSBieSBzZXdpbmV4Y2gwMC5pbnNpZ2h0ZnVsLmNvbSB3aXRoIE1pY3Jvc29mdCBTTVRQ U1ZDKDYuMC4zNzkwLjE4MzApOwoJIFdlZCwgNiBGZWIgMjAwOCAwMzowNjo1NCAtMDgwMApYLUFT Ry1EZWJ1Zy1JRDogMTIwMjI5NjAxMi03ODQwMDAwZTAwMDAtekFsbTBtClgtQmFycmFjdWRhLVVS TDogaHR0cDovLzE3Mi4xNi4xLjI1MTo4MDAwL2NnaS1iaW4vbWFyay5jZ2kKWC1CYXJyYWN1ZGEt Q29ubmVjdDogaHlwYXRpYS5tYXRoLmV0aHouY2hbMTI5LjEzMi4xNDUuMTVdClgtQmFycmFjdWRh LVN0YXJ0LVRpbWU6IDEyMDIyOTYwMTIKWC1BU0ctV2hpdGVsaXN0OiAgU2VuZGVyClJlY2VpdmVk OiBmcm9tIGh5cGF0aWEubWF0aC5ldGh6LmNoIChoeXBhdGlhLm1hdGguZXRoei5jaCBbMTI5LjEz Mi4xNDUuMTVdKQoJYnkgc2VzcGFtMDMuaW5zaWdodGZ1bC5jb20gKFNwYW0gRmlyZXdhbGwpIHdp dGggRVNNVFAgaWQgQkUwRjAzODQ4MQoJZm9yIDx0aW1oQGluc2lnaHRmdWwuY29tPjsgV2VkLCAg NiBGZWIgMjAwOCAwMzowNjo1MiAtMDgwMCAoUFNUKQpSZWNlaXZlZDogZnJvbSBoeXBhdGlhLm1h dGguZXRoei5jaCAoaHlwYXRpYSBbMTI5LjEzMi4xNDUuMTVdKQoJYnkgaHlwYXRpYS5tYXRoLmV0 aHouY2ggKDguMTQuMS84LjE0LjEpIHdpdGggRVNNVFAgaWQgbTE2QjVnakEwMDY4NTM7CglXZWQs IDYgRmViIDIwMDggMTI6MDU6NTEgKzAxMDAKRnJvbTogci1kZXZlbC1yZXF1ZXN0QHItcHJvamVj dC5vcmcKWC1BU0ctT3JpZy1TdWJqOiBSLWRldmVsIERpZ2VzdCwgVm9sIDYwLCBJc3N1ZSA2ClN1 YmplY3Q6IFItZGV2ZWwgRGlnZXN0LCBWb2wgNjAsIElzc3VlIDYKVG86IHItZGV2ZWxAci1wcm9q ZWN0Lm9yZwpSZXBseS1Ubzogci1kZXZlbEByLXByb2plY3Qub3JnCkRhdGU6IFdlZCwgMDYgRmVi IDIwMDggMTI6MDA6MDQgKzAxMDAKTWVzc2FnZS1JRDogPG1haWxtYW4uMjEuMTIwMjI5NTYwNC4x NzU4LnItZGV2ZWxAci1wcm9qZWN0Lm9yZz4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1cy1hc2NpaSIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogN2JpdApYLUJlZW5UaGVyZTogci1kZXZlbEByLXByb2plY3Qub3JnClgtTWFpbG1hbi1WZXJz aW9uOiAyLjEuOQpQcmVjZWRlbmNlOiBsaXN0Ckxpc3QtSWQ6IFIgZGV2ZWxvcG1lbnQgYW5kIHRl Y2huaWNhbC9wcm9ncmFtbWVyIHRvcGljcyA8ci1kZXZlbC5yLXByb2plY3Qub3JnPgpMaXN0LVVu c3Vic2NyaWJlOiA8aHR0cHM6Ly9zdGF0LmV0aHouY2gvbWFpbG1hbi9saXN0aW5mby9yLWRldmVs PiwKCTxtYWlsdG86ci1kZXZlbC1yZXF1ZXN0QHItcHJvamVjdC5vcmc/c3ViamVjdD11bnN1YnNj cmliZT4KTGlzdC1BcmNoaXZlOiA8aHR0cHM6Ly9zdGF0LmV0aHouY2gvcGlwZXJtYWlsL3ItZGV2 ZWw+Ckxpc3QtUG9zdDogPG1haWx0bzpyLWRldmVsQHItcHJvamVjdC5vcmc+Ckxpc3QtSGVscDog PG1haWx0bzpyLWRldmVsLXJlcXVlc3RAci1wcm9qZWN0Lm9yZz9zdWJqZWN0PWhlbHA+Ckxpc3Qt U3Vic2NyaWJlOiA8aHR0cHM6Ly9zdGF0LmV0aHouY2gvbWFpbG1hbi9saXN0aW5mby9yLWRldmVs PiwKCTxtYWlsdG86ci1kZXZlbC1yZXF1ZXN0QHItcHJvamVjdC5vcmc/c3ViamVjdD1zdWJzY3Jp YmU+ClNlbmRlcjogci1kZXZlbC1ib3VuY2VzQHItcHJvamVjdC5vcmcKRXJyb3JzLVRvOiByLWRl dmVsLWJvdW5jZXNAci1wcm9qZWN0Lm9yZwpYLVZpcnVzLVNjYW5uZWQ6IGJ5IGFtYXZpc2QtbmV3 IGF0IHN0YXQubWF0aC5ldGh6LmNoClgtQmFycmFjdWRhLVZpcnVzLVNjYW5uZWQ6IGJ5IEJhcnJh Y3VkYSBTcGFtIEZpcmV3YWxsIGF0IGluc2lnaHRmdWwuY29tClJldHVybi1QYXRoOiByLWRldmVs LWJvdW5jZXNAci1wcm9qZWN0Lm9yZwpYLU9yaWdpbmFsQXJyaXZhbFRpbWU6IDA2IEZlYiAyMDA4 IDExOjA2OjU0LjAxODggKFVUQykgRklMRVRJTUU9WzYxQTY0QUMwOjAxQzg2OEIwXQoKKioqIEVP T0ggKioqCkZyb206IHItZGV2ZWwtcmVxdWVzdEByLXByb2plY3Qub3JnClN1YmplY3Q6IFItZGV2 ZWwgRGlnZXN0LCBWb2wgNjAsIElzc3VlIDYKVG86IHItZGV2ZWxAci1wcm9qZWN0Lm9yZwpEYXRl OiBXZWQsIDA2IEZlYiAyMDA4IDEyOjAwOjA0ICswMTAwCgpTZW5kIFItZGV2ZWwgbWFpbGluZyBs aXN0IHN1Ym1pc3Npb25zIHRvCglyLWRldmVsQHItcHJvamVjdC5vcmcKClRvIHN1YnNjcmliZSBv ciB1bnN1YnNjcmliZSB2aWEgdGhlIFdvcmxkIFdpZGUgV2ViLCB2aXNpdAoJaHR0cHM6Ly9zdGF0 LmV0aHouY2gvbWFpbG1hbi9saXN0aW5mby9yLWRldmVsCm9yLCB2aWEgZW1haWwsIHNlbmQgYSBt ZXNzYWdlIHdpdGggc3ViamVjdCBvciBib2R5ICdoZWxwJyB0bwoJci1kZXZlbC1yZXF1ZXN0QHIt cHJvamVjdC5vcmcKCllvdSBjYW4gcmVhY2ggdGhlIHBlcnNvbiBtYW5hZ2luZyB0aGUgbGlzdCBh dAoJci1kZXZlbC1vd25lckByLXByb2plY3Qub3JnCgpXaGVuIHJlcGx5aW5nLCBwbGVhc2UgZWRp dCB5b3VyIFN1YmplY3QgbGluZSBzbyBpdCBpcyBtb3JlIHNwZWNpZmljCnRoYW4gIlJlOiBDb250 ZW50cyBvZiBSLWRldmVsIGRpZ2VzdC4uLiIKCgpUb2RheSdzIFRvcGljczoKCiAgIDEuIGdhcmNo Rml0IChQUiMxMDY5OCkgKHNjb3R0LnlvbmtlckBnbWFpbC5jb20pCiAgIDIuIEdvdCAqKiogY2F1 Z2h0IHNlZ2ZhdWx0ICoqKiB3aXRoIFF1YW50cmVnIG9uIE1hYyAoUFIjMTA2OTkpCiAgICAgICho dWFuZ2NlQGdtYWlsLmNvbSkKICAgMy4gUmU6IGdhcmNoRml0IChQUiMxMDY5OCkgKFlvaGFuIENo YWxhYmkpCiAgIDQuIE5lZWQgZm9yIGdhcmJhZ2UgY29sbGVjdGlvbiBhZnRlciBjcmVhdGluZyBv YmplY3QgKElhZ28gTW9zcXVlaXJhKQogICA1LiBSZTogTmVlZCBmb3IgZ2FyYmFnZSBjb2xsZWN0 aW9uIGFmdGVyIGNyZWF0aW5nIG9iamVjdAogICAgICAoSGVucmlrIEJlbmd0c3NvbikKICAgNi4g UmU6IE5lZWQgZm9yIGdhcmJhZ2UgY29sbGVjdGlvbiBhZnRlciBjcmVhdGluZyBvYmplY3QKICAg ICAgKEhlbnJpayBCZW5ndHNzb24pCiAgIDcuIFJlOiBHb3QgKioqIGNhdWdodCBzZWdmYXVsdCAq Kiogd2l0aCBRdWFudHJlZyBvbiBNYWMKICAgICAgKFBSIzEwNjk5KSAoU2ltb24gVXJiYW5laykK ICAgOC4gZm9ydHVuZSgpIGNhbmRpZGF0ZT8gKEJlbiBCb2xrZXIpCiAgIDkuIEVycm9yIGluIGdy aWQudGV4dCBhZnRlciB0Y2x0ayBwYWNrYWdlIGxvYWRlZCAoRXJpayBJdmVyc29uKQogIDEwLiBS ZTogRXJyb3IgaW4gZ3JpZC50ZXh0IGFmdGVyIHRjbHRrIHBhY2thZ2UgbG9hZGVkIChQZXRlciBE YWxnYWFyZCkKICAxMS4gUmU6IEVycm9yIGluIGdyaWQudGV4dCBhZnRlciB0Y2x0ayBwYWNrYWdl IGxvYWRlZCAoRXJpayBJdmVyc29uKQogIDEyLiBSZTogUiB2YWxncmluZCBxdWVzdGlvbiAoRGFu aWVsIE9iZXJza2kpCiAgMTMuIFJlOiBFcnJvciBpbiBncmlkLnRleHQgYWZ0ZXIgdGNsdGsgcGFj a2FnZSBsb2FkZWQgKFBhdWwgTXVycmVsbCkKICAxNC4gU3VnZ2VzdGlvbnMgZm9yIFItaW50cm8g bWFudWFsIChQUiMxMDcwMSkgKHRpbWhAaW5zaWdodGZ1bC5jb20pCiAgMTUuIFJlOiBSIHZhbGdy aW5kIHF1ZXN0aW9uIChQcm9mIEJyaWFuIFJpcGxleSkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpNZXNzYWdl OiAxCkRhdGU6IE1vbiwgIDQgRmViIDIwMDggMjM6MzU6MDcgKzAxMDAgKENFVCkKRnJvbTogc2Nv dHQueW9ua2VyQGdtYWlsLmNvbQpTdWJqZWN0OiBbUmRdIGdhcmNoRml0IChQUiMxMDY5OCkKVG86 IHItZGV2ZWxAc3RhdC5tYXRoLmV0aHouY2gKQ2M6IFItYnVnc0BiaW9zdGF0Lmt1LmRrCk1lc3Nh Z2UtSUQ6IDwyMDA4MDIwNDIyMzUwNy44M0Y5RDI4MkVGRjBAbWFpbC5wdWJoZWFsdGgua3UuZGs+ CgpGdWxsX05hbWU6IFNjb3R0IFlvbmtlcgpWZXJzaW9uOiBSIGZvciBPU1ggQ29jb2EKT1M6IE1h YyBPU1gKU3VibWlzc2lvbiBmcm9tOiAoTlVMTCkgKDI0LjIwOC4xODUuMjExKQoKClRoZSBnYXJj aEZpdCBmdW5jdGlvbiBpbiB0aGUgUm1ldHJpY3MgbGlicmF5IGNhbm5vdCBlc3RpbWF0ZSBBUkNI IG1vZGVscywKbWVhbmluZyB0aGF0IHRoZSBudW1iZXIgb2YgYmV0YSB0ZXJtcyBpbiB0aGUgbW9k ZWwgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4gCkZvciB0aGlzIGZ1bmN0aW9uIG5laXRoZXIg cCBub3IgcSBjYW4gYmUgc2V0IHRvIHplcm8gd2l0aG91dCBhbiBlcnJvci4gIFRoZQpwcm9ibGVt IGxpZXMgaW4gYm90aCB0aGUgc3BlY2lmaWNhdGlvbiBvZiB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9u IGFuZCBpbiB0aGUKZnVuY3Rpb24gdGhhdCBkZXRlcm1pbmVzIHRoZSBpbml0aWFsIHBhcmFtZXRl ciBlc3RpbWF0ZXMuICBBIHNpbXBsZSBpZiBzdGF0ZW1lbnQKc2V0dGluZyBhbHBoYT0wIGlmIHA9 MCBhbmQgYmV0YT0wIGlmIHE9MCAoSSBkb24ndCByZW1lbWJlciB3aGljaCBpcyBwIG9yIHEgSQpt aWdodCBoYXZlIHRoZXNlIHJldmVyc2VkKSBpbiBib3RoIG9mIHRoZXNlIGZ1bmN0aW9ucyBzb2x2 ZXMgdGhlIHByb2JsZW0uCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKTWVzc2Fn ZTogMgpEYXRlOiBUdWUsICA1IEZlYiAyMDA4IDEwOjI1OjI4ICswMTAwIChDRVQpCkZyb206IGh1 YW5nY2VAZ21haWwuY29tClN1YmplY3Q6IFtSZF0gR290ICoqKiBjYXVnaHQgc2VnZmF1bHQgKioq IHdpdGggUXVhbnRyZWcgb24gTWFjCgkoUFIjMTA2OTkpClRvOiByLWRldmVsQHN0YXQubWF0aC5l dGh6LmNoCkNjOiBSLWJ1Z3NAYmlvc3RhdC5rdS5kawpNZXNzYWdlLUlEOiA8MjAwODAyMDUwOTI1 MjguQjhENjMyODM0NjJCQG1haWwucHViaGVhbHRoLmt1LmRrPgoKRnVsbF9OYW1lOiBFZHdhcmQg SHVhbmcKVmVyc2lvbjogMi42LjEKT1M6IE1hYyBPUyAxMC41LjEgTGVvcGFyZApTdWJtaXNzaW9u IGZyb206IChOVUxMKSAoNzEuMTk4LjEwNi4yMzIpCgoKSSdtIHRyeWluZyB0byBydW4gcXVhbnRp bGUgcmVncmVzc2lvbiBvbiBteSBkYXRhLiBJIGp1c3QgY291bGRuJ3QgbWFrZSBpdCB3b3JrLgpU aGUgc2FtZSBkYXRhc2V0IHJhbiBva2F5IG9uIFNUQVRBIDEwLCB0aG8uCgpXb3VsZCB5b3UgcGxl YXNlIHRha2UgYSBsb29rIGF0IGl0PwoKSGVyZSBpcyB0aGUgZXJyb3IgbWVzc2FnZToKCgoKICoq KiBjYXVnaHQgc2VnZmF1bHQgKioqCmFkZHJlc3MgMHgzZmYwMDAwOCwgY2F1c2UgJ21lbW9yeSBu b3QgbWFwcGVkJwoKVHJhY2ViYWNrOgogMTogLkZvcnRyYW4oInJxYnIiLCBhcy5pbnRlZ2VyKG4p LCBhcy5pbnRlZ2VyKHApLCBhcy5pbnRlZ2VyKG4gKyAgICAgNSksCmFzLmludGVnZXIocCArIDMp LCBhcy5pbnRlZ2VyKHAgKyA0KSwgYXMuZG91YmxlKHgpLCBhcy5kb3VibGUoeSksICAgIAphcy5k b3VibGUodGF1KSwgYXMuZG91YmxlKHRvbCksIGZsYWcgPSBhcy5pbnRlZ2VyKDEpLCBjb2VmID0g ZG91YmxlKHApLCAgICAKcmVzaWQgPSBkb3VibGUobiksIGludGVnZXIobiksIGRvdWJsZSgobiAr IDUpICogKHAgKyA0KSksICAgICBkb3VibGUobiksCmFzLmludGVnZXIobnNvbCksIGFzLmludGVn ZXIobmRzb2wpLCBzb2wgPSBkb3VibGUoKHAgKyAgICAgICAgIDMpICogbnNvbCksIGRzb2wKPSBk b3VibGUobiAqIG5kc29sKSwgbHNvbCA9IGFzLmludGVnZXIoMCksICAgICBoID0gaW50ZWdlcihw ICogbnNvbCksIHFuID0KYXMuZG91YmxlKHFuKSwgY3V0b2ZmID0gYXMuZG91YmxlKGN1dG9mZiks ICAgICBjaSA9IGRvdWJsZSg0ICogcCksIHRubWF0ID0KZG91YmxlKDQgKiBwKSwgYXMuZG91Ymxl KGJpZyksICAgICBhcy5sb2dpY2FsKGxjaTEpLCBQQUNLQUdFID0gInF1YW50cmVnIikKIDI6IHJx LmZpdC5icih4LCB5LCB0YXUgPSB0YXUsIC4uLikKIDM6IHN3aXRjaChtZXRob2QsIGZuID0gcnEu Zml0LmZuKHgsIHksIHRhdSA9IHRhdSwgLi4uKSwgZm5iID0gcnEuZml0LmZuYih4LCAgICAKeSwg dGF1ID0gdGF1LCAuLi4pLCBmbmMgPSBycS5maXQuZm5jKHgsIHksIHRhdSA9IHRhdSwgLi4uKSwg ICAgIHBmbiA9CnJxLmZpdC5wZm4oeCwgeSwgdGF1ID0gdGF1LCAuLi4pLCBiciA9IHJxLmZpdC5i cih4LCAgICAgICAgIHksIHRhdSA9IHRhdSwgLi4uKSwKZmNlbiA9IHJxLmZpdC5mY2VuKHgsIHks IHRhdSA9IHRhdSwgICAgICAgICAuLi4pLCBsYXNzbyA9IHJxLmZpdC5sYXNzbyh4LCB5LCB0YXUK PSB0YXUsIC4uLiksIHNjYWQgPSBycS5maXQuc2NhZCh4LCAgICAgICAgIHksIHRhdSA9IHRhdSwg Li4uKSwgeyAgICAgICAgd2hhdCA8LQpwYXN0ZSgicnEuZml0LiIsIG1ldGhvZCwgc2VwID0gIiIp ICAgICAgICBpZiAoZXhpc3RzKHdoYXQsIG1vZGUgPSAiZnVuY3Rpb24iKSkgIAogICAgICAgICAg KGdldCh3aGF0LCBtb2RlID0gImZ1bmN0aW9uIikpKHgsIHksIC4uLikgICAgICAgIGVsc2UKc3Rv cChwYXN0ZSgidW5pbXBsZW1lbnRlZCBtZXRob2Q6IiwgbWV0aG9kKSkgICAgfSkKIDQ6IHJxLmZp dChYLCBZLCB0YXUgPSB0YXUsIG1ldGhvZCwgLi4uKQoKIDU6IHJxKFBBWCB+IFBGQyArIEFBICsg VUEgKyBETCArIENPICsgTlcgKyBVUyArIFE5MzEgKyBROTMyICsgUTkzMyArICAgICBROTM0ICsK UTk0MSArIFE5NDIgKyBROTQzICsgUTk0NCArIFE5NTEgKyBROTUyICsgUTk1MyArIFE5NTQgKyAg ICAgUTk2MSArIFE5NjIgKyBROTYzICsKUTk2NCArIEFUTEJPUyArIEFUTERFTiArIEFUTERGVyAr IEFUTERUVyArICAgICBBVExFV1IgKyBBVExJQUggKyBBVExKRksgKyBBVExMQVMKKyBBVExMQVgg KyBBVExMR0EgKyBBVExNQ08gKyAgICAgQVRMTUlBICsgQVRMTVNQICsgQVRMT1JEICsgQVRMUEhY ICsgQVRMUElUICsKQVRMU0VBICsgQVRMU0ZPICsgICAgIEFUTFNUTCArIEJPU0RFTiArIEJPU0RG VyArIEJPU0RUVyArIEJPU0VXUiArIEJPU0lBSCArCkJPU0pGSyArICAgICBCT1NMQVMgKyBCT1NM QVggKyBCT1NMR0EgKyBCT1NNQ08gKyBCT1NNSUEgKyBCT1NNU1AgKyBCT1NPUkQgKyAgICAKQk9T UEhYICsgQk9TUElUICsgQk9TU0VBICsgQk9TU0ZPICsgQk9TU1RMICsgREVOREZXICsgREVORFRX ICsgICAgIERFTkVXUiArCkRFTklBSCArIERFTkpGSyArIERFTkxBUyArIERFTkxBWCArIERFTkxH QSArIERFTk1DTyArICAgICBERU5NSUEgKyBERU5NU1AgKwpERU5PUkQgKyBERU5QSFggKyBERU5Q SVQgKyBERU5TRUEgKyBERU5TRk8gKyAgICAgREVOU1RMICsgREZXRFRXICsgREZXRVdSICsKREZX SUFIICsgREZXSkZLICsgREZXTEFTICsgREZXTEFYICsgICAgIERGV0xHQSArIERGV01DTyArIERG V01JQSArIERGV01TUCArCkRGV09SRCArIERGV1BIWCArIERGV1BJVCArICAgICBERldTRUEgKyBE RldTRk8gKyBERldTVEwgKyBEVFdFV1IgKyBEVFdJQUggKwpEVFdKRksgKyBEVFdMQVMgKyAgICAg RFRXTEFYICsgRFRXTEdBICsgRFRXTUNPICsgRFRXTUlBICsgRFRXTVNQICsgRFRXT1JEICsKRFRX UEhYICsgICAgIERUV1BJVCArIERUV1NFQSArIERUV1NGTyArIERUV1NUTCArIEVXUklBSCArIEVX UkpGSyArIEVXUkxBUyArICAgIApFV1JMQVggKyBFV1JMR0EgKyBFV1JNQ08gKyBFV1JNSUEgKyBF V1JNU1AgKyBFV1JPUkQgKyBFV1JQSFggKyAgICAgRVdSUElUICsKRVdSU0VBICsgRVdSU0ZPICsg RVdSU1RMICsgSUFISkZLICsgSUFITEFTICsgSUFITEFYICsgICAgIElBSExHQSArIElBSE1DTyAr CklBSE1JQSArIElBSE1TUCArIElBSE9SRCArIElBSFBIWCArIElBSFBJVCArICAgICBJQUhTRUEg KyBJQUhTRk8gKyBJQUhTVEwgKwpKRktMQVMgKyBKRktMQVggKyBKRktMR0EgKyBKRktNQ08gKyAg ICAgSkZLTUlBICsgSkZLTVNQICsgSkZLT1JEICsgSkZLUEhYICsKSkZLUElUICsgSkZLU0VBICsg SkZLU0ZPICsgICAgIEpGS1NUTCArIExBU0xBWCArIExBU0xHQSArIExBU01DTyArIExBU01JQSAr CkxBU01TUCArIExBU09SRCArICAgICBMQVNQSFggKyBMQVNQSVQgKyBMQVNTRUEgKyBMQVNTRk8g KyBMQVNTVEwgKyBMQVhMR0EgKwpMQVhNQ08gKyAgICAgTEFYTUlBICsgTEFYTVNQICsgTEFYT1JE ICsgTEFYUEhYICsgTEFYUElUICsgTEFYU0VBICsgTEFYU0ZPICsgICAgCkxBWFNUTCArIExHQU1D TyArIExHQU1JQSArIExHQU1TUCArIExHQU9SRCArIExHQVBIWCArIExHQVBJVCArICAgICBMR0FT RUEgKwpMR0FTRk8gKyBMR0FTVEwgKyBNQ09NSUEgKyBNQ09NU1AgKyBNQ09PUkQgKyBNQ09QSFgg KyAgICAgTUNPUElUICsgTUNPU0VBICsKTUNPU0ZPICsgTUNPU1RMICsgTUlBTVNQICsgTUlBT1JE ICsgTUlBUEhYICsgICAgIE1JQVBJVCArIE1JQVNFQSArIE1JQVNGTyArCk1JQVNUTCArIE1TUE9S RCArIE1TUFBIWCArIE1TUFBJVCArICAgICBNU1BTRUEgKyBNU1BTRk8gKyBNU1BTVEwgKyBPUkRQ SFggKwpPUkRQSVQgKyBPUkRTRUEgKyBPUkRTRk8gKyAgICAgT1JEU1RMICsgUEhYUElUICsgUEhY U0VBICsgUEhYU0ZPICsgUEhYU1RMICsKUElUU0VBICsgUElUU0ZPICsgICAgIFBJVFNUTCArIFNF QVNGTyArIFNFQVNUTCArIFNGT1NUTCwgdGF1ID0gMC41KQoKUG9zc2libGUgYWN0aW9uczoKMTog YWJvcnQgKHdpdGggY29yZSBkdW1wLCBpZiBlbmFibGVkKQoyOiBub3JtYWwgUiBleGl0CjM6IGV4 aXQgUiB3aXRob3V0IHNhdmluZyB3b3Jrc3BhY2UKNDogZXhpdCBSIHNhdmluZyB3b3Jrc3BhY2UK CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpNZXNzYWdlOiAzCkRhdGU6IFR1ZSwg NSBGZWIgMjAwOCAxMjo1MzoyNSArMDEwMApGcm9tOiBZb2hhbiBDaGFsYWJpIDxjaGFsYWJpQHBo eXMuZXRoei5jaD4KU3ViamVjdDogUmU6IFtSZF0gZ2FyY2hGaXQgKFBSIzEwNjk4KQpUbzogc2Nv dHQueW9ua2VyQGdtYWlsLmNvbQpDYzogUi1idWdzQGJpb3N0YXQua3UuZGssIHItZGV2ZWxAc3Rh dC5tYXRoLmV0aHouY2gKTWVzc2FnZS1JRDogPDIwMDgwMjA1MTI1MzI1LjA4N2VjODNmQHlhbmtl ZS1sYXB0b3A+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VUy1BU0NJSQoKPj4+ PiAiU1lDIiA9PSBzY290dC55b25rZXJAZ21haWwuY29tCj4+Pj4gb24gTW9uLCAgNCBGZWIgMjAw OCAyMzozNTowNyArMDEwMCAoQ0VUKQoKICAgU1lDPiBUaGUgZ2FyY2hGaXQgZnVuY3Rpb24gaW4g dGhlIFJtZXRyaWNzIGxpYnJheSBjYW5ub3QgZXN0aW1hdGUKICAgU1lDPiBBUkNIIG1vZGVscywK ICAgU1lDPiBtZWFuaW5nIHRoYXQgdGhlIG51bWJlciBvZiBiZXRhIHRlcm1zIGluIHRoZSBtb2Rl bCBtdXN0IGJlCiAgIFNZQz4gZ3JlYXRlciB0aGFuIHplcm8uCiAgIFNZQz4gRm9yIHRoaXMgZnVu Y3Rpb24gbmVpdGhlciBwIG5vciBxIGNhbiBiZSBzZXQgdG8gemVybyB3aXRob3V0CiAgIFNZQz4g YW4gZXJyb3IuICBUaGUKICAgU1lDPiBwcm9ibGVtIGxpZXMgaW4gYm90aCB0aGUgc3BlY2lmaWNh dGlvbiBvZiB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9uCiAgIFNZQz4gYW5kIGluIHRoZQogICBTWUM+ IGZ1bmN0aW9uIHRoYXQgZGV0ZXJtaW5lcyB0aGUgaW5pdGlhbCBwYXJhbWV0ZXIgZXN0aW1hdGVz LgogICBTWUM+IEEgc2ltcGxlIGlmIHN0YXRlbWVudAogICBTWUM+IHNldHRpbmcgYWxwaGE9MCBp ZiBwPTAgYW5kIGJldGE9MCBpZiBxPTAgKEkgZG9uJ3QgcmVtZW1iZXIKICAgU1lDPiB3aGljaCBp cyBwIG9yIHEgSQogICBTWUM+IG1pZ2h0IGhhdmUgdGhlc2UgcmV2ZXJzZWQpIGluIGJvdGggb2Yg dGhlc2UgZnVuY3Rpb25zIHNvbHZlcwogICBTWUM+IHRoZSBwcm9ibGVtLgoKSGkgU2NvdHQsCgpU aGFuayB5b3UgZm9yIHRoaXMgaW5mb3JtYXRpb24uIEkgd2lsbCBjYXJlIGFib3V0IGl0LgoKQnV0 IHBsZWFzZSB1c2UgdGhlIFJtZXRyaWNzIGNvcmUgdGVhbSBsaXN0IChybWV0cmljcy1jb3JlQHIt cHJvamVjdC5vcmcpIHRvIHNlbmQKYnVncyByZWxhdGVkIHRvIFJtZXRyaWNzLgoKUmVnYXJkcywK WW9oYW4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpNZXNzYWdlOiA0CkRhdGU6 IFR1ZSwgMDUgRmViIDIwMDggMTc6MDE6MTggKzAxMDAKRnJvbTogSWFnbyBNb3NxdWVpcmEgPGlh Z28ubW9zcXVlaXJhQGdtYWlsLmNvbT4KU3ViamVjdDogW1JkXSBOZWVkIGZvciBnYXJiYWdlIGNv bGxlY3Rpb24gYWZ0ZXIgY3JlYXRpbmcgb2JqZWN0ClRvOiByLWRldmVsQHItcHJvamVjdC5vcmcK TWVzc2FnZS1JRDogPDQ3QTg4ODRFLjQwODA2MDlAZ21haWwuY29tPgpDb250ZW50LVR5cGU6IHRl eHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMTsgZm9ybWF0PWZsb3dlZAoKSGVsbG8sCgpBZnRl ciBleHBlcmllbmNpbmcgc29tZSBkaWZmaWN1bHRpZXMgd2l0aCBsYXJnZSBhcnJheXMsIEkgd2Fz IHN1cnByaXNlZCAKdG8gc2VlIHRoZSBhcHBhcmVudCBuZWVkIGZvciBjbGFzcyB0byBnYygpIGFm dGVyIGNyZWF0aW5nIGZhaXJseSBsYXJnZSAKYXJyYXlzLiBGb3IgZXhhbXBsZSwgY2FsbGluZwoK YTwtYXJyYXkoMiwgZGltPWMoMTAsMTAsMTAsMTAsMTAsMTAwKSkKCm1ha2VzIHRoZSBtZW1vcnkg dXNhZ2Ugb2YgYSBmcmVzaCBzZXNzaW9uIG9mIFIganVtcCBmcm9tIDEzLjggTWIgdG8gCjE2Ni40 IE1iLiBBIGNhbGwgdG8gZ2MoKSBicm91Z2h0IGl0IGRvd24gdG8gOTAuOCBNYiwKCiA+IGdjKCkK ICAgICAgICAgICAgdXNlZCAoTWIpIGdjIHRyaWdnZXIgIChNYikgbWF4IHVzZWQgIChNYikKTmNl bGxzICAgMTMyNjE5ICAzLjYgICAgIDM1MDAwMCAgIDkuNCAgIDM1MDAwMCAgIDkuNApWY2VsbHMg MTAwODY0NDAgNzcuMCAgIDIxMzM1ODg3IDE2Mi44IDIwMDg2NzkyIDE1My4zCgphcyBleHBlY3Rl ZCBieQoKID4gb2JqZWN0LnNpemUoYSkKClsxXSA4MDAwMDEzNgoKRG8gSSBuZWVkIHRvIGNhbGwg Z2MoKSBhZnRlciBjcmVhdGluZyBldmVyeSBsYXJnZSBhcnJheSwgb3IgY2FuIEkgc2V0dXAgCnRo ZSBzeXN0ZW0gdG8gZG8gdGhpcyBtb3JlIG9mdGVuIG9yIGVmZmljaWVudGx5PwoKVGhhbmtzIHZl cnkgbXVjaCwKCgpJYWdvCgoKJHBsYXRmb3JtClsxXSAiaTY4Ni1wYy1saW51eC1nbnUiCiR2ZXJz aW9uLnN0cmluZwpbMV0gIlIgdmVyc2lvbiAyLjYuMSAoMjAwNy0xMS0yNikiCgoKCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKTWVzc2FnZTogNQpEYXRlOiBUdWUsIDUgRmViIDIwMDgg MTA6MTI6NTIgLTA4MDAKRnJvbTogIkhlbnJpayBCZW5ndHNzb24iIDxoYkBzdGF0LmJlcmtlbGV5 LmVkdT4KU3ViamVjdDogUmU6IFtSZF0gTmVlZCBmb3IgZ2FyYmFnZSBjb2xsZWN0aW9uIGFmdGVy IGNyZWF0aW5nIG9iamVjdApUbzogIklhZ28gTW9zcXVlaXJhIiA8aWFnby5tb3NxdWVpcmFAZ21h aWwuY29tPgpDYzogci1kZXZlbEByLXByb2plY3Qub3JnCk1lc3NhZ2UtSUQ6Cgk8NTlkNzk2MWQw ODAyMDUxMDEyczQ1OTY5ZDU4dDY4ODY0YzhmMmY1ZTZlMjBAbWFpbC5nbWFpbC5jb20+CkNvbnRl bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xCgpPbiBGZWIgNSwgMjAwOCA4 OjAxIEFNLCBJYWdvIE1vc3F1ZWlyYSA8aWFnby5tb3NxdWVpcmFAZ21haWwuY29tPiB3cm90ZToK PiBIZWxsbywKPgo+IEFmdGVyIGV4cGVyaWVuY2luZyBzb21lIGRpZmZpY3VsdGllcyB3aXRoIGxh cmdlIGFycmF5cywgSSB3YXMgc3VycHJpc2VkCj4gdG8gc2VlIHRoZSBhcHBhcmVudCBuZWVkIGZv ciBjbGFzcyB0byBnYygpIGFmdGVyIGNyZWF0aW5nIGZhaXJseSBsYXJnZQo+IGFycmF5cy4gRm9y IGV4YW1wbGUsIGNhbGxpbmcKPgo+IGE8LWFycmF5KDIsIGRpbT1jKDEwLDEwLDEwLDEwLDEwLDEw MCkpCj4KPiBtYWtlcyB0aGUgbWVtb3J5IHVzYWdlIG9mIGEgZnJlc2ggc2Vzc2lvbiBvZiBSIGp1 bXAgZnJvbSAxMy44IE1iIHRvCj4gMTY2LjQgTWIuIEEgY2FsbCB0byBnYygpIGJyb3VnaHQgaXQg ZG93biB0byA5MC44IE1iLAo+Cj4gID4gZ2MoKQo+ICAgICAgICAgICAgIHVzZWQgKE1iKSBnYyB0 cmlnZ2VyICAoTWIpIG1heCB1c2VkICAoTWIpCj4gTmNlbGxzICAgMTMyNjE5ICAzLjYgICAgIDM1 MDAwMCAgIDkuNCAgIDM1MDAwMCAgIDkuNAo+IFZjZWxscyAxMDA4NjQ0MCA3Ny4wICAgMjEzMzU4 ODcgMTYyLjggMjAwODY3OTIgMTUzLjMKPgo+IGFzIGV4cGVjdGVkIGJ5Cj4KPiAgPiBvYmplY3Qu c2l6ZShhKQo+Cj4gWzFdIDgwMDAwMTM2CgpJIHRoaW5rIHRoZSByZWFzb24gZm9yIHRoaXMgaXMg dGhhdCBhcnJheSgpIGhhcyB0byAiZXhwYW5kIiB0aGUgaW5wdXQKZGF0YSB0byB0aGUgcmlnaHQg bGVuZ3RoIGludGVybmFsbHk7CgogZGF0YSA8LSByZXAoZGF0YSwgbGVuZ3RoLm91dCA9IHZsKQoK VGhhdCBpcyBhIHNvIGNhbGxlZCAiTkFNRUQiIG9iamVjdCBpbnRlcm5hbGx5IGFuZCB3aGVuIHRo ZSBmb2xsb3dpbmcgY2FsbCB0bwoKICBkaW0oZGF0YSkgPC0gZGltCgpvY2N1cnMsIHRoZSBzYWZl c3QgdGhpbmcgUiBjYW4gZG8gaXMgdG8gY3JlYXRlIGEgY29weS4gW0FueW9uZSwKY29ycmVjdCBt ZSBpZiBJJ20gd3JvbmddLgoKSWYgeW91IGV4cGFuZCB0aGUgaW5wdXQgZGF0YSB5b3Vyc2VsZiwg eW91IHdvbid0IHNlZSB0aGF0IGV4dHJhIGNvcHksIGUuZy4KCiAgZGF0YSA8LSAyCiAgZGltIDwt IGMoMTAsMTAsMTAsMTAsMTAsMTAwKQogIGRhdGEgPC0gcmVwKGRhdGEsIGxlbmd0aC5vdXQ9cHJv ZChkaW0pKQogIGEgPC0gYXJyYXkoZGF0YSwgZGltPWRpbSkKCj4KPiBEbyBJIG5lZWQgdG8gY2Fs bCBnYygpIGFmdGVyIGNyZWF0aW5nIGV2ZXJ5IGxhcmdlIGFycmF5LCBvciBjYW4gSSBzZXR1cAo+ IHRoZSBzeXN0ZW0gdG8gZG8gdGhpcyBtb3JlIG9mdGVuIG9yIGVmZmljaWVudGx5PwoKVGhlIFIg Z2FyYmFnZSBjb2xsZWN0b3Igd2lsbCBmcmVlL2RlYWxsb2NhdGUgdGhhdCBtZW1vcnkgd2hlbgoi bmVlZGVkIi4gIEhvd2V2ZXIsIGNhbGxpbmcgZ2MoKSBleHBsaWNpdGx5IHNob3VsZCBtaW5pbWl6 ZSB0aGUgcmlzawpmb3Igb3Zlci1mcmFnbWVudGVkIG1lbW9yeS4gIEJhc2ljYWxseSwgaWYgdGhl cmUgYXJlIHNldmVyYWwgYmxvY2tzIG9mCmdhcmJhZ2UgbWVtb3J5IGhhbmdpbmcgYXJvdW5kLCB5 b3UgbWlnaHQgZW5kIHVwIHdpdGggYSBzaXR1YXRpb24gd2hlcmUKeW91IGEgbG90IG9mICp0b3Rh bCogbWVtb3J5IGF2YWlsYWJsZSwgYnV0IHlvdSB3aWxsIG9ubHkgYmUgYWJsZSB0bwphbGxvY2F0 ZSBzbWFsbCBjaHVua3Mgb2YgbWVtb3J5IGF0IGFueSB0aW1lLiAgRXZlbiBjYWxsaW5nIGdjKCkg YXQKdGhhdCBzaXR1YXRpb24gd2lsbCBub3QgaGVscDsgdGhlcmUgaXMgbm8gbWVjaGFuaXNtIHRo YXQgZGVmcmFnbWVudHMKbWVtb3J5IGluIFIuICBTbyBjYWxsaW5nIGdjKCkgYWZ0ZXIgbGFyZ2Ug YWxsb2NhdGlvbnMgd2lsbCBhZGQgc29tZQpwcm90ZWN0aW9uIGFnYWluc3QgdGhhdC4KCi9IZW5y aWsKCj4KPiBUaGFua3MgdmVyeSBtdWNoLAo+Cj4KPiBJYWdvCj4KPgo+ICRwbGF0Zm9ybQo+IFsx XSAiaTY4Ni1wYy1saW51eC1nbnUiCj4gJHZlcnNpb24uc3RyaW5nCj4gWzFdICJSIHZlcnNpb24g Mi42LjEgKDIwMDctMTEtMjYpIgo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwo+IFItZGV2ZWxAci1wcm9qZWN0Lm9yZyBtYWlsaW5nIGxpc3QKPiBodHRw czovL3N0YXQuZXRoei5jaC9tYWlsbWFuL2xpc3RpbmZvL3ItZGV2ZWwKPgoKCgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCk1lc3NhZ2U6IDYKRGF0ZTogVHVlLCA1IEZlYiAyMDA4IDEw OjQ1OjM0IC0wODAwCkZyb206ICJIZW5yaWsgQmVuZ3Rzc29uIiA8aGJAc3RhdC5iZXJrZWxleS5l ZHU+ClN1YmplY3Q6IFJlOiBbUmRdIE5lZWQgZm9yIGdhcmJhZ2UgY29sbGVjdGlvbiBhZnRlciBj cmVhdGluZyBvYmplY3QKVG86ICJJYWdvIE1vc3F1ZWlyYSIgPGlhZ28ubW9zcXVlaXJhQGdtYWls LmNvbT4KQ2M6IHItZGV2ZWxAci1wcm9qZWN0Lm9yZwpNZXNzYWdlLUlEOgoJPDU5ZDc5NjFkMDgw MjA1MTA0NWczNTAwNGFhOHc2M2MwNjdiODk4MTVkZWE1QG1haWwuZ21haWwuY29tPgpDb250ZW50 LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMQoKT24gRmViIDUsIDIwMDggMTA6 MTIgQU0sIEhlbnJpayBCZW5ndHNzb24gPGhiQHN0YXQuYmVya2VsZXkuZWR1PiB3cm90ZToKPiBP biBGZWIgNSwgMjAwOCA4OjAxIEFNLCBJYWdvIE1vc3F1ZWlyYSA8aWFnby5tb3NxdWVpcmFAZ21h aWwuY29tPiB3cm90ZToKPiA+IEhlbGxvLAo+ID4KPiA+IEFmdGVyIGV4cGVyaWVuY2luZyBzb21l IGRpZmZpY3VsdGllcyB3aXRoIGxhcmdlIGFycmF5cywgSSB3YXMgc3VycHJpc2VkCj4gPiB0byBz ZWUgdGhlIGFwcGFyZW50IG5lZWQgZm9yIGNsYXNzIHRvIGdjKCkgYWZ0ZXIgY3JlYXRpbmcgZmFp cmx5IGxhcmdlCj4gPiBhcnJheXMuIEZvciBleGFtcGxlLCBjYWxsaW5nCj4gPgo+ID4gYTwtYXJy YXkoMiwgZGltPWMoMTAsMTAsMTAsMTAsMTAsMTAwKSkKPiA+Cj4gPiBtYWtlcyB0aGUgbWVtb3J5 IHVzYWdlIG9mIGEgZnJlc2ggc2Vzc2lvbiBvZiBSIGp1bXAgZnJvbSAxMy44IE1iIHRvCj4gPiAx NjYuNCBNYi4gQSBjYWxsIHRvIGdjKCkgYnJvdWdodCBpdCBkb3duIHRvIDkwLjggTWIsCj4gPgo+ ID4gID4gZ2MoKQo+ID4gICAgICAgICAgICAgdXNlZCAoTWIpIGdjIHRyaWdnZXIgIChNYikgbWF4 IHVzZWQgIChNYikKPiA+IE5jZWxscyAgIDEzMjYxOSAgMy42ICAgICAzNTAwMDAgICA5LjQgICAz NTAwMDAgICA5LjQKPiA+IFZjZWxscyAxMDA4NjQ0MCA3Ny4wICAgMjEzMzU4ODcgMTYyLjggMjAw ODY3OTIgMTUzLjMKPiA+Cj4gPiBhcyBleHBlY3RlZCBieQo+ID4KPiA+ICA+IG9iamVjdC5zaXpl KGEpCj4gPgo+ID4gWzFdIDgwMDAwMTM2Cj4KPiBJIHRoaW5rIHRoZSByZWFzb24gZm9yIHRoaXMg aXMgdGhhdCBhcnJheSgpIGhhcyB0byAiZXhwYW5kIiB0aGUgaW5wdXQKPiBkYXRhIHRvIHRoZSBy aWdodCBsZW5ndGggaW50ZXJuYWxseTsKPgo+ICBkYXRhIDwtIHJlcChkYXRhLCBsZW5ndGgub3V0 ID0gdmwpCj4KPiBUaGF0IGlzIGEgc28gY2FsbGVkICJOQU1FRCIgb2JqZWN0IGludGVybmFsbHkg YW5kIHdoZW4gdGhlIGZvbGxvd2luZyBjYWxsIHRvCj4KPiAgIGRpbShkYXRhKSA8LSBkaW0KPgo+ IG9jY3VycywgdGhlIHNhZmVzdCB0aGluZyBSIGNhbiBkbyBpcyB0byBjcmVhdGUgYSBjb3B5LiBb QW55b25lLAo+IGNvcnJlY3QgbWUgaWYgSSdtIHdyb25nXS4KPgo+IElmIHlvdSBleHBhbmQgdGhl IGlucHV0IGRhdGEgeW91cnNlbGYsIHlvdSB3b24ndCBzZWUgdGhhdCBleHRyYSBjb3B5LCBlLmcu Cj4KPiAgIGRhdGEgPC0gMgo+ICAgZGltIDwtIGMoMTAsMTAsMTAsMTAsMTAsMTAwKQo+ICAgZGF0 YSA8LSByZXAoZGF0YSwgbGVuZ3RoLm91dD1wcm9kKGRpbSkpCj4gICBhIDwtIGFycmF5KGRhdGEs IGRpbT1kaW0pCgpNeSBiYWQgaGVyZTsgdGhhdCBkb2VzIGluZGVlZCBjcmVhdGUgYW4gZXh0cmEg Y29weTsgcmVwKCkgaXMgdGhlCnByb2JsZW0gYW5kIHlvdSBzZWUgdGhhdCB3aGVuIHlvdSBnYygp IGFmdGVyIHJlcCgpLiAgSXQgc2VlbXMgdG8gYmUKaGFyZCB0byBhbGxvY2F0ZSBhbiBhcnJheSB3 aXRoIHZhbHVlcyB3aXRob3V0IGNyZWF0aW5nIGFuIGV4dHJhIGNvcHksCmUuZy4KCmRpbSA8LSBj KDEwLDEwLDEwLDEwLDEwLDEwMCkKZGF0YSA8LSBudW1lcmljKHByb2QoZGltKSkKZGltKGRhdGEp IDwtIGRpbQoKd2lsbCBub3QgY3JlYXRlIGFuIGV4dHJhIGNvcHksIGJ1dCBhcyBzb29uIGFzIHlv dSB0cnkgdG8gc2V0IGEgdmFsdWUKaXQgd2lsbCBoYXBwZW4sIGUuZy4KCmRhdGFbMSwyLDMsNCw1 LDZdIDwtIDIKCkFnYWluLCBJIGJlbGlldmUgdGhpcyBoYXMgdG8gZG8gd2l0aCB0aGUgZmFjdCB0 aGF0IFIgaXMgdGFraW5nIHRoZQpzYWZlc3QgcGF0aCBwb3NzaWJsZSBhbmQgbm90IHJpc2tpbmcg b3ZlcndyaXRpbmcgYW4gZXhpc3Rpbmcgb2JqZWN0IGluCm1lbW9yeSAoUiBpcyBjb3B5IGJ5IHZh bHVlKS4gIE5vdGUgdGhhdCB3aGVuIHlvdSBkbyBhIHNlY29uZAphc3NpZ25tZW50LCB0aGF0ICJz YWZldHkgY29weSIgaXMgYWxyZWFkeSBjcmVhdGVkIHNvIG5vIG1vcmUgY29waWVzCndpbGwgYmUg Y3JlYXRlZCwgZS5nLiBjYWxsaW5nCgpkYXRhWzEsMiwzLDQsNSw3XSA8LSAzCgphZnRlciB0aGUg YWJvdmUgd2lsbCBub3QgY3JlYXRlIGFuIGV4dHJhIGNvcHkuCgovSGVucmlrCgo+Cj4gPgo+ID4g RG8gSSBuZWVkIHRvIGNhbGwgZ2MoKSBhZnRlciBjcmVhdGluZyBldmVyeSBsYXJnZSBhcnJheSwg b3IgY2FuIEkgc2V0dXAKPiA+IHRoZSBzeXN0ZW0gdG8gZG8gdGhpcyBtb3JlIG9mdGVuIG9yIGVm ZmljaWVudGx5Pwo+Cj4gVGhlIFIgZ2FyYmFnZSBjb2xsZWN0b3Igd2lsbCBmcmVlL2RlYWxsb2Nh dGUgdGhhdCBtZW1vcnkgd2hlbgo+ICJuZWVkZWQiLiAgSG93ZXZlciwgY2FsbGluZyBnYygpIGV4 cGxpY2l0bHkgc2hvdWxkIG1pbmltaXplIHRoZSByaXNrCj4gZm9yIG92ZXItZnJhZ21lbnRlZCBt ZW1vcnkuICBCYXNpY2FsbHksIGlmIHRoZXJlIGFyZSBzZXZlcmFsIGJsb2NrcyBvZgo+IGdhcmJh Z2UgbWVtb3J5IGhhbmdpbmcgYXJvdW5kLCB5b3UgbWlnaHQgZW5kIHVwIHdpdGggYSBzaXR1YXRp b24gd2hlcmUKPiB5b3UgYSBsb3Qgb2YgKnRvdGFsKiBtZW1vcnkgYXZhaWxhYmxlLCBidXQgeW91 IHdpbGwgb25seSBiZSBhYmxlIHRvCj4gYWxsb2NhdGUgc21hbGwgY2h1bmtzIG9mIG1lbW9yeSBh dCBhbnkgdGltZS4gIEV2ZW4gY2FsbGluZyBnYygpIGF0Cj4gdGhhdCBzaXR1YXRpb24gd2lsbCBu b3QgaGVscDsgdGhlcmUgaXMgbm8gbWVjaGFuaXNtIHRoYXQgZGVmcmFnbWVudHMKPiBtZW1vcnkg aW4gUi4gIFNvIGNhbGxpbmcgZ2MoKSBhZnRlciBsYXJnZSBhbGxvY2F0aW9ucyB3aWxsIGFkZCBz b21lCj4gcHJvdGVjdGlvbiBhZ2FpbnN0IHRoYXQuCj4KPiAvSGVucmlrCj4KPgo+ID4KPiA+IFRo YW5rcyB2ZXJ5IG11Y2gsCj4gPgo+ID4KPiA+IElhZ28KPiA+Cj4gPgo+ID4gJHBsYXRmb3JtCj4g PiBbMV0gImk2ODYtcGMtbGludXgtZ251Igo+ID4gJHZlcnNpb24uc3RyaW5nCj4gPiBbMV0gIlIg dmVyc2lvbiAyLjYuMSAoMjAwNy0xMS0yNikiCj4gPgo+ID4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gUi1kZXZlbEByLXByb2plY3Qub3JnIG1haWxp bmcgbGlzdAo+ID4gaHR0cHM6Ly9zdGF0LmV0aHouY2gvbWFpbG1hbi9saXN0aW5mby9yLWRldmVs Cj4gPgo+CgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKTWVzc2FnZTogNwpEYXRl OiBUdWUsIDUgRmViIDIwMDggMTQ6MTY6MDQgLTA1MDAKRnJvbTogU2ltb24gVXJiYW5layA8c2lt b24udXJiYW5la0ByLXByb2plY3Qub3JnPgpTdWJqZWN0OiBSZTogW1JkXSBHb3QgKioqIGNhdWdo dCBzZWdmYXVsdCAqKiogd2l0aCBRdWFudHJlZyBvbiBNYWMKCShQUiMxMDY5OSkKVG86IGh1YW5n Y2VAZ21haWwuY29tCkNjOiBSLWJ1Z3NAYmlvc3RhdC5rdS5kaywgci1kZXZlbEBzdGF0Lm1hdGgu ZXRoei5jaApNZXNzYWdlLUlEOiA8MjBBMTg3RTgtNTFEMi00NjY3LUEwRDEtNzEwQjY3RThENDlD QHItcHJvamVjdC5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VUy1BU0NJ STsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzCgpFZHdhcmQsCgpPbiBGZWIgNSwgMjAwOCwgYXQg NDoyNSBBTSwgaHVhbmdjZUBnbWFpbC5jb20gd3JvdGU6Cgo+IEZ1bGxfTmFtZTogRWR3YXJkIEh1 YW5nCj4gVmVyc2lvbjogMi42LjEKPiBPUzogTWFjIE9TIDEwLjUuMSBMZW9wYXJkCj4gU3VibWlz c2lvbiBmcm9tOiAoTlVMTCkgKDcxLjE5OC4xMDYuMjMyKQo+Cj4KPiBJJ20gdHJ5aW5nIHRvIHJ1 biBxdWFudGlsZSByZWdyZXNzaW9uIG9uIG15IGRhdGEuIEkganVzdCBjb3VsZG4ndCAgCj4gbWFr ZSBpdCB3b3JrLgo+IFRoZSBzYW1lIGRhdGFzZXQgcmFuIG9rYXkgb24gU1RBVEEgMTAsIHRoby4K Pgo+IFdvdWxkIHlvdSBwbGVhc2UgdGFrZSBhIGxvb2sgYXQgaXQ/Cj4KCnN1cmUsIGdsYWRseSwg aWYgeW91IHNlbmQgdXMgdGhlIGRhdGEgKG9yIGFueSBvdGhlciB3YXkgdG8gcmVwcm9kdWNlICAK aXQpIC4uLgoKQlRXOiB0aGlzIGlzIGEgY3Jhc2ggaW4gYSBjb250cmlidXRlZCBwYWNrYWdlLCBz byB5b3Ugc2hvdWxkIGFzayB0aGUgIAptYWludGFpbmVyIG9mIHRoZSBwYWNrYWdlIGFuZCBub3Qg ZmlsZSBhbiBSIGJ1ZyByZXBvcnQuCgpUaGFua3MsClNpbW9uCgoKPiBIZXJlIGlzIHRoZSBlcnJv ciBtZXNzYWdlOgo+Cj4KPgo+ICoqKiBjYXVnaHQgc2VnZmF1bHQgKioqCj4gYWRkcmVzcyAweDNm ZjAwMDA4LCBjYXVzZSAnbWVtb3J5IG5vdCBtYXBwZWQnCj4KPiBUcmFjZWJhY2s6Cj4gMTogLkZv cnRyYW4oInJxYnIiLCBhcy5pbnRlZ2VyKG4pLCBhcy5pbnRlZ2VyKHApLCBhcy5pbnRlZ2VyKG4g KyAgICAgIAo+IDUpLAo+IGFzLmludGVnZXIocCArIDMpLCBhcy5pbnRlZ2VyKHAgKyA0KSwgYXMu ZG91YmxlKHgpLCBhcy5kb3VibGUoeSksCj4gYXMuZG91YmxlKHRhdSksIGFzLmRvdWJsZSh0b2wp LCBmbGFnID0gYXMuaW50ZWdlcigxKSwgY29lZiA9ICAKPiBkb3VibGUocCksCj4gcmVzaWQgPSBk b3VibGUobiksIGludGVnZXIobiksIGRvdWJsZSgobiArIDUpICogKHAgKyA0KSksICAgICAgCj4g ZG91YmxlKG4pLAo+IGFzLmludGVnZXIobnNvbCksIGFzLmludGVnZXIobmRzb2wpLCBzb2wgPSBk b3VibGUoKHAgKyAgICAgICAgIDMpICogIAo+IG5zb2wpLCBkc29sCj4gPSBkb3VibGUobiAqIG5k c29sKSwgbHNvbCA9IGFzLmludGVnZXIoMCksICAgICBoID0gaW50ZWdlcihwICogIAo+IG5zb2wp LCBxbiA9Cj4gYXMuZG91YmxlKHFuKSwgY3V0b2ZmID0gYXMuZG91YmxlKGN1dG9mZiksICAgICBj aSA9IGRvdWJsZSg0ICogcCksICAKPiB0bm1hdCA9Cj4gZG91YmxlKDQgKiBwKSwgYXMuZG91Ymxl KGJpZyksICAgICBhcy5sb2dpY2FsKGxjaTEpLCBQQUNLQUdFID0gIAo+ICJxdWFudHJlZyIpCj4g MjogcnEuZml0LmJyKHgsIHksIHRhdSA9IHRhdSwgLi4uKQo+IDM6IHN3aXRjaChtZXRob2QsIGZu ID0gcnEuZml0LmZuKHgsIHksIHRhdSA9IHRhdSwgLi4uKSwgZm5iID0gIAo+IHJxLmZpdC5mbmIo eCwKPiB5LCB0YXUgPSB0YXUsIC4uLiksIGZuYyA9IHJxLmZpdC5mbmMoeCwgeSwgdGF1ID0gdGF1 LCAuLi4pLCAgICAgcGZuID0KPiBycS5maXQucGZuKHgsIHksIHRhdSA9IHRhdSwgLi4uKSwgYnIg PSBycS5maXQuYnIoeCwgICAgICAgICB5LCB0YXUgPSAgCj4gdGF1LCAuLi4pLAo+IGZjZW4gPSBy cS5maXQuZmNlbih4LCB5LCB0YXUgPSB0YXUsICAgICAgICAgLi4uKSwgbGFzc28gPSAgCj4gcnEu Zml0Lmxhc3NvKHgsIHksIHRhdQo+ID0gdGF1LCAuLi4pLCBzY2FkID0gcnEuZml0LnNjYWQoeCwg ICAgICAgICB5LCB0YXUgPSB0YXUsIC4uLiksICAKPiB7ICAgICAgICB3aGF0IDwtCj4gcGFzdGUo InJxLmZpdC4iLCBtZXRob2QsIHNlcCA9ICIiKSAgICAgICAgaWYgKGV4aXN0cyh3aGF0LCBtb2Rl ID0gIAo+ICJmdW5jdGlvbiIpKQo+ICAgICAgICAgIChnZXQod2hhdCwgbW9kZSA9ICJmdW5jdGlv biIpKSh4LCB5LCAuLi4pICAgICAgICBlbHNlCj4gc3RvcChwYXN0ZSgidW5pbXBsZW1lbnRlZCBt ZXRob2Q6IiwgbWV0aG9kKSkgICAgfSkKPiA0OiBycS5maXQoWCwgWSwgdGF1ID0gdGF1LCBtZXRo b2QsIC4uLikKPgo+IDU6IHJxKFBBWCB+IFBGQyArIEFBICsgVUEgKyBETCArIENPICsgTlcgKyBV UyArIFE5MzEgKyBROTMyICsgUTkzMyAgCj4gKyAgICAgUTkzNCArCj4gUTk0MSArIFE5NDIgKyBR OTQzICsgUTk0NCArIFE5NTEgKyBROTUyICsgUTk1MyArIFE5NTQgKyAgICAgUTk2MSArICAKPiBR OTYyICsgUTk2MyArCj4gUTk2NCArIEFUTEJPUyArIEFUTERFTiArIEFUTERGVyArIEFUTERUVyAr ICAgICBBVExFV1IgKyBBVExJQUggKyAgCj4gQVRMSkZLICsgQVRMTEFTCj4gKyBBVExMQVggKyBB VExMR0EgKyBBVExNQ08gKyAgICAgQVRMTUlBICsgQVRMTVNQICsgQVRMT1JEICsgQVRMUEhYICsg IAo+IEFUTFBJVCArCj4gQVRMU0VBICsgQVRMU0ZPICsgICAgIEFUTFNUTCArIEJPU0RFTiArIEJP U0RGVyArIEJPU0RUVyArIEJPU0VXUiArICAKPiBCT1NJQUggKwo+IEJPU0pGSyArICAgICBCT1NM QVMgKyBCT1NMQVggKyBCT1NMR0EgKyBCT1NNQ08gKyBCT1NNSUEgKyBCT1NNU1AgKyAgCj4gQk9T T1JEICsKPiBCT1NQSFggKyBCT1NQSVQgKyBCT1NTRUEgKyBCT1NTRk8gKyBCT1NTVEwgKyBERU5E RlcgKyBERU5EVFcgKyAgICAgIAo+IERFTkVXUiArCj4gREVOSUFIICsgREVOSkZLICsgREVOTEFT ICsgREVOTEFYICsgREVOTEdBICsgREVOTUNPICsgICAgIERFTk1JQSArICAKPiBERU5NU1AgKwo+ IERFTk9SRCArIERFTlBIWCArIERFTlBJVCArIERFTlNFQSArIERFTlNGTyArICAgICBERU5TVEwg KyBERldEVFcgKyAgCj4gREZXRVdSICsKPiBERldJQUggKyBERldKRksgKyBERldMQVMgKyBERldM QVggKyAgICAgREZXTEdBICsgREZXTUNPICsgREZXTUlBICsgIAo+IERGV01TUCArCj4gREZXT1JE ICsgREZXUEhYICsgREZXUElUICsgICAgIERGV1NFQSArIERGV1NGTyArIERGV1NUTCArIERUV0VX UiArICAKPiBEVFdJQUggKwo+IERUV0pGSyArIERUV0xBUyArICAgICBEVFdMQVggKyBEVFdMR0Eg KyBEVFdNQ08gKyBEVFdNSUEgKyBEVFdNU1AgKyAgCj4gRFRXT1JEICsKPiBEVFdQSFggKyAgICAg RFRXUElUICsgRFRXU0VBICsgRFRXU0ZPICsgRFRXU1RMICsgRVdSSUFIICsgRVdSSkZLICsgIAo+ IEVXUkxBUyArCj4gRVdSTEFYICsgRVdSTEdBICsgRVdSTUNPICsgRVdSTUlBICsgRVdSTVNQICsg RVdST1JEICsgRVdSUEhYICsgICAgICAKPiBFV1JQSVQgKwo+IEVXUlNFQSArIEVXUlNGTyArIEVX UlNUTCArIElBSEpGSyArIElBSExBUyArIElBSExBWCArICAgICBJQUhMR0EgKyAgCj4gSUFITUNP ICsKPiBJQUhNSUEgKyBJQUhNU1AgKyBJQUhPUkQgKyBJQUhQSFggKyBJQUhQSVQgKyAgICAgSUFI U0VBICsgSUFIU0ZPICsgIAo+IElBSFNUTCArCj4gSkZLTEFTICsgSkZLTEFYICsgSkZLTEdBICsg SkZLTUNPICsgICAgIEpGS01JQSArIEpGS01TUCArIEpGS09SRCArICAKPiBKRktQSFggKwo+IEpG S1BJVCArIEpGS1NFQSArIEpGS1NGTyArICAgICBKRktTVEwgKyBMQVNMQVggKyBMQVNMR0EgKyBM QVNNQ08gKyAgCj4gTEFTTUlBICsKPiBMQVNNU1AgKyBMQVNPUkQgKyAgICAgTEFTUEhYICsgTEFT UElUICsgTEFTU0VBICsgTEFTU0ZPICsgTEFTU1RMICsgIAo+IExBWExHQSArCj4gTEFYTUNPICsg ICAgIExBWE1JQSArIExBWE1TUCArIExBWE9SRCArIExBWFBIWCArIExBWFBJVCArIExBWFNFQSAr ICAKPiBMQVhTRk8gKwo+IExBWFNUTCArIExHQU1DTyArIExHQU1JQSArIExHQU1TUCArIExHQU9S RCArIExHQVBIWCArIExHQVBJVCArICAgICAgCj4gTEdBU0VBICsKPiBMR0FTRk8gKyBMR0FTVEwg KyBNQ09NSUEgKyBNQ09NU1AgKyBNQ09PUkQgKyBNQ09QSFggKyAgICAgTUNPUElUICsgIAo+IE1D T1NFQSArCj4gTUNPU0ZPICsgTUNPU1RMICsgTUlBTVNQICsgTUlBT1JEICsgTUlBUEhYICsgICAg IE1JQVBJVCArIE1JQVNFQSArICAKPiBNSUFTRk8gKwo+IE1JQVNUTCArIE1TUE9SRCArIE1TUFBI WCArIE1TUFBJVCArICAgICBNU1BTRUEgKyBNU1BTRk8gKyBNU1BTVEwgKyAgCj4gT1JEUEhYICsK PiBPUkRQSVQgKyBPUkRTRUEgKyBPUkRTRk8gKyAgICAgT1JEU1RMICsgUEhYUElUICsgUEhYU0VB ICsgUEhYU0ZPICsgIAo+IFBIWFNUTCArCj4gUElUU0VBICsgUElUU0ZPICsgICAgIFBJVFNUTCAr IFNFQVNGTyArIFNFQVNUTCArIFNGT1NUTCwgdGF1ID0gMC41KQo+Cj4gUG9zc2libGUgYWN0aW9u czoKPiAxOiBhYm9ydCAod2l0aCBjb3JlIGR1bXAsIGlmIGVuYWJsZWQpCj4gMjogbm9ybWFsIFIg ZXhpdAo+IDM6IGV4aXQgUiB3aXRob3V0IHNhdmluZyB3b3Jrc3BhY2UKPiA0OiBleGl0IFIgc2F2 aW5nIHdvcmtzcGFjZQo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IFItZGV2ZWxAci1wcm9qZWN0Lm9yZyBtYWlsaW5nIGxpc3QKPiBodHRwczovL3N0 YXQuZXRoei5jaC9tYWlsbWFuL2xpc3RpbmZvL3ItZGV2ZWwKPgo+CgoKCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQoKTWVzc2FnZTogOApEYXRlOiBUdWUsIDA1IEZlYiAyMDA4IDE1OjAw OjUzIC0wNTAwCkZyb206IEJlbiBCb2xrZXIgPGJvbGtlckB1ZmwuZWR1PgpTdWJqZWN0OiBbUmRd IGZvcnR1bmUoKSBjYW5kaWRhdGU/ClRvOiByLWRldmVsQHItcHJvamVjdC5vcmcKTWVzc2FnZS1J RDogPDQ3QThDMDc1LjEwNjAyMDBAdWZsLmVkdT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBj aGFyc2V0PUlTTy04ODU5LTE7IGZvcm1hdD1mbG93ZWQKCmhpdHM9LTIuNiB0ZXN0cz1CQVlFU18w MCxTUEZfSEVMT19QQVNTLFNQRl9QQVNTClgtVVNGLVNwYW0tRmxhZzogTk8KCi0tLS0tQkVHSU4g UEdQIFNJR05FRCBNRVNTQUdFLS0tLS0KSGFzaDogU0hBMQoKCkZyb206IEJlcnQgR3VudGVyIDxn dW50ZXIuYmVydG9uIDxhdD4gZ2VuZS5jb20+ClN1YmplY3Q6IFJlOiBNYXhpbXVtIG51bWJlciBv ZiB2YXJpYWJsZXMgYWxsb3dlZCBpbiBhIG11bHRpcGxlCmxpbmVhcnJlZ3Jlc3Npb24gbW9kZWwK TmV3c2dyb3VwczogZ21hbmUuY29tcC5sYW5nLnIuZ2VuZXJhbApEYXRlOiAyMDA4LTAyLTA1IDE4 OjAwOjQwIEdNVCAoMSBob3VyIGFuZCA1OSBtaW51dGVzIGFnbykKCkkgc3Ryb25nbHkgc3VnZ2Vz dCB5b3UgY29sbGFib3JhdGUgd2l0aCBhIGxvY2FsIHN0YXRpc3RpY2lhbi4gSSBjYW4gdGhpbmsg b2YKbm8gY2lyY3Vtc3RhbmNlIHdoZXJlIG11bHRpcGxlIHJlZ3Jlc3Npb24gb24gImh1bmRyZWRz IG9mIHRob3VzYW5kcyBvZgp2YXJpYWJsZXMiIGlzIGFueXRoaW5nIG1vcmUgdGhhbiBhIGZhbmN5 IHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLgoKLSAtLSBCZXJ0IEd1bnRlcgpHZW5lbnRlY2ggTm9u Y2xpbmljYWwgU3RhdGlzdGljcwoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lv bjogR251UEcgdjEuNC42IChHTlUvTGludXgpCkNvbW1lbnQ6IFVzaW5nIEdudVBHIHdpdGggTW96 aWxsYSAtIGh0dHA6Ly9lbmlnbWFpbC5tb3pkZXYub3JnCgppRDhEQlFGSHFNQjFjNVVwR2p3emVu TVJBclRCQUo5MFJYWU93ZmVPVkZmKzZjZmF0M2ZRVXo2L1JRQ2VKUTRUCmUyRHQxMnM4WkkxN1px bnEvNHgrMWhNPQo9TGZMUwotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KCgoKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpNZXNzYWdlOiA5CkRhdGU6IFR1ZSwgMDUgRmViIDIwMDgg MTQ6MTg6MTcgLTA2MDAKRnJvbTogRXJpayBJdmVyc29uIDxpdmVyc29uQGJpb3N0YXQud2lzYy5l ZHU+ClN1YmplY3Q6IFtSZF0gRXJyb3IgaW4gZ3JpZC50ZXh0IGFmdGVyIHRjbHRrIHBhY2thZ2Ug bG9hZGVkClRvOiByLWRldmVsQHItcHJvamVjdC5vcmcKTWVzc2FnZS1JRDogPDQ3QThDNDg5LjQw NTA2MDdAYmlvc3RhdC53aXNjLmVkdT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PUlTTy04ODU5LTE7IGZvcm1hdD1mbG93ZWQKCkhlbGxvIC0KCkkgYW0gbm90aWNpbmcgc29tZSBz dHJhbmdlIGVycm9ycyB3aGVuIHVzaW5nIHRoZSBncmlkIHBhY2thZ2UsIGJ1dCAKKGFwcGFyZW50 bHkpIG9ubHkgYWZ0ZXIgbG9hZGluZyB0aGUgdGNsdGsgcGFja2FnZS4gIFRoZSBpbnRlcmFjdGlv biBoZXJlIApkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIG1lLCBhbmQgSSdtIHdvbmRlcmluZyBpZiBh bnlvbmUgZWxzZSBjYW4gCnJlcHJvZHVjZSB0aGlzLCBvciBpZiBpdCBpcyBzcGVjaWZpYyB0byBt eSBzZXR1cC4gIEhlcmUgaXMgbXkgc2Vzc2lvbkluZm86CgpzZXNzaW9uSW5mbygpClIgdmVyc2lv biAyLjYuMiBSQyAoMjAwOC0wMi0wNCByNDQzMzIpCmk2ODYtcGMtbGludXgtZ251Cgpsb2NhbGU6 CkxDX0NUWVBFPWVuX1VTLlVURi04O0xDX05VTUVSSUM9QztMQ19USU1FPWVuX1VTLlVURi04O0xD X0NPTExBVEU9ZW5fVVMuVVRGLTg7TENfTU9ORVRBUlk9ZW5fVVMuVVRGLTg7TENfTUVTU0FHRVM9 ZW5fVVMuVVRGLTg7TENfUEFQRVI9ZW5fVVMuVVRGLTg7TENfTkFNRT1DO0xDX0FERFJFU1M9QztM Q19URUxFUEhPTkU9QztMQ19NRUFTVVJFTUVOVD1lbl9VUy5VVEYtODtMQ19JREVOVElGSUNBVElP Tj1DCgphdHRhY2hlZCBiYXNlIHBhY2thZ2VzOgpbMV0gdGNsdGsgICAgIGdyaWQgICAgICBzdGF0 cyAgICAgZ3JhcGhpY3MgIGdyRGV2aWNlcyB1dGlscyAgICAgZGF0YXNldHMKWzhdIG1ldGhvZHMg ICBiYXNlCgpUaGlzIGFsc28gaGFwcGVucyB0byBtZSBpbiBSIDIuNi4xLiBJJ20gcnVubmluZyBM aW51eCAoUkhFTCA0KSBvbiBhIAozMi1iaXQgSW50ZWwgQ1BVIGFuZCB1c2luZyBLREUuICBUaGVz ZSBhcmUgUiB2ZXJzaW9ucyB0aGF0IEkgaGF2ZSAKY29tcGlsZWQgbXlzZWxmLgoKSSB0cnkgdGhl IGZvbGxvd2luZyBpbiBSIChzdGFydGVkIHdpdGggLS12YW5pbGxhKSwgdGhpcyBpcyB0aGUgc2lt cGxlc3QgCmNvZGUgSSBoYXZlIHRvIHJlcHJvZHVjZSB0aGUgcHJvYmxlbSBvbiBteSBlbmQuCgoj IyBTdGFydCBSIENvZGUKCmxpYnJhcnkoZ3JpZCkKbGlicmFyeSh0Y2x0aykKZ3JpZC50ZXh0KCJh IiwgeCA9IHNlcSgwLDEsIGJ5ID0gLjAwMSkpCgojIyBFbmQgUiBDb2RlCgpUaGUgZ3JhcGhpYyBk cmF3cyB0byBteSBYMTEgZGV2aWNlLCBob3dldmVyLCB3aGVuIEkgdHJ5IHRvIG1vdmUgdGhlIFgx MSAKUiBHcmFwaGljcyBEZXZpY2Ugd2luZG93IHdpdGggbXkgbW91c2UgYW5kICdkcm9wJyBpdCBz b21ld2hlcmUgYnkgCnJlbGVhc2luZyB0aGUgbW91c2UgYnV0dG9uLCBJIGdldCBlcnJvcnMgbGlr ZSB0aGUgZm9sbG93aW5nOgoKID4gRXJyb3IgaW4gZ3JpZC5DYWxsLmdyYXBoaWNzKCJMX3RleHQi LCBhcy5ncmFwaGljc0Fubm90KHgkbGFiZWwpLCB4JHgsIAogIDogaW52YWxpZCBjb2xvciBuYW1l CiA+IEVycm9yIGluIGdyaWQuQ2FsbC5ncmFwaGljcygiTF90ZXh0IiwgYXMuZ3JhcGhpY3NBbm5v dCh4JGxhYmVsKSwgeCR4LCAKICA6IFJFQUwoKSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIGEgJ251 bWVyaWMnLCBub3QgYSAnTlVMTCcKID4gRXJyb3IgaW4gZ3JpZC5DYWxsLmdyYXBoaWNzKCJMX3Rl eHQiLCBhcy5ncmFwaGljc0Fubm90KHgkbGFiZWwpLCB4JHgsIAogIDogVkVDVE9SX0VMVCgpIGNh biBvbmx5IGJlIGFwcGxpZWQgdG8gYSAnbGlzdCcsIG5vdCBhICdpbnRlZ2VyJwogPiBFcnJvciBp biBncmlkLkNhbGwuZ3JhcGhpY3MoIkxfdGV4dCIsIGFzLmdyYXBoaWNzQW5ub3QoeCRsYWJlbCks IHgkeCwgCiAgOiBSRUFMKCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBhICdudW1lcmljJywgbm90 IGEgJ2NoYXJhY3RlcicKID4gRXJyb3IgaW4gZ3JpZC5DYWxsLmdyYXBoaWNzKCJMX3RleHQiLCBh cy5ncmFwaGljc0Fubm90KHgkbGFiZWwpLCB4JHgsIAogIDogUkVBTCgpIGNhbiBvbmx5IGJlIGFw cGxpZWQgdG8gYSAnbnVtZXJpYycsIG5vdCBhICdOVUxMJwogPiBFcnJvciBpbiBncmlkLkNhbGwu Z3JhcGhpY3MoIkxfdGV4dCIsIGFzLmdyYXBoaWNzQW5ub3QoeCRsYWJlbCksIHgkeCwgCiAgOiBS RUFMKCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBhICdudW1lcmljJywgbm90IGEgJ2NoYXInCklu IGFkZGl0aW9uOiBXYXJuaW5nIG1lc3NhZ2U6CkluIGdyaWQuQ2FsbC5ncmFwaGljcygiTF90ZXh0 IiwgYXMuZ3JhcGhpY3NBbm5vdCh4JGxhYmVsKSwgeCR4LCAgOgogICBzdXBwbGllZCBjb2xvciBp cyBub3QgbnVtZXJpYyBub3IgY2hhcmFjdGVyCgpNeSB0cmFjZWJhY2sgYWx3YXlzIGxvb2tzIGxp a2UgdGhpczoKID4gdHJhY2ViYWNrKCkKNTogLkNhbGwuZ3JhcGhpY3MoZm5uYW1lLCAuLi4sIFBB Q0tBR0UgPSAiZ3JpZCIpCjQ6IGdyaWQuQ2FsbC5ncmFwaGljcygiTF90ZXh0IiwgYXMuZ3JhcGhp Y3NBbm5vdCh4JGxhYmVsKSwgeCR4LAogICAgICAgIHgkeSwgcmVzb2x2ZUhKdXN0KHgkanVzdCwg eCRoanVzdCksIHJlc29sdmVWSnVzdCh4JGp1c3QsCiAgICAgICAgICAgIHgkdmp1c3QpLCB4JHJv dCwgeCRjaGVjay5vdmVybGFwKQozOiBkcmF3RGV0YWlscy50ZXh0KHgsIHJlY29yZGluZyA9IEZB TFNFKQoyOiBkcmF3RGV0YWlscyh4LCByZWNvcmRpbmcgPSBGQUxTRSkKMTogZHJhd0dyb2IoeCkK CkkgY2FuIG9ubHkgZ2V0IHRoZXNlIG1lc3NhZ2VzIHRvIGhhcHBlbiBhZnRlciBsb2FkaW5nIHRo ZSB0Y2x0ayBwYWNrYWdlLCAKdXNpbmcgZ3JpZC50ZXh0LCB3aXRoICdtYW55JyB0ZXh0IHN0cmlu Z3MgKGhhcHBlbnMgcmFyZWx5IHdpdGggMTAwLCAKYWxtb3N0IGV2ZXJ5IG1vdmUgd2l0aCAxMDAw IHN0cmluZ3MgYXMgaW4gbXkgZXhhbXBsZSkuCgpJIGZvdW5kIGp1c3Qgb25lIHJlZmVyZW5jZSB0 byBhIHNpbWlsYXIgZXJyb3IgbWVzc2FnZSBpbiB0aGUgYXJjaGl2ZXMsIAphbHRob3VnaCBub3Qg dG8gZG8gd2l0aCBncmlkLiBIZXJlJ3MgYSBsaW5rOgoKaHR0cHM6Ly9zdGF0LmV0aHouY2gvcGlw ZXJtYWlsL3ItZGV2ZWwvMjAwOC1KYW51YXJ5LzA0ODExNy5odG1sCgpDYW4gYW55b25lIGVsc2Ug cmVwbGljYXRlIHRoaXM/IEFueSBpZGVhcyBvbiB3aGF0J3MgZ29pbmcgb24/CgpCZXN0LApFcmlr IEl2ZXJzb24KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpNZXNzYWdlOiAxMApE YXRlOiBUdWUsIDA1IEZlYiAyMDA4IDIyOjIzOjU0ICswMTAwCkZyb206IFBldGVyIERhbGdhYXJk IDxwLmRhbGdhYXJkQGJpb3N0YXQua3UuZGs+ClN1YmplY3Q6IFJlOiBbUmRdIEVycm9yIGluIGdy aWQudGV4dCBhZnRlciB0Y2x0ayBwYWNrYWdlIGxvYWRlZApUbzogRXJpayBJdmVyc29uIDxpdmVy c29uQGJpb3N0YXQud2lzYy5lZHU+CkNjOiByLWRldmVsQHItcHJvamVjdC5vcmcKTWVzc2FnZS1J RDogPDQ3QThEM0VBLjUwMzA1MDhAYmlvc3RhdC5rdS5kaz4KQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PUlTTy04ODU5LTE7IGZvcm1hdD1mbG93ZWQKCkVyaWsgSXZlcnNvbiB3cm90 ZToKPiBIZWxsbyAtCj4KPiBJIGFtIG5vdGljaW5nIHNvbWUgc3RyYW5nZSBlcnJvcnMgd2hlbiB1 c2luZyB0aGUgZ3JpZCBwYWNrYWdlLCBidXQgCj4gKGFwcGFyZW50bHkpIG9ubHkgYWZ0ZXIgbG9h ZGluZyB0aGUgdGNsdGsgcGFja2FnZS4gIFRoZSBpbnRlcmFjdGlvbiBoZXJlIAo+IGRvZXMgbm90 IG1ha2Ugc2Vuc2UgdG8gbWUsIGFuZCBJJ20gd29uZGVyaW5nIGlmIGFueW9uZSBlbHNlIGNhbiAK PiByZXByb2R1Y2UgdGhpcywgb3IgaWYgaXQgaXMgc3BlY2lmaWMgdG8gbXkgc2V0dXAuICBIZXJl IGlzIG15IHNlc3Npb25JbmZvOgo+Cj4gc2Vzc2lvbkluZm8oKQo+IFIgdmVyc2lvbiAyLjYuMiBS QyAoMjAwOC0wMi0wNCByNDQzMzIpCj4gaTY4Ni1wYy1saW51eC1nbnUKPgo+IGxvY2FsZToKPiBM Q19DVFlQRT1lbl9VUy5VVEYtODtMQ19OVU1FUklDPUM7TENfVElNRT1lbl9VUy5VVEYtODtMQ19D T0xMQVRFPWVuX1VTLlVURi04O0xDX01PTkVUQVJZPWVuX1VTLlVURi04O0xDX01FU1NBR0VTPWVu X1VTLlVURi04O0xDX1BBUEVSPWVuX1VTLlVURi04O0xDX05BTUU9QztMQ19BRERSRVNTPUM7TENf VEVMRVBIT05FPUM7TENfTUVBU1VSRU1FTlQ9ZW5fVVMuVVRGLTg7TENfSURFTlRJRklDQVRJT049 Qwo+Cj4gYXR0YWNoZWQgYmFzZSBwYWNrYWdlczoKPiBbMV0gdGNsdGsgICAgIGdyaWQgICAgICBz dGF0cyAgICAgZ3JhcGhpY3MgIGdyRGV2aWNlcyB1dGlscyAgICAgZGF0YXNldHMKPiBbOF0gbWV0 aG9kcyAgIGJhc2UKPgo+IFRoaXMgYWxzbyBoYXBwZW5zIHRvIG1lIGluIFIgMi42LjEuIEknbSBy dW5uaW5nIExpbnV4IChSSEVMIDQpIG9uIGEgCj4gMzItYml0IEludGVsIENQVSBhbmQgdXNpbmcg S0RFLiAgVGhlc2UgYXJlIFIgdmVyc2lvbnMgdGhhdCBJIGhhdmUgCj4gY29tcGlsZWQgbXlzZWxm Lgo+Cj4gSSB0cnkgdGhlIGZvbGxvd2luZyBpbiBSIChzdGFydGVkIHdpdGggLS12YW5pbGxhKSwg dGhpcyBpcyB0aGUgc2ltcGxlc3QgCj4gY29kZSBJIGhhdmUgdG8gcmVwcm9kdWNlIHRoZSBwcm9i bGVtIG9uIG15IGVuZC4KPgo+ICMjIFN0YXJ0IFIgQ29kZQo+Cj4gbGlicmFyeShncmlkKQo+IGxp YnJhcnkodGNsdGspCj4gZ3JpZC50ZXh0KCJhIiwgeCA9IHNlcSgwLDEsIGJ5ID0gLjAwMSkpCj4K PiAjIyBFbmQgUiBDb2RlCj4KPiBUaGUgZ3JhcGhpYyBkcmF3cyB0byBteSBYMTEgZGV2aWNlLCBo b3dldmVyLCB3aGVuIEkgdHJ5IHRvIG1vdmUgdGhlIFgxMSAKPiBSIEdyYXBoaWNzIERldmljZSB3 aW5kb3cgd2l0aCBteSBtb3VzZSBhbmQgJ2Ryb3AnIGl0IHNvbWV3aGVyZSBieSAKPiByZWxlYXNp bmcgdGhlIG1vdXNlIGJ1dHRvbiwgSSBnZXQgZXJyb3JzIGxpa2UgdGhlIGZvbGxvd2luZzoKPgo+ ICA+IEVycm9yIGluIGdyaWQuQ2FsbC5ncmFwaGljcygiTF90ZXh0IiwgYXMuZ3JhcGhpY3NBbm5v dCh4JGxhYmVsKSwgeCR4LCAKPiAgIDogaW52YWxpZCBjb2xvciBuYW1lCj4gID4gRXJyb3IgaW4g Z3JpZC5DYWxsLmdyYXBoaWNzKCJMX3RleHQiLCBhcy5ncmFwaGljc0Fubm90KHgkbGFiZWwpLCB4 JHgsIAo+ICAgOiBSRUFMKCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBhICdudW1lcmljJywgbm90 IGEgJ05VTEwnCj4gID4gRXJyb3IgaW4gZ3JpZC5DYWxsLmdyYXBoaWNzKCJMX3RleHQiLCBhcy5n cmFwaGljc0Fubm90KHgkbGFiZWwpLCB4JHgsIAo+ICAgOiBWRUNUT1JfRUxUKCkgY2FuIG9ubHkg YmUgYXBwbGllZCB0byBhICdsaXN0Jywgbm90IGEgJ2ludGVnZXInCj4gID4gRXJyb3IgaW4gZ3Jp ZC5DYWxsLmdyYXBoaWNzKCJMX3RleHQiLCBhcy5ncmFwaGljc0Fubm90KHgkbGFiZWwpLCB4JHgs IAo+ICAgOiBSRUFMKCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBhICdudW1lcmljJywgbm90IGEg J2NoYXJhY3RlcicKPiAgPiBFcnJvciBpbiBncmlkLkNhbGwuZ3JhcGhpY3MoIkxfdGV4dCIsIGFz LmdyYXBoaWNzQW5ub3QoeCRsYWJlbCksIHgkeCwgCj4gICA6IFJFQUwoKSBjYW4gb25seSBiZSBh cHBsaWVkIHRvIGEgJ251bWVyaWMnLCBub3QgYSAnTlVMTCcKPiAgPiBFcnJvciBpbiBncmlkLkNh bGwuZ3JhcGhpY3MoIkxfdGV4dCIsIGFzLmdyYXBoaWNzQW5ub3QoeCRsYWJlbCksIHgkeCwgCj4g ICA6IFJFQUwoKSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIGEgJ251bWVyaWMnLCBub3QgYSAnY2hh cicKPiBJbiBhZGRpdGlvbjogV2FybmluZyBtZXNzYWdlOgo+IEluIGdyaWQuQ2FsbC5ncmFwaGlj cygiTF90ZXh0IiwgYXMuZ3JhcGhpY3NBbm5vdCh4JGxhYmVsKSwgeCR4LCAgOgo+ICAgIHN1cHBs aWVkIGNvbG9yIGlzIG5vdCBudW1lcmljIG5vciBjaGFyYWN0ZXIKPgo+IE15IHRyYWNlYmFjayBh bHdheXMgbG9va3MgbGlrZSB0aGlzOgo+ICA+IHRyYWNlYmFjaygpCj4gNTogLkNhbGwuZ3JhcGhp Y3MoZm5uYW1lLCAuLi4sIFBBQ0tBR0UgPSAiZ3JpZCIpCj4gNDogZ3JpZC5DYWxsLmdyYXBoaWNz KCJMX3RleHQiLCBhcy5ncmFwaGljc0Fubm90KHgkbGFiZWwpLCB4JHgsCj4gICAgICAgICB4JHks IHJlc29sdmVISnVzdCh4JGp1c3QsIHgkaGp1c3QpLCByZXNvbHZlVkp1c3QoeCRqdXN0LAo+ICAg ICAgICAgICAgIHgkdmp1c3QpLCB4JHJvdCwgeCRjaGVjay5vdmVybGFwKQo+IDM6IGRyYXdEZXRh aWxzLnRleHQoeCwgcmVjb3JkaW5nID0gRkFMU0UpCj4gMjogZHJhd0RldGFpbHMoeCwgcmVjb3Jk aW5nID0gRkFMU0UpCj4gMTogZHJhd0dyb2IoeCkKPgo+IEkgY2FuIG9ubHkgZ2V0IHRoZXNlIG1l c3NhZ2VzIHRvIGhhcHBlbiBhZnRlciBsb2FkaW5nIHRoZSB0Y2x0ayBwYWNrYWdlLCAKPiB1c2lu ZyBncmlkLnRleHQsIHdpdGggJ21hbnknIHRleHQgc3RyaW5ncyAoaGFwcGVucyByYXJlbHkgd2l0 aCAxMDAsIAo+IGFsbW9zdCBldmVyeSBtb3ZlIHdpdGggMTAwMCBzdHJpbmdzIGFzIGluIG15IGV4 YW1wbGUpLgo+Cj4gSSBmb3VuZCBqdXN0IG9uZSByZWZlcmVuY2UgdG8gYSBzaW1pbGFyIGVycm9y IG1lc3NhZ2UgaW4gdGhlIGFyY2hpdmVzLCAKPiBhbHRob3VnaCBub3QgdG8gZG8gd2l0aCBncmlk LiBIZXJlJ3MgYSBsaW5rOgo+Cj4gaHR0cHM6Ly9zdGF0LmV0aHouY2gvcGlwZXJtYWlsL3ItZGV2 ZWwvMjAwOC1KYW51YXJ5LzA0ODExNy5odG1sCj4KPiBDYW4gYW55b25lIGVsc2UgcmVwbGljYXRl IHRoaXM/IEFueSBpZGVhcyBvbiB3aGF0J3MgZ29pbmcgb24/Cj4KPiAgIApIbW0sIEkgY291bGRu J3QgcmVwcm9kdWNlIHRoaXMgd2l0aCBGZWRvcmEgMi42LjEgbm9yIDIuNi4yIFJDIDQ0MTkyLiBJ IAp0YWtlIGl0IHRoaXMgaXMgbm90IGEgdmVyeSByZWNlbnQgdGhpbmc/CgpJdCBzb3VuZHMgbGlr ZSBhbiBldmVudCBsb29wIG1peHVwLCBsaWtlIHRoZSBCYWRXaW5kb3cgaXNzdWUgdGhhdCBzb21l IApwZW9wbGUgc2VlIHNvbWV0aW1lcy4gU29tZSBraW5kIG9mIGNhbGxiYWNrIGdldHRpbmcgbG9z dD8KCkhtbSwgSSBkbyBhY3R1YWxseSBzZWUgc29tZXRoaW5nIGxpa2UgaXQgd2hlbiBfcmVzaXpp bmdfIHRoZSB3aW5kb3c6CgogPiBFcnJvciBpbiBncmlkLkNhbGwuZ3JhcGhpY3MoIkxfdGV4dCIs IGFzLmdyYXBoaWNzQW5ub3QoeCRsYWJlbCksIHgkeCwgIDoKICBSRUFMKCkgY2FuIG9ubHkgYmUg YXBwbGllZCB0byBhICdudW1lcmljJywgbm90IGEgJ2NoYXInCkluIGFkZGl0aW9uOiBXYXJuaW5n IG1lc3NhZ2U6CkluIGdyaWQuQ2FsbC5ncmFwaGljcygiTF90ZXh0IiwgYXMuZ3JhcGhpY3NBbm5v dCh4JGxhYmVsKSwgeCR4LCAgOgogIHN1cHBsaWVkIGNvbG9yIGlzIG5vdCBudW1lcmljIG5vciBj aGFyYWN0ZXIKCj4gQmVzdCwKPiBFcmlrIEl2ZXJzb24KPgo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiBSLWRldmVsQHItcHJvamVjdC5vcmcgbWFpbGlu ZyBsaXN0Cj4gaHR0cHM6Ly9zdGF0LmV0aHouY2gvbWFpbG1hbi9saXN0aW5mby9yLWRldmVsCj4g ICAKCgotLSAKICAgT19fICAtLS0tIFBldGVyIERhbGdhYXJkICAgICAgICAgICAgID9zdGVyIEZh cmltYWdzZ2FkZSA1LCBFbnRyLkIKICBjLyAvJ18gLS0tIERlcHQuIG9mIEJpb3N0YXRpc3RpY3Mg ICAgIFBPIEJveCAyMDk5LCAxMDE0IENwaC4gSwogKCopIFwoKikgLS0gVW5pdmVyc2l0eSBvZiBD b3BlbmhhZ2VuICAgRGVubWFyayAgICAgICAgICBQaDogICgrNDUpIDM1MzI3OTE4Cn5+fn5+fn5+ fn4gLSAocC5kYWxnYWFyZEBiaW9zdGF0Lmt1LmRrKSAgICAgICAgICAgICAgICAgIEZBWDogKCs0 NSkgMzUzMjc5MDcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpNZXNzYWdlOiAx MQpEYXRlOiBUdWUsIDA1IEZlYiAyMDA4IDE1OjU4OjA4IC0wNjAwCkZyb206IEVyaWsgSXZlcnNv biA8aXZlcnNvbkBiaW9zdGF0Lndpc2MuZWR1PgpTdWJqZWN0OiBSZTogW1JkXSBFcnJvciBpbiBn cmlkLnRleHQgYWZ0ZXIgdGNsdGsgcGFja2FnZSBsb2FkZWQKVG86IHItZGV2ZWxAci1wcm9qZWN0 Lm9yZwpNZXNzYWdlLUlEOiA8NDdBOERCRjAuMTAyMDkwOEBiaW9zdGF0Lndpc2MuZWR1PgpDb250 ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMTsgZm9ybWF0PWZsb3dlZAoK CgpFcmlrIEl2ZXJzb24gd3JvdGU6Cj4gSGVsbG8gLQo+IAo+IEkgYW0gbm90aWNpbmcgc29tZSBz dHJhbmdlIGVycm9ycyB3aGVuIHVzaW5nIHRoZSBncmlkIHBhY2thZ2UsIGJ1dCAKPiAoYXBwYXJl bnRseSkgb25seSBhZnRlciBsb2FkaW5nIHRoZSB0Y2x0ayBwYWNrYWdlLiAgVGhlIGludGVyYWN0 aW9uIGhlcmUgCj4gZG9lcyBub3QgbWFrZSBzZW5zZSB0byBtZSwgYW5kIEknbSB3b25kZXJpbmcg aWYgYW55b25lIGVsc2UgY2FuIAo+IHJlcHJvZHVjZSB0aGlzLCBvciBpZiBpdCBpcyBzcGVjaWZp YyB0byBteSBzZXR1cC4gIEhlcmUgaXMgbXkgc2Vzc2lvbkluZm86Cj4gCj4gc2Vzc2lvbkluZm8o KQo+IFIgdmVyc2lvbiAyLjYuMiBSQyAoMjAwOC0wMi0wNCByNDQzMzIpCj4gaTY4Ni1wYy1saW51 eC1nbnUKPiAKPiBsb2NhbGU6Cj4gTENfQ1RZUEU9ZW5fVVMuVVRGLTg7TENfTlVNRVJJQz1DO0xD X1RJTUU9ZW5fVVMuVVRGLTg7TENfQ09MTEFURT1lbl9VUy5VVEYtODtMQ19NT05FVEFSWT1lbl9V Uy5VVEYtODtMQ19NRVNTQUdFUz1lbl9VUy5VVEYtODtMQ19QQVBFUj1lbl9VUy5VVEYtODtMQ19O QU1FPUM7TENfQUREUkVTUz1DO0xDX1RFTEVQSE9ORT1DO0xDX01FQVNVUkVNRU5UPWVuX1VTLlVU Ri04O0xDX0lERU5USUZJQ0FUSU9OPUMKPiAKPiBhdHRhY2hlZCBiYXNlIHBhY2thZ2VzOgo+IFsx XSB0Y2x0ayAgICAgZ3JpZCAgICAgIHN0YXRzICAgICBncmFwaGljcyAgZ3JEZXZpY2VzIHV0aWxz ICAgICBkYXRhc2V0cwo+IFs4XSBtZXRob2RzICAgYmFzZQo+IAo+IFRoaXMgYWxzbyBoYXBwZW5z IHRvIG1lIGluIFIgMi42LjEuIEknbSBydW5uaW5nIExpbnV4IChSSEVMIDQpIG9uIGEgCj4gMzIt Yml0IEludGVsIENQVSBhbmQgdXNpbmcgS0RFLiAgVGhlc2UgYXJlIFIgdmVyc2lvbnMgdGhhdCBJ IGhhdmUgCj4gY29tcGlsZWQgbXlzZWxmLgo+IAo+IEkgdHJ5IHRoZSBmb2xsb3dpbmcgaW4gUiAo c3RhcnRlZCB3aXRoIC0tdmFuaWxsYSksIHRoaXMgaXMgdGhlIHNpbXBsZXN0IAo+IGNvZGUgSSBo YXZlIHRvIHJlcHJvZHVjZSB0aGUgcHJvYmxlbSBvbiBteSBlbmQuCj4gCj4gIyMgU3RhcnQgUiBD b2RlCj4gCj4gbGlicmFyeShncmlkKQo+IGxpYnJhcnkodGNsdGspCj4gZ3JpZC50ZXh0KCJhIiwg eCA9IHNlcSgwLDEsIGJ5ID0gLjAwMSkpCj4gCj4gIyMgRW5kIFIgQ29kZQo+IAo+IFRoZSBncmFw aGljIGRyYXdzIHRvIG15IFgxMSBkZXZpY2UsIGhvd2V2ZXIsIHdoZW4gSSB0cnkgdG8gbW92ZSB0 aGUgWDExIAo+IFIgR3JhcGhpY3MgRGV2aWNlIHdpbmRvdyB3aXRoIG15IG1vdXNlIGFuZCAnZHJv cCcgaXQgc29tZXdoZXJlIGJ5IAo+IHJlbGVhc2luZyB0aGUgbW91c2UgYnV0dG9uLCBJIGdldCBl cnJvcnMgbGlrZSB0aGUgZm9sbG93aW5nOgo+IAo+ICA+IEVycm9yIGluIGdyaWQuQ2FsbC5ncmFw aGljcygiTF90ZXh0IiwgYXMuZ3JhcGhpY3NBbm5vdCh4JGxhYmVsKSwgeCR4LCAKPiAgIDogaW52 YWxpZCBjb2xvciBuYW1lCj4gID4gRXJyb3IgaW4gZ3JpZC5DYWxsLmdyYXBoaWNzKCJMX3RleHQi LCBhcy5ncmFwaGljc0Fubm90KHgkbGFiZWwpLCB4JHgsIAo+ICAgOiBSRUFMKCkgY2FuIG9ubHkg YmUgYXBwbGllZCB0byBhICdudW1lcmljJywgbm90IGEgJ05VTEwnCj4gID4gRXJyb3IgaW4gZ3Jp ZC5DYWxsLmdyYXBoaWNzKCJMX3RleHQiLCBhcy5ncmFwaGljc0Fubm90KHgkbGFiZWwpLCB4JHgs IAo+ICAgOiBWRUNUT1JfRUxUKCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBhICdsaXN0Jywgbm90 IGEgJ2ludGVnZXInCj4gID4gRXJyb3IgaW4gZ3JpZC5DYWxsLmdyYXBoaWNzKCJMX3RleHQiLCBh cy5ncmFwaGljc0Fubm90KHgkbGFiZWwpLCB4JHgsIAo+ICAgOiBSRUFMKCkgY2FuIG9ubHkgYmUg YXBwbGllZCB0byBhICdudW1lcmljJywgbm90IGEgJ2NoYXJhY3RlcicKPiAgPiBFcnJvciBpbiBn cmlkLkNhbGwuZ3JhcGhpY3MoIkxfdGV4dCIsIGFzLmdyYXBoaWNzQW5ub3QoeCRsYWJlbCksIHgk eCwgCj4gICA6IFJFQUwoKSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIGEgJ251bWVyaWMnLCBub3Qg YSAnTlVMTCcKPiAgPiBFcnJvciBpbiBncmlkLkNhbGwuZ3JhcGhpY3MoIkxfdGV4dCIsIGFzLmdy YXBoaWNzQW5ub3QoeCRsYWJlbCksIHgkeCwgCj4gICA6IFJFQUwoKSBjYW4gb25seSBiZSBhcHBs aWVkIHRvIGEgJ251bWVyaWMnLCBub3QgYSAnY2hhcicKPiBJbiBhZGRpdGlvbjogV2FybmluZyBt ZXNzYWdlOgo+IEluIGdyaWQuQ2FsbC5ncmFwaGljcygiTF90ZXh0IiwgYXMuZ3JhcGhpY3NBbm5v dCh4JGxhYmVsKSwgeCR4LCAgOgo+ICAgIHN1cHBsaWVkIGNvbG9yIGlzIG5vdCBudW1lcmljIG5v ciBjaGFyYWN0ZXIKPiAKPiBNeSB0cmFjZWJhY2sgYWx3YXlzIGxvb2tzIGxpa2UgdGhpczoKPiAg PiB0cmFjZWJhY2soKQo+IDU6IC5DYWxsLmdyYXBoaWNzKGZubmFtZSwgLi4uLCBQQUNLQUdFID0g ImdyaWQiKQo+IDQ6IGdyaWQuQ2FsbC5ncmFwaGljcygiTF90ZXh0IiwgYXMuZ3JhcGhpY3NBbm5v dCh4JGxhYmVsKSwgeCR4LAo+ICAgICAgICAgeCR5LCByZXNvbHZlSEp1c3QoeCRqdXN0LCB4JGhq dXN0KSwgcmVzb2x2ZVZKdXN0KHgkanVzdCwKPiAgICAgICAgICAgICB4JHZqdXN0KSwgeCRyb3Qs IHgkY2hlY2sub3ZlcmxhcCkKPiAzOiBkcmF3RGV0YWlscy50ZXh0KHgsIHJlY29yZGluZyA9IEZB TFNFKQo+IDI6IGRyYXdEZXRhaWxzKHgsIHJlY29yZGluZyA9IEZBTFNFKQo+IDE6IGRyYXdHcm9i KHgpCj4gCj4gSSBjYW4gb25seSBnZXQgdGhlc2UgbWVzc2FnZXMgdG8gaGFwcGVuIGFmdGVyIGxv YWRpbmcgdGhlIHRjbHRrIHBhY2thZ2UsIAo+IHVzaW5nIGdyaWQudGV4dCwgd2l0aCAnbWFueScg dGV4dCBzdHJpbmdzIChoYXBwZW5zIHJhcmVseSB3aXRoIDEwMCwgCj4gYWxtb3N0IGV2ZXJ5IG1v dmUgd2l0aCAxMDAwIHN0cmluZ3MgYXMgaW4gbXkgZXhhbXBsZSkuCj4gCj4gSSBmb3VuZCBqdXN0 IG9uZSByZWZlcmVuY2UgdG8gYSBzaW1pbGFyIGVycm9yIG1lc3NhZ2UgaW4gdGhlIGFyY2hpdmVz LCAKPiBhbHRob3VnaCBub3QgdG8gZG8gd2l0aCBncmlkLiBIZXJlJ3MgYSBsaW5rOgo+IAo+IGh0 dHBzOi8vc3RhdC5ldGh6LmNoL3BpcGVybWFpbC9yLWRldmVsLzIwMDgtSmFudWFyeS8wNDgxMTcu aHRtbAo+IAo+IENhbiBhbnlvbmUgZWxzZSByZXBsaWNhdGUgdGhpcz8gQW55IGlkZWFzIG9uIHdo YXQncyBnb2luZyBvbj8KCk9uZSBtb3JlIHBpZWNlIG9mIGluZm9ybWF0aW9uLiAgSW4gR25vbWUs IEkgbm90aWNlZCB0aGUgbWVzc2FnZXMgb25seSAKd2hlbiBJJ2QgZHJhZyB0aGUgd2luZG93IHBh cnQgb2YgdGhlIHdheSBvZmYgdGhlIHZpc2libGUgZGVza3RvcCwgYW5kIAp0aGVuIGRyYWcgaXQg YmFjayBvbiBhbmQgZHJvcCBpdC4gIFlvdSBjb3VsZCBzZWUgdGhlIFgxMSB3aW5kb3cgJ2ZsYXNo JyAKd2hpdGUgcXVpY2tseSBhbmQgdGhlbiByZWRyYXcgKHNvcnJ5IGZvciBpbXByZWNpc2UgdGVy bWlub2xvZ3kgaGVyZSkuCk9uIEtERSwgSSBoYXZlIGl0IHNldCB0byBzaG93IHRoZSBYMTEgZ2Vv bWV0cnkgd2hlbiBtb3Zpbmcgd2luZG93cywgCndoaWNoIG1lYW5zIGl0IG11c3QgJ3JlZHJhdycg Zm9yIGVhY2ggbW92ZSwgc2luY2UgdGhlIGdlb21ldHJ5IHdpbmRvdyAKb2JzY3VyZXMgdGhlIGRl dmljZSBjb250ZW50cy4gIE9uY2UgSSB0b29rIG9mZiB0aGUgZ2VvbWV0cnkgc2V0dGluZywgSSAK aGFkIHRvIGRyYWcgdGhlIHdpbmRvd3MgcGFydCBvZiB0aGUgd2F5IG9mZiB0aGUgc2NyZWVuLCBh bmQgdGhlbiBiYWNrIG9uIAp0byBjYXVzZSB0aGlzIGJlaGF2aW9yLgoKCj4gCj4gQmVzdCwKPiBF cmlrIEl2ZXJzb24KPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4gUi1kZXZlbEByLXByb2plY3Qub3JnIG1haWxpbmcgbGlzdAo+IGh0dHBzOi8vc3Rh dC5ldGh6LmNoL21haWxtYW4vbGlzdGluZm8vci1kZXZlbAoKCgotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCk1lc3NhZ2U6IDEyCkRhdGU6IFdlZCwgNiBGZWIgMjAwOCAwMDozMjoxNiAr MDEwMApGcm9tOiAiRGFuaWVsIE9iZXJza2kiIDxkYW5pZWwub2JlcnNraUBnbWFpbC5jb20+ClN1 YmplY3Q6IFJlOiBbUmRdIFIgdmFsZ3JpbmQgcXVlc3Rpb24KVG86IHItZGV2ZWxAci1wcm9qZWN0 Lm9yZwpNZXNzYWdlLUlEOgoJPDgxN2UyNTczMDgwMjA1MTUzMnQ1NDU5Yzg5cDUwMGQ1ODBlNzdh OThhZTBAbWFpbC5nbWFpbC5jb20+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOAoKPiA+Cj4gPiBJZiBydW4gdmFsZ3JpbmQgUiB0aGVuIEkgZ2V0IGFsbCBzb3J0cyBvZiB3 YXJuaW5ncy4gSSB3YXMgd29uZGVyaW5nCj4gPiB3aGV0aGVyIEkgc2hvdWxkIHdvcnJ5IGFib3V0 IHRoZW0gb3Igbm90Lgo+Cj4gRG9uJ3Qgd29ycnkgYWJvdXQgdGhlbS4gVGhvc2UgYXJlIGJlbmln biBpc3N1ZXMgd2l0aCB0aGUgc3lzdGVtCj4gbGlicmFyaWVzLi4gaW5zb2ZhciBhcyB5b3UgdHJ1 c3QgdGhvc2UgbGlicmFyaWVzLCB3aGljaCB5b3Ugc2hvdWxkLi4uIGluCj4gZ2VuZXJhbC4KPgo+ IEplZmYKCgpKZWZmLAoKVGhhbmtzIGZvciB5b3VyIChyZWFzc3VyaW5nKSBhbnN3ZXIuIEkgY2Fu IHNlZSB0aGF0IHlvdSBhcmUgcmlnaHQsCmVzcGVjaWFsbHkgYWJvdXQgdGhlIHdhcm5pbmdzIGF0 IHRoZSBiZWdpbm5pbmcsIGFsbCBvZiB3aGljaCBjb21lIGZyb20KbGQtMi41LnNvLgoKSSB0aGlu ayB0aGUgbWVtb3J5IGxlYWsgd2FybmluZ3MgKHdoaWNoIGRvIGNvbWUgZnJvbSBsaWJSLnNvKSBt YXkgaGF2ZQpzb21ldGhpbmcgdG8gZG8gd2l0aCB0aGUgYXBwYXJlbnQgZmFjdCB0aGF0IHZhbGdy aW5kIHN0b3BzIGJlZm9yZSB0aGUKbWFpbiBsb29wIG9mIFIgaXMgb3Zlciwgc28gdGhlIG1lbW9y eSBpcyBmcmVlZCBhZnRlciB0aGF0IHBvaW50LiBPciBpcwp0aGlzIG5vdCB0cnVlPwoKLSBkYW5p ZWwKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpNZXNzYWdlOiAxMwpEYXRlOiBX ZWQsIDA2IEZlYiAyMDA4IDE0OjE2OjAyICsxMzAwCkZyb206IFBhdWwgTXVycmVsbCA8cC5tdXJy ZWxsQGF1Y2tsYW5kLmFjLm56PgpTdWJqZWN0OiBSZTogW1JkXSBFcnJvciBpbiBncmlkLnRleHQg YWZ0ZXIgdGNsdGsgcGFja2FnZSBsb2FkZWQKVG86IEVyaWsgSXZlcnNvbiA8aXZlcnNvbkBiaW9z dGF0Lndpc2MuZWR1PgpDYzogci1kZXZlbEByLXByb2plY3Qub3JnCk1lc3NhZ2UtSUQ6IDw0N0E5 MEE1Mi43MDAwNjAyQHN0YXQuYXVja2xhbmQuYWMubno+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD1JU08tODg1OS0xCgpIaQoKVGhpcyBsb29rcyBsaWtlIGEgcHJvYmxlbSB3aXRo IHNvbWUgdW5QUk9URUNUZWQgbWVtb3J5IHRoYXQgaXMgZ2V0dGluZwpncmFiYWdlIGNvbGxlY3Rl ZC4gIEEgZ3BhciBvYmplY3QgdGhhdCBpcyBwYXNzZWQgZG93biBpcyBiZWluZyBjb3JydXB0ZWQu CgpJIGNhbiBtYWtlIHRoZSBwcm9ibGVtIGdvIGF3YXkgYnkgUFJPVEVDVGluZyBjdXJyZW50Z3Ag aW4gZ3JpZFRleHQoKSAoaW4KZ3JpZC5jKSwgYnV0IEkgY2FuJ3Qgc2VlIHlldCB3aHkgdGhhdCBu ZWVkcyBQUk9URUNUaW5nIChpZiBpdCByZWFsbHkKZG9lcywgdGhlbiBMT1RTIG9mIHNpbWlsYXIg dmFyaWFibGVzIGFsc28gbmVlZCBQUk9URUNUaW5nKS4KClRoYW5rcyBmb3IgbmFpbGluZyB0aGUg cHJvYmxlbSBkb3duIEVyaWsuCgpJbiBjYXNlIGFueW9uZSBlbHNlIGlzIGludmVzdGlnYXRpbmcs IEkgY291bGQgZXhwbG9yZSB0aGlzIGEgbGl0dGxlIGJ5CnB1dHRpbmcgYSBnZGIgYnJlYWsgaW4g bmFtZTJjb2woKSBhbmQgdGhlbiBmb3JjaW5nIHJlZHJhd3MgKHJlc2l6ZSBvcgpyZXZlYWwgbmV3 IHBhcnRzIG9mIHRoZSB3aW5kb3cpIHVudGlsIG9uZSBvZiB0aGUgcmVkcmF3cyB0cmlnZ2VyZWQg dGhlCidpbnZhbGlkIGNvbG9yIG5hbWUnIGVycm9yLiAgKEkgY291bGRuJ3Qgc2VlIGhvdyB0byB0 cmFwIHRoZSAnUkVBTCgpIGNhbgpvbmx5IC4uLicgZXJyb3JzLikKClBhdWwKCgpFcmlrIEl2ZXJz b24gd3JvdGU6Cj4gCj4gRXJpayBJdmVyc29uIHdyb3RlOgo+PiBIZWxsbyAtCj4+Cj4+IEkgYW0g bm90aWNpbmcgc29tZSBzdHJhbmdlIGVycm9ycyB3aGVuIHVzaW5nIHRoZSBncmlkIHBhY2thZ2Us IGJ1dCAKPj4gKGFwcGFyZW50bHkpIG9ubHkgYWZ0ZXIgbG9hZGluZyB0aGUgdGNsdGsgcGFja2Fn ZS4gIFRoZSBpbnRlcmFjdGlvbiBoZXJlIAo+PiBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIG1lLCBh bmQgSSdtIHdvbmRlcmluZyBpZiBhbnlvbmUgZWxzZSBjYW4gCj4+IHJlcHJvZHVjZSB0aGlzLCBv ciBpZiBpdCBpcyBzcGVjaWZpYyB0byBteSBzZXR1cC4gIEhlcmUgaXMgbXkgc2Vzc2lvbkluZm86 Cj4+Cj4+IHNlc3Npb25JbmZvKCkKPj4gUiB2ZXJzaW9uIDIuNi4yIFJDICgyMDA4LTAyLTA0IHI0 NDMzMikKPj4gaTY4Ni1wYy1saW51eC1nbnUKPj4KPj4gbG9jYWxlOgo+PiBMQ19DVFlQRT1lbl9V Uy5VVEYtODtMQ19OVU1FUklDPUM7TENfVElNRT1lbl9VUy5VVEYtODtMQ19DT0xMQVRFPWVuX1VT LlVURi04O0xDX01PTkVUQVJZPWVuX1VTLlVURi04O0xDX01FU1NBR0VTPWVuX1VTLlVURi04O0xD X1BBUEVSPWVuX1VTLlVURi04O0xDX05BTUU9QztMQ19BRERSRVNTPUM7TENfVEVMRVBIT05FPUM7 TENfTUVBU1VSRU1FTlQ9ZW5fVVMuVVRGLTg7TENfSURFTlRJRklDQVRJT049Qwo+Pgo+PiBhdHRh Y2hlZCBiYXNlIHBhY2thZ2VzOgo+PiBbMV0gdGNsdGsgICAgIGdyaWQgICAgICBzdGF0cyAgICAg Z3JhcGhpY3MgIGdyRGV2aWNlcyB1dGlscyAgICAgZGF0YXNldHMKPj4gWzhdIG1ldGhvZHMgICBi YXNlCj4+Cj4+IFRoaXMgYWxzbyBoYXBwZW5zIHRvIG1lIGluIFIgMi42LjEuIEknbSBydW5uaW5n IExpbnV4IChSSEVMIDQpIG9uIGEgCj4+IDMyLWJpdCBJbnRlbCBDUFUgYW5kIHVzaW5nIEtERS4g IFRoZXNlIGFyZSBSIHZlcnNpb25zIHRoYXQgSSBoYXZlIAo+PiBjb21waWxlZCBteXNlbGYuCj4+ Cj4+IEkgdHJ5IHRoZSBmb2xsb3dpbmcgaW4gUiAoc3RhcnRlZCB3aXRoIC0tdmFuaWxsYSksIHRo aXMgaXMgdGhlIHNpbXBsZXN0IAo+PiBjb2RlIEkgaGF2ZSB0byByZXByb2R1Y2UgdGhlIHByb2Js ZW0gb24gbXkgZW5kLgo+Pgo+PiAjIyBTdGFydCBSIENvZGUKPj4KPj4gbGlicmFyeShncmlkKQo+ PiBsaWJyYXJ5KHRjbHRrKQo+PiBncmlkLnRleHQoImEiLCB4ID0gc2VxKDAsMSwgYnkgPSAuMDAx KSkKPj4KPj4gIyMgRW5kIFIgQ29kZQo+Pgo+PiBUaGUgZ3JhcGhpYyBkcmF3cyB0byBteSBYMTEg ZGV2aWNlLCBob3dldmVyLCB3aGVuIEkgdHJ5IHRvIG1vdmUgdGhlIFgxMSAKPj4gUiBHcmFwaGlj cyBEZXZpY2Ugd2luZG93IHdpdGggbXkgbW91c2UgYW5kICdkcm9wJyBpdCBzb21ld2hlcmUgYnkg Cj4+IHJlbGVhc2luZyB0aGUgbW91c2UgYnV0dG9uLCBJIGdldCBlcnJvcnMgbGlrZSB0aGUgZm9s bG93aW5nOgo+Pgo+PiAgPiBFcnJvciBpbiBncmlkLkNhbGwuZ3JhcGhpY3MoIkxfdGV4dCIsIGFz LmdyYXBoaWNzQW5ub3QoeCRsYWJlbCksIHgkeCwgCj4+ICAgOiBpbnZhbGlkIGNvbG9yIG5hbWUK Pj4gID4gRXJyb3IgaW4gZ3JpZC5DYWxsLmdyYXBoaWNzKCJMX3RleHQiLCBhcy5ncmFwaGljc0Fu bm90KHgkbGFiZWwpLCB4JHgsIAo+PiAgIDogUkVBTCgpIGNhbiBvbmx5IGJlIGFwcGxpZWQgdG8g YSAnbnVtZXJpYycsIG5vdCBhICdOVUxMJwo+PiAgPiBFcnJvciBpbiBncmlkLkNhbGwuZ3JhcGhp Y3MoIkxfdGV4dCIsIGFzLmdyYXBoaWNzQW5ub3QoeCRsYWJlbCksIHgkeCwgCj4+ICAgOiBWRUNU T1JfRUxUKCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBhICdsaXN0Jywgbm90IGEgJ2ludGVnZXIn Cj4+ICA+IEVycm9yIGluIGdyaWQuQ2FsbC5ncmFwaGljcygiTF90ZXh0IiwgYXMuZ3JhcGhpY3NB bm5vdCh4JGxhYmVsKSwgeCR4LCAKPj4gICA6IFJFQUwoKSBjYW4gb25seSBiZSBhcHBsaWVkIHRv IGEgJ251bWVyaWMnLCBub3QgYSAnY2hhcmFjdGVyJwo+PiAgPiBFcnJvciBpbiBncmlkLkNhbGwu Z3JhcGhpY3MoIkxfdGV4dCIsIGFzLmdyYXBoaWNzQW5ub3QoeCRsYWJlbCksIHgkeCwgCj4+ICAg OiBSRUFMKCkgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBhICdudW1lcmljJywgbm90IGEgJ05VTEwn Cj4+ICA+IEVycm9yIGluIGdyaWQuQ2FsbC5ncmFwaGljcygiTF90ZXh0IiwgYXMuZ3JhcGhpY3NB bm5vdCh4JGxhYmVsKSwgeCR4LCAKPj4gICA6IFJFQUwoKSBjYW4gb25seSBiZSBhcHBsaWVkIHRv IGEgJ251bWVyaWMnLCBub3QgYSAnY2hhcicKPj4gSW4gYWRkaXRpb246IFdhcm5pbmcgbWVzc2Fn ZToKPj4gSW4gZ3JpZC5DYWxsLmdyYXBoaWNzKCJMX3RleHQiLCBhcy5ncmFwaGljc0Fubm90KHgk bGFiZWwpLCB4JHgsICA6Cj4+ICAgIHN1cHBsaWVkIGNvbG9yIGlzIG5vdCBudW1lcmljIG5vciBj aGFyYWN0ZXIKPj4KPj4gTXkgdHJhY2ViYWNrIGFsd2F5cyBsb29rcyBsaWtlIHRoaXM6Cj4+ICA+ IHRyYWNlYmFjaygpCj4+IDU6IC5DYWxsLmdyYXBoaWNzKGZubmFtZSwgLi4uLCBQQUNLQUdFID0g ImdyaWQiKQo+PiA0OiBncmlkLkNhbGwuZ3JhcGhpY3MoIkxfdGV4dCIsIGFzLmdyYXBoaWNzQW5u b3QoeCRsYWJlbCksIHgkeCwKPj4gICAgICAgICB4JHksIHJlc29sdmVISnVzdCh4JGp1c3QsIHgk aGp1c3QpLCByZXNvbHZlVkp1c3QoeCRqdXN0LAo+PiAgICAgICAgICAgICB4JHZqdXN0KSwgeCRy b3QsIHgkY2hlY2sub3ZlcmxhcCkKPj4gMzogZHJhd0RldGFpbHMudGV4dCh4LCByZWNvcmRpbmcg PSBGQUxTRSkKPj4gMjogZHJhd0RldGFpbHMoeCwgcmVjb3JkaW5nID0gRkFMU0UpCj4+IDE6IGRy YXdHcm9iKHgpCj4+Cj4+IEkgY2FuIG9ubHkgZ2V0IHRoZXNlIG1lc3NhZ2VzIHRvIGhhcHBlbiBh ZnRlciBsb2FkaW5nIHRoZSB0Y2x0ayBwYWNrYWdlLCAKPj4gdXNpbmcgZ3JpZC50ZXh0LCB3aXRo ICdtYW55JyB0ZXh0IHN0cmluZ3MgKGhhcHBlbnMgcmFyZWx5IHdpdGggMTAwLCAKPj4gYWxtb3N0 IGV2ZXJ5IG1vdmUgd2l0aCAxMDAwIHN0cmluZ3MgYXMgaW4gbXkgZXhhbXBsZSkuCj4+Cj4+IEkg Zm91bmQganVzdCBvbmUgcmVmZXJlbmNlIHRvIGEgc2ltaWxhciBlcnJvciBtZXNzYWdlIGluIHRo ZSBhcmNoaXZlcywgCj4+IGFsdGhvdWdoIG5vdCB0byBkbyB3aXRoIGdyaWQuIEhlcmUncyBhIGxp bms6Cj4+Cj4+IGh0dHBzOi8vc3RhdC5ldGh6LmNoL3BpcGVybWFpbC9yLWRldmVsLzIwMDgtSmFu dWFyeS8wNDgxMTcuaHRtbAo+Pgo+PiBDYW4gYW55b25lIGVsc2UgcmVwbGljYXRlIHRoaXM/IEFu eSBpZGVhcyBvbiB3aGF0J3MgZ29pbmcgb24/Cj4gCj4gT25lIG1vcmUgcGllY2Ugb2YgaW5mb3Jt YXRpb24uICBJbiBHbm9tZSwgSSBub3RpY2VkIHRoZSBtZXNzYWdlcyBvbmx5IAo+IHdoZW4gSSdk IGRyYWcgdGhlIHdpbmRvdyBwYXJ0IG9mIHRoZSB3YXkgb2ZmIHRoZSB2aXNpYmxlIGRlc2t0b3As IGFuZCAKPiB0aGVuIGRyYWcgaXQgYmFjayBvbiBhbmQgZHJvcCBpdC4gIFlvdSBjb3VsZCBzZWUg dGhlIFgxMSB3aW5kb3cgJ2ZsYXNoJyAKPiB3aGl0ZSBxdWlja2x5IGFuZCB0aGVuIHJlZHJhdyAo c29ycnkgZm9yIGltcHJlY2lzZSB0ZXJtaW5vbG9neSBoZXJlKS4KPiBPbiBLREUsIEkgaGF2ZSBp dCBzZXQgdG8gc2hvdyB0aGUgWDExIGdlb21ldHJ5IHdoZW4gbW92aW5nIHdpbmRvd3MsIAo+IHdo aWNoIG1lYW5zIGl0IG11c3QgJ3JlZHJhdycgZm9yIGVhY2ggbW92ZSwgc2luY2UgdGhlIGdlb21l dHJ5IHdpbmRvdyAKPiBvYnNjdXJlcyB0aGUgZGV2aWNlIGNvbnRlbnRzLiAgT25jZSBJIHRvb2sg b2ZmIHRoZSBnZW9tZXRyeSBzZXR0aW5nLCBJIAo+IGhhZCB0byBkcmFnIHRoZSB3aW5kb3dzIHBh cnQgb2YgdGhlIHdheSBvZmYgdGhlIHNjcmVlbiwgYW5kIHRoZW4gYmFjayBvbiAKPiB0byBjYXVz ZSB0aGlzIGJlaGF2aW9yLgo+IAo+IAo+PiBCZXN0LAo+PiBFcmlrIEl2ZXJzb24KPj4KPj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBSLWRldmVsQHIt cHJvamVjdC5vcmcgbWFpbGluZyBsaXN0Cj4+IGh0dHBzOi8vc3RhdC5ldGh6LmNoL21haWxtYW4v bGlzdGluZm8vci1kZXZlbAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiBSLWRldmVsQHItcHJvamVjdC5vcmcgbWFpbGluZyBsaXN0Cj4gaHR0cHM6 Ly9zdGF0LmV0aHouY2gvbWFpbG1hbi9saXN0aW5mby9yLWRldmVsCgotLSAKRHIgUGF1bCBNdXJy ZWxsCkRlcGFydG1lbnQgb2YgU3RhdGlzdGljcwpUaGUgVW5pdmVyc2l0eSBvZiBBdWNrbGFuZApQ cml2YXRlIEJhZyA5MjAxOQpBdWNrbGFuZApOZXcgWmVhbGFuZAo2NCA5IDM3Mzc1OTkgeDg1Mzky CnBhdWxAc3RhdC5hdWNrbGFuZC5hYy5uegpodHRwOi8vd3d3LnN0YXQuYXVja2xhbmQuYWMubnov fnBhdWwvCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKTWVzc2FnZTogMTQKRGF0 ZTogV2VkLCAgNiBGZWIgMjAwOCAwNDowNToyNyArMDEwMCAoQ0VUKQpGcm9tOiB0aW1oQGluc2ln aHRmdWwuY29tClN1YmplY3Q6IFtSZF0gU3VnZ2VzdGlvbnMgZm9yIFItaW50cm8gbWFudWFsIChQ UiMxMDcwMSkKVG86IHItZGV2ZWxAc3RhdC5tYXRoLmV0aHouY2gKQ2M6IFItYnVnc0BiaW9zdGF0 Lmt1LmRrCk1lc3NhZ2UtSUQ6IDwyMDA4MDIwNjAzMDUyNy44RUZEQTI4MzQ2MTVAbWFpbC5wdWJo ZWFsdGgua3UuZGs+CgpTb21lIHN1Z2dlc3Rpb25zIGZvciBSLWludHJvOgoKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KU2VjdGlvbiA5LjIuMiwgY2hh bmdlOgooTm90ZSB0aGUgZnVuY3Rpb24gc3BsaXQoKSB3aGljaCBwcm9kdWNlcyBhIGxpc3Qgb2Yg dmVjdG9ycyBvYnRhaW5lZApieSBzcGxpdHRpbmcgYSBsYXJnZXIgdmVjdG9yIGFjY29yZGluZyB0 byB0aGUgY2xhc3NlcyBzcGVjaWZpZWQgYnkgYQpmYWN0b3IuIFRoaXMgaXMgYSB1c2VmdWwgZnVu Y3Rpb24sIG1vc3RseSB1c2VkIGluIGNvbm5lY3Rpb24gd2l0aApib3hwbG90cy4gU2VlIHRoZSBo ZWxwIGZhY2lsaXR5IGZvciBmdXJ0aGVyIGRldGFpbHMuKQoKICAgIFdhcm5pbmc6IGZvcigpIGxv b3BzIGFyZSB1c2VkIGluIFIgY29kZSBtdWNoIGxlc3Mgb2Z0ZW4gdGhhbiBpbgogICAgY29tcGls ZWQgbGFuZ3VhZ2VzLiBDb2RlIHRoYXQgdGFrZXMgYSBgd2hvbGUgb2JqZWN0JyB2aWV3IGlzCiAg ICBsaWtlbHkgdG8gYmUgYm90aCBjbGVhcmVyIGFuZCBmYXN0ZXIgaW4gUi4KCnRvOgoKICAgIFdh cm5pbmc6IGZvcigpIGxvb3BzIGFyZSB1c2VkIGluIFIgY29kZSBtdWNoIGxlc3Mgb2Z0ZW4gdGhh biBpbgogICAgY29tcGlsZWQgbGFuZ3VhZ2VzLiBDb2RlIHRoYXQgdGFrZXMgYSBgd2hvbGUgb2Jq ZWN0JyB2aWV3IGlzCiAgICBsaWtlbHkgdG8gYmUgYm90aCBjbGVhcmVyIGFuZCBmYXN0ZXIgaW4g Ui4KCihOb3RlIHRoZSBmdW5jdGlvbiBzcGxpdCgpIHdoaWNoIHByb2R1Y2VzIGEgbGlzdCBvZiB2 ZWN0b3JzIG9idGFpbmVkCmJ5IHNwbGl0dGluZyBhIGxhcmdlciB2ZWN0b3IgYWNjb3JkaW5nIHRv IHRoZSBjbGFzc2VzIHNwZWNpZmllZCBieSBhCmZhY3Rvci4gIEl0IGNhbiBhbHNvIHNwbGl0IGRh dGEgZnJhbWVzLiAgVGhpcyBpcyBhIHVzZWZ1bCBmdW5jdGlvbiwKb2Z0ZW4gdXNlZCBpbiBjb21i aW5hdGlvbiB3aXRoIGxhcHBseSB0byBhdm9pZCBmb3IoKSBsb29wcy4gIFNlZQpoZWxwKHNwbGl0 KSBhbmQgaGVscChsYXBwbHkpIGZvciBmdXJ0aGVyIGRldGFpbHMuKQoKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KU2VjdGlvbiAxMC4xCgpUaGUgY3Vy cmVudCB0d29zYW0gaXMgZm9yIGEgcG9vbGVkLXZhcmlhbmNlIHQtc3RhdGlzdGljLgpHaXZlIHRo ZSB1bnBvb2xlZCB2ZXJzaW9uIGluc3RlYWQgKGZvciBjb25zaXN0ZW5jeSB3aXRoIHQudGVzdCwK YW5kIGJlY2F1c2UgaXQgaXMgYmV0dGVyIHN0YXRpc3RpY2FsIHByYWN0aWNlKS4KCgpHaXZlIGlu aXRpYWwgY29tbWVudHMgaW4gZnVuY3Rpb25zIHR3b3NhbToKIyBjb21wdXRlIGEgdHdvLXNhbXBs ZSB0LXN0YXRpc3RpYyBmb3IgdGhlIGRpZmZlcmVuY2UgaW4gbWVhbnMKCmFuZCBic2xhc2g6CiMg Q29tcHV0ZSBsZWFzdC1zcXVhcmVzIHJlZ3Jlc3Npb24gY29lZmZpY2llbnRzIChYJ1gpXnstfShY J3kpCgoKQWRkIGluaXRpYWwgY29tbWVudHMgdG8gbGF0ZXIgZnVuY3Rpb25zOyBldmVuIGlmIHRo ZXkgYXJlIG5vdCBuZWVkZWQsCnRoaXMgc2V0cyBhIGdvb2QgZXhhbXBsZS4KCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClNlY3Rpb24gMTEuMS4xCgpU aGlzIGNvbnRhaW5zIG91dGRhdGVkIGluZm9ybWF0aW9uIGFib3V0IGNvbnRyYXN0cyBpbiBTLVBM VVMuCkZvciB2ZXJzaW9uIDguMC40Ogo+IG9wdGlvbnMoImNvbnRyYXN0cyIpCiRjb250cmFzdHM6 CiAgICAgICAgICAgIGZhY3RvciAgICAgIG9yZGVyZWQgCiAiY29udHIudHJlYXRtZW50IiAiY29u dHIucG9seSIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tClNlY3Rpb24gMTEuMwoKSW4gdGhpcyB0ZXh0OgpwcmVkaWN0KG9iamVjdCwgbmV3ZGF0YT1k YXRhLmZyYW1lKQogICAgVGhlIGRhdGEgZnJhbWUgc3VwcGxpZWQgbXVzdCBoYXZlIHZhcmlhYmxl cyBzcGVjaWZpZWQgd2l0aCB0aGUKICAgIHNhbWUgbGFiZWxzIGFzIHRoZSBvcmlnaW5hbC4gVGhl IHZhbHVlIGlzIGEgdmVjdG9yIG9yIG1hdHJpeCBvZgogICAgcHJlZGljdGVkIHZhbHVlcyBjb3Jy ZXNwb25kaW5nIHRvIHRoZQoKaXQgaXMgdW5jbGVhciB3aGF0ICJsYWJlbHMiIG1lYW5zIC0gc2Ft ZSB2YXJpYWJsZSBuYW1lcywgb3Igc2FtZQpsZXZlbHMgZm9yIGZhY3RvciB2YXJpYWJsZXMuICBD aGFuZ2UKInZhcmlhYmxlcyBzcGVjaWZpZWQgd2l0aCB0aGUgc2FtZSBsYWJlbHMiIHRvCiJ2YXJp YWJsZXMgd2l0aCB0aGUgc2FtZSBuYW1lcyIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpTZWN0aW9uIDExLjYKClRoZXJlIGlzIGEgbmV3ZXIgdmVy c2lvbiBvZiBEb2Jzb24sIDIwMDIsIHNlY29uZCBlZGl0aW9uLgoKRG9ic29uIGlzIHJlZmVyZW5j ZWQgbGF0ZXIsIGluIFNlY3Rpb24gMTEuNy4yLgpJIGRvbid0IGhhdmUgdGhlIG5ldyBjb3B5LCBj YW4ndCB0ZWxsIHlvdSBuZXcgcGFnZSBudW1iZXJzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KU2VjdGlvbiAxMi4xCgpDaGFuZ2UKIkhpZ2gtbGV2 ZWwgcGxvdHRpbmcgY29tbWFuZHMgYWx3YXlzIHN0YXJ0IGEgbmV3IHBsb3QsIGVyYXNpbmcgdGhl CmN1cnJlbnQgcGxvdCBpZiBuZWNlc3NhcnkuIgp0bwoiSGlnaC1sZXZlbCBwbG90dGluZyBjb21t YW5kcyBzdGFydCBhIG5ldyBwbG90LCBlcmFzaW5nIHRoZSBjdXJyZW50CnBsb3QgaWYgbmVjZXNz YXJ5LiAgVGhpcyBjYW4gYmUgcHJldmVudGVkIHVzaW5nICdhZGQ9VFJVRScsIHNlZQpzZWN0aW9u IDEyLjEuNCIKb3IKIkhpZ2gtbGV2ZWwgcGxvdHRpbmcgY29tbWFuZHMgc3RhcnQgYSBuZXcgcGxv dCwgZXJhc2luZyB0aGUgY3VycmVudApwbG90IGlmIG5lY2Vzc2FyeS4iCgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpTZWN0aW9uIDEzLjMKClRoZSBs YXN0IHBhcnQgb2YgdGhpcyBzZW50ZW5jZSBzZWVtcyBpcnJlbGV2YW50IHRvIHRoaXMgc2VjdGlv bjoKUGFja2FnZXMgY2FuIGhhdmUgbmFtZXNwYWNlcywgYW5kIGN1cnJlbnRseSBhbGwgb2YgdGhl IGJhc2UgYW5kCnJlY29tbWVuZGVkIHBhY2thZ2VzIGRvIGV4cGVjdCB0aGUgZGF0YXNldHMgcGFj a2FnZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CkFwcGVuZGl4IEEKClByZWZhY2UgY29tbWVudHMgd2l0aCAjLiAgSSdtIGxvb2tpbmcgYXQgdGhl IHdlYgp2ZXJzaW9uIG9mIHRoZSBtYW51YWwsIGFuZCB0aGVyZSBpcyBub3RoaW5nIHRvIGRpc3Rp bmd1aXNoCmNvbnRpbnVhdGlvbnMgb2YgbG9uZyBjb21tYW5kcyBmcm9tIGNvbW1lbnRzLgpVc2lu ZyBjb21tZW50cyB3b3VsZCBhbHNvIGFsbG93IGEgdXNlciB0byBwYXN0ZSBhIGJsb2NrCm9mIGNv ZGUgaW50byBSLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KClRpbSBIZXN0ZXJiZXJnCgoKLS1wbGVhc2UgZG8gbm90IGVkaXQgdGhlIGluZm9ybWF0 aW9uIGJlbG93LS0KClZlcnNpb246CiBwbGF0Zm9ybSA9IGkzODYtcGMtbWluZ3czMgogYXJjaCA9 IGkzODYKIG9zID0gbWluZ3czMgogc3lzdGVtID0gaTM4NiwgbWluZ3czMgogc3RhdHVzID0gCiBt YWpvciA9IDIKIG1pbm9yID0gNi4xCiB5ZWFyID0gMjAwNwogbW9udGggPSAxMQogZGF5ID0gMjYK IHN2biByZXYgPSA0MzUzNwogbGFuZ3VhZ2UgPSBSCiB2ZXJzaW9uLnN0cmluZyA9IFIgdmVyc2lv biAyLjYuMSAoMjAwNy0xMS0yNikKCldpbmRvd3MgWFAgKGJ1aWxkIDI2MDApIFNlcnZpY2UgUGFj ayAyLjAKCkxvY2FsZToKTENfQ09MTEFURT1FbmdsaXNoX1VuaXRlZCBTdGF0ZXMuMTI1MjtMQ19D VFlQRT1FbmdsaXNoX1VuaXRlZCBTdGF0ZXMuMTI1MjtMQ19NT05FVEFSWT1FbmdsaXNoX1VuaXRl ZCBTdGF0ZXMuMTI1MjtMQ19OVU1FUklDPUM7TENfVElNRT1FbmdsaXNoX1VuaXRlZCBTdGF0ZXMu MTI1MgoKU2VhcmNoIFBhdGg6CiAuR2xvYmFsRW52LCBwYWNrYWdlOnN0YXRzLCBwYWNrYWdlOmdy YXBoaWNzLCBwYWNrYWdlOmdyRGV2aWNlcywgcGFja2FnZTp1dGlscywgcGFja2FnZTpkYXRhc2V0 cywgcGFja2FnZTptZXRob2RzLCBBdXRvbG9hZHMsIHBhY2thZ2U6YmFzZQoKCgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCk1lc3NhZ2U6IDE1CkRhdGU6IFdlZCwgNiBGZWIgMjAwOCAw NjozOToyMiArMDAwMCAoR01UKQpGcm9tOiBQcm9mIEJyaWFuIFJpcGxleSA8cmlwbGV5QHN0YXRz Lm94LmFjLnVrPgpTdWJqZWN0OiBSZTogW1JkXSBSIHZhbGdyaW5kIHF1ZXN0aW9uClRvOiBEYW5p ZWwgT2JlcnNraSA8ZGFuaWVsLm9iZXJza2lAZ21haWwuY29tPgpDYzogci1kZXZlbEByLXByb2pl Y3Qub3JnCk1lc3NhZ2UtSUQ6Cgk8YWxwaW5lLkxGRC4xLjAwLjA4MDIwNjA2MzUzNzAuMTIwMTZA Z2FubmV0LnN0YXRzLm94LmFjLnVrPgpDb250ZW50LVR5cGU6IFRFWFQvUExBSU47IGNoYXJzZXQ9 VVMtQVNDSUk7IGZvcm1hdD1mbG93ZWQKCk9uIFdlZCwgNiBGZWIgMjAwOCwgRGFuaWVsIE9iZXJz a2kgd3JvdGU6Cgo+Pj4KPj4+IElmIHJ1biB2YWxncmluZCBSIHRoZW4gSSBnZXQgYWxsIHNvcnRz IG9mIHdhcm5pbmdzLiBJIHdhcyB3b25kZXJpbmcKPj4+IHdoZXRoZXIgSSBzaG91bGQgd29ycnkg YWJvdXQgdGhlbSBvciBub3QuCj4+Cj4+IERvbid0IHdvcnJ5IGFib3V0IHRoZW0uIFRob3NlIGFy ZSBiZW5pZ24gaXNzdWVzIHdpdGggdGhlIHN5c3RlbQo+PiBsaWJyYXJpZXMuLiBpbnNvZmFyIGFz IHlvdSB0cnVzdCB0aG9zZSBsaWJyYXJpZXMsIHdoaWNoIHlvdSBzaG91bGQuLi4gaW4KPj4gZ2Vu ZXJhbC4KPj4KPj4gSmVmZgo+Cj4KPiBKZWZmLAo+Cj4gVGhhbmtzIGZvciB5b3VyIChyZWFzc3Vy aW5nKSBhbnN3ZXIuIEkgY2FuIHNlZSB0aGF0IHlvdSBhcmUgcmlnaHQsCj4gZXNwZWNpYWxseSBh Ym91dCB0aGUgd2FybmluZ3MgYXQgdGhlIGJlZ2lubmluZywgYWxsIG9mIHdoaWNoIGNvbWUgZnJv bQo+IGxkLTIuNS5zby4KPgo+IEkgdGhpbmsgdGhlIG1lbW9yeSBsZWFrIHdhcm5pbmdzICh3aGlj aCBkbyBjb21lIGZyb20gbGliUi5zbykgbWF5IGhhdmUKPiBzb21ldGhpbmcgdG8gZG8gd2l0aCB0 aGUgYXBwYXJlbnQgZmFjdCB0aGF0IHZhbGdyaW5kIHN0b3BzIGJlZm9yZSB0aGUKPiBtYWluIGxv b3Agb2YgUiBpcyBvdmVyLCBzbyB0aGUgbWVtb3J5IGlzIGZyZWVkIGFmdGVyIHRoYXQgcG9pbnQu IE9yIGlzCj4gdGhpcyBub3QgdHJ1ZT8KClZhcmlvdXMgYmxvY2tzIG9mIG1lbW9yeSBhcmUgbm90 IGZyZWVkIHVudGlsIHRoZSBwcm9ncmFtIGlzIHNodXQgZG93biwgYnV0IAphcmUgaW4gdXNlIHVw IHRvIHRoYXQgcG9pbnQgc28gaXQgaXMgbm90IGEgJ2xlYWsnLiAgTW9zdCBvZiB0aGUgd2Fybmlu Z3MgCmFyZSBub3QgZnJvbSBSIGl0c2VsZiBidXQgZnJvbSBlLmcuIHJlYWRsaW5lIG9yIFgxMSwg YW5kIGFsbCBhcmUgdGlueS4KCi0tIApCcmlhbiBELiBSaXBsZXksICAgICAgICAgICAgICAgICAg cmlwbGV5QHN0YXRzLm94LmFjLnVrClByb2Zlc3NvciBvZiBBcHBsaWVkIFN0YXRpc3RpY3MsICBo dHRwOi8vd3d3LnN0YXRzLm94LmFjLnVrL35yaXBsZXkvClVuaXZlcnNpdHkgb2YgT3hmb3JkLCAg ICAgICAgICAgICBUZWw6ICArNDQgMTg2NSAyNzI4NjEgKHNlbGYpCjEgU291dGggUGFya3MgUm9h ZCwgICAgICAgICAgICAgICAgICAgICArNDQgMTg2NSAyNzI4NjYgKFBBKQpPeGZvcmQgT1gxIDNU RywgVUsgICAgICAgICAgICAgICAgRmF4OiAgKzQ0IDE4NjUgMjcyNTk1CgoKCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KUi1kZXZlbEByLXByb2plY3Qub3JnIG1haWxpbmcgbGlzdCAgRElHRVNURUQK aHR0cHM6Ly9zdGF0LmV0aHouY2gvbWFpbG1hbi9saXN0aW5mby9yLWRldmVsCgoKRW5kIG9mIFIt ZGV2ZWwgRGlnZXN0LCBWb2wgNjAsIElzc3VlIDYKKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKHw== --++----------20080206092304-189805385----------++--