<?xml version="1.0" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.jacorb.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://www.jacorb.org/bugzilla/"
          
          maintainer="jacorb@goots.org"
>

    <bug>
          <bug_id>1009</bug_id>
          
          <creation_ts>2015-05-08 12:09:32 +0000</creation_ts>
          <short_desc>Client Interceptor does not handle properly second exception in a raw</short_desc>
          <delta_ts>2015-05-19 13:15:02 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>JacORB</product>
          <component>ORB</component>
          <version>3.5</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Serguei Kolos">Serguei.Kolos</reporter>
          <assigned_to name="Mailinglist to track bugs">jacorb-bugs</assigned_to>
          <cc>jacorb</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>3292</commentid>
    <comment_count>0</comment_count>
    <who name="Serguei Kolos">Serguei.Kolos</who>
    <bug_when>2015-05-08 12:09:32 +0000</bug_when>
    <thetext>I have the ClientRequestInterceptor implementation which implements the receive_exception function to handle restarts of remote servers. If the interceptor gets an exception it tries to find an updated reference to the remote object and throws ForwardRequest exception with that reference. The result of this procedure is different depending on the validity of the new reference:

1. If the new reference is valid (i.e. represents an existing CORBA object) everything goes fine.

2. If the new reference is invalid, (i.e. the corresponding remote server is not running) the MyClientRequestInterceptor.receive_exception function is immediately invoked again. My implementation detects that this is already a second exception received for the updated reference so it decides to give up and does a simple return. And here is the problem - after that the same MyClientRequestInterceptor.receive_exception is immediately invoked again and the original exception is never propagated to the user code. At this point my interceptor enters into an infinite recursion as there is no way out - whenever it returns it&apos;s immediately invoked again.

I need to find a solution urgently as this blocks our production system from functioning properly. If anyone could give me a hint on how to fix it I can rebuild the JacORB locally and give t a try. Any help is greatly appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3293</commentid>
    <comment_count>1</comment_count>
    <who name="Serguei Kolos">Serguei.Kolos</who>
    <bug_when>2015-05-08 12:15:12 +0000</bug_when>
    <thetext>
I should have said that my code worked fine with the version 3.2 which we had been using for a long time. The problem appeared when we switched to the version 3.5. I have tried the version 3.6 and it has the same problem as 3.5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3294</commentid>
    <comment_count>2</comment_count>
    <who name="Nick Cross">jacorb</who>
    <bug_when>2015-05-08 12:47:12 +0000</bug_when>
    <thetext>Can you provide standalone runnable test case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3295</commentid>
    <comment_count>3</comment_count>
      <attachid>459</attachid>
    <who name="Serguei Kolos">Serguei.Kolos</who>
    <bug_when>2015-05-09 06:16:47 +0000</bug_when>
    <thetext>Created attachment 459
IDL file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3296</commentid>
    <comment_count>4</comment_count>
      <attachid>460</attachid>
    <who name="Serguei Kolos">Serguei.Kolos</who>
    <bug_when>2015-05-09 06:17:15 +0000</bug_when>
    <thetext>Created attachment 460
Client Interceptor implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3297</commentid>
    <comment_count>5</comment_count>
      <attachid>461</attachid>
    <who name="Serguei Kolos">Serguei.Kolos</who>
    <bug_when>2015-05-09 06:17:47 +0000</bug_when>
    <thetext>Created attachment 461
The main class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3298</commentid>
    <comment_count>6</comment_count>
    <who name="Serguei Kolos">Serguei.Kolos</who>
    <bug_when>2015-05-09 06:20:30 +0000</bug_when>
    <thetext>Here is a simple test case which demonstrates the problem. Actually the problem is slightly different with respect to what I have described originally. In my real application exception handling is quite complicated so I didn&apos;t recognized the actual behavior, but in the essence the problem is that the actual interceptors algorithm result in the following sequence of events:

1. The ORB tries to connect to remote server using the original object reference and fails
2. receive_exception is invoked for the first time and throws ForwardRequest with the new object reference
3. The ORB tries to connect to remote server using the new object reference and fails again
4. receive_exception is invoked for the second time and just exits
    
   At this moment I would expect the TRANSIENT exception appearing in the user code, but...

5. The ORB tries to connect to remote server using again the ORIGINAL object reference and fails again
6. receive_exception is invoked for the THRID time and simply returns
7. Only now the TRANSIENT exception appears in the user code



Here is the output produced by the attached test application
&gt; java test.Test
WARNING Warning - unknown codeset (ASCII) - defaulting to ISO-8859-1
WARNING Warning - unknown codeset (ASCII) - defaulting to ISO-8859-1
INFO Initialising ORB with ID: 
INFO InterceptorManager started with 0 Server Interceptors, 1 Client Interceptors and 1 IOR Interceptors
Invoking test.i.f function 
INFO ClientConnectionManager: created new ClientGIOPConnection to 127.0.1.1:50525 (147c4ee)
INFO Negotiated char codeset of ISO8859_1 and wchar of UTF16
INFO Retrying to connect to 127.0.1.1:50525
INFO Retrying to connect to 127.0.1.1:50525
INFO Retrying to connect to 127.0.1.1:50525
INFO Retrying to connect to 127.0.1.1:50525
INFO Retrying to connect to 127.0.1.1:50525
receive_exception IDL:omg.org/CORBA/TRANSIENT:1.0
receive_exception IDL:omg.org/CORBA/TRANSIENT:1.0 count = 0 throw ForwardRequest
INFO ClientConnectionManager: created new ClientGIOPConnection to 127.0.1.1:34851 (1533528)
INFO Negotiated char codeset of ISO8859_1 and wchar of UTF16
INFO Retrying to connect to 127.0.1.1:34851
INFO Retrying to connect to 127.0.1.1:34851
INFO Retrying to connect to 127.0.1.1:34851
INFO Retrying to connect to 127.0.1.1:34851
INFO Retrying to connect to 127.0.1.1:34851
receive_exception IDL:omg.org/CORBA/TRANSIENT:1.0
receive_exception IDL:omg.org/CORBA/TRANSIENT:1.0 count = 1 just return
INFO ClientConnectionManager: created new ClientGIOPConnection to 127.0.1.1:50525 (14bdf68)
INFO Negotiated char codeset of ISO8859_1 and wchar of UTF16
INFO Retrying to connect to 127.0.1.1:50525
INFO Retrying to connect to 127.0.1.1:50525
INFO Retrying to connect to 127.0.1.1:50525
INFO Retrying to connect to 127.0.1.1:50525
INFO Retrying to connect to 127.0.1.1:50525
receive_exception IDL:omg.org/CORBA/TRANSIENT:1.0
receive_exception IDL:omg.org/CORBA/TRANSIENT:1.0 count = 1 just return
Got Exception: org.omg.CORBA.TRANSIENT: Retries exceeded, couldn&apos;t reconnect to 127.0.1.1:50525  vmcid: 0x0  minor code: 0  completed: No</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3299</commentid>
    <comment_count>7</comment_count>
    <who name="Nick Cross">jacorb</who>
    <bug_when>2015-05-10 14:41:26 +0000</bug_when>
    <thetext>Thanks for that extra detail!

