From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg Novak Subject: Bug report: interaction with python-mode.el Date: Tue, 29 Jan 2013 15:12:43 +0100 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=047d7b6d98c6bfd0a204d46dfcfb Return-path: Received: from eggs.gnu.org ([208.118.235.92]:53696) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U0Bvg-0007wg-Ba for emacs-orgmode@gnu.org; Tue, 29 Jan 2013 09:13:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U0BvY-0001p2-ME for emacs-orgmode@gnu.org; Tue, 29 Jan 2013 09:12:52 -0500 Received: from mail-qc0-f182.google.com ([209.85.216.182]:50050) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U0BvY-0001op-EH for emacs-orgmode@gnu.org; Tue, 29 Jan 2013 09:12:44 -0500 Received: by mail-qc0-f182.google.com with SMTP id k19so194471qcs.41 for ; Tue, 29 Jan 2013 06:12:43 -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-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org --047d7b6d98c6bfd0a204d46dfcfb Content-Type: multipart/alternative; boundary=047d7b6d98c6bfd09204d46dfcf9 --047d7b6d98c6bfd09204d46dfcf9 Content-Type: text/plain; charset=ISO-8859-1 If I load a python source file using python-mode.el, and then subsequently look at a .org file using org-mode.el, I get an error: Lisp error: (wrong-type-argument stringp nil) and then I cannot see my .org file (nothing is displayed in the buffer). Specifically the steps to reproduce are: 1) run 'emacs --no-site-file --no-init-file' 2) eval "(require 'python-mode)" to load python-mode.el 3) find-file "some/python/file.py" 4) find-file "some/org/file.org" and I get the above error. If any of the above steps are omitted (ie, if I load python-mode.el, but don't actually look at a python file), I don't get the error. I've included a traceback below. I'm also submitting this to as a bug to org-mode (https://bugs.launchpad.net/python-mode/+bug/1108910). I've never had problems with org-mode in this vein before, and this started immediately after starting to use python-mode.el, so I suspect that the problem lies there. However, the whole traceback seems to be in org-mode code, so I'm sending this to you, as well. I'm running: OS X 10.7.5 Emacs 24.2.1 org-mode 7.8.11 python-mode 6.1.0 Backtrace attached. Thanks, Greg --047d7b6d98c6bfd09204d46dfcf9 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
If I load a python source file using python-mode= .el, and then subsequently look at a .org file using org-mode.el, I get an = error:=A0

Lisp error: (wrong-type-argument stringp= nil)

and then I cannot see my .org file (nothing is displaye= d in the buffer). =A0

Specifically the steps to re= produce are:

1) run 'emacs --no-site-file --no= -init-file'
2) eval "(require 'python-mode)" to load python-mode.el<= /div>
3) find-file "some/python/file.py"
4) find-fi= le "some/org/file.org"

