From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arthur Subject: Bug: LaTeX export does not handle .pgf/.tikz images [9.3 (9.3-elpaplus @ .emacs.d/elpa/org-plus-contrib-20191203/)] Date: Fri, 6 Dec 2019 17:47:04 +1100 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000005ed7790599036b1f" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:43139) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1idF7H-0001Ur-Br for emacs-orgmode@gnu.org; Fri, 06 Dec 2019 10:02:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1idF7F-0007qe-D8 for emacs-orgmode@gnu.org; Fri, 06 Dec 2019 10:01:59 -0500 Received: from mail-yw1-xc35.google.com ([2607:f8b0:4864:20::c35]:41218) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1idF7E-0007qF-HD for emacs-orgmode@gnu.org; Fri, 06 Dec 2019 10:01:57 -0500 Received: by mail-yw1-xc35.google.com with SMTP id l22so2764186ywc.8 for ; Fri, 06 Dec 2019 07:01:55 -0800 (PST) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode@gnu.org --0000000000005ed7790599036b1f Content-Type: multipart/alternative; boundary="0000000000005ed7760599036b1d" --0000000000005ed7760599036b1d Content-Type: text/plain; charset="UTF-8" Remember to cover the basics, that is, what you expected to happen and what in fact did happen. You don't know how to make a good report? See https://orgmode.org/manual/Feedback.html#Feedback Your bug report will be posted to the Org mailing list. ------------------------------------------------------------------------ Hi, Since my last org update (today or yesterday I would say) I have been having an issue with exporting .pgf or .tikz file to LaTeX. The exporter always returns `nil`. I attached a patch that can fix this. It is not thoroughly tested by my assumption is that the `progn` does not actually "set" variable `image-code`, hence the `nil`. Attached: - org file to reproduce the error. - tex file output by the org exporter. - output of `org-submit-bug-report` (it is waaay too long) - the patch I wrote which basically removes the `progn` block and replaces it by a single `setq`. In summary, when you have [[file:test.pgf]] and export to LaTeX: - Expected output: \begin{center} \input{test.pgf} \end{center} - Actual output: \begin{center} nil \end{center Summary of config: - GNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of 2017-09-23, modified by Debian - Org mode version 9.3 (9.3-elpaplus @ .emacs.d/elpa/org-plus-contrib-20191203/) My apologies if this comes from some weird thing in my config, although I have checked with `emacs -Q -l `. I have tried with full file, subtree, custom and default LaTeX class. Regards, Arthur --0000000000005ed7760599036b1d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

Remember to cover the basics, that is, what you expect= ed to happen and
what in fact did happen.=C2=A0 You don't know how t= o make a good report?=C2=A0 See

=C2=A0 =C2=A0 =C2=A0https://orgmode.org/manual/Fe= edback.html#Feedback

Your bug report will be posted to the Org m= ailing list.
-----------------------------------------------------------= -------------

Hi,

Since my last org update (today or yesterda= y I would say) I have been
having an issue with exporting .pgf or .tikz = file to LaTeX.=C2=A0 The
exporter always returns `nil`.

I attache= d a patch that can fix this.=C2=A0 It is not thoroughly tested by my
ass= umption is that the `progn` does not actually "set" variable
`= image-code`, hence the `nil`.

Attached:
=C2=A0- org file to repro= duce the error.
=C2=A0- tex file output by the org exporter.
=C2=A0- = output of `org-submit-bug-report` (it is waaay too long)
=C2=A0- the pat= ch I wrote which basically removes the `progn` block and
=C2=A0 =C2=A0re= places it by a single `setq`.

