Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 6EC6C200BC3 for ; Fri, 18 Nov 2016 13:01:20 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 6D539160B04; Fri, 18 Nov 2016 12:01:20 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 3BCC6160AFE for ; Fri, 18 Nov 2016 13:01:18 +0100 (CET) Received: (qmail 4136 invoked by uid 500); 18 Nov 2016 12:01:16 -0000 Mailing-List: contact user-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@hbase.apache.org Delivered-To: mailing list user@hbase.apache.org Received: (qmail 4120 invoked by uid 99); 18 Nov 2016 12:01:16 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 Nov 2016 12:01:16 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id C04D3C0510 for ; Fri, 18 Nov 2016 12:01:15 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.379 X-Spam-Level: ** X-Spam-Status: No, score=2.379 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id XTMNnV9BnI4u for ; Fri, 18 Nov 2016 12:01:13 +0000 (UTC) Received: from mail-wm0-f46.google.com (mail-wm0-f46.google.com [74.125.82.46]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 6CEB05F3F4 for ; Fri, 18 Nov 2016 12:01:12 +0000 (UTC) Received: by mail-wm0-f46.google.com with SMTP id g23so33581304wme.1 for ; Fri, 18 Nov 2016 04:01:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to; bh=W1C+GA9d68U4LFCWXUTyH//kTY8thsFevLZq0cPJnsY=; b=KyKIRXGYwKLGcebFN3+HsFzg409Hq7c1XuhrUkm5TBPhHor6bQvxCOhxS/nFbMFAfe puBpv4CuWlI62viyueBV0K1M1NIg4eBXkbSEe3+m8yzIcBEd7ZvH5Poc085lEoGQcvJ5 bvnJg9TtlrPGAftvj+vv9RWRK7/6meyf0BMUVl0EpXQFVUDyviY5zNvz7cjt2r3YtVfz IF8hr/VEfOfrnVk6hOGZaT4WoIjV1NVPm+3zgvtRY8Zv7AUHbJLlJc+BBvtkv5Z3/uK1 +UqqXp70/wb2vHvBMm8WDviMZyn+kR/OnBD9K0GgfwFnncSBE6sAyS8rtDyUMq2yEeFe mxUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=W1C+GA9d68U4LFCWXUTyH//kTY8thsFevLZq0cPJnsY=; b=OTVhihRRMBaOptqGWPIbhgHadvkGWh2LTqqs0PFlZG307hSrhOwwKFA2jEObcaO5rO 1Y+kvSWRz+28EuGLggRSbxdb4m7JT/vVeRucf/lsq+LSZNv4rFh5iNN4yGsbYrt+HYDu tiBBdBpO9qEGGqE2r5tI2jGLPHbPw7yBaj4Zo85uhPp0d9Ixl7LdLyNZb8XRgA+sz5gS a/63si+q781xpNKTy0fWM48m5joQ0owIDQku1mX97IiVBoOUTw7jSvaHH6nXnEt464Np gHilyZLHiW/DoasjjgggvJ9TpMlr7EQPXcFPlj9knwTqg9vnf+DTnRBys/0ftKxsOtw3 0KDA== X-Gm-Message-State: ABUngvfgoG1AmvghjnqZ4qk1QCyOHfv0G/PMRxjljyddi9mwa0YJ33QH2/Xu7zTbHTOVvK8hGI2MyrnYL8iLZw== X-Received: by 10.25.5.7 with SMTP id 7mr1647619lff.125.1479470471726; Fri, 18 Nov 2016 04:01:11 -0800 (PST) MIME-Version: 1.0 From: =?UTF-8?Q?Abel_Fern=C3=A1ndez?= Date: Fri, 18 Nov 2016 12:01:00 +0000 Message-ID: Subject: hbase/spark - Delegation Token can be issued only with kerberos or web authentication To: user@hbase.apache.org Content-Type: multipart/mixed; boundary=001a113ec114ec9b790541920fef archived-at: Fri, 18 Nov 2016 12:01:20 -0000 --001a113ec114ec9b790541920fef Content-Type: multipart/alternative; boundary=001a113ec114ec9b720541920fed --001a113ec114ec9b720541920fed Content-Type: text/plain; charset=UTF-8 Hello, We are having problems with the delegation of the token in a secure cluster: Delegation Token can be issued only with kerberos or web authentication We have a spark process which is generating the hfiles to be loaded into hbase. To generate these hfiles, (we are using a back-ported version of the latest hbase/spark code), we are using this method HBaseRDDFunctions.hbaseBulkLoadThinRows. I think the problem is in the below piece of code. This function is executed in every partition of the rdd, when the executors are trying to execute the code, the executors do not have a valid kerberos credential and cannot execute anything. private def hbaseForeachPartition[T](configBroadcast: Broadcast[SerializableWritable[Configuration]], it: Iterator[T], f: (Iterator[T], Connection) => Unit) = { val config = getConf(configBroadcast) applyCreds // specify that this is a proxy user val smartConn = HBaseConnectionCache.getConnection(config) f(it, smartConn.connection) smartConn.close() } I have attached the spark-submit and the complete error log trace. Has anyone faced this problem before? Thanks in advance. Regards, Abel. -- Un saludo - Best Regards. Abel --001a113ec114ec9b720541920fed Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hello,

We are having problem= s with the delegation of the token in a secure cluster: Delegation Token ca= n be issued only with kerberos or web authentication

We have a spark process which is generating the hfiles to be loaded into= hbase. To generate these hfiles, (we are using a back-ported version of th= e latest hbase/spark code), we are using this method HBaseRDDFunctions.hbas= eBulkLoadThinRows.=C2=A0

I think the problem is in= the below piece of code. This function is executed in every partition of t= he rdd, when the executors are trying to execute the code, the executors do= not have a valid kerberos credential and cannot execute anything.

private def hbaseForeachPartition[T](configBroadcast:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Broad= cast[SerializableWritable[Configuration]],
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 it: Iterator[T],
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 f: (Iter= ator[T], Connection) =3D> Unit) =3D {

=C2=A0 = =C2=A0 val config =3D getConf(configBroadcast)

=C2= =A0 =C2=A0 applyCreds
=C2=A0 =C2=A0 // specify that this is a pro= xy user
=C2=A0 =C2=A0 val smartConn =3D HBaseConnectionCache.getC= onnection(config)
=C2=A0 =C2=A0 f(it, smartConn.connection)
=
=C2=A0 =C2=A0 smartConn.close()
=C2=A0 }

I have attached the spark-submit and the complete error log trace. Ha= s anyone faced this problem before?

Thanks in adva= nce.

Regards,
Abel.
--
Un saludo - Best Regards.
Abel
--001a113ec114ec9b720541920fed-- --001a113ec114ec9b790541920fef Content-Type: text/plain; charset=US-ASCII; name="spark-submit.txt" Content-Disposition: attachment; filename="spark-submit.txt" Content-Transfer-Encoding: base64 Content-ID: <158774f437e57801c8a1> X-Attachment-Id: 158774f437e57801c8a1 U2NyaXB0IGZvciBzdWJtaXR0aW5nIHRoZSBzcGFyayBhY3Rpb24KIyEvYmluL2Jhc2gKClNQQVJL X0NPTkZfRElSPWNvbmYtaGJhc2Ugc3Bhcmstc3VibWl0IC0tbWFzdGVyIHlhcm4tY2x1c3RlciBc CiAgLS1leGVjdXRvci1tZW1vcnkgNkcgXAogIC0tbnVtLWV4ZWN1dG9ycyAxMCBcCiAgLS1xdWV1 ZSBjYXJkcyBcCiAgLS1leGVjdXRvci1jb3JlcyA0IFwKICAtLWRyaXZlci1qYXZhLW9wdGlvbnMg Ii1EbG9nNGouY29uZmlndXJhdGlvbj1maWxlOmxvZzRqLnByb3BlcnRpZXMiIFwKICAtLWRyaXZl ci1jbGFzcy1wYXRoICIkMiIgXAogIC0tamFycyBmaWxlOi9vcHQvb3JhbmdlL2xpYi9yb2Nrc2Ri am5pLTQuNS4xLmphciBcCiAgLS1jb25mICJzcGFyay5kcml2ZXIuZXh0cmFDbGFzc1BhdGg9L3Zh ci9jbG91ZGVyYS9wYXJjZWxzL0NESC9saWIvaGJhc2UvbGliL2h0cmFjZS1jb3JlLTMuMi4wLWlu Y3ViYXRpbmcuamFyOi92YXIvY2xvdWRlcmEvcGFyY2Vscy9DREgvamFycy9oYmFzZS1zZXJ2ZXIt MS4wLjAtY2RoNS41LjQuamFyOi92YXIvY2xvdWRlcmEvcGFyY2Vscy9DREgvamFycy9oYmFzZS1j b21tb24tMS4wLjAtY2RoNS41LjQuamFyOi92YXIvY2xvdWRlcmEvcGFyY2Vscy9DREgvbGliL2hi YXNlL2xpYi9oYmFzZS1jbGllbnQtMS4wLjAtY2RoNS41LjQuamFyOi92YXIvY2xvdWRlcmEvcGFy Y2Vscy9DREgvbGliL2hiYXNlL2xpYi9oYmFzZS1wcm90b2NvbC0xLjAuMC1jZGg1LjUuNC5qYXI6 L29wdC9vcmFuZ2UvbGliL3JvY2tzZGJqbmktNC41LjEuamFyOi92YXIvY2xvdWRlcmEvcGFyY2Vs cy9DTEFCU19QSE9FTklYLTQuNS4yLTEuY2xhYnNfcGhvZW5peDEuMi4wLnAwLjc3NC9saWIvcGhv ZW5peC9saWIvcGhvZW5peC1jb3JlLTEuMi4wLmphcjovdmFyL2Nsb3VkZXJhL3BhcmNlbHMvQ0RI L2phcnMvaGFkb29wLW1hcHJlZHVjZS1jbGllbnQtY29yZS0yLjYuMC1jZGg1LjUuNC5qYXIiIFwK ICAtLWNvbmYgInNwYXJrLmV4ZWN1dG9yLmV4dHJhQ2xhc3NQYXRoPS92YXIvY2xvdWRlcmEvcGFy Y2Vscy9DREgvbGliL2hiYXNlL2xpYi9odHJhY2UtY29yZS0zLjIuMC1pbmN1YmF0aW5nLmphcjov dmFyL2Nsb3VkZXJhL3BhcmNlbHMvQ0RIL2phcnMvaGJhc2Utc2VydmVyLTEuMC4wLWNkaDUuNS40 LmphcjovdmFyL2Nsb3VkZXJhL3BhcmNlbHMvQ0RIL2phcnMvaGJhc2UtY29tbW9uLTEuMC4wLWNk aDUuNS40LmphcjovdmFyL2Nsb3VkZXJhL3BhcmNlbHMvQ0RIL2xpYi9oYmFzZS9saWIvaGJhc2Ut Y2xpZW50LTEuMC4wLWNkaDUuNS40LmphcjovdmFyL2Nsb3VkZXJhL3BhcmNlbHMvQ0RIL2xpYi9o YmFzZS9saWIvaGJhc2UtcHJvdG9jb2wtMS4wLjAtY2RoNS41LjQuamFyOi9vcHQvb3JhbmdlL2xp Yi9yb2Nrc2Riam5pLTQuNS4xLmphcjovdmFyL2Nsb3VkZXJhL3BhcmNlbHMvQ0xBQlNfUEhPRU5J WC00LjUuMi0xLmNsYWJzX3Bob2VuaXgxLjIuMC5wMC43NzQvbGliL3Bob2VuaXgvbGliL3Bob2Vu aXgtY29yZS0xLjIuMC5qYXI6L3Zhci9jbG91ZGVyYS9wYXJjZWxzL0NESC9qYXJzL2hhZG9vcC1t YXByZWR1Y2UtY2xpZW50LWNvcmUtMi42LjAtY2RoNS41LjQuamFyIlwKICAtLXByaW5jaXBhbCBo YmFzZUBDT01QQU5ZLkNPUlAgXAogIC0ta2V5dGFiIC9vcHQvY29tcGFueS9jb25mL2hiYXNlLmtl eXRhYiBcCiAgLS1maWxlcyAib3dsLnByb3BlcnRpZXMsY29uZi1oYmFzZS9sb2c0ai5wcm9wZXJ0 aWVzLGNvbmYtaGJhc2UvaGJhc2Utc2l0ZS54bWwsY29uZi1oYmFzZS9jb3JlLXNpdGUueG1sLCQy IiBcCiAgLS1jbGFzcyAkMSBcCiAgY2FyZHMtYmF0Y2gtJDMtamFyLXdpdGgtZGVwZW5kZW5jaWVz LmphciAkMg== --001a113ec114ec9b790541920fef Content-Type: text/plain; charset=US-ASCII; name="complete-error-log.txt" Content-Disposition: attachment; filename="complete-error-log.txt" Content-Transfer-Encoding: base64 Content-ID: <158774f6583528ac46d2> X-Attachment-Id: 158774f6583528ac46d2 Q29tcGxldGUgbG9nCjE2LzExLzE4IDEwOjQyOjM0IERFQlVHIFtEcml2ZXJdIENsb3N1cmVDbGVh bmVyOiArKysgQ2xlYW5pbmcgY2xvc3VyZSA8ZnVuY3Rpb24xPiAob3JnLmFwYWNoZS5oYWRvb3Au aGJhc2Uuc3BhcmsuSEJhc2VDb250ZXh0JCRhbm9uZnVuJGJ1bGtMb2FkVGhpblJvd3MkMSkgKysr CjE2LzExLzE4IDEwOjQyOjM0IERFQlVHIFtEcml2ZXJdIENsb3N1cmVDbGVhbmVyOiAgKyBkZWNs YXJlZCBmaWVsZHM6IDIKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNs ZWFuZXI6ICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBsb25nIG9yZy5hcGFjaGUuaGFkb29wLmhi YXNlLnNwYXJrLkhCYXNlQ29udGV4dCQkYW5vbmZ1biRidWxrTG9hZFRoaW5Sb3dzJDEuc2VyaWFs VmVyc2lvblVJRAoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBbRHJpdmVyXSBDbG9zdXJlQ2xlYW5l cjogICAgICBwcml2YXRlIGZpbmFsIHNjYWxhLkZ1bmN0aW9uMSBvcmcuYXBhY2hlLmhhZG9vcC5o YmFzZS5zcGFyay5IQmFzZUNvbnRleHQkJGFub25mdW4kYnVsa0xvYWRUaGluUm93cyQxLm1hcEZ1 bmN0aW9uJDEKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6 ICArIGRlY2xhcmVkIG1ldGhvZHM6IDIKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0g Q2xvc3VyZUNsZWFuZXI6ICAgICAgcHVibGljIGZpbmFsIGphdmEubGFuZy5PYmplY3Qgb3JnLmFw YWNoZS5oYWRvb3AuaGJhc2Uuc3BhcmsuSEJhc2VDb250ZXh0JCRhbm9uZnVuJGJ1bGtMb2FkVGhp blJvd3MkMS5hcHBseShqYXZhLmxhbmcuT2JqZWN0KQoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBb RHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjogICAgICBwdWJsaWMgZmluYWwgc2NhbGEuVHVwbGUyIG9y Zy5hcGFjaGUuaGFkb29wLmhiYXNlLnNwYXJrLkhCYXNlQ29udGV4dCQkYW5vbmZ1biRidWxrTG9h ZFRoaW5Sb3dzJDEuYXBwbHkoamF2YS5sYW5nLk9iamVjdCkKMTYvMTEvMTggMTA6NDI6MzQgREVC VUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6ICArIGlubmVyIGNsYXNzZXM6IDAKMTYvMTEvMTgg MTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6ICArIG91dGVyIGNsYXNzZXM6 IDAKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6ICArIG91 dGVyIG9iamVjdHM6IDAKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNs ZWFuZXI6ICArIHBvcHVsYXRpbmcgYWNjZXNzZWQgZmllbGRzIGJlY2F1c2UgdGhpcyBpcyB0aGUg c3RhcnRpbmcgY2xvc3VyZQoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBbRHJpdmVyXSBDbG9zdXJl Q2xlYW5lcjogICsgZmllbGRzIGFjY2Vzc2VkIGJ5IHN0YXJ0aW5nIGNsb3N1cmU6IDAKMTYvMTEv MTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6ICArIHRoZXJlIGFyZSBu byBlbmNsb3Npbmcgb2JqZWN0cyEKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xv c3VyZUNsZWFuZXI6ICArKysgY2xvc3VyZSA8ZnVuY3Rpb24xPiAob3JnLmFwYWNoZS5oYWRvb3Au aGJhc2Uuc3BhcmsuSEJhc2VDb250ZXh0JCRhbm9uZnVuJGJ1bGtMb2FkVGhpblJvd3MkMSkgaXMg bm93IGNsZWFuZWQgKysrCjE2LzExLzE4IDEwOjQyOjM0IERFQlVHIFtEcml2ZXJdIENsb3N1cmVD bGVhbmVyOiArKysgQ2xlYW5pbmcgY2xvc3VyZSA8ZnVuY3Rpb24xPiAob3JnLmFwYWNoZS5oYWRv b3AuaGJhc2Uuc3BhcmsuSEJhc2VDb250ZXh0JCRhbm9uZnVuJGZvcmVhY2hQYXJ0aXRpb24kMSkg KysrCjE2LzExLzE4IDEwOjQyOjM0IERFQlVHIFtEcml2ZXJdIENsb3N1cmVDbGVhbmVyOiAgKyBk ZWNsYXJlZCBmaWVsZHM6IDMKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3Vy ZUNsZWFuZXI6ICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBsb25nIG9yZy5hcGFjaGUuaGFkb29w LmhiYXNlLnNwYXJrLkhCYXNlQ29udGV4dCQkYW5vbmZ1biRmb3JlYWNoUGFydGl0aW9uJDEuc2Vy aWFsVmVyc2lvblVJRAoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBbRHJpdmVyXSBDbG9zdXJlQ2xl YW5lcjogICAgICBwcml2YXRlIGZpbmFsIG9yZy5hcGFjaGUuaGFkb29wLmhiYXNlLnNwYXJrLkhC YXNlQ29udGV4dCBvcmcuYXBhY2hlLmhhZG9vcC5oYmFzZS5zcGFyay5IQmFzZUNvbnRleHQkJGFu b25mdW4kZm9yZWFjaFBhcnRpdGlvbiQxLiRvdXRlcgoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBb RHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjogICAgICBwcml2YXRlIGZpbmFsIHNjYWxhLkZ1bmN0aW9u MiBvcmcuYXBhY2hlLmhhZG9vcC5oYmFzZS5zcGFyay5IQmFzZUNvbnRleHQkJGFub25mdW4kZm9y ZWFjaFBhcnRpdGlvbiQxLmYkMQoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBbRHJpdmVyXSBDbG9z dXJlQ2xlYW5lcjogICsgZGVjbGFyZWQgbWV0aG9kczogMgoxNi8xMS8xOCAxMDo0MjozNCBERUJV RyBbRHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjogICAgICBwdWJsaWMgZmluYWwgamF2YS5sYW5nLk9i amVjdCBvcmcuYXBhY2hlLmhhZG9vcC5oYmFzZS5zcGFyay5IQmFzZUNvbnRleHQkJGFub25mdW4k Zm9yZWFjaFBhcnRpdGlvbiQxLmFwcGx5KGphdmEubGFuZy5PYmplY3QpCjE2LzExLzE4IDEwOjQy OjM0IERFQlVHIFtEcml2ZXJdIENsb3N1cmVDbGVhbmVyOiAgICAgIHB1YmxpYyBmaW5hbCB2b2lk IG9yZy5hcGFjaGUuaGFkb29wLmhiYXNlLnNwYXJrLkhCYXNlQ29udGV4dCQkYW5vbmZ1biRmb3Jl YWNoUGFydGl0aW9uJDEuYXBwbHkoc2NhbGEuY29sbGVjdGlvbi5JdGVyYXRvcikKMTYvMTEvMTgg MTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6ICArIGlubmVyIGNsYXNzZXM6 IDAKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6ICArIG91 dGVyIGNsYXNzZXM6IDEKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNs ZWFuZXI6ICAgICAgb3JnLmFwYWNoZS5oYWRvb3AuaGJhc2Uuc3BhcmsuSEJhc2VDb250ZXh0CjE2 LzExLzE4IDEwOjQyOjM0IERFQlVHIFtEcml2ZXJdIENsb3N1cmVDbGVhbmVyOiAgKyBvdXRlciBv YmplY3RzOiAxCjE2LzExLzE4IDEwOjQyOjM0IERFQlVHIFtEcml2ZXJdIENsb3N1cmVDbGVhbmVy OiAgICAgIG9yZy5hcGFjaGUuaGFkb29wLmhiYXNlLnNwYXJrLkhCYXNlQ29udGV4dEA1ZWM1OTRk ZQoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBbRHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjogICsgcG9w dWxhdGluZyBhY2Nlc3NlZCBmaWVsZHMgYmVjYXVzZSB0aGlzIGlzIHRoZSBzdGFydGluZyBjbG9z dXJlCjE2LzExLzE4IDEwOjQyOjM0IERFQlVHIFtEcml2ZXJdIENsb3N1cmVDbGVhbmVyOiAgKyBm aWVsZHMgYWNjZXNzZWQgYnkgc3RhcnRpbmcgY2xvc3VyZTogMQoxNi8xMS8xOCAxMDo0MjozNCBE RUJVRyBbRHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjogICAgICAoY2xhc3Mgb3JnLmFwYWNoZS5oYWRv b3AuaGJhc2Uuc3BhcmsuSEJhc2VDb250ZXh0LFNldCh0bXBIZGZzQ29uZmdGaWxlLCB0bXBIZGZz Q29uZmlndXJhdGlvbiwgYXBwbGllZENyZWRlbnRpYWxzLCBicm9hZGNhc3RlZENvbmYsIGNyZWRl bnRpYWxzQ29uZiwgY3JlZGVudGlhbHMpKQoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBbRHJpdmVy XSBDbG9zdXJlQ2xlYW5lcjogICsgb3V0ZXJtb3N0IG9iamVjdCBpcyBub3QgYSBjbG9zdXJlLCBz byBkbyBub3QgY2xvbmUgaXQ6IChjbGFzcyBvcmcuYXBhY2hlLmhhZG9vcC5oYmFzZS5zcGFyay5I QmFzZUNvbnRleHQsb3JnLmFwYWNoZS5oYWRvb3AuaGJhc2Uuc3BhcmsuSEJhc2VDb250ZXh0QDVl YzU5NGRlKQoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBbRHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjog ICsrKyBjbG9zdXJlIDxmdW5jdGlvbjE+IChvcmcuYXBhY2hlLmhhZG9vcC5oYmFzZS5zcGFyay5I QmFzZUNvbnRleHQkJGFub25mdW4kZm9yZWFjaFBhcnRpdGlvbiQxKSBpcyBub3cgY2xlYW5lZCAr KysKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6ICsrKyBD bGVhbmluZyBjbG9zdXJlIDxmdW5jdGlvbjE+IChvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQkJGFu b25mdW4kZm9yZWFjaFBhcnRpdGlvbiQxJCRhbm9uZnVuJGFwcGx5JDI5KSArKysKMTYvMTEvMTgg MTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6ICArIGRlY2xhcmVkIGZpZWxk czogMgoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBbRHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjogICAg ICBwdWJsaWMgc3RhdGljIGZpbmFsIGxvbmcgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkREJCRhbm9u ZnVuJGZvcmVhY2hQYXJ0aXRpb24kMSQkYW5vbmZ1biRhcHBseSQyOS5zZXJpYWxWZXJzaW9uVUlE CjE2LzExLzE4IDEwOjQyOjM0IERFQlVHIFtEcml2ZXJdIENsb3N1cmVDbGVhbmVyOiAgICAgIHBy aXZhdGUgZmluYWwgc2NhbGEuRnVuY3Rpb24xIG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERCQkYW5v bmZ1biRmb3JlYWNoUGFydGl0aW9uJDEkJGFub25mdW4kYXBwbHkkMjkuY2xlYW5GJDEwCjE2LzEx LzE4IDEwOjQyOjM0IERFQlVHIFtEcml2ZXJdIENsb3N1cmVDbGVhbmVyOiAgKyBkZWNsYXJlZCBt ZXRob2RzOiAyCjE2LzExLzE4IDEwOjQyOjM0IERFQlVHIFtEcml2ZXJdIENsb3N1cmVDbGVhbmVy OiAgICAgIHB1YmxpYyBmaW5hbCBqYXZhLmxhbmcuT2JqZWN0IG9yZy5hcGFjaGUuc3BhcmsucmRk LlJERCQkYW5vbmZ1biRmb3JlYWNoUGFydGl0aW9uJDEkJGFub25mdW4kYXBwbHkkMjkuYXBwbHko amF2YS5sYW5nLk9iamVjdCkKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3Vy ZUNsZWFuZXI6ICAgICAgcHVibGljIGZpbmFsIHZvaWQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRE JCRhbm9uZnVuJGZvcmVhY2hQYXJ0aXRpb24kMSQkYW5vbmZ1biRhcHBseSQyOS5hcHBseShzY2Fs YS5jb2xsZWN0aW9uLkl0ZXJhdG9yKQoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBbRHJpdmVyXSBD bG9zdXJlQ2xlYW5lcjogICsgaW5uZXIgY2xhc3NlczogMAoxNi8xMS8xOCAxMDo0MjozNCBERUJV RyBbRHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjogICsgb3V0ZXIgY2xhc3NlczogMAoxNi8xMS8xOCAx MDo0MjozNCBERUJVRyBbRHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjogICsgb3V0ZXIgb2JqZWN0czog MAoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBbRHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjogICsgcG9w dWxhdGluZyBhY2Nlc3NlZCBmaWVsZHMgYmVjYXVzZSB0aGlzIGlzIHRoZSBzdGFydGluZyBjbG9z dXJlCjE2LzExLzE4IDEwOjQyOjM0IERFQlVHIFtEcml2ZXJdIENsb3N1cmVDbGVhbmVyOiAgKyBm aWVsZHMgYWNjZXNzZWQgYnkgc3RhcnRpbmcgY2xvc3VyZTogMAoxNi8xMS8xOCAxMDo0MjozNCBE RUJVRyBbRHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjogICsgdGhlcmUgYXJlIG5vIGVuY2xvc2luZyBv YmplY3RzIQoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBbRHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjog ICsrKyBjbG9zdXJlIDxmdW5jdGlvbjE+IChvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQkJGFub25m dW4kZm9yZWFjaFBhcnRpdGlvbiQxJCRhbm9uZnVuJGFwcGx5JDI5KSBpcyBub3cgY2xlYW5lZCAr KysKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6ICsrKyBD bGVhbmluZyBjbG9zdXJlIDxmdW5jdGlvbjI+IChvcmcuYXBhY2hlLnNwYXJrLlNwYXJrQ29udGV4 dCQkYW5vbmZ1biRydW5Kb2IkNSkgKysrCjE2LzExLzE4IDEwOjQyOjM0IERFQlVHIFtEcml2ZXJd IENsb3N1cmVDbGVhbmVyOiAgKyBkZWNsYXJlZCBmaWVsZHM6IDIKMTYvMTEvMTggMTA6NDI6MzQg REVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6ICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBs b25nIG9yZy5hcGFjaGUuc3BhcmsuU3BhcmtDb250ZXh0JCRhbm9uZnVuJHJ1bkpvYiQ1LnNlcmlh bFZlcnNpb25VSUQKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFu ZXI6ICAgICAgcHJpdmF0ZSBmaW5hbCBzY2FsYS5GdW5jdGlvbjEgb3JnLmFwYWNoZS5zcGFyay5T cGFya0NvbnRleHQkJGFub25mdW4kcnVuSm9iJDUuY2xlYW5lZEZ1bmMkMQoxNi8xMS8xOCAxMDo0 MjozNCBERUJVRyBbRHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjogICsgZGVjbGFyZWQgbWV0aG9kczog MgoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBbRHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjogICAgICBw dWJsaWMgZmluYWwgamF2YS5sYW5nLk9iamVjdCBvcmcuYXBhY2hlLnNwYXJrLlNwYXJrQ29udGV4 dCQkYW5vbmZ1biRydW5Kb2IkNS5hcHBseShqYXZhLmxhbmcuT2JqZWN0LGphdmEubGFuZy5PYmpl Y3QpCjE2LzExLzE4IDEwOjQyOjM0IERFQlVHIFtEcml2ZXJdIENsb3N1cmVDbGVhbmVyOiAgICAg IHB1YmxpYyBmaW5hbCBqYXZhLmxhbmcuT2JqZWN0IG9yZy5hcGFjaGUuc3BhcmsuU3BhcmtDb250 ZXh0JCRhbm9uZnVuJHJ1bkpvYiQ1LmFwcGx5KG9yZy5hcGFjaGUuc3BhcmsuVGFza0NvbnRleHQs c2NhbGEuY29sbGVjdGlvbi5JdGVyYXRvcikKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZl cl0gQ2xvc3VyZUNsZWFuZXI6ICArIGlubmVyIGNsYXNzZXM6IDAKMTYvMTEvMTggMTA6NDI6MzQg REVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6ICArIG91dGVyIGNsYXNzZXM6IDAKMTYvMTEv MTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6ICArIG91dGVyIG9iamVj dHM6IDAKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6ICAr IHBvcHVsYXRpbmcgYWNjZXNzZWQgZmllbGRzIGJlY2F1c2UgdGhpcyBpcyB0aGUgc3RhcnRpbmcg Y2xvc3VyZQoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBbRHJpdmVyXSBDbG9zdXJlQ2xlYW5lcjog ICsgZmllbGRzIGFjY2Vzc2VkIGJ5IHN0YXJ0aW5nIGNsb3N1cmU6IDAKMTYvMTEvMTggMTA6NDI6 MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFuZXI6ICArIHRoZXJlIGFyZSBubyBlbmNsb3Np bmcgb2JqZWN0cyEKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0RyaXZlcl0gQ2xvc3VyZUNsZWFu ZXI6ICArKysgY2xvc3VyZSA8ZnVuY3Rpb24yPiAob3JnLmFwYWNoZS5zcGFyay5TcGFya0NvbnRl eHQkJGFub25mdW4kcnVuSm9iJDUpIGlzIG5vdyBjbGVhbmVkICsrKwoxNi8xMS8xOCAxMDo0Mjoz NCBJTkZPIFtEcml2ZXJdIFNwYXJrQ29udGV4dDogU3RhcnRpbmcgam9iOiBmb3JlYWNoUGFydGl0 aW9uIGF0IEhCYXNlQ29udGV4dC5zY2FsYToxMDQKMTYvMTEvMTggMTA6NDI6MzQgREVCVUcgW0lQ QyBQYXJhbWV0ZXIgU2VuZGluZyBUaHJlYWQgIzFdIENsaWVudDogSVBDIENsaWVudCAoNTU4MDMx NTc3KSBjb25uZWN0aW9uIHRvIHF1b3J1bTMvPGlwX2FkZHJlc3M+OjgwMjAgZnJvbSBoYmFzZSBz ZW5kaW5nICMyMwoxNi8xMS8xOCAxMDo0MjozNCBERUJVRyBbSVBDIENsaWVudCAoNTU4MDMxNTc3 KSBjb25uZWN0aW9uIHRvIHF1b3J1bTMvPGlwX2FkZHJlc3M+OjgwMjAgZnJvbSBoYmFzZV0gQ2xp ZW50OiBJUEMgQ2xpZW50ICg1NTgwMzE1NzcpIGNvbm5lY3Rpb24gdG8gcXVvcnVtMy88aXBfYWRk cmVzcz46ODAyMCBmcm9tIGhiYXNlIGdvdCB2YWx1ZSAjMjMKMTYvMTEvMTggMTA6NDI6MzQgV0FS TiBbZGFnLXNjaGVkdWxlci1ldmVudC1sb29wXSBEQUdTY2hlZHVsZXI6IENyZWF0aW5nIG5ldyBz dGFnZSBmYWlsZWQgZHVlIHRvIGV4Y2VwdGlvbiAtIGpvYjogMApvcmcuYXBhY2hlLmhhZG9vcC5p cGMuUmVtb3RlRXhjZXB0aW9uKGphdmEuaW8uSU9FeGNlcHRpb24pOiBEZWxlZ2F0aW9uIFRva2Vu IGNhbiBiZSBpc3N1ZWQgb25seSB3aXRoIGtlcmJlcm9zIG9yIHdlYiBhdXRoZW50aWNhdGlvbgog ICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmhkZnMuc2VydmVyLm5hbWVub2RlLkZTTmFtZXN5 c3RlbS5nZXREZWxlZ2F0aW9uVG9rZW4oRlNOYW1lc3lzdGVtLmphdmE6NzQ2OSkKICAgICAgICBh dCBvcmcuYXBhY2hlLmhhZG9vcC5oZGZzLnNlcnZlci5uYW1lbm9kZS5OYW1lTm9kZVJwY1NlcnZl ci5nZXREZWxlZ2F0aW9uVG9rZW4oTmFtZU5vZGVScGNTZXJ2ZXIuamF2YTo1NDEpCiAgICAgICAg YXQgb3JnLmFwYWNoZS5oYWRvb3AuaGRmcy5zZXJ2ZXIubmFtZW5vZGUuQXV0aG9yaXphdGlvblBy b3ZpZGVyUHJveHlDbGllbnRQcm90b2NvbC5nZXREZWxlZ2F0aW9uVG9rZW4oQXV0aG9yaXphdGlv blByb3ZpZGVyUHJveHlDbGllbnRQcm90b2NvbC5qYXZhOjY2MSkKICAgICAgICBhdCBvcmcuYXBh Y2hlLmhhZG9vcC5oZGZzLnByb3RvY29sUEIuQ2xpZW50TmFtZW5vZGVQcm90b2NvbFNlcnZlclNp ZGVUcmFuc2xhdG9yUEIuZ2V0RGVsZWdhdGlvblRva2VuKENsaWVudE5hbWVub2RlUHJvdG9jb2xT ZXJ2ZXJTaWRlVHJhbnNsYXRvclBCLmphdmE6OTY0KQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFk b29wLmhkZnMucHJvdG9jb2wucHJvdG8uQ2xpZW50TmFtZW5vZGVQcm90b2NvbFByb3RvcyRDbGll bnROYW1lbm9kZVByb3RvY29sJDIuY2FsbEJsb2NraW5nTWV0aG9kKENsaWVudE5hbWVub2RlUHJv dG9jb2xQcm90b3MuamF2YSkKICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5pcGMuUHJvdG9i dWZScGNFbmdpbmUkU2VydmVyJFByb3RvQnVmUnBjSW52b2tlci5jYWxsKFByb3RvYnVmUnBjRW5n aW5lLmphdmE6NjE3KQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmlwYy5SUEMkU2VydmVy LmNhbGwoUlBDLmphdmE6MTA2MCkKICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5pcGMuU2Vy dmVyJEhhbmRsZXIkMS5ydW4oU2VydmVyLmphdmE6MjA4NikKICAgICAgICBhdCBvcmcuYXBhY2hl LmhhZG9vcC5pcGMuU2VydmVyJEhhbmRsZXIkMS5ydW4oU2VydmVyLmphdmE6MjA4MikKICAgICAg ICBhdCBqYXZhLnNlY3VyaXR5LkFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKE5hdGl2ZSBN ZXRob2QpCiAgICAgICAgYXQgamF2YXguc2VjdXJpdHkuYXV0aC5TdWJqZWN0LmRvQXMoU3ViamVj dC5qYXZhOjQxNSkKICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5zZWN1cml0eS5Vc2VyR3Jv dXBJbmZvcm1hdGlvbi5kb0FzKFVzZXJHcm91cEluZm9ybWF0aW9uLmphdmE6MTcwNykKICAgICAg ICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5pcGMuU2VydmVyJEhhbmRsZXIucnVuKFNlcnZlci5qYXZh OjIwODApCgogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmlwYy5DbGllbnQuY2FsbChDbGll bnQuamF2YToxNDcyKQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmlwYy5DbGllbnQuY2Fs bChDbGllbnQuamF2YToxNDAzKQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmlwYy5Qcm90 b2J1ZlJwY0VuZ2luZSRJbnZva2VyLmludm9rZShQcm90b2J1ZlJwY0VuZ2luZS5qYXZhOjIzMCkK ICAgICAgICBhdCBjb20uc3VuLnByb3h5LiRQcm94eTE0LmdldERlbGVnYXRpb25Ub2tlbihVbmtu b3duIFNvdXJjZSkKICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5oZGZzLnByb3RvY29sUEIu Q2xpZW50TmFtZW5vZGVQcm90b2NvbFRyYW5zbGF0b3JQQi5nZXREZWxlZ2F0aW9uVG9rZW4oQ2xp ZW50TmFtZW5vZGVQcm90b2NvbFRyYW5zbGF0b3JQQi5qYXZhOjkwOSkKICAgICAgICBhdCBzdW4u cmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlMChOYXRpdmUgTWV0aG9kKQog ICAgICAgIGF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoTmF0 aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NTcpCiAgICAgICAgYXQgc3VuLnJlZmxlY3QuRGVs ZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29y SW1wbC5qYXZhOjQzKQogICAgICAgIGF0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2Uo TWV0aG9kLmphdmE6NjA2KQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmlvLnJldHJ5LlJl dHJ5SW52b2NhdGlvbkhhbmRsZXIuaW52b2tlTWV0aG9kKFJldHJ5SW52b2NhdGlvbkhhbmRsZXIu amF2YToyNTIpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5oYWRvb3AuaW8ucmV0cnkuUmV0cnlJbnZv Y2F0aW9uSGFuZGxlci5pbnZva2UoUmV0cnlJbnZvY2F0aW9uSGFuZGxlci5qYXZhOjEwNCkKICAg ICAgICBhdCBjb20uc3VuLnByb3h5LiRQcm94eTE1LmdldERlbGVnYXRpb25Ub2tlbihVbmtub3du IFNvdXJjZSkKICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5oZGZzLkRGU0NsaWVudC5nZXRE ZWxlZ2F0aW9uVG9rZW4oREZTQ2xpZW50LmphdmE6MTA2MSkKICAgICAgICBhdCBvcmcuYXBhY2hl LmhhZG9vcC5oZGZzLkRpc3RyaWJ1dGVkRmlsZVN5c3RlbS5nZXREZWxlZ2F0aW9uVG9rZW4oRGlz dHJpYnV0ZWRGaWxlU3lzdGVtLmphdmE6MTQ1MSkKICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9v cC5mcy5GaWxlU3lzdGVtLmNvbGxlY3REZWxlZ2F0aW9uVG9rZW5zKEZpbGVTeXN0ZW0uamF2YTo1 MzgpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5oYWRvb3AuZnMuRmlsZVN5c3RlbS5hZGREZWxlZ2F0 aW9uVG9rZW5zKEZpbGVTeXN0ZW0uamF2YTo1MTYpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5oYWRv b3AuaGRmcy5EaXN0cmlidXRlZEZpbGVTeXN0ZW0uYWRkRGVsZWdhdGlvblRva2VucyhEaXN0cmli dXRlZEZpbGVTeXN0ZW0uamF2YToyMTM3KQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLm1h cHJlZHVjZS5zZWN1cml0eS5Ub2tlbkNhY2hlLm9idGFpblRva2Vuc0Zvck5hbWVub2Rlc0ludGVy bmFsKFRva2VuQ2FjaGUuamF2YToxMjkpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5oYWRvb3AubWFw cmVkdWNlLnNlY3VyaXR5LlRva2VuQ2FjaGUub2J0YWluVG9rZW5zRm9yTmFtZW5vZGVzSW50ZXJu YWwoVG9rZW5DYWNoZS5qYXZhOjExMCkKICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5tYXBy ZWR1Y2Uuc2VjdXJpdHkuVG9rZW5DYWNoZS5vYnRhaW5Ub2tlbnNGb3JOYW1lbm9kZXMoVG9rZW5D YWNoZS5qYXZhOjg0KQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLm1hcHJlZHVjZS5saWIu aW5wdXQuRmlsZUlucHV0Rm9ybWF0Lmxpc3RTdGF0dXMoRmlsZUlucHV0Rm9ybWF0LmphdmE6MTkz KQogICAgICAgIGF0IHBhcnF1ZXQuaGFkb29wLlBhcnF1ZXRJbnB1dEZvcm1hdC5saXN0U3RhdHVz KFBhcnF1ZXRJbnB1dEZvcm1hdC5qYXZhOjM0MykKICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9v cC5tYXByZWR1Y2UubGliLmlucHV0LkZpbGVJbnB1dEZvcm1hdC5nZXRTcGxpdHMoRmlsZUlucHV0 Rm9ybWF0LmphdmE6MjQ4KQogICAgICAgIGF0IHBhcnF1ZXQuaGFkb29wLlBhcnF1ZXRJbnB1dEZv cm1hdC5nZXRTcGxpdHMoUGFycXVldElucHV0Rm9ybWF0LmphdmE6Mjk5KQogICAgICAgIGF0IG9y Zy5hcGFjaGUuc3BhcmsucmRkLk5ld0hhZG9vcFJERC5nZXRQYXJ0aXRpb25zKE5ld0hhZG9vcFJE RC5zY2FsYToxMTUpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkREJCRhbm9uZnVu JHBhcnRpdGlvbnMkMi5hcHBseShSREQuc2NhbGE6MjM5KQogICAgICAgIGF0IG9yZy5hcGFjaGUu c3BhcmsucmRkLlJERCQkYW5vbmZ1biRwYXJ0aXRpb25zJDIuYXBwbHkoUkRELnNjYWxhOjIzNykK ICAgICAgICBhdCBzY2FsYS5PcHRpb24uZ2V0T3JFbHNlKE9wdGlvbi5zY2FsYToxMjApCiAgICAg ICAgYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELnBhcnRpdGlvbnMoUkRELnNjYWxhOjIzNykK ICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5NYXBQYXJ0aXRpb25zUkRELmdldFBhcnRp dGlvbnMoTWFwUGFydGl0aW9uc1JERC5zY2FsYTozNSkKICAgICAgICBhdCBvcmcuYXBhY2hlLnNw YXJrLnJkZC5SREQkJGFub25mdW4kcGFydGl0aW9ucyQyLmFwcGx5KFJERC5zY2FsYToyMzkpCiAg ICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkREJCRhbm9uZnVuJHBhcnRpdGlvbnMkMi5h cHBseShSREQuc2NhbGE6MjM3KQogICAgICAgIGF0IHNjYWxhLk9wdGlvbi5nZXRPckVsc2UoT3B0 aW9uLnNjYWxhOjEyMCkKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQucGFydGl0 aW9ucyhSREQuc2NhbGE6MjM3KQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLk1hcFBh cnRpdGlvbnNSREQuZ2V0UGFydGl0aW9ucyhNYXBQYXJ0aXRpb25zUkRELnNjYWxhOjM1KQogICAg ICAgIGF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERCQkYW5vbmZ1biRwYXJ0aXRpb25zJDIuYXBw bHkoUkRELnNjYWxhOjIzOSkKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQkJGFu b25mdW4kcGFydGl0aW9ucyQyLmFwcGx5KFJERC5zY2FsYToyMzcpCiAgICAgICAgYXQgc2NhbGEu T3B0aW9uLmdldE9yRWxzZShPcHRpb24uc2NhbGE6MTIwKQogICAgICAgIGF0IG9yZy5hcGFjaGUu c3BhcmsucmRkLlJERC5wYXJ0aXRpb25zKFJERC5zY2FsYToyMzcpCiAgICAgICAgYXQgb3JnLmFw YWNoZS5zcGFyay5yZGQuTWFwUGFydGl0aW9uc1JERC5nZXRQYXJ0aXRpb25zKE1hcFBhcnRpdGlv bnNSREQuc2NhbGE6MzUpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkREJCRhbm9u ZnVuJHBhcnRpdGlvbnMkMi5hcHBseShSREQuc2NhbGE6MjM5KQogICAgICAgIGF0IG9yZy5hcGFj aGUuc3BhcmsucmRkLlJERCQkYW5vbmZ1biRwYXJ0aXRpb25zJDIuYXBwbHkoUkRELnNjYWxhOjIz NykKICAgICAgICBhdCBzY2FsYS5PcHRpb24uZ2V0T3JFbHNlKE9wdGlvbi5zY2FsYToxMjApCiAg ICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELnBhcnRpdGlvbnMoUkRELnNjYWxhOjIz NykKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5NYXBQYXJ0aXRpb25zUkRELmdldFBh cnRpdGlvbnMoTWFwUGFydGl0aW9uc1JERC5zY2FsYTozNSkKICAgICAgICBhdCBvcmcuYXBhY2hl LnNwYXJrLnJkZC5SREQkJGFub25mdW4kcGFydGl0aW9ucyQyLmFwcGx5KFJERC5zY2FsYToyMzkp CiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkREJCRhbm9uZnVuJHBhcnRpdGlvbnMk Mi5hcHBseShSREQuc2NhbGE6MjM3KQogICAgICAgIGF0IHNjYWxhLk9wdGlvbi5nZXRPckVsc2Uo T3B0aW9uLnNjYWxhOjEyMCkKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQucGFy dGl0aW9ucyhSREQuc2NhbGE6MjM3KQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3BhcmsuU2h1ZmZs ZURlcGVuZGVuY3kuPGluaXQ+KERlcGVuZGVuY3kuc2NhbGE6ODIpCiAgICAgICAgYXQgb3JnLmFw YWNoZS5zcGFyay5yZGQuU2h1ZmZsZWRSREQuZ2V0RGVwZW5kZW5jaWVzKFNodWZmbGVkUkRELnNj YWxhOjc4KQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERCQkYW5vbmZ1biRkZXBl bmRlbmNpZXMkMi5hcHBseShSREQuc2NhbGE6MjI2KQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3Bh cmsucmRkLlJERCQkYW5vbmZ1biRkZXBlbmRlbmNpZXMkMi5hcHBseShSREQuc2NhbGE6MjI0KQog ICAgICAgIGF0IHNjYWxhLk9wdGlvbi5nZXRPckVsc2UoT3B0aW9uLnNjYWxhOjEyMCkKICAgICAg ICBhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuZGVwZW5kZW5jaWVzKFJERC5zY2FsYToyMjQp CiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5zY2hlZHVsZXIuREFHU2NoZWR1bGVyLnZpc2l0 JDIoREFHU2NoZWR1bGVyLnNjYWxhOjM4OCkKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnNj aGVkdWxlci5EQUdTY2hlZHVsZXIuZ2V0QW5jZXN0b3JTaHVmZmxlRGVwZW5kZW5jaWVzKERBR1Nj aGVkdWxlci5zY2FsYTo0MDUpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5zY2hlZHVsZXIu REFHU2NoZWR1bGVyLnJlZ2lzdGVyU2h1ZmZsZURlcGVuZGVuY2llcyhEQUdTY2hlZHVsZXIuc2Nh bGE6MzcwKQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3Bhcmsuc2NoZWR1bGVyLkRBR1NjaGVkdWxl ci5vcmckYXBhY2hlJHNwYXJrJHNjaGVkdWxlciREQUdTY2hlZHVsZXIkJGdldFNodWZmbGVNYXBT dGFnZShEQUdTY2hlZHVsZXIuc2NhbGE6MjUzKQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3Bhcmsu c2NoZWR1bGVyLkRBR1NjaGVkdWxlciQkYW5vbmZ1biR2aXNpdCQxJDEuYXBwbHkoREFHU2NoZWR1 bGVyLnNjYWxhOjM1NCkKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnNjaGVkdWxlci5EQUdT Y2hlZHVsZXIkJGFub25mdW4kdmlzaXQkMSQxLmFwcGx5KERBR1NjaGVkdWxlci5zY2FsYTozNTEp CiAgICAgICAgYXQgc2NhbGEuY29sbGVjdGlvbi5pbW11dGFibGUuTGlzdC5mb3JlYWNoKExpc3Qu c2NhbGE6MzE4KQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3Bhcmsuc2NoZWR1bGVyLkRBR1NjaGVk dWxlci52aXNpdCQxKERBR1NjaGVkdWxlci5zY2FsYTozNTEpCiAgICAgICAgYXQgb3JnLmFwYWNo ZS5zcGFyay5zY2hlZHVsZXIuREFHU2NoZWR1bGVyLmdldFBhcmVudFN0YWdlcyhEQUdTY2hlZHVs ZXIuc2NhbGE6MzYzKQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3Bhcmsuc2NoZWR1bGVyLkRBR1Nj aGVkdWxlci5nZXRQYXJlbnRTdGFnZXNBbmRJZChEQUdTY2hlZHVsZXIuc2NhbGE6MjY2KQogICAg ICAgIGF0IG9yZy5hcGFjaGUuc3Bhcmsuc2NoZWR1bGVyLkRBR1NjaGVkdWxlci5uZXdSZXN1bHRT dGFnZShEQUdTY2hlZHVsZXIuc2NhbGE6MzAwKQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3Bhcmsu c2NoZWR1bGVyLkRBR1NjaGVkdWxlci5oYW5kbGVKb2JTdWJtaXR0ZWQoREFHU2NoZWR1bGVyLnNj YWxhOjczNCkKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnNjaGVkdWxlci5EQUdTY2hlZHVs ZXJFdmVudFByb2Nlc3NMb29wLmRvT25SZWNlaXZlKERBR1NjaGVkdWxlci5zY2FsYToxNDc3KQog ICAgICAgIGF0IG9yZy5hcGFjaGUuc3Bhcmsuc2NoZWR1bGVyLkRBR1NjaGVkdWxlckV2ZW50UHJv Y2Vzc0xvb3Aub25SZWNlaXZlKERBR1NjaGVkdWxlci5zY2FsYToxNDY5KQogICAgICAgIGF0IG9y Zy5hcGFjaGUuc3Bhcmsuc2NoZWR1bGVyLkRBR1NjaGVkdWxlckV2ZW50UHJvY2Vzc0xvb3Aub25S ZWNlaXZlKERBR1NjaGVkdWxlci5zY2FsYToxNDU4KQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3Bh cmsudXRpbC5FdmVudExvb3AkJGFub24kMS5ydW4oRXZlbnRMb29wLnNjYWxhOjQ4KQoxNi8xMS8x OCAxMDo0MjozNCBERUJVRyBbc3BhcmtEcml2ZXItYWtrYS5hY3Rvci5kZWZhdWx0LWRpc3BhdGNo ZXItMjVdIEFra2FScGNFbnYkJGFub25mdW4kYWN0b3JSZWYkbHp5Y29tcHV0ZSQxJDEkJGFub24k MTogW2FjdG9yXSByZWNlaXZlZCBtZXNzYWdlIEFra2FNZXNzYWdlKFJldml2ZU9mZmVycyxmYWxz ZSkgZnJvbSBBY3Rvcltha2thOi8vc3BhcmtEcml2ZXIvZGVhZExldHRlcnNdCjE2LzExLzE4IDEw OjQyOjM0IERFQlVHIFtzcGFya0RyaXZlci1ha2thLmFjdG9yLmRlZmF1bHQtZGlzcGF0Y2hlci0y NV0gQWtrYVJwY0VudiQkYW5vbmZ1biRhY3RvclJlZiRsenljb21wdXRlJDEkMSQkYW5vbiQxOiBS ZWNlaXZlZCBSUEMgbWVzc2FnZTogQWtrYU1lc3NhZ2UoUmV2aXZlT2ZmZXJzLGZhbHNlKQoxNi8x MS8xOCAxMDo0MjozNCBERUJVRyBbc3BhcmtEcml2ZXItYWtrYS5hY3Rvci5kZWZhdWx0LWRpc3Bh dGNoZXItMjVdIEFra2FScGNFbnYkJGFub25mdW4kYWN0b3JSZWYkbHp5Y29tcHV0ZSQxJDEkJGFu b24kMTogW2FjdG9yXSBoYW5kbGVkIG1lc3NhZ2UgKDAuNzE5OTQ0IG1zKSBBa2thTWVzc2FnZShS ZXZpdmVPZmZlcnMsZmFsc2UpIGZyb20gQWN0b3JbYWtrYTovL3NwYXJrRHJpdmVyL2RlYWRMZXR0 ZXJzXQoxNi8xMS8xOCAxMDo0MjozNCBJTkZPIFtEcml2ZXJdIERBR1NjaGVkdWxlcjogSm9iIDAg ZmFpbGVkOiBmb3JlYWNoUGFydGl0aW9uIGF0IEhCYXNlQ29udGV4dC5zY2FsYToxMDQsIHRvb2sg MC4wMTczNDggcwoxNi8xMS8xOCAxMDo0MjozNCBFUlJPUiBbRHJpdmVyXSBBcHBsaWNhdGlvbk1h c3RlcjogVXNlciBjbGFzcyB0aHJldyBleGNlcHRpb246IG9yZy5hcGFjaGUuaGFkb29wLmlwYy5S ZW1vdGVFeGNlcHRpb24oamF2YS5pby5JT0V4Y2VwdGlvbik6IERlbGVnYXRpb24gVG9rZW4gY2Fu IGJlIGlzc3VlZCBvbmx5IHdpdGgga2VyYmVyb3Mgb3Igd2ViIGF1dGhlbnRpY2F0aW9uCiAgICAg ICAgYXQgb3JnLmFwYWNoZS5oYWRvb3AuaGRmcy5zZXJ2ZXIubmFtZW5vZGUuRlNOYW1lc3lzdGVt LmdldERlbGVnYXRpb25Ub2tlbihGU05hbWVzeXN0ZW0uamF2YTo3NDY5KQogICAgICAgIGF0IG9y Zy5hcGFjaGUuaGFkb29wLmhkZnMuc2VydmVyLm5hbWVub2RlLk5hbWVOb2RlUnBjU2VydmVyLmdl dERlbGVnYXRpb25Ub2tlbihOYW1lTm9kZVJwY1NlcnZlci5qYXZhOjU0MSkKICAgICAgICBhdCBv cmcuYXBhY2hlLmhhZG9vcC5oZGZzLnNlcnZlci5uYW1lbm9kZS5BdXRob3JpemF0aW9uUHJvdmlk ZXJQcm94eUNsaWVudFByb3RvY29sLmdldERlbGVnYXRpb25Ub2tlbihBdXRob3JpemF0aW9uUHJv dmlkZXJQcm94eUNsaWVudFByb3RvY29sLmphdmE6NjYxKQogICAgICAgIGF0IG9yZy5hcGFjaGUu aGFkb29wLmhkZnMucHJvdG9jb2xQQi5DbGllbnROYW1lbm9kZVByb3RvY29sU2VydmVyU2lkZVRy YW5zbGF0b3JQQi5nZXREZWxlZ2F0aW9uVG9rZW4oQ2xpZW50TmFtZW5vZGVQcm90b2NvbFNlcnZl clNpZGVUcmFuc2xhdG9yUEIuamF2YTo5NjQpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5oYWRvb3Au aGRmcy5wcm90b2NvbC5wcm90by5DbGllbnROYW1lbm9kZVByb3RvY29sUHJvdG9zJENsaWVudE5h bWVub2RlUHJvdG9jb2wkMi5jYWxsQmxvY2tpbmdNZXRob2QoQ2xpZW50TmFtZW5vZGVQcm90b2Nv bFByb3Rvcy5qYXZhKQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmlwYy5Qcm90b2J1ZlJw Y0VuZ2luZSRTZXJ2ZXIkUHJvdG9CdWZScGNJbnZva2VyLmNhbGwoUHJvdG9idWZScGNFbmdpbmUu amF2YTo2MTcpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5oYWRvb3AuaXBjLlJQQyRTZXJ2ZXIuY2Fs bChSUEMuamF2YToxMDYwKQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmlwYy5TZXJ2ZXIk SGFuZGxlciQxLnJ1bihTZXJ2ZXIuamF2YToyMDg2KQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFk b29wLmlwYy5TZXJ2ZXIkSGFuZGxlciQxLnJ1bihTZXJ2ZXIuamF2YToyMDgyKQogICAgICAgIGF0 IGphdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhv ZCkKICAgICAgICBhdCBqYXZheC5zZWN1cml0eS5hdXRoLlN1YmplY3QuZG9BcyhTdWJqZWN0Lmph dmE6NDE1KQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLnNlY3VyaXR5LlVzZXJHcm91cElu Zm9ybWF0aW9uLmRvQXMoVXNlckdyb3VwSW5mb3JtYXRpb24uamF2YToxNzA3KQogICAgICAgIGF0 IG9yZy5hcGFjaGUuaGFkb29wLmlwYy5TZXJ2ZXIkSGFuZGxlci5ydW4oU2VydmVyLmphdmE6MjA4 MCkKCm9yZy5hcGFjaGUuaGFkb29wLmlwYy5SZW1vdGVFeGNlcHRpb24oamF2YS5pby5JT0V4Y2Vw dGlvbik6IERlbGVnYXRpb24gVG9rZW4gY2FuIGJlIGlzc3VlZCBvbmx5IHdpdGgga2VyYmVyb3Mg b3Igd2ViIGF1dGhlbnRpY2F0aW9uCiAgICAgICAgYXQgb3JnLmFwYWNoZS5oYWRvb3AuaGRmcy5z ZXJ2ZXIubmFtZW5vZGUuRlNOYW1lc3lzdGVtLmdldERlbGVnYXRpb25Ub2tlbihGU05hbWVzeXN0 ZW0uamF2YTo3NDY5KQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmhkZnMuc2VydmVyLm5h bWVub2RlLk5hbWVOb2RlUnBjU2VydmVyLmdldERlbGVnYXRpb25Ub2tlbihOYW1lTm9kZVJwY1Nl cnZlci5qYXZhOjU0MSkKICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5oZGZzLnNlcnZlci5u YW1lbm9kZS5BdXRob3JpemF0aW9uUHJvdmlkZXJQcm94eUNsaWVudFByb3RvY29sLmdldERlbGVn YXRpb25Ub2tlbihBdXRob3JpemF0aW9uUHJvdmlkZXJQcm94eUNsaWVudFByb3RvY29sLmphdmE6 NjYxKQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmhkZnMucHJvdG9jb2xQQi5DbGllbnRO YW1lbm9kZVByb3RvY29sU2VydmVyU2lkZVRyYW5zbGF0b3JQQi5nZXREZWxlZ2F0aW9uVG9rZW4o Q2xpZW50TmFtZW5vZGVQcm90b2NvbFNlcnZlclNpZGVUcmFuc2xhdG9yUEIuamF2YTo5NjQpCiAg ICAgICAgYXQgb3JnLmFwYWNoZS5oYWRvb3AuaGRmcy5wcm90b2NvbC5wcm90by5DbGllbnROYW1l bm9kZVByb3RvY29sUHJvdG9zJENsaWVudE5hbWVub2RlUHJvdG9jb2wkMi5jYWxsQmxvY2tpbmdN ZXRob2QoQ2xpZW50TmFtZW5vZGVQcm90b2NvbFByb3Rvcy5qYXZhKQogICAgICAgIGF0IG9yZy5h cGFjaGUuaGFkb29wLmlwYy5Qcm90b2J1ZlJwY0VuZ2luZSRTZXJ2ZXIkUHJvdG9CdWZScGNJbnZv a2VyLmNhbGwoUHJvdG9idWZScGNFbmdpbmUuamF2YTo2MTcpCiAgICAgICAgYXQgb3JnLmFwYWNo ZS5oYWRvb3AuaXBjLlJQQyRTZXJ2ZXIuY2FsbChSUEMuamF2YToxMDYwKQogICAgICAgIGF0IG9y Zy5hcGFjaGUuaGFkb29wLmlwYy5TZXJ2ZXIkSGFuZGxlciQxLnJ1bihTZXJ2ZXIuamF2YToyMDg2 KQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmlwYy5TZXJ2ZXIkSGFuZGxlciQxLnJ1bihT ZXJ2ZXIuamF2YToyMDgyKQogICAgICAgIGF0IGphdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxl ci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkKICAgICAgICBhdCBqYXZheC5zZWN1cml0eS5h dXRoLlN1YmplY3QuZG9BcyhTdWJqZWN0LmphdmE6NDE1KQogICAgICAgIGF0IG9yZy5hcGFjaGUu aGFkb29wLnNlY3VyaXR5LlVzZXJHcm91cEluZm9ybWF0aW9uLmRvQXMoVXNlckdyb3VwSW5mb3Jt YXRpb24uamF2YToxNzA3KQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmlwYy5TZXJ2ZXIk SGFuZGxlci5ydW4oU2VydmVyLmphdmE6MjA4MCkKCiAgICAgICAgYXQgb3JnLmFwYWNoZS5oYWRv b3AuaXBjLkNsaWVudC5jYWxsKENsaWVudC5qYXZhOjE0NzIpCiAgICAgICAgYXQgb3JnLmFwYWNo ZS5oYWRvb3AuaXBjLkNsaWVudC5jYWxsKENsaWVudC5qYXZhOjE0MDMpCiAgICAgICAgYXQgb3Jn LmFwYWNoZS5oYWRvb3AuaXBjLlByb3RvYnVmUnBjRW5naW5lJEludm9rZXIuaW52b2tlKFByb3Rv YnVmUnBjRW5naW5lLmphdmE6MjMwKQogICAgICAgIGF0IGNvbS5zdW4ucHJveHkuJFByb3h5MTQu Z2V0RGVsZWdhdGlvblRva2VuKFVua25vd24gU291cmNlKQogICAgICAgIGF0IG9yZy5hcGFjaGUu aGFkb29wLmhkZnMucHJvdG9jb2xQQi5DbGllbnROYW1lbm9kZVByb3RvY29sVHJhbnNsYXRvclBC LmdldERlbGVnYXRpb25Ub2tlbihDbGllbnROYW1lbm9kZVByb3RvY29sVHJhbnNsYXRvclBCLmph dmE6OTA5KQogICAgICAgIGF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5p bnZva2UwKE5hdGl2ZSBNZXRob2QpCiAgICAgICAgYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9k QWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuamF2YTo1NykKICAg ICAgICBhdCBzdW4ucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShE ZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NDMpCiAgICAgICAgYXQgamF2YS5sYW5n LnJlZmxlY3QuTWV0aG9kLmludm9rZShNZXRob2QuamF2YTo2MDYpCiAgICAgICAgYXQgb3JnLmFw YWNoZS5oYWRvb3AuaW8ucmV0cnkuUmV0cnlJbnZvY2F0aW9uSGFuZGxlci5pbnZva2VNZXRob2Qo UmV0cnlJbnZvY2F0aW9uSGFuZGxlci5qYXZhOjI1MikKICAgICAgICBhdCBvcmcuYXBhY2hlLmhh ZG9vcC5pby5yZXRyeS5SZXRyeUludm9jYXRpb25IYW5kbGVyLmludm9rZShSZXRyeUludm9jYXRp b25IYW5kbGVyLmphdmE6MTA0KQogICAgICAgIGF0IGNvbS5zdW4ucHJveHkuJFByb3h5MTUuZ2V0 RGVsZWdhdGlvblRva2VuKFVua25vd24gU291cmNlKQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFk b29wLmhkZnMuREZTQ2xpZW50LmdldERlbGVnYXRpb25Ub2tlbihERlNDbGllbnQuamF2YToxMDYx KQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmhkZnMuRGlzdHJpYnV0ZWRGaWxlU3lzdGVt LmdldERlbGVnYXRpb25Ub2tlbihEaXN0cmlidXRlZEZpbGVTeXN0ZW0uamF2YToxNDUxKQogICAg ICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmZzLkZpbGVTeXN0ZW0uY29sbGVjdERlbGVnYXRpb25U b2tlbnMoRmlsZVN5c3RlbS5qYXZhOjUzOCkKICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5m cy5GaWxlU3lzdGVtLmFkZERlbGVnYXRpb25Ub2tlbnMoRmlsZVN5c3RlbS5qYXZhOjUxNikKICAg ICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5oZGZzLkRpc3RyaWJ1dGVkRmlsZVN5c3RlbS5hZGRE ZWxlZ2F0aW9uVG9rZW5zKERpc3RyaWJ1dGVkRmlsZVN5c3RlbS5qYXZhOjIxMzcpCiAgICAgICAg YXQgb3JnLmFwYWNoZS5oYWRvb3AubWFwcmVkdWNlLnNlY3VyaXR5LlRva2VuQ2FjaGUub2J0YWlu VG9rZW5zRm9yTmFtZW5vZGVzSW50ZXJuYWwoVG9rZW5DYWNoZS5qYXZhOjEyOSkKICAgICAgICBh dCBvcmcuYXBhY2hlLmhhZG9vcC5tYXByZWR1Y2Uuc2VjdXJpdHkuVG9rZW5DYWNoZS5vYnRhaW5U b2tlbnNGb3JOYW1lbm9kZXNJbnRlcm5hbChUb2tlbkNhY2hlLmphdmE6MTEwKQogICAgICAgIGF0 IG9yZy5hcGFjaGUuaGFkb29wLm1hcHJlZHVjZS5zZWN1cml0eS5Ub2tlbkNhY2hlLm9idGFpblRv a2Vuc0Zvck5hbWVub2RlcyhUb2tlbkNhY2hlLmphdmE6ODQpCiAgICAgICAgYXQgb3JnLmFwYWNo ZS5oYWRvb3AubWFwcmVkdWNlLmxpYi5pbnB1dC5GaWxlSW5wdXRGb3JtYXQubGlzdFN0YXR1cyhG aWxlSW5wdXRGb3JtYXQuamF2YToxOTMpCiAgICAgICAgYXQgcGFycXVldC5oYWRvb3AuUGFycXVl dElucHV0Rm9ybWF0Lmxpc3RTdGF0dXMoUGFycXVldElucHV0Rm9ybWF0LmphdmE6MzQzKQogICAg ICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLm1hcHJlZHVjZS5saWIuaW5wdXQuRmlsZUlucHV0Rm9y bWF0LmdldFNwbGl0cyhGaWxlSW5wdXRGb3JtYXQuamF2YToyNDgpCiAgICAgICAgYXQgcGFycXVl dC5oYWRvb3AuUGFycXVldElucHV0Rm9ybWF0LmdldFNwbGl0cyhQYXJxdWV0SW5wdXRGb3JtYXQu amF2YToyOTkpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuTmV3SGFkb29wUkRELmdl dFBhcnRpdGlvbnMoTmV3SGFkb29wUkRELnNjYWxhOjExNSkKICAgICAgICBhdCBvcmcuYXBhY2hl LnNwYXJrLnJkZC5SREQkJGFub25mdW4kcGFydGl0aW9ucyQyLmFwcGx5KFJERC5zY2FsYToyMzkp CiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkREJCRhbm9uZnVuJHBhcnRpdGlvbnMk Mi5hcHBseShSREQuc2NhbGE6MjM3KQogICAgICAgIGF0IHNjYWxhLk9wdGlvbi5nZXRPckVsc2Uo T3B0aW9uLnNjYWxhOjEyMCkKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQucGFy dGl0aW9ucyhSREQuc2NhbGE6MjM3KQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLk1h cFBhcnRpdGlvbnNSREQuZ2V0UGFydGl0aW9ucyhNYXBQYXJ0aXRpb25zUkRELnNjYWxhOjM1KQog ICAgICAgIGF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERCQkYW5vbmZ1biRwYXJ0aXRpb25zJDIu YXBwbHkoUkRELnNjYWxhOjIzOSkKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQk JGFub25mdW4kcGFydGl0aW9ucyQyLmFwcGx5KFJERC5zY2FsYToyMzcpCiAgICAgICAgYXQgc2Nh bGEuT3B0aW9uLmdldE9yRWxzZShPcHRpb24uc2NhbGE6MTIwKQogICAgICAgIGF0IG9yZy5hcGFj aGUuc3BhcmsucmRkLlJERC5wYXJ0aXRpb25zKFJERC5zY2FsYToyMzcpCiAgICAgICAgYXQgb3Jn LmFwYWNoZS5zcGFyay5yZGQuTWFwUGFydGl0aW9uc1JERC5nZXRQYXJ0aXRpb25zKE1hcFBhcnRp dGlvbnNSREQuc2NhbGE6MzUpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkREJCRh bm9uZnVuJHBhcnRpdGlvbnMkMi5hcHBseShSREQuc2NhbGE6MjM5KQogICAgICAgIGF0IG9yZy5h cGFjaGUuc3BhcmsucmRkLlJERCQkYW5vbmZ1biRwYXJ0aXRpb25zJDIuYXBwbHkoUkRELnNjYWxh OjIzNykKICAgICAgICBhdCBzY2FsYS5PcHRpb24uZ2V0T3JFbHNlKE9wdGlvbi5zY2FsYToxMjAp CiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELnBhcnRpdGlvbnMoUkRELnNjYWxh OjIzNykKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5NYXBQYXJ0aXRpb25zUkRELmdl dFBhcnRpdGlvbnMoTWFwUGFydGl0aW9uc1JERC5zY2FsYTozNSkKICAgICAgICBhdCBvcmcuYXBh Y2hlLnNwYXJrLnJkZC5SREQkJGFub25mdW4kcGFydGl0aW9ucyQyLmFwcGx5KFJERC5zY2FsYToy MzkpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkREJCRhbm9uZnVuJHBhcnRpdGlv bnMkMi5hcHBseShSREQuc2NhbGE6MjM3KQogICAgICAgIGF0IHNjYWxhLk9wdGlvbi5nZXRPckVs c2UoT3B0aW9uLnNjYWxhOjEyMCkKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQu cGFydGl0aW9ucyhSREQuc2NhbGE6MjM3KQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3BhcmsucmRk Lk1hcFBhcnRpdGlvbnNSREQuZ2V0UGFydGl0aW9ucyhNYXBQYXJ0aXRpb25zUkRELnNjYWxhOjM1 KQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERCQkYW5vbmZ1biRwYXJ0aXRpb25z JDIuYXBwbHkoUkRELnNjYWxhOjIzOSkKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5S REQkJGFub25mdW4kcGFydGl0aW9ucyQyLmFwcGx5KFJERC5zY2FsYToyMzcpCiAgICAgICAgYXQg c2NhbGEuT3B0aW9uLmdldE9yRWxzZShPcHRpb24uc2NhbGE6MTIwKQogICAgICAgIGF0IG9yZy5h cGFjaGUuc3BhcmsucmRkLlJERC5wYXJ0aXRpb25zKFJERC5zY2FsYToyMzcpCiAgICAgICAgYXQg b3JnLmFwYWNoZS5zcGFyay5TaHVmZmxlRGVwZW5kZW5jeS48aW5pdD4oRGVwZW5kZW5jeS5zY2Fs YTo4MikKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5TaHVmZmxlZFJERC5nZXREZXBl bmRlbmNpZXMoU2h1ZmZsZWRSREQuc2NhbGE6NzgpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFy ay5yZGQuUkREJCRhbm9uZnVuJGRlcGVuZGVuY2llcyQyLmFwcGx5KFJERC5zY2FsYToyMjYpCiAg ICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkREJCRhbm9uZnVuJGRlcGVuZGVuY2llcyQy LmFwcGx5KFJERC5zY2FsYToyMjQpCiAgICAgICAgYXQgc2NhbGEuT3B0aW9uLmdldE9yRWxzZShP cHRpb24uc2NhbGE6MTIwKQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5kZXBl bmRlbmNpZXMoUkRELnNjYWxhOjIyNCkKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnNjaGVk dWxlci5EQUdTY2hlZHVsZXIudmlzaXQkMihEQUdTY2hlZHVsZXIuc2NhbGE6Mzg4KQogICAgICAg IGF0IG9yZy5hcGFjaGUuc3Bhcmsuc2NoZWR1bGVyLkRBR1NjaGVkdWxlci5nZXRBbmNlc3RvclNo dWZmbGVEZXBlbmRlbmNpZXMoREFHU2NoZWR1bGVyLnNjYWxhOjQwNSkKICAgICAgICBhdCBvcmcu YXBhY2hlLnNwYXJrLnNjaGVkdWxlci5EQUdTY2hlZHVsZXIucmVnaXN0ZXJTaHVmZmxlRGVwZW5k ZW5jaWVzKERBR1NjaGVkdWxlci5zY2FsYTozNzApCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFy ay5zY2hlZHVsZXIuREFHU2NoZWR1bGVyLm9yZyRhcGFjaGUkc3Bhcmskc2NoZWR1bGVyJERBR1Nj aGVkdWxlciQkZ2V0U2h1ZmZsZU1hcFN0YWdlKERBR1NjaGVkdWxlci5zY2FsYToyNTMpCiAgICAg ICAgYXQgb3JnLmFwYWNoZS5zcGFyay5zY2hlZHVsZXIuREFHU2NoZWR1bGVyJCRhbm9uZnVuJHZp c2l0JDEkMS5hcHBseShEQUdTY2hlZHVsZXIuc2NhbGE6MzU0KQogICAgICAgIGF0IG9yZy5hcGFj aGUuc3Bhcmsuc2NoZWR1bGVyLkRBR1NjaGVkdWxlciQkYW5vbmZ1biR2aXNpdCQxJDEuYXBwbHko REFHU2NoZWR1bGVyLnNjYWxhOjM1MSkKICAgICAgICBhdCBzY2FsYS5jb2xsZWN0aW9uLmltbXV0 YWJsZS5MaXN0LmZvcmVhY2goTGlzdC5zY2FsYTozMTgpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5z cGFyay5zY2hlZHVsZXIuREFHU2NoZWR1bGVyLnZpc2l0JDEoREFHU2NoZWR1bGVyLnNjYWxhOjM1 MSkKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnNjaGVkdWxlci5EQUdTY2hlZHVsZXIuZ2V0 UGFyZW50U3RhZ2VzKERBR1NjaGVkdWxlci5zY2FsYTozNjMpCiAgICAgICAgYXQgb3JnLmFwYWNo ZS5zcGFyay5zY2hlZHVsZXIuREFHU2NoZWR1bGVyLmdldFBhcmVudFN0YWdlc0FuZElkKERBR1Nj aGVkdWxlci5zY2FsYToyNjYpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5zY2hlZHVsZXIu REFHU2NoZWR1bGVyLm5ld1Jlc3VsdFN0YWdlKERBR1NjaGVkdWxlci5zY2FsYTozMDApCiAgICAg ICAgYXQgb3JnLmFwYWNoZS5zcGFyay5zY2hlZHVsZXIuREFHU2NoZWR1bGVyLmhhbmRsZUpvYlN1 Ym1pdHRlZChEQUdTY2hlZHVsZXIuc2NhbGE6NzM0KQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3Bh cmsuc2NoZWR1bGVyLkRBR1NjaGVkdWxlckV2ZW50UHJvY2Vzc0xvb3AuZG9PblJlY2VpdmUoREFH U2NoZWR1bGVyLnNjYWxhOjE0NzcpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5zY2hlZHVs ZXIuREFHU2NoZWR1bGVyRXZlbnRQcm9jZXNzTG9vcC5vblJlY2VpdmUoREFHU2NoZWR1bGVyLnNj YWxhOjE0NjkpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5zY2hlZHVsZXIuREFHU2NoZWR1 bGVyRXZlbnRQcm9jZXNzTG9vcC5vblJlY2VpdmUoREFHU2NoZWR1bGVyLnNjYWxhOjE0NTgpCiAg ICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay51dGlsLkV2ZW50TG9vcCQkYW5vbiQxLnJ1bihFdmVu dExvb3Auc2NhbGE6NDgpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5zY2hlZHVsZXIuREFH U2NoZWR1bGVyLnJ1bkpvYihEQUdTY2hlZHVsZXIuc2NhbGE6NTY3KQogICAgICAgIGF0IG9yZy5h cGFjaGUuc3BhcmsuU3BhcmtDb250ZXh0LnJ1bkpvYihTcGFya0NvbnRleHQuc2NhbGE6MTgyNCkK ICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLlNwYXJrQ29udGV4dC5ydW5Kb2IoU3BhcmtDb250 ZXh0LnNjYWxhOjE4MzcpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5TcGFya0NvbnRleHQu cnVuSm9iKFNwYXJrQ29udGV4dC5zY2FsYToxODUwKQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3Bh cmsuU3BhcmtDb250ZXh0LnJ1bkpvYihTcGFya0NvbnRleHQuc2NhbGE6MTkyMSkKICAgICAgICBh dCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQkJGFub25mdW4kZm9yZWFjaFBhcnRpdGlvbiQxLmFw cGx5KFJERC5zY2FsYTo4OTgpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkREJCRh bm9uZnVuJGZvcmVhY2hQYXJ0aXRpb24kMS5hcHBseShSREQuc2NhbGE6ODk2KQogICAgICAgIGF0 IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERE9wZXJhdGlvblNjb3BlJC53aXRoU2NvcGUoUkRET3Bl cmF0aW9uU2NvcGUuc2NhbGE6MTQ3KQogICAgICAgIGF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJE RE9wZXJhdGlvblNjb3BlJC53aXRoU2NvcGUoUkRET3BlcmF0aW9uU2NvcGUuc2NhbGE6MTA4KQog ICAgICAgIGF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC53aXRoU2NvcGUoUkRELnNjYWxhOjMw NikKICAgICAgICBhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuZm9yZWFjaFBhcnRpdGlvbihS REQuc2NhbGE6ODk2KQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmhiYXNlLnNwYXJrLkhC YXNlQ29udGV4dC5mb3JlYWNoUGFydGl0aW9uKEhCYXNlQ29udGV4dC5zY2FsYToxMDQpCiAgICAg ICAgYXQgb3JnLmFwYWNoZS5oYWRvb3AuaGJhc2Uuc3BhcmsuSEJhc2VSRERGdW5jdGlvbnMkR2Vu ZXJpY0hCYXNlUkRERnVuY3Rpb25zLmhiYXNlRm9yZWFjaFBhcnRpdGlvbihIQmFzZVJEREZ1bmN0 aW9ucy5zY2FsYToxNDEpCiAgICAgICAgYXQgb3JnLmFwYWNoZS5oYWRvb3AuaGJhc2Uuc3Bhcmsu SEJhc2VDb250ZXh0LmJ1bGtMb2FkVGhpblJvd3MoSEJhc2VDb250ZXh0LnNjYWxhOjc3MikKICAg ICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5oYmFzZS5zcGFyay5IQmFzZVJEREZ1bmN0aW9ucyRH ZW5lcmljSEJhc2VSRERGdW5jdGlvbnMuaGJhc2VCdWxrTG9hZFRoaW5Sb3dzKEhCYXNlUkRERnVu Y3Rpb25zLnNjYWxhOjI0NikKICAgICAgICBhdCBjb20uY29tcGFueS5kaS5vd2wuYmF0Y2guc3Bh cmsucmRkLlBob2VuaXhSRERGdW5jdGlvbnMkUGhvZW5peFJEREZ1bmN0aW9ucy5zYXZlSEZpbGVU b1Bob2VuaXgoUGhvZW5peFJEREZ1bmN0aW9ucy5zY2FsYToxMzMpCiAgICAgICAgYXQgY29tLmNv bXBhbnkuZGkuY2FyZC5iYXRjaC50cmFuc2FjdGlvbnMuc2lua3MuVHJhbnNhY3Rpb25Mb2FkZXJT aW5rLnNpbmsoVHJhbnNhY3Rpb25Mb2FkZXJTaW5rLnNjYWxhOjE0OSkKICAgICAgICBhdCBjb20u Y29tcGFueS5kaS5jYXJkLmJhdGNoLnRyYW5zYWN0aW9ucy5waXBlbGluZXMuVHJhbnNhY3Rpb25z UGlwZWxpbmUkVHJhbnNhY3Rpb25zUGlwZWxpbmUucnVuUGlwZWxpbmUoVHJhbnNhY3Rpb25zUGlw ZWxpbmUuc2NhbGE6NzMpCiAgICAgICAgYXQgY29tLmNvbXBhbnkuZGkuY2FyZC5iYXRjaC50cmFu c2FjdGlvbnMucGlwZWxpbmVzLlRyYW5zYWN0aW9uc1BpcGVsaW5lJGNsYXNzLnJ1blBpcGVsaW5l KFRyYW5zYWN0aW9uc1BpcGVsaW5lLnNjYWxhOjI3KQogICAgICAgIGF0IGNvbS5jb21wYW55LmRp LmNhcmQuYmF0Y2gudHJhbnNhY3Rpb25zLmRyaXZlci5BdXRoVHhuQmF0Y2hEcml2ZXIkJGFub24k MS5ydW5QaXBlbGluZShBdXRoVHhuQmF0Y2hEcml2ZXIuc2NhbGE6NDUpCiAgICAgICAgYXQgY29t LmNvbXBhbnkuZGkuY2FyZC5iYXRjaC50cmFuc2FjdGlvbnMuZHJpdmVyLkF1dGhUeG5CYXRjaERy aXZlciRkZWxheWVkSW5pdCRib2R5LmFwcGx5KEF1dGhUeG5CYXRjaERyaXZlci5zY2FsYTo0MikK ICAgICAgICBhdCBzY2FsYS5GdW5jdGlvbjAkY2xhc3MuYXBwbHkkbWNWJHNwKEZ1bmN0aW9uMC5z Y2FsYTo0MCkKICAgICAgICBhdCBzY2FsYS5ydW50aW1lLkFic3RyYWN0RnVuY3Rpb24wLmFwcGx5 JG1jViRzcChBYnN0cmFjdEZ1bmN0aW9uMC5zY2FsYToxMikKICAgICAgICBhdCBzY2FsYS5BcHAk JGFub25mdW4kbWFpbiQxLmFwcGx5KEFwcC5zY2FsYTo3MSkKICAgICAgICBhdCBzY2FsYS5BcHAk JGFub25mdW4kbWFpbiQxLmFwcGx5KEFwcC5zY2FsYTo3MSkKICAgICAgICBhdCBzY2FsYS5jb2xs ZWN0aW9uLmltbXV0YWJsZS5MaXN0LmZvcmVhY2goTGlzdC5zY2FsYTozMTgpCiAgICAgICAgYXQg c2NhbGEuY29sbGVjdGlvbi5nZW5lcmljLlRyYXZlcnNhYmxlRm9yd2FyZGVyJGNsYXNzLmZvcmVh Y2goVHJhdmVyc2FibGVGb3J3YXJkZXIuc2NhbGE6MzIpCiAgICAgICAgYXQgc2NhbGEuQXBwJGNs YXNzLm1haW4oQXBwLnNjYWxhOjcxKQogICAgICAgIGF0IGNvbS5jb21wYW55LmRpLmNhcmQuYmF0 Y2gudHJhbnNhY3Rpb25zLmRyaXZlci5BdXRoVHhuQmF0Y2hEcml2ZXIkLm1haW4oQXV0aFR4bkJh dGNoRHJpdmVyLnNjYWxhOjIzKQogICAgICAgIGF0IGNvbS5jb21wYW55LmRpLmNhcmQuYmF0Y2gu dHJhbnNhY3Rpb25zLmRyaXZlci5BdXRoVHhuQmF0Y2hEcml2ZXIubWFpbihBdXRoVHhuQmF0Y2hE cml2ZXIuc2NhbGEpCiAgICAgICAgYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJ bXBsLmludm9rZTAoTmF0aXZlIE1ldGhvZCkKICAgICAgICBhdCBzdW4ucmVmbGVjdC5OYXRpdmVN ZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKE5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjU3 KQogICAgICAgIGF0IHN1bi5yZWZsZWN0LkRlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuaW52 b2tlKERlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuamF2YTo0MykKICAgICAgICBhdCBqYXZh LmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlKE1ldGhvZC5qYXZhOjYwNikKICAgICAgICBhdCBv cmcuYXBhY2hlLnNwYXJrLmRlcGxveS55YXJuLkFwcGxpY2F0aW9uTWFzdGVyJCRhbm9uJDIucnVu KEFwcGxpY2F0aW9uTWFzdGVyLnNjYWxhOjUyNSkKMTYvMTEvMTggMTA6NDI6MzQgSU5GTyBbRHJp dmVyXSBBcHBsaWNhdGlvbk1hc3RlcjogRmluYWwgYXBwIHN0YXR1czogRkFJTEVELCBleGl0Q29k ZTogMTUsIChyZWFzb246IFVzZXIgY2xhc3MgdGhyZXcgZXhjZXB0aW9uOiBvcmcuYXBhY2hlLmhh ZG9vcC5pcGMuUmVtb3RlRXhjZXB0aW9uKGphdmEuaW8uSU9FeGNlcHRpb24pOiBEZWxlZ2F0aW9u IFRva2VuIGNhbiBiZSBpc3N1ZWQgb25seSB3aXRoIGtlcmJlcm9zIG9yIHdlYiBhdXRoZW50aWNh dGlvbgogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmhkZnMuc2VydmVyLm5hbWVub2RlLkZT TmFtZXN5c3RlbS5nZXREZWxlZ2F0aW9uVG9rZW4oRlNOYW1lc3lzdGVtLmphdmE6NzQ2OSkKICAg ICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5oZGZzLnNlcnZlci5uYW1lbm9kZS5OYW1lTm9kZVJw Y1NlcnZlci5nZXREZWxlZ2F0aW9uVG9rZW4oTmFtZU5vZGVScGNTZXJ2ZXIuamF2YTo1NDEpCiAg ICAgICAgYXQgb3JnLmFwYWNoZS5oYWRvb3AuaGRmcy5zZXJ2ZXIubmFtZW5vZGUuQXV0aG9yaXph dGlvblByb3ZpZGVyUHJveHlDbGllbnRQcm90b2NvbC5nZXREZWxlZ2F0aW9uVG9rZW4oQXV0aG9y aXphdGlvblByb3ZpZGVyUHJveHlDbGllbnRQcm90b2NvbC5qYXZhOjY2MSkKICAgICAgICBhdCBv cmcuYXBhY2hlLmhhZG9vcC5oZGZzLnByb3RvY29sUEIuQ2xpZW50TmFtZW5vZGVQcm90b2NvbFNl cnZlclNpZGVUcmFuc2xhdG9yUEIuZ2V0RGVsZWdhdGlvblRva2VuKENsaWVudE5hbWVub2RlUHJv dG9jb2xTZXJ2ZXJTaWRlVHJhbnNsYXRvclBCLmphdmE6OTY0KQogICAgICAgIGF0IG9yZy5hcGFj aGUuaGFkb29wLmhkZnMucHJvdG9jb2wucHJvdG8uQ2xpZW50TmFtZW5vZGVQcm90b2NvbFByb3Rv cyRDbGllbnROYW1lbm9kZVByb3RvY29sJDIuY2FsbEJsb2NraW5nTWV0aG9kKENsaWVudE5hbWVu b2RlUHJvdG9jb2xQcm90b3MuamF2YSkKICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5pcGMu UHJvdG9idWZScGNFbmdpbmUkU2VydmVyJFByb3RvQnVmUnBjSW52b2tlci5jYWxsKFByb3RvYnVm UnBjRW5naW5lLmphdmE6NjE3KQogICAgICAgIGF0IG9yZy5hcGFjaGUuaGFkb29wLmlwYy5SUEMk U2VydmVyLmNhbGwoUlBDLmphdmE6MTA2MCkKICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5p cGMuU2VydmVyJEhhbmRsZXIkMS5ydW4oU2VydmVyLmphdmE6MjA4NikKICAgICAgICBhdCBvcmcu YXBhY2hlLmhhZG9vcC5pcGMuU2VydmVyJEhhbmRsZXIkMS5ydW4oU2VydmVyLmphdmE6MjA4MikK ICAgICAgICBhdCBqYXZhLnNlY3VyaXR5LkFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKE5h dGl2ZSBNZXRob2QpCiAgICAgICAgYXQgamF2YXguc2VjdXJpdHkuYXV0aC5TdWJqZWN0LmRvQXMo U3ViamVjdC5qYXZhOjQxNSkKICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5zZWN1cml0eS5V c2VyR3JvdXBJbmZvcm1hdGlvbi5kb0FzKFVzZXJHcm91cEluZm9ybWF0aW9uLmphdmE6MTcwNykK ICAgICAgICBhdCBvcmcuYXBhY2hlLmhhZG9vcC5pcGMuU2VydmVyJEhhbmRsZXIucnVuKFNlcnZl ci5qYXZhOjIwODApCik= --001a113ec114ec9b790541920fef--