<?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>171227</bug_id>
          
          <creation_ts>2017-04-24 09:47:02 -0700</creation_ts>
          <short_desc>Indicate presence of audio when handling autoplay events</short_desc>
          <delta_ts>2017-04-25 17:03:03 -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>Media</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Rajca">mrajca</reporter>
          <assigned_to name="Matt Rajca">mrajca</assigned_to>
          <cc>achristensen</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1300539</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2017-04-24 09:47:02 -0700</bug_when>
    <thetext>When notifying clients of autoplay events, indicate whether there is audio.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300630</commentid>
    <comment_count>1</comment_count>
      <attachid>307998</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2017-04-24 13:03:32 -0700</bug_when>
    <thetext>Created attachment 307998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300635</commentid>
    <comment_count>2</comment_count>
      <attachid>307998</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-04-24 13:12:53 -0700</bug_when>
    <thetext>Comment on attachment 307998
Patch

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

&gt; Source/WebCore/page/AutoplayEvent.h:41
&gt; +enum AutoplayEventFlags {
&gt; +    AutoplayEventFlagsNone = 0,
&gt; +    AutoplayEventFlagsHasAudio = 1 &lt;&lt; 0,
&gt; +};

Generally we are using enum class for things like this theses days.

&gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:2249
&gt; +            m_client.handleAutoplayEvent(toAPI(&amp;page), static_cast&lt;WKAutoplayEvent&gt;(event), static_cast&lt;WKAutoplayEventFlags&gt;(flags), m_client.base.clientInfo);

This should use an explicit conversion function that enumerates the enums, rather than assuming the WebCore type and the API type will have the same bit values. This is also true for WKAutoplayEvent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300641</commentid>
    <comment_count>3</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2017-04-24 13:35:50 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #2)
&gt; Comment on attachment 307998 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=307998&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/AutoplayEvent.h:41
&gt; &gt; +enum AutoplayEventFlags {
&gt; &gt; +    AutoplayEventFlagsNone = 0,
&gt; &gt; +    AutoplayEventFlagsHasAudio = 1 &lt;&lt; 0,
&gt; &gt; +};
&gt; 
&gt; Generally we are using enum class for things like this theses days.

I didn&apos;t use an enum class because this is used as a set of options (bitmask) and we can&apos;t use the usual operators like | and &amp; with enum classes.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:2249
&gt; &gt; +            m_client.handleAutoplayEvent(toAPI(&amp;page), static_cast&lt;WKAutoplayEvent&gt;(event), static_cast&lt;WKAutoplayEventFlags&gt;(flags), m_client.base.clientInfo);
&gt; 
&gt; This should use an explicit conversion function that enumerates the enums,
&gt; rather than assuming the WebCore type and the API type will have the same
&gt; bit values. This is also true for WKAutoplayEvent.

