<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>74741</bug_id>
          
          <creation_ts>2011-12-16 12:33:09 -0800</creation_ts>
          <short_desc>Postpone deleteRenderbuffer/deleteTexture until all framebuffer attachment points are removed.</short_desc>
          <delta_ts>2011-12-19 15:03:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>kbr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>522932</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-12-16 12:33:09 -0800</bug_when>
    <thetext>According to GLES2 spec, when deleteRenderbuffer/deleteTexture is called, and if the renderbuffer/texture is attached to a un-bound framebuffer, than the image of the renderbuffer/texture is not removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522957</commentid>
    <comment_count>1</comment_count>
      <attachid>119655</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-12-16 12:52:35 -0800</bug_when>
    <thetext>Created attachment 119655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523005</commentid>
    <comment_count>2</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-12-16 13:56:16 -0800</bug_when>
    <thetext>Bots are green, please review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523125</commentid>
    <comment_count>3</comment_count>
      <attachid>119655</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-16 15:56:48 -0800</bug_when>
    <thetext>Comment on attachment 119655
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=119655&amp;action=review

&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:245
&gt; +            gc3d-&gt;framebufferRenderbuffer(GraphicsContext3D::FRAMEBUFFER, GraphicsContext3D::COLOR_ATTACHMENT0, GraphicsContext3D::RENDERBUFFER, 0);

These calls assume that this framebuffer object is bound to the FRAMEBUFFER binding point at the time they&apos;re called. This may be guaranteed when the WebGLRenderingContext calls the setAttachment method, but not when deleteRenderbuffer, deleteTexture, etc. is called -- and these methods seem to be the ones that call removeAttachment(WebGLObject*).

I don&apos;t understand the logic here regardless. I thought the desired behavior was to defer the deletion of the WebGLTexture, WebGLRenderbuffer, etc. until it was detached from all live framebuffers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523176</commentid>
    <comment_count>4</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-12-16 17:22:52 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 119655 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=119655&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:245
&gt; &gt; +            gc3d-&gt;framebufferRenderbuffer(GraphicsContext3D::FRAMEBUFFER, GraphicsContext3D::COLOR_ATTACHMENT0, GraphicsContext3D::RENDERBUFFER, 0);
&gt; 
&gt; These calls assume that this framebuffer object is bound to the FRAMEBUFFER binding point at the time they&apos;re called. This may be guaranteed when the WebGLRenderingContext calls the setAttachment method, but not when deleteRenderbuffer, deleteTexture, etc. is called -- and these methods seem to be the ones that call removeAttachment(WebGLObject*).

In deleteRenderbuffer/deleteTexture, removeAttachment() is always called for the current bound framebuffer (if it&apos;s not null).  So I think the logic here is correct.

&gt; 
&gt; I don&apos;t understand the logic here regardless. I thought the desired behavior was to defer the deletion of the WebGLTexture, WebGLRenderbuffer, etc. until it was detached from all live framebuffers?

Yes, the deletion is deferred by onAttached() on the object (attachment count ++), and the true deletion is only happening when onDetached() is called on the object().  The deferred deletion logic is already implemented for shader/program/framebuffer objects in WebGLObject, now we extend the same mechanism to renderbuffer/texture object.

Please have another look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524122</commentid>
    <comment_count>5</comment_count>
      <attachid>119655</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-19 12:38:17 -0800</bug_when>
    <thetext>Comment on attachment 119655
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=119655&amp;action=review

Thanks for the explanation. Looks good overall but please resolve the naming issue and various minor test issues before committing. r=me

&gt;&gt;&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:245
&gt;&gt;&gt; +            gc3d-&gt;framebufferRenderbuffer(GraphicsContext3D::FRAMEBUFFER, GraphicsContext3D::COLOR_ATTACHMENT0, GraphicsContext3D::RENDERBUFFER, 0);
&gt;&gt; 
&gt;&gt; These calls assume that this framebuffer object is bound to the FRAMEBUFFER binding point at the time they&apos;re called. This may be guaranteed when the WebGLRenderingContext calls the setAttachment method, but not when deleteRenderbuffer, deleteTexture, etc. is called -- and these methods seem to be the ones that call removeAttachment(WebGLObject*).
&gt;&gt; 
&gt;&gt; I don&apos;t understand the logic here regardless. I thought the desired behavior was to defer the deletion of the WebGLTexture, WebGLRenderbuffer, etc. until it was detached from all live framebuffers?
&gt; 
&gt; In deleteRenderbuffer/deleteTexture, removeAttachment() is always called for the current bound framebuffer (if it&apos;s not null).  So I think the logic here is correct.

OK, thanks, I see now, but this is pretty subtle. Given the new semantics I strongly think you should rename this method to removeAttachmentFromCurrentlyBoundFramebuffer() or similar and update the comment in WebGLFramebuffer.h.

&gt; LayoutTests/fast/canvas/webgl/object-deletion-behaviour.html:29
&gt; +shouldBeTrue(&quot;program != null&quot;);

You can use shouldBeNonNull(program), here and throughout.

&gt; LayoutTests/fast/canvas/webgl/object-deletion-behaviour.html:181
&gt; +  shouldBeFalse(&quot;gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE&quot;);

Can use shouldNotBe here.

&gt; LayoutTests/fast/canvas/webgl/object-deletion-behaviour.html:188
&gt; +  shouldBeTrue(&quot;gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) == rbo&quot;);

Can use shouldBe here.

&gt; LayoutTests/fast/canvas/webgl/object-deletion-behaviour.html:246
&gt; +  shouldBeTrue(&quot;gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE&quot;);

Use shouldNotBe.

&gt; LayoutTests/fast/canvas/webgl/object-deletion-behaviour.html:253
&gt; +  shouldBeTrue(&quot;gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) == rbo&quot;);

Use shouldBe.

&gt; LayoutTests/fast/canvas/webgl/object-deletion-behaviour.html:258
&gt; +  shouldBeTrue(&quot;gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE&quot;);

shouldNotBe.

&gt; LayoutTests/fast/canvas/webgl/object-deletion-behaviour.html:282
&gt; +  shouldBeTrue(&quot;gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE&quot;);

shouldNotBe.

&gt; LayoutTests/fast/canvas/webgl/object-deletion-behaviour.html:285
&gt; +  shouldBeTrue(&quot;gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE&quot;);

shouldBe.

&gt; LayoutTests/fast/canvas/webgl/object-deletion-behaviour.html:290
&gt; +  shouldBeTrue(&quot;gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) == tex&quot;);

shouldBe.

&gt; LayoutTests/fast/canvas/webgl/object-deletion-behaviour.html:294
&gt; +  shouldBeTrue(&quot;gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE&quot;);

shouldNotBe.

&gt; LayoutTests/fast/canvas/webgl/object-deletion-behaviour.html:410
&gt; +  // check again because many buggy implementations will have bound to the true backbuffer on deleteFramebuffer.

I don&apos;t understand this comment nor what the test below is trying to achieve. Upon deleteFramebuffer of the bound FBO the implementation should revert back to the default framebuffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524185</commentid>
    <comment_count>6</comment_count>
      <attachid>119655</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-12-19 14:14:12 -0800</bug_when>
    <thetext>Comment on attachment 119655
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=119655&amp;action=review

&gt;&gt;&gt;&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:245
&gt;&gt;&gt;&gt; +            gc3d-&gt;framebufferRenderbuffer(GraphicsContext3D::FRAMEBUFFER, GraphicsContext3D::COLOR_ATTACHMENT0, GraphicsContext3D::RENDERBUFFER, 0);
&gt;&gt;&gt; 
&gt;&gt;&gt; These calls assume that this framebuffer object is bound to the FRAMEBUFFER binding point at the time they&apos;re called. This may be guaranteed when the WebGLRenderingContext calls the setAttachment method, but not when deleteRenderbuffer, deleteTexture, etc. is called -- and these methods seem to be the ones that call removeAttachment(WebGLObject*).
&gt;&gt;&gt; 
&gt;&gt;&gt; I don&apos;t understand the logic here regardless. I thought the desired behavior was to defer the deletion of the WebGLTexture, WebGLRenderbuffer, etc. until it was detached from all live framebuffers?
&gt;&gt; 
&gt;&gt; In deleteRenderbuffer/deleteTexture, removeAttachment() is always called for the current bound framebuffer (if it&apos;s not null).  So I think the logic here is correct.
&gt; 
&gt; OK, thanks, I see now, but this is pretty subtle. Given the new semantics I strongly think you should rename this method to removeAttachmentFromCurrentlyBoundFramebuffer() or similar and update the comment in WebGLFramebuffer.h.

Done and I add a ASSERT to make sure the function is called upon the bound framebuffer.

&gt;&gt; LayoutTests/fast/canvas/webgl/object-deletion-behaviour.html:181
&gt;&gt; +  shouldBeFalse(&quot;gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE&quot;);
&gt; 
&gt; Can use shouldNotBe here.

Done and all the belowing.  We should be more formal for khronos side tests code review.  Otherwise everytime we  try to sync with it, we end up cleaning issues in some tests.

&gt;&gt; LayoutTests/fast/canvas/webgl/object-deletion-behaviour.html:410
&gt;&gt; +  // check again because many buggy implementations will have bound to the true backbuffer on deleteFramebuffer.
&gt; 
&gt; I don&apos;t understand this comment nor what the test below is trying to achieve. Upon deleteFramebuffer of the bound FBO the implementation should revert back to the default framebuffer.

My guess is to check bindFramebuffer(null) bind to the WebGL&apos;s backbuffer, instead of trully calling glBindFramebuffer(null).  I think this test is checking a potential bug and we should keep it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524210</commentid>
    <comment_count>7</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-12-19 15:03:16 -0800</bug_when>
    <thetext>Committed r103272: &lt;http://trac.webkit.org/changeset/103272&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119655</attachid>
            <date>2011-12-16 12:52:35 -0800</date>
            <delta_ts>2011-12-19 14:14:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74741-20111216125234.patch</filename>
            <type>text/plain</type>
            <size>52678</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzA5NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDExLTEyLTE2ICBaaGVueWFv
