Return-Path: X-Original-To: apmail-spark-dev-archive@minotaur.apache.org Delivered-To: apmail-spark-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 43F2211EAD for ; Tue, 15 Jul 2014 01:22:53 +0000 (UTC) Received: (qmail 1499 invoked by uid 500); 15 Jul 2014 01:22:52 -0000 Delivered-To: apmail-spark-dev-archive@spark.apache.org Received: (qmail 1440 invoked by uid 500); 15 Jul 2014 01:22:52 -0000 Mailing-List: contact dev-help@spark.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@spark.apache.org Delivered-To: mailing list dev@spark.apache.org Received: (qmail 1427 invoked by uid 99); 15 Jul 2014 01:22:52 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Jul 2014 01:22:52 +0000 X-ASF-Spam-Status: No, hits=1.5 required=10.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of cody.koeninger@mediacrossing.com designates 74.125.82.181 as permitted sender) Received: from [74.125.82.181] (HELO mail-we0-f181.google.com) (74.125.82.181) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Jul 2014 01:22:47 +0000 Received: by mail-we0-f181.google.com with SMTP id q59so4858641wes.12 for ; Mon, 14 Jul 2014 18:22:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediacrossing.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=b1y4MxN5w2nIdNGiVzzBS9LmwCRe0pMxu02RMWJMZzM=; b=Mjr8EyS9hNYLSPH1sRHBiT99V7Q4WOpjzVpqi2HMa/ehox+dhPxJLa8uFAOr0I4dj3 EBs1+U/7ggB+KuxjrwwiRY19lVapHPl8UDA8KNMiH31cWtvKSGBhQkWzp8pvtRpl1arC ucMp4LqWwFCAHPbkWMTKlbrmOuUgDaydvxA80= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=b1y4MxN5w2nIdNGiVzzBS9LmwCRe0pMxu02RMWJMZzM=; b=al8zjA15qAeFixYCSsCrwqWF19wGMv1wQCIjUprlisVyBxRGwj/SqU9lfBLu9SKYnl fpX4QkDgHBr678ikWBgL+nyk1gbQwpSIZakZqa3bABu+YQkOVyNeD4Iv9Sk6jFqBgU4t k4d+hhtx6rvgLpaxV51P28bBAdseBD8Ba1ha1Z35pkPM4eckxZhyjk8T6JbXIq/B9CJF 3EVsYMHTUc/1xgBun/2SKbsFhMm64MZb8O8Um9u6/Ey1RRNs5LBwQ7ulquIa2tpIC94r W8SPwmDhFToK27pxXtiXTTwnwqKgI4/UQyZh0SxNrQY780h0uKWtleVwCAk386NZ1M1+ sX+w== X-Gm-Message-State: ALoCoQlbe/0OGulIAxuQZZYPYRG1oU1Ok0nBgBsg2EDL9TXXWcCL2mvwRVQZX8lIYUZ73GWS2pPg MIME-Version: 1.0 X-Received: by 10.180.92.38 with SMTP id cj6mr1621728wib.64.1405387345669; Mon, 14 Jul 2014 18:22:25 -0700 (PDT) Received: by 10.194.15.33 with HTTP; Mon, 14 Jul 2014 18:22:25 -0700 (PDT) In-Reply-To: References: Date: Mon, 14 Jul 2014 20:22:25 -0500 Message-ID: Subject: Re: Reproducible deadlock in 1.0.1, possibly related to Spark-1097 From: Cody Koeninger To: dev@spark.apache.org Content-Type: multipart/mixed; boundary=f46d043c7faa83175204fe313d75 X-Virus-Checked: Checked by ClamAV on apache.org --f46d043c7faa83175204fe313d75 Content-Type: multipart/alternative; boundary=f46d043c7faa83174e04fe313d73 --f46d043c7faa83174e04fe313d73 Content-Type: text/plain; charset=UTF-8 Here's the entire jstack output. On Mon, Jul 14, 2014 at 4:44 PM, Patrick Wendell wrote: > Hey Cody, > > This Jstack seems truncated, would you mind giving the entire stack > trace? For the second thread, for instance, we can't see where the > lock is being acquired. > > - Patrick > > On Mon, Jul 14, 2014 at 1:42 PM, Cody Koeninger > wrote: > > Hi all, just wanted to give a heads up that we're seeing a reproducible > > deadlock with spark 1.0.1 with 2.3.0-mr1-cdh5.0.2 > > > > If jira is a better place for this, apologies in advance - figured > talking > > about it on the mailing list was friendlier than randomly (re)opening > jira > > tickets. > > > > I know Gary had mentioned some issues with 1.0.1 on the mailing list, > once > > we got a thread dump I wanted to follow up. > > > > The thread dump shows the deadlock occurs in the synchronized block of > code > > that was changed in HadoopRDD.scala, for the Spark-1097 issue > > > > Relevant portions of the thread dump are summarized below, we can provide > > the whole dump if it's useful. > > > > Found one Java-level deadlock: > > ============================= > > "Executor task launch worker-1": > > waiting to lock monitor 0x00007f250400c520 (object 0x00000000fae7dc30, > a > > org.apache.hadoop.co > > nf.Configuration), > > which is held by "Executor task launch worker-0" > > "Executor task launch worker-0": > > waiting to lock monitor 0x00007f2520495620 (object 0x00000000faeb4fc8, > a > > java.lang.Class), > > which is held by "Executor task launch worker-1" > > > > > > "Executor task launch worker-1": > > at > > > org.apache.hadoop.conf.Configuration.reloadConfiguration(Configuration.java:791) > > - waiting to lock <0x00000000fae7dc30> (a > > org.apache.hadoop.conf.Configuration) > > at > > > org.apache.hadoop.conf.Configuration.addDefaultResource(Configuration.java:690) > > - locked <0x00000000faca6ff8> (a java.lang.Class for > > org.apache.hadoop.conf.Configurati > > on) > > at > > > org.apache.hadoop.hdfs.HdfsConfiguration.(HdfsConfiguration.java:34) > > at > > > org.apache.hadoop.hdfs.DistributedFileSystem.(DistributedFileSystem.java:110 > > ) > > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > > Method) > > at > > > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl. > > java:57) > > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > > Method) > > at > > > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl. > > java:57) > > at > > > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAcces > > sorImpl.java:45) > > at > java.lang.reflect.Constructor.newInstance(Constructor.java:525) > > at java.lang.Class.newInstance0(Class.java:374) > > at java.lang.Class.newInstance(Class.java:327) > > at > java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:373) > > at java.util.ServiceLoader$1.next(ServiceLoader.java:445) > > at > > org.apache.hadoop.fs.FileSystem.loadFileSystems(FileSystem.java:2364) > > - locked <0x00000000faeb4fc8> (a java.lang.Class for > > org.apache.hadoop.fs.FileSystem) > > at > > org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2375) > > at > > org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2392) > > at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:89) > > at > > org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2431) > > at > org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2413) > > at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:368) > > at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:167) > > at > > org.apache.hadoop.mapred.JobConf.getWorkingDirectory(JobConf.java:587) > > at > > > org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:315) > > at > > > org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:288) > > at > > org.apache.spark.SparkContext$$anonfun$22.apply(SparkContext.scala:546) > > at > > org.apache.spark.SparkContext$$anonfun$22.apply(SparkContext.scala:546) > > at > > > org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$1.apply(HadoopRDD.scala:145) > > > > > > > > ...elided... > > > > > > "Executor task launch worker-0" daemon prio=10 tid=0x0000000001e71800 > > nid=0x2d97 waiting for monitor entry [0x00007f24d2bf1000] > > java.lang.Thread.State: BLOCKED (on object monitor) > > at > > org.apache.hadoop.fs.FileSystem.loadFileSystems(FileSystem.java:2362) > > - waiting to lock <0x00000000faeb4fc8> (a java.lang.Class for > > org.apache.hadoop.fs.FileSystem) > > at > > org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2375) > > at > > org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2392) > > at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:89) > > at > > org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2431) > > at > org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2413) > > at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:368) > > at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:167) > > at > > org.apache.hadoop.mapred.JobConf.getWorkingDirectory(JobConf.java:587) > > at > > > org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:315) > > at > > > org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:288) > > at > > org.apache.spark.SparkContext$$anonfun$22.apply(SparkContext.scala:546) > > at > > org.apache.spark.SparkContext$$anonfun$22.apply(SparkContext.scala:546) > > at > > > org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$1.apply(HadoopRDD.scala:145) > --f46d043c7faa83174e04fe313d73 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Here's the entire jstack output.


On Mon, Jul 14, 2014 at= 4:44 PM, Patrick Wendell <pwendell@gmail.com> wrote:
Hey Cody,

This Jstack seems truncated, would you mind giving the entire stack
trace? For the second thread, for instance, we can't see where the
lock is being acquired.

- Patrick

On Mon, Jul 14, 2014 at 1:42 PM, Cody Koeninger
<cody.koeninger@medi= acrossing.com> wrote:
> Hi all, just wanted to give a heads up that we're seeing a reprodu= cible
> deadlock with spark 1.0.1 with 2.3.0-mr1-cdh5.0.2
>
> If jira is a better place for this, apologies in advance - figured tal= king
> about it on the mailing list was friendlier than randomly (re)opening = jira
> tickets.
>
> I know Gary had mentioned some issues with 1.0.1 on the mailing list, = once
> we got a thread dump I wanted to follow up.
>
> The thread dump shows the deadlock occurs in the synchronized block of= code
> that was changed in HadoopRDD.scala, for the Spark-1097 issue
>
> Relevant portions of the thread dump are summarized below, we can prov= ide
> the whole dump if it's useful.
>
> Found one Java-level deadlock:
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D
> "Executor task launch worker-1":
> =C2=A0 waiting to lock monitor 0x00007f250400c520 (object 0x00000000fa= e7dc30, a
> org.apache.h= adoop.co
> nf.Configuration),
> =C2=A0 which is held by "Executor task launch worker-0"
> "Executor task launch worker-0":
> =C2=A0 waiting to lock monitor 0x00007f2520495620 (object 0x00000000fa= eb4fc8, a
> java.lang.Class),
> =C2=A0 which is held by "Executor task launch worker-1"
>
>
> "Executor task launch worker-1":
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.conf.Configuration.reloadConfiguration(Configuration= .java:791)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 - waiting to lock <0x00000000fae7dc30&g= t; (a
> org.apache.hadoop.conf.Configuration)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.conf.Configuration.addDefaultResource(Configuration.= java:690)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 - locked <0x00000000faca6ff8> (a jav= a.lang.Class for
> org.apache.hadoop.conf.Configurati
> on)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.hdfs.HdfsConfiguration.<clinit>(HdfsConfigurat= ion.java:34)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.hdfs.DistributedFileSystem.<clinit>(Distribute= dFileSystem.java:110
> )
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at sun.reflect.NativeConstructorAccessorIm= pl.newInstance0(Native
> Method)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructo= rAccessorImpl.
> java:57)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at sun.reflect.NativeConstructorAccessorIm= pl.newInstance0(Native
> Method)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructo= rAccessorImpl.
> java:57)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingCo= nstructorAcces
> sorImpl.java:45)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at java.lang.reflect.Constructor.newInstan= ce(Constructor.java:525)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at java.lang.Class.newInstance0(Class.java= :374)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at java.lang.Class.newInstance(Class.java:= 327)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at java.util.ServiceLoader$LazyIterator.ne= xt(ServiceLoader.java:373)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at java.util.ServiceLoader$1.next(ServiceL= oader.java:445)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.fs.FileSystem.loadFileSystems(FileSystem.java:2364)<= br> > =C2=A0 =C2=A0 =C2=A0 =C2=A0 - locked <0x00000000faeb4fc8> (a jav= a.lang.Class for
> org.apache.hadoop.fs.FileSystem)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:237= 5)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2392)=
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at org.apache.hadoop.fs.FileSystem.access$= 200(FileSystem.java:89)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2431= )
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at org.apache.hadoop.fs.FileSystem$Cache.g= et(FileSystem.java:2413)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at org.apache.hadoop.fs.FileSystem.get(Fil= eSystem.java:368)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at org.apache.hadoop.fs.FileSystem.get(Fil= eSystem.java:167)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.mapred.JobConf.getWorkingDirectory(JobConf.java:587)=
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat= .java:315)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat= .java:288)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.spark.SparkContext$$anonfun$22.apply(SparkContext.scala:546= )
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.spark.SparkContext$$anonfun$22.apply(SparkContext.scala:546= )
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$1.apply(HadoopRDD.s= cala:145)
>
>
>
> ...elided...
>
>
> "Executor task launch worker-0" daemon prio=3D10 tid=3D0x000= 0000001e71800
> nid=3D0x2d97 waiting for monitor entry [0x00007f24d2bf1000]
> =C2=A0 =C2=A0java.lang.Thread.State: BLOCKED (on object monitor)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.fs.FileSystem.loadFileSystems(FileSystem.java:2362)<= br> > =C2=A0 =C2=A0 =C2=A0 =C2=A0 - waiting to lock <0x00000000faeb4fc8&g= t; (a java.lang.Class for
> org.apache.hadoop.fs.FileSystem)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:237= 5)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2392)=
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at org.apache.hadoop.fs.FileSystem.access$= 200(FileSystem.java:89)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2431= )
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at org.apache.hadoop.fs.FileSystem$Cache.g= et(FileSystem.java:2413)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at org.apache.hadoop.fs.FileSystem.get(Fil= eSystem.java:368)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at org.apache.hadoop.fs.FileSystem.get(Fil= eSystem.java:167)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.mapred.JobConf.getWorkingDirectory(JobConf.java:587)=
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat= .java:315)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat= .java:288)
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.spark.SparkContext$$anonfun$22.apply(SparkContext.scala:546= )
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.spark.SparkContext$$anonfun$22.apply(SparkContext.scala:546= )
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 at
> org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$1.apply(HadoopRDD.s= cala:145)

