<?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>186856</bug_id>
          
          <creation_ts>2018-06-20 10:56:58 -0700</creation_ts>
          <short_desc>[Fullscreen] Suspend page (and pause video) while phishing warining is presented</short_desc>
          <delta_ts>2018-12-18 13:50:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jeremyj-wk</cc>
    
    <cc>jonlee</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1434843</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-06-20 10:56:58 -0700</bug_when>
    <thetext>[Fullscreen] Suspend page (and pause video) while phishing warining is presented</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1434844</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-06-20 10:57:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/41212444&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1434845</commentid>
    <comment_count>2</comment_count>
      <attachid>343164</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-06-20 10:59:01 -0700</bug_when>
    <thetext>Created attachment 343164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435044</commentid>
    <comment_count>3</comment_count>
      <attachid>343164</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-06-21 00:47:07 -0700</bug_when>
    <thetext>Comment on attachment 343164
Patch

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

&gt; Source/WebKit/ChangeLog:3
&gt; +        [Fullscreen] Suspend page (and pause video) while phishing warining is presented

warining?

&gt; Source/WebCore/html/HTMLMediaElement.cpp:5603
&gt; +                m_shouldUnpauseInternalOnResume = true;
&gt; +                setPausedInternal(true);

This could use an explanation in the changelog.

&gt; Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm:453
&gt; +        page-&gt;suspendActiveDOMObjectsAndAnimations();

Should we also suspend/defer layer tree commits? Is this enough to actually stop painting? Do you even care?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435159</commentid>
    <comment_count>4</comment_count>
      <attachid>343249</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-06-21 11:05:55 -0700</bug_when>
    <thetext>Created attachment 343249
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435160</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-06-21 11:07:13 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #3)
&gt; Comment on attachment 343164 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=343164&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:3
&gt; &gt; +        [Fullscreen] Suspend page (and pause video) while phishing warining is presented
&gt; 
&gt; warining?

Changed.

&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:5603
&gt; &gt; +                m_shouldUnpauseInternalOnResume = true;
&gt; &gt; +                setPausedInternal(true);
&gt; 
&gt; This could use an explanation in the changelog.

Added.

&gt; &gt; Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm:453
&gt; &gt; +        page-&gt;suspendActiveDOMObjectsAndAnimations();
&gt; 
&gt; Should we also suspend/defer layer tree commits? Is this enough to actually
&gt; stop painting? Do you even care?

No, this should be sufficient; JS stops running as a result of this call, so between that and video playback pausing, that should be keep anything from painting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435162</commentid>
    <comment_count>6</comment_count>
      <attachid>343250</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-06-21 11:09:01 -0700</bug_when>
    <thetext>Created attachment 343250
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435178</commentid>
    <comment_count>7</comment_count>
      <attachid>343250</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-21 11:47:53 -0700</bug_when>
    <thetext>Comment on attachment 343250
Patch for landing

Clearing flags on attachment: 343250

Committed r233049: &lt;https://trac.webkit.org/changeset/233049&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435179</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-21 11:47:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489045</commentid>
    <comment_count>9</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-12-18 13:50:05 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489046</commentid>
    <comment_count>10</comment_count>
      <attachid>357608</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-12-18 13:50:06 -0800</bug_when>
    <thetext>Created attachment 357608
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343164</attachid>
            <date>2018-06-20 10:59:01 -0700</date>
            <delta_ts>2018-06-21 11:05:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186856-20180620105901.patch</filename>
            <type>text/plain</type>
            <size>5540</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyOTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODNlMzRkMzc5OWRkZjAz
ZGZkMTMxZDEyMWRlY2Y2NGNjNjRlYzM5My4uNTBlMzQ3ZjZkNDM0ZTc3NWZjZWM2MDk1NTUxMjcz
ZmQyYzkzZGM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTA2LTIwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtGdWxsc2NyZWVuXSBTdXNw
ZW5kIHBhZ2UgKGFuZCBwYXVzZSB2aWRlbykgd2hpbGUgcGhpc2hpbmcgd2FyaW5pbmcgaXMgcHJl
c2VudGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODY4NTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQxMjEyNDQ0PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3VzcGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpyZXN1bWUpOgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5oOgorCiAyMDE4LTA2LTE5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgogCiAgICAgICAgIFtGdWxsc2NyZWVuXSBQYWdlIHNvbWV0aW1lcyBlbmRzIHVw
IHdpdGggYW4gaW5jb3JyZWN0IHpvb20gbGV2ZWwgYWZ0ZXIgZW50ZXJpbmcgZnVsbHNjcmVlbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCA3MGVmYzY0NjZjOWMxY2JjMWYxNmRkMDJlMTNlYzRhOGVlYTljYzk4Li5iMzY2
YzU5OWQxMTkyYmNiN2NiNWQzMDhhYTFkMmVmOWUwYzA5ODI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDE4LTA2LTIwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisg
ICAgICAgIFtGdWxsc2NyZWVuXSBTdXNwZW5kIHBhZ2UgKGFuZCBwYXVzZSB2aWRlbykgd2hpbGUg
cGhpc2hpbmcgd2FyaW5pbmcgaXMgcHJlc2VudGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY4NTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQx
MjEyNDQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1t
OgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBfc2hvd1BoaXNoaW5nQWxl
cnRdKToKKwogMjAxOC0wNi0xOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbRnVsbHNjcmVlbl0gRXhpdCBmdWxsc2NyZWVuIHdoZW4gb3BlbmluZyBhIG5ldyB0
YWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGY2YjVlMzYx
ZGQ5YTgyNDE2YjFiZTI1Nzg4M2Y2MzcwY2Q0YzkzZTQuLjQ0YTBkMThhZjE2NmZhYmZlMjRmNTUy
NjJiZTA2OGRiYmQzZGQwNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcApAQCAtNDkwLDYgKzQ5MCw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtCiAgICAgLCBt
X2hhdmVTZXRVcENhcHRpb25Db250YWluZXIoZmFsc2UpCiAjZW5kaWYKICAgICAsIG1faXNTY3J1
YmJpbmdSZW1vdGVseShmYWxzZSkKKyAgICAsIG1fc2hvdWxkVW5wYXVzZUludGVybmFsT25SZXN1
bWUoZmFsc2UpCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICwgbV90cmFja3NBcmVSZWFk
eSh0cnVlKQogICAgICwgbV9oYXZlVmlzaWJsZVRleHRUcmFjayhmYWxzZSkKQEAgLTU1OTYsOCAr
NTU5NywxMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVu
c2lvbiB3aHkpCiAgICAgICAgICAgICBzZXRTaG91bGRCdWZmZXJEYXRhKGZhbHNlKTsKICAgICAg
ICAgICAgIG1fbWVkaWFTZXNzaW9uLT5hZGRCZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlhRWxlbWVu
dFNlc3Npb246OlJlcXVpcmVQYWdlQ29uc2VudFRvUmVzdW1lTWVkaWEpOwogICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgSmF2YVNjcmlwdERlYnVnZ2VyUGF1c2VkOgogICAgICAgICBj
YXNlIFBhZ2VXaWxsQmVTdXNwZW5kZWQ6CisgICAgICAgICAgICBpZiAoIW1fcGF1c2VkSW50ZXJu
YWwpIHsKKyAgICAgICAgICAgICAgICBtX3Nob3VsZFVucGF1c2VJbnRlcm5hbE9uUmVzdW1lID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICBzZXRQYXVzZWRJbnRlcm5hbCh0cnVlKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEphdmFTY3JpcHREZWJ1Z2dl
clBhdXNlZDoKICAgICAgICAgY2FzZSBXaWxsRGVmZXJMb2FkaW5nOgogICAgICAgICAgICAgLy8g
RG8gbm90aGluZywgd2UgZG9uJ3QgcGF1c2UgbWVkaWEgcGxheWJhY2sgaW4gdGhlc2UgY2FzZXMu
CiAgICAgICAgICAgICBicmVhazsKQEAgLTU2MTIsNiArNTYxOCwxMSBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnJlc3VtZSgpCiAKICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5yZXN1bWUoKTsKIAor
ICAgIGlmIChtX3Nob3VsZFVucGF1c2VJbnRlcm5hbE9uUmVzdW1lKSB7CisgICAgICAgIG1fc2hv
dWxkVW5wYXVzZUludGVybmFsT25SZXN1bWUgPSBmYWxzZTsKKyAgICAgICAgc2V0UGF1c2VkSW50
ZXJuYWwoZmFsc2UpOworICAgIH0KKwogICAgIHNldFNob3VsZEJ1ZmZlckRhdGEodHJ1ZSk7CiAK
ICAgICBpZiAoIW1fbWVkaWFTZXNzaW9uLT5wYWdlQWxsb3dzUGxheWJhY2tBZnRlclJlc3VtaW5n
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDNlZTg4MWE2YjRl
Mjk0ZmRlY2QwZTllYjIxZWIzNGMxMzI3YTdjMGUuLjU2NjBkZjkyNjk3MzM2NDg3MDMwZmZmMTI1
YWMxZGEwMDAxNDcxNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBA
IC0xMDgzLDYgKzEwODMsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2lzU2NydWJiaW5nUmVt
b3RlbHkgOiAxOwogICAgIGJvb2wgbV93YWl0aW5nVG9FbnRlckZ1bGxzY3JlZW4gOiAxOworICAg
IGJvb2wgbV9zaG91bGRVbnBhdXNlSW50ZXJuYWxPblJlc3VtZSA6IDE7CiAKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCiAgICAgYm9vbCBtX3RyYWNrc0FyZVJlYWR5IDogMTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdD
b250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tG
dWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KaW5kZXggZTMyNTY5NmI2YjNiZGZjNzBkNDg1MTI5
MDg2ODVjN2Y5ZGIxMDViNS4uM2YyODFmNTFjMzkwZDBkZmE2Njc1YWQ4YTk0OTdhMmMzOGI1NjY3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tG
dWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KQEAgLTQ0OSwxMSAr
NDQ5LDE4IEBAIC0gKHZvaWQpX3Nob3dQaGlzaGluZ0FsZXJ0CiAgICAgTlNTdHJpbmcgKmFsZXJ0
TWVzc2FnZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIlRoZSB3
ZWJzaXRlIOKAnCVA4oCdIG1heSB0cnkgdG8gdHJpY2sgeW91IGludG8gZG9pbmcgc29tZXRoaW5n
IGRhbmdlcm91cywgbGlrZSBpbnN0YWxsaW5nIHNvZnR3YXJlIG9yIGRpc2Nsb3NpbmcgcGVyc29u
YWwgb3IgZmluYW5jaWFsIGluZm9ybWF0aW9uLCBsaWtlIHBhc3N3b3JkcywgcGhvbmUgbnVtYmVy
cywgb3IgY3JlZGl0IGNhcmRzLiIsICJGdWxsc2NyZWVuIERlY2VwdGl2ZSBXZWJzaXRlIFdhcm5p
bmcgU2hlZXQgQ29udGVudCBUZXh0IikgLCAoTlNTdHJpbmcgKilzZWxmLmxvY2F0aW9uXTsKICAg
ICBVSUFsZXJ0Q29udHJvbGxlciogYWxlcnQgPSBbVUlBbGVydENvbnRyb2xsZXIgYWxlcnRDb250
cm9sbGVyV2l0aFRpdGxlOmFsZXJ0VGl0bGUgbWVzc2FnZTphbGVydE1lc3NhZ2UgcHJlZmVycmVk
U3R5bGU6VUlBbGVydENvbnRyb2xsZXJTdHlsZUFsZXJ0XTsKIAorICAgIGlmIChhdXRvKiBwYWdl
ID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdKQorICAgICAgICBwYWdlLT5zdXNwZW5kQWN0aXZlRE9N
T2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKKwogICAgIFVJQWxlcnRBY3Rpb24qIGV4aXRBY3Rpb24g
PSBbVUlBbGVydEFjdGlvbiBhY3Rpb25XaXRoVGl0bGU6V0VCX1VJX1NUUklORygiRXhpdCBGdWxs
c2NyZWVuIiwgIkZ1bGxzY3JlZW4gRGVjZXB0aXZlIFdlYnNpdGUgRXhpdCBBY3Rpb24iKSBzdHls
ZTpVSUFsZXJ0QWN0aW9uU3R5bGVDYW5jZWwgaGFuZGxlcjpeKFVJQWxlcnRBY3Rpb24gKiBhY3Rp
b24pIHsKICAgICAgICAgW3NlbGYgX2NhbmNlbEFjdGlvbjphY3Rpb25dOworICAgICAgICBpZiAo
YXV0byogcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkKKyAgICAgICAgICAgIHBhZ2UtPnJl
c3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CiAgICAgfV07CiAKICAgICBVSUFs
ZXJ0QWN0aW9uKiBzdGF5QWN0aW9uID0gW1VJQWxlcnRBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOldF
Ql9VSV9TVFJJTkcoIlN0YXkgaW4gRnVsbHNjcmVlbiIsICJGdWxsc2NyZWVuIERlY2VwdGl2ZSBX
ZWJzaXRlIFN0YXkgQWN0aW9uIikgc3R5bGU6VUlBbGVydEFjdGlvblN0eWxlRGVmYXVsdCBoYW5k
bGVyOl4oVUlBbGVydEFjdGlvbiAqIGFjdGlvbikgeworICAgICAgICBpZiAoYXV0byogcGFnZSA9
IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkKKyAgICAgICAgICAgIHBhZ2UtPnJlc3VtZUFjdGl2ZURP
TU9iamVjdHNBbmRBbmltYXRpb25zKCk7CiAgICAgICAgIF9zZWNoZXVyaXN0aWMucmVzZXQoKTsK
ICAgICB9XTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343249</attachid>
            <date>2018-06-21 11:05:55 -0700</date>
            <delta_ts>2018-06-21 11:08:38 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-186856-20180621110555.patch</filename>
            <type>text/plain</type>
            <size>5636</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzMDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDgzMzhiYmQ2ZjlkYzQy