I&apos;ll add one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300653</commentid>
    <comment_count>4</comment_count>
      <attachid>308007</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2017-04-24 14:00:59 -0700</bug_when>
    <thetext>Created attachment 308007
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300690</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-04-24 15:55:17 -0700</bug_when>
    <thetext>(In reply to Matt Rajca from comment #3)
&gt; (In reply to Sam Weinig from comment #2)
&gt; &gt; Comment on attachment 307998 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=307998&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/page/AutoplayEvent.h:41
&gt; &gt; &gt; +enum AutoplayEventFlags {
&gt; &gt; &gt; +    AutoplayEventFlagsNone = 0,
&gt; &gt; &gt; +    AutoplayEventFlagsHasAudio = 1 &lt;&lt; 0,
&gt; &gt; &gt; +};
&gt; &gt; 
&gt; &gt; Generally we are using enum class for things like this theses days.
&gt; 
&gt; I didn&apos;t use an enum class because this is used as a set of options
&gt; (bitmask) and we can&apos;t use the usual operators like | and &amp; with enum
&gt; classes.

If you want to use it as a bit set, then we have the OptionSet&lt;&gt; wrapper for that, which can use an enum class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300709</commentid>
    <comment_count>6</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2017-04-24 16:41:48 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; (In reply to Matt Rajca from comment #3)
&gt; &gt; (In reply to Sam Weinig from comment #2)
&gt; &gt; &gt; Comment on attachment 307998 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=307998&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/page/AutoplayEvent.h:41
&gt; &gt; &gt; &gt; +enum AutoplayEventFlags {
&gt; &gt; &gt; &gt; +    AutoplayEventFlagsNone = 0,
&gt; &gt; &gt; &gt; +    AutoplayEventFlagsHasAudio = 1 &lt;&lt; 0,
&gt; &gt; &gt; &gt; +};
&gt; &gt; &gt; 
&gt; &gt; &gt; Generally we are using enum class for things like this theses days.
&gt; &gt; 
&gt; &gt; I didn&apos;t use an enum class because this is used as a set of options
&gt; &gt; (bitmask) and we can&apos;t use the usual operators like | and &amp; with enum
&gt; &gt; classes.
&gt; 
&gt; If you want to use it as a bit set, then we have the OptionSet&lt;&gt; wrapper for
&gt; that, which can use an enum class.

Thanks, didn&apos;t know about that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301076</commentid>
    <comment_count>7</comment_count>
      <attachid>308109</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2017-04-25 09:51:51 -0700</bug_when>
    <thetext>Created attachment 308109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301328</commentid>
    <comment_count>8</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2017-04-25 17:03:03 -0700</bug_when>
    <thetext>Committed r215771: &lt;http://trac.webkit.org/changeset/215771&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307998</attachid>
            <date>2017-04-24 13:03:32 -0700</date>
            <delta_ts>2017-04-24 14:00:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171227-20170424130320.patch</filename>
            <type>text/plain</type>
            <size>21420</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRkNDc2YTdjODJmZmU5
ZTc3MmQ0ODRjZmUwOTkzZTQ5NmE3Zjk5Ni4uYTRiMDI5NWRiMjdjMjQ5MzhiZTQ0MGJjMDEwYmMz
ODdiNmEzYTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA0LTI0ICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBJbmRpY2F0ZSBwcmVzZW5jZSBv
ZiBhdWRpbyB3aGVuIGhhbmRsaW5nIGF1dG9wbGF5IGV2ZW50cy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTIyNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEFQSSB0ZXN0cy4KKworICAgICAg
ICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpoYW5kbGVBdXRvcGxheUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OnN0b3BXaXRob3V0RGVzdHJveWluZ01lZGlhUGxheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVzZXJEaWRJbnRlcmZlcmVXaXRoQXV0b3BsYXkp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0UGxheWJhY2tXaXRob3V0
VXNlckdlc3R1cmUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAg
ICAqIHBhZ2UvQXV0b3BsYXlFdmVudC5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisKIDIwMTctMDQtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIFN3aXRjaCB0byB1c2UgRU5BQkxFX1JFTU9URV9JTlNQRUNUT1Ig
aW5zdGVhZCBvZiBFTkFCTEVfSU5TUEVDVE9SX1NFUlZFUiBmb3IgdGhlIHJlbW90ZSBpbnNwZWN0
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCAyOWFhMTVkMWQ0Njk4NTc2ODQ3Y2QyM2NjZTc1NDc0NDNhNzA1Y2I0
Li5kMGVkYzI2ZmFhNzU3MzI0ZmI3ODhiYzIyNDRhNWZlNzM3ZWZiYjU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMjUgQEAKIDIwMTctMDQtMjQgIE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29t
PgogCisgICAgICAgIEluZGljYXRlIHByZXNlbmNlIG9mIGF1ZGlvIHdoZW4gaGFuZGxpbmcgYXV0
b3BsYXkgZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcxMjI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xp
ZW50OjpoYW5kbGVBdXRvcGxheUV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlQXV0b3Bs
YXlFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OmhhbmRsZUF1dG9wbGF5RXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKKzIwMTctMDQtMjQgIE1hdHQg
UmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgorCiAgICAgICAgIEFkZCBhdmFpbGFiaWxpdHkgYW5u
b3RhdGlvbiB0byBfc2V0U2hvdWxkU3VwcHJlc3NGaXJzdFJlc3BvbmRlckNoYW5nZXMgcHJpdmF0
ZSBBUEkuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzEyMjQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYzlj
NDkwNjkxNjJlOThhNmRmYTQ5ODViYzIwMWVkNWZkZGIxMDEzMC4uNmE2YjdhYTZkYjM5MzJjNTcx
NGJiMDJmN2RkN2ZlNzAzNWM3YjVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC0zMTgyLDYgKzMxODIsMTQgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpw
bGF5KCkKICAgICBwbGF5SW50ZXJuYWwoKTsKIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpo
YW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQgZXZlbnQpCit7CisgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKSkgeworICAgICAgICBib29sIGhhc0F1ZGlvID0gdGhp
cy0+aGFzQXVkaW8oKSAmJiAhbXV0ZWQoKSAmJiB2b2x1bWUoKTsKKyAgICAgICAgcGFnZS0+Y2hy
b21lKCkuY2xpZW50KCkuaGFuZGxlQXV0b3BsYXlFdmVudChldmVudCwgaGFzQXVkaW8gPyBBdXRv
cGxheUV2ZW50RmxhZ3NIYXNBdWRpbyA6IEF1dG9wbGF5RXZlbnRGbGFnc05vbmUpOworICAgIH0K
K30KKwogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5SW50ZXJuYWwoKQogewogICAgIExPRyhN
ZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCglcCkiLCB0aGlzKTsKQEAgLTMy
NDIsOCArMzI1MCw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6cGxheUludGVybmFsKCkKIAog
ICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgp
KSB7CiAgICAgICAgIGlmIChtX3BsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlID09IFBsYXliYWNr
V2l0aG91dFVzZXJHZXN0dXJlOjpQcmV2ZW50ZWQpIHsKLSAgICAgICAgICAgIGlmIChQYWdlKiBw
YWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCku
Y2xpZW50KCkuaGFuZGxlQXV0b3BsYXlFdmVudChBdXRvcGxheUV2ZW50OjpEaWRQbGF5TWVkaWFQ
cmV2ZW50ZWRGcm9tUGxheWluZyk7CisgICAgICAgICAgICBoYW5kbGVBdXRvcGxheUV2ZW50KEF1
dG9wbGF5RXZlbnQ6OkRpZFBsYXlNZWRpYVByZXZlbnRlZEZyb21QbGF5aW5nKTsKICAgICAgICAg
ICAgIHNldFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlKFBsYXliYWNrV2l0aG91dFVzZXJHZXN0
dXJlOjpOb25lKTsKICAgICAgICAgfQogICAgIH0gZWxzZQpAQCAtNDQ2NywxMCArNDQ3NCw5IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJUaW1lQ2hhbmdlZChNZWRpYVBsYXll
ciopCiAgICAgICAgICAgICAgICAgaWYgKCF3YXNTZWVraW5nKQogICAgICAgICAgICAgICAgICAg
ICBhZGRCZWhhdmlvclJlc3RyaWN0aW9uc09uRW5kSWZOZWNlc3NhcnkoKTsKIAotICAgICAgICAg
ICAgICAgIGlmIChtX3BsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlID09IFBsYXliYWNrV2l0aG91
dFVzZXJHZXN0dXJlOjpTdGFydGVkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChQYWdlKiBw
YWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBwYWdlLT5j
aHJvbWUoKS5jbGllbnQoKS5oYW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQ6OkRpZEVu
ZE1lZGlhUGxheWJhY2tXaXRob3V0VXNlckludGVyZmVyZW5jZSk7Ci0gICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGlmIChtX3BsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlID09IFBs
YXliYWNrV2l0aG91dFVzZXJHZXN0dXJlOjpTdGFydGVkKQorICAgICAgICAgICAgICAgICAgICBo
YW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQ6OkRpZEVuZE1lZGlhUGxheWJhY2tXaXRo
b3V0VXNlckludGVyZmVyZW5jZSk7CisKICAgICAgICAgICAgICAgICBzZXRQbGF5YmFja1dpdGhv
dXRVc2VyR2VzdHVyZShQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZTo6Tm9uZSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAvLyBJZiB0aGUgbWVkaWEgZWxlbWVudCBoYXMgYSBjdXJyZW50
IG1lZGlhIGNvbnRyb2xsZXIsIHRoZW4gcmVwb3J0IHRoZSBjb250cm9sbGVyIHN0YXRlCkBAIC01
MjMwLDE4ICs1MjM2LDE3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c3RvcFdpdGhvdXREZXN0
cm95aW5nTWVkaWFQbGF5ZXIoKQogICAgIHNldFBhdXNlZEludGVybmFsKHRydWUpOwogICAgIG1f
bWVkaWFTZXNzaW9uLT5jbGllbnRXaWxsUGF1c2VQbGF5YmFjaygpOwogCi0gICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKSkgewotICAgICAgICBzd2l0Y2ggKG1fcGxheWJhY2tX
aXRob3V0VXNlckdlc3R1cmUpIHsKLSAgICAgICAgY2FzZSBQbGF5YmFja1dpdGhvdXRVc2VyR2Vz
dHVyZTo6U3RhcnRlZDoKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhbmRs
ZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudDo6RGlkRW5kTWVkaWFQbGF5YmFja1dpdGhvdXRV
c2VySW50ZXJmZXJlbmNlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBsYXli
YWNrV2l0aG91dFVzZXJHZXN0dXJlOjpQcmV2ZW50ZWQ6Ci0gICAgICAgICAgICBwYWdlLT5jaHJv
bWUoKS5jbGllbnQoKS5oYW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQ6OlVzZXJOZXZl
clBsYXllZE1lZGlhUHJldmVudGVkRnJvbVBsYXlpbmcpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgUGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmU6Ok5vbmU6Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQorICAgIHN3aXRjaCAobV9wbGF5YmFja1dpdGhvdXRVc2VyR2Vz
dHVyZSkgeworICAgIGNhc2UgUGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmU6OlN0YXJ0ZWQ6Cisg
ICAgICAgIGhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudDo6RGlkRW5kTWVkaWFQbGF5
YmFja1dpdGhvdXRVc2VySW50ZXJmZXJlbmNlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQ
bGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZTo6UHJldmVudGVkOgorICAgICAgICBoYW5kbGVBdXRv
cGxheUV2ZW50KEF1dG9wbGF5RXZlbnQ6OlVzZXJOZXZlclBsYXllZE1lZGlhUHJldmVudGVkRnJv
bVBsYXlpbmcpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBsYXliYWNrV2l0aG91dFVzZXJH
ZXN0dXJlOjpOb25lOgorICAgICAgICBicmVhazsKICAgICB9CisKICAgICBzZXRQbGF5YmFja1dp
dGhvdXRVc2VyR2VzdHVyZShQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZTo6Tm9uZSk7CiAKICAg
ICB1c2VyQ2FuY2VsbGVkTG9hZCgpOwpAQCAtNzE5Myw5ICs3MTk4LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojp1c2VyRGlkSW50ZXJmZXJlV2l0aEF1dG9wbGF5KCkKICAgICBpZiAoY3VycmVu
dFRpbWUoKSAtIG1fcGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmVTdGFydGVkVGltZS0+dG9Eb3Vi
bGUoKSA+IDEwKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3Vt
ZW50KCkucGFnZSgpKQotICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVBdXRv
cGxheUV2ZW50KEF1dG9wbGF5RXZlbnQ6OlVzZXJEaWRJbnRlcmZlcmVXaXRoUGxheWJhY2spOwot
CisgICAgaGFuZGxlQXV0b3BsYXlFdmVudChBdXRvcGxheUV2ZW50OjpVc2VyRGlkSW50ZXJmZXJl
V2l0aFBsYXliYWNrKTsKICAgICBzZXRQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZShQbGF5YmFj
a1dpdGhvdXRVc2VyR2VzdHVyZTo6Tm9uZSk7CiB9CiAKQEAgLTcyMTQsOSArNzIxNyw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0UGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmUoUGxheWJh
Y2tXaXRob3V0VXNlckdlc3R1cmUKICAgICAgICAgbV9wbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVy
ZVN0YXJ0ZWRUaW1lID0gc3RkOjpudWxsb3B0OwogCiAgICAgICAgIGRpc3BhdGNoUGxheVBhdXNl
RXZlbnRzSWZOZWVkc1F1aXJrcygpOwotCi0gICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1l
bnQoKS5wYWdlKCkpCi0gICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVB
dXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQ6OkRpZFByZXZlbnRNZWRpYUZyb21QbGF5aW5nKTsK
KyAgICAgICAgaGFuZGxlQXV0b3BsYXlFdmVudChBdXRvcGxheUV2ZW50OjpEaWRQcmV2ZW50TWVk
aWFGcm9tUGxheWluZyk7CiAKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAzZmVkOWIxODU4YmFjMTU5MWY5MzVjM2Y3MjNhYjUz
Yzc5NzUxZWY5Li45NmUwYTk1ZDY4OGU4MmE0ZTI3MDk4YmU5YzE1NTQxNTk2NDQxMzAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMjgsNiArMjgsNyBAQAogI2lm
IEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUg
IkF1dG9wbGF5RXZlbnQuaCIKICNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1
ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgpAQCAtNzU1
LDYgKzc1Niw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBQbGF5YmFja1dpdGhvdXRVc2Vy
R2VzdHVyZSB7IE5vbmUsIFN0YXJ0ZWQsIFByZXZlbnRlZCB9OwogICAgIHZvaWQgc2V0UGxheWJh
Y2tXaXRob3V0VXNlckdlc3R1cmUoUGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmUpOwogICAgIHZv
aWQgdXNlckRpZEludGVyZmVyZVdpdGhBdXRvcGxheSgpOworICAgIHZvaWQgaGFuZGxlQXV0b3Bs
YXlFdmVudChBdXRvcGxheUV2ZW50KTsKIAogICAgIE1lZGlhVGltZSBtaW5UaW1lU2Vla2FibGUo
KSBjb25zdDsKICAgICBNZWRpYVRpbWUgbWF4VGltZVNlZWthYmxlKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9wbGF5RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQXV0b3BsYXlFdmVudC5oCmluZGV4IDg2NmY0Mzc2MmRkYWJhMjI0YzM5YzZlZWMyNzBh
ZjUwZDY0NWRkNGMuLmUzNzE5ZGFjOTBmMjRkZGExNWU4MDcwMDcxNTc0YjdkYjU4NmRhMWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3BsYXlFdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQXV0b3BsYXlFdmVudC5oCkBAIC0zNSw0ICszNSw5IEBAIGVudW0gY2xh
c3MgQXV0b3BsYXlFdmVudCB7CiAgICAgVXNlck5ldmVyUGxheWVkTWVkaWFQcmV2ZW50ZWRGcm9t
UGxheWluZywKIH07CiAKK2VudW0gQXV0b3BsYXlFdmVudEZsYWdzIHsKKyAgICBBdXRvcGxheUV2
ZW50RmxhZ3NOb25lID0gMCwKKyAgICBBdXRvcGxheUV2ZW50RmxhZ3NIYXNBdWRpbyA9IDEgPDwg
MCwKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCmluZGV4IGI2ZmRjOWE1OTI3YTYyNzBjYTE0NmJhMjk2MDRmN2NmYzVjOWVlMTEuLmE3MjUx
MDRlNDNiMDlkNWI2YTIyY2ZmNTVmNTY2ODhlZmFlNzgyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaApAQCAtNDIyLDcgKzQyMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRD
aGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCB1aW50NjRfdCkgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudCkgeyB9CisgICAg
dmlydHVhbCB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudCwgQXV0b3BsYXlF
dmVudEZsYWdzKSB7IH0KIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIHZpcnR1YWwg
dm9pZCBoYXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50c0RpZENoYW5nZShib29s
KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCAy
N2Q2NjkwN2UwNTQ3M2QyOWU2NTNjZWE0MWJiMDUzOGU2YmFmYTE2Li41MDUyNGQ5ZWFiYTk3ZTkz
M2MzZDIxZDZjOTFlZTUzNmZjNmVjMmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oCkBAIC0xNTAsNyArMTUwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB2b2lkIGlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9
CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRs
ZUF1dG9wbGF5RXZlbnQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpBdXRvcGxheUV2
ZW50KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIFdlYkNvcmU6OkF1dG9wbGF5RXZl
bnRGbGFncykgeyB9CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICB2aXJ0dWFsIHZv
aWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBX
ZWJLaXQ6OldlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhKikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGFhY2Q4OTk2NzAxM2JiZjBjZmRjMmYwODdhNTAw
ZWUyNjY4NzBiMzIuLmI5ODQ4NDJlYzcwYmRlYzkwYzk0NjQwOGNmOTdhZDQ3NTRhNTk3N2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0yMjQxLDEyICsy
MjQxLDEyIEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBj
b25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAgICAgICAgIH0KICNlbmRpZgogCi0g
ICAgICAgIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkNv
cmU6OkF1dG9wbGF5RXZlbnQgZXZlbnQpIG92ZXJyaWRlCisgICAgICAgIHZvaWQgaGFuZGxlQXV0
b3BsYXlFdmVudChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQgZXZl
bnQsIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncyBmbGFncykgb3ZlcnJpZGUKICAgICAgICAg
ewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5oYW5kbGVBdXRvcGxheUV2ZW50KQogICAgICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgbV9jbGllbnQuaGFuZGxlQXV0b3BsYXlF
dmVudCh0b0FQSSgmcGFnZSksIHN0YXRpY19jYXN0PFdLQXV0b3BsYXlFdmVudD4oZXZlbnQpLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICAgICAgbV9jbGllbnQuaGFuZGxlQXV0
b3BsYXlFdmVudCh0b0FQSSgmcGFnZSksIHN0YXRpY19jYXN0PFdLQXV0b3BsYXlFdmVudD4oZXZl
bnQpLCBzdGF0aWNfY2FzdDxXS0F1dG9wbGF5RXZlbnRGbGFncz4oZmxhZ3MpLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAppbmRleCAyM2M5OTg4NDdmMzNjNWE2
YzhjOTQxYWMxYzg5MzlmOGRiMzFkODc5Li41NzJjYjZhOGFkMDY2NzJiYzEyZDA5YTIyZGJkZWU1
NTA1OWUyNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
VUlDbGllbnQuaApAQCAtNTcsNiArNTcsMTIgQEAgZW51bSB7CiB9OwogdHlwZWRlZiB1aW50MzJf
dCBXS0F1dG9wbGF5RXZlbnQ7CiAKK2VudW0geworICAgIGtXS0F1dG9wbGF5RXZlbnRGbGFnc05v
bmUgPSAwLAorICAgIGtXS0F1dG9wbGF5RXZlbnRGbGFnc0hhc0F1ZGlvID0gMSA8PCAwLAorfTsK
K3R5cGVkZWYgdWludDMyX3QgV0tBdXRvcGxheUV2ZW50RmxhZ3M7CisKIFdLX0VYUE9SVCBXS1R5
cGVJRCBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxSZXN1bHRMaXN0ZW5lckdldFR5
cGVJRCgpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
UmVzdWx0TGlzdGVuZXJDYWxsKFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFJlc3Vs
dExpc3RlbmVyUmVmIGxpc3RlbmVyLCBib29sIHJlc3VsdCk7CiAKQEAgLTExMSw3ICsxMTcsNyBA
QCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdENhbGxiYWNrKShXS1BhZ2VSZQogdHlwZWRlZiB2b2lkICgqV0tDaGVja1VzZXJNZWRp
YVBlcm1pc3Npb25DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdL
U2VjdXJpdHlPcmlnaW5SZWYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFdLU2VjdXJpdHlPcmln
aW5SZWYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tS
ZWYgZGV2aWNlc1JlcXVlc3QsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lk
ICgqV0tQYWdlRGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbkNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9p
ZCAoKldLUGFnZU1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlQ2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhUmVmIG1ldGFkYXRhLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLSGFuZGxlQXV0b3BsYXlFdmVudENhbGxiYWNr
KShXS1BhZ2VSZWYgcGFnZSwgV0tBdXRvcGxheUV2ZW50IGV2ZW50LCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLSGFuZGxlQXV0b3BsYXlFdmVudENhbGxiYWNrKShX
S1BhZ2VSZWYgcGFnZSwgV0tBdXRvcGxheUV2ZW50IGV2ZW50LCBXS0F1dG9wbGF5RXZlbnRGbGFn
cyBmbGFncywgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0Z1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYgdm9pZCAoKldLUmVxdWVzdFBvaW50ZXJMb2NrQ2Fs
bGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMWRiZWM0NTk3YzlmMjM1YmE5
ODcyNjk2ZDljMmM0N2ZhNzMwYTM3ZC4uYzQ0ZmU5NmIwNDc4ZjFkYThmZmQ1ZTUzYjcwMWI2ZjA3
NzYwYzk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTY1NjcsOSArNjU2Nyw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkQ29udGVudE1lZGlh
RWxlbWVudERpZENoYW5nZSh1aW50NjRfdCBlbGVtZW50SUQpCiB9CiAjZW5kaWYKIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmhhbmRsZUF1dG9wbGF5RXZlbnQodWludDMyX3QgZXZlbnQpCit2b2lkIFdl
YlBhZ2VQcm94eTo6aGFuZGxlQXV0b3BsYXlFdmVudCh1aW50MzJfdCBldmVudCwgdWludDMyX3Qg
ZmxhZ3MpCiB7Ci0gICAgbV91aUNsaWVudC0+aGFuZGxlQXV0b3BsYXlFdmVudCgqdGhpcywgc3Rh
dGljX2Nhc3Q8QXV0b3BsYXlFdmVudD4oZXZlbnQpKTsKKyAgICBtX3VpQ2xpZW50LT5oYW5kbGVB
dXRvcGxheUV2ZW50KCp0aGlzLCBzdGF0aWNfY2FzdDxBdXRvcGxheUV2ZW50PihldmVudCksIHN0
YXRpY19jYXN0PEF1dG9wbGF5RXZlbnRGbGFncz4oZmxhZ3MpKTsKIH0KIAogI2lmIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAwNGMzNWM1
MzI5ZTY0YjJjNmJhMmE3MmNmOTZmYzc5YWM4YWFkNTlhLi4yMzQ3ODk5OTY1ODE1OGU2MjkyNmEx
NmUzNGNiOGJmMGQwYzAyN2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC0xMDcwLDcgKzEwNzAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNBY3RpdmVBdWRp
b1N0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZTsgfQogICAgIGJvb2wgaGFzQWN0aXZl
VmlkZW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2U7IH0KICAgICBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZUZsYWdzKCkgY29uc3QgeyBy
ZXR1cm4gbV9tZWRpYVN0YXRlOyB9Ci0gICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KHVpbnQz
Ml90KTsKKyAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQodWludDMyX3QsIHVpbnQzMl90KTsK
IAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hh
bmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgppbmRleCBlOTliZWI4YTc3NDIxYTgyMzBkOTViNDBlZjdjMjFjN2ZlODA2N2E3Li5m
OWU4ZjA4YWRkOTNkZWM1YzQxY2IwZjYzMDkxZGQxMzk0ZWYzZmM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQzOCw3ICs0
MzgsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAgICBJc1BsYXlp
bmdNZWRpYURpZENoYW5nZSh1bnNpZ25lZCBzdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElE
KQotICAgIEhhbmRsZUF1dG9wbGF5RXZlbnQodWludDMyX3QgZXZlbnQpCisgICAgSGFuZGxlQXV0
b3BsYXlFdmVudCh1aW50MzJfdCBldmVudCwgdWludDMyX3QgZmxhZ3MpCiAKICNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTikKICAgICBIYXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50
c0RpZENoYW5nZShib29sIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDM1OTNk
OTAyYmQ1NzllMWQ0NTY0ODI3NjdiYmZiNzVjYzgwYmMwMjYuLmQyYmIxNThhYzVmNTNjZTBhNGM0
NzQxM2E1MjUxMjliNDIxM2Q5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEwODgs
OSArMTA4OCw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5n
ZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhCiAgICAgbV9wYWdlLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6SXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uoc3RhdGUsIHNvdXJj
ZUVsZW1lbnRJRCkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6aGFuZGxlQXV0b3BsYXlF
dmVudChBdXRvcGxheUV2ZW50IGV2ZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmhhbmRsZUF1
dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudCBldmVudCwgQXV0b3BsYXlFdmVudEZsYWdzIGZsYWdz
KQogewotICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkhhbmRsZUF1dG9w
bGF5RXZlbnQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGV2ZW50KSkpOworICAgIG1fcGFnZS5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkhhbmRsZUF1dG9wbGF5RXZlbnQoc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGV2ZW50KSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGZsYWdzKSkpOwogfQogCiAj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA1NzZjZDc5
ZjFmNzc1YTY1MWE5NWZkZDc3ZDAwZGRhNjkwMjBkNTA2Li4wNDVkNTc2MGRlYmQ3Y2UwMTJkYmFk
ZGJjODE3ZjJmZTJjYWRhZjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI5Nyw3ICsyOTcs
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3
KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBpc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MsIHVpbnQ2NF90KSBmaW5hbDsKLSAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViQ29y
ZTo6QXV0b3BsYXlFdmVudCkgZmluYWw7CisgICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdl
YkNvcmU6OkF1dG9wbGF5RXZlbnQsIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncykgZmluYWw7
CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICB2b2lkIGhhc01lZGlhU2Vzc2lvbldp
dGhBY3RpdmVNZWRpYUVsZW1lbnRzRGlkQ2hhbmdlKGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV2Vic2l0ZVBvbGljaWVzLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV2Vic2l0ZVBvbGljaWVz
Lm1tCmluZGV4IGNiN2U4YzAxMTAwYzRlZGQ2YWMzN2ZjYTU3ZDcxZTI1YmU4OWQxMmQuLjBlZmE1
MTllZDM3MzY5M2I3NWRiMTRjMWY3OTk2YzNlYTMwYjgxNDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dlYnNpdGVQb2xpY2llcy5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XZWJzaXRlUG9saWNpZXMubW0K
QEAgLTUxLDYgKzUxLDcgQEAgc3RhdGljIGJvb2wgcmVjZWl2ZWRBbGVydDsKIAogI2lmIFBMQVRG
T1JNKE1BQykKIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdLQXV0b3BsYXlFdmVudD4gcmVjZWl2ZWRB
dXRvcGxheUV2ZW50Oworc3RhdGljIHN0ZDo6b3B0aW9uYWw8V0tBdXRvcGxheUV2ZW50RmxhZ3M+
IHJlY2VpdmVkQXV0b3BsYXlFdmVudEZsYWdzOwogI2VuZGlmCiAKIHN0YXRpYyBzaXplX3QgYWxl
cnRDb3VudDsKQEAgLTI4MCw4ICsyODEsOSBAQCBURVNUKFdlYktpdDIsIFdlYnNpdGVQb2xpY2ll
c0F1dG9wbGF5RW5hYmxlZCkKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKLXN0YXRpYyB2b2lkIGhh
bmRsZUF1dG9wbGF5RXZlbnQoV0tQYWdlUmVmIHBhZ2UsIFdLQXV0b3BsYXlFdmVudCBldmVudCwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQo
V0tQYWdlUmVmIHBhZ2UsIFdLQXV0b3BsYXlFdmVudCBldmVudCwgV0tBdXRvcGxheUV2ZW50Rmxh
Z3MgZmxhZ3MsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CisgICAgcmVjZWl2ZWRBdXRvcGxh
eUV2ZW50RmxhZ3MgPSBmbGFnczsKICAgICByZWNlaXZlZEF1dG9wbGF5RXZlbnQgPSBldmVudDsK
IH0KIApAQCAtMzIwLDYgKzMyMiw3IEBAIFRFU1QoV2ViS2l0MiwgV2Vic2l0ZVBvbGljaWVzUGxh
eUFmdGVyUHJldmVudGVkQXV0b3BsYXkpCiAgICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpw
bGF5QnV0dG9uQ2xpY2tQb2ludCBzaW11bGF0ZVByZXNzdXJlOk5PXTsKICAgICBbd2ViVmlldyBt
b3VzZVVwQXRQb2ludDpwbGF5QnV0dG9uQ2xpY2tQb2ludF07CiAgICAgcnVuVW50aWxSZWNlaXZl
c0F1dG9wbGF5RXZlbnQoa1dLQXV0b3BsYXlFdmVudERpZFBsYXlNZWRpYVByZXZlbnRlZEZyb21B
dXRvcGxheWluZyk7CisgICAgQVNTRVJUX1RSVUUoKnJlY2VpdmVkQXV0b3BsYXlFdmVudEZsYWdz
ICYga1dLQXV0b3BsYXlFdmVudEZsYWdzSGFzQXVkaW8pOwogCiAgICAgcmVjZWl2ZWRBdXRvcGxh
eUV2ZW50ID0gc3RkOjpudWxsb3B0OwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiIiBi
YXNlVVJMOm5pbF07CkBAIC0zMjgsMTAgKzMzMSwxMiBAQCBURVNUKFdlYktpdDIsIFdlYnNpdGVQ
b2xpY2llc1BsYXlBZnRlclByZXZlbnRlZEF1dG9wbGF5KQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OmF1dG9wbGF5UmVxdWVzdF07CiAgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJsb2Fk
ZWQiXTsKICAgICBydW5VbnRpbFJlY2VpdmVzQXV0b3BsYXlFdmVudChrV0tBdXRvcGxheUV2ZW50
RGlkUHJldmVudEZyb21BdXRvcGxheWluZyk7CisgICAgQVNTRVJUX1RSVUUoKnJlY2VpdmVkQXV0
b3BsYXlFdmVudEZsYWdzICYga1dLQXV0b3BsYXlFdmVudEZsYWdzSGFzQXVkaW8pOwogCiAgICAg
W3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpwbGF5QnV0dG9uQ2xpY2tQb2ludCBzaW11bGF0ZVBy
ZXNzdXJlOk5PXTsKICAgICBbd2ViVmlldyBtb3VzZVVwQXRQb2ludDpwbGF5QnV0dG9uQ2xpY2tQ
b2ludF07CiAgICAgcnVuVW50aWxSZWNlaXZlc0F1dG9wbGF5RXZlbnQoa1dLQXV0b3BsYXlFdmVu
dERpZFBsYXlNZWRpYVByZXZlbnRlZEZyb21BdXRvcGxheWluZyk7CisgICAgQVNTRVJUX1RSVUUo
KnJlY2VpdmVkQXV0b3BsYXlFdmVudEZsYWdzICYga1dLQXV0b3BsYXlFdmVudEZsYWdzSGFzQXVk
aW8pOwogCiAgICAgcmVjZWl2ZWRBdXRvcGxheUV2ZW50ID0gc3RkOjpudWxsb3B0OwogICAgIFt3
ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiIiBiYXNlVVJMOm5pbF07CkBAIC0zNTksNiArMzY0LDcg
QEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNQbGF5QWZ0ZXJQcmV2ZW50ZWRBdXRvcGxh
eSkKICAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50OnBsYXlCdXR0b25DbGlja1BvaW50IHNp
bXVsYXRlUHJlc3N1cmU6Tk9dOwogICAgIFt3ZWJWaWV3IG1vdXNlVXBBdFBvaW50OnBsYXlCdXR0
b25DbGlja1BvaW50XTsKICAgICBydW5VbnRpbFJlY2VpdmVzQXV0b3BsYXlFdmVudChrV0tBdXRv
cGxheUV2ZW50RGlkUGxheU1lZGlhUHJldmVudGVkRnJvbUF1dG9wbGF5aW5nKTsKKyAgICBBU1NF
UlRfVFJVRSgqcmVjZWl2ZWRBdXRvcGxheUV2ZW50RmxhZ3MgJiBrV0tBdXRvcGxheUV2ZW50Rmxh
Z3NIYXNBdWRpbyk7CiB9CiAKIFRFU1QoV2ViS2l0MiwgV2Vic2l0ZVBvbGljaWVzUGxheWluZ1dp
dGhvdXRJbnRlcmZlcmVuY2UpCkBAIC0zODksMTEgKzM5NSwxMyBAQCBURVNUKFdlYktpdDIsIFdl
YnNpdGVQb2xpY2llc1BsYXlpbmdXaXRob3V0SW50ZXJmZXJlbmNlKQogCiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAImFib3V0OmJsYW5rIl1dXTsKICAgICBydW5VbnRpbFJlY2VpdmVzQXV0b3BsYXlFdmVu
dChrV0tBdXRvcGxheUV2ZW50RGlkRW5kTWVkaWFQbGF5YmFja1dpdGhvdXRVc2VySW50ZXJmZXJl
bmNlKTsKKyAgICBBU1NFUlRfVFJVRSgqcmVjZWl2ZWRBdXRvcGxheUV2ZW50RmxhZ3MgJiBrV0tB
dXRvcGxheUV2ZW50RmxhZ3NIYXNBdWRpbyk7CiAKICAgICByZWNlaXZlZEF1dG9wbGF5RXZlbnQg
PSBzdGQ6Om51bGxvcHQ7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6anNQbGF5UmVxdWVzdF07
CiAgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJlbmRlZCJdOwogICAgIHJ1blVudGlsUmVj
ZWl2ZXNBdXRvcGxheUV2ZW50KGtXS0F1dG9wbGF5RXZlbnREaWRFbmRNZWRpYVBsYXliYWNrV2l0
aG91dFVzZXJJbnRlcmZlcmVuY2UpOworICAgIEFTU0VSVF9UUlVFKCpyZWNlaXZlZEF1dG9wbGF5
RXZlbnRGbGFncyAmIGtXS0F1dG9wbGF5RXZlbnRGbGFnc0hhc0F1ZGlvKTsKIH0KIAogVEVTVChX
ZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNVc2VySW50ZXJmZXJlbmNlV2l0aFBsYXlpbmcpCkBAIC00
MjMsNiArNDMxLDcgQEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNVc2VySW50ZXJmZXJl
bmNlV2l0aFBsYXlpbmcpCiAKICAgICBXS1BhZ2VTZXRNdXRlZChbd2ViVmlldyBfcGFnZUZvclRl
c3RpbmddLCBrV0tNZWRpYUF1ZGlvTXV0ZWQpOwogICAgIHJ1blVudGlsUmVjZWl2ZXNBdXRvcGxh
eUV2ZW50KGtXS0F1dG9wbGF5RXZlbnRVc2VyRGlkSW50ZXJmZXJlV2l0aFBsYXliYWNrKTsKKyAg
ICBBU1NFUlRfVFJVRSgqcmVjZWl2ZWRBdXRvcGxheUV2ZW50RmxhZ3MgJiBrV0tBdXRvcGxheUV2
ZW50RmxhZ3NIYXNBdWRpbyk7CiAKICAgICByZWNlaXZlZEF1dG9wbGF5RXZlbnQgPSBzdGQ6Om51
bGxvcHQ7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6anNQbGF5UmVxdWVzdF07CkBAIC00MzMs
NiArNDQyLDcgQEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNVc2VySW50ZXJmZXJlbmNl
V2l0aFBsYXlpbmcpCiAgICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDptdXRlQnV0dG9uQ2xp
Y2tQb2ludCBzaW11bGF0ZVByZXNzdXJlOk5PXTsKICAgICBbd2ViVmlldyBtb3VzZVVwQXRQb2lu
dDptdXRlQnV0dG9uQ2xpY2tQb2ludF07CiAgICAgcnVuVW50aWxSZWNlaXZlc0F1dG9wbGF5RXZl
bnQoa1dLQXV0b3BsYXlFdmVudFVzZXJEaWRJbnRlcmZlcmVXaXRoUGxheWJhY2spOworICAgIEFT
U0VSVF9GQUxTRSgqcmVjZWl2ZWRBdXRvcGxheUV2ZW50RmxhZ3MgJiBrV0tBdXRvcGxheUV2ZW50
RmxhZ3NIYXNBdWRpbyk7CiAKICAgICByZWNlaXZlZEF1dG9wbGF5RXZlbnQgPSBzdGQ6Om51bGxv
cHQ7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6anNQbGF5UmVxdWVzdF07CkBAIC00NDMsNiAr
NDUzLDcgQEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNVc2VySW50ZXJmZXJlbmNlV2l0
aFBsYXlpbmcpCiAgICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpwbGF5QnV0dG9uQ2xpY2tQ
b2ludCBzaW11bGF0ZVByZXNzdXJlOk5PXTsKICAgICBbd2ViVmlldyBtb3VzZVVwQXRQb2ludDpw
bGF5QnV0dG9uQ2xpY2tQb2ludF07CiAgICAgcnVuVW50aWxSZWNlaXZlc0F1dG9wbGF5RXZlbnQo
a1dLQXV0b3BsYXlFdmVudFVzZXJEaWRJbnRlcmZlcmVXaXRoUGxheWJhY2spOworICAgIEFTU0VS
VF9UUlVFKCpyZWNlaXZlZEF1dG9wbGF5RXZlbnRGbGFncyAmIGtXS0F1dG9wbGF5RXZlbnRGbGFn
c0hhc0F1ZGlvKTsKIH0KIAogVEVTVChXZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNVc2VyTmV2ZXJQ
bGF5ZWRNZWRpYVByZXZlbnRlZEZyb21QbGF5aW5nKQpAQCAtNDcyLDYgKzQ4Myw3IEBAIFRFU1Qo
V2ViS2l0MiwgV2Vic2l0ZVBvbGljaWVzVXNlck5ldmVyUGxheWVkTWVkaWFQcmV2ZW50ZWRGcm9t
UGxheWluZykKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJdXV07CiAgICAgcnVu
VW50aWxSZWNlaXZlc0F1dG9wbGF5RXZlbnQoa1dLQXV0b3BsYXlFdmVudFVzZXJOZXZlclBsYXll
ZE1lZGlhUHJldmVudGVkRnJvbVBsYXlpbmcpOworICAgIEFTU0VSVF9UUlVFKCpyZWNlaXZlZEF1
dG9wbGF5RXZlbnRGbGFncyAmIGtXS0F1dG9wbGF5RXZlbnRGbGFnc0hhc0F1ZGlvKTsKIH0KIAog
VEVTVChXZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNBdXRvcGxheVF1aXJrcykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308007</attachid>
            <date>2017-04-24 14:00:59 -0700</date>
            <delta_ts>2017-04-25 09:51:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171227-20170424140058.patch</filename>
            <type>text/plain</type>
            <size>22658</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRkNDc2YTdjODJmZmU5
ZTc3MmQ0ODRjZmUwOTkzZTQ5NmE3Zjk5Ni4uYTRiMDI5NWRiMjdjMjQ5MzhiZTQ0MGJjMDEwYmMz
ODdiNmEzYTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA0LTI0ICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBJbmRpY2F0ZSBwcmVzZW5jZSBv
ZiBhdWRpbyB3aGVuIGhhbmRsaW5nIGF1dG9wbGF5IGV2ZW50cy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTIyNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEFQSSB0ZXN0cy4KKworICAgICAg
ICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpoYW5kbGVBdXRvcGxheUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OnN0b3BXaXRob3V0RGVzdHJveWluZ01lZGlhUGxheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVzZXJEaWRJbnRlcmZlcmVXaXRoQXV0b3BsYXkp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0UGxheWJhY2tXaXRob3V0
VXNlckdlc3R1cmUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAg
ICAqIHBhZ2UvQXV0b3BsYXlFdmVudC5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisKIDIwMTctMDQtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIFN3aXRjaCB0byB1c2UgRU5BQkxFX1JFTU9URV9JTlNQRUNUT1Ig
aW5zdGVhZCBvZiBFTkFCTEVfSU5TUEVDVE9SX1NFUlZFUiBmb3IgdGhlIHJlbW90ZSBpbnNwZWN0
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCAyOWFhMTVkMWQ0Njk4NTc2ODQ3Y2QyM2NjZTc1NDc0NDNhNzA1Y2I0
Li5kMGVkYzI2ZmFhNzU3MzI0ZmI3ODhiYzIyNDRhNWZlNzM3ZWZiYjU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMjUgQEAKIDIwMTctMDQtMjQgIE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29t
PgogCisgICAgICAgIEluZGljYXRlIHByZXNlbmNlIG9mIGF1ZGlvIHdoZW4gaGFuZGxpbmcgYXV0
b3BsYXkgZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcxMjI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xp
ZW50OjpoYW5kbGVBdXRvcGxheUV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlQXV0b3Bs
YXlFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OmhhbmRsZUF1dG9wbGF5RXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKKzIwMTctMDQtMjQgIE1hdHQg
UmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgorCiAgICAgICAgIEFkZCBhdmFpbGFiaWxpdHkgYW5u
b3RhdGlvbiB0byBfc2V0U2hvdWxkU3VwcHJlc3NGaXJzdFJlc3BvbmRlckNoYW5nZXMgcHJpdmF0
ZSBBUEkuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzEyMjQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYzlj
NDkwNjkxNjJlOThhNmRmYTQ5ODViYzIwMWVkNWZkZGIxMDEzMC4uNmE2YjdhYTZkYjM5MzJjNTcx
NGJiMDJmN2RkN2ZlNzAzNWM3YjVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC0zMTgyLDYgKzMxODIsMTQgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpw
bGF5KCkKICAgICBwbGF5SW50ZXJuYWwoKTsKIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpo
YW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQgZXZlbnQpCit7CisgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKSkgeworICAgICAgICBib29sIGhhc0F1ZGlvID0gdGhp
cy0+aGFzQXVkaW8oKSAmJiAhbXV0ZWQoKSAmJiB2b2x1bWUoKTsKKyAgICAgICAgcGFnZS0+Y2hy
b21lKCkuY2xpZW50KCkuaGFuZGxlQXV0b3BsYXlFdmVudChldmVudCwgaGFzQXVkaW8gPyBBdXRv
cGxheUV2ZW50RmxhZ3NIYXNBdWRpbyA6IEF1dG9wbGF5RXZlbnRGbGFnc05vbmUpOworICAgIH0K
K30KKwogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5SW50ZXJuYWwoKQogewogICAgIExPRyhN
ZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCglcCkiLCB0aGlzKTsKQEAgLTMy
NDIsOCArMzI1MCw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6cGxheUludGVybmFsKCkKIAog
ICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgp
KSB7CiAgICAgICAgIGlmIChtX3BsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlID09IFBsYXliYWNr
V2l0aG91dFVzZXJHZXN0dXJlOjpQcmV2ZW50ZWQpIHsKLSAgICAgICAgICAgIGlmIChQYWdlKiBw
YWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCku
Y2xpZW50KCkuaGFuZGxlQXV0b3BsYXlFdmVudChBdXRvcGxheUV2ZW50OjpEaWRQbGF5TWVkaWFQ
cmV2ZW50ZWRGcm9tUGxheWluZyk7CisgICAgICAgICAgICBoYW5kbGVBdXRvcGxheUV2ZW50KEF1
dG9wbGF5RXZlbnQ6OkRpZFBsYXlNZWRpYVByZXZlbnRlZEZyb21QbGF5aW5nKTsKICAgICAgICAg
ICAgIHNldFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlKFBsYXliYWNrV2l0aG91dFVzZXJHZXN0
dXJlOjpOb25lKTsKICAgICAgICAgfQogICAgIH0gZWxzZQpAQCAtNDQ2NywxMCArNDQ3NCw5IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJUaW1lQ2hhbmdlZChNZWRpYVBsYXll
ciopCiAgICAgICAgICAgICAgICAgaWYgKCF3YXNTZWVraW5nKQogICAgICAgICAgICAgICAgICAg
ICBhZGRCZWhhdmlvclJlc3RyaWN0aW9uc09uRW5kSWZOZWNlc3NhcnkoKTsKIAotICAgICAgICAg
ICAgICAgIGlmIChtX3BsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlID09IFBsYXliYWNrV2l0aG91
dFVzZXJHZXN0dXJlOjpTdGFydGVkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChQYWdlKiBw
YWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBwYWdlLT5j
aHJvbWUoKS5jbGllbnQoKS5oYW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQ6OkRpZEVu
ZE1lZGlhUGxheWJhY2tXaXRob3V0VXNlckludGVyZmVyZW5jZSk7Ci0gICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGlmIChtX3BsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlID09IFBs
YXliYWNrV2l0aG91dFVzZXJHZXN0dXJlOjpTdGFydGVkKQorICAgICAgICAgICAgICAgICAgICBo
YW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQ6OkRpZEVuZE1lZGlhUGxheWJhY2tXaXRo
b3V0VXNlckludGVyZmVyZW5jZSk7CisKICAgICAgICAgICAgICAgICBzZXRQbGF5YmFja1dpdGhv
dXRVc2VyR2VzdHVyZShQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZTo6Tm9uZSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAvLyBJZiB0aGUgbWVkaWEgZWxlbWVudCBoYXMgYSBjdXJyZW50
IG1lZGlhIGNvbnRyb2xsZXIsIHRoZW4gcmVwb3J0IHRoZSBjb250cm9sbGVyIHN0YXRlCkBAIC01
MjMwLDE4ICs1MjM2LDE3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c3RvcFdpdGhvdXREZXN0
cm95aW5nTWVkaWFQbGF5ZXIoKQogICAgIHNldFBhdXNlZEludGVybmFsKHRydWUpOwogICAgIG1f
bWVkaWFTZXNzaW9uLT5jbGllbnRXaWxsUGF1c2VQbGF5YmFjaygpOwogCi0gICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKSkgewotICAgICAgICBzd2l0Y2ggKG1fcGxheWJhY2tX
aXRob3V0VXNlckdlc3R1cmUpIHsKLSAgICAgICAgY2FzZSBQbGF5YmFja1dpdGhvdXRVc2VyR2Vz
dHVyZTo6U3RhcnRlZDoKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhbmRs
ZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudDo6RGlkRW5kTWVkaWFQbGF5YmFja1dpdGhvdXRV
c2VySW50ZXJmZXJlbmNlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBsYXli
YWNrV2l0aG91dFVzZXJHZXN0dXJlOjpQcmV2ZW50ZWQ6Ci0gICAgICAgICAgICBwYWdlLT5jaHJv
bWUoKS5jbGllbnQoKS5oYW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQ6OlVzZXJOZXZl
clBsYXllZE1lZGlhUHJldmVudGVkRnJvbVBsYXlpbmcpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgUGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmU6Ok5vbmU6Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQorICAgIHN3aXRjaCAobV9wbGF5YmFja1dpdGhvdXRVc2VyR2Vz
dHVyZSkgeworICAgIGNhc2UgUGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmU6OlN0YXJ0ZWQ6Cisg
ICAgICAgIGhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudDo6RGlkRW5kTWVkaWFQbGF5
YmFja1dpdGhvdXRVc2VySW50ZXJmZXJlbmNlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQ
bGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZTo6UHJldmVudGVkOgorICAgICAgICBoYW5kbGVBdXRv
cGxheUV2ZW50KEF1dG9wbGF5RXZlbnQ6OlVzZXJOZXZlclBsYXllZE1lZGlhUHJldmVudGVkRnJv
bVBsYXlpbmcpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBsYXliYWNrV2l0aG91dFVzZXJH
ZXN0dXJlOjpOb25lOgorICAgICAgICBicmVhazsKICAgICB9CisKICAgICBzZXRQbGF5YmFja1dp
dGhvdXRVc2VyR2VzdHVyZShQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZTo6Tm9uZSk7CiAKICAg
ICB1c2VyQ2FuY2VsbGVkTG9hZCgpOwpAQCAtNzE5Myw5ICs3MTk4LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojp1c2VyRGlkSW50ZXJmZXJlV2l0aEF1dG9wbGF5KCkKICAgICBpZiAoY3VycmVu
dFRpbWUoKSAtIG1fcGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmVTdGFydGVkVGltZS0+dG9Eb3Vi
bGUoKSA+IDEwKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3Vt
ZW50KCkucGFnZSgpKQotICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVBdXRv
cGxheUV2ZW50KEF1dG9wbGF5RXZlbnQ6OlVzZXJEaWRJbnRlcmZlcmVXaXRoUGxheWJhY2spOwot
CisgICAgaGFuZGxlQXV0b3BsYXlFdmVudChBdXRvcGxheUV2ZW50OjpVc2VyRGlkSW50ZXJmZXJl
V2l0aFBsYXliYWNrKTsKICAgICBzZXRQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZShQbGF5YmFj
a1dpdGhvdXRVc2VyR2VzdHVyZTo6Tm9uZSk7CiB9CiAKQEAgLTcyMTQsOSArNzIxNyw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0UGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmUoUGxheWJh
Y2tXaXRob3V0VXNlckdlc3R1cmUKICAgICAgICAgbV9wbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVy
ZVN0YXJ0ZWRUaW1lID0gc3RkOjpudWxsb3B0OwogCiAgICAgICAgIGRpc3BhdGNoUGxheVBhdXNl
RXZlbnRzSWZOZWVkc1F1aXJrcygpOwotCi0gICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1l
bnQoKS5wYWdlKCkpCi0gICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVB
dXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQ6OkRpZFByZXZlbnRNZWRpYUZyb21QbGF5aW5nKTsK
KyAgICAgICAgaGFuZGxlQXV0b3BsYXlFdmVudChBdXRvcGxheUV2ZW50OjpEaWRQcmV2ZW50TWVk
aWFGcm9tUGxheWluZyk7CiAKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAzZmVkOWIxODU4YmFjMTU5MWY5MzVjM2Y3MjNhYjUz
Yzc5NzUxZWY5Li45NmUwYTk1ZDY4OGU4MmE0ZTI3MDk4YmU5YzE1NTQxNTk2NDQxMzAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMjgsNiArMjgsNyBAQAogI2lm
IEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUg
IkF1dG9wbGF5RXZlbnQuaCIKICNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1
ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgpAQCAtNzU1
LDYgKzc1Niw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBQbGF5YmFja1dpdGhvdXRVc2Vy
R2VzdHVyZSB7IE5vbmUsIFN0YXJ0ZWQsIFByZXZlbnRlZCB9OwogICAgIHZvaWQgc2V0UGxheWJh
Y2tXaXRob3V0VXNlckdlc3R1cmUoUGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmUpOwogICAgIHZv
aWQgdXNlckRpZEludGVyZmVyZVdpdGhBdXRvcGxheSgpOworICAgIHZvaWQgaGFuZGxlQXV0b3Bs
YXlFdmVudChBdXRvcGxheUV2ZW50KTsKIAogICAgIE1lZGlhVGltZSBtaW5UaW1lU2Vla2FibGUo
KSBjb25zdDsKICAgICBNZWRpYVRpbWUgbWF4VGltZVNlZWthYmxlKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9wbGF5RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQXV0b3BsYXlFdmVudC5oCmluZGV4IDg2NmY0Mzc2MmRkYWJhMjI0YzM5YzZlZWMyNzBh
ZjUwZDY0NWRkNGMuLmUzNzE5ZGFjOTBmMjRkZGExNWU4MDcwMDcxNTc0YjdkYjU4NmRhMWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3BsYXlFdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQXV0b3BsYXlFdmVudC5oCkBAIC0zNSw0ICszNSw5IEBAIGVudW0gY2xh
c3MgQXV0b3BsYXlFdmVudCB7CiAgICAgVXNlck5ldmVyUGxheWVkTWVkaWFQcmV2ZW50ZWRGcm9t
UGxheWluZywKIH07CiAKK2VudW0gQXV0b3BsYXlFdmVudEZsYWdzIHsKKyAgICBBdXRvcGxheUV2
ZW50RmxhZ3NOb25lID0gMCwKKyAgICBBdXRvcGxheUV2ZW50RmxhZ3NIYXNBdWRpbyA9IDEgPDwg
MCwKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCmluZGV4IGI2ZmRjOWE1OTI3YTYyNzBjYTE0NmJhMjk2MDRmN2NmYzVjOWVlMTEuLmE3MjUx
MDRlNDNiMDlkNWI2YTIyY2ZmNTVmNTY2ODhlZmFlNzgyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaApAQCAtNDIyLDcgKzQyMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRD
aGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCB1aW50NjRfdCkgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudCkgeyB9CisgICAg
dmlydHVhbCB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudCwgQXV0b3BsYXlF
dmVudEZsYWdzKSB7IH0KIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIHZpcnR1YWwg
dm9pZCBoYXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50c0RpZENoYW5nZShib29s
KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCAy
N2Q2NjkwN2UwNTQ3M2QyOWU2NTNjZWE0MWJiMDUzOGU2YmFmYTE2Li41MDUyNGQ5ZWFiYTk3ZTkz
M2MzZDIxZDZjOTFlZTUzNmZjNmVjMmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oCkBAIC0xNTAsNyArMTUwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB2b2lkIGlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9
CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRs
ZUF1dG9wbGF5RXZlbnQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpBdXRvcGxheUV2
ZW50KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIFdlYkNvcmU6OkF1dG9wbGF5RXZl
bnRGbGFncykgeyB9CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICB2aXJ0dWFsIHZv
aWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBX
ZWJLaXQ6OldlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhKikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGFhY2Q4OTk2NzAxM2JiZjBjZmRjMmYwODdhNTAw
ZWUyNjY4NzBiMzIuLjZiYWVmMTkzNjczMjhkNzFkMzMyYmJiOGQ5M2FlYzM2ZDEyOWQ0MmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0yMjQxLDEyICsy
MjQxLDM3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBj
b25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAgICAgICAgIH0KICNlbmRpZgogCi0g
ICAgICAgIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkNv
cmU6OkF1dG9wbGF5RXZlbnQgZXZlbnQpIG92ZXJyaWRlCisgICAgICAgIHN0YXRpYyBXS0F1dG9w
bGF5RXZlbnRGbGFncyB0b1dLQXV0b3BsYXlFdmVudEZsYWdzKFdlYkNvcmU6OkF1dG9wbGF5RXZl
bnRGbGFncyBmbGFncykKKyAgICAgICAgeworICAgICAgICAgICAgV0tBdXRvcGxheUV2ZW50Rmxh
Z3Mgd2tGbGFncyA9IGtXS0F1dG9wbGF5RXZlbnRGbGFnc05vbmU7CisgICAgICAgICAgICBpZiAo
ZmxhZ3MgJiBXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3NIYXNBdWRpbykKKyAgICAgICAgICAg
ICAgICB3a0ZsYWdzIHw9IGtXS0F1dG9wbGF5RXZlbnRGbGFnc0hhc0F1ZGlvOworCisgICAgICAg
ICAgICByZXR1cm4gd2tGbGFnczsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBXS0F1dG9w
bGF5RXZlbnQgdG9XS0F1dG9wbGF5RXZlbnQoV2ViQ29yZTo6QXV0b3BsYXlFdmVudCBldmVudCkK
KyAgICAgICAgeworICAgICAgICAgICAgc3dpdGNoIChldmVudCkgeworICAgICAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpBdXRvcGxheUV2ZW50OjpEaWRFbmRNZWRpYVBsYXliYWNrV2l0aG91dFVzZXJJ
bnRlcmZlcmVuY2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIGtXS0F1dG9wbGF5RXZlbnREaWRF
bmRNZWRpYVBsYXliYWNrV2l0aG91dFVzZXJJbnRlcmZlcmVuY2U7CisgICAgICAgICAgICBjYXNl
IFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQ6OkRpZFBsYXlNZWRpYVByZXZlbnRlZEZyb21QbGF5aW5n
OgorICAgICAgICAgICAgICAgIHJldHVybiBrV0tBdXRvcGxheUV2ZW50RGlkUGxheU1lZGlhUHJl
dmVudGVkRnJvbUF1dG9wbGF5aW5nOworICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpBdXRvcGxh
eUV2ZW50OjpEaWRQcmV2ZW50TWVkaWFGcm9tUGxheWluZzoKKyAgICAgICAgICAgICAgICByZXR1
cm4ga1dLQXV0b3BsYXlFdmVudERpZFByZXZlbnRGcm9tQXV0b3BsYXlpbmc7CisgICAgICAgICAg
ICBjYXNlIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQ6OlVzZXJEaWRJbnRlcmZlcmVXaXRoUGxheWJh
Y2s6CisgICAgICAgICAgICAgICAgcmV0dXJuIGtXS0F1dG9wbGF5RXZlbnRVc2VyRGlkSW50ZXJm
ZXJlV2l0aFBsYXliYWNrOworICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpBdXRvcGxheUV2ZW50
OjpVc2VyTmV2ZXJQbGF5ZWRNZWRpYVByZXZlbnRlZEZyb21QbGF5aW5nOgorICAgICAgICAgICAg
ICAgIHJldHVybiBrV0tBdXRvcGxheUV2ZW50VXNlck5ldmVyUGxheWVkTWVkaWFQcmV2ZW50ZWRG
cm9tUGxheWluZzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgaGFu
ZGxlQXV0b3BsYXlFdmVudChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkNvcmU6OkF1dG9wbGF5RXZl
bnQgZXZlbnQsIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncyBmbGFncykgb3ZlcnJpZGUKICAg
ICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5oYW5kbGVBdXRvcGxheUV2ZW50KQog
ICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgbV9jbGllbnQuaGFuZGxlQXV0
b3BsYXlFdmVudCh0b0FQSSgmcGFnZSksIHN0YXRpY19jYXN0PFdLQXV0b3BsYXlFdmVudD4oZXZl
bnQpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICAgICAgbV9jbGllbnQuaGFu
ZGxlQXV0b3BsYXlFdmVudCh0b0FQSSgmcGFnZSksIHRvV0tBdXRvcGxheUV2ZW50KGV2ZW50KSwg
dG9XS0F1dG9wbGF5RXZlbnRGbGFncyhmbGFncyksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CiAgICAgICAgIH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VVSUNsaWVudC5oCmluZGV4IDIzYzk5ODg0N2YzM2M1YTZjOGM5NDFhYzFjODkzOWY4
ZGIzMWQ4NzkuLjU3MmNiNmE4YWQwNjY3MmJjMTJkMDlhMjJkYmRlZTU1MDU5ZTI2MzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCkBAIC01
Nyw2ICs1NywxMiBAQCBlbnVtIHsKIH07CiB0eXBlZGVmIHVpbnQzMl90IFdLQXV0b3BsYXlFdmVu
dDsKIAorZW51bSB7CisgICAga1dLQXV0b3BsYXlFdmVudEZsYWdzTm9uZSA9IDAsCisgICAga1dL
QXV0b3BsYXlFdmVudEZsYWdzSGFzQXVkaW8gPSAxIDw8IDAsCit9OwordHlwZWRlZiB1aW50MzJf
dCBXS0F1dG9wbGF5RXZlbnRGbGFnczsKKwogV0tfRVhQT1JUIFdLVHlwZUlEIFdLUGFnZVJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbFJlc3VsdExpc3RlbmVyR2V0VHlwZUlEKCk7CiBXS19FWFBP
UlQgdm9pZCBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxSZXN1bHRMaXN0ZW5lckNh
bGwoV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsUmVzdWx0TGlzdGVuZXJSZWYgbGlz
dGVuZXIsIGJvb2wgcmVzdWx0KTsKIApAQCAtMTExLDcgKzExNyw3IEBAIHR5cGVkZWYgdm9pZCAo
KldLUGFnZURlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sp
KFdLUGFnZVJlCiB0eXBlZGVmIHZvaWQgKCpXS0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkNhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJl
ZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1JlZiBkZXZpY2VzUmVxdWVz
dCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRDbGlj
a0F1dG9GaWxsQnV0dG9uQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYgdXNlckRh
dGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlTWVkaWFT
ZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLTWVkaWFT
ZXNzaW9uTWV0YWRhdGFSZWYgbWV0YWRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotdHlw
ZWRlZiB2b2lkICgqV0tIYW5kbGVBdXRvcGxheUV2ZW50Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdl
LCBXS0F1dG9wbGF5RXZlbnQgZXZlbnQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRl
ZiB2b2lkICgqV0tIYW5kbGVBdXRvcGxheUV2ZW50Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBX
S0F1dG9wbGF5RXZlbnQgZXZlbnQsIFdLQXV0b3BsYXlFdmVudEZsYWdzIGZsYWdzLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLRnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
IAogdHlwZWRlZiB2b2lkICgqV0tSZXF1ZXN0UG9pbnRlckxvY2tDYWxsYmFjaykoV0tQYWdlUmVm
IHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCAxZGJlYzQ1OTdjOWYyMzViYTk4NzI2OTZkOWMyYzQ3ZmE3
MzBhMzdkLi5jNDRmZTk2YjA0NzhmMWRhOGZmZDVlNTNiNzAxYjZmMDc3NjBjOTZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjU2Nyw5ICs2NTY3LDkg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRDb250ZW50TWVkaWFFbGVtZW50RGlkQ2hhbmdl
KHVpbnQ2NF90IGVsZW1lbnRJRCkKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6aGFu
ZGxlQXV0b3BsYXlFdmVudCh1aW50MzJfdCBldmVudCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpoYW5k
bGVBdXRvcGxheUV2ZW50KHVpbnQzMl90IGV2ZW50LCB1aW50MzJfdCBmbGFncykKIHsKLSAgICBt
X3VpQ2xpZW50LT5oYW5kbGVBdXRvcGxheUV2ZW50KCp0aGlzLCBzdGF0aWNfY2FzdDxBdXRvcGxh
eUV2ZW50PihldmVudCkpOworICAgIG1fdWlDbGllbnQtPmhhbmRsZUF1dG9wbGF5RXZlbnQoKnRo
aXMsIHN0YXRpY19jYXN0PEF1dG9wbGF5RXZlbnQ+KGV2ZW50KSwgc3RhdGljX2Nhc3Q8QXV0b3Bs
YXlFdmVudEZsYWdzPihmbGFncykpOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDA0YzM1YzUzMjllNjRiMmM2YmEyYTcy
Y2Y5NmZjNzlhYzhhYWQ1OWEuLjIzNDc4OTk5NjU4MTU4ZTYyOTI2YTE2ZTM0Y2I4YmYwZDBjMDI3
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEwNzAsNyAr
MTA3MCw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0FjdGl2ZUF1ZGlvU3RyZWFtKCkgY29uc3Qg
eyByZXR1cm4gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZl
QXVkaW9DYXB0dXJlRGV2aWNlOyB9CiAgICAgYm9vbCBoYXNBY3RpdmVWaWRlb1N0cmVhbSgpIGNv
bnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0Fj
dGl2ZVZpZGVvQ2FwdHVyZURldmljZTsgfQogICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3Rh
dGU7IH0KLSAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQodWludDMyX3QpOworICAgIHZvaWQg
aGFuZGxlQXV0b3BsYXlFdmVudCh1aW50MzJfdCwgdWludDMyX3QpOwogCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIHZvaWQgdmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGU5
OWJlYjhhNzc0MjFhODIzMGQ5NWI0MGVmN2MyMWM3ZmU4MDY3YTcuLmY5ZThmMDhhZGQ5M2RlYzVj
NDFjYjBmNjMwOTFkZDEzOTRlZjNmYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDM4LDcgKzQzOCw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogICAgIElzUGxheWluZ01lZGlhRGlkQ2hhbmdl
KHVuc2lnbmVkIHN0YXRlLCB1aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCi0gICAgSGFuZGxlQXV0
b3BsYXlFdmVudCh1aW50MzJfdCBldmVudCkKKyAgICBIYW5kbGVBdXRvcGxheUV2ZW50KHVpbnQz
Ml90IGV2ZW50LCB1aW50MzJfdCBmbGFncykKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQog
ICAgIEhhc01lZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRzRGlkQ2hhbmdlKGJvb2wg
c3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMzU5M2Q5MDJiZDU3OWUxZDQ1NjQ4
Mjc2N2JiZmI3NWNjODBiYzAyNi4uZDJiYjE1OGFjNWY1M2NlMGE0YzQ3NDEzYTUyNTEyOWI0MjEz
ZDk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTA4OCw5ICsxMDg4LDkgQEAgdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBzdGEKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpJc1BsYXlpbmdNZWRpYURpZENoYW5nZShzdGF0ZSwgc291cmNlRWxlbWVudElEKSk7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZl
bnQgZXZlbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aGFuZGxlQXV0b3BsYXlFdmVudChBdXRv
cGxheUV2ZW50IGV2ZW50LCBBdXRvcGxheUV2ZW50RmxhZ3MgZmxhZ3MpCiB7Ci0gICAgbV9wYWdl
LnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGFuZGxlQXV0b3BsYXlFdmVudChzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oZXZlbnQpKSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6SGFuZGxlQXV0b3BsYXlFdmVudChzdGF0aWNfY2FzdDx1aW50MzJfdD4oZXZlbnQp
LCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZmxhZ3MpKSk7CiB9CiAKICNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDU3NmNkNzlmMWY3NzVhNjUxYTk1ZmRk
NzdkMDBkZGE2OTAyMGQ1MDYuLjA0NWQ1NzYwZGViZDdjZTAxMmRiYWRkYmM4MTdmMmZlMmNhZGFm
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjk3LDcgKzI5Nyw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6
RnJhbWVWaWV3JikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hh
bmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncywgdWludDY0X3QpIGZp
bmFsOwotICAgIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJDb3JlOjpBdXRvcGxheUV2ZW50
KSBmaW5hbDsKKyAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViQ29yZTo6QXV0b3BsYXlF
dmVudCwgV2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzKSBmaW5hbDsKIAogI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OKQogICAgIHZvaWQgaGFzTWVkaWFTZXNzaW9uV2l0aEFjdGl2ZU1lZGlhRWxl
bWVudHNEaWRDaGFuZ2UoYm9vbCkgZmluYWw7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XZWJzaXRlUG9saWNpZXMubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XZWJzaXRlUG9saWNpZXMubW0KaW5kZXggY2I3ZThj
MDExMDBjNGVkZDZhYzM3ZmNhNTdkNzFlMjViZTg5ZDEyZC4uMGVmYTUxOWVkMzczNjkzYjc1ZGIx
NGMxZjc5OTZjM2VhMzBiODE0MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL1dlYnNpdGVQb2xpY2llcy5tbQpAQCAtNTEsNiArNTEsNyBA
QCBzdGF0aWMgYm9vbCByZWNlaXZlZEFsZXJ0OwogCiAjaWYgUExBVEZPUk0oTUFDKQogc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8V0tBdXRvcGxheUV2ZW50PiByZWNlaXZlZEF1dG9wbGF5RXZlbnQ7Citz
dGF0aWMgc3RkOjpvcHRpb25hbDxXS0F1dG9wbGF5RXZlbnRGbGFncz4gcmVjZWl2ZWRBdXRvcGxh
eUV2ZW50RmxhZ3M7CiAjZW5kaWYKIAogc3RhdGljIHNpemVfdCBhbGVydENvdW50OwpAQCAtMjgw
LDggKzI4MSw5IEBAIFRFU1QoV2ViS2l0MiwgV2Vic2l0ZVBvbGljaWVzQXV0b3BsYXlFbmFibGVk
KQogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotc3RhdGljIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVu
dChXS1BhZ2VSZWYgcGFnZSwgV0tBdXRvcGxheUV2ZW50IGV2ZW50LCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQorc3RhdGljIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXS1BhZ2VSZWYgcGFnZSwg
V0tBdXRvcGxheUV2ZW50IGV2ZW50LCBXS0F1dG9wbGF5RXZlbnRGbGFncyBmbGFncywgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKIHsKKyAgICByZWNlaXZlZEF1dG9wbGF5RXZlbnRGbGFncyA9IGZs
YWdzOwogICAgIHJlY2VpdmVkQXV0b3BsYXlFdmVudCA9IGV2ZW50OwogfQogCkBAIC0zMjAsNiAr
MzIyLDcgQEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNQbGF5QWZ0ZXJQcmV2ZW50ZWRB
dXRvcGxheSkKICAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50OnBsYXlCdXR0b25DbGlja1Bv
aW50IHNpbXVsYXRlUHJlc3N1cmU6Tk9dOwogICAgIFt3ZWJWaWV3IG1vdXNlVXBBdFBvaW50OnBs
YXlCdXR0b25DbGlja1BvaW50XTsKICAgICBydW5VbnRpbFJlY2VpdmVzQXV0b3BsYXlFdmVudChr
V0tBdXRvcGxheUV2ZW50RGlkUGxheU1lZGlhUHJldmVudGVkRnJvbUF1dG9wbGF5aW5nKTsKKyAg
ICBBU1NFUlRfVFJVRSgqcmVjZWl2ZWRBdXRvcGxheUV2ZW50RmxhZ3MgJiBrV0tBdXRvcGxheUV2
ZW50RmxhZ3NIYXNBdWRpbyk7CiAKICAgICByZWNlaXZlZEF1dG9wbGF5RXZlbnQgPSBzdGQ6Om51
bGxvcHQ7CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCIiIGJhc2VVUkw6bmlsXTsKQEAg
LTMyOCwxMCArMzMxLDEyIEBAIFRFU1QoV2ViS2l0MiwgV2Vic2l0ZVBvbGljaWVzUGxheUFmdGVy
UHJldmVudGVkQXV0b3BsYXkpCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6YXV0b3BsYXlSZXF1
ZXN0XTsKICAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAImxvYWRlZCJdOwogICAgIHJ1blVu
dGlsUmVjZWl2ZXNBdXRvcGxheUV2ZW50KGtXS0F1dG9wbGF5RXZlbnREaWRQcmV2ZW50RnJvbUF1
dG9wbGF5aW5nKTsKKyAgICBBU1NFUlRfVFJVRSgqcmVjZWl2ZWRBdXRvcGxheUV2ZW50RmxhZ3Mg
JiBrV0tBdXRvcGxheUV2ZW50RmxhZ3NIYXNBdWRpbyk7CiAKICAgICBbd2ViVmlldyBtb3VzZURv
d25BdFBvaW50OnBsYXlCdXR0b25DbGlja1BvaW50IHNpbXVsYXRlUHJlc3N1cmU6Tk9dOwogICAg
IFt3ZWJWaWV3IG1vdXNlVXBBdFBvaW50OnBsYXlCdXR0b25DbGlja1BvaW50XTsKICAgICBydW5V
bnRpbFJlY2VpdmVzQXV0b3BsYXlFdmVudChrV0tBdXRvcGxheUV2ZW50RGlkUGxheU1lZGlhUHJl
dmVudGVkRnJvbUF1dG9wbGF5aW5nKTsKKyAgICBBU1NFUlRfVFJVRSgqcmVjZWl2ZWRBdXRvcGxh
eUV2ZW50RmxhZ3MgJiBrV0tBdXRvcGxheUV2ZW50RmxhZ3NIYXNBdWRpbyk7CiAKICAgICByZWNl
aXZlZEF1dG9wbGF5RXZlbnQgPSBzdGQ6Om51bGxvcHQ7CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6QCIiIGJhc2VVUkw6bmlsXTsKQEAgLTM1OSw2ICszNjQsNyBAQCBURVNUKFdlYktpdDIs
IFdlYnNpdGVQb2xpY2llc1BsYXlBZnRlclByZXZlbnRlZEF1dG9wbGF5KQogICAgIFt3ZWJWaWV3
IG1vdXNlRG93bkF0UG9pbnQ6cGxheUJ1dHRvbkNsaWNrUG9pbnQgc2ltdWxhdGVQcmVzc3VyZTpO
T107CiAgICAgW3dlYlZpZXcgbW91c2VVcEF0UG9pbnQ6cGxheUJ1dHRvbkNsaWNrUG9pbnRdOwog
ICAgIHJ1blVudGlsUmVjZWl2ZXNBdXRvcGxheUV2ZW50KGtXS0F1dG9wbGF5RXZlbnREaWRQbGF5
TWVkaWFQcmV2ZW50ZWRGcm9tQXV0b3BsYXlpbmcpOworICAgIEFTU0VSVF9UUlVFKCpyZWNlaXZl
ZEF1dG9wbGF5RXZlbnRGbGFncyAmIGtXS0F1dG9wbGF5RXZlbnRGbGFnc0hhc0F1ZGlvKTsKIH0K
IAogVEVTVChXZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNQbGF5aW5nV2l0aG91dEludGVyZmVyZW5j
ZSkKQEAgLTM4OSwxMSArMzk1LDEzIEBAIFRFU1QoV2ViS2l0MiwgV2Vic2l0ZVBvbGljaWVzUGxh
eWluZ1dpdGhvdXRJbnRlcmZlcmVuY2UpCiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6Ymxh
bmsiXV1dOwogICAgIHJ1blVudGlsUmVjZWl2ZXNBdXRvcGxheUV2ZW50KGtXS0F1dG9wbGF5RXZl
bnREaWRFbmRNZWRpYVBsYXliYWNrV2l0aG91dFVzZXJJbnRlcmZlcmVuY2UpOworICAgIEFTU0VS
VF9UUlVFKCpyZWNlaXZlZEF1dG9wbGF5RXZlbnRGbGFncyAmIGtXS0F1dG9wbGF5RXZlbnRGbGFn
c0hhc0F1ZGlvKTsKIAogICAgIHJlY2VpdmVkQXV0b3BsYXlFdmVudCA9IHN0ZDo6bnVsbG9wdDsK
ICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpqc1BsYXlSZXF1ZXN0XTsKICAgICBbd2ViVmlldyB3
YWl0Rm9yTWVzc2FnZTpAImVuZGVkIl07CiAgICAgcnVuVW50aWxSZWNlaXZlc0F1dG9wbGF5RXZl
bnQoa1dLQXV0b3BsYXlFdmVudERpZEVuZE1lZGlhUGxheWJhY2tXaXRob3V0VXNlckludGVyZmVy
ZW5jZSk7CisgICAgQVNTRVJUX1RSVUUoKnJlY2VpdmVkQXV0b3BsYXlFdmVudEZsYWdzICYga1dL
QXV0b3BsYXlFdmVudEZsYWdzSGFzQXVkaW8pOwogfQogCiBURVNUKFdlYktpdDIsIFdlYnNpdGVQ
b2xpY2llc1VzZXJJbnRlcmZlcmVuY2VXaXRoUGxheWluZykKQEAgLTQyMyw2ICs0MzEsNyBAQCBU
RVNUKFdlYktpdDIsIFdlYnNpdGVQb2xpY2llc1VzZXJJbnRlcmZlcmVuY2VXaXRoUGxheWluZykK
IAogICAgIFdLUGFnZVNldE11dGVkKFt3ZWJWaWV3IF9wYWdlRm9yVGVzdGluZ10sIGtXS01lZGlh
QXVkaW9NdXRlZCk7CiAgICAgcnVuVW50aWxSZWNlaXZlc0F1dG9wbGF5RXZlbnQoa1dLQXV0b3Bs
YXlFdmVudFVzZXJEaWRJbnRlcmZlcmVXaXRoUGxheWJhY2spOworICAgIEFTU0VSVF9UUlVFKCpy
ZWNlaXZlZEF1dG9wbGF5RXZlbnRGbGFncyAmIGtXS0F1dG9wbGF5RXZlbnRGbGFnc0hhc0F1ZGlv
KTsKIAogICAgIHJlY2VpdmVkQXV0b3BsYXlFdmVudCA9IHN0ZDo6bnVsbG9wdDsKICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpqc1BsYXlSZXF1ZXN0XTsKQEAgLTQzMyw2ICs0NDIsNyBAQCBURVNU
KFdlYktpdDIsIFdlYnNpdGVQb2xpY2llc1VzZXJJbnRlcmZlcmVuY2VXaXRoUGxheWluZykKICAg
ICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50Om11dGVCdXR0b25DbGlja1BvaW50IHNpbXVsYXRl
UHJlc3N1cmU6Tk9dOwogICAgIFt3ZWJWaWV3IG1vdXNlVXBBdFBvaW50Om11dGVCdXR0b25DbGlj
a1BvaW50XTsKICAgICBydW5VbnRpbFJlY2VpdmVzQXV0b3BsYXlFdmVudChrV0tBdXRvcGxheUV2
ZW50VXNlckRpZEludGVyZmVyZVdpdGhQbGF5YmFjayk7CisgICAgQVNTRVJUX0ZBTFNFKCpyZWNl
aXZlZEF1dG9wbGF5RXZlbnRGbGFncyAmIGtXS0F1dG9wbGF5RXZlbnRGbGFnc0hhc0F1ZGlvKTsK
IAogICAgIHJlY2VpdmVkQXV0b3BsYXlFdmVudCA9IHN0ZDo6bnVsbG9wdDsKICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpqc1BsYXlSZXF1ZXN0XTsKQEAgLTQ0Myw2ICs0NTMsNyBAQCBURVNUKFdl
YktpdDIsIFdlYnNpdGVQb2xpY2llc1VzZXJJbnRlcmZlcmVuY2VXaXRoUGxheWluZykKICAgICBb
d2ViVmlldyBtb3VzZURvd25BdFBvaW50OnBsYXlCdXR0b25DbGlja1BvaW50IHNpbXVsYXRlUHJl
c3N1cmU6Tk9dOwogICAgIFt3ZWJWaWV3IG1vdXNlVXBBdFBvaW50OnBsYXlCdXR0b25DbGlja1Bv
aW50XTsKICAgICBydW5VbnRpbFJlY2VpdmVzQXV0b3BsYXlFdmVudChrV0tBdXRvcGxheUV2ZW50
VXNlckRpZEludGVyZmVyZVdpdGhQbGF5YmFjayk7CisgICAgQVNTRVJUX1RSVUUoKnJlY2VpdmVk
QXV0b3BsYXlFdmVudEZsYWdzICYga1dLQXV0b3BsYXlFdmVudEZsYWdzSGFzQXVkaW8pOwogfQog
CiBURVNUKFdlYktpdDIsIFdlYnNpdGVQb2xpY2llc1VzZXJOZXZlclBsYXllZE1lZGlhUHJldmVu
dGVkRnJvbVBsYXlpbmcpCkBAIC00NzIsNiArNDgzLDcgQEAgVEVTVChXZWJLaXQyLCBXZWJzaXRl
UG9saWNpZXNVc2VyTmV2ZXJQbGF5ZWRNZWRpYVByZXZlbnRlZEZyb21QbGF5aW5nKQogCiAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl1dXTsKICAgICBydW5VbnRpbFJlY2VpdmVzQXV0
b3BsYXlFdmVudChrV0tBdXRvcGxheUV2ZW50VXNlck5ldmVyUGxheWVkTWVkaWFQcmV2ZW50ZWRG
cm9tUGxheWluZyk7CisgICAgQVNTRVJUX1RSVUUoKnJlY2VpdmVkQXV0b3BsYXlFdmVudEZsYWdz
ICYga1dLQXV0b3BsYXlFdmVudEZsYWdzSGFzQXVkaW8pOwogfQogCiBURVNUKFdlYktpdDIsIFdl
YnNpdGVQb2xpY2llc0F1dG9wbGF5UXVpcmtzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308109</attachid>
            <date>2017-04-25 09:51:51 -0700</date>
            <delta_ts>2017-04-25 16:47:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171227-20170425095136.patch</filename>
            <type>text/plain</type>
            <size>25703</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRkNDc2YTdjODJmZmU5
ZTc3MmQ0ODRjZmUwOTkzZTQ5NmE3Zjk5Ni4uYTRiMDI5NWRiMjdjMjQ5MzhiZTQ0MGJjMDEwYmMz
ODdiNmEzYTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA0LTI0ICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBJbmRpY2F0ZSBwcmVzZW5jZSBv
ZiBhdWRpbyB3aGVuIGhhbmRsaW5nIGF1dG9wbGF5IGV2ZW50cy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTIyNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEFQSSB0ZXN0cy4KKworICAgICAg
ICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpoYW5kbGVBdXRvcGxheUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OnN0b3BXaXRob3V0RGVzdHJveWluZ01lZGlhUGxheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVzZXJEaWRJbnRlcmZlcmVXaXRoQXV0b3BsYXkp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0UGxheWJhY2tXaXRob3V0
VXNlckdlc3R1cmUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAg
ICAqIHBhZ2UvQXV0b3BsYXlFdmVudC5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisKIDIwMTctMDQtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIFN3aXRjaCB0byB1c2UgRU5BQkxFX1JFTU9URV9JTlNQRUNUT1Ig
aW5zdGVhZCBvZiBFTkFCTEVfSU5TUEVDVE9SX1NFUlZFUiBmb3IgdGhlIHJlbW90ZSBpbnNwZWN0
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCAyOWFhMTVkMWQ0Njk4NTc2ODQ3Y2QyM2NjZTc1NDc0NDNhNzA1Y2I0
Li5kMGVkYzI2ZmFhNzU3MzI0ZmI3ODhiYzIyNDRhNWZlNzM3ZWZiYjU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMjUgQEAKIDIwMTctMDQtMjQgIE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29t
PgogCisgICAgICAgIEluZGljYXRlIHByZXNlbmNlIG9mIGF1ZGlvIHdoZW4gaGFuZGxpbmcgYXV0
b3BsYXkgZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcxMjI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xp
ZW50OjpoYW5kbGVBdXRvcGxheUV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlQXV0b3Bs
YXlFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OmhhbmRsZUF1dG9wbGF5RXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKKzIwMTctMDQtMjQgIE1hdHQg
UmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgorCiAgICAgICAgIEFkZCBhdmFpbGFiaWxpdHkgYW5u
b3RhdGlvbiB0byBfc2V0U2hvdWxkU3VwcHJlc3NGaXJzdFJlc3BvbmRlckNoYW5nZXMgcHJpdmF0
ZSBBUEkuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzEyMjQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYzlj
NDkwNjkxNjJlOThhNmRmYTQ5ODViYzIwMWVkNWZkZGIxMDEzMC4uYThmYjIwNmE2ZTVjZmI5NmQ2
NjIyMjEzMzFkM2IwYjY3OWFjNGZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC0zMjQyLDggKzMyNDIsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnBs
YXlJbnRlcm5hbCgpCiAKICAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlRm9yTWVkaWEoKSkgewogICAgICAgICBpZiAobV9wbGF5YmFja1dpdGhvdXRVc2VyR2Vz
dHVyZSA9PSBQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZTo6UHJldmVudGVkKSB7Ci0gICAgICAg
ICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKQotICAgICAgICAgICAgICAg
IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVu
dDo6RGlkUGxheU1lZGlhUHJldmVudGVkRnJvbVBsYXlpbmcpOworICAgICAgICAgICAgaGFuZGxl
QXV0b3BsYXlFdmVudChBdXRvcGxheUV2ZW50OjpEaWRQbGF5TWVkaWFQcmV2ZW50ZWRGcm9tUGxh
eWluZyk7CiAgICAgICAgICAgICBzZXRQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZShQbGF5YmFj
a1dpdGhvdXRVc2VyR2VzdHVyZTo6Tm9uZSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKQEAgLTMz
ODMsMTYgKzMzODIsMTYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRNdXRlZChib29sIG11
dGVkKQogCiAgICAgYm9vbCBtdXRlZFN0YXRlQ2hhbmdlZCA9IG1fbXV0ZWQgIT0gbXV0ZWQ7CiAg
ICAgaWYgKG11dGVkU3RhdGVDaGFuZ2VkIHx8ICFtX2V4cGxpY2l0bHlNdXRlZCkgewotICAgICAg
ICBtX211dGVkID0gbXV0ZWQ7Ci0gICAgICAgIG1fZXhwbGljaXRseU11dGVkID0gdHJ1ZTsKLQog
ICAgICAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkgewogICAgICAgICAgICAgcmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJz
dFVzZXJHZXN0dXJlKE1lZGlhRWxlbWVudFNlc3Npb246OkFsbFJlc3RyaWN0aW9ucyAmIH5NZWRp
YUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFn
ZXIpOwogCi0gICAgICAgICAgICBpZiAoaGFzQXVkaW8oKSAmJiBtX211dGVkKQorICAgICAgICAg
ICAgaWYgKGhhc0F1ZGlvKCkgJiYgbXV0ZWQpCiAgICAgICAgICAgICAgICAgdXNlckRpZEludGVy
ZmVyZVdpdGhBdXRvcGxheSgpOwogICAgICAgICB9CiAKKyAgICAgICAgbV9tdXRlZCA9IG11dGVk
OworICAgICAgICBtX2V4cGxpY2l0bHlNdXRlZCA9IHRydWU7CisKICAgICAgICAgLy8gQXZvaWQg
cmVjdXJzaW9uIHdoZW4gdGhlIHBsYXllciByZXBvcnRzIHZvbHVtZSBjaGFuZ2VzLgogICAgICAg
ICBpZiAoIXByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCkpIHsKICAgICAgICAgICAgIGlm
IChtX3BsYXllcikgewpAQCAtNDQ2NywxMCArNDQ2Niw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJUaW1lQ2hhbmdlZChNZWRpYVBsYXllciopCiAgICAgICAgICAgICAgICAg
aWYgKCF3YXNTZWVraW5nKQogICAgICAgICAgICAgICAgICAgICBhZGRCZWhhdmlvclJlc3RyaWN0
aW9uc09uRW5kSWZOZWNlc3NhcnkoKTsKIAotICAgICAgICAgICAgICAgIGlmIChtX3BsYXliYWNr
V2l0aG91dFVzZXJHZXN0dXJlID09IFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlOjpTdGFydGVk
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdl
KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5k
bGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQ6OkRpZEVuZE1lZGlhUGxheWJhY2tXaXRob3V0
VXNlckludGVyZmVyZW5jZSk7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlm
IChtX3BsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlID09IFBsYXliYWNrV2l0aG91dFVzZXJHZXN0
dXJlOjpTdGFydGVkKQorICAgICAgICAgICAgICAgICAgICBoYW5kbGVBdXRvcGxheUV2ZW50KEF1
dG9wbGF5RXZlbnQ6OkRpZEVuZE1lZGlhUGxheWJhY2tXaXRob3V0VXNlckludGVyZmVyZW5jZSk7
CisKICAgICAgICAgICAgICAgICBzZXRQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZShQbGF5YmFj
a1dpdGhvdXRVc2VyR2VzdHVyZTo6Tm9uZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAv
LyBJZiB0aGUgbWVkaWEgZWxlbWVudCBoYXMgYSBjdXJyZW50IG1lZGlhIGNvbnRyb2xsZXIsIHRo
ZW4gcmVwb3J0IHRoZSBjb250cm9sbGVyIHN0YXRlCkBAIC01MjMwLDE4ICs1MjI4LDE3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6c3RvcFdpdGhvdXREZXN0cm95aW5nTWVkaWFQbGF5ZXIoKQog
ICAgIHNldFBhdXNlZEludGVybmFsKHRydWUpOwogICAgIG1fbWVkaWFTZXNzaW9uLT5jbGllbnRX
aWxsUGF1c2VQbGF5YmFjaygpOwogCi0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLnBh
Z2UoKSkgewotICAgICAgICBzd2l0Y2ggKG1fcGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmUpIHsK
LSAgICAgICAgY2FzZSBQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZTo6U3RhcnRlZDoKLSAgICAg
ICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3Bs
YXlFdmVudDo6RGlkRW5kTWVkaWFQbGF5YmFja1dpdGhvdXRVc2VySW50ZXJmZXJlbmNlKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJl
OjpQcmV2ZW50ZWQ6Ci0gICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVB
dXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQ6OlVzZXJOZXZlclBsYXllZE1lZGlhUHJldmVudGVk
RnJvbVBsYXlpbmcpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUGxheWJhY2tX
aXRob3V0VXNlckdlc3R1cmU6Ok5vbmU6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQor
ICAgIHN3aXRjaCAobV9wbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZSkgeworICAgIGNhc2UgUGxh
eWJhY2tXaXRob3V0VXNlckdlc3R1cmU6OlN0YXJ0ZWQ6CisgICAgICAgIGhhbmRsZUF1dG9wbGF5
RXZlbnQoQXV0b3BsYXlFdmVudDo6RGlkRW5kTWVkaWFQbGF5YmFja1dpdGhvdXRVc2VySW50ZXJm
ZXJlbmNlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQbGF5YmFja1dpdGhvdXRVc2VyR2Vz
dHVyZTo6UHJldmVudGVkOgorICAgICAgICBoYW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZl
bnQ6OlVzZXJOZXZlclBsYXllZE1lZGlhUHJldmVudGVkRnJvbVBsYXlpbmcpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlOjpOb25lOgorICAgICAg
ICBicmVhazsKICAgICB9CisKICAgICBzZXRQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZShQbGF5
YmFja1dpdGhvdXRVc2VyR2VzdHVyZTo6Tm9uZSk7CiAKICAgICB1c2VyQ2FuY2VsbGVkTG9hZCgp
OwpAQCAtNzE4NCw2ICs3MTgxLDE0IEBAIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBI
VE1MTWVkaWFFbGVtZW50OjptZWRpYVN0YXRlKCkgY29uc3QKICAgICByZXR1cm4gc3RhdGU7CiB9
CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6aGFuZGxlQXV0b3BsYXlFdmVudChBdXRvcGxheUV2
ZW50IGV2ZW50KQoreworICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpIHsK
KyAgICAgICAgYm9vbCBoYXNBdWRpbyA9IHRoaXMtPmhhc0F1ZGlvKCkgJiYgIW11dGVkKCkgJiYg
dm9sdW1lKCk7CisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhbmRsZUF1dG9wbGF5
RXZlbnQoZXZlbnQsIGhhc0F1ZGlvID8gQXV0b3BsYXlFdmVudEZsYWdzOjpIYXNBdWRpbyA6IE9w
dGlvblNldDxBdXRvcGxheUV2ZW50RmxhZ3M+KCkpOworICAgIH0KK30KKwogdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojp1c2VyRGlkSW50ZXJmZXJlV2l0aEF1dG9wbGF5KCkKIHsKICAgICBpZiAobV9w
bGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZSAhPSBQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZTo6
U3RhcnRlZCkKQEAgLTcxOTMsOSArNzE5OCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXNl
ckRpZEludGVyZmVyZVdpdGhBdXRvcGxheSgpCiAgICAgaWYgKGN1cnJlbnRUaW1lKCkgLSBtX3Bs
YXliYWNrV2l0aG91dFVzZXJHZXN0dXJlU3RhcnRlZFRpbWUtPnRvRG91YmxlKCkgPiAxMCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKSkK
LSAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlQXV0b3BsYXlFdmVudChBdXRv
cGxheUV2ZW50OjpVc2VyRGlkSW50ZXJmZXJlV2l0aFBsYXliYWNrKTsKLQorICAgIGhhbmRsZUF1
dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudDo6VXNlckRpZEludGVyZmVyZVdpdGhQbGF5YmFjayk7
CiAgICAgc2V0UGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmUoUGxheWJhY2tXaXRob3V0VXNlckdl
c3R1cmU6Ok5vbmUpOwogfQogCkBAIC03MjE0LDkgKzcyMTcsNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnNldFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlKFBsYXliYWNrV2l0aG91dFVzZXJH
ZXN0dXJlCiAgICAgICAgIG1fcGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmVTdGFydGVkVGltZSA9
IHN0ZDo6bnVsbG9wdDsKIAogICAgICAgICBkaXNwYXRjaFBsYXlQYXVzZUV2ZW50c0lmTmVlZHNR
dWlya3MoKTsKLQotICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKQot
ICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlQXV0b3BsYXlFdmVudChB
dXRvcGxheUV2ZW50OjpEaWRQcmV2ZW50TWVkaWFGcm9tUGxheWluZyk7CisgICAgICAgIGhhbmRs
ZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudDo6RGlkUHJldmVudE1lZGlhRnJvbVBsYXlpbmcp
OwogCiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmgKaW5kZXggM2ZlZDliMTg1OGJhYzE1OTFmOTM1YzNmNzIzYWI1M2M3OTc1MWVmOS4uOTZl
MGE5NWQ2ODhlODJhNGUyNzA5OGJlOWMxNTU0MTU5NjQ0MTMwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoVklERU8p
CiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJBdXRvcGxheUV2ZW50
LmgiCiAjaW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKICNpbmNsdWRlICJHZW5lcmljVGFz
a1F1ZXVlLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKQEAgLTc1NSw2ICs3NTYsNyBAQCBw
cml2YXRlOgogICAgIGVudW0gY2xhc3MgUGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmUgeyBOb25l
LCBTdGFydGVkLCBQcmV2ZW50ZWQgfTsKICAgICB2b2lkIHNldFBsYXliYWNrV2l0aG91dFVzZXJH
ZXN0dXJlKFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlKTsKICAgICB2b2lkIHVzZXJEaWRJbnRl
cmZlcmVXaXRoQXV0b3BsYXkoKTsKKyAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3Bs
YXlFdmVudCk7CiAKICAgICBNZWRpYVRpbWUgbWluVGltZVNlZWthYmxlKCkgY29uc3Q7CiAgICAg
TWVkaWFUaW1lIG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9BdXRvcGxheUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9wbGF5
RXZlbnQuaAppbmRleCA4NjZmNDM3NjJkZGFiYTIyNGMzOWM2ZWVjMjcwYWY1MGQ2NDVkZDRjLi42
OTMxMDM5YzZmYWU2YzM4ZWY4NTRkM2YwYjhlYzM0ZWJhNzdjYTVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0F1dG9wbGF5RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0F1dG9wbGF5RXZlbnQuaApAQCAtMzUsNCArMzUsOCBAQCBlbnVtIGNsYXNzIEF1dG9wbGF5RXZl
bnQgewogICAgIFVzZXJOZXZlclBsYXllZE1lZGlhUHJldmVudGVkRnJvbVBsYXlpbmcsCiB9Owog
CitlbnVtIGNsYXNzIEF1dG9wbGF5RXZlbnRGbGFncyB7CisgICAgSGFzQXVkaW8gPSAxIDw8IDAs
Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAppbmRleCBiNmZkYzlhNTkyN2E2MjcwY2ExNDZiYTI5NjA0ZjdjZmM1YzllZTExLi45MGFhMDkw
YjA4NTVlMWQxNDgwMjQwOWE0NGE5NjBmMjk2OTY1ZWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKQEAgLTQyMiw3ICs0MjIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcmKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hh
bmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncywgdWludDY0X3QpIHsgfQotICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxB
dXRvcGxheUV2ZW50RmxhZ3M+KSB7IH0KIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAg
IHZpcnR1YWwgdm9pZCBoYXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50c0RpZENo
YW5nZShib29sKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
aW5kZXggNmY4NmUwNTE4OTc4MmNlMTg2NWNiZjBiZWY5NGU0NjhmODA2Yjg3MS4uZTQ1Y2UxNzE2
YTdjYmU5NDk2MDI4MWRhNmZmNjY5MTRkZDM5NmFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTM0OCw2ICszNDgsNyBAQCBkZWYgaGVhZGVyc19mb3Jf
dHlwZSh0eXBlKToKIAogICAgIHNwZWNpYWxfY2FzZXMgPSB7CiAgICAgICAgICdTdHJpbmcnOiBb
Jzx3dGYvdGV4dC9XVEZTdHJpbmcuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkF1dG9wbGF5RXZl
bnRGbGFncyc6IFsnPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6Q29tcG9zaXRpb25VbmRlcmxpbmUnOiBbJzxXZWJDb3JlL0VkaXRvci5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyc6IFsnPFdlYkNvcmUvSlNET01FeGNlcHRpb25I
YW5kbGluZy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyc6IFsn
PFdlYkNvcmUvRmlsZUNob29zZXIuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBiZjhkZDc1M2Y5NzNlNzI2Y2NhNGM1YjE1NjkzZDY2
NGJhY2EyMWYxLi4wZjU1YjhhZjVhYjY4Yjg0NDFkMmZiNjBjY2ZjMmM1ZjI3YjdiZDdhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0
dXJlRGV2aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgpAQCAtNjg2LDYgKzY4NywxNyBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4g
ewogICAgID47CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkF1
dG9wbGF5RXZlbnQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBX
ZWJDb3JlOjpBdXRvcGxheUV2ZW50LAorICAgICAgICBXZWJDb3JlOjpBdXRvcGxheUV2ZW50OjpE
aWRQcmV2ZW50TWVkaWFGcm9tUGxheWluZywKKyAgICAgICAgV2ViQ29yZTo6QXV0b3BsYXlFdmVu
dDo6RGlkUGxheU1lZGlhUHJldmVudGVkRnJvbVBsYXlpbmcsCisgICAgICAgIFdlYkNvcmU6OkF1
dG9wbGF5RXZlbnQ6OkRpZEVuZE1lZGlhUGxheWJhY2tXaXRob3V0VXNlckludGVyZmVyZW5jZSwK
KyAgICAgICAgV2ViQ29yZTo6QXV0b3BsYXlFdmVudDo6VXNlckRpZEludGVyZmVyZVdpdGhQbGF5
YmFjaywKKyAgICAgICAgV2ViQ29yZTo6QXV0b3BsYXlFdmVudDo6VXNlck5ldmVyUGxheWVkTWVk
aWFQcmV2ZW50ZWRGcm9tUGxheWluZworICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlNob3VsZFNhbXBsZT4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6OlNob3VsZFNhbXBsZSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCAyN2Q2NjkwN2UwNTQ3M2QyOWU2NTNj
ZWE0MWJiMDUzOGU2YmFmYTE2Li5iOTk2NzdhMDcwNzZlZGEzODQzMTZjYjk3ODA2YTU5MWUzMDg5
NmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0x
NTAsNyArMTUwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ0F1ZGlv
RGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1l
ZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViS2l0
OjpXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50KSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYkNvcmU6
OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KSB7
IH0KIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVNl
c3Npb25NZXRhZGF0YURpZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2Vi
TWVkaWFTZXNzaW9uTWV0YWRhdGEqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKaW5kZXggYWFjZDg5OTY3MDEzYmJmMGNmZGMyZjA4N2E1MDBlZTI2Njg3MGIz
Mi4uOWJjYjNhMzYyYzE5OTNiNzNiODgwOWUwMGJhOWViMjM1NDA3NTM4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTIyNDEsMTIgKzIyNDEsMzcgQEAg
dm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFn
ZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgfQogI2VuZGlmCiAKLSAgICAgICAgdm9p
ZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViQ29yZTo6QXV0b3Bs
YXlFdmVudCBldmVudCkgb3ZlcnJpZGUKKyAgICAgICAgc3RhdGljIFdLQXV0b3BsYXlFdmVudEZs
YWdzIHRvV0tBdXRvcGxheUV2ZW50RmxhZ3MoT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZl
bnRGbGFncz4gZmxhZ3MpCisgICAgICAgIHsKKyAgICAgICAgICAgIFdLQXV0b3BsYXlFdmVudEZs
YWdzIHdrRmxhZ3MgPSBrV0tBdXRvcGxheUV2ZW50RmxhZ3NOb25lOworICAgICAgICAgICAgaWYg
KGZsYWdzLmNvbnRhaW5zKFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFnczo6SGFzQXVkaW8pKQor
ICAgICAgICAgICAgICAgIHdrRmxhZ3MgfD0ga1dLQXV0b3BsYXlFdmVudEZsYWdzSGFzQXVkaW87
CisKKyAgICAgICAgICAgIHJldHVybiB3a0ZsYWdzOworICAgICAgICB9CisKKyAgICAgICAgc3Rh
dGljIFdLQXV0b3BsYXlFdmVudCB0b1dLQXV0b3BsYXlFdmVudChXZWJDb3JlOjpBdXRvcGxheUV2
ZW50IGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50KSB7CisgICAg
ICAgICAgICBjYXNlIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQ6OkRpZEVuZE1lZGlhUGxheWJhY2tX
aXRob3V0VXNlckludGVyZmVyZW5jZToKKyAgICAgICAgICAgICAgICByZXR1cm4ga1dLQXV0b3Bs
YXlFdmVudERpZEVuZE1lZGlhUGxheWJhY2tXaXRob3V0VXNlckludGVyZmVyZW5jZTsKKyAgICAg
ICAgICAgIGNhc2UgV2ViQ29yZTo6QXV0b3BsYXlFdmVudDo6RGlkUGxheU1lZGlhUHJldmVudGVk
RnJvbVBsYXlpbmc6CisgICAgICAgICAgICAgICAgcmV0dXJuIGtXS0F1dG9wbGF5RXZlbnREaWRQ
bGF5TWVkaWFQcmV2ZW50ZWRGcm9tQXV0b3BsYXlpbmc7CisgICAgICAgICAgICBjYXNlIFdlYkNv
cmU6OkF1dG9wbGF5RXZlbnQ6OkRpZFByZXZlbnRNZWRpYUZyb21QbGF5aW5nOgorICAgICAgICAg
ICAgICAgIHJldHVybiBrV0tBdXRvcGxheUV2ZW50RGlkUHJldmVudEZyb21BdXRvcGxheWluZzsK
KyAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6QXV0b3BsYXlFdmVudDo6VXNlckRpZEludGVyZmVy
ZVdpdGhQbGF5YmFjazoKKyAgICAgICAgICAgICAgICByZXR1cm4ga1dLQXV0b3BsYXlFdmVudFVz
ZXJEaWRJbnRlcmZlcmVXaXRoUGxheWJhY2s7CisgICAgICAgICAgICBjYXNlIFdlYkNvcmU6OkF1
dG9wbGF5RXZlbnQ6OlVzZXJOZXZlclBsYXllZE1lZGlhUHJldmVudGVkRnJvbVBsYXlpbmc6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGtXS0F1dG9wbGF5RXZlbnRVc2VyTmV2ZXJQbGF5ZWRNZWRp
YVByZXZlbnRlZEZyb21QbGF5aW5nOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViQ29yZTo6
QXV0b3BsYXlFdmVudCBldmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFn
cz4gZmxhZ3MpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQu
aGFuZGxlQXV0b3BsYXlFdmVudCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
ICAgIG1fY2xpZW50LmhhbmRsZUF1dG9wbGF5RXZlbnQodG9BUEkoJnBhZ2UpLCBzdGF0aWNfY2Fz
dDxXS0F1dG9wbGF5RXZlbnQ+KGV2ZW50KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAg
ICAgICAgICAgIG1fY2xpZW50LmhhbmRsZUF1dG9wbGF5RXZlbnQodG9BUEkoJnBhZ2UpLCB0b1dL
QXV0b3BsYXlFdmVudChldmVudCksIHRvV0tBdXRvcGxheUV2ZW50RmxhZ3MoZmxhZ3MpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAppbmRleCAyM2M5OTg4NDdm
MzNjNWE2YzhjOTQxYWMxYzg5MzlmOGRiMzFkODc5Li41NzJjYjZhOGFkMDY2NzJiYzEyZDA5YTIy
ZGJkZWU1NTA1OWUyNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlVUlDbGllbnQuaApAQCAtNTcsNiArNTcsMTIgQEAgZW51bSB7CiB9OwogdHlwZWRlZiB1
aW50MzJfdCBXS0F1dG9wbGF5RXZlbnQ7CiAKK2VudW0geworICAgIGtXS0F1dG9wbGF5RXZlbnRG
bGFnc05vbmUgPSAwLAorICAgIGtXS0F1dG9wbGF5RXZlbnRGbGFnc0hhc0F1ZGlvID0gMSA8PCAw
LAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tBdXRvcGxheUV2ZW50RmxhZ3M7CisKIFdLX0VYUE9S
VCBXS1R5cGVJRCBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxSZXN1bHRMaXN0ZW5l
ckdldFR5cGVJRCgpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsUmVzdWx0TGlzdGVuZXJDYWxsKFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bFJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyLCBib29sIHJlc3VsdCk7CiAKQEAgLTExMSw3ICsx
MTcsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1BhZ2VSZQogdHlwZWRlZiB2b2lkICgqV0tDaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJh
bWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFdLU2VjdXJp
dHlPcmlnaW5SZWYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tSZWYgZGV2aWNlc1JlcXVlc3QsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRl
ZiB2b2lkICgqV0tQYWdlRGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbkNhbGxiYWNrKShXS1BhZ2VSZWYg
cGFnZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVk
ZWYgdm9pZCAoKldLUGFnZU1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlQ2FsbGJhY2spKFdL
UGFnZVJlZiBwYWdlLCBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhUmVmIG1ldGFkYXRhLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLSGFuZGxlQXV0b3BsYXlFdmVudENh
bGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tBdXRvcGxheUV2ZW50IGV2ZW50LCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLSGFuZGxlQXV0b3BsYXlFdmVudENhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tBdXRvcGxheUV2ZW50IGV2ZW50LCBXS0F1dG9wbGF5RXZl
bnRGbGFncyBmbGFncywgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpX
S0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYgdm9pZCAoKldLUmVxdWVzdFBvaW50ZXJM
b2NrQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMWRiZWM0NTk3Yzlm
MjM1YmE5ODcyNjk2ZDljMmM0N2ZhNzMwYTM3ZC4uNzRjZDRjOTAxZjdhMmM3ZWVhZTI4MjEyNjBl
OWE3MjhlNzRkMmRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTY1NjcsOSArNjU2Nyw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkQ29udGVu
dE1lZGlhRWxlbWVudERpZENoYW5nZSh1aW50NjRfdCBlbGVtZW50SUQpCiB9CiAjZW5kaWYKIAot
dm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUF1dG9wbGF5RXZlbnQodWludDMyX3QgZXZlbnQpCit2
b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlQXV0b3BsYXlFdmVudChXZWJDb3JlOjpBdXRvcGxheUV2
ZW50IGV2ZW50LCBPcHRpb25TZXQ8QXV0b3BsYXlFdmVudEZsYWdzPiBmbGFncykKIHsKLSAgICBt
X3VpQ2xpZW50LT5oYW5kbGVBdXRvcGxheUV2ZW50KCp0aGlzLCBzdGF0aWNfY2FzdDxBdXRvcGxh
eUV2ZW50PihldmVudCkpOworICAgIG1fdWlDbGllbnQtPmhhbmRsZUF1dG9wbGF5RXZlbnQoKnRo
aXMsIGV2ZW50LCBmbGFncyk7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMDRjMzVjNTMyOWU2NGIyYzZiYTJhNzJjZjk2
ZmM3OWFjOGFhZDU5YS4uOGFlMzJlMGRjM2UyNGYxOTllMzA5ODI3MWQ4NjRkYWZiNmE1NmQwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTY4LDYgKzE2OCw3
IEBAIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVz
Owogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCitlbnVtIGNsYXNzIEF1dG9wbGF5RXZlbnQ7CiBl
bnVtIGNsYXNzIEhhc0luc2VjdXJlQ29udGVudDsKIGVudW0gY2xhc3MgU2hvdWxkU2FtcGxlOwog
CkBAIC0xMDcwLDcgKzEwNzEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNBY3RpdmVBdWRpb1N0
cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZTsgfQogICAgIGJvb2wgaGFzQWN0aXZlVmlk
ZW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2U7IH0KICAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZUZsYWdzKCkgY29uc3QgeyByZXR1
cm4gbV9tZWRpYVN0YXRlOyB9Ci0gICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KHVpbnQzMl90
KTsKKyAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwg
T3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pOwogCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIHZvaWQgdmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGU5
OWJlYjhhNzc0MjFhODIzMGQ5NWI0MGVmN2MyMWM3ZmU4MDY3YTcuLmI0Yjk4MTA1YmNlNjg0MDg0
M2ZiOWMxMTQ0MTg2NzgzZWY5OGE0ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDM4LDcgKzQzOCw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogICAgIElzUGxheWluZ01lZGlhRGlkQ2hhbmdl
KHVuc2lnbmVkIHN0YXRlLCB1aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCi0gICAgSGFuZGxlQXV0
b3BsYXlFdmVudCh1aW50MzJfdCBldmVudCkKKyAgICBIYW5kbGVBdXRvcGxheUV2ZW50KGVudW0g
V2ViQ29yZTo6QXV0b3BsYXlFdmVudCBldmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5
RXZlbnRGbGFncz4gZmxhZ3MpCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICBIYXNN
ZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50c0RpZENoYW5nZShib29sIHN0YXRlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDM1OTNkOTAyYmQ1NzllMWQ0NTY0ODI3NjdiYmZi
NzVjYzgwYmMwMjYuLjgwZmU2YWUwMWUxMjM4NDZhMjczYmRjNzI0YjM5MzAxYWI3ODU4MDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEwODgsOSArMTA4OCw5IEBAIHZvaWQgV2ViQ2hy
b21lQ2xpZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3Mgc3RhCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SXNQ
bGF5aW5nTWVkaWFEaWRDaGFuZ2Uoc3RhdGUsIHNvdXJjZUVsZW1lbnRJRCkpOwogfQogCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6aGFuZGxlQXV0b3BsYXlFdmVudChBdXRvcGxheUV2ZW50IGV2ZW50
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVu
dCBldmVudCwgT3B0aW9uU2V0PEF1dG9wbGF5RXZlbnRGbGFncz4gZmxhZ3MpCiB7Ci0gICAgbV9w
YWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGFuZGxlQXV0b3BsYXlFdmVudChzdGF0
aWNfY2FzdDx1aW50MzJfdD4oZXZlbnQpKSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6SGFuZGxlQXV0b3BsYXlFdmVudChldmVudCwgZmxhZ3MpKTsKIH0KIAogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNTc2Y2Q3OWYx
Zjc3NWE2NTFhOTVmZGQ3N2QwMGRkYTY5MDIwZDUwNi4uMWM0ZDZiYmViMDFjYjIxN2Y0N2VhYWZi
NTZjZDJkZGI2ZmFhMjEyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yOTcsNyArMjk3LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhj
b25zdCBXZWJDb3JlOjpGcmFtZVZpZXcmKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgaXNQbGF5
aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
LCB1aW50NjRfdCkgZmluYWw7Ci0gICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYkNvcmU6
OkF1dG9wbGF5RXZlbnQpIGZpbmFsOworICAgIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJD
b3JlOjpBdXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdz
PikgZmluYWw7CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICB2b2lkIGhhc01lZGlh
U2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRzRGlkQ2hhbmdlKGJvb2wpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV2Vic2l0ZVBv
bGljaWVzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV2Vic2l0
ZVBvbGljaWVzLm1tCmluZGV4IGNiN2U4YzAxMTAwYzRlZGQ2YWMzN2ZjYTU3ZDcxZTI1YmU4OWQx
MmQuLmRkYjE5NzIwMDY1NTFkNWQ5ZDNmZjMzM2EyMDUwZjc3ZjdhZWE5NDcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dlYnNpdGVQb2xpY2llcy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XZWJzaXRlUG9s
aWNpZXMubW0KQEAgLTUxLDYgKzUxLDcgQEAgc3RhdGljIGJvb2wgcmVjZWl2ZWRBbGVydDsKIAog
I2lmIFBMQVRGT1JNKE1BQykKIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdLQXV0b3BsYXlFdmVudD4g
cmVjZWl2ZWRBdXRvcGxheUV2ZW50Oworc3RhdGljIHN0ZDo6b3B0aW9uYWw8V0tBdXRvcGxheUV2
ZW50RmxhZ3M+IHJlY2VpdmVkQXV0b3BsYXlFdmVudEZsYWdzOwogI2VuZGlmCiAKIHN0YXRpYyBz
aXplX3QgYWxlcnRDb3VudDsKQEAgLTI4MCw4ICsyODEsOSBAQCBURVNUKFdlYktpdDIsIFdlYnNp
dGVQb2xpY2llc0F1dG9wbGF5RW5hYmxlZCkKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKLXN0YXRp
YyB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV0tQYWdlUmVmIHBhZ2UsIFdLQXV0b3BsYXlFdmVu
dCBldmVudCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGhhbmRsZUF1dG9w
bGF5RXZlbnQoV0tQYWdlUmVmIHBhZ2UsIFdLQXV0b3BsYXlFdmVudCBldmVudCwgV0tBdXRvcGxh
eUV2ZW50RmxhZ3MgZmxhZ3MsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CisgICAgcmVjZWl2
ZWRBdXRvcGxheUV2ZW50RmxhZ3MgPSBmbGFnczsKICAgICByZWNlaXZlZEF1dG9wbGF5RXZlbnQg
PSBldmVudDsKIH0KIApAQCAtMzIwLDYgKzMyMiw3IEBAIFRFU1QoV2ViS2l0MiwgV2Vic2l0ZVBv
bGljaWVzUGxheUFmdGVyUHJldmVudGVkQXV0b3BsYXkpCiAgICAgW3dlYlZpZXcgbW91c2VEb3du
QXRQb2ludDpwbGF5QnV0dG9uQ2xpY2tQb2ludCBzaW11bGF0ZVByZXNzdXJlOk5PXTsKICAgICBb
d2ViVmlldyBtb3VzZVVwQXRQb2ludDpwbGF5QnV0dG9uQ2xpY2tQb2ludF07CiAgICAgcnVuVW50
aWxSZWNlaXZlc0F1dG9wbGF5RXZlbnQoa1dLQXV0b3BsYXlFdmVudERpZFBsYXlNZWRpYVByZXZl
bnRlZEZyb21BdXRvcGxheWluZyk7CisgICAgQVNTRVJUX1RSVUUoKnJlY2VpdmVkQXV0b3BsYXlF
dmVudEZsYWdzICYga1dLQXV0b3BsYXlFdmVudEZsYWdzSGFzQXVkaW8pOwogCiAgICAgcmVjZWl2
ZWRBdXRvcGxheUV2ZW50ID0gc3RkOjpudWxsb3B0OwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3Ry
aW5nOkAiIiBiYXNlVVJMOm5pbF07CkBAIC0zMjgsMTAgKzMzMSwxMiBAQCBURVNUKFdlYktpdDIs
IFdlYnNpdGVQb2xpY2llc1BsYXlBZnRlclByZXZlbnRlZEF1dG9wbGF5KQogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OmF1dG9wbGF5UmVxdWVzdF07CiAgICAgW3dlYlZpZXcgd2FpdEZvck1lc3Nh
Z2U6QCJsb2FkZWQiXTsKICAgICBydW5VbnRpbFJlY2VpdmVzQXV0b3BsYXlFdmVudChrV0tBdXRv
cGxheUV2ZW50RGlkUHJldmVudEZyb21BdXRvcGxheWluZyk7CisgICAgQVNTRVJUX1RSVUUoKnJl
Y2VpdmVkQXV0b3BsYXlFdmVudEZsYWdzICYga1dLQXV0b3BsYXlFdmVudEZsYWdzSGFzQXVkaW8p
OwogCiAgICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpwbGF5QnV0dG9uQ2xpY2tQb2ludCBz
aW11bGF0ZVByZXNzdXJlOk5PXTsKICAgICBbd2ViVmlldyBtb3VzZVVwQXRQb2ludDpwbGF5QnV0
dG9uQ2xpY2tQb2ludF07CiAgICAgcnVuVW50aWxSZWNlaXZlc0F1dG9wbGF5RXZlbnQoa1dLQXV0
b3BsYXlFdmVudERpZFBsYXlNZWRpYVByZXZlbnRlZEZyb21BdXRvcGxheWluZyk7CisgICAgQVNT
RVJUX1RSVUUoKnJlY2VpdmVkQXV0b3BsYXlFdmVudEZsYWdzICYga1dLQXV0b3BsYXlFdmVudEZs
YWdzSGFzQXVkaW8pOwogCiAgICAgcmVjZWl2ZWRBdXRvcGxheUV2ZW50ID0gc3RkOjpudWxsb3B0
OwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiIiBiYXNlVVJMOm5pbF07CkBAIC0zNTks
NiArMzY0LDcgQEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNQbGF5QWZ0ZXJQcmV2ZW50
ZWRBdXRvcGxheSkKICAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50OnBsYXlCdXR0b25DbGlj
a1BvaW50IHNpbXVsYXRlUHJlc3N1cmU6Tk9dOwogICAgIFt3ZWJWaWV3IG1vdXNlVXBBdFBvaW50
OnBsYXlCdXR0b25DbGlja1BvaW50XTsKICAgICBydW5VbnRpbFJlY2VpdmVzQXV0b3BsYXlFdmVu
dChrV0tBdXRvcGxheUV2ZW50RGlkUGxheU1lZGlhUHJldmVudGVkRnJvbUF1dG9wbGF5aW5nKTsK
KyAgICBBU1NFUlRfVFJVRSgqcmVjZWl2ZWRBdXRvcGxheUV2ZW50RmxhZ3MgJiBrV0tBdXRvcGxh
eUV2ZW50RmxhZ3NIYXNBdWRpbyk7CiB9CiAKIFRFU1QoV2ViS2l0MiwgV2Vic2l0ZVBvbGljaWVz
UGxheWluZ1dpdGhvdXRJbnRlcmZlcmVuY2UpCkBAIC0zODksMTEgKzM5NSwxMyBAQCBURVNUKFdl
YktpdDIsIFdlYnNpdGVQb2xpY2llc1BsYXlpbmdXaXRob3V0SW50ZXJmZXJlbmNlKQogCiAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl1dXTsKICAgICBydW5VbnRpbFJlY2VpdmVzQXV0
b3BsYXlFdmVudChrV0tBdXRvcGxheUV2ZW50RGlkRW5kTWVkaWFQbGF5YmFja1dpdGhvdXRVc2Vy
SW50ZXJmZXJlbmNlKTsKKyAgICBBU1NFUlRfVFJVRSgqcmVjZWl2ZWRBdXRvcGxheUV2ZW50Rmxh
Z3MgJiBrV0tBdXRvcGxheUV2ZW50RmxhZ3NIYXNBdWRpbyk7CiAKICAgICByZWNlaXZlZEF1dG9w
bGF5RXZlbnQgPSBzdGQ6Om51bGxvcHQ7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6anNQbGF5
UmVxdWVzdF07CiAgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJlbmRlZCJdOwogICAgIHJ1
blVudGlsUmVjZWl2ZXNBdXRvcGxheUV2ZW50KGtXS0F1dG9wbGF5RXZlbnREaWRFbmRNZWRpYVBs
YXliYWNrV2l0aG91dFVzZXJJbnRlcmZlcmVuY2UpOworICAgIEFTU0VSVF9UUlVFKCpyZWNlaXZl
ZEF1dG9wbGF5RXZlbnRGbGFncyAmIGtXS0F1dG9wbGF5RXZlbnRGbGFnc0hhc0F1ZGlvKTsKIH0K
IAogVEVTVChXZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNVc2VySW50ZXJmZXJlbmNlV2l0aFBsYXlp
bmcpCkBAIC00MjMsNiArNDMxLDcgQEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNVc2Vy
SW50ZXJmZXJlbmNlV2l0aFBsYXlpbmcpCiAKICAgICBXS1BhZ2VTZXRNdXRlZChbd2ViVmlldyBf
cGFnZUZvclRlc3RpbmddLCBrV0tNZWRpYUF1ZGlvTXV0ZWQpOwogICAgIHJ1blVudGlsUmVjZWl2
ZXNBdXRvcGxheUV2ZW50KGtXS0F1dG9wbGF5RXZlbnRVc2VyRGlkSW50ZXJmZXJlV2l0aFBsYXli
YWNrKTsKKyAgICBBU1NFUlRfVFJVRSgqcmVjZWl2ZWRBdXRvcGxheUV2ZW50RmxhZ3MgJiBrV0tB
dXRvcGxheUV2ZW50RmxhZ3NIYXNBdWRpbyk7CiAKICAgICByZWNlaXZlZEF1dG9wbGF5RXZlbnQg
PSBzdGQ6Om51bGxvcHQ7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6anNQbGF5UmVxdWVzdF07
CkBAIC00MzMsNiArNDQyLDcgQEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNVc2VySW50
ZXJmZXJlbmNlV2l0aFBsYXlpbmcpCiAgICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDptdXRl
QnV0dG9uQ2xpY2tQb2ludCBzaW11bGF0ZVByZXNzdXJlOk5PXTsKICAgICBbd2ViVmlldyBtb3Vz
ZVVwQXRQb2ludDptdXRlQnV0dG9uQ2xpY2tQb2ludF07CiAgICAgcnVuVW50aWxSZWNlaXZlc0F1
dG9wbGF5RXZlbnQoa1dLQXV0b3BsYXlFdmVudFVzZXJEaWRJbnRlcmZlcmVXaXRoUGxheWJhY2sp
OworICAgIEFTU0VSVF9UUlVFKCpyZWNlaXZlZEF1dG9wbGF5RXZlbnRGbGFncyAmIGtXS0F1dG9w
bGF5RXZlbnRGbGFnc0hhc0F1ZGlvKTsKIAogICAgIHJlY2VpdmVkQXV0b3BsYXlFdmVudCA9IHN0
ZDo6bnVsbG9wdDsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpqc1BsYXlSZXF1ZXN0XTsKQEAg
LTQ0Myw2ICs0NTMsNyBAQCBURVNUKFdlYktpdDIsIFdlYnNpdGVQb2xpY2llc1VzZXJJbnRlcmZl
cmVuY2VXaXRoUGxheWluZykKICAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50OnBsYXlCdXR0
b25DbGlja1BvaW50IHNpbXVsYXRlUHJlc3N1cmU6Tk9dOwogICAgIFt3ZWJWaWV3IG1vdXNlVXBB
dFBvaW50OnBsYXlCdXR0b25DbGlja1BvaW50XTsKICAgICBydW5VbnRpbFJlY2VpdmVzQXV0b3Bs
YXlFdmVudChrV0tBdXRvcGxheUV2ZW50VXNlckRpZEludGVyZmVyZVdpdGhQbGF5YmFjayk7Cisg
ICAgQVNTRVJUX1RSVUUoKnJlY2VpdmVkQXV0b3BsYXlFdmVudEZsYWdzICYga1dLQXV0b3BsYXlF
dmVudEZsYWdzSGFzQXVkaW8pOwogfQogCiBURVNUKFdlYktpdDIsIFdlYnNpdGVQb2xpY2llc1Vz
ZXJOZXZlclBsYXllZE1lZGlhUHJldmVudGVkRnJvbVBsYXlpbmcpCkBAIC00NzIsNiArNDgzLDcg
QEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNVc2VyTmV2ZXJQbGF5ZWRNZWRpYVByZXZl
bnRlZEZyb21QbGF5aW5nKQogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl1dXTsK
ICAgICBydW5VbnRpbFJlY2VpdmVzQXV0b3BsYXlFdmVudChrV0tBdXRvcGxheUV2ZW50VXNlck5l
dmVyUGxheWVkTWVkaWFQcmV2ZW50ZWRGcm9tUGxheWluZyk7CisgICAgQVNTRVJUX1RSVUUoKnJl
Y2VpdmVkQXV0b3BsYXlFdmVudEZsYWdzICYga1dLQXV0b3BsYXlFdmVudEZsYWdzSGFzQXVkaW8p
OwogfQogCiBURVNUKFdlYktpdDIsIFdlYnNpdGVQb2xpY2llc0F1dG9wbGF5UXVpcmtzKQo=
</data>
<flag name="review"
          id="329294"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>