Does the problem exist with 3.3 and 3.4 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3300</commentid>
    <comment_count>8</comment_count>
      <attachid>462</attachid>
    <who name="Nick Cross">jacorb</who>
    <bug_when>2015-05-11 07:17:50 +0000</bug_when>
    <thetext>Created attachment 462
Log of runs

Could I clarify something - I have run your test with both JacORB 3.2 and current HEAD (and an old 2.3.1) and am getting similar results. I have attached a log file.

Could you clarify the difference between 3.2 and later versions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3301</commentid>
    <comment_count>9</comment_count>
    <who name="Serguei Kolos">Serguei.Kolos</who>
    <bug_when>2015-05-11 07:24:41 +0000</bug_when>
    <thetext>All previous versions of the JacORB (3.2, 3.3, 3.4) behave in the same way. Actually I was wrong saying that 3.2 behaved differently - that was a change in our own code which changed the behavior of our application and made me thinking that something has changed in the jacORB. I&apos;m sorry for the confusion.

But in the end my question is whether this behavior - making another connection attempt on the original reference when the forwarded one gives TRANSIENT exception - is standard compliant or that is a bug which should be fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3304</commentid>
    <comment_count>10</comment_count>
    <who name="Nick Cross">jacorb</who>
    <bug_when>2015-05-15 10:28:45 +0000</bug_when>
    <thetext>Sent submitter a test via email.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3305</commentid>
    <comment_count>11</comment_count>
    <who name="Nick Cross">jacorb</who>
    <bug_when>2015-05-19 13:15:02 +0000</bug_when>
    <thetext>Fixed by SHA 098124afd1bbc9befba545897d3613ceba927c13</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>459</attachid>
            <date>2015-05-09 06:16:47 +0000</date>
            <delta_ts>2015-05-09 06:16:47 +0000</delta_ts>
            <desc>IDL file</desc>
            <filename>test.idl</filename>
            <type>text/x-idl</type>
            <size>52</size>
            <attacher name="Serguei Kolos">Serguei.Kolos</attacher>
            
              <data encoding="base64">bW9kdWxlIHRlc3QgewogIGludGVyZmFjZSBpIHsKICAgIHZvaWQgZigpOwogIH07Cn07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>460</attachid>
            <date>2015-05-09 06:17:15 +0000</date>
            <delta_ts>2015-05-09 06:17:15 +0000</delta_ts>
            <desc>Client Interceptor implementation</desc>
            <filename>ClientInterceptor.java</filename>
            <type>text/x-java</type>
            <size>1261</size>
            <attacher name="Serguei Kolos">Serguei.Kolos</attacher>
            
              <data encoding="base64">cGFja2FnZSB0ZXN0OwoKaW1wb3J0IG9yZy5vbWcuUG9ydGFibGVJbnRlcmNlcHRvci5DbGllbnRS
ZXF1ZXN0SW50ZXJjZXB0b3I7CmltcG9ydCBvcmcub21nLlBvcnRhYmxlSW50ZXJjZXB0b3IuQ2xp
ZW50UmVxdWVzdEluZm87CgpjbGFzcyBDbGllbnRJbnRlcmNlcHRvciBleHRlbmRzIG9yZy5vbWcu
Q09SQkEuTG9jYWxPYmplY3QgaW1wbGVtZW50cwoJQ2xpZW50UmVxdWVzdEludGVyY2VwdG9yCnsK
ICAgIGludCBjb3VudDsKICAgIAogICAgcHVibGljIENsaWVudEludGVyY2VwdG9yKCkgewogICAg
ICAgIGNvdW50ID0gMDsKICAgIH0KICAgIAogICAgcHVibGljIFN0cmluZyBuYW1lKCkKICAgIHsK
CXJldHVybiAiaXBjLkNsaWVudEludGVyY2VwdG9yIjsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBk
ZXN0cm95KCkKICAgIHsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZW5kX3JlcXVlc3QoQ2xpZW50
UmVxdWVzdEluZm8gcmkpCiAgICB7CiAgICB9CiAgICBwdWJsaWMgdm9pZCBzZW5kX3BvbGwoQ2xp
ZW50UmVxdWVzdEluZm8gcmkpCiAgICB7CiAgICB9CgogICAgcHVibGljIHZvaWQgcmVjZWl2ZV9y
ZXBseShDbGllbnRSZXF1ZXN0SW5mbyByaSkKICAgIHsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBy
ZWNlaXZlX290aGVyKENsaWVudFJlcXVlc3RJbmZvIHJpKQogICAgewogICAgfQoKICAgIHB1Ymxp
YyB2b2lkIHJlY2VpdmVfZXhjZXB0aW9uKENsaWVudFJlcXVlc3RJbmZvIHJpKQoJICAgIHRocm93
cyBvcmcub21nLlBvcnRhYmxlSW50ZXJjZXB0b3IuRm9yd2FyZFJlcXVlc3QKICAgIHsKCWlmICgh
VGVzdC5yZWFkeSkgewoJICAgIHJldHVybjsKCX0KCQoJU3lzdGVtLm91dC5wcmludGxuKCJyZWNl
aXZlX2V4Y2VwdGlvbiAiICsgcmkucmVjZWl2ZWRfZXhjZXB0aW9uX2lkKCkpOwoJaWYgKGNvdW50
ICE9IDApIHsKCSAgICBTeXN0ZW0ub3V0LnByaW50bG4oInJlY2VpdmVfZXhjZXB0aW9uICIgKyBy
aS5yZWNlaXZlZF9leGNlcHRpb25faWQoKSArICIgY291bnQgPSAiICsgY291bnQgKyAiIGp1c3Qg
cmV0dXJuIik7CgkgICAgcmV0dXJuOwoJfQoJCQoJU3lzdGVtLm91dC5wcmludGxuKCJyZWNlaXZl
X2V4Y2VwdGlvbiAiICsgcmkucmVjZWl2ZWRfZXhjZXB0aW9uX2lkKCkgKyAiIGNvdW50ID0gIiAr
IGNvdW50ICsgIiB0aHJvdyBGb3J3YXJkUmVxdWVzdCIpOwoJKytjb3VudDsKCXRocm93IG5ldyBv
cmcub21nLlBvcnRhYmxlSW50ZXJjZXB0b3IuRm9yd2FyZFJlcXVlc3QoVGVzdC5vYmplY3QpOwog
ICAgfQp9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>461</attachid>
            <date>2015-05-09 06:17:47 +0000</date>
            <delta_ts>2015-05-09 06:17:47 +0000</delta_ts>
            <desc>The main class</desc>
            <filename>Test.java</filename>
            <type>text/x-java</type>
            <size>1808</size>
            <attacher name="Serguei Kolos">Serguei.Kolos</attacher>
            
              <data encoding="base64">cGFja2FnZSB0ZXN0OwoKaW1wb3J0IGphdmEudXRpbC5Qcm9wZXJ0aWVzOwppbXBvcnQgb3JnLm9t
