<?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>211482</bug_id>
          
          <creation_ts>2020-05-05 19:36:42 -0700</creation_ts>
          <short_desc>Re-enable &apos;OutsideViewport&apos; rAF throttling</short_desc>
          <delta_ts>2020-05-13 16:28:40 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=204713</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1649464</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-05-05 19:36:42 -0700</bug_when>
    <thetext>The OutsideViewport throttling was not implemented in r261113. It has been disabled since r242624 because the RenderingUpdate is currently serving the rAF callbacks with its speed regardless the rAF is throttled or not. The goal of the OutsideViewport throttling to save power by stoping calling the rAF callbacks of any &lt;iframe&gt; which is outside the viewport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649465</commentid>
    <comment_count>1</comment_count>
      <attachid>398578</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-05-05 19:45:18 -0700</bug_when>
    <thetext>Created attachment 398578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649701</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-06 10:54:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/62937165&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649711</commentid>
    <comment_count>3</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-05-06 11:21:30 -0700</bug_when>
    <thetext>These two tests fail consistently with this patch.

webgl/2.0.0/conformance/canvas/rapid-resizing.html
webgl/2.0.0/conformance2/rendering/canvas-resizing-with-pbo-bound.html

These conformance tests are run by putting the test itself inside an &lt;iframe&gt; element. The script of the test relies on calling requestAnimationFrame() multiple times.

The problem is the &lt;iframe&gt; in these tests are outside the viewport of the test window (800x600). Because the patch throttles the OutsideViewport rAF for 10 seconds, the rAF callback is called only every 10 seconds. And this is why they time out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649770</commentid>
    <comment_count>4</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-05-06 13:30:15 -0700</bug_when>
    <thetext>Possible solutions:

1. Add an internal setting to enable the &apos;OutsideViewport&apos; rAF throttling. This setting will be on by default but it will be disabled for DRT and WTR. The new test which is attache here will enable it through Internals.setOutsideViewportThrottlingEnabled().

2. Throttle rAF only for 3rd party &lt;iframe&gt; which is will be cross origin. But do not throttle rAF for 1st party &lt;iframe&gt; which will be same origin.

3. Adjust these tests to show the &lt;iframe&gt; even if partially.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649861</commentid>
    <comment_count>5</comment_count>
      <attachid>398675</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-05-06 15:45:22 -0700</bug_when>
    <thetext>Created attachment 398675
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649931</commentid>
    <comment_count>6</comment_count>
      <attachid>398697</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-05-06 19:12:21 -0700</bug_when>
    <thetext>Created attachment 398697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650178</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-07 10:23:20 -0700</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #4)
&gt; Possible solutions:
&gt; 
&gt; 1. Add an internal setting to enable the &apos;OutsideViewport&apos; rAF throttling.
&gt; This setting will be on by default but it will be disabled for DRT and WTR.
&gt; The new test which is attache here will enable it through
&gt; Internals.setOutsideViewportThrottlingEnabled().

This one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650489</commentid>
    <comment_count>8</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-05-07 21:03:26 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #7)