and I get the above error. =A0If any of the above steps are = omitted (ie, if I load python-mode.el, but don't actually look at a pyt= hon file), I don't get the error. =A0I've included a traceback belo= w. =A0I'm also submitting this to as a bug to org-mode (https://bugs.launchpad.net= /python-mode/+bug/1108910). =A0I've never had problems with org-mod= e in this vein before, and this started immediately after starting to use p= ython-mode.el, so I suspect that the problem lies there. =A0However, the wh= ole traceback seems to be in org-mode code, so I'm sending this to you,= as well.

I'm running:
OS X 10.7.5
Emacs = 24.2.1
org-mode 7.8.11
python-mode 6.1.0

=
Backtrace attached.

Thanks,=A0
Greg

--047d7b6d98c6bfd09204d46dfcf9-- --047d7b6d98c6bfd0a204d46dfcfb Content-Type: text/plain; name="backtrace-2.txt" Content-Disposition: attachment; filename="backtrace-2.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hcj4l3gw0 RGVidWdnZXIgZW50ZXJlZC0tTGlzcCBlcnJvcjogKHdyb25nLXR5cGUtYXJndW1lbnQgc3RyaW5n cCBuaWwpCiAgcmUtc2VhcmNoLWZvcndhcmQobmlsIG5pbCBtb3ZlKQogIG91dGxpbmUtZW5kLW9m LWhlYWRpbmcoKQogIG91dGxpbmUtc2hvdy1oZWFkaW5nKCkKICAjW25pbCAiCCAJWFwyMDUJAFwz MDIgXDIwNyIgW291dGxpbmUtbGV2ZWwgbGV2ZWxzIG91dGxpbmUtc2hvdy1oZWFkaW5nXSAyXSgp CiAgb3V0bGluZS1tYXAtcmVnaW9uKCNbbmlsICIIIAlYXDIwNQkAXDMwMiBcMjA3IiBbb3V0bGlu ZS1sZXZlbCBsZXZlbHMgb3V0bGluZS1zaG93LWhlYWRpbmddIDJdIDEgMjg5MDkyKQogIGhpZGUt c3VibGV2ZWxzKDEpCiAgKGFuZCBsZXZlbCAoaGlkZS1zdWJsZXZlbHMgbGV2ZWwpKQogIChsZXQg KChsZXZlbCAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciAocG9pbnQtbWluKSkgKGlmIChyZS1z ZWFyY2gtZm9yd2FyZCAoY29uY2F0ICJeIiBvdXRsaW5lLXJlZ2V4cCkgbmlsIHQpIChwcm9nbiAo Z290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpIChmdW5jYWxsIG91dGxpbmUtbGV2ZWwpKSkp KSkgKGFuZCBsZXZlbCAoaGlkZS1zdWJsZXZlbHMgbGV2ZWwpKSkKICBvcmctb3ZlcnZpZXcoKQog IChjb25kICgoYW5kIChlcSBsYXN0LWNvbW1hbmQgdGhpcy1jb21tYW5kKSAoZXEgb3JnLWN5Y2xl LWdsb2JhbC1zdGF0dXMgKHF1b3RlIG92ZXJ2aWV3KSkpIChydW4taG9vay13aXRoLWFyZ3MgKHF1 b3RlIG9yZy1wcmUtY3ljbGUtaG9vaykgKHF1b3RlIGNvbnRlbnRzKSkgKHVubGVzcyBnYSAobWVz c2FnZSAiQ09OVEVOVFMuLi4iKSkgKG9yZy1jb250ZW50KSAodW5sZXNzIGdhIChtZXNzYWdlICJD T05URU5UUy4uLmRvbmUiKSkgKHNldHEgb3JnLWN5Y2xlLWdsb2JhbC1zdGF0dXMgKHF1b3RlIGNv bnRlbnRzKSkgKHJ1bi1ob29rLXdpdGgtYXJncyAocXVvdGUgb3JnLWN5Y2xlLWhvb2spIChxdW90 ZSBjb250ZW50cykpKSAoKGFuZCAoZXEgbGFzdC1jb21tYW5kIHRoaXMtY29tbWFuZCkgKGVxIG9y Zy1jeWNsZS1nbG9iYWwtc3RhdHVzIChxdW90ZSBjb250ZW50cykpKSAocnVuLWhvb2std2l0aC1h cmdzIChxdW90ZSBvcmctcHJlLWN5Y2xlLWhvb2spIChxdW90ZSBhbGwpKSAoc2hvdy1hbGwpICh1 bmxlc3MgZ2EgKG1lc3NhZ2UgIlNIT1cgQUxMIikpIChzZXRxIG9yZy1jeWNsZS1nbG9iYWwtc3Rh dHVzIChxdW90ZSBhbGwpKSAocnVuLWhvb2std2l0aC1hcmdzIChxdW90ZSBvcmctY3ljbGUtaG9v aykgKHF1b3RlIGFsbCkpKSAodCAocnVuLWhvb2std2l0aC1hcmdzIChxdW90ZSBvcmctcHJlLWN5 Y2xlLWhvb2spIChxdW90ZSBvdmVydmlldykpIChvcmctb3ZlcnZpZXcpICh1bmxlc3MgZ2EgKG1l c3NhZ2UgIk9WRVJWSUVXIikpIChzZXRxIG9yZy1jeWNsZS1nbG9iYWwtc3RhdHVzIChxdW90ZSBv dmVydmlldykpIChydW4taG9vay13aXRoLWFyZ3MgKHF1b3RlIG9yZy1jeWNsZS1ob29rKSAocXVv dGUgb3ZlcnZpZXcpKSkpCiAgKGxldCAoKGdhIChzdHJpbmctbWF0Y2ggIlxcKmZvbnRpZmljYXRp b24iIChidWZmZXItbmFtZSkpKSkgKGNvbmQgKChhbmQgKGVxIGxhc3QtY29tbWFuZCB0aGlzLWNv bW1hbmQpIChlcSBvcmctY3ljbGUtZ2xvYmFsLXN0YXR1cyAocXVvdGUgb3ZlcnZpZXcpKSkgKHJ1 bi1ob29rLXdpdGgtYXJncyAocXVvdGUgb3JnLXByZS1jeWNsZS1ob29rKSAocXVvdGUgY29udGVu dHMpKSAodW5sZXNzIGdhIChtZXNzYWdlICJDT05URU5UUy4uLiIpKSAob3JnLWNvbnRlbnQpICh1 bmxlc3MgZ2EgKG1lc3NhZ2UgIkNPTlRFTlRTLi4uZG9uZSIpKSAoc2V0cSBvcmctY3ljbGUtZ2xv YmFsLXN0YXR1cyAocXVvdGUgY29udGVudHMpKSAocnVuLWhvb2std2l0aC1hcmdzIChxdW90ZSBv cmctY3ljbGUtaG9vaykgKHF1b3RlIGNvbnRlbnRzKSkpICgoYW5kIChlcSBsYXN0LWNvbW1hbmQg dGhpcy1jb21tYW5kKSAoZXEgb3JnLWN5Y2xlLWdsb2JhbC1zdGF0dXMgKHF1b3RlIGNvbnRlbnRz KSkpIChydW4taG9vay13aXRoLWFyZ3MgKHF1b3RlIG9yZy1wcmUtY3ljbGUtaG9vaykgKHF1b3Rl IGFsbCkpIChzaG93LWFsbCkgKHVubGVzcyBnYSAobWVzc2FnZSAiU0hPVyBBTEwiKSkgKHNldHEg b3JnLWN5Y2xlLWdsb2JhbC1zdGF0dXMgKHF1b3RlIGFsbCkpIChydW4taG9vay13aXRoLWFyZ3Mg KHF1b3RlIG9yZy1jeWNsZS1ob29rKSAocXVvdGUgYWxsKSkpICh0IChydW4taG9vay13aXRoLWFy Z3MgKHF1b3RlIG9yZy1wcmUtY3ljbGUtaG9vaykgKHF1b3RlIG92ZXJ2aWV3KSkgKG9yZy1vdmVy dmlldykgKHVubGVzcyBnYSAobWVzc2FnZSAiT1ZFUlZJRVciKSkgKHNldHEgb3JnLWN5Y2xlLWds b2JhbC1zdGF0dXMgKHF1b3RlIG92ZXJ2aWV3KSkgKHJ1bi1ob29rLXdpdGgtYXJncyAocXVvdGUg b3JnLWN5Y2xlLWhvb2spIChxdW90ZSBvdmVydmlldykpKSkpCiAgb3JnLWN5Y2xlLWludGVybmFs LWdsb2JhbCgpCiAgKGNvbmQgKChlcXVhbCBhcmcgKHF1b3RlICgxNikpKSAoc2V0cSBsYXN0LWNv bW1hbmQgKHF1b3RlIGR1bW15KSkgKG9yZy1zZXQtc3RhcnR1cC12aXNpYmlsaXR5KSAobWVzc2Fn ZSAiU3RhcnR1cCB2aXNpYmlsaXR5LCBwbHVzIFZJU0lCSUxJVFkgcHJvcGVydGllcyIpKSAoKGVx dWFsIGFyZyAocXVvdGUgKDY0KSkpIChzaG93LWFsbCkgKG1lc3NhZ2UgIkVudGlyZSBidWZmZXIg dmlzaWJsZSwgaW5jbHVkaW5nIGRyYXdlcnMiKSkgKChvcmctYXQtdGFibGUtcCAocXVvdGUgYW55 KSkgKGlmIChvcmctYXQtdGFibGVcLmVsLXApIChtZXNzYWdlICJVc2UgQy1jICcgdG8gZWRpdCB0 YWJsZS5lbCB0YWJsZXMiKSAoaWYgYXJnIChvcmctdGFibGUtZWRpdC1maWVsZCB0KSAob3JnLXRh YmxlLWp1c3RpZnktZmllbGQtbWF5YmUpIChjYWxsLWludGVyYWN0aXZlbHkgKHF1b3RlIG9yZy10 YWJsZS1uZXh0LWZpZWxkKSkpKSkgKChydW4taG9vay13aXRoLWFyZ3MtdW50aWwtc3VjY2VzcyAo cXVvdGUgb3JnLXRhYi1hZnRlci1jaGVjay1mb3ItdGFibGUtaG9vaykpKSAoKGVxIGFyZyB0KSAo b3JnLWN5Y2xlLWludGVybmFsLWdsb2JhbCkpICgoYW5kIG9yZy1kcmF3ZXJzIG9yZy1kcmF3ZXIt cmVnZXhwIChzYXZlLWV4Y3Vyc2lvbiAoYmVnaW5uaW5nLW9mLWxpbmUgMSkgKGxvb2tpbmctYXQg b3JnLWRyYXdlci1yZWdleHApKSkgKG9yZy1mbGFnLWRyYXdlciAobm90IChnZXQtY2hhci1wcm9w ZXJ0eSAobWF0Y2gtZW5kIDApIChxdW90ZSBpbnZpc2libGUpKSkpKSAoKGludGVnZXJwIGFyZykg KHNhdmUtZXhjdXJzaW9uIChvcmctYmFjay10by1oZWFkaW5nKSAob3V0bGluZS11cC1oZWFkaW5n IChpZiAoPCBhcmcgMCkgKC0gYXJnKSAoLSAoZnVuY2FsbCBvdXRsaW5lLWxldmVsKSBhcmcpKSkg KG9yZy1zaG93LXN1YnRyZWUpKSkgKChhbmQgKGZlYXR1cmVwIChxdW90ZSBvcmctaW5saW5ldGFz aykpIChvcmctaW5saW5ldGFzay1hdC10YXNrLXApIChvciAoYm9scCkgKG5vdCAoZXEgb3JnLWN5 Y2xlLWVtdWxhdGUtdGFiIChxdW90ZSBleGMtaGwtYm9sKSkpKSkgKG9yZy1pbmxpbmV0YXNrLXRv Z2dsZS12aXNpYmlsaXR5KSkgKChvcmctdHJ5LWNkbGF0ZXgtdGFiKSkgKChhbmQgKG9yIChhbmQg b3JnLWN5Y2xlLWluY2x1ZGUtcGxhaW4tbGlzdHMgKG9yZy1hdC1pdGVtLXApKSAoc2F2ZS1leGN1 cnNpb24gKGJlZ2lubmluZy1vZi1saW5lIDEpIChsb29raW5nLWF0IG9yZy1vdXRsaW5lLXJlZ2V4 cCkpKSAob3IgKGJvbHApIChub3QgKGVxIG9yZy1jeWNsZS1lbXVsYXRlLXRhYiAocXVvdGUgZXhj LWhsLWJvbCkpKSkpIChvcmctY3ljbGUtaW50ZXJuYWwtbG9jYWwpKSAoYnVmZmVyLXJlYWQtb25s eSAob3JnLWJhY2stdG8taGVhZGluZykpICgocnVuLWhvb2std2l0aC1hcmdzLXVudGlsLXN1Y2Nl c3MgKHF1b3RlIG9yZy10YWItYWZ0ZXItY2hlY2stZm9yLWN5Y2xpbmctaG9vaykpKSAoKG9yZy10 cnktc3RydWN0dXJlLWNvbXBsZXRpb24pKSAoKHJ1bi1ob29rLXdpdGgtYXJncy11bnRpbC1zdWNj ZXNzIChxdW90ZSBvcmctdGFiLWJlZm9yZS10YWItZW11bGF0aW9uLWhvb2spKSkgKChhbmQgKGVx IG9yZy1jeWNsZS1lbXVsYXRlLXRhYiAocXVvdGUgZXhjLWhsLWJvbCkpIChvciAobm90IChib2xw KSkgKG5vdCAobG9va2luZy1hdCBvcmctb3V0bGluZS1yZWdleHApKSkpIChjYWxsLWludGVyYWN0 aXZlbHkgKGdsb2JhbC1rZXktYmluZGluZyAiCSIpKSkgKChpZiAoYW5kIChtZW1xIG9yZy1jeWNs ZS1lbXVsYXRlLXRhYiAocXVvdGUgKHdoaXRlIHdoaXRlc3RhcnQpKSkgKHNhdmUtZXhjdXJzaW9u IChiZWdpbm5pbmctb2YtbGluZSAxKSAobG9va2luZy1hdCAiWyAJXSoiKSkgKG9yIChhbmQgKGVx IG9yZy1jeWNsZS1lbXVsYXRlLXRhYiAocXVvdGUgd2hpdGUpKSAoPSAobWF0Y2gtZW5kIDApIChw b2ludC1hdC1lb2wpKSkgKGFuZCAoZXEgb3JnLWN5Y2xlLWVtdWxhdGUtdGFiIChxdW90ZSB3aGl0 ZXN0YXJ0KSkgKD49IChtYXRjaC1lbmQgMCkgcG9zKSkpKSB0IChlcSBvcmctY3ljbGUtZW11bGF0 ZS10YWIgdCkpIChjYWxsLWludGVyYWN0aXZlbHkgKGdsb2JhbC1rZXktYmluZGluZyAiCSIpKSkg KHQgKHNhdmUtZXhjdXJzaW9uIChvcmctYmFjay10by1oZWFkaW5nKSAob3JnLWN5Y2xlKSkpKQog IChsZXQqICgobGltaXQtbGV2ZWwgKG9yIG9yZy1jeWNsZS1tYXgtbGV2ZWwgKGFuZCAoYm91bmRw IChxdW90ZSBvcmctaW5saW5ldGFzay1taW4tbGV2ZWwpKSBvcmctaW5saW5ldGFzay1taW4tbGV2 ZWwgKDEtIG9yZy1pbmxpbmV0YXNrLW1pbi1sZXZlbCkpKSkgKG5zdGFycyAoYW5kIGxpbWl0LWxl dmVsIChpZiBvcmctb2RkLWxldmVscy1vbmx5IChhbmQgbGltaXQtbGV2ZWwgKDEtICgqIGxpbWl0 LWxldmVsIDIpKSkgbGltaXQtbGV2ZWwpKSkgKG9yZy1vdXRsaW5lLXJlZ2V4cCAoaWYgKG5vdCAo ZXEgbWFqb3ItbW9kZSAocXVvdGUgb3JnLW1vZGUpKSkgb3V0bGluZS1yZWdleHAgKGNvbmNhdCAi XFwqIiAoaWYgbnN0YXJzIChmb3JtYXQgIlxcezEsJWRcXH0gIiBuc3RhcnMpICIrICIpKSkpIChi b2Itc3BlY2lhbCAoYW5kIG9yZy1jeWNsZS1nbG9iYWwtYXQtYm9iIChub3QgYXJnKSAoYm9icCkg KG5vdCAobG9va2luZy1hdCBvcmctb3V0bGluZS1yZWdleHApKSkpIChvcmctY3ljbGUtaG9vayAo aWYgYm9iLXNwZWNpYWwgKGRlbHEgKHF1b3RlIG9yZy1vcHRpbWl6ZS13aW5kb3ctYWZ0ZXItdmlz aWJpbGl0eS1jaGFuZ2UpIChjb3B5LXNlcXVlbmNlIG9yZy1jeWNsZS1ob29rKSkgb3JnLWN5Y2xl LWhvb2spKSAocG9zIChwb2ludCkpKSAoaWYgKG9yIGJvYi1zcGVjaWFsIChlcXVhbCBhcmcgKHF1 b3RlICg0KSkpKSAoc2V0cSBhcmcgdCkpIChjb25kICgoZXF1YWwgYXJnIChxdW90ZSAoMTYpKSkg KHNldHEgbGFzdC1jb21tYW5kIChxdW90ZSBkdW1teSkpIChvcmctc2V0LXN0YXJ0dXAtdmlzaWJp bGl0eSkgKG1lc3NhZ2UgIlN0YXJ0dXAgdmlzaWJpbGl0eSwgcGx1cyBWSVNJQklMSVRZIHByb3Bl cnRpZXMiKSkgKChlcXVhbCBhcmcgKHF1b3RlICg2NCkpKSAoc2hvdy1hbGwpIChtZXNzYWdlICJF bnRpcmUgYnVmZmVyIHZpc2libGUsIGluY2x1ZGluZyBkcmF3ZXJzIikpICgob3JnLWF0LXRhYmxl LXAgKHF1b3RlIGFueSkpIChpZiAob3JnLWF0LXRhYmxlXC5lbC1wKSAobWVzc2FnZSAiVXNlIEMt YyAnIHRvIGVkaXQgdGFibGUuZWwgdGFibGVzIikgKGlmIGFyZyAob3JnLXRhYmxlLWVkaXQtZmll bGQgdCkgKG9yZy10YWJsZS1qdXN0aWZ5LWZpZWxkLW1heWJlKSAoY2FsbC1pbnRlcmFjdGl2ZWx5 IChxdW90ZSBvcmctdGFibGUtbmV4dC1maWVsZCkpKSkpICgocnVuLWhvb2std2l0aC1hcmdzLXVu dGlsLXN1Y2Nlc3MgKHF1b3RlIG9yZy10YWItYWZ0ZXItY2hlY2stZm9yLXRhYmxlLWhvb2spKSkg KChlcSBhcmcgdCkgKG9yZy1jeWNsZS1pbnRlcm5hbC1nbG9iYWwpKSAoKGFuZCBvcmctZHJhd2Vy cyBvcmctZHJhd2VyLXJlZ2V4cCAoc2F2ZS1leGN1cnNpb24gKGJlZ2lubmluZy1vZi1saW5lIDEp IChsb29raW5nLWF0IG9yZy1kcmF3ZXItcmVnZXhwKSkpIChvcmctZmxhZy1kcmF3ZXIgKG5vdCAo Z2V0LWNoYXItcHJvcGVydHkgKG1hdGNoLWVuZCAwKSAocXVvdGUgaW52aXNpYmxlKSkpKSkgKChp bnRlZ2VycCBhcmcpIChzYXZlLWV4Y3Vyc2lvbiAob3JnLWJhY2stdG8taGVhZGluZykgKG91dGxp bmUtdXAtaGVhZGluZyAoaWYgKDwgYXJnIDApICgtIGFyZykgKC0gKGZ1bmNhbGwgb3V0bGluZS1s ZXZlbCkgYXJnKSkpIChvcmctc2hvdy1zdWJ0cmVlKSkpICgoYW5kIChmZWF0dXJlcCAocXVvdGUg b3JnLWlubGluZXRhc2spKSAob3JnLWlubGluZXRhc2stYXQtdGFzay1wKSAob3IgKGJvbHApIChu b3QgKGVxIG9yZy1jeWNsZS1lbXVsYXRlLXRhYiAocXVvdGUgZXhjLWhsLWJvbCkpKSkpIChvcmct aW5saW5ldGFzay10b2dnbGUtdmlzaWJpbGl0eSkpICgob3JnLXRyeS1jZGxhdGV4LXRhYikpICgo YW5kIChvciAoYW5kIG9yZy1jeWNsZS1pbmNsdWRlLXBsYWluLWxpc3RzIChvcmctYXQtaXRlbS1w KSkgKHNhdmUtZXhjdXJzaW9uIChiZWdpbm5pbmctb2YtbGluZSAxKSAobG9va2luZy1hdCBvcmct b3V0bGluZS1yZWdleHApKSkgKG9yIChib2xwKSAobm90IChlcSBvcmctY3ljbGUtZW11bGF0ZS10 YWIgKHF1b3RlIGV4Yy1obC1ib2wpKSkpKSAob3JnLWN5Y2xlLWludGVybmFsLWxvY2FsKSkgKGJ1 ZmZlci1yZWFkLW9ubHkgKG9yZy1iYWNrLXRvLWhlYWRpbmcpKSAoKHJ1bi1ob29rLXdpdGgtYXJn cy11bnRpbC1zdWNjZXNzIChxdW90ZSBvcmctdGFiLWFmdGVyLWNoZWNrLWZvci1jeWNsaW5nLWhv b2spKSkgKChvcmctdHJ5LXN0cnVjdHVyZS1jb21wbGV0aW9uKSkgKChydW4taG9vay13aXRoLWFy Z3MtdW50aWwtc3VjY2VzcyAocXVvdGUgb3JnLXRhYi1iZWZvcmUtdGFiLWVtdWxhdGlvbi1ob29r KSkpICgoYW5kIChlcSBvcmctY3ljbGUtZW11bGF0ZS10YWIgKHF1b3RlIGV4Yy1obC1ib2wpKSAo b3IgKG5vdCAoYm9scCkpIChub3QgKGxvb2tpbmctYXQgb3JnLW91dGxpbmUtcmVnZXhwKSkpKSAo Y2FsbC1pbnRlcmFjdGl2ZWx5IChnbG9iYWwta2V5LWJpbmRpbmcgIgkiKSkpICgoaWYgKGFuZCAo bWVtcSBvcmctY3ljbGUtZW11bGF0ZS10YWIgKHF1b3RlICh3aGl0ZSB3aGl0ZXN0YXJ0KSkpIChz YXZlLWV4Y3Vyc2lvbiAoYmVnaW5uaW5nLW9mLWxpbmUgMSkgKGxvb2tpbmctYXQgIlsgCV0qIikp IChvciAoYW5kIChlcSBvcmctY3ljbGUtZW11bGF0ZS10YWIgLi4uKSAoPSAuLi4gLi4uKSkgKGFu ZCAoZXEgb3JnLWN5Y2xlLWVtdWxhdGUtdGFiIC4uLikgKD49IC4uLiBwb3MpKSkpIHQgKGVxIG9y Zy1jeWNsZS1lbXVsYXRlLXRhYiB0KSkgKGNhbGwtaW50ZXJhY3RpdmVseSAoZ2xvYmFsLWtleS1i aW5kaW5nICIJIikpKSAodCAoc2F2ZS1leGN1cnNpb24gKG9yZy1iYWNrLXRvLWhlYWRpbmcpIChv cmctY3ljbGUpKSkpKQogIChpZiAob3IgKHJ1bi1ob29rLXdpdGgtYXJncy11bnRpbC1zdWNjZXNz IChxdW90ZSBvcmctdGFiLWZpcnN0LWhvb2spKSAoYW5kIG9yZy1jeWNsZS1sZXZlbC1hZnRlci1p dGVtL2VudHJ5LWNyZWF0aW9uIChvciAob3JnLWN5Y2xlLWxldmVsKSAob3JnLWN5Y2xlLWl0ZW0t aW5kZW50YXRpb24pKSkpIG5pbCAobGV0KiAoKGxpbWl0LWxldmVsIChvciBvcmctY3ljbGUtbWF4 LWxldmVsIChhbmQgKGJvdW5kcCAocXVvdGUgb3JnLWlubGluZXRhc2stbWluLWxldmVsKSkgb3Jn LWlubGluZXRhc2stbWluLWxldmVsICgxLSBvcmctaW5saW5ldGFzay1taW4tbGV2ZWwpKSkpIChu c3RhcnMgKGFuZCBsaW1pdC1sZXZlbCAoaWYgb3JnLW9kZC1sZXZlbHMtb25seSAoYW5kIGxpbWl0 LWxldmVsICgxLSAuLi4pKSBsaW1pdC1sZXZlbCkpKSAob3JnLW91dGxpbmUtcmVnZXhwIChpZiAo bm90IChlcSBtYWpvci1tb2RlIChxdW90ZSBvcmctbW9kZSkpKSBvdXRsaW5lLXJlZ2V4cCAoY29u Y2F0ICJcXCoiIChpZiBuc3RhcnMgKGZvcm1hdCAiXFx7MSwlZFxcfSAiIG5zdGFycykgIisgIikp KSkgKGJvYi1zcGVjaWFsIChhbmQgb3JnLWN5Y2xlLWdsb2JhbC1hdC1ib2IgKG5vdCBhcmcpIChi b2JwKSAobm90IChsb29raW5nLWF0IG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSkgKG9yZy1jeWNsZS1o b29rIChpZiBib2Itc3BlY2lhbCAoZGVscSAocXVvdGUgb3JnLW9wdGltaXplLXdpbmRvdy1hZnRl ci12aXNpYmlsaXR5LWNoYW5nZSkgKGNvcHktc2VxdWVuY2Ugb3JnLWN5Y2xlLWhvb2spKSBvcmct Y3ljbGUtaG9vaykpIChwb3MgKHBvaW50KSkpIChpZiAob3IgYm9iLXNwZWNpYWwgKGVxdWFsIGFy ZyAocXVvdGUgKDQpKSkpIChzZXRxIGFyZyB0KSkgKGNvbmQgKChlcXVhbCBhcmcgKHF1b3RlICgx NikpKSAoc2V0cSBsYXN0LWNvbW1hbmQgKHF1b3RlIGR1bW15KSkgKG9yZy1zZXQtc3RhcnR1cC12 aXNpYmlsaXR5KSAobWVzc2FnZSAiU3RhcnR1cCB2aXNpYmlsaXR5LCBwbHVzIFZJU0lCSUxJVFkg cHJvcGVydGllcyIpKSAoKGVxdWFsIGFyZyAocXVvdGUgKDY0KSkpIChzaG93LWFsbCkgKG1lc3Nh Z2UgIkVudGlyZSBidWZmZXIgdmlzaWJsZSwgaW5jbHVkaW5nIGRyYXdlcnMiKSkgKChvcmctYXQt dGFibGUtcCAocXVvdGUgYW55KSkgKGlmIChvcmctYXQtdGFibGVcLmVsLXApIChtZXNzYWdlICJV c2UgQy1jICcgdG8gZWRpdCB0YWJsZS5lbCB0YWJsZXMiKSAoaWYgYXJnIChvcmctdGFibGUtZWRp dC1maWVsZCB0KSAob3JnLXRhYmxlLWp1c3RpZnktZmllbGQtbWF5YmUpIChjYWxsLWludGVyYWN0 aXZlbHkgKHF1b3RlIG9yZy10YWJsZS1uZXh0LWZpZWxkKSkpKSkgKChydW4taG9vay13aXRoLWFy Z3MtdW50aWwtc3VjY2VzcyAocXVvdGUgb3JnLXRhYi1hZnRlci1jaGVjay1mb3ItdGFibGUtaG9v aykpKSAoKGVxIGFyZyB0KSAob3JnLWN5Y2xlLWludGVybmFsLWdsb2JhbCkpICgoYW5kIG9yZy1k cmF3ZXJzIG9yZy1kcmF3ZXItcmVnZXhwIChzYXZlLWV4Y3Vyc2lvbiAoYmVnaW5uaW5nLW9mLWxp bmUgMSkgKGxvb2tpbmctYXQgb3JnLWRyYXdlci1yZWdleHApKSkgKG9yZy1mbGFnLWRyYXdlciAo bm90IChnZXQtY2hhci1wcm9wZXJ0eSAobWF0Y2gtZW5kIDApIChxdW90ZSBpbnZpc2libGUpKSkp KSAoKGludGVnZXJwIGFyZykgKHNhdmUtZXhjdXJzaW9uIChvcmctYmFjay10by1oZWFkaW5nKSAo b3V0bGluZS11cC1oZWFkaW5nIChpZiAoPCBhcmcgMCkgKC0gYXJnKSAoLSAuLi4gYXJnKSkpIChv cmctc2hvdy1zdWJ0cmVlKSkpICgoYW5kIChmZWF0dXJlcCAocXVvdGUgb3JnLWlubGluZXRhc2sp KSAob3JnLWlubGluZXRhc2stYXQtdGFzay1wKSAob3IgKGJvbHApIChub3QgKGVxIG9yZy1jeWNs ZS1lbXVsYXRlLXRhYiAuLi4pKSkpIChvcmctaW5saW5ldGFzay10b2dnbGUtdmlzaWJpbGl0eSkp ICgob3JnLXRyeS1jZGxhdGV4LXRhYikpICgoYW5kIChvciAoYW5kIG9yZy1jeWNsZS1pbmNsdWRl LXBsYWluLWxpc3RzIChvcmctYXQtaXRlbS1wKSkgKHNhdmUtZXhjdXJzaW9uIChiZWdpbm5pbmct b2YtbGluZSAxKSAobG9va2luZy1hdCBvcmctb3V0bGluZS1yZWdleHApKSkgKG9yIChib2xwKSAo bm90IChlcSBvcmctY3ljbGUtZW11bGF0ZS10YWIgLi4uKSkpKSAob3JnLWN5Y2xlLWludGVybmFs LWxvY2FsKSkgKGJ1ZmZlci1yZWFkLW9ubHkgKG9yZy1iYWNrLXRvLWhlYWRpbmcpKSAoKHJ1bi1o b29rLXdpdGgtYXJncy11bnRpbC1zdWNjZXNzIChxdW90ZSBvcmctdGFiLWFmdGVyLWNoZWNrLWZv ci1jeWNsaW5nLWhvb2spKSkgKChvcmctdHJ5LXN0cnVjdHVyZS1jb21wbGV0aW9uKSkgKChydW4t aG9vay13aXRoLWFyZ3MtdW50aWwtc3VjY2VzcyAocXVvdGUgb3JnLXRhYi1iZWZvcmUtdGFiLWVt dWxhdGlvbi1ob29rKSkpICgoYW5kIChlcSBvcmctY3ljbGUtZW11bGF0ZS10YWIgKHF1b3RlIGV4 Yy1obC1ib2wpKSAob3IgKG5vdCAoYm9scCkpIChub3QgKGxvb2tpbmctYXQgb3JnLW91dGxpbmUt cmVnZXhwKSkpKSAoY2FsbC1pbnRlcmFjdGl2ZWx5IChnbG9iYWwta2V5LWJpbmRpbmcgIgkiKSkp ICgoaWYgKGFuZCAobWVtcSBvcmctY3ljbGUtZW11bGF0ZS10YWIgKHF1b3RlIC4uLikpIChzYXZl LWV4Y3Vyc2lvbiAoYmVnaW5uaW5nLW9mLWxpbmUgMSkgKGxvb2tpbmctYXQgIlsgCV0qIikpIChv ciAoYW5kIC4uLiAuLi4pIChhbmQgLi4uIC4uLikpKSB0IChlcSBvcmctY3ljbGUtZW11bGF0ZS10 YWIgdCkpIChjYWxsLWludGVyYWN0aXZlbHkgKGdsb2JhbC1rZXktYmluZGluZyAiCSIpKSkgKHQg KHNhdmUtZXhjdXJzaW9uIChvcmctYmFjay10by1oZWFkaW5nKSAob3JnLWN5Y2xlKSkpKSkpCiAg KHVubGVzcyAob3IgKHJ1bi1ob29rLXdpdGgtYXJncy11bnRpbC1zdWNjZXNzIChxdW90ZSBvcmct dGFiLWZpcnN0LWhvb2spKSAoYW5kIG9yZy1jeWNsZS1sZXZlbC1hZnRlci1pdGVtL2VudHJ5LWNy ZWF0aW9uIChvciAob3JnLWN5Y2xlLWxldmVsKSAob3JnLWN5Y2xlLWl0ZW0taW5kZW50YXRpb24p KSkpIChsZXQqICgobGltaXQtbGV2ZWwgKG9yIG9yZy1jeWNsZS1tYXgtbGV2ZWwgKGFuZCAoYm91 bmRwIChxdW90ZSBvcmctaW5saW5ldGFzay1taW4tbGV2ZWwpKSBvcmctaW5saW5ldGFzay1taW4t bGV2ZWwgKDEtIG9yZy1pbmxpbmV0YXNrLW1pbi1sZXZlbCkpKSkgKG5zdGFycyAoYW5kIGxpbWl0 LWxldmVsIChpZiBvcmctb2RkLWxldmVscy1vbmx5IChhbmQgbGltaXQtbGV2ZWwgKDEtIC4uLikp IGxpbWl0LWxldmVsKSkpIChvcmctb3V0bGluZS1yZWdleHAgKGlmIChub3QgKGVxIG1ham9yLW1v ZGUgKHF1b3RlIG9yZy1tb2RlKSkpIG91dGxpbmUtcmVnZXhwIChjb25jYXQgIlxcKiIgKGlmIG5z dGFycyAoZm9ybWF0ICJcXHsxLCVkXFx9ICIgbnN0YXJzKSAiKyAiKSkpKSAoYm9iLXNwZWNpYWwg KGFuZCBvcmctY3ljbGUtZ2xvYmFsLWF0LWJvYiAobm90IGFyZykgKGJvYnApIChub3QgKGxvb2tp bmctYXQgb3JnLW91dGxpbmUtcmVnZXhwKSkpKSAob3JnLWN5Y2xlLWhvb2sgKGlmIGJvYi1zcGVj aWFsIChkZWxxIChxdW90ZSBvcmctb3B0aW1pemUtd2luZG93LWFmdGVyLXZpc2liaWxpdHktY2hh bmdlKSAoY29weS1zZXF1ZW5jZSBvcmctY3ljbGUtaG9vaykpIG9yZy1jeWNsZS1ob29rKSkgKHBv cyAocG9pbnQpKSkgKGlmIChvciBib2Itc3BlY2lhbCAoZXF1YWwgYXJnIChxdW90ZSAoNCkpKSkg KHNldHEgYXJnIHQpKSAoY29uZCAoKGVxdWFsIGFyZyAocXVvdGUgKDE2KSkpIChzZXRxIGxhc3Qt Y29tbWFuZCAocXVvdGUgZHVtbXkpKSAob3JnLXNldC1zdGFydHVwLXZpc2liaWxpdHkpIChtZXNz YWdlICJTdGFydHVwIHZpc2liaWxpdHksIHBsdXMgVklTSUJJTElUWSBwcm9wZXJ0aWVzIikpICgo ZXF1YWwgYXJnIChxdW90ZSAoNjQpKSkgKHNob3ctYWxsKSAobWVzc2FnZSAiRW50aXJlIGJ1ZmZl ciB2aXNpYmxlLCBpbmNsdWRpbmcgZHJhd2VycyIpKSAoKG9yZy1hdC10YWJsZS1wIChxdW90ZSBh bnkpKSAoaWYgKG9yZy1hdC10YWJsZVwuZWwtcCkgKG1lc3NhZ2UgIlVzZSBDLWMgJyB0byBlZGl0 IHRhYmxlLmVsIHRhYmxlcyIpIChpZiBhcmcgKG9yZy10YWJsZS1lZGl0LWZpZWxkIHQpIChvcmct dGFibGUtanVzdGlmeS1maWVsZC1tYXliZSkgKGNhbGwtaW50ZXJhY3RpdmVseSAocXVvdGUgb3Jn LXRhYmxlLW5leHQtZmllbGQpKSkpKSAoKHJ1bi1ob29rLXdpdGgtYXJncy11bnRpbC1zdWNjZXNz IChxdW90ZSBvcmctdGFiLWFmdGVyLWNoZWNrLWZvci10YWJsZS1ob29rKSkpICgoZXEgYXJnIHQp IChvcmctY3ljbGUtaW50ZXJuYWwtZ2xvYmFsKSkgKChhbmQgb3JnLWRyYXdlcnMgb3JnLWRyYXdl ci1yZWdleHAgKHNhdmUtZXhjdXJzaW9uIChiZWdpbm5pbmctb2YtbGluZSAxKSAobG9va2luZy1h dCBvcmctZHJhd2VyLXJlZ2V4cCkpKSAob3JnLWZsYWctZHJhd2VyIChub3QgKGdldC1jaGFyLXBy b3BlcnR5IChtYXRjaC1lbmQgMCkgKHF1b3RlIGludmlzaWJsZSkpKSkpICgoaW50ZWdlcnAgYXJn KSAoc2F2ZS1leGN1cnNpb24gKG9yZy1iYWNrLXRvLWhlYWRpbmcpIChvdXRsaW5lLXVwLWhlYWRp bmcgKGlmICg8IGFyZyAwKSAoLSBhcmcpICgtIC4uLiBhcmcpKSkgKG9yZy1zaG93LXN1YnRyZWUp KSkgKChhbmQgKGZlYXR1cmVwIChxdW90ZSBvcmctaW5saW5ldGFzaykpIChvcmctaW5saW5ldGFz ay1hdC10YXNrLXApIChvciAoYm9scCkgKG5vdCAoZXEgb3JnLWN5Y2xlLWVtdWxhdGUtdGFiIC4u LikpKSkgKG9yZy1pbmxpbmV0YXNrLXRvZ2dsZS12aXNpYmlsaXR5KSkgKChvcmctdHJ5LWNkbGF0 ZXgtdGFiKSkgKChhbmQgKG9yIChhbmQgb3JnLWN5Y2xlLWluY2x1ZGUtcGxhaW4tbGlzdHMgKG9y Zy1hdC1pdGVtLXApKSAoc2F2ZS1leGN1cnNpb24gKGJlZ2lubmluZy1vZi1saW5lIDEpIChsb29r aW5nLWF0IG9yZy1vdXRsaW5lLXJlZ2V4cCkpKSAob3IgKGJvbHApIChub3QgKGVxIG9yZy1jeWNs ZS1lbXVsYXRlLXRhYiAuLi4pKSkpIChvcmctY3ljbGUtaW50ZXJuYWwtbG9jYWwpKSAoYnVmZmVy LXJlYWQtb25seSAob3JnLWJhY2stdG8taGVhZGluZykpICgocnVuLWhvb2std2l0aC1hcmdzLXVu dGlsLXN1Y2Nlc3MgKHF1b3RlIG9yZy10YWItYWZ0ZXItY2hlY2stZm9yLWN5Y2xpbmctaG9vaykp KSAoKG9yZy10cnktc3RydWN0dXJlLWNvbXBsZXRpb24pKSAoKHJ1bi1ob29rLXdpdGgtYXJncy11 bnRpbC1zdWNjZXNzIChxdW90ZSBvcmctdGFiLWJlZm9yZS10YWItZW11bGF0aW9uLWhvb2spKSkg KChhbmQgKGVxIG9yZy1jeWNsZS1lbXVsYXRlLXRhYiAocXVvdGUgZXhjLWhsLWJvbCkpIChvciAo bm90IChib2xwKSkgKG5vdCAobG9va2luZy1hdCBvcmctb3V0bGluZS1yZWdleHApKSkpIChjYWxs LWludGVyYWN0aXZlbHkgKGdsb2JhbC1rZXktYmluZGluZyAiCSIpKSkgKChpZiAoYW5kIChtZW1x IG9yZy1jeWNsZS1lbXVsYXRlLXRhYiAocXVvdGUgLi4uKSkgKHNhdmUtZXhjdXJzaW9uIChiZWdp bm5pbmctb2YtbGluZSAxKSAobG9va2luZy1hdCAiWyAJXSoiKSkgKG9yIChhbmQgLi4uIC4uLikg KGFuZCAuLi4gLi4uKSkpIHQgKGVxIG9yZy1jeWNsZS1lbXVsYXRlLXRhYiB0KSkgKGNhbGwtaW50 ZXJhY3RpdmVseSAoZ2xvYmFsLWtleS1iaW5kaW5nICIJIikpKSAodCAoc2F2ZS1leGN1cnNpb24g KG9yZy1iYWNrLXRvLWhlYWRpbmcpIChvcmctY3ljbGUpKSkpKSkKICBvcmctY3ljbGUoKDQpKQog IChjb25kICgoZXEgb3JnLXN0YXJ0dXAtZm9sZGVkIHQpIChvcmctY3ljbGUgKHF1b3RlICg0KSkp KSAoKGVxIG9yZy1zdGFydHVwLWZvbGRlZCAocXVvdGUgY29udGVudCkpIChsZXQgKCh0aGlzLWNv bW1hbmQgKHF1b3RlIG9yZy1jeWNsZSkpIChsYXN0LWNvbW1hbmQgKHF1b3RlIG9yZy1jeWNsZSkp KSAob3JnLWN5Y2xlIChxdW90ZSAoNCkpKSAob3JnLWN5Y2xlIChxdW90ZSAoNCkpKSkpKQogIG9y Zy1zZXQtc3RhcnR1cC12aXNpYmlsaXR5KCkKICAoaWYgb3JnLWluaGliaXQtc3RhcnR1cC12aXNp YmlsaXR5LXN0dWZmIG5pbCAob3JnLXNldC1zdGFydHVwLXZpc2liaWxpdHkpKQogICh1bmxlc3Mg b3JnLWluaGliaXQtc3RhcnR1cC12aXNpYmlsaXR5LXN0dWZmIChvcmctc2V0LXN0YXJ0dXAtdmlz aWJpbGl0eSkpCiAgKGlmIG9yZy1pbmhpYml0LXN0YXJ0dXAgbmlsICh3aGVuIG9yZy1zdGFydHVw LWFsaWduLWFsbC10YWJsZXMgKGxldCAoKGJtcCAoYnVmZmVyLW1vZGlmaWVkLXApKSkgKG9yZy10 YWJsZS1tYXAtdGFibGVzIChxdW90ZSBvcmctdGFibGUtYWxpZ24pIChxdW90ZSBxdWlldGx5KSkg KHNldC1idWZmZXItbW9kaWZpZWQtcCBibXApKSkgKHdoZW4gb3JnLXN0YXJ0dXAtd2l0aC1pbmxp bmUtaW1hZ2VzIChvcmctZGlzcGxheS1pbmxpbmUtaW1hZ2VzKSkgKHdoZW4gb3JnLXN0YXJ0dXAt aW5kZW50ZWQgKHJlcXVpcmUgKHF1b3RlIG9yZy1pbmRlbnQpKSAob3JnLWluZGVudC1tb2RlIDEp KSAodW5sZXNzIG9yZy1pbmhpYml0LXN0YXJ0dXAtdmlzaWJpbGl0eS1zdHVmZiAob3JnLXNldC1z dGFydHVwLXZpc2liaWxpdHkpKSkKICAodW5sZXNzIG9yZy1pbmhpYml0LXN0YXJ0dXAgKHdoZW4g b3JnLXN0YXJ0dXAtYWxpZ24tYWxsLXRhYmxlcyAobGV0ICgoYm1wIChidWZmZXItbW9kaWZpZWQt cCkpKSAob3JnLXRhYmxlLW1hcC10YWJsZXMgKHF1b3RlIG9yZy10YWJsZS1hbGlnbikgKHF1b3Rl IHF1aWV0bHkpKSAoc2V0LWJ1ZmZlci1tb2RpZmllZC1wIGJtcCkpKSAod2hlbiBvcmctc3RhcnR1 cC13aXRoLWlubGluZS1pbWFnZXMgKG9yZy1kaXNwbGF5LWlubGluZS1pbWFnZXMpKSAod2hlbiBv cmctc3RhcnR1cC1pbmRlbnRlZCAocmVxdWlyZSAocXVvdGUgb3JnLWluZGVudCkpIChvcmctaW5k ZW50LW1vZGUgMSkpICh1bmxlc3Mgb3JnLWluaGliaXQtc3RhcnR1cC12aXNpYmlsaXR5LXN0dWZm IChvcmctc2V0LXN0YXJ0dXAtdmlzaWJpbGl0eSkpKQogIChsZXQgKChkZWxheS1tb2RlLWhvb2tz IHQpKSAob3V0bGluZS1tb2RlKSAoc2V0cSBtYWpvci1tb2RlIChxdW90ZSBvcmctbW9kZSkpIChz ZXRxIG1vZGUtbmFtZSAiT3JnIikgKHByb2duIChpZiAoZ2V0IChxdW90ZSBvdXRsaW5lLW1vZGUp IChxdW90ZSBtb2RlLWNsYXNzKSkgKHB1dCAocXVvdGUgb3JnLW1vZGUpIChxdW90ZSBtb2RlLWNs YXNzKSAoZ2V0IChxdW90ZSBvdXRsaW5lLW1vZGUpIChxdW90ZSBtb2RlLWNsYXNzKSkpKSAodW5s ZXNzIChrZXltYXAtcGFyZW50IG9yZy1tb2RlLW1hcCkgKHNldC1rZXltYXAtcGFyZW50IG9yZy1t b2RlLW1hcCAoY3VycmVudC1sb2NhbC1tYXApKSkgKGxldCAoKHBhcmVudCAoY2hhci10YWJsZS1w YXJlbnQgb3JnLW1vZGUtc3ludGF4LXRhYmxlKSkpICh1bmxlc3MgKGFuZCBwYXJlbnQgKG5vdCAo ZXEgcGFyZW50IChzdGFuZGFyZC1zeW50YXgtdGFibGUpKSkpIChzZXQtY2hhci10YWJsZS1wYXJl bnQgb3JnLW1vZGUtc3ludGF4LXRhYmxlIChzeW50YXgtdGFibGUpKSkpICh1bmxlc3MgKG9yIChh YmJyZXYtdGFibGUtZ2V0IG9yZy1tb2RlLWFiYnJldi10YWJsZSA6cGFyZW50cykgKGVxIG9yZy1t b2RlLWFiYnJldi10YWJsZSBsb2NhbC1hYmJyZXYtdGFibGUpKSAoYWJicmV2LXRhYmxlLXB1dCBv cmctbW9kZS1hYmJyZXYtdGFibGUgOnBhcmVudHMgKGxpc3QgbG9jYWwtYWJicmV2LXRhYmxlKSkp KSAodXNlLWxvY2FsLW1hcCBvcmctbW9kZS1tYXApIChzZXQtc3ludGF4LXRhYmxlIG9yZy1tb2Rl LXN5bnRheC10YWJsZSkgKHNldHEgbG9jYWwtYWJicmV2LXRhYmxlIG9yZy1tb2RlLWFiYnJldi10 YWJsZSkgKGlmIChmZWF0dXJlcCAocXVvdGUgeGVtYWNzKSkgKHdoZW4gKGJvdW5kcCAocXVvdGUg b3V0bGluZS1tb2RlLW1lbnUtaGVhZGluZykpIChlYXN5LW1lbnUtcmVtb3ZlIG91dGxpbmUtbW9k ZS1tZW51LWhlYWRpbmcpIChlYXN5LW1lbnUtcmVtb3ZlIG91dGxpbmUtbW9kZS1tZW51LXNob3cp IChlYXN5LW1lbnUtcmVtb3ZlIG91dGxpbmUtbW9kZS1tZW51LWhpZGUpKSAoZGVmaW5lLWtleSBv cmctbW9kZS1tYXAgW21lbnUtYmFyIGhlYWRpbmdzXSAocXVvdGUgdW5kZWZpbmVkKSkgKGRlZmlu ZS1rZXkgb3JnLW1vZGUtbWFwIFttZW51LWJhciBoaWRlXSAocXVvdGUgdW5kZWZpbmVkKSkgKGRl ZmluZS1rZXkgb3JnLW1vZGUtbWFwIFttZW51LWJhciBzaG93XSAocXVvdGUgdW5kZWZpbmVkKSkp IChvcmctbG9hZC1tb2R1bGVzLW1heWJlKSAoZWFzeS1tZW51LWFkZCBvcmctb3JnLW1lbnUpIChl YXN5LW1lbnUtYWRkIG9yZy10YmwtbWVudSkgKG9yZy1pbnN0YWxsLWFnZW5kYS1maWxlcy1tZW51 KSAoaWYgb3JnLWRlc2NyaXB0aXZlLWxpbmtzIChhZGQtdG8taW52aXNpYmlsaXR5LXNwZWMgKHF1 b3RlIChvcmctbGluaykpKSkgKGFkZC10by1pbnZpc2liaWxpdHktc3BlYyAocXVvdGUgKG9yZy1j d2lkdGgpKSkgKGFkZC10by1pbnZpc2liaWxpdHktc3BlYyAocXVvdGUgKG9yZy1oaWRlLWJsb2Nr IC4gdCkpKSAod2hlbiAoZmVhdHVyZXAgKHF1b3RlIHhlbWFjcykpIChvcmctc2V0LWxvY2FsIChx dW90ZSBsaW5lLW1vdmUtaWdub3JlLWludmlzaWJsZSkgdCkpIChvcmctc2V0LWxvY2FsIChxdW90 ZSBvdXRsaW5lLXJlZ2V4cCkgb3JnLW91dGxpbmUtcmVnZXhwKSAob3JnLXNldC1sb2NhbCAocXVv dGUgb3V0bGluZS1sZXZlbCkgKHF1b3RlIG9yZy1vdXRsaW5lLWxldmVsKSkgKHNldHEgYmlkaS1w YXJhZ3JhcGgtZGlyZWN0aW9uIChxdW90ZSBsZWZ0LXRvLXJpZ2h0KSkgKHdoZW4gKGFuZCBvcmct ZWxsaXBzaXMgKGZib3VuZHAgKHF1b3RlIHNldC1kaXNwbGF5LXRhYmxlLXNsb3QpKSAoYm91bmRw IChxdW90ZSBidWZmZXItZGlzcGxheS10YWJsZSkpIChmYm91bmRwIChxdW90ZSBtYWtlLWdseXBo LWNvZGUpKSkgKHVubGVzcyBvcmctZGlzcGxheS10YWJsZSAoc2V0cSBvcmctZGlzcGxheS10YWJs ZSAobWFrZS1kaXNwbGF5LXRhYmxlKSkpIChzZXQtZGlzcGxheS10YWJsZS1zbG90IG9yZy1kaXNw bGF5LXRhYmxlIDQgKHZjb25jYXQgKG1hcGNhciAobGFtYmRhIChjKSAobWFrZS1nbHlwaC1jb2Rl IGMgKGFuZCAuLi4gb3JnLWVsbGlwc2lzKSkpIChpZiAoc3RyaW5ncCBvcmctZWxsaXBzaXMpIG9y Zy1lbGxpcHNpcyAiLi4uIikpKSkgKHNldHEgYnVmZmVyLWRpc3BsYXktdGFibGUgb3JnLWRpc3Bs YXktdGFibGUpKSAob3JnLXNldC1yZWdleHBzLWFuZC1vcHRpb25zKSAod2hlbiAoYW5kIG9yZy10 YWctZmFjZXMgKG5vdCBvcmctdGFncy1zcGVjaWFsLWZhY2VzLXJlKSkgKG9yZy1zZXQtdGFnLWZh Y2VzIChxdW90ZSBvcmctdGFnLWZhY2VzKSBvcmctdGFnLWZhY2VzKSkgKG9yZy1zZXQtbG9jYWwg KHF1b3RlIGNhbGMtZW1iZWRkZWQtb3Blbi1tb2RlKSAiIyAiKSAobW9kaWZ5LXN5bnRheC1lbnRy eSA2NCAidyIpIChpZiBvcmctc3RhcnR1cC10cnVuY2F0ZWQgKHNldHEgdHJ1bmNhdGUtbGluZXMg dCkpIChvcmctc2V0LWxvY2FsIChxdW90ZSBmb250LWxvY2stdW5mb250aWZ5LXJlZ2lvbi1mdW5j dGlvbikgKHF1b3RlIG9yZy11bmZvbnRpZnktcmVnaW9uKSkgKG9yZy1zZXQtbG9jYWwgKHF1b3Rl IG9yZy10YWJsZS1tYXktbmVlZC11cGRhdGUpIHQpIChvcmctYWRkLWhvb2sgKHF1b3RlIGJlZm9y ZS1jaGFuZ2UtZnVuY3Rpb25zKSAocXVvdGUgb3JnLWJlZm9yZS1jaGFuZ2UtZnVuY3Rpb24pIG5p bCAocXVvdGUgbG9jYWwpKSAob3JnLWFkZC1ob29rIChxdW90ZSBraWxsLWJ1ZmZlci1ob29rKSAo cXVvdGUgb3JnLWNoZWNrLXJ1bm5pbmctY2xvY2spIG5pbCAocXVvdGUgbG9jYWwpKSAob3JnLXNl dC1hdXRvZmlsbC1yZWdleHBzKSAoc2V0cSBpbmRlbnQtbGluZS1mdW5jdGlvbiAocXVvdGUgb3Jn LWluZGVudC1saW5lLWZ1bmN0aW9uKSkgKG9yZy11cGRhdGUtcmFkaW8tdGFyZ2V0LXJlZ2V4cCkg KG9yZy1zZXQtbG9jYWwgKHF1b3RlIGJlZ2lubmluZy1vZi1kZWZ1bi1mdW5jdGlvbikgKHF1b3Rl IG9yZy1iZWdpbm5pbmctb2YtZGVmdW4pKSAob3JnLXNldC1sb2NhbCAocXVvdGUgZW5kLW9mLWRl ZnVuLWZ1bmN0aW9uKSAocXVvdGUgb3JnLWVuZC1vZi1kZWZ1bikpIChvcmctc2V0LWxvY2FsIChx dW90ZSBuZXh0LWVycm9yLWZ1bmN0aW9uKSAocXVvdGUgb3JnLW9jY3VyLW5leHQtbWF0Y2gpKSAo aWYgb3JnLWVuZm9yY2UtdG9kby1kZXBlbmRlbmNpZXMgKGFkZC1ob29rIChxdW90ZSBvcmctYmxv Y2tlci1ob29rKSAocXVvdGUgb3JnLWJsb2NrLXRvZG8tZnJvbS1jaGlsZHJlbi1vci1zaWJsaW5n cy1vci1wYXJlbnQpKSAocmVtb3ZlLWhvb2sgKHF1b3RlIG9yZy1ibG9ja2VyLWhvb2spIChxdW90 ZSBvcmctYmxvY2stdG9kby1mcm9tLWNoaWxkcmVuLW9yLXNpYmxpbmdzLW9yLXBhcmVudCkpKSAo aWYgb3JnLWVuZm9yY2UtdG9kby1jaGVja2JveC1kZXBlbmRlbmNpZXMgKGFkZC1ob29rIChxdW90 ZSBvcmctYmxvY2tlci1ob29rKSAocXVvdGUgb3JnLWJsb2NrLXRvZG8tZnJvbS1jaGVja2JveGVz KSkgKHJlbW92ZS1ob29rIChxdW90ZSBvcmctYmxvY2tlci1ob29rKSAocXVvdGUgb3JnLWJsb2Nr LXRvZG8tZnJvbS1jaGVja2JveGVzKSkpIChvcmctc2V0LWxvY2FsIChxdW90ZSBjb21tZW50LXN0 YXJ0KSAiIyIpIChvcmctc2V0LWxvY2FsIChxdW90ZSBjb21tZW50LXBhZGRpbmcpICIgIikgKG9y Zy1zZXQtbG9jYWwgKHF1b3RlIGFsaWduLW1vZGUtcnVsZXMtbGlzdCkgKHF1b3RlICgob3JnLWlu LWJ1ZmZlci1zZXR0aW5ncyAocmVnZXhwIC4gIl4jXFwrW0EtWl9dKzpcXChcXHMtKlxcKVxcUy0r IikgKG1vZGVzIHF1b3RlIChvcmctbW9kZSkpKSkpKSAob3JnLXNldC1sb2NhbCAocXVvdGUgaW1l bnUtY3JlYXRlLWluZGV4LWZ1bmN0aW9uKSAocXVvdGUgb3JnLWltZW51LWdldC10cmVlKSkgKGlm IChvciAoZmVhdHVyZXAgKHF1b3RlIHhlbWFjcykpIChub3QgKGJvdW5kcCAocXVvdGUgb3V0bGlu ZS1pc2VhcmNoLW9wZW4taW52aXNpYmxlLWZ1bmN0aW9uKSkpKSAob3JnLWFkZC1ob29rIChxdW90 ZSBpc2VhcmNoLW1vZGUtZW5kLWhvb2spIChxdW90ZSBvcmctaXNlYXJjaC1lbmQpIChxdW90ZSBh cHBlbmQpIChxdW90ZSBsb2NhbCkpIChvcmctc2V0LWxvY2FsIChxdW90ZSBvdXRsaW5lLWlzZWFy Y2gtb3Blbi1pbnZpc2libGUtZnVuY3Rpb24pIChsYW1iZGEgKCZyZXN0IGlnbm9yZSkgKG9yZy1z aG93LWNvbnRleHQgKHF1b3RlIGlzZWFyY2gpKSkpKSAoYW5kIG9yZy1zdGFydHVwLXdpdGgtYmVh bWVyLW1vZGUgKG9yZy1iZWFtZXItbW9kZSAxKSkgKHNldCAobWFrZS1sb2NhbC12YXJpYWJsZSAo cXVvdGUgcGNvbXBsZXRlLWNvbW1hbmQtY29tcGxldGlvbi1mdW5jdGlvbikpIChxdW90ZSBvcmct cGNvbXBsZXRlLWluaXRpYWwpKSAoc2V0IChtYWtlLWxvY2FsLXZhcmlhYmxlIChxdW90ZSBwY29t cGxldGUtY29tbWFuZC1uYW1lLWZ1bmN0aW9uKSkgKHF1b3RlIG9yZy1jb21tYW5kLWF0LXBvaW50 KSkgKHNldCAobWFrZS1sb2NhbC12YXJpYWJsZSAocXVvdGUgcGNvbXBsZXRlLWRlZmF1bHQtY29t cGxldGlvbi1mdW5jdGlvbikpIChxdW90ZSBpZ25vcmUpKSAoc2V0IChtYWtlLWxvY2FsLXZhcmlh YmxlIChxdW90ZSBwY29tcGxldGUtcGFyc2UtYXJndW1lbnRzLWZ1bmN0aW9uKSkgKHF1b3RlIG9y Zy1wYXJzZS1hcmd1bWVudHMpKSAoc2V0IChtYWtlLWxvY2FsLXZhcmlhYmxlIChxdW90ZSBwY29t cGxldGUtdGVybWluYXRpb24tc3RyaW5nKSkgIiIpIC4uLikKICAocHJvZ24gKG1ha2UtbG9jYWwt dmFyaWFibGUgKHF1b3RlIGRlbGF5LW1vZGUtaG9va3MpKSAobGV0ICgoZGVsYXktbW9kZS1ob29r cyB0KSkgKG91dGxpbmUtbW9kZSkgKHNldHEgbWFqb3ItbW9kZSAocXVvdGUgb3JnLW1vZGUpKSAo c2V0cSBtb2RlLW5hbWUgIk9yZyIpIChwcm9nbiAoaWYgKGdldCAocXVvdGUgb3V0bGluZS1tb2Rl KSAocXVvdGUgbW9kZS1jbGFzcykpIChwdXQgKHF1b3RlIG9yZy1tb2RlKSAocXVvdGUgbW9kZS1j bGFzcykgKGdldCAocXVvdGUgb3V0bGluZS1tb2RlKSAocXVvdGUgbW9kZS1jbGFzcykpKSkgKHVu bGVzcyAoa2V5bWFwLXBhcmVudCBvcmctbW9kZS1tYXApIChzZXQta2V5bWFwLXBhcmVudCBvcmct bW9kZS1tYXAgKGN1cnJlbnQtbG9jYWwtbWFwKSkpIChsZXQgKChwYXJlbnQgKGNoYXItdGFibGUt cGFyZW50IG9yZy1tb2RlLXN5bnRheC10YWJsZSkpKSAodW5sZXNzIChhbmQgcGFyZW50IChub3Qg KGVxIHBhcmVudCAuLi4pKSkgKHNldC1jaGFyLXRhYmxlLXBhcmVudCBvcmctbW9kZS1zeW50YXgt dGFibGUgKHN5bnRheC10YWJsZSkpKSkgKHVubGVzcyAob3IgKGFiYnJldi10YWJsZS1nZXQgb3Jn LW1vZGUtYWJicmV2LXRhYmxlIDpwYXJlbnRzKSAoZXEgb3JnLW1vZGUtYWJicmV2LXRhYmxlIGxv Y2FsLWFiYnJldi10YWJsZSkpIChhYmJyZXYtdGFibGUtcHV0IG9yZy1tb2RlLWFiYnJldi10YWJs ZSA6cGFyZW50cyAobGlzdCBsb2NhbC1hYmJyZXYtdGFibGUpKSkpICh1c2UtbG9jYWwtbWFwIG9y Zy1tb2RlLW1hcCkgKHNldC1zeW50YXgtdGFibGUgb3JnLW1vZGUtc3ludGF4LXRhYmxlKSAoc2V0 cSBsb2NhbC1hYmJyZXYtdGFibGUgb3JnLW1vZGUtYWJicmV2LXRhYmxlKSAoaWYgKGZlYXR1cmVw IChxdW90ZSB4ZW1hY3MpKSAod2hlbiAoYm91bmRwIChxdW90ZSBvdXRsaW5lLW1vZGUtbWVudS1o ZWFkaW5nKSkgKGVhc3ktbWVudS1yZW1vdmUgb3V0bGluZS1tb2RlLW1lbnUtaGVhZGluZykgKGVh c3ktbWVudS1yZW1vdmUgb3V0bGluZS1tb2RlLW1lbnUtc2hvdykgKGVhc3ktbWVudS1yZW1vdmUg b3V0bGluZS1tb2RlLW1lbnUtaGlkZSkpIChkZWZpbmUta2V5IG9yZy1tb2RlLW1hcCBbbWVudS1i YXIgaGVhZGluZ3NdIChxdW90ZSB1bmRlZmluZWQpKSAoZGVmaW5lLWtleSBvcmctbW9kZS1tYXAg W21lbnUtYmFyIGhpZGVdIChxdW90ZSB1bmRlZmluZWQpKSAoZGVmaW5lLWtleSBvcmctbW9kZS1t YXAgW21lbnUtYmFyIHNob3ddIChxdW90ZSB1bmRlZmluZWQpKSkgKG9yZy1sb2FkLW1vZHVsZXMt bWF5YmUpIChlYXN5LW1lbnUtYWRkIG9yZy1vcmctbWVudSkgKGVhc3ktbWVudS1hZGQgb3JnLXRi bC1tZW51KSAob3JnLWluc3RhbGwtYWdlbmRhLWZpbGVzLW1lbnUpIChpZiBvcmctZGVzY3JpcHRp dmUtbGlua3MgKGFkZC10by1pbnZpc2liaWxpdHktc3BlYyAocXVvdGUgKG9yZy1saW5rKSkpKSAo YWRkLXRvLWludmlzaWJpbGl0eS1zcGVjIChxdW90ZSAob3JnLWN3aWR0aCkpKSAoYWRkLXRvLWlu dmlzaWJpbGl0eS1zcGVjIChxdW90ZSAob3JnLWhpZGUtYmxvY2sgLiB0KSkpICh3aGVuIChmZWF0 dXJlcCAocXVvdGUgeGVtYWNzKSkgKG9yZy1zZXQtbG9jYWwgKHF1b3RlIGxpbmUtbW92ZS1pZ25v cmUtaW52aXNpYmxlKSB0KSkgKG9yZy1zZXQtbG9jYWwgKHF1b3RlIG91dGxpbmUtcmVnZXhwKSBv cmctb3V0bGluZS1yZWdleHApIChvcmctc2V0LWxvY2FsIChxdW90ZSBvdXRsaW5lLWxldmVsKSAo cXVvdGUgb3JnLW91dGxpbmUtbGV2ZWwpKSAoc2V0cSBiaWRpLXBhcmFncmFwaC1kaXJlY3Rpb24g KHF1b3RlIGxlZnQtdG8tcmlnaHQpKSAod2hlbiAoYW5kIG9yZy1lbGxpcHNpcyAoZmJvdW5kcCAo cXVvdGUgc2V0LWRpc3BsYXktdGFibGUtc2xvdCkpIChib3VuZHAgKHF1b3RlIGJ1ZmZlci1kaXNw bGF5LXRhYmxlKSkgKGZib3VuZHAgKHF1b3RlIG1ha2UtZ2x5cGgtY29kZSkpKSAodW5sZXNzIG9y Zy1kaXNwbGF5LXRhYmxlIChzZXRxIG9yZy1kaXNwbGF5LXRhYmxlIChtYWtlLWRpc3BsYXktdGFi bGUpKSkgKHNldC1kaXNwbGF5LXRhYmxlLXNsb3Qgb3JnLWRpc3BsYXktdGFibGUgNCAodmNvbmNh dCAobWFwY2FyIChsYW1iZGEgKGMpIChtYWtlLWdseXBoLWNvZGUgYyAuLi4pKSAoaWYgKHN0cmlu Z3Agb3JnLWVsbGlwc2lzKSBvcmctZWxsaXBzaXMgIi4uLiIpKSkpIChzZXRxIGJ1ZmZlci1kaXNw bGF5LXRhYmxlIG9yZy1kaXNwbGF5LXRhYmxlKSkgKG9yZy1zZXQtcmVnZXhwcy1hbmQtb3B0aW9u cykgKHdoZW4gKGFuZCBvcmctdGFnLWZhY2VzIChub3Qgb3JnLXRhZ3Mtc3BlY2lhbC1mYWNlcy1y ZSkpIChvcmctc2V0LXRhZy1mYWNlcyAocXVvdGUgb3JnLXRhZy1mYWNlcykgb3JnLXRhZy1mYWNl cykpIChvcmctc2V0LWxvY2FsIChxdW90ZSBjYWxjLWVtYmVkZGVkLW9wZW4tbW9kZSkgIiMgIikg KG1vZGlmeS1zeW50YXgtZW50cnkgNjQgInciKSAoaWYgb3JnLXN0YXJ0dXAtdHJ1bmNhdGVkIChz ZXRxIHRydW5jYXRlLWxpbmVzIHQpKSAob3JnLXNldC1sb2NhbCAocXVvdGUgZm9udC1sb2NrLXVu Zm9udGlmeS1yZWdpb24tZnVuY3Rpb24pIChxdW90ZSBvcmctdW5mb250aWZ5LXJlZ2lvbikpIChv cmctc2V0LWxvY2FsIChxdW90ZSBvcmctdGFibGUtbWF5LW5lZWQtdXBkYXRlKSB0KSAob3JnLWFk ZC1ob29rIChxdW90ZSBiZWZvcmUtY2hhbmdlLWZ1bmN0aW9ucykgKHF1b3RlIG9yZy1iZWZvcmUt Y2hhbmdlLWZ1bmN0aW9uKSBuaWwgKHF1b3RlIGxvY2FsKSkgKG9yZy1hZGQtaG9vayAocXVvdGUg a2lsbC1idWZmZXItaG9vaykgKHF1b3RlIG9yZy1jaGVjay1ydW5uaW5nLWNsb2NrKSBuaWwgKHF1 b3RlIGxvY2FsKSkgKG9yZy1zZXQtYXV0b2ZpbGwtcmVnZXhwcykgKHNldHEgaW5kZW50LWxpbmUt ZnVuY3Rpb24gKHF1b3RlIG9yZy1pbmRlbnQtbGluZS1mdW5jdGlvbikpIChvcmctdXBkYXRlLXJh ZGlvLXRhcmdldC1yZWdleHApIChvcmctc2V0LWxvY2FsIChxdW90ZSBiZWdpbm5pbmctb2YtZGVm dW4tZnVuY3Rpb24pIChxdW90ZSBvcmctYmVnaW5uaW5nLW9mLWRlZnVuKSkgKG9yZy1zZXQtbG9j YWwgKHF1b3RlIGVuZC1vZi1kZWZ1bi1mdW5jdGlvbikgKHF1b3RlIG9yZy1lbmQtb2YtZGVmdW4p KSAob3JnLXNldC1sb2NhbCAocXVvdGUgbmV4dC1lcnJvci1mdW5jdGlvbikgKHF1b3RlIG9yZy1v Y2N1ci1uZXh0LW1hdGNoKSkgKGlmIG9yZy1lbmZvcmNlLXRvZG8tZGVwZW5kZW5jaWVzIChhZGQt aG9vayAocXVvdGUgb3JnLWJsb2NrZXItaG9vaykgKHF1b3RlIG9yZy1ibG9jay10b2RvLWZyb20t Y2hpbGRyZW4tb3Itc2libGluZ3Mtb3ItcGFyZW50KSkgKHJlbW92ZS1ob29rIChxdW90ZSBvcmct YmxvY2tlci1ob29rKSAocXVvdGUgb3JnLWJsb2NrLXRvZG8tZnJvbS1jaGlsZHJlbi1vci1zaWJs aW5ncy1vci1wYXJlbnQpKSkgKGlmIG9yZy1lbmZvcmNlLXRvZG8tY2hlY2tib3gtZGVwZW5kZW5j aWVzIChhZGQtaG9vayAocXVvdGUgb3JnLWJsb2NrZXItaG9vaykgKHF1b3RlIG9yZy1ibG9jay10 b2RvLWZyb20tY2hlY2tib3hlcykpIChyZW1vdmUtaG9vayAocXVvdGUgb3JnLWJsb2NrZXItaG9v aykgKHF1b3RlIG9yZy1ibG9jay10b2RvLWZyb20tY2hlY2tib3hlcykpKSAob3JnLXNldC1sb2Nh bCAocXVvdGUgY29tbWVudC1zdGFydCkgIiMiKSAob3JnLXNldC1sb2NhbCAocXVvdGUgY29tbWVu dC1wYWRkaW5nKSAiICIpIChvcmctc2V0LWxvY2FsIChxdW90ZSBhbGlnbi1tb2RlLXJ1bGVzLWxp c3QpIChxdW90ZSAoKG9yZy1pbi1idWZmZXItc2V0dGluZ3MgKHJlZ2V4cCAuICJeI1xcK1tBLVpf XSs6XFwoXFxzLSpcXClcXFMtKyIpIChtb2RlcyBxdW90ZSAob3JnLW1vZGUpKSkpKSkgKG9yZy1z ZXQtbG9jYWwgKHF1b3RlIGltZW51LWNyZWF0ZS1pbmRleC1mdW5jdGlvbikgKHF1b3RlIG9yZy1p bWVudS1nZXQtdHJlZSkpIChpZiAob3IgKGZlYXR1cmVwIChxdW90ZSB4ZW1hY3MpKSAobm90IChi b3VuZHAgKHF1b3RlIG91dGxpbmUtaXNlYXJjaC1vcGVuLWludmlzaWJsZS1mdW5jdGlvbikpKSkg KG9yZy1hZGQtaG9vayAocXVvdGUgaXNlYXJjaC1tb2RlLWVuZC1ob29rKSAocXVvdGUgb3JnLWlz ZWFyY2gtZW5kKSAocXVvdGUgYXBwZW5kKSAocXVvdGUgbG9jYWwpKSAob3JnLXNldC1sb2NhbCAo cXVvdGUgb3V0bGluZS1pc2VhcmNoLW9wZW4taW52aXNpYmxlLWZ1bmN0aW9uKSAobGFtYmRhICgm cmVzdCBpZ25vcmUpIChvcmctc2hvdy1jb250ZXh0IChxdW90ZSBpc2VhcmNoKSkpKSkgKGFuZCBv cmctc3RhcnR1cC13aXRoLWJlYW1lci1tb2RlIChvcmctYmVhbWVyLW1vZGUgMSkpIChzZXQgKG1h a2UtbG9jYWwtdmFyaWFibGUgKHF1b3RlIHBjb21wbGV0ZS1jb21tYW5kLWNvbXBsZXRpb24tZnVu Y3Rpb24pKSAocXVvdGUgb3JnLXBjb21wbGV0ZS1pbml0aWFsKSkgKHNldCAobWFrZS1sb2NhbC12 YXJpYWJsZSAocXVvdGUgcGNvbXBsZXRlLWNvbW1hbmQtbmFtZS1mdW5jdGlvbikpIChxdW90ZSBv cmctY29tbWFuZC1hdC1wb2ludCkpIChzZXQgKG1ha2UtbG9jYWwtdmFyaWFibGUgKHF1b3RlIHBj b21wbGV0ZS1kZWZhdWx0LWNvbXBsZXRpb24tZnVuY3Rpb24pKSAocXVvdGUgaWdub3JlKSkgKHNl dCAobWFrZS1sb2NhbC12YXJpYWJsZSAocXVvdGUgcGNvbXBsZXRlLXBhcnNlLWFyZ3VtZW50cy1m dW5jdGlvbikpIChxdW90ZSBvcmctcGFyc2UtYXJndW1lbnRzKSkgKHNldCAobWFrZS1sb2NhbC12 YXJpYWJsZSAocXVvdGUgcGNvbXBsZXRlLXRlcm1pbmF0aW9uLXN0cmluZykpICIiKSAuLi4pKQog IChkZWxheS1tb2RlLWhvb2tzIChvdXRsaW5lLW1vZGUpIChzZXRxIG1ham9yLW1vZGUgKHF1b3Rl IG9yZy1tb2RlKSkgKHNldHEgbW9kZS1uYW1lICJPcmciKSAocHJvZ24gKGlmIChnZXQgKHF1b3Rl IG91dGxpbmUtbW9kZSkgKHF1b3RlIG1vZGUtY2xhc3MpKSAocHV0IChxdW90ZSBvcmctbW9kZSkg KHF1b3RlIG1vZGUtY2xhc3MpIChnZXQgKHF1b3RlIG91dGxpbmUtbW9kZSkgKHF1b3RlIG1vZGUt Y2xhc3MpKSkpICh1bmxlc3MgKGtleW1hcC1wYXJlbnQgb3JnLW1vZGUtbWFwKSAoc2V0LWtleW1h cC1wYXJlbnQgb3JnLW1vZGUtbWFwIChjdXJyZW50LWxvY2FsLW1hcCkpKSAobGV0ICgocGFyZW50 IChjaGFyLXRhYmxlLXBhcmVudCBvcmctbW9kZS1zeW50YXgtdGFibGUpKSkgKHVubGVzcyAoYW5k IHBhcmVudCAobm90IChlcSBwYXJlbnQgKHN0YW5kYXJkLXN5bnRheC10YWJsZSkpKSkgKHNldC1j aGFyLXRhYmxlLXBhcmVudCBvcmctbW9kZS1zeW50YXgtdGFibGUgKHN5bnRheC10YWJsZSkpKSkg KHVubGVzcyAob3IgKGFiYnJldi10YWJsZS1nZXQgb3JnLW1vZGUtYWJicmV2LXRhYmxlIDpwYXJl bnRzKSAoZXEgb3JnLW1vZGUtYWJicmV2LXRhYmxlIGxvY2FsLWFiYnJldi10YWJsZSkpIChhYmJy ZXYtdGFibGUtcHV0IG9yZy1tb2RlLWFiYnJldi10YWJsZSA6cGFyZW50cyAobGlzdCBsb2NhbC1h YmJyZXYtdGFibGUpKSkpICh1c2UtbG9jYWwtbWFwIG9yZy1tb2RlLW1hcCkgKHNldC1zeW50YXgt dGFibGUgb3JnLW1vZGUtc3ludGF4LXRhYmxlKSAoc2V0cSBsb2NhbC1hYmJyZXYtdGFibGUgb3Jn LW1vZGUtYWJicmV2LXRhYmxlKSAoaWYgKGZlYXR1cmVwIChxdW90ZSB4ZW1hY3MpKSAod2hlbiAo Ym91bmRwIChxdW90ZSBvdXRsaW5lLW1vZGUtbWVudS1oZWFkaW5nKSkgKGVhc3ktbWVudS1yZW1v dmUgb3V0bGluZS1tb2RlLW1lbnUtaGVhZGluZykgKGVhc3ktbWVudS1yZW1vdmUgb3V0bGluZS1t b2RlLW1lbnUtc2hvdykgKGVhc3ktbWVudS1yZW1vdmUgb3V0bGluZS1tb2RlLW1lbnUtaGlkZSkp IChkZWZpbmUta2V5IG9yZy1tb2RlLW1hcCBbbWVudS1iYXIgaGVhZGluZ3NdIChxdW90ZSB1bmRl ZmluZWQpKSAoZGVmaW5lLWtleSBvcmctbW9kZS1tYXAgW21lbnUtYmFyIGhpZGVdIChxdW90ZSB1 bmRlZmluZWQpKSAoZGVmaW5lLWtleSBvcmctbW9kZS1tYXAgW21lbnUtYmFyIHNob3ddIChxdW90 ZSB1bmRlZmluZWQpKSkgKG9yZy1sb2FkLW1vZHVsZXMtbWF5YmUpIChlYXN5LW1lbnUtYWRkIG9y Zy1vcmctbWVudSkgKGVhc3ktbWVudS1hZGQgb3JnLXRibC1tZW51KSAob3JnLWluc3RhbGwtYWdl bmRhLWZpbGVzLW1lbnUpIChpZiBvcmctZGVzY3JpcHRpdmUtbGlua3MgKGFkZC10by1pbnZpc2li aWxpdHktc3BlYyAocXVvdGUgKG9yZy1saW5rKSkpKSAoYWRkLXRvLWludmlzaWJpbGl0eS1zcGVj IChxdW90ZSAob3JnLWN3aWR0aCkpKSAoYWRkLXRvLWludmlzaWJpbGl0eS1zcGVjIChxdW90ZSAo b3JnLWhpZGUtYmxvY2sgLiB0KSkpICh3aGVuIChmZWF0dXJlcCAocXVvdGUgeGVtYWNzKSkgKG9y Zy1zZXQtbG9jYWwgKHF1b3RlIGxpbmUtbW92ZS1pZ25vcmUtaW52aXNpYmxlKSB0KSkgKG9yZy1z ZXQtbG9jYWwgKHF1b3RlIG91dGxpbmUtcmVnZXhwKSBvcmctb3V0bGluZS1yZWdleHApIChvcmct c2V0LWxvY2FsIChxdW90ZSBvdXRsaW5lLWxldmVsKSAocXVvdGUgb3JnLW91dGxpbmUtbGV2ZWwp KSAoc2V0cSBiaWRpLXBhcmFncmFwaC1kaXJlY3Rpb24gKHF1b3RlIGxlZnQtdG8tcmlnaHQpKSAo d2hlbiAoYW5kIG9yZy1lbGxpcHNpcyAoZmJvdW5kcCAocXVvdGUgc2V0LWRpc3BsYXktdGFibGUt c2xvdCkpIChib3VuZHAgKHF1b3RlIGJ1ZmZlci1kaXNwbGF5LXRhYmxlKSkgKGZib3VuZHAgKHF1 b3RlIG1ha2UtZ2x5cGgtY29kZSkpKSAodW5sZXNzIG9yZy1kaXNwbGF5LXRhYmxlIChzZXRxIG9y Zy1kaXNwbGF5LXRhYmxlIChtYWtlLWRpc3BsYXktdGFibGUpKSkgKHNldC1kaXNwbGF5LXRhYmxl LXNsb3Qgb3JnLWRpc3BsYXktdGFibGUgNCAodmNvbmNhdCAobWFwY2FyIChsYW1iZGEgKGMpICht YWtlLWdseXBoLWNvZGUgYyAoYW5kIC4uLiBvcmctZWxsaXBzaXMpKSkgKGlmIChzdHJpbmdwIG9y Zy1lbGxpcHNpcykgb3JnLWVsbGlwc2lzICIuLi4iKSkpKSAoc2V0cSBidWZmZXItZGlzcGxheS10 YWJsZSBvcmctZGlzcGxheS10YWJsZSkpIChvcmctc2V0LXJlZ2V4cHMtYW5kLW9wdGlvbnMpICh3 aGVuIChhbmQgb3JnLXRhZy1mYWNlcyAobm90IG9yZy10YWdzLXNwZWNpYWwtZmFjZXMtcmUpKSAo b3JnLXNldC10YWctZmFjZXMgKHF1b3RlIG9yZy10YWctZmFjZXMpIG9yZy10YWctZmFjZXMpKSAo b3JnLXNldC1sb2NhbCAocXVvdGUgY2FsYy1lbWJlZGRlZC1vcGVuLW1vZGUpICIjICIpIChtb2Rp Znktc3ludGF4LWVudHJ5IDY0ICJ3IikgKGlmIG9yZy1zdGFydHVwLXRydW5jYXRlZCAoc2V0cSB0 cnVuY2F0ZS1saW5lcyB0KSkgKG9yZy1zZXQtbG9jYWwgKHF1b3RlIGZvbnQtbG9jay11bmZvbnRp ZnktcmVnaW9uLWZ1bmN0aW9uKSAocXVvdGUgb3JnLXVuZm9udGlmeS1yZWdpb24pKSAob3JnLXNl dC1sb2NhbCAocXVvdGUgb3JnLXRhYmxlLW1heS1uZWVkLXVwZGF0ZSkgdCkgKG9yZy1hZGQtaG9v ayAocXVvdGUgYmVmb3JlLWNoYW5nZS1mdW5jdGlvbnMpIChxdW90ZSBvcmctYmVmb3JlLWNoYW5n ZS1mdW5jdGlvbikgbmlsIChxdW90ZSBsb2NhbCkpIChvcmctYWRkLWhvb2sgKHF1b3RlIGtpbGwt YnVmZmVyLWhvb2spIChxdW90ZSBvcmctY2hlY2stcnVubmluZy1jbG9jaykgbmlsIChxdW90ZSBs b2NhbCkpIChvcmctc2V0LWF1dG9maWxsLXJlZ2V4cHMpIChzZXRxIGluZGVudC1saW5lLWZ1bmN0 aW9uIChxdW90ZSBvcmctaW5kZW50LWxpbmUtZnVuY3Rpb24pKSAob3JnLXVwZGF0ZS1yYWRpby10 YXJnZXQtcmVnZXhwKSAob3JnLXNldC1sb2NhbCAocXVvdGUgYmVnaW5uaW5nLW9mLWRlZnVuLWZ1 bmN0aW9uKSAocXVvdGUgb3JnLWJlZ2lubmluZy1vZi1kZWZ1bikpIChvcmctc2V0LWxvY2FsIChx dW90ZSBlbmQtb2YtZGVmdW4tZnVuY3Rpb24pIChxdW90ZSBvcmctZW5kLW9mLWRlZnVuKSkgKG9y Zy1zZXQtbG9jYWwgKHF1b3RlIG5leHQtZXJyb3ItZnVuY3Rpb24pIChxdW90ZSBvcmctb2NjdXIt bmV4dC1tYXRjaCkpIChpZiBvcmctZW5mb3JjZS10b2RvLWRlcGVuZGVuY2llcyAoYWRkLWhvb2sg KHF1b3RlIG9yZy1ibG9ja2VyLWhvb2spIChxdW90ZSBvcmctYmxvY2stdG9kby1mcm9tLWNoaWxk cmVuLW9yLXNpYmxpbmdzLW9yLXBhcmVudCkpIChyZW1vdmUtaG9vayAocXVvdGUgb3JnLWJsb2Nr ZXItaG9vaykgKHF1b3RlIG9yZy1ibG9jay10b2RvLWZyb20tY2hpbGRyZW4tb3Itc2libGluZ3Mt b3ItcGFyZW50KSkpIChpZiBvcmctZW5mb3JjZS10b2RvLWNoZWNrYm94LWRlcGVuZGVuY2llcyAo YWRkLWhvb2sgKHF1b3RlIG9yZy1ibG9ja2VyLWhvb2spIChxdW90ZSBvcmctYmxvY2stdG9kby1m cm9tLWNoZWNrYm94ZXMpKSAocmVtb3ZlLWhvb2sgKHF1b3RlIG9yZy1ibG9ja2VyLWhvb2spIChx dW90ZSBvcmctYmxvY2stdG9kby1mcm9tLWNoZWNrYm94ZXMpKSkgKG9yZy1zZXQtbG9jYWwgKHF1 b3RlIGNvbW1lbnQtc3RhcnQpICIjIikgKG9yZy1zZXQtbG9jYWwgKHF1b3RlIGNvbW1lbnQtcGFk ZGluZykgIiAiKSAob3JnLXNldC1sb2NhbCAocXVvdGUgYWxpZ24tbW9kZS1ydWxlcy1saXN0KSAo cXVvdGUgKChvcmctaW4tYnVmZmVyLXNldHRpbmdzIChyZWdleHAgLiAiXiNcXCtbQS1aX10rOlxc KFxccy0qXFwpXFxTLSsiKSAobW9kZXMgcXVvdGUgKG9yZy1tb2RlKSkpKSkpIChvcmctc2V0LWxv Y2FsIChxdW90ZSBpbWVudS1jcmVhdGUtaW5kZXgtZnVuY3Rpb24pIChxdW90ZSBvcmctaW1lbnUt Z2V0LXRyZWUpKSAoaWYgKG9yIChmZWF0dXJlcCAocXVvdGUgeGVtYWNzKSkgKG5vdCAoYm91bmRw IChxdW90ZSBvdXRsaW5lLWlzZWFyY2gtb3Blbi1pbnZpc2libGUtZnVuY3Rpb24pKSkpIChvcmct YWRkLWhvb2sgKHF1b3RlIGlzZWFyY2gtbW9kZS1lbmQtaG9vaykgKHF1b3RlIG9yZy1pc2VhcmNo LWVuZCkgKHF1b3RlIGFwcGVuZCkgKHF1b3RlIGxvY2FsKSkgKG9yZy1zZXQtbG9jYWwgKHF1b3Rl IG91dGxpbmUtaXNlYXJjaC1vcGVuLWludmlzaWJsZS1mdW5jdGlvbikgKGxhbWJkYSAoJnJlc3Qg aWdub3JlKSAob3JnLXNob3ctY29udGV4dCAocXVvdGUgaXNlYXJjaCkpKSkpIChhbmQgb3JnLXN0 YXJ0dXAtd2l0aC1iZWFtZXItbW9kZSAob3JnLWJlYW1lci1tb2RlIDEpKSAoc2V0IChtYWtlLWxv Y2FsLXZhcmlhYmxlIChxdW90ZSBwY29tcGxldGUtY29tbWFuZC1jb21wbGV0aW9uLWZ1bmN0aW9u KSkgKHF1b3RlIG9yZy1wY29tcGxldGUtaW5pdGlhbCkpIChzZXQgKG1ha2UtbG9jYWwtdmFyaWFi bGUgKHF1b3RlIHBjb21wbGV0ZS1jb21tYW5kLW5hbWUtZnVuY3Rpb24pKSAocXVvdGUgb3JnLWNv bW1hbmQtYXQtcG9pbnQpKSAoc2V0IChtYWtlLWxvY2FsLXZhcmlhYmxlIChxdW90ZSBwY29tcGxl dGUtZGVmYXVsdC1jb21wbGV0aW9uLWZ1bmN0aW9uKSkgKHF1b3RlIGlnbm9yZSkpIChzZXQgKG1h a2UtbG9jYWwtdmFyaWFibGUgKHF1b3RlIHBjb21wbGV0ZS1wYXJzZS1hcmd1bWVudHMtZnVuY3Rp b24pKSAocXVvdGUgb3JnLXBhcnNlLWFyZ3VtZW50cykpIChzZXQgKG1ha2UtbG9jYWwtdmFyaWFi bGUgKHF1b3RlIHBjb21wbGV0ZS10ZXJtaW5hdGlvbi1zdHJpbmcpKSAiIikgKHdoZW4gKD49IGVt YWNzLW1ham9yLXZlcnNpb24gMjMpIChzZXQgKG1ha2UtbG9jYWwtdmFyaWFibGUgKHF1b3RlIGJ1 ZmZlci1mYWNlLW1vZGUtZmFjZSkpIChxdW90ZSBvcmctZGVmYXVsdCkpKSAuLi4pCiAgb3JnLW1v ZGUoKQogIHNldC1hdXRvLW1vZGUtMChvcmctbW9kZSBuaWwpCiAgc2V0LWF1dG8tbW9kZSgpCiAg bm9ybWFsLW1vZGUodCkKICBhZnRlci1maW5kLWZpbGUobmlsIHQpCiAgZmluZC1maWxlLW5vc2Vs ZWN0LTEoIzxidWZmZXIgd29yay5vcmc+ICJ+L0Ryb3Bib3gvQnJhaW4vd29yay5vcmciIG5pbCBu aWwgIn4vRHJvcGJveC9CcmFpbi93b3JrLm9yZyIgKDQxMTM4MzU0IDIzNDg4MTAyNikpCiAgZmlu ZC1maWxlLW5vc2VsZWN0KCJ+L0Ryb3Bib3gvQnJhaW4vd29yay5vcmciIG5pbCBuaWwgdCkKICBm aW5kLWZpbGUoIn4vRHJvcGJveC9CcmFpbi93b3JrLm9yZyIgdCkKICBjYWxsLWludGVyYWN0aXZl bHkoZmluZC1maWxlIG5pbCBuaWwpCg== --047d7b6d98c6bfd0a204d46dfcfb--