--f46d043c7faa83174e04fe313d73-- --f46d043c7faa83175204fe313d75 Content-Type: text/plain; charset=US-ASCII; name="hung_spark_jstack2.txt" Content-Disposition: attachment; filename="hung_spark_jstack2.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hxmjbail0 MjAxNC0wNy0xNCAyMDowMDo1NQpGdWxsIHRocmVhZCBkdW1wIEphdmEgSG90U3BvdChUTSkgNjQt Qml0IFNlcnZlciBWTSAoMjMuMjEtYjAxIG1peGVkIG1vZGUpOgoKIkF0dGFjaCBMaXN0ZW5lciIg ZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdmMjRmODAwMTAwMCBuaWQ9MHgyZTBjIHdhaXRpbmcg b24gY29uZGl0aW9uIFsweDAwMDAwMDAwMDAwMDAwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3Rh dGU6IFJVTk5BQkxFCgoic3BhcmstYWtrYS5hY3Rvci5kZWZhdWx0LWRpc3BhdGNoZXItMTMiIGRh ZW1vbiBwcmlvPTEwIHRpZD0weDAwMDA3ZjI0ZWMwMWU4MDAgbmlkPTB4MmQ5YyB3YWl0aW5nIG9u IGNvbmRpdGlvbiBbMHgwMDAwN2YyNGQyNWYxMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRl OiBXQUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhv ZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDBmYjAxYzA3OD4gKGEgYWtrYS5k aXNwYXRjaC5Gb3JrSm9pbkV4ZWN1dG9yQ29uZmlndXJhdG9yJEFra2FGb3JrSm9pblBvb2wpCglh dCBzY2FsYS5jb25jdXJyZW50LmZvcmtqb2luLkZvcmtKb2luUG9vbC5zY2FuKEZvcmtKb2luUG9v bC5qYXZhOjIwNzUpCglhdCBzY2FsYS5jb25jdXJyZW50LmZvcmtqb2luLkZvcmtKb2luUG9vbC5y dW5Xb3JrZXIoRm9ya0pvaW5Qb29sLmphdmE6MTk3OSkKCWF0IHNjYWxhLmNvbmN1cnJlbnQuZm9y a2pvaW4uRm9ya0pvaW5Xb3JrZXJUaHJlYWQucnVuKEZvcmtKb2luV29ya2VyVGhyZWFkLmphdmE6 MTA3KQoKIkV4ZWN1dG9yIHRhc2sgbGF1bmNoIHdvcmtlci0xIiBkYWVtb24gcHJpbz0xMCB0aWQ9 MHgwMDAwMDAwMDAxZTc4ODAwIG5pZD0weDJkOTggd2FpdGluZyBmb3IgbW9uaXRvciBlbnRyeSBb MHgwMDAwN2YyNGQyOWYwMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBCTE9DS0VEIChv biBvYmplY3QgbW9uaXRvcikKCWF0IG9yZy5hcGFjaGUuaGFkb29wLmNvbmYuQ29uZmlndXJhdGlv bi5yZWxvYWRDb25maWd1cmF0aW9uKENvbmZpZ3VyYXRpb24uamF2YTo3OTEpCgktIHdhaXRpbmcg dG8gbG9jayA8MHgwMDAwMDAwMGZhZTdkYzMwPiAoYSBvcmcuYXBhY2hlLmhhZG9vcC5jb25mLkNv bmZpZ3VyYXRpb24pCglhdCBvcmcuYXBhY2hlLmhhZG9vcC5jb25mLkNvbmZpZ3VyYXRpb24uYWRk RGVmYXVsdFJlc291cmNlKENvbmZpZ3VyYXRpb24uamF2YTo2OTApCgktIGxvY2tlZCA8MHgwMDAw MDAwMGZhY2E2ZmY4PiAoYSBqYXZhLmxhbmcuQ2xhc3MgZm9yIG9yZy5hcGFjaGUuaGFkb29wLmNv bmYuQ29uZmlndXJhdGlvbikKCWF0IG9yZy5hcGFjaGUuaGFkb29wLmhkZnMuSGRmc0NvbmZpZ3Vy YXRpb24uPGNsaW5pdD4oSGRmc0NvbmZpZ3VyYXRpb24uamF2YTozNCkKCWF0IG9yZy5hcGFjaGUu aGFkb29wLmhkZnMuRGlzdHJpYnV0ZWRGaWxlU3lzdGVtLjxjbGluaXQ+KERpc3RyaWJ1dGVkRmls ZVN5c3RlbS5qYXZhOjExMCkKCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZUNvbnN0cnVjdG9yQWNjZXNz b3JJbXBsLm5ld0luc3RhbmNlMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZl Q29uc3RydWN0b3JBY2Nlc3NvckltcGwubmV3SW5zdGFuY2UoTmF0aXZlQ29uc3RydWN0b3JBY2Nl c3NvckltcGwuamF2YTo1NykKCWF0IHN1bi5yZWZsZWN0LkRlbGVnYXRpbmdDb25zdHJ1Y3RvckFj Y2Vzc29ySW1wbC5uZXdJbnN0YW5jZShEZWxlZ2F0aW5nQ29uc3RydWN0b3JBY2Nlc3NvckltcGwu amF2YTo0NSkKCWF0IGphdmEubGFuZy5yZWZsZWN0LkNvbnN0cnVjdG9yLm5ld0luc3RhbmNlKENv bnN0cnVjdG9yLmphdmE6NTI1KQoJYXQgamF2YS5sYW5nLkNsYXNzLm5ld0luc3RhbmNlMChDbGFz cy5qYXZhOjM3NCkKCWF0IGphdmEubGFuZy5DbGFzcy5uZXdJbnN0YW5jZShDbGFzcy5qYXZhOjMy NykKCWF0IGphdmEudXRpbC5TZXJ2aWNlTG9hZGVyJExhenlJdGVyYXRvci5uZXh0KFNlcnZpY2VM b2FkZXIuamF2YTozNzMpCglhdCBqYXZhLnV0aWwuU2VydmljZUxvYWRlciQxLm5leHQoU2Vydmlj ZUxvYWRlci5qYXZhOjQ0NSkKCWF0IG9yZy5hcGFjaGUuaGFkb29wLmZzLkZpbGVTeXN0ZW0ubG9h ZEZpbGVTeXN0ZW1zKEZpbGVTeXN0ZW0uamF2YToyMzY0KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDBm YWViNGZjOD4gKGEgamF2YS5sYW5nLkNsYXNzIGZvciBvcmcuYXBhY2hlLmhhZG9vcC5mcy5GaWxl U3lzdGVtKQoJYXQgb3JnLmFwYWNoZS5oYWRvb3AuZnMuRmlsZVN5c3RlbS5nZXRGaWxlU3lzdGVt Q2xhc3MoRmlsZVN5c3RlbS5qYXZhOjIzNzUpCglhdCBvcmcuYXBhY2hlLmhhZG9vcC5mcy5GaWxl U3lzdGVtLmNyZWF0ZUZpbGVTeXN0ZW0oRmlsZVN5c3RlbS5qYXZhOjIzOTIpCglhdCBvcmcuYXBh Y2hlLmhhZG9vcC5mcy5GaWxlU3lzdGVtLmFjY2VzcyQyMDAoRmlsZVN5c3RlbS5qYXZhOjg5KQoJ YXQgb3JnLmFwYWNoZS5oYWRvb3AuZnMuRmlsZVN5c3RlbSRDYWNoZS5nZXRJbnRlcm5hbChGaWxl U3lzdGVtLmphdmE6MjQzMSkKCWF0IG9yZy5hcGFjaGUuaGFkb29wLmZzLkZpbGVTeXN0ZW0kQ2Fj aGUuZ2V0KEZpbGVTeXN0ZW0uamF2YToyNDEzKQoJYXQgb3JnLmFwYWNoZS5oYWRvb3AuZnMuRmls ZVN5c3RlbS5nZXQoRmlsZVN5c3RlbS5qYXZhOjM2OCkKCWF0IG9yZy5hcGFjaGUuaGFkb29wLmZz LkZpbGVTeXN0ZW0uZ2V0KEZpbGVTeXN0ZW0uamF2YToxNjcpCglhdCBvcmcuYXBhY2hlLmhhZG9v cC5tYXByZWQuSm9iQ29uZi5nZXRXb3JraW5nRGlyZWN0b3J5KEpvYkNvbmYuamF2YTo1ODcpCglh dCBvcmcuYXBhY2hlLmhhZG9vcC5tYXByZWQuRmlsZUlucHV0Rm9ybWF0LnNldElucHV0UGF0aHMo RmlsZUlucHV0Rm9ybWF0LmphdmE6MzE1KQoJYXQgb3JnLmFwYWNoZS5oYWRvb3AubWFwcmVkLkZp bGVJbnB1dEZvcm1hdC5zZXRJbnB1dFBhdGhzKEZpbGVJbnB1dEZvcm1hdC5qYXZhOjI4OCkKCWF0 IG9yZy5hcGFjaGUuc3BhcmsuU3BhcmtDb250ZXh0JCRhbm9uZnVuJDIyLmFwcGx5KFNwYXJrQ29u dGV4dC5zY2FsYTo1NDYpCglhdCBvcmcuYXBhY2hlLnNwYXJrLlNwYXJrQ29udGV4dCQkYW5vbmZ1 biQyMi5hcHBseShTcGFya0NvbnRleHQuc2NhbGE6NTQ2KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5y ZGQuSGFkb29wUkREJCRhbm9uZnVuJGdldEpvYkNvbmYkMS5hcHBseShIYWRvb3BSREQuc2NhbGE6 MTQ1KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuSGFkb29wUkREJCRhbm9uZnVuJGdldEpvYkNv bmYkMS5hcHBseShIYWRvb3BSREQuc2NhbGE6MTQ1KQoJYXQgc2NhbGEuT3B0aW9uLm1hcChPcHRp b24uc2NhbGE6MTQ1KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuSGFkb29wUkRELmdldEpvYkNv bmYoSGFkb29wUkRELnNjYWxhOjE0NSkKCS0gbG9ja2VkIDwweDAwMDAwMDAwZmFmY2I5NTA+IChh IG9yZy5hcGFjaGUuaGFkb29wLmNvbmYuQ29uZmlndXJhdGlvbikKCWF0IG9yZy5hcGFjaGUuc3Bh cmsucmRkLkhhZG9vcFJERCQkYW5vbiQxLjxpbml0PihIYWRvb3BSREQuc2NhbGE6MTg5KQoJYXQg b3JnLmFwYWNoZS5zcGFyay5yZGQuSGFkb29wUkRELmNvbXB1dGUoSGFkb29wUkRELnNjYWxhOjE4 NCkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLkhhZG9vcFJERC5jb21wdXRlKEhhZG9vcFJERC5z Y2FsYTo5MykKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5jb21wdXRlT3JSZWFkQ2hlY2tw b2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELml0ZXJhdG9y KFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5NYXBwZWRSREQuY29tcHV0 ZShNYXBwZWRSREQuc2NhbGE6MzEpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuY29tcHV0 ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRk LlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5p b25QYXJ0aXRpb24uaXRlcmF0b3IoVW5pb25SREQuc2NhbGE6MzMpCglhdCBvcmcuYXBhY2hlLnNw YXJrLnJkZC5VbmlvblJERC5jb21wdXRlKFVuaW9uUkRELnNjYWxhOjc0KQoJYXQgb3JnLmFwYWNo ZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRDaGVja3BvaW50KFJERC5zY2FsYToyNjIpCglh dCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0IG9y Zy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUGFydGl0aW9uLml0ZXJhdG9yKFVuaW9uUkRELnNjYWxh OjMzKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25SREQuY29tcHV0ZShVbmlvblJERC5z Y2FsYTo3NCkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5jb21wdXRlT3JSZWFkQ2hlY2tw b2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELml0ZXJhdG9y KFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblBhcnRpdGlvbi5p dGVyYXRvcihVbmlvblJERC5zY2FsYTozMykKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9u UkRELmNvbXB1dGUoVW5pb25SREQuc2NhbGE6NzQpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5S REQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0IG9yZy5hcGFjaGUu c3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3JnLmFwYWNoZS5zcGFy ay5yZGQuVW5pb25QYXJ0aXRpb24uaXRlcmF0b3IoVW5pb25SREQuc2NhbGE6MzMpCglhdCBvcmcu YXBhY2hlLnNwYXJrLnJkZC5VbmlvblJERC5jb21wdXRlKFVuaW9uUkRELnNjYWxhOjc0KQoJYXQg b3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRDaGVja3BvaW50KFJERC5zY2Fs YToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0b3IoUkRELnNjYWxhOjIy OSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUGFydGl0aW9uLml0ZXJhdG9yKFVuaW9u UkRELnNjYWxhOjMzKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25SREQuY29tcHV0ZShV bmlvblJERC5zY2FsYTo3NCkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5jb21wdXRlT3JS ZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRE Lml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblBh cnRpdGlvbi5pdGVyYXRvcihVbmlvblJERC5zY2FsYTozMykKCWF0IG9yZy5hcGFjaGUuc3Bhcmsu cmRkLlVuaW9uUkRELmNvbXB1dGUoVW5pb25SREQuc2NhbGE6NzQpCglhdCBvcmcuYXBhY2hlLnNw YXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0IG9y Zy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3JnLmFw YWNoZS5zcGFyay5yZGQuVW5pb25QYXJ0aXRpb24uaXRlcmF0b3IoVW5pb25SREQuc2NhbGE6MzMp CglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblJERC5jb21wdXRlKFVuaW9uUkRELnNjYWxh Ojc0KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRDaGVja3BvaW50 KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0b3IoUkRE LnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUGFydGl0aW9uLml0ZXJh dG9yKFVuaW9uUkRELnNjYWxhOjMzKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25SREQu Y29tcHV0ZShVbmlvblJERC5zY2FsYTo3NCkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5j b21wdXRlT3JSZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5zcGFy ay5yZGQuUkRELml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJk ZC5VbmlvblBhcnRpdGlvbi5pdGVyYXRvcihVbmlvblJERC5zY2FsYTozMykKCWF0IG9yZy5hcGFj aGUuc3BhcmsucmRkLlVuaW9uUkRELmNvbXB1dGUoVW5pb25SREQuc2NhbGE6NzQpCglhdCBvcmcu YXBhY2hlLnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2 MikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJ YXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25QYXJ0aXRpb24uaXRlcmF0b3IoVW5pb25SREQu c2NhbGE6MzMpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblJERC5jb21wdXRlKFVuaW9u UkRELnNjYWxhOjc0KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRD aGVja3BvaW50KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRl cmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUGFydGl0 aW9uLml0ZXJhdG9yKFVuaW9uUkRELnNjYWxhOjMzKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQu VW5pb25SREQuY29tcHV0ZShVbmlvblJERC5zY2FsYTo3NCkKCWF0IG9yZy5hcGFjaGUuc3Bhcmsu cmRkLlJERC5jb21wdXRlT3JSZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFw YWNoZS5zcGFyay5yZGQuUkRELml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hl LnNwYXJrLnJkZC5VbmlvblBhcnRpdGlvbi5pdGVyYXRvcihVbmlvblJERC5zY2FsYTozMykKCWF0 IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUkRELmNvbXB1dGUoVW5pb25SREQuc2NhbGE6NzQp CglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRE LnNjYWxhOjI2MikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2Nh bGE6MjI5KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuTWFwcGVkUkRELmNvbXB1dGUoTWFwcGVk UkRELnNjYWxhOjMxKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRD aGVja3BvaW50KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRl cmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLkZpbHRlcmVkUkRE LmNvbXB1dGUoRmlsdGVyZWRSREQuc2NhbGE6MzQpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5S REQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0IG9yZy5hcGFjaGUu c3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3JnLmFwYWNoZS5zcGFy ay5zY2hlZHVsZXIuUmVzdWx0VGFzay5ydW5UYXNrKFJlc3VsdFRhc2suc2NhbGE6MTExKQoJYXQg b3JnLmFwYWNoZS5zcGFyay5zY2hlZHVsZXIuVGFzay5ydW4oVGFzay5zY2FsYTo1MSkKCWF0IG9y Zy5hcGFjaGUuc3BhcmsuZXhlY3V0b3IuRXhlY3V0b3IkVGFza1J1bm5lci5ydW4oRXhlY3V0b3Iu c2NhbGE6MTgzKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1 bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQ1KQoJYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmph dmE6NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzIyKQoKIkV4ZWN1 dG9yIHRhc2sgbGF1bmNoIHdvcmtlci0wIiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDAx ZTcxODAwIG5pZD0weDJkOTcgd2FpdGluZyBmb3IgbW9uaXRvciBlbnRyeSBbMHgwMDAwN2YyNGQy YmYxMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBCTE9DS0VEIChvbiBvYmplY3QgbW9u aXRvcikKCWF0IG9yZy5hcGFjaGUuaGFkb29wLmZzLkZpbGVTeXN0ZW0ubG9hZEZpbGVTeXN0ZW1z KEZpbGVTeXN0ZW0uamF2YToyMzYyKQoJLSB3YWl0aW5nIHRvIGxvY2sgPDB4MDAwMDAwMDBmYWVi NGZjOD4gKGEgamF2YS5sYW5nLkNsYXNzIGZvciBvcmcuYXBhY2hlLmhhZG9vcC5mcy5GaWxlU3lz dGVtKQoJYXQgb3JnLmFwYWNoZS5oYWRvb3AuZnMuRmlsZVN5c3RlbS5nZXRGaWxlU3lzdGVtQ2xh c3MoRmlsZVN5c3RlbS5qYXZhOjIzNzUpCglhdCBvcmcuYXBhY2hlLmhhZG9vcC5mcy5GaWxlU3lz dGVtLmNyZWF0ZUZpbGVTeXN0ZW0oRmlsZVN5c3RlbS5qYXZhOjIzOTIpCglhdCBvcmcuYXBhY2hl LmhhZG9vcC5mcy5GaWxlU3lzdGVtLmFjY2VzcyQyMDAoRmlsZVN5c3RlbS5qYXZhOjg5KQoJYXQg b3JnLmFwYWNoZS5oYWRvb3AuZnMuRmlsZVN5c3RlbSRDYWNoZS5nZXRJbnRlcm5hbChGaWxlU3lz dGVtLmphdmE6MjQzMSkKCWF0IG9yZy5hcGFjaGUuaGFkb29wLmZzLkZpbGVTeXN0ZW0kQ2FjaGUu Z2V0KEZpbGVTeXN0ZW0uamF2YToyNDEzKQoJYXQgb3JnLmFwYWNoZS5oYWRvb3AuZnMuRmlsZVN5 c3RlbS5nZXQoRmlsZVN5c3RlbS5qYXZhOjM2OCkKCWF0IG9yZy5hcGFjaGUuaGFkb29wLmZzLkZp bGVTeXN0ZW0uZ2V0KEZpbGVTeXN0ZW0uamF2YToxNjcpCglhdCBvcmcuYXBhY2hlLmhhZG9vcC5t YXByZWQuSm9iQ29uZi5nZXRXb3JraW5nRGlyZWN0b3J5KEpvYkNvbmYuamF2YTo1ODcpCglhdCBv cmcuYXBhY2hlLmhhZG9vcC5tYXByZWQuRmlsZUlucHV0Rm9ybWF0LnNldElucHV0UGF0aHMoRmls ZUlucHV0Rm9ybWF0LmphdmE6MzE1KQoJYXQgb3JnLmFwYWNoZS5oYWRvb3AubWFwcmVkLkZpbGVJ bnB1dEZvcm1hdC5zZXRJbnB1dFBhdGhzKEZpbGVJbnB1dEZvcm1hdC5qYXZhOjI4OCkKCWF0IG9y Zy5hcGFjaGUuc3BhcmsuU3BhcmtDb250ZXh0JCRhbm9uZnVuJDIyLmFwcGx5KFNwYXJrQ29udGV4 dC5zY2FsYTo1NDYpCglhdCBvcmcuYXBhY2hlLnNwYXJrLlNwYXJrQ29udGV4dCQkYW5vbmZ1biQy Mi5hcHBseShTcGFya0NvbnRleHQuc2NhbGE6NTQ2KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQu SGFkb29wUkREJCRhbm9uZnVuJGdldEpvYkNvbmYkMS5hcHBseShIYWRvb3BSREQuc2NhbGE6MTQ1 KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuSGFkb29wUkREJCRhbm9uZnVuJGdldEpvYkNvbmYk MS5hcHBseShIYWRvb3BSREQuc2NhbGE6MTQ1KQoJYXQgc2NhbGEuT3B0aW9uLm1hcChPcHRpb24u c2NhbGE6MTQ1KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuSGFkb29wUkRELmdldEpvYkNvbmYo SGFkb29wUkRELnNjYWxhOjE0NSkKCS0gbG9ja2VkIDwweDAwMDAwMDAwZmFlN2RjMzA+IChhIG9y Zy5hcGFjaGUuaGFkb29wLmNvbmYuQ29uZmlndXJhdGlvbikKCWF0IG9yZy5hcGFjaGUuc3Bhcmsu cmRkLkhhZG9vcFJERCQkYW5vbiQxLjxpbml0PihIYWRvb3BSREQuc2NhbGE6MTg5KQoJYXQgb3Jn LmFwYWNoZS5zcGFyay5yZGQuSGFkb29wUkRELmNvbXB1dGUoSGFkb29wUkRELnNjYWxhOjE4NCkK CWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLkhhZG9vcFJERC5jb21wdXRlKEhhZG9vcFJERC5zY2Fs YTo5MykKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5jb21wdXRlT3JSZWFkQ2hlY2twb2lu dChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELml0ZXJhdG9yKFJE RC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5NYXBwZWRSREQuY29tcHV0ZShN YXBwZWRSREQuc2NhbGE6MzEpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuY29tcHV0ZU9y UmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJE RC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25Q YXJ0aXRpb24uaXRlcmF0b3IoVW5pb25SREQuc2NhbGE6MzMpCglhdCBvcmcuYXBhY2hlLnNwYXJr LnJkZC5VbmlvblJERC5jb21wdXRlKFVuaW9uUkRELnNjYWxhOjc0KQoJYXQgb3JnLmFwYWNoZS5z cGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRDaGVja3BvaW50KFJERC5zY2FsYToyNjIpCglhdCBv cmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0IG9yZy5h cGFjaGUuc3BhcmsucmRkLlVuaW9uUGFydGl0aW9uLml0ZXJhdG9yKFVuaW9uUkRELnNjYWxhOjMz KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25SREQuY29tcHV0ZShVbmlvblJERC5zY2Fs YTo3NCkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5jb21wdXRlT3JSZWFkQ2hlY2twb2lu dChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELml0ZXJhdG9yKFJE RC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblBhcnRpdGlvbi5pdGVy YXRvcihVbmlvblJERC5zY2FsYTozMykKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUkRE LmNvbXB1dGUoVW5pb25SREQuc2NhbGE6NzQpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQu Y29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0IG9yZy5hcGFjaGUuc3Bh cmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5y ZGQuVW5pb25QYXJ0aXRpb24uaXRlcmF0b3IoVW5pb25SREQuc2NhbGE6MzMpCglhdCBvcmcuYXBh Y2hlLnNwYXJrLnJkZC5VbmlvblJERC5jb21wdXRlKFVuaW9uUkRELnNjYWxhOjc0KQoJYXQgb3Jn LmFwYWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRDaGVja3BvaW50KFJERC5zY2FsYToy NjIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0b3IoUkRELnNjYWxhOjIyOSkK CWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUGFydGl0aW9uLml0ZXJhdG9yKFVuaW9uUkRE LnNjYWxhOjMzKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25SREQuY29tcHV0ZShVbmlv blJERC5zY2FsYTo3NCkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5jb21wdXRlT3JSZWFk Q2hlY2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELml0 ZXJhdG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblBhcnRp dGlvbi5pdGVyYXRvcihVbmlvblJERC5zY2FsYTozMykKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRk LlVuaW9uUkRELmNvbXB1dGUoVW5pb25SREQuc2NhbGE6NzQpCglhdCBvcmcuYXBhY2hlLnNwYXJr LnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0IG9yZy5h cGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3JnLmFwYWNo ZS5zcGFyay5yZGQuVW5pb25QYXJ0aXRpb24uaXRlcmF0b3IoVW5pb25SREQuc2NhbGE6MzMpCglh dCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblJERC5jb21wdXRlKFVuaW9uUkRELnNjYWxhOjc0 KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRDaGVja3BvaW50KFJE RC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0b3IoUkRELnNj YWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUGFydGl0aW9uLml0ZXJhdG9y KFVuaW9uUkRELnNjYWxhOjMzKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25SREQuY29t cHV0ZShVbmlvblJERC5zY2FsYTo3NCkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5jb21w dXRlT3JSZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5y ZGQuUkRELml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5V bmlvblBhcnRpdGlvbi5pdGVyYXRvcihVbmlvblJERC5zY2FsYTozMykKCWF0IG9yZy5hcGFjaGUu c3BhcmsucmRkLlVuaW9uUkRELmNvbXB1dGUoVW5pb25SREQuc2NhbGE6NzQpCglhdCBvcmcuYXBh Y2hlLnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2MikK CWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJYXQg b3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25QYXJ0aXRpb24uaXRlcmF0b3IoVW5pb25SREQuc2Nh bGE6MzMpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblJERC5jb21wdXRlKFVuaW9uUkRE LnNjYWxhOjc0KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRDaGVj a3BvaW50KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0 b3IoUkRELnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUGFydGl0aW9u Lml0ZXJhdG9yKFVuaW9uUkRELnNjYWxhOjMzKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5p b25SREQuY29tcHV0ZShVbmlvblJERC5zY2FsYTo3NCkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRk LlJERC5jb21wdXRlT3JSZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNo ZS5zcGFyay5yZGQuUkRELml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNw YXJrLnJkZC5VbmlvblBhcnRpdGlvbi5pdGVyYXRvcihVbmlvblJERC5zY2FsYTozMykKCWF0IG9y Zy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUkRELmNvbXB1dGUoVW5pb25SREQuc2NhbGE6NzQpCglh dCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNj YWxhOjI2MikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6 MjI5KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25QYXJ0aXRpb24uaXRlcmF0b3IoVW5p b25SREQuc2NhbGE6MzMpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblJERC5jb21wdXRl KFVuaW9uUkRELnNjYWxhOjc0KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVP clJlYWRDaGVja3BvaW50KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5S REQuaXRlcmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9u UGFydGl0aW9uLml0ZXJhdG9yKFVuaW9uUkRELnNjYWxhOjMzKQoJYXQgb3JnLmFwYWNoZS5zcGFy ay5yZGQuVW5pb25SREQuY29tcHV0ZShVbmlvblJERC5zY2FsYTo3NCkKCWF0IG9yZy5hcGFjaGUu c3BhcmsucmRkLlJERC5jb21wdXRlT3JSZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQg b3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcu YXBhY2hlLnNwYXJrLnJkZC5VbmlvblBhcnRpdGlvbi5pdGVyYXRvcihVbmlvblJERC5zY2FsYToz MykKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUkRELmNvbXB1dGUoVW5pb25SREQuc2Nh bGE6NzQpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9p bnQoUkRELnNjYWxhOjI2MikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihS REQuc2NhbGE6MjI5KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25QYXJ0aXRpb24uaXRl cmF0b3IoVW5pb25SREQuc2NhbGE6MzMpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblJE RC5jb21wdXRlKFVuaW9uUkRELnNjYWxhOjc0KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRE LmNvbXB1dGVPclJlYWRDaGVja3BvaW50KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNw YXJrLnJkZC5SREQuaXRlcmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3Bhcmsu cmRkLk1hcHBlZFJERC5jb21wdXRlKE1hcHBlZFJERC5zY2FsYTozMSkKCWF0IG9yZy5hcGFjaGUu c3BhcmsucmRkLlJERC5jb21wdXRlT3JSZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQg b3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcu YXBhY2hlLnNwYXJrLnJkZC5GaWx0ZXJlZFJERC5jb21wdXRlKEZpbHRlcmVkUkRELnNjYWxhOjM0 KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRDaGVja3BvaW50KFJE RC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0b3IoUkRELnNj YWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3Bhcmsuc2NoZWR1bGVyLlJlc3VsdFRhc2sucnVuVGFz ayhSZXN1bHRUYXNrLnNjYWxhOjExMSkKCWF0IG9yZy5hcGFjaGUuc3Bhcmsuc2NoZWR1bGVyLlRh c2sucnVuKFRhc2suc2NhbGE6NTEpCglhdCBvcmcuYXBhY2hlLnNwYXJrLmV4ZWN1dG9yLkV4ZWN1 dG9yJFRhc2tSdW5uZXIucnVuKEV4ZWN1dG9yLnNjYWxhOjE4MykKCWF0IGphdmEudXRpbC5jb25j dXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmph dmE6MTE0NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3Jr ZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0IGphdmEubGFuZy5UaHJlYWQu cnVuKFRocmVhZC5qYXZhOjcyMikKCiJxdHA4MDU4NDc4ODgtNDAiIGRhZW1vbiBwcmlvPTEwIHRp ZD0weDAwMDAwMDAwMDFkYjAwMDAgbmlkPTB4MmQ5NiB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgw MDAwN2YyNGQyZGY1MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5H IChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFy a2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDBmYjAxZjcyOD4gKGEgamF2YS51dGlsLmNvbmN1 cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0KQoJ YXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tT dXBwb3J0LmphdmE6MjI2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RR dWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0TmFub3MoQWJzdHJhY3RRdWV1 ZWRTeW5jaHJvbml6ZXIuamF2YToyMDgyKQoJYXQgb3JnLmVjbGlwc2UuamV0dHkudXRpbC5CbG9j a2luZ0FycmF5UXVldWUucG9sbChCbG9ja2luZ0FycmF5UXVldWUuamF2YTozNDIpCglhdCBvcmcu ZWNsaXBzZS5qZXR0eS51dGlsLnRocmVhZC5RdWV1ZWRUaHJlYWRQb29sLmlkbGVKb2JQb2xsKFF1 ZXVlZFRocmVhZFBvb2wuamF2YTo1MjYpCglhdCBvcmcuZWNsaXBzZS5qZXR0eS51dGlsLnRocmVh ZC5RdWV1ZWRUaHJlYWRQb29sLmFjY2VzcyQ2MDAoUXVldWVkVGhyZWFkUG9vbC5qYXZhOjQ0KQoJ YXQgb3JnLmVjbGlwc2UuamV0dHkudXRpbC50aHJlYWQuUXVldWVkVGhyZWFkUG9vbCQzLnJ1bihR dWV1ZWRUaHJlYWRQb29sLmphdmE6NTcyKQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFk LmphdmE6NzIyKQoKInF0cDgwNTg0Nzg4OC0zOSIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDAw MDAwMWRhZTgwMCBuaWQ9MHgyZDk1IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3ZjI0ZDJm ZjYwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcp CglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdh aXQgZm9yICA8MHgwMDAwMDAwMGZiMDFmNzI4PiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nr cy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0 aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2 YToyMjYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNo cm9uaXplciRDb25kaXRpb25PYmplY3QuYXdhaXROYW5vcyhBYnN0cmFjdFF1ZXVlZFN5bmNocm9u aXplci5qYXZhOjIwODIpCglhdCBvcmcuZWNsaXBzZS5qZXR0eS51dGlsLkJsb2NraW5nQXJyYXlR dWV1ZS5wb2xsKEJsb2NraW5nQXJyYXlRdWV1ZS5qYXZhOjM0MikKCWF0IG9yZy5lY2xpcHNlLmpl dHR5LnV0aWwudGhyZWFkLlF1ZXVlZFRocmVhZFBvb2wuaWRsZUpvYlBvbGwoUXVldWVkVGhyZWFk UG9vbC5qYXZhOjUyNikKCWF0IG9yZy5lY2xpcHNlLmpldHR5LnV0aWwudGhyZWFkLlF1ZXVlZFRo cmVhZFBvb2wuYWNjZXNzJDYwMChRdWV1ZWRUaHJlYWRQb29sLmphdmE6NDQpCglhdCBvcmcuZWNs aXBzZS5qZXR0eS51dGlsLnRocmVhZC5RdWV1ZWRUaHJlYWRQb29sJDMucnVuKFF1ZXVlZFRocmVh ZFBvb2wuamF2YTo1NzIpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIp CgoicXRwODA1ODQ3ODg4LTM4IiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDAxZGFkMDAw IG5pZD0weDJkOTQgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDdmMjRkMzFmNzAwMF0KICAg amF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAocGFya2luZykKCWF0IHN1bi5t aXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDww eDAwMDAwMDAwZmIwMWY3Mjg+IChhIGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0 UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdCkKCWF0IGphdmEudXRpbC5jb25jdXJy ZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtOYW5vcyhMb2NrU3VwcG9ydC5qYXZhOjIyNikKCWF0 IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENv bmRpdGlvbk9iamVjdC5hd2FpdE5hbm9zKEFic3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6 MjA4MikKCWF0IG9yZy5lY2xpcHNlLmpldHR5LnV0aWwuQmxvY2tpbmdBcnJheVF1ZXVlLnBvbGwo QmxvY2tpbmdBcnJheVF1ZXVlLmphdmE6MzQyKQoJYXQgb3JnLmVjbGlwc2UuamV0dHkudXRpbC50 aHJlYWQuUXVldWVkVGhyZWFkUG9vbC5pZGxlSm9iUG9sbChRdWV1ZWRUaHJlYWRQb29sLmphdmE6 NTI2KQoJYXQgb3JnLmVjbGlwc2UuamV0dHkudXRpbC50aHJlYWQuUXVldWVkVGhyZWFkUG9vbC5h Y2Nlc3MkNjAwKFF1ZXVlZFRocmVhZFBvb2wuamF2YTo0NCkKCWF0IG9yZy5lY2xpcHNlLmpldHR5 LnV0aWwudGhyZWFkLlF1ZXVlZFRocmVhZFBvb2wkMy5ydW4oUXVldWVkVGhyZWFkUG9vbC5qYXZh OjU3MikKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjcyMikKCiJxdHA4MDU4 NDc4ODgtMzciIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDAwMDAwMDFkYWIwMDAgbmlkPTB4MmQ5 MyB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwN2YyNGQzM2Y4MDAwXQogICBqYXZhLmxhbmcu VGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZl LnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDBm YjAxZjcyOD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5j aHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3Mu TG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6MjI2KQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2Jq ZWN0LmF3YWl0TmFub3MoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMDgyKQoJYXQg b3JnLmVjbGlwc2UuamV0dHkudXRpbC5CbG9ja2luZ0FycmF5UXVldWUucG9sbChCbG9ja2luZ0Fy cmF5UXVldWUuamF2YTozNDIpCglhdCBvcmcuZWNsaXBzZS5qZXR0eS51dGlsLnRocmVhZC5RdWV1 ZWRUaHJlYWRQb29sLmlkbGVKb2JQb2xsKFF1ZXVlZFRocmVhZFBvb2wuamF2YTo1MjYpCglhdCBv cmcuZWNsaXBzZS5qZXR0eS51dGlsLnRocmVhZC5RdWV1ZWRUaHJlYWRQb29sLmFjY2VzcyQ2MDAo UXVldWVkVGhyZWFkUG9vbC5qYXZhOjQ0KQoJYXQgb3JnLmVjbGlwc2UuamV0dHkudXRpbC50aHJl YWQuUXVldWVkVGhyZWFkUG9vbCQzLnJ1bihRdWV1ZWRUaHJlYWRQb29sLmphdmE6NTcyKQoJYXQg amF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzIyKQoKInF0cDgwNTg0Nzg4OC0zNiIg ZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDAwMDAwMWRhOTAwMCBuaWQ9MHgyZDkyIHdhaXRpbmcg b24gY29uZGl0aW9uIFsweDAwMDA3ZjI0ZDM1ZjkwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3Rh dGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRp dmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMGZiMDFmNzI4PiAo YSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRD b25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9y dC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2YToyMjYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QuYXdhaXRO YW5vcyhBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5qYXZhOjIwODIpCglhdCBvcmcuZWNsaXBz ZS5qZXR0eS51dGlsLkJsb2NraW5nQXJyYXlRdWV1ZS5wb2xsKEJsb2NraW5nQXJyYXlRdWV1ZS5q YXZhOjM0MikKCWF0IG9yZy5lY2xpcHNlLmpldHR5LnV0aWwudGhyZWFkLlF1ZXVlZFRocmVhZFBv b2wuaWRsZUpvYlBvbGwoUXVldWVkVGhyZWFkUG9vbC5qYXZhOjUyNikKCWF0IG9yZy5lY2xpcHNl LmpldHR5LnV0aWwudGhyZWFkLlF1ZXVlZFRocmVhZFBvb2wuYWNjZXNzJDYwMChRdWV1ZWRUaHJl YWRQb29sLmphdmE6NDQpCglhdCBvcmcuZWNsaXBzZS5qZXR0eS51dGlsLnRocmVhZC5RdWV1ZWRU aHJlYWRQb29sJDMucnVuKFF1ZXVlZFRocmVhZFBvb2wuamF2YTo1NzIpCglhdCBqYXZhLmxhbmcu VGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIpCgoicXRwODA1ODQ3ODg4LTM1IiBkYWVtb24gcHJp bz0xMCB0aWQ9MHgwMDAwMDAwMDAxZGE3ODAwIG5pZD0weDJkOTEgd2FpdGluZyBvbiBjb25kaXRp b24gWzB4MDAwMDdmMjRkMzdmYTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURf V0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2Qp CgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAwZmIwMWY3Mjg+IChhIGphdmEudXRp bC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9i amVjdCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtOYW5v cyhMb2NrU3VwcG9ydC5qYXZhOjIyNikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFi c3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdC5hd2FpdE5hbm9zKEFic3Ry YWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6MjA4MikKCWF0IG9yZy5lY2xpcHNlLmpldHR5LnV0 aWwuQmxvY2tpbmdBcnJheVF1ZXVlLnBvbGwoQmxvY2tpbmdBcnJheVF1ZXVlLmphdmE6MzQyKQoJ YXQgb3JnLmVjbGlwc2UuamV0dHkudXRpbC50aHJlYWQuUXVldWVkVGhyZWFkUG9vbC5pZGxlSm9i UG9sbChRdWV1ZWRUaHJlYWRQb29sLmphdmE6NTI2KQoJYXQgb3JnLmVjbGlwc2UuamV0dHkudXRp bC50aHJlYWQuUXVldWVkVGhyZWFkUG9vbC5hY2Nlc3MkNjAwKFF1ZXVlZFRocmVhZFBvb2wuamF2 YTo0NCkKCWF0IG9yZy5lY2xpcHNlLmpldHR5LnV0aWwudGhyZWFkLlF1ZXVlZFRocmVhZFBvb2wk My5ydW4oUXVldWVkVGhyZWFkUG9vbC5qYXZhOjU3MikKCWF0IGphdmEubGFuZy5UaHJlYWQucnVu KFRocmVhZC5qYXZhOjcyMikKCiJxdHA4MDU4NDc4ODgtMzQiIGRhZW1vbiBwcmlvPTEwIHRpZD0w eDAwMDAwMDAwMDFkYTYwMDAgbmlkPTB4MmQ5MCB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAw N2YyNGQzOWZiMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChw YXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2lu ZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDBmYjAxZjcyOD4gKGEgamF2YS51dGlsLmNvbmN1cnJl bnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQg amF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBw b3J0LmphdmE6MjI2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1 ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0TmFub3MoQWJzdHJhY3RRdWV1ZWRT eW5jaHJvbml6ZXIuamF2YToyMDgyKQoJYXQgb3JnLmVjbGlwc2UuamV0dHkudXRpbC5CbG9ja2lu Z0FycmF5UXVldWUucG9sbChCbG9ja2luZ0FycmF5UXVldWUuamF2YTozNDIpCglhdCBvcmcuZWNs aXBzZS5qZXR0eS51dGlsLnRocmVhZC5RdWV1ZWRUaHJlYWRQb29sLmlkbGVKb2JQb2xsKFF1ZXVl ZFRocmVhZFBvb2wuamF2YTo1MjYpCglhdCBvcmcuZWNsaXBzZS5qZXR0eS51dGlsLnRocmVhZC5R dWV1ZWRUaHJlYWRQb29sLmFjY2VzcyQ2MDAoUXVldWVkVGhyZWFkUG9vbC5qYXZhOjQ0KQoJYXQg b3JnLmVjbGlwc2UuamV0dHkudXRpbC50aHJlYWQuUXVldWVkVGhyZWFkUG9vbCQzLnJ1bihRdWV1 ZWRUaHJlYWRQb29sLmphdmE6NTcyKQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmph dmE6NzIyKQoKInF0cDgwNTg0Nzg4OC0zMyBBY2NlcHRvcjAgU29ja2V0Q29ubmVjdG9yQDAuMC4w LjA6NTIxMzMiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDAwMDAwMDFkYTQwMDAgbmlkPTB4MmQ4 ZiBydW5uYWJsZSBbMHgwMDAwN2YyNGQzYmZjMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRl OiBSVU5OQUJMRQoJYXQgamF2YS5uZXQuUGxhaW5Tb2NrZXRJbXBsLnNvY2tldEFjY2VwdChOYXRp dmUgTWV0aG9kKQoJYXQgamF2YS5uZXQuQWJzdHJhY3RQbGFpblNvY2tldEltcGwuYWNjZXB0KEFi c3RyYWN0UGxhaW5Tb2NrZXRJbXBsLmphdmE6Mzk4KQoJYXQgamF2YS5uZXQuU2VydmVyU29ja2V0 LmltcGxBY2NlcHQoU2VydmVyU29ja2V0LmphdmE6NTIyKQoJYXQgamF2YS5uZXQuU2VydmVyU29j a2V0LmFjY2VwdChTZXJ2ZXJTb2NrZXQuamF2YTo0OTApCglhdCBvcmcuZWNsaXBzZS5qZXR0eS5z ZXJ2ZXIuYmlvLlNvY2tldENvbm5lY3Rvci5hY2NlcHQoU29ja2V0Q29ubmVjdG9yLmphdmE6MTE3 KQoJYXQgb3JnLmVjbGlwc2UuamV0dHkuc2VydmVyLkFic3RyYWN0Q29ubmVjdG9yJEFjY2VwdG9y LnJ1bihBYnN0cmFjdENvbm5lY3Rvci5qYXZhOjkzOCkKCWF0IG9yZy5lY2xpcHNlLmpldHR5LnV0 aWwudGhyZWFkLlF1ZXVlZFRocmVhZFBvb2wucnVuSm9iKFF1ZXVlZFRocmVhZFBvb2wuamF2YTo2 MDgpCglhdCBvcmcuZWNsaXBzZS5qZXR0eS51dGlsLnRocmVhZC5RdWV1ZWRUaHJlYWRQb29sJDMu cnVuKFF1ZXVlZFRocmVhZFBvb2wuamF2YTo1NDMpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihU aHJlYWQuamF2YTo3MjIpCgoiSFRUUF9CUk9BRENBU1QgY2xlYW51cCB0aW1lciIgZGFlbW9uIHBy aW89MTAgdGlkPTB4MDAwMDAwMDAwMWQ2ZjAwMCBuaWQ9MHgyZDhlIGluIE9iamVjdC53YWl0KCkg WzB4MDAwMDdmMjRkM2RmZDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAo b24gb2JqZWN0IG1vbml0b3IpCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoTmF0aXZlIE1ldGhv ZCkKCS0gd2FpdGluZyBvbiA8MHgwMDAwMDAwMGZiMGRlMmQ4PiAoYSBqYXZhLnV0aWwuVGFza1F1 ZXVlKQoJYXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE9iamVjdC5qYXZhOjUwMykKCWF0IGphdmEu dXRpbC5UaW1lclRocmVhZC5tYWluTG9vcChUaW1lci5qYXZhOjUyNikKCS0gbG9ja2VkIDwweDAw MDAwMDAwZmIwZGUyZDg+IChhIGphdmEudXRpbC5UYXNrUXVldWUpCglhdCBqYXZhLnV0aWwuVGlt ZXJUaHJlYWQucnVuKFRpbWVyLmphdmE6NTA1KQoKIkNvbm5lY3Rpb24gbWFuYWdlciBmdXR1cmUg ZXhlY3V0aW9uIGNvbnRleHQtMCIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDAwMDAwMWQ2YTAw MCBuaWQ9MHgyZDhkIHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3ZjI0ZDNmZmUwMDBdCiAg IGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4u bWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8 MHgwMDAwMDAwMGZiMDBhY2EwPiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5TeW5jaHJvbm91c1F1 ZXVlJFRyYW5zZmVyU3RhY2spCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3Vw cG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2YToyMjYpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5TeW5jaHJvbm91c1F1ZXVlJFRyYW5zZmVyU3RhY2suYXdhaXRGdWxmaWxsKFN5bmNocm9u b3VzUXVldWUuamF2YTo0NjApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TeW5jaHJvbm91c1F1 ZXVlJFRyYW5zZmVyU3RhY2sudHJhbnNmZXIoU3luY2hyb25vdXNRdWV1ZS5qYXZhOjM1OSkKCWF0 IGphdmEudXRpbC5jb25jdXJyZW50LlN5bmNocm9ub3VzUXVldWUucG9sbChTeW5jaHJvbm91c1F1 ZXVlLmphdmE6OTQyKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9y LmdldFRhc2soVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTA2OCkKCWF0IGphdmEudXRpbC5jb25j dXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmph dmE6MTEzMCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3Jr ZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0IGphdmEubGFuZy5UaHJlYWQu cnVuKFRocmVhZC5qYXZhOjcyMikKCiJCUk9BRENBU1RfVkFSUyBjbGVhbnVwIHRpbWVyIiBkYWVt b24gcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDAxZDVmODAwIG5pZD0weDJkOGMgaW4gT2JqZWN0Lndh aXQoKSBbMHgwMDAwN2YyNGQ4MjgzMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBXQUlU SU5HIChvbiBvYmplY3QgbW9uaXRvcikKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChOYXRpdmUg TWV0aG9kKQoJLSB3YWl0aW5nIG9uIDwweDAwMDAwMDAwZmIwMGI5MTg+IChhIGphdmEudXRpbC5U YXNrUXVldWUpCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoT2JqZWN0LmphdmE6NTAzKQoJYXQg amF2YS51dGlsLlRpbWVyVGhyZWFkLm1haW5Mb29wKFRpbWVyLmphdmE6NTI2KQoJLSBsb2NrZWQg PDB4MDAwMDAwMDBmYjAwYjkxOD4gKGEgamF2YS51dGlsLlRhc2tRdWV1ZSkKCWF0IGphdmEudXRp bC5UaW1lclRocmVhZC5ydW4oVGltZXIuamF2YTo1MDUpCgoiQkxPQ0tfTUFOQUdFUiBjbGVhbnVw IHRpbWVyIiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDAxZDVlODAwIG5pZD0weDJkOGIg aW4gT2JqZWN0LndhaXQoKSBbMHgwMDAwN2YyNGQ4NDg0MDAwXQogICBqYXZhLmxhbmcuVGhyZWFk LlN0YXRlOiBXQUlUSU5HIChvbiBvYmplY3QgbW9uaXRvcikKCWF0IGphdmEubGFuZy5PYmplY3Qu d2FpdChOYXRpdmUgTWV0aG9kKQoJLSB3YWl0aW5nIG9uIDwweDAwMDAwMDAwZmIwMGI1NTg+IChh IGphdmEudXRpbC5UYXNrUXVldWUpCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoT2JqZWN0Lmph dmE6NTAzKQoJYXQgamF2YS51dGlsLlRpbWVyVGhyZWFkLm1haW5Mb29wKFRpbWVyLmphdmE6NTI2 KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDBmYjAwYjU1OD4gKGEgamF2YS51dGlsLlRhc2tRdWV1ZSkK CWF0IGphdmEudXRpbC5UaW1lclRocmVhZC5ydW4oVGltZXIuamF2YTo1MDUpCgoiY29ubmVjdGlv bi1tYW5hZ2VyLXRocmVhZCIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDAwMDAwMWQ1YTAwMCBu aWQ9MHgyZDhhIHJ1bm5hYmxlIFsweDAwMDA3ZjI0ZDg2ODUwMDBdCiAgIGphdmEubGFuZy5UaHJl YWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFwcGVyLmVwb2xs V2FpdChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5FUG9sbEFycmF5V3JhcHBlci5wb2xs KEVQb2xsQXJyYXlXcmFwcGVyLmphdmE6MjI4KQoJYXQgc3VuLm5pby5jaC5FUG9sbFNlbGVjdG9y SW1wbC5kb1NlbGVjdChFUG9sbFNlbGVjdG9ySW1wbC5qYXZhOjgxKQoJYXQgc3VuLm5pby5jaC5T ZWxlY3RvckltcGwubG9ja0FuZERvU2VsZWN0KFNlbGVjdG9ySW1wbC5qYXZhOjg3KQoJLSBsb2Nr ZWQgPDB4MDAwMDAwMDBmYjAwYTEzOD4gKGEgc3VuLm5pby5jaC5VdGlsJDIpCgktIGxvY2tlZCA8 MHgwMDAwMDAwMGZiMDBhMTI4PiAoYSBqYXZhLnV0aWwuQ29sbGVjdGlvbnMkVW5tb2RpZmlhYmxl U2V0KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDBmYjAwOWM3MD4gKGEgc3VuLm5pby5jaC5FUG9sbFNl bGVjdG9ySW1wbCkKCWF0IHN1bi5uaW8uY2guU2VsZWN0b3JJbXBsLnNlbGVjdChTZWxlY3Rvcklt cGwuamF2YTo5OCkKCWF0IHN1bi5uaW8uY2guU2VsZWN0b3JJbXBsLnNlbGVjdChTZWxlY3Rvcklt cGwuamF2YToxMDIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLm5ldHdvcmsuQ29ubmVjdGlvbk1hbmFn ZXIucnVuKENvbm5lY3Rpb25NYW5hZ2VyLnNjYWxhOjMwMykKCWF0IG9yZy5hcGFjaGUuc3Bhcmsu bmV0d29yay5Db25uZWN0aW9uTWFuYWdlciQkYW5vbiQ0LnJ1bihDb25uZWN0aW9uTWFuYWdlci5z Y2FsYToxMTYpCgoiU0hVRkZMRV9CTE9DS19NQU5BR0VSIGNsZWFudXAgdGltZXIiIGRhZW1vbiBw cmlvPTEwIHRpZD0weDAwMDAwMDAwMDFkMGQ4MDAgbmlkPTB4MmQ4OSBpbiBPYmplY3Qud2FpdCgp IFsweDAwMDA3ZjI0ZDg4ODYwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFdBSVRJTkcg KG9uIG9iamVjdCBtb25pdG9yKQoJYXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRo b2QpCgktIHdhaXRpbmcgb24gPDB4MDAwMDAwMDBmYWM4MWU5OD4gKGEgamF2YS51dGlsLlRhc2tR dWV1ZSkKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChPYmplY3QuamF2YTo1MDMpCglhdCBqYXZh LnV0aWwuVGltZXJUaHJlYWQubWFpbkxvb3AoVGltZXIuamF2YTo1MjYpCgktIGxvY2tlZCA8MHgw MDAwMDAwMGZhYzgxZTk4PiAoYSBqYXZhLnV0aWwuVGFza1F1ZXVlKQoJYXQgamF2YS51dGlsLlRp bWVyVGhyZWFkLnJ1bihUaW1lci5qYXZhOjUwNSkKCiJIYXNoZWQgd2hlZWwgdGltZXIgIzEiIGRh ZW1vbiBwcmlvPTEwIHRpZD0weDAwMDA3ZjI0ZjAxMGY4MDAgbmlkPTB4MmQ4OCB3YWl0aW5nIG9u IGNvbmRpdGlvbiBbMHgwMDAwN2YyNGQ4YTg3MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRl OiBUSU1FRF9XQUlUSU5HIChzbGVlcGluZykKCWF0IGphdmEubGFuZy5UaHJlYWQuc2xlZXAoTmF0 aXZlIE1ldGhvZCkKCWF0IG9yZy5qYm9zcy5uZXR0eS51dGlsLkhhc2hlZFdoZWVsVGltZXIkV29y a2VyLndhaXRGb3JOZXh0VGljayhIYXNoZWRXaGVlbFRpbWVyLmphdmE6NTAzKQoJYXQgb3JnLmpi b3NzLm5ldHR5LnV0aWwuSGFzaGVkV2hlZWxUaW1lciRXb3JrZXIucnVuKEhhc2hlZFdoZWVsVGlt ZXIuamF2YTo0MDEpCglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5UaHJlYWRSZW5hbWluZ1J1bm5h YmxlLnJ1bihUaHJlYWRSZW5hbWluZ1J1bm5hYmxlLmphdmE6MTA4KQoJYXQgamF2YS5sYW5nLlRo cmVhZC5ydW4oVGhyZWFkLmphdmE6NzIyKQoKIk5ldyBJL08gc2VydmVyIGJvc3MgIzYiIGRhZW1v biBwcmlvPTEwIHRpZD0weDAwMDA3ZjI0ZTAxMjE4MDAgbmlkPTB4MmQ4NyBydW5uYWJsZSBbMHgw MDAwN2YyNGQ4Yzg4MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQg c3VuLm5pby5jaC5FUG9sbEFycmF5V3JhcHBlci5lcG9sbFdhaXQoTmF0aXZlIE1ldGhvZCkKCWF0 IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBwZXIucG9sbChFUG9sbEFycmF5V3JhcHBlci5qYXZh OjIyOCkKCWF0IHN1bi5uaW8uY2guRVBvbGxTZWxlY3RvckltcGwuZG9TZWxlY3QoRVBvbGxTZWxl Y3RvckltcGwuamF2YTo4MSkKCWF0IHN1bi5uaW8uY2guU2VsZWN0b3JJbXBsLmxvY2tBbmREb1Nl bGVjdChTZWxlY3RvckltcGwuamF2YTo4NykKCS0gbG9ja2VkIDwweDAwMDAwMDAwZmFiY2I5ODA+ IChhIHN1bi5uaW8uY2guVXRpbCQyKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDBmYWJjYjk3MD4gKGEg amF2YS51dGlsLkNvbGxlY3Rpb25zJFVubW9kaWZpYWJsZVNldCkKCS0gbG9ja2VkIDwweDAwMDAw MDAwZmFiY2I1MDA+IChhIHN1bi5uaW8uY2guRVBvbGxTZWxlY3RvckltcGwpCglhdCBzdW4ubmlv LmNoLlNlbGVjdG9ySW1wbC5zZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6OTgpCglhdCBzdW4ubmlv LmNoLlNlbGVjdG9ySW1wbC5zZWxlY3QoU2VsZWN0b3JJbXBsLmphdmE6MTAyKQoJYXQgb3JnLmpi b3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5OaW9TZXJ2ZXJCb3NzLnNlbGVjdChOaW9TZXJ2 ZXJCb3NzLmphdmE6MTYzKQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5B YnN0cmFjdE5pb1NlbGVjdG9yLnJ1bihBYnN0cmFjdE5pb1NlbGVjdG9yLmphdmE6MjA2KQoJYXQg b3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5OaW9TZXJ2ZXJCb3NzLnJ1bihOaW9T ZXJ2ZXJCb3NzLmphdmE6NDIpCglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5UaHJlYWRSZW5hbWlu Z1J1bm5hYmxlLnJ1bihUaHJlYWRSZW5hbWluZ1J1bm5hYmxlLmphdmE6MTA4KQoJYXQgb3JnLmpi b3NzLm5ldHR5LnV0aWwuaW50ZXJuYWwuRGVhZExvY2tQcm9vZldvcmtlciQxLnJ1bihEZWFkTG9j a1Byb29mV29ya2VyLmphdmE6NDIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29s RXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDUpCglhdCBqYXZh LnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29s RXhlY3V0b3IuamF2YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3 MjIpCgoiTmV3IEkvTyB3b3JrZXIgIzUiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDA3ZjI0ZTAx MTA4MDAgbmlkPTB4MmQ4NiBydW5uYWJsZSBbMHgwMDAwN2YyNGQ4ZTg5MDAwXQogICBqYXZhLmxh bmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5pby5jaC5FUG9sbEFycmF5V3JhcHBl ci5lcG9sbFdhaXQoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBw ZXIucG9sbChFUG9sbEFycmF5V3JhcHBlci5qYXZhOjIyOCkKCWF0IHN1bi5uaW8uY2guRVBvbGxT ZWxlY3RvckltcGwuZG9TZWxlY3QoRVBvbGxTZWxlY3RvckltcGwuamF2YTo4MSkKCWF0IHN1bi5u aW8uY2guU2VsZWN0b3JJbXBsLmxvY2tBbmREb1NlbGVjdChTZWxlY3RvckltcGwuamF2YTo4NykK CS0gbG9ja2VkIDwweDAwMDAwMDAwZmFiY2E2MTg+IChhIHN1bi5uaW8uY2guVXRpbCQyKQoJLSBs b2NrZWQgPDB4MDAwMDAwMDBmYWJjYTYwOD4gKGEgamF2YS51dGlsLkNvbGxlY3Rpb25zJFVubW9k aWZpYWJsZVNldCkKCS0gbG9ja2VkIDwweDAwMDAwMDAwZmFiY2EzZDg+IChhIHN1bi5uaW8uY2gu RVBvbGxTZWxlY3RvckltcGwpCglhdCBzdW4ubmlvLmNoLlNlbGVjdG9ySW1wbC5zZWxlY3QoU2Vs ZWN0b3JJbXBsLmphdmE6OTgpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlv LlNlbGVjdG9yVXRpbC5zZWxlY3QoU2VsZWN0b3JVdGlsLmphdmE6NjQpCglhdCBvcmcuamJvc3Mu bmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLkFic3RyYWN0TmlvU2VsZWN0b3Iuc2VsZWN0KEFic3Ry YWN0TmlvU2VsZWN0b3IuamF2YTo0MDkpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2Nr ZXQubmlvLkFic3RyYWN0TmlvU2VsZWN0b3IucnVuKEFic3RyYWN0TmlvU2VsZWN0b3IuamF2YToy MDYpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLkFic3RyYWN0TmlvV29y a2VyLnJ1bihBYnN0cmFjdE5pb1dvcmtlci5qYXZhOjkwKQoJYXQgb3JnLmpib3NzLm5ldHR5LmNo YW5uZWwuc29ja2V0Lm5pby5OaW9Xb3JrZXIucnVuKE5pb1dvcmtlci5qYXZhOjE3OCkKCWF0IG9y Zy5qYm9zcy5uZXR0eS51dGlsLlRocmVhZFJlbmFtaW5nUnVubmFibGUucnVuKFRocmVhZFJlbmFt aW5nUnVubmFibGUuamF2YToxMDgpCglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5pbnRlcm5hbC5E ZWFkTG9ja1Byb29mV29ya2VyJDEucnVuKERlYWRMb2NrUHJvb2ZXb3JrZXIuamF2YTo0MikKCWF0 IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFk UG9vbEV4ZWN1dG9yLmphdmE6MTE0NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBv b2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0IGph dmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjcyMikKCiJOZXcgSS9PIHdvcmtlciAjNCIg ZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdmMjRlMDBhMTAwMCBuaWQ9MHgyZDg1IHJ1bm5hYmxl IFsweDAwMDA3ZjI0ZDkwOGEwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxF CglhdCBzdW4ubmlvLmNoLkVQb2xsQXJyYXlXcmFwcGVyLmVwb2xsV2FpdChOYXRpdmUgTWV0aG9k KQoJYXQgc3VuLm5pby5jaC5FUG9sbEFycmF5V3JhcHBlci5wb2xsKEVQb2xsQXJyYXlXcmFwcGVy LmphdmE6MjI4KQoJYXQgc3VuLm5pby5jaC5FUG9sbFNlbGVjdG9ySW1wbC5kb1NlbGVjdChFUG9s bFNlbGVjdG9ySW1wbC5qYXZhOjgxKQoJYXQgc3VuLm5pby5jaC5TZWxlY3RvckltcGwubG9ja0Fu ZERvU2VsZWN0KFNlbGVjdG9ySW1wbC5qYXZhOjg3KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDBmYWJj YWI5OD4gKGEgc3VuLm5pby5jaC5VdGlsJDIpCgktIGxvY2tlZCA8MHgwMDAwMDAwMGZhYmNhYjg4 PiAoYSBqYXZhLnV0aWwuQ29sbGVjdGlvbnMkVW5tb2RpZmlhYmxlU2V0KQoJLSBsb2NrZWQgPDB4 MDAwMDAwMDBmYWJjYTk2OD4gKGEgc3VuLm5pby5jaC5FUG9sbFNlbGVjdG9ySW1wbCkKCWF0IHN1 bi5uaW8uY2guU2VsZWN0b3JJbXBsLnNlbGVjdChTZWxlY3RvckltcGwuamF2YTo5OCkKCWF0IG9y Zy5qYm9zcy5uZXR0eS5jaGFubmVsLnNvY2tldC5uaW8uU2VsZWN0b3JVdGlsLnNlbGVjdChTZWxl Y3RvclV0aWwuamF2YTo2NCkKCWF0IG9yZy5qYm9zcy5uZXR0eS5jaGFubmVsLnNvY2tldC5uaW8u QWJzdHJhY3ROaW9TZWxlY3Rvci5zZWxlY3QoQWJzdHJhY3ROaW9TZWxlY3Rvci5qYXZhOjQwOSkK CWF0IG9yZy5qYm9zcy5uZXR0eS5jaGFubmVsLnNvY2tldC5uaW8uQWJzdHJhY3ROaW9TZWxlY3Rv ci5ydW4oQWJzdHJhY3ROaW9TZWxlY3Rvci5qYXZhOjIwNikKCWF0IG9yZy5qYm9zcy5uZXR0eS5j aGFubmVsLnNvY2tldC5uaW8uQWJzdHJhY3ROaW9Xb3JrZXIucnVuKEFic3RyYWN0TmlvV29ya2Vy LmphdmE6OTApCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLk5pb1dvcmtl ci5ydW4oTmlvV29ya2VyLmphdmE6MTc4KQoJYXQgb3JnLmpib3NzLm5ldHR5LnV0aWwuVGhyZWFk UmVuYW1pbmdSdW5uYWJsZS5ydW4oVGhyZWFkUmVuYW1pbmdSdW5uYWJsZS5qYXZhOjEwOCkKCWF0 IG9yZy5qYm9zcy5uZXR0eS51dGlsLmludGVybmFsLkRlYWRMb2NrUHJvb2ZXb3JrZXIkMS5ydW4o RGVhZExvY2tQcm9vZldvcmtlci5qYXZhOjQyKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhy ZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQ1KQoJ YXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhy ZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFk LmphdmE6NzIyKQoKIk5ldyBJL08gYm9zcyAjMyIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdm MjRlMDA5MzgwMCBuaWQ9MHgyZDg0IHJ1bm5hYmxlIFsweDAwMDA3ZjI0ZDkyOGIwMDBdCiAgIGph dmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkVQb2xsQXJyYXlX cmFwcGVyLmVwb2xsV2FpdChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5FUG9sbEFycmF5 V3JhcHBlci5wb2xsKEVQb2xsQXJyYXlXcmFwcGVyLmphdmE6MjI4KQoJYXQgc3VuLm5pby5jaC5F UG9sbFNlbGVjdG9ySW1wbC5kb1NlbGVjdChFUG9sbFNlbGVjdG9ySW1wbC5qYXZhOjgxKQoJYXQg c3VuLm5pby5jaC5TZWxlY3RvckltcGwubG9ja0FuZERvU2VsZWN0KFNlbGVjdG9ySW1wbC5qYXZh Ojg3KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDBmYWJkNTY0OD4gKGEgc3VuLm5pby5jaC5VdGlsJDIp CgktIGxvY2tlZCA8MHgwMDAwMDAwMGZhYmQ1NjM4PiAoYSBqYXZhLnV0aWwuQ29sbGVjdGlvbnMk VW5tb2RpZmlhYmxlU2V0KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDBmYWJkNTNlOD4gKGEgc3VuLm5p by5jaC5FUG9sbFNlbGVjdG9ySW1wbCkKCWF0IHN1bi5uaW8uY2guU2VsZWN0b3JJbXBsLnNlbGVj dChTZWxlY3RvckltcGwuamF2YTo5OCkKCWF0IG9yZy5qYm9zcy5uZXR0eS5jaGFubmVsLnNvY2tl dC5uaW8uU2VsZWN0b3JVdGlsLnNlbGVjdChTZWxlY3RvclV0aWwuamF2YTo2NCkKCWF0IG9yZy5q Ym9zcy5uZXR0eS5jaGFubmVsLnNvY2tldC5uaW8uQWJzdHJhY3ROaW9TZWxlY3Rvci5zZWxlY3Qo QWJzdHJhY3ROaW9TZWxlY3Rvci5qYXZhOjQwOSkKCWF0IG9yZy5qYm9zcy5uZXR0eS5jaGFubmVs LnNvY2tldC5uaW8uQWJzdHJhY3ROaW9TZWxlY3Rvci5ydW4oQWJzdHJhY3ROaW9TZWxlY3Rvci5q YXZhOjIwNikKCWF0IG9yZy5qYm9zcy5uZXR0eS5jaGFubmVsLnNvY2tldC5uaW8uTmlvQ2xpZW50 Qm9zcy5ydW4oTmlvQ2xpZW50Qm9zcy5qYXZhOjQyKQoJYXQgb3JnLmpib3NzLm5ldHR5LnV0aWwu VGhyZWFkUmVuYW1pbmdSdW5uYWJsZS5ydW4oVGhyZWFkUmVuYW1pbmdSdW5uYWJsZS5qYXZhOjEw OCkKCWF0IG9yZy5qYm9zcy5uZXR0eS51dGlsLmludGVybmFsLkRlYWRMb2NrUHJvb2ZXb3JrZXIk MS5ydW4oRGVhZExvY2tQcm9vZldvcmtlci5qYXZhOjQyKQoJYXQgamF2YS51dGlsLmNvbmN1cnJl bnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTox MTQ1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5y dW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4o VGhyZWFkLmphdmE6NzIyKQoKIk5ldyBJL08gd29ya2VyICMyIiBkYWVtb24gcHJpbz0xMCB0aWQ9 MHgwMDAwN2YyNGUwMDQ0ODAwIG5pZD0weDJkODMgcnVubmFibGUgWzB4MDAwMDdmMjRkOTQ4YzAw MF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRVBv bGxBcnJheVdyYXBwZXIuZXBvbGxXYWl0KE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLkVQ b2xsQXJyYXlXcmFwcGVyLnBvbGwoRVBvbGxBcnJheVdyYXBwZXIuamF2YToyMjgpCglhdCBzdW4u bmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsLmRvU2VsZWN0KEVQb2xsU2VsZWN0b3JJbXBsLmphdmE6 ODEpCglhdCBzdW4ubmlvLmNoLlNlbGVjdG9ySW1wbC5sb2NrQW5kRG9TZWxlY3QoU2VsZWN0b3JJ bXBsLmphdmE6ODcpCgktIGxvY2tlZCA8MHgwMDAwMDAwMGZhYzVmYmE4PiAoYSBzdW4ubmlvLmNo LlV0aWwkMikKCS0gbG9ja2VkIDwweDAwMDAwMDAwZmFjNWZiOTg+IChhIGphdmEudXRpbC5Db2xs ZWN0aW9ucyRVbm1vZGlmaWFibGVTZXQpCgktIGxvY2tlZCA8MHgwMDAwMDAwMGZhYzVmOTc4PiAo YSBzdW4ubmlvLmNoLkVQb2xsU2VsZWN0b3JJbXBsKQoJYXQgc3VuLm5pby5jaC5TZWxlY3Rvcklt cGwuc2VsZWN0KFNlbGVjdG9ySW1wbC5qYXZhOjk4KQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5u ZWwuc29ja2V0Lm5pby5TZWxlY3RvclV0aWwuc2VsZWN0KFNlbGVjdG9yVXRpbC5qYXZhOjY0KQoJ YXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5BYnN0cmFjdE5pb1NlbGVjdG9y LnNlbGVjdChBYnN0cmFjdE5pb1NlbGVjdG9yLmphdmE6NDA5KQoJYXQgb3JnLmpib3NzLm5ldHR5 LmNoYW5uZWwuc29ja2V0Lm5pby5BYnN0cmFjdE5pb1NlbGVjdG9yLnJ1bihBYnN0cmFjdE5pb1Nl bGVjdG9yLmphdmE6MjA2KQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0Lm5pby5B YnN0cmFjdE5pb1dvcmtlci5ydW4oQWJzdHJhY3ROaW9Xb3JrZXIuamF2YTo5MCkKCWF0IG9yZy5q Ym9zcy5uZXR0eS5jaGFubmVsLnNvY2tldC5uaW8uTmlvV29ya2VyLnJ1bihOaW9Xb3JrZXIuamF2 YToxNzgpCglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5UaHJlYWRSZW5hbWluZ1J1bm5hYmxlLnJ1 bihUaHJlYWRSZW5hbWluZ1J1bm5hYmxlLmphdmE6MTA4KQoJYXQgb3JnLmpib3NzLm5ldHR5LnV0 aWwuaW50ZXJuYWwuRGVhZExvY2tQcm9vZldvcmtlciQxLnJ1bihEZWFkTG9ja1Byb29mV29ya2Vy LmphdmE6NDIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVu V29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDUpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2 YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIpCgoiTmV3IEkv TyB3b3JrZXIgIzEiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDA3ZjI0ZTAwMjYwMDAgbmlkPTB4 MmQ4MiBydW5uYWJsZSBbMHgwMDAwN2YyNGQ5NjhkMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0 YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5pby5jaC5FUG9sbEFycmF5V3JhcHBlci5lcG9sbFdhaXQo TmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8uY2guRVBvbGxBcnJheVdyYXBwZXIucG9sbChFUG9s bEFycmF5V3JhcHBlci5qYXZhOjIyOCkKCWF0IHN1bi5uaW8uY2guRVBvbGxTZWxlY3RvckltcGwu ZG9TZWxlY3QoRVBvbGxTZWxlY3RvckltcGwuamF2YTo4MSkKCWF0IHN1bi5uaW8uY2guU2VsZWN0 b3JJbXBsLmxvY2tBbmREb1NlbGVjdChTZWxlY3RvckltcGwuamF2YTo4NykKCS0gbG9ja2VkIDww eDAwMDAwMDAwZmFjNWY1Zjg+IChhIHN1bi5uaW8uY2guVXRpbCQyKQoJLSBsb2NrZWQgPDB4MDAw MDAwMDBmYWM1ZjVlOD4gKGEgamF2YS51dGlsLkNvbGxlY3Rpb25zJFVubW9kaWZpYWJsZVNldCkK CS0gbG9ja2VkIDwweDAwMDAwMDAwZmFjNWYxNjA+IChhIHN1bi5uaW8uY2guRVBvbGxTZWxlY3Rv ckltcGwpCglhdCBzdW4ubmlvLmNoLlNlbGVjdG9ySW1wbC5zZWxlY3QoU2VsZWN0b3JJbXBsLmph dmE6OTgpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLlNlbGVjdG9yVXRp bC5zZWxlY3QoU2VsZWN0b3JVdGlsLmphdmE6NjQpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5l bC5zb2NrZXQubmlvLkFic3RyYWN0TmlvU2VsZWN0b3Iuc2VsZWN0KEFic3RyYWN0TmlvU2VsZWN0 b3IuamF2YTo0MDkpCglhdCBvcmcuamJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLkFic3Ry YWN0TmlvU2VsZWN0b3IucnVuKEFic3RyYWN0TmlvU2VsZWN0b3IuamF2YToyMDYpCglhdCBvcmcu amJvc3MubmV0dHkuY2hhbm5lbC5zb2NrZXQubmlvLkFic3RyYWN0TmlvV29ya2VyLnJ1bihBYnN0 cmFjdE5pb1dvcmtlci5qYXZhOjkwKQoJYXQgb3JnLmpib3NzLm5ldHR5LmNoYW5uZWwuc29ja2V0 Lm5pby5OaW9Xb3JrZXIucnVuKE5pb1dvcmtlci5qYXZhOjE3OCkKCWF0IG9yZy5qYm9zcy5uZXR0 eS51dGlsLlRocmVhZFJlbmFtaW5nUnVubmFibGUucnVuKFRocmVhZFJlbmFtaW5nUnVubmFibGUu amF2YToxMDgpCglhdCBvcmcuamJvc3MubmV0dHkudXRpbC5pbnRlcm5hbC5EZWFkTG9ja1Byb29m V29ya2VyJDEucnVuKERlYWRMb2NrUHJvb2ZXb3JrZXIuamF2YTo0MikKCWF0IGphdmEudXRpbC5j b25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9y LmphdmE6MTE0NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRX b3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0IGphdmEubGFuZy5UaHJl YWQucnVuKFRocmVhZC5qYXZhOjcyMikKCiJzcGFyay1ha2thLmFjdG9yLmRlZmF1bHQtZGlzcGF0 Y2hlci01IiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAwN2YyNGUwMDAxODAwIG5pZD0weDJkODEg d2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDdmMjRmYzNjYzAwMF0KICAgamF2YS5sYW5nLlRo cmVhZC5TdGF0ZTogV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5h dGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAwZmIwMWMwNzg+ IChhIGFra2EuZGlzcGF0Y2guRm9ya0pvaW5FeGVjdXRvckNvbmZpZ3VyYXRvciRBa2thRm9ya0pv aW5Qb29sKQoJYXQgc2NhbGEuY29uY3VycmVudC5mb3Jram9pbi5Gb3JrSm9pblBvb2wuc2NhbihG b3JrSm9pblBvb2wuamF2YToyMDc1KQoJYXQgc2NhbGEuY29uY3VycmVudC5mb3Jram9pbi5Gb3Jr Sm9pblBvb2wucnVuV29ya2VyKEZvcmtKb2luUG9vbC5qYXZhOjE5NzkpCglhdCBzY2FsYS5jb25j dXJyZW50LmZvcmtqb2luLkZvcmtKb2luV29ya2VyVGhyZWFkLnJ1bihGb3JrSm9pbldvcmtlclRo cmVhZC5qYXZhOjEwNykKCiJzcGFyay1ha2thLmFjdG9yLmRlZmF1bHQtZGlzcGF0Y2hlci00IiBk YWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDAxYzVjODAwIG5pZD0weDJkODAgd2FpdGluZyBv biBjb25kaXRpb24gWzB4MDAwMDdmMjRmYzVjZDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0 ZTogVElNRURfV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2 ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAwZmIwMWMwNzg+IChh IGFra2EuZGlzcGF0Y2guRm9ya0pvaW5FeGVjdXRvckNvbmZpZ3VyYXRvciRBa2thRm9ya0pvaW5Q b29sKQoJYXQgc2NhbGEuY29uY3VycmVudC5mb3Jram9pbi5Gb3JrSm9pblBvb2wuaWRsZUF3YWl0 V29yayhGb3JrSm9pblBvb2wuamF2YToyMTM1KQoJYXQgc2NhbGEuY29uY3VycmVudC5mb3Jram9p bi5Gb3JrSm9pblBvb2wuc2NhbihGb3JrSm9pblBvb2wuamF2YToyMDY3KQoJYXQgc2NhbGEuY29u Y3VycmVudC5mb3Jram9pbi5Gb3JrSm9pblBvb2wucnVuV29ya2VyKEZvcmtKb2luUG9vbC5qYXZh OjE5NzkpCglhdCBzY2FsYS5jb25jdXJyZW50LmZvcmtqb2luLkZvcmtKb2luV29ya2VyVGhyZWFk LnJ1bihGb3JrSm9pbldvcmtlclRocmVhZC5qYXZhOjEwNykKCiJzcGFyay1ha2thLmFjdG9yLmRl ZmF1bHQtZGlzcGF0Y2hlci0zIiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDAxYzViODAw IG5pZD0weDJkN2Ygd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDdmMjRmYzdjZTAwMF0KICAg amF2YS5sYW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVu c2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAw MDAwZmIwMWMwNzg+IChhIGFra2EuZGlzcGF0Y2guRm9ya0pvaW5FeGVjdXRvckNvbmZpZ3VyYXRv ciRBa2thRm9ya0pvaW5Qb29sKQoJYXQgc2NhbGEuY29uY3VycmVudC5mb3Jram9pbi5Gb3JrSm9p blBvb2wuc2NhbihGb3JrSm9pblBvb2wuamF2YToyMDc1KQoJYXQgc2NhbGEuY29uY3VycmVudC5m b3Jram9pbi5Gb3JrSm9pblBvb2wucnVuV29ya2VyKEZvcmtKb2luUG9vbC5qYXZhOjE5NzkpCglh dCBzY2FsYS5jb25jdXJyZW50LmZvcmtqb2luLkZvcmtKb2luV29ya2VyVGhyZWFkLnJ1bihGb3Jr Sm9pbldvcmtlclRocmVhZC5qYXZhOjEwNykKCiJzcGFyay1ha2thLmFjdG9yLmRlZmF1bHQtZGlz cGF0Y2hlci0yIiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAwMDAwMDAxYzRhODAwIG5pZD0weDJk N2Ugd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDdmMjRmYzljZjAwMF0KICAgamF2YS5sYW5n LlRocmVhZC5TdGF0ZTogV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJr KE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAwZmIwMWMw Nzg+IChhIGFra2EuZGlzcGF0Y2guRm9ya0pvaW5FeGVjdXRvckNvbmZpZ3VyYXRvciRBa2thRm9y a0pvaW5Qb29sKQoJYXQgc2NhbGEuY29uY3VycmVudC5mb3Jram9pbi5Gb3JrSm9pblBvb2wuc2Nh bihGb3JrSm9pblBvb2wuamF2YToyMDc1KQoJYXQgc2NhbGEuY29uY3VycmVudC5mb3Jram9pbi5G b3JrSm9pblBvb2wucnVuV29ya2VyKEZvcmtKb2luUG9vbC5qYXZhOjE5NzkpCglhdCBzY2FsYS5j b25jdXJyZW50LmZvcmtqb2luLkZvcmtKb2luV29ya2VyVGhyZWFkLnJ1bihGb3JrSm9pbldvcmtl clRocmVhZC5qYXZhOjEwNykKCiJzcGFyay1zY2hlZHVsZXItMSIgZGFlbW9uIHByaW89MTAgdGlk PTB4MDAwMDAwMDAwMWJkMjgwMCBuaWQ9MHgyZDdkIHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAw MDA3ZjI0ZmQyMDIwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcg KHNsZWVwaW5nKQoJYXQgamF2YS5sYW5nLlRocmVhZC5zbGVlcChOYXRpdmUgTWV0aG9kKQoJYXQg YWtrYS5hY3Rvci5MaWdodEFycmF5UmV2b2x2ZXJTY2hlZHVsZXIud2FpdE5hbm9zKFNjaGVkdWxl ci5zY2FsYToyMjYpCglhdCBha2thLmFjdG9yLkxpZ2h0QXJyYXlSZXZvbHZlclNjaGVkdWxlciQk YW5vbiQxMi5uZXh0VGljayhTY2hlZHVsZXIuc2NhbGE6MzkzKQoJYXQgYWtrYS5hY3Rvci5MaWdo dEFycmF5UmV2b2x2ZXJTY2hlZHVsZXIkJGFub24kMTIucnVuKFNjaGVkdWxlci5zY2FsYTozNjMp CglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjIpCgoiU2VydmljZSBUaHJl YWQiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDA3ZjI1MjAwZWE4MDAgbmlkPTB4MmQzNCBydW5u YWJsZSBbMHgwMDAwMDAwMDAwMDAwMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5O QUJMRQoKIkMyIENvbXBpbGVyVGhyZWFkMSIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdmMjUy MDBlODAwMCBuaWQ9MHgyZDMzIHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDAwMDAwMDAwMDAw MDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCgoiQzIgQ29tcGlsZXJUaHJl YWQwIiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAwN2YyNTIwMGU1ODAwIG5pZD0weDJkMzIgd2Fp dGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDAwMDAwMDAwMDAwMF0KICAgamF2YS5sYW5nLlRocmVh ZC5TdGF0ZTogUlVOTkFCTEUKCiJTaWduYWwgRGlzcGF0Y2hlciIgZGFlbW9uIHByaW89MTAgdGlk PTB4MDAwMDdmMjUyMDBlMzAwMCBuaWQ9MHgyZDMxIHJ1bm5hYmxlIFsweDAwMDAwMDAwMDAwMDAw MDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCgoiRmluYWxpemVyIiBkYWVt b24gcHJpbz0xMCB0aWQ9MHgwMDAwN2YyNTIwMDk2ODAwIG5pZD0weDJkMzAgaW4gT2JqZWN0Lndh aXQoKSBbMHgwMDAwN2YyNTE0ODkyMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBXQUlU SU5HIChvbiBvYmplY3QgbW9uaXRvcikKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChOYXRpdmUg TWV0aG9kKQoJLSB3YWl0aW5nIG9uIDwweDAwMDAwMDAwZmFlZTJhOTg+IChhIGphdmEubGFuZy5y ZWYuUmVmZXJlbmNlUXVldWUkTG9jaykKCWF0IGphdmEubGFuZy5yZWYuUmVmZXJlbmNlUXVldWUu cmVtb3ZlKFJlZmVyZW5jZVF1ZXVlLmphdmE6MTM1KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDBmYWVl MmE5OD4gKGEgamF2YS5sYW5nLnJlZi5SZWZlcmVuY2VRdWV1ZSRMb2NrKQoJYXQgamF2YS5sYW5n LnJlZi5SZWZlcmVuY2VRdWV1ZS5yZW1vdmUoUmVmZXJlbmNlUXVldWUuamF2YToxNTEpCglhdCBq YXZhLmxhbmcucmVmLkZpbmFsaXplciRGaW5hbGl6ZXJUaHJlYWQucnVuKEZpbmFsaXplci5qYXZh OjE4OSkKCiJSZWZlcmVuY2UgSGFuZGxlciIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdmMjUy MDA5NDAwMCBuaWQ9MHgyZDJmIGluIE9iamVjdC53YWl0KCkgWzB4MDAwMDdmMjUxNGE5MzAwMF0K ICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAob24gb2JqZWN0IG1vbml0b3IpCglh dCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoTmF0aXZlIE1ldGhvZCkKCS0gd2FpdGluZyBvbiA8MHgw MDAwMDAwMGZhZWUyNGIwPiAoYSBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZSRMb2NrKQoJYXQgamF2 YS5sYW5nLk9iamVjdC53YWl0KE9iamVjdC5qYXZhOjUwMykKCWF0IGphdmEubGFuZy5yZWYuUmVm ZXJlbmNlJFJlZmVyZW5jZUhhbmRsZXIucnVuKFJlZmVyZW5jZS5qYXZhOjEzMykKCS0gbG9ja2Vk IDwweDAwMDAwMDAwZmFlZTI0YjA+IChhIGphdmEubGFuZy5yZWYuUmVmZXJlbmNlJExvY2spCgoi bWFpbiIgcHJpbz0xMCB0aWQ9MHgwMDAwN2YyNTIwMDA3ODAwIG5pZD0weDJkMmIgcnVubmFibGUg WzB4MDAwMDdmMjUyNDVhZjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUK CWF0IG9yZy5hcGFjaGUubWVzb3MuTWVzb3NFeGVjdXRvckRyaXZlci5qb2luKE5hdGl2ZSBNZXRo b2QpCglhdCBvcmcuYXBhY2hlLm1lc29zLk1lc29zRXhlY3V0b3JEcml2ZXIucnVuKE1lc29zRXhl Y3V0b3JEcml2ZXIuamF2YTo2NykKCWF0IG9yZy5hcGFjaGUuc3BhcmsuZXhlY3V0b3IuTWVzb3NF eGVjdXRvckJhY2tlbmQkJGFub25mdW4kbWFpbiQxLmFwcGx5JG1jViRzcChNZXNvc0V4ZWN1dG9y QmFja2VuZC5zY2FsYToxMDIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLmRlcGxveS5TcGFya0hhZG9v cFV0aWwkJGFub24kMS5ydW4oU3BhcmtIYWRvb3BVdGlsLnNjYWxhOjUzKQoJYXQgb3JnLmFwYWNo ZS5zcGFyay5kZXBsb3kuU3BhcmtIYWRvb3BVdGlsJCRhbm9uJDEucnVuKFNwYXJrSGFkb29wVXRp bC5zY2FsYTo1MikKCWF0IGphdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVn ZWQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmF4LnNlY3VyaXR5LmF1dGguU3ViamVjdC5kb0FzKFN1 YmplY3QuamF2YTo0MTUpCglhdCBvcmcuYXBhY2hlLmhhZG9vcC5zZWN1cml0eS5Vc2VyR3JvdXBJ bmZvcm1hdGlvbi5kb0FzKFVzZXJHcm91cEluZm9ybWF0aW9uLmphdmE6MTU0OCkKCWF0IG9yZy5h cGFjaGUuc3BhcmsuZGVwbG95LlNwYXJrSGFkb29wVXRpbC5ydW5Bc1NwYXJrVXNlcihTcGFya0hh ZG9vcFV0aWwuc2NhbGE6NTIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLmV4ZWN1dG9yLk1lc29zRXhl Y3V0b3JCYWNrZW5kJC5tYWluKE1lc29zRXhlY3V0b3JCYWNrZW5kLnNjYWxhOjk4KQoJYXQgb3Jn LmFwYWNoZS5zcGFyay5leGVjdXRvci5NZXNvc0V4ZWN1dG9yQmFja2VuZC5tYWluKE1lc29zRXhl Y3V0b3JCYWNrZW5kLnNjYWxhKQoKIlZNIFRocmVhZCIgcHJpbz0xMCB0aWQ9MHgwMDAwN2YyNTIw MDhjODAwIG5pZD0weDJkMmUgcnVubmFibGUgCgoiR0MgdGFzayB0aHJlYWQjMCAoUGFyYWxsZWxH QykiIHByaW89MTAgdGlkPTB4MDAwMDdmMjUyMDAxNTgwMCBuaWQ9MHgyZDJjIHJ1bm5hYmxlIAoK IkdDIHRhc2sgdGhyZWFkIzEgKFBhcmFsbGVsR0MpIiBwcmlvPTEwIHRpZD0weDAwMDA3ZjI1MjAw MTcwMDAgbmlkPTB4MmQyZCBydW5uYWJsZSAKCiJWTSBQZXJpb2RpYyBUYXNrIFRocmVhZCIgcHJp bz0xMCB0aWQ9MHgwMDAwN2YyNTIwMGY1ODAwIG5pZD0weDJkMzUgd2FpdGluZyBvbiBjb25kaXRp b24gCgpKTkkgZ2xvYmFsIHJlZmVyZW5jZXM6IDIxNwoKCkZvdW5kIG9uZSBKYXZhLWxldmVsIGRl YWRsb2NrOgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoiRXhlY3V0b3IgdGFzayBsYXVu Y2ggd29ya2VyLTEiOgogIHdhaXRpbmcgdG8gbG9jayBtb25pdG9yIDB4MDAwMDdmMjUwNDAwYzUy MCAob2JqZWN0IDB4MDAwMDAwMDBmYWU3ZGMzMCwgYSBvcmcuYXBhY2hlLmhhZG9vcC5jb25mLkNv bmZpZ3VyYXRpb24pLAogIHdoaWNoIGlzIGhlbGQgYnkgIkV4ZWN1dG9yIHRhc2sgbGF1bmNoIHdv cmtlci0wIgoiRXhlY3V0b3IgdGFzayBsYXVuY2ggd29ya2VyLTAiOgogIHdhaXRpbmcgdG8gbG9j ayBtb25pdG9yIDB4MDAwMDdmMjUyMDQ5NTYyMCAob2JqZWN0IDB4MDAwMDAwMDBmYWViNGZjOCwg YSBqYXZhLmxhbmcuQ2xhc3MpLAogIHdoaWNoIGlzIGhlbGQgYnkgIkV4ZWN1dG9yIHRhc2sgbGF1 bmNoIHdvcmtlci0xIgoKSmF2YSBzdGFjayBpbmZvcm1hdGlvbiBmb3IgdGhlIHRocmVhZHMgbGlz dGVkIGFib3ZlOgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIkV4ZWN1dG9yIHRhc2sgbGF1bmNoIHdvcmtlci0xIjoKCWF0IG9yZy5hcGFjaGUuaGFk b29wLmNvbmYuQ29uZmlndXJhdGlvbi5yZWxvYWRDb25maWd1cmF0aW9uKENvbmZpZ3VyYXRpb24u amF2YTo3OTEpCgktIHdhaXRpbmcgdG8gbG9jayA8MHgwMDAwMDAwMGZhZTdkYzMwPiAoYSBvcmcu YXBhY2hlLmhhZG9vcC5jb25mLkNvbmZpZ3VyYXRpb24pCglhdCBvcmcuYXBhY2hlLmhhZG9vcC5j b25mLkNvbmZpZ3VyYXRpb24uYWRkRGVmYXVsdFJlc291cmNlKENvbmZpZ3VyYXRpb24uamF2YTo2 OTApCgktIGxvY2tlZCA8MHgwMDAwMDAwMGZhY2E2ZmY4PiAoYSBqYXZhLmxhbmcuQ2xhc3MgZm9y IG9yZy5hcGFjaGUuaGFkb29wLmNvbmYuQ29uZmlndXJhdGlvbikKCWF0IG9yZy5hcGFjaGUuaGFk b29wLmhkZnMuSGRmc0NvbmZpZ3VyYXRpb24uPGNsaW5pdD4oSGRmc0NvbmZpZ3VyYXRpb24uamF2 YTozNCkKCWF0IG9yZy5hcGFjaGUuaGFkb29wLmhkZnMuRGlzdHJpYnV0ZWRGaWxlU3lzdGVtLjxj bGluaXQ+KERpc3RyaWJ1dGVkRmlsZVN5c3RlbS5qYXZhOjExMCkKCWF0IHN1bi5yZWZsZWN0Lk5h dGl2ZUNvbnN0cnVjdG9yQWNjZXNzb3JJbXBsLm5ld0luc3RhbmNlMChOYXRpdmUgTWV0aG9kKQoJ YXQgc3VuLnJlZmxlY3QuTmF0aXZlQ29uc3RydWN0b3JBY2Nlc3NvckltcGwubmV3SW5zdGFuY2Uo TmF0aXZlQ29uc3RydWN0b3JBY2Nlc3NvckltcGwuamF2YTo1NykKCWF0IHN1bi5yZWZsZWN0LkRl bGVnYXRpbmdDb25zdHJ1Y3RvckFjY2Vzc29ySW1wbC5uZXdJbnN0YW5jZShEZWxlZ2F0aW5nQ29u c3RydWN0b3JBY2Nlc3NvckltcGwuamF2YTo0NSkKCWF0IGphdmEubGFuZy5yZWZsZWN0LkNvbnN0 cnVjdG9yLm5ld0luc3RhbmNlKENvbnN0cnVjdG9yLmphdmE6NTI1KQoJYXQgamF2YS5sYW5nLkNs YXNzLm5ld0luc3RhbmNlMChDbGFzcy5qYXZhOjM3NCkKCWF0IGphdmEubGFuZy5DbGFzcy5uZXdJ bnN0YW5jZShDbGFzcy5qYXZhOjMyNykKCWF0IGphdmEudXRpbC5TZXJ2aWNlTG9hZGVyJExhenlJ dGVyYXRvci5uZXh0KFNlcnZpY2VMb2FkZXIuamF2YTozNzMpCglhdCBqYXZhLnV0aWwuU2Vydmlj ZUxvYWRlciQxLm5leHQoU2VydmljZUxvYWRlci5qYXZhOjQ0NSkKCWF0IG9yZy5hcGFjaGUuaGFk b29wLmZzLkZpbGVTeXN0ZW0ubG9hZEZpbGVTeXN0ZW1zKEZpbGVTeXN0ZW0uamF2YToyMzY0KQoJ LSBsb2NrZWQgPDB4MDAwMDAwMDBmYWViNGZjOD4gKGEgamF2YS5sYW5nLkNsYXNzIGZvciBvcmcu YXBhY2hlLmhhZG9vcC5mcy5GaWxlU3lzdGVtKQoJYXQgb3JnLmFwYWNoZS5oYWRvb3AuZnMuRmls ZVN5c3RlbS5nZXRGaWxlU3lzdGVtQ2xhc3MoRmlsZVN5c3RlbS5qYXZhOjIzNzUpCglhdCBvcmcu YXBhY2hlLmhhZG9vcC5mcy5GaWxlU3lzdGVtLmNyZWF0ZUZpbGVTeXN0ZW0oRmlsZVN5c3RlbS5q YXZhOjIzOTIpCglhdCBvcmcuYXBhY2hlLmhhZG9vcC5mcy5GaWxlU3lzdGVtLmFjY2VzcyQyMDAo RmlsZVN5c3RlbS5qYXZhOjg5KQoJYXQgb3JnLmFwYWNoZS5oYWRvb3AuZnMuRmlsZVN5c3RlbSRD YWNoZS5nZXRJbnRlcm5hbChGaWxlU3lzdGVtLmphdmE6MjQzMSkKCWF0IG9yZy5hcGFjaGUuaGFk b29wLmZzLkZpbGVTeXN0ZW0kQ2FjaGUuZ2V0KEZpbGVTeXN0ZW0uamF2YToyNDEzKQoJYXQgb3Jn LmFwYWNoZS5oYWRvb3AuZnMuRmlsZVN5c3RlbS5nZXQoRmlsZVN5c3RlbS5qYXZhOjM2OCkKCWF0 IG9yZy5hcGFjaGUuaGFkb29wLmZzLkZpbGVTeXN0ZW0uZ2V0KEZpbGVTeXN0ZW0uamF2YToxNjcp CglhdCBvcmcuYXBhY2hlLmhhZG9vcC5tYXByZWQuSm9iQ29uZi5nZXRXb3JraW5nRGlyZWN0b3J5 KEpvYkNvbmYuamF2YTo1ODcpCglhdCBvcmcuYXBhY2hlLmhhZG9vcC5tYXByZWQuRmlsZUlucHV0 Rm9ybWF0LnNldElucHV0UGF0aHMoRmlsZUlucHV0Rm9ybWF0LmphdmE6MzE1KQoJYXQgb3JnLmFw YWNoZS5oYWRvb3AubWFwcmVkLkZpbGVJbnB1dEZvcm1hdC5zZXRJbnB1dFBhdGhzKEZpbGVJbnB1 dEZvcm1hdC5qYXZhOjI4OCkKCWF0IG9yZy5hcGFjaGUuc3BhcmsuU3BhcmtDb250ZXh0JCRhbm9u ZnVuJDIyLmFwcGx5KFNwYXJrQ29udGV4dC5zY2FsYTo1NDYpCglhdCBvcmcuYXBhY2hlLnNwYXJr LlNwYXJrQ29udGV4dCQkYW5vbmZ1biQyMi5hcHBseShTcGFya0NvbnRleHQuc2NhbGE6NTQ2KQoJ YXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuSGFkb29wUkREJCRhbm9uZnVuJGdldEpvYkNvbmYkMS5h cHBseShIYWRvb3BSREQuc2NhbGE6MTQ1KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuSGFkb29w UkREJCRhbm9uZnVuJGdldEpvYkNvbmYkMS5hcHBseShIYWRvb3BSREQuc2NhbGE6MTQ1KQoJYXQg c2NhbGEuT3B0aW9uLm1hcChPcHRpb24uc2NhbGE6MTQ1KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5y ZGQuSGFkb29wUkRELmdldEpvYkNvbmYoSGFkb29wUkRELnNjYWxhOjE0NSkKCS0gbG9ja2VkIDww eDAwMDAwMDAwZmFmY2I5NTA+IChhIG9yZy5hcGFjaGUuaGFkb29wLmNvbmYuQ29uZmlndXJhdGlv bikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLkhhZG9vcFJERCQkYW5vbiQxLjxpbml0PihIYWRv b3BSREQuc2NhbGE6MTg5KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuSGFkb29wUkRELmNvbXB1 dGUoSGFkb29wUkRELnNjYWxhOjE4NCkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLkhhZG9vcFJE RC5jb21wdXRlKEhhZG9vcFJERC5zY2FsYTo5MykKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJE RC5jb21wdXRlT3JSZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5z cGFyay5yZGQuUkRELml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJr LnJkZC5NYXBwZWRSREQuY29tcHV0ZShNYXBwZWRSREQuc2NhbGE6MzEpCglhdCBvcmcuYXBhY2hl LnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0 IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3Jn LmFwYWNoZS5zcGFyay5yZGQuVW5pb25QYXJ0aXRpb24uaXRlcmF0b3IoVW5pb25SREQuc2NhbGE6 MzMpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblJERC5jb21wdXRlKFVuaW9uUkRELnNj YWxhOjc0KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRDaGVja3Bv aW50KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0b3Io UkRELnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUGFydGl0aW9uLml0 ZXJhdG9yKFVuaW9uUkRELnNjYWxhOjMzKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25S REQuY29tcHV0ZShVbmlvblJERC5zY2FsYTo3NCkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJE RC5jb21wdXRlT3JSZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5z cGFyay5yZGQuUkRELml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJr LnJkZC5VbmlvblBhcnRpdGlvbi5pdGVyYXRvcihVbmlvblJERC5zY2FsYTozMykKCWF0IG9yZy5h cGFjaGUuc3BhcmsucmRkLlVuaW9uUkRELmNvbXB1dGUoVW5pb25SREQuc2NhbGE6NzQpCglhdCBv cmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxh OjI2MikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5 KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25QYXJ0aXRpb24uaXRlcmF0b3IoVW5pb25S REQuc2NhbGE6MzMpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblJERC5jb21wdXRlKFVu aW9uUkRELnNjYWxhOjc0KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJl YWRDaGVja3BvaW50KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQu aXRlcmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUGFy dGl0aW9uLml0ZXJhdG9yKFVuaW9uUkRELnNjYWxhOjMzKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5y ZGQuVW5pb25SREQuY29tcHV0ZShVbmlvblJERC5zY2FsYTo3NCkKCWF0IG9yZy5hcGFjaGUuc3Bh cmsucmRkLlJERC5jb21wdXRlT3JSZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3Jn LmFwYWNoZS5zcGFyay5yZGQuUkRELml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBh Y2hlLnNwYXJrLnJkZC5VbmlvblBhcnRpdGlvbi5pdGVyYXRvcihVbmlvblJERC5zY2FsYTozMykK CWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUkRELmNvbXB1dGUoVW5pb25SREQuc2NhbGE6 NzQpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQo UkRELnNjYWxhOjI2MikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQu c2NhbGE6MjI5KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25QYXJ0aXRpb24uaXRlcmF0 b3IoVW5pb25SREQuc2NhbGE6MzMpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblJERC5j b21wdXRlKFVuaW9uUkRELnNjYWxhOjc0KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNv bXB1dGVPclJlYWRDaGVja3BvaW50KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJr LnJkZC5SREQuaXRlcmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRk LlVuaW9uUGFydGl0aW9uLml0ZXJhdG9yKFVuaW9uUkRELnNjYWxhOjMzKQoJYXQgb3JnLmFwYWNo ZS5zcGFyay5yZGQuVW5pb25SREQuY29tcHV0ZShVbmlvblJERC5zY2FsYTo3NCkKCWF0IG9yZy5h cGFjaGUuc3BhcmsucmRkLlJERC5jb21wdXRlT3JSZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYy KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglh dCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblBhcnRpdGlvbi5pdGVyYXRvcihVbmlvblJERC5z Y2FsYTozMykKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUkRELmNvbXB1dGUoVW5pb25S REQuc2NhbGE6NzQpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENo ZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVy YXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25QYXJ0aXRp b24uaXRlcmF0b3IoVW5pb25SREQuc2NhbGE6MzMpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5V bmlvblJERC5jb21wdXRlKFVuaW9uUkRELnNjYWxhOjc0KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5y ZGQuUkRELmNvbXB1dGVPclJlYWRDaGVja3BvaW50KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBh Y2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUu c3BhcmsucmRkLlVuaW9uUGFydGl0aW9uLml0ZXJhdG9yKFVuaW9uUkRELnNjYWxhOjMzKQoJYXQg b3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25SREQuY29tcHV0ZShVbmlvblJERC5zY2FsYTo3NCkK CWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5jb21wdXRlT3JSZWFkQ2hlY2twb2ludChSREQu c2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELml0ZXJhdG9yKFJERC5zY2Fs YToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblBhcnRpdGlvbi5pdGVyYXRvcihV bmlvblJERC5zY2FsYTozMykKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUkRELmNvbXB1 dGUoVW5pb25SREQuc2NhbGE6NzQpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuY29tcHV0 ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRk LlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuTWFw cGVkUkRELmNvbXB1dGUoTWFwcGVkUkRELnNjYWxhOjMxKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5y ZGQuUkRELmNvbXB1dGVPclJlYWRDaGVja3BvaW50KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBh Y2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUu c3BhcmsucmRkLkZpbHRlcmVkUkRELmNvbXB1dGUoRmlsdGVyZWRSREQuc2NhbGE6MzQpCglhdCBv cmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxh OjI2MikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5 KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5zY2hlZHVsZXIuUmVzdWx0VGFzay5ydW5UYXNrKFJlc3Vs dFRhc2suc2NhbGE6MTExKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5zY2hlZHVsZXIuVGFzay5ydW4o VGFzay5zY2FsYTo1MSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsuZXhlY3V0b3IuRXhlY3V0b3IkVGFz a1J1bm5lci5ydW4oRXhlY3V0b3Iuc2NhbGE6MTgzKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu VGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQ1 KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4o VGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhy ZWFkLmphdmE6NzIyKQoiRXhlY3V0b3IgdGFzayBsYXVuY2ggd29ya2VyLTAiOgoJYXQgb3JnLmFw YWNoZS5oYWRvb3AuZnMuRmlsZVN5c3RlbS5sb2FkRmlsZVN5c3RlbXMoRmlsZVN5c3RlbS5qYXZh OjIzNjIpCgktIHdhaXRpbmcgdG8gbG9jayA8MHgwMDAwMDAwMGZhZWI0ZmM4PiAoYSBqYXZhLmxh bmcuQ2xhc3MgZm9yIG9yZy5hcGFjaGUuaGFkb29wLmZzLkZpbGVTeXN0ZW0pCglhdCBvcmcuYXBh Y2hlLmhhZG9vcC5mcy5GaWxlU3lzdGVtLmdldEZpbGVTeXN0ZW1DbGFzcyhGaWxlU3lzdGVtLmph dmE6MjM3NSkKCWF0IG9yZy5hcGFjaGUuaGFkb29wLmZzLkZpbGVTeXN0ZW0uY3JlYXRlRmlsZVN5 c3RlbShGaWxlU3lzdGVtLmphdmE6MjM5MikKCWF0IG9yZy5hcGFjaGUuaGFkb29wLmZzLkZpbGVT eXN0ZW0uYWNjZXNzJDIwMChGaWxlU3lzdGVtLmphdmE6ODkpCglhdCBvcmcuYXBhY2hlLmhhZG9v cC5mcy5GaWxlU3lzdGVtJENhY2hlLmdldEludGVybmFsKEZpbGVTeXN0ZW0uamF2YToyNDMxKQoJ YXQgb3JnLmFwYWNoZS5oYWRvb3AuZnMuRmlsZVN5c3RlbSRDYWNoZS5nZXQoRmlsZVN5c3RlbS5q YXZhOjI0MTMpCglhdCBvcmcuYXBhY2hlLmhhZG9vcC5mcy5GaWxlU3lzdGVtLmdldChGaWxlU3lz dGVtLmphdmE6MzY4KQoJYXQgb3JnLmFwYWNoZS5oYWRvb3AuZnMuRmlsZVN5c3RlbS5nZXQoRmls ZVN5c3RlbS5qYXZhOjE2NykKCWF0IG9yZy5hcGFjaGUuaGFkb29wLm1hcHJlZC5Kb2JDb25mLmdl dFdvcmtpbmdEaXJlY3RvcnkoSm9iQ29uZi5qYXZhOjU4NykKCWF0IG9yZy5hcGFjaGUuaGFkb29w Lm1hcHJlZC5GaWxlSW5wdXRGb3JtYXQuc2V0SW5wdXRQYXRocyhGaWxlSW5wdXRGb3JtYXQuamF2 YTozMTUpCglhdCBvcmcuYXBhY2hlLmhhZG9vcC5tYXByZWQuRmlsZUlucHV0Rm9ybWF0LnNldElu cHV0UGF0aHMoRmlsZUlucHV0Rm9ybWF0LmphdmE6Mjg4KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5T cGFya0NvbnRleHQkJGFub25mdW4kMjIuYXBwbHkoU3BhcmtDb250ZXh0LnNjYWxhOjU0NikKCWF0 IG9yZy5hcGFjaGUuc3BhcmsuU3BhcmtDb250ZXh0JCRhbm9uZnVuJDIyLmFwcGx5KFNwYXJrQ29u dGV4dC5zY2FsYTo1NDYpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5IYWRvb3BSREQkJGFub25m dW4kZ2V0Sm9iQ29uZiQxLmFwcGx5KEhhZG9vcFJERC5zY2FsYToxNDUpCglhdCBvcmcuYXBhY2hl LnNwYXJrLnJkZC5IYWRvb3BSREQkJGFub25mdW4kZ2V0Sm9iQ29uZiQxLmFwcGx5KEhhZG9vcFJE RC5zY2FsYToxNDUpCglhdCBzY2FsYS5PcHRpb24ubWFwKE9wdGlvbi5zY2FsYToxNDUpCglhdCBv cmcuYXBhY2hlLnNwYXJrLnJkZC5IYWRvb3BSREQuZ2V0Sm9iQ29uZihIYWRvb3BSREQuc2NhbGE6 MTQ1KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDBmYWU3ZGMzMD4gKGEgb3JnLmFwYWNoZS5oYWRvb3Au Y29uZi5Db25maWd1cmF0aW9uKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuSGFkb29wUkREJCRh bm9uJDEuPGluaXQ+KEhhZG9vcFJERC5zY2FsYToxODkpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJk ZC5IYWRvb3BSREQuY29tcHV0ZShIYWRvb3BSREQuc2NhbGE6MTg0KQoJYXQgb3JnLmFwYWNoZS5z cGFyay5yZGQuSGFkb29wUkRELmNvbXB1dGUoSGFkb29wUkRELnNjYWxhOjkzKQoJYXQgb3JnLmFw YWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRDaGVja3BvaW50KFJERC5zY2FsYToyNjIp CglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0 IG9yZy5hcGFjaGUuc3BhcmsucmRkLk1hcHBlZFJERC5jb21wdXRlKE1hcHBlZFJERC5zY2FsYToz MSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5jb21wdXRlT3JSZWFkQ2hlY2twb2ludChS REQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELml0ZXJhdG9yKFJERC5z Y2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblBhcnRpdGlvbi5pdGVyYXRv cihVbmlvblJERC5zY2FsYTozMykKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUkRELmNv bXB1dGUoVW5pb25SREQuc2NhbGE6NzQpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuY29t cHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0IG9yZy5hcGFjaGUuc3Bhcmsu cmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQu VW5pb25QYXJ0aXRpb24uaXRlcmF0b3IoVW5pb25SREQuc2NhbGE6MzMpCglhdCBvcmcuYXBhY2hl LnNwYXJrLnJkZC5VbmlvblJERC5jb21wdXRlKFVuaW9uUkRELnNjYWxhOjc0KQoJYXQgb3JnLmFw YWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRDaGVja3BvaW50KFJERC5zY2FsYToyNjIp CglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0 IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUGFydGl0aW9uLml0ZXJhdG9yKFVuaW9uUkRELnNj YWxhOjMzKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25SREQuY29tcHV0ZShVbmlvblJE RC5zY2FsYTo3NCkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5jb21wdXRlT3JSZWFkQ2hl Y2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELml0ZXJh dG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblBhcnRpdGlv bi5pdGVyYXRvcihVbmlvblJERC5zY2FsYTozMykKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVu aW9uUkRELmNvbXB1dGUoVW5pb25SREQuc2NhbGE6NzQpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJk ZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0IG9yZy5hcGFj aGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3JnLmFwYWNoZS5z cGFyay5yZGQuVW5pb25QYXJ0aXRpb24uaXRlcmF0b3IoVW5pb25SREQuc2NhbGE6MzMpCglhdCBv cmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblJERC5jb21wdXRlKFVuaW9uUkRELnNjYWxhOjc0KQoJ YXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRDaGVja3BvaW50KFJERC5z Y2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0b3IoUkRELnNjYWxh OjIyOSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUGFydGl0aW9uLml0ZXJhdG9yKFVu aW9uUkRELnNjYWxhOjMzKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25SREQuY29tcHV0 ZShVbmlvblJERC5zY2FsYTo3NCkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5jb21wdXRl T3JSZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQu UkRELml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5Vbmlv blBhcnRpdGlvbi5pdGVyYXRvcihVbmlvblJERC5zY2FsYTozMykKCWF0IG9yZy5hcGFjaGUuc3Bh cmsucmRkLlVuaW9uUkRELmNvbXB1dGUoVW5pb25SREQuc2NhbGE6NzQpCglhdCBvcmcuYXBhY2hl LnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0 IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3Jn LmFwYWNoZS5zcGFyay5yZGQuVW5pb25QYXJ0aXRpb24uaXRlcmF0b3IoVW5pb25SREQuc2NhbGE6 MzMpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblJERC5jb21wdXRlKFVuaW9uUkRELnNj YWxhOjc0KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJlYWRDaGVja3Bv aW50KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuaXRlcmF0b3Io UkRELnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUGFydGl0aW9uLml0 ZXJhdG9yKFVuaW9uUkRELnNjYWxhOjMzKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25S REQuY29tcHV0ZShVbmlvblJERC5zY2FsYTo3NCkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJE RC5jb21wdXRlT3JSZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3JnLmFwYWNoZS5z cGFyay5yZGQuUkRELml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBhY2hlLnNwYXJr LnJkZC5VbmlvblBhcnRpdGlvbi5pdGVyYXRvcihVbmlvblJERC5zY2FsYTozMykKCWF0IG9yZy5h cGFjaGUuc3BhcmsucmRkLlVuaW9uUkRELmNvbXB1dGUoVW5pb25SREQuc2NhbGE6NzQpCglhdCBv cmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxh OjI2MikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5 KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25QYXJ0aXRpb24uaXRlcmF0b3IoVW5pb25S REQuc2NhbGE6MzMpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblJERC5jb21wdXRlKFVu aW9uUkRELnNjYWxhOjc0KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNvbXB1dGVPclJl YWRDaGVja3BvaW50KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQu aXRlcmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUGFy dGl0aW9uLml0ZXJhdG9yKFVuaW9uUkRELnNjYWxhOjMzKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5y ZGQuVW5pb25SREQuY29tcHV0ZShVbmlvblJERC5zY2FsYTo3NCkKCWF0IG9yZy5hcGFjaGUuc3Bh cmsucmRkLlJERC5jb21wdXRlT3JSZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYyKQoJYXQgb3Jn LmFwYWNoZS5zcGFyay5yZGQuUkRELml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglhdCBvcmcuYXBh Y2hlLnNwYXJrLnJkZC5VbmlvblBhcnRpdGlvbi5pdGVyYXRvcihVbmlvblJERC5zY2FsYTozMykK CWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUkRELmNvbXB1dGUoVW5pb25SREQuc2NhbGE6 NzQpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQo UkRELnNjYWxhOjI2MikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQu c2NhbGE6MjI5KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuVW5pb25QYXJ0aXRpb24uaXRlcmF0 b3IoVW5pb25SREQuc2NhbGE6MzMpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblJERC5j b21wdXRlKFVuaW9uUkRELnNjYWxhOjc0KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNv bXB1dGVPclJlYWRDaGVja3BvaW50KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJr LnJkZC5SREQuaXRlcmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRk LlVuaW9uUGFydGl0aW9uLml0ZXJhdG9yKFVuaW9uUkRELnNjYWxhOjMzKQoJYXQgb3JnLmFwYWNo ZS5zcGFyay5yZGQuVW5pb25SREQuY29tcHV0ZShVbmlvblJERC5zY2FsYTo3NCkKCWF0IG9yZy5h cGFjaGUuc3BhcmsucmRkLlJERC5jb21wdXRlT3JSZWFkQ2hlY2twb2ludChSREQuc2NhbGE6MjYy KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELml0ZXJhdG9yKFJERC5zY2FsYToyMjkpCglh dCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5VbmlvblBhcnRpdGlvbi5pdGVyYXRvcihVbmlvblJERC5z Y2FsYTozMykKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlVuaW9uUkRELmNvbXB1dGUoVW5pb25S REQuc2NhbGE6NzQpCglhdCBvcmcuYXBhY2hlLnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENo ZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVy YXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuTWFwcGVkUkRELmNv bXB1dGUoTWFwcGVkUkRELnNjYWxhOjMxKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5yZGQuUkRELmNv bXB1dGVPclJlYWRDaGVja3BvaW50KFJERC5zY2FsYToyNjIpCglhdCBvcmcuYXBhY2hlLnNwYXJr LnJkZC5SREQuaXRlcmF0b3IoUkRELnNjYWxhOjIyOSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsucmRk LkZpbHRlcmVkUkRELmNvbXB1dGUoRmlsdGVyZWRSREQuc2NhbGE6MzQpCglhdCBvcmcuYXBhY2hl LnNwYXJrLnJkZC5SREQuY29tcHV0ZU9yUmVhZENoZWNrcG9pbnQoUkRELnNjYWxhOjI2MikKCWF0 IG9yZy5hcGFjaGUuc3BhcmsucmRkLlJERC5pdGVyYXRvcihSREQuc2NhbGE6MjI5KQoJYXQgb3Jn LmFwYWNoZS5zcGFyay5zY2hlZHVsZXIuUmVzdWx0VGFzay5ydW5UYXNrKFJlc3VsdFRhc2suc2Nh bGE6MTExKQoJYXQgb3JnLmFwYWNoZS5zcGFyay5zY2hlZHVsZXIuVGFzay5ydW4oVGFzay5zY2Fs YTo1MSkKCWF0IG9yZy5hcGFjaGUuc3BhcmsuZXhlY3V0b3IuRXhlY3V0b3IkVGFza1J1bm5lci5y dW4oRXhlY3V0b3Iuc2NhbGE6MTgzKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9v bEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQ1KQoJYXQgamF2 YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9v bEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6 NzIyKQoKRm91bmQgMSBkZWFkbG9jay4KCg== --f46d043c7faa83175204fe313d75--