IE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgUG9zdHBvbmUgZGVsZXRlUmVuZGVyYnVm
ZmVyL2RlbGV0ZVRleHR1cmUgdW50aWwgYWxsIGZyYW1lYnVmZmVyIGF0dGFjaG1lbnQgcG9pbnRz
IGFyZSByZW1vdmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzQ3NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVc2UgV2ViR0xPYmplY3QncyBhdHRhY2htZW50IGNvdW50IG1lY2hhbmlzbSB0byB0cmFj
ayBpZiBhIHJlbmRlcmJ1ZmZlci90ZXh0dXJlCisgICAgICAgIGlzIHN0aWxsIGF0dGFjaGVkIHRv
IGZyYW1lYnVmZmVycywgYW5kIGlmIGl0cyBkZWxldGlvbiBzaG91bGQgYmUgZGVsYXRlZCBvciBu
b3QuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OnNldEF0dGFjaG1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6Z2V0QXR0YWNobWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTEZyYW1lYnVmZmVyOjpyZW1vdmVBdHRhY2htZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMRnJhbWVidWZmZXI6OmRlbGV0ZU9iamVjdEltcGwpOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaDoKKwogMjAxMS0xMi0xNiAgQnJhbmltaXIgTGFtYm92
ICA8YmxhbWJvdkBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gc3ZnL2NsaXAtcGF0
aC9jbGlwLWluLW1hc2suc3ZnIGZhaWxzIG9uIFdpbmRvd3MgYW5kIExpbnV4CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAkocmV2aXNp
b24gMTAzMDgxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw2ICsxMjEsNyBAQCB2b2lkIFdlYkdMRnJhbWVi
dWZmZXI6OnNldEF0dGFjaG1lbnQoR0MzCiB7CiAgICAgaWYgKCFvYmplY3QoKSkKICAgICAgICAg
cmV0dXJuOworICAgIHJlbW92ZUF0dGFjaG1lbnQoYXR0YWNobWVudCk7CiAgICAgaWYgKHRleHR1
cmUgJiYgIXRleHR1cmUtPm9iamVjdCgpKQogICAgICAgICB0ZXh0dXJlID0gMDsKICAgICBzd2l0
Y2ggKGF0dGFjaG1lbnQpIHsKQEAgLTE0MSwxNCArMTQyLDE4IEBAIHZvaWQgV2ViR0xGcmFtZWJ1
ZmZlcjo6c2V0QXR0YWNobWVudChHQzMKICAgICAgICAgbV9kZXB0aFN0ZW5jaWxBdHRhY2htZW50
ID0gdGV4dHVyZTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJu
OworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQor
ICAgIGlmICh0ZXh0dXJlKQorICAgICAgICB0ZXh0dXJlLT5vbkF0dGFjaGVkKCk7CiB9CiAKIHZv
aWQgV2ViR0xGcmFtZWJ1ZmZlcjo6c2V0QXR0YWNobWVudChHQzNEZW51bSBhdHRhY2htZW50LCBX
ZWJHTFJlbmRlcmJ1ZmZlciogcmVuZGVyYnVmZmVyKQogewogICAgIGlmICghb2JqZWN0KCkpCiAg
ICAgICAgIHJldHVybjsKKyAgICByZW1vdmVBdHRhY2htZW50KGF0dGFjaG1lbnQpOwogICAgIGlm
IChyZW5kZXJidWZmZXIgJiYgIXJlbmRlcmJ1ZmZlci0+b2JqZWN0KCkpCiAgICAgICAgIHJlbmRl
cmJ1ZmZlciA9IDA7CiAgICAgc3dpdGNoIChhdHRhY2htZW50KSB7CkBAIC0xNjUsOCArMTcwLDEx
IEBAIHZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6c2V0QXR0YWNobWVudChHQzMKICAgICAgICAgbV9k
ZXB0aFN0ZW5jaWxBdHRhY2htZW50ID0gcmVuZGVyYnVmZmVyOwogICAgICAgICBicmVhazsKICAg
ICBkZWZhdWx0OgotICAgICAgICByZXR1cm47CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICBicmVhazsKICAgICB9CisgICAgaWYgKHJlbmRlcmJ1ZmZlcikKKyAgICAgICAg
cmVuZGVyYnVmZmVyLT5vbkF0dGFjaGVkKCk7CiB9CiAKIFdlYkdMT2JqZWN0KiBXZWJHTEZyYW1l
YnVmZmVyOjpnZXRBdHRhY2htZW50KEdDM0RlbnVtIGF0dGFjaG1lbnQpIGNvbnN0CkBAIC0xODMs
MjQgKzE5MSw3NSBAQCBXZWJHTE9iamVjdCogV2ViR0xGcmFtZWJ1ZmZlcjo6Z2V0QXR0YWNoCiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UOgogICAg
ICAgICByZXR1cm4gbV9kZXB0aFN0ZW5jaWxBdHRhY2htZW50LmdldCgpOwogICAgIGRlZmF1bHQ6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9
CiB9CiAKK3ZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6cmVtb3ZlQXR0YWNobWVudChHQzNEZW51bSBh
dHRhY2htZW50KQoreworICAgIGlmICghb2JqZWN0KCkpCisgICAgICAgIHJldHVybjsKKyAgICBz
d2l0Y2ggKGF0dGFjaG1lbnQpIHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9B
VFRBQ0hNRU5UMDoKKyAgICAgICAgaWYgKG1fY29sb3JBdHRhY2htZW50KSB7CisgICAgICAgICAg
ICBtX2NvbG9yQXR0YWNobWVudC0+b25EZXRhY2hlZCgpOworICAgICAgICAgICAgbV9jb2xvckF0
dGFjaG1lbnQgPSAwOworICAgICAgICAgICAgbV90ZXhUYXJnZXQgPSAwOworICAgICAgICAgICAg
bV90ZXhMZXZlbCA9IC0xOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRFUFRIX0FUVEFDSE1FTlQ6CisgICAgICAgIGlmIChtX2RlcHRoQXR0
YWNobWVudCkgeworICAgICAgICAgICAgbV9kZXB0aEF0dGFjaG1lbnQtPm9uRGV0YWNoZWQoKTsK
KyAgICAgICAgICAgIG1fZGVwdGhBdHRhY2htZW50ID0gMDsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0FUVEFDSE1FTlQ6Cisg
ICAgICAgIGlmIChtX3N0ZW5jaWxBdHRhY2htZW50KSB7CisgICAgICAgICAgICBtX3N0ZW5jaWxB
dHRhY2htZW50LT5vbkRldGFjaGVkKCk7CisgICAgICAgICAgICBtX3N0ZW5jaWxBdHRhY2htZW50
ID0gMDsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6CisgICAgICAgIGlmIChtX2RlcHRoU3RlbmNp
bEF0dGFjaG1lbnQpIHsKKyAgICAgICAgICAgIG1fZGVwdGhTdGVuY2lsQXR0YWNobWVudC0+b25E
ZXRhY2hlZCgpOworICAgICAgICAgICAgbV9kZXB0aFN0ZW5jaWxBdHRhY2htZW50ID0gMDsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiB2b2lkIFdlYkdMRnJhbWVi
dWZmZXI6OnJlbW92ZUF0dGFjaG1lbnQoV2ViR0xPYmplY3QqIGF0dGFjaG1lbnQpCiB7CiAgICAg
aWYgKCFvYmplY3QoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChhdHRhY2htZW50ID09IG1f
Y29sb3JBdHRhY2htZW50LmdldCgpKQotICAgICAgICBtX2NvbG9yQXR0YWNobWVudCA9IDA7Ci0g
ICAgZWxzZSBpZiAoYXR0YWNobWVudCA9PSBtX2RlcHRoQXR0YWNobWVudC5nZXQoKSkKLSAgICAg
ICAgbV9kZXB0aEF0dGFjaG1lbnQgPSAwOwotICAgIGVsc2UgaWYgKGF0dGFjaG1lbnQgPT0gbV9z
dGVuY2lsQXR0YWNobWVudC5nZXQoKSkKLSAgICAgICAgbV9zdGVuY2lsQXR0YWNobWVudCA9IDA7
Ci0gICAgZWxzZSBpZiAoYXR0YWNobWVudCA9PSBtX2RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuZ2V0
KCkpCi0gICAgICAgIG1fZGVwdGhTdGVuY2lsQXR0YWNobWVudCA9IDA7Ci0gICAgZWxzZQorICAg
IGlmICghYXR0YWNobWVudCkKICAgICAgICAgcmV0dXJuOworICAgIEdyYXBoaWNzQ29udGV4dDNE
KiBnYzNkID0gY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpOworICAgIGlmIChhdHRhY2ht
ZW50ID09IG1fY29sb3JBdHRhY2htZW50LmdldCgpKSB7CisgICAgICAgIGlmIChhdHRhY2htZW50
LT5pc1JlbmRlcmJ1ZmZlcigpKQorICAgICAgICAgICAgZ2MzZC0+ZnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBHcmFwaGljc0NvbnRleHQzRDo6
Q09MT1JfQVRUQUNITUVOVDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVIsIDApOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBnYzNkLT5mcmFtZWJ1ZmZlclRleHR1cmUyRChHcmFw
aGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRB
Q0hNRU5UMCwgbV90ZXhUYXJnZXQsIDAsIG1fdGV4TGV2ZWwpOworICAgICAgICByZW1vdmVBdHRh
Y2htZW50KEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCk7CisgICAgfQorICAg
IGlmIChhdHRhY2htZW50ID09IG1fZGVwdGhBdHRhY2htZW50LmdldCgpKSB7CisgICAgICAgIGdj
M2QtPmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZF
UiwgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0FUVEFDSE1FTlQsIEdyYXBoaWNzQ29udGV4dDNE
OjpSRU5ERVJCVUZGRVIsIDApOworICAgICAgICByZW1vdmVBdHRhY2htZW50KEdyYXBoaWNzQ29u
dGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UKTsKKyAgICB9CisgICAgaWYgKGF0dGFjaG1lbnQgPT0g
bV9zdGVuY2lsQXR0YWNobWVudC5nZXQoKSkgeworICAgICAgICBnYzNkLT5mcmFtZWJ1ZmZlclJl
bmRlcmJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIEdyYXBoaWNzQ29udGV4
dDNEOjpTVEVOQ0lMX0FUVEFDSE1FTlQsIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVIs
IDApOworICAgICAgICByZW1vdmVBdHRhY2htZW50KEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lM
X0FUVEFDSE1FTlQpOworICAgIH0KKyAgICBpZiAoYXR0YWNobWVudCA9PSBtX2RlcHRoU3RlbmNp
bEF0dGFjaG1lbnQuZ2V0KCkpIHsKKyAgICAgICAgZ2MzZC0+ZnJhbWVidWZmZXJSZW5kZXJidWZm
ZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBHcmFwaGljc0NvbnRleHQzRDo6REVQ
VEhfQVRUQUNITUVOVCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUiwgMCk7CisgICAg
ICAgIGdjM2QtPmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQVRUQUNITUVOVCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJFTkRFUkJVRkZFUiwgMCk7CisgICAgICAgIHJlbW92ZUF0dGFjaG1lbnQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCk7CisgICAgfQogfQogCiBH
QzNEc2l6ZWkgV2ViR0xGcmFtZWJ1ZmZlcjo6Z2V0Q29sb3JCdWZmZXJXaWR0aCgpIGNvbnN0CkBA
IC0zMTcsMTEgKzM3NiwxMSBAQCBib29sIFdlYkdMRnJhbWVidWZmZXI6Om9uQWNjZXNzKGJvb2wg
bmVlCiAKIHZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6ZGVsZXRlT2JqZWN0SW1wbChQbGF0Zm9ybTNE
T2JqZWN0IG9iamVjdCkKIHsKKyAgICByZW1vdmVBdHRhY2htZW50KEdyYXBoaWNzQ29udGV4dDNE
OjpDT0xPUl9BVFRBQ0hNRU5UMCk7CisgICAgcmVtb3ZlQXR0YWNobWVudChHcmFwaGljc0NvbnRl
eHQzRDo6REVQVEhfQVRUQUNITUVOVCk7CisgICAgcmVtb3ZlQXR0YWNobWVudChHcmFwaGljc0Nv
bnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5UKTsKKyAgICByZW1vdmVBdHRhY2htZW50KEdyYXBo
aWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQpOwogICAgIGNvbnRleHQoKS0+
Z3JhcGhpY3NDb250ZXh0M0QoKS0+ZGVsZXRlRnJhbWVidWZmZXIob2JqZWN0KTsKLSAgICBtX2Nv
bG9yQXR0YWNobWVudCA9IDA7Ci0gICAgbV9kZXB0aEF0dGFjaG1lbnQgPSAwOwotICAgIG1fc3Rl
bmNpbEF0dGFjaG1lbnQgPSAwOwotICAgIG1fZGVwdGhTdGVuY2lsQXR0YWNobWVudCA9IDA7CiB9
CiAKIGJvb2wgV2ViR0xGcmFtZWJ1ZmZlcjo6aW5pdGlhbGl6ZVJlbmRlcmJ1ZmZlcnMoKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaAkocmV2
aXNpb24gMTAzMDgxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1
ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEF0dGFjaG1lbnQoR0MzRGVudW0gYXR0YWNobWVudCwgV2ViR0xSZW5kZXJidWZmZXIqKTsK
ICAgICAvLyBJZiBhbiBvYmplY3QgaXMgYXR0YWNoZWQgdG8gdGhlIGZyYW1lYnVmZmVyLCByZW1v
dmUgaXQuCiAgICAgdm9pZCByZW1vdmVBdHRhY2htZW50KFdlYkdMT2JqZWN0Kik7CisgICAgLy8g
SWYgYSBnaXZlbiBhdHRhY2htZW50IHBvaW50IGlzIG5vdCBudWxsLCByZW1vdmUgdGhlIGF0dGFj
aGVkIG9iamVjdC4KKyAgICB2b2lkIHJlbW92ZUF0dGFjaG1lbnQoR0MzRGVudW0pOwogICAgIFdl
YkdMT2JqZWN0KiBnZXRBdHRhY2htZW50KEdDM0RlbnVtKSBjb25zdDsKIAogICAgIEdDM0RlbnVt
IGdldENvbG9yQnVmZmVyRm9ybWF0KCkgY29uc3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDMwOTUp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBA
QAorMjAxMS0xMi0xNiAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgorCisgICAgICAgIFBv
c3Rwb25lIGRlbGV0ZVJlbmRlcmJ1ZmZlci9kZWxldGVUZXh0dXJlIHVudGlsIGFsbCBmcmFtZWJ1
ZmZlciBhdHRhY2htZW50IHBvaW50cyBhcmUgcmVtb3ZlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9vYmplY3QtZGVs
ZXRpb24tYmVoYXZpb3VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJn
bC9vYmplY3QtZGVsZXRpb24tYmVoYXZpb3VyLmh0bWw6IHN5bmNlZCB3aXRoIGtocm9ub3Mgc2lk
ZS4KKwogMjAxMS0xMi0xNiAgRG1pdHJ5IExvbW92ICA8ZHNsb21vdkBnb29nbGUuY29tPgogCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1NwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2JqZWN0LWRlbGV0aW9uLWJlaGF2aW91
ci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvb2JqZWN0LWRlbGV0aW9uLWJlaGF2aW91ci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwMzA4
MSkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29iamVjdC1kZWxldGlvbi1iZWhh
dmlvdXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02LDYgKzYsNyBAQCBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiBzaGFkZXIgYW5kIHByb2dyYW0gZGVs
ZXRpb24KIFBBU1MgdmVydGV4IHNoYWRlciBsb2FkZWQKIFBBU1MgZnJhZ21lbnQgc2hhZGVyIGxv
YWRlZAorUEFTUyBwcm9ncmFtICE9IG51bGwgaXMgdHJ1ZQogUEFTUyBnbC5hdHRhY2hTaGFkZXIo
cHJvZ3JhbSwgdmVydGV4U2hhZGVyKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgogUEFT
UyBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnJhZ21lbnRTaGFkZXIpIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IuCiBQQVNTIGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IuCkBAIC0yNywxMSArMjgsMTYgQEAgUEFTUyBnbC5pc1Byb2dyYW0o
cHJvZ3JhbSkgaXMgZmFsc2UKIFBBU1MgZ2wuaXNTaGFkZXIoZnJhZ21lbnRTaGFkZXIpIGlzIGZh
bHNlCiAKIHRleHR1cmUgZGVsZXRpb24KK1BBU1MgZmJvICE9IG51bGwgaXMgdHJ1ZQorUEFTUyBm
Ym8yICE9IG51bGwgaXMgdHJ1ZQorUEFTUyBmYm8zICE9IG51bGwgaXMgdHJ1ZQogUEFTUyBnbC5i
aW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibykgd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUi4KK1BBU1MgdGV4ICE9IG51bGwgaXMgdHJ1ZQogUEFTUyBnbC5iaW5kVGV4dHVyZShn
bC5URVhUVVJFXzJELCB0ZXgpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCiBQQVNTIGds
LmdldFBhcmFtZXRlcihnbC5URVhUVVJFX0JJTkRJTkdfMkQpIGlzIHRleAogUEFTUyBnbC5mcmFt
ZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGds
LlRFWFRVUkVfMkQsIHRleCwgMCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KIFBBU1Mg
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5D
T0xPUl9BVFRBQ0hNRU5UMCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSkg
aXMgdGV4CitQQVNTIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFN
RUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
T0JKRUNUX1RZUEUpIGlzIGdsLlRFWFRVUkUKIFBBU1MgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCiBQQVNTIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNo
bWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLkZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpIGlzIGdsLk5PTkUKIFBBU1MgZ2wuZ2V0
RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9B
VFRBQ0hNRU5UMCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSkgd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0VOVU0uCkBAIC0zOSw2ICs0NSw3IEBAIFBBU1MgZ2wuaXNU
ZXh0dXJlKHRleCkgaXMgZmFsc2UKIFBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlRFWFRVUkVfQklO
RElOR18yRCkgaXMgbnVsbAogUEFTUyBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgp
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCiBQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5U
RVhUVVJFX0JJTkRJTkdfMkQpIGlzIG51bGwKK1BBU1MgdGV4Q3ViZU1hcCAhPSBudWxsIGlzIHRy
dWUKIFBBU1MgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4Q3ViZU1hcCkg
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KIFBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlRF
WFRVUkVfQklORElOR19DVUJFX01BUCkgaXMgdGV4Q3ViZU1hcAogUEFTUyBnbC5kZWxldGVUZXh0
dXJlKHRleEN1YmVNYXApIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCkBAIC00Niw4ICs1
MywyOCBAQCBQQVNTIGdsLmlzVGV4dHVyZSh0ZXhDdWJlTWFwKSBpcyBmYWxzZQogUEFTUyBnbC5n
ZXRQYXJhbWV0ZXIoZ2wuVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQKSBpcyBudWxsCiBQQVNTIGds
LmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIHRleEN1YmVNYXApIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IuCiBQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5URVhUVVJFX0JJTkRJ
TkdfQ1VCRV9NQVApIGlzIG51bGwKK1BBU1MgdCAhPSBudWxsIGlzIHRydWUKK1BBU1MgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4K
K1BBU1MgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywg
Z2wuQ0xBTVBfVE9fRURHRSkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wu
ZGVsZXRlVGV4dHVyZSh0KSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0KSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
LgorUEFTUyBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9T
LCBnbC5DTEFNUF9UT19FREdFKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9O
LgorUEFTUyB0MiAhPSBudWxsIGlzIHRydWUKK1BBU1MgZ2wuYWN0aXZlVGV4dHVyZShnbC5URVhU
VVJFMCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuYmluZFRleHR1cmUo
Z2wuVEVYVFVSRV8yRCwgdDIpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGds
LmdldFBhcmFtZXRlcihnbC5URVhUVVJFX0JJTkRJTkdfMkQpIGlzIHQyCitQQVNTIGdsLmFjdGl2
ZVRleHR1cmUoZ2wuVEVYVFVSRTEpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNT
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHQyKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SLgorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVEVYVFVSRV9CSU5ESU5HXzJEKSBpcyB0
MgorUEFTUyBnbC5kZWxldGVUZXh0dXJlKHQyKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
LgorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVEVYVFVSRV9CSU5ESU5HXzJEKSBpcyBudWxsCitQ
QVNTIGdsLmFjdGl2ZVRleHR1cmUoZ2wuVEVYVFVSRTApIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IuCitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5URVhUVVJFX0JJTkRJTkdfMkQpIGlzIG51
bGwKIAogcmVuZGVyYnVmZmVyIGRlbGV0aW9uCitQQVNTIHJibyAhPSBudWxsIGlzIHRydWUKK1BB
U1MgcmJvMiAhPSBudWxsIGlzIHRydWUKK1BBU1MgcmJvMyAhPSBudWxsIGlzIHRydWUKIFBBU1Mg
Z2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJibykgd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUi4KIFBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUl9CSU5E
SU5HKSBpcyByYm8KIFBBU1MgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIHJibykgd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUi4KQEAgLTU5LDggKzg2LDE0NCBAQCBQQVNTIGdsLmlzUmVuZGVy
YnVmZmVyKHJibykgaXMgZmFsc2UKIFBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
Ul9CSU5ESU5HKSBpcyBudWxsCiBQQVNTIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVG
RkVSLCByYm8pIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCiBQQVNTIGdsLmdldFBhcmFt
ZXRlcihnbC5SRU5ERVJCVUZGRVJfQklORElORykgaXMgbnVsbAorUEFTUyBnbC5iaW5kUmVuZGVy
YnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgcmJvMikgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
Ui4KK1BBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUl9CSU5ESU5HKSBpcyByYm8y
CitQQVNTIGdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcihyYm8zKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SLgorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSX0JJTkRJTkcpIGlz
IHJibzIKKwordXNpbmcgZGVsZXRlZCByZW5kZXJidWZmZXIKK1BBU1MgZ2wuYmluZFJlbmRlcmJ1
ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJibykgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4K
K1BBU1MgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAx
NiwgMTYpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmJpbmRGcmFtZWJ1
ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgor
UEFTUyBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1Jf
QVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwgcmJvKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SLgorUEFTUyBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmNsZWFyQ29sb3IoMSwwLDAsMSkg
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuYmluZEZyYW1l
YnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Iu
CitQQVNTIGdsLmNsZWFyQ29sb3IoMCwxLDAsMSkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
Ui4KK1BBU1MgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCkgd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUi4KK1BBU1MgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxs
KSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5kZWxldGVSZW5kZXJidWZm
ZXIocmJvKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBiYWNrYnVmZmVyIHNo
b3VsZCBiZSByZWQKK1BBU1Mgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMTYsIDE2LCBb
MjU1LDAsMCwyNTVdLCAiYmFja2J1ZmZlciBzaG91bGQgYmUgcmVkIikgd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBm
Ym8pIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGZibyBzaG91bGQgYmUgZ3Jl
ZW4KK1BBU1Mgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMTYsIDE2LCBbMCwyNTUsMCwy
NTVdLCAiZmJvIHNob3VsZCBiZSBncmVlbiIpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Iu
CitQQVNTIGdsLmNsZWFyQ29sb3IoMCwwLDEsMSkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
Ui4KK1BBU1MgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCkgd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUi4KK1BBU1MgZmJvIHNob3VsZCBiZSBibHVlCitQQVNTIHd0dS5jaGVja0NhbnZh
c1JlY3QoZ2wsIDAsIDAsIDE2LCAxNiwgWzAsMCwyNTUsMjU1XSwgImZibyBzaG91bGQgYmUgYmx1
ZSIpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmJpbmRGcmFtZWJ1ZmZl
cihnbC5GUkFNRUJVRkZFUiwgbnVsbCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BB
U1MgYmFja2J1ZmZlciBzaG91bGQgYmUgcmVkCitQQVNTIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2ws
IDAsIDAsIDE2LCAxNiwgWzI1NSwwLDAsMjU1XSwgImJhY2tidWZmZXIgc2hvdWxkIGJlIHJlZCIp
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCisKK3JlbmRlcmJ1ZmZlciBhdHRhY2hlZCB0
d2ljZSB0byBzYW1lIGZyYW1lYnVmZmVyCitQQVNTIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVO
REVSQlVGRkVSLCByYm8pIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLnJl
bmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KSB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJB
TUVCVUZGRVIsIGZibykgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuZnJh
bWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQw
LCBnbC5SRU5ERVJCVUZGRVIsIHJibykgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BB
U1MgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJibzIpIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVS
QlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgor
UEFTUyBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhf
QVRUQUNITUVOVCwgZ2wuUkVOREVSQlVGRkVSLCByYm8yKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SLgorUEFTUyBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwg
Z2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5SRU5ERVJCVUZGRVIsIHJibzIpIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9PQkpFQ1RfTkFNRSkgPT0gcmJvMiBpcyB0cnVlCitQQVNTIGdsLmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTF9BVFRB
Q0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKSA9PSByYm8yIGlz
IHRydWUKK1BBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgPT0g
Z2wuRlJBTUVCVUZGRVJfQ09NUExFVEUgaXMgZmFsc2UKK1BBU1MgZ2wuZGVsZXRlUmVuZGVyYnVm
ZmVyKHJibzIpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNI
TUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkgaXMgZ2wuTk9ORQor
UEFTUyBnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIs
IGdsLlNURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
VFlQRSkgaXMgZ2wuTk9ORQorUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9DT01QTEVURQorUEFTUyBnbC5nZXRGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQw
LCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKSA9PSByYm8gaXMgdHJ1ZQor
UEFTUyBnbC5kZWxldGVSZW5kZXJidWZmZXIocmJvKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SLgorUEFTUyBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCisKK3VzaW5nIGRlbGV0ZWQgdGV4dHVyZQorUEFTUyBn
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IuCitQQVNTIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKSB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChn
bC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlRFWFRVUkVfMkQsIHRleCwg
MCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wudGV4SW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCBnbC5SR0JBLCAxLCAxLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCBudWxsKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5iaW5kRnJhbWVi
dWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibykgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4K
K1BBU1MgZ2wuY2xlYXJDb2xvcigwLDEsMCwxKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
LgorUEFTUyBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKSB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SLgorUEFTUyBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwp
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmRlbGV0ZVRleHR1cmUodGV4
KSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBiYWNrYnVmZmVyIHNob3VsZCBi
ZSByZWQKK1BBU1Mgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgWzI1NSwwLDAs
MjU1XSwgImJhY2tidWZmZXIgc2hvdWxkIGJlIHJlZCIpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IuCitQQVNTIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKSB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBmYm8gc2hvdWxkIGJlIGdyZWVuCitQQVNT
IHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDEsIDEsIFswLDI1NSwwLDI1NV0sICJmYm8g
c2hvdWxkIGJlIGdyZWVuIikgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wu
Y2xlYXJDb2xvcigwLDAsMSwxKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBn
bC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
LgorUEFTUyBmYm8gc2hvdWxkIGJlIGJsdWUKK1BBU1Mgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwg
MCwgMCwgMSwgMSwgWzAsMCwyNTUsMjU1XSwgImZibyBzaG91bGQgYmUgYmx1ZSIpIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJV
RkZFUiwgbnVsbCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgYmFja2J1ZmZl
ciBzaG91bGQgYmUgcmVkCitQQVNTIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDE2LCAx
NiwgWzI1NSwwLDAsMjU1XSwgImJhY2tidWZmZXIgc2hvdWxkIGJlIHJlZCIpIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IuCisKK3VzaW5nIGRlbGV0ZWQgcmVuZGVyYnVmZmVyCitQQVNTIHJi
byAhPSBudWxsIGlzIHRydWUKK1BBU1MgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZG
RVIsIHJibykgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wucmVuZGVyYnVm
ZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAxNiwgMTYpIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZF
UiwgZmJvKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5mcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJF
TkRFUkJVRkZFUiwgcmJvKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5i
aW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibzIpIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IuCitQQVNTIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVS
LCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCByYm8pIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJB
TUVCVUZGRVIpIGlzIGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFCitQQVNTIGdsLmJpbmRGcmFtZWJ1
ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVsbCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4K
K1BBU1MgZ2wuY2xlYXJDb2xvcigxLDAsMCwxKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
LgorUEFTUyBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKSB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SLgorUEFTUyBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibykg
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuY2xlYXJDb2xvcigwLDEsMCwx
KSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5jbGVhcihnbC5DT0xPUl9C
VUZGRVJfQklUKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5kZWxldGVS
ZW5kZXJidWZmZXIocmJvKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSAhPSBnbC5GUkFNRUJVRkZFUl9D
T01QTEVURSBpcyB0cnVlCitQQVNTIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwg
ZmJvMikgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZmJvIHNob3VsZCBiZSBn
cmVlbgorUEFTUyB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxNiwgMTYsIFswLDI1NSww
LDI1NV0sICJmYm8gc2hvdWxkIGJlIGdyZWVuIikgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
Ui4KK1BBU1MgZ2wuY2xlYXJDb2xvcigwLDAsMSwxKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SLgorUEFTUyBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKSB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SLgorUEFTUyBmYm8gc2hvdWxkIGJlIGJsdWUKK1BBU1Mgd3R1LmNoZWNrQ2Fu
dmFzUmVjdChnbCwgMCwgMCwgMTYsIDE2LCBbMCwwLDI1NSwyNTVdLCAiZmJvIHNob3VsZCBiZSBi
bHVlIikgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5U
MCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSkgPT0gcmJvIGlzIHRydWUK
K1BBU1MgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLkZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9FTlVN
LgorUEFTUyBnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVD
VF9UWVBFKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSAhPSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSBp
cyB0cnVlCitQQVNTIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVsbCkgd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgYmFja2J1ZmZlciBzaG91bGQgYmUgcmVk
CitQQVNTIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDE2LCAxNiwgWzI1NSwwLDAsMjU1
XSwgImJhY2tidWZmZXIgc2hvdWxkIGJlIHJlZCIpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IuCisKK3VzaW5nIGRlbGV0ZWQgdGV4dHVyZQorUEFTUyB0ZXggIT0gbnVsbCBpcyB0cnVlCitQ
QVNTIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCkgd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUi4KK1BBU1MgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8p
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmZyYW1lYnVmZmVyVGV4dHVy
ZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuVEVYVFVSRV8yRCwg
dGV4LCAwKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC50ZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDEsIDEsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIG51bGwpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmJpbmRG
cmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvMikgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUi4KK1BBU1MgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNP
TE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0ZXgsIDApIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IuCitQQVNTIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJv
KSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5jbGVhckNvbG9yKDAsMSww
LDEpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmNsZWFyKGdsLkNPTE9S
X0JVRkZFUl9CSVQpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmRlbGV0
ZVRleHR1cmUodGV4KSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5jaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSAhPSBnbC5GUkFNRUJVRkZFUl9DT01Q
TEVURSBpcyB0cnVlCitQQVNTIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJv
Mikgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgPT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUgaXMgdHJ1
ZQorUEFTUyBmYm8gc2hvdWxkIGJlIGdyZWVuCitQQVNTIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2ws
IDAsIDAsIDEsIDEsIFswLDI1NSwwLDI1NV0sICJmYm8gc2hvdWxkIGJlIGdyZWVuIikgd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuY2xlYXJDb2xvcigwLDAsMSwxKSB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJf
QklUKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBmYm8gc2hvdWxkIGJlIGJs
dWUKK1BBU1Mgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgWzAsMCwyNTUsMjU1
XSwgImZibyBzaG91bGQgYmUgYmx1ZSIpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQ
QVNTIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwg
Z2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05B
TUUpID09IHRleCBpcyB0cnVlCitQQVNTIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZF
UiwgZmJvKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5nZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1F
TlQwLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKSB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRU5VTS4KK1BBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgIT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUgaXMgdHJ1ZQorUEFTUyBnbC5i
aW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IuCitQQVNTIGJhY2tidWZmZXIgc2hvdWxkIGJlIHJlZAorUEFTUyB3dHUuY2hlY2tD
YW52YXNSZWN0KGdsLCAwLCAwLCAxNiwgMTYsIFsyNTUsMCwwLDI1NV0sICJiYWNrYnVmZmVyIHNo
b3VsZCBiZSByZWQiKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgogCiBidWZmZXIgZGVs
ZXRpb24KK1BBU1MgYnVmZmVyICE9IG51bGwgaXMgdHJ1ZQogUEFTUyBnbC5iaW5kQnVmZmVyKGds
LkFSUkFZX0JVRkZFUiwgYnVmZmVyKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgogUEFT
UyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSX0JJTkRJTkcpIGlzIGJ1ZmZlcgogUEFT
UyBnbC5kZWxldGVCdWZmZXIoYnVmZmVyKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgpA
QCAtNjgsNiArMjMxLDE2IEBAIFBBU1MgZ2wuaXNCdWZmZXIoYnVmZmVyKSBpcyBmYWxzZQogUEFT
UyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSX0JJTkRJTkcpIGlzIG51bGwKIFBBU1Mg
Z2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1ZmZlcikgd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUi4KIFBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUl9CSU5ESU5H
KSBpcyBudWxsCitQQVNTIGJ1ZmZlcjIgIT0gbnVsbCBpcyB0cnVlCitQQVNTIGdsLmJpbmRCdWZm
ZXIoZ2wuQVJSQVlfQlVGRkVSLCBidWZmZXIyKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
LgorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSX0JJTkRJTkcpIGlzIGJ1ZmZl
cjIKK1BBU1MgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIG51bGwpIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5BUlJBWV9CVUZGRVJf
QklORElORykgaXMgbnVsbAorUEFTUyBnbC5kZWxldGVCdWZmZXIoYnVmZmVyMikgd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuaXNCdWZmZXIoYnVmZmVyMikgaXMgZmFsc2UK
K1BBU1MgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1ZmZlcjIpIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5BUlJBWV9CVUZGRVJf
QklORElORykgaXMgbnVsbAorUEFTUyBidWZmZXJFbGVtZW50ICE9IG51bGwgaXMgdHJ1ZQogUEFT
UyBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBidWZmZXJFbGVtZW50KSB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgogUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuRUxF
TUVOVF9BUlJBWV9CVUZGRVJfQklORElORykgaXMgYnVmZmVyRWxlbWVudAogUEFTUyBnbC5kZWxl
dGVCdWZmZXIoYnVmZmVyRWxlbWVudCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KQEAg
LTc1LDYgKzI0OCwzMSBAQCBQQVNTIGdsLmlzQnVmZmVyKGJ1ZmZlckVsZW1lbnQpIGlzIGZhbHNl
CiBQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HKSBp
cyBudWxsCiBQQVNTIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGJ1ZmZl
ckVsZW1lbnQpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCiBQQVNTIGdsLmdldFBhcmFt
ZXRlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HKSBpcyBudWxsCitQQVNTIGIgIT0g
bnVsbCBpcyB0cnVlCitQQVNTIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBiKSB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JV
RkZFUiwgMSwgZ2wuU1RBVElDX0RSQVcpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQ
QVNTIGdsLmRlbGV0ZUJ1ZmZlcihiKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFT
UyBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYikgd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUi4KK1BBU1MgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIDEsIGdsLlNUQVRJ
Q19EUkFXKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OLgorUEFTUyBiMSAh
PSBudWxsIGlzIHRydWUKK1BBU1MgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGIxKTsg
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuZW5hYmxlVmVydGV4QXR0cmli
QXJyYXkoMSk7IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLnZlcnRleEF0
dHJpYlBvaW50ZXIoMSwgNCwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsgd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUi4KK1BBU1MgYjIgIT0gbnVsbCBpcyB0cnVlCitQQVNTIGdsLmJpbmRCdWZm
ZXIoZ2wuQVJSQVlfQlVGRkVSLCBiMik7IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQ
QVNTIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDIpOyB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SLgorUEFTUyBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDIsIDQsIGdsLkZMT0FULCBmYWxz
ZSwgMCwgMCk7IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmVuYWJsZVZl
cnRleEF0dHJpYkFycmF5KDMpOyB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBn
bC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDMsIDQsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7IHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5W
RVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HKSBpcyBiMQorUEFTUyBnbC5nZXRWZXJ0
ZXhBdHRyaWIoMiwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORykgaXMgYjIK
K1BBU1MgZ2wuZ2V0VmVydGV4QXR0cmliKDMsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVS
X0JJTkRJTkcpIGlzIGIyCitQQVNTIGdsLmRlbGV0ZUJ1ZmZlcihiMik7IHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRU
UklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HKSBpcyBiMQorUEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWIo
MiwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORykgaXMgbnVsbAorUEFTUyBn
bC5nZXRWZXJ0ZXhBdHRyaWIoMywgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElO
RykgaXMgbnVsbAorUEFTUyBnbC5kZWxldGVCdWZmZXIoYjEpOyB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SLgorUEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9B
UlJBWV9CVUZGRVJfQklORElORykgaXMgbnVsbAogCiBmcmFtZWJ1ZmZlciBkZWxldGlvbgogUEFT
UyBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibykgd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUi4KQEAgLTg0LDYgKzI4Miw0MCBAQCBQQVNTIGdsLmlzRnJhbWVidWZmZXIo
ZmJvKSBpcyBmYWxzZQogUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVJfQklORElO
RykgaXMgbnVsbAogUEFTUyBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibykg
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KIFBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLkZS
QU1FQlVGRkVSX0JJTkRJTkcpIGlzIG51bGwKK1BBU1MgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZS
QU1FQlVGRkVSLCBmYm8yKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5n
ZXRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVJfQklORElORykgaXMgZmJvMgorUEFTUyBnbC5kZWxl
dGVGcmFtZWJ1ZmZlcihmYm8zKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBn
bC5nZXRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVJfQklORElORykgaXMgZmJvMgorUEFTUyBmYm8g
IT0gbnVsbCBpcyB0cnVlCitQQVNTIHJibyAhPSBudWxsIGlzIHRydWUKK1BBU1MgZ2wuYmluZEZy
YW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IuCitQQVNTIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCByYm8pIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wu
UkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SLgorUEFTUyBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wu
Q09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwgcmJvKSB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SLgorUEFTUyBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51
bGwpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmNsZWFyQ29sb3IoMSww
LDAsMSkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuY2xlYXIoZ2wuQ09M
T1JfQlVGRkVSX0JJVCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuYmlu
ZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IuCitQQVNTIGdsLmNsZWFyQ29sb3IoMCwxLDAsMSkgd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUi4KK1BBU1MgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCkgd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZmJvIHNob3VsZCBiZSBncmVlbgorUEFTUyB3dHUuY2hl
Y2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxNiwgMTYsIFswLDI1NSwwLDI1NV0sICJmYm8gc2hvdWxk
IGJlIGdyZWVuIikgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1Mgb3V0c2lkZSBm
Ym8gc2hvdWxkIGJlIGJsYWNrCitQQVNTIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDE2LCAxNiwg
MSwgMSwgWzAsMCwwLDBdLCAib3V0c2lkZSBmYm8gc2hvdWxkIGJlIGJsYWNrIikgd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuZGVsZXRlRnJhbWVidWZmZXIoZmJvKSB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBiYWNrYnVmZmVyIHNob3VsZCBiZSByZWQK
K1BBU1Mgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMzAwLCAxNTAsIFsyNTUsMCwwLDI1
NV0sICJiYWNrYnVmZmVyIHNob3VsZCBiZSByZWQiKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SLgorUEFTUyBvdXRzaWRlIGJhY2tidWZmZXIgc2hvdWxkIGJlIGJsYWNrCitQQVNTIHd0dS5j
aGVja0NhbnZhc1JlY3QoZ2wsIDMwMCwgMCwgMzAwLCAzMDAsIFswLDAsMCwwXSwgIm91dHNpZGUg
YmFja2J1ZmZlciBzaG91bGQgYmUgYmxhY2siKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
LgorUEFTUyBvdXRzaWRlIGJhY2tidWZmZXIgc2hvdWxkIGJlIGJsYWNrCitQQVNTIHd0dS5jaGVj
a0NhbnZhc1JlY3QoZ2wsIDAsIDE1MCwgMzAwLCAzMDAsIFswLDAsMCwwXSwgIm91dHNpZGUgYmFj
a2J1ZmZlciBzaG91bGQgYmUgYmxhY2siKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgor
UEFTUyBnbC5jbGVhckNvbG9yKDAsMSwwLDEpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Iu
CitQQVNTIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IuCitQQVNTIGZibyBzaG91bGQgYmUgZ3JlZW4KK1BBU1Mgd3R1LmNoZWNrQ2FudmFz
UmVjdChnbCwgMCwgMCwgMzAwLCAxNTAsIFswLDI1NSwwLDI1NV0sICJmYm8gc2hvdWxkIGJlIGdy
ZWVuIikgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuYmluZEZyYW1lYnVm
ZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxsKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgor
UEFTUyBmYm8gc2hvdWxkIGJlIGdyZWVuCitQQVNTIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAs
IDAsIDMwMCwgMTUwLCBbMCwyNTUsMCwyNTVdLCAiZmJvIHNob3VsZCBiZSBncmVlbiIpIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29i
amVjdC1kZWxldGlvbi1iZWhhdmlvdXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9vYmplY3QtZGVsZXRpb24tYmVoYXZpb3VyLmh0bWwJKHJldmlzaW9u
IDEwMzA4MSkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29iamVjdC1kZWxldGlv
bi1iZWhhdmlvdXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQCB2YXIgZnJh
Z21lbnRTaGFkZXIgPSB3dHUubG9hZFN0YW5kYXJkRnJhCiBhc3NlcnRNc2coZnJhZ21lbnRTaGFk
ZXIsICJmcmFnbWVudCBzaGFkZXIgbG9hZGVkIik7CiAKIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRl
UHJvZ3JhbSgpOworc2hvdWxkQmVUcnVlKCJwcm9ncmFtICE9IG51bGwiKTsKIHNob3VsZEdlbmVy
YXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdmVy
dGV4U2hhZGVyKSIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImds
LmF0dGFjaFNoYWRlcihwcm9ncmFtLCBmcmFnbWVudFNoYWRlcikiKTsKIHNob3VsZEdlbmVyYXRl
R0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5saW5rUHJvZ3JhbShwcm9ncmFtKSIpOwpAQCAt
NDksMTQgKzUwLDE5IEBAIHNob3VsZEJlRmFsc2UoImdsLmlzU2hhZGVyKGZyYWdtZW50U2hhZGUK
IGRlYnVnKCIiKTsKIGRlYnVnKCJ0ZXh0dXJlIGRlbGV0aW9uIik7CiAKLXZhciBmYm8gPSBnbC5j
cmVhdGVGcmFtZWJ1ZmZlcigpOwordmFyIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCksIGZi
bzIgPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpLCBmYm8zID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIo
KTsKK3Nob3VsZEJlVHJ1ZSgiZmJvICE9IG51bGwiKTsKK3Nob3VsZEJlVHJ1ZSgiZmJvMiAhPSBu
dWxsIik7CitzaG91bGRCZVRydWUoImZibzMgIT0gbnVsbCIpOwogc2hvdWxkR2VuZXJhdGVHTEVy
cm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwg
ZmJvKSIpOwogCiB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworc2hvdWxkQmVUcnVlKCJ0
ZXggIT0gbnVsbCIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImds
LmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCkiKTsKIHNob3VsZEJlKCJnbC5nZXRQYXJh
bWV0ZXIoZ2wuVEVYVFVSRV9CSU5ESU5HXzJEKSIsICJ0ZXgiKTsKIHNob3VsZEdlbmVyYXRlR0xF
cnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFNRUJV
RkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlRFWFRVUkVfMkQsIHRleCwgMCkiKTsKIHNo
b3VsZEJlKCJnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVD
VF9OQU1FKSIsICJ0ZXgiKTsKK3Nob3VsZEJlKCJnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5GUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKSIsICJnbC5URVhUVVJFIik7CiBzaG91bGRHZW5l
cmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpIik7CiAv
LyBEZWxldGluZyBhIHRleHR1cmUgYm91bmQgdG8gdGhlIGN1cnJlbnRseS1ib3VuZCBmYm8gaXMg
dGhlIHNhbWUgYXMKIC8vIGRldGFjaGluZyB0aGUgdGV4dHVlIGZyb20gZmJvIGZpcnN0LCB0aGVu
IGRlbGV0ZSB0aGUgdGV4dHVyZS4KQEAgLTY4LDYgKzc0LDcgQEAgc2hvdWxkR2VuZXJhdGVHTEVy
cm9yKGdsLCBnbC5OT19FUlJPUiwgIgogc2hvdWxkQmVOdWxsKCJnbC5nZXRQYXJhbWV0ZXIoZ2wu
VEVYVFVSRV9CSU5ESU5HXzJEKSIpOwogCiB2YXIgdGV4Q3ViZU1hcCA9IGdsLmNyZWF0ZVRleHR1
cmUoKTsKK3Nob3VsZEJlVHJ1ZSgidGV4Q3ViZU1hcCAhPSBudWxsIik7CiBzaG91bGRHZW5lcmF0
ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJF
X01BUCwgdGV4Q3ViZU1hcCkiKTsKIHNob3VsZEJlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuVEVYVFVS
RV9CSU5ESU5HX0NVQkVfTUFQKSIsICJ0ZXhDdWJlTWFwIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJy
b3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuZGVsZXRlVGV4dHVyZSh0ZXhDdWJlTWFwKSIpOwpAQCAt
NzYsMTAgKzgzLDM0IEBAIHNob3VsZEJlTnVsbCgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlRFWFRVUkUK
IHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5iaW5kVGV4dHVyZShn
bC5URVhUVVJFX0NVQkVfTUFQLCB0ZXhDdWJlTWFwKSIpOwogc2hvdWxkQmVOdWxsKCJnbC5nZXRQ
YXJhbWV0ZXIoZ2wuVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQKSIpOwogCit2YXIgdCA9IGdsLmNy
ZWF0ZVRleHR1cmUoKTsKK3Nob3VsZEJlVHJ1ZSgidCAhPSBudWxsIik7CitzaG91bGRHZW5lcmF0
ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwg
dCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdF
KSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmRlbGV0ZVRl
eHR1cmUodCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0KSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGds
LCBnbC5JTlZBTElEX09QRVJBVElPTiwgImdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpIik7CisKK3ZhciB0MiA9IGdsLmNy
ZWF0ZVRleHR1cmUoKTsKK3Nob3VsZEJlVHJ1ZSgidDIgIT0gbnVsbCIpOworc2hvdWxkR2VuZXJh
dGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmFjdGl2ZVRleHR1cmUoZ2wuVEVYVFVSRTAp
Iik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmluZFRleHR1
cmUoZ2wuVEVYVFVSRV8yRCwgdDIpIik7CitzaG91bGRCZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlRF
WFRVUkVfQklORElOR18yRCkiLCAidDIiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wu
Tk9fRVJST1IsICJnbC5hY3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUxKSIpOworc2hvdWxkR2VuZXJh
dGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IHQyKSIpOworc2hvdWxkQmUoImdsLmdldFBhcmFtZXRlcihnbC5URVhUVVJFX0JJTkRJTkdfMkQp
IiwgInQyIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuZGVs
ZXRlVGV4dHVyZSh0MikiKTsKK3Nob3VsZEJlTnVsbCgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlRFWFRV
UkVfQklORElOR18yRCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1Is
ICJnbC5hY3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUwKSIpOworc2hvdWxkQmVOdWxsKCJnbC5nZXRQ
YXJhbWV0ZXIoZ2wuVEVYVFVSRV9CSU5ESU5HXzJEKSIpOworCiBkZWJ1ZygiIik7CiBkZWJ1Zygi
cmVuZGVyYnVmZmVyIGRlbGV0aW9uIik7CiAKLXZhciByYm8gPSBnbC5jcmVhdGVSZW5kZXJidWZm
ZXIoKTsKK3ZhciByYm8gPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSwgcmJvMiA9IGdsLmNyZWF0
ZVJlbmRlcmJ1ZmZlcigpLCByYm8zID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCk7CitzaG91bGRC
ZVRydWUoInJibyAhPSBudWxsIik7CitzaG91bGRCZVRydWUoInJibzIgIT0gbnVsbCIpOworc2hv
dWxkQmVUcnVlKCJyYm8zICE9IG51bGwiKTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wu
Tk9fRVJST1IsICJnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgcmJvKSIpOwog
c2hvdWxkQmUoImdsLmdldFBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVJfQklORElORykiLCAicmJv
Iik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuZnJhbWVidWZm
ZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5S
RU5ERVJCVUZGRVIsIHJibykiKTsKQEAgLTkzLDExICsxMjQsMTg0IEBAIHNob3VsZEJlRmFsc2Uo
ImdsLmlzUmVuZGVyYnVmZmVyKHJibykiKTsKIHNob3VsZEJlTnVsbCgiZ2wuZ2V0UGFyYW1ldGVy
KGdsLlJFTkRFUkJVRkZFUl9CSU5ESU5HKSIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBn
bC5OT19FUlJPUiwgImdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCByYm8pIik7
CiBzaG91bGRCZU51bGwoImdsLmdldFBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVJfQklORElORyki
KTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5iaW5kUmVuZGVy
YnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgcmJvMikiKTsKK3Nob3VsZEJlKCJnbC5nZXRQYXJhbWV0
ZXIoZ2wuUkVOREVSQlVGRkVSX0JJTkRJTkcpIiwgInJibzIiKTsKK3Nob3VsZEdlbmVyYXRlR0xF
cnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5kZWxldGVSZW5kZXJidWZmZXIocmJvMykiKTsKK3No
b3VsZEJlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSX0JJTkRJTkcpIiwgInJibzIi
KTsKKworZGVidWcoIiIpOworZGVidWcoInVzaW5nIGRlbGV0ZWQgcmVuZGVyYnVmZmVyIik7City
Ym8gPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwg
Z2wuTk9fRVJST1IsICJnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgcmJvKSIp
Oworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLnJlbmRlcmJ1ZmZl
clN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KSIpOworc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFN
RUJVRkZFUiwgZmJvKSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwg
ImdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRB
Q0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCByYm8pIik7CitpZiAoZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgPT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKKyAg
Ly8gbWFrZSBiYWNrYnVmZmVyIHJlZAorICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5P
X0VSUk9SLCAiZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxsKSIpOworICBz
aG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuY2xlYXJDb2xvcigxLDAs
MCwxKSIpOworICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuY2xl
YXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCkiKTsKKyAgLy8gbWFrZSBmYm8gZ3JlZW4KKyAgc2hvdWxk
R2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5G
UkFNRUJVRkZFUiwgZmJvKSIpOworICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VS
Uk9SLCAiZ2wuY2xlYXJDb2xvcigwLDEsMCwxKSIpOworICBzaG91bGRHZW5lcmF0ZUdMRXJyb3Io
Z2wsIGdsLk5PX0VSUk9SLCAiZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCkiKTsKKyAgLy8g
QmluZCBiYWNrYnVmZmVyLgorICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9S
LCAiZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxsKSIpOworICAvLyBkZWxl
dGUgcmVuZGVyYnVmZmVyLiBJdCBzaG91bGQgc3RpbGwgYmUgYXR0YWNoZWQgdG8gZmJvIHRob3Vn
aC4KKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmRlbGV0ZVJl
bmRlcmJ1ZmZlcihyYm8pIik7CisgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJS
T1IsICd3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxNiwgMTYsIFsyNTUsMCwwLDI1NV0s
ICJiYWNrYnVmZmVyIHNob3VsZCBiZSByZWQiKScpOworICAvLyBVc2UgZmJvIHRoYXQgaGFzIGRl
bGV0ZWQgcmJvLgorICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wu
YmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pIik7CisgIHNob3VsZEdlbmVyYXRl
R0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICd3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAx
NiwgMTYsIFswLDI1NSwwLDI1NV0sICJmYm8gc2hvdWxkIGJlIGdyZWVuIiknKTsKKyAgc2hvdWxk
R2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmNsZWFyQ29sb3IoMCwwLDEsMSki
KTsKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmNsZWFyKGds
LkNPTE9SX0JVRkZFUl9CSVQpIik7CisgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9f
RVJST1IsICd3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxNiwgMTYsIFswLDAsMjU1LDI1
NV0sICJmYm8gc2hvdWxkIGJlIGJsdWUiKScpOworICAvLyBCaW5kIGJhY2tidWZmZXIuCisgIHNo
b3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5iaW5kRnJhbWVidWZmZXIo
Z2wuRlJBTUVCVUZGRVIsIG51bGwpIik7CisgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wu
Tk9fRVJST1IsICd3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxNiwgMTYsIFsyNTUsMCww
LDI1NV0sICJiYWNrYnVmZmVyIHNob3VsZCBiZSByZWQiKScpOworfQorCitkZWJ1ZygiIik7Citk
ZWJ1ZygicmVuZGVyYnVmZmVyIGF0dGFjaGVkIHR3aWNlIHRvIHNhbWUgZnJhbWVidWZmZXIiKTsK
K3JibyA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGds
LCBnbC5OT19FUlJPUiwgImdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCByYm8p
Iik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wucmVuZGVyYnVm
ZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAxNiwgMTYpIik7CitzaG91bGRH
ZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZS
QU1FQlVGRkVSLCBmYm8pIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9S
LCAiZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FU
VEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIHJibykiKTsKK2lmIChnbC5jaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSA9PSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSkgewor
ICB2YXIgcmJvMiA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpOworICBzaG91bGRHZW5lcmF0ZUdM
RXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZG
RVIsIHJibzIpIik7CisgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJn
bC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDE2LCAxNiki
KTsKKyAgLy8gYXR0YWNoIHJibzIgYXQgdHdvIGF0dGFjaG1lbnQgcG9pbnRzIGluY29tcGF0aWJs
ZSB3aXRoIGl0CisgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5m
cmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVO
VCwgZ2wuUkVOREVSQlVGRkVSLCByYm8yKSIpOworICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2ws
IGdsLk5PX0VSUk9SLCAiZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIs
IGdsLlNURU5DSUxfQVRUQUNITUVOVCwgZ2wuUkVOREVSQlVGRkVSLCByYm8yKSIpOworICBzaG91
bGRCZVRydWUoImdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpF
Q1RfTkFNRSkgPT0gcmJvMiIpOworICBzaG91bGRCZVRydWUoImdsLmdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBn
bC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKSA9PSByYm8yIik7CisgIC8vIGZi
byBjYW4ndCBiZSBjb21wbGV0ZSBhcyByYm8yIGlzIGF0dGFjaGVkIGF0IGluY29tcGF0aWJsZSBh
dHRhY2htZW50IHBvaW50cworICBzaG91bGRCZUZhbHNlKCJnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKSA9PSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSIpOworICAvLyBu
b3cgd2UgZGVsZXRlIHJibzIsIHdoaWNoIGRldGFjaGVzIGl0IGZyb20gdGhlIHR3byBhdHRhY2ht
ZW50IHBvaW50cyB3aGVyZSBpdCBjdXJyZW50bHkgaXMgYXR0YWNoZWQKKyAgc2hvdWxkR2VuZXJh
dGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcihyYm8yKSIp
OworICBzaG91bGRCZSgiZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZS
QU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9UWVBFKSIsICJnbC5OT05FIik7CisgIHNob3VsZEJlKCJnbC5nZXRGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUxfQVRUQUNITUVO
VCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkiLCAiZ2wuTk9ORSIpOwor
ICAvLyB3ZSBzaG91bGQgbm93IGJlIGluIHRoZSBzYW1lIHN0YXRlIGFzIGJlZm9yZSB3aXRoIG9u
bHkgcmJvIGF0dGFjaGVkLCBzbyBmYm8gc2hvdWxkIGJlIGNvbXBsZXRlIGFnYWluCisgIHNob3Vs
ZEJlKCJnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSIsICJnbC5GUkFN
RUJVRkZFUl9DT01QTEVURSIpOworICBzaG91bGRCZVRydWUoImdsLmdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGds
LkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpID09IHJibyIpOworfQorc2hvdWxk
R2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcihy
Ym8pIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmluZEZy
YW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxsKSIpOworCisKKworZGVidWcoIiIpOworZGVi
dWcoInVzaW5nIGRlbGV0ZWQgdGV4dHVyZSIpOwordGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwor
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRUZXh0dXJlKGds
LlRFWFRVUkVfMkQsIHRleCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJS
T1IsICJnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibykiKTsKK3Nob3VsZEdl
bmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChn
bC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlRFWFRVUkVfMkQsIHRleCwg
MCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDEsIDEsIDAsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIG51bGwpIik7CitpZiAoZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgPT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKKyAgLy8gbWFrZSBmYm8gZ3Jl
ZW4KKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRGcmFt
ZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKSIpOworICBzaG91bGRHZW5lcmF0ZUdMRXJyb3Io
Z2wsIGdsLk5PX0VSUk9SLCAiZ2wuY2xlYXJDb2xvcigwLDEsMCwxKSIpOworICBzaG91bGRHZW5l
cmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJ
VCkiKTsKKyAgLy8gQmluZCBiYWNrYnVmZmVyLgorICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2ws
IGdsLk5PX0VSUk9SLCAiZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxsKSIp
OworICAvLyBkZWxldGUgdGV4dHVyZS4gSXQgc2hvdWxkIHN0aWxsIGJlIGF0dGFjaGVkIHRvIGZi
byB0aG91Z2guCisgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5k
ZWxldGVUZXh0dXJlKHRleCkiKTsKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19F
UlJPUiwgJ3d0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDEsIDEsIFsyNTUsMCwwLDI1NV0s
ICJiYWNrYnVmZmVyIHNob3VsZCBiZSByZWQiKScpOworICAvLyBVc2UgZmJvIHRoYXQgaGFzIGRl
bGV0ZWQgdGV4dHVyZS4KKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwg
ImdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKSIpOworICBzaG91bGRHZW5l
cmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAnd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwg
MCwgMSwgMSwgWzAsMjU1LDAsMjU1XSwgImZibyBzaG91bGQgYmUgZ3JlZW4iKScpOworICBzaG91
bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuY2xlYXJDb2xvcigwLDAsMSwx
KSIpOworICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuY2xlYXIo
Z2wuQ09MT1JfQlVGRkVSX0JJVCkiKTsKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5O
T19FUlJPUiwgJ3d0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDEsIDEsIFswLDAsMjU1LDI1
NV0sICJmYm8gc2hvdWxkIGJlIGJsdWUiKScpOworICAvLyBCaW5kIGJhY2tidWZmZXIuCisgIHNo
b3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5iaW5kRnJhbWVidWZmZXIo
Z2wuRlJBTUVCVUZGRVIsIG51bGwpIik7CisgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wu
Tk9fRVJST1IsICd3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxNiwgMTYsIFsyNTUsMCww
LDI1NV0sICJiYWNrYnVmZmVyIHNob3VsZCBiZSByZWQiKScpOworfQorCitkZWJ1ZygiIik7Citk
ZWJ1ZygidXNpbmcgZGVsZXRlZCByZW5kZXJidWZmZXIiKTsKK3JibyA9IGdsLmNyZWF0ZVJlbmRl
cmJ1ZmZlcigpOworc2hvdWxkQmVUcnVlKCJyYm8gIT0gbnVsbCIpOworc2hvdWxkR2VuZXJhdGVH
TEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVG
RkVSLCByYm8pIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wu
cmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAxNiwgMTYpIik7
CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmluZEZyYW1lYnVm
ZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGds
Lk5PX0VSUk9SLCAiZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGds
LkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIHJibykiKTsKK2lmIChnbC5jaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSA9PSBnbC5GUkFNRUJVRkZFUl9DT01Q
TEVURSkgeworICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmlu
ZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8yKSIpOworICBzaG91bGRHZW5lcmF0ZUdM
RXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJB
TUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIHJibykiKTsK
KyAgc2hvdWxkQmUoImdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIiwg
ImdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFIik7CisgIC8vIG1ha2UgYmFja2J1ZmZlciByZWQKKyAg
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRGcmFtZWJ1ZmZl
cihnbC5GUkFNRUJVRkZFUiwgbnVsbCkiKTsKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBn
bC5OT19FUlJPUiwgImdsLmNsZWFyQ29sb3IoMSwwLDAsMSkiKTsKKyAgc2hvdWxkR2VuZXJhdGVH
TEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpIik7
CisgIC8vIG1ha2UgZmJvIGdyZWVuCisgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9f
RVJST1IsICJnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibykiKTsKKyAgc2hv
dWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmNsZWFyQ29sb3IoMCwxLDAs
MSkiKTsKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmNsZWFy
KGdsLkNPTE9SX0JVRkZFUl9CSVQpIik7CisgIC8vIGRlbGV0ZSByZW5kZXJidWZmZXIuIEl0IHNo
b3VsZCBzdGlsbCBiZSBhdHRhY2hlZCB0byBmYm8yIHRob3VnaC4KKyAgc2hvdWxkR2VuZXJhdGVH
TEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcihyYm8pIik7Cisg
IC8vIGZibyBoYXMgbm8gYXR0YWNobWVudHMKKyAgc2hvdWxkQmVUcnVlKCJnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSAhPSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSIp
OworICAvLyBVc2UgZmJvMiB0aGF0IGhhcyBkZWxldGVkIHJiby4KKyAgc2hvdWxkR2VuZXJhdGVH
TEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZF
UiwgZmJvMikiKTsKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgJ3d0
dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDE2LCAxNiwgWzAsMjU1LDAsMjU1XSwgImZibyBz
aG91bGQgYmUgZ3JlZW4iKScpOworICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VS
Uk9SLCAiZ2wuY2xlYXJDb2xvcigwLDAsMSwxKSIpOworICBzaG91bGRHZW5lcmF0ZUdMRXJyb3Io
Z2wsIGdsLk5PX0VSUk9SLCAiZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCkiKTsKKyAgc2hv
dWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgJ3d0dS5jaGVja0NhbnZhc1JlY3Qo
Z2wsIDAsIDAsIDE2LCAxNiwgWzAsMCwyNTUsMjU1XSwgImZibyBzaG91bGQgYmUgYmx1ZSIpJyk7
CisgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGds
LkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9PQkpFQ1RfTkFNRSkgPT0gcmJvIik7CisKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGds
LCBnbC5OT19FUlJPUiwgImdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKSIp
OworICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfRU5VTSwgImdsLmdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRU
QUNITUVOVDAsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpIik7CisgIHNo
b3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9ORSwgImdsLmdldEZyYW1lYnVmZmVyQXR0YWNo
bWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLkZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpIik7CisgIHNob3VsZEJlVHJ1ZSgiZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgIT0gZ2wuRlJBTUVCVUZGRVJf
Q09NUExFVEUiKTsKKyAgLy8gQmluZCBiYWNrYnVmZmVyLgorICBzaG91bGRHZW5lcmF0ZUdMRXJy
b3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBu
dWxsKSIpOworICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAnd3R1LmNo
ZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMTYsIDE2LCBbMjU1LDAsMCwyNTVdLCAiYmFja2J1ZmZl
ciBzaG91bGQgYmUgcmVkIiknKTsKK30KKworZGVidWcoIiIpOworZGVidWcoInVzaW5nIGRlbGV0
ZWQgdGV4dHVyZSIpOwordGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworc2hvdWxkQmVUcnVlKCJ0
ZXggIT0gbnVsbCIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImds
LmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJv
cihnbCwgZ2wuTk9fRVJST1IsICJnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZi
bykiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5mcmFtZWJ1
ZmZlclRleHR1cmUyRChnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlRF
WFRVUkVfMkQsIHRleCwgMCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJS
T1IsICJnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDEsIDEsIDAsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpIik7CitpZiAoZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgPT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKKyAg
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRGcmFtZWJ1ZmZl
cihnbC5GUkFNRUJVRkZFUiwgZmJvMikiKTsKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBn
bC5OT19FUlJPUiwgImdsLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5D
T0xPUl9BVFRBQ0hNRU5UMCwgZ2wuVEVYVFVSRV8yRCwgdGV4LCAwKSIpOworICAvLyBtYWtlIGZi
byBncmVlbgorICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmlu
ZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pIik7CisgIHNob3VsZEdlbmVyYXRlR0xF
cnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5jbGVhckNvbG9yKDAsMSwwLDEpIik7CisgIHNob3Vs
ZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5jbGVhcihnbC5DT0xPUl9CVUZG
RVJfQklUKSIpOworICAvLyBkZWxldGUgdGV4dHVyZS4gSXQgc2hvdWxkIHN0aWxsIGJlIGF0dGFj
aGVkIHRvIGZibzIgdGhvdWdoLgorICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VS
Uk9SLCAiZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpIik7CisgIC8vIGZibyBoYXMgbm8gYXR0YWNobWVu
dHMKKyAgc2hvdWxkQmVUcnVlKCJnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVG
RkVSKSAhPSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSIpOworICAvLyBVc2UgZmJvIHRoYXQgaGFz
IGRlbGV0ZWQgdGV4dHVyZS4KKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJP
UiwgImdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvMikiKTsKKyAgc2hvdWxk
QmVUcnVlKCJnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSA9PSBnbC5G
UkFNRUJVRkZFUl9DT01QTEVURSIpOworICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5P
X0VSUk9SLCAnd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgWzAsMjU1LDAsMjU1
XSwgImZibyBzaG91bGQgYmUgZ3JlZW4iKScpOworICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2ws
IGdsLk5PX0VSUk9SLCAiZ2wuY2xlYXJDb2xvcigwLDAsMSwxKSIpOworICBzaG91bGRHZW5lcmF0
ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCki
KTsKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgJ3d0dS5jaGVja0Nh
bnZhc1JlY3QoZ2wsIDAsIDAsIDEsIDEsIFswLDAsMjU1LDI1NV0sICJmYm8gc2hvdWxkIGJlIGJs
dWUiKScpOworICBzaG91bGRCZVRydWUoImdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLkZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpID09IHRleCIpOworCisgIHNob3VsZEdlbmVyYXRlR0xF
cnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIs
IGZibykiKTsKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX0VOVU0sICJn
bC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNP
TE9SX0FUVEFDSE1FTlQwLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKSIp
OworICBzaG91bGRCZVRydWUoImdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZG
RVIpICE9IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFIik7CisgIC8vIEJpbmQgYmFja2J1ZmZlci4K
KyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRGcmFtZWJ1
ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVsbCkiKTsKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGds
LCBnbC5OT19FUlJPUiwgJ3d0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDE2LCAxNiwgWzI1
NSwwLDAsMjU1XSwgImJhY2tidWZmZXIgc2hvdWxkIGJlIHJlZCIpJyk7Cit9CiAKIGRlYnVnKCIi
KTsKIGRlYnVnKCJidWZmZXIgZGVsZXRpb24iKTsKIAogdmFyIGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1
ZmZlcigpOworc2hvdWxkQmVUcnVlKCJidWZmZXIgIT0gbnVsbCIpOwogc2hvdWxkR2VuZXJhdGVH
TEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBi
dWZmZXIpIik7CiBzaG91bGRCZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUl9CSU5E
SU5HKSIsICJidWZmZXIiKTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1Is
ICJnbC5kZWxldGVCdWZmZXIoYnVmZmVyKSIpOwpAQCAtMTA2LDcgKzMxMCwxOSBAQCBzaG91bGRC
ZU51bGwoImdsLmdldFBhcmFtZXRlcihnbC5BUlJBWV9CCiBzaG91bGRHZW5lcmF0ZUdMRXJyb3Io
Z2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1ZmZlciki
KTsKIHNob3VsZEJlTnVsbCgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUl9CSU5ESU5H
KSIpOwogCit2YXIgYnVmZmVyMiA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworc2hvdWxkQmVUcnVlKCJi
dWZmZXIyICE9IG51bGwiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1Is
ICJnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmZmVyMikiKTsKK3Nob3VsZEJlKCJn
bC5nZXRQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSX0JJTkRJTkcpIiwgImJ1ZmZlcjIiKTsKK3No
b3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5iaW5kQnVmZmVyKGdsLkFS
UkFZX0JVRkZFUiwgbnVsbCkiKTsKK3Nob3VsZEJlTnVsbCgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkFS
UkFZX0JVRkZFUl9CSU5ESU5HKSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19F
UlJPUiwgImdsLmRlbGV0ZUJ1ZmZlcihidWZmZXIyKSIpOworc2hvdWxkQmVGYWxzZSgiZ2wuaXNC
dWZmZXIoYnVmZmVyMikiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1Is
ICJnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmZmVyMikiKTsKK3Nob3VsZEJlTnVs
bCgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUl9CSU5ESU5HKSIpOworCiB2YXIgYnVm
ZmVyRWxlbWVudCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworc2hvdWxkQmVUcnVlKCJidWZmZXJFbGVt
ZW50ICE9IG51bGwiKTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJn
bC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBidWZmZXJFbGVtZW50KSIpOwog
c2hvdWxkQmUoImdsLmdldFBhcmFtZXRlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5H
KSIsICJidWZmZXJFbGVtZW50Iik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VS
Uk9SLCAiZ2wuZGVsZXRlQnVmZmVyKGJ1ZmZlckVsZW1lbnQpIik7CkBAIC0xMTUsNiArMzMxLDM2
IEBAIHNob3VsZEJlTnVsbCgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkVMRU1FTlQKIHNob3VsZEdlbmVy
YXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJS
QVlfQlVGRkVSLCBidWZmZXJFbGVtZW50KSIpOwogc2hvdWxkQmVOdWxsKCJnbC5nZXRQYXJhbWV0
ZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElORykiKTsKIAordmFyIGIgPSBnbC5jcmVh
dGVCdWZmZXIoKTsKK3Nob3VsZEJlVHJ1ZSgiYiAhPSBudWxsIik7CitzaG91bGRHZW5lcmF0ZUdM
RXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGIp
Iik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYnVmZmVyRGF0
YShnbC5BUlJBWV9CVUZGRVIsIDEsIGdsLlNUQVRJQ19EUkFXKSIpOworc2hvdWxkR2VuZXJhdGVH
TEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmRlbGV0ZUJ1ZmZlcihiKSIpOworc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVG
RkVSLCBiKSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElP
TiwgImdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAxLCBnbC5TVEFUSUNfRFJBVykiKTsK
KwordmFyIGIxID0gZ2wuY3JlYXRlQnVmZmVyKCk7CitzaG91bGRCZVRydWUoImIxICE9IG51bGwi
KTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5iaW5kQnVmZmVy
KGdsLkFSUkFZX0JVRkZFUiwgYjEpOyIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5O
T19FUlJPUiwgImdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDEpOyIpOworc2hvdWxkR2VuZXJh
dGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMSwgNCwg
Z2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsiKTsKK3ZhciBiMiA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwor
c2hvdWxkQmVUcnVlKCJiMiAhPSBudWxsIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGds
Lk5PX0VSUk9SLCAiZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGIyKTsiKTsKK3Nob3Vs
ZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5lbmFibGVWZXJ0ZXhBdHRyaWJB
cnJheSgyKTsiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC52
ZXJ0ZXhBdHRyaWJQb2ludGVyKDIsIDQsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7Iik7CitzaG91
bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuZW5hYmxlVmVydGV4QXR0cmli
QXJyYXkoMyk7Iik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wu
dmVydGV4QXR0cmliUG9pbnRlcigzLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOyIpOworc2hv
dWxkQmUoImdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0JVRkZF
Ul9CSU5ESU5HKSIsICJiMSIpOworc2hvdWxkQmUoImdsLmdldFZlcnRleEF0dHJpYigyLCBnbC5W
RVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HKSIsICJiMiIpOworc2hvdWxkQmUoImds
LmdldFZlcnRleEF0dHJpYigzLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5H
KSIsICJiMiIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmRl
bGV0ZUJ1ZmZlcihiMik7Iik7CitzaG91bGRCZSgiZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZF
UlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcpIiwgImIxIik7CitzaG91bGRCZU51bGwo
ImdsLmdldFZlcnRleEF0dHJpYigyLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5E
SU5HKSIpOworc2hvdWxkQmVOdWxsKCJnbC5nZXRWZXJ0ZXhBdHRyaWIoMywgZ2wuVkVSVEVYX0FU
VFJJQl9BUlJBWV9CVUZGRVJfQklORElORykiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwg
Z2wuTk9fRVJST1IsICJnbC5kZWxldGVCdWZmZXIoYjEpOyIpOworc2hvdWxkQmVOdWxsKCJnbC5n
ZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORyki
KTsKKwogZGVidWcoIiIpOwogZGVidWcoImZyYW1lYnVmZmVyIGRlbGV0aW9uIik7CiAKQEAgLTEy
NSw2ICszNzEsNDcgQEAgc2hvdWxkQmVGYWxzZSgiZ2wuaXNGcmFtZWJ1ZmZlcihmYm8pIik7CiBz
aG91bGRCZU51bGwoImdsLmdldFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUl9CSU5ESU5HKSIpOwog
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRGcmFtZWJ1ZmZl
cihnbC5GUkFNRUJVRkZFUiwgZmJvKSIpOwogc2hvdWxkQmVOdWxsKCJnbC5nZXRQYXJhbWV0ZXIo
Z2wuRlJBTUVCVUZGRVJfQklORElORykiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wu
Tk9fRVJST1IsICJnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibzIpIik7Citz
aG91bGRCZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSX0JJTkRJTkcpIiwgImZibzIi
KTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5kZWxldGVGcmFt
ZWJ1ZmZlcihmYm8zKSIpOworc2hvdWxkQmUoImdsLmdldFBhcmFtZXRlcihnbC5GUkFNRUJVRkZF
Ul9CSU5ESU5HKSIsICJmYm8yIik7CisKK2ZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7City
Ym8gPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKK3Nob3VsZEJlVHJ1ZSgiZmJvICE9IG51bGwi
KTsKK3Nob3VsZEJlVHJ1ZSgicmJvICE9IG51bGwiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihn
bCwgZ2wuTk9fRVJST1IsICJnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyki
KTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5iaW5kUmVuZGVy
YnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgcmJvKSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGds
LCBnbC5OT19FUlJPUiwgImdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBn
bC5SR0JBNCwgMTYsIDE2KSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJP
UiwgImdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9B
VFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCByYm8pIik7CitpZiAoZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgPT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsK
KyAgLy8gc2V0IGJhY2tidWZmZXIgdG8gcmVkCisgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwg
Z2wuTk9fRVJST1IsICJnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpIik7
CisgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5jbGVhckNvbG9y
KDEsMCwwLDEpIik7CisgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJn
bC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKSIpOworICAvLyBzZXQgZnJhbWVidWZmZXIgdG8g
Z3JlZW4KKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRG
cmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKSIpOworICBzaG91bGRHZW5lcmF0ZUdMRXJy
b3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuY2xlYXJDb2xvcigwLDEsMCwxKSIpOworICBzaG91bGRH
ZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVS
X0JJVCkiKTsKKyAgLy8gY2hlY2sgZnJhbWVidWZmZXIKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9y
KGdsLCBnbC5OT19FUlJPUiwgJ3d0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDE2LCAxNiwg
WzAsMjU1LDAsMjU1XSwgImZibyBzaG91bGQgYmUgZ3JlZW4iKScpOworICBzaG91bGRHZW5lcmF0
ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAnd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMTYsIDE2
LCAxLCAxLCBbMCwwLDAsMF0sICJvdXRzaWRlIGZibyBzaG91bGQgYmUgYmxhY2siKScpOworICAv
LyBkZWxldGUgZnJhbWVidWZmZXIuIGJlY2F1c2UgdGhpcyB3YXMgdGhlIGJvdW5kIGZibyB0aGUg
YmFja2J1ZmZlciBzaG91bGQgYmUgYWN0aXZlIG5vdworICBzaG91bGRHZW5lcmF0ZUdMRXJyb3Io
Z2wsIGdsLk5PX0VSUk9SLCAiZ2wuZGVsZXRlRnJhbWVidWZmZXIoZmJvKSIpOworICAvLyBjaGVj
ayBiYWNrYnVmZmVyCisgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICd3
dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAzMDAsIDE1MCwgWzI1NSwwLDAsMjU1XSwgImJh
Y2tidWZmZXIgc2hvdWxkIGJlIHJlZCIpJyk7CisgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwg
Z2wuTk9fRVJST1IsICd3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAzMDAsIDAsIDMwMCwgMzAwLCBb
MCwwLDAsMF0sICJvdXRzaWRlIGJhY2tidWZmZXIgc2hvdWxkIGJlIGJsYWNrIiknKTsKKyAgc2hv
dWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgJ3d0dS5jaGVja0NhbnZhc1JlY3Qo
Z2wsIDAsIDE1MCwgMzAwLCAzMDAsIFswLDAsMCwwXSwgIm91dHNpZGUgYmFja2J1ZmZlciBzaG91
bGQgYmUgYmxhY2siKScpOworICAvLyBjaGVjayBkcmF3aW5nIHRvIGJhY2tidWZmZXIKKyAgc2hv
dWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmNsZWFyQ29sb3IoMCwxLDAs
MSkiKTsKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmNsZWFy
KGdsLkNPTE9SX0JVRkZFUl9CSVQpIik7CisgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wu
Tk9fRVJST1IsICd3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAzMDAsIDE1MCwgWzAsMjU1
LDAsMjU1XSwgImZibyBzaG91bGQgYmUgZ3JlZW4iKScpOworICBzaG91bGRHZW5lcmF0ZUdMRXJy
b3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBu
dWxsKSIpOworICAvLyBjaGVjayBhZ2FpbiBiZWNhdXNlIG1hbnkgYnVnZ3kgaW1wbGVtZW50YXRp
b25zIHdpbGwgaGF2ZSBib3VuZCB0byB0aGUgdHJ1ZSBiYWNrYnVmZmVyIG9uIGRlbGV0ZUZyYW1l
YnVmZmVyLgorICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAnd3R1LmNo
ZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMzAwLCAxNTAsIFswLDI1NSwwLDI1NV0sICJmYm8gc2hv
dWxkIGJlIGdyZWVuIiknKTsKK30KKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2Ny
aXB0PgogCiA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="119741"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>