<?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>225539</bug_id>
          
          <creation_ts>2021-05-07 14:40:45 -0700</creation_ts>
          <short_desc>Implement CanvasRenderingContext2D.createConicGradient</short_desc>
          <delta_ts>2021-05-17 15:15:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</component>
          <version>WebKit 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>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yi Xu">yiyix</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1758012</commentid>
    <comment_count>0</comment_count>
    <who name="Yi Xu">yiyix</who>
    <bug_when>2021-05-07 14:40:45 -0700</bug_when>
    <thetext>Proposal document:
https://github.com/fserb/canvas2D/blob/master/spec/conic-gradient.md

Syntax:
const grad = ctx.createConicGradient(0, 100, 100);

grad.addColorStop(0, &quot;red&quot;);
grad.addColorStop(0.25, &quot;orange&quot;);
grad.addColorStop(0.5, &quot;yellow&quot;);
grad.addColorStop(0.75, &quot;green&quot;);
grad.addColorStop(1, &quot;blue&quot;);

Corresponding bugs:
Chromium: crbug.com/1097034
Mozilla: https://bugzilla.mozilla.org/show_bug.cgi?id=1627014</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758745</commentid>
    <comment_count>1</comment_count>
      <attachid>428228</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-10 17:24:34 -0700</bug_when>
    <thetext>Created attachment 428228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758811</commentid>
    <comment_count>2</comment_count>
      <attachid>428228</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-10 22:15:27 -0700</bug_when>
    <thetext>Comment on attachment 428228
Patch

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

&gt; Source/WebCore/html/canvas/CanvasFillStrokeStyles.idl:48
&gt; +    CanvasGradient createConicGradient(float angle, float x, float y);

I believe these should be ‘unrestricted double’ according to the linked spec</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758976</commentid>
    <comment_count>3</comment_count>
      <attachid>428228</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-11 11:01:17 -0700</bug_when>
    <thetext>Comment on attachment 428228
Patch

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

Can we write some ref tests for this?

&gt; Source/WebCore/html/canvas/CanvasGradient.cpp:48
&gt; +CanvasGradient::CanvasGradient(const FloatPoint&amp; p, float angleInRadians, CanvasBase&amp; canvasBase)

Can we call p centerPoint instead?

&gt; Source/WebCore/html/canvas/CanvasGradient.cpp:64
&gt; +Ref&lt;CanvasGradient&gt; CanvasGradient::create(const FloatPoint&amp; p, float angleInRadians, CanvasBase&amp; canvasBase)

Same</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759056</commentid>
    <comment_count>4</comment_count>
      <attachid>428310</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-11 14:20:05 -0700</bug_when>
    <thetext>Created attachment 428310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759061</commentid>
    <comment_count>5</comment_count>
      <attachid>428228</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-11 14:25:45 -0700</bug_when>
    <thetext>Comment on attachment 428228
Patch

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

&gt;&gt; Source/WebCore/html/canvas/CanvasFillStrokeStyles.idl:48
&gt;&gt; +    CanvasGradient createConicGradient(float angle, float x, float y);
&gt; 
&gt; I believe these should be ‘unrestricted double’ according to the linked spec

Yes this is true. But the radial and linear gradient need to be ‘unrestricted double’ as well; see https://html.spec.whatwg.org/multipage/canvas.html#canvasfillstrokestyles.

The problem is the Gradient::Data members are floats and FloatPoints. So we need to change the data types of all gradients to be double instead of float. I think we should address this in a separate patch.

&gt;&gt; Source/WebCore/html/canvas/CanvasGradient.cpp:48
&gt;&gt; +CanvasGradient::CanvasGradient(const FloatPoint&amp; p, float angleInRadians, CanvasBase&amp; canvasBase)
&gt; 
&gt; Can we call p centerPoint instead?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759334</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-12 11:49:52 -0700</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #5)
&gt; Comment on attachment 428228 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=428228&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/html/canvas/CanvasFillStrokeStyles.idl:48
&gt; &gt;&gt; +    CanvasGradient createConicGradient(float angle, float x, float y);
&gt; &gt; 
&gt; &gt; I believe these should be ‘unrestricted double’ according to the linked spec
&gt; 
&gt; Yes this is true. But the radial and linear gradient need to be
&gt; ‘unrestricted double’ as well; see
&gt; https://html.spec.whatwg.org/multipage/canvas.html#canvasfillstrokestyles.
&gt; 
&gt; The problem is the Gradient::Data members are floats and FloatPoints. So we
&gt; need to change the data types of all gradients to be double instead of
&gt; float. I think we should address this in a separate patch.

I think those two things can be handled separately. The IDL can be in terms of unrestricted double and do the narrowing I the c++ instead (we certainly do that elsewhere). But, if you plan to do a follow up soon after this, doing it in another pass seems fine. If you don&apos;t plan on doing that work soon, I think making its type match should be done now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759356</commentid>
    <comment_count>7</comment_count>
      <attachid>428402</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-12 12:42:31 -0700</bug_when>
    <thetext>Created attachment 428402
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759448</commentid>
    <comment_count>8</comment_count>
      <attachid>428402</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-12 16:24:04 -0700</bug_when>
    <thetext>Comment on attachment 428402
Patch

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

&gt; Source/WebCore/html/canvas/CanvasFillStrokeStyles.idl:47
&gt; +    CanvasGradient createConicGradient(unrestricted double angle, unrestricted double x, unrestricted double y);

Probably have some old tests to update, but looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760220</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-14 14:41:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/78033646&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760388</commentid>
    <comment_count>10</comment_count>
      <attachid>428718</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-14 23:10:20 -0700</bug_when>
    <thetext>Created attachment 428718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760458</commentid>
    <comment_count>11</comment_count>
      <attachid>428718</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-15 13:40:39 -0700</bug_when>
    <thetext>Comment on attachment 428718
Patch

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

&gt; Source/WebCore/html/canvas/CanvasFillStrokeStyles.idl:47
&gt; +    CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1);
&gt; +    CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1);
&gt; +    CanvasGradient createConicGradient(double angle, double x, double y);

I had to make these parameter &apos;double&apos; instead of &apos;unrestricted double&apos; to pass the some of the canvas gradient layout tests. I checked the sources of Chrome and FireFox and I found they make them &apos;double&apos; also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760461</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-15 13:47:04 -0700</bug_when>
    <thetext>Committed r277547 (237775@main): &lt;https://commits.webkit.org/237775@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428718.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760608</commentid>
    <comment_count>13</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-16 08:46:36 -0700</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #11)
&gt; Comment on attachment 428718 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=428718&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/canvas/CanvasFillStrokeStyles.idl:47
&gt; &gt; +    CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1);
&gt; &gt; +    CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1);
&gt; &gt; +    CanvasGradient createConicGradient(double angle, double x, double y);
&gt; 
&gt; I had to make these parameter &apos;double&apos; instead of &apos;unrestricted double&apos; to
&gt; pass the some of the canvas gradient layout tests. I checked the sources of
&gt; Chrome and FireFox and I found they make them &apos;double&apos; also.

Please file a bug on the HTML spec. If we can&apos;t implement something as specified, we should be trying to get the spec changed to match reality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760826</commentid>
    <comment_count>14</comment_count>
      <attachid>428718</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-17 12:03:31 -0700</bug_when>
    <thetext>Comment on attachment 428718
Patch

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

&gt;&gt;&gt; Source/WebCore/html/canvas/CanvasFillStrokeStyles.idl:47
&gt;&gt;&gt; +    CanvasGradient createConicGradient(double angle, double x, double y);
&gt;&gt; 
&gt;&gt; I had to make these parameter &apos;double&apos; instead of &apos;unrestricted double&apos; to pass the some of the canvas gradient layout tests. I checked the sources of Chrome and FireFox and I found they make them &apos;double&apos; also.
&gt; 
&gt; Please file a bug on the HTML spec. If we can&apos;t implement something as specified, we should be trying to get the spec changed to match reality.

I checked the link https://html.spec.whatwg.org/multipage/canvas.html#canvasfillstrokestyles and I think the types were changed recently to be all just &apos;double&apos;. I was referring to it above on May 11, 2021. And it has changed on May 12, 2021.

So right now we implement createLinearGradient() and createRadialGradient() as they are specified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760911</commentid>
    <comment_count>15</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-17 15:15:51 -0700</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #14)
&gt; Comment on attachment 428718 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=428718&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/html/canvas/CanvasFillStrokeStyles.idl:47
&gt; &gt;&gt;&gt; +    CanvasGradient createConicGradient(double angle, double x, double y);
&gt; &gt;&gt; 
&gt; &gt;&gt; I had to make these parameter &apos;double&apos; instead of &apos;unrestricted double&apos; to pass the some of the canvas gradient layout tests. I checked the sources of Chrome and FireFox and I found they make them &apos;double&apos; also.
&gt; &gt; 
&gt; &gt; Please file a bug on the HTML spec. If we can&apos;t implement something as specified, we should be trying to get the spec changed to match reality.
&gt; 
&gt; I checked the link
&gt; https://html.spec.whatwg.org/multipage/canvas.html#canvasfillstrokestyles
&gt; and I think the types were changed recently to be all just &apos;double&apos;. I was
&gt; referring to it above on May 11, 2021. And it has changed on May 12, 2021.
&gt; 
&gt; So right now we implement createLinearGradient() and createRadialGradient()
&gt; as they are specified.

Excellent!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428228</attachid>
            <date>2021-05-10 17:24:34 -0700</date>
            <delta_ts>2021-05-11 14:20:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225539-20210510172433.patch</filename>
            <type>text/plain</type>
            <size>11958</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWNlZjkyN2U0NTMzMDY2
Yjg5ZTlhZTIzNDY4ZWE4OTE4MTZiYjI3Yi4uY2RhYWM3YzlmNTMxNWUyYmI1MWZiM2JlYzg0ZDI1
MmQ3ZDE5OWNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTEwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3JlYXRlQ29uaWNHcmFkaWVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NTM5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvcG9zYWwgZG9jdW1lbnQ6CisgICAg
ICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vZnNlcmIvY2FudmFzMkQvYmxvYi9tYXN0ZXIvc3Bl
Yy9jb25pYy1ncmFkaWVudC5tZAorCisgICAgICAgIE1ETiBkb2N1bWVudGF0aW9uOgorICAgICAg
ICAgICAgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC9jcmVhdGVDb25pY0dyYWRpZW50CisKKyAgICAgICAgQ292
ZXJlZCBieSB0aGUgV1BUIHRlc3Q6CisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5n
cmFkaWVudC5jb25pYy5odG1sCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNGaWxsU3Ry
b2tlU3R5bGVzLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNHcmFkaWVudDo6Q2FudmFzR3JhZGllbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6bV9jYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzR3JhZGll
bnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaDoKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNyZWF0ZUNvbmlj
R3JhZGllbnQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuaDoKKwogMjAyMS0wNS0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KIAogICAgICAgICBbbWFjT1NdIEltYWdlT3ZlcmxheUNvbnRyb2xsZXIgc2hvdWxkIHBh
aW50IHNlbGVjdGlvbiBxdWFkcyBpbnN0ZWFkIG9mIGJvdW5kaW5nIHJlY3RzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZwppbmRleCAxNWI3ZjlmYTkzMDQ1OWRlOTUxODc0NDJiYmQ5NThjNmQ2NjNiMjQ3
Li5jZGFjNWFkNjE3ODhjYTc1ZWFhN2JhMmY3MGM0OTEwYWY1NTYzNWQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wNS0xMCAgU2FpZCBBYm91LUhhbGxh
d2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmNyZWF0ZUNvbmljR3JhZGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTUzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rp
b25QYXJhbWV0ZXJzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGlu
Zy5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0FjdGlvblRyZWVF
bGVtZW50LmpzOgorICAgICAgICAoV0kuUmVjb3JkaW5nQWN0aW9uVHJlZUVsZW1lbnQuX2NsYXNz
TmFtZUZvckFjdGlvbik6CisKIDIwMjEtMDUtMDcgIFBhdHJpY2sgQW5nbGUgIDxwYW5nbGVAYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEJyZWFrcG9pbnQgYWN0aW9uIGFkZC9y
ZW1vdmUgYnV0dG9ucyBhcmUgbm90IHZlcnRpY2FsbHkgYWxpZ25lZCB3aXRoIGFjdGlvbiBkcm9w
ZG93bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzRmlsbFN0
cm9rZVN0eWxlcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNGaWxsU3Ry
b2tlU3R5bGVzLmlkbAppbmRleCBhZjAwZjE4ODljNzE2OWE3YTY1ZDc4OWI5YTAxOTcwMjU4ODQz
ZmM5Li5lNzk2OWI4ZjhiMmU2OTA4MmNiOWM0NGIyNTliMzZhODUzNTZhZmJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNGaWxsU3Ryb2tlU3R5bGVzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNGaWxsU3Ryb2tlU3R5bGVzLmlk
bApAQCAtNDUsNSArNDUsNiBAQCBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzRmlsbFN0cm9rZVN0eWxl
cyB7CiAgICAgLy8gRklYTUU6IEFsbCB0aGUgZmxvYXQgcGFyYW1ldGVycyBiZWxvdyBzaG91bGQg
YmUgZG91Ymxlcy4KICAgICBDYW52YXNHcmFkaWVudCBjcmVhdGVMaW5lYXJHcmFkaWVudChmbG9h
dCB4MCwgZmxvYXQgeTAsIGZsb2F0IHgxLCBmbG9hdCB5MSk7CiAgICAgQ2FudmFzR3JhZGllbnQg
Y3JlYXRlUmFkaWFsR3JhZGllbnQoZmxvYXQgeDAsIGZsb2F0IHkwLCBmbG9hdCByMCwgZmxvYXQg
eDEsIGZsb2F0IHkxLCBmbG9hdCByMSk7CisgICAgQ2FudmFzR3JhZGllbnQgY3JlYXRlQ29uaWNH
cmFkaWVudChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSk7CiAgICAgQ2FudmFzUGF0dGVy
bj8gY3JlYXRlUGF0dGVybihDYW52YXNJbWFnZVNvdXJjZSBpbWFnZSwgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBET01TdHJpbmcgcmVwZXRpdGlvbik7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuY3BwCmluZGV4IDc1ZTRhZTEyOWY3MmNjYTZmNGQ1
YmY2NjdjNTI0NzliNzI3MGI4OGEuLmU2NmQ0OTA3OGIxMTU2NGEwYjA0YjdjYmVkOTI5MjBjZTZi
NDcxOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5j
cHAKQEAgLTQ1LDYgKzQ1LDEyIEBAIENhbnZhc0dyYWRpZW50OjpDYW52YXNHcmFkaWVudChjb25z
dCBGbG9hdFBvaW50JiBwMCwgZmxvYXQgcjAsIGNvbnN0IEZsb2F0UG9pbnQmCiB7CiB9CiAKK0Nh
bnZhc0dyYWRpZW50OjpDYW52YXNHcmFkaWVudChjb25zdCBGbG9hdFBvaW50JiBwLCBmbG9hdCBh
bmdsZUluUmFkaWFucywgQ2FudmFzQmFzZSYgY2FudmFzQmFzZSkKKyAgICA6IG1fZ3JhZGllbnQo
R3JhZGllbnQ6OmNyZWF0ZShHcmFkaWVudDo6Q29uaWNEYXRhIHsgcCwgYW5nbGVJblJhZGlhbnMg
fSkpCisgICAgLCBtX2NhbnZhcyhjYW52YXNCYXNlKQoreworfQorCiBSZWY8Q2FudmFzR3JhZGll
bnQ+IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoY29uc3QgRmxvYXRQb2ludCYgcDAsIGNvbnN0IEZs
b2F0UG9pbnQmIHAxLCBDYW52YXNCYXNlJiBjYW52YXNCYXNlKQogewogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IENhbnZhc0dyYWRpZW50KHAwLCBwMSwgY2FudmFzQmFzZSkpOwpAQCAtNTUsNiAr
NjEsMTEgQEAgUmVmPENhbnZhc0dyYWRpZW50PiBDYW52YXNHcmFkaWVudDo6Y3JlYXRlKGNvbnN0
IEZsb2F0UG9pbnQmIHAwLCBmbG9hdCByMCwgY29uc3QKICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDYW52YXNHcmFkaWVudChwMCwgcjAsIHAxLCByMSwgY2FudmFzQmFzZSkpOwogfQogCitSZWY8
Q2FudmFzR3JhZGllbnQ+IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoY29uc3QgRmxvYXRQb2ludCYg
cCwgZmxvYXQgYW5nbGVJblJhZGlhbnMsIENhbnZhc0Jhc2UmIGNhbnZhc0Jhc2UpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2FudmFzR3JhZGllbnQocCwgYW5nbGVJblJhZGlhbnMsIGNh
bnZhc0Jhc2UpKTsKK30KKwogQ2FudmFzR3JhZGllbnQ6On5DYW52YXNHcmFkaWVudCgpID0gZGVm
YXVsdDsKIAogRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzR3JhZGllbnQ6OmFkZENvbG9yU3RvcChm
bG9hdCB2YWx1ZSwgY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oCmluZGV4IGEyMTVmMTQxZWNiZWVlMzE3ODk3ZmVj
NGQ0ZDYyYWIxZGYzNDU5NTguLjNmZDNjZTgzNzA4Yjg4OGJkMDZjMDIxN2M5NjlkZTViZWE2Zjdl
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaApAQCAt
MzgsNiArMzgsNyBAQCBjbGFzcyBDYW52YXNHcmFkaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPENh
bnZhc0dyYWRpZW50PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDYW52YXNHcmFkaWVudD4g
Y3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHAwLCBjb25zdCBGbG9hdFBvaW50JiBwMSwgQ2FudmFz
QmFzZSYpOwogICAgIHN0YXRpYyBSZWY8Q2FudmFzR3JhZGllbnQ+IGNyZWF0ZShjb25zdCBGbG9h
dFBvaW50JiBwMCwgZmxvYXQgcjAsIGNvbnN0IEZsb2F0UG9pbnQmIHAxLCBmbG9hdCByMSwgQ2Fu
dmFzQmFzZSYpOworICAgIHN0YXRpYyBSZWY8Q2FudmFzR3JhZGllbnQ+IGNyZWF0ZShjb25zdCBG
bG9hdFBvaW50JiwgZmxvYXQgYW5nbGVJblJhZGlhbnMsIENhbnZhc0Jhc2UmKTsKICAgICB+Q2Fu
dmFzR3JhZGllbnQoKTsKIAogICAgIEdyYWRpZW50JiBncmFkaWVudCgpIHsgcmV0dXJuIG1fZ3Jh
ZGllbnQ7IH0KQEAgLTQ4LDYgKzQ5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDYW52YXNH
cmFkaWVudChjb25zdCBGbG9hdFBvaW50JiBwMCwgY29uc3QgRmxvYXRQb2ludCYgcDEsIENhbnZh
c0Jhc2UmKTsKICAgICBDYW52YXNHcmFkaWVudChjb25zdCBGbG9hdFBvaW50JiBwMCwgZmxvYXQg
cjAsIGNvbnN0IEZsb2F0UG9pbnQmIHAxLCBmbG9hdCByMSwgQ2FudmFzQmFzZSYpOworICAgIENh
bnZhc0dyYWRpZW50KGNvbnN0IEZsb2F0UG9pbnQmLCBmbG9hdCBhbmdsZUluUmFkaWFucywgQ2Fu
dmFzQmFzZSYpOwogCiAgICAgUmVmPEdyYWRpZW50PiBtX2dyYWRpZW50OwogICAgIENhbnZhc0Jh
c2UmIG1fY2FudmFzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAppbmRleCBjYzAxMThhZjVmODYxMzdh
MzVlNzgxMTgxYTg0YzM5YzBjYzZiZDRjLi40MmJmYzViZDE3YWE1MGZlYzliNDVjZDc4NTgzOGYw
YTA1NTJkNDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcApAQCAtMTk1MCw2ICsxOTUwLDE0IEBA
IEV4Y2VwdGlvbk9yPFJlZjxDYW52YXNHcmFkaWVudD4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2U6OmNyZWF0ZVJhZGlhbEdyYWRpCiAgICAgcmV0dXJuIENhbnZhc0dyYWRpZW50OjpjcmVh
dGUoRmxvYXRQb2ludCh4MCwgeTApLCByMCwgRmxvYXRQb2ludCh4MSwgeTEpLCByMSwgY2FudmFz
QmFzZSgpKTsKIH0KIAorRXhjZXB0aW9uT3I8UmVmPENhbnZhc0dyYWRpZW50Pj4gQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZTo6Y3JlYXRlQ29uaWNHcmFkaWVudChmbG9hdCBhbmdsZUluUmFk
aWFucywgZmxvYXQgeCwgZmxvYXQgeSkKK3sKKyAgICBpZiAoIXN0ZDo6aXNmaW5pdGUoYW5nbGVJ
blJhZGlhbnMpIHx8ICFzdGQ6OmlzZmluaXRlKHgpIHx8ICFzdGQ6OmlzZmluaXRlKHkpKQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKKworICAgIHJldHVy
biBDYW52YXNHcmFkaWVudDo6Y3JlYXRlKEZsb2F0UG9pbnQoeCwgeSksIGFuZ2xlSW5SYWRpYW5z
LCBjYW52YXNCYXNlKCkpOworfQorCiBFeGNlcHRpb25PcjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNyZWF0ZVBhdHRlcm4oQ2FudmFzSW1hZ2VT
b3VyY2UmJiBpbWFnZSwgY29uc3QgU3RyaW5nJiByZXBldGl0aW9uKQogewogICAgIGJvb2wgcmVw
ZWF0WCwgcmVwZWF0WTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaAppbmRleCBkM2ZjNjYxN2Y2Mzg5ZTgxYzk5
ZTkzNWQ2NWI4MTU5NjFkOGM5ZmFlLi5hM2RjZmMyZjVhNTcyYTA0MzlmNDJhMjIwMTdmNGVlYmQ5
OGI1OGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oCkBAIC0xODYsNiArMTg2LDcgQEAgcHVibGljOgog
CiAgICAgRXhjZXB0aW9uT3I8UmVmPENhbnZhc0dyYWRpZW50Pj4gY3JlYXRlTGluZWFyR3JhZGll
bnQoZmxvYXQgeDAsIGZsb2F0IHkwLCBmbG9hdCB4MSwgZmxvYXQgeTEpOwogICAgIEV4Y2VwdGlv
bk9yPFJlZjxDYW52YXNHcmFkaWVudD4+IGNyZWF0ZVJhZGlhbEdyYWRpZW50KGZsb2F0IHgwLCBm
bG9hdCB5MCwgZmxvYXQgcjAsIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgcjEpOworICAgIEV4
Y2VwdGlvbk9yPFJlZjxDYW52YXNHcmFkaWVudD4+IGNyZWF0ZUNvbmljR3JhZGllbnQoZmxvYXQg
YW5nbGVJblJhZGlhbnMsIGZsb2F0IHgsIGZsb2F0IHkpOwogICAgIEV4Y2VwdGlvbk9yPFJlZlB0
cjxDYW52YXNQYXR0ZXJuPj4gY3JlYXRlUGF0dGVybihDYW52YXNJbWFnZVNvdXJjZSYmLCBjb25z
dCBTdHJpbmcmIHJlcGV0aXRpb24pOwogCiAgICAgUmVmUHRyPEltYWdlRGF0YT4gY3JlYXRlSW1h
Z2VEYXRhKEltYWdlRGF0YSYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBh
cmFtZXRlcnMuanMKaW5kZXggOWI2MWEwMGUxODg2ZDI4OWY1NmU5YWJlNTI4ZmI5ZTEwMmExOWMy
MC4uZWUyMjhiYTA4N2NiMzI5Y2Y3MzljZmJkYzBhNGU4YWNkMWNiNTdkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9u
UGFyYW1ldGVycy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzCkBAIC02NDYsNiArNjQ2LDcgQEAgV0ku
TmF0aXZlUHJvdG90eXBlRnVuY3Rpb25QYXJhbWV0ZXJzID0gewogICAgICAgICBjbGVhclJlY3Q6
ICJ4LCB5LCB3aWR0aCwgaGVpZ2h0IiwKICAgICAgICAgY2xpcDogInBhdGgsIFt3aW5kaW5nXSIs
CiAgICAgICAgIGNyZWF0ZUltYWdlRGF0YTogImltYWdlZGF0YSIsCisgICAgICAgIGNyZWF0ZUNv
bmljR3JhZGllbnQ6ICJhbmdsZSwgeCwgeSIsCiAgICAgICAgIGNyZWF0ZUxpbmVhckdyYWRpZW50
OiAieDAsIHkwLCB4MSwgeTEiLAogICAgICAgICBjcmVhdGVQYXR0ZXJuOiAiY2FudmFzLCByZXBl
dGl0aW9uVHlwZSIsCiAgICAgICAgIGNyZWF0ZVJhZGlhbEdyYWRpZW50OiAieDAsIHkwLCByMCwg
eDEsIHkxLCByMSIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcwppbmRleCA5NzVkODliNTNhMGVlMDQ1MTY1ZGEyYWNi
ZTEwYzQ5MTc4ZDMxZTlkLi44ZmUyMWVhODk0NTgxNzZmYjQ1OWM1YzhjZDBjYjlkYzhhNGNmZWM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
UmVjb3JkaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9SZWNvcmRpbmcuanMKQEAgLTY2Myw4ICs2NjMsMTAgQEAgV0kuUmVjb3JkaW5nID0gY2xh
c3MgUmVjb3JkaW5nIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgbGluZXMucHVz
aChgICAgIGxldCBncmFkaWVudCA9IG51bGw7YCk7CiAgICAgICAgICAgICAgICAgbGluZXMucHVz
aChgICAgIGlmIChkYXRhLnR5cGUgPT09ICJyYWRpYWwtZ3JhZGllbnQiKWApOwogICAgICAgICAg
ICAgICAgIGxpbmVzLnB1c2goYCAgICAgICAgZ3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZVJhZGlh
bEdyYWRpZW50KGRhdGEucG9pbnRzWzBdLCBkYXRhLnBvaW50c1sxXSwgZGF0YS5wb2ludHNbMl0s
IGRhdGEucG9pbnRzWzNdLCBkYXRhLnBvaW50c1s0XSwgZGF0YS5wb2ludHNbNV0pO2ApOwotICAg
ICAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgICBlbHNlYCk7CisgICAgICAgICAgICAgICAgbGlu
ZXMucHVzaChgICAgIGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gImxpbmVhci1ncmFkaWVudCIpYCk7
CiAgICAgICAgICAgICAgICAgbGluZXMucHVzaChgICAgICAgICBncmFkaWVudCA9IGNvbnRleHQu
Y3JlYXRlTGluZWFyR3JhZGllbnQoZGF0YS5wb2ludHNbMF0sIGRhdGEucG9pbnRzWzFdLCBkYXRh
LnBvaW50c1syXSwgZGF0YS5wb2ludHNbM10pO2ApOworICAgICAgICAgICAgICAgIGxpbmVzLnB1
c2goYCAgICBlbHNlYCk7CisgICAgICAgICAgICAgICAgbGluZXMucHVzaChgICAgICAgICBncmFk
aWVudCA9IGNvbnRleHQuY3JlYXRlQ29uaWNHcmFkaWVudChkYXRhLnBvaW50c1swXSwgZGF0YS5w
b2ludHNbMV0sIGRhdGEucG9pbnRzWzJdKTtgKTsKICAgICAgICAgICAgICAgICBsaW5lcy5wdXNo
KGAgICAgZm9yIChsZXQgc3RvcCBvZiBkYXRhLnN0b3BzKWApOwogICAgICAgICAgICAgICAgIGxp
bmVzLnB1c2goYCAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKHN0b3Aub2Zmc2V0LCBzdG9w
LmNvbG9yKTtgKTsKICAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgb2JqZWN0c1trZXld
ID0gZ3JhZGllbnQ7YCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdBY3Rpb25UcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0FjdGlvblRyZWVFbGVtZW50
LmpzCmluZGV4IDg5MGIxOWZiNDdlZTVmM2Q1MTkzMzYyZWI1ZTZiN2IyOGMxZjlkZjQuLjkwNTY1
NTQwZTlkMDY4Y2FmZDhjN2YxNWQ4ZWE5ZDEyMzAxZjc3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0FjdGlvblRyZWVFbGVt
ZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jl
Y29yZGluZ0FjdGlvblRyZWVFbGVtZW50LmpzCkBAIC0zMzIsNiArMzMyLDcgQEAgV0kuUmVjb3Jk
aW5nQWN0aW9uVHJlZUVsZW1lbnQgPSBjbGFzcyBSZWNvcmRpbmdBY3Rpb25UcmVlRWxlbWVudCBl
eHRlbmRzIFdJLkdlbmUKICAgICAgICAgY2FzZSAic2hhZG93T2Zmc2V0WSI6CiAgICAgICAgICAg
ICByZXR1cm4gInNoYWRvdyI7CiAKKyAgICAgICAgY2FzZSAiY3JlYXRlQ29uaWNHcmFkaWVudCI6
CiAgICAgICAgIGNhc2UgImNyZWF0ZUxpbmVhckdyYWRpZW50IjoKICAgICAgICAgY2FzZSAiY3Jl
YXRlUGF0dGVybiI6CiAgICAgICAgIGNhc2UgImNyZWF0ZVJhZGlhbEdyYWRpZW50IjoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGMzN2I5NTc0NzNlMDVmOTIxYTZlMjRkYzQwM2Qx
ODU5MTJiYmZlYjYuLjViNWIxNTlhMWRlODk0YWY0ZWYwODA3N2ZjYzM3OGMwNDQ3OTBmZWMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA1LTEw
ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3JlYXRlQ29uaWNHcmFkaWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NTM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50
LmNvbmljLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wNS0xMCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIEltcGxlbWVudCA8Zm9ybT4ucmVxdWVzdFN1Ym1pdCgpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5jb25pYy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5j
b25pYy1leHBlY3RlZC50eHQKaW5kZXggYjAwYWFiMTRhMGE1MGRiOTlkMzY2MDNlZmJmNGIxNDhm
NWY0MTU4OS4uYmQzNjQ2YmU2ZjlhNmNlY2I0Yzg1YmMyNDMzNzZmNzNmZjAyODNjZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50
LmNvbmljLWV4cGVjdGVkLnR4dApAQCAtNCw1ICs0LDUgQEAgQWN0dWFsIG91dHB1dDoKIEV4cGVj
dGVkIG91dHB1dDoKIAogCi1GQUlMIENvbmljIGdyYWRpZW50IGZ1bmN0aW9uIGV4aXN0cyBjdHgu
Y3JlYXRlQ29uaWNHcmFkaWVudCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdjdHguY3JlYXRlQ29u
aWNHcmFkaWVudCgwLCAwLCAyNSknLCAnY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQnIGlzIHVuZGVm
aW5lZCkKK1BBU1MgQ29uaWMgZ3JhZGllbnQgZnVuY3Rpb24gZXhpc3RzCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428310</attachid>
            <date>2021-05-11 14:20:05 -0700</date>
            <delta_ts>2021-05-12 12:42:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225539-20210511142004.patch</filename>
            <type>text/plain</type>
            <size>25699</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU2N2QxY2Q2YjA4YTAz