MjY0MDdkMWQ0NmUwMTY5ZjhlMTliZWZjNy4uY2U5MDJhNTJkNzM0YTkwYTYwOGI4ODBlMzI3NjA4
NTM5ZTIyNjM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA2LTIwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtGdWxsc2NyZWVuXSBTdXNw
ZW5kIHBhZ2UgKGFuZCBwYXVzZSB2aWRlbykgd2hpbGUgcGhpc2hpbmcgd2FybmluZyBpcyBwcmVz
ZW50ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
Njg1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDEyMTI0NDQ+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGF1c2UgdGhlIG1lZGlhIGVsZW1lbnQg
d2hlbiB0aGUgcGFnZSBpcyBzdXNwZW5kZWQsIGFuZCB1bnBhdXNlIHdoZW4gdGhlIHBhZ2UgcmVz
dW1lcy4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6cmVzdW1lKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
aDoKKwogMjAxOC0wNi0xOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbRnVsbHNjcmVlbl0gUGFnZSBzb21ldGltZXMgZW5kcyB1cCB3aXRoIGFuIGluY29ycmVj
dCB6b29tIGxldmVsIGFmdGVyIGVudGVyaW5nIGZ1bGxzY3JlZW4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDE5NWFi
ODZiYmQyNWNlNWQ2NzM4Njk2YWJmZTlkYWNkOGYzZGI5YS4uZTQzNGI0ODcwNjdkOWQ0YWU5Yzlk
M2ZlY2IyMGYzNWEyNTgyMzRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0wNi0y
MCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbRnVsbHNjcmVl
bl0gU3VzcGVuZCBwYWdlIChhbmQgcGF1c2UgdmlkZW8pIHdoaWxlIHBoaXNoaW5nIHdhcm5pbmcg
aXMgcHJlc2VudGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODY4NTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQxMjEyNDQ0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9m
dWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0Z1
bGxTY3JlZW5WaWV3Q29udHJvbGxlciBfc2hvd1BoaXNoaW5nQWxlcnRdKToKKwogMjAxOC0wNi0x
OSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbRnVsbHNjcmVl
bl0gRXhpdCBmdWxsc2NyZWVuIHdoZW4gb3BlbmluZyBhIG5ldyB0YWIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGY2YjVlMzYxZGQ5YTgyNDE2YjFiZTI1Nzg4
M2Y2MzcwY2Q0YzkzZTQuLjQ0YTBkMThhZjE2NmZhYmZlMjRmNTUyNjJiZTA2OGRiYmQzZGQwNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDkwLDYgKzQ5
MCw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtCiAgICAgLCBtX2hhdmVTZXRVcENhcHRpb25D
b250YWluZXIoZmFsc2UpCiAjZW5kaWYKICAgICAsIG1faXNTY3J1YmJpbmdSZW1vdGVseShmYWxz
ZSkKKyAgICAsIG1fc2hvdWxkVW5wYXVzZUludGVybmFsT25SZXN1bWUoZmFsc2UpCiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQogICAgICwgbV90cmFja3NBcmVSZWFkeSh0cnVlKQogICAgICwgbV9o
YXZlVmlzaWJsZVRleHRUcmFjayhmYWxzZSkKQEAgLTU1OTYsOCArNTU5NywxMyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiB3aHkpCiAgICAgICAg
ICAgICBzZXRTaG91bGRCdWZmZXJEYXRhKGZhbHNlKTsKICAgICAgICAgICAgIG1fbWVkaWFTZXNz
aW9uLT5hZGRCZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVQ
YWdlQ29uc2VudFRvUmVzdW1lTWVkaWEpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgSmF2YVNjcmlwdERlYnVnZ2VyUGF1c2VkOgogICAgICAgICBjYXNlIFBhZ2VXaWxsQmVTdXNw
ZW5kZWQ6CisgICAgICAgICAgICBpZiAoIW1fcGF1c2VkSW50ZXJuYWwpIHsKKyAgICAgICAgICAg
ICAgICBtX3Nob3VsZFVucGF1c2VJbnRlcm5hbE9uUmVzdW1lID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICBzZXRQYXVzZWRJbnRlcm5hbCh0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEphdmFTY3JpcHREZWJ1Z2dlclBhdXNlZDoKICAgICAgICAg
Y2FzZSBXaWxsRGVmZXJMb2FkaW5nOgogICAgICAgICAgICAgLy8gRG8gbm90aGluZywgd2UgZG9u
J3QgcGF1c2UgbWVkaWEgcGxheWJhY2sgaW4gdGhlc2UgY2FzZXMuCiAgICAgICAgICAgICBicmVh
azsKQEAgLTU2MTIsNiArNTYxOCwxMSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlc3VtZSgp
CiAKICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5yZXN1bWUoKTsKIAorICAgIGlmIChtX3Nob3VsZFVu
cGF1c2VJbnRlcm5hbE9uUmVzdW1lKSB7CisgICAgICAgIG1fc2hvdWxkVW5wYXVzZUludGVybmFs
T25SZXN1bWUgPSBmYWxzZTsKKyAgICAgICAgc2V0UGF1c2VkSW50ZXJuYWwoZmFsc2UpOworICAg
IH0KKwogICAgIHNldFNob3VsZEJ1ZmZlckRhdGEodHJ1ZSk7CiAKICAgICBpZiAoIW1fbWVkaWFT
ZXNzaW9uLT5wYWdlQWxsb3dzUGxheWJhY2tBZnRlclJlc3VtaW5nKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDNlZTg4MWE2YjRlMjk0ZmRlY2QwZTllYjIxZWIz
NGMxMzI3YTdjMGUuLjU2NjBkZjkyNjk3MzM2NDg3MDMwZmZmMTI1YWMxZGEwMDAxNDcxNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xMDgzLDYgKzEwODMsNyBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2lzU2NydWJiaW5nUmVtb3RlbHkgOiAxOwogICAgIGJv
b2wgbV93YWl0aW5nVG9FbnRlckZ1bGxzY3JlZW4gOiAxOworICAgIGJvb2wgbV9zaG91bGRVbnBh
dXNlSW50ZXJuYWxPblJlc3VtZSA6IDE7CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAg
Ym9vbCBtX3RyYWNrc0FyZVJlYWR5IDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRy
b2xsZXIubW0KaW5kZXggYzQ2ZGQwMDFjOWU2NzljNzAzMTk0ZjgxN2MyMTUzMGM3OTg2MDcyMy4u
NWMwYjk3Y2VkZGYyZTUwYTAwZDk5Y2U3Yzc1ZjExYWQ0ZjM3MjNmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRy
b2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tG
dWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KQEAgLTQ0NywxMSArNDQ3LDE4IEBAIC0gKHZvaWQp
X3Nob3dQaGlzaGluZ0FsZXJ0CiAgICAgTlNTdHJpbmcgKmFsZXJ0TWVzc2FnZSA9IFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIlRoZSB3ZWJzaXRlIOKAnCVA4oCdIG1h
eSB0cnkgdG8gdHJpY2sgeW91IGludG8gZG9pbmcgc29tZXRoaW5nIGRhbmdlcm91cywgbGlrZSBp
bnN0YWxsaW5nIHNvZnR3YXJlIG9yIGRpc2Nsb3NpbmcgcGVyc29uYWwgb3IgZmluYW5jaWFsIGlu
Zm9ybWF0aW9uLCBsaWtlIHBhc3N3b3JkcywgcGhvbmUgbnVtYmVycywgb3IgY3JlZGl0IGNhcmRz
LiIsICJGdWxsc2NyZWVuIERlY2VwdGl2ZSBXZWJzaXRlIFdhcm5pbmcgU2hlZXQgQ29udGVudCBU
ZXh0IikgLCAoTlNTdHJpbmcgKilzZWxmLmxvY2F0aW9uXTsKICAgICBVSUFsZXJ0Q29udHJvbGxl
ciogYWxlcnQgPSBbVUlBbGVydENvbnRyb2xsZXIgYWxlcnRDb250cm9sbGVyV2l0aFRpdGxlOmFs
ZXJ0VGl0bGUgbWVzc2FnZTphbGVydE1lc3NhZ2UgcHJlZmVycmVkU3R5bGU6VUlBbGVydENvbnRy
b2xsZXJTdHlsZUFsZXJ0XTsKIAorICAgIGlmIChhdXRvKiBwYWdlID0gW3NlbGYuX3dlYlZpZXcg
X3BhZ2VdKQorICAgICAgICBwYWdlLT5zdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlv
bnMoKTsKKwogICAgIFVJQWxlcnRBY3Rpb24qIGV4aXRBY3Rpb24gPSBbVUlBbGVydEFjdGlvbiBh
Y3Rpb25XaXRoVGl0bGU6V0VCX1VJX1NUUklORygiRXhpdCBGdWxsc2NyZWVuIiwgIkZ1bGxzY3Jl
ZW4gRGVjZXB0aXZlIFdlYnNpdGUgRXhpdCBBY3Rpb24iKSBzdHlsZTpVSUFsZXJ0QWN0aW9uU3R5
bGVDYW5jZWwgaGFuZGxlcjpeKFVJQWxlcnRBY3Rpb24gKiBhY3Rpb24pIHsKICAgICAgICAgW3Nl
bGYgX2NhbmNlbEFjdGlvbjphY3Rpb25dOworICAgICAgICBpZiAoYXV0byogcGFnZSA9IFtzZWxm
Ll93ZWJWaWV3IF9wYWdlXSkKKyAgICAgICAgICAgIHBhZ2UtPnJlc3VtZUFjdGl2ZURPTU9iamVj
dHNBbmRBbmltYXRpb25zKCk7CiAgICAgfV07CiAKICAgICBVSUFsZXJ0QWN0aW9uKiBzdGF5QWN0
aW9uID0gW1VJQWxlcnRBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOldFQl9VSV9TVFJJTkcoIlN0YXkg
aW4gRnVsbHNjcmVlbiIsICJGdWxsc2NyZWVuIERlY2VwdGl2ZSBXZWJzaXRlIFN0YXkgQWN0aW9u
Iikgc3R5bGU6VUlBbGVydEFjdGlvblN0eWxlRGVmYXVsdCBoYW5kbGVyOl4oVUlBbGVydEFjdGlv
biAqIGFjdGlvbikgeworICAgICAgICBpZiAoYXV0byogcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9w
YWdlXSkKKyAgICAgICAgICAgIHBhZ2UtPnJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRp
b25zKCk7CiAgICAgICAgIF9zZWNoZXVyaXN0aWMucmVzZXQoKTsKICAgICB9XTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343250</attachid>
            <date>2018-06-21 11:09:01 -0700</date>
            <delta_ts>2018-12-18 13:50:03 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-186856-20180621110901.patch</filename>
            <type>text/plain</type>
            <size>5628</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzMDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDgzMzhiYmQ2ZjlkYzQy