Zy5DT1JCQS4qOwppbXBvcnQgb3JnLm9tZy5Qb3J0YWJsZVNlcnZlci4qOwppbXBvcnQgb3JnLm9t
Zy5JT1AuSU9SOwoKY2xhc3MgVGVzdCB7CiAgICBwdWJsaWMgc3RhdGljIE9SQiBvcmI7CiAgICBw
dWJsaWMgc3RhdGljIHRlc3QuaSBvYmplY3Q7CiAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gcmVh
ZHkgPSBmYWxzZTsKCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7
CglQcm9wZXJ0aWVzIHByb3BzID0gbmV3IFByb3BlcnRpZXMoKTsKCXByb3BzLnB1dCgib3JnLm9t
Zy5Qb3J0YWJsZUludGVyY2VwdG9yLk9SQkluaXRpYWxpemVyQ2xhc3MuIgoJCSsgInRlc3QuT1JC
SW5pdGlhbGl6ZXIiLCAiIik7Cglwcm9wcy5wdXQoIm9yZy5vbWcuQ09SQkEuT1JCQ2xhc3MiLCAi
b3JnLmphY29yYi5vcmIuT1JCIik7Cglwcm9wcy5wdXQoIm9yZy5vbWcuQ09SQkEuT1JCU2luZ2xl
dG9uQ2xhc3MiLAoJCSJvcmcuamFjb3JiLm9yYi5PUkJTaW5nbGV0b24iKTsKCQkKCXRyeSB7Cgkg
ICAgb3JiID0gT1JCLmluaXQoKFN0cmluZ1tdKSBudWxsLCBwcm9wcyk7CgkgICAgZmluYWwgUE9B
IHBvYSA9IFBPQUhlbHBlci5uYXJyb3cob3JiLnJlc29sdmVfaW5pdGlhbF9yZWZlcmVuY2VzKCJS
b290UE9BIikpOwoJICAgIHBvYS50aGVfUE9BTWFuYWdlcigpLmFjdGl2YXRlKCk7CgkKCSAgICBm
aW5hbCBTdHJpbmcgcmVmMSA9ICJJT1I6MDAwMDAwMDAwMDAwMDAwZjQ5NDQ0YzNhNzQ2NTczNzQy
ZjY5M2EzMTJlMzAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDgyMDAwMTAyMDAwMDAwMDAwYTMx
MzIzNzJlMzAyZTMxMmUzMTAwYzU1ZDAwMDAwMDMxYWZhYmNiMDAwMDAwMDAyMDM4MTY4ZmEzMDAw
MDAwMDEwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDg1MjZmNmY3NDUwNGY0MTAwMDAwMDAwMDgwMDAw
MDAwMTAwMDAwMDAwMTQwMDAwMDAwMDAwMDAwMjAwMDAwMDAxMDAwMDAwMjAwMDAwMDAwMDAwMDEw
MDAxMDAwMDAwMDIwNTAxMDAwMTAwMDEwMDIwMDAwMTAxMDkwMDAwMDAwMTAwMDEwMTAwMDAwMDAw
MjYwMDAwMDAwMjAwMDIiOwoJICAgIGZpbmFsIFN0cmluZyByZWYyID0gIklPUjowMDAwMDAwMDAw
MDAwMDBmNDk0NDRjM2E3NDY1NzM3NDJmNjkzYTMxMmUzMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAw
MDAwODIwMDAxMDIwMDAwMDAwMDBhMzEzMjM3MmUzMDJlMzEyZTMxMDA4ODIzMDAwMDAwMzFhZmFi
Y2IwMDAwMDAwMDIwMzgxZTdkNWQwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwODUyNmY2
Zjc0NTA0ZjQxMDAwMDAwMDAwODAwMDAwMDAxMDAwMDAwMDAxNDAwMDAwMDAwMDAwMDAyMDAwMDAw
MDEwMDAwMDAyMDAwMDAwMDAwMDAwMTAwMDEwMDAwMDAwMjA1MDEwMDAxMDAwMTAwMjAwMDAxMDEw
OTAwMDAwMDAxMDAwMTAxMDAwMDAwMDAyNjAwMDAwMDAyMDAwMiI7CgkKCSAgICB0ZXN0LmkgdDEg
PSB0ZXN0LmlIZWxwZXIubmFycm93KG9yYi5zdHJpbmdfdG9fb2JqZWN0KHJlZjEpKTsKCSAgICB0
ZXN0LmkgdDIgPSB0ZXN0LmlIZWxwZXIubmFycm93KG9yYi5zdHJpbmdfdG9fb2JqZWN0KHJlZjIp
KTsKCSAgICAKCSAgICBvYmplY3QgPSB0MjsKCSAgICAKCSAgICByZWFkeSA9IHRydWU7CgkgICAg
CgkgICAgU3lzdGVtLm91dC5wcmludGxuKCJJbnZva2luZyB0ZXN0LmkuZiBmdW5jdGlvbiAiKTsK
CSAgICB0MS5mKCk7Cgl9CgljYXRjaCAoRXhjZXB0aW9uIGUpIHsKCSAgICBTeXN0ZW0ub3V0LnBy
aW50bG4oIkdvdCBFeGNlcHRpb246ICIgKyBlKTsKCX0KICAgIH0KfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>462</attachid>
            <date>2015-05-11 07:17:50 +0000</date>
            <delta_ts>2015-05-11 07:17:50 +0000</delta_ts>
            <desc>Log of runs</desc>
            <filename>logging.txt</filename>
            <type>text/plain</type>
            <size>10759</size>
            <attacher name="Nick Cross">jacorb</attacher>
            
              <data encoding="base64">MjAxNS0wNS0xMSAxMjowOToxNy4yNjUgSU5GTyBjcmVhdGVkIE9SQlNpbmdsZXRvbgoyMDE1LTA1