In summary, when you have [[file:test.= pgf]] and export to LaTeX:
=C2=A0- Expected output:
=C2=A0 =C2=A0\beg= in{center}
=C2=A0 =C2=A0\input{test.pgf}
=C2=A0 =C2=A0\end{center}=C2=A0- Actual output:
=C2=A0 =C2=A0\begin{center}
=C2=A0 =C2=A0nil<= br>=C2=A0 =C2=A0\end{center

Summary of config:
=C2=A0- GNU Emacs = 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of
=C2=A0 =C2=A02017-= 09-23, modified by Debian
=C2=A0- Org mode version 9.3 (9.3-elpaplus @ .= emacs.d/elpa/org-plus-contrib-20191203/)

My apologies if this comes = from some weird thing in my config,
although I have checked with `emacs = -Q -l <base-config>`.=C2=A0 I have
tried with full file, subt= ree, custom and default LaTeX class.

Regards,
Arthur
--0000000000005ed7760599036b1d-- --0000000000005ed7790599036b1f Content-Type: text/x-patch; charset="US-ASCII"; name="ox-latex.patch" Content-Disposition: attachment; filename="ox-latex.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k3ts0qhp0 LS0tIG9yZy1wbHVzLWNvbnRyaWItMjAxOTEyMDMvb3gtbGF0ZXguZWwJMjAxOS0xMi0wNiAxNzoy ODozNC4yNTg5NDU4MDMgKzExMDAKKysrIG9yZy1wbHVzLWNvbnRyaWItMjAxOTEyMDMvb3gtbGF0 ZXguZWwJMjAxOS0xMi0wNiAxNzoyODo1My43NjUzNTIxMjggKzExMDAKQEAgLTI0MTEsMjEgKzI0 MTEsMjIgQEAKIAk7OyAtIGlmIG9wdGlvbnMgYXJlIHByZXNlbnQsIHdyYXAgaW4gYSB0aWt6cGlj dHVyZSBlbnZpcm9ubWVudC4KIAk7OyAtIGlmIHdpZHRoIG9yIGhlaWdodCBhcmUgcHJlc2VudCwg dXNlIFxyZXNpemVib3ggdG8gY2hhbmdlCiAJOzsgICB0aGUgaW1hZ2Ugc2l6ZS4KLQkocHJvZ24K LQkgIChzZXRxIGltYWdlLWNvZGUgKGZvcm1hdCAiXFxpbnB1dHslc30iIHBhdGgpKQotCSAgKHdo ZW4gKG9yZy1zdHJpbmctbnctcCBvcHRpb25zKQotCSAgICAoc2V0cSBpbWFnZS1jb2RlCi0JCSAg KGZvcm1hdCAiXFxiZWdpbnt0aWt6cGljdHVyZX1bJXNdXG4lc1xuXFxlbmR7dGlrenBpY3R1cmV9 IgotCQkJICBvcHRpb25zCi0JCQkgIGltYWdlLWNvZGUpKSkKLQkgIChzZXRxIGltYWdlLWNvZGUK LQkJKGNvbmQgKChvcmctc3RyaW5nLW53LXAgc2NhbGUpCi0JCSAgICAgICAoZm9ybWF0ICJcXHNj YWxlYm94eyVzfXslc30iIHNjYWxlIGltYWdlLWNvZGUpKQotCQkgICAgICAoKG9yIChvcmctc3Ry aW5nLW53LXAgd2lkdGgpIChvcmctc3RyaW5nLW53LXAgaGVpZ2h0KSkKLQkJICAgICAgIChmb3Jt YXQgIlxccmVzaXplYm94eyVzfXslc317JXN9IgotCQkJICAgICAgIChpZiAob3JnLXN0cmluZy1u dy1wIHdpZHRoKSB3aWR0aCAiISIpCi0JCQkgICAgICAgKGlmIChvcmctc3RyaW5nLW53LXAgaGVp Z2h0KSBoZWlnaHQgIiEiKQotCQkJICAgICAgIGltYWdlLWNvZGUpKSkpKQorICAgICAgICAoc2V0 cSBpbWFnZS1jb2RlCisgICAgICAgICAgICAgIChsZXQqICgoaW1hZ2UtYmFzZSAoZm9ybWF0ICJc XGlucHV0eyVzfSIgcGF0aCkpCisgICAgICAgICAgICAgICAgICAgICAoaW1hZ2UtaW5wdXQKKyAg ICAgICAgICAgICAgICAgICAgICAoaWYgKG9yZy1zdHJpbmctbnctcCBvcHRpb25zKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICJcXGJlZ2lue3Rpa3pwaWN0dXJlfVslc11cbiVz XG5cXGVuZHt0aWt6cGljdHVyZX0iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b3B0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlLWJhc2UpCisg ICAgICAgICAgICAgICAgICAgICAgICBpbWFnZS1iYXNlKSkpCisgICAgICAgICAgICAgICAgKGNv bmQgKChvcmctc3RyaW5nLW53LXAgc2NhbGUpCisgICAgICAgICAgICAgICAgICAgICAgIChmb3Jt YXQgIlxcc2NhbGVib3h7JXN9eyVzfSIgc2NhbGUgaW1hZ2UtaW5wdXQpKQorICAgICAgICAgICAg ICAgICAgICAgICgob3IgKG9yZy1zdHJpbmctbnctcCB3aWR0aCkgKG9yZy1zdHJpbmctbnctcCBo ZWlnaHQpKQorICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICJcXHJlc2l6ZWJveHslc317 JXN9eyVzfSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKG9yZy1zdHJpbmct bnctcCB3aWR0aCkgd2lkdGggIiEiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChp ZiAob3JnLXN0cmluZy1udy1wIGhlaWdodCkgaGVpZ2h0ICIhIikKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbWFnZS1pbnB1dCkpCisgICAgICAgICAgICAgICAgICAgICAgKHQgaW1h Z2UtYmFzZSkpKSkKICAgICAgIDs7IEZvciBvdGhlciBpbWFnZXM6CiAgICAgICA7OyAtIGFkZCBz Y2FsZSwgb3Igd2lkdGggYW5kIGhlaWdodCB0byBvcHRpb25zLgogICAgICAgOzsgLSBpbmNsdWRl IHRoZSBpbWFnZSB3aXRoIFxpbmNsdWRlZ3JhcGhpY3MuCg== --0000000000005ed7790599036b1f Content-Type: text/x-tex; charset="US-ASCII"; name="test.tex" Content-Disposition: attachment; filename="test.tex" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k3tscg8a1 JSBDcmVhdGVkIDIwMTktMTItMDYgRnJpIDE3OjQxCiUgSW50ZW5kZWQgTGFUZVggY29tcGlsZXI6 IHBkZmxhdGV4Clxkb2N1bWVudGNsYXNze2FydGljbGV9Clx1c2VwYWNrYWdlW3V0Zjhde2lucHV0 ZW5jfQpcdXNlcGFja2FnZVtUMV17Zm9udGVuY30KXHVzZXBhY2thZ2V7Z3JhcGhpY3h9Clx1c2Vw YWNrYWdle2dyZmZpbGV9Clx1c2VwYWNrYWdle2xvbmd0YWJsZX0KXHVzZXBhY2thZ2V7d3JhcGZp Z30KXHVzZXBhY2thZ2V7cm90YXRpbmd9Clx1c2VwYWNrYWdlW25vcm1hbGVtXXt1bGVtfQpcdXNl cGFja2FnZXthbXNtYXRofQpcdXNlcGFja2FnZXt0ZXh0Y29tcH0KXHVzZXBhY2thZ2V7YW1zc3lt Yn0KXHVzZXBhY2thZ2V7Y2FwdC1vZn0KXHVzZXBhY2thZ2V7aHlwZXJyZWZ9ClxhdXRob3J7c29o YX0KXGRhdGV7XHRvZGF5fQpcdGl0bGV7fQpcaHlwZXJzZXR1cHsKIHBkZmF1dGhvcj17c29oYX0s CiBwZGZ0aXRsZT17fSwKIHBkZmtleXdvcmRzPXt9LAogcGRmc3ViamVjdD17fSwKIHBkZmNyZWF0 b3I9e0VtYWNzIDI1LjIuMiAoT3JnIG1vZGUgOS4zKX0sIAogcGRmbGFuZz17RW5nbGlzaH19Clxi ZWdpbntkb2N1bWVudH0KClx0YWJsZW9mY29udGVudHMKCgpcc2VjdGlvbntCdWc6IFxMYVRlWHt9 IGV4cG9ydCBkb2VzIG5vdCBoYW5kbGUgLnBnZi8udGlreiBpbWFnZXN9ClxsYWJlbHtzZWM6b3Jn NWZhY2E1YX0KClxiZWdpbntjZW50ZXJ9Cm5pbApcZW5ke2NlbnRlcn0KXGVuZHtkb2N1bWVudH0K --0000000000005ed7790599036b1f Content-Type: application/octet-stream; name="test.org" Content-Disposition: attachment; filename="test.org" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k3tscg8i2 IytsYXRleF9jbGFzczogYXJ0aWNsZQojK2xhdGV4X2NsYXNzX29wdGlvbnM6CiMrbGF0ZXhfaGVh ZGVyOgojK2xhdGV4X2hlYWRlcl9leHRyYToKIytkZXNjcmlwdGlvbjoKIytrZXl3b3JkczoKIytz dWJ0aXRsZToKIytsYXRleF9jb21waWxlcjogcGRmbGF0ZXgKIytkYXRlOiBcdG9kYXkKCiogQnVn OiBMYVRlWCBleHBvcnQgZG9lcyBub3QgaGFuZGxlIC5wZ2YvLnRpa3ogaW1hZ2VzCgpbW2ZpbGU6 dGVzdC5wZ2ZdXQoKIyBFeHBlY3RlZDoKIyBcYmVnaW57Y2VudGVyfQojIFxpbnB1dHt0ZXN0LnBn Zn0KIyBcZW5ke2NlbnRlcn0KIwojIEFjdHVhbDoKIyBcYmVnaW57Y2VudGVyfQojIG5pbAojIFxl bmR7Y2VudGVyfQo= --0000000000005ed7790599036b1f Content-Type: application/octet-stream; name="org-submit-bug-report.out" Content-Disposition: attachment; filename="org-submit-bug-report.out" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k3tsdhcd3 RW1hY3MgIDogR05VIEVtYWNzIDI1LjIuMiAoeDg2XzY0LXBjLWxpbnV4LWdudSwgR1RLKyBWZXJz aW9uIDMuMjIuMjEpCiBvZiAyMDE3LTA5LTIzLCBtb2RpZmllZCBieSBEZWJpYW4KUGFja2FnZTog T3JnIG1vZGUgdmVyc2lvbiA5LjMgKDkuMy1lbHBhcGx1cyBAIC9ob21lL3N0dWRlbnQvLmVtYWNz LmQvZWxwYS9vcmctcGx1cy1jb250cmliLTIwMTkxMjAzLykKCmN1cnJlbnQgc3RhdGU6Cj09PT09 PT09PT09PT09CihzZXRxCiBvcmctc3JjLWxhbmctbW9kZXMgJygoImFyZHVpbm8iIC4gYXJkdWlu bykgKCJyZWRpcyIgLiByZWRpcykgKCJwaHAiIC4gcGhwKQoJCSAgICAgICgiQyIgLiBjKSAoIkMr KyIgLiBjKyspICgiYXN5bXB0b3RlIiAuIGFzeSkKCQkgICAgICAoImJhc2giIC4gc2gpICgiYmVh bWVyIiAuIGxhdGV4KSAoImNhbGMiIC4gZnVuZGFtZW50YWwpCgkJICAgICAgKCJjcHAiIC4gYysr KSAoImRpdGFhIiAuIGFydGlzdCkgKCJkb3QiIC4gZnVuZGFtZW50YWwpCgkJICAgICAgKCJlbGlz cCIgLiBlbWFjcy1saXNwKSAoIm9jYW1sIiAuIHR1YXJlZykKCQkgICAgICAoInNjcmVlbiIgLiBz aGVsbC1zY3JpcHQpICgic2hlbGwiIC4gc2gpCgkJICAgICAgKCJzcWxpdGUiIC4gc3FsKSkKIG9y Zy1sYXRleC10YWJsZXMtYm9va3RhYnMgdAogb3JnLXJlZi1nZXQtcGRmLWZpbGVuYW1lLWZ1bmN0 aW9uICdvcmctcmVmLWdldC1wZGYtZmlsZW5hbWUKIG9yZy1mb290bm90ZS1hdXRvLWFkanVzdCB0 CiBvcmctdGFiLWZpcnN0LWhvb2sgJyhvcmctYmFiZWwtaGlkZS1yZXN1bHQtdG9nZ2xlLW1heWJl CgkJICAgICAgb3JnLWJhYmVsLWhlYWRlci1hcmctZXhwYW5kKQogb3JnLWFkYXB0LWluZGVudGF0 aW9uIG5pbAogb3JnLWxhdGV4LWNsYXNzZXMgJygoImluZm9yIgoJCSAgICAgICJcXGRvY3VtZW50 Y2xhc3NbXXtpbnRlcmFjdH1cblxcdXNlcGFja2FnZVt1dGY4XXtpbnB1dGVuY31cblxuXFx1c2Vw YWNrYWdle2Vwc3RvcGRmfSUgVG8gaW5jb3Jwb3JhdGUgLmVwcyBpbGx1c3RyYXRpb25zIHVzaW5n IFBERkxhVGVYLCBldGMuXG5cXHVzZXBhY2thZ2VbY2FwdGlvbj1mYWxzZV17c3ViZmlnfSUgU3Vw cG9ydCBmb3Igc21hbGwsIGBzdWInIGZpZ3VyZXMgYW5kIHRhYmxlc1xuJVxcdXNlcGFja2FnZVtu b2xpc3RzLHRhYmxlc2ZpcnN0XXtlbmRmbG9hdH0lIFRvIGBzZXBhcmF0ZScgZmlndXJlcyBhbmQg dGFibGVzIGZyb20gdGV4dCBpZiByZXF1aXJlZFxuXG4lXFx1c2VwYWNrYWdlW2RvdWJsZXNwYWNp bmdde3NldHNwYWNlfSUgVG8gcHJvZHVjZSBhIGBkb3VibGUgc3BhY2VkJyBkb2N1bWVudCBpZiBy ZXF1aXJlZFxuJVxcc2V0bGVuZ3RoXFxwYXJpbmRlbnR7MjRwdH0lIFRvIGluY3JlYXNlIHBhcmFn cmFwaCBpbmRlbnRhdGlvbiB3aGVuIGxpbmUgc3BhY2luZyBpcyBkb3VibGVkXG4lXFxzZXRsZW5n dGhcXGJpYmluZGVudHsyZW19JSBUbyBpbmNyZWFzZSBoYW5naW5nIGluZGVudCBpbiBiaWJsaW9n cmFwaHkgd2hlbiBsaW5lIHNwYWNpbmcgaXMgZG91YmxlZFxuXG5cXHVzZXBhY2thZ2V7bmF0Ymli fSUgQ2l0YXRpb24gc3VwcG9ydCB1c2luZyBuYXRiaWIuc3R5XG5cXGJpYnB1bmN0WywgXXsofXsp fXs7fXthfXt9eyx9JSBDaXRhdGlvbiBzdXBwb3J0IHVzaW5nIG5hdGJpYi5zdHlcblxccmVuZXdj b21tYW5kXFxiaWJmb250e1xcZm9udHNpemV7MTB9ezEyfVxcc2VsZWN0Zm9udH0lIEJpYmxpb2dy YXBoeSBzdXBwb3J0IHVzaW5nIG5hdGJpYi5zdHlcblxuXFx0aGVvcmVtc3R5bGV7cGxhaW59JSBU aGVvcmVtLWxpa2Ugc3RydWN0dXJlcyBwcm92aWRlZCBieSBhbXN0aG0uc3R5XG5cXG5ld3RoZW9y ZW17dGhlb3JlbX17VGhlb3JlbX1bc2VjdGlvbl1cblxcbmV3dGhlb3JlbXtsZW1tYX1bdGhlb3Jl bV17TGVtbWF9XG5cXG5ld3RoZW9yZW17Y29yb2xsYXJ5fVt0aGVvcmVtXXtDb3JvbGxhcnl9XG5c XG5ld3RoZW9yZW17cHJvcG9zaXRpb259W3RoZW9yZW1de1Byb3Bvc2l0aW9ufVxuXG5cXHRoZW9y ZW1zdHlsZXtkZWZpbml0aW9ufVxuXFxuZXd0aGVvcmVte2RlZmluaXRpb259W3RoZW9yZW1de0Rl ZmluaXRpb259XG5cXG5ld3RoZW9yZW17ZXhhbXBsZX1bdGhlb3JlbV17RXhhbXBsZX1cblxuXFx0 aGVvcmVtc3R5bGV7cmVtYXJrfVxuXFxuZXd0aGVvcmVte3JlbWFya317UmVtYXJrfVxuXFxuZXd0 aGVvcmVte25vdGF0aW9ufXtOb3RhdGlvbn1cblxuW05PLURFRkFVTFQtUEFDS0FHRVNdXG5bRVhU UkFdXG5cXHVzZXBhY2thZ2V7aHlwZXJyZWZ9XG5cXHVzZXBhY2thZ2V7Y2xldmVyZWZ9IgoJCSAg ICAgICgiXFxzZWN0aW9ueyVzfSIgLiAiXFxzZWN0aW9uKnslc30iKQoJCSAgICAgICgiXFxzdWJz ZWN0aW9ueyVzfSIgLiAiXFxzdWJzZWN0aW9uKnslc30iKQoJCSAgICAgICgiXFxzdWJzdWJzZWN0 aW9ueyVzfSIgLiAiXFxzdWJzdWJzZWN0aW9uKnslc30iKQoJCSAgICAgICgiXFxwYXJhZ3JhcGh7 JXN9IiAuICJcXHBhcmFncmFwaCp7JXN9IikKCQkgICAgICAoIlxcc3VicGFyYWdyYXBoeyVzfSIg LiAiXFxzdWJwYXJhZ3JhcGgqeyVzfSIpKQoJCSAgICAgKCJ0dWZ0ZSIKCQkgICAgICAiXFxkb2N1 bWVudGNsYXNzW2E0cGFwZXIsIG5vYmliXXt0dWZ0ZS1oYW5kb3V0fVxuXFx1c2VwYWNrYWdlW3N0 eWxlPWFwYV17YmlibGF0ZXh9XG5cXHJlbmV3Y29tbWFuZHtcXGNpdGV9WzJdWzBwdF17XFx1bnNr aXAgXFxzaWRlbm90ZXtcXGZ1bGxjaXRleyMyfX19XG5cXHVzZXBhY2thZ2V7cmVhbHNjcmlwdHN9 XG4lIFxcdXNlcGFja2FnZXt1bmljb2RlLW1hdGh9XG4lIFxcc2V0bWF0aGZvbnRbU2NhbGU9TWF0 Y2hVcHBlcmNhc2Vde2xpYmVydGludXNtYXRoLXJlZ3VsYXIub3RmfVxuXFxzZXRtb25vZm9udFtT Y2FsZT1NYXRjaExvd2VyY2FzZV17RGVqYVZ1IFNhbnMgTW9ub31cblxcc2V0bWFpbmZvbnRbXG4g IExpZ2F0dXJlcz1UZVgsXG4gIE51bWJlcnM9e09sZFN0eWxlLCBQcm9wb3J0aW9uYWx9LFxuICBT bWFsbENhcHNGZWF0dXJlcyA9IHtMZXR0ZXJTcGFjZSA9IDUsIFJlbmRlcmVyID0gQmFzaWN9XG4g ICAgICAgICAgICAgICAgICAgICAgICUgTGlnYXR1cmVzPXtOb0NvbW1vbiwgTm9SZXF1aXJlZCwg Tm9Db250ZXh0dWFsfX1cbl17TGludXggTGliZXJ0aW5lIE99XG5cXHVzZXBhY2thZ2VbbXVsdGlw bGVde2ZucGN0fVxuXFxzZXRmbnBjdHthZGQtcHVuY3QtbWFya3M9Ozp9XG5cXEFkYXB0Tm90ZVxc c2lkZW5vdGVcXG11bHRzaWRlbm90ZVxuW05PLURFRkFVTFQtUEFDS0FHRVNdXG5bRVhUUkFdXG5c XHVzZXBhY2thZ2V7Y2xldmVyZWZ9IgoJCSAgICAgICgiXFxzZWN0aW9ueyVzfSIgLiAiXFxzZWN0 aW9uKnslc30iKQoJCSAgICAgICgiXFxzdWJzZWN0aW9ueyVzfSIgLiAiXFxzdWJzZWN0aW9uKnsl c30iKQoJCSAgICAgICgiXFxzdWJzdWJzZWN0aW9ueyVzfSIgLiAiXFxzdWJzdWJzZWN0aW9uKnsl c30iKQoJCSAgICAgICgiXFxwYXJhZ3JhcGh7JXN9IiAuICJcXHBhcmFncmFwaCp7JXN9IikKCQkg ICAgICAoIlxcc3VicGFyYWdyYXBoeyVzfSIgLiAiXFxzdWJwYXJhZ3JhcGgqeyVzfSIpKQoJCSAg ICAgKCJwYXBlciIKCQkgICAgICAiXFxkb2N1bWVudGNsYXNzW2E0cGFwZXIsIDExcHQsIHN2Z25h bWVzXXthcnRpY2xlfVxuW0RFRkFVTFQtUEFDS0FHRVNdXG5cXG5ld2xlbmd0aHtcXGFscGhhYmV0 fVxuXFxzZXR0b3dpZHRoe1xcYWxwaGFiZXR9e1xcbm9ybWFsZm9udCBhYmNkZWZnaGlqa2xtbm9w cXJzdHV2d3h5en1cblxcdXNlcGFja2FnZVt0ZXh0d2lkdGg9Mi4zXFxhbHBoYWJldF17Z2VvbWV0 cnl9XG5cXHVzZXBhY2thZ2V7YW1zc3ltYn1cblxcdXNlcGFja2FnZXttYXRodG9vbHN9XG5cXHVz ZXBhY2thZ2V7eHNwYWNlfVxuXFx1c2VwYWNrYWdlW3N2Z25hbWVzXXt4Y29sb3J9XG5cXHVzZXBh Y2thZ2V7Ym9va3RhYnN9XG5cXHVzZXBhY2thZ2V7bXVsdGlyb3d9XG5cXHVzZXBhY2thZ2V7cGdm cGxvdHN9ICUgRXh0ZXJuYWwgVGlrWi9QR0Ygc3VwcG9ydCAodGhhbmtzIHRvIEFuZHJlYXMgTmF1 dHNjaClcblxcdXNldGlremxpYnJhcnl7Y2FsYyxwb3NpdGlvbmluZyxzaGFwZXMsYXJyb3dzLHBv c2l0aW9uaW5nLGZpdCxiYWNrZ3JvdW5kc31cblxcdXNlcGdmcGxvdHNsaWJyYXJ5e2ZpbGxiZXR3 ZWVufVxuXFx1c2VwYWNrYWdle2ZvbnRzcGVjfVxuXFx1c2VwYWNrYWdle3VuaWNvZGUtbWF0aH1c blxcc2V0bWFpbmZvbnRbXG4gIExpZ2F0dXJlcz1UZVgsXG4gIE51bWJlcnM9e09sZFN0eWxlLCBQ cm9wb3J0aW9uYWx9LFxuICBTbWFsbENhcHNGZWF0dXJlcyA9IHtMZXR0ZXJTcGFjZSA9IDUsIFJl bmRlcmVyID0gQmFzaWN9XG4gICAgICAgICAgICAgICAgICAgICAgICUgTGlnYXR1cmVzPXtOb0Nv bW1vbiwgTm9SZXF1aXJlZCwgTm9Db250ZXh0dWFsfX1cbl17TGludXggTGliZXJ0aW5lIE99XG5c XG5ld2ZvbnRmYW1pbHlcXGhlYWRlcmZvbnRbXG4gIExldHRlclNwYWNlPTUsXG4gIFdvcmRTcGFj ZT0xLjUsXG4gIExpZ2F0dXJlcz1Ob0NvbW1vbixcbiAgTnVtYmVycz17T2xkU3R5bGUsIFByb3Bv cnRpb25hbH0sXG4gIEtlcm5pbmc9VXBwZXJjYXNlLFxuICBMZXR0ZXJzPVNtYWxsQ2FwcyxcbiAg TnVtYmVycz17T2xkU3R5bGUsIFByb3BvcnRpb25hbH1cbl17TGludXggTGliZXJ0aW5lIE99XG5c XG5ld2ZvbnRmYW1pbHlcXGFjcm9mb250W1xuICBMZXR0ZXJTcGFjZT01LFxuICBXb3JkU3BhY2U9 MS41LFxuICBMaWdhdHVyZXM9Tm9Db21tb24sXG4gIEtlcm5pbmc9VXBwZXJjYXNlLFxuICBMZXR0 ZXJzPXtTbWFsbENhcHMsIFVwcGVyY2FzZVNtYWxsQ2Fwc30sXG4gIE51bWJlcnM9e09sZFN0eWxl LCBQcm9wb3J0aW9uYWx9XG5de0xpbnV4IExpYmVydGluZSBPfVxuXFxzZXRtYXRoZm9udFtTY2Fs ZT1NYXRjaFVwcGVyY2FzZV17bGliZXJ0aW51c21hdGgtcmVndWxhci5vdGZ9XG5cXHNldG1vbm9m b250W1NjYWxlPU1hdGNoTG93ZXJjYXNlXXtEZWphVnUgU2FucyBNb25vfVxuXFx1c2VwYWNrYWdl e2V0b29sYm94fVxuXFxzZXRsZW5ndGh7XFxiYXNlbGluZXNraXB9ezEzcHR9XG5cXHJlbmV3Y29t bWFuZHtcXGFycmF5c3RyZXRjaH17MS4yfVxuXFxuZXdjb21tYW5kXFxsaW5pbmd7XFxhZGRmb250 ZmVhdHVyZXN7TnVtYmVycz17UHJvcG9ydGlvbmFsLCBMaW5pbmd9fX1cblxcbmV3Y29tbWFuZFxc Zml4ZWR7XFxhZGRmb250ZmVhdHVyZXN7TnVtYmVycz17TW9ub3NwYWNlZCwgTGluaW5nfX19XG5c XEF0QmVnaW5FbnZpcm9ubWVudHt0YWJ1bGFyfXtcXGZpeGVkfVxuXFxyZW5ld2NvbW1hbmR7XFx0 aGVlcXVhdGlvbn17e1xcbGluaW5nXFxhcmFiaWN7ZXF1YXRpb259fX1cblxcZnJlbmNoc3BhY2lu Z1xuXFx1c2VwYWNrYWdle3RpdGxlc2VjfVxuXFxuZXdjb21tYW5ke1xcZmxhdGNhcHN9WzFde3tc XGhlYWRlcmZvbnQgXFxNYWtlTG93ZXJjYXNleyMxfX19XG5cXHRpdGxlZm9ybWF0e1xcc2VjdGlv bn17XFxsYXJnZVxcYmZzZXJpZXN9e1xcbGluaW5nXFx0aGVzZWN0aW9ufXsxZW19e31cblxcdGl0 bGVmb3JtYXR7XFxzdWJzZWN0aW9ufXtcXGxhcmdlfXtcXHRoZXN1YnNlY3Rpb259ey42ZW19e1xc ZmxhdGNhcHN9XG5cXHRpdGxlZm9ybWF0e1xcc3Vic3Vic2VjdGlvbn17fXtcXHRoZXN1YnN1YnNl Y3Rpb259ey42ZW19e1xcaXRzaGFwZX1cblxcdGl0bGVmb3JtYXR7XFxwYXJhZ3JhcGh9W3J1bmlu XXtcXGhlYWRlcmZvbnR9e1xcdGhlcGFyYWdyYXBofXswcHR9e31bLl1cblxcdGl0bGVzcGFjaW5n KntcXHNlY3Rpb259ezBwdH17MlxcYmFzZWxpbmVza2lwfXsxXFxiYXNlbGluZXNraXB9XG5cXHRp dGxlc3BhY2luZyp7XFxzdWJzZWN0aW9ufXswcHR9ezFcXGJhc2VsaW5lc2tpcH17MVxcYmFzZWxp bmVza2lwfVxuXFx0aXRsZXNwYWNpbmcqe1xcc3Vic3Vic2VjdGlvbn17MHB0fXs4cHR9ezVwdH1c blxcdXNlcGFja2FnZVt0cmFja2luZ117bWljcm90eXBlfVxuXFx1c2VwYWNrYWdle2VudW1pdGVt fVxuXFxzZXRsaXN0e25vaXRlbXNlcCwgbm9zZXAsIGxlZnRtYXJnaW49XFxwYXJpbmRlbnR9XG5c XHNldGxpc3RbMV17bGFiZWxpbmRlbnQ9XFxwYXJpbmRlbnR9ICUgPCBVc3VhbGx5IGEgZ29vZCBp ZGVhXG5cXHNldGxpc3RbZGVzY3JpcHRpb25de2ZvbnQ9XFxtZHNlcmllc1xcZmxhdGNhcHMsIGxh YmVsaW5kZW50PTBwdH0gJSBIYXZlIHRvIHJlbW92ZSB0aGUgYm9sZFxuXFx1c2VwYWNrYWdle2Nh cHRpb259XG5cXHVzZXBhY2thZ2V7c3ViY2FwdGlvbn1cblxcRGVjbGFyZUNhcHRpb25MYWJlbEZv cm1hdHtsY317XFxmbGF0Y2Fwc3sjMX1+eyMyfX1cblxcY2FwdGlvbnNldHVwe2ZvbnQ9c21hbGws IGZvcm1hdD1wbGFpbiwgbGFiZWxmb3JtYXQ9bGMsIHdpZHRoPS45XFx0ZXh0d2lkdGh9XG5cXGNh cHRpb25zZXR1cFtzdWJmaWd1cmVde2xhYmVsc2VwPWNvbG9uLCBsYWJlbGZvbnQ9c2MsIGxhYmVs Zm9ybWF0PXNpbXBsZX1cblxcdXNlcGFja2FnZVtcbiAgbm9ybWFsLW1hcmtzLFxuICBub3JtYWwt bWFyay13aWR0aD1cXHBhcmluZGVudCxcbiAgJSBub3JtYWwtaW5kZW50PTBlbSxcbiAgJSBub3Jt YWwtcGFyLWluZGVudD1cXHBhcmluZGVudFxuXXtmbnBjdH1cblxcc2V0Zm5wY3R7YWRkLXB1bmN0 LW1hcmtzPTs6fVxuXFx1c2VwYWNrYWdle3JlYWxzY3JpcHRzfVxuXFx1c2VwYWNrYWdle3NlbG5v bGlnfVxuXFx1c2VwYWNrYWdlW3J1bmluXXthYnN0cmFjdH1cblxccmVuZXdjb21tYW5ke1xcYWJz dHJhY3RuYW1lZm9udH17XFxub3JtYWxmb250XFxmbGF0Y2Fwc31cblxcYWJzbGFiZWxkZWxpbXtc XG5ld2xpbmV9XG5cXHNldGxlbmd0aHtcXGFic3RpdGxlc2tpcH17LVxccGFyaW5kZW50fVxuXFx1 c2VwYWNrYWdlW1xuICBuYXRiaWI9dHJ1ZSxcbiAgc3R5bGU9YXV0aG9yeWVhcixcbiAgJSBjaXRl c3R5bGU9bnVtZXJpYy1jb21wLFxuICBhdXRvY2l0ZT1pbmxpbmUsXG4gIG1heGJpYm5hbWVzPTEw MCxcbiAgbWluY2l0ZW5hbWVzPTEsXG4gIG1heGNpdGVuYW1lcz0yLFxuICBoeXBlcnJlZj10cnVl LFxuICAlIHVuaXF1ZWxpc3Q9ZmFsc2UsXG4gICUgdW5pcXVlbmFtZT1pbml0LFxuICBnaXZlbmlu aXRzPXRydWUsXG4gIGRhc2hlZD1mYWxzZSxcbiAgdXNlcHJlZml4PXRydWUsXG4gIGRhdGU9eWVh cixcbiAgaXNibj1mYWxzZSwgZXByaW50PXRydWUsIHVybD1mYWxzZSwgJSBEbyBub3QgcHJpbnQg ZXh0cmEgaW5mb1xuXXtiaWJsYXRleH1cbiUgXFxyZW5ld2NvbW1hbmQqe1xcY2l0ZXNldHVwfXsl XG4lICBcXGxpbmluZ1xuJSAgXFxiaWJ1cmxzZXR1cFxuJSAgXFxmcmVuY2hzcGFjaW5nfVxuJSUg UGVyaW9kIGluc2lkZSB0aGUgcXVvdGVzLCBwbGVhc2UuXG5cXHVzcHVuY3R1YXRpb25cblxcRGVj bGFyZU5hbWVBbGlhc3tzb3J0bmFtZX17ZmFtaWx5LWdpdmVufVxuXFxyZW5ld2NvbW1hbmR7XFxm aW5lbnRyeXB1bmN0fXt9ICUgUmVtb3ZlIHBlcmlvZCBhdCBlbmQgb2YgcmVmZXJlbmNlXG5cXEF0 QmVnaW5CaWJsaW9ncmFwaHl7XFxzbG9wcHl9XG4lJSBBY3Jvbnltc1xuXFx1c2VwYWNrYWdlW3By aW50b25seXVzZWQsIHNtYWxsZXJde2Fjcm9ueW19XG4lIFxcbmV3Y29tbWFuZFxcYWNyb2ZvbnRc blxccmVuZXdjb21tYW5kKntcXGFjc2ZvbnR9WzFde3tcXGFjcm9mb250ICMxfX1cblxccmVuZXdj b21tYW5kKntcXGFjbGFiZWxmb250fVsxXXt7XFxhY3JvZm9udCAjMX19XG5bUEFDS0FHRVNdXG5b RVhUUkFdXG4lIENsZXZlcmVmIG5lZWRzIHRvIGJlIGxhc3RcblxcdXNlcGFja2FnZXtjbGV2ZXJl Zn1cblxcaHlwZXJzZXR1cHtwZGZ0ZXgsIGJyZWFrbGlua3MsIGNvbG9ybGlua3MsIHVybGNvbG9y PUZpcmVCcmljaywgbGlua2NvbG9yPU5hdnlCbHVlLCBjaXRlY29sb3I9Rm9yZXN0R3JlZW59IgoJ CSAgICAgICgiXFxzZWN0aW9ueyVzfSIgLiAiXFxzZWN0aW9uKnslc30iKQoJCSAgICAgICgiXFxz dWJzZWN0aW9ueyVzfSIgLiAiXFxzdWJzZWN0aW9uKnslc30iKQoJCSAgICAgICgiXFxzdWJzdWJz ZWN0aW9ueyVzfSIgLiAiXFxzdWJzdWJzZWN0aW9uKnslc30iKQoJCSAgICAgICgiXFxwYXJhZ3Jh cGh7JXN9IiAuICJcXHBhcmFncmFwaCp7JXN9IikKCQkgICAgICAoIlxcc3VicGFyYWdyYXBoeyVz fSIgLiAiXFxzdWJwYXJhZ3JhcGgqeyVzfSIpKQoJCSAgICAgKCJzdm11bHQiCgkJICAgICAgIlxc ZG9jdW1lbnRjbGFzc1sxMXB0XXtzdm11bHR9XG5cXHVzZXBhY2thZ2VbdXRmOF17aW5wdXRlbmN9 XG5cXHVzZXBhY2thZ2VbVDFde2ZvbnRlbmN9XG5cXHVzZXBhY2thZ2V7Zml4bHR4MmV9XG5cXHVz ZXBhY2thZ2V7bG9uZ3RhYmxlfVxuXFx1c2VwYWNrYWdle2Zsb2F0fVxuXFx1c2VwYWNrYWdle3dy YXBmaWd9XG5cXHVzZXBhY2thZ2V7cm90YXRpbmd9XG5cXHVzZXBhY2thZ2Vbbm9ybWFsZW1de3Vs ZW19XG5cXHVzZXBhY2thZ2V7YW1zbWF0aH1cblxcdXNlcGFja2FnZXt0ZXh0Y29tcH1cblxcdXNl cGFja2FnZXttYXJ2b3N5bX1cblxcdXNlcGFja2FnZXt3YXN5c3ltfVxuXFx1c2VwYWNrYWdle2Ft c3N5bWJ9XG5cXHVzZXBhY2thZ2V7aHlwZXJyZWZ9XG5cXHVzZXBhY2thZ2V7bWF0aHB0bXh9XG5c XHVzZXBhY2thZ2V7aGVsdmV0fVxuXFx1c2VwYWNrYWdle2NvdXJpZXJ9XG5cXHVzZXBhY2thZ2V7 dHlwZTFjbX1cblxcdXNlcGFja2FnZXttYWtlaWR4fVxuXFx1c2VwYWNrYWdle2dyYXBoaWN4fVxu XFx1c2VwYWNrYWdle211bHRpY29sfVxuXFx1c2VwYWNrYWdlW2JvdHRvbV17Zm9vdG1pc2N9XG5c XHByb3ZpZGVjb21tYW5ke1xcZX1bMV17XFxlbnN1cmVtYXRoe1xcdGltZXMgMTBeeyMxfX19XG5b Tk8tREVGQVVMVC1QQUNLQUdFU10gW1BBQ0tBR0VTXSBbRVhUUkFdIgoJCSAgICAgICgiXFxzZWN0 aW9ueyVzfSIgLiAiXFxzZWN0aW9uKnslc30iKQoJCSAgICAgICgiXFxzdWJzZWN0aW9ueyVzfSIg LiAiXFxzdWJzZWN0aW9uKnslc30iKQoJCSAgICAgICgiXFxzdWJzdWJzZWN0aW9ueyVzfSIgLiAi XFxzdWJzdWJzZWN0aW9uKnslc30iKQoJCSAgICAgICgiXFxwYXJhZ3JhcGh7JXN9IiAuICJcXHBh cmFncmFwaCp7JXN9IikKCQkgICAgICAoIlxcc3VicGFyYWdyYXBoeyVzfSIgLiAiXFxzdWJwYXJh Z3JhcGgqeyVzfSIpKQoJCSAgICAgKCJ0aGVzaXMiCgkJICAgICAgIlxcZG9jdW1lbnRjbGFzc1to ZWFkaW5jbHVkZSwgZm9vdGluY2x1ZGUsIGNsZWFyZG91YmxlcGFnZT1lbXB0eSxcbiAgICAgICAg ICAgICAgICBwYXBlcj1hNCwgZm9udHNpemU9MTFwdCwgc3ZnbmFtZXMgICAgICAlIEZpeCB4Y29s b3IgZXJyb3JzXG5de3NjcnJlcHJ0fVxuXG5cXGlucHV0e2NsYXNzaWN0aGVzaXMtY29uZmlnfVxu XFxpbnB1dHttYWNyb3N9XG5cXGlucHV0e3Rpa3p9XG5cXHNldGNvdW50ZXJ7c2VjbnVtZGVwdGh9 ezJ9ICUgPC0tIDIgbnVtYmVycyB1cCB0byBzdWJzZWN0aW9uc1xuW05PLURFRkFVTFQtUEFDS0FH RVNdXG5bRVhUUkFdIgoJCSAgICAgICgiXFxjaGFwdGVyeyVzfSIgLiAiXFxjaGFwdGVyKnslc30i KQoJCSAgICAgICgiXFxzZWN0aW9ueyVzfSIgLiAiXFxzZWN0aW9uKnslc30iKQoJCSAgICAgICgi XFxzdWJzZWN0aW9ueyVzfSIgLiAiXFxzdWJzZWN0aW9uKnslc30iKQoJCSAgICAgICgiXFxzdWJz dWJzZWN0aW9ueyVzfSIgLiAiXFxzdWJzdWJzZWN0aW9uKnslc30iKQoJCSAgICAgICgiXFxwYXJh Z3JhcGh7JXN9IiAuICJcXHBhcmFncmFwaCp7JXN9IikKCQkgICAgICAoIlxcc3VicGFyYWdyYXBo eyVzfSIgLiAiXFxzdWJwYXJhZ3JhcGgqeyVzfSIpKQoJCSAgICAgKCJ0aGVzaXMtZnVsbCIKCQkg ICAgICAiXFxkb2N1bWVudGNsYXNzW3R3b3NpZGUsIG9wZW5yaWdodCwgdGl0bGVwYWdlLCBudW1i ZXJzPW5vZW5kZG90LCAlMWhlYWRsaW5lcyxcbiAgICAgICAgICAgICAgICBoZWFkaW5jbHVkZSwg Zm9vdGluY2x1ZGUsIGNsZWFyZG91YmxlcGFnZT1lbXB0eSwgYWJzdHJhY3Q9b24sXG4gICAgICAg ICAgICAgICAgQkNPUj01bW0sIHBhcGVyPWE0LCBmb250c2l6ZT0xMXB0LFxuICAgICAgICAgICAg ICAgIHN2Z25hbWVzICAgICAgJSBGaXggeGNvbG9yIGVycm9yc1xuXXtzY3JyZXBydH1cblxuXFxp bnB1dHtjbGFzc2ljdGhlc2lzLWNvbmZpZ31cblxcaW5wdXR7bWFjcm9zfVxuXFxpbnB1dHt0aWt6 fVxuW05PLURFRkFVTFQtUEFDS0FHRVNdIgoJCSAgICAgICgiXFxwYXJ0eyVzfSIgLiAiXFxwYXJ0 Knslc30iKQoJCSAgICAgICgiXFxjaGFwdGVyeyVzfSIgLiAiXFxjaGFwdGVyKnslc30iKQoJCSAg ICAgICgiXFxzZWN0aW9ueyVzfSIgLiAiXFxzZWN0aW9uKnslc30iKQoJCSAgICAgICgiXFxzdWJz ZWN0aW9ueyVzfSIgLiAiXFxzdWJzZWN0aW9uKnslc30iKQoJCSAgICAgICgiXFxzdWJzdWJzZWN0 aW9ueyVzfSIgLiAiXFxzdWJzdWJzZWN0aW9uKnslc30iKQoJCSAgICAgICgiXFxwYXJhZ3JhcGh7 JXN9IiAuICJcXHBhcmFncmFwaCp7JXN9IikKCQkgICAgICAoIlxcc3VicGFyYWdyYXBoeyVzfSIg LiAiXFxzdWJwYXJhZ3JhcGgqeyVzfSIpKQoJCSAgICAgKCJhcnRpY2xlIiAiXFxkb2N1bWVudGNs YXNzWzExcHRde2FydGljbGV9IgoJCSAgICAgICgiXFxzZWN0aW9ueyVzfSIgLiAiXFxzZWN0aW9u Knslc30iKQoJCSAgICAgICgiXFxzdWJzZWN0aW9ueyVzfSIgLiAiXFxzdWJzZWN0aW9uKnslc30i KQoJCSAgICAgICgiXFxzdWJzdWJzZWN0aW9ueyVzfSIgLiAiXFxzdWJzdWJzZWN0aW9uKnslc30i KQoJCSAgICAgICgiXFxwYXJhZ3JhcGh7JXN9IiAuICJcXHBhcmFncmFwaCp7JXN9IikKCQkgICAg ICAoIlxcc3VicGFyYWdyYXBoeyVzfSIgLiAiXFxzdWJwYXJhZ3JhcGgqeyVzfSIpKQoJCSAgICAg KCJyZXBvcnQiICJcXGRvY3VtZW50Y2xhc3NbMTFwdF17cmVwb3J0fSIKCQkgICAgICAoIlxccGFy dHslc30iIC4gIlxccGFydCp7JXN9IikKCQkgICAgICAoIlxcY2hhcHRlcnslc30iIC4gIlxcY2hh cHRlcip7JXN9IikKCQkgICAgICAoIlxcc2VjdGlvbnslc30iIC4gIlxcc2VjdGlvbip7JXN9IikK CQkgICAgICAoIlxcc3Vic2VjdGlvbnslc30iIC4gIlxcc3Vic2VjdGlvbip7JXN9IikKCQkgICAg ICAoIlxcc3Vic3Vic2VjdGlvbnslc30iIC4gIlxcc3Vic3Vic2VjdGlvbip7JXN9IikpCgkJICAg ICAoImJvb2siICJcXGRvY3VtZW50Y2xhc3NbMTFwdF17Ym9va30iCgkJICAgICAgKCJcXHBhcnR7 JXN9IiAuICJcXHBhcnQqeyVzfSIpCgkJICAgICAgKCJcXGNoYXB0ZXJ7JXN9IiAuICJcXGNoYXB0 ZXIqeyVzfSIpCgkJICAgICAgKCJcXHNlY3Rpb257JXN9IiAuICJcXHNlY3Rpb24qeyVzfSIpCgkJ ICAgICAgKCJcXHN1YnNlY3Rpb257JXN9IiAuICJcXHN1YnNlY3Rpb24qeyVzfSIpCgkJICAgICAg KCJcXHN1YnN1YnNlY3Rpb257JXN9IiAuICJcXHN1YnN1YnNlY3Rpb24qeyVzfSIpKQoJCSAgICAg KQogb3JnLXNwZWVkLWNvbW1hbmQtaG9vayAnKG9yZy1zcGVlZC1jb21tYW5kLWFjdGl2YXRlCgkJ CSAgb3JnLWJhYmVsLXNwZWVkLWNvbW1hbmQtYWN0aXZhdGUpCiBvcmctcmVmLWNyZWF0ZS1ub3Rl cy1ob29rICcoKGxhbWJkYSBuaWwgKG9yZy1uYXJyb3ctdG8tc3VidHJlZSkKCQkJICAgICAgKGlu c2VydAoJCQkgICAgICAgKGZvcm1hdCAiY2l0ZTolc1xuIgoJCQkJKG9yZy1lbnRyeS1nZXQgKHBv aW50KSAiQ3VzdG9tX0lEIikpCgkJCSAgICAgICApCgkJCSAgICAgICkKCQkJICAgICApCiBvcmct b2NjdXItaG9vayAnKG9yZy1maXJzdC1oZWFkbGluZS1yZWNlbnRlcikKIG9yZy1tZXRhdXAtaG9v ayAnKG9yZy1iYWJlbC1sb2FkLWluLXNlc3Npb24tbWF5YmUpCiBvcmctaHRtbC1mb3JtYXQtZHJh d2VyLWZ1bmN0aW9uICcoY2xvc3VyZQoJCQkJICAgKGh0bWxpemUtYnVmZmVyLXBsYWNlcwoJCQkJ ICAgIG9yZy1odG1sLWZvcm1hdC10YWJsZS1uby1jc3MKCQkJCSAgICBodG1saXplLWNzcy1uYW1l LXByZWZpeAoJCQkJICAgIGh0bWxpemUtb3V0cHV0LXR5cGUgaHRtbGl6ZS1vdXRwdXQtdHlwZQoJ CQkJICAgIGh0bWxpemUtY3NzLW5hbWUtcHJlZml4IHQpCgkJCQkgICAoX25hbWUgY29udGVudHMp IGNvbnRlbnRzKQogb3JnLWxhdGV4LWZvcm1hdC1pbmxpbmV0YXNrLWZ1bmN0aW9uICdvcmctbGF0 ZXgtZm9ybWF0LWlubGluZXRhc2stZGVmYXVsdC1mdW5jdGlvbgogb3JnLWNvbmZpcm0tc2hlbGwt bGluay1mdW5jdGlvbiAneWVzLW9yLW5vLXAKIG9yZy1hc2NpaS1mb3JtYXQtaW5saW5ldGFzay1m dW5jdGlvbiAnb3JnLWFzY2lpLWZvcm1hdC1pbmxpbmV0YXNrLWRlZmF1bHQKIG9yZy1yZWYtb3Bl bi1wZGYtZnVuY3Rpb24gJ29yZy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQKIG9yZy1yZWYtY2l0ZS1v bmNsaWNrLWZ1bmN0aW9uICdvcmctcmVmLWNpdGUtY2xpY2staGVsbQogb3JnLWxhdGV4LXBkZi1w cm9jZXNzICcoImxhdGV4bWsgLWdnIC1zaGVsbC1lc2NhcGUgLWludGVyYWN0aW9uPW5vbnN0b3Bt b2RlIC1sdWFsYXRleCAlZiIpCiBvcmctcmVmLWluc2VydC1sYWJlbC1mdW5jdGlvbiAnb3JnLXJl Zi1oZWxtLWluc2VydC1sYWJlbC1saW5rCiBvcmctbGF0ZXgtZm9ybWF0LWhlYWRsaW5lLWZ1bmN0 aW9uICdvcmctbGF0ZXgtZm9ybWF0LWhlYWRsaW5lLWRlZmF1bHQtZnVuY3Rpb24KIG9yZy1sYXRl eC1pbWFnZS1kZWZhdWx0LXdpZHRoICIiCiBvcmctbGF0ZXgtZm9ybWF0LWRyYXdlci1mdW5jdGlv biAnKGNsb3N1cmUgKHQpIChfIGNvbnRlbnRzKSBjb250ZW50cykKIG9yZy1vZHQtZm9ybWF0LWhl YWRsaW5lLWZ1bmN0aW9uICdvcmctb2R0LWZvcm1hdC1oZWFkbGluZS1kZWZhdWx0LWZ1bmN0aW9u CiBvcmctcmVmLXBkZi10by1iaWJ0ZXgtZnVuY3Rpb24gJ2NvcHktZmlsZQogb3JnLXNyYy1tb2Rl LWhvb2sgJyhvcmctc3JjLWJhYmVsLWNvbmZpZ3VyZS1lZGl0LWJ1ZmZlcgoJCSAgICAgb3JnLXNy Yy1tb2RlLWNvbmZpZ3VyZS1lZGl0LWJ1ZmZlcikKIG9yZy1hZ2VuZGEtYmVmb3JlLXdyaXRlLWhv b2sgJyhvcmctYWdlbmRhLWFkZC1lbnRyeS10ZXh0KQogb3JnLWJhYmVsLXByZS10YW5nbGUtaG9v ayAnKHNhdmUtYnVmZmVyKQogb3JnLW1vZGUtaG9vayAnKG9yZy1yZWYtb3JnLW1lbnUKCQkgKGNs b3N1cmUKCQkgIChvcmctLXJkcyByZWZ0ZXgtZG9jc3RydWN0LXN5bWJvbAoJCSAgIG9yZy1lbGVt ZW50LWdyZWF0ZXItZWxlbWVudHMgb3JnLWNsb2NrLWhpc3RvcnkKCQkgICBvcmctYWdlbmRhLWN1 cnJlbnQtZGF0ZSBvcmctd2l0aC10aW1lIG9yZy1kZWZkZWNvZGUgb3JnLWRlZgoJCSAgIG9yZy1y ZWFkLWRhdGUtaW5hY3RpdmUgb3JnLWFuczIgb3JnLWFuczEKCQkgICBvcmctY29sdW1ucy1jdXJy ZW50LWZtdC1jb21waWxlZCBvcmctY2xvY2stY3VycmVudC10YXNrCgkJICAgb3JnLWNsb2NrLWVm Zm9ydCBvcmctYWdlbmRhLXNraXAtZnVuY3Rpb24KCQkgICBvcmctYWdlbmRhLXNraXAtY29tbWVu dC10cmVlcyBvcmctYWdlbmRhLWFyY2hpdmVzLW1vZGUKCQkgICBvcmctZW5kLXRpbWUtd2FzLWdp dmVuIG9yZy10aW1lLXdhcy1naXZlbgoJCSAgIG9yZy1sb2ctbm90ZS1leHRyYSBvcmctbG9nLW5v dGUtcHVycG9zZQoJCSAgIG9yZy1sb2ctcG9zdC1tZXNzYWdlIG9yZy1sYXN0LWluc2VydGVkLXRp bWVzdGFtcAoJCSAgIG9yZy1sYXN0LWNoYW5nZWQtdGltZXN0YW1wCgkJICAgb3JnLWVudHJ5LXBy b3BlcnR5LWluaGVyaXRlZC1mcm9tIG9yZy1ibG9ja2VkLWJ5LWNoZWNrYm94ZXMKCQkgICBvcmct c3RhdGUgb3JnLWFnZW5kYS1oZWFkbGluZS1zbmFwc2hvdC1iZWZvcmUtcmVwZWF0CgkJICAgb3Jn LWNhcHR1cmUtbGFzdC1zdG9yZWQtbWFya2VyIG9yZy1hZ2VuZGEtc3RhcnQtb24td2Vla2RheQoJ CSAgIG9yZy1hZ2VuZGEtYnVmZmVyLXRtcC1uYW1lIG9yZy1wcmlvcml0eS1yZWdleHAKCQkgICBi dWZmZXItZmFjZS1tb2RlLWZhY2Ugb3JnLXRibC1tZW51IG9yZy1vcmctbWVudQoJCSAgIG9yZy1z dHJ1Y3QtbWVudSBvcmctZW50aXRpZXMgb3JnLWxhc3Qtc3RhdGUKCQkgICBvcmctaWQtdHJhY2st Z2xvYmFsbHkgb3JnLWNsb2NrLXN0YXJ0LXRpbWUgdGV4bWF0aHAtd2h5CgkJICAgcmVtZW1iZXIt ZGF0YS1maWxlCgkJICAgb3JnLWFnZW5kYS10YWdzLXRvZG8taG9ub3ItaWdub3JlLW9wdGlvbnMK CQkgICBpc3dpdGNoYi10ZW1wLWJ1Zmxpc3QgY2FsYy1lbWJlZGRlZC1vcGVuLW1vZGUKCQkgICBj YWxjLWVtYmVkZGVkLW9wZW4tZm9ybXVsYSBjYWxjLWVtYmVkZGVkLWNsb3NlLWZvcm11bGEKCQkg ICBhbGlnbi1tb2RlLXJ1bGVzLWxpc3Qgb3JnLWVtcGhhc2lzLWFsaXN0CgkJICAgb3JnLWVtcGhh c2lzLXJlZ2V4cC1jb21wb25lbnRzCgkJICAgb3JnLWV4cG9ydC1yZWdpc3RlcmVkLWJhY2tlbmRz IG9yZy1tb2R1bGVzCgkJICAgb3JnLWJhYmVsLWxvYWQtbGFuZ3VhZ2VzIG9yZy1pbmRlbnQtaW5k ZW50YXRpb24tcGVyLWxldmVsCgkJICAgb3JnLWVsZW1lbnQtcGFyYWdyYXBoLXNlcGFyYXRlIGZm YXAtdXJsLXJlZ2V4cAoJCSAgIG9yZy1pbmxpbmV0YXNrLW1pbi1sZXZlbCB0KQoJCSAgbmlsCgkJ ICAoYWRkLWhvb2sgKHF1b3RlIGNoYW5nZS1tYWpvci1tb2RlLWhvb2spCgkJICAgKHF1b3RlIG9y Zy1zaG93LWFsbCkgKHF1b3RlIGFwcGVuZCkgKHF1b3RlIGxvY2FsKSkKCQkgICkKCQkgKGNsb3N1 cmUKCQkgIChvcmctc3JjLXdpbmRvdy1zZXR1cCAqdGhpcyoKCQkgICBvcmctYmFiZWwtY29uZmly bS1ldmFsdWF0ZS1hbnN3ZXItbm8KCQkgICBvcmctc3JjLXByZXNlcnZlLWluZGVudGF0aW9uIG9y Zy1zcmMtbGFuZy1tb2RlcwoJCSAgIG9yZy1lZGl0LXNyYy1jb250ZW50LWluZGVudGF0aW9uIG9y Zy1iYWJlbC1saWJyYXJ5LW9mLWJhYmVsCgkJICAgdCkKCQkgIG5pbAoJCSAgKGFkZC1ob29rIChx dW90ZSBjaGFuZ2UtbWFqb3ItbW9kZS1ob29rKQoJCSAgIChxdW90ZSBvcmctYmFiZWwtc2hvdy1y ZXN1bHQtYWxsKSAocXVvdGUgYXBwZW5kKQoJCSAgIChxdW90ZSBsb2NhbCkpCgkJICApCgkJIG9y Zy1iYWJlbC1yZXN1bHQtaGlkZS1zcGVjIG9yZy1iYWJlbC1oaWRlLWFsbC1oYXNoZXMKCQkgb3Jn LWVsZG9jLWxvYWQgb3JnLXJlZi1zZXR1cC1sYWJlbC1maW5kZXJzKQogb3JnLXJlZi1pbnNlcnQt Y2l0ZS1mdW5jdGlvbiAnb3JnLXJlZi1oZWxtLWluc2VydC1jaXRlLWxpbmsKIG9yZy1sYXRleC1w cmVmZXItdXNlci1sYWJlbHMgdAogb3JnLWJpYnRleC1oZWFkbGluZS1mb3JtYXQtZnVuY3Rpb24g JyhjbG9zdXJlCgkJCQkgICAgICAgKG9yZy1pZC1sb2NhdGlvbnMKCQkJCQlvcmctYWdlbmRhLXNl YXJjaC12aWV3LWFsd2F5cy1ib29sZWFuCgkJCQkJb3JnLWFnZW5kYS1vdmVycmlkaW5nLWhlYWRl ciB0KQoJCQkJICAgICAgIChlbnRyeSkgKGNkciAoYXNzcSA6dGl0bGUgZW50cnkpKSkKIG9yZy1s YXRleC1jYXB0aW9uLWFib3ZlIG5pbAogb3JnLWFyY2hpdmUtaG9vayAnKG9yZy1hdHRhY2gtYXJj aGl2ZS1kZWxldGUtbWF5YmUpCiBvcmctYXNjaWktZm9ybWF0LWRyYXdlci1mdW5jdGlvbiAnKGNs b3N1cmUgKHQpIChfbmFtZSBjb250ZW50cyBfd2lkdGgpCgkJCQkgICAgY29udGVudHMpCiBvcmct b2R0LWZvcm1hdC1pbmxpbmV0YXNrLWZ1bmN0aW9uICdvcmctb2R0LWZvcm1hdC1pbmxpbmV0YXNr LWRlZmF1bHQtZnVuY3Rpb24KIG9yZy1yZWYtaW5zZXJ0LXJlZi1mdW5jdGlvbiAnb3JnLXJlZi1o ZWxtLWluc2VydC1yZWYtbGluawogb3JnLWN5Y2xlLWhvb2sgJyhvcmctY3ljbGUtaGlkZS1hcmNo aXZlZC1zdWJ0cmVlcyBvcmctY3ljbGUtc2hvdy1lbXB0eS1saW5lcwoJCSAgb3JnLW9wdGltaXpl LXdpbmRvdy1hZnRlci12aXNpYmlsaXR5LWNoYW5nZSkKIG9yZy1yZWYtYmlidGV4LWFzc29jLXBk Zi13aXRoLWVudHJ5LW1vdmUtZnVuY3Rpb24gJ3JlbmFtZS1maWxlCiBvcmctbGluay1zaGVsbC1j b25maXJtLWZ1bmN0aW9uICd5ZXMtb3Itbm8tcAogb3JnLWV4cG9ydC1hc3luYy1pbml0LWZpbGUg In4vLmVtYWNzLmQvdG9vbHMvYXN5bmMuZWwiCiBvcmctcmVmLWNsZWFuLWJpYnRleC1rZXktZnVu Y3Rpb24gJyhsYW1iZGEgKGtleSkKCQkJCSAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAi OiIgIiIga2V5KSkKIG9yZy1yZWYtY2xlYW4tYmlidGV4LWVudHJ5LWhvb2sgJyhvcmctcmVmLWJp YnRleC1mb3JtYXQtdXJsLWlmLWRvaQoJCQkJICAgb3JjYi1rZXktY29tbWEgb3JnLXJlZi1yZXBs YWNlLW5vbmFzY2lpCgkJCQkgICBvcmNiLSYgb3JjYi0lIG9yZy1yZWYtdGl0bGUtY2FzZS1hcnRp Y2xlCgkJCQkgICBvcmNiLWNsZWFuLXllYXIgb3JjYi1rZXkgb3JjYi1jbGVhbi1kb2kKCQkJCSAg IG9yY2ItY2xlYW4tcGFnZXMgb3JjYi1jaGVjay1qb3VybmFsCgkJCQkgICBvcmctcmVmLXNvcnQt YmlidGV4LWVudHJ5IG9yY2ItZml4LXNwYWNpbmcpCiBvcmctbGluay1lbGlzcC1jb25maXJtLWZ1 bmN0aW9uICd5ZXMtb3Itbm8tcAogb3JnLWJhYmVsLXRhbmdsZS1sYW5nLWV4dHMgJygoInB5dGhv biIgLiAicHkiKSAoImVtYWNzLWxpc3AiIC4gImVsIikKCQkJICAgICAgKCJlbGlzcCIgLiAiZWwi KSkKIG9yZy1jb25maXJtLWVsaXNwLWxpbmstZnVuY3Rpb24gJ3llcy1vci1uby1wCiBvcmctZXhw b3J0LWluLWJhY2tncm91bmQgdAogb3JnLW1ldGFkb3duLWhvb2sgJyhvcmctYmFiZWwtcG9wLXRv LXNlc3Npb24tbWF5YmUpCiBvcmctb2R0LWZvcm1hdC1kcmF3ZXItZnVuY3Rpb24gJyhjbG9zdXJl CgkJCQkgIChoZnktdXNlci1zaGVldC1hc3NvYyBoZnktaHRtbC1xdW90ZS1yZWdleAoJCQkJICAg aGZ5LWh0bWwtcXVvdGUtbWFwIGhmeS1mYWNlLXRvLWNzcwoJCQkJICAgaGZ5LWJlZ2luLXNwYW4t aGFuZGxlciBoZnktZW5kLXNwYW4taGFuZGxlcgoJCQkJICAgYXJjaGl2ZS16aXAtZXh0cmFjdAoJ CQkJICAgbnhtbC1hdXRvLWluc2VydC14bWwtZGVjbGFyYXRpb24tZmxhZyB0KQoJCQkJICAoX25h bWUgY29udGVudHMpIGNvbnRlbnRzKQogb3JnLXJlZi1vcGVuLW5vdGVzLWZ1bmN0aW9uICcobGFt YmRhIG5pbCAob3JnLXNob3ctZW50cnkpCgkJCSAgICAgICAob3V0bGluZS1zaG93LWJyYW5jaGVz KSAob3V0bGluZS1zaG93LWNoaWxkcmVuKQoJCQkgICAgICAgKG9yZy1jeWNsZSAocXVvdGUgKDY0 KSkpCgkJCSAgICAgICAocmVjZW50ZXItdG9wLWJvdHRvbSAwKSkKIG9yZy1odG1sLWZvcm1hdC1o ZWFkbGluZS1mdW5jdGlvbiAnb3JnLWh0bWwtZm9ybWF0LWhlYWRsaW5lLWRlZmF1bHQtZnVuY3Rp b24KIG9yZy1saW5rLXBhcmFtZXRlcnMgJygoImF0dGFjaG1lbnQiIDpmb2xsb3cgb3JnLWF0dGFj aC1vcGVuLWxpbmsgOmV4cG9ydAoJCQlvcmctYXR0YWNoLWV4cG9ydC1saW5rIDpjb21wbGV0ZQoJ CQlvcmctYXR0YWNoLWNvbXBsZXRlLWxpbmspCgkJICAgICAgICgiaWQiIDpmb2xsb3cgb3JnLWlk LW9wZW4pCgkJICAgICAgICgiZXd3IiA6Zm9sbG93IGV3dyA6c3RvcmUgb3JnLWV3dy1zdG9yZS1s aW5rKQoJCSAgICAgICAoInJtYWlsIiA6Zm9sbG93IG9yZy1ybWFpbC1vcGVuIDpzdG9yZQoJCQlv cmctcm1haWwtc3RvcmUtbGluaykKCQkgICAgICAgKCJtaGUiIDpmb2xsb3cgb3JnLW1oZS1vcGVu IDpzdG9yZSBvcmctbWhlLXN0b3JlLWxpbmspCgkJICAgICAgICgiaXJjIiA6Zm9sbG93IG9yZy1p cmMtdmlzaXQgOnN0b3JlIG9yZy1pcmMtc3RvcmUtbGluawoJCQk6ZXhwb3J0IG9yZy1pcmMtZXhw b3J0KQoJCSAgICAgICAoImluZm8iIDpmb2xsb3cgb3JnLWluZm8tb3BlbiA6ZXhwb3J0IG9yZy1p bmZvLWV4cG9ydAoJCQk6c3RvcmUgb3JnLWluZm8tc3RvcmUtbGluaykKCQkgICAgICAgKCJnbnVz IiA6Zm9sbG93IG9yZy1nbnVzLW9wZW4gOnN0b3JlCgkJCW9yZy1nbnVzLXN0b3JlLWxpbmspCgkJ ICAgICAgICgiZG9jdmlldyIgOmZvbGxvdyBvcmctZG9jdmlldy1vcGVuIDpleHBvcnQKCQkJb3Jn LWRvY3ZpZXctZXhwb3J0IDpzdG9yZSBvcmctZG9jdmlldy1zdG9yZS1saW5rKQoJCSAgICAgICAo ImJiZGIiIDpmb2xsb3cgb3JnLWJiZGItb3BlbiA6ZXhwb3J0IG9yZy1iYmRiLWV4cG9ydAoJCQk6 Y29tcGxldGUgb3JnLWJiZGItY29tcGxldGUtbGluayA6c3RvcmUKCQkJb3JnLWJiZGItc3RvcmUt bGluaykKCQkgICAgICAgKCJ3M20iIDpzdG9yZSBvcmctdzNtLXN0b3JlLWxpbmspCgkJICAgICAg ICgicHJpbnRpbmRleCIgOmZvbGxvdyBvcmctcmVmLWluZGV4IDpleHBvcnQKCQkJKGxhbWJkYSAo cGF0aCBkZXNjIGZvcm1hdCkKCQkJIChjb25kCgkJCSAgKChlcSBmb3JtYXQgKHF1b3RlIGxhdGV4 KSkgKGZvcm1hdCAiXFxwcmludGluZGV4IikpKQoJCQkgKQoJCQkpCgkJICAgICAgICgiaW5kZXgi IDpmb2xsb3cgKGxhbWJkYSAocGF0aCkgKG9jY3VyIHBhdGgpKSA6ZXhwb3J0CgkJCShsYW1iZGEg KHBhdGggZGVzYyBmb3JtYXQpCgkJCSAoY29uZAoJCQkgICgoZXEgZm9ybWF0IChxdW90ZSBsYXRl eCkpCgkJCSAgIChmb3JtYXQgIlxcaW5kZXh7JXN9IiBwYXRoKSkKCQkJICApCgkJCSApCgkJCSkK CQkgICAgICAgKCJiaWJlbnRyeSIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNhbGwg b3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVmLWZv cm1hdC1iaWJlbnRyeSA6Y29tcGxldGUKCQkJb3JnLWJpYmVudHJ5LWNvbXBsZXRlLWxpbmsgOmhl bHAtZWNobwoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdoZW4gb3Jn LXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNo YXIgcG9zaXRpb24pCgkJCSAgIChsZXQKCQkJICAgICgocwoJCQkgICAgICAob3JnLXJlZi1mb3Jt YXQtZW50cnkKCQkJICAgICAgIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikp CgkJCSAgICAgICkKCQkJICAgICApCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMp IChmaWxsLXBhcmFncmFwaCkKCQkJICAgICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICApCgkJCSAg ICkKCQkJICApCgkJCSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3Bs YXkgZnVsbCA6a2V5bWFwCgkJCShrZXltYXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50ZXJhY3Rp dmUpCgkJCSAgKGZ1bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJCSAoUy11 cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAo aW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJCQkgKFMt bGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9u LWxpbmsgLTEpKQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMtbGVmdCAu IG9yZy1yZWYtcHJldmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJICAiUGFz dGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcg aXMgYSBrZXkuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQta2V5LWF0 LXBvaW50IChjYXIga2lsbC1yaW5nKSkpCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBh bGwgdGhlIGtleXMgYXQgcG9pbnQuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcK CQkJICAgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkp CgkJCSAgKQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChraWxs LW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkgKDE2Nzc3 MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJl Zi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0 LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYt Z29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwg ZW50cnkgYXQgcG9pbnQiCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNpdGF0aW9u LWF0LXBvaW50KQoJCQkgIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAoMTY3Nzcz MTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBvcmctcmVm LXdvcy1yZWxhdGVkLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVz LWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkKCQkJ ICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3NzczMTQgLiBv cmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNp dGUtaHlkcmEvYm9keSkKCQkJIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAobW91c2Ut MyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1v dXNlKSkKCQkJKQoJCSAgICAgICAoIkF1dG9jaXRlcyIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJ CQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9y dCBvcmctcmVmLWZvcm1hdC1BdXRvY2l0ZXMgOmNvbXBsZXRlCgkJCW9yZy1BdXRvY2l0ZXMtY29t cGxldGUtbGluayA6aGVscC1lY2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24p CgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1 cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAg IChvcmctcmVmLWZvcm1hdC1lbnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXkt dW5kZXItY3Vyc29yKSkKCQkJICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVm ZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkK CQkJICAgICkKCQkJICAgKQoJCQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmst ZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0 aW9uKSkKCQkJIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdo dCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxp bmsgMSkpCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVm LXN3YXAtY2l0YXRpb24tbGluayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkp CgkJCSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRh IG5pbAoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGlu IHRoZSBraWxscmluZyBpcyBhIGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVm LWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1i ZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJ CQkgIChraWxsLW5ldwoJCQkgICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVt ZW50LWNvbnRleHQpKSkKCQkJICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3Rp dmUpCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUp KSkpCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhj dXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAo b3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3 MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1i ZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVm LW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5 KSkKCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3 NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmct cmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRm LWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJ ICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMy NyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFj ZSkKCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4g b3JnLW9wZW4tYXQtbW91c2UpKQoJCQkpCgkJICAgICAgICgiYXV0b2NpdGVzIiA6Zm9sbG93CgkJ CShsYW1iZGEgKF8pCgkJCSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBu aWwpKQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LWF1dG9jaXRlcyA6Y29tcGxldGUKCQkJb3Jn LWF1dG9jaXRlcy1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9i amVjdCBwb3NpdGlvbikKCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJ CQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAg ICAoKHMKCQkJICAgICAgKG9yZy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1n ZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAg KHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1 ZmZlci1zdHJpbmcpKQoJCQkgICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmct cmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJ CSAodGFiIGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5z ZXJ0LWNpdGUtZnVuY3Rpb24pKQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGlu aykKCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3 YXAtY2l0YXRpb24tbGluayAxKSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUp CgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3Jn LXJlZi1uZXh0LWtleSkKCQkJIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgx Njc3NzMzNyBsYW1iZGEgbmlsCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUg Zmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUp CgkJCSAgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkg KDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAo aW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4 LWtleS1hbmQtZmlsZSkpKSkKCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkK CQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJ ICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJ ICApCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkg KDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFj dGl2ZSkgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFp bC1iaWJ0ZXgtZW50cnkpKQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBv aW50KQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgx Njc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9y Zy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJs LWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50 KQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxp bmsgLiBtb3VzZS1mYWNlKQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJ CQkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJzdXBlcmNp dGVzIiA6Zm9sbG93CgkJCShsYW1iZGEgKF8pCgkJCSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25j bGljay1mdW5jdGlvbiBuaWwpKQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LXN1cGVyY2l0ZXMg OmNvbXBsZXRlCgkJCW9yZy1zdXBlcmNpdGVzLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJCQko bGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNp dGF0aW9uLW9uLWVudGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24p CgkJCSAgIChsZXQKCQkJICAgICgocwoJCQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJ ICAgICAgIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAgICkK CQkJICAgICApCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFn cmFwaCkKCQkJICAgICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJ CSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5 bWFwCgkJCShrZXltYXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1 bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1yZWYt c29ydC1jaXRhdGlvbi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUp CgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJ CQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJl dmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0IHBv aW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJ CQkgIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIg a2lsbC1yaW5nKSkpCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMg YXQgcG9pbnQuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9yZy1l bGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJCQkg KDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2FyIChv cmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBu aWwgKGludGVyYWN0aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0 aW9uLWF0LXBvaW50KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRy eS1hdC1wb2ludCkpKQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9s YXItYXQtcG9pbnQpCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9p bnQiCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJ CQkgIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmctcmVm LXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVk LWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJ CQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMzMyAu IG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4t Y2l0YXRpb24tYXQtcG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9k eSkKCQkJIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1maW5k LWZpbGUtYXQtbW91c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJ CSAgICAgICAoIlRleHRjaXRlcyIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNhbGwg b3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVmLWZv cm1hdC1UZXh0Y2l0ZXMgOmNvbXBsZXRlCgkJCW9yZy1UZXh0Y2l0ZXMtY29tcGxldGUtbGluayA6 aGVscC1lY2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAod2hlbiBv cmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8t Y2hhciBwb3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAgIChvcmctcmVmLWZv cm1hdC1lbnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29y KSkKCQkJICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQg cykgKGZpbGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAgICkKCQkJ ICAgKQoJCQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlz cGxheSBmdWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkKCQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkKCQkJIChT LXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1iZGEgbmls IChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpCgkJCSAo Uy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRp b24tbGluayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAoQy1sZWZ0 IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJCQkgICJQ YXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmlu ZyBpcyBhIGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2VydC1rZXkt YXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5 IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5l dwoJCQkgICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQp KSkKCQkJICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGtp bGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJCSAoMTY3 NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmct cmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3Jt YXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJl Zi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFp bCBlbnRyeSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4tY2l0YXRp b24tYXQtcG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJICgxNjc3 NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAuIG9yZy1y ZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90 ZXMtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KQoJ CQkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3NzMxNCAu IG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYt Y2l0ZS1oeWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJIChtb3Vz ZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQt bW91c2UpKQoJCQkpCgkJICAgICAgICgidGV4dGNpdGVzIiA6Zm9sbG93CgkJCShsYW1iZGEgKF8p CgkJCSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQoJCQk6ZXhw b3J0IG9yZy1yZWYtZm9ybWF0LXRleHRjaXRlcyA6Y29tcGxldGUKCQkJb3JnLXRleHRjaXRlcy1j b21wbGV0ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlv bikKCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChzYXZlLWV4 Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMKCQkJICAg ICAgKG9yZy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmlidGV4LWtl eS11bmRlci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgtdGVtcC1i dWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1zdHJpbmcp KQoJCQkgICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGlu ay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFiIGxhbWJk YSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNpdGUtZnVu Y3Rpb24pKQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJIChTLXJp Z2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24t bGluayAxKSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1y ZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtl eSkKCQkJIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMzNyBsYW1i ZGEgbmlsCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcg aW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1y ZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3MzAzIGxh bWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJhY3RpdmUp CgkJCSAgKGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVs ZW1lbnQtY29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkKCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmls ZSkpKSkKCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoc2F2ZS1l eGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtpbGwtbmV3 IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJCSAoMTY3 NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE3IGxh bWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1y ZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50 cnkpKQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJCQkgKDE2 Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMyNiAuIG9y Zy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1w ZGYtYXQtcG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQoJ CQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgKDE2Nzc3 MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBtb3VzZS1m YWNlKQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1vdXNlLTIg LiBvcmctb3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJTbWFydGNpdGVzIiA6Zm9sbG93 CgkJCShsYW1iZGEgKF8pCgkJCSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlv biBuaWwpKQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LVNtYXJ0Y2l0ZXMgOmNvbXBsZXRlCgkJ CW9yZy1TbWFydGNpdGVzLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJCQkobGFtYmRhICh3aW5k b3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVu dGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pCgkJCSAgIChsZXQK CQkJICAgICgocwoJCQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJICAgICAgIChvcmct cmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAgICkKCQkJICAgICApCgkJ CSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkKCQkJICAg ICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJCSApCgkJCTpmYWNl IG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwCgkJCShrZXlt YXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1bmNhbGwgb3JnLXJl Zi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlv bi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1y ZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJCQkgKEMtcmlnaHQg LiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQoJ CQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVz IHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJCQkgIChpbnRlcmFj dGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkp CgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIgoJ CQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzM1IGxh bWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1i aWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0 aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50 KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkp KQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQp CgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiCgkJCSAgKGlu dGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgIChvcmctcmVm LWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmct YXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQoJ CQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI4 IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Bl bi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQt cG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkKCQkJIChmb2xs b3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91 c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJCSAgICAgICAoInNt YXJ0Y2l0ZXMiIDpmb2xsb3cKCQkJKGxhbWJkYSAoXykKCQkJIChmdW5jYWxsIG9yZy1yZWYtY2l0 ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtc21hcnRj aXRlcyA6Y29tcGxldGUKCQkJb3JnLXNtYXJ0Y2l0ZXMtY29tcGxldGUtbGluayA6aGVscC1lY2hv CgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAod2hlbiBvcmctcmVmLXNo b3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3Np dGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAgIChvcmctcmVmLWZvcm1hdC1lbnRy eQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkKCQkJICAg ICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwt cGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAgICkKCQkJICAgKQoJCQkg ICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxs IDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJ ICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkKCQkJIChTLXVwIC4gb3Jn LXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpCgkJCSAoUy1sZWZ0IGxh bWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAt MSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAoQy1sZWZ0IC4gb3JnLXJl Zi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJCQkgICJQYXN0ZSBrZXkg YXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBhIGtl eS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQg KGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUg a2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldwoJCQkgICAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkKCQkJICAp CgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3IChj YXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJCSAoMTY3NzczMTggbGFt YmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4t Y2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4 LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUt c2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBh dCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9p bnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJICgxNjc3NzMxNSAuIG9y Zy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJl bGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9p bnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KQoJCQkgKDE2Nzc3 MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYt b3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRy YS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJIChtb3VzZS0zIC4gb3Jn LWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQoJ CQkpCgkJICAgICAgICgiZm9vdGNpdGV0ZXh0cyIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkg KGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBv cmctcmVmLWZvcm1hdC1mb290Y2l0ZXRleHRzIDpjb21wbGV0ZQoJCQlvcmctZm9vdGNpdGV0ZXh0 cy1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3Np dGlvbikKCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChzYXZl LWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMKCQkJ ICAgICAgKG9yZy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmlidGV4 LWtleS11bmRlci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgtdGVt cC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1zdHJp bmcpKQoJCQkgICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUt bGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFiIGxh bWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNpdGUt ZnVuY3Rpb24pKQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJIChT LXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRp b24tbGluayAxKSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9y Zy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0 LWtleSkKCQkJIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMzNyBs YW1iZGEgbmlsCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhp bmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKG9y Zy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3MzAz IGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJhY3Rp dmUpCgkJCSAgKGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3Jn LWVsZW1lbnQtY29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRl cmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQt ZmlsZSkpKSkKCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoc2F2 ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtpbGwt bmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJCSAo MTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE3 IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkgKG9y Zy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgt ZW50cnkpKQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJCQkg KDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMyNiAu IG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Bl bi1wZGYtYXQtcG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50 KQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgKDE2 Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBtb3Vz ZS1mYWNlKQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1vdXNl LTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJmb290Y2l0ZXMiIDpmb2xs b3cKCQkJKGxhbWJkYSAoXykKCQkJIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0 aW9uIG5pbCkpCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtZm9vdGNpdGVzIDpjb21wbGV0ZQoJ CQlvcmctZm9vdGNpdGVzLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJCQkobGFtYmRhICh3aW5k b3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVu dGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pCgkJCSAgIChsZXQK CQkJICAgICgocwoJCQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJICAgICAgIChvcmct cmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAgICkKCQkJICAgICApCgkJ CSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkKCQkJICAg ICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJCSApCgkJCTpmYWNl IG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwCgkJCShrZXlt YXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1bmNhbGwgb3JnLXJl Zi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlv bi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1y ZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJCQkgKEMtcmlnaHQg LiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQoJ CQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVz IHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJCQkgIChpbnRlcmFj dGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkp CgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIgoJ CQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzM1IGxh bWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1i aWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0 aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50 KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkp KQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQp CgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiCgkJCSAgKGlu dGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgIChvcmctcmVm LWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmct YXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQoJ CQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI4 IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Bl bi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQt cG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkKCQkJIChmb2xs b3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91 c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJCSAgICAgICAoIlBh cmVuY2l0ZXMiIDpmb2xsb3cKCQkJKGxhbWJkYSAoXykKCQkJIChmdW5jYWxsIG9yZy1yZWYtY2l0 ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtUGFyZW5j aXRlcyA6Y29tcGxldGUKCQkJb3JnLVBhcmVuY2l0ZXMtY29tcGxldGUtbGluayA6aGVscC1lY2hv CgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAod2hlbiBvcmctcmVmLXNo b3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3Np dGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAgIChvcmctcmVmLWZvcm1hdC1lbnRy eQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkKCQkJICAg ICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwt cGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAgICkKCQkJICAgKQoJCQkg ICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxs IDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJ ICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkKCQkJIChTLXVwIC4gb3Jn LXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpCgkJCSAoUy1sZWZ0IGxh bWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAt MSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAoQy1sZWZ0IC4gb3JnLXJl Zi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJCQkgICJQYXN0ZSBrZXkg YXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBhIGtl eS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQg KGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUg a2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldwoJCQkgICAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkKCQkJICAp CgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3IChj YXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJCSAoMTY3NzczMTggbGFt YmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4t Y2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4 LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUt c2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBh dCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9p bnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJICgxNjc3NzMxNSAuIG9y Zy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJl bGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9p bnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KQoJCQkgKDE2Nzc3 MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYt b3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRy YS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJIChtb3VzZS0zIC4gb3Jn LWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQoJ CQkpCgkJICAgICAgICgicGFyZW5jaXRlcyIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1 bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmct cmVmLWZvcm1hdC1wYXJlbmNpdGVzIDpjb21wbGV0ZQoJCQlvcmctcGFyZW5jaXRlcy1jb21wbGV0 ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikKCQkJ ICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChzYXZlLWV4Y3Vyc2lv biAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMKCQkJICAgICAgKG9y Zy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRl ci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIg KGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1zdHJpbmcpKQoJCQkg ICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNl LWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFiIGxhbWJkYSBuaWwg KGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNpdGUtZnVuY3Rpb24p KQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJIChTLXJpZ2h0IGxh bWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAx KSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dh cC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkKCQkJ IChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMzNyBsYW1iZGEgbmls CgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhl IGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtaW5z ZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBu aWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAg KGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQt Y29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkK CQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkK CQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoc2F2ZS1leGN1cnNp b24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtpbGwtbmV3IChvcmct cmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJCSAoMTY3NzczMTkg LiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBu aWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtb3Bl bi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQoJ CQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMw IC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYt b3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQt cG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQoJCQkgKDE2 Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI3IC4g b3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQoJ CQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1vdXNlLTIgLiBvcmct b3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJDaXRlcyIgOmZvbGxvdwoJCQkobGFtYmRh IChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJ OmV4cG9ydCBvcmctcmVmLWZvcm1hdC1DaXRlcyA6Y29tcGxldGUKCQkJb3JnLUNpdGVzLWNvbXBs ZXRlLWxpbmsgOmhlbHAtZWNobwoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQoJ CQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVyCgkJCSAgKHNhdmUtZXhjdXJz aW9uIChnb3RvLWNoYXIgcG9zaXRpb24pCgkJCSAgIChsZXQKCQkJICAgICgocwoJCQkgICAgICAo b3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJICAgICAgIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVu ZGVyLWN1cnNvcikpCgkJCSAgICAgICkKCQkJICAgICApCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZl ciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkKCQkJICAgICAoYnVmZmVyLXN0cmluZykpCgkJ CSAgICApCgkJCSAgICkKCQkJICApCgkJCSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZh Y2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwCgkJCShrZXltYXAKCQkJICh0YWIgbGFtYmRhIG5p bCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0ZS1mdW5jdGlv bikpCgkJCSAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQoJCQkgKFMtcmlnaHQg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5r IDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1z d2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KQoJ CQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBu aWwKCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0 aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1p bnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkpCgkJCSAoMTY3NzczMDMgbGFtYmRh IG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJ ICAoa2lsbC1uZXcKCQkJICAgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVu dC1jb250ZXh0KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZl KQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkp KQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChzYXZlLWV4Y3Vy c2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgICAoa2lsbC1uZXcgKG9y Zy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQoJCQkgICkKCQkJICgxNjc3NzMx OSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpCgkJCSAoMTY3NzczMTcgbGFtYmRh IG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1v cGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkp CgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJCSAoMTY3Nzcz MzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJl Zi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1h dC1wb2ludCkKCQkJICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpCgkJCSAo MTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAoMTY3NzczMjcg LiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkKCQkJIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2Up CgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpCgkJCSAobW91c2UtMiAuIG9y Zy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJCSAgICAgICAoImNpdGVzIiA6Zm9sbG93CgkJCShsYW1i ZGEgKF8pCgkJCSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQoJ CQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LWNpdGVzIDpjb21wbGV0ZQoJCQlvcmctY2l0ZXMtY29t cGxldGUtbGluayA6aGVscC1lY2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24p CgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1 cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAg IChvcmctcmVmLWZvcm1hdC1lbnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXkt dW5kZXItY3Vyc29yKSkKCQkJICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVm ZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkK CQkJICAgICkKCQkJICAgKQoJCQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmst ZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0 aW9uKSkKCQkJIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdo dCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxp bmsgMSkpCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVm LXN3YXAtY2l0YXRpb24tbGluayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkp CgkJCSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRh IG5pbAoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGlu IHRoZSBraWxscmluZyBpcyBhIGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVm LWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1i ZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJ CQkgIChraWxsLW5ldwoJCQkgICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVt ZW50LWNvbnRleHQpKSkKCQkJICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3Rp dmUpCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUp KSkpCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhj dXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAo b3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3 MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1i ZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVm LW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5 KSkKCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3 NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmct cmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRm LWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJ ICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMy NyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFj ZSkKCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4g b3JnLW9wZW4tYXQtbW91c2UpKQoJCQkpCgkJICAgICAgICgiZm5vdGVjaXRlIiA6Zm9sbG93CgkJ CShsYW1iZGEgKF8pCgkJCSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBu aWwpKQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LWZub3RlY2l0ZSA6Y29tcGxldGUKCQkJb3Jn LWZub3RlY2l0ZS1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9i amVjdCBwb3NpdGlvbikKCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJ CQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAg ICAoKHMKCQkJICAgICAgKG9yZy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1n ZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAg KHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1 ZmZlci1zdHJpbmcpKQoJCQkgICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmct cmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJ CSAodGFiIGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5z ZXJ0LWNpdGUtZnVuY3Rpb24pKQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGlu aykKCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3 YXAtY2l0YXRpb24tbGluayAxKSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUp CgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3Jn LXJlZi1uZXh0LWtleSkKCQkJIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgx Njc3NzMzNyBsYW1iZGEgbmlsCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUg Zmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUp CgkJCSAgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkg KDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAo aW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4 LWtleS1hbmQtZmlsZSkpKSkKCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkK CQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJ ICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJ ICApCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkg KDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFj dGl2ZSkgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFp bC1iaWJ0ZXgtZW50cnkpKQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBv aW50KQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgx Njc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9y Zy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJs LWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50 KQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxp bmsgLiBtb3VzZS1mYWNlKQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJ CQkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJQbm90ZWNp dGUiIDpmb2xsb3cKCQkJKGxhbWJkYSAoXykKCQkJIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNs aWNrLWZ1bmN0aW9uIG5pbCkpCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtUG5vdGVjaXRlIDpj b21wbGV0ZQoJCQlvcmctUG5vdGVjaXRlLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJCQkobGFt YmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0 aW9uLW9uLWVudGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pCgkJ CSAgIChsZXQKCQkJICAgICgocwoJCQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJICAg ICAgIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAgICkKCQkJ ICAgICApCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFw aCkKCQkJICAgICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJCSAp CgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFw CgkJCShrZXltYXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1bmNh bGwgb3JnLXJlZi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1yZWYtc29y dC1jaXRhdGlvbi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJ CSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEgbmls IChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJCQkg KEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlv dXMta2V5KQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0IHBvaW50 LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJCQkg IChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2ls bC1yaW5nKSkpCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQg cG9pbnQuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJCQkgKDE2 Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmct cmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwg KGludGVyYWN0aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9u LWF0LXBvaW50KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1h dC1wb2ludCkpKQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXIt YXQtcG9pbnQpCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQi CgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkg IChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdv cy1jaXRpbmctYXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0 LXBvaW50KQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJCQkg KDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMzMyAuIG9y Zy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0 YXRpb24tYXQtcG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkK CQkJIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZp bGUtYXQtbW91c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJCSAg ICAgICAoInBub3RlY2l0ZSIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNhbGwgb3Jn LXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1h dC1wbm90ZWNpdGUgOmNvbXBsZXRlCgkJCW9yZy1wbm90ZWNpdGUtY29tcGxldGUtbGluayA6aGVs cC1lY2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAod2hlbiBvcmct cmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hh ciBwb3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAgIChvcmctcmVmLWZvcm1h dC1lbnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkK CQkJICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykg KGZpbGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAgICkKCQkJICAg KQoJCQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxh eSBmdWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChpbnRlcmFjdGl2 ZSkKCQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkKCQkJIChTLXVw IC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpCgkJCSAoUy1s ZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24t bGluayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAoQy1sZWZ0IC4g b3JnLXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJCQkgICJQYXN0 ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBp cyBhIGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2VydC1rZXktYXQt cG9pbnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFs bCB0aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldwoJ CQkgICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkK CQkJICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwt bmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJCSAoMTY3Nzcz MTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVm LW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQt YmlidGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1n b29nbGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBl bnRyeSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4tY2l0YXRpb24t YXQtcG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJICgxNjc3NzMx NSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYt d29zLXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMt YXQtcG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KQoJCQkg KDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3NzMxNCAuIG9y Zy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0 ZS1oeWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJIChtb3VzZS0z IC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91 c2UpKQoJCQkpCgkJICAgICAgICgiTm90ZWNpdGUiIDpmb2xsb3cKCQkJKGxhbWJkYSAoXykKCQkJ IChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpCgkJCTpleHBvcnQg b3JnLXJlZi1mb3JtYXQtTm90ZWNpdGUgOmNvbXBsZXRlCgkJCW9yZy1Ob3RlY2l0ZS1jb21wbGV0 ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikKCQkJ ICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChzYXZlLWV4Y3Vyc2lv biAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMKCQkJICAgICAgKG9y Zy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRl ci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIg KGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1zdHJpbmcpKQoJCQkg ICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNl LWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFiIGxhbWJkYSBuaWwg KGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNpdGUtZnVuY3Rpb24p KQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJIChTLXJpZ2h0IGxh bWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAx KSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dh cC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkKCQkJ IChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMzNyBsYW1iZGEgbmls CgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhl IGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtaW5z ZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBu aWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAg KGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQt Y29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkK CQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkK CQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoc2F2ZS1leGN1cnNp b24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtpbGwtbmV3IChvcmct cmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJCSAoMTY3NzczMTkg LiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBu aWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtb3Bl bi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQoJ CQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMw IC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYt b3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQt cG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQoJCQkgKDE2 Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI3IC4g b3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQoJ CQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1vdXNlLTIgLiBvcmct b3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJub3RlY2l0ZSIgOmZvbGxvdwoJCQkobGFt YmRhIChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkK CQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1ub3RlY2l0ZSA6Y29tcGxldGUKCQkJb3JnLW5vdGVj aXRlLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBv c2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVyCgkJCSAgKHNh dmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pCgkJCSAgIChsZXQKCQkJICAgICgocwoJ CQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJICAgICAgIChvcmctcmVmLWdldC1iaWJ0 ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAgICkKCQkJICAgICApCgkJCSAgICAod2l0aC10 ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkKCQkJICAgICAoYnVmZmVyLXN0 cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJCSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0 ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwCgkJCShrZXltYXAKCQkJICh0YWIg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0 ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQoJCQkg KFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRh dGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAo b3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5l eHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3 IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0 aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAo b3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkpCgkJCSAoMTY3Nzcz MDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIgoJCQkgIChpbnRlcmFj dGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChv cmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGlu dGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFu ZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChz YXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgICAoa2ls bC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQoJCQkgICkKCQkJ ICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpCgkJCSAoMTY3Nzcz MTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiCgkJCSAgKGludGVyYWN0aXZlKSAo b3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgIChvcmctcmVmLWVtYWlsLWJpYnRl eC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJ CSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2 IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1v cGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9p bnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAo MTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkKCQkJIChmb2xsb3ctbGluayAuIG1v dXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpCgkJCSAobW91 c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJCSAgICAgICAoImZvb3RmdWxsY2l0ZSIg OmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2st ZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1mb290ZnVsbGNpdGUgOmNv bXBsZXRlCgkJCW9yZy1mb290ZnVsbGNpdGUtY29tcGxldGUtbGluayA6aGVscC1lY2hvCgkJCShs YW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0 YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikK CQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAgIChvcmctcmVmLWZvcm1hdC1lbnRyeQoJCQkg ICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkKCQkJICAgICAgKQoJ CQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdy YXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAgICkKCQkJICAgKQoJCQkgICkKCQkJ ICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXlt YXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoZnVu Y2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkKCQkJIChTLXVwIC4gb3JnLXJlZi1z b3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkK CQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpCgkJCSAoUy1sZWZ0IGxhbWJkYSBu aWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpCgkJ CSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2 aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJCQkgICJQYXN0ZSBrZXkgYXQgcG9p bnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBhIGtleS4iCgkJ CSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBr aWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBh dCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldwoJCQkgICAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkKCQkJICApCgkJCSAo MTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9y Zy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJCSAoMTY3NzczMTggbGFtYmRhIG5p bCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRp b24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5 LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xh ci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2lu dCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJ CSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYt d29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQt YXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpCgkJ CSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMzIC4g b3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1j aXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5 KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQt ZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQoJCQkpCgkJ ICAgICAgICgiZnVsbGNpdGUiIDpmb2xsb3cKCQkJKGxhbWJkYSAoXykKCQkJIChmdW5jYWxsIG9y Zy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpCgkJCTpleHBvcnQgb3JnLXJlZi1mb3Jt YXQtZnVsbGNpdGUgOmNvbXBsZXRlCgkJCW9yZy1mdWxsY2l0ZS1jb21wbGV0ZS1saW5rIDpoZWxw LWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikKCQkJICh3aGVuIG9yZy1y ZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFy IHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMKCQkJICAgICAgKG9yZy1yZWYtZm9ybWF0 LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKQoJ CQkgICAgICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAo ZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1zdHJpbmcpKQoJCQkgICAgKQoJCQkgICAp CgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5 IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFiIGxhbWJkYSBuaWwgKGludGVyYWN0aXZl KQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNpdGUtZnVuY3Rpb24pKQoJCQkgKFMtdXAg LiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGlu dGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkKCQkJIChTLWxl ZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1s aW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkKCQkJIChDLWxlZnQgLiBv cmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsCgkJCSAgIlBhc3Rl IGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlz IGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1w b2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxs IHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3CgkJ CSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKQoJ CQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1u ZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkKCQkJICgxNjc3NzMx OCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYt b3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1i aWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdv b2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVu dHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1h dC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQoJCQkgKDE2Nzc3MzE1 IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13 b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1h dC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpCgkJCSAo MTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE0IC4gb3Jn LXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRl LWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQoJCQkgKG1vdXNlLTMg LiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3Vz ZSkpCgkJCSkKCQkgICAgICAgKCJjaXRldXJsIiA6Zm9sbG93CgkJCShsYW1iZGEgKF8pCgkJCSAo ZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQoJCQk6ZXhwb3J0IG9y Zy1yZWYtZm9ybWF0LWNpdGV1cmwgOmNvbXBsZXRlCgkJCW9yZy1jaXRldXJsLWNvbXBsZXRlLWxp bmsgOmhlbHAtZWNobwoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdo ZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChn b3RvLWNoYXIgcG9zaXRpb24pCgkJCSAgIChsZXQKCQkJICAgICgocwoJCQkgICAgICAob3JnLXJl Zi1mb3JtYXQtZW50cnkKCQkJICAgICAgIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1 cnNvcikpCgkJCSAgICAgICkKCQkJICAgICApCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5z ZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkKCQkJICAgICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICAp CgkJCSAgICkKCQkJICApCgkJCSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4g OmRpc3BsYXkgZnVsbCA6a2V5bWFwCgkJCShrZXltYXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50 ZXJhY3RpdmUpCgkJCSAgKGZ1bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJ CSAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRh IG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJ CQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNp dGF0aW9uLWxpbmsgLTEpKQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMt bGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJ ICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2ls bHJpbmcgaXMgYSBrZXkuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQt a2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkpCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAi Q29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2ls bC1uZXcKCQkJICAgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250 ZXh0KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkg IChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkg KDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAo b3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYt Zm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9y Zy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAi RW1haWwgZW50cnkgYXQgcG9pbnQiCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNp dGF0aW9uLWF0LXBvaW50KQoJCQkgIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAo MTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBv cmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVu LW5vdGVzLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2lu dCkKCQkJICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3Nzcz MTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmct cmVmLWNpdGUtaHlkcmEvYm9keSkKCQkJIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAo bW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVu LWF0LW1vdXNlKSkKCQkJKQoJCSAgICAgICAoImNpdGVkYXRlKiIgOmZvbGxvdwoJCQkobGFtYmRh IChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJ OmV4cG9ydCBvcmctcmVmLWZvcm1hdC1jaXRlZGF0ZSogOmNvbXBsZXRlCgkJCW9yZy1jaXRlZGF0 ZSotY29tcGxldGUtbGluayA6aGVscC1lY2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9z aXRpb24pCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2 ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJ CSAgICAgIChvcmctcmVmLWZvcm1hdC1lbnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRl eC1rZXktdW5kZXItY3Vyc29yKSkKCQkJICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRl bXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3Ry aW5nKSkKCQkJICAgICkKCQkJICAgKQoJCQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRl LWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBs YW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRl LWZ1bmN0aW9uKSkKCQkJIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAo Uy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0 aW9uLWxpbmsgMSkpCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChv cmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4 dC1rZXkpCgkJCSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcg bGFtYmRhIG5pbAoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRo aW5nIGluIHRoZSBraWxscmluZyBpcyBhIGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChv cmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMw MyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0 aXZlKQoJCQkgIChraWxsLW5ldwoJCQkgICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9y Zy1lbGVtZW50LWNvbnRleHQpKSkKCQkJICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50 ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5k LWZpbGUpKSkpCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNh dmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxs LW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkg KDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMx NyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChv cmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4 LWVudHJ5KSkKCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJ ICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYg LiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9w ZW4tcGRmLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2lu dCkKCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgx Njc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91 c2UtZmFjZSkKCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3Vz ZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQoJCQkpCgkJICAgICAgICgiY2l0ZWRhdGUiIDpmb2xs b3cKCQkJKGxhbWJkYSAoXykKCQkJIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0 aW9uIG5pbCkpCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtY2l0ZWRhdGUgOmNvbXBsZXRlCgkJ CW9yZy1jaXRlZGF0ZS1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93 IG9iamVjdCBwb3NpdGlvbikKCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRl cgoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJ CSAgICAoKHMKCQkJICAgICAgKG9yZy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJl Zi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkg ICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAg KGJ1ZmZlci1zdHJpbmcpKQoJCQkgICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBv cmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFw CgkJCSAodGFiIGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYt aW5zZXJ0LWNpdGUtZnVuY3Rpb24pKQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24t bGluaykKCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVm LXN3YXAtY2l0YXRpb24tbGluayAxKSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3Rp dmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4g b3JnLXJlZi1uZXh0LWtleSkKCQkJIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJ ICgxNjc3NzMzNyBsYW1iZGEgbmlsCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0 aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3Rp dmUpCgkJCSAgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJ CQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJ ICAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0 eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1i ZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmli dGV4LWtleS1hbmQtZmlsZSkpKSkKCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2 ZSkKCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkK CQkJICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkK CQkJICApCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJ CQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRl cmFjdGl2ZSkgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1l bWFpbC1iaWJ0ZXgtZW50cnkpKQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0 LXBvaW50KQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJ ICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAu IG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4t dXJsLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBv aW50KQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93 LWxpbmsgLiBtb3VzZS1mYWNlKQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNl KQoJCQkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJjaXRl dGl0bGUqIiA6Zm9sbG93CgkJCShsYW1iZGEgKF8pCgkJCSAoZnVuY2FsbCBvcmctcmVmLWNpdGUt b25jbGljay1mdW5jdGlvbiBuaWwpKQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LWNpdGV0aXRs ZSogOmNvbXBsZXRlCgkJCW9yZy1jaXRldGl0bGUqLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJ CQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93 LWNpdGF0aW9uLW9uLWVudGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRp b24pCgkJCSAgIChsZXQKCQkJICAgICgocwoJCQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkK CQkJICAgICAgIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAg ICkKCQkJICAgICApCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBh cmFncmFwaCkKCQkJICAgICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJICAp CgkJCSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6 a2V5bWFwCgkJCShrZXltYXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAg KGZ1bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1y ZWYtc29ydC1jaXRhdGlvbi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3Rp dmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1i ZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEp KQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYt cHJldmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0 IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXku IgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChj YXIga2lsbC1yaW5nKSkpCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtl eXMgYXQgcG9pbnQuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJ CQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2Fy IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJk YSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNp dGF0aW9uLWF0LXBvaW50KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1l bnRyeS1hdC1wb2ludCkpKQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNj aG9sYXItYXQtcG9pbnQpCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQg cG9pbnQiCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50 KQoJCQkgIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmct cmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxh dGVkLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50 KQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMz MyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9w ZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEv Ym9keSkKCQkJIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1m aW5kLWZpbGUtYXQtbW91c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJ KQoJCSAgICAgICAoImNpdGV0aXRsZSIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNh bGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVm LWZvcm1hdC1jaXRldGl0bGUgOmNvbXBsZXRlCgkJCW9yZy1jaXRldGl0bGUtY29tcGxldGUtbGlu ayA6aGVscC1lY2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAod2hl biBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24gKGdv dG8tY2hhciBwb3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAgIChvcmctcmVm LWZvcm1hdC1lbnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vy c29yKSkKCQkJICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNl cnQgcykgKGZpbGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAgICkK CQkJICAgKQoJCQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6 ZGlzcGxheSBmdWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChpbnRl cmFjdGl2ZSkKCQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkKCQkJ IChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpCgkJ CSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0 YXRpb24tbGluayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAoQy1s ZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJCQkg ICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxs cmluZyBpcyBhIGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2VydC1r ZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJD b3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChraWxs LW5ldwoJCQkgICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRl eHQpKSkKCQkJICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAg KGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJCSAo MTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChv cmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1m b3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4gb3Jn LXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJF bWFpbCBlbnRyeSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4tY2l0 YXRpb24tYXQtcG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJICgx Njc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAuIG9y Zy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4t bm90ZXMtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50 KQoJCQkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3NzMx NCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9yZy1y ZWYtY2l0ZS1oeWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJICht b3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9wZW4t YXQtbW91c2UpKQoJCQkpCgkJICAgICAgICgiQ2l0ZWF1dGhvcioiIDpmb2xsb3cKCQkJKGxhbWJk YSAoXykKCQkJIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpCgkJ CTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtQ2l0ZWF1dGhvciogOmNvbXBsZXRlCgkJCW9yZy1DaXRl YXV0aG9yKi1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9iamVj dCBwb3NpdGlvbikKCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkg IChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAgICAo KHMKCQkJICAgICAgKG9yZy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1nZXQt YmlidGV4LWtleS11bmRlci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAgKHdp dGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZl ci1zdHJpbmcpKQoJCQkgICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVm LWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJCSAo dGFiIGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0 LWNpdGUtZnVuY3Rpb24pKQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykK CQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAt Y2l0YXRpb24tbGluayAxKSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJ CSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJl Zi1uZXh0LWtleSkKCQkJIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgxNjc3 NzMzNyBsYW1iZGEgbmlsCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmly c3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJ CSAgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkgKDE2 Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAoaW50 ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0 aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEgbmls IChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtl eS1hbmQtZmlsZSkpKSkKCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJ ICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAg KGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJICAp CgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2 Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2 ZSkgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFpbC1i aWJ0ZXgtZW50cnkpKQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50 KQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgxNjc3 NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9yZy1y ZWYtb3Blbi1wZGYtYXQtcG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0 LXBvaW50KQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJ CQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxpbmsg LiBtb3VzZS1mYWNlKQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJCQkg KG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJBdXRvY2l0ZSoi IDpmb2xsb3cKCQkJKGxhbWJkYSAoXykKCQkJIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNr LWZ1bmN0aW9uIG5pbCkpCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtQXV0b2NpdGUqIDpjb21w bGV0ZQoJCQlvcmctQXV0b2NpdGUqLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJCQkobGFtYmRh ICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9u LW9uLWVudGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pCgkJCSAg IChsZXQKCQkJICAgICgocwoJCQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJICAgICAg IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAgICkKCQkJICAg ICApCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkK CQkJICAgICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJCSApCgkJ CTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwCgkJ CShrZXltYXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1bmNhbGwg b3JnLXJlZi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1yZWYtc29ydC1j aXRhdGlvbi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAg KG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJCQkgKEMt cmlnaHQgLiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMt a2V5KQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBB c3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJCQkgIChp bnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1y aW5nKSkpCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9p bnQuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJCQkgKDE2Nzc3 MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVm LWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGlu dGVyYWN0aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0 LXBvaW50KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1w b2ludCkpKQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQt cG9pbnQpCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiCgkJ CSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgIChv cmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1j aXRpbmctYXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBv aW50KQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJCQkgKDE2 Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMzMyAuIG9yZy1y ZWYtb3Blbi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRp b24tYXQtcG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkKCQkJ IChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUt YXQtbW91c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJCSAgICAg ICAoImF1dG9jaXRlKiIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJl Zi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1h dXRvY2l0ZSogOmNvbXBsZXRlCgkJCW9yZy1hdXRvY2l0ZSotY29tcGxldGUtbGluayA6aGVscC1l Y2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAod2hlbiBvcmctcmVm LXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBw b3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAgIChvcmctcmVmLWZvcm1hdC1l bnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkKCQkJ ICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZp bGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAgICkKCQkJICAgKQoJ CQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBm dWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkK CQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkKCQkJIChTLXVwIC4g b3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRl cmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpCgkJCSAoUy1sZWZ0 IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGlu ayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAoQy1sZWZ0IC4gb3Jn LXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJCQkgICJQYXN0ZSBr ZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBh IGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9p bnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0 aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldwoJCQkg ICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkKCQkJ ICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3 IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJCSAoMTY3NzczMTgg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9w ZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmli dGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29n bGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRy eSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQt cG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJICgxNjc3NzMxNSAu IG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29z LXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQt cG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KQoJCQkgKDE2 Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3NzMxNCAuIG9yZy1y ZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1o eWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJIChtb3VzZS0zIC4g b3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2Up KQoJCQkpCgkJICAgICAgICgiQXV0b2NpdGUiIDpmb2xsb3cKCQkJKGxhbWJkYSAoXykKCQkJIChm dW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpCgkJCTpleHBvcnQgb3Jn LXJlZi1mb3JtYXQtQXV0b2NpdGUgOmNvbXBsZXRlCgkJCW9yZy1BdXRvY2l0ZS1jb21wbGV0ZS1s aW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikKCQkJICh3 aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAo Z290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMKCQkJICAgICAgKG9yZy1y ZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1j dXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGlu c2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1zdHJpbmcpKQoJCQkgICAg KQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZu IDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFiIGxhbWJkYSBuaWwgKGlu dGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNpdGUtZnVuY3Rpb24pKQoJ CQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJIChTLXJpZ2h0IGxhbWJk YSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkK CQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1j aXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkKCQkJIChD LWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsCgkJ CSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtp bGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtaW5zZXJ0 LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwg IkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKGtp bGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29u dGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJ ICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkKCQkJ ICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoc2F2ZS1leGN1cnNpb24g KG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtpbGwtbmV3IChvcmctcmVm LWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJCSAoMTY3NzczMTkgLiBv cmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwg IkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtb3Blbi1j aXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQoJCQkg KDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMwIC4g b3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Bl bi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9p bnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQoJCQkgKDE2Nzc3 MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI3IC4gb3Jn LXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQoJCQkg KG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1vdXNlLTIgLiBvcmctb3Bl bi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJhdXRvY2l0ZSIgOmZvbGxvdwoJCQkobGFtYmRh IChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJ OmV4cG9ydCBvcmctcmVmLWZvcm1hdC1hdXRvY2l0ZSA6Y29tcGxldGUKCQkJb3JnLWF1dG9jaXRl LWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0 aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVyCgkJCSAgKHNhdmUt ZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pCgkJCSAgIChsZXQKCQkJICAgICgocwoJCQkg ICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJICAgICAgIChvcmctcmVmLWdldC1iaWJ0ZXgt a2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAgICkKCQkJICAgICApCgkJCSAgICAod2l0aC10ZW1w LWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkKCQkJICAgICAoYnVmZmVyLXN0cmlu ZykpCgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJCSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1s aW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwCgkJCShrZXltYXAKCQkJICh0YWIgbGFt YmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0ZS1m dW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQoJCQkgKFMt cmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlv bi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3Jn LXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQt a2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3IGxh bWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGlu ZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAob3Jn LXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkpCgkJCSAoMTY3NzczMDMg bGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIgoJCQkgIChpbnRlcmFjdGl2 ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmct ZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVy YWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1m aWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChzYXZl LWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgICAoa2lsbC1u ZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQoJCQkgICkKCQkJICgx Njc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpCgkJCSAoMTY3NzczMTcg bGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiCgkJCSAgKGludGVyYWN0aXZlKSAob3Jn LXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgIChvcmctcmVmLWVtYWlsLWJpYnRleC1l bnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJCSAo MTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2IC4g b3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVu LXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQp CgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAoMTY3 NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkKCQkJIChmb2xsb3ctbGluayAuIG1vdXNl LWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpCgkJCSAobW91c2Ut MiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJCSAgICAgICAoInN1cGVyY2l0ZSIgOmZvbGxv dwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rp b24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1zdXBlcmNpdGUgOmNvbXBsZXRlCgkJ CW9yZy1zdXBlcmNpdGUtY29tcGxldGUtbGluayA6aGVscC1lY2hvCgkJCShsYW1iZGEgKHdpbmRv dyBvYmplY3QgcG9zaXRpb24pCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50 ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikKCQkJICAgKGxldAoJ CQkgICAgKChzCgkJCSAgICAgIChvcmctcmVmLWZvcm1hdC1lbnRyeQoJCQkgICAgICAgKG9yZy1y ZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkKCQkJICAgICAgKQoJCQkgICAgICkKCQkJ ICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKQoJCQkgICAg IChidWZmZXItc3RyaW5nKSkKCQkJICAgICkKCQkJICAgKQoJCQkgICkKCQkJICkKCQkJOmZhY2Ug b3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXAKCQkJKGtleW1h cAoJCQkgKHRhYiBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoZnVuY2FsbCBvcmctcmVm LWluc2VydC1jaXRlLWZ1bmN0aW9uKSkKCQkJIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9u LWxpbmspCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJl Zi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0 aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpCgkJCSAoQy1yaWdodCAu IG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpCgkJ CSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMg dGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBhIGtleS4iCgkJCSAgKGludGVyYWN0 aXZlKQoJCQkgIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkK CQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iCgkJ CSAgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldwoJCQkgICAob3JnLWVsZW1lbnQtcHJvcGVy dHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkKCQkJICApCgkJCSAoMTY3NzczMzUgbGFt YmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJp YnRleC1rZXktYW5kLWZpbGUpKSkpCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3Rp dmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQp CgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkp CgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkK CQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIKCQkJICAoaW50 ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgKG9yZy1yZWYt ZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1h dC1wb2ludCkKCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpCgkJ CSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjgg LiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVu LXVybC1hdC1wb2ludCkKCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1w b2ludCkKCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KQoJCQkgKGZvbGxv dy1saW5rIC4gbW91c2UtZmFjZSkKCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3Vz ZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQoJCQkpCgkJICAgICAgICgicGFy ZW5jaXRlKiIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRl LW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1wYXJlbmNp dGUqIDpjb21wbGV0ZQoJCQlvcmctcGFyZW5jaXRlKi1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8K CQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikKCQkJICh3aGVuIG9yZy1yZWYtc2hv dy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0 aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMKCQkJICAgICAgKG9yZy1yZWYtZm9ybWF0LWVudHJ5 CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKQoJCQkgICAg ICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1w YXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1zdHJpbmcpKQoJCQkgICAgKQoJCQkgICApCgkJCSAg KQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwg OmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFiIGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkg IChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNpdGUtZnVuY3Rpb24pKQoJCQkgKFMtdXAgLiBvcmct cmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0 aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkKCQkJIChTLWxlZnQgbGFt YmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0x KSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkKCQkJIChDLWxlZnQgLiBvcmctcmVm LXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsCgkJCSAgIlBhc3RlIGtleSBh dCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5 LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAo Y2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBr ZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3CgkJCSAgIChv cmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKQoJCQkgICkK CQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcgKGNh ciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkKCQkJICgxNjc3NzMxOCBsYW1i ZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1j aXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgt ZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1z Y2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0 IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2lu dCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQoJCQkgKDE2Nzc3MzE1IC4gb3Jn LXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVs YXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2lu dCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpCgkJCSAoMTY3Nzcz MzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1v cGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJh L2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQoJCQkgKG1vdXNlLTMgLiBvcmct ZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpCgkJ CSkKCQkgICAgICAgKCJjaXRlKiIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNhbGwg b3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVmLWZv cm1hdC1jaXRlKiA6Y29tcGxldGUKCQkJb3JnLWNpdGUqLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNo bwoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1z aG93LWNpdGF0aW9uLW9uLWVudGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9z aXRpb24pCgkJCSAgIChsZXQKCQkJICAgICgocwoJCQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50 cnkKCQkJICAgICAgIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAg ICAgICkKCQkJICAgICApCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxs LXBhcmFncmFwaCkKCQkJICAgICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJ ICApCgkJCSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVs bCA6a2V5bWFwCgkJCShrZXltYXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJ CSAgKGZ1bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9y Zy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJh Y3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBs YW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsg LTEpKQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1y ZWYtcHJldmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5 IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBr ZXkuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50 IChjYXIga2lsbC1yaW5nKSkpCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhl IGtleXMgYXQgcG9pbnQuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAg KG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAg KQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAo Y2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxh bWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVu LWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRl eC1lbnRyeS1hdC1wb2ludCkpKQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xl LXNjaG9sYXItYXQtcG9pbnQpCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkg YXQgcG9pbnQiCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBv aW50KQoJCQkgIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBv cmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1y ZWxhdGVkLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBv aW50KQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3 NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVm LW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlk cmEvYm9keSkKCQkJIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9y Zy1maW5kLWZpbGUtYXQtbW91c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkK CQkJKQoJCSAgICAgICAoIlNtYXJ0Y2l0ZSIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1 bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmct cmVmLWZvcm1hdC1TbWFydGNpdGUgOmNvbXBsZXRlCgkJCW9yZy1TbWFydGNpdGUtY29tcGxldGUt bGluayA6aGVscC1lY2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAo d2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24g KGdvdG8tY2hhciBwb3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAgIChvcmct cmVmLWZvcm1hdC1lbnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXIt Y3Vyc29yKSkKCQkJICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChp bnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAg ICkKCQkJICAgKQoJCQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1m biA6ZGlzcGxheSBmdWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkKCQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkK CQkJIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1i ZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkp CgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAt Y2l0YXRpb24tbGluayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAo Qy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJ CQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBr aWxscmluZyBpcyBhIGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2Vy dC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmls ICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChr aWxsLW5ldwoJCQkgICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNv bnRleHQpKSkKCQkJICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJ CSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJ CSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9u IChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJl Zi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4g b3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmls ICJFbWFpbCBlbnRyeSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4t Y2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJ ICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAu IG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9w ZW4tbm90ZXMtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBv aW50KQoJCQkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3 NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9y Zy1yZWYtY2l0ZS1oeWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJ IChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9w ZW4tYXQtbW91c2UpKQoJCQkpCgkJICAgICAgICgic21hcnRjaXRlIiA6Zm9sbG93CgkJCShsYW1i ZGEgKF8pCgkJCSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQoJ CQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LXNtYXJ0Y2l0ZSA6Y29tcGxldGUKCQkJb3JnLXNtYXJ0 Y2l0ZS1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBw b3NpdGlvbikKCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChz YXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMK CQkJICAgICAgKG9yZy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmli dGV4LWtleS11bmRlci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgt dGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1z dHJpbmcpKQoJCQkgICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNp dGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFi IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNp dGUtZnVuY3Rpb24pKQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJ IChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0 YXRpb24tbGluayAxKSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAg KG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1u ZXh0LWtleSkKCQkJIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMz NyBsYW1iZGEgbmlsCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3Qg dGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAg KG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3 MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJh Y3RpdmUpCgkJCSAgKGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAo b3JnLWVsZW1lbnQtY29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1h bmQtZmlsZSkpKSkKCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAo c2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtp bGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJ CSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3 MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkg KG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0 ZXgtZW50cnkpKQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJ CQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMy NiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYt b3Blbi1wZGYtYXQtcG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBv aW50KQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkg KDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBt b3VzZS1mYWNlKQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1v dXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJUZXh0Y2l0ZSIgOmZv bGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVu Y3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1UZXh0Y2l0ZSA6Y29tcGxldGUK CQkJb3JnLVRleHRjaXRlLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJCQkobGFtYmRhICh3aW5k b3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVu dGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pCgkJCSAgIChsZXQK CQkJICAgICgocwoJCQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJICAgICAgIChvcmct cmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAgICkKCQkJICAgICApCgkJ CSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkKCQkJICAg ICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJCSApCgkJCTpmYWNl IG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwCgkJCShrZXlt YXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1bmNhbGwgb3JnLXJl Zi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlv bi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1y ZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJCQkgKEMtcmlnaHQg LiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQoJ CQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVz IHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJCQkgIChpbnRlcmFj dGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkp CgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIgoJ CQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzM1IGxh bWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1i aWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0 aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50 KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkp KQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQp CgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiCgkJCSAgKGlu dGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgIChvcmctcmVm LWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmct YXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQoJ CQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI4 IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Bl bi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQt cG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkKCQkJIChmb2xs b3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91 c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJCSAgICAgICAoInRl eHRjaXRlIiA6Zm9sbG93CgkJCShsYW1iZGEgKF8pCgkJCSAoZnVuY2FsbCBvcmctcmVmLWNpdGUt b25jbGljay1mdW5jdGlvbiBuaWwpKQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LXRleHRjaXRl IDpjb21wbGV0ZQoJCQlvcmctdGV4dGNpdGUtY29tcGxldGUtbGluayA6aGVscC1lY2hvCgkJCShs YW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0 YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikK CQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAgIChvcmctcmVmLWZvcm1hdC1lbnRyeQoJCQkg ICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkKCQkJICAgICAgKQoJ CQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdy YXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAgICkKCQkJICAgKQoJCQkgICkKCQkJ ICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXlt YXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoZnVu Y2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkKCQkJIChTLXVwIC4gb3JnLXJlZi1z b3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkK CQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpCgkJCSAoUy1sZWZ0IGxhbWJkYSBu aWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpCgkJ CSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2 aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJCQkgICJQYXN0ZSBrZXkgYXQgcG9p bnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBhIGtleS4iCgkJ CSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBr aWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBh dCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldwoJCQkgICAob3JnLWVs ZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkKCQkJICApCgkJCSAo MTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9y Zy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJCSAoMTY3NzczMTggbGFtYmRhIG5p bCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRp b24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5 LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xh ci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2lu dCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJ CSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYt d29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQt YXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpCgkJ CSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMzIC4g b3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1j aXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5 KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQt ZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQoJCQkpCgkJ ICAgICAgICgiZm9vdGNpdGV0ZXh0IiA6Zm9sbG93CgkJCShsYW1iZGEgKF8pCgkJCSAoZnVuY2Fs bCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQoJCQk6ZXhwb3J0IG9yZy1yZWYt Zm9ybWF0LWZvb3RjaXRldGV4dCA6Y29tcGxldGUKCQkJb3JnLWZvb3RjaXRldGV4dC1jb21wbGV0 ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikKCQkJ ICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChzYXZlLWV4Y3Vyc2lv biAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMKCQkJICAgICAgKG9y Zy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRl ci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIg KGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1zdHJpbmcpKQoJCQkg ICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNl LWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFiIGxhbWJkYSBuaWwg KGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNpdGUtZnVuY3Rpb24p KQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJIChTLXJpZ2h0IGxh bWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAx KSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dh cC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkKCQkJ IChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMzNyBsYW1iZGEgbmls CgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhl IGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtaW5z ZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBu aWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAg KGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQt Y29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkK CQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkK CQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoc2F2ZS1leGN1cnNp b24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtpbGwtbmV3IChvcmct cmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJCSAoMTY3NzczMTkg LiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBu aWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtb3Bl bi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQoJ CQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMw IC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYt b3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQt cG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQoJCQkgKDE2 Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI3IC4g b3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQoJ CQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1vdXNlLTIgLiBvcmct b3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJmb290Y2l0ZSIgOmZvbGxvdwoJCQkobGFt YmRhIChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkK CQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1mb290Y2l0ZSA6Y29tcGxldGUKCQkJb3JnLWZvb3Rj aXRlLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBv c2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVyCgkJCSAgKHNh dmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pCgkJCSAgIChsZXQKCQkJICAgICgocwoJ CQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJICAgICAgIChvcmctcmVmLWdldC1iaWJ0 ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAgICkKCQkJICAgICApCgkJCSAgICAod2l0aC10 ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkKCQkJICAgICAoYnVmZmVyLXN0 cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJCSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0 ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwCgkJCShrZXltYXAKCQkJICh0YWIg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0 ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQoJCQkg KFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRh dGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAo b3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5l eHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3 IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0 aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAo b3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkpCgkJCSAoMTY3Nzcz MDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIgoJCQkgIChpbnRlcmFj dGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChv cmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGlu dGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFu ZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChz YXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgICAoa2ls bC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQoJCQkgICkKCQkJ ICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpCgkJCSAoMTY3Nzcz MTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiCgkJCSAgKGludGVyYWN0aXZlKSAo b3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgIChvcmctcmVmLWVtYWlsLWJpYnRl eC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJ CSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2 IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1v cGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9p bnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAo MTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkKCQkJIChmb2xsb3ctbGluayAuIG1v dXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpCgkJCSAobW91 c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJCSAgICAgICAoIlBhcmVuY2l0ZSIgOmZv bGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVu Y3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1QYXJlbmNpdGUgOmNvbXBsZXRl CgkJCW9yZy1QYXJlbmNpdGUtY29tcGxldGUtbGluayA6aGVscC1lY2hvCgkJCShsYW1iZGEgKHdp bmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24t ZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikKCQkJICAgKGxl dAoJCQkgICAgKChzCgkJCSAgICAgIChvcmctcmVmLWZvcm1hdC1lbnRyeQoJCQkgICAgICAgKG9y Zy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkKCQkJICAgICAgKQoJCQkgICAgICkK CQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKQoJCQkg ICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAgICkKCQkJICAgKQoJCQkgICkKCQkJICkKCQkJOmZh Y2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXAKCQkJKGtl eW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoZnVuY2FsbCBvcmct cmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkKCQkJIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0 aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3Jn LXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVy YWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpCgkJCSAoQy1yaWdo dCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkp CgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3Vt ZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBhIGtleS4iCgkJCSAgKGludGVy YWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcp KSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4i CgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldwoJCQkgICAob3JnLWVsZW1lbnQtcHJv cGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkKCQkJICApCgkJCSAoMTY3NzczMzUg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0 LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJh Y3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9p bnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50 KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2lu dCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIKCQkJICAo aW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgKG9yZy1y ZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGlu Zy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQp CgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpCgkJCSAoMTY3Nzcz MjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1v cGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1h dC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KQoJCQkgKGZv bGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1t b3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQoJCQkpCgkJICAgICAgICgi cGFyZW5jaXRlIiA6Zm9sbG93CgkJCShsYW1iZGEgKF8pCgkJCSAoZnVuY2FsbCBvcmctcmVmLWNp dGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LXBhcmVu Y2l0ZSA6Y29tcGxldGUKCQkJb3JnLXBhcmVuY2l0ZS1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8K CQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikKCQkJICh3aGVuIG9yZy1yZWYtc2hv dy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0 aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMKCQkJICAgICAgKG9yZy1yZWYtZm9ybWF0LWVudHJ5 CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKQoJCQkgICAg ICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1w YXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1zdHJpbmcpKQoJCQkgICAgKQoJCQkgICApCgkJCSAg KQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwg OmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFiIGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkg IChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNpdGUtZnVuY3Rpb24pKQoJCQkgKFMtdXAgLiBvcmct cmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0 aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkKCQkJIChTLWxlZnQgbGFt YmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0x KSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkKCQkJIChDLWxlZnQgLiBvcmctcmVm LXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsCgkJCSAgIlBhc3RlIGtleSBh dCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5 LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAo Y2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBr ZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3CgkJCSAgIChv cmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKQoJCQkgICkK CQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcgKGNh ciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkKCQkJICgxNjc3NzMxOCBsYW1i ZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1j aXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgt ZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1z Y2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0 IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2lu dCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQoJCQkgKDE2Nzc3MzE1IC4gb3Jn LXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVs YXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2lu dCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpCgkJCSAoMTY3Nzcz MzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1v cGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJh L2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQoJCQkgKG1vdXNlLTMgLiBvcmct ZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpCgkJ CSkKCQkgICAgICAgKCJDaXRlIiA6Zm9sbG93CgkJCShsYW1iZGEgKF8pCgkJCSAoZnVuY2FsbCBv cmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9y bWF0LUNpdGUgOmNvbXBsZXRlCgkJCW9yZy1DaXRlLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJ CQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93 LWNpdGF0aW9uLW9uLWVudGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRp b24pCgkJCSAgIChsZXQKCQkJICAgICgocwoJCQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkK CQkJICAgICAgIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAg ICkKCQkJICAgICApCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBh cmFncmFwaCkKCQkJICAgICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJICAp CgkJCSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6 a2V5bWFwCgkJCShrZXltYXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAg KGZ1bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1y ZWYtc29ydC1jaXRhdGlvbi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3Rp dmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1i ZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEp KQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYt cHJldmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0 IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXku IgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChj YXIga2lsbC1yaW5nKSkpCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtl eXMgYXQgcG9pbnQuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJ CQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2Fy IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJk YSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNp dGF0aW9uLWF0LXBvaW50KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1l bnRyeS1hdC1wb2ludCkpKQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNj aG9sYXItYXQtcG9pbnQpCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQg cG9pbnQiCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50 KQoJCQkgIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmct cmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxh dGVkLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50 KQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMz MyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9w ZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEv Ym9keSkKCQkJIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1m aW5kLWZpbGUtYXQtbW91c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJ KQoJCSAgICAgICAoIkNpdGVhdXRob3IiIDpmb2xsb3cKCQkJKGxhbWJkYSAoXykKCQkJIChmdW5j YWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpCgkJCTpleHBvcnQgb3JnLXJl Zi1mb3JtYXQtQ2l0ZWF1dGhvciA6Y29tcGxldGUKCQkJb3JnLUNpdGVhdXRob3ItY29tcGxldGUt bGluayA6aGVscC1lY2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAo d2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24g KGdvdG8tY2hhciBwb3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAgIChvcmct cmVmLWZvcm1hdC1lbnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXIt Y3Vyc29yKSkKCQkJICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChp bnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAg ICkKCQkJICAgKQoJCQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1m biA6ZGlzcGxheSBmdWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkKCQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkK CQkJIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1i ZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkp CgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAt Y2l0YXRpb24tbGluayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAo Qy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJ CQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBr aWxscmluZyBpcyBhIGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2Vy dC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmls ICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChr aWxsLW5ldwoJCQkgICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNv bnRleHQpKSkKCQkJICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJ CSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJ CSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9u IChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJl Zi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4g b3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmls ICJFbWFpbCBlbnRyeSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4t Y2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJ ICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAu IG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9w ZW4tbm90ZXMtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBv aW50KQoJCQkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3 NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9y Zy1yZWYtY2l0ZS1oeWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJ IChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9w ZW4tYXQtbW91c2UpKQoJCQkpCgkJICAgICAgICgiQ2l0ZWFscCIgOmZvbGxvdwoJCQkobGFtYmRh IChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJ OmV4cG9ydCBvcmctcmVmLWZvcm1hdC1DaXRlYWxwIDpjb21wbGV0ZQoJCQlvcmctQ2l0ZWFscC1j b21wbGV0ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlv bikKCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChzYXZlLWV4 Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMKCQkJICAg ICAgKG9yZy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmlidGV4LWtl eS11bmRlci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgtdGVtcC1i dWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1zdHJpbmcp KQoJCQkgICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGlu ay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFiIGxhbWJk YSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNpdGUtZnVu Y3Rpb24pKQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJIChTLXJp Z2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24t bGluayAxKSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1y ZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtl eSkKCQkJIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMzNyBsYW1i ZGEgbmlsCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcg aW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1y ZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3MzAzIGxh bWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJhY3RpdmUp CgkJCSAgKGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVs ZW1lbnQtY29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkKCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmls ZSkpKSkKCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoc2F2ZS1l eGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtpbGwtbmV3 IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJCSAoMTY3 NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE3IGxh bWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1y ZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50 cnkpKQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJCQkgKDE2 Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMyNiAuIG9y Zy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1w ZGYtYXQtcG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQoJ CQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgKDE2Nzc3 MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBtb3VzZS1m YWNlKQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1vdXNlLTIg LiBvcmctb3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJDaXRlYWx0IiA6Zm9sbG93CgkJ CShsYW1iZGEgKF8pCgkJCSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBu aWwpKQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LUNpdGVhbHQgOmNvbXBsZXRlCgkJCW9yZy1D aXRlYWx0LWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0 IHBvc2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVyCgkJCSAg KHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pCgkJCSAgIChsZXQKCQkJICAgICgo cwoJCQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJICAgICAgIChvcmctcmVmLWdldC1i aWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAgICkKCQkJICAgICApCgkJCSAgICAod2l0 aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkKCQkJICAgICAoYnVmZmVy LXN0cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJCSApCgkJCTpmYWNlIG9yZy1yZWYt Y2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwCgkJCShrZXltYXAKCQkJICh0 YWIgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1bmNhbGwgb3JnLXJlZi1pbnNlcnQt Y2l0ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQoJ CQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1j aXRhdGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJ ICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJCQkgKEMtcmlnaHQgLiBvcmctcmVm LW5leHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQoJCQkgKDE2Nzc3 MzM3IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJz dCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJ ICAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkpCgkJCSAoMTY3 NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIgoJCQkgIChpbnRl cmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRo IChvcmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwg KGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5 LWFuZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkg IChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgICAo a2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQoJCQkgICkK CQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpCgkJCSAoMTY3 NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiCgkJCSAgKGludGVyYWN0aXZl KSAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgIChvcmctcmVmLWVtYWlsLWJp YnRleC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQp CgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQoJCQkgKDE2Nzc3 MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJl Zi1vcGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQt cG9pbnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJ CSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkKCQkJIChmb2xsb3ctbGluayAu IG1vdXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpCgkJCSAo bW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJCSAgICAgICAoIkNpdGVwIiA6Zm9s bG93CgkJCShsYW1iZGEgKF8pCgkJCSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5j dGlvbiBuaWwpKQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LUNpdGVwIDpjb21wbGV0ZQoJCQlv cmctQ2l0ZXAtY29tcGxldGUtbGluayA6aGVscC1lY2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmpl Y3QgcG9zaXRpb24pCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJ ICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAg KChzCgkJCSAgICAgIChvcmctcmVmLWZvcm1hdC1lbnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0 LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkKCQkJICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3 aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZm ZXItc3RyaW5nKSkKCQkJICAgICkKCQkJICAgKQoJCQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJl Zi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkg KHRhYiBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2Vy dC1jaXRlLWZ1bmN0aW9uKSkKCQkJIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmsp CgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2Fw LWNpdGF0aW9uLWxpbmsgMSkpCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJ CQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1y ZWYtbmV4dC1rZXkpCgkJCSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3 NzczMzcgbGFtYmRhIG5pbAoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZp cnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBhIGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJ CQkgIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgx Njc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGlu dGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldwoJCQkgICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBh dGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkKCQkJICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5p bCAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1r ZXktYW5kLWZpbGUpKSkpCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJ CSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAg IChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAg KQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgx Njc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3Rp dmUpIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwt YmlidGV4LWVudHJ5KSkKCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2lu dCkKCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3 NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmct cmVmLW9wZW4tcGRmLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1h dC1wb2ludCkKCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkK CQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5r IC4gbW91c2UtZmFjZSkKCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJ IChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQoJCQkpCgkJICAgICAgICgiQ2l0ZXQiIDpm b2xsb3cKCQkJKGxhbWJkYSAoXykKCQkJIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1 bmN0aW9uIG5pbCkpCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtQ2l0ZXQgOmNvbXBsZXRlCgkJ CW9yZy1DaXRldC1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9i amVjdCBwb3NpdGlvbikKCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJ CQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAg ICAoKHMKCQkJICAgICAgKG9yZy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1n ZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAg KHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1 ZmZlci1zdHJpbmcpKQoJCQkgICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmct cmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJ CSAodGFiIGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5z ZXJ0LWNpdGUtZnVuY3Rpb24pKQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGlu aykKCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3 YXAtY2l0YXRpb24tbGluayAxKSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUp CgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3Jn LXJlZi1uZXh0LWtleSkKCQkJIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgx Njc3NzMzNyBsYW1iZGEgbmlsCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUg Zmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUp CgkJCSAgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkg KDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAo aW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4 LWtleS1hbmQtZmlsZSkpKSkKCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkK CQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJ ICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJ ICApCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkg KDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFj dGl2ZSkgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFp bC1iaWJ0ZXgtZW50cnkpKQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBv aW50KQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgx Njc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9y Zy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJs LWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50 KQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxp bmsgLiBtb3VzZS1mYWNlKQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJ CQkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJjaXRleWVh cnBhciIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9u Y2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1jaXRleWVhcnBh ciA6Y29tcGxldGUKCQkJb3JnLWNpdGV5ZWFycGFyLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJ CQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93 LWNpdGF0aW9uLW9uLWVudGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRp b24pCgkJCSAgIChsZXQKCQkJICAgICgocwoJCQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkK CQkJICAgICAgIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAg ICkKCQkJICAgICApCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBh cmFncmFwaCkKCQkJICAgICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJICAp CgkJCSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6 a2V5bWFwCgkJCShrZXltYXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAg KGZ1bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1y ZWYtc29ydC1jaXRhdGlvbi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3Rp dmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1i ZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEp KQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYt cHJldmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0 IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXku IgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChj YXIga2lsbC1yaW5nKSkpCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtl eXMgYXQgcG9pbnQuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJ CQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2Fy IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJk YSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNp dGF0aW9uLWF0LXBvaW50KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1l bnRyeS1hdC1wb2ludCkpKQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNj aG9sYXItYXQtcG9pbnQpCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQg cG9pbnQiCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50 KQoJCQkgIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmct cmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxh dGVkLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50 KQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMz MyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9w ZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEv Ym9keSkKCQkJIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1m aW5kLWZpbGUtYXQtbW91c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJ KQoJCSAgICAgICAoImNpdGV5ZWFyKiIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNh bGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVm LWZvcm1hdC1jaXRleWVhciogOmNvbXBsZXRlCgkJCW9yZy1jaXRleWVhciotY29tcGxldGUtbGlu ayA6aGVscC1lY2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAod2hl biBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24gKGdv dG8tY2hhciBwb3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAgIChvcmctcmVm LWZvcm1hdC1lbnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vy c29yKSkKCQkJICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNl cnQgcykgKGZpbGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAgICkK CQkJICAgKQoJCQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6 ZGlzcGxheSBmdWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChpbnRl cmFjdGl2ZSkKCQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkKCQkJ IChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpCgkJ CSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0 YXRpb24tbGluayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAoQy1s ZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJCQkg ICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxs cmluZyBpcyBhIGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2VydC1r ZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJD b3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChraWxs LW5ldwoJCQkgICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRl eHQpKSkKCQkJICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAg KGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJCSAo MTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChv cmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1m b3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4gb3Jn LXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJF bWFpbCBlbnRyeSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4tY2l0 YXRpb24tYXQtcG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJICgx Njc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAuIG9y Zy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4t bm90ZXMtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50 KQoJCQkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3NzMx NCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9yZy1y ZWYtY2l0ZS1oeWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJICht b3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9wZW4t YXQtbW91c2UpKQoJCQkpCgkJICAgICAgICgiY2l0ZXllYXIiIDpmb2xsb3cKCQkJKGxhbWJkYSAo XykKCQkJIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpCgkJCTpl eHBvcnQgb3JnLXJlZi1mb3JtYXQtY2l0ZXllYXIgOmNvbXBsZXRlCgkJCW9yZy1jaXRleWVhci1j b21wbGV0ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlv bikKCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChzYXZlLWV4 Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMKCQkJICAg ICAgKG9yZy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmlidGV4LWtl eS11bmRlci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgtdGVtcC1i dWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1zdHJpbmcp KQoJCQkgICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGlu ay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFiIGxhbWJk YSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNpdGUtZnVu Y3Rpb24pKQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJIChTLXJp Z2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24t bGluayAxKSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1y ZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtl eSkKCQkJIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMzNyBsYW1i ZGEgbmlsCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcg aW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1y ZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3MzAzIGxh bWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJhY3RpdmUp CgkJCSAgKGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVs ZW1lbnQtY29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkKCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmls ZSkpKSkKCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoc2F2ZS1l eGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtpbGwtbmV3 IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJCSAoMTY3 NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE3IGxh bWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1y ZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50 cnkpKQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJCQkgKDE2 Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMyNiAuIG9y Zy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1w ZGYtYXQtcG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQoJ CQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgKDE2Nzc3 MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBtb3VzZS1m YWNlKQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1vdXNlLTIg LiBvcmctb3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJjaXRlYXV0aG9yKiIgOmZvbGxv dwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rp b24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1jaXRlYXV0aG9yKiA6Y29tcGxldGUK CQkJb3JnLWNpdGVhdXRob3IqLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJCQkobGFtYmRhICh3 aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9u LWVudGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pCgkJCSAgIChs ZXQKCQkJICAgICgocwoJCQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJICAgICAgIChv cmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAgICkKCQkJICAgICAp CgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkKCQkJ ICAgICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJCSApCgkJCTpm YWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwCgkJCShr ZXltYXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1bmNhbGwgb3Jn LXJlZi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRh dGlvbi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9y Zy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRl cmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJCQkgKEMtcmln aHQgLiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5 KQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1 bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJCQkgIChpbnRl cmFjdGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5n KSkpCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQu IgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzM1 IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdl dC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVy YWN0aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBv aW50KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2lu dCkpKQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9p bnQpCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiCgkJCSAg KGludGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgIChvcmct cmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRp bmctYXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50 KQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJCQkgKDE2Nzc3 MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMzMyAuIG9yZy1yZWYt b3Blbi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24t YXQtcG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkKCQkJIChm b2xsb3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQt bW91c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJCSAgICAgICAo ImNpdGVhdXRob3IiIDpmb2xsb3cKCQkJKGxhbWJkYSAoXykKCQkJIChmdW5jYWxsIG9yZy1yZWYt Y2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtY2l0 ZWF1dGhvciA6Y29tcGxldGUKCQkJb3JnLWNpdGVhdXRob3ItY29tcGxldGUtbGluayA6aGVscC1l Y2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAod2hlbiBvcmctcmVm LXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBw b3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAgIChvcmctcmVmLWZvcm1hdC1l bnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkKCQkJ ICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZp bGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAgICkKCQkJICAgKQoJ CQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBm dWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkK CQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkKCQkJIChTLXVwIC4g b3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRl cmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpCgkJCSAoUy1sZWZ0 IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGlu ayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAoQy1sZWZ0IC4gb3Jn LXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJCQkgICJQYXN0ZSBr ZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBh IGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9p bnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0 aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldwoJCQkg ICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkKCQkJ ICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3 IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJCSAoMTY3NzczMTgg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9w ZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmli dGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29n bGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRy eSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQt cG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJICgxNjc3NzMxNSAu IG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29z LXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQt cG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KQoJCQkgKDE2 Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3NzMxNCAuIG9yZy1y ZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1o eWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJIChtb3VzZS0zIC4g b3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2Up KQoJCQkpCgkJICAgICAgICgiY2l0ZXRleHQiIDpmb2xsb3cKCQkJKGxhbWJkYSAoXykKCQkJIChm dW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpCgkJCTpleHBvcnQgb3Jn LXJlZi1mb3JtYXQtY2l0ZXRleHQgOmNvbXBsZXRlCgkJCW9yZy1jaXRldGV4dC1jb21wbGV0ZS1s aW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikKCQkJICh3 aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAo Z290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMKCQkJICAgICAgKG9yZy1y ZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1j dXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGlu c2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1zdHJpbmcpKQoJCQkgICAg KQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZu IDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFiIGxhbWJkYSBuaWwgKGlu dGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNpdGUtZnVuY3Rpb24pKQoJ CQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJIChTLXJpZ2h0IGxhbWJk YSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkK CQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1j aXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkKCQkJIChD LWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsCgkJ CSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtp bGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtaW5zZXJ0 LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwg IkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKGtp bGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29u dGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJ ICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkKCQkJ ICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoc2F2ZS1leGN1cnNpb24g KG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtpbGwtbmV3IChvcmctcmVm LWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJCSAoMTY3NzczMTkgLiBv cmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwg IkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtb3Blbi1j aXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQoJCQkg KDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMwIC4g b3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Bl bi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9p bnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQoJCQkgKDE2Nzc3 MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI3IC4gb3Jn LXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQoJCQkg KG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1vdXNlLTIgLiBvcmctb3Bl bi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJjaXRlbnVtIiA6Zm9sbG93CgkJCShsYW1iZGEg KF8pCgkJCSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQoJCQk6 ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LWNpdGVudW0gOmNvbXBsZXRlCgkJCW9yZy1jaXRlbnVtLWNv bXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9u KQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVyCgkJCSAgKHNhdmUtZXhj dXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pCgkJCSAgIChsZXQKCQkJICAgICgocwoJCQkgICAg ICAob3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJICAgICAgIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5 LXVuZGVyLWN1cnNvcikpCgkJCSAgICAgICkKCQkJICAgICApCgkJCSAgICAod2l0aC10ZW1wLWJ1 ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkKCQkJICAgICAoYnVmZmVyLXN0cmluZykp CgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJCSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5r LWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwCgkJCShrZXltYXAKCQkJICh0YWIgbGFtYmRh IG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0ZS1mdW5j dGlvbikpCgkJCSAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQoJCQkgKFMtcmln aHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1s aW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJl Zi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5 KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3IGxhbWJk YSBuaWwKCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBp biB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJl Zi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkpCgkJCSAoMTY3NzczMDMgbGFt YmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIgoJCQkgIChpbnRlcmFjdGl2ZSkK CQkJICAoa2lsbC1uZXcKCQkJICAgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxl bWVudC1jb250ZXh0KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0 aXZlKQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxl KSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChzYXZlLWV4 Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgICAoa2lsbC1uZXcg KG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQoJCQkgICkKCQkJICgxNjc3 NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpCgkJCSAoMTY3NzczMTcgbGFt YmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJl Zi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRy eSkpCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJCSAoMTY3 NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2IC4gb3Jn LXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBk Zi1hdC1wb2ludCkKCQkJICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpCgkJ CSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAoMTY3Nzcz MjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkKCQkJIChmb2xsb3ctbGluayAuIG1vdXNlLWZh Y2UpCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpCgkJCSAobW91c2UtMiAu IG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJCSAgICAgICAoImNpdGVhbHAqIiA6Zm9sbG93CgkJ CShsYW1iZGEgKF8pCgkJCSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBu aWwpKQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LWNpdGVhbHAqIDpjb21wbGV0ZQoJCQlvcmct Y2l0ZWFscCotY29tcGxldGUtbGluayA6aGVscC1lY2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmpl Y3QgcG9zaXRpb24pCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJ ICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAg KChzCgkJCSAgICAgIChvcmctcmVmLWZvcm1hdC1lbnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0 LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkKCQkJICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3 aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZm ZXItc3RyaW5nKSkKCQkJICAgICkKCQkJICAgKQoJCQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJl Zi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkg KHRhYiBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2Vy dC1jaXRlLWZ1bmN0aW9uKSkKCQkJIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmsp CgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2Fw LWNpdGF0aW9uLWxpbmsgMSkpCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJ CQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1y ZWYtbmV4dC1rZXkpCgkJCSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3 NzczMzcgbGFtYmRhIG5pbAoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZp cnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBhIGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJ CQkgIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgx Njc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGlu dGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldwoJCQkgICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBh dGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkKCQkJICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5p bCAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1r ZXktYW5kLWZpbGUpKSkpCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJ CSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAg IChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAg KQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgx Njc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3Rp dmUpIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwt YmlidGV4LWVudHJ5KSkKCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2lu dCkKCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3 NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmct cmVmLW9wZW4tcGRmLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1h dC1wb2ludCkKCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkK CQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5r IC4gbW91c2UtZmFjZSkKCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJ IChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQoJCQkpCgkJICAgICAgICgiY2l0ZWFscCIg OmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2st ZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1jaXRlYWxwIDpjb21wbGV0 ZQoJCQlvcmctY2l0ZWFscC1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2lu ZG93IG9iamVjdCBwb3NpdGlvbikKCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1l bnRlcgoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0 CgkJCSAgICAoKHMKCQkJICAgICAgKG9yZy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3Jn LXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJ CQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAg ICAgKGJ1ZmZlci1zdHJpbmcpKQoJCQkgICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFj ZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5 bWFwCgkJCSAodGFiIGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1y ZWYtaW5zZXJ0LWNpdGUtZnVuY3Rpb24pKQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRp b24tbGluaykKCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmct cmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJh Y3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0 IC4gb3JnLXJlZi1uZXh0LWtleSkKCQkJIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkK CQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1l cyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJh Y3RpdmUpCgkJCSAgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykp KQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIK CQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBs YW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQt YmlidGV4LWtleS1hbmQtZmlsZSkpKSkKCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkKCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2lu dCkKCQkJICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQp KSkKCQkJICApCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50 KQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChp bnRlcmFjdGl2ZSkgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJl Zi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5n LWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkK CQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMy OCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9w ZW4tdXJsLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0 LXBvaW50KQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9s bG93LWxpbmsgLiBtb3VzZS1mYWNlKQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1v dXNlKQoJCQkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJj aXRlYWx0KiIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRl LW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1jaXRlYWx0 KiA6Y29tcGxldGUKCQkJb3JnLWNpdGVhbHQqLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJCQko bGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNp dGF0aW9uLW9uLWVudGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24p CgkJCSAgIChsZXQKCQkJICAgICgocwoJCQkgICAgICAob3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJ ICAgICAgIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpCgkJCSAgICAgICkK CQkJICAgICApCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFn cmFwaCkKCQkJICAgICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJ CSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5 bWFwCgkJCShrZXltYXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1 bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJCSAoUy11cCAuIG9yZy1yZWYt c29ydC1jaXRhdGlvbi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUp CgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJ CQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJl dmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJICAiUGFzdGUga2V5IGF0IHBv aW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJ CQkgIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIg a2lsbC1yaW5nKSkpCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMg YXQgcG9pbnQuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1uZXcKCQkJICAgKG9yZy1l bGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpCgkJCSAgKQoJCQkg KDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldyAoY2FyIChv cmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBu aWwgKGludGVyYWN0aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0 aW9uLWF0LXBvaW50KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRy eS1hdC1wb2ludCkpKQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9s YXItYXQtcG9pbnQpCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9p bnQiCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJ CQkgIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAoMTY3NzczMTUgLiBvcmctcmVm LXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVk LWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJ CQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkKCQkJICgxNjc3NzMzMyAu IG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4t Y2l0YXRpb24tYXQtcG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9k eSkKCQkJIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAobW91c2UtMyAuIG9yZy1maW5k LWZpbGUtYXQtbW91c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJ CSAgICAgICAoImNpdGVhbHQiIDpmb2xsb3cKCQkJKGxhbWJkYSAoXykKCQkJIChmdW5jYWxsIG9y Zy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpCgkJCTpleHBvcnQgb3JnLXJlZi1mb3Jt YXQtY2l0ZWFsdCA6Y29tcGxldGUKCQkJb3JnLWNpdGVhbHQtY29tcGxldGUtbGluayA6aGVscC1l Y2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAod2hlbiBvcmctcmVm LXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBw b3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAgIChvcmctcmVmLWZvcm1hdC1l bnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkKCQkJ ICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZp bGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAgICkKCQkJICAgKQoJ CQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBm dWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkK CQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkKCQkJIChTLXVwIC4g b3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRl cmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpCgkJCSAoUy1sZWZ0 IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGlu ayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAoQy1sZWZ0IC4gb3Jn LXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJCQkgICJQYXN0ZSBr ZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBh IGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9p bnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0 aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChraWxsLW5ldwoJCQkg ICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkKCQkJ ICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3 IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJCSAoMTY3NzczMTgg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9w ZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmli dGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29n bGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRy eSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQt cG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJICgxNjc3NzMxNSAu IG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29z LXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQt cG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KQoJCQkgKDE2 Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3NzMxNCAuIG9yZy1y ZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1o eWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJIChtb3VzZS0zIC4g b3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2Up KQoJCQkpCgkJICAgICAgICgiY2l0ZXAqIiA6Zm9sbG93CgkJCShsYW1iZGEgKF8pCgkJCSAoZnVu Y2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQoJCQk6ZXhwb3J0IG9yZy1y ZWYtZm9ybWF0LWNpdGVwKiA6Y29tcGxldGUKCQkJb3JnLWNpdGVwKi1jb21wbGV0ZS1saW5rIDpo ZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikKCQkJICh3aGVuIG9y Zy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1j aGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMKCQkJICAgICAgKG9yZy1yZWYtZm9y bWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3Ip KQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBz KSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1zdHJpbmcpKQoJCQkgICAgKQoJCQkg ICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNw bGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFiIGxhbWJkYSBuaWwgKGludGVyYWN0 aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNpdGUtZnVuY3Rpb24pKQoJCQkgKFMt dXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwg KGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkKCQkJIChT LWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlv bi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkKCQkJIChDLWxlZnQg LiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsCgkJCSAgIlBh c3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5n IGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtaW5zZXJ0LWtleS1h dC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkg YWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKGtpbGwtbmV3 CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkp KQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoa2ls bC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkKCQkJICgxNjc3 NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1y ZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1h dC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJCSAoMTY3NzczMTkgLiBvcmctcmVm LWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWls IGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtb3Blbi1jaXRhdGlv bi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQoJCQkgKDE2Nzc3 MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJl Zi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rl cy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpCgkJ CSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE0IC4g b3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1j aXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQoJCQkgKG1vdXNl LTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1t b3VzZSkpCgkJCSkKCQkgICAgICAgKCJjaXRlcCIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJCQkg KGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9ydCBv cmctcmVmLWZvcm1hdC1jaXRlcCA6Y29tcGxldGUKCQkJb3JnLWNpdGVwLWNvbXBsZXRlLWxpbmsg OmhlbHAtZWNobwoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHdoZW4g b3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVyCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3Rv LWNoYXIgcG9zaXRpb24pCgkJCSAgIChsZXQKCQkJICAgICgocwoJCQkgICAgICAob3JnLXJlZi1m b3JtYXQtZW50cnkKCQkJICAgICAgIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNv cikpCgkJCSAgICAgICkKCQkJICAgICApCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0 IHMpIChmaWxsLXBhcmFncmFwaCkKCQkJICAgICAoYnVmZmVyLXN0cmluZykpCgkJCSAgICApCgkJ CSAgICkKCQkJICApCgkJCSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRp c3BsYXkgZnVsbCA6a2V5bWFwCgkJCShrZXltYXAKCQkJICh0YWIgbGFtYmRhIG5pbCAoaW50ZXJh Y3RpdmUpCgkJCSAgKGZ1bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0ZS1mdW5jdGlvbikpCgkJCSAo Uy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5p bCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQoJCQkg KFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0 aW9uLWxpbmsgLTEpKQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KQoJCQkgKEMtbGVm dCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwKCQkJICAi UGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJp bmcgaXMgYSBrZXkuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1pbnNlcnQta2V5 LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkpCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29w eSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAoa2lsbC1u ZXcKCQkJICAgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0 KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChr aWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQoJCQkgKDE2 Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3Jn LXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9y bWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQoJCQkgICkKCQkJICgxNjc3NzMxOSAuIG9yZy1y ZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1h aWwgZW50cnkgYXQgcG9pbnQiCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1vcGVuLWNpdGF0 aW9uLWF0LXBvaW50KQoJCQkgIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpCgkJCSAoMTY3 NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJCSAoMTY3NzczMzAgLiBvcmct cmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5v dGVzLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkK CQkJICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpCgkJCSAoMTY3NzczMTQg LiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAoMTY3NzczMjcgLiBvcmctcmVm LWNpdGUtaHlkcmEvYm9keSkKCQkJIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpCgkJCSAobW91 c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpCgkJCSAobW91c2UtMiAuIG9yZy1vcGVuLWF0 LW1vdXNlKSkKCQkJKQoJCSAgICAgICAoImNpdGV0KiIgOmZvbGxvdwoJCQkobGFtYmRhIChfKQoJ CQkgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkKCQkJOmV4cG9y dCBvcmctcmVmLWZvcm1hdC1jaXRldCogOmNvbXBsZXRlCgkJCW9yZy1jaXRldCotY29tcGxldGUt bGluayA6aGVscC1lY2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pCgkJCSAo d2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1cnNpb24g KGdvdG8tY2hhciBwb3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAgIChvcmct cmVmLWZvcm1hdC1lbnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXIt Y3Vyc29yKSkKCQkJICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChp bnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAg ICkKCQkJICAgKQoJCQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1m biA6ZGlzcGxheSBmdWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkKCQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0aW9uKSkK CQkJIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdodCBsYW1i ZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkp CgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAt Y2l0YXRpb24tbGluayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpCgkJCSAo Qy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbAoJ CQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBr aWxscmluZyBpcyBhIGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLWluc2Vy dC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1iZGEgbmls ICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChr aWxsLW5ldwoJCQkgICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNv bnRleHQpKSkKCQkJICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJ CSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpCgkJ CSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhjdXJzaW9u IChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAob3JnLXJl Zi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzE5IC4g b3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1iZGEgbmls ICJFbWFpbCBlbnRyeSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLW9wZW4t Y2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkKCQkJ ICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3NzMzMCAu IG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9w ZW4tbm90ZXMtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBv aW50KQoJCQkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJICgxNjc3 NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMyNyAuIG9y Zy1yZWYtY2l0ZS1oeWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkKCQkJ IChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4gb3JnLW9w ZW4tYXQtbW91c2UpKQoJCQkpCgkJICAgICAgICgiY2l0ZXQiIDpmb2xsb3cKCQkJKGxhbWJkYSAo XykKCQkJIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpCgkJCTpl eHBvcnQgb3JnLXJlZi1mb3JtYXQtY2l0ZXQgOmNvbXBsZXRlCgkJCW9yZy1jaXRldC1jb21wbGV0 ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikKCQkJ ICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcgoJCQkgIChzYXZlLWV4Y3Vyc2lv biAoZ290by1jaGFyIHBvc2l0aW9uKQoJCQkgICAobGV0CgkJCSAgICAoKHMKCQkJICAgICAgKG9y Zy1yZWYtZm9ybWF0LWVudHJ5CgkJCSAgICAgICAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRl ci1jdXJzb3IpKQoJCQkgICAgICApCgkJCSAgICAgKQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIg KGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpCgkJCSAgICAgKGJ1ZmZlci1zdHJpbmcpKQoJCQkg ICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNl LWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcAoJCQkoa2V5bWFwCgkJCSAodGFiIGxhbWJkYSBuaWwg KGludGVyYWN0aXZlKQoJCQkgIChmdW5jYWxsIG9yZy1yZWYtaW5zZXJ0LWNpdGUtZnVuY3Rpb24p KQoJCQkgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykKCQkJIChTLXJpZ2h0IGxh bWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAx KSkKCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dh cC1jaXRhdGlvbi1saW5rIC0xKSkKCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkKCQkJ IChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkKCQkJICgxNjc3NzMzNyBsYW1iZGEgbmls CgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhl IGtpbGxyaW5nIGlzIGEga2V5LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtaW5z ZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBu aWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIKCQkJICAoaW50ZXJhY3RpdmUpCgkJCSAg KGtpbGwtbmV3CgkJCSAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQt Y29udGV4dCkpKQoJCQkgICkKCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkK CQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkK CQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoc2F2ZS1leGN1cnNp b24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAgKGtpbGwtbmV3IChvcmct cmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkKCQkJICApCgkJCSAoMTY3NzczMTkg LiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBu aWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IgoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtb3Bl bi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQoJ CQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMw IC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkKCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYt b3Blbi1ub3Rlcy1hdC1wb2ludCkKCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQt cG9pbnQpCgkJCSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQoJCQkgKDE2 Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI3IC4g b3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpCgkJCSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQoJ CQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKQoJCQkgKG1vdXNlLTIgLiBvcmct b3Blbi1hdC1tb3VzZSkpCgkJCSkKCQkgICAgICAgKCJub2NpdGUiIDpmb2xsb3cKCQkJKGxhbWJk YSAoXykKCQkJIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpCgkJ CTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtbm9jaXRlIDpjb21wbGV0ZQoJCQlvcmctbm9jaXRlLWNv bXBsZXRlLWxpbmsgOmhlbHAtZWNobwoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9u KQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVyCgkJCSAgKHNhdmUtZXhj dXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pCgkJCSAgIChsZXQKCQkJICAgICgocwoJCQkgICAg ICAob3JnLXJlZi1mb3JtYXQtZW50cnkKCQkJICAgICAgIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5 LXVuZGVyLWN1cnNvcikpCgkJCSAgICAgICkKCQkJICAgICApCgkJCSAgICAod2l0aC10ZW1wLWJ1 ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkKCQkJICAgICAoYnVmZmVyLXN0cmluZykp CgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJCSApCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5r LWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwCgkJCShrZXltYXAKCQkJICh0YWIgbGFtYmRh IG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKGZ1bmNhbGwgb3JnLXJlZi1pbnNlcnQtY2l0ZS1mdW5j dGlvbikpCgkJCSAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQoJCQkgKFMtcmln aHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1s aW5rIDEpKQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJl Zi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5 KQoJCQkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQoJCQkgKDE2Nzc3MzM3IGxhbWJk YSBuaWwKCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBp biB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIgoJCQkgIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJl Zi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkpCgkJCSAoMTY3NzczMDMgbGFt YmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIgoJCQkgIChpbnRlcmFjdGl2ZSkK CQkJICAoa2lsbC1uZXcKCQkJICAgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxl bWVudC1jb250ZXh0KSkpCgkJCSAgKQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0 aXZlKQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxl KSkpKQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChzYXZlLWV4 Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgICAoa2lsbC1uZXcg KG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQoJCQkgICkKCQkJICgxNjc3 NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpCgkJCSAoMTY3NzczMTcgbGFt YmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJl Zi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQoJCQkgIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRy eSkpCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpCgkJCSAoMTY3 NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI2IC4gb3Jn LXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBk Zi1hdC1wb2ludCkKCQkJICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpCgkJ CSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAoMTY3Nzcz MjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkKCQkJIChmb2xsb3ctbGluayAuIG1vdXNlLWZh Y2UpCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpCgkJCSAobW91c2UtMiAu IG9yZy1vcGVuLWF0LW1vdXNlKSkKCQkJKQoJCSAgICAgICAoImNpdGUiIDpmb2xsb3cKCQkJKGxh bWJkYSAoXykKCQkJIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkp CgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtY2l0ZSA6Y29tcGxldGUKCQkJb3JnLWNpdGUtY29t cGxldGUtbGluayA6aGVscC1lY2hvCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24p CgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXIKCQkJICAoc2F2ZS1leGN1 cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikKCQkJICAgKGxldAoJCQkgICAgKChzCgkJCSAgICAg IChvcmctcmVmLWZvcm1hdC1lbnRyeQoJCQkgICAgICAgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXkt dW5kZXItY3Vyc29yKSkKCQkJICAgICAgKQoJCQkgICAgICkKCQkJICAgICh3aXRoLXRlbXAtYnVm ZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKQoJCQkgICAgIChidWZmZXItc3RyaW5nKSkK CQkJICAgICkKCQkJICAgKQoJCQkgICkKCQkJICkKCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmst ZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXAKCQkJKGtleW1hcAoJCQkgKHRhYiBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkKCQkJICAoZnVuY2FsbCBvcmctcmVmLWluc2VydC1jaXRlLWZ1bmN0 aW9uKSkKCQkJIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspCgkJCSAoUy1yaWdo dCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkKCQkJICAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxp bmsgMSkpCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVm LXN3YXAtY2l0YXRpb24tbGluayAtMSkpCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkp CgkJCSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpCgkJCSAoMTY3NzczMzcgbGFtYmRh IG5pbAoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGlu IHRoZSBraWxscmluZyBpcyBhIGtleS4iCgkJCSAgKGludGVyYWN0aXZlKQoJCQkgIChvcmctcmVm LWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkKCQkJICgxNjc3NzMwMyBsYW1i ZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iCgkJCSAgKGludGVyYWN0aXZlKQoJ CQkgIChraWxsLW5ldwoJCQkgICAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVt ZW50LWNvbnRleHQpKSkKCQkJICApCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3Rp dmUpCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUp KSkpCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpCgkJCSAgKHNhdmUtZXhj dXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgIChraWxsLW5ldyAo b3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpCgkJCSAgKQoJCQkgKDE2Nzc3 MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkKCQkJICgxNjc3NzMxNyBsYW1i ZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIKCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVm LW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpCgkJCSAgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5 KSkKCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkKCQkJICgxNjc3 NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjYgLiBvcmct cmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRm LWF0LXBvaW50KQoJCQkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkKCQkJ ICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkKCQkJICgxNjc3NzMy NyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KQoJCQkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFj ZSkKCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkKCQkJIChtb3VzZS0yIC4g b3JnLW9wZW4tYXQtbW91c2UpKQoJCQk6c3RvcmUgb3JnLXJlZi1iaWJ0ZXgtc3RvcmUtbGluaykK CQkgICAgICAgKCJDcmVmIiA6Zm9sbG93IG9yZy1yZWYtcmVmLWZvbGxvdyA6ZXhwb3J0CgkJCW9y Zy1yZWYtQ3JlZi1leHBvcnQgOmNvbXBsZXRlIG9yZy1yZWYtY29tcGxldGUtbGluawoJCQk6ZmFj ZSBvcmctcmVmLXJlZi1mYWNlLWZuIDpoZWxwLWVjaG8KCQkJb3JnLXJlZi1yZWYtaGVscC1lY2hv KQoJCSAgICAgICAoImNyZWYiIDpmb2xsb3cgb3JnLXJlZi1yZWYtZm9sbG93IDpleHBvcnQKCQkJ b3JnLXJlZi1jcmVmLWV4cG9ydCA6Y29tcGxldGUgb3JnLXJlZi1jb21wbGV0ZS1saW5rCgkJCTpm YWNlIG9yZy1yZWYtcmVmLWZhY2UtZm4gOmhlbHAtZWNobwoJCQlvcmctcmVmLXJlZi1oZWxwLWVj aG8pCgkJICAgICAgICgiYXV0b3JlZiIgOmZvbGxvdyBvcmctcmVmLXJlZi1mb2xsb3cgOmV4cG9y dAoJCQlvcmctcmVmLWF1dG9yZWYtZXhwb3J0IDpjb21wbGV0ZSBvcmctcmVmLWNvbXBsZXRlLWxp bmsKCQkJOmZhY2Ugb3JnLXJlZi1yZWYtZmFjZS1mbiA6aGVscC1lY2hvCgkJCW9yZy1yZWYtcmVm LWhlbHAtZWNobykKCQkgICAgICAgKCJlcXJlZiIgOmZvbGxvdyBvcmctcmVmLXJlZi1mb2xsb3cg OmV4cG9ydAoJCQlvcmctcmVmLWVxcmVmLWV4cG9ydCA6Y29tcGxldGUgb3JnLXJlZi1jb21wbGV0 ZS1saW5rCgkJCTpmYWNlIG9yZy1yZWYtcmVmLWZhY2UtZm4gOmhlbHAtZWNobwoJCQlvcmctcmVm LXJlZi1oZWxwLWVjaG8pCgkJICAgICAgICgibmFtZXJlZiIgOmZvbGxvdyBvcmctcmVmLXJlZi1m b2xsb3cgOmV4cG9ydAoJCQlvcmctcmVmLWV4cG9ydC1uYW1lcmVmIDpjb21wbGV0ZSBvcmctcmVm LWNvbXBsZXRlLWxpbmsKCQkJOmZhY2Ugb3JnLXJlZi1yZWYtZmFjZS1mbiA6aGVscC1lY2hvCgkJ CW9yZy1yZWYtcmVmLWhlbHAtZWNobykKCQkgICAgICAgKCJwYWdlcmVmIiA6Zm9sbG93IG9yZy1y ZWYtcmVmLWZvbGxvdyA6ZXhwb3J0CgkJCShsYW1iZGEgKHBhdGggZGVzYyBmb3JtYXQpCgkJCSAo Y29uZAoJCQkgICgoZXEgZm9ybWF0IChxdW90ZSBodG1sKSkKCQkJICAgKGZvcm1hdCAiKDxwYWdl cmVmPiVzPC9wYWdlcmVmPikiIHBhdGgpKQoJCQkgICgoZXEgZm9ybWF0IChxdW90ZSBsYXRleCkp CgkJCSAgIChmb3JtYXQgIlxccGFnZXJlZnslc30iIHBhdGgpKQoJCQkgICkKCQkJICkKCQkJOmZh Y2Ugb3JnLXJlZi1yZWYtZmFjZS1mbiA6Y29tcGxldGUKCQkJb3JnLXBhZ2VyZWYtY29tcGxldGUt bGluayA6aGVscC1lY2hvCgkJCW9yZy1yZWYtcmVmLWhlbHAtZWNobykKCQkgICAgICAgKCJyZWYi IDpmb2xsb3cgb3JnLXJlZi1yZWYtZm9sbG93IDpleHBvcnQKCQkJb3JnLXJlZi1yZWYtZXhwb3J0 IDpjb21wbGV0ZSBvcmctcmVmLWNvbXBsZXRlLWxpbmsKCQkJOmZhY2Ugb3JnLXJlZi1yZWYtZmFj ZS1mbiA6aGVscC1lY2hvCgkJCW9yZy1yZWYtcmVmLWhlbHAtZWNobykKCQkgICAgICAgKCJsYWJl bCIgOmZvbGxvdwoJCQkobGFtYmRhIChsYWJlbCkKCQkJICJPbiBjbGlja2luZyBjb3VudCB0aGUg bnVtYmVyIG9mIGxhYmVsIHRhZ3MgdXNlZCBpbiB0aGUgYnVmZmVyLlxuQSBudW1iZXIgZ3JlYXRl ciB0aGFuIG9uZSBtZWFucyBtdWx0aXBsZSBsYWJlbHMhIgoJCQkgKGxldAoJCQkgIAoJCQkgICgo Y291bnQKCQkJICAgIAoJCQkJCQkJCQkJCQkJCQkJCSAgICAgICAKCQkJICAgIChvcmctcmVmLWNv dW50LWxhYmVscyBsYWJlbCkKCQkJICAgIAoJCQkgICAgCgkJCQkJCQkJCQkJCQkJCQkJICAgICAg IAoJCQkJCQkJCQkJCQkJCQkJCSAgICAgICApCgkJCQkJCQkJCQkJCQkJCQkJICAgICAgCgkJCSAg ICkKCQkJICAKCQkJICAobWVzc2FnZQoJCQkgICAKCQkJICAgKGZvcm1hdAoJCQkgICAgCgkJCQkJ CQkJCQkJCQkJCQkJICAgICAgIAoJCQkJCQkJCQkJCQkJCQkJCSAgICAgICAKCQkJICAgICIlcyBv Y2N1cmVuY2UlcyIKCQkJICAgIAoJCQkJCQkJCQkJCQkJCQkJCSAgICAgICAKCQkJCQkJCQkJCQkJ CQkJCQkgICAgICAgCgkJCSAgICBjb3VudAoJCQkgICAgCgkJCQkJCQkJCQkJCQkJCQkJICAgICAg IAoJCQkJCQkJCQkJCQkJCQkJCSAgICAgICAKCQkJICAgIChpZgoJCQkgICAgIAoJCQkJCQkJCQkJ CQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQkJCQoJCQkJCQkJCQkJ CQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQkJCQoJCQkJCQkJCQkJ CQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQkJCQoJCQkJCQkJCQkJ CQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQkJCQkgICAgICAKCQkJCQkJCQkJCQkJCQkJCQkJCQkJ ICAgICAgIAoJCQkgICAgIChvcgoJCQkgICAgICAKCQkJCQkJCQkJCQkJCQkJCQkJIAoJCQkJCQkJ CQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJIAoJCQkJ CQkJCQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJIAoJ CQkJCQkJCQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJ IAoJCQkJCQkJCQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJ CQkJIAoJCQkJCQkJCQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJ CQkJCQkJIAoJCQkJCQkJCQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJ CQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJ CQkJCQkJCQkJCQkJCQkJCSAgICAgICAKCQkJCQkJCQkJCQkJCQkJCQkJCSAgICAgICAKCQkJCQkJ CQkJCQkJCQkJCQkJCQkJCQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQkJ CQkJCQkgICAgICAgCgkJCSAgICAgICg9IGNvdW50IDApCgkJCSAgICAgIAoJCQkJCQkJCQkJCQkJ CQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJIAoJCQkJCQkJCQkJ CQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJIAoJCQkJCQkJ CQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJIAoJCQkJ CQkJCQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJIAoJ CQkJCQkJCQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJ IAoJCQkJCQkJCQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJ CQkJIAoJCQkJCQkJCQkJCQkJCQkJCQkJIAoJCQkJCQkJCQkJCQkJCQkJCQkJIAoJCQkJCQkJCQkJ CQkJCQkJCQkJIAoJCQkJCQkJCQkJCQkJCQkJCQkJICAgICAgIAoJCQkJCQkJCQkJCQkJCQkJCQkJ ICAgICAgIAoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKCQkJ CQkJCQkJCQkJCQkJCQkJCQkJCSAgICAgICAKCQkJICAgICAgKD4gY291bnQgMSkKCQkJICAgICAg CgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJIAoJCQkJCQkJCQkJCQkJCQkJ CQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJIAoJCQkJCQkJCQkJCQkJ CQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJIAoJCQkJCQkJCQkJ CQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJIAoJCQkJCQkJ CQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJIAoJCQkJ CQkJCQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQkJCQkJCQkJIAoJ CQkJCQkJCQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJ CQkgCgkJCQkJCQkJCQkJCQkJCQkJCQkgCgkJCQkJCQkJCQkJCQkJCQkJCQkgICAgICAgCgkJCQkJ CQkJCQkJCQkJCQkJCQkgICAgICAgCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJ CQkJCQkJCQkJCQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJICAgICAgIAoJCQkgICAgICApCgkJCSAg ICAgCgkJCSAgICAgCgkJCSAgICAgCgkJCQkJCQkJCQkJCQkJCQkJCQoJCQkJCQkJCQkJCQkJCQkJ CQkKCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQkJCQoJCQkJCQkJCQkJCQkJCQkJ CQkKCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQkJCQoJCQkJCQkJCQkJCQkJCQkJ CQkKCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJ CQkJCSAgICAgIAoJCQkJCQkJCQkJCQkJCQkJCQkJCQkgICAgICAgCgkJCSAgICAgInMiICIiKQoJ CQkgICAgCgkJCQkJCQkJCQkJCQkJCQkJICAgICAgIAoJCQkJCQkJCQkJCQkJCQkJCSAgICAgICAK CQkJICAgICkKCQkJICAgCgkJCSAgIChvcmctcmVmLWNvdW50LWxhYmVscyBsYWJlbCkKCQkJICAg CgkJCSAgICkKCQkJICAKCQkJICApCgkJCSApCgkJCTpleHBvcnQKCQkJKGxhbWJkYSAoa2V5d29y ZCBkZXNjIGZvcm1hdCkKCQkJIChjb25kCgkJCSAgKChlcSBmb3JtYXQgKHF1b3RlIGh0bWwpKQoJ CQkgICAoZm9ybWF0ICI8ZGl2IGlkPVwiJXNcIj48L2Rpdj4iIGtleXdvcmQpKQoJCQkgICgoZXEg Zm9ybWF0IChxdW90ZSBtZCkpCgkJCSAgIChmb3JtYXQgIjxhIG5hbWU9XCIlc1wiPjwvYT4iIGtl eXdvcmQpKQoJCQkgICgoZXEgZm9ybWF0IChxdW90ZSBsYXRleCkpCgkJCSAgIChmb3JtYXQgIlxc bGFiZWx7JXN9IiBrZXl3b3JkKSkKCQkJICApCgkJCSApCgkJCTpzdG9yZSBvcmctbGFiZWwtc3Rv cmUtbGluayA6ZmFjZQoJCQlvcmctcmVmLWxhYmVsLWZhY2UtZm4gOmhlbHAtZWNobwoJCQkobGFt YmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQoJCQkgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNo YXIgcG9zaXRpb24pCgkJCSAgKGxldCAoKHMgKG9yZy1yZWYtbGluay1tZXNzYWdlKSkpCgkJCSAg IChsZXQKCQkJICAgICgodGVtcC1idWZmZXIgKGdlbmVyYXRlLW5ldy1idWZmZXIgIiAqdGVtcCoi KSkpCgkJCSAgICAoc2F2ZS1jdXJyZW50LWJ1ZmZlciAoc2V0LWJ1ZmZlciB0ZW1wLWJ1ZmZlcikK CQkJICAgICAodW53aW5kLXByb3RlY3QKCQkJICAgICAgKHByb2duIChpbnNlcnQgcykgKGZpbGwt cGFyYWdyYXBoKQoJCQkgICAgICAgKGJ1ZmZlci1zdHJpbmcpKQoJCQkgICAgICAoYW5kIChidWZm ZXItbmFtZSB0ZW1wLWJ1ZmZlcikKCQkJICAgICAgIChraWxsLWJ1ZmZlciB0ZW1wLWJ1ZmZlcikp CgkJCSAgICAgICkKCQkJICAgICApCgkJCSAgICApCgkJCSAgICkKCQkJICApCgkJCSApCgkJCSkK CQkgICAgICAgKCJsaXN0LW9mLXRhYmxlcyIgOmZvbGxvdyBvcmctcmVmLWxpc3Qtb2YtdGFibGVz CgkJCTpleHBvcnQKCQkJKGxhbWJkYSAoa2V5d29yZCBkZXNjIGZvcm1hdCkKCQkJIChjb25kCgkJ CSAgKChlcSBmb3JtYXQgKHF1b3RlIGxhdGV4KSkgKGZvcm1hdCAiXFxsaXN0b2Z0YWJsZXMiKSkK CQkJICApCgkJCSApCgkJCSkKCQkgICAgICAgKCJsaXN0LW9mLWZpZ3VyZXMiIDpmb2xsb3cgb3Jn LXJlZi1saXN0LW9mLWZpZ3VyZXMKCQkJOmV4cG9ydAoJCQkobGFtYmRhIChrZXl3b3JkIGRlc2Mg Zm9ybWF0KQoJCQkgKGNvbmQKCQkJICAoKGVxIGZvcm1hdCAocXVvdGUgbGF0ZXgpKQoJCQkgICAo Zm9ybWF0ICJcXGxpc3RvZmZpZ3VyZXMiKSkKCQkJICApCgkJCSApCgkJCSkKCQkgICAgICAgKCJh ZGRiaWJyZXNvdXJjZSIgOmZvbGxvdyBvcmctcmVmLWZvbGxvdy1hZGRiaWJyZXNvdXJjZQoJCQk6 ZXhwb3J0CgkJCShsYW1iZGEgKGtleXdvcmQgZGVzYyBmb3JtYXQpCgkJCSAoY29uZCAoKGVxIGZv cm1hdCAocXVvdGUgaHRtbCkpIChmb3JtYXQgIiIpKQoJCQkgICgoZXEgZm9ybWF0IChxdW90ZSBs YXRleCkpCgkJCSAgIChmb3JtYXQgIlxcYWRkYmlicmVzb3VyY2V7JXN9IiBrZXl3b3JkKSkKCQkJ ICApCgkJCSApCgkJCSkKCQkgICAgICAgKCJiaWJsaW9ncmFwaHlzdHlsZSIgOmV4cG9ydAoJCQko bGFtYmRhIChrZXl3b3JkIGRlc2MgZm9ybWF0KQoJCQkgKGNvbmQKCQkJICAoKG9yIChlcSBmb3Jt YXQgKHF1b3RlIGxhdGV4KSkKCQkJICAgIChlcSBmb3JtYXQgKHF1b3RlIGJlYW1lcikpKQoJCQkg ICAoZm9ybWF0ICJcXGJpYmxpb2dyYXBoeXN0eWxleyVzfSIga2V5d29yZCkpCgkJCSAgKHQgIiIp KQoJCQkgKQoJCQkpCgkJICAgICAgICgicHJpbnRiaWJsaW9ncmFwaHkiIDpmb2xsb3cgb3JnLXJl Zi1vcGVuLWJpYmxpb2dyYXBoeQoJCQk6ZXhwb3J0CgkJCShsYW1iZGEgKGtleXdvcmQgZGVzYyBm b3JtYXQpCgkJCSAoY29uZAoJCQkgICgoZXEgZm9ybWF0IChxdW90ZSBvcmcpKQoJCQkgICAob3Jn LXJlZi1nZXQtb3JnLWJpYmxpb2dyYXBoeSkpCgkJCSAgKChlcSBmb3JtYXQgKHF1b3RlIGh0bWwp KQoJCQkgICAob3JnLXJlZi1nZXQtaHRtbC1iaWJsaW9ncmFwaHkpKQoJCQkgICgoZXEgZm9ybWF0 IChxdW90ZSBsYXRleCkpCgkJCSAgIG9yZy1yZWYtcHJpbnRiaWJsaW9ncmFwaHktY21kKQoJCQkg ICkKCQkJICkKCQkJKQoJCSAgICAgICAoIm5vYmlibGlvZ3JhcGh5IiA6Zm9sbG93IG9yZy1yZWYt b3Blbi1iaWJsaW9ncmFwaHkKCQkJOmV4cG9ydCBvcmctcmVmLW5vYmlibGlvZ3JhcGh5LWZvcm1h dCkKCQkgICAgICAgKCJiaWJsaW9ncmFwaHkiIDpmb2xsb3cgb3JnLXJlZi1vcGVuLWJpYmxpb2dy YXBoeQoJCQk6ZXhwb3J0IG9yZy1yZWYtYmlibGlvZ3JhcGh5LWZvcm1hdCA6Y29tcGxldGUKCQkJ b3JnLWJpYmxpb2dyYXBoeS1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8KCQkJKGxhbWJkYSAod2lu ZG93IG9iamVjdCBwb3NpdGlvbikKCQkJIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0 aW9uKQoJCQkgIChsZXQgKChzIChvcmctcmVmLWxpbmstbWVzc2FnZSkpKQoJCQkgICAobGV0CgkJ CSAgICAoKHRlbXAtYnVmZmVyIChnZW5lcmF0ZS1uZXctYnVmZmVyICIgKnRlbXAqIikpKQoJCQkg ICAgKHNhdmUtY3VycmVudC1idWZmZXIgKHNldC1idWZmZXIgdGVtcC1idWZmZXIpCgkJCSAgICAg KHVud2luZC1wcm90ZWN0CgkJCSAgICAgIChwcm9nbiAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFw aCkKCQkJICAgICAgIChidWZmZXItc3RyaW5nKSkKCQkJICAgICAgKGFuZCAoYnVmZmVyLW5hbWUg dGVtcC1idWZmZXIpCgkJCSAgICAgICAoa2lsbC1idWZmZXIgdGVtcC1idWZmZXIpKQoJCQkgICAg ICApCgkJCSAgICAgKQoJCQkgICAgKQoJCQkgICApCgkJCSAgKQoJCQkgKQoJCQk6ZmFjZSBvcmct cmVmLWJpYmxpb2dyYXBoeS1mYWNlLWZuKQoJCSAgICAgICAoIkFjcCIgOmZvbGxvdyBvci1mb2xs b3ctYWNyb255bSA6ZmFjZQoJCQlvcmctcmVmLWFjcm9ueW0tZmFjZSA6aGVscC1lY2hvIG9yLWFj cm9ueW0tdG9vbHRpcAoJCQk6ZXhwb3J0CgkJCShjbG9zdXJlCgkJCSAoKG1hcHBpbmcgIkFjcCIg LiAiR2xzcGwiKSAoLS1kb2xpc3QtdGFpbC0tKSB0KQoJCQkgKHBhdGggXyBmb3JtYXQpCgkJCSAo Y29uZAoJCQkgICgoZXEgZm9ybWF0IChxdW90ZSBsYXRleCkpCgkJCSAgIChmb3JtYXQgIlxcJXN7 JXN9IiAoY2RyIG1hcHBpbmcpIHBhdGgpKQoJCQkgICh0IChmb3JtYXQgIiVzIiAodXBjYXNlIHBh dGgpKSkpCgkJCSApCgkJCSkKCQkgICAgICAgKCJhY3AiIDpmb2xsb3cgb3ItZm9sbG93LWFjcm9u eW0gOmZhY2UKCQkJb3JnLXJlZi1hY3JvbnltLWZhY2UgOmhlbHAtZWNobyBvci1hY3JvbnltLXRv b2x0aXAKCQkJOmV4cG9ydAoJCQkoY2xvc3VyZQoJCQkgKChtYXBwaW5nICJhY3AiIC4gImdsc3Bs IikgKC0tZG9saXN0LXRhaWwtLSkgdCkKCQkJIChwYXRoIF8gZm9ybWF0KQoJCQkgKGNvbmQKCQkJ ICAoKGVxIGZvcm1hdCAocXVvdGUgbGF0ZXgpKQoJCQkgICAoZm9ybWF0ICJcXCVzeyVzfSIgKGNk ciBtYXBwaW5nKSBwYXRoKSkKCQkJICAodCAoZm9ybWF0ICIlcyIgKHVwY2FzZSBwYXRoKSkpKQoJ CQkgKQoJCQkpCgkJICAgICAgICgiQWMiIDpmb2xsb3cgb3ItZm9sbG93LWFjcm9ueW0gOmZhY2UK CQkJb3JnLXJlZi1hY3JvbnltLWZhY2UgOmhlbHAtZWNobyBvci1hY3JvbnltLXRvb2x0aXAKCQkJ OmV4cG9ydAoJCQkoY2xvc3VyZSAoKG1hcHBpbmcgIkFjIiAuICJHbHMiKSAoLS1kb2xpc3QtdGFp bC0tKSB0KQoJCQkgKHBhdGggXyBmb3JtYXQpCgkJCSAoY29uZAoJCQkgICgoZXEgZm9ybWF0IChx dW90ZSBsYXRleCkpCgkJCSAgIChmb3JtYXQgIlxcJXN7JXN9IiAoY2RyIG1hcHBpbmcpIHBhdGgp KQoJCQkgICh0IChmb3JtYXQgIiVzIiAodXBjYXNlIHBhdGgpKSkpCgkJCSApCgkJCSkKCQkgICAg ICAgKCJhYyIgOmZvbGxvdyBvci1mb2xsb3ctYWNyb255bSA6ZmFjZQoJCQlvcmctcmVmLWFjcm9u eW0tZmFjZSA6aGVscC1lY2hvIG9yLWFjcm9ueW0tdG9vbHRpcAoJCQk6ZXhwb3J0CgkJCShjbG9z dXJlICgobWFwcGluZyAiYWMiIC4gImdscyIpICgtLWRvbGlzdC10YWlsLS0pIHQpCgkJCSAocGF0 aCBfIGZvcm1hdCkKCQkJIChjb25kCgkJCSAgKChlcSBmb3JtYXQgKHF1b3RlIGxhdGV4KSkKCQkJ ICAgKGZvcm1hdCAiXFwlc3slc30iIChjZHIgbWFwcGluZykgcGF0aCkpCgkJCSAgKHQgKGZvcm1h dCAiJXMiICh1cGNhc2UgcGF0aCkpKSkKCQkJICkKCQkJKQoJCSAgICAgICAoImFjcmZ1bGwiIDpm b2xsb3cgb3ItZm9sbG93LWFjcm9ueW0gOmZhY2UKCQkJb3JnLXJlZi1hY3JvbnltLWZhY2UgOmhl bHAtZWNobyBvci1hY3JvbnltLXRvb2x0aXAKCQkJOmV4cG9ydAoJCQkoY2xvc3VyZQoJCQkgKCht YXBwaW5nICJhY3JmdWxsIiAuICJhY3JmdWxsIikgKC0tZG9saXN0LXRhaWwtLSkgdCkKCQkJIChw YXRoIF8gZm9ybWF0KQoJCQkgKGNvbmQKCQkJICAoKGVxIGZvcm1hdCAocXVvdGUgbGF0ZXgpKQoJ CQkgICAoZm9ybWF0ICJcXCVzeyVzfSIgKGNkciBtYXBwaW5nKSBwYXRoKSkKCQkJICAodCAoZm9y bWF0ICIlcyIgKHVwY2FzZSBwYXRoKSkpKQoJCQkgKQoJCQkpCgkJICAgICAgICgiYWNybG9uZyIg OmZvbGxvdyBvci1mb2xsb3ctYWNyb255bSA6ZmFjZQoJCQlvcmctcmVmLWFjcm9ueW0tZmFjZSA6 aGVscC1lY2hvIG9yLWFjcm9ueW0tdG9vbHRpcAoJCQk6ZXhwb3J0CgkJCShjbG9zdXJlCgkJCSAo KG1hcHBpbmcgImFjcmxvbmciIC4gImFjcmxvbmciKSAoLS1kb2xpc3QtdGFpbC0tKSB0KQoJCQkg KHBhdGggXyBmb3JtYXQpCgkJCSAoY29uZAoJCQkgICgoZXEgZm9ybWF0IChxdW90ZSBsYXRleCkp CgkJCSAgIChmb3JtYXQgIlxcJXN7JXN9IiAoY2RyIG1hcHBpbmcpIHBhdGgpKQoJCQkgICh0IChm b3JtYXQgIiVzIiAodXBjYXNlIHBhdGgpKSkpCgkJCSApCgkJCSkKCQkgICAgICAgKCJhY3JzaG9y dCIgOmZvbGxvdyBvci1mb2xsb3ctYWNyb255bSA6ZmFjZQoJCQlvcmctcmVmLWFjcm9ueW0tZmFj ZSA6aGVscC1lY2hvIG9yLWFjcm9ueW0tdG9vbHRpcAoJCQk6ZXhwb3J0CgkJCShjbG9zdXJlCgkJ CSAoKG1hcHBpbmcgImFjcnNob3J0IiAuICJhY3JzaG9ydCIpICgtLWRvbGlzdC10YWlsLS0pCgkJ CSAgdCkKCQkJIChwYXRoIF8gZm9ybWF0KQoJCQkgKGNvbmQKCQkJICAoKGVxIGZvcm1hdCAocXVv dGUgbGF0ZXgpKQoJCQkgICAoZm9ybWF0ICJcXCVzeyVzfSIgKGNkciBtYXBwaW5nKSBwYXRoKSkK CQkJICAodCAoZm9ybWF0ICIlcyIgKHVwY2FzZSBwYXRoKSkpKQoJCQkgKQoJCQkpCgkJICAgICAg ICgiZ2xzbGluayIgOmZvbGxvdyBvci1mb2xsb3ctZ2xvc3NhcnkgOmZhY2UKCQkJb3JnLXJlZi1n bG9zc2FyeS1mYWNlIDpoZWxwLWVjaG8gb3ItZ2xvc3NhcnktdG9vbHRpcAoJCQk6ZXhwb3J0CgkJ CShjbG9zdXJlICh0KSAocGF0aCBkZXNjIGZvcm1hdCkKCQkJIChjb25kCgkJCSAgKChlcSBmb3Jt YXQgKHF1b3RlIGxhdGV4KSkKCQkJICAgKGZvcm1hdCAiXFxnbHNsaW5reyVzfXslc30iIHBhdGgg ZGVzYykpCgkJCSAgKHQgKGZvcm1hdCAiJXMiIHBhdGgpKSkKCQkJICkKCQkJKQoJCSAgICAgICAo Imdsc2Rlc2MiIDpmb2xsb3cgb3ItZm9sbG93LWdsb3NzYXJ5IDpmYWNlCgkJCW9yZy1yZWYtZ2xv c3NhcnktZmFjZSA6aGVscC1lY2hvIG9yLWdsb3NzYXJ5LXRvb2x0aXAKCQkJOmV4cG9ydAoJCQko Y2xvc3VyZSAoKGNvbW1hbmQgLiAiZ2xzZGVzYyIpICgtLWRvbGlzdC10YWlsLS0pIHQpCgkJCSAo cGF0aCBfIGZvcm1hdCkKCQkJIChjb25kCgkJCSAgKChlcSBmb3JtYXQgKHF1b3RlIGxhdGV4KSkK CQkJICAgKGZvcm1hdCAiXFwlc3slc30iIGNvbW1hbmQgcGF0aCkpCgkJCSAgKHQgKGZvcm1hdCAi JXMiIHBhdGgpKSkKCQkJICkKCQkJKQoJCSAgICAgICAoImdsc3N5bWJvbCIgOmZvbGxvdyBvci1m b2xsb3ctZ2xvc3NhcnkgOmZhY2UKCQkJb3JnLXJlZi1nbG9zc2FyeS1mYWNlIDpoZWxwLWVjaG8g b3ItZ2xvc3NhcnktdG9vbHRpcAoJCQk6ZXhwb3J0CgkJCShjbG9zdXJlICgoY29tbWFuZCAuICJn bHNzeW1ib2wiKSAoLS1kb2xpc3QtdGFpbC0tKSB0KQoJCQkgKHBhdGggXyBmb3JtYXQpCgkJCSAo Y29uZAoJCQkgICgoZXEgZm9ybWF0IChxdW90ZSBsYXRleCkpCgkJCSAgIChmb3JtYXQgIlxcJXN7 JXN9IiBjb21tYW5kIHBhdGgpKQoJCQkgICh0IChmb3JtYXQgIiVzIiBwYXRoKSkpCgkJCSApCgkJ CSkKCQkgICAgICAgKCJHbHNwbCIgOmZvbGxvdyBvci1mb2xsb3ctZ2xvc3NhcnkgOmZhY2UKCQkJ b3JnLXJlZi1nbG9zc2FyeS1mYWNlIDpoZWxwLWVjaG8gb3ItZ2xvc3NhcnktdG9vbHRpcAoJCQk6 ZXhwb3J0CgkJCShjbG9zdXJlICgoY29tbWFuZCAuICJHbHNwbCIpICgtLWRvbGlzdC10YWlsLS0p IHQpCgkJCSAocGF0aCBfIGZvcm1hdCkKCQkJIChjb25kCgkJCSAgKChlcSBmb3JtYXQgKHF1b3Rl IGxhdGV4KSkKCQkJICAgKGZvcm1hdCAiXFwlc3slc30iIGNvbW1hbmQgcGF0aCkpCgkJCSAgKHQg KGZvcm1hdCAiJXMiIHBhdGgpKSkKCQkJICkKCQkJKQoJCSAgICAgICAoIkdscyIgOmZvbGxvdyBv ci1mb2xsb3ctZ2xvc3NhcnkgOmZhY2UKCQkJb3JnLXJlZi1nbG9zc2FyeS1mYWNlIDpoZWxwLWVj aG8gb3ItZ2xvc3NhcnktdG9vbHRpcAoJCQk6ZXhwb3J0CgkJCShjbG9zdXJlICgoY29tbWFuZCAu ICJHbHMiKSAoLS1kb2xpc3QtdGFpbC0tKSB0KQoJCQkgKHBhdGggXyBmb3JtYXQpCgkJCSAoY29u ZAoJCQkgICgoZXEgZm9ybWF0IChxdW90ZSBsYXRleCkpCgkJCSAgIChmb3JtYXQgIlxcJXN7JXN9 IiBjb21tYW5kIHBhdGgpKQoJCQkgICh0IChmb3JtYXQgIiVzIiBwYXRoKSkpCgkJCSApCgkJCSkK CQkgICAgICAgKCJnbHNwbCIgOmZvbGxvdyBvci1mb2xsb3ctZ2xvc3NhcnkgOmZhY2UKCQkJb3Jn LXJlZi1nbG9zc2FyeS1mYWNlIDpoZWxwLWVjaG8gb3ItZ2xvc3NhcnktdG9vbHRpcAoJCQk6ZXhw b3J0CgkJCShjbG9zdXJlICgoY29tbWFuZCAuICJnbHNwbCIpICgtLWRvbGlzdC10YWlsLS0pIHQp CgkJCSAocGF0aCBfIGZvcm1hdCkKCQkJIChjb25kCgkJCSAgKChlcSBmb3JtYXQgKHF1b3RlIGxh dGV4KSkKCQkJICAgKGZvcm1hdCAiXFwlc3slc30iIGNvbW1hbmQgcGF0aCkpCgkJCSAgKHQgKGZv cm1hdCAiJXMiIHBhdGgpKSkKCQkJICkKCQkJKQoJCSAgICAgICAoImdscyIgOmZvbGxvdyBvci1m b2xsb3ctZ2xvc3NhcnkgOmZhY2UKCQkJb3JnLXJlZi1nbG9zc2FyeS1mYWNlIDpoZWxwLWVjaG8g b3ItZ2xvc3NhcnktdG9vbHRpcAoJCQk6ZXhwb3J0CgkJCShjbG9zdXJlICgoY29tbWFuZCAuICJn bHMiKSAoLS1kb2xpc3QtdGFpbC0tKSB0KQoJCQkgKHBhdGggXyBmb3JtYXQpCgkJCSAoY29uZAoJ CQkgICgoZXEgZm9ybWF0IChxdW90ZSBsYXRleCkpCgkJCSAgIChmb3JtYXQgIlxcJXN7JXN9IiBj b21tYW5kIHBhdGgpKQoJCQkgICh0IChmb3JtYXQgIiVzIiBwYXRoKSkpCgkJCSApCgkJCSkKCQkg ICAgICAgKCJiaWJ0ZXgiIDpmb2xsb3cgb3JnLWJpYnRleC1vcGVuIDpzdG9yZQoJCQlvcmctYmli dGV4LXN0b3JlLWxpbmspCgkJICAgICAgICgiZmlsZStzeXMiKSAoImZpbGUrZW1hY3MiKQoJCSAg ICAgICAoInNoZWxsIiA6Zm9sbG93IG9yZy1saW5rLS1vcGVuLXNoZWxsKQoJCSAgICAgICAoIm5l d3MiIDpmb2xsb3cKCQkJKGNsb3N1cmUKCQkJICgoc2NoZW1lIC4gIm5ld3MiKSAoLS1kb2xpc3Qt dGFpbC0tKSBvcmctdHMtcmVnZXhwCgkJCSAgb3JnLXRpbWUtc3RhbXAtZm9ybWF0cyBvcmctc3Jj LXNvdXJjZS1maWxlLW5hbWUKCQkJICBvcmctb3V0bGluZS1yZWdleHAtYm9sIG9yZy1pbmhpYml0 LXN0YXJ0dXAKCQkJICBvcmctaWQtbGluay10by1vcmctdXNlLWlkIG9yZy1oaWdobGlnaHQtbGlu a3MKCQkJICBvcmctY29tbWVudC1zdHJpbmcgb3JnLWFnZW5kYS1idWZmZXItbmFtZQoJCQkgIGNs ZWFuLWJ1ZmZlci1saXN0LWtpbGwtYnVmZmVyLW5hbWVzIHQpCgkJCSAodXJsKSAoYnJvd3NlLXVy bCAoY29uY2F0IHNjaGVtZSAiOiIgdXJsKSkpCgkJCSkKCQkgICAgICAgKCJtYWlsdG8iIDpmb2xs b3cKCQkJKGNsb3N1cmUKCQkJICgoc2NoZW1lIC4gIm1haWx0byIpICgtLWRvbGlzdC10YWlsLS0p IG9yZy10cy1yZWdleHAKCQkJICBvcmctdGltZS1zdGFtcC1mb3JtYXRzIG9yZy1zcmMtc291cmNl LWZpbGUtbmFtZQoJCQkgIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgb3JnLWluaGliaXQtc3RhcnR1 cAoJCQkgIG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQgb3JnLWhpZ2hsaWdodC1saW5rcwoJCQkg IG9yZy1jb21tZW50LXN0cmluZyBvcmctYWdlbmRhLWJ1ZmZlci1uYW1lCgkJCSAgY2xlYW4tYnVm ZmVyLWxpc3Qta2lsbC1idWZmZXItbmFtZXMgdCkKCQkJICh1cmwpIChicm93c2UtdXJsIChjb25j YXQgc2NoZW1lICI6IiB1cmwpKSkKCQkJKQoJCSAgICAgICAoImh0dHBzIiA6Zm9sbG93CgkJCShj bG9zdXJlCgkJCSAoKHNjaGVtZSAuICJodHRwcyIpICgtLWRvbGlzdC10YWlsLS0pIG9yZy10cy1y ZWdleHAKCQkJICBvcmctdGltZS1zdGFtcC1mb3JtYXRzIG9yZy1zcmMtc291cmNlLWZpbGUtbmFt ZQoJCQkgIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgb3JnLWluaGliaXQtc3RhcnR1cAoJCQkgIG9y Zy1pZC1saW5rLXRvLW9yZy11c2UtaWQgb3JnLWhpZ2hsaWdodC1saW5rcwoJCQkgIG9yZy1jb21t ZW50LXN0cmluZyBvcmctYWdlbmRhLWJ1ZmZlci1uYW1lCgkJCSAgY2xlYW4tYnVmZmVyLWxpc3Qt a2lsbC1idWZmZXItbmFtZXMgdCkKCQkJICh1cmwpIChicm93c2UtdXJsIChjb25jYXQgc2NoZW1l ICI6IiB1cmwpKSkKCQkJKQoJCSAgICAgICAoImh0dHAiIDpmb2xsb3cKCQkJKGNsb3N1cmUKCQkJ ICgoc2NoZW1lIC4gImh0dHAiKSAoLS1kb2xpc3QtdGFpbC0tKSBvcmctdHMtcmVnZXhwCgkJCSAg b3JnLXRpbWUtc3RhbXAtZm9ybWF0cyBvcmctc3JjLXNvdXJjZS1maWxlLW5hbWUKCQkJICBvcmct b3V0bGluZS1yZWdleHAtYm9sIG9yZy1pbmhpYml0LXN0YXJ0dXAKCQkJICBvcmctaWQtbGluay10 by1vcmctdXNlLWlkIG9yZy1oaWdobGlnaHQtbGlua3MKCQkJICBvcmctY29tbWVudC1zdHJpbmcg b3JnLWFnZW5kYS1idWZmZXItbmFtZQoJCQkgIGNsZWFuLWJ1ZmZlci1saXN0LWtpbGwtYnVmZmVy LW5hbWVzIHQpCgkJCSAodXJsKSAoYnJvd3NlLXVybCAoY29uY2F0IHNjaGVtZSAiOiIgdXJsKSkp CgkJCSkKCQkgICAgICAgKCJmdHAiIDpmb2xsb3cKCQkJKGNsb3N1cmUKCQkJICgoc2NoZW1lIC4g ImZ0cCIpICgtLWRvbGlzdC10YWlsLS0pIG9yZy10cy1yZWdleHAKCQkJICBvcmctdGltZS1zdGFt cC1mb3JtYXRzIG9yZy1zcmMtc291cmNlLWZpbGUtbmFtZQoJCQkgIG9yZy1vdXRsaW5lLXJlZ2V4 cC1ib2wgb3JnLWluaGliaXQtc3RhcnR1cAoJCQkgIG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQg b3JnLWhpZ2hsaWdodC1saW5rcwoJCQkgIG9yZy1jb21tZW50LXN0cmluZyBvcmctYWdlbmRhLWJ1 ZmZlci1uYW1lCgkJCSAgY2xlYW4tYnVmZmVyLWxpc3Qta2lsbC1idWZmZXItbmFtZXMgdCkKCQkJ ICh1cmwpIChicm93c2UtdXJsIChjb25jYXQgc2NoZW1lICI6IiB1cmwpKSkKCQkJKQoJCSAgICAg ICAoImhlbHAiIDpmb2xsb3cgb3JnLWxpbmstLW9wZW4taGVscCkKCQkgICAgICAgKCJmaWxlIiA6 Y29tcGxldGUgb3JnLWxpbmstY29tcGxldGUtZmlsZSkKCQkgICAgICAgKCJlbGlzcCIgOmZvbGxv dyBvcmctbGluay0tb3Blbi1lbGlzcCkKCQkgICAgICAgKCJkb2kiIDpmb2xsb3cgZG9pLWxpbmst bWVudSA6ZXhwb3J0CgkJCShsYW1iZGEgKGRvaSBkZXNjIGZvcm1hdCkKCQkJIChjb25kCgkJCSAg KChlcSBmb3JtYXQgKHF1b3RlIGh0bWwpKQoJCQkgICAoZm9ybWF0ICI8YSBocmVmPVwiJXMlc1wi PiVzPC9hPiIKCQkJICAgIGRvaS11dGlscy1keC1kb2ktb3JnLXVybCBkb2kKCQkJICAgIChvciBk ZXNjIChjb25jYXQgImRvaToiIGRvaSkpKQoJCQkgICApCgkJCSAgKChlcSBmb3JtYXQgKHF1b3Rl IGxhdGV4KSkKCQkJICAgKGZvcm1hdCAiXFxocmVmeyVzJXN9eyVzfSIgZG9pLXV0aWxzLWR4LWRv aS1vcmctdXJsCgkJCSAgICBkb2kgKG9yIGRlc2MgKGNvbmNhdCAiZG9pOiIgZG9pKSkpCgkJCSAg ICkKCQkJICApCgkJCSApCgkJCSkKCQkgICAgICAgKQogb3JnLXN0cnVjdHVyZS10ZW1wbGF0ZS1h bGlzdCAnKCgibiIgLiAibm90ZXMiKSAoImEiIC4gImV4cG9ydCBhc2NpaSIpCgkJCQkoImMiIC4g ImNlbnRlciIpICgiQyIgLiAiY29tbWVudCIpCgkJCQkoImUiIC4gImV4YW1wbGUiKSAoIkUiIC4g ImV4cG9ydCIpCgkJCQkoImgiIC4gImV4cG9ydCBodG1sIikgKCJsIiAuICJleHBvcnQgbGF0ZXgi KQoJCQkJKCJxIiAuICJxdW90ZSIpICgicyIgLiAic3JjIikgKCJ2IiAuICJ2ZXJzZSIpKQogb3Jn LWJhYmVsLWxvYWQtbGFuZ3VhZ2VzICcoKGVtYWNzLWxpc3AgLiB0KSAocHl0aG9uIC4gdCkpCiBv cmctcmVmLWluc2VydC1saW5rLWZ1bmN0aW9uICdvcmctcmVmLWhlbG0taW5zZXJ0LWNpdGUtbGlu awogb3JnLWh0bWwtZm9ybWF0LWlubGluZXRhc2stZnVuY3Rpb24gJ29yZy1odG1sLWZvcm1hdC1p bmxpbmV0YXNrLWRlZmF1bHQtZnVuY3Rpb24KIG9yZy1yZWYtbm90ZXMtZnVuY3Rpb24gJ29yZy1y ZWYtbm90ZXMtZnVuY3Rpb24tb25lLWZpbGUKIG9yZy1jbG9jay1vdXQtaG9vayAnKG9yZy1jbG9j ay1yZW1vdmUtZW1wdHktY2xvY2stZHJhd2VyKQogb3JnLWNvbmZpcm0tYmFiZWwtZXZhbHVhdGUg bmlsCiBvcmctcHVibGlzaC1wcm9qZWN0LWFsaXN0ICcoKCJ0aGVzaXMiIDpiYXNlLWRpcmVjdG9y eSAifi93cml0aW5nL3RoZXNpcyIKCQkJICAgICAgOnB1Ymxpc2hpbmctZGlyZWN0b3J5ICJ+L3dy aXRpbmcvdGhlc2lzL3BkZiIKCQkJICAgICAgOnB1Ymxpc2hpbmctZnVuY3Rpb24gb3JnLWxhdGV4 LXB1Ymxpc2gtdG8tcGRmCgkJCSAgICAgIDpiYXNlLWV4dGVuc2lvbiAib3JnIiA6d2l0aC10aXRs ZSBuaWwgOndpdGgtdG9jCgkJCSAgICAgIG5pbCkKCQkJICAgICAoInRhbGtzIiA6YmFzZS1kaXJl Y3RvcnkgIn4vcHJlc2VudGF0aW9ucy9vcmcvIgoJCQkgICAgICA6cHVibGlzaGluZy1kaXJlY3Rv cnkgIn4vcHJlc2VudGF0aW9ucy9odG1sLyIKCQkJICAgICAgOnB1Ymxpc2hpbmctZnVuY3Rpb24K CQkJICAgICAgb3JnLXJldmVhbC1wdWJsaXNoLXRvLXJldmVhbCA6YmFzZS1leHRlbnNpb24KCQkJ ICAgICAgIm9yZyIgOndpdGgtdGl0bGUgdCA6d2l0aC10b2MgbmlsIDpyZWN1cnNpdmUgdCkKCQkJ ICAgICAoInRhbGtzLXN0YXRpYyIgOmJhc2UtZGlyZWN0b3J5CgkJCSAgICAgICJ+L3ByZXNlbnRh dGlvbnMvb3JnLyIgOmJhc2UtZXh0ZW5zaW9uCgkJCSAgICAgICJjc3NcXHxqc1xcfHBuZ1xcfGpw ZT9nXFx8Z2lmXFx8cGRmXFx8bXAzXFx8b2dnXFx8c3dmXFx8c3ZnIiA6cHVibGlzaGluZy1kaXJl Y3RvcnkgIn4vcHJlc2VudGF0aW9ucy9odG1sLyIgOnJlY3Vyc2l2ZSB0IDpwdWJsaXNoaW5nLWZ1 bmN0aW9uIG9yZy1wdWJsaXNoLWF0dGFjaG1lbnQpCgkJCSAgICAgKQogKQo= --0000000000005ed7790599036b1f--