&gt; (In reply to Said Abou-Hallawa from comment #4)
&gt; &gt; Possible solutions:
&gt; &gt; 
&gt; &gt; 1. Add an internal setting to enable the &apos;OutsideViewport&apos; rAF throttling.
&gt; &gt; This setting will be on by default but it will be disabled for DRT and WTR.
&gt; &gt; The new test which is attache here will enable it through
&gt; &gt; Internals.setOutsideViewportThrottlingEnabled().
&gt; 
&gt; This one.

It is implemented in the attached patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652435</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-13 16:28:39 -0700</bug_when>
    <thetext>Committed r261663: &lt;https://trac.webkit.org/changeset/261663&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398697.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398578</attachid>
            <date>2020-05-05 19:45:18 -0700</date>
            <delta_ts>2020-05-06 15:45:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211482-20200505194518.patch</filename>
            <type>text/plain</type>
            <size>6701</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MTIwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA1LTA1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIHRo
ZSAnT3V0c2lkZVZpZXdwb3J0JyByQUYgdGhyb3R0bGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNDgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtdGhyb3R0bGluZy1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwKKworICAgICAg
ICBNYWtlIHByZWZlcnJlZEZyYW1lSW50ZXJ2YWwgcmV0dXJuIEFnZ3Jlc3NpdmVUaHJvdHRsaW5n
QW5pbWF0aW9uSW50ZXJ2YWwKKyAgICAgICAgaWYgdGhlIE91dHNpZGVWaWV3cG9ydCB0aHJvdHRs
aW5nIHJlYXNvbiBleGlzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRp
b25GcmFtZVJhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OnByZWZlcnJlZEZyYW1lSW50ZXJ2YWwp
OgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisKIDIwMjAtMDUtMDUgIFBpbmtpIEd5
YW5jaGFuZGFuaSAgPHBneWFuY2hhbmRhbmlAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGlu
IG1hdGNoX2NvbnN0bmVzczxXZWJDb3JlOjpDU1NWYWx1ZSwgV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU+Ojp0eXBlJiBXVEY6OmRvd25jYXN0PFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlLCBX
ZWJDb3JlOjpDU1NWYWx1ZT4gLS0gQVNBTgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVSYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVSYXRlLmgJKHJldmlzaW9uIDI2MTE5
MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1MiwxMCBAQCBjb25zdGV4cHIgY29uc3QgRnJh
bWVzUGVyU2Vjb25kIFplcm9GcmFtCiAKIGlubGluZSBTZWNvbmRzIHByZWZlcnJlZEZyYW1lSW50
ZXJ2YWwoY29uc3QgT3B0aW9uU2V0PFRocm90dGxpbmdSZWFzb24+JiByZWFzb25zKQogewotICAg
IC8vIEZJWE1FOiBoYW5kbGUgVGhyb3R0bGluZ1JlYXNvbjo6VmlzdWFsbHlJZGxlLCBUaHJvdHRs
aW5nUmVhc29uOjpPdXRzaWRlVmlld3BvcnQKKyAgICAvLyBGSVhNRTogaGFuZGxlIFRocm90dGxp
bmdSZWFzb246OlZpc3VhbGx5SWRsZQorICAgIGlmIChyZWFzb25zLmNvbnRhaW5zKFRocm90dGxp
bmdSZWFzb246Ok91dHNpZGVWaWV3cG9ydCkpCisgICAgICAgIHJldHVybiBBZ2dyZXNzaXZlVGhy
b3R0bGluZ0FuaW1hdGlvbkludGVydmFsOworICAgIAogICAgIGlmIChyZWFzb25zLmNvbnRhaW5z
QW55KHsgVGhyb3R0bGluZ1JlYXNvbjo6TG93UG93ZXJNb2RlLCBUaHJvdHRsaW5nUmVhc29uOjpO
b25JbnRlcmFjdGVkQ3Jvc3NPcmlnaW5GcmFtZSB9KSkKICAgICAgICAgcmV0dXJuIEhhbGZTcGVl
ZFRocm90dGxpbmdBbmltYXRpb25JbnRlcnZhbDsKIApAQCAtNzMsMTEgKzc2LDExIEBAIGlubGlu
ZSBGcmFtZXNQZXJTZWNvbmQgcHJlZmVycmVkRnJhbWVzUGUKIAogaW5saW5lIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IE9wdGlvblNldDxUaHJvdHRsaW5nUmVh
c29uPiYgcmVhc29ucykKIHsKLSAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYm9vbCBk
aWRBcHBlbmQgPSBmYWxzZTsKKwogICAgIGZvciAoYXV0byByZWFzb24gOiByZWFzb25zKSB7Ci0g
ICAgICAgIGlmICghYnVpbGRlci5pc0VtcHR5KCkpCisgICAgICAgIGlmIChkaWRBcHBlbmQpCiAg
ICAgICAgICAgICB0cyA8PCAifCI7Ci0KICAgICAgICAgc3dpdGNoIChyZWFzb24pIHsKICAgICAg
ICAgY2FzZSBUaHJvdHRsaW5nUmVhc29uOjpWaXN1YWxseUlkbGU6CiAgICAgICAgICAgICB0cyA8
PCAiVmlzdWFsbHlJZGxlIjsKQEAgLTkyLDcgKzk1LDkgQEAgaW5saW5lIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbQogICAgICAgICAgICAgdHMgPDwgIk5vbkludGVyYWN0aXZlQ3Jv
c3NPcmlnaW5GcmFtZSI7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBk
aWRBcHBlbmQgPSB0cnVlOwogICAgIH0KKwogICAgIGlmIChyZWFzb25zLmlzRW1wdHkoKSkKICAg
ICAgICAgdHMgPDwgIltVbnRocm90dGxlZF0iOwogICAgIHJldHVybiB0czsKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2MTE5MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE2IEBACisyMDIwLTA1LTA1ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFs
bGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIHRoZSAnT3V0c2lkZVZpZXdwb3J0JyBy
QUYgdGhyb3R0bGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjExNDgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgbmV3IHRlc3QgdG8gdmVyaWZ5IHRoZSBPdXRzaWRlVmlld3BvcnQgdGhyb3R0
bGluZyBjYXNlLgorCisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtdGhyb3R0bGluZy1vdXRzaWRlLXZpZXdwb3J0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGhyb3R0bGlu
Zy1vdXRzaWRlLXZpZXdwb3J0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3Jlc291cmNlcy9mcmFtZS13aXRoLWFuaW1hdGlvbi0yLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA1
LTA1ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAg
ICAgWyBNYWMgXSBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3Rh
bXBzLmh0bWwgaXMgZmxha3kgZmFpbGluZy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0
aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRocm90dGxpbmctb3V0c2lkZS12aWV3cG9ydC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVx
dWVzdC1hbmltYXRpb24tZnJhbWUtdGhyb3R0bGluZy1vdXRzaWRlLXZpZXdwb3J0LWV4cGVjdGVk
LnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS10aHJvdHRsaW5nLW91dHNpZGUtdmlld3BvcnQtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUgZ2V0cyB0aGUgcmlnaHQgdGhyb3R0bGluZyBpbiBhbiBpZnJhbWUgd2hlbiB3aGVu
IGl0J3Mgb3V0c2lkZSB0aGUgdmlld3BvcnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGZyYW1lc1BlclNlY29uZCA+IDAgaXMgdHJ1ZQorUEFTUyBpZnJhbWVGcmFtZXNQ
ZXJTZWNvbmQgPT0gMCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtdGhyb3R0bGluZy1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtdGhyb3R0bGluZy1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGhyb3R0bGlu
Zy1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorICAgIDxkaXYgc3R5bGU9ImhlaWdodDog
MTAwMHB4OyI+PC9kaXY+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3QgdGhhdCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgZ2V0cyB0aGUgcmlnaHQgdGhyb3R0bGluZyBp
biBhbiBpZnJhbWUgd2hlbiB3aGVuIGl0J3Mgb3V0c2lkZSB0aGUgdmlld3BvcnQuIik7CisgICAg
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgICB2YXIgZnJhbWVzUGVyU2Vjb25k
ID0gMDsKKyAgICAgICAgdmFyIGlmcmFtZUZyYW1lc1BlclNlY29uZCA9IDA7CisKKyAgICAgICAg
IHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKXsKKyAgICAgICAgICAgIGlmIChlLmRhdGEg
PT0gJ3N1YkZyYW1lUkFGTWVzc2FnZScpIHsKKyAgICAgICAgICAgICAgICArK2lmcmFtZUZyYW1l
c1BlclNlY29uZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICAgY29uc3Qg
ZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZnJhbWUu
c3JjID0gInJlc291cmNlcy9mcmFtZS13aXRoLWFuaW1hdGlvbi0yLmh0bWwiOworICAgICAgICBm
cmFtZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciBzdGFydCA9IG51bGw7
CisgICAgICAgICAgICBmdW5jdGlvbiBkb1dvcmsodGltZXN0YW1wKSB7CisgICAgICAgICAgICAg
ICAgaWYgKCFzdGFydCkKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0aW1lc3RhbXA7Cisg
ICAgICAgICAgICAgICAgaWYgKHRpbWVzdGFtcCAtIHN0YXJ0IDwgMTAwMCkgeworICAgICAgICAg
ICAgICAgICAgICArK2ZyYW1lc1BlclNlY29uZDsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93
LnJlcXVlc3RBbmltYXRpb25GcmFtZShkb1dvcmspOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJmcmFt
ZXNQZXJTZWNvbmQgPiAwIik7CisKKyAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBPdXRzaWRl
Vmlld3BvcnQgdGhyb3R0bGluZyA9IDEwX3MuIHN1YkZyYW1lUkFGTWVzc2FnZQorICAgICAgICAg
ICAgICAgICAgICAvLyBzaG91bGQgbm90IGV2ZXIgYmUgcmVjZWl2ZWQgZHVyaW5nIHRoZSBmaXJz
dCBzZWNvbmQuCisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiaWZyYW1lRnJhbWVz
UGVyU2Vjb25kID09IDAiKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgd2luZG93LnJlcXVl
c3RBbmltYXRpb25GcmFtZShkb1dvcmspOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9yZXNvdXJjZXMvZnJhbWUtd2l0aC1hbmltYXRpb24tMi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Jlc291cmNlcy9mcmFtZS13aXRoLWFuaW1h
dGlvbi0yLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24v
cmVzb3VyY2VzL2ZyYW1lLXdpdGgtYW5pbWF0aW9uLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDcgQEAKKzxzY3JpcHQ+CisJZnVuY3Rpb24gZG9Xb3JrKHRpbWVzdGFtcCkgeworCQl3
aW5kb3cudG9wLnBvc3RNZXNzYWdlKCdzdWJGcmFtZVJBRk1lc3NhZ2UnLCAnKicpOworCQl3aW5k
b3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvV29yayk7CisJfQorCXdpbmRvdy5yZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoZG9Xb3JrKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398675</attachid>
            <date>2020-05-06 15:45:22 -0700</date>
            <delta_ts>2020-05-06 19:12:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211482-20200506154521.patch</filename>
            <type>text/plain</type>
            <size>13302</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MTI1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA1LTA2ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIHRo
ZSAnT3V0c2lkZVZpZXdwb3J0JyByQUYgdGhyb3R0bGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNDgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtdGhyb3R0bGluZy1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwKKworICAgICAg
ICBNYWtlIHByZWZlcnJlZEZyYW1lSW50ZXJ2YWwgcmV0dXJuIEFnZ3Jlc3NpdmVUaHJvdHRsaW5n
QW5pbWF0aW9uSW50ZXJ2YWwKKyAgICAgICAgaWYgdGhlIE91dHNpZGVWaWV3cG9ydCB0aHJvdHRs
aW5nIHJlYXNvbiBleGlzdHMuCisKKyAgICAgICAgQWRkIGFuIGludGVybmFsIHNldHRpbmcgZm9y
IGVuYWJsaW5nICdPdXRzaWRlVmlld3BvcnQnIHJBRiB0aHJvdHRsaW5nLiBJdAorICAgICAgICBp
cyBvbiBieSBkZWZhdWx0IGJ1dCBpdCBpcyBvZmYgYnkgZGVmYXVsdCBmb3IgRFJUIGFuZCBXVFIu
IEFuIEludGVybmFscworICAgICAgICBBUEkgaXMgYWRkZWQgdG8gZW5hYmxlIGl0IGZvciBzcGVj
aWZpYyB0ZXN0cyB3aGljaCB3YW50IHRvIHRlc3QgaXRzCisgICAgICAgIGZ1bmN0aW9uYWxpdHku
CisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OnVwZGF0ZVNjcmlwdGVkQW5pbWF0aW9uc0FuZFRpbWVyc1Rocm90dGxpbmdTdGF0ZSk6
CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldE91
dHNpZGVWaWV3cG9ydFRocm90dGxpbmdFbmFibGVkRm9yVGVzdGluZyk6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpjYW5VcGRhdGVUaHJvdHRsaW5nUmVh
c29uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJh
dGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OnByZWZlcnJlZEZyYW1lSW50ZXJ2YWwpOgorICAgICAg
ICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0T3V0c2lkZVZpZXdwb3J0VGhyb3R0bGlu
Z0VuYWJsZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIwLTA1LTA2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2MDY4NCk6IFJlYWRlciBiYWNrZ3Jv
dW5kIGlzIGxvc3QgYWZ0ZXIgbXVsdGl0YXNraW5nCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCShyZXZpc2lvbiAyNjExOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1MjcsMTcgKzI1MjcsMjEgQEAgdm9pZCBGcmFtZVZp
ZXc6OnVwZGF0ZVNjcmlwdGVkQW5pbWF0aW9ucwogCiAgICAgLy8gV2UgZG9uJ3QgdGhyb3R0bGUg
emVyby1zaXplIG9yIGRpc3BsYXk6bm9uZSBmcmFtZXMgYmVjYXVzZSB0aG9zZSBhcmUgdXN1YWxs
eSB1dGlsaXR5IGZyYW1lcy4KICAgICBib29sIHNob3VsZFRocm90dGxlID0gdmlzaWJsZVJlY3Qu
aXNFbXB0eSgpICYmICFtX3NpemUuaXNFbXB0eSgpICYmIGZyYW1lKCkub3duZXJSZW5kZXJlcigp
OworICAgIGRvY3VtZW50LT5zZXRUaW1lclRocm90dGxpbmdFbmFibGVkKHNob3VsZFRocm90dGxl
KTsKIAotICAgIGlmIChhdXRvKiBzY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIgPSBkb2N1bWVu
dC0+c2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKCkpIHsKLSAgICAgICAgaWYgKHNob3VsZFRo
cm90dGxlKQotICAgICAgICAgICAgc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLT5hZGRUaHJv
dHRsaW5nUmVhc29uKFRocm90dGxpbmdSZWFzb246Ok91dHNpZGVWaWV3cG9ydCk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIHNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci0+cmVtb3ZlVGhy
b3R0bGluZ1JlYXNvbihUaHJvdHRsaW5nUmVhc29uOjpPdXRzaWRlVmlld3BvcnQpOwotICAgIH0K
KyAgICBhdXRvKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CisgICAgaWYgKCFwYWdlIHx8ICFwYWdl
LT5jYW5VcGRhdGVUaHJvdHRsaW5nUmVhc29uKFRocm90dGxpbmdSZWFzb246Ok91dHNpZGVWaWV3
cG9ydCkpCisgICAgICAgIHJldHVybjsKIAotICAgIGRvY3VtZW50LT5zZXRUaW1lclRocm90dGxp
bmdFbmFibGVkKHNob3VsZFRocm90dGxlKTsKLX0KKyAgICBhdXRvKiBzY3JpcHRlZEFuaW1hdGlv
bkNvbnRyb2xsZXIgPSBkb2N1bWVudC0+c2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKCk7Cisg
ICAgaWYgKCFzY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKIAor
ICAgIGlmIChzaG91bGRUaHJvdHRsZSkKKyAgICAgICAgc2NyaXB0ZWRBbmltYXRpb25Db250cm9s
bGVyLT5hZGRUaHJvdHRsaW5nUmVhc29uKFRocm90dGxpbmdSZWFzb246Ok91dHNpZGVWaWV3cG9y
dCk7CisgICAgZWxzZQorICAgICAgICBzY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXItPnJlbW92
ZVRocm90dGxpbmdSZWFzb24oVGhyb3R0bGluZ1JlYXNvbjo6T3V0c2lkZVZpZXdwb3J0KTsKK30K
IAogdm9pZCBGcmFtZVZpZXc6OnJlc3VtZVZpc2libGVJbWFnZUFuaW1hdGlvbnNJbmNsdWRpbmdT
dWJmcmFtZXMoKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAyNjExOTMpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTkwLDYg
KzExOTAsMTYgQEAgdm9pZCBQYWdlOjpzZXRMb3dQb3dlck1vZGVFbmFibGVkT3ZlcnJpZAogICAg
IG1fdGhyb3R0bGluZ1JlYXNvbnNPdmVycmlkZW5Gb3JUZXN0aW5nLmFkZChUaHJvdHRsaW5nUmVh
c29uOjpMb3dQb3dlck1vZGUpOwogfQogCit2b2lkIFBhZ2U6OnNldE91dHNpZGVWaWV3cG9ydFRo
cm90dGxpbmdFbmFibGVkRm9yVGVzdGluZyhib29sIGlzRW5hYmxlZCkKK3sKKyAgICBpZiAoIWlz
RW5hYmxlZCkKKyAgICAgICAgbV90aHJvdHRsaW5nUmVhc29uc092ZXJyaWRlbkZvclRlc3Rpbmcu
YWRkKFRocm90dGxpbmdSZWFzb246Ok91dHNpZGVWaWV3cG9ydCk7CisgICAgZWxzZQorICAgICAg
ICBtX3Rocm90dGxpbmdSZWFzb25zT3ZlcnJpZGVuRm9yVGVzdGluZy5yZW1vdmUoVGhyb3R0bGlu
Z1JlYXNvbjo6T3V0c2lkZVZpZXdwb3J0KTsKKworICAgIG1fdGhyb3R0bGluZ1JlYXNvbnMucmVt
b3ZlKFRocm90dGxpbmdSZWFzb246Ok91dHNpZGVWaWV3cG9ydCk7Cit9CisKIHZvaWQgUGFnZTo6
c2V0VG9wQ29udGVudEluc2V0KGZsb2F0IGNvbnRlbnRJbnNldCkKIHsKICAgICBpZiAobV90b3BD
b250ZW50SW5zZXQgPT0gY29udGVudEluc2V0KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHJldmlzaW9u
IDI2MTE5MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC03MjIsNyArNzIyLDkgQEAgcHVibGljOgogICAgIGJvb2wgbG9hZHNGcm9tTmV0d29yaygpIGNv
bnN0IHsgcmV0dXJuIG1fbG9hZHNGcm9tTmV0d29yazsgfQogCiAgICAgYm9vbCBpc0xvd1Bvd2Vy
TW9kZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Rocm90dGxpbmdSZWFzb25zLmNvbnRhaW5z
KFRocm90dGxpbmdSZWFzb246Okxvd1Bvd2VyTW9kZSk7IH0KKyAgICBib29sIGNhblVwZGF0ZVRo
cm90dGxpbmdSZWFzb24oVGhyb3R0bGluZ1JlYXNvbiByZWFzb24pIGNvbnN0IHsgcmV0dXJuICFt
X3Rocm90dGxpbmdSZWFzb25zT3ZlcnJpZGVuRm9yVGVzdGluZy5jb250YWlucyhyZWFzb24pOyB9
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRMb3dQb3dlck1vZGVFbmFibGVkT3ZlcnJpZGVG
b3JUZXN0aW5nKE9wdGlvbmFsPGJvb2w+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE91
dHNpZGVWaWV3cG9ydFRocm90dGxpbmdFbmFibGVkRm9yVGVzdGluZyhib29sKTsKIAogICAgIE9w
dGlvblNldDxUaHJvdHRsaW5nUmVhc29uPiB0aHJvdHRsaW5nUmVhc29ucygpIGNvbnN0IHsgcmV0
dXJuIG1fdGhyb3R0bGluZ1JlYXNvbnM7IH0KICAgICBTZWNvbmRzIHByZWZlcnJlZFJlbmRlcmlu
Z1VwZGF0ZUludGVydmFsKCkgY29uc3Q7CkBAIC03OTQsOCArNzk2LDYgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHVwZGF0ZURPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKTsKICAgICB2b2lkIGRvbVRp
bWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVyRmlyZWQoKTsKIAotICAgIGJvb2wgY2Fu
VXBkYXRlVGhyb3R0bGluZ1JlYXNvbihUaHJvdHRsaW5nUmVhc29uIHJlYXNvbikgY29uc3QgeyBy
ZXR1cm4gIW1fdGhyb3R0bGluZ1JlYXNvbnNPdmVycmlkZW5Gb3JUZXN0aW5nLmNvbnRhaW5zKHJl
YXNvbik7IH0KLQogICAgIHZvaWQgZG9BZnRlclVwZGF0ZVJlbmRlcmluZygpOwogCiAgICAgV2hl
ZWxFdmVudFRlc3RNb25pdG9yJiBlbnN1cmVXaGVlbEV2ZW50VGVzdE1vbml0b3IoKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZy
YW1lUmF0ZS5oCShyZXZpc2lvbiAyNjExOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIs
MTAgQEAgY29uc3RleHByIGNvbnN0IEZyYW1lc1BlclNlY29uZCBaZXJvRnJhbQogCiBpbmxpbmUg
U2Vjb25kcyBwcmVmZXJyZWRGcmFtZUludGVydmFsKGNvbnN0IE9wdGlvblNldDxUaHJvdHRsaW5n
UmVhc29uPiYgcmVhc29ucykKIHsKLSAgICAvLyBGSVhNRTogaGFuZGxlIFRocm90dGxpbmdSZWFz
b246OlZpc3VhbGx5SWRsZSwgVGhyb3R0bGluZ1JlYXNvbjo6T3V0c2lkZVZpZXdwb3J0CisgICAg
Ly8gRklYTUU6IGhhbmRsZSBUaHJvdHRsaW5nUmVhc29uOjpWaXN1YWxseUlkbGUKKyAgICBpZiAo
cmVhc29ucy5jb250YWlucyhUaHJvdHRsaW5nUmVhc29uOjpPdXRzaWRlVmlld3BvcnQpKQorICAg
ICAgICByZXR1cm4gQWdncmVzc2l2ZVRocm90dGxpbmdBbmltYXRpb25JbnRlcnZhbDsKKyAgICAK
ICAgICBpZiAocmVhc29ucy5jb250YWluc0FueSh7IFRocm90dGxpbmdSZWFzb246Okxvd1Bvd2Vy
TW9kZSwgVGhyb3R0bGluZ1JlYXNvbjo6Tm9uSW50ZXJhY3RlZENyb3NzT3JpZ2luRnJhbWUgfSkp
CiAgICAgICAgIHJldHVybiBIYWxmU3BlZWRUaHJvdHRsaW5nQW5pbWF0aW9uSW50ZXJ2YWw7CiAK
QEAgLTczLDExICs3NiwxMSBAQCBpbmxpbmUgRnJhbWVzUGVyU2Vjb25kIHByZWZlcnJlZEZyYW1l
c1BlCiAKIGlubGluZSBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25z
dCBPcHRpb25TZXQ8VGhyb3R0bGluZ1JlYXNvbj4mIHJlYXNvbnMpCiB7Ci0gICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOworICAgIGJvb2wgZGlkQXBwZW5kID0gZmFsc2U7CisKICAgICBmb3IgKGF1
dG8gcmVhc29uIDogcmVhc29ucykgewotICAgICAgICBpZiAoIWJ1aWxkZXIuaXNFbXB0eSgpKQor
ICAgICAgICBpZiAoZGlkQXBwZW5kKQogICAgICAgICAgICAgdHMgPDwgInwiOwotCiAgICAgICAg
IHN3aXRjaCAocmVhc29uKSB7CiAgICAgICAgIGNhc2UgVGhyb3R0bGluZ1JlYXNvbjo6VmlzdWFs
bHlJZGxlOgogICAgICAgICAgICAgdHMgPDwgIlZpc3VhbGx5SWRsZSI7CkBAIC05Miw3ICs5NSw5
IEBAIGlubGluZSBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0KICAgICAgICAgICAg
IHRzIDw8ICJOb25JbnRlcmFjdGl2ZUNyb3NzT3JpZ2luRnJhbWUiOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KKyAgICAgICAgZGlkQXBwZW5kID0gdHJ1ZTsKICAgICB9CisKICAgICBp
ZiAocmVhc29ucy5pc0VtcHR5KCkpCiAgICAgICAgIHRzIDw8ICJbVW50aHJvdHRsZWRdIjsKICAg
ICByZXR1cm4gdHM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCShyZXZp
c2lvbiAyNjExOTMpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU1Miw2ICs1NTIsNyBAQCB2b2lkIEludGVybmFsczo6cmVzZXRUb0Nv
bnNpc3RlbnRTdGF0ZShQCiAKICAgICBwYWdlLnNldFNob3dBbGxQbHVnaW5zKGZhbHNlKTsKICAg
ICBwYWdlLnNldExvd1Bvd2VyTW9kZUVuYWJsZWRPdmVycmlkZUZvclRlc3RpbmcoV1RGOjpudWxs
b3B0KTsKKyAgICBwYWdlLnNldE91dHNpZGVWaWV3cG9ydFRocm90dGxpbmdFbmFibGVkRm9yVGVz
dGluZyhmYWxzZSk7CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBNb2NrUHJldmlld0xvYWRl
ckNsaWVudDo6c2luZ2xldG9uKCkuc2V0UGFzc3dvcmQoIiIpOwpAQCAtMTgwMSw2ICsxODAyLDE5
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsczo6c2V0TG93UG93ZXIKICAgICByZXR1cm4g
eyB9OwogfQogCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnNldE91dHNpZGVWaWV3cG9y
dFRocm90dGxpbmdFbmFibGVkKGJvb2wgaXNFbmFibGVkKQoreworICAgIGF1dG8qIGRvY3VtZW50
ID0gY29udGV4dERvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworICAgIGF1dG8qIHBhZ2UgPSBkb2N1
bWVudC0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAgcGFnZS0+c2V0T3V0c2lkZVZpZXdwb3J0VGhy
b3R0bGluZ0VuYWJsZWRGb3JUZXN0aW5nKGlzRW5hYmxlZCk7CisgICAgcmV0dXJuIHsgfTsKK30K
KwogRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpzZXRTY3JvbGxWaWV3UG9zaXRpb24oaW50
IHgsIGludCB5KQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCShyZXZpc2lvbiAyNjExOTMpCisr
KyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NzIsNiArMjcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9udFNtb290aGluZ0VuYWJsZWQo
Ym9vbCk7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRMb3dQb3dlck1vZGVFbmFibGVkKGJv
b2wpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE91dHNpZGVWaWV3cG9ydFRocm90dGxpbmdF
bmFibGVkKGJvb2wpOwogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2Nyb2xsVmlld1Bvc2l0
aW9uKGludCB4LCBpbnQgeSk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gdW5jb25zdHJhaW5lZFNj
cm9sbFRvKEVsZW1lbnQmLCBkb3VibGUgeCwgZG91YmxlIHkpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAkocmV2aXNpb24gMjYxMTkzKQorKysgU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01NjEsNiArNTYxLDcgQEAg
ZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgYm9vbGVhbiBhcmVUaW1lcnNUaHJvdHRsZWQo
KTsKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBzZXRMb3dQb3dlck1vZGVFbmFibGVk
KGJvb2xlYW4gZW5hYmxlZCk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIHNldE91dHNp
ZGVWaWV3cG9ydFRocm90dGxpbmdFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGRvdWJsZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJbnRlcnZhbDsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBzY3JpcHRlZEFuaW1hdGlvbnNBcmVTdXNwZW5kZWQ7
CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MTE5MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA1LTA2ICBTYWlkIEFib3UtSGFs
bGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIHRoZSAnT3V0
c2lkZVZpZXdwb3J0JyByQUYgdGhyb3R0bGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNDgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHRlc3QgdG8gdmVyaWZ5IHRoZSBPdXRzaWRl
Vmlld3BvcnQgdGhyb3R0bGluZyBjYXNlLgorCisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVx
dWVzdC1hbmltYXRpb24tZnJhbWUtdGhyb3R0bGluZy1vdXRzaWRlLXZpZXdwb3J0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtdGhyb3R0bGluZy1vdXRzaWRlLXZpZXdwb3J0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvYW5pbWF0aW9uL3Jlc291cmNlcy9mcmFtZS13aXRoLWFuaW1hdGlvbi0yLmh0bWw6IEFk
ZGVkLgorCiAyMDIwLTA1LTA1ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBs
ZS5jb20+CiAKICAgICAgICAgWyBNYWMgXSBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS10aW1lc3RhbXBzLmh0bWwgaXMgZmxha3kgZmFpbGluZy4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRocm90dGxpbmctb3V0
c2lkZS12aWV3cG9ydC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGhyb3R0bGluZy1vdXRzaWRlLXZp
ZXdwb3J0LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aHJvdHRsaW5nLW91dHNpZGUtdmlld3Bv
cnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhh
dCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgZ2V0cyB0aGUgcmlnaHQgdGhyb3R0bGluZyBpbiBhbiBp
ZnJhbWUgd2hlbiB3aGVuIGl0J3Mgb3V0c2lkZSB0aGUgdmlld3BvcnQuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIGZyYW1lc1BlclNlY29uZCA+IDAgaXMgdHJ1ZQorUEFT
UyBpZnJhbWVGcmFtZXNQZXJTZWNvbmQgPT0gMCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGhyb3R0bGluZy1vdXRzaWRlLXZpZXdw
b3J0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtdGhyb3R0bGluZy1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwJKG5vbmV4
aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtdGhyb3R0bGluZy1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorICAgIDxkaXYg
c3R5bGU9ImhlaWdodDogMTAwMHB4OyI+PC9kaXY+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
ZGVzY3JpcHRpb24oIlRlc3QgdGhhdCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgZ2V0cyB0aGUgcmln
aHQgdGhyb3R0bGluZyBpbiBhbiBpZnJhbWUgd2hlbiB3aGVuIGl0J3Mgb3V0c2lkZSB0aGUgdmll
d3BvcnQuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNldE91dHNpZGVWaWV3cG9y
dFRocm90dGxpbmdFbmFibGVkKHRydWUpOworCisgICAgICAgIHZhciBmcmFtZXNQZXJTZWNvbmQg
PSAwOworICAgICAgICB2YXIgaWZyYW1lRnJhbWVzUGVyU2Vjb25kID0gMDsKKworICAgICAgICB3
aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZSl7CisgICAgICAgICAgICBpZiAoZS5kYXRhID09
ICdzdWJGcmFtZVJBRk1lc3NhZ2UnKSB7CisgICAgICAgICAgICAgICAgKytpZnJhbWVGcmFtZXNQ
ZXJTZWNvbmQ7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgY29uc3QgZnJh
bWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZnJhbWUuc3Jj
ID0gInJlc291cmNlcy9mcmFtZS13aXRoLWFuaW1hdGlvbi0yLmh0bWwiOworICAgICAgICBmcmFt
ZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciBzdGFydCA9IG51bGw7Cisg
ICAgICAgICAgICBmdW5jdGlvbiBkb1dvcmsodGltZXN0YW1wKSB7CisgICAgICAgICAgICAgICAg
aWYgKCFzdGFydCkKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0aW1lc3RhbXA7CisgICAg
ICAgICAgICAgICAgaWYgKHRpbWVzdGFtcCAtIHN0YXJ0IDwgMTAwMCkgeworICAgICAgICAgICAg
ICAgICAgICArK2ZyYW1lc1BlclNlY29uZDsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LnJl
cXVlc3RBbmltYXRpb25GcmFtZShkb1dvcmspOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJmcmFtZXNQ
ZXJTZWNvbmQgPiAwIik7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhlIE91dHNpZGVWaWV3
cG9ydCB0aHJvdHRsaW5nID0gMTBfcy4gc3ViRnJhbWVSQUZNZXNzYWdlCisgICAgICAgICAgICAg
ICAgICAgIC8vIHNob3VsZCBub3QgZXZlciBiZSByZWNlaXZlZCBkdXJpbmcgdGhlIGZpcnN0IHNl
Y29uZC4KKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJpZnJhbWVGcmFtZXNQZXJT
ZWNvbmQgPT0gMCIpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGRvV29yayk7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChmcmFtZSk7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVzb3VyY2VzL2ZyYW1lLXdpdGgtYW5p
bWF0aW9uLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9y
ZXNvdXJjZXMvZnJhbWUtd2l0aC1hbmltYXRpb24tMi5odG1sCShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Jlc291cmNlcy9mcmFtZS13aXRoLWFuaW1hdGlvbi0y
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3IEBACis8c2NyaXB0PgorICAgIGZ1bmN0
aW9uIGRvV29yayh0aW1lc3RhbXApIHsKKyAgICAgICAgd2luZG93LnRvcC5wb3N0TWVzc2FnZSgn
c3ViRnJhbWVSQUZNZXNzYWdlJywgJyonKTsKKyAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRp
b25GcmFtZShkb1dvcmspOworICAgIH0KKyAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1l
KGRvV29yayk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398697</attachid>
            <date>2020-05-06 19:12:21 -0700</date>
            <delta_ts>2020-05-13 16:28:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211482-20200506191220.patch</filename>
            <type>text/plain</type>
            <size>14126</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MTI2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA1LTA2ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUmUtZW5hYmxl
ICdPdXRzaWRlVmlld3BvcnQnIHJBRiB0aHJvdHRsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE0ODIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS10aHJvdHRsaW5nLW91dHNpZGUtdmlld3BvcnQuaHRtbAorCisgICAgICAg
IE1ha2UgcHJlZmVycmVkRnJhbWVJbnRlcnZhbCByZXR1cm4gQWdncmVzc2l2ZVRocm90dGxpbmdB
bmltYXRpb25JbnRlcnZhbAorICAgICAgICBpZiB0aGUgT3V0c2lkZVZpZXdwb3J0IHRocm90dGxp
bmcgcmVhc29uIGV4aXN0cy4KKworICAgICAgICBBZGQgYW4gaW50ZXJuYWwgc2V0dGluZyBmb3Ig
ZW5hYmxpbmcgJ091dHNpZGVWaWV3cG9ydCcgckFGIHRocm90dGxpbmcuIEl0CisgICAgICAgIGlz
IG9uIGJ5IGRlZmF1bHQgYnV0IGl0IGlzIG9mZiBieSBkZWZhdWx0IGZvciBEUlQgYW5kIFdUUi4g
QW4gSW50ZXJuYWxzCisgICAgICAgIEFQSSBpcyBhZGRlZCB0byBlbmFibGUgaXQgZm9yIHNwZWNp
ZmljIHRlc3RzIHdoaWNoIHdhbnQgdG8gdGVzdCBpdHMKKyAgICAgICAgZnVuY3Rpb25hbGl0eS4K
KworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6dXBkYXRlU2NyaXB0ZWRBbmltYXRpb25zQW5kVGltZXJzVGhyb3R0bGluZ1N0YXRlKToK
KyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0T3V0
c2lkZVZpZXdwb3J0VGhyb3R0bGluZ0VuYWJsZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBwYWdl
L1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmNhblVwZGF0ZVRocm90dGxpbmdSZWFz
b24gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6cHJlZmVycmVkRnJhbWVJbnRlcnZhbCk6CisgICAgICAg
IChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRPdXRzaWRlVmlld3BvcnRUaHJvdHRsaW5n
RW5hYmxlZCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjAtMDUtMDYgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbQ29udGVudE9ic2VydmF0aW9uXSBTaHV0dGVyc3RvY2sgc2Vh
cmNoIGJhciBpcyBub3QgYWN0aXZhdGVkIG9uIHRoZSBmaXJzdCB0YXAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDI2MTE5MykKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUyNywxNSArMjUyNywyMCBAQCB2
b2lkIEZyYW1lVmlldzo6dXBkYXRlU2NyaXB0ZWRBbmltYXRpb25zCiAKICAgICAvLyBXZSBkb24n
dCB0aHJvdHRsZSB6ZXJvLXNpemUgb3IgZGlzcGxheTpub25lIGZyYW1lcyBiZWNhdXNlIHRob3Nl
IGFyZSB1c3VhbGx5IHV0aWxpdHkgZnJhbWVzLgogICAgIGJvb2wgc2hvdWxkVGhyb3R0bGUgPSB2
aXNpYmxlUmVjdC5pc0VtcHR5KCkgJiYgIW1fc2l6ZS5pc0VtcHR5KCkgJiYgZnJhbWUoKS5vd25l
clJlbmRlcmVyKCk7CisgICAgZG9jdW1lbnQtPnNldFRpbWVyVGhyb3R0bGluZ0VuYWJsZWQoc2hv
dWxkVGhyb3R0bGUpOwogCi0gICAgaWYgKGF1dG8qIHNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxl
ciA9IGRvY3VtZW50LT5zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoKSkgewotICAgICAgICBp
ZiAoc2hvdWxkVGhyb3R0bGUpCi0gICAgICAgICAgICBzY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXItPmFkZFRocm90dGxpbmdSZWFzb24oVGhyb3R0bGluZ1JlYXNvbjo6T3V0c2lkZVZpZXdwb3J0
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
LT5yZW1vdmVUaHJvdHRsaW5nUmVhc29uKFRocm90dGxpbmdSZWFzb246Ok91dHNpZGVWaWV3cG9y
dCk7Ci0gICAgfQorICAgIGF1dG8qIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKTsKKyAgICBpZiAoIXBh
Z2UgfHwgIXBhZ2UtPmNhblVwZGF0ZVRocm90dGxpbmdSZWFzb24oVGhyb3R0bGluZ1JlYXNvbjo6
T3V0c2lkZVZpZXdwb3J0KSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGF1dG8qIHNjcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlciA9IGRvY3VtZW50LT5zY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXIoKTsKKyAgICBpZiAoIXNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcikKKyAgICAgICAg
cmV0dXJuOwogCi0gICAgZG9jdW1lbnQtPnNldFRpbWVyVGhyb3R0bGluZ0VuYWJsZWQoc2hvdWxk
VGhyb3R0bGUpOworICAgIGlmIChzaG91bGRUaHJvdHRsZSkKKyAgICAgICAgc2NyaXB0ZWRBbmlt
YXRpb25Db250cm9sbGVyLT5hZGRUaHJvdHRsaW5nUmVhc29uKFRocm90dGxpbmdSZWFzb246Ok91
dHNpZGVWaWV3cG9ydCk7CisgICAgZWxzZQorICAgICAgICBzY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXItPnJlbW92ZVRocm90dGxpbmdSZWFzb24oVGhyb3R0bGluZ1JlYXNvbjo6T3V0c2lkZVZp
ZXdwb3J0KTsKIH0KIAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlzaW9uIDI2MTE5MykK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOTAs
NiArMTE5MCwxNiBAQCB2b2lkIFBhZ2U6OnNldExvd1Bvd2VyTW9kZUVuYWJsZWRPdmVycmlkCiAg
ICAgbV90aHJvdHRsaW5nUmVhc29uc092ZXJyaWRlbkZvclRlc3RpbmcuYWRkKFRocm90dGxpbmdS
ZWFzb246Okxvd1Bvd2VyTW9kZSk7CiB9CiAKK3ZvaWQgUGFnZTo6c2V0T3V0c2lkZVZpZXdwb3J0
VGhyb3R0bGluZ0VuYWJsZWRGb3JUZXN0aW5nKGJvb2wgaXNFbmFibGVkKQoreworICAgIGlmICgh
aXNFbmFibGVkKQorICAgICAgICBtX3Rocm90dGxpbmdSZWFzb25zT3ZlcnJpZGVuRm9yVGVzdGlu
Zy5hZGQoVGhyb3R0bGluZ1JlYXNvbjo6T3V0c2lkZVZpZXdwb3J0KTsKKyAgICBlbHNlCisgICAg
ICAgIG1fdGhyb3R0bGluZ1JlYXNvbnNPdmVycmlkZW5Gb3JUZXN0aW5nLnJlbW92ZShUaHJvdHRs
aW5nUmVhc29uOjpPdXRzaWRlVmlld3BvcnQpOworCisgICAgbV90aHJvdHRsaW5nUmVhc29ucy5y
ZW1vdmUoVGhyb3R0bGluZ1JlYXNvbjo6T3V0c2lkZVZpZXdwb3J0KTsKK30KKwogdm9pZCBQYWdl
OjpzZXRUb3BDb250ZW50SW5zZXQoZmxvYXQgY29udGVudEluc2V0KQogewogICAgIGlmIChtX3Rv
cENvbnRlbnRJbnNldCA9PSBjb250ZW50SW5zZXQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkocmV2aXNp
b24gMjYxMTkzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTcyMiw3ICs3MjIsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBsb2Fkc0Zyb21OZXR3b3JrKCkg
Y29uc3QgeyByZXR1cm4gbV9sb2Fkc0Zyb21OZXR3b3JrOyB9CiAKICAgICBib29sIGlzTG93UG93
ZXJNb2RlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyb3R0bGluZ1JlYXNvbnMuY29udGFp
bnMoVGhyb3R0bGluZ1JlYXNvbjo6TG93UG93ZXJNb2RlKTsgfQorICAgIGJvb2wgY2FuVXBkYXRl
VGhyb3R0bGluZ1JlYXNvbihUaHJvdHRsaW5nUmVhc29uIHJlYXNvbikgY29uc3QgeyByZXR1cm4g
IW1fdGhyb3R0bGluZ1JlYXNvbnNPdmVycmlkZW5Gb3JUZXN0aW5nLmNvbnRhaW5zKHJlYXNvbik7
IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldExvd1Bvd2VyTW9kZUVuYWJsZWRPdmVycmlk
ZUZvclRlc3RpbmcoT3B0aW9uYWw8Ym9vbD4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
T3V0c2lkZVZpZXdwb3J0VGhyb3R0bGluZ0VuYWJsZWRGb3JUZXN0aW5nKGJvb2wpOwogCiAgICAg
T3B0aW9uU2V0PFRocm90dGxpbmdSZWFzb24+IHRocm90dGxpbmdSZWFzb25zKCkgY29uc3QgeyBy
ZXR1cm4gbV90aHJvdHRsaW5nUmVhc29uczsgfQogICAgIFNlY29uZHMgcHJlZmVycmVkUmVuZGVy
aW5nVXBkYXRlSW50ZXJ2YWwoKSBjb25zdDsKQEAgLTc5NCw4ICs3OTYsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgdXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpOwogICAgIHZvaWQgZG9t
VGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXJGaXJlZCgpOwogCi0gICAgYm9vbCBj
YW5VcGRhdGVUaHJvdHRsaW5nUmVhc29uKFRocm90dGxpbmdSZWFzb24gcmVhc29uKSBjb25zdCB7
IHJldHVybiAhbV90aHJvdHRsaW5nUmVhc29uc092ZXJyaWRlbkZvclRlc3RpbmcuY29udGFpbnMo
cmVhc29uKTsgfQotCiAgICAgdm9pZCBkb0FmdGVyVXBkYXRlUmVuZGVyaW5nKCk7CiAKICAgICBX
aGVlbEV2ZW50VGVzdE1vbml0b3ImIGVuc3VyZVdoZWVsRXZlbnRUZXN0TW9uaXRvcigpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVSYXRlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9u
RnJhbWVSYXRlLmgJKHJldmlzaW9uIDI2MTE5MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1
MiwxMCBAQCBjb25zdGV4cHIgY29uc3QgRnJhbWVzUGVyU2Vjb25kIFplcm9GcmFtCiAKIGlubGlu
ZSBTZWNvbmRzIHByZWZlcnJlZEZyYW1lSW50ZXJ2YWwoY29uc3QgT3B0aW9uU2V0PFRocm90dGxp
bmdSZWFzb24+JiByZWFzb25zKQogewotICAgIC8vIEZJWE1FOiBoYW5kbGUgVGhyb3R0bGluZ1Jl
YXNvbjo6VmlzdWFsbHlJZGxlLCBUaHJvdHRsaW5nUmVhc29uOjpPdXRzaWRlVmlld3BvcnQKKyAg
ICAvLyBGSVhNRTogaGFuZGxlIFRocm90dGxpbmdSZWFzb246OlZpc3VhbGx5SWRsZQorICAgIGlm
IChyZWFzb25zLmNvbnRhaW5zKFRocm90dGxpbmdSZWFzb246Ok91dHNpZGVWaWV3cG9ydCkpCisg
ICAgICAgIHJldHVybiBBZ2dyZXNzaXZlVGhyb3R0bGluZ0FuaW1hdGlvbkludGVydmFsOworICAg
IAogICAgIGlmIChyZWFzb25zLmNvbnRhaW5zQW55KHsgVGhyb3R0bGluZ1JlYXNvbjo6TG93UG93
ZXJNb2RlLCBUaHJvdHRsaW5nUmVhc29uOjpOb25JbnRlcmFjdGVkQ3Jvc3NPcmlnaW5GcmFtZSB9
KSkKICAgICAgICAgcmV0dXJuIEhhbGZTcGVlZFRocm90dGxpbmdBbmltYXRpb25JbnRlcnZhbDsK
IApAQCAtNzMsMTEgKzc2LDExIEBAIGlubGluZSBGcmFtZXNQZXJTZWNvbmQgcHJlZmVycmVkRnJh
bWVzUGUKIAogaW5saW5lIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IE9wdGlvblNldDxUaHJvdHRsaW5nUmVhc29uPiYgcmVhc29ucykKIHsKLSAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CisgICAgYm9vbCBkaWRBcHBlbmQgPSBmYWxzZTsKKwogICAgIGZvciAo
YXV0byByZWFzb24gOiByZWFzb25zKSB7Ci0gICAgICAgIGlmICghYnVpbGRlci5pc0VtcHR5KCkp
CisgICAgICAgIGlmIChkaWRBcHBlbmQpCiAgICAgICAgICAgICB0cyA8PCAifCI7Ci0KICAgICAg
ICAgc3dpdGNoIChyZWFzb24pIHsKICAgICAgICAgY2FzZSBUaHJvdHRsaW5nUmVhc29uOjpWaXN1
YWxseUlkbGU6CiAgICAgICAgICAgICB0cyA8PCAiVmlzdWFsbHlJZGxlIjsKQEAgLTkyLDcgKzk1
LDkgQEAgaW5saW5lIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbQogICAgICAgICAg
ICAgdHMgPDwgIk5vbkludGVyYWN0aXZlQ3Jvc3NPcmlnaW5GcmFtZSI7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQorICAgICAgICBkaWRBcHBlbmQgPSB0cnVlOwogICAgIH0KKwogICAg
IGlmIChyZWFzb25zLmlzRW1wdHkoKSkKICAgICAgICAgdHMgPDwgIltVbnRocm90dGxlZF0iOwog
ICAgIHJldHVybiB0czsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJl
dmlzaW9uIDI2MTE5MykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTUyLDYgKzU1Miw3IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNldFRv
Q29uc2lzdGVudFN0YXRlKFAKIAogICAgIHBhZ2Uuc2V0U2hvd0FsbFBsdWdpbnMoZmFsc2UpOwog
ICAgIHBhZ2Uuc2V0TG93UG93ZXJNb2RlRW5hYmxlZE92ZXJyaWRlRm9yVGVzdGluZyhXVEY6Om51
bGxvcHQpOworICAgIHBhZ2Uuc2V0T3V0c2lkZVZpZXdwb3J0VGhyb3R0bGluZ0VuYWJsZWRGb3JU
ZXN0aW5nKGZhbHNlKTsKIAogI2lmIFVTRShRVUlDS19MT09LKQogICAgIE1vY2tQcmV2aWV3TG9h
ZGVyQ2xpZW50OjpzaW5nbGV0b24oKS5zZXRQYXNzd29yZCgiIik7CkBAIC0xODAxLDYgKzE4MDIs
MTkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpzZXRMb3dQb3dlcgogICAgIHJldHVy
biB7IH07CiB9CiAKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsczo6c2V0T3V0c2lkZVZpZXdw
b3J0VGhyb3R0bGluZ0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpCit7CisgICAgYXV0byogZG9jdW1l
bnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisgICAgYXV0byogcGFnZSA9IGRv
Y3VtZW50LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisKKyAgICBwYWdlLT5zZXRPdXRzaWRlVmlld3BvcnRU
aHJvdHRsaW5nRW5hYmxlZEZvclRlc3RpbmcoaXNFbmFibGVkKTsKKyAgICByZXR1cm4geyB9Owor
fQorCiBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnNldFNjcm9sbFZpZXdQb3NpdGlvbihp
bnQgeCwgaW50IHkpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9uIDI2MTE5MykK
KysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3Miw2ICsyNzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGb250U21vb3RoaW5nRW5hYmxl
ZChib29sKTsKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldExvd1Bvd2VyTW9kZUVuYWJsZWQo
Ym9vbCk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0T3V0c2lkZVZpZXdwb3J0VGhyb3R0bGlu
Z0VuYWJsZWQoYm9vbCk7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTY3JvbGxWaWV3UG9z
aXRpb24oaW50IHgsIGludCB5KTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB1bmNvbnN0cmFpbmVk
U2Nyb2xsVG8oRWxlbWVudCYsIGRvdWJsZSB4LCBkb3VibGUgeSk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAyNjExOTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTU2MSw2ICs1NjEsNyBA
QCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBib29sZWFuIGFyZVRpbWVyc1Rocm90dGxl
ZCgpOwogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIHNldExvd1Bvd2VyTW9kZUVuYWJs
ZWQoYm9vbGVhbiBlbmFibGVkKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgc2V0T3V0
c2lkZVZpZXdwb3J0VGhyb3R0bGluZ0VuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgZG91YmxlIHJlcXVlc3RBbmltYXRpb25GcmFtZUludGVydmFsOwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHNjcmlwdGVkQW5pbWF0aW9uc0FyZVN1c3BlbmRl
ZDsKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjYxMTkzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDUtMDYgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgdGhlICdP
dXRzaWRlVmlld3BvcnQnIHJBRiB0aHJvdHRsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE0ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLXRocm90dGxlLXN1YmZyYW1lLmh0bWw6CisgICAgICAgIEVuYWJsZSAnT3V0c2lkZVZp
ZXdwb3J0JyByQUYgdGhyb3R0bGluZyBmb3IgdGhlIGxheW91dCB0ZXN0LgorCisgICAgICAgICog
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGhyb3R0bGluZy1vdXRzaWRl
LXZpZXdwb3J0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9hbmltYXRpb24v
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGhyb3R0bGluZy1vdXRzaWRlLXZpZXdwb3J0Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Jlc291cmNlcy9mcmFtZS13aXRoLWFu
aW1hdGlvbi0yLmh0bWw6IEFkZGVkLgorICAgICAgICBBIG5ldyB0ZXN0IHRvIHZlcmlmeSB0aGUg
T3V0c2lkZVZpZXdwb3J0IHRocm90dGxpbmcgY2FzZS4KKwogMjAyMC0wNS0wNSAgU2FpZCBBYm91
LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFsgTWFjIF0gZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5odG1sIGlzIGZs
YWt5IGZhaWxpbmcuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS10aHJvdHRsZS1zdWJmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRocm90dGxlLXN1
YmZyYW1lLmh0bWwJKHJldmlzaW9uIDI2MTE5MykKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0
aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRocm90dGxlLXN1YmZyYW1lLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTYsNiArNiw5IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZXF1ZXN0
QW5pbWF0aW9uRnJhbWUgaXMgdGhyb3R0bGVkIGluIHN1YmZyYW1lcyB0aGF0IGFyZSBvdXRzaWRl
IHRoZSB2aWV3cG9ydCIpOwogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2lu
ZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0T3V0c2lkZVZpZXdwb3J0VGhyb3R0bGlu
Z0VuYWJsZWQodHJ1ZSk7CisKIGZ1bmN0aW9uIGNoZWNrU3ViZnJhbWVzVGhyb3R0bGVkKCkKIHsK
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RGcmFtZS5jb250ZW50V2luZG93LmludGVy
bmFscy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVUaHJvdHRsaW5nUmVhc29ucygpIiwgIk91dHNpZGVW
aWV3cG9ydCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtdGhyb3R0bGluZy1vdXRzaWRlLXZpZXdwb3J0LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS10aHJvdHRsaW5nLW91dHNpZGUtdmlld3BvcnQtZXhwZWN0ZWQudHh0CShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LXRocm90dGxpbmctb3V0c2lkZS12aWV3cG9ydC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMSBAQAorVGVzdCB0aGF0IHJlcXVlc3RBbmltYXRpb25GcmFtZSBnZXRzIHRo
ZSByaWdodCB0aHJvdHRsaW5nIGluIGFuIGlmcmFtZSB3aGVuIHdoZW4gaXQncyBvdXRzaWRlIHRo
ZSB2aWV3cG9ydC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZnJhbWVz
UGVyU2Vjb25kID4gMCBpcyB0cnVlCitQQVNTIGlmcmFtZUZyYW1lc1BlclNlY29uZCA9PSAwIGlz
IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS10aHJvdHRsaW5nLW91dHNpZGUtdmlld3BvcnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aHJvdHRsaW5nLW91
dHNpZGUtdmlld3BvcnQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aHJvdHRsaW5nLW91dHNpZGUtdmlld3Bv
cnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGJvZHk+CisgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMDAwcHg7Ij48L2Rpdj4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHJlcXVlc3RB
bmltYXRpb25GcmFtZSBnZXRzIHRoZSByaWdodCB0aHJvdHRsaW5nIGluIGFuIGlmcmFtZSB3aGVu
IHdoZW4gaXQncyBvdXRzaWRlIHRoZSB2aWV3cG9ydC4iKTsKKyAgICAgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBp
bnRlcm5hbHMuc2V0T3V0c2lkZVZpZXdwb3J0VGhyb3R0bGluZ0VuYWJsZWQodHJ1ZSk7CisKKyAg
ICAgICAgdmFyIGZyYW1lc1BlclNlY29uZCA9IDA7CisgICAgICAgIHZhciBpZnJhbWVGcmFtZXNQ
ZXJTZWNvbmQgPSAwOworCisgICAgICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKXsK
KyAgICAgICAgICAgIGlmIChlLmRhdGEgPT0gJ3N1YkZyYW1lUkFGTWVzc2FnZScpIHsKKyAgICAg
ICAgICAgICAgICArK2lmcmFtZUZyYW1lc1BlclNlY29uZDsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfTsKKworICAgICAgICBjb25zdCBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICAgICAgICBmcmFtZS5zcmMgPSAicmVzb3VyY2VzL2ZyYW1lLXdpdGgtYW5pbWF0
aW9uLTIuaHRtbCI7CisgICAgICAgIGZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgdmFyIHN0YXJ0ID0gbnVsbDsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGRvV29yayh0aW1l
c3RhbXApIHsKKyAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0KQorICAgICAgICAgICAgICAgICAg
ICBzdGFydCA9IHRpbWVzdGFtcDsKKyAgICAgICAgICAgICAgICBpZiAodGltZXN0YW1wIC0gc3Rh
cnQgPCAxMDAwKSB7CisgICAgICAgICAgICAgICAgICAgICsrZnJhbWVzUGVyU2Vjb25kOworICAg
ICAgICAgICAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvV29yayk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZVRydWUoImZyYW1lc1BlclNlY29uZCA+IDAiKTsKKworICAgICAgICAgICAg
ICAgICAgICAvLyBUaGUgT3V0c2lkZVZpZXdwb3J0IHRocm90dGxpbmcgPSAxMF9zLiBzdWJGcmFt
ZVJBRk1lc3NhZ2UKKyAgICAgICAgICAgICAgICAgICAgLy8gc2hvdWxkIG5vdCBldmVyIGJlIHJl
Y2VpdmVkIGR1cmluZyB0aGUgZmlyc3Qgc2Vjb25kLgorICAgICAgICAgICAgICAgICAgICBzaG91
bGRCZVRydWUoImlmcmFtZUZyYW1lc1BlclNlY29uZCA9PSAwIik7CisgICAgICAgICAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZG9Xb3JrKTsKKyAgICAgICAg
fQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKKyAgICA8L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlv
bi9yZXNvdXJjZXMvZnJhbWUtd2l0aC1hbmltYXRpb24tMi5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Jlc291cmNlcy9mcmFtZS13aXRoLWFuaW1hdGlvbi0y
Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVzb3Vy
Y2VzL2ZyYW1lLXdpdGgtYW5pbWF0aW9uLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDcgQEAKKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gZG9Xb3JrKHRpbWVzdGFtcCkgeworICAgICAg
ICB3aW5kb3cudG9wLnBvc3RNZXNzYWdlKCdzdWJGcmFtZVJBRk1lc3NhZ2UnLCAnKicpOworICAg
ICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvV29yayk7CisgICAgfQorICAgIHdp
bmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZG9Xb3JrKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>