MjY0MDdkMWQ0NmUwMTY5ZjhlMTliZWZjNy4uODRmNDhjNDNkYmFlYmJiNGEzNzk4ZDM1OGMyYjll
YmRiNjc5MjFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA2LTIwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtGdWxsc2NyZWVuXSBTdXNw
ZW5kIHBhZ2UgKGFuZCBwYXVzZSB2aWRlbykgd2hpbGUgcGhpc2hpbmcgd2FybmluZyBpcyBwcmVz
ZW50ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
Njg1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDEyMTI0NDQ+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBQYXVzZSB0aGUgbWVkaWEgZWxlbWVudCB3aGVu
IHRoZSBwYWdlIGlzIHN1c3BlbmRlZCwgYW5kIHVucGF1c2Ugd2hlbiB0aGUgcGFnZSByZXN1bWVz
LgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpyZXN1bWUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgor
CiAyMDE4LTA2LTE5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IFtGdWxsc2NyZWVuXSBQYWdlIHNvbWV0aW1lcyBlbmRzIHVwIHdpdGggYW4gaW5jb3JyZWN0IHpv
b20gbGV2ZWwgYWZ0ZXIgZW50ZXJpbmcgZnVsbHNjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkMTk1YWI4NmJi
ZDI1Y2U1ZDY3Mzg2OTZhYmZlOWRhY2Q4ZjNkYjlhLi4xY2E0MjQyNGRkNDIwMDA1MTk5ZDg1ODA0
MGIxNGFmMGUzZTQ1ZjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTA2LTIwICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtGdWxsc2NyZWVuXSBT
dXNwZW5kIHBhZ2UgKGFuZCBwYXVzZSB2aWRlbykgd2hpbGUgcGhpc2hpbmcgd2FybmluZyBpcyBw
cmVzZW50ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4Njg1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDEyMTI0NDQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVl
bi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVu
Vmlld0NvbnRyb2xsZXIgX3Nob3dQaGlzaGluZ0FsZXJ0XSk6CisKIDIwMTgtMDYtMTkgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0Z1bGxzY3JlZW5dIEV4aXQg
ZnVsbHNjcmVlbiB3aGVuIG9wZW5pbmcgYSBuZXcgdGFiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAppbmRleCBmNmI1ZTM2MWRkOWE4MjQxNmIxYmUyNTc4ODNmNjM3MGNk
NGM5M2U0Li40NGEwZDE4YWYxNjZmYWJmZTI0ZjU1MjYyYmUwNjhkYmJkM2RkMDcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQ5MCw2ICs0OTAsNyBAQCBI
VE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bQogICAgICwgbV9oYXZlU2V0VXBDYXB0aW9uQ29udGFpbmVy
KGZhbHNlKQogI2VuZGlmCiAgICAgLCBtX2lzU2NydWJiaW5nUmVtb3RlbHkoZmFsc2UpCisgICAg
LCBtX3Nob3VsZFVucGF1c2VJbnRlcm5hbE9uUmVzdW1lKGZhbHNlKQogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKICAgICAsIG1fdHJhY2tzQXJlUmVhZHkodHJ1ZSkKICAgICAsIG1faGF2ZVZpc2li
bGVUZXh0VHJhY2soZmFsc2UpCkBAIC01NTk2LDggKzU1OTcsMTMgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gd2h5KQogICAgICAgICAgICAgc2V0
U2hvdWxkQnVmZmVyRGF0YShmYWxzZSk7CiAgICAgICAgICAgICBtX21lZGlhU2Vzc2lvbi0+YWRk
QmVoYXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlUGFnZUNvbnNl
bnRUb1Jlc3VtZU1lZGlhKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEphdmFT
Y3JpcHREZWJ1Z2dlclBhdXNlZDoKICAgICAgICAgY2FzZSBQYWdlV2lsbEJlU3VzcGVuZGVkOgor
ICAgICAgICAgICAgaWYgKCFtX3BhdXNlZEludGVybmFsKSB7CisgICAgICAgICAgICAgICAgbV9z
aG91bGRVbnBhdXNlSW50ZXJuYWxPblJlc3VtZSA9IHRydWU7CisgICAgICAgICAgICAgICAgc2V0
UGF1c2VkSW50ZXJuYWwodHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBKYXZhU2NyaXB0RGVidWdnZXJQYXVzZWQ6CiAgICAgICAgIGNhc2UgV2ls
bERlZmVyTG9hZGluZzoKICAgICAgICAgICAgIC8vIERvIG5vdGhpbmcsIHdlIGRvbid0IHBhdXNl
IG1lZGlhIHBsYXliYWNrIGluIHRoZXNlIGNhc2VzLgogICAgICAgICAgICAgYnJlYWs7CkBAIC01
NjEyLDYgKzU2MTgsMTEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXN1bWUoKQogCiAgICAg
bV9hc3luY0V2ZW50UXVldWUucmVzdW1lKCk7CiAKKyAgICBpZiAobV9zaG91bGRVbnBhdXNlSW50
ZXJuYWxPblJlc3VtZSkgeworICAgICAgICBtX3Nob3VsZFVucGF1c2VJbnRlcm5hbE9uUmVzdW1l
ID0gZmFsc2U7CisgICAgICAgIHNldFBhdXNlZEludGVybmFsKGZhbHNlKTsKKyAgICB9CisKICAg
ICBzZXRTaG91bGRCdWZmZXJEYXRhKHRydWUpOwogCiAgICAgaWYgKCFtX21lZGlhU2Vzc2lvbi0+
cGFnZUFsbG93c1BsYXliYWNrQWZ0ZXJSZXN1bWluZygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAppbmRleCAzZWU4ODFhNmI0ZTI5NGZkZWNkMGU5ZWIyMWViMzRjMTMyN2E3
YzBlLi41NjYwZGY5MjY5NzMzNjQ4NzAzMGZmZjEyNWFjMWRhMDAwMTQ3MTY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTA4Myw2ICsxMDgzLDcgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgbV9pc1NjcnViYmluZ1JlbW90ZWx5IDogMTsKICAgICBib29sIG1fd2Fp
dGluZ1RvRW50ZXJGdWxsc2NyZWVuIDogMTsKKyAgICBib29sIG1fc2hvdWxkVW5wYXVzZUludGVy
bmFsT25SZXN1bWUgOiAxOwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGJvb2wgbV90
cmFja3NBcmVSZWFkeSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1t
CmluZGV4IGM0NmRkMDAxYzllNjc5YzcwMzE5NGY4MTdjMjE1MzBjNzk4NjA3MjMuLjVjMGI5N2Nl
ZGRmMmU1MGEwMGQ5OWNlN2M3NWYxMWFkNGYzNzIzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVl
blZpZXdDb250cm9sbGVyLm1tCkBAIC00NDcsMTEgKzQ0NywxOCBAQCAtICh2b2lkKV9zaG93UGhp
c2hpbmdBbGVydAogICAgIE5TU3RyaW5nICphbGVydE1lc3NhZ2UgPSBbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCJUaGUgd2Vic2l0ZSDigJwlQOKAnSBtYXkgdHJ5IHRv
IHRyaWNrIHlvdSBpbnRvIGRvaW5nIHNvbWV0aGluZyBkYW5nZXJvdXMsIGxpa2UgaW5zdGFsbGlu
ZyBzb2Z0d2FyZSBvciBkaXNjbG9zaW5nIHBlcnNvbmFsIG9yIGZpbmFuY2lhbCBpbmZvcm1hdGlv
biwgbGlrZSBwYXNzd29yZHMsIHBob25lIG51bWJlcnMsIG9yIGNyZWRpdCBjYXJkcy4iLCAiRnVs
bHNjcmVlbiBEZWNlcHRpdmUgV2Vic2l0ZSBXYXJuaW5nIFNoZWV0IENvbnRlbnQgVGV4dCIpICwg
KE5TU3RyaW5nICopc2VsZi5sb2NhdGlvbl07CiAgICAgVUlBbGVydENvbnRyb2xsZXIqIGFsZXJ0
ID0gW1VJQWxlcnRDb250cm9sbGVyIGFsZXJ0Q29udHJvbGxlcldpdGhUaXRsZTphbGVydFRpdGxl
IG1lc3NhZ2U6YWxlcnRNZXNzYWdlIHByZWZlcnJlZFN0eWxlOlVJQWxlcnRDb250cm9sbGVyU3R5
bGVBbGVydF07CiAKKyAgICBpZiAoYXV0byogcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkK
KyAgICAgICAgcGFnZS0+c3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CisK
ICAgICBVSUFsZXJ0QWN0aW9uKiBleGl0QWN0aW9uID0gW1VJQWxlcnRBY3Rpb24gYWN0aW9uV2l0
aFRpdGxlOldFQl9VSV9TVFJJTkcoIkV4aXQgRnVsbHNjcmVlbiIsICJGdWxsc2NyZWVuIERlY2Vw
dGl2ZSBXZWJzaXRlIEV4aXQgQWN0aW9uIikgc3R5bGU6VUlBbGVydEFjdGlvblN0eWxlQ2FuY2Vs
IGhhbmRsZXI6XihVSUFsZXJ0QWN0aW9uICogYWN0aW9uKSB7CiAgICAgICAgIFtzZWxmIF9jYW5j
ZWxBY3Rpb246YWN0aW9uXTsKKyAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmll
dyBfcGFnZV0pCisgICAgICAgICAgICBwYWdlLT5yZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5p
bWF0aW9ucygpOwogICAgIH1dOwogCiAgICAgVUlBbGVydEFjdGlvbiogc3RheUFjdGlvbiA9IFtV
SUFsZXJ0QWN0aW9uIGFjdGlvbldpdGhUaXRsZTpXRUJfVUlfU1RSSU5HKCJTdGF5IGluIEZ1bGxz
Y3JlZW4iLCAiRnVsbHNjcmVlbiBEZWNlcHRpdmUgV2Vic2l0ZSBTdGF5IEFjdGlvbiIpIHN0eWxl
OlVJQWxlcnRBY3Rpb25TdHlsZURlZmF1bHQgaGFuZGxlcjpeKFVJQWxlcnRBY3Rpb24gKiBhY3Rp
b24pIHsKKyAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCisg
ICAgICAgICAgICBwYWdlLT5yZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwog
ICAgICAgICBfc2VjaGV1cmlzdGljLnJlc2V0KCk7CiAgICAgfV07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357608</attachid>
            <date>2018-12-18 13:50:06 -0800</date>
            <delta_ts>2018-12-18 13:50:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186856-20181218135005.patch</filename>
            <type>text/plain</type>
            <size>37461</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4OTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODQ2ZGU0NjhmODRmYzYw