OTEwMzk4ODIzNDhjMWNiOTk5YjA4MjQ3Zi4uYjVjNDhmODMwMzE1YWE4MzFmZTIxMzE1ZmQ1ZjBi
MzZiZGE4MjQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTExICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3JlYXRlQ29uaWNHcmFkaWVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NTM5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvcG9zYWwgZG9jdW1lbnQ6CisgICAg
ICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vZnNlcmIvY2FudmFzMkQvYmxvYi9tYXN0ZXIvc3Bl
Yy9jb25pYy1ncmFkaWVudC5tZAorCisgICAgICAgIE1ETiBkb2N1bWVudGF0aW9uOgorICAgICAg
ICAgICAgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC9jcmVhdGVDb25pY0dyYWRpZW50CisKKyAgICAgICAgVGVz
dHM6IGZhc3QvY2FudmFzL2NhbnZhcy1jb25pYy1ncmFkaWVudC1hbmdsZS5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtY2VudGVyLmh0bWwKKwor
ICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc0ZpbGxTdHJva2VTdHlsZXMuaWRsOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc0dyYWRpZW50OjpDYW52YXNHcmFkaWVudCk6CisgICAgICAgIChXZWJDb3JlOjptX2NhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNHcmFkaWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Y3JlYXRlQ29uaWNHcmFkaWVudCk6CisgICAgICAgICog
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oOgorCiAyMDIxLTA1LTEx
ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgRmFj
dG9yIG91dCBmaW5kIGJvdW5jZSBsYXllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggZGYw
NTBlMTZkYzMwNzVlYWQyZDJhNjgwMTlmMDIxNTg0NmI0OTYxOC4uODllYzhlY2RjNDAzMWVkYTYw
Yjg0YTc4ZWYyYzgzNDRiYmNjN2UxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMjEtMDUtMTEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcmVhdGVDb25p
Y0dyYWRpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU1MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qczoKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanM6CisgICAgICAgIChXSS5S
ZWNvcmRpbmcucHJvdG90eXBlLmFzeW5jIHN3aXp6bGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvUmVjb3JkaW5nQWN0aW9uVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXSS5SZWNv
cmRpbmdBY3Rpb25UcmVlRWxlbWVudC5fY2xhc3NOYW1lRm9yQWN0aW9uKToKKwogMjAyMS0wNS0x
MCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogTmV0d29yazogcmVuYW1lICJYSFIiIHRvICJYSFIvRmV0Y2giCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNGaWxsU3Ryb2tlU3R5bGVzLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0ZpbGxTdHJva2VTdHlsZXMuaWRsCmluZGV4
IGFmMDBmMTg4OWM3MTY5YTdhNjVkNzg5YjlhMDE5NzAyNTg4NDNmYzkuLmU3OTY5YjhmOGIyZTY5
MDgyY2I5YzQ0YjI1OWIzNmE4NTM1NmFmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc0ZpbGxTdHJva2VTdHlsZXMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc0ZpbGxTdHJva2VTdHlsZXMuaWRsCkBAIC00NSw1ICs0NSw2IEBA
IGludGVyZmFjZSBtaXhpbiBDYW52YXNGaWxsU3Ryb2tlU3R5bGVzIHsKICAgICAvLyBGSVhNRTog
QWxsIHRoZSBmbG9hdCBwYXJhbWV0ZXJzIGJlbG93IHNob3VsZCBiZSBkb3VibGVzLgogICAgIENh
bnZhc0dyYWRpZW50IGNyZWF0ZUxpbmVhckdyYWRpZW50KGZsb2F0IHgwLCBmbG9hdCB5MCwgZmxv
YXQgeDEsIGZsb2F0IHkxKTsKICAgICBDYW52YXNHcmFkaWVudCBjcmVhdGVSYWRpYWxHcmFkaWVu
dChmbG9hdCB4MCwgZmxvYXQgeTAsIGZsb2F0IHIwLCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0
IHIxKTsKKyAgICBDYW52YXNHcmFkaWVudCBjcmVhdGVDb25pY0dyYWRpZW50KGZsb2F0IGFuZ2xl
LCBmbG9hdCB4LCBmbG9hdCB5KTsKICAgICBDYW52YXNQYXR0ZXJuPyBjcmVhdGVQYXR0ZXJuKENh
bnZhc0ltYWdlU291cmNlIGltYWdlLCBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIERPTVN0cmlu
ZyByZXBldGl0aW9uKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNHcmFkaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNH
cmFkaWVudC5jcHAKaW5kZXggNzVlNGFlMTI5ZjcyY2NhNmY0ZDViZjY2N2M1MjQ3OWI3MjcwYjg4
YS4uOTgxMmYzMDA2OGVmNmFhNjg5YzU2ZjI4MDZkOGJkOWZiZjZjYTYxOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcApAQCAtNDUsNiArNDUsMTIg
QEAgQ2FudmFzR3JhZGllbnQ6OkNhbnZhc0dyYWRpZW50KGNvbnN0IEZsb2F0UG9pbnQmIHAwLCBm
bG9hdCByMCwgY29uc3QgRmxvYXRQb2ludCYKIHsKIH0KIAorQ2FudmFzR3JhZGllbnQ6OkNhbnZh
c0dyYWRpZW50KGNvbnN0IEZsb2F0UG9pbnQmIGNlbnRlclBvaW50LCBmbG9hdCBhbmdsZUluUmFk
aWFucywgQ2FudmFzQmFzZSYgY2FudmFzQmFzZSkKKyAgICA6IG1fZ3JhZGllbnQoR3JhZGllbnQ6
OmNyZWF0ZShHcmFkaWVudDo6Q29uaWNEYXRhIHsgY2VudGVyUG9pbnQsIGFuZ2xlSW5SYWRpYW5z
IH0pKQorICAgICwgbV9jYW52YXMoY2FudmFzQmFzZSkKK3sKK30KKwogUmVmPENhbnZhc0dyYWRp
ZW50PiBDYW52YXNHcmFkaWVudDo6Y3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHAwLCBjb25zdCBG
bG9hdFBvaW50JiBwMSwgQ2FudmFzQmFzZSYgY2FudmFzQmFzZSkKIHsKICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBDYW52YXNHcmFkaWVudChwMCwgcDEsIGNhbnZhc0Jhc2UpKTsKQEAgLTU1LDYg
KzYxLDExIEBAIFJlZjxDYW52YXNHcmFkaWVudD4gQ2FudmFzR3JhZGllbnQ6OmNyZWF0ZShjb25z
dCBGbG9hdFBvaW50JiBwMCwgZmxvYXQgcjAsIGNvbnN0CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQ2FudmFzR3JhZGllbnQocDAsIHIwLCBwMSwgcjEsIGNhbnZhc0Jhc2UpKTsKIH0KIAorUmVm
PENhbnZhc0dyYWRpZW50PiBDYW52YXNHcmFkaWVudDo6Y3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQm
IGNlbnRlclBvaW50LCBmbG9hdCBhbmdsZUluUmFkaWFucywgQ2FudmFzQmFzZSYgY2FudmFzQmFz
ZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDYW52YXNHcmFkaWVudChjZW50ZXJQb2lu
dCwgYW5nbGVJblJhZGlhbnMsIGNhbnZhc0Jhc2UpKTsKK30KKwogQ2FudmFzR3JhZGllbnQ6On5D
YW52YXNHcmFkaWVudCgpID0gZGVmYXVsdDsKIAogRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzR3Jh
ZGllbnQ6OmFkZENvbG9yU3RvcChmbG9hdCB2YWx1ZSwgY29uc3QgU3RyaW5nJiBjb2xvclN0cmlu
ZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oCmluZGV4IGEy
MTVmMTQxZWNiZWVlMzE3ODk3ZmVjNGQ0ZDYyYWIxZGYzNDU5NTguLmY2YmY1MzMxNWUyMjllZTVm
NDY2MzU2NWRiMDZlNTAxY2Q1NzQ4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc0dyYWRpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzR3JhZGllbnQuaApAQCAtMzgsNiArMzgsNyBAQCBjbGFzcyBDYW52YXNHcmFkaWVudCA6
IHB1YmxpYyBSZWZDb3VudGVkPENhbnZhc0dyYWRpZW50PiB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxDYW52YXNHcmFkaWVudD4gY3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHAwLCBjb25zdCBG
bG9hdFBvaW50JiBwMSwgQ2FudmFzQmFzZSYpOwogICAgIHN0YXRpYyBSZWY8Q2FudmFzR3JhZGll
bnQ+IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiBwMCwgZmxvYXQgcjAsIGNvbnN0IEZsb2F0UG9p
bnQmIHAxLCBmbG9hdCByMSwgQ2FudmFzQmFzZSYpOworICAgIHN0YXRpYyBSZWY8Q2FudmFzR3Jh
ZGllbnQ+IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiBjZW50ZXJQb2ludCwgZmxvYXQgYW5nbGVJ
blJhZGlhbnMsIENhbnZhc0Jhc2UmKTsKICAgICB+Q2FudmFzR3JhZGllbnQoKTsKIAogICAgIEdy
YWRpZW50JiBncmFkaWVudCgpIHsgcmV0dXJuIG1fZ3JhZGllbnQ7IH0KQEAgLTQ4LDYgKzQ5LDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDYW52YXNHcmFkaWVudChjb25zdCBGbG9hdFBvaW50
JiBwMCwgY29uc3QgRmxvYXRQb2ludCYgcDEsIENhbnZhc0Jhc2UmKTsKICAgICBDYW52YXNHcmFk
aWVudChjb25zdCBGbG9hdFBvaW50JiBwMCwgZmxvYXQgcjAsIGNvbnN0IEZsb2F0UG9pbnQmIHAx
LCBmbG9hdCByMSwgQ2FudmFzQmFzZSYpOworICAgIENhbnZhc0dyYWRpZW50KGNvbnN0IEZsb2F0
UG9pbnQmIGNlbnRlclBvaW50LCBmbG9hdCBhbmdsZUluUmFkaWFucywgQ2FudmFzQmFzZSYpOwog
CiAgICAgUmVmPEdyYWRpZW50PiBtX2dyYWRpZW50OwogICAgIENhbnZhc0Jhc2UmIG1fY2FudmFz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlLmNwcAppbmRleCBhOTdmZGM5MzBmOTZjYTQ3YTExYzAwMmMzODU5
Mzk3Mzg0NDhlMzczLi4yYjZjMzc2YWI1Mzg2NzNhNzk3NDM1OTY0MmViMDY3YjVmMjVhN2E1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlLmNwcApAQCAtMTk1MCw2ICsxOTUwLDE0IEBAIEV4Y2VwdGlvbk9y
PFJlZjxDYW52YXNHcmFkaWVudD4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNyZWF0
ZVJhZGlhbEdyYWRpCiAgICAgcmV0dXJuIENhbnZhc0dyYWRpZW50OjpjcmVhdGUoRmxvYXRQb2lu
dCh4MCwgeTApLCByMCwgRmxvYXRQb2ludCh4MSwgeTEpLCByMSwgY2FudmFzQmFzZSgpKTsKIH0K
IAorRXhjZXB0aW9uT3I8UmVmPENhbnZhc0dyYWRpZW50Pj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZTo6Y3JlYXRlQ29uaWNHcmFkaWVudChmbG9hdCBhbmdsZUluUmFkaWFucywgZmxvYXQg
eCwgZmxvYXQgeSkKK3sKKyAgICBpZiAoIXN0ZDo6aXNmaW5pdGUoYW5nbGVJblJhZGlhbnMpIHx8
ICFzdGQ6OmlzZmluaXRlKHgpIHx8ICFzdGQ6OmlzZmluaXRlKHkpKQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKKworICAgIHJldHVybiBDYW52YXNHcmFk
aWVudDo6Y3JlYXRlKEZsb2F0UG9pbnQoeCwgeSksIGFuZ2xlSW5SYWRpYW5zLCBjYW52YXNCYXNl
KCkpOworfQorCiBFeGNlcHRpb25PcjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+IENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2U6OmNyZWF0ZVBhdHRlcm4oQ2FudmFzSW1hZ2VTb3VyY2UmJiBpbWFn
ZSwgY29uc3QgU3RyaW5nJiByZXBldGl0aW9uKQogewogICAgIGJvb2wgcmVwZWF0WCwgcmVwZWF0
WTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2UuaAppbmRleCBkM2ZjNjYxN2Y2Mzg5ZTgxYzk5ZTkzNWQ2NWI4MTU5
NjFkOGM5ZmFlLi5hM2RjZmMyZjVhNTcyYTA0MzlmNDJhMjIwMTdmNGVlYmQ5OGI1OGIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5oCkBAIC0xODYsNiArMTg2LDcgQEAgcHVibGljOgogCiAgICAgRXhjZXB0
aW9uT3I8UmVmPENhbnZhc0dyYWRpZW50Pj4gY3JlYXRlTGluZWFyR3JhZGllbnQoZmxvYXQgeDAs
IGZsb2F0IHkwLCBmbG9hdCB4MSwgZmxvYXQgeTEpOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxDYW52
YXNHcmFkaWVudD4+IGNyZWF0ZVJhZGlhbEdyYWRpZW50KGZsb2F0IHgwLCBmbG9hdCB5MCwgZmxv
YXQgcjAsIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgcjEpOworICAgIEV4Y2VwdGlvbk9yPFJl
ZjxDYW52YXNHcmFkaWVudD4+IGNyZWF0ZUNvbmljR3JhZGllbnQoZmxvYXQgYW5nbGVJblJhZGlh
bnMsIGZsb2F0IHgsIGZsb2F0IHkpOwogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxDYW52YXNQYXR0
ZXJuPj4gY3JlYXRlUGF0dGVybihDYW52YXNJbWFnZVNvdXJjZSYmLCBjb25zdCBTdHJpbmcmIHJl
cGV0aXRpb24pOwogCiAgICAgUmVmUHRyPEltYWdlRGF0YT4gY3JlYXRlSW1hZ2VEYXRhKEltYWdl
RGF0YSYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMK
aW5kZXggOWI2MWEwMGUxODg2ZDI4OWY1NmU5YWJlNTI4ZmI5ZTEwMmExOWMyMC4uZWUyMjhiYTA4
N2NiMzI5Y2Y3MzljZmJkYzBhNGU4YWNkMWNiNTdkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZl
RnVuY3Rpb25QYXJhbWV0ZXJzLmpzCkBAIC02NDYsNiArNjQ2LDcgQEAgV0kuTmF0aXZlUHJvdG90
eXBlRnVuY3Rpb25QYXJhbWV0ZXJzID0gewogICAgICAgICBjbGVhclJlY3Q6ICJ4LCB5LCB3aWR0
aCwgaGVpZ2h0IiwKICAgICAgICAgY2xpcDogInBhdGgsIFt3aW5kaW5nXSIsCiAgICAgICAgIGNy
ZWF0ZUltYWdlRGF0YTogImltYWdlZGF0YSIsCisgICAgICAgIGNyZWF0ZUNvbmljR3JhZGllbnQ6
ICJhbmdsZSwgeCwgeSIsCiAgICAgICAgIGNyZWF0ZUxpbmVhckdyYWRpZW50OiAieDAsIHkwLCB4
MSwgeTEiLAogICAgICAgICBjcmVhdGVQYXR0ZXJuOiAiY2FudmFzLCByZXBldGl0aW9uVHlwZSIs
CiAgICAgICAgIGNyZWF0ZVJhZGlhbEdyYWRpZW50OiAieDAsIHkwLCByMCwgeDEsIHkxLCByMSIs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
UmVjb3JkaW5nLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L1JlY29yZGluZy5qcwppbmRleCA5NzVkODliNTNhMGVlMDQ1MTY1ZGEyYWNiZTEwYzQ5MTc4ZDMx
ZTlkLi42MDRhOTllNWM4Yzk5MWIwMDM2NzZjZTY4YTk4OTUzMTI4Mzk0OTMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRp
bmcuanMKQEAgLTQwOCw3ICs0MDgsMTIgQEAgV0kuUmVjb3JkaW5nID0gY2xhc3MgUmVjb3JkaW5n
IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgICAgIHBvaW50cyA9IGF3YWl0IFBy
b21pc2UuYWxsKHBvaW50cy5tYXAoKGl0ZW0pID0+IHRoaXMuc3dpenpsZShpdGVtLCBXSS5SZWNv
cmRpbmcuU3dpenpsZS5OdW1iZXIpKSk7CiAKICAgICAgICAgICAgICAgICAgICAgV0kuSW1hZ2VV
dGlsaXRpZXMuc2NyYXRjaENhbnZhc0NvbnRleHQyRCgoY29udGV4dCkgPT4gewotICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpcy5fc3dpenpsZVtpbmRleF1bdHlwZV0gPSBncmFkaWVudFR5cGUg
PT09ICJyYWRpYWwtZ3JhZGllbnQiID8gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudCguLi5w
b2ludHMpIDogY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudCguLi5wb2ludHMpOworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGdyYWRpZW50VHlwZSA9PSAicmFkaWFsLWdyYWRpZW50IikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zd2l6emxlW2luZGV4XVt0eXBlXSA9
IGNvbnRleHQuY3JlYXRlUmFkaWFsR3JhZGllbnQoLi4ucG9pbnRzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGVsc2UgaWYgKGdyYWRpZW50VHlwZSA9PSAibGluZWFyLWdyYWRpZW50IikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zd2l6emxlW2luZGV4XVt0eXBlXSA9IGNv
bnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoLi4ucG9pbnRzKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zd2l6emxlW2lu
ZGV4XVt0eXBlXSA9IGNvbnRleHQuY3JlYXRlQ29uaWNHcmFkaWVudCguLi5wb2ludHMpOwogICAg
ICAgICAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgICAgICAgICBsZXQgc3RvcHMgPSBb
XTsKQEAgLTY2Myw4ICs2NjgsMTAgQEAgV0kuUmVjb3JkaW5nID0gY2xhc3MgUmVjb3JkaW5nIGV4
dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgbGluZXMucHVzaChgICAgIGxldCBncmFk
aWVudCA9IG51bGw7YCk7CiAgICAgICAgICAgICAgICAgbGluZXMucHVzaChgICAgIGlmIChkYXRh
LnR5cGUgPT09ICJyYWRpYWwtZ3JhZGllbnQiKWApOwogICAgICAgICAgICAgICAgIGxpbmVzLnB1
c2goYCAgICAgICAgZ3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZVJhZGlhbEdyYWRpZW50KGRhdGEu
cG9pbnRzWzBdLCBkYXRhLnBvaW50c1sxXSwgZGF0YS5wb2ludHNbMl0sIGRhdGEucG9pbnRzWzNd
LCBkYXRhLnBvaW50c1s0XSwgZGF0YS5wb2ludHNbNV0pO2ApOwotICAgICAgICAgICAgICAgIGxp
bmVzLnB1c2goYCAgICBlbHNlYCk7CisgICAgICAgICAgICAgICAgbGluZXMucHVzaChgICAgIGVs
c2UgaWYgKGRhdGEudHlwZSA9PT0gImxpbmVhci1ncmFkaWVudCIpYCk7CiAgICAgICAgICAgICAg
ICAgbGluZXMucHVzaChgICAgICAgICBncmFkaWVudCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3Jh
ZGllbnQoZGF0YS5wb2ludHNbMF0sIGRhdGEucG9pbnRzWzFdLCBkYXRhLnBvaW50c1syXSwgZGF0
YS5wb2ludHNbM10pO2ApOworICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgICBlbHNlYCk7
CisgICAgICAgICAgICAgICAgbGluZXMucHVzaChgICAgICAgICBncmFkaWVudCA9IGNvbnRleHQu
Y3JlYXRlQ29uaWNHcmFkaWVudChkYXRhLnBvaW50c1swXSwgZGF0YS5wb2ludHNbMV0sIGRhdGEu
cG9pbnRzWzJdKTtgKTsKICAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgZm9yIChsZXQg
c3RvcCBvZiBkYXRhLnN0b3BzKWApOwogICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgICAg
ICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKHN0b3Aub2Zmc2V0LCBzdG9wLmNvbG9yKTtgKTsKICAg
ICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgb2JqZWN0c1trZXldID0gZ3JhZGllbnQ7YCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9S
ZWNvcmRpbmdBY3Rpb25UcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0FjdGlvblRyZWVFbGVtZW50LmpzCmluZGV4IDg5MGIx
OWZiNDdlZTVmM2Q1MTkzMzYyZWI1ZTZiN2IyOGMxZjlkZjQuLjkwNTY1NTQwZTlkMDY4Y2FmZDhj
N2YxNWQ4ZWE5ZDEyMzAxZjc3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0FjdGlvblRyZWVFbGVtZW50LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0FjdGlvblRy
ZWVFbGVtZW50LmpzCkBAIC0zMzIsNiArMzMyLDcgQEAgV0kuUmVjb3JkaW5nQWN0aW9uVHJlZUVs
ZW1lbnQgPSBjbGFzcyBSZWNvcmRpbmdBY3Rpb25UcmVlRWxlbWVudCBleHRlbmRzIFdJLkdlbmUK
ICAgICAgICAgY2FzZSAic2hhZG93T2Zmc2V0WSI6CiAgICAgICAgICAgICByZXR1cm4gInNoYWRv
dyI7CiAKKyAgICAgICAgY2FzZSAiY3JlYXRlQ29uaWNHcmFkaWVudCI6CiAgICAgICAgIGNhc2Ug
ImNyZWF0ZUxpbmVhckdyYWRpZW50IjoKICAgICAgICAgY2FzZSAiY3JlYXRlUGF0dGVybiI6CiAg
ICAgICAgIGNhc2UgImNyZWF0ZVJhZGlhbEdyYWRpZW50IjoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwOWQ4YWM3N2NiZDYz
NjZmZDk0M2UzODQyZGYzNzA4YWViMzY0OTdjLi4xNzJmZWQzMTk4YzE2MDJlM2E4YmE0ZWEyMWM1
NTE5ZTkyNDIwMzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDUtMTEgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcmVhdGVDb25pY0dyYWRpZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU1MzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1jb25pYy1n
cmFkaWVudC1hbmdsZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZh
cy9jYW52YXMtY29uaWMtZ3JhZGllbnQtYW5nbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jYW52YXMvY2FudmFzLWNvbmljLWdyYWRpZW50LWNlbnRlci1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtY2VudGVyLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLWh0bWwtMmQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLWh0bWwt
MmQuaHRtbDoKKwogMjAyMS0wNS0xMSAgQW1pciBNYXJrIEpyICA8YW1pcl9tYXJrQGFwcGxlLmNv
bT4KIAogICAgICAgICBbQmlnU3VyIFdrMiBBcm02NF0gaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5v
bmNlLmh0bWwgaXMgZmxha3kgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5k
ZXggYzhjOGFkZTYzODQxYTc4NTUzNDUxOGU3YWY1MzJhNTQwZmRlNTBkZC4uOTEzNDQzN2UxNzkz
NzYzYTlmNDcxN2RkYjEyMDQxZjAwN2U5NmE0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDUtMTEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fp
ZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcmVhdGVDb25pY0dyYWRpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjU1MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2Zp
bGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMtZXhwZWN0ZWQudHh0OgorCiAy
MDIxLTA1LTExICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbQ1NTIGNvbnRhaW5dIFN1cHBvcnQgY29udGFpbjpzaXplCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtYW5nbGUtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb25pYy1ncmFkaWVudC1hbmdsZS1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxYzVlYjIxMGE5YjBiMzJiZmNhYjM3MGVmNTliMjhh
ZjdmNTUyY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtY29uaWMtZ3JhZGllbnQtYW5nbGUtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8
c3R5bGU+CisgICAgY2FudmFzIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7CisgICAgfQor
PC9zdHlsZT4KKzxib2R5PgorICAgIDxjYW52YXMgaWQ9ImMxIiB3aWR0aD0iMTAwIiBoZWlnaHQ9
IjEwMCI+PC9jYW52YXM+CisgICAgPGNhbnZhcyBpZD0iYzIiIHdpZHRoPSIxMDAiIGhlaWdodD0i
MTAwIj48L2NhbnZhcz4KKyAgICA8Y2FudmFzIGlkPSJjMyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIx
MDAiPjwvY2FudmFzPgorICAgIDxjYW52YXMgaWQ9ImM0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEw
MCI+PC9jYW52YXM+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gZmlsbENhbnZhc1dp
dGhTb2xpZENvbG9yKGNhbnZhc0lkLCB4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7CisgICAgICAgICAg
ICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjYW52YXNJZCk7CisgICAg
ICAgICAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICAgICAgICAg
IGN0eC5maWxsU3R5bGUgPSAiYmxhY2siOworICAgICAgICAgICAgY3R4LmZpbGxSZWN0KHgsIHks
IHdpZHRoLCBoZWlnaHQpOworICAgICAgICB9CisKKyAgICAgICAgZmlsbENhbnZhc1dpdGhTb2xp
ZENvbG9yKCJjMSIsIDUwLCAgMCwgNTAsIDUwKTsKKyAgICAgICAgZmlsbENhbnZhc1dpdGhTb2xp
ZENvbG9yKCJjMSIsICAwLCA1MCwgNTAsIDUwKTsKKyAgICAgICAgZmlsbENhbnZhc1dpdGhTb2xp
ZENvbG9yKCJjMiIsICAwLCAgMCwgNTAsIDUwKTsKKyAgICAgICAgZmlsbENhbnZhc1dpdGhTb2xp
ZENvbG9yKCJjMiIsIDUwLCA1MCwgNTAsIDUwKTsKKyAgICAgICAgZmlsbENhbnZhc1dpdGhTb2xp
ZENvbG9yKCJjMyIsICAwLCA1MCwgNTAsIDUwKTsKKyAgICAgICAgZmlsbENhbnZhc1dpdGhTb2xp
ZENvbG9yKCJjMyIsIDUwLCAgMCwgNTAsIDUwKTsKKyAgICAgICAgZmlsbENhbnZhc1dpdGhTb2xp
ZENvbG9yKCJjNCIsICAwLCAgMCwgNTAsIDUwKTsKKyAgICAgICAgZmlsbENhbnZhc1dpdGhTb2xp
ZENvbG9yKCJjNCIsIDUwLCA1MCwgNTAsIDUwKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb25pYy1ncmFkaWVudC1h
bmdsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbmljLWdyYWRpZW50
LWFuZ2xlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2EzMTY4NmJhNTFjODVlNzcwOTUwNjE0ODE0NTQ2YjQ2
ODkzOTg5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZh
cy1jb25pYy1ncmFkaWVudC1hbmdsZS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzxzdHlsZT4KKyAg
ICBjYW52YXMgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZDsKKyAgICB9Cis8L3N0eWxlPgor
PGJvZHk+CisgICAgPGNhbnZhcyBpZD0iYzEiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj48L2Nh
bnZhcz4KKyAgICA8Y2FudmFzIGlkPSJjMiIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2Fu
dmFzPgorICAgIDxjYW52YXMgaWQ9ImMzIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52
YXM+CisgICAgPGNhbnZhcyBpZD0iYzQiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj48L2NhbnZh
cz4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiBmaWxsQ2FudmFzV2l0aEdyYWRpZW50
KGNhbnZhc0lkLCBjcmVhdGVHcmFkaWVudCkgeworICAgICAgICAgICAgY29uc3QgY2FudmFzID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY2FudmFzSWQpOworICAgICAgICAgICAgY29uc3QgY3R4
ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgICAgICAgICBjdHguZmlsbFN0eWxlID0g
Y3JlYXRlR3JhZGllbnQoY3R4KTsKKyAgICAgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCAxMDAs
IDEwMCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhZGRHcmFkaWVudENvbG9yU3Rv
cHMoZ3JhZGllbnQpIHsKKyAgICAgICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgwLCAiYmxh
Y2siKTsKKyAgICAgICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgwLjI1LCAiYmxhY2siKTsK
KyAgICAgICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgwLjI1LCAidHJhbnNwYXJlbnQiKTsK
KyAgICAgICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgwLjUsICJ0cmFuc3BhcmVudCIpOwor
ICAgICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuNSwgImJsYWNrIik7CisgICAgICAg
ICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMC43NSwgImJsYWNrIik7CisgICAgICAgICAgICBn
cmFkaWVudC5hZGRDb2xvclN0b3AoMC43NSwgInRyYW5zcGFyZW50Iik7CisgICAgICAgIH0KKwor
ICAgICAgICBmaWxsQ2FudmFzV2l0aEdyYWRpZW50KCJjMSIsIChjdHgpID0+IHsKKyAgICAgICAg
ICAgIGNvbnN0IGdyYWRpZW50ID0gY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQoMCwgNTAsIDUwKTsK
KyAgICAgICAgICAgIGFkZEdyYWRpZW50Q29sb3JTdG9wcyhncmFkaWVudCk7CisgICAgICAgICAg
ICByZXR1cm4gZ3JhZGllbnQ7CisgICAgICAgIH0pOworCisgICAgICAgIGZpbGxDYW52YXNXaXRo
R3JhZGllbnQoImMyIiwgKGN0eCkgPT4geworICAgICAgICAgICAgY29uc3QgZ3JhZGllbnQgPSBj
dHguY3JlYXRlQ29uaWNHcmFkaWVudChNYXRoLlBJIC8gMiwgNTAsIDUwKTsKKyAgICAgICAgICAg
IGFkZEdyYWRpZW50Q29sb3JTdG9wcyhncmFkaWVudCk7CisgICAgICAgICAgICByZXR1cm4gZ3Jh
ZGllbnQ7CisgICAgICAgIH0pOworCisgICAgICAgIGZpbGxDYW52YXNXaXRoR3JhZGllbnQoImMz
IiwgKGN0eCkgPT4geworICAgICAgICAgICAgY29uc3QgZ3JhZGllbnQgPSBjdHguY3JlYXRlQ29u
aWNHcmFkaWVudChNYXRoLlBJLCA1MCwgNTApOworICAgICAgICAgICAgYWRkR3JhZGllbnRDb2xv
clN0b3BzKGdyYWRpZW50KTsKKyAgICAgICAgICAgIHJldHVybiBncmFkaWVudDsKKyAgICAgICAg
fSk7CisKKyAgICAgICAgZmlsbENhbnZhc1dpdGhHcmFkaWVudCgiYzQiLCAoY3R4KSA9PiB7Cisg
ICAgICAgICAgICBjb25zdCBncmFkaWVudCA9IGN0eC5jcmVhdGVDb25pY0dyYWRpZW50KE1hdGgu
UEkgKiAzIC8gMiwgNTAsIDUwKTsKKyAgICAgICAgICAgIGFkZEdyYWRpZW50Q29sb3JTdG9wcyhn
cmFkaWVudCk7CisgICAgICAgICAgICByZXR1cm4gZ3JhZGllbnQ7CisgICAgICAgIH0pOworICAg
IDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
Y2FudmFzLWNvbmljLWdyYWRpZW50LWNlbnRlci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLWNvbmljLWdyYWRpZW50LWNlbnRlci1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBjODhmMTZiOWFjNTFmZDY3Y2ViNjg5N2U2ZDc3OGVjMzkyMTMxYjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3JhZGll
bnQtY2VudGVyLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPHN0eWxlPgorICAgIGNh
bnZhcyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkOworICAgIH0KKzwvc3R5bGU+Cis8Ym9k
eT4KKyAgICA8Y2FudmFzIGlkPSJjMSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2FudmFz
PgorICAgIDxjYW52YXMgaWQ9ImMyIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52YXM+
CisgICAgPGNhbnZhcyBpZD0iYzMiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj48L2NhbnZhcz4K
KyAgICA8Y2FudmFzIGlkPSJjNCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2FudmFzPgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcihj
YW52YXNJZCwgeCwgeSwgd2lkdGgsIGhlaWdodCkgeworICAgICAgICAgICAgY29uc3QgY2FudmFz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY2FudmFzSWQpOworICAgICAgICAgICAgY29uc3Qg
Y3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgICAgICAgICBjdHguZmlsbFN0eWxl
ID0gImJsYWNrIjsKKyAgICAgICAgICAgIGN0eC5maWxsUmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzEiLCAy
MCwgIDAsIDgwLCAyMCk7CisgICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzEiLCAg
MCwgMjAsIDIwLCA4MCk7CisgICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzIiLCA4
MCwgIDAsIDIwLCAyMCk7CisgICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzIiLCAg
MCwgMjAsIDgwLCA4MCk7CisgICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzMiLCAy
MCwgIDAsIDgwLCA4MCk7CisgICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzMiLCAg
MCwgODAsIDIwLCAyMCk7CisgICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzQiLCA4
MCwgIDAsIDIwLCA4MCk7CisgICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzQiLCAg
MCwgODAsIDgwLCAyMCk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtY2VudGVyLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtY2VudGVyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTdkY2E2NzFiYzQ4YjJkMzhmNDdmNTMyODUxNGRiNDA2MmVkYmI4YgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb25pYy1ncmFk
aWVudC1jZW50ZXIuaHRtbApAQCAtMCwwICsxLDUzIEBACis8c3R5bGU+CisgICAgY2FudmFzIHsK
KyAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAg
IDxjYW52YXMgaWQ9ImMxIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52YXM+CisgICAg
PGNhbnZhcyBpZD0iYzIiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj48L2NhbnZhcz4KKyAgICA8
Y2FudmFzIGlkPSJjMyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2FudmFzPgorICAgIDxj
YW52YXMgaWQ9ImM0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52YXM+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgZnVuY3Rpb24gZmlsbENhbnZhc1dpdGhHcmFkaWVudChjYW52YXNJZCwg
Y3JlYXRlR3JhZGllbnQpIHsKKyAgICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGNhbnZhc0lkKTsKKyAgICAgICAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5n
ZXRDb250ZXh0KCcyZCcpOworICAgICAgICAgICAgY3R4LmZpbGxTdHlsZSA9IGNyZWF0ZUdyYWRp
ZW50KGN0eCk7CisgICAgICAgICAgICBjdHguZmlsbFJlY3QoMCwgMCwgMTAwLCAxMDApOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gYWRkR3JhZGllbnRDb2xvclN0b3BzKGdyYWRpZW50
KSB7CisgICAgICAgICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMCwgImJsYWNrIik7CisgICAg
ICAgICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMC4yNSwgImJsYWNrIik7CisgICAgICAgICAg
ICBncmFkaWVudC5hZGRDb2xvclN0b3AoMC4yNSwgInRyYW5zcGFyZW50Iik7CisgICAgICAgICAg
ICBncmFkaWVudC5hZGRDb2xvclN0b3AoMC41LCAidHJhbnNwYXJlbnQiKTsKKyAgICAgICAgICAg
IGdyYWRpZW50LmFkZENvbG9yU3RvcCgwLjUsICJibGFjayIpOworICAgICAgICAgICAgZ3JhZGll
bnQuYWRkQ29sb3JTdG9wKDAuNzUsICJibGFjayIpOworICAgICAgICAgICAgZ3JhZGllbnQuYWRk
Q29sb3JTdG9wKDAuNzUsICJ0cmFuc3BhcmVudCIpOworICAgICAgICB9CisKKyAgICAgICAgZmls
bENhbnZhc1dpdGhHcmFkaWVudCgiYzEiLCAoY3R4KSA9PiB7CisgICAgICAgICAgICBjb25zdCBn
cmFkaWVudCA9IGN0eC5jcmVhdGVDb25pY0dyYWRpZW50KDAsIDIwLCAyMCk7CisgICAgICAgICAg
ICBhZGRHcmFkaWVudENvbG9yU3RvcHMoZ3JhZGllbnQpCisgICAgICAgICAgICByZXR1cm4gZ3Jh
ZGllbnQ7CisgICAgICAgIH0pOworCisgICAgICAgIGZpbGxDYW52YXNXaXRoR3JhZGllbnQoImMy
IiwgKGN0eCkgPT4geworICAgICAgICAgICAgY29uc3QgZ3JhZGllbnQgPSBjdHguY3JlYXRlQ29u
aWNHcmFkaWVudCgwLCA4MCwgMjApOworICAgICAgICAgICAgYWRkR3JhZGllbnRDb2xvclN0b3Bz
KGdyYWRpZW50KQorICAgICAgICAgICAgcmV0dXJuIGdyYWRpZW50OworICAgICAgICB9KTsKKwor
ICAgICAgICBmaWxsQ2FudmFzV2l0aEdyYWRpZW50KCJjMyIsIChjdHgpID0+IHsKKyAgICAgICAg
ICAgIGNvbnN0IGdyYWRpZW50ID0gY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQoMCwgMjAsIDgwKTsK
KyAgICAgICAgICAgIGFkZEdyYWRpZW50Q29sb3JTdG9wcyhncmFkaWVudCkKKyAgICAgICAgICAg
IHJldHVybiBncmFkaWVudDsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZmlsbENhbnZhc1dpdGhH
cmFkaWVudCgiYzQiLCAoY3R4KSA9PiB7CisgICAgICAgICAgICBjb25zdCBncmFkaWVudCA9IGN0
eC5jcmVhdGVDb25pY0dyYWRpZW50KDAsIDgwLCA4MCk7CisgICAgICAgICAgICBhZGRHcmFkaWVu
dENvbG9yU3RvcHMoZ3JhZGllbnQpCisgICAgICAgICAgICByZXR1cm4gZ3JhZGllbnQ7CisgICAg
ICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwt
YW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50
L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGIwMGFhYjE0YTBhNTBkYjk5ZDM2NjAzZWZiZjRiMTQ4ZjVmNDE1ODkuLmJkMzY0NmJlNmY5
YTZjZWNiNGM4NWJjMjQzMzc2ZjczZmYwMjgzY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFu
ZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNvbmljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1l
bnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5jb25pYy1leHBlY3RlZC50eHQK
QEAgLTQsNSArNCw1IEBAIEFjdHVhbCBvdXRwdXQ6CiBFeHBlY3RlZCBvdXRwdXQ6CiAKIAotRkFJ
TCBDb25pYyBncmFkaWVudCBmdW5jdGlvbiBleGlzdHMgY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQg
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAnY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQoMCwgMCwgMjUp
JywgJ2N0eC5jcmVhdGVDb25pY0dyYWRpZW50JyBpcyB1bmRlZmluZWQpCitQQVNTIENvbmljIGdy
YWRpZW50IGZ1bmN0aW9uIGV4aXN0cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3JlY29yZGluZy1odG1sLTJkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLWh0bWwtMmQtZXhwZWN0ZWQudHh0CmluZGV4IGI0ZWI4
MmM2ZWQzMWQyZGY1NzgzMDAwZjFmMzQxODYxMjU5NTE1MjguLmVkMGEzNGQ4YTI3NjMwMjAxOTRi
MTE5ZmY2MGU4NDNkN2M4ZmNjODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVjb3JkaW5nLWh0bWwtMmQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLWh0bWwtMmQtZXhwZWN0ZWQudHh0CkBAIC0xMjgsNiAr
MTI4LDcgQEAgbGV0IGZyYW1lcyA9IFsKICAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSBvYmpl
Y3RzWzRdOwogICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9IG9iamVjdHNbNV07CiAgICAgICAg
IGNvbnRleHQuZmlsbFN0eWxlID0gb2JqZWN0c1s2XTsKKyAgICAgICAgY29udGV4dC5maWxsU3R5
bGUgPSBvYmplY3RzWzddOwogICAgIH0sCiAgICAgZnVuY3Rpb24gZnJhbWUyKCkgewogICAgICAg
ICBjb250ZXh0LmJlZ2luUGF0aCgpOwpAQCAtMTM2LDE5ICsxMzcsMTkgQEAgbGV0IGZyYW1lcyA9
IFsKICAgICAgICAgY29udGV4dC5tb3ZlVG8oMSwgMik7CiAgICAgfSwKICAgICBmdW5jdGlvbiBm
cmFtZTQoKSB7Ci0gICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKG9iamVjdHNbN10sIDExLCAxMik7
CisgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKG9iamVjdHNbOF0sIDExLCAxMik7CiAgICAgfSwK
ICAgICBmdW5jdGlvbiBmcmFtZTUoKSB7Ci0gICAgICAgIGNvbnRleHQuY3JlYXRlSW1hZ2VEYXRh
KG9iamVjdHNbOF0pOworICAgICAgICBjb250ZXh0LmNyZWF0ZUltYWdlRGF0YShvYmplY3RzWzld
KTsKICAgICB9LAogICAgIGZ1bmN0aW9uIGZyYW1lNigpIHsKLSAgICAgICAgY29udGV4dC5kcmF3
SW1hZ2Uob2JqZWN0c1s5XSwgMTEsIDEyKTsKKyAgICAgICAgY29udGV4dC5kcmF3SW1hZ2Uob2Jq
ZWN0c1sxMF0sIDExLCAxMik7CiAgICAgfSwKICAgICBmdW5jdGlvbiBmcmFtZTcoKSB7Ci0gICAg
ICAgIGNvbnRleHQuc2V0VHJhbnNmb3JtKG9iamVjdHNbMTBdKTsKKyAgICAgICAgY29udGV4dC5z
ZXRUcmFuc2Zvcm0ob2JqZWN0c1sxMV0pOwogICAgIH0sCiAgICAgZnVuY3Rpb24gZnJhbWU4KCkg
ewotICAgICAgICAvLyBjb250ZXh0LmRyYXdGb2N1c0lmTmVlZGVkKG9iamVjdHNbMTFdLCAiRWxl
bWVudCIpOworICAgICAgICAvLyBjb250ZXh0LmRyYXdGb2N1c0lmTmVlZGVkKG9iamVjdHNbMTJd
LCAiRWxlbWVudCIpOwogICAgIH0sCiAgICAgZnVuY3Rpb24gc3RvcFJlY29yZGluZygpIHsKICAg
ICAgICAgaWYgKHR5cGVvZiBjb25zb2xlLnJlY29yZEVuZCA9PT0gImZ1bmN0aW9uIikKQEAgLTE2
MCw4ICsxNjEsMTAgQEAgZnVuY3Rpb24gcmVidWlsZENhbnZhc0dyYWRpZW50KGtleSwgZGF0YSkg
ewogICAgIGxldCBncmFkaWVudCA9IG51bGw7CiAgICAgaWYgKGRhdGEudHlwZSA9PT0gInJhZGlh
bC1ncmFkaWVudCIpCiAgICAgICAgIGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFk
aWVudChkYXRhLnBvaW50c1swXSwgZGF0YS5wb2ludHNbMV0sIGRhdGEucG9pbnRzWzJdLCBkYXRh
LnBvaW50c1szXSwgZGF0YS5wb2ludHNbNF0sIGRhdGEucG9pbnRzWzVdKTsKLSAgICBlbHNlCisg
ICAgZWxzZSBpZiAoZGF0YS50eXBlID09PSAibGluZWFyLWdyYWRpZW50IikKICAgICAgICAgZ3Jh
ZGllbnQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KGRhdGEucG9pbnRzWzBdLCBkYXRh
LnBvaW50c1sxXSwgZGF0YS5wb2ludHNbMl0sIGRhdGEucG9pbnRzWzNdKTsKKyAgICBlbHNlCisg
ICAgICAgIGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVDb25pY0dyYWRpZW50KGRhdGEucG9pbnRz
WzBdLCBkYXRhLnBvaW50c1sxXSwgZGF0YS5wb2ludHNbMl0pOwogICAgIGZvciAobGV0IHN0b3Ag
b2YgZGF0YS5zdG9wcykKICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKHN0b3Aub2Zmc2V0
LCBzdG9wLmNvbG9yKTsKICAgICBvYmplY3RzW2tleV0gPSBncmFkaWVudDsKQEAgLTIyMCwxMiAr
MjIzLDEzIEBAIHJlYnVpbGRQYXRoMkQoMiwgIiIpOwogcmVidWlsZFBhdGgyRCgzLCAiIik7CiBy
ZWJ1aWxkQ2FudmFzR3JhZGllbnQoNCwgeyJ0eXBlIjoibGluZWFyLWdyYWRpZW50IiwicG9pbnRz
IjpbMSwyLDMsNF0sInN0b3BzIjpbeyJvZmZzZXQiOjEsImNvbG9yIjoicmdiKDI1NSwgMCwgMCki
fSx7Im9mZnNldCI6MSwiY29sb3IiOiJyZ2IoMCwgMCwgMjU1KSJ9XX0pOwogcmVidWlsZENhbnZh
c0dyYWRpZW50KDUsIHsidHlwZSI6InJhZGlhbC1ncmFkaWVudCIsInBvaW50cyI6WzEsMiwzLDQs
NSw2XSwic3RvcHMiOltdfSk7Ci1yZWJ1aWxkQ2FudmFzUGF0dGVybig2LCB7ImltYWdlIjo8Zmls
dGVyZWQ+LCJyZXBlYXQiOiJuby1yZXBlYXQifSk7Ci1yZWJ1aWxkSW1hZ2UoNywgPGZpbHRlcmVk
Pik7Ci1yZWJ1aWxkSW1hZ2VEYXRhKDgsIHsiZGF0YSI6WzAsMCwwLDAsMCwwLDAsMF0sIndpZHRo
IjoxLCJoZWlnaHQiOjJ9KTsKLXJlYnVpbGRJbWFnZUJpdG1hcCg5LCA8ZmlsdGVyZWQ+KTsKLXJl
YnVpbGRET01NYXRyaXgoMTAsICJtYXRyaXgoMSwgMiwgMywgNCwgNSwgNikiKTsKLXJlYnVpbGRQ
YXRoMkQoMTEsICJNMSAyIik7CityZWJ1aWxkQ2FudmFzR3JhZGllbnQoNiwgeyJ0eXBlIjoiY29u
aWMtZ3JhZGllbnQiLCJwb2ludHMiOlsyLDMsMV0sInN0b3BzIjpbeyJvZmZzZXQiOjEsImNvbG9y
IjoicmdiKDAsIDEyOCwgMCkifV19KTsKK3JlYnVpbGRDYW52YXNQYXR0ZXJuKDcsIHsiaW1hZ2Ui
OjxmaWx0ZXJlZD4sInJlcGVhdCI6Im5vLXJlcGVhdCJ9KTsKK3JlYnVpbGRJbWFnZSg4LCA8Zmls
dGVyZWQ+KTsKK3JlYnVpbGRJbWFnZURhdGEoOSwgeyJkYXRhIjpbMCwwLDAsMCwwLDAsMCwwXSwi
d2lkdGgiOjEsImhlaWdodCI6Mn0pOworcmVidWlsZEltYWdlQml0bWFwKDEwLCA8ZmlsdGVyZWQ+
KTsKK3JlYnVpbGRET01NYXRyaXgoMTEsICJtYXRyaXgoMSwgMiwgMywgNCwgNSwgNikiKTsKK3Jl
YnVpbGRQYXRoMkQoMTIsICJNMSAyIik7CiAKIFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKGZ1
bmN0aW9uKCkgewogICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24gZXhl
Y3V0ZUZyYW1lKCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZWNvcmRpbmctaHRtbC0yZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNv
cmRpbmctaHRtbC0yZC5odG1sCmluZGV4IDM0ZTVhZmY0MDFkNzcyOTZkNTg1MDQ5NmJmZTQ5ODIz
Y2ExMjAyMTkuLjJiMDJkZmE3ZjViYzg3ZDZkYThiNzBkOGI0ODJiMmJlYmNiNzE3ZTUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLWh0bWwtMmQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy1odG1sLTJkLmh0
bWwKQEAgLTE4LDYgKzE4LDggQEAgbGV0IGxpbmVhckdyYWRpZW50ID0gbnVsbDsKIAogbGV0IHJh
ZGlhbEdyYWRpZW50ID0gbnVsbDsKIAorbGV0IGNvbmljR3JhZGllbnQgPSBudWxsOworCiBsZXQg
cGF0dGVybiA9IG51bGw7CiAKIGxldCBwYXRoMkQgPSBuZXcgUGF0aDJEKCJNIDEgMiIpOwpAQCAt
MzUsNiArMzcsOSBAQCBhc3luYyBmdW5jdGlvbiBsb2FkKCkgewogICAgIHJhZGlhbEdyYWRpZW50
ID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudCgxLCAyLCAzLCA0LCA1LCA2KTsKICAgICBs
aW5lYXJHcmFkaWVudC5hZGRDb2xvclN0b3AoMSwgImJsdWUiKTsKIAorICAgIGNvbmljR3JhZGll
bnQgPSBjb250ZXh0LmNyZWF0ZUNvbmljR3JhZGllbnQoMSwgMiwgMyk7CisgICAgY29uaWNHcmFk
aWVudC5hZGRDb2xvclN0b3AoMSwgImdyZWVuIik7CisKICAgICBwYXR0ZXJuID0gY29udGV4dC5j
cmVhdGVQYXR0ZXJuKGltYWdlLCAibm8tcmVwZWF0Iik7CiAKICAgICBpbWFnZUJpdG1hcCA9IGF3
YWl0IGNyZWF0ZUltYWdlQml0bWFwKGltYWdlKTsKQEAgLTc0LDYgKzc5LDcgQEAgZnVuY3Rpb24g
cGVyZm9ybUFjdGlvbnMoKSB7CiAgICAgICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICJ0ZXN0
IjsKICAgICAgICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gbGluZWFyR3JhZGllbnQ7CiAgICAg
ICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9IHJhZGlhbEdyYWRpZW50OworICAgICAgICAgICAg
Y29udGV4dC5maWxsU3R5bGUgPSBjb25pY0dyYWRpZW50OwogICAgICAgICAgICAgY29udGV4dC5m
aWxsU3R5bGUgPSBwYXR0ZXJuOwogICAgICAgICB9LAogICAgICAgICAoKSA9PiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428402</attachid>
            <date>2021-05-12 12:42:31 -0700</date>
            <delta_ts>2021-05-12 16:24:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225539-20210512124230.patch</filename>
            <type>text/plain</type>
            <size>25955</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3Mzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzMxNDlmZDdlYWVkYTZk
ODM1MGQ1ZDY4YjFiMzU4NjVmY2U1NjQ2YS4uODBjYWM0NDBmM2ExNWZlMjBmNzQ0NjQ1YjdhNjNi
YzQxNThkZGIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTEyICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3JlYXRlQ29uaWNHcmFkaWVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NTM5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvcG9zYWwgZG9jdW1lbnQ6CisgICAg
ICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vZnNlcmIvY2FudmFzMkQvYmxvYi9tYXN0ZXIvc3Bl
Yy9jb25pYy1ncmFkaWVudC5tZAorCisgICAgICAgIE1ETiBkb2N1bWVudGF0aW9uOgorICAgICAg
ICAgICAgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC9jcmVhdGVDb25pY0dyYWRpZW50CisKKyAgICAgICAgVGVz
dHM6IGZhc3QvY2FudmFzL2NhbnZhcy1jb25pYy1ncmFkaWVudC1hbmdsZS5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtY2VudGVyLmh0bWwKKwor
ICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc0ZpbGxTdHJva2VTdHlsZXMuaWRsOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc0dyYWRpZW50OjpDYW52YXNHcmFkaWVudCk6CisgICAgICAgIChXZWJDb3JlOjptX2NhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNHcmFkaWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Y3JlYXRlQ29uaWNHcmFkaWVudCk6CisgICAgICAgICog
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oOgorCiAyMDIxLTA1LTEy
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhTG9hZGluZ0ZhaWxlZEZhdGFsbHkoKSBkb2VzIGRpcmVjdCBkaXNwYXRjaCBv
ZiBldmVudHM7IHNob3VsZCBlbnF1ZXVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBkZjA1
MGUxNmRjMzA3NWVhZDJkMmE2ODAxOWYwMjE1ODQ2YjQ5NjE4Li40ODJkMDZhMjJkZWRmYTIzNDYz
ZTY0NGE2YjFiOTExNjFhMDFlMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAyMS0wNS0xMiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNyZWF0ZUNvbmlj
R3JhZGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNTUzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qczoKKyAgICAgICAgKFdJLlJl
Y29yZGluZy5wcm90b3R5cGUuYXN5bmMgc3dpenpsZSk6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9SZWNvcmRpbmdBY3Rpb25UcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdJLlJlY29y
ZGluZ0FjdGlvblRyZWVFbGVtZW50Ll9jbGFzc05hbWVGb3JBY3Rpb24pOgorCiAyMDIxLTA1LTEw
ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOZXR3b3JrOiByZW5hbWUgIlhIUiIgdG8gIlhIUi9GZXRjaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0ZpbGxTdHJva2VTdHlsZXMuaWRsIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzRmlsbFN0cm9rZVN0eWxlcy5pZGwKaW5kZXgg
YWYwMGYxODg5YzcxNjlhN2E2NWQ3ODliOWEwMTk3MDI1ODg0M2ZjOS4uNjFlNDA4N2U0MjAyZjkx
YzM3NTUzOWJhODU4YmNiYTM1MTZjMWI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzRmlsbFN0cm9rZVN0eWxlcy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzRmlsbFN0cm9rZVN0eWxlcy5pZGwKQEAgLTQyLDggKzQyLDggQEAg
aW50ZXJmYWNlIG1peGluIENhbnZhc0ZpbGxTdHJva2VTdHlsZXMgewogICAgIGF0dHJpYnV0ZSAo
RE9NU3RyaW5nIG9yIENhbnZhc0dyYWRpZW50IG9yIENhbnZhc1BhdHRlcm4pIHN0cm9rZVN0eWxl
OyAvLyAoZGVmYXVsdCBibGFjaykKICAgICBhdHRyaWJ1dGUgKERPTVN0cmluZyBvciBDYW52YXNH
cmFkaWVudCBvciBDYW52YXNQYXR0ZXJuKSBmaWxsU3R5bGU7IC8vIChkZWZhdWx0IGJsYWNrKQog
Ci0gICAgLy8gRklYTUU6IEFsbCB0aGUgZmxvYXQgcGFyYW1ldGVycyBiZWxvdyBzaG91bGQgYmUg
ZG91Ymxlcy4KLSAgICBDYW52YXNHcmFkaWVudCBjcmVhdGVMaW5lYXJHcmFkaWVudChmbG9hdCB4
MCwgZmxvYXQgeTAsIGZsb2F0IHgxLCBmbG9hdCB5MSk7Ci0gICAgQ2FudmFzR3JhZGllbnQgY3Jl
YXRlUmFkaWFsR3JhZGllbnQoZmxvYXQgeDAsIGZsb2F0IHkwLCBmbG9hdCByMCwgZmxvYXQgeDEs
IGZsb2F0IHkxLCBmbG9hdCByMSk7CisgICAgQ2FudmFzR3JhZGllbnQgY3JlYXRlTGluZWFyR3Jh
ZGllbnQodW5yZXN0cmljdGVkIGRvdWJsZSB4MCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5MCwgdW5y
ZXN0cmljdGVkIGRvdWJsZSB4MSwgdW5yZXN0cmljdGVkIGRvdWJsZSB5MSk7CisgICAgQ2FudmFz
R3JhZGllbnQgY3JlYXRlUmFkaWFsR3JhZGllbnQodW5yZXN0cmljdGVkIGRvdWJsZSB4MCwgdW5y
ZXN0cmljdGVkIGRvdWJsZSB5MCwgdW5yZXN0cmljdGVkIGRvdWJsZSByMCwgdW5yZXN0cmljdGVk
IGRvdWJsZSB4MSwgdW5yZXN0cmljdGVkIGRvdWJsZSB5MSwgdW5yZXN0cmljdGVkIGRvdWJsZSBy
MSk7CisgICAgQ2FudmFzR3JhZGllbnQgY3JlYXRlQ29uaWNHcmFkaWVudCh1bnJlc3RyaWN0ZWQg
ZG91YmxlIGFuZ2xlLCB1bnJlc3RyaWN0ZWQgZG91YmxlIHgsIHVucmVzdHJpY3RlZCBkb3VibGUg
eSk7CiAgICAgQ2FudmFzUGF0dGVybj8gY3JlYXRlUGF0dGVybihDYW52YXNJbWFnZVNvdXJjZSBp
bWFnZSwgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBET01TdHJpbmcgcmVwZXRpdGlvbik7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuY3BwCmluZGV4
IDc1ZTRhZTEyOWY3MmNjYTZmNGQ1YmY2NjdjNTI0NzliNzI3MGI4OGEuLjk4MTJmMzAwNjhlZjZh
YTY4OWM1NmYyODA2ZDhiZDlmYmY2Y2E2MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNHcmFkaWVudC5jcHAKQEAgLTQ1LDYgKzQ1LDEyIEBAIENhbnZhc0dyYWRpZW50
OjpDYW52YXNHcmFkaWVudChjb25zdCBGbG9hdFBvaW50JiBwMCwgZmxvYXQgcjAsIGNvbnN0IEZs
b2F0UG9pbnQmCiB7CiB9CiAKK0NhbnZhc0dyYWRpZW50OjpDYW52YXNHcmFkaWVudChjb25zdCBG
bG9hdFBvaW50JiBjZW50ZXJQb2ludCwgZmxvYXQgYW5nbGVJblJhZGlhbnMsIENhbnZhc0Jhc2Um
IGNhbnZhc0Jhc2UpCisgICAgOiBtX2dyYWRpZW50KEdyYWRpZW50OjpjcmVhdGUoR3JhZGllbnQ6
OkNvbmljRGF0YSB7IGNlbnRlclBvaW50LCBhbmdsZUluUmFkaWFucyB9KSkKKyAgICAsIG1fY2Fu
dmFzKGNhbnZhc0Jhc2UpCit7Cit9CisKIFJlZjxDYW52YXNHcmFkaWVudD4gQ2FudmFzR3JhZGll
bnQ6OmNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiBwMCwgY29uc3QgRmxvYXRQb2ludCYgcDEsIENh
bnZhc0Jhc2UmIGNhbnZhc0Jhc2UpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2FudmFz
R3JhZGllbnQocDAsIHAxLCBjYW52YXNCYXNlKSk7CkBAIC01NSw2ICs2MSwxMSBAQCBSZWY8Q2Fu
dmFzR3JhZGllbnQ+IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoY29uc3QgRmxvYXRQb2ludCYgcDAs
IGZsb2F0IHIwLCBjb25zdAogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENhbnZhc0dyYWRpZW50
KHAwLCByMCwgcDEsIHIxLCBjYW52YXNCYXNlKSk7CiB9CiAKK1JlZjxDYW52YXNHcmFkaWVudD4g
Q2FudmFzR3JhZGllbnQ6OmNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiBjZW50ZXJQb2ludCwgZmxv
YXQgYW5nbGVJblJhZGlhbnMsIENhbnZhc0Jhc2UmIGNhbnZhc0Jhc2UpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ2FudmFzR3JhZGllbnQoY2VudGVyUG9pbnQsIGFuZ2xlSW5SYWRpYW5z
LCBjYW52YXNCYXNlKSk7Cit9CisKIENhbnZhc0dyYWRpZW50Ojp+Q2FudmFzR3JhZGllbnQoKSA9
IGRlZmF1bHQ7CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc0dyYWRpZW50OjphZGRDb2xvclN0
b3AoZmxvYXQgdmFsdWUsIGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaAppbmRleCBhMjE1ZjE0MWVjYmVlZTMxNzg5
N2ZlYzRkNGQ2MmFiMWRmMzQ1OTU4Li5mNmJmNTMzMTVlMjI5ZWU1ZjQ2NjM1NjVkYjA2ZTUwMWNk
NTc0OGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNHcmFk
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmgK
QEAgLTM4LDYgKzM4LDcgQEAgY2xhc3MgQ2FudmFzR3JhZGllbnQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxDYW52YXNHcmFkaWVudD4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8Q2FudmFzR3JhZGll
bnQ+IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiBwMCwgY29uc3QgRmxvYXRQb2ludCYgcDEsIENh
bnZhc0Jhc2UmKTsKICAgICBzdGF0aWMgUmVmPENhbnZhc0dyYWRpZW50PiBjcmVhdGUoY29uc3Qg
RmxvYXRQb2ludCYgcDAsIGZsb2F0IHIwLCBjb25zdCBGbG9hdFBvaW50JiBwMSwgZmxvYXQgcjEs
IENhbnZhc0Jhc2UmKTsKKyAgICBzdGF0aWMgUmVmPENhbnZhc0dyYWRpZW50PiBjcmVhdGUoY29u
c3QgRmxvYXRQb2ludCYgY2VudGVyUG9pbnQsIGZsb2F0IGFuZ2xlSW5SYWRpYW5zLCBDYW52YXNC
YXNlJik7CiAgICAgfkNhbnZhc0dyYWRpZW50KCk7CiAKICAgICBHcmFkaWVudCYgZ3JhZGllbnQo
KSB7IHJldHVybiBtX2dyYWRpZW50OyB9CkBAIC00OCw2ICs0OSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgQ2FudmFzR3JhZGllbnQoY29uc3QgRmxvYXRQb2ludCYgcDAsIGNvbnN0IEZsb2F0
UG9pbnQmIHAxLCBDYW52YXNCYXNlJik7CiAgICAgQ2FudmFzR3JhZGllbnQoY29uc3QgRmxvYXRQ
b2ludCYgcDAsIGZsb2F0IHIwLCBjb25zdCBGbG9hdFBvaW50JiBwMSwgZmxvYXQgcjEsIENhbnZh
c0Jhc2UmKTsKKyAgICBDYW52YXNHcmFkaWVudChjb25zdCBGbG9hdFBvaW50JiBjZW50ZXJQb2lu
dCwgZmxvYXQgYW5nbGVJblJhZGlhbnMsIENhbnZhc0Jhc2UmKTsKIAogICAgIFJlZjxHcmFkaWVu
dD4gbV9ncmFkaWVudDsKICAgICBDYW52YXNCYXNlJiBtX2NhbnZhczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHAKaW5kZXggYTk3ZmRjOTMwZjk2Y2E0N2ExMWMwMDJjMzg1OTM5NzM4NDQ4ZTM3My4uMmI2
YzM3NmFiNTM4NjczYTc5NzQzNTk2NDJlYjA2N2I1ZjI1YTdhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHAKQEAgLTE5NTAsNiArMTk1MCwxNCBAQCBFeGNlcHRpb25PcjxSZWY8Q2FudmFzR3JhZGll
bnQ+PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjcmVhdGVSYWRpYWxHcmFkaQogICAg
IHJldHVybiBDYW52YXNHcmFkaWVudDo6Y3JlYXRlKEZsb2F0UG9pbnQoeDAsIHkwKSwgcjAsIEZs
b2F0UG9pbnQoeDEsIHkxKSwgcjEsIGNhbnZhc0Jhc2UoKSk7CiB9CiAKK0V4Y2VwdGlvbk9yPFJl
ZjxDYW52YXNHcmFkaWVudD4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNyZWF0ZUNv
bmljR3JhZGllbnQoZmxvYXQgYW5nbGVJblJhZGlhbnMsIGZsb2F0IHgsIGZsb2F0IHkpCit7Cisg
ICAgaWYgKCFzdGQ6OmlzZmluaXRlKGFuZ2xlSW5SYWRpYW5zKSB8fCAhc3RkOjppc2Zpbml0ZSh4
KSB8fCAhc3RkOjppc2Zpbml0ZSh5KSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1
cHBvcnRlZEVycm9yIH07CisKKyAgICByZXR1cm4gQ2FudmFzR3JhZGllbnQ6OmNyZWF0ZShGbG9h
dFBvaW50KHgsIHkpLCBhbmdsZUluUmFkaWFucywgY2FudmFzQmFzZSgpKTsKK30KKwogRXhjZXB0
aW9uT3I8UmVmUHRyPENhbnZhc1BhdHRlcm4+PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNl
OjpjcmVhdGVQYXR0ZXJuKENhbnZhc0ltYWdlU291cmNlJiYgaW1hZ2UsIGNvbnN0IFN0cmluZyYg
cmVwZXRpdGlvbikKIHsKICAgICBib29sIHJlcGVhdFgsIHJlcGVhdFk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNl
LmgKaW5kZXggZDNmYzY2MTdmNjM4OWU4MWM5OWU5MzVkNjViODE1OTYxZDhjOWZhZS4uYTNkY2Zj
MmY1YTU3MmEwNDM5ZjQyYTIyMDE3ZjRlZWJkOThiNThiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaApA
QCAtMTg2LDYgKzE4Niw3IEBAIHB1YmxpYzoKIAogICAgIEV4Y2VwdGlvbk9yPFJlZjxDYW52YXNH
cmFkaWVudD4+IGNyZWF0ZUxpbmVhckdyYWRpZW50KGZsb2F0IHgwLCBmbG9hdCB5MCwgZmxvYXQg
eDEsIGZsb2F0IHkxKTsKICAgICBFeGNlcHRpb25PcjxSZWY8Q2FudmFzR3JhZGllbnQ+PiBjcmVh
dGVSYWRpYWxHcmFkaWVudChmbG9hdCB4MCwgZmxvYXQgeTAsIGZsb2F0IHIwLCBmbG9hdCB4MSwg
ZmxvYXQgeTEsIGZsb2F0IHIxKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8Q2FudmFzR3JhZGllbnQ+
PiBjcmVhdGVDb25pY0dyYWRpZW50KGZsb2F0IGFuZ2xlSW5SYWRpYW5zLCBmbG9hdCB4LCBmbG9h
dCB5KTsKICAgICBFeGNlcHRpb25PcjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+IGNyZWF0ZVBhdHRl
cm4oQ2FudmFzSW1hZ2VTb3VyY2UmJiwgY29uc3QgU3RyaW5nJiByZXBldGl0aW9uKTsKIAogICAg
IFJlZlB0cjxJbWFnZURhdGE+IGNyZWF0ZUltYWdlRGF0YShJbWFnZURhdGEmKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRp
dmVGdW5jdGlvblBhcmFtZXRlcnMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzCmluZGV4IDliNjFhMDBlMTg4
NmQyODlmNTZlOWFiZTUyOGZiOWUxMDJhMTljMjAuLmVlMjI4YmEwODdjYjMyOWNmNzM5Y2ZiZGMw
YTRlOGFjZDFjYjU3ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVy
cy5qcwpAQCAtNjQ2LDYgKzY0Niw3IEBAIFdJLk5hdGl2ZVByb3RvdHlwZUZ1bmN0aW9uUGFyYW1l
dGVycyA9IHsKICAgICAgICAgY2xlYXJSZWN0OiAieCwgeSwgd2lkdGgsIGhlaWdodCIsCiAgICAg
ICAgIGNsaXA6ICJwYXRoLCBbd2luZGluZ10iLAogICAgICAgICBjcmVhdGVJbWFnZURhdGE6ICJp
bWFnZWRhdGEiLAorICAgICAgICBjcmVhdGVDb25pY0dyYWRpZW50OiAiYW5nbGUsIHgsIHkiLAog
ICAgICAgICBjcmVhdGVMaW5lYXJHcmFkaWVudDogIngwLCB5MCwgeDEsIHkxIiwKICAgICAgICAg
Y3JlYXRlUGF0dGVybjogImNhbnZhcywgcmVwZXRpdGlvblR5cGUiLAogICAgICAgICBjcmVhdGVS
YWRpYWxHcmFkaWVudDogIngwLCB5MCwgcjAsIHgxLCB5MSwgcjEiLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMKaW5k
ZXggOTc1ZDg5YjUzYTBlZTA0NTE2NWRhMmFjYmUxMGM0OTE3OGQzMWU5ZC4uNjA0YTk5ZTVjOGM5
OTFiMDAzNjc2Y2U2OGE5ODk1MzEyODM5NDkzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzCkBAIC00MDgsNyAr
NDA4LDEyIEBAIFdJLlJlY29yZGluZyA9IGNsYXNzIFJlY29yZGluZyBleHRlbmRzIFdJLk9iamVj
dAogICAgICAgICAgICAgICAgICAgICBwb2ludHMgPSBhd2FpdCBQcm9taXNlLmFsbChwb2ludHMu
bWFwKChpdGVtKSA9PiB0aGlzLnN3aXp6bGUoaXRlbSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuTnVt
YmVyKSkpOwogCiAgICAgICAgICAgICAgICAgICAgIFdJLkltYWdlVXRpbGl0aWVzLnNjcmF0Y2hD
YW52YXNDb250ZXh0MkQoKGNvbnRleHQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRo
aXMuX3N3aXp6bGVbaW5kZXhdW3R5cGVdID0gZ3JhZGllbnRUeXBlID09PSAicmFkaWFsLWdyYWRp
ZW50IiA/IGNvbnRleHQuY3JlYXRlUmFkaWFsR3JhZGllbnQoLi4ucG9pbnRzKSA6IGNvbnRleHQu
Y3JlYXRlTGluZWFyR3JhZGllbnQoLi4ucG9pbnRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChncmFkaWVudFR5cGUgPT0gInJhZGlhbC1ncmFkaWVudCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fc3dpenpsZVtpbmRleF1bdHlwZV0gPSBjb250ZXh0LmNyZWF0ZVJh
ZGlhbEdyYWRpZW50KC4uLnBvaW50cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlm
IChncmFkaWVudFR5cGUgPT0gImxpbmVhci1ncmFkaWVudCIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fc3dpenpsZVtpbmRleF1bdHlwZV0gPSBjb250ZXh0LmNyZWF0ZUxpbmVh
ckdyYWRpZW50KC4uLnBvaW50cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3dpenpsZVtpbmRleF1bdHlwZV0gPSBjb250
ZXh0LmNyZWF0ZUNvbmljR3JhZGllbnQoLi4ucG9pbnRzKTsKICAgICAgICAgICAgICAgICAgICAg
fSk7CiAKICAgICAgICAgICAgICAgICAgICAgbGV0IHN0b3BzID0gW107CkBAIC02NjMsOCArNjY4
LDEwIEBAIFdJLlJlY29yZGluZyA9IGNsYXNzIFJlY29yZGluZyBleHRlbmRzIFdJLk9iamVjdAog
ICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgICBsZXQgZ3JhZGllbnQgPSBudWxsO2ApOwog
ICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgICBpZiAoZGF0YS50eXBlID09PSAicmFkaWFs
LWdyYWRpZW50IilgKTsKICAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgICAgIGdyYWRp
ZW50ID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChkYXRhLnBvaW50c1swXSwgZGF0YS5w
b2ludHNbMV0sIGRhdGEucG9pbnRzWzJdLCBkYXRhLnBvaW50c1szXSwgZGF0YS5wb2ludHNbNF0s
IGRhdGEucG9pbnRzWzVdKTtgKTsKLSAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgZWxz
ZWApOworICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgICBlbHNlIGlmIChkYXRhLnR5cGUg
PT09ICJsaW5lYXItZ3JhZGllbnQiKWApOwogICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goYCAg
ICAgICAgZ3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KGRhdGEucG9pbnRz
WzBdLCBkYXRhLnBvaW50c1sxXSwgZGF0YS5wb2ludHNbMl0sIGRhdGEucG9pbnRzWzNdKTtgKTsK
KyAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgZWxzZWApOworICAgICAgICAgICAgICAg
IGxpbmVzLnB1c2goYCAgICAgICAgZ3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZUNvbmljR3JhZGll
bnQoZGF0YS5wb2ludHNbMF0sIGRhdGEucG9pbnRzWzFdLCBkYXRhLnBvaW50c1syXSk7YCk7CiAg
ICAgICAgICAgICAgICAgbGluZXMucHVzaChgICAgIGZvciAobGV0IHN0b3Agb2YgZGF0YS5zdG9w
cylgKTsKICAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgICAgIGdyYWRpZW50LmFkZENv
bG9yU3RvcChzdG9wLm9mZnNldCwgc3RvcC5jb2xvcik7YCk7CiAgICAgICAgICAgICAgICAgbGlu
ZXMucHVzaChgICAgIG9iamVjdHNba2V5XSA9IGdyYWRpZW50O2ApOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQWN0aW9uVHJl
ZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9S
ZWNvcmRpbmdBY3Rpb25UcmVlRWxlbWVudC5qcwppbmRleCA4OTBiMTlmYjQ3ZWU1ZjNkNTE5MzM2
MmViNWU2YjdiMjhjMWY5ZGY0Li45MDU2NTU0MGU5ZDA2OGNhZmQ4YzdmMTVkOGVhOWQxMjMwMWY3
N2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9SZWNvcmRpbmdBY3Rpb25UcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdBY3Rpb25UcmVlRWxlbWVudC5qcwpAQCAt
MzMyLDYgKzMzMiw3IEBAIFdJLlJlY29yZGluZ0FjdGlvblRyZWVFbGVtZW50ID0gY2xhc3MgUmVj
b3JkaW5nQWN0aW9uVHJlZUVsZW1lbnQgZXh0ZW5kcyBXSS5HZW5lCiAgICAgICAgIGNhc2UgInNo
YWRvd09mZnNldFkiOgogICAgICAgICAgICAgcmV0dXJuICJzaGFkb3ciOwogCisgICAgICAgIGNh
c2UgImNyZWF0ZUNvbmljR3JhZGllbnQiOgogICAgICAgICBjYXNlICJjcmVhdGVMaW5lYXJHcmFk
aWVudCI6CiAgICAgICAgIGNhc2UgImNyZWF0ZVBhdHRlcm4iOgogICAgICAgICBjYXNlICJjcmVh
dGVSYWRpYWxHcmFkaWVudCI6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmM4YTcyMjVhN2U2NjFhOTIyYmFlNDc3YWM0YjQx
YTY1MzU1MTQwYy4uYzdiMWQ3ZDRkNzZjOGZlYjk0OGQyMTE4ODMzYWY1YmFhYWM0Y2Q0YSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA1LTEyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRA
YXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3JlYXRlQ29uaWNHcmFkaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI1NTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtYW5nbGUtZXhw
ZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLWNvbmljLWdy
YWRpZW50LWFuZ2xlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1j
b25pYy1ncmFkaWVudC1jZW50ZXItZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jYW52YXMvY2FudmFzLWNvbmljLWdyYWRpZW50LWNlbnRlci5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy1odG1sLTJkLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy1odG1sLTJkLmh0bWw6CisgICAgICAg
ICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDUtMTIgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZB
SUxFRDogbV9jbGllbnRzLmNvbnRhaW5zKCZjbGllbnQpIGluIENTU0ZvbnRGYWNlOjpyZW1vdmVD
bGllbnQgdmlhIENTU1NlZ21lbnRlZEZvbnRGYWNlOjp+Q1NTU2VnbWVudGVkRm9udEZhY2UoKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNjFiZDkyNzkxNWY0MmVhNTE2ZTJkZjY1
YTI1NTU3ZjgwZjVlYTE4Ni4uODFjNDczNmM4M2M3NWM3NDA3NmYzMDliZDJkNzhlZjlkNmIzOGY3
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEt
MDUtMTIgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcmVhdGVDb25pY0dyYWRpZW50CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU1MzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3Jh
ZGllbnQuY29uaWMtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA1LTEyICBTZXJnaW8gVmlsbGFyIFNl
bmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtZmxleGJveF0gRG8gbm90
IHVzZSBtYXJnaW5zIHdoZW4gY29tcHV0aW5nIGFzcGVjdCByYXRpbyBjcm9zcyBzaXplcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbmljLWdyYWRpZW50LWFu
Z2xlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29uaWMt
Z3JhZGllbnQtYW5nbGUtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWM1ZWIyMTBhOWIwYjMy
YmZjYWIzNzBlZjU5YjI4YWY3ZjU1MmNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLWNvbmljLWdyYWRpZW50LWFuZ2xlLWV4cGVjdGVkLmh0bWwKQEAg
LTAsMCArMSwyOCBAQAorPHN0eWxlPgorICAgIGNhbnZhcyB7CisgICAgICAgIGJvcmRlcjogMXB4
IHNvbGlkOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Y2FudmFzIGlkPSJjMSIgd2lk
dGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2FudmFzPgorICAgIDxjYW52YXMgaWQ9ImMyIiB3aWR0
aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52YXM+CisgICAgPGNhbnZhcyBpZD0iYzMiIHdpZHRo
PSIxMDAiIGhlaWdodD0iMTAwIj48L2NhbnZhcz4KKyAgICA8Y2FudmFzIGlkPSJjNCIgd2lkdGg9
IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2FudmFzPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0
aW9uIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcihjYW52YXNJZCwgeCwgeSwgd2lkdGgsIGhlaWdo
dCkgeworICAgICAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Y2FudmFzSWQpOworICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJk
Jyk7CisgICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gImJsYWNrIjsKKyAgICAgICAgICAgIGN0
eC5maWxsUmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgfQorCisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzEiLCA1MCwgIDAsIDUwLCA1MCk7CisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzEiLCAgMCwgNTAsIDUwLCA1MCk7CisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzIiLCAgMCwgIDAsIDUwLCA1MCk7CisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzIiLCA1MCwgNTAsIDUwLCA1MCk7CisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzMiLCAgMCwgNTAsIDUwLCA1MCk7CisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzMiLCA1MCwgIDAsIDUwLCA1MCk7CisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzQiLCAgMCwgIDAsIDUwLCA1MCk7CisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzQiLCA1MCwgNTAsIDUwLCA1MCk7CisgICAgPC9zY3Jp
cHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMt
Y29uaWMtZ3JhZGllbnQtYW5nbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZh
cy1jb25pYy1ncmFkaWVudC1hbmdsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzNGQzNDE3MzMwYTllNGE3
ZTcwZWJiM2FhMzdhYTJlMWVjNGUxNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtYW5nbGUuaHRtbApAQCAtMCwwICsxLDM0
IEBACis8c3R5bGU+CisgICAgY2FudmFzIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7Cisg
ICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxjYW52YXMgaWQ9ImMxIiB3aWR0aD0iMTAwIiBo
ZWlnaHQ9IjEwMCI+PC9jYW52YXM+CisgICAgPGNhbnZhcyBpZD0iYzIiIHdpZHRoPSIxMDAiIGhl
aWdodD0iMTAwIj48L2NhbnZhcz4KKyAgICA8Y2FudmFzIGlkPSJjMyIgd2lkdGg9IjEwMCIgaGVp
Z2h0PSIxMDAiPjwvY2FudmFzPgorICAgIDxjYW52YXMgaWQ9ImM0IiB3aWR0aD0iMTAwIiBoZWln
aHQ9IjEwMCI+PC9jYW52YXM+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gZmlsbENh
bnZhc1dpdGhDb25pY0dyYWRpZW50KGNhbnZhc0lkLCBhbmdsZSwgeCwgeSkgeworICAgICAgICAg
ICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY2FudmFzSWQpOworICAg
ICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgICAgICAg
ICBjb25zdCBncmFkaWVudCA9IGN0eC5jcmVhdGVDb25pY0dyYWRpZW50KGFuZ2xlLCB4LCB5KTsK
KworICAgICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAsICJibGFjayIpOworICAgICAg
ICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuMjUsICJibGFjayIpOworICAgICAgICAgICAg
Z3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuMjUsICJ0cmFuc3BhcmVudCIpOworICAgICAgICAgICAg
Z3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuNSwgInRyYW5zcGFyZW50Iik7CisgICAgICAgICAgICBn
cmFkaWVudC5hZGRDb2xvclN0b3AoMC41LCAiYmxhY2siKTsKKyAgICAgICAgICAgIGdyYWRpZW50
LmFkZENvbG9yU3RvcCgwLjc1LCAiYmxhY2siKTsKKyAgICAgICAgICAgIGdyYWRpZW50LmFkZENv
bG9yU3RvcCgwLjc1LCAidHJhbnNwYXJlbnQiKTsKKworICAgICAgICAgICAgY3R4LmZpbGxTdHls
ZSA9IGdyYWRpZW50OworICAgICAgICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIDEwMCwgMTAwKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZpbGxDYW52YXNXaXRoQ29uaWNHcmFkaWVudCgiYzEiLCAw
LCA1MCwgNTApOworICAgICAgICBmaWxsQ2FudmFzV2l0aENvbmljR3JhZGllbnQoImMyIiwgTWF0
aC5QSSAvIDIsIDUwLCA1MCk7CisgICAgICAgIGZpbGxDYW52YXNXaXRoQ29uaWNHcmFkaWVudCgi
YzMiLCBNYXRoLlBJLCA1MCwgNTApOworICAgICAgICBmaWxsQ2FudmFzV2l0aENvbmljR3JhZGll
bnQoImM0IiwgTWF0aC5QSSAqIDMgLyAyLCA1MCwgNTApOworICAgIDwvc2NyaXB0PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbmljLWdyYWRp
ZW50LWNlbnRlci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LWNvbmljLWdyYWRpZW50LWNlbnRlci1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjODhmMTZi
OWFjNTFmZDY3Y2ViNjg5N2U2ZDc3OGVjMzkyMTMxYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtY2VudGVyLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPHN0eWxlPgorICAgIGNhbnZhcyB7CisgICAgICAgIGJv
cmRlcjogMXB4IHNvbGlkOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Y2FudmFzIGlk
PSJjMSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2FudmFzPgorICAgIDxjYW52YXMgaWQ9
ImMyIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52YXM+CisgICAgPGNhbnZhcyBpZD0i
YzMiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj48L2NhbnZhcz4KKyAgICA8Y2FudmFzIGlkPSJj
NCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2FudmFzPgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGZ1bmN0aW9uIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcihjYW52YXNJZCwgeCwgeSwgd2lk
dGgsIGhlaWdodCkgeworICAgICAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoY2FudmFzSWQpOworICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENv
bnRleHQoJzJkJyk7CisgICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gImJsYWNrIjsKKyAgICAg
ICAgICAgIGN0eC5maWxsUmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzEiLCAyMCwgIDAsIDgwLCAyMCk7Cisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzEiLCAgMCwgMjAsIDIwLCA4MCk7Cisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzIiLCA4MCwgIDAsIDIwLCAyMCk7Cisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzIiLCAgMCwgMjAsIDgwLCA4MCk7Cisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzMiLCAyMCwgIDAsIDgwLCA4MCk7Cisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzMiLCAgMCwgODAsIDIwLCAyMCk7Cisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzQiLCA4MCwgIDAsIDIwLCA4MCk7Cisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzQiLCAgMCwgODAsIDgwLCAyMCk7Cisg
ICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9jYW52YXMtY29uaWMtZ3JhZGllbnQtY2VudGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtY2VudGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBhZTUz
MjRiODMzNmU2OTBmODJkMTE0OTAzMDY5ZDA2ZjZmNzY5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb25pYy1ncmFkaWVudC1jZW50ZXIuaHRtbApA
QCAtMCwwICsxLDM0IEBACis8c3R5bGU+CisgICAgY2FudmFzIHsKKyAgICAgICAgYm9yZGVyOiAx
cHggc29saWQ7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxjYW52YXMgaWQ9ImMxIiB3
aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52YXM+CisgICAgPGNhbnZhcyBpZD0iYzIiIHdp
ZHRoPSIxMDAiIGhlaWdodD0iMTAwIj48L2NhbnZhcz4KKyAgICA8Y2FudmFzIGlkPSJjMyIgd2lk
dGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2FudmFzPgorICAgIDxjYW52YXMgaWQ9ImM0IiB3aWR0
aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52YXM+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVu
Y3Rpb24gZmlsbENhbnZhc1dpdGhDb25pY0dyYWRpZW50KGNhbnZhc0lkLCBhbmdsZSwgeCwgeSkg
eworICAgICAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY2Fu
dmFzSWQpOworICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7
CisgICAgICAgICAgICBjb25zdCBncmFkaWVudCA9IGN0eC5jcmVhdGVDb25pY0dyYWRpZW50KGFu
Z2xlLCB4LCB5KTsKKworICAgICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAsICJibGFj
ayIpOworICAgICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuMjUsICJibGFjayIpOwor
ICAgICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuMjUsICJ0cmFuc3BhcmVudCIpOwor
ICAgICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuNSwgInRyYW5zcGFyZW50Iik7Cisg
ICAgICAgICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMC41LCAiYmxhY2siKTsKKyAgICAgICAg
ICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgwLjc1LCAiYmxhY2siKTsKKyAgICAgICAgICAgIGdy
YWRpZW50LmFkZENvbG9yU3RvcCgwLjc1LCAidHJhbnNwYXJlbnQiKTsKKworICAgICAgICAgICAg
Y3R4LmZpbGxTdHlsZSA9IGdyYWRpZW50OworICAgICAgICAgICAgY3R4LmZpbGxSZWN0KDAsIDAs
IDEwMCwgMTAwKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbGxDYW52YXNXaXRoQ29uaWNHcmFk
aWVudCgiYzEiLCAwLCAyMCwgMjApOworICAgICAgICBmaWxsQ2FudmFzV2l0aENvbmljR3JhZGll
bnQoImMyIiwgMCwgODAsIDIwKTsKKyAgICAgICAgZmlsbENhbnZhc1dpdGhDb25pY0dyYWRpZW50
KCJjMyIsIDAsIDIwLCA4MCk7CisgICAgICAgIGZpbGxDYW52YXNXaXRoQ29uaWNHcmFkaWVudCgi
YzQiLCAwLCA4MCwgODApOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVt
ZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMtZXhwZWN0
ZWQudHh0CmluZGV4IGIwMGFhYjE0YTBhNTBkYjk5ZDM2NjAzZWZiZjRiMTQ4ZjVmNDE1ODkuLmJk
MzY0NmJlNmY5YTZjZWNiNGM4NWJjMjQzMzc2ZjczZmYwMjgzY2UgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVu
dC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNvbmljLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5jb25pYy1leHBl
Y3RlZC50eHQKQEAgLTQsNSArNCw1IEBAIEFjdHVhbCBvdXRwdXQ6CiBFeHBlY3RlZCBvdXRwdXQ6
CiAKIAotRkFJTCBDb25pYyBncmFkaWVudCBmdW5jdGlvbiBleGlzdHMgY3R4LmNyZWF0ZUNvbmlj
R3JhZGllbnQgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQo
MCwgMCwgMjUpJywgJ2N0eC5jcmVhdGVDb25pY0dyYWRpZW50JyBpcyB1bmRlZmluZWQpCitQQVNT
IENvbmljIGdyYWRpZW50IGZ1bmN0aW9uIGV4aXN0cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy1odG1sLTJkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLWh0bWwtMmQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGI0ZWI4MmM2ZWQzMWQyZGY1NzgzMDAwZjFmMzQxODYxMjU5NTE1MjguLmVkMGEzNGQ4YTI3
NjMwMjAxOTRiMTE5ZmY2MGU4NDNkN2M4ZmNjODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLWh0bWwtMmQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLWh0bWwtMmQtZXhwZWN0ZWQudHh0CkBA
IC0xMjgsNiArMTI4LDcgQEAgbGV0IGZyYW1lcyA9IFsKICAgICAgICAgY29udGV4dC5maWxsU3R5
bGUgPSBvYmplY3RzWzRdOwogICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9IG9iamVjdHNbNV07
CiAgICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gb2JqZWN0c1s2XTsKKyAgICAgICAgY29udGV4
dC5maWxsU3R5bGUgPSBvYmplY3RzWzddOwogICAgIH0sCiAgICAgZnVuY3Rpb24gZnJhbWUyKCkg
ewogICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpOwpAQCAtMTM2LDE5ICsxMzcsMTkgQEAgbGV0
IGZyYW1lcyA9IFsKICAgICAgICAgY29udGV4dC5tb3ZlVG8oMSwgMik7CiAgICAgfSwKICAgICBm
dW5jdGlvbiBmcmFtZTQoKSB7Ci0gICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKG9iamVjdHNbN10s
IDExLCAxMik7CisgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKG9iamVjdHNbOF0sIDExLCAxMik7
CiAgICAgfSwKICAgICBmdW5jdGlvbiBmcmFtZTUoKSB7Ci0gICAgICAgIGNvbnRleHQuY3JlYXRl
SW1hZ2VEYXRhKG9iamVjdHNbOF0pOworICAgICAgICBjb250ZXh0LmNyZWF0ZUltYWdlRGF0YShv
YmplY3RzWzldKTsKICAgICB9LAogICAgIGZ1bmN0aW9uIGZyYW1lNigpIHsKLSAgICAgICAgY29u
dGV4dC5kcmF3SW1hZ2Uob2JqZWN0c1s5XSwgMTEsIDEyKTsKKyAgICAgICAgY29udGV4dC5kcmF3
SW1hZ2Uob2JqZWN0c1sxMF0sIDExLCAxMik7CiAgICAgfSwKICAgICBmdW5jdGlvbiBmcmFtZTco
KSB7Ci0gICAgICAgIGNvbnRleHQuc2V0VHJhbnNmb3JtKG9iamVjdHNbMTBdKTsKKyAgICAgICAg
Y29udGV4dC5zZXRUcmFuc2Zvcm0ob2JqZWN0c1sxMV0pOwogICAgIH0sCiAgICAgZnVuY3Rpb24g
ZnJhbWU4KCkgewotICAgICAgICAvLyBjb250ZXh0LmRyYXdGb2N1c0lmTmVlZGVkKG9iamVjdHNb
MTFdLCAiRWxlbWVudCIpOworICAgICAgICAvLyBjb250ZXh0LmRyYXdGb2N1c0lmTmVlZGVkKG9i
amVjdHNbMTJdLCAiRWxlbWVudCIpOwogICAgIH0sCiAgICAgZnVuY3Rpb24gc3RvcFJlY29yZGlu
ZygpIHsKICAgICAgICAgaWYgKHR5cGVvZiBjb25zb2xlLnJlY29yZEVuZCA9PT0gImZ1bmN0aW9u
IikKQEAgLTE2MCw4ICsxNjEsMTAgQEAgZnVuY3Rpb24gcmVidWlsZENhbnZhc0dyYWRpZW50KGtl
eSwgZGF0YSkgewogICAgIGxldCBncmFkaWVudCA9IG51bGw7CiAgICAgaWYgKGRhdGEudHlwZSA9
PT0gInJhZGlhbC1ncmFkaWVudCIpCiAgICAgICAgIGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVS
YWRpYWxHcmFkaWVudChkYXRhLnBvaW50c1swXSwgZGF0YS5wb2ludHNbMV0sIGRhdGEucG9pbnRz
WzJdLCBkYXRhLnBvaW50c1szXSwgZGF0YS5wb2ludHNbNF0sIGRhdGEucG9pbnRzWzVdKTsKLSAg
ICBlbHNlCisgICAgZWxzZSBpZiAoZGF0YS50eXBlID09PSAibGluZWFyLWdyYWRpZW50IikKICAg
ICAgICAgZ3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KGRhdGEucG9pbnRz
WzBdLCBkYXRhLnBvaW50c1sxXSwgZGF0YS5wb2ludHNbMl0sIGRhdGEucG9pbnRzWzNdKTsKKyAg
ICBlbHNlCisgICAgICAgIGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVDb25pY0dyYWRpZW50KGRh
dGEucG9pbnRzWzBdLCBkYXRhLnBvaW50c1sxXSwgZGF0YS5wb2ludHNbMl0pOwogICAgIGZvciAo
bGV0IHN0b3Agb2YgZGF0YS5zdG9wcykKICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKHN0
b3Aub2Zmc2V0LCBzdG9wLmNvbG9yKTsKICAgICBvYmplY3RzW2tleV0gPSBncmFkaWVudDsKQEAg
LTIyMCwxMiArMjIzLDEzIEBAIHJlYnVpbGRQYXRoMkQoMiwgIiIpOwogcmVidWlsZFBhdGgyRCgz
LCAiIik7CiByZWJ1aWxkQ2FudmFzR3JhZGllbnQoNCwgeyJ0eXBlIjoibGluZWFyLWdyYWRpZW50
IiwicG9pbnRzIjpbMSwyLDMsNF0sInN0b3BzIjpbeyJvZmZzZXQiOjEsImNvbG9yIjoicmdiKDI1
NSwgMCwgMCkifSx7Im9mZnNldCI6MSwiY29sb3IiOiJyZ2IoMCwgMCwgMjU1KSJ9XX0pOwogcmVi
dWlsZENhbnZhc0dyYWRpZW50KDUsIHsidHlwZSI6InJhZGlhbC1ncmFkaWVudCIsInBvaW50cyI6
WzEsMiwzLDQsNSw2XSwic3RvcHMiOltdfSk7Ci1yZWJ1aWxkQ2FudmFzUGF0dGVybig2LCB7Imlt
YWdlIjo8ZmlsdGVyZWQ+LCJyZXBlYXQiOiJuby1yZXBlYXQifSk7Ci1yZWJ1aWxkSW1hZ2UoNywg
PGZpbHRlcmVkPik7Ci1yZWJ1aWxkSW1hZ2VEYXRhKDgsIHsiZGF0YSI6WzAsMCwwLDAsMCwwLDAs
MF0sIndpZHRoIjoxLCJoZWlnaHQiOjJ9KTsKLXJlYnVpbGRJbWFnZUJpdG1hcCg5LCA8ZmlsdGVy
ZWQ+KTsKLXJlYnVpbGRET01NYXRyaXgoMTAsICJtYXRyaXgoMSwgMiwgMywgNCwgNSwgNikiKTsK
LXJlYnVpbGRQYXRoMkQoMTEsICJNMSAyIik7CityZWJ1aWxkQ2FudmFzR3JhZGllbnQoNiwgeyJ0
eXBlIjoiY29uaWMtZ3JhZGllbnQiLCJwb2ludHMiOlsyLDMsMV0sInN0b3BzIjpbeyJvZmZzZXQi
OjEsImNvbG9yIjoicmdiKDAsIDEyOCwgMCkifV19KTsKK3JlYnVpbGRDYW52YXNQYXR0ZXJuKDcs
IHsiaW1hZ2UiOjxmaWx0ZXJlZD4sInJlcGVhdCI6Im5vLXJlcGVhdCJ9KTsKK3JlYnVpbGRJbWFn
ZSg4LCA8ZmlsdGVyZWQ+KTsKK3JlYnVpbGRJbWFnZURhdGEoOSwgeyJkYXRhIjpbMCwwLDAsMCww
LDAsMCwwXSwid2lkdGgiOjEsImhlaWdodCI6Mn0pOworcmVidWlsZEltYWdlQml0bWFwKDEwLCA8
ZmlsdGVyZWQ+KTsKK3JlYnVpbGRET01NYXRyaXgoMTEsICJtYXRyaXgoMSwgMiwgMywgNCwgNSwg
NikiKTsKK3JlYnVpbGRQYXRoMkQoMTIsICJNMSAyIik7CiAKIFByb21pc2UuYWxsKHByb21pc2Vz
KS50aGVuKGZ1bmN0aW9uKCkgewogICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVu
Y3Rpb24gZXhlY3V0ZUZyYW1lKCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZWNvcmRpbmctaHRtbC0yZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZWNvcmRpbmctaHRtbC0yZC5odG1sCmluZGV4IDM0ZTVhZmY0MDFkNzcyOTZkNTg1MDQ5
NmJmZTQ5ODIzY2ExMjAyMTkuLjJiMDJkZmE3ZjViYzg3ZDZkYThiNzBkOGI0ODJiMmJlYmNiNzE3
ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLWh0
bWwtMmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy1o
dG1sLTJkLmh0bWwKQEAgLTE4LDYgKzE4LDggQEAgbGV0IGxpbmVhckdyYWRpZW50ID0gbnVsbDsK
IAogbGV0IHJhZGlhbEdyYWRpZW50ID0gbnVsbDsKIAorbGV0IGNvbmljR3JhZGllbnQgPSBudWxs
OworCiBsZXQgcGF0dGVybiA9IG51bGw7CiAKIGxldCBwYXRoMkQgPSBuZXcgUGF0aDJEKCJNIDEg
MiIpOwpAQCAtMzUsNiArMzcsOSBAQCBhc3luYyBmdW5jdGlvbiBsb2FkKCkgewogICAgIHJhZGlh
bEdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudCgxLCAyLCAzLCA0LCA1LCA2
KTsKICAgICBsaW5lYXJHcmFkaWVudC5hZGRDb2xvclN0b3AoMSwgImJsdWUiKTsKIAorICAgIGNv
bmljR3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZUNvbmljR3JhZGllbnQoMSwgMiwgMyk7CisgICAg
Y29uaWNHcmFkaWVudC5hZGRDb2xvclN0b3AoMSwgImdyZWVuIik7CisKICAgICBwYXR0ZXJuID0g
Y29udGV4dC5jcmVhdGVQYXR0ZXJuKGltYWdlLCAibm8tcmVwZWF0Iik7CiAKICAgICBpbWFnZUJp
dG1hcCA9IGF3YWl0IGNyZWF0ZUltYWdlQml0bWFwKGltYWdlKTsKQEAgLTc0LDYgKzc5LDcgQEAg
ZnVuY3Rpb24gcGVyZm9ybUFjdGlvbnMoKSB7CiAgICAgICAgICAgICBjb250ZXh0LmZpbGxTdHls
ZSA9ICJ0ZXN0IjsKICAgICAgICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gbGluZWFyR3JhZGll
bnQ7CiAgICAgICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9IHJhZGlhbEdyYWRpZW50OworICAg
ICAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSBjb25pY0dyYWRpZW50OwogICAgICAgICAgICAg
Y29udGV4dC5maWxsU3R5bGUgPSBwYXR0ZXJuOwogICAgICAgICB9LAogICAgICAgICAoKSA9PiB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDczZjU2YTBl
NDYwZTIyMGE4ZmM2OWQwZTg2MGRmZjcxNDU4MmExYTUuLjY0OGMwNzQ2YzhkOTYyOWY5ZDcwMDcw
ODJiZGY4MTc3YmEzMjY5N2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yODcsNiArMjg3LDggQEAgZmFzdC9ncmFkaWVudHMvY29uaWMtZ3JhZGllbnQt
YWxwaGEuaHRtbCBbIFNraXAgXQogZmFzdC9ncmFkaWVudHMvY29uaWMtZ3JhZGllbnQtZXh0ZW5k
ZWQtc3RvcHMuaHRtbCBbIFNraXAgXQogZmFzdC9ncmFkaWVudHMvY29uaWMtZ3JhZGllbnQuaHRt
bCBbIFNraXAgXQogZmFzdC9ncmFkaWVudHMvY29uaWMtdHdvLWhpbnRzLmh0bWwgWyBTa2lwIF0K
K2Zhc3QvY2FudmFzL2NhbnZhcy1jb25pYy1ncmFkaWVudC1hbmdsZS5odG1sIFsgU2tpcCBdCitm
YXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtY2VudGVyLmh0bWwgWyBTa2lwIF0KIAog
IyBUT0RPIEludmVzdGlnYXRlIHdoeSB0aGVzZSBtb3VzZSBzY3JvbGwgdGVzdHMgYXJlIGZhaWxp
bmcuCiBmYXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVkLXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRk
ZW4uaHRtbCBbIEZhaWx1cmUgXQo=
</data>
<flag name="review"
          id="449308"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="449328"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428718</attachid>
            <date>2021-05-14 23:10:20 -0700</date>
            <delta_ts>2021-05-15 13:47:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225539-20210514231019.patch</filename>
            <type>text/plain</type>
            <size>29063</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTBjZWYyNGYxZWRmN2Nk
YzQ4MDc0ZGI3NWJiYjYxOTBmNWE4MzUzMC4uNGJmYTg1ZjJiZmQ5OGExOGUxMTU1YTQzNTlmNWRj
ZTAzNjhlMjVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTA1LTE0ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3JlYXRlQ29uaWNHcmFkaWVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NTM5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBQcm9wb3NhbCBkb2N1bWVudDoKKyAgICAgICAg
ICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9mc2VyYi9jYW52YXMyRC9ibG9iL21hc3Rlci9zcGVjL2Nv
bmljLWdyYWRpZW50Lm1kCisKKyAgICAgICAgTUROIGRvY3VtZW50YXRpb246CisgICAgICAgICAg
ICBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEL2NyZWF0ZUNvbmljR3JhZGllbnQKKworICAgICAgICBUZXN0czog
ZmFzdC9jYW52YXMvY2FudmFzLWNvbmljLWdyYWRpZW50LWFuZ2xlLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvY2FudmFzL2NhbnZhcy1jb25pYy1ncmFkaWVudC1jZW50ZXIuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9jYW52YXMvY29uaWNHcmFkaWVudC1pbmZpbml0ZS12YWx1ZXMuaHRtbAor
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzRmlsbFN0cm9rZVN0eWxlcy5pZGw6CisgICAg
ICAgICogaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzR3JhZGllbnQ6OkNhbnZhc0dyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6Om1fY2Fu
dmFzKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc0dyYWRpZW50OjpjcmVhdGUpOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjcmVhdGVDb25pY0dyYWRpZW50KToKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmg6CisKIDIwMjEtMDUt
MTQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIG91dHB1dCBlbGVt
ZW50IGRvZXNuJ3QgcmVhY3QgcHJvcGVybHkgdG8gbm9kZSB0cmVlIG11dGF0aW9ucwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9DaGFuZ2VMb2cKaW5kZXggZGYwNTBlMTZkYzMwNzVlYWQyZDJhNjgwMTlmMDIxNTg0NmI0
OTYxOC4uYzQ1MGIyOGVkNTIyYjQwNjJiZGIxNGFiNTNlZmQ1ODk2NTMxYjAxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDUtMTQgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jcmVhdGVDb25pY0dyYWRpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU1MzkKKworICAgICAgICBSZXZpZXdlZCBieSBT
YW0gV2VpbmlnLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rp
b25QYXJhbWV0ZXJzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGlu
Zy5qczoKKyAgICAgICAgKFdJLlJlY29yZGluZy5wcm90b3R5cGUuYXN5bmMgc3dpenpsZSk6Cisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdBY3Rpb25UcmVlRWxlbWVudC5q
czoKKyAgICAgICAgKFdJLlJlY29yZGluZ0FjdGlvblRyZWVFbGVtZW50Ll9jbGFzc05hbWVGb3JB
Y3Rpb24pOgorCiAyMDIxLTA1LTEwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOZXR3b3JrOiByZW5hbWUgIlhIUiIgdG8gIlhIUi9G
ZXRjaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0ZpbGxT
dHJva2VTdHlsZXMuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzRmlsbFN0
cm9rZVN0eWxlcy5pZGwKaW5kZXggYWYwMGYxODg5YzcxNjlhN2E2NWQ3ODliOWEwMTk3MDI1ODg0
M2ZjOS4uMTA3MDQ4ZDU2NTA0YWMzNmVkNWE4YjExZjIzZDgxMzEyMzYzMTg0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzRmlsbFN0cm9rZVN0eWxlcy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzRmlsbFN0cm9rZVN0eWxlcy5p
ZGwKQEAgLTQyLDggKzQyLDggQEAgaW50ZXJmYWNlIG1peGluIENhbnZhc0ZpbGxTdHJva2VTdHls
ZXMgewogICAgIGF0dHJpYnV0ZSAoRE9NU3RyaW5nIG9yIENhbnZhc0dyYWRpZW50IG9yIENhbnZh
c1BhdHRlcm4pIHN0cm9rZVN0eWxlOyAvLyAoZGVmYXVsdCBibGFjaykKICAgICBhdHRyaWJ1dGUg
KERPTVN0cmluZyBvciBDYW52YXNHcmFkaWVudCBvciBDYW52YXNQYXR0ZXJuKSBmaWxsU3R5bGU7
IC8vIChkZWZhdWx0IGJsYWNrKQogCi0gICAgLy8gRklYTUU6IEFsbCB0aGUgZmxvYXQgcGFyYW1l
dGVycyBiZWxvdyBzaG91bGQgYmUgZG91Ymxlcy4KLSAgICBDYW52YXNHcmFkaWVudCBjcmVhdGVM
aW5lYXJHcmFkaWVudChmbG9hdCB4MCwgZmxvYXQgeTAsIGZsb2F0IHgxLCBmbG9hdCB5MSk7Ci0g
ICAgQ2FudmFzR3JhZGllbnQgY3JlYXRlUmFkaWFsR3JhZGllbnQoZmxvYXQgeDAsIGZsb2F0IHkw
LCBmbG9hdCByMCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCByMSk7CisgICAgQ2FudmFzR3Jh
ZGllbnQgY3JlYXRlTGluZWFyR3JhZGllbnQoZG91YmxlIHgwLCBkb3VibGUgeTAsIGRvdWJsZSB4
MSwgZG91YmxlIHkxKTsKKyAgICBDYW52YXNHcmFkaWVudCBjcmVhdGVSYWRpYWxHcmFkaWVudChk
b3VibGUgeDAsIGRvdWJsZSB5MCwgZG91YmxlIHIwLCBkb3VibGUgeDEsIGRvdWJsZSB5MSwgZG91
YmxlIHIxKTsKKyAgICBDYW52YXNHcmFkaWVudCBjcmVhdGVDb25pY0dyYWRpZW50KGRvdWJsZSBh
bmdsZSwgZG91YmxlIHgsIGRvdWJsZSB5KTsKICAgICBDYW52YXNQYXR0ZXJuPyBjcmVhdGVQYXR0
ZXJuKENhbnZhc0ltYWdlU291cmNlIGltYWdlLCBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIERP
TVN0cmluZyByZXBldGl0aW9uKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNHcmFkaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNHcmFkaWVudC5jcHAKaW5kZXggNzVlNGFlMTI5ZjcyY2NhNmY0ZDViZjY2N2M1MjQ3OWI3
MjcwYjg4YS4uOTgxMmYzMDA2OGVmNmFhNjg5YzU2ZjI4MDZkOGJkOWZiZjZjYTYxOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcApAQCAtNDUsNiAr
NDUsMTIgQEAgQ2FudmFzR3JhZGllbnQ6OkNhbnZhc0dyYWRpZW50KGNvbnN0IEZsb2F0UG9pbnQm
IHAwLCBmbG9hdCByMCwgY29uc3QgRmxvYXRQb2ludCYKIHsKIH0KIAorQ2FudmFzR3JhZGllbnQ6
OkNhbnZhc0dyYWRpZW50KGNvbnN0IEZsb2F0UG9pbnQmIGNlbnRlclBvaW50LCBmbG9hdCBhbmds
ZUluUmFkaWFucywgQ2FudmFzQmFzZSYgY2FudmFzQmFzZSkKKyAgICA6IG1fZ3JhZGllbnQoR3Jh
ZGllbnQ6OmNyZWF0ZShHcmFkaWVudDo6Q29uaWNEYXRhIHsgY2VudGVyUG9pbnQsIGFuZ2xlSW5S
YWRpYW5zIH0pKQorICAgICwgbV9jYW52YXMoY2FudmFzQmFzZSkKK3sKK30KKwogUmVmPENhbnZh
c0dyYWRpZW50PiBDYW52YXNHcmFkaWVudDo6Y3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHAwLCBj
b25zdCBGbG9hdFBvaW50JiBwMSwgQ2FudmFzQmFzZSYgY2FudmFzQmFzZSkKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDYW52YXNHcmFkaWVudChwMCwgcDEsIGNhbnZhc0Jhc2UpKTsKQEAg
LTU1LDYgKzYxLDExIEBAIFJlZjxDYW52YXNHcmFkaWVudD4gQ2FudmFzR3JhZGllbnQ6OmNyZWF0
ZShjb25zdCBGbG9hdFBvaW50JiBwMCwgZmxvYXQgcjAsIGNvbnN0CiAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQ2FudmFzR3JhZGllbnQocDAsIHIwLCBwMSwgcjEsIGNhbnZhc0Jhc2UpKTsKIH0K
IAorUmVmPENhbnZhc0dyYWRpZW50PiBDYW52YXNHcmFkaWVudDo6Y3JlYXRlKGNvbnN0IEZsb2F0
UG9pbnQmIGNlbnRlclBvaW50LCBmbG9hdCBhbmdsZUluUmFkaWFucywgQ2FudmFzQmFzZSYgY2Fu
dmFzQmFzZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDYW52YXNHcmFkaWVudChjZW50
ZXJQb2ludCwgYW5nbGVJblJhZGlhbnMsIGNhbnZhc0Jhc2UpKTsKK30KKwogQ2FudmFzR3JhZGll
bnQ6On5DYW52YXNHcmFkaWVudCgpID0gZGVmYXVsdDsKIAogRXhjZXB0aW9uT3I8dm9pZD4gQ2Fu
dmFzR3JhZGllbnQ6OmFkZENvbG9yU3RvcChmbG9hdCB2YWx1ZSwgY29uc3QgU3RyaW5nJiBjb2xv
clN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dy
YWRpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oCmlu
ZGV4IGEyMTVmMTQxZWNiZWVlMzE3ODk3ZmVjNGQ0ZDYyYWIxZGYzNDU5NTguLmY2YmY1MzMxNWUy
MjllZTVmNDY2MzU2NWRiMDZlNTAxY2Q1NzQ4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzR3JhZGllbnQuaApAQCAtMzgsNiArMzgsNyBAQCBjbGFzcyBDYW52YXNHcmFk
aWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPENhbnZhc0dyYWRpZW50PiB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxDYW52YXNHcmFkaWVudD4gY3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHAwLCBj
b25zdCBGbG9hdFBvaW50JiBwMSwgQ2FudmFzQmFzZSYpOwogICAgIHN0YXRpYyBSZWY8Q2FudmFz
R3JhZGllbnQ+IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiBwMCwgZmxvYXQgcjAsIGNvbnN0IEZs
b2F0UG9pbnQmIHAxLCBmbG9hdCByMSwgQ2FudmFzQmFzZSYpOworICAgIHN0YXRpYyBSZWY8Q2Fu
dmFzR3JhZGllbnQ+IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiBjZW50ZXJQb2ludCwgZmxvYXQg
YW5nbGVJblJhZGlhbnMsIENhbnZhc0Jhc2UmKTsKICAgICB+Q2FudmFzR3JhZGllbnQoKTsKIAog
ICAgIEdyYWRpZW50JiBncmFkaWVudCgpIHsgcmV0dXJuIG1fZ3JhZGllbnQ7IH0KQEAgLTQ4LDYg
KzQ5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDYW52YXNHcmFkaWVudChjb25zdCBGbG9h
dFBvaW50JiBwMCwgY29uc3QgRmxvYXRQb2ludCYgcDEsIENhbnZhc0Jhc2UmKTsKICAgICBDYW52
YXNHcmFkaWVudChjb25zdCBGbG9hdFBvaW50JiBwMCwgZmxvYXQgcjAsIGNvbnN0IEZsb2F0UG9p
bnQmIHAxLCBmbG9hdCByMSwgQ2FudmFzQmFzZSYpOworICAgIENhbnZhc0dyYWRpZW50KGNvbnN0
IEZsb2F0UG9pbnQmIGNlbnRlclBvaW50LCBmbG9hdCBhbmdsZUluUmFkaWFucywgQ2FudmFzQmFz
ZSYpOwogCiAgICAgUmVmPEdyYWRpZW50PiBtX2dyYWRpZW50OwogICAgIENhbnZhc0Jhc2UmIG1f
Y2FudmFzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAppbmRleCBlNGE2NmJjYzdjMjFjMTA2ZjdlNDg2
YTI3ZmNiMDM2YmUwMmI4YWVmLi5lZjhkMjRkNDk5MjVkODkwMmU1NmU0YWZjNTkxODI4Zjc1N2Q0
NTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcApAQCAtMTk1MCw2ICsxOTUwLDE0IEBAIEV4Y2Vw
dGlvbk9yPFJlZjxDYW52YXNHcmFkaWVudD4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6
OmNyZWF0ZVJhZGlhbEdyYWRpCiAgICAgcmV0dXJuIENhbnZhc0dyYWRpZW50OjpjcmVhdGUoRmxv
YXRQb2ludCh4MCwgeTApLCByMCwgRmxvYXRQb2ludCh4MSwgeTEpLCByMSwgY2FudmFzQmFzZSgp
KTsKIH0KIAorRXhjZXB0aW9uT3I8UmVmPENhbnZhc0dyYWRpZW50Pj4gQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZTo6Y3JlYXRlQ29uaWNHcmFkaWVudChmbG9hdCBhbmdsZUluUmFkaWFucywg
ZmxvYXQgeCwgZmxvYXQgeSkKK3sKKyAgICBpZiAoIXN0ZDo6aXNmaW5pdGUoYW5nbGVJblJhZGlh
bnMpIHx8ICFzdGQ6OmlzZmluaXRlKHgpIHx8ICFzdGQ6OmlzZmluaXRlKHkpKQorICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKKworICAgIHJldHVybiBDYW52
YXNHcmFkaWVudDo6Y3JlYXRlKEZsb2F0UG9pbnQoeCwgeSksIGFuZ2xlSW5SYWRpYW5zLCBjYW52
YXNCYXNlKCkpOworfQorCiBFeGNlcHRpb25PcjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+IENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNyZWF0ZVBhdHRlcm4oQ2FudmFzSW1hZ2VTb3VyY2Um
JiBpbWFnZSwgY29uc3QgU3RyaW5nJiByZXBldGl0aW9uKQogewogICAgIGJvb2wgcmVwZWF0WCwg
cmVwZWF0WTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaAppbmRleCBkM2ZjNjYxN2Y2Mzg5ZTgxYzk5ZTkzNWQ2
NWI4MTU5NjFkOGM5ZmFlLi5hM2RjZmMyZjVhNTcyYTA0MzlmNDJhMjIwMTdmNGVlYmQ5OGI1OGIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZS5oCkBAIC0xODYsNiArMTg2LDcgQEAgcHVibGljOgogCiAgICAg
RXhjZXB0aW9uT3I8UmVmPENhbnZhc0dyYWRpZW50Pj4gY3JlYXRlTGluZWFyR3JhZGllbnQoZmxv
YXQgeDAsIGZsb2F0IHkwLCBmbG9hdCB4MSwgZmxvYXQgeTEpOwogICAgIEV4Y2VwdGlvbk9yPFJl
ZjxDYW52YXNHcmFkaWVudD4+IGNyZWF0ZVJhZGlhbEdyYWRpZW50KGZsb2F0IHgwLCBmbG9hdCB5
MCwgZmxvYXQgcjAsIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgcjEpOworICAgIEV4Y2VwdGlv
bk9yPFJlZjxDYW52YXNHcmFkaWVudD4+IGNyZWF0ZUNvbmljR3JhZGllbnQoZmxvYXQgYW5nbGVJ
blJhZGlhbnMsIGZsb2F0IHgsIGZsb2F0IHkpOwogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxDYW52
YXNQYXR0ZXJuPj4gY3JlYXRlUGF0dGVybihDYW52YXNJbWFnZVNvdXJjZSYmLCBjb25zdCBTdHJp
bmcmIHJlcGV0aXRpb24pOwogCiAgICAgUmVmUHRyPEltYWdlRGF0YT4gY3JlYXRlSW1hZ2VEYXRh
KEltYWdlRGF0YSYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRl
cnMuanMKaW5kZXggOWI2MWEwMGUxODg2ZDI4OWY1NmU5YWJlNTI4ZmI5ZTEwMmExOWMyMC4uZWUy
MjhiYTA4N2NiMzI5Y2Y3MzljZmJkYzBhNGU4YWNkMWNiNTdkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1l
dGVycy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
TmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzCkBAIC02NDYsNiArNjQ2LDcgQEAgV0kuTmF0aXZl
UHJvdG90eXBlRnVuY3Rpb25QYXJhbWV0ZXJzID0gewogICAgICAgICBjbGVhclJlY3Q6ICJ4LCB5
LCB3aWR0aCwgaGVpZ2h0IiwKICAgICAgICAgY2xpcDogInBhdGgsIFt3aW5kaW5nXSIsCiAgICAg
ICAgIGNyZWF0ZUltYWdlRGF0YTogImltYWdlZGF0YSIsCisgICAgICAgIGNyZWF0ZUNvbmljR3Jh
ZGllbnQ6ICJhbmdsZSwgeCwgeSIsCiAgICAgICAgIGNyZWF0ZUxpbmVhckdyYWRpZW50OiAieDAs
IHkwLCB4MSwgeTEiLAogICAgICAgICBjcmVhdGVQYXR0ZXJuOiAiY2FudmFzLCByZXBldGl0aW9u
VHlwZSIsCiAgICAgICAgIGNyZWF0ZVJhZGlhbEdyYWRpZW50OiAieDAsIHkwLCByMCwgeDEsIHkx
LCByMSIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvUmVjb3JkaW5nLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL1JlY29yZGluZy5qcwppbmRleCA5NzVkODliNTNhMGVlMDQ1MTY1ZGEyYWNiZTEwYzQ5
MTc4ZDMxZTlkLi42MDRhOTllNWM4Yzk5MWIwMDM2NzZjZTY4YTk4OTUzMTI4Mzk0OTMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3Jk
aW5nLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9S
ZWNvcmRpbmcuanMKQEAgLTQwOCw3ICs0MDgsMTIgQEAgV0kuUmVjb3JkaW5nID0gY2xhc3MgUmVj
b3JkaW5nIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgICAgIHBvaW50cyA9IGF3
YWl0IFByb21pc2UuYWxsKHBvaW50cy5tYXAoKGl0ZW0pID0+IHRoaXMuc3dpenpsZShpdGVtLCBX
SS5SZWNvcmRpbmcuU3dpenpsZS5OdW1iZXIpKSk7CiAKICAgICAgICAgICAgICAgICAgICAgV0ku
SW1hZ2VVdGlsaXRpZXMuc2NyYXRjaENhbnZhc0NvbnRleHQyRCgoY29udGV4dCkgPT4gewotICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3dpenpsZVtpbmRleF1bdHlwZV0gPSBncmFkaWVu
dFR5cGUgPT09ICJyYWRpYWwtZ3JhZGllbnQiID8gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVu
dCguLi5wb2ludHMpIDogY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudCguLi5wb2ludHMpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdyYWRpZW50VHlwZSA9PSAicmFkaWFsLWdyYWRp
ZW50IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zd2l6emxlW2luZGV4XVt0
eXBlXSA9IGNvbnRleHQuY3JlYXRlUmFkaWFsR3JhZGllbnQoLi4ucG9pbnRzKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKGdyYWRpZW50VHlwZSA9PSAibGluZWFyLWdyYWRpZW50
IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zd2l6emxlW2luZGV4XVt0eXBl
XSA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoLi4ucG9pbnRzKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zd2l6
emxlW2luZGV4XVt0eXBlXSA9IGNvbnRleHQuY3JlYXRlQ29uaWNHcmFkaWVudCguLi5wb2ludHMp
OwogICAgICAgICAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgICAgICAgICBsZXQgc3Rv
cHMgPSBbXTsKQEAgLTY2Myw4ICs2NjgsMTAgQEAgV0kuUmVjb3JkaW5nID0gY2xhc3MgUmVjb3Jk
aW5nIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgbGluZXMucHVzaChgICAgIGxl
dCBncmFkaWVudCA9IG51bGw7YCk7CiAgICAgICAgICAgICAgICAgbGluZXMucHVzaChgICAgIGlm
IChkYXRhLnR5cGUgPT09ICJyYWRpYWwtZ3JhZGllbnQiKWApOwogICAgICAgICAgICAgICAgIGxp
bmVzLnB1c2goYCAgICAgICAgZ3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZVJhZGlhbEdyYWRpZW50
KGRhdGEucG9pbnRzWzBdLCBkYXRhLnBvaW50c1sxXSwgZGF0YS5wb2ludHNbMl0sIGRhdGEucG9p
bnRzWzNdLCBkYXRhLnBvaW50c1s0XSwgZGF0YS5wb2ludHNbNV0pO2ApOwotICAgICAgICAgICAg
ICAgIGxpbmVzLnB1c2goYCAgICBlbHNlYCk7CisgICAgICAgICAgICAgICAgbGluZXMucHVzaChg
ICAgIGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gImxpbmVhci1ncmFkaWVudCIpYCk7CiAgICAgICAg
ICAgICAgICAgbGluZXMucHVzaChgICAgICAgICBncmFkaWVudCA9IGNvbnRleHQuY3JlYXRlTGlu
ZWFyR3JhZGllbnQoZGF0YS5wb2ludHNbMF0sIGRhdGEucG9pbnRzWzFdLCBkYXRhLnBvaW50c1sy
XSwgZGF0YS5wb2ludHNbM10pO2ApOworICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgICBl
bHNlYCk7CisgICAgICAgICAgICAgICAgbGluZXMucHVzaChgICAgICAgICBncmFkaWVudCA9IGNv
bnRleHQuY3JlYXRlQ29uaWNHcmFkaWVudChkYXRhLnBvaW50c1swXSwgZGF0YS5wb2ludHNbMV0s
IGRhdGEucG9pbnRzWzJdKTtgKTsKICAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgZm9y
IChsZXQgc3RvcCBvZiBkYXRhLnN0b3BzKWApOwogICAgICAgICAgICAgICAgIGxpbmVzLnB1c2go
YCAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKHN0b3Aub2Zmc2V0LCBzdG9wLmNvbG9yKTtg
KTsKICAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgb2JqZWN0c1trZXldID0gZ3JhZGll
bnQ7YCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9SZWNvcmRpbmdBY3Rpb25UcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0FjdGlvblRyZWVFbGVtZW50LmpzCmluZGV4
IDg5MGIxOWZiNDdlZTVmM2Q1MTkzMzYyZWI1ZTZiN2IyOGMxZjlkZjQuLjkwNTY1NTQwZTlkMDY4
Y2FmZDhjN2YxNWQ4ZWE5ZDEyMzAxZjc3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0FjdGlvblRyZWVFbGVtZW50LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0Fj
dGlvblRyZWVFbGVtZW50LmpzCkBAIC0zMzIsNiArMzMyLDcgQEAgV0kuUmVjb3JkaW5nQWN0aW9u
VHJlZUVsZW1lbnQgPSBjbGFzcyBSZWNvcmRpbmdBY3Rpb25UcmVlRWxlbWVudCBleHRlbmRzIFdJ
LkdlbmUKICAgICAgICAgY2FzZSAic2hhZG93T2Zmc2V0WSI6CiAgICAgICAgICAgICByZXR1cm4g
InNoYWRvdyI7CiAKKyAgICAgICAgY2FzZSAiY3JlYXRlQ29uaWNHcmFkaWVudCI6CiAgICAgICAg
IGNhc2UgImNyZWF0ZUxpbmVhckdyYWRpZW50IjoKICAgICAgICAgY2FzZSAiY3JlYXRlUGF0dGVy
biI6CiAgICAgICAgIGNhc2UgImNyZWF0ZVJhZGlhbEdyYWRpZW50IjoKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NDBmMzZh
Mzg2MzFkOGRhNWQxM2FiN2UyYTZmNGE0N2ZhMjE3ZGU2Li5hOWI5ZTZkNDgzMTg5NDQxNjhhNWVl
NGI0MjQ5YWYwMWNhNDZmMzUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDUtMTQgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcmVhdGVDb25pY0dyYWRpZW50CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU1MzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLWNvbmlj
LWdyYWRpZW50LWFuZ2xlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2Fu
dmFzL2NhbnZhcy1jb25pYy1ncmFkaWVudC1hbmdsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtY2VudGVyLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1jb25pYy1ncmFkaWVudC1jZW50ZXIu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvY29uaWNHcmFkaWVudC1pbmZpbml0
ZS12YWx1ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jb25p
Y0dyYWRpZW50LWluZmluaXRlLXZhbHVlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvY2FudmFzL3JlY29yZGluZy1odG1sLTJkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvY2FudmFzL3JlY29yZGluZy1odG1sLTJkLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDUtMTQgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIG91dHB1dCBlbGVtZW50IGRvZXNuJ3QgcmVhY3QgcHJvcGVy
bHkgdG8gbm9kZSB0cmVlIG11dGF0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5k
ZXggNmNiZTM2NjRlMjc3YTk3ZjI3ZmYyYzQ4MzBkOGY1ZTVjZWU5ZjJjNS4uYmJkMzdjNDA0NTBk
YmJhODg1ZGRjZDcyYWQ3MmFhYWI2ZDJiMzJjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDUtMTQgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fp
ZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcmVhdGVDb25pY0dyYWRpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjU1MzkKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgor
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1h
bmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5jb25pYy1leHBlY3RlZC50eHQ6CisKIDIwMjEt
MDUtMTQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIG91dHB1dCBl
bGVtZW50IGRvZXNuJ3QgcmVhY3QgcHJvcGVybHkgdG8gbm9kZSB0cmVlIG11dGF0aW9ucwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbmljLWdyYWRpZW50LWFu
Z2xlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29uaWMt
Z3JhZGllbnQtYW5nbGUtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWM1ZWIyMTBhOWIwYjMy
YmZjYWIzNzBlZjU5YjI4YWY3ZjU1MmNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLWNvbmljLWdyYWRpZW50LWFuZ2xlLWV4cGVjdGVkLmh0bWwKQEAg
LTAsMCArMSwyOCBAQAorPHN0eWxlPgorICAgIGNhbnZhcyB7CisgICAgICAgIGJvcmRlcjogMXB4
IHNvbGlkOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Y2FudmFzIGlkPSJjMSIgd2lk
dGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2FudmFzPgorICAgIDxjYW52YXMgaWQ9ImMyIiB3aWR0
aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52YXM+CisgICAgPGNhbnZhcyBpZD0iYzMiIHdpZHRo
PSIxMDAiIGhlaWdodD0iMTAwIj48L2NhbnZhcz4KKyAgICA8Y2FudmFzIGlkPSJjNCIgd2lkdGg9
IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2FudmFzPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0
aW9uIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcihjYW52YXNJZCwgeCwgeSwgd2lkdGgsIGhlaWdo
dCkgeworICAgICAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Y2FudmFzSWQpOworICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJk
Jyk7CisgICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gImJsYWNrIjsKKyAgICAgICAgICAgIGN0
eC5maWxsUmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgfQorCisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzEiLCA1MCwgIDAsIDUwLCA1MCk7CisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzEiLCAgMCwgNTAsIDUwLCA1MCk7CisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzIiLCAgMCwgIDAsIDUwLCA1MCk7CisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzIiLCA1MCwgNTAsIDUwLCA1MCk7CisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzMiLCAgMCwgNTAsIDUwLCA1MCk7CisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzMiLCA1MCwgIDAsIDUwLCA1MCk7CisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzQiLCAgMCwgIDAsIDUwLCA1MCk7CisgICAgICAgIGZp
bGxDYW52YXNXaXRoU29saWRDb2xvcigiYzQiLCA1MCwgNTAsIDUwLCA1MCk7CisgICAgPC9zY3Jp
cHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMt
Y29uaWMtZ3JhZGllbnQtYW5nbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZh
cy1jb25pYy1ncmFkaWVudC1hbmdsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzNGQzNDE3MzMwYTllNGE3
ZTcwZWJiM2FhMzdhYTJlMWVjNGUxNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtYW5nbGUuaHRtbApAQCAtMCwwICsxLDM0
IEBACis8c3R5bGU+CisgICAgY2FudmFzIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7Cisg
ICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxjYW52YXMgaWQ9ImMxIiB3aWR0aD0iMTAwIiBo
ZWlnaHQ9IjEwMCI+PC9jYW52YXM+CisgICAgPGNhbnZhcyBpZD0iYzIiIHdpZHRoPSIxMDAiIGhl
aWdodD0iMTAwIj48L2NhbnZhcz4KKyAgICA8Y2FudmFzIGlkPSJjMyIgd2lkdGg9IjEwMCIgaGVp
Z2h0PSIxMDAiPjwvY2FudmFzPgorICAgIDxjYW52YXMgaWQ9ImM0IiB3aWR0aD0iMTAwIiBoZWln
aHQ9IjEwMCI+PC9jYW52YXM+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gZmlsbENh
bnZhc1dpdGhDb25pY0dyYWRpZW50KGNhbnZhc0lkLCBhbmdsZSwgeCwgeSkgeworICAgICAgICAg
ICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY2FudmFzSWQpOworICAg
ICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgICAgICAg
ICBjb25zdCBncmFkaWVudCA9IGN0eC5jcmVhdGVDb25pY0dyYWRpZW50KGFuZ2xlLCB4LCB5KTsK
KworICAgICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAsICJibGFjayIpOworICAgICAg
ICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuMjUsICJibGFjayIpOworICAgICAgICAgICAg
Z3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuMjUsICJ0cmFuc3BhcmVudCIpOworICAgICAgICAgICAg
Z3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuNSwgInRyYW5zcGFyZW50Iik7CisgICAgICAgICAgICBn
cmFkaWVudC5hZGRDb2xvclN0b3AoMC41LCAiYmxhY2siKTsKKyAgICAgICAgICAgIGdyYWRpZW50
LmFkZENvbG9yU3RvcCgwLjc1LCAiYmxhY2siKTsKKyAgICAgICAgICAgIGdyYWRpZW50LmFkZENv
bG9yU3RvcCgwLjc1LCAidHJhbnNwYXJlbnQiKTsKKworICAgICAgICAgICAgY3R4LmZpbGxTdHls
ZSA9IGdyYWRpZW50OworICAgICAgICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIDEwMCwgMTAwKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZpbGxDYW52YXNXaXRoQ29uaWNHcmFkaWVudCgiYzEiLCAw
LCA1MCwgNTApOworICAgICAgICBmaWxsQ2FudmFzV2l0aENvbmljR3JhZGllbnQoImMyIiwgTWF0
aC5QSSAvIDIsIDUwLCA1MCk7CisgICAgICAgIGZpbGxDYW52YXNXaXRoQ29uaWNHcmFkaWVudCgi
YzMiLCBNYXRoLlBJLCA1MCwgNTApOworICAgICAgICBmaWxsQ2FudmFzV2l0aENvbmljR3JhZGll
bnQoImM0IiwgTWF0aC5QSSAqIDMgLyAyLCA1MCwgNTApOworICAgIDwvc2NyaXB0PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbmljLWdyYWRp
ZW50LWNlbnRlci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LWNvbmljLWdyYWRpZW50LWNlbnRlci1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjODhmMTZi
OWFjNTFmZDY3Y2ViNjg5N2U2ZDc3OGVjMzkyMTMxYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtY2VudGVyLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPHN0eWxlPgorICAgIGNhbnZhcyB7CisgICAgICAgIGJv
cmRlcjogMXB4IHNvbGlkOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Y2FudmFzIGlk
PSJjMSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2FudmFzPgorICAgIDxjYW52YXMgaWQ9
ImMyIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52YXM+CisgICAgPGNhbnZhcyBpZD0i
YzMiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj48L2NhbnZhcz4KKyAgICA8Y2FudmFzIGlkPSJj
NCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2FudmFzPgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGZ1bmN0aW9uIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcihjYW52YXNJZCwgeCwgeSwgd2lk
dGgsIGhlaWdodCkgeworICAgICAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoY2FudmFzSWQpOworICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENv
bnRleHQoJzJkJyk7CisgICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gImJsYWNrIjsKKyAgICAg
ICAgICAgIGN0eC5maWxsUmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzEiLCAyMCwgIDAsIDgwLCAyMCk7Cisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzEiLCAgMCwgMjAsIDIwLCA4MCk7Cisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzIiLCA4MCwgIDAsIDIwLCAyMCk7Cisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzIiLCAgMCwgMjAsIDgwLCA4MCk7Cisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzMiLCAyMCwgIDAsIDgwLCA4MCk7Cisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzMiLCAgMCwgODAsIDIwLCAyMCk7Cisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzQiLCA4MCwgIDAsIDIwLCA4MCk7Cisg
ICAgICAgIGZpbGxDYW52YXNXaXRoU29saWRDb2xvcigiYzQiLCAgMCwgODAsIDgwLCAyMCk7Cisg
ICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9jYW52YXMtY29uaWMtZ3JhZGllbnQtY2VudGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9jYW52YXMtY29uaWMtZ3JhZGllbnQtY2VudGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBhZTUz
MjRiODMzNmU2OTBmODJkMTE0OTAzMDY5ZDA2ZjZmNzY5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb25pYy1ncmFkaWVudC1jZW50ZXIuaHRtbApA
QCAtMCwwICsxLDM0IEBACis8c3R5bGU+CisgICAgY2FudmFzIHsKKyAgICAgICAgYm9yZGVyOiAx
cHggc29saWQ7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxjYW52YXMgaWQ9ImMxIiB3
aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52YXM+CisgICAgPGNhbnZhcyBpZD0iYzIiIHdp
ZHRoPSIxMDAiIGhlaWdodD0iMTAwIj48L2NhbnZhcz4KKyAgICA8Y2FudmFzIGlkPSJjMyIgd2lk
dGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2FudmFzPgorICAgIDxjYW52YXMgaWQ9ImM0IiB3aWR0
aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52YXM+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVu
Y3Rpb24gZmlsbENhbnZhc1dpdGhDb25pY0dyYWRpZW50KGNhbnZhc0lkLCBhbmdsZSwgeCwgeSkg
eworICAgICAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY2Fu
dmFzSWQpOworICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7
CisgICAgICAgICAgICBjb25zdCBncmFkaWVudCA9IGN0eC5jcmVhdGVDb25pY0dyYWRpZW50KGFu
Z2xlLCB4LCB5KTsKKworICAgICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAsICJibGFj
ayIpOworICAgICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuMjUsICJibGFjayIpOwor
ICAgICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuMjUsICJ0cmFuc3BhcmVudCIpOwor
ICAgICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuNSwgInRyYW5zcGFyZW50Iik7Cisg
ICAgICAgICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMC41LCAiYmxhY2siKTsKKyAgICAgICAg
ICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgwLjc1LCAiYmxhY2siKTsKKyAgICAgICAgICAgIGdy
YWRpZW50LmFkZENvbG9yU3RvcCgwLjc1LCAidHJhbnNwYXJlbnQiKTsKKworICAgICAgICAgICAg
Y3R4LmZpbGxTdHlsZSA9IGdyYWRpZW50OworICAgICAgICAgICAgY3R4LmZpbGxSZWN0KDAsIDAs
IDEwMCwgMTAwKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbGxDYW52YXNXaXRoQ29uaWNHcmFk
aWVudCgiYzEiLCAwLCAyMCwgMjApOworICAgICAgICBmaWxsQ2FudmFzV2l0aENvbmljR3JhZGll
bnQoImMyIiwgMCwgODAsIDIwKTsKKyAgICAgICAgZmlsbENhbnZhc1dpdGhDb25pY0dyYWRpZW50
KCJjMyIsIDAsIDIwLCA4MCk7CisgICAgICAgIGZpbGxDYW52YXNXaXRoQ29uaWNHcmFkaWVudCgi
YzQiLCAwLCA4MCwgODApOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY29uaWNHcmFkaWVudC1pbmZpbml0ZS12YWx1ZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY29uaWNHcmFkaWVudC1pbmZpbml0ZS12
YWx1ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjNGJlMDczNjdmOTM4YzA4ZTI0ZDZkMmE3
NWQwZjE0NDFhZjljOTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9jb25pY0dyYWRpZW50LWluZmluaXRlLXZhbHVlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
OCBAQAorVGhpcyB0ZXN0IGNoZWNrcyBjcmVhdGVDb25pY0dyYWRpZW50IHdpdGggaW5maW5pdGUg
dmFsdWVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGN0eC5jcmVhdGVD
b25pY0dyYWRpZW50KDAsIDEwMCwgTmFOKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUaGUg
cHJvdmlkZWQgdmFsdWUgaXMgbm9uLWZpbml0ZS4KK1BBU1MgY3R4LmNyZWF0ZUNvbmljR3JhZGll
bnQoMCwgMTAwLCBJbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVGhlIHByb3Zp
ZGVkIHZhbHVlIGlzIG5vbi1maW5pdGUuCitQQVNTIGN0eC5jcmVhdGVDb25pY0dyYWRpZW50KDAs
IDEwMCwgLUluZmluaXR5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUaGUgcHJvdmlkZWQg
dmFsdWUgaXMgbm9uLWZpbml0ZS4KK1BBU1MgY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQoMCwgTmFO
LCAxMDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFRoZSBwcm92aWRlZCB2YWx1ZSBpcyBu
b24tZmluaXRlLgorUEFTUyBjdHguY3JlYXRlQ29uaWNHcmFkaWVudCgwLCBJbmZpbml0eSwgMTAw
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUaGUgcHJvdmlkZWQgdmFsdWUgaXMgbm9uLWZp
bml0ZS4KK1BBU1MgY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQoMCwgLUluZmluaXR5LCAxMDApIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFRoZSBwcm92aWRlZCB2YWx1ZSBpcyBub24tZmluaXRl
LgorUEFTUyBjdHguY3JlYXRlQ29uaWNHcmFkaWVudChOYU4sIDEwMCwgMTAwKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUaGUgcHJvdmlkZWQgdmFsdWUgaXMgbm9uLWZpbml0ZS4KK1BBU1Mg
Y3R4LmNyZWF0ZUNvbmljR3JhZGllbnQoSW5maW5pdHksIDEwMCwgMTAwKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUaGUgcHJvdmlkZWQgdmFsdWUgaXMgbm9uLWZpbml0ZS4KK1BBU1MgY3R4
LmNyZWF0ZUNvbmljR3JhZGllbnQoLUluZmluaXR5LCAxMDAsIDEwMCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVGhlIHByb3ZpZGVkIHZhbHVlIGlzIG5vbi1maW5pdGUuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY29uaWNHcmFkaWVudC1pbmZpbml0ZS12YWx1ZXMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NvbmljR3JhZGllbnQtaW5maW5pdGUtdmFsdWVzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmFhMjgwZTlhYTYxZDUzNTMwMWIzODUwYzU3MzgyZjVhNmU0M2M0Nwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NvbmljR3JhZGllbnQt
aW5maW5pdGUtdmFsdWVzLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oCisnVGhpcyB0ZXN0IGNoZWNrcyBjcmVhdGVDb25p
Y0dyYWRpZW50IHdpdGggaW5maW5pdGUgdmFsdWVzJworKTsKKwordmFyIGN0eCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLmdldENvbnRleHQoJzJkJyk7CisKK3Nob3VsZFRocm93
KCJjdHguY3JlYXRlQ29uaWNHcmFkaWVudCgwLCAxMDAsIE5hTikiLCAiJ1R5cGVFcnJvcjogVGhl
IHByb3ZpZGVkIHZhbHVlIGlzIG5vbi1maW5pdGUnIik7CitzaG91bGRUaHJvdygiY3R4LmNyZWF0
ZUNvbmljR3JhZGllbnQoMCwgMTAwLCBJbmZpbml0eSkiLCAiJ1R5cGVFcnJvcjogVGhlIHByb3Zp
ZGVkIHZhbHVlIGlzIG5vbi1maW5pdGUnIik7CitzaG91bGRUaHJvdygiY3R4LmNyZWF0ZUNvbmlj
R3JhZGllbnQoMCwgMTAwLCAtSW5maW5pdHkpIiwgIidUeXBlRXJyb3I6IFRoZSBwcm92aWRlZCB2
YWx1ZSBpcyBub24tZmluaXRlJyIpOworc2hvdWxkVGhyb3coImN0eC5jcmVhdGVDb25pY0dyYWRp
ZW50KDAsIE5hTiwgMTAwKSIsICInVHlwZUVycm9yOiBUaGUgcHJvdmlkZWQgdmFsdWUgaXMgbm9u
LWZpbml0ZSciKTsKK3Nob3VsZFRocm93KCJjdHguY3JlYXRlQ29uaWNHcmFkaWVudCgwLCBJbmZp
bml0eSwgMTAwKSIsICInVHlwZUVycm9yOiBUaGUgcHJvdmlkZWQgdmFsdWUgaXMgbm9uLWZpbml0
ZSciKTsKK3Nob3VsZFRocm93KCJjdHguY3JlYXRlQ29uaWNHcmFkaWVudCgwLCAtSW5maW5pdHks
IDEwMCkiLCAiJ1R5cGVFcnJvcjogVGhlIHByb3ZpZGVkIHZhbHVlIGlzIG5vbi1maW5pdGUnIik7
CitzaG91bGRUaHJvdygiY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQoTmFOLCAxMDAsIDEwMCkiLCAi
J1R5cGVFcnJvcjogVGhlIHByb3ZpZGVkIHZhbHVlIGlzIG5vbi1maW5pdGUnIik7CitzaG91bGRU
aHJvdygiY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQoSW5maW5pdHksIDEwMCwgMTAwKSIsICInVHlw
ZUVycm9yOiBUaGUgcHJvdmlkZWQgdmFsdWUgaXMgbm9uLWZpbml0ZSciKTsKK3Nob3VsZFRocm93
KCJjdHguY3JlYXRlQ29uaWNHcmFkaWVudCgtSW5maW5pdHksIDEwMCwgMTAwKSIsICInVHlwZUVy
cm9yOiBUaGUgcHJvdmlkZWQgdmFsdWUgaXMgbm9uLWZpbml0ZSciKTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMv
MmQuZ3JhZGllbnQuY29uaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1z
dHlsZXMvMmQuZ3JhZGllbnQuY29uaWMtZXhwZWN0ZWQudHh0CmluZGV4IGIwMGFhYjE0YTBhNTBk
Yjk5ZDM2NjAzZWZiZjRiMTQ4ZjVmNDE1ODkuLmJkMzY0NmJlNmY5YTZjZWNiNGM4NWJjMjQzMzc2
ZjczZmYwMjgzY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJk
LmdyYWRpZW50LmNvbmljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tl
LXN0eWxlcy8yZC5ncmFkaWVudC5jb25pYy1leHBlY3RlZC50eHQKQEAgLTQsNSArNCw1IEBAIEFj
dHVhbCBvdXRwdXQ6CiBFeHBlY3RlZCBvdXRwdXQ6CiAKIAotRkFJTCBDb25pYyBncmFkaWVudCBm
dW5jdGlvbiBleGlzdHMgY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQgaXMgbm90IGEgZnVuY3Rpb24u
IChJbiAnY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQoMCwgMCwgMjUpJywgJ2N0eC5jcmVhdGVDb25p
Y0dyYWRpZW50JyBpcyB1bmRlZmluZWQpCitQQVNTIENvbmljIGdyYWRpZW50IGZ1bmN0aW9uIGV4
aXN0cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGlu
Zy1odG1sLTJkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVj
b3JkaW5nLWh0bWwtMmQtZXhwZWN0ZWQudHh0CmluZGV4IGI0ZWI4MmM2ZWQzMWQyZGY1NzgzMDAw
ZjFmMzQxODYxMjU5NTE1MjguLmVkMGEzNGQ4YTI3NjMwMjAxOTRiMTE5ZmY2MGU4NDNkN2M4ZmNj
ODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLWh0
bWwtMmQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVj
b3JkaW5nLWh0bWwtMmQtZXhwZWN0ZWQudHh0CkBAIC0xMjgsNiArMTI4LDcgQEAgbGV0IGZyYW1l
cyA9IFsKICAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSBvYmplY3RzWzRdOwogICAgICAgICBj
b250ZXh0LmZpbGxTdHlsZSA9IG9iamVjdHNbNV07CiAgICAgICAgIGNvbnRleHQuZmlsbFN0eWxl
ID0gb2JqZWN0c1s2XTsKKyAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSBvYmplY3RzWzddOwog
ICAgIH0sCiAgICAgZnVuY3Rpb24gZnJhbWUyKCkgewogICAgICAgICBjb250ZXh0LmJlZ2luUGF0
aCgpOwpAQCAtMTM2LDE5ICsxMzcsMTkgQEAgbGV0IGZyYW1lcyA9IFsKICAgICAgICAgY29udGV4
dC5tb3ZlVG8oMSwgMik7CiAgICAgfSwKICAgICBmdW5jdGlvbiBmcmFtZTQoKSB7Ci0gICAgICAg
IGNvbnRleHQuZHJhd0ltYWdlKG9iamVjdHNbN10sIDExLCAxMik7CisgICAgICAgIGNvbnRleHQu
ZHJhd0ltYWdlKG9iamVjdHNbOF0sIDExLCAxMik7CiAgICAgfSwKICAgICBmdW5jdGlvbiBmcmFt
ZTUoKSB7Ci0gICAgICAgIGNvbnRleHQuY3JlYXRlSW1hZ2VEYXRhKG9iamVjdHNbOF0pOworICAg
ICAgICBjb250ZXh0LmNyZWF0ZUltYWdlRGF0YShvYmplY3RzWzldKTsKICAgICB9LAogICAgIGZ1
bmN0aW9uIGZyYW1lNigpIHsKLSAgICAgICAgY29udGV4dC5kcmF3SW1hZ2Uob2JqZWN0c1s5XSwg
MTEsIDEyKTsKKyAgICAgICAgY29udGV4dC5kcmF3SW1hZ2Uob2JqZWN0c1sxMF0sIDExLCAxMik7
CiAgICAgfSwKICAgICBmdW5jdGlvbiBmcmFtZTcoKSB7Ci0gICAgICAgIGNvbnRleHQuc2V0VHJh
bnNmb3JtKG9iamVjdHNbMTBdKTsKKyAgICAgICAgY29udGV4dC5zZXRUcmFuc2Zvcm0ob2JqZWN0
c1sxMV0pOwogICAgIH0sCiAgICAgZnVuY3Rpb24gZnJhbWU4KCkgewotICAgICAgICAvLyBjb250
ZXh0LmRyYXdGb2N1c0lmTmVlZGVkKG9iamVjdHNbMTFdLCAiRWxlbWVudCIpOworICAgICAgICAv
LyBjb250ZXh0LmRyYXdGb2N1c0lmTmVlZGVkKG9iamVjdHNbMTJdLCAiRWxlbWVudCIpOwogICAg
IH0sCiAgICAgZnVuY3Rpb24gc3RvcFJlY29yZGluZygpIHsKICAgICAgICAgaWYgKHR5cGVvZiBj
b25zb2xlLnJlY29yZEVuZCA9PT0gImZ1bmN0aW9uIikKQEAgLTE2MCw4ICsxNjEsMTAgQEAgZnVu
Y3Rpb24gcmVidWlsZENhbnZhc0dyYWRpZW50KGtleSwgZGF0YSkgewogICAgIGxldCBncmFkaWVu
dCA9IG51bGw7CiAgICAgaWYgKGRhdGEudHlwZSA9PT0gInJhZGlhbC1ncmFkaWVudCIpCiAgICAg
ICAgIGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChkYXRhLnBvaW50c1sw
XSwgZGF0YS5wb2ludHNbMV0sIGRhdGEucG9pbnRzWzJdLCBkYXRhLnBvaW50c1szXSwgZGF0YS5w
b2ludHNbNF0sIGRhdGEucG9pbnRzWzVdKTsKLSAgICBlbHNlCisgICAgZWxzZSBpZiAoZGF0YS50
eXBlID09PSAibGluZWFyLWdyYWRpZW50IikKICAgICAgICAgZ3JhZGllbnQgPSBjb250ZXh0LmNy
ZWF0ZUxpbmVhckdyYWRpZW50KGRhdGEucG9pbnRzWzBdLCBkYXRhLnBvaW50c1sxXSwgZGF0YS5w
b2ludHNbMl0sIGRhdGEucG9pbnRzWzNdKTsKKyAgICBlbHNlCisgICAgICAgIGdyYWRpZW50ID0g
Y29udGV4dC5jcmVhdGVDb25pY0dyYWRpZW50KGRhdGEucG9pbnRzWzBdLCBkYXRhLnBvaW50c1sx
XSwgZGF0YS5wb2ludHNbMl0pOwogICAgIGZvciAobGV0IHN0b3Agb2YgZGF0YS5zdG9wcykKICAg
ICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKHN0b3Aub2Zmc2V0LCBzdG9wLmNvbG9yKTsKICAg
ICBvYmplY3RzW2tleV0gPSBncmFkaWVudDsKQEAgLTIyMCwxMiArMjIzLDEzIEBAIHJlYnVpbGRQ
YXRoMkQoMiwgIiIpOwogcmVidWlsZFBhdGgyRCgzLCAiIik7CiByZWJ1aWxkQ2FudmFzR3JhZGll
bnQoNCwgeyJ0eXBlIjoibGluZWFyLWdyYWRpZW50IiwicG9pbnRzIjpbMSwyLDMsNF0sInN0b3Bz
IjpbeyJvZmZzZXQiOjEsImNvbG9yIjoicmdiKDI1NSwgMCwgMCkifSx7Im9mZnNldCI6MSwiY29s
b3IiOiJyZ2IoMCwgMCwgMjU1KSJ9XX0pOwogcmVidWlsZENhbnZhc0dyYWRpZW50KDUsIHsidHlw
ZSI6InJhZGlhbC1ncmFkaWVudCIsInBvaW50cyI6WzEsMiwzLDQsNSw2XSwic3RvcHMiOltdfSk7
Ci1yZWJ1aWxkQ2FudmFzUGF0dGVybig2LCB7ImltYWdlIjo8ZmlsdGVyZWQ+LCJyZXBlYXQiOiJu
by1yZXBlYXQifSk7Ci1yZWJ1aWxkSW1hZ2UoNywgPGZpbHRlcmVkPik7Ci1yZWJ1aWxkSW1hZ2VE
YXRhKDgsIHsiZGF0YSI6WzAsMCwwLDAsMCwwLDAsMF0sIndpZHRoIjoxLCJoZWlnaHQiOjJ9KTsK
LXJlYnVpbGRJbWFnZUJpdG1hcCg5LCA8ZmlsdGVyZWQ+KTsKLXJlYnVpbGRET01NYXRyaXgoMTAs
ICJtYXRyaXgoMSwgMiwgMywgNCwgNSwgNikiKTsKLXJlYnVpbGRQYXRoMkQoMTEsICJNMSAyIik7
CityZWJ1aWxkQ2FudmFzR3JhZGllbnQoNiwgeyJ0eXBlIjoiY29uaWMtZ3JhZGllbnQiLCJwb2lu
dHMiOlsyLDMsMV0sInN0b3BzIjpbeyJvZmZzZXQiOjEsImNvbG9yIjoicmdiKDAsIDEyOCwgMCki
fV19KTsKK3JlYnVpbGRDYW52YXNQYXR0ZXJuKDcsIHsiaW1hZ2UiOjxmaWx0ZXJlZD4sInJlcGVh
dCI6Im5vLXJlcGVhdCJ9KTsKK3JlYnVpbGRJbWFnZSg4LCA8ZmlsdGVyZWQ+KTsKK3JlYnVpbGRJ
bWFnZURhdGEoOSwgeyJkYXRhIjpbMCwwLDAsMCwwLDAsMCwwXSwid2lkdGgiOjEsImhlaWdodCI6
Mn0pOworcmVidWlsZEltYWdlQml0bWFwKDEwLCA8ZmlsdGVyZWQ+KTsKK3JlYnVpbGRET01NYXRy
aXgoMTEsICJtYXRyaXgoMSwgMiwgMywgNCwgNSwgNikiKTsKK3JlYnVpbGRQYXRoMkQoMTIsICJN
MSAyIik7CiAKIFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKGZ1bmN0aW9uKCkgewogICAgIHdp
bmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24gZXhlY3V0ZUZyYW1lKCkgewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctaHRtbC0yZC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctaHRtbC0yZC5odG1s
CmluZGV4IDM0ZTVhZmY0MDFkNzcyOTZkNTg1MDQ5NmJmZTQ5ODIzY2ExMjAyMTkuLjJiMDJkZmE3
ZjViYzg3ZDZkYThiNzBkOGI0ODJiMmJlYmNiNzE3ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLWh0bWwtMmQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy1odG1sLTJkLmh0bWwKQEAgLTE4LDYgKzE4LDgg
QEAgbGV0IGxpbmVhckdyYWRpZW50ID0gbnVsbDsKIAogbGV0IHJhZGlhbEdyYWRpZW50ID0gbnVs
bDsKIAorbGV0IGNvbmljR3JhZGllbnQgPSBudWxsOworCiBsZXQgcGF0dGVybiA9IG51bGw7CiAK
IGxldCBwYXRoMkQgPSBuZXcgUGF0aDJEKCJNIDEgMiIpOwpAQCAtMzUsNiArMzcsOSBAQCBhc3lu
YyBmdW5jdGlvbiBsb2FkKCkgewogICAgIHJhZGlhbEdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVS
YWRpYWxHcmFkaWVudCgxLCAyLCAzLCA0LCA1LCA2KTsKICAgICBsaW5lYXJHcmFkaWVudC5hZGRD
b2xvclN0b3AoMSwgImJsdWUiKTsKIAorICAgIGNvbmljR3JhZGllbnQgPSBjb250ZXh0LmNyZWF0
ZUNvbmljR3JhZGllbnQoMSwgMiwgMyk7CisgICAgY29uaWNHcmFkaWVudC5hZGRDb2xvclN0b3Ao
MSwgImdyZWVuIik7CisKICAgICBwYXR0ZXJuID0gY29udGV4dC5jcmVhdGVQYXR0ZXJuKGltYWdl
LCAibm8tcmVwZWF0Iik7CiAKICAgICBpbWFnZUJpdG1hcCA9IGF3YWl0IGNyZWF0ZUltYWdlQml0
bWFwKGltYWdlKTsKQEAgLTc0LDYgKzc5LDcgQEAgZnVuY3Rpb24gcGVyZm9ybUFjdGlvbnMoKSB7
CiAgICAgICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICJ0ZXN0IjsKICAgICAgICAgICAgIGNv
bnRleHQuZmlsbFN0eWxlID0gbGluZWFyR3JhZGllbnQ7CiAgICAgICAgICAgICBjb250ZXh0LmZp
bGxTdHlsZSA9IHJhZGlhbEdyYWRpZW50OworICAgICAgICAgICAgY29udGV4dC5maWxsU3R5bGUg
PSBjb25pY0dyYWRpZW50OwogICAgICAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSBwYXR0ZXJu
OwogICAgICAgICB9LAogICAgICAgICAoKSA9PiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDEzNGI0ZDYwMDlhNjdjNWJjNmZkZTkyY2RhMjg2M2Q4ZTE3
OTA1NzcuLmY2MmFiMzc2MzQwZDA4ZTZkNjRhY2UxZTA5MGEzMzc3ODkzNjQ0MTcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yODcsNiArMjg3LDggQEAg
ZmFzdC9ncmFkaWVudHMvY29uaWMtZ3JhZGllbnQtYWxwaGEuaHRtbCBbIFNraXAgXQogZmFzdC9n
cmFkaWVudHMvY29uaWMtZ3JhZGllbnQtZXh0ZW5kZWQtc3RvcHMuaHRtbCBbIFNraXAgXQogZmFz
dC9ncmFkaWVudHMvY29uaWMtZ3JhZGllbnQuaHRtbCBbIFNraXAgXQogZmFzdC9ncmFkaWVudHMv
Y29uaWMtdHdvLWhpbnRzLmh0bWwgWyBTa2lwIF0KK2Zhc3QvY2FudmFzL2NhbnZhcy1jb25pYy1n
cmFkaWVudC1hbmdsZS5odG1sIFsgU2tpcCBdCitmYXN0L2NhbnZhcy9jYW52YXMtY29uaWMtZ3Jh
ZGllbnQtY2VudGVyLmh0bWwgWyBTa2lwIF0KIAogIyBUT0RPIEludmVzdGlnYXRlIHdoeSB0aGVz
ZSBtb3VzZSBzY3JvbGwgdGVzdHMgYXJlIGZhaWxpbmcuCiBmYXN0L2V2ZW50cy9zY3JvbGwtaW4t
c2NhbGVkLXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRtbCBbIEZhaWx1cmUgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>