LTExIDEyOjA5OjE3LjI3MSBJTkZPCiAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgICBKYWNPUkIgViAzLjIs
IHd3dy5qYWNvcmIub3JnCiAgICAgICAgKEMpIFRoZSBKYWNPUkIgcHJvamVjdCAwNy1EZWMtMjAx
MiAoQnVpbGQgTWFyY2ggMjcgMjAxMyAyMDo1MDoxMSkKICAgICAgICB+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoyMDE1LTA1LTEx
IDEyOjA5OjE3LjI3NyBJTkZPIEludGVyY2VwdG9yTWFuYWdlciBzdGFydGVkIHdpdGggMCBTZXJ2
ZXIgSW50ZXJjZXB0b3JzLCAxIENsaWVudCBJbnRlcmNlcHRvcnMgYW5kIDAgSU9SIEludGVyY2Vw
dG9ycwpJbnZva2luZyB0ZXN0LmkuZiBmdW5jdGlvbgoyMDE1LTA1LTExIDEyOjA5OjE3LjcyMiBJ
TkZPIENsaWVudENvbm5lY3Rpb25NYW5hZ2VyOiBjcmVhdGVkIG5ldyBDbGllbnRHSU9QQ29ubmVj
dGlvbiB0byAxMjcuMC4xLjE6NTA1MjUgKDMxOTQ3MzdkKQoyMDE1LTA1LTExIDEyOjA5OjE3Ljcz
MyBJTkZPIFJldHJ5aW5nIHRvIGNvbm5lY3QgdG8gMTI3LjAuMS4xOjUwNTI1CjIwMTUtMDUtMTEg
MTI6MDk6MTguMjM1IElORk8gUmV0cnlpbmcgdG8gY29ubmVjdCB0byAxMjcuMC4xLjE6NTA1MjUK
MjAxNS0wNS0xMSAxMjowOToxOC43MzcgSU5GTyBSZXRyeWluZyB0byBjb25uZWN0IHRvIDEyNy4w
LjEuMTo1MDUyNQoyMDE1LTA1LTExIDEyOjA5OjE5LjIzOCBJTkZPIFJldHJ5aW5nIHRvIGNvbm5l
Y3QgdG8gMTI3LjAuMS4xOjUwNTI1CjIwMTUtMDUtMTEgMTI6MDk6MTkuNzQwIElORk8gUmV0cnlp
bmcgdG8gY29ubmVjdCB0byAxMjcuMC4xLjE6NTA1MjUKIyMjIHJlY2VpdmVfZXhjZXB0aW9uCnJl
Y2VpdmVfZXhjZXB0aW9uIElETDpvbWcub3JnL0NPUkJBL1RSQU5TSUVOVDoxLjAKcmVjZWl2ZV9l
eGNlcHRpb24gSURMOm9tZy5vcmcvQ09SQkEvVFJBTlNJRU5UOjEuMCBjb3VudCA9IDAgdGhyb3cg
Rm9yd2FyZFJlcXVlc3QKMjAxNS0wNS0xMSAxMjowOToyMC4yNDcgSU5GTyBDbGllbnRDb25uZWN0
aW9uTWFuYWdlcjogY3JlYXRlZCBuZXcgQ2xpZW50R0lPUENvbm5lY3Rpb24gdG8gMTI3LjAuMS4x
OjM0ODUxICg1M2FhNGJiNCkKMjAxNS0wNS0xMSAxMjowOToyMC4yNDkgSU5GTyBSZXRyeWluZyB0
byBjb25uZWN0IHRvIDEyNy4wLjEuMTozNDg1MQoyMDE1LTA1LTExIDEyOjA5OjIwLjc1MSBJTkZP
IFJldHJ5aW5nIHRvIGNvbm5lY3QgdG8gMTI3LjAuMS4xOjM0ODUxCjIwMTUtMDUtMTEgMTI6MDk6
MjEuMjUzIElORk8gUmV0cnlpbmcgdG8gY29ubmVjdCB0byAxMjcuMC4xLjE6MzQ4NTEKMjAxNS0w
NS0xMSAxMjowOToyMS43NTUgSU5GTyBSZXRyeWluZyB0byBjb25uZWN0IHRvIDEyNy4wLjEuMToz
NDg1MQoyMDE1LTA1LTExIDEyOjA5OjIyLjI1NyBJTkZPIFJldHJ5aW5nIHRvIGNvbm5lY3QgdG8g
MTI3LjAuMS4xOjM0ODUxCiMjIyByZWNlaXZlX2V4Y2VwdGlvbgpyZWNlaXZlX2V4Y2VwdGlvbiBJ
REw6b21nLm9yZy9DT1JCQS9UUkFOU0lFTlQ6MS4wCnJlY2VpdmVfZXhjZXB0aW9uIElETDpvbWcu
b3JnL0NPUkJBL1RSQU5TSUVOVDoxLjAgY291bnQgPSAxIGp1c3QgcmV0dXJuCjIwMTUtMDUtMTEg
MTI6MDk6MjIuNzU5IElORk8gQ2xpZW50Q29ubmVjdGlvbk1hbmFnZXI6IGNyZWF0ZWQgbmV3IENs
aWVudEdJT1BDb25uZWN0aW9uIHRvIDEyNy4wLjEuMTo1MDUyNSAoMjk5YmMzMzgpCjIwMTUtMDUt
MTEgMTI6MDk6MjIuNzYwIElORk8gUmV0cnlpbmcgdG8gY29ubmVjdCB0byAxMjcuMC4xLjE6NTA1
MjUKMjAxNS0wNS0xMSAxMjowOToyMy4yNjIgSU5GTyBSZXRyeWluZyB0byBjb25uZWN0IHRvIDEy
Ny4wLjEuMTo1MDUyNQoyMDE1LTA1LTExIDEyOjA5OjIzLjc2NCBJTkZPIFJldHJ5aW5nIHRvIGNv
bm5lY3QgdG8gMTI3LjAuMS4xOjUwNTI1CjIwMTUtMDUtMTEgMTI6MDk6MjQuMjY2IElORk8gUmV0
cnlpbmcgdG8gY29ubmVjdCB0byAxMjcuMC4xLjE6NTA1MjUKMjAxNS0wNS0xMSAxMjowOToyNC43
NjggSU5GTyBSZXRyeWluZyB0byBjb25uZWN0IHRvIDEyNy4wLjEuMTo1MDUyNQojIyMgcmVjZWl2
ZV9leGNlcHRpb24KcmVjZWl2ZV9leGNlcHRpb24gSURMOm9tZy5vcmcvQ09SQkEvVFJBTlNJRU5U
OjEuMApyZWNlaXZlX2V4Y2VwdGlvbiBJREw6b21nLm9yZy9DT1JCQS9UUkFOU0lFTlQ6MS4wIGNv
dW50ID0gMSBqdXN0IHJldHVybgpHb3QgRXhjZXB0aW9uOiBvcmcub21nLkNPUkJBLlRSQU5TSUVO
VDogUmV0cmllcyBleGNlZWRlZCwgY291bGRuJ3QgcmVjb25uZWN0IHRvIDEyNy4wLjEuMTo1MDUy
NQpvcmcub21nLkNPUkJBLlRSQU5TSUVOVDogUmV0cmllcyBleGNlZWRlZCwgY291bGRuJ3QgcmVj
b25uZWN0IHRvIDEyNy4wLjEuMTo1MDUyNQogICAgICAgIGF0IG9yZy5qYWNvcmIub3JiLmlpb3Au
Q2xpZW50SUlPUENvbm5lY3Rpb24uY29ubmVjdChDbGllbnRJSU9QQ29ubmVjdGlvbi5qYXZhOjIy
MykKICAgICAgICBhdCBvcmcuamFjb3JiLm9yYi5naW9wLkdJT1BDb25uZWN0aW9uLnNlbmRNZXNz
YWdlKEdJT1BDb25uZWN0aW9uLmphdmE6MTA0MikKICAgICAgICBhdCBvcmcuamFjb3JiLm9yYi5n
aW9wLkdJT1BDb25uZWN0aW9uLnNlbmRSZXF1ZXN0KEdJT1BDb25uZWN0aW9uLmphdmE6OTg3KQog
ICAgICAgIGF0IG9yZy5qYWNvcmIub3JiLmdpb3AuQ2xpZW50Q29ubmVjdGlvbi5zZW5kUmVxdWVz
dChDbGllbnRDb25uZWN0aW9uLmphdmE6MzA4KQogICAgICAgIGF0IG9yZy5qYWNvcmIub3JiLmdp
b3AuQ2xpZW50Q29ubmVjdGlvbi5zZW5kUmVxdWVzdChDbGllbnRDb25uZWN0aW9uLmphdmE6Mjg5
KQogICAgICAgIGF0IG9yZy5qYWNvcmIub3JiLkRlbGVnYXRlLl9pbnZva2VfaW50ZXJuYWwoRGVs
ZWdhdGUuamF2YToxMzM1KQogICAgICAgIGF0IG9yZy5qYWNvcmIub3JiLkRlbGVnYXRlLmludm9r
ZV9pbnRlcm5hbChEZWxlZ2F0ZS5qYXZhOjExNjApCiAgICAgICAgYXQgb3JnLmphY29yYi5vcmIu
RGVsZWdhdGUuaW52b2tlKERlbGVnYXRlLmphdmE6MTE0OCkKICAgICAgICBhdCBvcmcub21nLkNP
UkJBLnBvcnRhYmxlLk9iamVjdEltcGwuX2ludm9rZShPYmplY3RJbXBsLmphdmE6ODApCiAgICAg
ICAgYXQgdGVzdC5faVN0dWIuZihfaVN0dWIuamF2YTozNSkKICAgICAgICBhdCB0ZXN0LlRlc3Qu
bWFpbihUZXN0LmphdmE6MzcpCgoKCgpXQVJOSU5HOiBqYWNvcmIuaG9tZSB1bnNldCEgV2lsbCB1
c2UgJy4nCk1heSAxMSwgMjAxNSAxMjoxMDo1NSBQTSBvcmcuamFjb3JiLmNvbmZpZy5KYWNPUkJD
b25maWd1cmF0aW9uIGluaXQKV0FSTklORzogRmlsZSAuL2phY29yYi5wcm9wZXJ0aWVzIGZvciBj
b25maWd1cmF0aW9uIGphY29yYiBub3QgZm91bmQKTWF5IDExLCAyMDE1IDEyOjEwOjU1IFBNIG9y
Zy5qYWNvcmIub3JiLk9SQiBwcmludFZlcnNpb24KSU5GTzoKICAgICAgICB+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAg
IEphY09SQiBWIDIuMy4xLCB3d3cuamFjb3JiLm9yZwogICAgICAgIChDKSBUaGUgSmFjT1JCIHBy
b2plY3QgMjctTWF5LTIwMDkKICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpNYXkgMTEsIDIwMTUgMTI6MTA6NTUgUE0g
b3JnLmphY29yYi5vcmIuT1JCIGluaXRLbm93blJlZmVyZW5jZXNNYXAKSU5GTzogUHJvcGVydHkg
ImphY29yYi5oYXNodGFibGVfY2xhc3MiIGlzIHNldCB0bzogamF2YS51dGlsLkhhc2hNYXAKTWF5
IDExLCAyMDE1IDEyOjEwOjU1IFBNIG9yZy5qYWNvcmIub3JiLnBvcnRhYmxlSW50ZXJjZXB0b3Iu
SW50ZXJjZXB0b3JNYW5hZ2VyIDxpbml0PgpJTkZPOiBJbnRlcmNlcHRvck1hbmFnZXIgc3RhcnRl
ZCB3aXRoIDAgU2VydmVyIEludGVyY2VwdG9ycywgMSBDbGllbnQgSW50ZXJjZXB0b3JzIGFuZCAw
IElPUiBJbnRlcmNlcHRvcnMKSW52b2tpbmcgdGVzdC5pLmYgZnVuY3Rpb24KTWF5IDExLCAyMDE1
IDEyOjEwOjU2IFBNIG9yZy5qYWNvcmIub3JiLmdpb3AuQ2xpZW50Q29ubmVjdGlvbk1hbmFnZXIg
Z2V0Q29ubmVjdGlvbgpJTkZPOiBDbGllbnRDb25uZWN0aW9uTWFuYWdlcjogY3JlYXRlZCBuZXcg
Q2xpZW50R0lPUENvbm5lY3Rpb24gdG8gMTI3LjAuMS4xOjUwNTI1ICg3OTBhM2M3MykKTWF5IDEx
LCAyMDE1IDEyOjEwOjU2IFBNIG9yZy5qYWNvcmIub3JiLmlpb3AuQ2xpZW50SUlPUENvbm5lY3Rp
b24gY29ubmVjdApJTkZPOiBSZXRyeWluZyB0byBjb25uZWN0IHRvIDEyNy4wLjEuMTo1MDUyNQpN
YXkgMTEsIDIwMTUgMTI6MTA6NTYgUE0gb3JnLmphY29yYi5vcmIuaWlvcC5DbGllbnRJSU9QQ29u
bmVjdGlvbiBjb25uZWN0CklORk86IFJldHJ5aW5nIHRvIGNvbm5lY3QgdG8gMTI3LjAuMS4xOjUw
NTI1Ck1heSAxMSwgMjAxNSAxMjoxMDo1NyBQTSBvcmcuamFjb3JiLm9yYi5paW9wLkNsaWVudElJ
T1BDb25uZWN0aW9uIGNvbm5lY3QKSU5GTzogUmV0cnlpbmcgdG8gY29ubmVjdCB0byAxMjcuMC4x
LjE6NTA1MjUKTWF5IDExLCAyMDE1IDEyOjEwOjU3IFBNIG9yZy5qYWNvcmIub3JiLmlpb3AuQ2xp
ZW50SUlPUENvbm5lY3Rpb24gY29ubmVjdApJTkZPOiBSZXRyeWluZyB0byBjb25uZWN0IHRvIDEy
Ny4wLjEuMTo1MDUyNQpNYXkgMTEsIDIwMTUgMTI6MTA6NTggUE0gb3JnLmphY29yYi5vcmIuaWlv
cC5DbGllbnRJSU9QQ29ubmVjdGlvbiBjb25uZWN0CklORk86IFJldHJ5aW5nIHRvIGNvbm5lY3Qg
dG8gMTI3LjAuMS4xOjUwNTI1CiMjIyByZWNlaXZlX2V4Y2VwdGlvbgpyZWNlaXZlX2V4Y2VwdGlv
biBJREw6b21nLm9yZy9DT1JCQS9UUkFOU0lFTlQ6MS4wCnJlY2VpdmVfZXhjZXB0aW9uIElETDpv
bWcub3JnL0NPUkJBL1RSQU5TSUVOVDoxLjAgY291bnQgPSAwIHRocm93IEZvcndhcmRSZXF1ZXN0
Ck1heSAxMSwgMjAxNSAxMjoxMDo1OCBQTSBvcmcuamFjb3JiLm9yYi5naW9wLkNsaWVudENvbm5l
Y3Rpb25NYW5hZ2VyIGdldENvbm5lY3Rpb24KSU5GTzogQ2xpZW50Q29ubmVjdGlvbk1hbmFnZXI6
IGNyZWF0ZWQgbmV3IENsaWVudEdJT1BDb25uZWN0aW9uIHRvIDEyNy4wLjEuMTozNDg1MSAoNzEw
NzEzZGUpCk1heSAxMSwgMjAxNSAxMjoxMDo1OCBQTSBvcmcuamFjb3JiLm9yYi5paW9wLkNsaWVu
dElJT1BDb25uZWN0aW9uIGNvbm5lY3QKSU5GTzogUmV0cnlpbmcgdG8gY29ubmVjdCB0byAxMjcu
MC4xLjE6MzQ4NTEKTWF5IDExLCAyMDE1IDEyOjEwOjU5IFBNIG9yZy5qYWNvcmIub3JiLmlpb3Au
Q2xpZW50SUlPUENvbm5lY3Rpb24gY29ubmVjdApJTkZPOiBSZXRyeWluZyB0byBjb25uZWN0IHRv
IDEyNy4wLjEuMTozNDg1MQpNYXkgMTEsIDIwMTUgMTI6MTA6NTkgUE0gb3JnLmphY29yYi5vcmIu
aWlvcC5DbGllbnRJSU9QQ29ubmVjdGlvbiBjb25uZWN0CklORk86IFJldHJ5aW5nIHRvIGNvbm5l
Y3QgdG8gMTI3LjAuMS4xOjM0ODUxCk1heSAxMSwgMjAxNSAxMjoxMTowMCBQTSBvcmcuamFjb3Ji
Lm9yYi5paW9wLkNsaWVudElJT1BDb25uZWN0aW9uIGNvbm5lY3QKSU5GTzogUmV0cnlpbmcgdG8g
Y29ubmVjdCB0byAxMjcuMC4xLjE6MzQ4NTEKTWF5IDExLCAyMDE1IDEyOjExOjAwIFBNIG9yZy5q
YWNvcmIub3JiLmlpb3AuQ2xpZW50SUlPUENvbm5lY3Rpb24gY29ubmVjdApJTkZPOiBSZXRyeWlu
ZyB0byBjb25uZWN0IHRvIDEyNy4wLjEuMTozNDg1MQojIyMgcmVjZWl2ZV9leGNlcHRpb24KcmVj
ZWl2ZV9leGNlcHRpb24gSURMOm9tZy5vcmcvQ09SQkEvVFJBTlNJRU5UOjEuMApyZWNlaXZlX2V4
Y2VwdGlvbiBJREw6b21nLm9yZy9DT1JCQS9UUkFOU0lFTlQ6MS4wIGNvdW50ID0gMSBqdXN0IHJl
dHVybgpNYXkgMTEsIDIwMTUgMTI6MTE6MDEgUE0gb3JnLmphY29yYi5vcmIuZ2lvcC5DbGllbnRD
b25uZWN0aW9uTWFuYWdlciBnZXRDb25uZWN0aW9uCklORk86IENsaWVudENvbm5lY3Rpb25NYW5h
Z2VyOiBjcmVhdGVkIG5ldyBDbGllbnRHSU9QQ29ubmVjdGlvbiB0byAxMjcuMC4xLjE6NTA1MjUg
KDU5NzI3ZWQ0KQpNYXkgMTEsIDIwMTUgMTI6MTE6MDEgUE0gb3JnLmphY29yYi5vcmIuaWlvcC5D
bGllbnRJSU9QQ29ubmVjdGlvbiBjb25uZWN0CklORk86IFJldHJ5aW5nIHRvIGNvbm5lY3QgdG8g
MTI3LjAuMS4xOjUwNTI1Ck1heSAxMSwgMjAxNSAxMjoxMTowMSBQTSBvcmcuamFjb3JiLm9yYi5p
aW9wLkNsaWVudElJT1BDb25uZWN0aW9uIGNvbm5lY3QKSU5GTzogUmV0cnlpbmcgdG8gY29ubmVj
dCB0byAxMjcuMC4xLjE6NTA1MjUKTWF5IDExLCAyMDE1IDEyOjExOjAyIFBNIG9yZy5qYWNvcmIu
b3JiLmlpb3AuQ2xpZW50SUlPUENvbm5lY3Rpb24gY29ubmVjdApJTkZPOiBSZXRyeWluZyB0byBj
b25uZWN0IHRvIDEyNy4wLjEuMTo1MDUyNQpNYXkgMTEsIDIwMTUgMTI6MTE6MDIgUE0gb3JnLmph
Y29yYi5vcmIuaWlvcC5DbGllbnRJSU9QQ29ubmVjdGlvbiBjb25uZWN0CklORk86IFJldHJ5aW5n
IHRvIGNvbm5lY3QgdG8gMTI3LjAuMS4xOjUwNTI1Ck1heSAxMSwgMjAxNSAxMjoxMTowMyBQTSBv
cmcuamFjb3JiLm9yYi5paW9wLkNsaWVudElJT1BDb25uZWN0aW9uIGNvbm5lY3QKSU5GTzogUmV0
cnlpbmcgdG8gY29ubmVjdCB0byAxMjcuMC4xLjE6NTA1MjUKIyMjIHJlY2VpdmVfZXhjZXB0aW9u
CnJlY2VpdmVfZXhjZXB0aW9uIElETDpvbWcub3JnL0NPUkJBL1RSQU5TSUVOVDoxLjAKcmVjZWl2
ZV9leGNlcHRpb24gSURMOm9tZy5vcmcvQ09SQkEvVFJBTlNJRU5UOjEuMCBjb3VudCA9IDEganVz
dCByZXR1cm4KR290IEV4Y2VwdGlvbjogb3JnLm9tZy5DT1JCQS5UUkFOU0lFTlQ6IFJldHJpZXMg
ZXhjZWVkZWQsIGNvdWxkbid0IHJlY29ubmVjdCB0byAxMjcuMC4xLjE6NTA1MjUgIHZtY2lkOiAw
eDAgIG1pbm9yIGNvZGU6IDAgIGNvbXBsZXRlZDogTm8Kb3JnLm9tZy5DT1JCQS5UUkFOU0lFTlQ6
IFJldHJpZXMgZXhjZWVkZWQsIGNvdWxkbid0IHJlY29ubmVjdCB0byAxMjcuMC4xLjE6NTA1MjUg
IHZtY2lkOiAweDAgIG1pbm9yIGNvZGU6IDAgIGNvbXBsZXRlZDogTm8KICAgICAgICBhdCBvcmcu
amFjb3JiLm9yYi5paW9wLkNsaWVudElJT1BDb25uZWN0aW9uLmNvbm5lY3QoQ2xpZW50SUlPUENv
bm5lY3Rpb24uamF2YToyMTMpCiAgICAgICAgYXQgb3JnLmphY29yYi5vcmIuZ2lvcC5HSU9QQ29u
bmVjdGlvbi5zZW5kTWVzc2FnZShHSU9QQ29ubmVjdGlvbi5qYXZhOjk0NykKICAgICAgICBhdCBv
cmcuamFjb3JiLm9yYi5naW9wLkdJT1BDb25uZWN0aW9uLnNlbmRSZXF1ZXN0KEdJT1BDb25uZWN0
aW9uLmphdmE6OTExKQogICAgICAgIGF0IG9yZy5qYWNvcmIub3JiLmdpb3AuQ2xpZW50Q29ubmVj
dGlvbi5zZW5kUmVxdWVzdChDbGllbnRDb25uZWN0aW9uLmphdmE6Mjg5KQogICAgICAgIGF0IG9y
Zy5qYWNvcmIub3JiLmdpb3AuQ2xpZW50Q29ubmVjdGlvbi5zZW5kUmVxdWVzdChDbGllbnRDb25u
ZWN0aW9uLmphdmE6MjcwKQogICAgICAgIGF0IG9yZy5qYWNvcmIub3JiLkRlbGVnYXRlLmludm9r
ZV9pbnRlcm5hbChEZWxlZ2F0ZS5qYXZhOjEwNTEpCiAgICAgICAgYXQgb3JnLmphY29yYi5vcmIu
RGVsZWdhdGUuaW52b2tlKERlbGVnYXRlLmphdmE6OTU3KQogICAgICAgIGF0IG9yZy5vbWcuQ09S
QkEucG9ydGFibGUuT2JqZWN0SW1wbC5faW52b2tlKE9iamVjdEltcGwuamF2YTo0NzUpCiAgICAg
ICAgYXQgdGVzdC5faVN0dWIuZihfaVN0dWIuamF2YTozNSkKICAgICAgICBhdCB0ZXN0LlRlc3Qu
bWFpbihUZXN0LmphdmE6MzcpCgoKCgoKSU5GTwp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpKYWNPUkIgVjMuNy1TTkFQU0hPVCAo
d3d3LmphY29yYi5vcmcpCiAgICAgICAgKEMpIFRoZSBKYWNPUkIgcHJvamVjdCAxOTk3LTIwMTUK
ICAgICAgICAxMSBNYXkgMjAxNSB3aXRoIFNIQSA3ZDFlYmQxOQp+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpJTkZPIEluaXRpYWxp
c2luZyBPUkIgd2l0aCBJRDoKSU5GTyBJbnRlcmNlcHRvck1hbmFnZXIgc3RhcnRlZCB3aXRoIDAg
U2VydmVyIEludGVyY2VwdG9ycywgMSBDbGllbnQgSW50ZXJjZXB0b3JzIGFuZCAxIElPUiBJbnRl
cmNlcHRvcnMKSW52b2tpbmcgdGVzdC5pLmYgZnVuY3Rpb24KSU5GTyBDbGllbnRDb25uZWN0aW9u
TWFuYWdlcjogY3JlYXRlZCBuZXcgQ2xpZW50R0lPUENvbm5lY3Rpb24gdG8gMTI3LjAuMS4xOjUw
NTI1ICgxMmZlYWZjKQpJTkZPIE5lZ290aWF0ZWQgY2hhciBjb2Rlc2V0IG9mIFVURjggYW5kIHdj
aGFyIG9mIFVURjE2CklORk8gUmV0cnlpbmcgdG8gY29ubmVjdCB0byAxMjcuMC4xLjE6NTA1MjUK
SU5GTyBSZXRyeWluZyB0byBjb25uZWN0IHRvIDEyNy4wLjEuMTo1MDUyNQpJTkZPIFJldHJ5aW5n
IHRvIGNvbm5lY3QgdG8gMTI3LjAuMS4xOjUwNTI1CklORk8gUmV0cnlpbmcgdG8gY29ubmVjdCB0
byAxMjcuMC4xLjE6NTA1MjUKSU5GTyBSZXRyeWluZyB0byBjb25uZWN0IHRvIDEyNy4wLjEuMTo1
MDUyNQojIyMgcmVjZWl2ZV9leGNlcHRpb24KcmVjZWl2ZV9leGNlcHRpb24gSURMOm9tZy5vcmcv
Q09SQkEvVFJBTlNJRU5UOjEuMApyZWNlaXZlX2V4Y2VwdGlvbiBJREw6b21nLm9yZy9DT1JCQS9U
UkFOU0lFTlQ6MS4wIGNvdW50ID0gMCB0aHJvdyBGb3J3YXJkUmVxdWVzdApJTkZPIENsaWVudENv
bm5lY3Rpb25NYW5hZ2VyOiBjcmVhdGVkIG5ldyBDbGllbnRHSU9QQ29ubmVjdGlvbiB0byAxMjcu
MC4xLjE6MzQ4NTEgKGFjNDIwOTEpCklORk8gTmVnb3RpYXRlZCBjaGFyIGNvZGVzZXQgb2YgVVRG
OCBhbmQgd2NoYXIgb2YgVVRGMTYKSU5GTyBSZXRyeWluZyB0byBjb25uZWN0IHRvIDEyNy4wLjEu
MTozNDg1MQpJTkZPIFJldHJ5aW5nIHRvIGNvbm5lY3QgdG8gMTI3LjAuMS4xOjM0ODUxCklORk8g
UmV0cnlpbmcgdG8gY29ubmVjdCB0byAxMjcuMC4xLjE6MzQ4NTEKSU5GTyBSZXRyeWluZyB0byBj
b25uZWN0IHRvIDEyNy4wLjEuMTozNDg1MQpJTkZPIFJldHJ5aW5nIHRvIGNvbm5lY3QgdG8gMTI3
LjAuMS4xOjM0ODUxCiMjIyByZWNlaXZlX2V4Y2VwdGlvbgpyZWNlaXZlX2V4Y2VwdGlvbiBJREw6
b21nLm9yZy9DT1JCQS9UUkFOU0lFTlQ6MS4wCnJlY2VpdmVfZXhjZXB0aW9uIElETDpvbWcub3Jn
L0NPUkJBL1RSQU5TSUVOVDoxLjAgY291bnQgPSAxIGp1c3QgcmV0dXJuCklORk8gQ2xpZW50Q29u
bmVjdGlvbk1hbmFnZXI6IGNyZWF0ZWQgbmV3IENsaWVudEdJT1BDb25uZWN0aW9uIHRvIDEyNy4w
LjEuMTo1MDUyNSAoN2E0YjU5ZGQpCklORk8gTmVnb3RpYXRlZCBjaGFyIGNvZGVzZXQgb2YgVVRG
OCBhbmQgd2NoYXIgb2YgVVRGMTYKSU5GTyBSZXRyeWluZyB0byBjb25uZWN0IHRvIDEyNy4wLjEu
MTo1MDUyNQpJTkZPIFJldHJ5aW5nIHRvIGNvbm5lY3QgdG8gMTI3LjAuMS4xOjUwNTI1CklORk8g
UmV0cnlpbmcgdG8gY29ubmVjdCB0byAxMjcuMC4xLjE6NTA1MjUKSU5GTyBSZXRyeWluZyB0byBj
b25uZWN0IHRvIDEyNy4wLjEuMTo1MDUyNQpJTkZPIFJldHJ5aW5nIHRvIGNvbm5lY3QgdG8gMTI3
LjAuMS4xOjUwNTI1CiMjIyByZWNlaXZlX2V4Y2VwdGlvbgpyZWNlaXZlX2V4Y2VwdGlvbiBJREw6
b21nLm9yZy9DT1JCQS9UUkFOU0lFTlQ6MS4wCnJlY2VpdmVfZXhjZXB0aW9uIElETDpvbWcub3Jn
L0NPUkJBL1RSQU5TSUVOVDoxLjAgY291bnQgPSAxIGp1c3QgcmV0dXJuCkdvdCBFeGNlcHRpb246
IG9yZy5vbWcuQ09SQkEuVFJBTlNJRU5UOiBSZXRyaWVzIGV4Y2VlZGVkLCBjb3VsZG4ndCByZWNv
bm5lY3QgdG8gMTI3LjAuMS4xOjUwNTI1Cm9yZy5vbWcuQ09SQkEuVFJBTlNJRU5UOiBSZXRyaWVz
IGV4Y2VlZGVkLCBjb3VsZG4ndCByZWNvbm5lY3QgdG8gMTI3LjAuMS4xOjUwNTI1CiAgICAgICAg
YXQgb3JnLmphY29yYi5vcmIuaWlvcC5DbGllbnRJSU9QQ29ubmVjdGlvbi5jb25uZWN0KENsaWVu
dElJT1BDb25uZWN0aW9uLmphdmE6MjI2KQogICAgICAgIGF0IG9yZy5qYWNvcmIub3JiLmdpb3Au
R0lPUENvbm5lY3Rpb24uc2VuZE1lc3NhZ2UoR0lPUENvbm5lY3Rpb24uamF2YToxMDY5KQogICAg
ICAgIGF0IG9yZy5qYWNvcmIub3JiLmdpb3AuR0lPUENvbm5lY3Rpb24uc2VuZFJlcXVlc3QoR0lP
UENvbm5lY3Rpb24uamF2YToxMDE0KQogICAgICAgIGF0IG9yZy5qYWNvcmIub3JiLmdpb3AuQ2xp
ZW50Q29ubmVjdGlvbi5zZW5kUmVxdWVzdChDbGllbnRDb25uZWN0aW9uLmphdmE6MzA5KQogICAg
ICAgIGF0IG9yZy5qYWNvcmIub3JiLmdpb3AuQ2xpZW50Q29ubmVjdGlvbi5zZW5kUmVxdWVzdChD
bGllbnRDb25uZWN0aW9uLmphdmE6MjkwKQogICAgICAgIGF0IG9yZy5qYWNvcmIub3JiLkRlbGVn
YXRlLl9pbnZva2VfaW50ZXJuYWwoRGVsZWdhdGUuamF2YToxMzQ2KQogICAgICAgIGF0IG9yZy5q
YWNvcmIub3JiLkRlbGVnYXRlLmludm9rZV9pbnRlcm5hbChEZWxlZ2F0ZS5qYXZhOjExNzEpCiAg
ICAgICAgYXQgb3JnLmphY29yYi5vcmIuRGVsZWdhdGUuaW52b2tlKERlbGVnYXRlLmphdmE6MTE1
OSkKICAgICAgICBhdCBvcmcub21nLkNPUkJBLnBvcnRhYmxlLk9iamVjdEltcGwuX2ludm9rZShP
YmplY3RJbXBsLmphdmE6ODApCiAgICAgICAgYXQgdGVzdC5faVN0dWIuZihfaVN0dWIuamF2YToz
NSkKICAgICAgICBhdCB0ZXN0LlRlc3QubWFpbihUZXN0LmphdmE6MzcpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>