ZTdhZmYyMTI0NTAzMmYwMzIzOWNjZThiMi4uYjVlMzhhMDVjNDYwNmU2NzZiYmEyMDQwNTRlYzBk
NTc2NDljYTQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE4LTEyLTE4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtGdWxsc2NyZWVuXSBTdXNw
ZW5kIHBhZ2UgKGFuZCBwYXVzZSB2aWRlbykgd2hpbGUgcGhpc2hpbmcgd2FyaW5pbmcgaXMgcHJl
c2VudGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODY4NTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQxMjEyNDQ0PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBBUEkgdGVzdHM6CisgICAgICAg
ICAgICBXZWJLaXRMZWdhY3kuU2Nyb2xsaW5nRG9lc05vdFBhdXNlTWVkaWEKKyAgICAgICAgICAg
IFdLV2ViVmlldy5TdG9wQWxsTWVkaWFQbGF5YmFjaworICAgICAgICAgICAgV0tXZWJWaWV3LlN1
c3BlbmRSZXN1bWVBbGxNZWRpYVBsYXliYWNrCisKKyAgICAgICAgRG8gbm90IHVzZSBzdXNwZW5k
QWN0aXZlRE9NT2JqZWN0cyhSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlV2lsbEJlU3VzcGVuZGVk
KSB0byBwYXVzZQorICAgICAgICB2aWRlby4gUm9sbCBiYWNrIHRoZSBjaGFuZ2VzIHRvIEhUTUxN
ZWRpYUVsZW1lbnQsIGFuZCBpbnRyb2R1Y2UgYSBuZXcgc2V0IG9mIFBhZ2UgY2FsbHMKKyAgICAg
ICAgc3VzcGVuZEFsbE1lZGlhUGxheWJhY2soKSAmIHJlc3VtZUFsbE1lZGlhUGxheWJhY2soKSB3
aGljaCByZXBsYWNlcyB0aGUgcmVtb3ZlZCBiYWhhdmlvci4KKworICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdG9wQWxsTWVkaWFQbGF5YmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6c3VzcGVuZEFsbE1lZGlhUGxheWJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnJlc3VtZUFsbE1lZGlhUGxheWJhY2spOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRpZEZpbmlzaEluc2VydGluZ05vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0U3JjT2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3VzcGVuZCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6d2Via2l0Q3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzcyBjb25zdCk6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50Ojp3ZWJraXRDdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tQZXJtaXR0ZWQg
Y29uc3QpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzdG9wQWxsTWVkaWFQbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzdXNwZW5k
QWxsTWVkaWFQbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpyZXN1bWVBbGxNZWRp
YVBsYXliYWNrKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6Om1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
UGxhdGZvcm1NZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOjpzdXNwZW5kQWxsTWVkaWFQbGF5YmFja0ZvckRvY3VtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVzdW1lQWxsTWVk
aWFQbGF5YmFja0ZvckRvY3VtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXIuaDoKKwogMjAxOC0xMi0xNCAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBDUkFTSCBpbiBDRE1JbnN0YW5jZVNlc3Npb25GYWly
UGxheVN0cmVhbWluZ0FWRk9iakM6OmNsb3NlU2Vzc2lvbihXVEY6OlN0cmluZyBjb25zdCYsIFdU
Rjo6RnVuY3Rpb248dm9pZCAoKT4mJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOWFmMjJjOWExYjgyNzc4MmI5ODUy
Y2FlNWFmOWQzOGI3N2Y2MDg0OS4uZTkwOGQ3MjNmMWNlZDI3NTA2ZjYzNjY3ODA5OGIwMjNhMjAx
OGU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOC0xMi0xOCAgSmVyIE5vYmxlICA8
amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbRnVsbHNjcmVlbl0gU3VzcGVuZCBwYWdl
IChhbmQgcGF1c2UgdmlkZW8pIHdoaWxlIHBoaXNoaW5nIHdhcmluaW5nIGlzIHByZXNlbnRlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2ODU2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MTIxMjQ0ND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgV2ViUGFnZSwgV2ViUGFnZVByb3h5
LCAmIFdLV2ViVmlldyBTUEkgdG8gc3RvcCwgc3VzcGVuZCwgYW5kIHJlc3VtZSBhbGwKKyAgICAg
ICAgZXhpc3RpbmcgbWVkaWEgcGxheWJhY2sgaW4gdGhlIHBhZ2UuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zdG9w
QWxsTWVkaWFQbGF5YmFja10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3N1c3BlbmRBbGxNZWRp
YVBsYXliYWNrXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfcmVzdW1lQWxsTWVkaWFQbGF5YmFj
a10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnN0b3BBbGxNZWRpYVBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpzdXNwZW5kQWxsTWVkaWFQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVzdW1lQWxsTWVkaWFQbGF5YmFjayk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1
bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0Nv
bnRyb2xsZXIgX3Nob3dQaGlzaGluZ0FsZXJ0XSk6CisKIDIwMTgtMTItMDMgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIE1lZGlhQ2FwYWJpbGl0aWVz
IGJ5IGRlZmF1bHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBlMzM0YWRiZWFlYjAyYWRk
OGEzMDU4MjljOWI2ZjJlZWI0ZTVmYWUyLi43OGIwMTNhZTNiMzRmZDEzNmE4MjA4YmE2NDc0ZjM5
MjAyMjlhNWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTY1Miw4ICs2NTIsNyBAQCBE
b2N1bWVudDo6fkRvY3VtZW50KCkKICAgICAgICAgbV9jYWNoZWRSZXNvdXJjZUxvYWRlci0+c2V0
RG9jdW1lbnQobnVsbHB0cik7CiAKICNpZiBFTkFCTEUoVklERU8pCi0gICAgaWYgKGF1dG8qIHBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6
c2hhcmVkTWFuYWdlcklmRXhpc3RzKCkpCi0gICAgICAgIHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlci0+c3RvcEFsbE1lZGlhUGxheWJhY2tGb3JEb2N1bWVudCh0aGlzKTsKKyAgICBzdG9wQWxs
TWVkaWFQbGF5YmFjaygpOwogI2VuZGlmCiAKICAgICAvLyBXZSBtdXN0IGNhbGwgY2xlYXJSYXJl
RGF0YSgpIGhlcmUgc2luY2UgYSBEb2N1bWVudCBjbGFzcyBpbmhlcml0cyBUcmVlU2NvcGUKQEAg
LTE3MjIsNiArMTcyMSwyMyBAQCB2b2lkIERvY3VtZW50OjphbGxvd3NNZWRpYURvY3VtZW50SW5s
aW5lUGxheWJhY2tDaGFuZ2VkKCkKICAgICAgICAgZWxlbWVudC0+YWxsb3dzTWVkaWFEb2N1bWVu
dElubGluZVBsYXliYWNrQ2hhbmdlZCgpOwogfQogCit2b2lkIERvY3VtZW50OjpzdG9wQWxsTWVk
aWFQbGF5YmFjaygpCit7CisgICAgaWYgKGF1dG8qIHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ciA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcklmRXhpc3RzKCkp
CisgICAgICAgIHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci0+c3RvcEFsbE1lZGlhUGxheWJh
Y2tGb3JEb2N1bWVudCh0aGlzKTsKK30KKwordm9pZCBEb2N1bWVudDo6c3VzcGVuZEFsbE1lZGlh
UGxheWJhY2soKQoreworICAgIGlmIChhdXRvKiBwbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIg
PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXJJZkV4aXN0cygpKQor
ICAgICAgICBwbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXItPnN1c3BlbmRBbGxNZWRpYVBsYXli
YWNrRm9yRG9jdW1lbnQoKnRoaXMpOworfQorCit2b2lkIERvY3VtZW50OjpyZXN1bWVBbGxNZWRp
YVBsYXliYWNrKCkKK3sKKyAgICBpZiAoYXV0byogcGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
ID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VySWZFeGlzdHMoKSkK
KyAgICAgICAgcGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLT5yZXN1bWVBbGxNZWRpYVBsYXli
YWNrRm9yRG9jdW1lbnQoKnRoaXMpOworfQogI2VuZGlmCiAKIFN0cmluZyBEb2N1bWVudDo6bm9k
ZU5hbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA1YjVmZjQ5YjdmMTM2YzY3MjI0
NWZlNWJiOTI0ZmFmZDhhZTM0ZTBiLi45ZDdkOGZhMGIzN2JjMTdmMzcyOTJkZWI2NjBlOTUzOTA3
Y2UwYjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTExOSw2ICsxMTE5LDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlZ2lzdGVyRm9yQWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNr
Q2hhbmdlZENhbGxiYWNrcyhIVE1MTWVkaWFFbGVtZW50Jik7CiAgICAgdm9pZCB1bnJlZ2lzdGVy
Rm9yQWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdlZENhbGxiYWNrcyhIVE1M
TWVkaWFFbGVtZW50Jik7CiAgICAgdm9pZCBhbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJh
Y2tDaGFuZ2VkKCk7CisKKyAgICB2b2lkIHN0b3BBbGxNZWRpYVBsYXliYWNrKCk7CisgICAgdm9p
ZCBzdXNwZW5kQWxsTWVkaWFQbGF5YmFjaygpOworICAgIHZvaWQgcmVzdW1lQWxsTWVkaWFQbGF5
YmFjaygpOwogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNob3VsZENyZWF0
ZVJlbmRlcmVycyhib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CmluZGV4IDBkY2M4ODkwNTA2M2QyZWIyNzA5ZTYyZTM0ZTk1ZWEwNzNiMjg4YTQuLjE2Y2U4Nzlj
NWFiOGFmNDQ3NGRlYmI1NTQ4ZjFhZTljMDhjOTQ1MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDY2LDcgKzQ2Niw2IEBAIEhUTUxNZWRpYUVsZW1lbnQ6
OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtCiAgICAgLCBtX2hhdmVTZXRVcENhcHRpb25Db250YWluZXIoZmFsc2UpCiAjZW5kaWYK
ICAgICAsIG1faXNTY3J1YmJpbmdSZW1vdGVseShmYWxzZSkKLSAgICAsIG1fc2hvdWxkVW5wYXVz
ZUludGVybmFsT25SZXN1bWUoZmFsc2UpCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICwg
bV90cmFja3NBcmVSZWFkeSh0cnVlKQogICAgICwgbV9oYXZlVmlzaWJsZVRleHRUcmFjayhmYWxz
ZSkKQEAgLTgzMiw2ICs4MzEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cgogCiAgICAgICAg
IC8vIElmIGEgc3JjIGF0dHJpYnV0ZSBvZiBhIG1lZGlhIGVsZW1lbnQgaXMgc2V0IG9yIGNoYW5n
ZWQsIHRoZSB1c2VyCiAgICAgICAgIC8vIGFnZW50IG11c3QgaW52b2tlIHRoZSBtZWRpYSBlbGVt
ZW50J3MgbWVkaWEgZWxlbWVudCBsb2FkIGFsZ29yaXRobS4KKyAgICAgICAgSU5GT19MT0coTE9H
SURFTlRJRklFUiwgInNyYyA9ICIsIHZhbHVlKTsKICAgICAgICAgaWYgKCF2YWx1ZS5pc051bGwo
KSkKICAgICAgICAgICAgIHByZXBhcmVGb3JMb2FkKCk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09
IGNvbnRyb2xzQXR0cikKQEAgLTkxOSw2ICs5MTksOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmRpZEZpbmlzaEluc2VydGluZ05vZGUoKQogewogICAgIFJlZjxIVE1MTWVkaWFFbGVtZW50PiBw
cm90ZWN0ZWRUaGlzKCp0aGlzKTsgLy8gcHJlcGFyZUZvckxvYWQgbWF5IHJlc3VsdCBpbiBhICdi
ZWZvcmVsb2FkJyBldmVudCwgd2hpY2ggY2FuIG1ha2UgYXJiaXRyYXJ5IERPTSBtdXRhdGlvbnMu
CiAKKyAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKKwogICAgIGlmIChtX2luQWN0aXZlRG9j
dW1lbnQgJiYgbV9uZXR3b3JrU3RhdGUgPT0gTkVUV09SS19FTVBUWSAmJiAhYXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihzcmNBdHRyKS5pc0VtcHR5KCkpCiAgICAgICAgIHByZXBhcmVG
b3JMb2FkKCk7CiAKQEAgLTExMzAsNiArMTEzMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
c2V0U3JjT2JqZWN0KE1lZGlhUHJvdmlkZXImJiBtZWRpYVByb3ZpZGVyKQogICAgIC8vIDQuNy4x
NC4yLiBMb2NhdGlvbiBvZiB0aGUgbWVkaWEgcmVzb3VyY2UKICAgICAvLyBzcmNPYmplY3Q6IE9u
IHNldHRpbmcsIGl0IG11c3Qgc2V0IHRoZSBlbGVtZW504oCZcyBhc3NpZ25lZCBtZWRpYSBwcm92
aWRlciBvYmplY3QgdG8gdGhlIG5ldwogICAgIC8vIHZhbHVlLCBhbmQgdGhlbiBpbnZva2UgdGhl
IGVsZW1lbnTigJlzIG1lZGlhIGVsZW1lbnQgbG9hZCBhbGdvcml0aG0uCisgICAgSU5GT19MT0co
TE9HSURFTlRJRklFUik7CiAgICAgbV9tZWRpYVByb3ZpZGVyID0gV1RGTW92ZShtZWRpYVByb3Zp
ZGVyKTsKICAgICBwcmVwYXJlRm9yTG9hZCgpOwogfQpAQCAtMTc2MiwxMCArMTc2NSwxNiBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoY29uc3QgTWVk
aWFUaW1lJiBtb3ZpZVRpbWUpCiAgICAgaWYgKG5leHRDdWUpCiAgICAgICAgIG5leHRJbnRlcmVz
dGluZ1RpbWUgPSBzdGQ6Om1pbihuZXh0SW50ZXJlc3RpbmdUaW1lLCBuZXh0Q3VlLT5sb3coKSk7
CiAKKyAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAibmV4dEludGVyZXN0aW5nVGltZToiLCBu
ZXh0SW50ZXJlc3RpbmdUaW1lKTsKKwogICAgIGlmIChuZXh0SW50ZXJlc3RpbmdUaW1lLmlzVmFs
aWQoKSAmJiBtX3BsYXllcikgewotICAgICAgICBtX3BsYXllci0+cGVyZm9ybVRhc2tBdE1lZGlh
VGltZShbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgbmV4dEludGVyZXN0aW5nVGltZV0g
ewotICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHdlYWtUaGlzLT51
cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKHdlYWtUaGlzLT5jdXJyZW50TWVkaWFUaW1lKCkpOwor
ICAgICAgICBtX3BsYXllci0+cGVyZm9ybVRhc2tBdE1lZGlhVGltZShbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cih0aGlzKSwgbmV4dEludGVyZXN0aW5nVGltZV0geworICAgICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGF1
dG8gY3VycmVudE1lZGlhVGltZSA9IHdlYWtUaGlzLT5jdXJyZW50TWVkaWFUaW1lKCk7CisgICAg
ICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAiIC0gbGFtYmRhLCBjdXJyZW50TWVkaWFU
aW1lOiIsIGN1cnJlbnRNZWRpYVRpbWUpOworICAgICAgICAgICAgd2Vha1RoaXMtPnVwZGF0ZUFj
dGl2ZVRleHRUcmFja0N1ZXMoY3VycmVudE1lZGlhVGltZSk7CiAgICAgICAgIH0sIG5leHRJbnRl
cmVzdGluZ1RpbWUpOwogICAgIH0KIApAQCAtNTcyOCwxMSArNTczNyw2IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKICAgICAgICAg
bV9tZWRpYVNlc3Npb24tPmFkZEJlaGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lv
bjo6UmVxdWlyZVBhZ2VDb25zZW50VG9SZXN1bWVNZWRpYSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgUmVhc29uRm9yU3VzcGVuc2lvbjo6UGFnZVdpbGxCZVN1c3BlbmRlZDoKLSAgICAgICAg
aWYgKCFtX3BhdXNlZEludGVybmFsKSB7Ci0gICAgICAgICAgICBtX3Nob3VsZFVucGF1c2VJbnRl
cm5hbE9uUmVzdW1lID0gdHJ1ZTsKLSAgICAgICAgICAgIHNldFBhdXNlZEludGVybmFsKHRydWUp
OwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmVhc29uRm9yU3VzcGVuc2lv
bjo6SmF2YVNjcmlwdERlYnVnZ2VyUGF1c2VkOgogICAgIGNhc2UgUmVhc29uRm9yU3VzcGVuc2lv
bjo6V2lsbERlZmVyTG9hZGluZzoKICAgICAgICAgLy8gRG8gbm90aGluZywgd2UgZG9uJ3QgcGF1
c2UgbWVkaWEgcGxheWJhY2sgaW4gdGhlc2UgY2FzZXMuCkBAIC01NzQ4LDExICs1NzUyLDYgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXN1bWUoKQogCiAgICAgbV9hc3luY0V2ZW50UXVldWUu
cmVzdW1lKCk7CiAKLSAgICBpZiAobV9zaG91bGRVbnBhdXNlSW50ZXJuYWxPblJlc3VtZSkgewot
ICAgICAgICBtX3Nob3VsZFVucGF1c2VJbnRlcm5hbE9uUmVzdW1lID0gZmFsc2U7Ci0gICAgICAg
IHNldFBhdXNlZEludGVybmFsKGZhbHNlKTsKLSAgICB9Ci0KICAgICBzZXRTaG91bGRCdWZmZXJE
YXRhKHRydWUpOwogCiAgICAgaWYgKCFtX21lZGlhU2Vzc2lvbi0+cGFnZUFsbG93c1BsYXliYWNr
QWZ0ZXJSZXN1bWluZygpKQpAQCAtNTkzNiw2ICs1OTM1LDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCBzaG91bGRQbGF5KQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIAorYm9vbCBIVE1MTWVk
aWFFbGVtZW50Ojp3ZWJraXRDdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzKCkgY29uc3QK
K3sKKyAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCBtX2lzUGxheWluZ1RvV2lyZWxlc3NUYXJn
ZXQpOworICAgIHJldHVybiBtX2lzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQ7Cit9CisKIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6c2V0UGxheWluZ09uU2Vjb25kU2NyZWVuKGJvb2wgdmFsdWUpCiB7
CiAgICAgaWYgKHZhbHVlID09IG1fcGxheWluZ09uU2Vjb25kU2NyZWVuKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAzNjBhZjg2NzRjZjg4MDYyMTJiYzgyNTlhOThm
NTcwODM5ODhhMmQyLi45MTA0OThkNzU2N2ZhNDJlZTg5MzNmMWRlNTBjZWM4YTQ5YjNmODhmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNDEyLDcgKzQxMiw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wpIG92
ZXJyaWRlOwogI2VuZGlmCiAgICAgYm9vbCBpc1BsYXlpbmdUb1dpcmVsZXNzUGxheWJhY2tUYXJn
ZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQ7
IH07Ci0gICAgYm9vbCB3ZWJraXRDdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzKCkgY29u
c3QgeyByZXR1cm4gbV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0OyB9CisgICAgYm9vbCB3ZWJr
aXRDdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzKCkgY29uc3Q7CiAKICAgICB2b2lkIHNl
dFBsYXlpbmdPblNlY29uZFNjcmVlbihib29sIHZhbHVlKTsKICAgICBib29sIGlzUGxheWluZ09u
U2Vjb25kU2NyZWVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wbGF5aW5nT25TZWNvbmRT
Y3JlZW47IH0KQEAgLTExMTAsNyArMTExMCw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faXNT
Y3J1YmJpbmdSZW1vdGVseSA6IDE7CiAgICAgYm9vbCBtX3dhaXRpbmdUb0VudGVyRnVsbHNjcmVl
biA6IDE7Ci0gICAgYm9vbCBtX3Nob3VsZFVucGF1c2VJbnRlcm5hbE9uUmVzdW1lIDogMTsKIAog
I2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBib29sIG1fdHJhY2tzQXJlUmVhZHkgOiAxOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5kZXggMGFiYTJk
MmU1ODdmM2JjMzViNjI2ZmJhN2M5ZjM5NDU0ZGExMTQzYS4uMjJlMmExNmYyMDYwZTNkNWVmYzcw
ZWM4YzA1OWJlNmJmYWIxNTUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRp
YUVsZW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVu
dFNlc3Npb24uY3BwCkBAIC0yNjIsNiArMjYyLDEwIEBAIFN1Y2Nlc3NPcjxNZWRpYVBsYXliYWNr
RGVuaWFsUmVhc29uPiBNZWRpYUVsZW1lbnRTZXNzaW9uOjpwbGF5YmFja1Blcm1pdHRlZCgpIGNv
CiAgICAgfQogCiAgICAgYXV0byYgZG9jdW1lbnQgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKTsKKyAg
ICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGlmICghcGFnZSB8fCBwYWdlLT5t
ZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQoKSkKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWJhY2tE
ZW5pYWxSZWFzb246OlBhZ2VDb25zZW50UmVxdWlyZWQ7CisKICAgICBpZiAoZG9jdW1lbnQuaXNN
ZWRpYURvY3VtZW50KCkgJiYgIWRvY3VtZW50Lm93bmVyRWxlbWVudCgpKQogICAgICAgICByZXR1
cm4geyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBmYjBmYzM4OWEwNDRmOWIxNzUxMzEwMmIw
OWM2OTFkYTJiY2Y3MzljLi41OTIzMjA3MzdlNjIwMzVjYTFhOWI0MWJlYzJlMGY2YjJjYzg4ZDM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE3MTYsNiArMTcxNiw0MSBAQCB2b2lkIFBhZ2U6OnN0
b3BNZWRpYUNhcHR1cmUoKQogI2VuZGlmCiB9CiAKK3ZvaWQgUGFnZTo6c3RvcEFsbE1lZGlhUGxh
eWJhY2soKQoreworICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsg
ZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmIChhdXRv
KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnN0
b3BBbGxNZWRpYVBsYXliYWNrKCk7CisgICAgfQorfQorCit2b2lkIFBhZ2U6OnN1c3BlbmRBbGxN
ZWRpYVBsYXliYWNrKCkKK3sKKyAgICBBU1NFUlQoIW1fbWVkaWFQbGF5YmFja0lzU3VzcGVuZGVk
KTsKKyAgICBpZiAobV9tZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQpCisgICAgICAgIHJldHVybjsK
KworICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBm
cmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVu
dCA9IGZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnN1c3BlbmRBbGxN
ZWRpYVBsYXliYWNrKCk7CisgICAgfQorCisgICAgbV9tZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQg
PSB0cnVlOworfQorCit2b2lkIFBhZ2U6OnJlc3VtZUFsbE1lZGlhUGxheWJhY2soKQoreworICAg
IEFTU0VSVChtX21lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCk7CisgICAgaWYgKCFtX21lZGlhUGxh
eWJhY2tJc1N1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fbWVkaWFQbGF5YmFja0lz
U3VzcGVuZGVkID0gZmFsc2U7CisKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtYWluRnJhbWUo
KTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgeworICAgICAg
ICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGRv
Y3VtZW50LT5yZXN1bWVBbGxNZWRpYVBsYXliYWNrKCk7CisgICAgfQorfQorCiAjaWYgRU5BQkxF
KE1FRElBX1NFU1NJT04pCiB2b2lkIFBhZ2U6OmhhbmRsZU1lZGlhRXZlbnQoTWVkaWFFdmVudFR5
cGUgZXZlbnRUeXBlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBkNjU2ZjFlODNlZmZhMTRjNThkNTcy
YTE4YmJhZmJmNzE5N2QwZTQ1Li44MDIxNWNlZmM4MTRjMDE5N2M2MDFhMjA3NTIzNDFmNjk3MTE1
M2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNjAwLDYgKzYwMCwxMSBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZSgpOwogCisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzdG9wQWxsTWVkaWFQbGF5YmFjaygpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc3VzcGVuZEFsbE1lZGlhUGxheWJhY2soKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlc3VtZUFsbE1lZGlhUGxheWJhY2soKTsKKyAgICBib29sIG1lZGlhUGxheWJhY2tJc1N1
c3BlbmRlZCgpIHsgcmV0dXJuIG1fbWVkaWFQbGF5YmFja0lzU3VzcGVuZGVkOyB9CisKICNpZiBF
TkFCTEUoTUVESUFfU0VTU0lPTikKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGhhbmRsZU1lZGlh
RXZlbnQoTWVkaWFFdmVudFR5cGUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Vm9sdW1l
T2ZNZWRpYUVsZW1lbnQoZG91YmxlLCB1aW50NjRfdCk7CkBAIC05NDUsNiArOTUwLDcgQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAgICAgYm9vbCBtX3Nob3VsZEVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRl
cmluZ0J5RGVmYXVsdCB7IHRydWUgfTsKKyAgICBib29sIG1fbWVkaWFQbGF5YmFja0lzU3VzcGVu
ZGVkIHsgZmFsc2UgfTsKIH07CiAKIGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3VwKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bi5oCmluZGV4IDE3YTMwZDVjZWFjZTVmOGEwOWVlODU2YWI1YzEzYTUxNmVmNTk0YTEuLjI1YzE3
Nzk5MGNmMjYxM2YyNWZlMGFkMDBkODgxMjQyOWI2ZGEwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApAQCAtODUsNiAr
ODUsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN1c3BlbmRlZFVuZGVyTG9jaywKICAgICAgICAgSW52
aXNpYmxlQXV0b3BsYXksCiAgICAgICAgIFByb2Nlc3NJbmFjdGl2ZSwKKyAgICAgICAgUGxheWJh
Y2tTdXNwZW5kZWQsCiAgICAgfTsKICAgICBJbnRlcnJ1cHRpb25UeXBlIGludGVycnVwdGlvblR5
cGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVycnVwdGlvblR5cGU7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlci5jcHAKaW5kZXggMWEzMDVkMTczYmIwMjMxNGZiZDg1MDU3OThmMjFlMGY4ZDQxZDQ4
YS4uZDI5ZDdiMmI3ZDUzYmJiYjAwYTE2YTY0NjNlMTViNmEzYTA1NGJlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIuY3BwCkBAIC00MTksNiArNDE5LDIyIEBAIHZvaWQgUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyOjpzdG9wQWxsTWVkaWFQbGF5YmFja0ZvclByb2Nlc3MoKQogICAgIH0pOwog
fQogCit2b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c3VzcGVuZEFsbE1lZGlhUGxh
eWJhY2tGb3JEb2N1bWVudChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgZm9yRWFj
aFNlc3Npb24oWyZdIChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbiwgc2l6ZV90KSB7Cisg
ICAgICAgIGlmIChzZXNzaW9uLmNsaWVudCgpLmhvc3RpbmdEb2N1bWVudCgpID09ICZkb2N1bWVu
dCkKKyAgICAgICAgICAgIHNlc3Npb24uYmVnaW5JbnRlcnJ1cHRpb24oUGxhdGZvcm1NZWRpYVNl
c3Npb246OlBsYXliYWNrU3VzcGVuZGVkKTsKKyAgICB9KTsKK30KKwordm9pZCBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnJlc3VtZUFsbE1lZGlhUGxheWJhY2tGb3JEb2N1bWVudChjb25z
dCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgZm9yRWFjaFNlc3Npb24oWyZdIChQbGF0Zm9y
bU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbiwgc2l6ZV90KSB7CisgICAgICAgIGlmIChzZXNzaW9uLmNs
aWVudCgpLmhvc3RpbmdEb2N1bWVudCgpID09ICZkb2N1bWVudCkKKyAgICAgICAgICAgIHNlc3Np
b24uZW5kSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNYXlSZXN1bWVQbGF5aW5n
KTsKKyAgICB9KTsKK30KKwogdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OmZvckVh
Y2hTZXNzaW9uKGNvbnN0IEZ1bmN0aW9uPHZvaWQoUGxhdGZvcm1NZWRpYVNlc3Npb24mLCBzaXpl
X3QpPiYgcHJlZGljYXRlKSBjb25zdAogewogICAgICsrbV9pdGVyYXRpbmdPdmVyU2Vzc2lvbnM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlci5oCmluZGV4IDRkODdmZDhmOGFlMDFhMzVlZTgxNjFjZjBkZTU0
YjZlYmQ3OGFhOWIuLmU2NzBkYWZjMTEzMTMxZGFhNGUyODJjOWM0MGJiMjA5MzI3YjQ4MzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC03Nyw2ICs3Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHN0b3BBbGxNZWRpYVBsYXliYWNrRm9yRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQqKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHN0b3BBbGxNZWRpYVBsYXliYWNrRm9yUHJvY2VzcygpOwogCisg
ICAgdm9pZCBzdXNwZW5kQWxsTWVkaWFQbGF5YmFja0ZvckRvY3VtZW50KGNvbnN0IERvY3VtZW50
Jik7CisgICAgdm9pZCByZXN1bWVBbGxNZWRpYVBsYXliYWNrRm9yRG9jdW1lbnQoY29uc3QgRG9j
dW1lbnQmKTsKKwogICAgIGVudW0gU2Vzc2lvblJlc3RyaWN0aW9uRmxhZ3MgewogICAgICAgICBO
b1Jlc3RyaWN0aW9ucyA9IDAsCiAgICAgICAgIENvbmN1cnJlbnRQbGF5YmFja05vdFBlcm1pdHRl
ZCA9IDEgPDwgMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCmluZGV4IDc0MDU4NzFmMTQ0NmVjMjRlOGZjMzQ5NzA1OGQ4OGY5OWU4NGUyMmYuLmE2
ODNiNWMxNWU4ZmYxNGI3NWNjMDE2ZDIyZDMzNTVlZGM4ZGMzZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDQ4NCw2ICs0NDg0LDIx
IEBAIC0gKHZvaWQpX3RvZ2dsZVBpY3R1cmVJblBpY3R1cmUKICNlbmRpZgogfQogCistICh2b2lk
KV9zdG9wQWxsTWVkaWFQbGF5YmFjaworeworICAgIF9wYWdlLT5zdG9wQWxsTWVkaWFQbGF5YmFj
aygpOworfQorCistICh2b2lkKV9zdXNwZW5kQWxsTWVkaWFQbGF5YmFjaworeworICAgIF9wYWdl
LT5zdXNwZW5kQWxsTWVkaWFQbGF5YmFjaygpOworfQorCistICh2b2lkKV9yZXN1bWVBbGxNZWRp
YVBsYXliYWNrCit7CisgICAgX3BhZ2UtPnJlc3VtZUFsbE1lZGlhUGxheWJhY2soKTsKK30KKwog
LSAoTlNVUkwgKilfdW5yZWFjaGFibGVVUkwKIHsKICAgICByZXR1cm4gW05TVVJMIF93ZWJfVVJM
V2l0aFdURlN0cmluZzpfcGFnZS0+cGFnZUxvYWRTdGF0ZSgpLnVucmVhY2hhYmxlVVJMKCldOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmgKaW5kZXggMTcwYzJhYWVmYTE1MGI0MWY5OTZjY2U0NjhjZTMyNzc5YmFkNmY4Zi4uN2Ex
NmU1ZGQ1N2I2ZjQ5YjU4NDkyZjMxYjBiOTEzYTg5ZTkyMWQ4YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0zOTks
NyArMzk5LDkgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2lzUGljdHVyZUluUGljdHVy
ZUFjdGl2ZTsKIC0gKHZvaWQpX3VwZGF0ZU1lZGlhUGxheWJhY2tDb250cm9sc01hbmFnZXI7CiAt
ICh2b2lkKV90b2dnbGVQaWN0dXJlSW5QaWN0dXJlOwotCistICh2b2lkKV9zdG9wQWxsTWVkaWFQ
bGF5YmFjazsKKy0gKHZvaWQpX3N1c3BlbmRBbGxNZWRpYVBsYXliYWNrOworLSAodm9pZClfcmVz
dW1lQWxsTWVkaWFQbGF5YmFjazsKIEBlbmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGFjODBhN2I1OWRiNDNkOTk5
NjZkZjY5MzE1YTljODNkMjAxMGZmNjYuLjMzOTkwYTI2NGM4ZGNkODNmNTY3NGViMjQyZmYzMDUy
MDk1YzRmNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
NDk2Myw2ICs0OTYzLDMwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzdG9wTWVkaWFDYXB0dXJlKCkK
ICNlbmRpZgogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c3RvcEFsbE1lZGlhUGxheWJhY2soKQor
eworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlN0b3BBbGxNZWRpYVBsYXliYWNrKCksIG1fcGFnZUlE
KTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnN1c3BlbmRBbGxNZWRpYVBsYXliYWNrKCkKK3sK
KyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTdXNwZW5kQWxsTWVkaWFQbGF5YmFjaygpLCBtX3BhZ2VJ
RCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXN1bWVBbGxNZWRpYVBsYXliYWNrKCkKK3sK
KyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXN1bWVBbGxNZWRpYVBsYXliYWNrKCksIG1fcGFnZUlE
KTsKK30KKwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogdm9pZCBXZWJQYWdlUHJveHk6Omhh
bmRsZU1lZGlhRXZlbnQoTWVkaWFFdmVudFR5cGUgZXZlbnRUeXBlKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3MzRkMjExNzE5ZTk0YmZmOTVhOTYxZjNmMGQ2
MzA5Y2NjM2VmYTE1Li5iNzcxOWMxNjg5MDlkNWQyMWNiM2FiZmUyMzlmZDA4NDY3NWQxMTJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTExNyw2ICsxMTE3LDEw
IEBAIHB1YmxpYzoKICAgICBib29sIG1lZGlhQ2FwdHVyZUVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX21lZGlhQ2FwdHVyZUVuYWJsZWQ7IH0KICAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoKTsK
IAorICAgIHZvaWQgc3RvcEFsbE1lZGlhUGxheWJhY2soKTsKKyAgICB2b2lkIHN1c3BlbmRBbGxN
ZWRpYVBsYXliYWNrKCk7CisgICAgdm9pZCByZXN1bWVBbGxNZWRpYVBsYXliYWNrKCk7CisKICNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICBib29sIGhhc01lZGlhU2Vzc2lvbldpdGhBY3Rp
dmVNZWRpYUVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNNZWRpYVNlc3Npb25XaXRoQWN0
aXZlTWVkaWFFbGVtZW50czsgfQogICAgIHZvaWQgaGFuZGxlTWVkaWFFdmVudChXZWJDb3JlOjpN
ZWRpYUV2ZW50VHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
ZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tCmlu
ZGV4IDUwYzFmNTFjZTA2OGU1YzAyMDQyNGQ3MzNhMThhYjAxY2M0MWUyOWIuLmY2OTI0Y2NiYTM2
ZTA3OTAyNGU3MjBiZjc5YjI0M2Y4MWNjNDlmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZp
ZXdDb250cm9sbGVyLm1tCkBAIC01NTksMTMgKzU1OSwxNyBAQCAtICh2b2lkKV9zaG93UGhpc2hp
bmdBbGVydAogICAgIE5TU3RyaW5nICphbGVydE1lc3NhZ2UgPSBbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCJUeXBpbmcgaXMgbm90IGFsbG93ZWQgaW4gZnVsbCBzY3Jl
ZW4gd2Vic2l0ZXMuIOKAnCVA4oCdIG1heSBiZSBzaG93aW5nIGEgZmFrZSBrZXlib2FyZCB0byB0
cmljayB5b3UgaW50byBkaXNjbG9zaW5nIHBlcnNvbmFsIG9yIGZpbmFuY2lhbCBpbmZvcm1hdGlv
bi4iLCAiRnVsbCBTY3JlZW4gRGVjZXB0aXZlIFdlYnNpdGUgV2FybmluZyBTaGVldCBDb250ZW50
IFRleHQiKSwgKE5TU3RyaW5nICopc2VsZi5sb2NhdGlvbl07CiAgICAgVUlBbGVydENvbnRyb2xs
ZXIqIGFsZXJ0ID0gW1VJQWxlcnRDb250cm9sbGVyIGFsZXJ0Q29udHJvbGxlcldpdGhUaXRsZTph
bGVydFRpdGxlIG1lc3NhZ2U6YWxlcnRNZXNzYWdlIHByZWZlcnJlZFN0eWxlOlVJQWxlcnRDb250
cm9sbGVyU3R5bGVBbGVydF07CiAKLSAgICBpZiAoYXV0byogcGFnZSA9IFtzZWxmLl93ZWJWaWV3
IF9wYWdlXSkKKyAgICBpZiAoYXV0byogcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkgewor
ICAgICAgICBwYWdlLT5zdXNwZW5kQWxsTWVkaWFQbGF5YmFjaygpOwogICAgICAgICBwYWdlLT5z
dXNwZW5kQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKKyAgICB9CiAKICAgICBVSUFs
ZXJ0QWN0aW9uKiBleGl0QWN0aW9uID0gW1VJQWxlcnRBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOldF
Ql9VSV9TVFJJTkdfS0VZKCJFeGl0IEZ1bGwgU2NyZWVuIiwgIkV4aXQgRnVsbCBTY3JlZW4gKEVs
ZW1lbnQgRnVsbCBTY3JlZW4pIiwgIkZ1bGwgU2NyZWVuIERlY2VwdGl2ZSBXZWJzaXRlIEV4aXQg
QWN0aW9uIikgc3R5bGU6VUlBbGVydEFjdGlvblN0eWxlQ2FuY2VsIGhhbmRsZXI6XihVSUFsZXJ0
QWN0aW9uICogYWN0aW9uKSB7CiAgICAgICAgIFtzZWxmIF9jYW5jZWxBY3Rpb246YWN0aW9uXTsK
LSAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCisgICAgICAg
IGlmIChhdXRvKiBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdKSB7CiAgICAgICAgICAgICBw
YWdlLT5yZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOworICAgICAgICAgICAg
cGFnZS0+cmVzdW1lQWxsTWVkaWFQbGF5YmFjaygpOworICAgICAgICB9CiAgICAgfV07CiAKICAg
ICBVSUFsZXJ0QWN0aW9uKiBzdGF5QWN0aW9uID0gW1VJQWxlcnRBY3Rpb24gYWN0aW9uV2l0aFRp
dGxlOldFQl9VSV9TVFJJTkdfS0VZKCJTdGF5IGluIEZ1bGwgU2NyZWVuIiwgIlN0YXkgaW4gRnVs
bCBTY3JlZW4gKEVsZW1lbnQgRnVsbCBTY3JlZW4pIiwgIkZ1bGwgU2NyZWVuIERlY2VwdGl2ZSBX
ZWJzaXRlIFN0YXkgQWN0aW9uIikgc3R5bGU6VUlBbGVydEFjdGlvblN0eWxlRGVmYXVsdCBoYW5k
bGVyOl4oVUlBbGVydEFjdGlvbiAqIGFjdGlvbikgewpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMzNTVkNTRhZGU5MDJlYjM2NTNmY2U0MzlkMGY4
NmMxZDg3ZWM1OTkuLmQ5MzViMmQ0OGE3MTUyODNjMWIxNDk0ZjY4ODk4ODdjMjQ5YjkyOTUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAxOC0xMi0xOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRnVsbHNjcmVlbl0gU3VzcGVuZCBwYWdlIChhbmQgcGF1c2UgdmlkZW8pIHdoaWxl
IHBoaXNoaW5nIHdhcmluaW5nIGlzIHByZXNlbnRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2ODU2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
MTIxMjQ0ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3RvcFN1c3BlbmRS
ZXN1bWVBbGxNZWRpYS5tbTogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdExlZ2FjeS9pb3MvU2Nyb2xsaW5n
RG9lc05vdFBhdXNlTWVkaWEubW06IEFkZGVkLgorICAgICAgICAoLVtTY3JvbGxpbmdEb2VzTm90
UGF1c2VNZWRpYURlbGVnYXRlIHdlYlZpZXdEaWRGaW5pc2hMb2FkOl0pOgorICAgICAgICAoLVtT
Y3JvbGxpbmdEb2VzTm90UGF1c2VNZWRpYURlbGVnYXRlIHVpV2ViVmlldzpkaWRDb21taXRMb2Fk
Rm9yRnJhbWU6XSk6CisgICAgICAgICgtW1Njcm9sbGluZ0RvZXNOb3RQYXVzZU1lZGlhRGVsZWdh
dGUgaGFuZGxlRXZlbnQ6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAx
OC0xMC0zMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBTREtf
VkFSSUFOVCBidWlsZCBkZXN0aW5hdGlvbnMgc2hvdWxkIGJlIHNlcGFyYXRlIGZyb20gbm9uLVNE
S19WQVJJQU5UIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZDdmYTM3ZDljY2Vm
NDk4ZTMyODM4YzBjZDYzNzE1ODYyYjA0NDlkLi4xNDk4NTUzOWFhMzFlNzJjZDBmOGJmZmJhMzI5
ZTM0MzgwOTM2MmNkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzYxLDYgKzc2MSw4IEBA
CiAJCUNEQjVERkZGMjEzNjEwRkEwMEQzRTE4OSAvKiBub3ctcGxheWluZy5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQjVERkZFMjEz
NjBFRDgwMEQzRTE4OSAvKiBub3ctcGxheWluZy5odG1sICovOyB9OwogCQlDREJGQ0M0NTFBOUZG
NDUzMDBBN0I2OTEgLyogRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREJGQ0M0MzFBOUZGNDQ4MDBBN0I2
OTEgLyogRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0gKi87IH07CiAJCUNEQkZDQzQ2MUE5
RkY0OUUwMEE3QjY5MSAvKiBGdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQkZDQzQyMUE5
RkY0NDgwMEE3QjY5MSAvKiBGdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5odG1sICovOyB9Owor
CQlDREMwOTMyQjIxQzg3MkMxMDAzMEM0QjAgLyogU2Nyb2xsaW5nRG9lc05vdFBhdXNlTWVkaWEu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREMwOTMy
QTIxQzg3MkMxMDAzMEM0QjAgLyogU2Nyb2xsaW5nRG9lc05vdFBhdXNlTWVkaWEubW0gKi87IH07
CisJCUNEQzA5MzJFMjFDOTkzNDQwMDMwQzRCMCAvKiBTdG9wU3VzcGVuZFJlc3VtZUFsbE1lZGlh
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDMDkz
MkQyMUM5OTM0NDAwMzBDNEIwIC8qIFN0b3BTdXNwZW5kUmVzdW1lQWxsTWVkaWEubW0gKi87IH07
CiAJCUNEQzhFNDhEMUJDNUNCNDUwMDU5NEZFQyAvKiBBdWRpb1Nlc3Npb25DYXRlZ29yeUlPUy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzhFNDg1
MUJDNUIxOTQwMDU5NEZFQyAvKiBBdWRpb1Nlc3Npb25DYXRlZ29yeUlPUy5tbSAqLzsgfTsKIAkJ
Q0RDOEU0OTQxQkM2RjEwODAwNTk0RkVDIC8qIHZpZGVvLXdpdGgtYXVkaW8uaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4RTQ4OTFC
QzVDOTYyMDA1OTRGRUMgLyogdmlkZW8td2l0aC1hdWRpby5odG1sICovOyB9OwogCQlDREM4RTQ5
NTFCQzZGMTA4MDA1OTRGRUMgLyogdmlkZW8td2l0aC1hdWRpby5tcDQgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOEU0OEExQkM1Qzk2MjAw
NTk0RkVDIC8qIHZpZGVvLXdpdGgtYXVkaW8ubXA0ICovOyB9OwpAQCAtMjA0MCw2ICsyMDQyLDgg
QEAKIAkJQ0RCNURGRkUyMTM2MEVEODAwRDNFMTg5IC8qIG5vdy1wbGF5aW5nLmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAibm93LXBsYXlpbmcuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
QkZDQzQyMUE5RkY0NDgwMEE3QjY5MSAvKiBGdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUu
aHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRkNDNDMxQTlGRjQ0ODAwQTdC
NjkxIC8qIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzA5MzJBMjFDODcyQzEwMDMwQzRCMCAvKiBTY3Jv
bGxpbmdEb2VzTm90UGF1c2VNZWRpYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGlu
Z0RvZXNOb3RQYXVzZU1lZGlhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREMw
OTMyRDIxQzk5MzQ0MDAzMEM0QjAgLyogU3RvcFN1c3BlbmRSZXN1bWVBbGxNZWRpYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFN0b3BTdXNwZW5kUmVzdW1lQWxsTWVkaWEubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzJDNzE0MTc5NzA4OUQwMEU2MjdGQiAvKiBUaW1lUmFu
Z2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRpbWVSYW5nZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDREM4RTQ4NTFCQzVCMTk0MDA1OTRGRUMgLyogQXVkaW9TZXNzaW9u
Q2F0ZWdvcnlJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBB
dWRpb1Nlc3Npb25DYXRlZ29yeUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0RDOEU0ODkxQkM1Qzk2MjAwNTk0RkVDIC8qIHZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ2aWRlby13aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjU2Myw2ICsyNTY3LDcgQEAKIAkJCQkzN0E5REJFNzIxM0I0
QzkzMDBEMjYxQTIgLyogV0tXZWJWaWV3U2VydmVyVHJ1c3RLVkMubW0gKi8sCiAJCQkJOTNGNTZE
QTgxRTVGOTE4MTAwM0VERTg0IC8qIFdLV2ViVmlld1NuYXBzaG90Lm1tICovLAogCQkJCTk5ODRG
QUNBMUNGRkFFRUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi8sCisJCQkJQ0RD
MDkzMkQyMUM5OTM0NDAwMzBDNEIwIC8qIFN0b3BTdXNwZW5kUmVzdW1lQWxsTWVkaWEubW0gKi8s
CiAJCQkpOwogCQkJbmFtZSA9ICJXZWJLaXQgQ29jb2EiOwogCQkJcGF0aCA9IFdlYktpdENvY29h
OwpAQCAtMzUxNSw2ICszNTIwLDcgQEAKIAkJCQlDREM4RTQ5QTFCQzcyOEZFMDA1OTRGRUMgLyog
UmVzb3VyY2VzICovLAogCQkJCUNEQzhFNDg1MUJDNUIxOTQwMDU5NEZFQyAvKiBBdWRpb1Nlc3Np
b25DYXRlZ29yeUlPUy5tbSAqLywKIAkJCQkwRjRGRkE5RDFFRDNBQTg1MDBGNzExMUYgLyogU25h
cHNob3RWaWFSZW5kZXJJbkNvbnRleHQubW0gKi8sCisJCQkJQ0RDMDkzMkEyMUM4NzJDMTAwMzBD
NEIwIC8qIFNjcm9sbGluZ0RvZXNOb3RQYXVzZU1lZGlhLm1tICovLAogCQkJKTsKIAkJCXBhdGgg
PSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzg0Niw2ICszODUyLDcgQEAK
IAkJCQk1NzMwM0JDQTIwMDgyQzAxMDAzNTU5NjUgLyogQ0JPUldyaXRlclRlc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRjQ1MTdCN0YyMDU1MTAxQjAwQzI2NzIxIC8qIENsYXNzTWV0aG9kU3dp
enpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFNjFBNDExQUU2MDA0NDdDNEMgLyog
Q2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREMwOTMy
QjIxQzg3MkMxMDAzMEM0QjAgLyogU2Nyb2xsaW5nRG9lc05vdFBhdXNlTWVkaWEubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3Q0NFN0VCNzFBNDExQTdFMDA0NDdDNEMgLyogQ2xvc2VOZXdXaW5kb3dJ
bk5hdmlnYXRpb25Qb2xpY3lEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUU1
MUE0MTFBRTYwMDQ0N0M0QyAvKiBDbG9zZVRoZW5UZXJtaW5hdGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0RGOTIyMzcyMTZEMTg2NDAwNjQ3QUE3IC8qIENsb3NlV2ViVmlld0FmdGVyRW50ZXJG
dWxsc2NyZWVuLm1tIGluIFNvdXJjZXMgKi8sCkBAIC00MTM0LDYgKzQxNDEsNyBAQAogCQkJCTdD
Q0U3RUNGMUE0MTFBN0UwMDQ0N0M0QyAvKiBTdG9wTG9hZGluZ0Zyb21EaWRSZWNlaXZlUmVzcG9u
c2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTE3MTFENDI4RTRCMDBERDdDNjggLyogU3Rv
cmVCbG9iVGhlbkRlbGV0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUQwMUE0MTFBN0Uw
MDQ0N0M0QyAvKiBTdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0RnJvbVN0cmluZy5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUNEQzA5MzJFMjFDOTkzNDQwMDMwQzRCMCAvKiBTdG9wU3VzcGVuZFJl
c3VtZUFsbE1lZGlhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRDExQTQxMUE3RTAwNDQ3
QzRDIC8qIFN0cmluZ1RydW5jYXRvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUVDQTY4MENFMUU2
OENDMDkwMDczMUQyMCAvKiBTdHJpbmdVdGlsaXRpZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQlD
RTRENURFNzFGNjc0M0JBMDA3MkNGQzYgLyogU3RyaW5nV2l0aERpcmVjdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvU3RvcFN1c3BlbmRSZXN1bWVBbGxNZWRpYS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvU3RvcFN1c3BlbmRSZXN1bWVBbGxNZWRpYS5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
ZDk5YWI2OTg4MmNiYWI1N2FlNWVmYjVjMDFmODQzYWMyMTQ3MTJhCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TdG9wU3VzcGVuZFJlc3Vt
ZUFsbE1lZGlhLm1tCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQg
IlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0
IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgor
CituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoV0tXZWJWaWV3LCBTdG9wQWxsTWVk
aWFQbGF5YmFjaykKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwg
MTAwLCAxMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZ
RVNdKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjx2aWRl
byBzcmM9XCJ2aWRlby13aXRoLWF1ZGlvLm1wNFwiIHdlYmtpdC1wbGF5c2lubGluZT48L3ZpZGVv
PiJdOworCisgICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImZ1bmN0
aW9uIGV2ZW50VG9NZXNzYWdlKGV2ZW50KXt3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50
ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShldmVudC50eXBlKTt9IHZhciB2aWRlbyA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJyk7IHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoJ3BsYXlpbmcn
LCBldmVudFRvTWVzc2FnZSk7IHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoJ3BhdXNlJywgZXZlbnRU
b01lc3NhZ2UpOyJdOworCisgICAgX19ibG9jayBib29sIGRpZEJlZ2luUGxheWluZyA9IGZhbHNl
OworICAgIFt3ZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJwbGF5aW5nIiBh
Y3Rpb246XnsgZGlkQmVnaW5QbGF5aW5nID0gdHJ1ZTsgfV07CisgICAgW3dlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKS5wbGF5KCkiIGNv
bXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRC
ZWdpblBsYXlpbmcpOworCisgICAgX19ibG9jayBib29sIGRpZFBhdXNlID0gZmFsc2U7CisgICAg
W3dlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBhdXNlIiBhY3Rpb246Xnsg
ZGlkUGF1c2UgPSB0cnVlOyB9XTsKKyAgICBbd2ViVmlldyBfc3RvcEFsbE1lZGlhUGxheWJhY2td
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkUGF1c2UpOworfQorCitURVNUKFdL
V2ViVmlldywgU3VzcGVuZFJlc3VtZUFsbE1lZGlhUGxheWJhY2spCit7CisgICAgYXV0byBjb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8dmlkZW8gc3JjPVwidmlkZW8td2l0aC1hdWRpby5tcDRc
IiB3ZWJraXQtcGxheXNpbmxpbmU+PC92aWRlbz4iXTsKKworICAgIFt3ZWJWaWV3IG9iamVjdEJ5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJmdW5jdGlvbiBldmVudFRvTWVzc2FnZShldmVudCl7d2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXZlbnQu
dHlwZSk7fSB2YXIgdmlkZW8gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpOyB2aWRl
by5hZGRFdmVudExpc3RlbmVyKCdwbGF5aW5nJywgZXZlbnRUb01lc3NhZ2UpOyB2aWRlby5hZGRF
dmVudExpc3RlbmVyKCdwYXVzZScsIGV2ZW50VG9NZXNzYWdlKTsiXTsKKworICAgIF9fYmxvY2sg
Ym9vbCBkaWRCZWdpblBsYXlpbmcgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBwZXJmb3JtQWZ0ZXJS
ZWNlaXZpbmdNZXNzYWdlOkAicGxheWluZyIgYWN0aW9uOl57IGRpZEJlZ2luUGxheWluZyA9IHRy
dWU7IH1dOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJ3ZpZGVvJykucGxheSgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQmVnaW5QbGF5aW5nKTsKKworICAgIF9fYmxvY2sg
Ym9vbCBkaWRQYXVzZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHBlcmZvcm1BZnRlclJlY2Vpdmlu
Z01lc3NhZ2U6QCJwYXVzZSIgYWN0aW9uOl57IGRpZFBhdXNlID0gdHJ1ZTsgfV07CisgICAgW3dl
YlZpZXcgX3N1c3BlbmRBbGxNZWRpYVBsYXliYWNrXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRpZFBhdXNlKTsKKworICAgIF9fYmxvY2sgYm9vbCBkaWRSZWplY3QgPSBmYWxzZTsK
KyAgICBbd2ViVmlldyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAicmVqZWN0ZWQiIGFj
dGlvbjpeeyBkaWRSZWplY3QgPSB0cnVlOyB9XTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpLnBsYXkoKS5jYXRjaCgoKSA9
IHsgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
J3JlamVjdGVkJyk7IH0pIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworCisgICAgZGlkQmVnaW5Q
bGF5aW5nID0gZmFsc2U7CisgICAgW3dlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2Fn
ZTpAInBsYXlpbmciIGFjdGlvbjpeeyBkaWRCZWdpblBsYXlpbmcgPSB0cnVlOyB9XTsKKyAgICBb
d2ViVmlldyBfcmVzdW1lQWxsTWVkaWFQbGF5YmFja107CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkaWRCZWdpblBsYXlpbmcpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRMZWdhY3kvaW9zL1Njcm9sbGluZ0RvZXNOb3RQYXVzZU1lZGlhLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvaW9zL1Njcm9sbGluZ0RvZXNOb3RQYXVzZU1lZGlh
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRjMGUwOTA0NGNlMTA4NDVlOGRjNDc3ZmE0YWE0Yjk5YzUzYzJjOWMK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdExlZ2Fj
eS9pb3MvU2Nyb2xsaW5nRG9lc05vdFBhdXNlTWVkaWEubW0KQEAgLTAsMCArMSwxMTQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L0RPTUhU
TUxNZWRpYUVsZW1lbnQuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZVByaXZhdGUuaD4KKyNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGludGVyZmFjZSBTY3JvbGxpbmdEb2VzTm90UGF1
c2VNZWRpYURlbGVnYXRlIDogTlNPYmplY3QgPFVJV2ViVmlld0RlbGVnYXRlLCBET01FdmVudExp
c3RlbmVyPiB7Cit9CitAZW5kCisKK3N0YXRpYyBib29sIGRpZEZpbmlzaExvYWQ7CitzdGF0aWMg
Ym9vbCBnb3RNYWluRnJhbWU7CitzdGF0aWMgV2ViRnJhbWUqIG1haW5GcmFtZTsKKworQGltcGxl
bWVudGF0aW9uIFNjcm9sbGluZ0RvZXNOb3RQYXVzZU1lZGlhRGVsZWdhdGUKKworSUdOT1JFX1dB
Uk5JTkdTX0JFR0lOKCJkZXByZWNhdGVkLWltcGxlbWVudGF0aW9ucyIpCistICh2b2lkKXdlYlZp
ZXdEaWRGaW5pc2hMb2FkOihVSVdlYlZpZXcgKil3ZWJWaWV3CitJR05PUkVfV0FSTklOR1NfRU5E
Cit7CisgICAgZGlkRmluaXNoTG9hZCA9IHRydWU7Cit9CisKKy0gKHZvaWQpdWlXZWJWaWV3OihV
SVdlYlZpZXcgKilzZW5kZXIgZGlkQ29tbWl0TG9hZEZvckZyYW1lOihXZWJGcmFtZSAqKWZyYW1l
Cit7CisgICAgbWFpbkZyYW1lID0gZnJhbWU7CisgICAgZ290TWFpbkZyYW1lID0gdHJ1ZTsKK30K
Kworc3RhdGljIGJvb2wgZGlkUmVjZWl2ZVBhdXNlOworc3RhdGljIGJvb2wgZGlkUmVjZWl2ZVBs
YXlpbmc7CisKKy0gKHZvaWQpaGFuZGxlRXZlbnQ6KERPTUV2ZW50ICopZXZlbnQKK3sKKyAgICBp
ZiAoW2V2ZW50LnR5cGUgaXNFcXVhbFRvU3RyaW5nOkAicGF1c2UiXSkKKyAgICAgICAgZGlkUmVj
ZWl2ZVBhdXNlID0gdHJ1ZTsKKyAgICBlbHNlIGlmIChbZXZlbnQudHlwZSBpc0VxdWFsVG9TdHJp
bmc6QCJwbGF5aW5nIl0pCisgICAgICAgIGRpZFJlY2VpdmVQbGF5aW5nID0gdHJ1ZTsKK30KK0Bl
bmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdlYktpdExlZ2FjeSwgU2Ny
b2xsaW5nRG9lc05vdFBhdXNlTWVkaWEpCit7CisgICAgUmV0YWluUHRyPFVJV2luZG93PiB1aVdp
bmRvdyA9IGFkb3B0TlMoW1tVSVdpbmRvdyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFJldGFpblB0cjxVSVdlYlZpZXc+IHVpV2ViVmlldyA9
IGFkb3B0TlMoW1tVSVdlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCldKTsKKyAgICBbdWlXaW5kb3cgYWRkU3Vidmlldzp1aVdlYlZpZXcuZ2V0KCld
OworCisgICAgdWlXZWJWaWV3LmdldCgpLm1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJBY3Rpb24g
PSBOTzsKKyAgICB1aVdlYlZpZXcuZ2V0KCkuYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayA9IFlF
UzsKKworICAgIFJldGFpblB0cjxTY3JvbGxpbmdEb2VzTm90UGF1c2VNZWRpYURlbGVnYXRlPiB0
ZXN0Q29udHJvbGxlciA9IGFkb3B0TlMoW1Njcm9sbGluZ0RvZXNOb3RQYXVzZU1lZGlhRGVsZWdh
dGUgbmV3XSk7CisgICAgdWlXZWJWaWV3LmdldCgpLmRlbGVnYXRlID0gdGVzdENvbnRyb2xsZXIu
Z2V0KCk7CisKKyAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CisgICAgZ290TWFpbkZyYW1lID0g
ZmFsc2U7CisgICAgbWFpbkZyYW1lID0gbmlsOworCisgICAgW3VpV2ViVmlldyBsb2FkUmVxdWVz
dDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU0J1bmRsZS5tYWluQnVuZGxlIFVSTEZv
clJlc291cmNlOkAidmlkZW8td2l0aC1hdWRpbyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKKworICAgIFV0aWw6OnJ1bigm
ZGlkRmluaXNoTG9hZCk7CisgICAgVXRpbDo6cnVuKCZnb3RNYWluRnJhbWUpOworCisgICAgRE9N
SFRNTE1lZGlhRWxlbWVudCogdmlkZW8gPSAoRE9NSFRNTE1lZGlhRWxlbWVudCopW21haW5GcmFt
ZS5ET01Eb2N1bWVudCBxdWVyeVNlbGVjdG9yOkAidmlkZW8iXTsKKyAgICBBU1NFUlRfVFJVRShb
dmlkZW8gaXNLaW5kT2ZDbGFzczpbRE9NSFRNTE1lZGlhRWxlbWVudCBjbGFzc11dKTsKKworICAg
IFt2aWRlbyBhZGRFdmVudExpc3RlbmVyOkAicGxheWluZyIgbGlzdGVuZXI6dGVzdENvbnRyb2xs
ZXIuZ2V0KCkgdXNlQ2FwdHVyZTpOT107CisgICAgW3ZpZGVvIGFkZEV2ZW50TGlzdGVuZXI6QCJw
YXVzZSIgbGlzdGVuZXI6dGVzdENvbnRyb2xsZXIuZ2V0KCkgdXNlQ2FwdHVyZTpOT107CisKKyAg
ICBbbWFpbkZyYW1lIHNldFRpbWVvdXRzUGF1c2VkOllFU107CisKKyAgICBkaWRSZWNlaXZlUGxh
eWluZyA9IGZhbHNlOworICAgIFt2aWRlbyBwbGF5XTsKKyAgICBVdGlsOjpydW4oJmRpZFJlY2Vp
dmVQbGF5aW5nKTsKKworICAgIFttYWluRnJhbWUgc2V0VGltZW91dHNQYXVzZWQ6Tk9dOworCisg
ICAgZGlkUmVjZWl2ZVBhdXNlID0gZmFsc2U7CisgICAgW3ZpZGVvIHBsYXldOworICAgIFV0aWw6
OnJ1bigmZGlkUmVjZWl2ZVBhdXNlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SQorCisjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>