<?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>202616</bug_id>
          
          <creation_ts>2019-10-05 22:24:11 -0700</creation_ts>
          <short_desc>[Picture-in-Picture Web API] Implement EnterPictureInPictureEvent support</short_desc>
          <delta_ts>2019-10-24 11:55:34 -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>Safari 12</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>182688</blocked>
    
    <blocked>202615</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>cadubentzen</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1577239</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-10-05 22:24:11 -0700</bug_when>
    <thetext>Implement EnterPictureInPictureEvent support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579872</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-14 15:54:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/56267916&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581747</commentid>
    <comment_count>2</comment_count>
      <attachid>381379</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-10-19 17:42:19 -0700</bug_when>
    <thetext>Created attachment 381379
Patch

With this patch, the enterpictureinpicture event is fired after the transition is completed and the picture-in-picture window size information is available. But, the leavepictureinpicture event is fired before the transition is completed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581766</commentid>
    <comment_count>3</comment_count>
      <attachid>381391</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-10-19 23:57:38 -0700</bug_when>
    <thetext>Created attachment 381391
Update the patch to fix build errors on iOS, GTK and WPE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581775</commentid>
    <comment_count>4</comment_count>
      <attachid>381394</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-10-20 10:00:56 -0700</bug_when>
    <thetext>Created attachment 381394
Try to fix build failures on GTK and WPE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582916</commentid>
    <comment_count>5</comment_count>
      <attachid>381706</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-10-23 11:33:57 -0700</bug_when>
    <thetext>Created attachment 381706
Patch

Update the patch to fix API test failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583076</commentid>
    <comment_count>6</comment_count>
      <attachid>381706</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-10-23 15:18:42 -0700</bug_when>
    <thetext>Comment on attachment 381706
Patch

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

&gt; Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:153
&gt; +        EnterPictureInPictureEvent::Init init;
&gt; +        init.bubbles = true;
&gt; +        init.pictureInPictureWindow = PictureInPictureWindow::create(m_videoElement.document(), windowSize.width(), windowSize.height());

Nit: I think &quot;initializer&quot; would be slightly better variable name.

&gt; Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:168
&gt; +        auto leavePictureInPictureEvent = Event::create(eventNames().leavepictureinpictureEvent, Event::CanBubble::Yes, Event::IsCancelable::No);
&gt; +        m_videoElement.scheduleEvent(WTFMove(leavePictureInPictureEvent));

Nit: this could be one line.

&gt; Source/WebCore/html/HTMLVideoElement.cpp:537
&gt; +        if (m_waitingForPictureInPictureWindowFrame) {
&gt; +            m_waitingForPictureInPictureWindowFrame = false;
&gt; +            if (m_pictureInPictureObserver)
&gt; +                m_pictureInPictureObserver-&gt;didEnterPictureInPicture(IntSize(frame.size()));
&gt; +        } else {
&gt; +            if (m_pictureInPictureObserver)
&gt; +                m_pictureInPictureObserver-&gt;pictureInPictureWindowResized(IntSize(frame.size()));
&gt; +        }

Nit: WebKit style guidelines prefer early return when possible, and I think that would make the slightly easier to read:

if (toPresentationMode(fullscreenMode()) != VideoPresentationMode::PictureInPicture)
    return;

if (m_waitingForPictureInPictureWindowFrame) {
    m_waitingForPictureInPictureWindowFrame = false;
     if (m_pictureInPictureObserver)
         m_pictureInPictureObserver-&gt;didEnterPictureInPicture(IntSize(frame.size()));

    return;
}

if (m_pictureInPictureObserver)
    m_pictureInPictureObserver-&gt;pictureInPictureWindowResized(IntSize(frame.size()));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583111</commentid>
    <comment_count>7</comment_count>
      <attachid>381706</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-10-23 15:48:16 -0700</bug_when>
    <thetext>Comment on attachment 381706
Patch

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

&gt;&gt; Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:153
&gt;&gt; +        init.pictureInPictureWindow = PictureInPictureWindow::create(m_videoElement.document(), windowSize.width(), windowSize.height());
&gt; 
&gt; Nit: I think &quot;initializer&quot; would be slightly better variable name.

Agree.

&gt;&gt; Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:168
&gt;&gt; +        m_videoElement.scheduleEvent(WTFMove(leavePictureInPictureEvent));
&gt; 
&gt; Nit: this could be one line.

Right, and the same for the enterPictureInPictureEvent.

&gt;&gt; Source/WebCore/html/HTMLVideoElement.cpp:537
&gt;&gt; +        }
&gt; 
&gt; Nit: WebKit style guidelines prefer early return when possible, and I think that would make the slightly easier to read:
&gt; 
&gt; if (toPresentationMode(fullscreenMode()) != VideoPresentationMode::PictureInPicture)
&gt;     return;
&gt; 
&gt; if (m_waitingForPictureInPictureWindowFrame) {
&gt;     m_waitingForPictureInPictureWindowFrame = false;
&gt;      if (m_pictureInPictureObserver)
&gt;          m_pictureInPictureObserver-&gt;didEnterPictureInPicture(IntSize(frame.size()));
&gt; 
&gt;     return;
&gt; }
&gt; 
&gt; if (m_pictureInPictureObserver)
&gt;     m_pictureInPictureObserver-&gt;pictureInPictureWindowResized(IntSize(frame.size()));

Agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583112</commentid>
    <comment_count>8</comment_count>
      <attachid>381746</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-10-23 15:49:14 -0700</bug_when>
    <thetext>Created attachment 381746
Patch

Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583244</commentid>
    <comment_count>9</comment_count>
      <attachid>381746</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-23 23:34:14 -0700</bug_when>
    <thetext>Comment on attachment 381746
Patch

Clearing flags on attachment: 381746

Committed r251530: &lt;https://trac.webkit.org/changeset/251530&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381379</attachid>
            <date>2019-10-19 17:42:19 -0700</date>
            <delta_ts>2019-10-19 23:57:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>202616.patch</filename>
            <type>text/plain</type>
            <size>15264</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1YmFiMmUwYTk0My4uY2IxMjZmZGE4OWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0xMC0xOCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtQaWN0dXJlLWluLVBpY3R1cmUgV2ViIEFQSV0gSW1wbGVtZW50IEVudGVyUGlj
dHVyZUluUGljdHVyZUV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDI2MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnQgdGhlIHN1cHBvcnQgZm9yIGVudGVycGljdHVyZWlucGljdHVy
ZSBhbmQgbGVhdmVwaWN0dXJlaW5waWN0dXJlIGV2ZW50cy4KKyAgICAgICAgLSBBZGQgYSBwdWJs
aWMgbWV0aG9kIHNjaGR1bGVFdmVudCgpIHRvIEhUTUxNZWRpYUVsZW1lbnQgaW4gb3JkZXIgdG8g
ZmlyZSBlbnRlcnBpY3R1cmVpbnBpY3R1cmUKKyAgICAgICAgZXZlbnQgd2hpY2ggaW5jbHVkZXMg
cHJvcGVydGllcy4KKyAgICAgICAgLSBJbiBvcmRlciB0byBub3RpZnkgdGhlIG9ic2VydmVyIChI
VE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZSkgYWZ0ZXIgZW50ZXJpbmcgcGljdHVyZS1p
bi1waWN0dXJlCisgICAgICAgIHRyYW5zaXRpb24gaXMgY29tcGxldGVkIGFuZCB0aGUgcGljdHVy
ZS1pbi1waWN0dXJlIHdpbmRvdyBzaXplIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSwKKyAgICAg
ICAgd2UgaGF2ZSB0byBjaGFuZ2Ugc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoKSB0byB2aXJ0dWFs
IGluIEhUTUxNZWRpYUVsZW1lbnQgYW5kIGltcGxlbWVudCBpdCBpbgorICAgICAgICBIVE1MVmlk
ZW9FbGVtZW50IHRvIHRyYWNrIHRoZSB0cmFuc2l0aW9uIHN0YXRlLgorICAgICAgICAtIFRoZSBQ
aWN0dXJlSW5QaWN0dXJlV2luZG93IGRvZXMgbm90IG5lZWQgdG8gYmEgYW4gQWN0aXZlRE9NT2Jq
ZWN0LgorCisgICAgICAgIFdpdGggbWFudWFsIHRlc3RzLCB0aGUgaW1wbGVtZW50YXRpb24gcGFz
c2VzIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGljdHVyZS1p
bi1waWN0dXJlL2VudGVyLXBpY3R1cmUtaW4tcGljdHVyZS5odG1sCisgICAgICAgIGFuZCBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BpY3R1cmUtaW4tcGljdHVy
ZS9sZWF2ZS1waWN0dXJlLWluLXBpY3R1cmUuaHRtbC4KKworICAgICAgICAqIE1vZHVsZXMvcGlj
dHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6ZGlkRW50ZXJQ
aWN0dXJlSW5QaWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnRQaWN0
dXJlSW5QaWN0dXJlOjpkaWRFeGl0UGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cGljdHVyZUluUGljdHVyZVdpbmRv
d1Jlc2l6ZWQpOgorICAgICAgICAqIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9F
bGVtZW50UGljdHVyZUluUGljdHVyZS5oOgorICAgICAgICAqIE1vZHVsZXMvcGljdHVyZWlucGlj
dHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBpY3R1
cmVJblBpY3R1cmVXaW5kb3c6OlBpY3R1cmVJblBpY3R1cmVXaW5kb3cpOgorICAgICAgICAoV2Vi
Q29yZTo6UGljdHVyZUluUGljdHVyZVdpbmRvdzo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQaWN0dXJlSW5QaWN0dXJlV2luZG93OjpldmVu
dFRhcmdldEludGVyZmFjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQaWN0
dXJlSW5QaWN0dXJlV2luZG93OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdp
bmRvdy5oOgorICAgICAgICAqIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0
dXJlV2luZG93LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVFdmVudCk6CisgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OmZ1bGxzY3JlZW5N
b2RlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRCZWNv
bWVGdWxsc2NyZWVuRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50
OjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZSk6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVt
ZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmg6CisK
IDIwMTktMTAtMTcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIHRl
eEltYWdlMkQgZm9yIGEgaGFsZi1mbG9hdCB0ZXh0dXJlIG9ubHkgYWNjZXB0cyBudWxsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVv
RWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0
dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAppbmRleCBk
Zjk2MGIyOTM3OS4uNmQwMjFjNGQwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0Vs
ZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcApAQCAtMTM1LDEwICsxMzUsMTYgQEAgdm9pZCBIVE1M
VmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6ZXhpdFBpY3R1cmVJblBpY3R1cmUoUmVmPERl
ZmVycmVkUHJvbWlzZT4KICAgICBtX3ZpZGVvRWxlbWVudC53ZWJraXRTZXRQcmVzZW50YXRpb25N
b2RlKEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6SW5saW5lKTsKIH0K
IAotdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6ZGlkRW50ZXJQaWN0dXJl
SW5QaWN0dXJlKCkKK3ZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OmRpZEVu
dGVyUGljdHVyZUluUGljdHVyZShJbnRTaXplIHdpbmRvd1NpemUpCiB7CiAgICAgbV92aWRlb0Vs
ZW1lbnQuZG9jdW1lbnQoKS5zZXRQaWN0dXJlSW5QaWN0dXJlRWxlbWVudCgmbV92aWRlb0VsZW1l
bnQpOwogICAgIGlmIChtX2VudGVyUGljdHVyZUluUGljdHVyZVByb21pc2UpIHsKKyAgICAgICAg
RW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQ6OkluaXQgaW5pdDsKKyAgICAgICAgaW5pdC5idWJi
bGVzID0gdHJ1ZTsKKyAgICAgICAgaW5pdC5waWN0dXJlSW5QaWN0dXJlV2luZG93ID0gUGljdHVy
ZUluUGljdHVyZVdpbmRvdzo6Y3JlYXRlKG1fdmlkZW9FbGVtZW50LmRvY3VtZW50KCksIHdpbmRv
d1NpemUud2lkdGgoKSwgd2luZG93U2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIGF1dG8gZW50ZXJQ
aWN0dXJlSW5QaWN0dXJlRXZlbnQgPSBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5lbnRlcnBpY3R1cmVpbnBpY3R1cmVFdmVudCwgV1RGTW92ZShpbml0KSk7
CisgICAgICAgIG1fdmlkZW9FbGVtZW50LnNjaGVkdWxlRXZlbnQoV1RGTW92ZShlbnRlclBpY3R1
cmVJblBpY3R1cmVFdmVudCkpOworCiAgICAgICAgIG1fZW50ZXJQaWN0dXJlSW5QaWN0dXJlUHJv
bWlzZS0+cmVzb2x2ZSgpOwogICAgICAgICBtX2VudGVyUGljdHVyZUluUGljdHVyZVByb21pc2Ug
PSBudWxscHRyOwogICAgIH0KQEAgLTE0OCwxMSArMTU0LDE4IEBAIHZvaWQgSFRNTFZpZGVvRWxl
bWVudFBpY3R1cmVJblBpY3R1cmU6OmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCkKIHsKICAgICBt
X3ZpZGVvRWxlbWVudC5kb2N1bWVudCgpLnNldFBpY3R1cmVJblBpY3R1cmVFbGVtZW50KG51bGxw
dHIpOwogICAgIGlmIChtX2V4aXRQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZSkgeworICAgICAgICBh
dXRvIGxlYXZlUGljdHVyZUluUGljdHVyZUV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkubGVhdmVwaWN0dXJlaW5waWN0dXJlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6OlllcywgRXZl
bnQ6OklzQ2FuY2VsYWJsZTo6Tm8pOworICAgICAgICBtX3ZpZGVvRWxlbWVudC5zY2hlZHVsZUV2
ZW50KFdURk1vdmUobGVhdmVQaWN0dXJlSW5QaWN0dXJlRXZlbnQpKTsKKwogICAgICAgICBtX2V4
aXRQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZS0+cmVzb2x2ZSgpOwogICAgICAgICBtX2V4aXRQaWN0
dXJlSW5QaWN0dXJlUHJvbWlzZSA9IG51bGxwdHI7CiAgICAgfQogfQogCit2b2lkIEhUTUxWaWRl
b0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpwaWN0dXJlSW5QaWN0dXJlV2luZG93UmVzaXplZChJ
bnRTaXplKQoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1l
bnRQaWN0dXJlSW5QaWN0dXJlLmgKaW5kZXggNTMxMWMwMmZjNjguLjFlNjUzODQ1Y2MzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVv
RWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bp
Y3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaApAQCAtNTUs
OCArNTUsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGV4aXRQaWN0dXJlSW5QaWN0dXJlKFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYpOwogCi0gICAgdm9pZCBkaWRFbnRlclBpY3R1cmVJblBpY3R1cmUo
KTsKKyAgICB2b2lkIGRpZEVudGVyUGljdHVyZUluUGljdHVyZShJbnRTaXplKTsKICAgICB2b2lk
IGRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7CisgICAgdm9pZCBwaWN0dXJlSW5QaWN0dXJlV2lu
ZG93UmVzaXplZChJbnRTaXplKTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciog
c3VwcGxlbWVudE5hbWUoKSB7IHJldHVybiAiSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1
cmUiOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1
cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bp
Y3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAKaW5kZXggYTAwMGYxNzM0
ZWQuLjVkZjJjMTg3OWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1
cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuY3BwCkBA
IC00MSw3ICs0MSw3IEBAIFJlZjxQaWN0dXJlSW5QaWN0dXJlV2luZG93PiBQaWN0dXJlSW5QaWN0
dXJlV2luZG93OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4CiB9CiAKIFBpY3R1cmVJblBp
Y3R1cmVXaW5kb3c6OlBpY3R1cmVJblBpY3R1cmVXaW5kb3coU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQotICAgIDog
QWN0aXZlRE9NT2JqZWN0KCZzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgIDogbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCiAgICAgLCBtX3dpZHRoKHdp
ZHRoKQogICAgICwgbV9oZWlnaHQoaGVpZ2h0KQogewpAQCAtNDksMjEgKzQ5LDYgQEAgUGljdHVy
ZUluUGljdHVyZVdpbmRvdzo6UGljdHVyZUluUGljdHVyZVdpbmRvdyhTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBzY3JpcHRFeGUKIAogUGljdHVyZUluUGljdHVyZVdpbmRvdzo6flBpY3R1cmVJblBp
Y3R1cmVXaW5kb3coKSA9IGRlZmF1bHQ7CiAKLWNvbnN0IGNoYXIqIFBpY3R1cmVJblBpY3R1cmVX
aW5kb3c6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAotewotICAgIHJldHVybiAiUGljdHVy
ZUluUGljdHVyZVdpbmRvdyI7Ci19Ci0KLUV2ZW50VGFyZ2V0SW50ZXJmYWNlIFBpY3R1cmVJblBp
Y3R1cmVXaW5kb3c6OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
UGljdHVyZUluUGljdHVyZVdpbmRvd0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsKLX0KLQotU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogUGljdHVyZUluUGljdHVyZVdpbmRvdzo6c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVy
ZVdpbmRvdy5oCmluZGV4IDIzMWJmNTNkMGJmLi40MmZhZTMwZTBiMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5k
b3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVy
ZUluUGljdHVyZVdpbmRvdy5oCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpZiBFTkFCTEUoUElDVFVS
RV9JTl9QSUNUVVJFX0FQSSkKIAotI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1
ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApAQCAtMzYs
NyArMzUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBpY3R1cmVJblBpY3R1cmVX
aW5kb3cgZmluYWwKICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPFBpY3R1cmVJblBpY3R1cmVXaW5k
b3c+Ci0gICAgLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0CiAgICAgLCBwdWJsaWMgRXZlbnRUYXJn
ZXRXaXRoSW5saW5lRGF0YSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChQaWN0dXJlSW5Q
aWN0dXJlV2luZG93KTsKIHB1YmxpYzoKQEAgLTQ2LDkgKzQ0LDYgQEAgcHVibGljOgogICAgIGlu
dCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KICAgICBpbnQgaGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIGNv
bnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKLQogICAgIHVzaW5n
IFJlZkNvdW50ZWQ8UGljdHVyZUluUGljdHVyZVdpbmRvdz46OnJlZjsKICAgICB1c2luZyBSZWZD
b3VudGVkPFBpY3R1cmVJblBpY3R1cmVXaW5kb3c+OjpkZXJlZjsKIApAQCAtNTgsOSArNTMsMTAg
QEAgcHJpdmF0ZToKICAgICAvLyBFdmVudFRhcmdldAogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQo
KSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBk
ZXJlZigpOyB9Ci0gICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2Uo
KSBjb25zdDsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3Q7CisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZh
Y2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQaWN0dXJlSW5QaWN0dXJlV2luZG93RXZlbnRU
YXJnZXRJbnRlcmZhY2VUeXBlOyB9OworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAmbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0OyB9OwogCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0OwogICAgIGludCBtX3dpZHRoOwogICAgIGludCBtX2hlaWdodDsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGlj
dHVyZUluUGljdHVyZVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVp
bnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5pZGwKaW5kZXggM2UwYjVkMmEyZTMuLmM2
NjJlYjk4ZTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBp
Y3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaWRsCkBAIC0yNSw3
ICsyNSw2IEBACiAgKi8KIAogWwotICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25kaXRpb25h
bD1QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJLAogICAgIEVuYWJsZWRCeVNldHRpbmc9UGljdHVyZUlu
UGljdHVyZUFQSSwKICAgICBFeHBvc2VkPVdpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKaW5kZXggZmRlY2I4N2VjY2UuLjhhNjgyNDA5NmVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTEwMjQsNiArMTAyNCwxMSBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZl
bnROYW1lKQogICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVu
dCkpOwogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQoUmVmPEV2ZW50
PiYmIGV2ZW50KQoreworICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92
ZShldmVudCkpOworfQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlUmVzb2x2ZVBl
bmRpbmdQbGF5UHJvbWlzZXMoKQogewogICAgIG1fcHJvbWlzZVRhc2tRdWV1ZS5lbnF1ZXVlVGFz
ayhbdGhpcywgcGVuZGluZ1BsYXlQcm9taXNlcyA9IFdURk1vdmUobV9wZW5kaW5nUGxheVByb21p
c2VzKV0gKCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmlu
ZGV4IGY0ODJkMjFiNGU0Li4xZjBjNWM3ZGExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKQEAgLTE4NSw3ICsxODUsNyBAQCBwdWJsaWM6CiAjaWZkZWYgX19PQkpDX18K
ICAgICBQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllcigpIGNvbnN0IHsgcmV0dXJu
IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCk7IH0KICNlbmRpZgotICAgIHZvaWQgc2V0Vmlk
ZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9G
dWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KTsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdy
YXZpdHkoTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KTsKICAgICBNZWRpYVBsYXllckVu
dW1zOjpWaWRlb0dyYXZpdHkgdmlkZW9GdWxsc2NyZWVuR3Jhdml0eSgpIGNvbnN0IHsgcmV0dXJu
IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eTsgfQogI2VuZGlmCkBAIC01NzYsNiArNTc2LDEwIEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEJlY29tZUZ1bGxzY3JlZW5FbGVt
ZW50KCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aWxsRXhpdEZ1bGxzY3Jl
ZW4oKTsKIAorI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQorICAgIHZvaWQgc2No
ZWR1bGVFdmVudChSZWY8RXZlbnQ+JiYpOworI2VuZGlmCisKICAgICBlbnVtIGNsYXNzIEF1dG9w
bGF5RXZlbnRQbGF5YmFja1N0YXRlIHsgTm9uZSwgUHJldmVudGVkQXV0b3BsYXksIFN0YXJ0ZWRX
aXRoVXNlckdlc3R1cmUsIFN0YXJ0ZWRXaXRob3V0VXNlckdlc3R1cmUgfTsKIAogcHJvdGVjdGVk
OgpAQCAtNjEzLDcgKzYxNyw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHVwZGF0ZU1lZGlhQ29u
dHJvbHNBZnRlclByZXNlbnRhdGlvbk1vZGVDaGFuZ2UoKTsKICNlbmRpZgogCi0gICAgdm9pZCBz
Y2hlZHVsZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSk7CisgICAgdm9pZCBzY2hl
ZHVsZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0
ZU1lZGlhUGxheWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcApp
bmRleCBkOWMzMzZjMWFiMC4uZGRkOWRhOTgwZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VmlkZW9FbGVtZW50LmNwcApAQCAtNDkyLDkgKzQ5Miw3IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVu
dDo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKICAgICAg
ICAgICAgIEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZSB0YXJnZXRWaWRl
b1ByZXNlbnRhdGlvbk1vZGUgPSB0b1ByZXNlbnRhdGlvbk1vZGUobW9kZSk7CiAgICAgICAgICAg
ICBIVE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGUgc291cmNlVmlkZW9QcmVz
ZW50YXRpb25Nb2RlID0gdG9QcmVzZW50YXRpb25Nb2RlKGZ1bGxzY3JlZW5Nb2RlKCkpOwogCi0g
ICAgICAgICAgICBpZiAodGFyZ2V0VmlkZW9QcmVzZW50YXRpb25Nb2RlID09IEhUTUxWaWRlb0Vs
ZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSAmJiBzb3VyY2VW
aWRlb1ByZXNlbnRhdGlvbk1vZGUgIT0gSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRp
b25Nb2RlOjpQaWN0dXJlSW5QaWN0dXJlKQotICAgICAgICAgICAgICAgIG1fcGljdHVyZUluUGlj
dHVyZU9ic2VydmVyLT5kaWRFbnRlclBpY3R1cmVJblBpY3R1cmUoKTsKLSAgICAgICAgICAgIGVs
c2UgaWYgKHRhcmdldFZpZGVvUHJlc2VudGF0aW9uTW9kZSAhPSBIVE1MVmlkZW9FbGVtZW50OjpW
aWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUgJiYgc291cmNlVmlkZW9QcmVz
ZW50YXRpb25Nb2RlID09IEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6
UGljdHVyZUluUGljdHVyZSkKKyAgICAgICAgICAgIGlmICh0YXJnZXRWaWRlb1ByZXNlbnRhdGlv
bk1vZGUgIT0gSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlOjpQaWN0dXJl
SW5QaWN0dXJlICYmIHNvdXJjZVZpZGVvUHJlc2VudGF0aW9uTW9kZSA9PSBIVE1MVmlkZW9FbGVt
ZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUpCiAgICAgICAgICAg
ICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJl
KCk7CiAgICAgICAgIH0KICNlbmRpZgpAQCAtNTA3LDE0ICs1MDUsMzYgQEAgdm9pZCBIVE1MVmlk
ZW9FbGVtZW50OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQoVmlkZW9GdWxsc2NyZWVuTW9kZSBtb2Rl
KQogfQogCiAjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCit2b2lkIEhUTUxWaWRl
b0VsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkKK3sKKyAgICBtX3dhaXRpbmdG
b3JQaWN0dXJlSW5QaWN0dXJlV2luZG93RnJhbWUgPSB0cnVlOworICAgIEhUTUxNZWRpYUVsZW1l
bnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCk7Cit9CisKIHZvaWQgSFRNTFZpZGVvRWxl
bWVudDo6c2V0UGljdHVyZUluUGljdHVyZU9ic2VydmVyKFBpY3R1cmVJblBpY3R1cmVPYnNlcnZl
ciogb2JzZXJ2ZXIpCiB7CiAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIgPSBvYnNlcnZl
cjsKIH0KKwogI2VuZGlmCiAKICNlbmRpZgogCit2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFZp
ZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCBmcmFtZSkKK3sKKyAgICBIVE1MTWVkaWFFbGVt
ZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShmcmFtZSk7CisKKyNpZiBFTkFCTEUoUElDVFVS
RV9JTl9QSUNUVVJFX0FQSSkKKyAgICBpZiAodG9QcmVzZW50YXRpb25Nb2RlKGZ1bGxzY3JlZW5N
b2RlKCkpID09IFZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSkgeworICAg
ICAgICBpZiAobV93YWl0aW5nRm9yUGljdHVyZUluUGljdHVyZVdpbmRvd0ZyYW1lKSB7CisgICAg
ICAgICAgICBtX3dhaXRpbmdGb3JQaWN0dXJlSW5QaWN0dXJlV2luZG93RnJhbWUgPSBmYWxzZTsK
KyAgICAgICAgICAgIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyLT5kaWRFbnRlclBpY3R1cmVJ
blBpY3R1cmUoSW50U2l6ZShmcmFtZS5zaXplKCkpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICBtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlci0+cGljdHVyZUluUGljdHVyZVdpbmRvd1Jl
c2l6ZWQoSW50U2l6ZShmcmFtZS5zaXplKCkpKTsKKyAgICB9CisjZW5kaWYKK30KKwogI2lmIFBM
QVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogdm9pZCBIVE1M
VmlkZW9FbGVtZW50OjpleGl0VG9GdWxsc2NyZWVuTW9kZVdpdGhvdXRBbmltYXRpb25JZlBvc3Np
YmxlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBmcm9tTW9kZSwg
SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRvTW9kZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5kZXggODNlMDk1NDRiZjYuLjAyZWY3
NTA0YmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApAQCAtOTAsMTAg
KzkwLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChWaWRlb0Z1
bGxzY3JlZW5Nb2RlKSBmaW5hbDsKIAogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJ
KQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKSBm
aW5hbDsKICAgICB2b2lkIHNldFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlcihQaWN0dXJlSW5QaWN0
dXJlT2JzZXJ2ZXIqKTsKICNlbmRpZgogI2VuZGlmCiAKKyAgICB2b2lkIHNldFZpZGVvRnVsbHNj
cmVlbkZyYW1lKEZsb2F0UmVjdCkgZmluYWw7CisKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICB2b2lkIGV4aXRUb0Z1bGxzY3JlZW5Nb2Rl
V2l0aG91dEFuaW1hdGlvbklmUG9zc2libGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlIGZyb21Nb2RlLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGUgdG9Nb2RlKTsKICNlbmRpZgpAQCAtMTMxLDYgKzEzNCw3IEBAIHByaXZhdGU6CiAg
ICAgdW5zaWduZWQgbV9sYXN0UmVwb3J0ZWRWaWRlb0hlaWdodCB7IDAgfTsKIAogI2lmIEVOQUJM
RShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQorICAgIGJvb2wgbV93YWl0aW5nRm9yUGljdHVyZUlu
UGljdHVyZVdpbmRvd0ZyYW1lIHsgZmFsc2UgfTsKICAgICBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2
ZXIqIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyIHsgbnVsbHB0ciB9OwogI2VuZGlmCiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGljdHVyZUluUGljdHVyZU9ic2Vy
dmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIu
aAppbmRleCBhZTQwNjcwNTZjZi4uYTAzYzhlMjQwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oCkBAIC0zMiw4ICszMiw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlciA6IHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXI+IHsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5QaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIoKSB7IH07Ci0gICAgdmlydHVh
bCB2b2lkIGRpZEVudGVyUGljdHVyZUluUGljdHVyZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKEludFNpemUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpY3R1cmVJ
blBpY3R1cmVXaW5kb3dSZXNpemVkKEludFNpemUpID0gMDsKIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381391</attachid>
            <date>2019-10-19 23:57:38 -0700</date>
            <delta_ts>2019-10-20 10:00:56 -0700</delta_ts>
            <desc>Update the patch to fix build errors on iOS, GTK and WPE</desc>
            <filename>202616.patch</filename>
            <type>text/plain</type>
            <size>15308</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1YmFiMmUwYTk0My4uY2IxMjZmZGE4OWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0xMC0xOCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtQaWN0dXJlLWluLVBpY3R1cmUgV2ViIEFQSV0gSW1wbGVtZW50IEVudGVyUGlj
dHVyZUluUGljdHVyZUV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDI2MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnQgdGhlIHN1cHBvcnQgZm9yIGVudGVycGljdHVyZWlucGljdHVy
ZSBhbmQgbGVhdmVwaWN0dXJlaW5waWN0dXJlIGV2ZW50cy4KKyAgICAgICAgLSBBZGQgYSBwdWJs
aWMgbWV0aG9kIHNjaGR1bGVFdmVudCgpIHRvIEhUTUxNZWRpYUVsZW1lbnQgaW4gb3JkZXIgdG8g
ZmlyZSBlbnRlcnBpY3R1cmVpbnBpY3R1cmUKKyAgICAgICAgZXZlbnQgd2hpY2ggaW5jbHVkZXMg
cHJvcGVydGllcy4KKyAgICAgICAgLSBJbiBvcmRlciB0byBub3RpZnkgdGhlIG9ic2VydmVyIChI
VE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZSkgYWZ0ZXIgZW50ZXJpbmcgcGljdHVyZS1p
bi1waWN0dXJlCisgICAgICAgIHRyYW5zaXRpb24gaXMgY29tcGxldGVkIGFuZCB0aGUgcGljdHVy
ZS1pbi1waWN0dXJlIHdpbmRvdyBzaXplIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSwKKyAgICAg
ICAgd2UgaGF2ZSB0byBjaGFuZ2Ugc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoKSB0byB2aXJ0dWFs
IGluIEhUTUxNZWRpYUVsZW1lbnQgYW5kIGltcGxlbWVudCBpdCBpbgorICAgICAgICBIVE1MVmlk
ZW9FbGVtZW50IHRvIHRyYWNrIHRoZSB0cmFuc2l0aW9uIHN0YXRlLgorICAgICAgICAtIFRoZSBQ
aWN0dXJlSW5QaWN0dXJlV2luZG93IGRvZXMgbm90IG5lZWQgdG8gYmEgYW4gQWN0aXZlRE9NT2Jq
ZWN0LgorCisgICAgICAgIFdpdGggbWFudWFsIHRlc3RzLCB0aGUgaW1wbGVtZW50YXRpb24gcGFz
c2VzIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGljdHVyZS1p
bi1waWN0dXJlL2VudGVyLXBpY3R1cmUtaW4tcGljdHVyZS5odG1sCisgICAgICAgIGFuZCBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BpY3R1cmUtaW4tcGljdHVy
ZS9sZWF2ZS1waWN0dXJlLWluLXBpY3R1cmUuaHRtbC4KKworICAgICAgICAqIE1vZHVsZXMvcGlj
dHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6ZGlkRW50ZXJQ
aWN0dXJlSW5QaWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnRQaWN0
dXJlSW5QaWN0dXJlOjpkaWRFeGl0UGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cGljdHVyZUluUGljdHVyZVdpbmRv
d1Jlc2l6ZWQpOgorICAgICAgICAqIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9F
bGVtZW50UGljdHVyZUluUGljdHVyZS5oOgorICAgICAgICAqIE1vZHVsZXMvcGljdHVyZWlucGlj
dHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBpY3R1
cmVJblBpY3R1cmVXaW5kb3c6OlBpY3R1cmVJblBpY3R1cmVXaW5kb3cpOgorICAgICAgICAoV2Vi
Q29yZTo6UGljdHVyZUluUGljdHVyZVdpbmRvdzo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQaWN0dXJlSW5QaWN0dXJlV2luZG93OjpldmVu
dFRhcmdldEludGVyZmFjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQaWN0
dXJlSW5QaWN0dXJlV2luZG93OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdp
bmRvdy5oOgorICAgICAgICAqIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0
dXJlV2luZG93LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVFdmVudCk6CisgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OmZ1bGxzY3JlZW5N
b2RlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRCZWNv
bWVGdWxsc2NyZWVuRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50
OjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZSk6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVt
ZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmg6CisK
IDIwMTktMTAtMTcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIHRl
eEltYWdlMkQgZm9yIGEgaGFsZi1mbG9hdCB0ZXh0dXJlIG9ubHkgYWNjZXB0cyBudWxsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVv
RWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0
dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAppbmRleCBk
Zjk2MGIyOTM3OS4uNmQwMjFjNGQwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0Vs
ZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcApAQCAtMTM1LDEwICsxMzUsMTYgQEAgdm9pZCBIVE1M
VmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6ZXhpdFBpY3R1cmVJblBpY3R1cmUoUmVmPERl
ZmVycmVkUHJvbWlzZT4KICAgICBtX3ZpZGVvRWxlbWVudC53ZWJraXRTZXRQcmVzZW50YXRpb25N
b2RlKEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6SW5saW5lKTsKIH0K
IAotdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6ZGlkRW50ZXJQaWN0dXJl
SW5QaWN0dXJlKCkKK3ZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OmRpZEVu
dGVyUGljdHVyZUluUGljdHVyZShJbnRTaXplIHdpbmRvd1NpemUpCiB7CiAgICAgbV92aWRlb0Vs
ZW1lbnQuZG9jdW1lbnQoKS5zZXRQaWN0dXJlSW5QaWN0dXJlRWxlbWVudCgmbV92aWRlb0VsZW1l
bnQpOwogICAgIGlmIChtX2VudGVyUGljdHVyZUluUGljdHVyZVByb21pc2UpIHsKKyAgICAgICAg
RW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQ6OkluaXQgaW5pdDsKKyAgICAgICAgaW5pdC5idWJi
bGVzID0gdHJ1ZTsKKyAgICAgICAgaW5pdC5waWN0dXJlSW5QaWN0dXJlV2luZG93ID0gUGljdHVy
ZUluUGljdHVyZVdpbmRvdzo6Y3JlYXRlKG1fdmlkZW9FbGVtZW50LmRvY3VtZW50KCksIHdpbmRv
d1NpemUud2lkdGgoKSwgd2luZG93U2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIGF1dG8gZW50ZXJQ
aWN0dXJlSW5QaWN0dXJlRXZlbnQgPSBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5lbnRlcnBpY3R1cmVpbnBpY3R1cmVFdmVudCwgV1RGTW92ZShpbml0KSk7
CisgICAgICAgIG1fdmlkZW9FbGVtZW50LnNjaGVkdWxlRXZlbnQoV1RGTW92ZShlbnRlclBpY3R1
cmVJblBpY3R1cmVFdmVudCkpOworCiAgICAgICAgIG1fZW50ZXJQaWN0dXJlSW5QaWN0dXJlUHJv
bWlzZS0+cmVzb2x2ZSgpOwogICAgICAgICBtX2VudGVyUGljdHVyZUluUGljdHVyZVByb21pc2Ug
PSBudWxscHRyOwogICAgIH0KQEAgLTE0OCwxMSArMTU0LDE4IEBAIHZvaWQgSFRNTFZpZGVvRWxl
bWVudFBpY3R1cmVJblBpY3R1cmU6OmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCkKIHsKICAgICBt
X3ZpZGVvRWxlbWVudC5kb2N1bWVudCgpLnNldFBpY3R1cmVJblBpY3R1cmVFbGVtZW50KG51bGxw
dHIpOwogICAgIGlmIChtX2V4aXRQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZSkgeworICAgICAgICBh
dXRvIGxlYXZlUGljdHVyZUluUGljdHVyZUV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkubGVhdmVwaWN0dXJlaW5waWN0dXJlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6OlllcywgRXZl
bnQ6OklzQ2FuY2VsYWJsZTo6Tm8pOworICAgICAgICBtX3ZpZGVvRWxlbWVudC5zY2hlZHVsZUV2
ZW50KFdURk1vdmUobGVhdmVQaWN0dXJlSW5QaWN0dXJlRXZlbnQpKTsKKwogICAgICAgICBtX2V4
aXRQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZS0+cmVzb2x2ZSgpOwogICAgICAgICBtX2V4aXRQaWN0
dXJlSW5QaWN0dXJlUHJvbWlzZSA9IG51bGxwdHI7CiAgICAgfQogfQogCit2b2lkIEhUTUxWaWRl
b0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpwaWN0dXJlSW5QaWN0dXJlV2luZG93UmVzaXplZChJ
bnRTaXplKQoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1l
bnRQaWN0dXJlSW5QaWN0dXJlLmgKaW5kZXggNTMxMWMwMmZjNjguLjFlNjUzODQ1Y2MzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVv
RWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bp
Y3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaApAQCAtNTUs
OCArNTUsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGV4aXRQaWN0dXJlSW5QaWN0dXJlKFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYpOwogCi0gICAgdm9pZCBkaWRFbnRlclBpY3R1cmVJblBpY3R1cmUo
KTsKKyAgICB2b2lkIGRpZEVudGVyUGljdHVyZUluUGljdHVyZShJbnRTaXplKTsKICAgICB2b2lk
IGRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7CisgICAgdm9pZCBwaWN0dXJlSW5QaWN0dXJlV2lu
ZG93UmVzaXplZChJbnRTaXplKTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciog
c3VwcGxlbWVudE5hbWUoKSB7IHJldHVybiAiSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1
cmUiOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1
cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bp
Y3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAKaW5kZXggYTAwMGYxNzM0
ZWQuLjVkZjJjMTg3OWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1
cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuY3BwCkBA
IC00MSw3ICs0MSw3IEBAIFJlZjxQaWN0dXJlSW5QaWN0dXJlV2luZG93PiBQaWN0dXJlSW5QaWN0
dXJlV2luZG93OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4CiB9CiAKIFBpY3R1cmVJblBp
Y3R1cmVXaW5kb3c6OlBpY3R1cmVJblBpY3R1cmVXaW5kb3coU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQotICAgIDog
QWN0aXZlRE9NT2JqZWN0KCZzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgIDogbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCiAgICAgLCBtX3dpZHRoKHdp
ZHRoKQogICAgICwgbV9oZWlnaHQoaGVpZ2h0KQogewpAQCAtNDksMjEgKzQ5LDYgQEAgUGljdHVy
ZUluUGljdHVyZVdpbmRvdzo6UGljdHVyZUluUGljdHVyZVdpbmRvdyhTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBzY3JpcHRFeGUKIAogUGljdHVyZUluUGljdHVyZVdpbmRvdzo6flBpY3R1cmVJblBp
Y3R1cmVXaW5kb3coKSA9IGRlZmF1bHQ7CiAKLWNvbnN0IGNoYXIqIFBpY3R1cmVJblBpY3R1cmVX
aW5kb3c6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAotewotICAgIHJldHVybiAiUGljdHVy
ZUluUGljdHVyZVdpbmRvdyI7Ci19Ci0KLUV2ZW50VGFyZ2V0SW50ZXJmYWNlIFBpY3R1cmVJblBp
Y3R1cmVXaW5kb3c6OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
UGljdHVyZUluUGljdHVyZVdpbmRvd0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsKLX0KLQotU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogUGljdHVyZUluUGljdHVyZVdpbmRvdzo6c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVy
ZVdpbmRvdy5oCmluZGV4IDIzMWJmNTNkMGJmLi40MmZhZTMwZTBiMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5k
b3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVy
ZUluUGljdHVyZVdpbmRvdy5oCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpZiBFTkFCTEUoUElDVFVS
RV9JTl9QSUNUVVJFX0FQSSkKIAotI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1
ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApAQCAtMzYs
NyArMzUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBpY3R1cmVJblBpY3R1cmVX
aW5kb3cgZmluYWwKICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPFBpY3R1cmVJblBpY3R1cmVXaW5k
b3c+Ci0gICAgLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0CiAgICAgLCBwdWJsaWMgRXZlbnRUYXJn
ZXRXaXRoSW5saW5lRGF0YSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChQaWN0dXJlSW5Q
aWN0dXJlV2luZG93KTsKIHB1YmxpYzoKQEAgLTQ2LDkgKzQ0LDYgQEAgcHVibGljOgogICAgIGlu
dCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KICAgICBpbnQgaGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIGNv
bnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKLQogICAgIHVzaW5n
IFJlZkNvdW50ZWQ8UGljdHVyZUluUGljdHVyZVdpbmRvdz46OnJlZjsKICAgICB1c2luZyBSZWZD
b3VudGVkPFBpY3R1cmVJblBpY3R1cmVXaW5kb3c+OjpkZXJlZjsKIApAQCAtNTgsOSArNTMsMTAg
QEAgcHJpdmF0ZToKICAgICAvLyBFdmVudFRhcmdldAogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQo
KSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBk
ZXJlZigpOyB9Ci0gICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2Uo
KSBjb25zdDsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3Q7CisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZh
Y2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQaWN0dXJlSW5QaWN0dXJlV2luZG93RXZlbnRU
YXJnZXRJbnRlcmZhY2VUeXBlOyB9OworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAmbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0OyB9OwogCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0OwogICAgIGludCBtX3dpZHRoOwogICAgIGludCBtX2hlaWdodDsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGlj
dHVyZUluUGljdHVyZVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVp
bnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5pZGwKaW5kZXggM2UwYjVkMmEyZTMuLmM2
NjJlYjk4ZTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBp
Y3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaWRsCkBAIC0yNSw3
ICsyNSw2IEBACiAgKi8KIAogWwotICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25kaXRpb25h
bD1QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJLAogICAgIEVuYWJsZWRCeVNldHRpbmc9UGljdHVyZUlu
UGljdHVyZUFQSSwKICAgICBFeHBvc2VkPVdpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKaW5kZXggZmRlY2I4N2VjY2UuLmNjMDNmYmU1MTc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTEwMjQsNiArMTAyNCwxMyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZl
bnROYW1lKQogICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVu
dCkpOwogfQogCisjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCit2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQoUmVmPEV2ZW50PiYmIGV2ZW50KQoreworICAgIG1f
YXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVudCkpOworfQorI2VuZGlm
CisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVSZXNvbHZlUGVuZGluZ1BsYXlQcm9t
aXNlcygpCiB7CiAgICAgbV9wcm9taXNlVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBwZW5k
aW5nUGxheVByb21pc2VzID0gV1RGTW92ZShtX3BlbmRpbmdQbGF5UHJvbWlzZXMpXSAoKSBtdXRh
YmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggZjQ4MmQyMWI0
ZTQuLjFmMGM1YzdkYTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApA
QCAtMTg1LDcgKzE4NSw3IEBAIHB1YmxpYzoKICNpZmRlZiBfX09CSkNfXwogICAgIFBsYXRmb3Jt
TGF5ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVyKCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Z1bGxz
Y3JlZW5MYXllci5nZXQoKTsgfQogI2VuZGlmCi0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5G
cmFtZShGbG9hdFJlY3QpOworICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFt
ZShGbG9hdFJlY3QpOwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRpYVBs
YXllckVudW1zOjpWaWRlb0dyYXZpdHkpOwogICAgIE1lZGlhUGxheWVyRW51bXM6OlZpZGVvR3Jh
dml0eSB2aWRlb0Z1bGxzY3JlZW5HcmF2aXR5KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Z1bGxz
Y3JlZW5HcmF2aXR5OyB9CiAjZW5kaWYKQEAgLTU3Niw2ICs1NzYsMTAgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKSBvdmVycmlk
ZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigpOwogCisjaWYg
RU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCisgICAgdm9pZCBzY2hlZHVsZUV2ZW50KFJl
ZjxFdmVudD4mJik7CisjZW5kaWYKKwogICAgIGVudW0gY2xhc3MgQXV0b3BsYXlFdmVudFBsYXli
YWNrU3RhdGUgeyBOb25lLCBQcmV2ZW50ZWRBdXRvcGxheSwgU3RhcnRlZFdpdGhVc2VyR2VzdHVy
ZSwgU3RhcnRlZFdpdGhvdXRVc2VyR2VzdHVyZSB9OwogCiBwcm90ZWN0ZWQ6CkBAIC02MTMsNyAr
NjE3LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdXBkYXRlTWVkaWFDb250cm9sc0FmdGVyUHJl
c2VudGF0aW9uTW9kZUNoYW5nZSgpOwogI2VuZGlmCiAKLSAgICB2b2lkIHNjaGVkdWxlRXZlbnQo
Y29uc3QgQXRvbVN0cmluZyYgZXZlbnROYW1lKTsKKyAgICB2b2lkIHNjaGVkdWxlRXZlbnQoY29u
c3QgQXRvbVN0cmluZyYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlTWVkaWFQbGF5ZXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IGQ5YzMzNmMx
YWIwLi5kZGQ5ZGE5ODBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
Y3BwCkBAIC00OTIsOSArNDkyLDcgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpmdWxsc2NyZWVu
TW9kZUNoYW5nZWQoVmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogICAgICAgICAgICAgSFRNTFZp
ZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlIHRhcmdldFZpZGVvUHJlc2VudGF0aW9u
TW9kZSA9IHRvUHJlc2VudGF0aW9uTW9kZShtb2RlKTsKICAgICAgICAgICAgIEhUTUxWaWRlb0Vs
ZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZSBzb3VyY2VWaWRlb1ByZXNlbnRhdGlvbk1vZGUg
PSB0b1ByZXNlbnRhdGlvbk1vZGUoZnVsbHNjcmVlbk1vZGUoKSk7CiAKLSAgICAgICAgICAgIGlm
ICh0YXJnZXRWaWRlb1ByZXNlbnRhdGlvbk1vZGUgPT0gSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9Q
cmVzZW50YXRpb25Nb2RlOjpQaWN0dXJlSW5QaWN0dXJlICYmIHNvdXJjZVZpZGVvUHJlc2VudGF0
aW9uTW9kZSAhPSBIVE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1
cmVJblBpY3R1cmUpCi0gICAgICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIt
PmRpZEVudGVyUGljdHVyZUluUGljdHVyZSgpOwotICAgICAgICAgICAgZWxzZSBpZiAodGFyZ2V0
VmlkZW9QcmVzZW50YXRpb25Nb2RlICE9IEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0
aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSAmJiBzb3VyY2VWaWRlb1ByZXNlbnRhdGlvbk1vZGUg
PT0gSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlOjpQaWN0dXJlSW5QaWN0
dXJlKQorICAgICAgICAgICAgaWYgKHRhcmdldFZpZGVvUHJlc2VudGF0aW9uTW9kZSAhPSBIVE1M
VmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUgJiYg
c291cmNlVmlkZW9QcmVzZW50YXRpb25Nb2RlID09IEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJl
c2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSkKICAgICAgICAgICAgICAgICBtX3BpY3R1
cmVJblBpY3R1cmVPYnNlcnZlci0+ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKTsKICAgICAgICAg
fQogI2VuZGlmCkBAIC01MDcsMTQgKzUwNSwzNiBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmZ1
bGxzY3JlZW5Nb2RlQ2hhbmdlZChWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCiB9CiAKICNpZiBF
TkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKK3ZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlk
QmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKQoreworICAgIG1fd2FpdGluZ0ZvclBpY3R1cmVJblBp
Y3R1cmVXaW5kb3dGcmFtZSA9IHRydWU7CisgICAgSFRNTE1lZGlhRWxlbWVudDo6ZGlkQmVjb21l
RnVsbHNjcmVlbkVsZW1lbnQoKTsKK30KKwogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQaWN0
dXJlSW5QaWN0dXJlT2JzZXJ2ZXIoUGljdHVyZUluUGljdHVyZU9ic2VydmVyKiBvYnNlcnZlcikK
IHsKICAgICBtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlciA9IG9ic2VydmVyOwogfQorCiAjZW5k
aWYKIAogI2VuZGlmCiAKK3ZvaWQgSFRNTFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVu
RnJhbWUoRmxvYXRSZWN0IGZyYW1lKQoreworICAgIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFZpZGVv
RnVsbHNjcmVlbkZyYW1lKGZyYW1lKTsKKworI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVf
QVBJKQorICAgIGlmICh0b1ByZXNlbnRhdGlvbk1vZGUoZnVsbHNjcmVlbk1vZGUoKSkgPT0gVmlk
ZW9QcmVzZW50YXRpb25Nb2RlOjpQaWN0dXJlSW5QaWN0dXJlKSB7CisgICAgICAgIGlmIChtX3dh
aXRpbmdGb3JQaWN0dXJlSW5QaWN0dXJlV2luZG93RnJhbWUpIHsKKyAgICAgICAgICAgIG1fd2Fp
dGluZ0ZvclBpY3R1cmVJblBpY3R1cmVXaW5kb3dGcmFtZSA9IGZhbHNlOworICAgICAgICAgICAg
bV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEVudGVyUGljdHVyZUluUGljdHVyZShJbnRT
aXplKGZyYW1lLnNpemUoKSkpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fcGljdHVy
ZUluUGljdHVyZU9ic2VydmVyLT5waWN0dXJlSW5QaWN0dXJlV2luZG93UmVzaXplZChJbnRTaXpl
KGZyYW1lLnNpemUoKSkpOworICAgIH0KKyNlbmRpZgorfQorCiAjaWYgUExBVEZPUk0oTUFDKSAm
JiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6
OmV4aXRUb0Z1bGxzY3JlZW5Nb2RlV2l0aG91dEFuaW1hdGlvbklmUG9zc2libGUoSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIGZyb21Nb2RlLCBIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdG9Nb2RlKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCA4M2UwOTU0NGJmNi4uMDJlZjc1MDRiZDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC05MCwxMCArOTAsMTMgQEAgcHVi
bGljOgogICAgIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFZpZGVvRnVsbHNjcmVlbk1vZGUp
IGZpbmFsOwogCiAjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpIGZpbmFsOwogICAgIHZv
aWQgc2V0UGljdHVyZUluUGljdHVyZU9ic2VydmVyKFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlciop
OwogI2VuZGlmCiAjZW5kaWYKIAorICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxv
YXRSZWN0KSBmaW5hbDsKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQogICAgIHZvaWQgZXhpdFRvRnVsbHNjcmVlbk1vZGVXaXRob3V0QW5pbWF0
aW9uSWZQb3NzaWJsZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUg
ZnJvbU1vZGUsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB0b01v
ZGUpOwogI2VuZGlmCkBAIC0xMzEsNiArMTM0LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBt
X2xhc3RSZXBvcnRlZFZpZGVvSGVpZ2h0IHsgMCB9OwogCiAjaWYgRU5BQkxFKFBJQ1RVUkVfSU5f
UElDVFVSRV9BUEkpCisgICAgYm9vbCBtX3dhaXRpbmdGb3JQaWN0dXJlSW5QaWN0dXJlV2luZG93
RnJhbWUgeyBmYWxzZSB9OwogICAgIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlciogbV9waWN0dXJl
SW5QaWN0dXJlT2JzZXJ2ZXIgeyBudWxscHRyIH07CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oCmluZGV4IGFlNDA2
NzA1NmNmLi5hMDNjOGUyNDBkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGljdHVyZUluUGljdHVyZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGljdHVyZUluUGljdHVyZU9ic2VydmVyLmgKQEAgLTMyLDggKzMyLDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgUGljdHVyZUluUGljdHVyZU9ic2VydmVyIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlcj4gewogcHVibGljOgogICAgIHZpcnR1YWwg
flBpY3R1cmVJblBpY3R1cmVPYnNlcnZlcigpIHsgfTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRW50
ZXJQaWN0dXJlSW5QaWN0dXJlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlclBpY3R1
cmVJblBpY3R1cmUoSW50U2l6ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0UGljdHVy
ZUluUGljdHVyZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGljdHVyZUluUGljdHVyZVdpbmRv
d1Jlc2l6ZWQoSW50U2l6ZSkgPSAwOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381394</attachid>
            <date>2019-10-20 10:00:56 -0700</date>
            <delta_ts>2019-10-23 11:33:55 -0700</delta_ts>
            <desc>Try to fix build failures on GTK and WPE.</desc>
            <filename>202616.patch</filename>
            <type>text/plain</type>
            <size>15336</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1YmFiMmUwYTk0My4uMjM5Mzc2MmQzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0xMC0xOCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtQaWN0dXJlLWluLVBpY3R1cmUgV2ViIEFQSV0gSW1wbGVtZW50IEVudGVyUGlj
dHVyZUluUGljdHVyZUV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDI2MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnQgdGhlIHN1cHBvcnQgZm9yIGVudGVycGljdHVyZWlucGljdHVy
ZSBhbmQgbGVhdmVwaWN0dXJlaW5waWN0dXJlIGV2ZW50cy4KKyAgICAgICAgLSBBZGQgYSBwdWJs
aWMgbWV0aG9kIHNjaGR1bGVFdmVudCgpIHRvIEhUTUxNZWRpYUVsZW1lbnQgaW4gb3JkZXIgdG8g
ZmlyZSBlbnRlcnBpY3R1cmVpbnBpY3R1cmUKKyAgICAgICAgZXZlbnQgd2hpY2ggaW5jbHVkZXMg
cHJvcGVydGllcy4KKyAgICAgICAgLSBJbiBvcmRlciB0byBub3RpZnkgdGhlIG9ic2VydmVyIChI
VE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZSkgYWZ0ZXIgZW50ZXJpbmcgcGljdHVyZS1p
bi1waWN0dXJlCisgICAgICAgIHRyYW5zaXRpb24gaXMgY29tcGxldGVkIGFuZCB0aGUgcGljdHVy
ZS1pbi1waWN0dXJlIHdpbmRvdyBzaXplIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSwKKyAgICAg
ICAgd2UgaGF2ZSB0byBjaGFuZ2Ugc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoKSB0byB2aXJ0dWFs
IGluIEhUTUxNZWRpYUVsZW1lbnQgYW5kIGltcGxlbWVudCBpdCBpbgorICAgICAgICBIVE1MVmlk
ZW9FbGVtZW50IHRvIHRyYWNrIHRoZSB0cmFuc2l0aW9uIHN0YXRlLgorICAgICAgICAtIFRoZSBQ
aWN0dXJlSW5QaWN0dXJlV2luZG93IGRvZXMgbm90IG5lZWQgdG8gYmEgYW4gQWN0aXZlRE9NT2Jq
ZWN0LCBzbyBpdCBpcyB1cGRhdGVkIGFjY29yZGluZ2x5LgorCisgICAgICAgIFdpdGggbWFudWFs
IHRlc3RzLCB0aGUgaW1wbGVtZW50YXRpb24gcGFzc2VzIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGljdHVyZS1pbi1waWN0dXJlL2VudGVyLXBpY3R1cmUtaW4t
cGljdHVyZS5odG1sCisgICAgICAgIGFuZCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BpY3R1cmUtaW4tcGljdHVyZS9sZWF2ZS1waWN0dXJlLWluLXBpY3R1cmUu
aHRtbC4KKworICAgICAgICAqIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVt
ZW50UGljdHVyZUluUGljdHVyZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVt
ZW50UGljdHVyZUluUGljdHVyZTo6ZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpkaWRFeGl0UGljdHVy
ZUluUGljdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50UGljdHVyZUlu
UGljdHVyZTo6cGljdHVyZUluUGljdHVyZVdpbmRvd1Jlc2l6ZWQpOgorICAgICAgICAqIE1vZHVs
ZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oOgor
ICAgICAgICAqIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBpY3R1cmVJblBpY3R1cmVXaW5kb3c6OlBpY3R1cmVJ
blBpY3R1cmVXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6UGljdHVyZUluUGljdHVyZVdpbmRv
dzo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpQaWN0dXJlSW5QaWN0dXJlV2luZG93OjpldmVudFRhcmdldEludGVyZmFjZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQaWN0dXJlSW5QaWN0dXJlV2luZG93OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3BpY3R1
cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5oOgorICAgICAgICAqIE1vZHVsZXMv
cGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmlkbDoKKyAgICAgICAgKiBo
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6c2NoZWR1bGVFdmVudCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lbnQ6OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZSk6
CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0v
UGljdHVyZUluUGljdHVyZU9ic2VydmVyLmg6CisKIDIwMTktMTAtMTcgIERlYW4gSmFja3NvbiAg
PGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIHRleEltYWdlMkQgZm9yIGEgaGFsZi1mbG9hdCB0
ZXh0dXJlIG9ubHkgYWNjZXB0cyBudWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1l
bnRQaWN0dXJlSW5QaWN0dXJlLmNwcAppbmRleCBkZjk2MGIyOTM3OS4uNmQwMjFjNGQwYzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlk
ZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcApA
QCAtMTM1LDEwICsxMzUsMTYgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVy
ZTo6ZXhpdFBpY3R1cmVJblBpY3R1cmUoUmVmPERlZmVycmVkUHJvbWlzZT4KICAgICBtX3ZpZGVv
RWxlbWVudC53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVv
UHJlc2VudGF0aW9uTW9kZTo6SW5saW5lKTsKIH0KIAotdm9pZCBIVE1MVmlkZW9FbGVtZW50UGlj
dHVyZUluUGljdHVyZTo6ZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkKK3ZvaWQgSFRNTFZpZGVv
RWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OmRpZEVudGVyUGljdHVyZUluUGljdHVyZShJbnRTaXpl
IHdpbmRvd1NpemUpCiB7CiAgICAgbV92aWRlb0VsZW1lbnQuZG9jdW1lbnQoKS5zZXRQaWN0dXJl
SW5QaWN0dXJlRWxlbWVudCgmbV92aWRlb0VsZW1lbnQpOwogICAgIGlmIChtX2VudGVyUGljdHVy
ZUluUGljdHVyZVByb21pc2UpIHsKKyAgICAgICAgRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQ6
OkluaXQgaW5pdDsKKyAgICAgICAgaW5pdC5idWJibGVzID0gdHJ1ZTsKKyAgICAgICAgaW5pdC5w
aWN0dXJlSW5QaWN0dXJlV2luZG93ID0gUGljdHVyZUluUGljdHVyZVdpbmRvdzo6Y3JlYXRlKG1f
dmlkZW9FbGVtZW50LmRvY3VtZW50KCksIHdpbmRvd1NpemUud2lkdGgoKSwgd2luZG93U2l6ZS5o
ZWlnaHQoKSk7CisgICAgICAgIGF1dG8gZW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQgPSBFbnRl
clBpY3R1cmVJblBpY3R1cmVFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbnRlcnBpY3R1cmVp
bnBpY3R1cmVFdmVudCwgV1RGTW92ZShpbml0KSk7CisgICAgICAgIG1fdmlkZW9FbGVtZW50LnNj
aGVkdWxlRXZlbnQoV1RGTW92ZShlbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudCkpOworCiAgICAg
ICAgIG1fZW50ZXJQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZS0+cmVzb2x2ZSgpOwogICAgICAgICBt
X2VudGVyUGljdHVyZUluUGljdHVyZVByb21pc2UgPSBudWxscHRyOwogICAgIH0KQEAgLTE0OCwx
MSArMTU0LDE4IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OmRpZEV4
aXRQaWN0dXJlSW5QaWN0dXJlKCkKIHsKICAgICBtX3ZpZGVvRWxlbWVudC5kb2N1bWVudCgpLnNl
dFBpY3R1cmVJblBpY3R1cmVFbGVtZW50KG51bGxwdHIpOwogICAgIGlmIChtX2V4aXRQaWN0dXJl
SW5QaWN0dXJlUHJvbWlzZSkgeworICAgICAgICBhdXRvIGxlYXZlUGljdHVyZUluUGljdHVyZUV2
ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubGVhdmVwaWN0dXJlaW5waWN0dXJlRXZl
bnQsIEV2ZW50OjpDYW5CdWJibGU6OlllcywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pOworICAg
ICAgICBtX3ZpZGVvRWxlbWVudC5zY2hlZHVsZUV2ZW50KFdURk1vdmUobGVhdmVQaWN0dXJlSW5Q
aWN0dXJlRXZlbnQpKTsKKwogICAgICAgICBtX2V4aXRQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZS0+
cmVzb2x2ZSgpOwogICAgICAgICBtX2V4aXRQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZSA9IG51bGxw
dHI7CiAgICAgfQogfQogCit2b2lkIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpw
aWN0dXJlSW5QaWN0dXJlV2luZG93UmVzaXplZChJbnRTaXplKQoreworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1M
VmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
aWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmgKaW5kZXgg
NTMxMWMwMmZjNjguLjFlNjUzODQ1Y2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxl
bWVudFBpY3R1cmVJblBpY3R1cmUuaApAQCAtNTUsOCArNTUsOSBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGV4aXRQaWN0dXJlSW5QaWN0dXJlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogCi0gICAg
dm9pZCBkaWRFbnRlclBpY3R1cmVJblBpY3R1cmUoKTsKKyAgICB2b2lkIGRpZEVudGVyUGljdHVy
ZUluUGljdHVyZShJbnRTaXplKTsKICAgICB2b2lkIGRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7
CisgICAgdm9pZCBwaWN0dXJlSW5QaWN0dXJlV2luZG93UmVzaXplZChJbnRTaXplKTsKIAogcHJp
dmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKSB7IHJldHVybiAi
SFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUiOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGlj
dHVyZVdpbmRvdy5jcHAKaW5kZXggYTAwMGYxNzM0ZWQuLjVkZjJjMTg3OWRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVy
ZVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJl
L1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFJlZjxQaWN0dXJl
SW5QaWN0dXJlV2luZG93PiBQaWN0dXJlSW5QaWN0dXJlV2luZG93OjpjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4CiB9CiAKIFBpY3R1cmVJblBpY3R1cmVXaW5kb3c6OlBpY3R1cmVJblBpY3R1
cmVXaW5kb3coU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
aW50IHdpZHRoLCBpbnQgaGVpZ2h0KQotICAgIDogQWN0aXZlRE9NT2JqZWN0KCZzY3JpcHRFeGVj
dXRpb25Db250ZXh0KQorICAgIDogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpCiAgICAgLCBtX3dpZHRoKHdpZHRoKQogICAgICwgbV9oZWlnaHQoaGVpZ2h0
KQogewpAQCAtNDksMjEgKzQ5LDYgQEAgUGljdHVyZUluUGljdHVyZVdpbmRvdzo6UGljdHVyZUlu
UGljdHVyZVdpbmRvdyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGUKIAogUGljdHVy
ZUluUGljdHVyZVdpbmRvdzo6flBpY3R1cmVJblBpY3R1cmVXaW5kb3coKSA9IGRlZmF1bHQ7CiAK
LWNvbnN0IGNoYXIqIFBpY3R1cmVJblBpY3R1cmVXaW5kb3c6OmFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdAotewotICAgIHJldHVybiAiUGljdHVyZUluUGljdHVyZVdpbmRvdyI7Ci19Ci0KLUV2
ZW50VGFyZ2V0SW50ZXJmYWNlIFBpY3R1cmVJblBpY3R1cmVXaW5kb3c6OmV2ZW50VGFyZ2V0SW50
ZXJmYWNlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gUGljdHVyZUluUGljdHVyZVdpbmRvd0V2ZW50
VGFyZ2V0SW50ZXJmYWNlVHlwZTsKLX0KLQotU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogUGljdHVy
ZUluUGljdHVyZVdpbmRvdzo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoUElDVFVSRV9JTl9QSUNU
VVJFX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGlj
dHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bp
Y3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5oCmluZGV4IDIzMWJmNTNkMGJm
Li40MmZhZTMwZTBiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJl
aW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5oCkBAIC0yOCw3
ICsyOCw2IEBACiAKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKIAotI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApAQCAtMzYsNyArMzUsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFBpY3R1cmVJblBpY3R1cmVXaW5kb3cgZmluYWwKICAgICA6IHB1YmxpYyBS
ZWZDb3VudGVkPFBpY3R1cmVJblBpY3R1cmVXaW5kb3c+Ci0gICAgLCBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0CiAgICAgLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CiAgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChQaWN0dXJlSW5QaWN0dXJlV2luZG93KTsKIHB1YmxpYzoKQEAg
LTQ2LDkgKzQ0LDYgQEAgcHVibGljOgogICAgIGludCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
d2lkdGg7IH0KICAgICBpbnQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KIAot
ICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5h
bWUoKSBjb25zdCBmaW5hbDsKLQogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UGljdHVyZUluUGljdHVy
ZVdpbmRvdz46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPFBpY3R1cmVJblBpY3R1cmVXaW5k
b3c+OjpkZXJlZjsKIApAQCAtNTgsOSArNTMsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBFdmVudFRh
cmdldAogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9p
ZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9Ci0gICAgRXZlbnRUYXJnZXRJ
bnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdDsKLSAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CisgICAgRXZlbnRUYXJn
ZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBQaWN0dXJlSW5QaWN0dXJlV2luZG93RXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9OworICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiAmbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9OwogCisgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwogICAgIGludCBt
X3dpZHRoOwogICAgIGludCBtX2hlaWdodDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdp
bmRvdy5pZGwKaW5kZXggM2UwYjVkMmEyZTMuLmM2NjJlYjk4ZTA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRv
dy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1
cmVJblBpY3R1cmVXaW5kb3cuaWRsCkBAIC0yNSw3ICsyNSw2IEBACiAgKi8KIAogWwotICAgIEFj
dGl2ZURPTU9iamVjdCwKICAgICBDb25kaXRpb25hbD1QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJLAog
ICAgIEVuYWJsZWRCeVNldHRpbmc9UGljdHVyZUluUGljdHVyZUFQSSwKICAgICBFeHBvc2VkPVdp
bmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZmRlY2I4
N2VjY2UuLmNjMDNmYmU1MTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKQEAgLTEwMjQsNiArMTAyNCwxMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVk
dWxlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnROYW1lKQogICAgIG1fYXN5bmNFdmVudFF1
ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVudCkpOwogfQogCisjaWYgRU5BQkxFKFBJQ1RV
UkVfSU5fUElDVFVSRV9BUEkpCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQo
UmVmPEV2ZW50PiYmIGV2ZW50KQoreworICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZl
bnQoV1RGTW92ZShldmVudCkpOworfQorI2VuZGlmCisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
c2NoZWR1bGVSZXNvbHZlUGVuZGluZ1BsYXlQcm9taXNlcygpCiB7CiAgICAgbV9wcm9taXNlVGFz
a1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBwZW5kaW5nUGxheVByb21pc2VzID0gV1RGTW92ZSht
X3BlbmRpbmdQbGF5UHJvbWlzZXMpXSAoKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKaW5kZXggZjQ4MmQyMWI0ZTQuLjFmMGM1YzdkYTFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTg1LDcgKzE4NSw3IEBAIHB1YmxpYzoK
ICNpZmRlZiBfX09CSkNfXwogICAgIFBsYXRmb3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVy
KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKTsgfQogI2VuZGlm
Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpOworICAgIHZpcnR1
YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpOwogICAgIHZvaWQgc2V0
VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRpYVBsYXllckVudW1zOjpWaWRlb0dyYXZpdHkpOwog
ICAgIE1lZGlhUGxheWVyRW51bXM6OlZpZGVvR3Jhdml0eSB2aWRlb0Z1bGxzY3JlZW5HcmF2aXR5
KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5HcmF2aXR5OyB9CiAjZW5kaWYKQEAg
LTU3Niw2ICs1NzYsMTAgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQmVj
b21lRnVsbHNjcmVlbkVsZW1lbnQoKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHdpbGxFeGl0RnVsbHNjcmVlbigpOwogCisjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9B
UEkpCisgICAgdm9pZCBzY2hlZHVsZUV2ZW50KFJlZjxFdmVudD4mJik7CisjZW5kaWYKKwogICAg
IGVudW0gY2xhc3MgQXV0b3BsYXlFdmVudFBsYXliYWNrU3RhdGUgeyBOb25lLCBQcmV2ZW50ZWRB
dXRvcGxheSwgU3RhcnRlZFdpdGhVc2VyR2VzdHVyZSwgU3RhcnRlZFdpdGhvdXRVc2VyR2VzdHVy
ZSB9OwogCiBwcm90ZWN0ZWQ6CkBAIC02MTMsNyArNjE3LDcgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgdXBkYXRlTWVkaWFDb250cm9sc0FmdGVyUHJlc2VudGF0aW9uTW9kZUNoYW5nZSgpOwogI2Vu
ZGlmCiAKLSAgICB2b2lkIHNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnROYW1l
KTsKKyAgICB2b2lkIHNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYpOwogCiBwcml2YXRl
OgogICAgIHZvaWQgY3JlYXRlTWVkaWFQbGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxW
aWRlb0VsZW1lbnQuY3BwCmluZGV4IGQ5YzMzNmMxYWIwLi45NTAwYzJiMjU5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBAIC00OTIsOSArNDkyLDcgQEAgdm9p
ZCBIVE1MVmlkZW9FbGVtZW50OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQoVmlkZW9GdWxsc2NyZWVu
TW9kZSBtb2RlKQogICAgICAgICAgICAgSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRp
b25Nb2RlIHRhcmdldFZpZGVvUHJlc2VudGF0aW9uTW9kZSA9IHRvUHJlc2VudGF0aW9uTW9kZSht
b2RlKTsKICAgICAgICAgICAgIEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9k
ZSBzb3VyY2VWaWRlb1ByZXNlbnRhdGlvbk1vZGUgPSB0b1ByZXNlbnRhdGlvbk1vZGUoZnVsbHNj
cmVlbk1vZGUoKSk7CiAKLSAgICAgICAgICAgIGlmICh0YXJnZXRWaWRlb1ByZXNlbnRhdGlvbk1v
ZGUgPT0gSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlOjpQaWN0dXJlSW5Q
aWN0dXJlICYmIHNvdXJjZVZpZGVvUHJlc2VudGF0aW9uTW9kZSAhPSBIVE1MVmlkZW9FbGVtZW50
OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUpCi0gICAgICAgICAgICAg
ICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEVudGVyUGljdHVyZUluUGljdHVyZSgp
OwotICAgICAgICAgICAgZWxzZSBpZiAodGFyZ2V0VmlkZW9QcmVzZW50YXRpb25Nb2RlICE9IEhU
TUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSAm
JiBzb3VyY2VWaWRlb1ByZXNlbnRhdGlvbk1vZGUgPT0gSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9Q
cmVzZW50YXRpb25Nb2RlOjpQaWN0dXJlSW5QaWN0dXJlKQorICAgICAgICAgICAgaWYgKHRhcmdl
dFZpZGVvUHJlc2VudGF0aW9uTW9kZSAhPSBIVE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRh
dGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUgJiYgc291cmNlVmlkZW9QcmVzZW50YXRpb25Nb2Rl
ID09IEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGlj
dHVyZSkKICAgICAgICAgICAgICAgICBtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlci0+ZGlkRXhp
dFBpY3R1cmVJblBpY3R1cmUoKTsKICAgICAgICAgfQogI2VuZGlmCkBAIC01MDcsMTIgKzUwNSwz
NiBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChWaWRlb0Z1
bGxzY3JlZW5Nb2RlIG1vZGUpCiB9CiAKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQ
SSkKK3ZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKQor
eworICAgIG1fd2FpdGluZ0ZvclBpY3R1cmVJblBpY3R1cmVXaW5kb3dGcmFtZSA9IHRydWU7Cisg
ICAgSFRNTE1lZGlhRWxlbWVudDo6ZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKTsKK30KKwog
dm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIoUGljdHVy
ZUluUGljdHVyZU9ic2VydmVyKiBvYnNlcnZlcikKIHsKICAgICBtX3BpY3R1cmVJblBpY3R1cmVP
YnNlcnZlciA9IG9ic2VydmVyOwogfQorCisjZW5kaWYKKwogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpKQordm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFt
ZShGbG9hdFJlY3QgZnJhbWUpCit7CisgICAgSFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxs
c2NyZWVuRnJhbWUoZnJhbWUpOworCisjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkp
CisgICAgaWYgKHRvUHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVuTW9kZSgpKSA9PSBWaWRlb1By
ZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAgICAgaWYgKG1fd2FpdGlu
Z0ZvclBpY3R1cmVJblBpY3R1cmVXaW5kb3dGcmFtZSkgeworICAgICAgICAgICAgbV93YWl0aW5n
Rm9yUGljdHVyZUluUGljdHVyZVdpbmRvd0ZyYW1lID0gZmFsc2U7CisgICAgICAgICAgICBtX3Bp
Y3R1cmVJblBpY3R1cmVPYnNlcnZlci0+ZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKEludFNpemUo
ZnJhbWUuc2l6ZSgpKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbV9waWN0dXJlSW5Q
aWN0dXJlT2JzZXJ2ZXItPnBpY3R1cmVJblBpY3R1cmVXaW5kb3dSZXNpemVkKEludFNpemUoZnJh
bWUuc2l6ZSgpKSk7CisgICAgfQorI2VuZGlmCit9CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1B
QykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxWaWRlb0VsZW1lbnQuaAppbmRleCA4M2UwOTU0NGJmNi4uYTNhZTcxY2Q3MWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC05MCwxMCArOTAsMTUgQEAgcHVibGlj
OgogICAgIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFZpZGVvRnVsbHNjcmVlbk1vZGUpIGZp
bmFsOwogCiAjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpIGZpbmFsOwogICAgIHZvaWQg
c2V0UGljdHVyZUluUGljdHVyZU9ic2VydmVyKFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlciopOwog
I2VuZGlmCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShN
QUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCisgICAgdm9pZCBzZXRWaWRl
b0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIGZpbmFsOworI2VuZGlmCisKICNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICB2b2lkIGV4aXRU
b0Z1bGxzY3JlZW5Nb2RlV2l0aG91dEFuaW1hdGlvbklmUG9zc2libGUoSFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIGZyb21Nb2RlLCBIVE1MTWVkaWFFbGVtZW50RW51
bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdG9Nb2RlKTsKICNlbmRpZgpAQCAtMTMxLDYgKzEzNiw3
IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9sYXN0UmVwb3J0ZWRWaWRlb0hlaWdodCB7IDAg
fTsKIAogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQorICAgIGJvb2wgbV93YWl0
aW5nRm9yUGljdHVyZUluUGljdHVyZVdpbmRvd0ZyYW1lIHsgZmFsc2UgfTsKICAgICBQaWN0dXJl
SW5QaWN0dXJlT2JzZXJ2ZXIqIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyIHsgbnVsbHB0ciB9
OwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGljdHVy
ZUluUGljdHVyZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QaWN0dXJlSW5Q
aWN0dXJlT2JzZXJ2ZXIuaAppbmRleCBhZTQwNjcwNTZjZi4uYTAzYzhlMjQwZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oCkBA
IC0zMiw4ICszMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFBpY3R1cmVJblBpY3R1
cmVPYnNlcnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2
ZXI+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5QaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIoKSB7
IH07Ci0gICAgdmlydHVhbCB2b2lkIGRpZEVudGVyUGljdHVyZUluUGljdHVyZSgpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKEludFNpemUpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHBpY3R1cmVJblBpY3R1cmVXaW5kb3dSZXNpemVkKEludFNpemUpID0gMDsKIH07CiAK
IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381706</attachid>
            <date>2019-10-23 11:33:57 -0700</date>
            <delta_ts>2019-10-23 15:18:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202616-20191023113356.patch</filename>
            <type>text/plain</type>
            <size>16440</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmMxMWUxZmY1MjIzMWU4
Y2FmNzMwOTMwM2E2OTA0YTA3NTJiYmRjNS4uNWI2NmM1ZTk1YzM4YzQzMzRjNzMwZmUyZmEyYTgw
Njg3MDQ4YzIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTEwLTIzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW1BpY3R1cmUtaW4tUGljdHVy
ZSBXZWIgQVBJXSBJbXBsZW1lbnQgRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQgc3VwcG9ydAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNjE2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50
IHRoZSBzdXBwb3J0IGZvciBlbnRlcnBpY3R1cmVpbnBpY3R1cmUgYW5kIGxlYXZlcGljdHVyZWlu
cGljdHVyZSBldmVudHMuCisgICAgICAgIC0gQWRkIGEgcHVibGljIG1ldGhvZCBzY2hkdWxlRXZl
bnQoKSB0byBIVE1MTWVkaWFFbGVtZW50IGluIG9yZGVyIHRvIGZpcmUgZW50ZXJwaWN0dXJlaW5w
aWN0dXJlCisgICAgICAgIGV2ZW50IHdoaWNoIGluY2x1ZGVzIHByb3BlcnRpZXMuCisgICAgICAg
IC0gSW4gb3JkZXIgdG8gbm90aWZ5IHRoZSBvYnNlcnZlciAoSFRNTFZpZGVvRWxlbWVudFBpY3R1
cmVJblBpY3R1cmUpIGFmdGVyIGVudGVyaW5nIHBpY3R1cmUtaW4tcGljdHVyZQorICAgICAgICB0
cmFuc2l0aW9uIGlzIGNvbXBsZXRlZCBhbmQgdGhlIHBpY3R1cmUtaW4tcGljdHVyZSB3aW5kb3cg
c2l6ZSBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUsCisgICAgICAgIHdlIGhhdmUgdG8gY2hhbmdl
IHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKCkgdG8gdmlydHVhbCBpbiBIVE1MTWVkaWFFbGVtZW50
IGFuZCBpbXBsZW1lbnQgaXQgaW4KKyAgICAgICAgSFRNTFZpZGVvRWxlbWVudCB0byB0cmFjayB0
aGUgdHJhbnNpdGlvbiBzdGF0ZS4KKyAgICAgICAgLSBUaGUgUGljdHVyZUluUGljdHVyZVdpbmRv
dyBkb2VzIG5vdCBuZWVkIHRvIGJhIGFuIEFjdGl2ZURPTU9iamVjdCwgc28gaXQgaXMgdXBkYXRl
ZCBhY2NvcmRpbmdseS4KKworICAgICAgICBXaXRoIG1hbnVhbCB0ZXN0cywgdGhlIGltcGxlbWVu
dGF0aW9uIHBhc3NlcyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BpY3R1cmUtaW4tcGljdHVyZS9lbnRlci1waWN0dXJlLWluLXBpY3R1cmUuaHRtbAorICAgICAg
ICBhbmQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9waWN0dXJl
LWluLXBpY3R1cmUvbGVhdmUtcGljdHVyZS1pbi1waWN0dXJlLmh0bWwuCisKKyAgICAgICAgKiBN
b2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6
OmRpZEVudGVyUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50UGljdHVyZUluUGljdHVyZTo6ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OnBpY3R1cmVJblBp
Y3R1cmVXaW5kb3dSZXNpemVkKToKKyAgICAgICAgKiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUv
SFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3Bp
Y3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQaWN0dXJlSW5QaWN0dXJlV2luZG93OjpQaWN0dXJlSW5QaWN0dXJlV2luZG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBpY3R1cmVJblBpY3R1cmVXaW5kb3c6OmFjdGl2ZURPTU9iamVjdE5h
bWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UGljdHVyZUluUGljdHVyZVdp
bmRvdzo6ZXZlbnRUYXJnZXRJbnRlcmZhY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UGljdHVyZUluUGljdHVyZVdpbmRvdzo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJ
blBpY3R1cmVXaW5kb3cuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGlj
dHVyZUluUGljdHVyZVdpbmRvdy5pZGw6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQp
OgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRN
TFZpZGVvRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojpm
dWxsc2NyZWVuTW9kZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVu
dDo6ZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZp
ZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUpOgorICAgICAgICAqIGh0bWwvSFRN
TFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1BpY3R1cmVJblBpY3R1cmVPYnNl
cnZlci5oOgorCiAyMDE5LTEwLTIzICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgTmF2aWdhdG9yQmFzZTo6c2VydmljZVdvcmtlcklmRXhpc3RzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZp
ZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
aWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAppbmRl
eCA3MzVlNDAzYjE2MWRjOWRjZDRlMDc3M2Y2ZTU5MzYyNGE1ODIyOWJkLi40OWI5MTAxN2UzOGU3
M2JkNGUyMzQzZTY3NGI1ZDFhNTRmZDlkOTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlk
ZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKQEAgLTE0MywxMSArMTQzLDE3IEBAIHZvaWQg
SFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OmV4aXRQaWN0dXJlSW5QaWN0dXJlKFJl
ZjxEZWZlcnJlZFByb21pc2U+CiAgICAgbV92aWRlb0VsZW1lbnQud2Via2l0U2V0UHJlc2VudGF0
aW9uTW9kZShIVE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OklubGluZSk7
CiB9CiAKLXZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OmRpZEVudGVyUGlj
dHVyZUluUGljdHVyZSgpCit2b2lkIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpk
aWRFbnRlclBpY3R1cmVJblBpY3R1cmUoSW50U2l6ZSB3aW5kb3dTaXplKQogewogICAgIElORk9f
TE9HKExPR0lERU5USUZJRVIpOwogICAgIG1fdmlkZW9FbGVtZW50LmRvY3VtZW50KCkuc2V0UGlj
dHVyZUluUGljdHVyZUVsZW1lbnQoJm1fdmlkZW9FbGVtZW50KTsKICAgICBpZiAobV9lbnRlclBp
Y3R1cmVJblBpY3R1cmVQcm9taXNlKSB7CisgICAgICAgIEVudGVyUGljdHVyZUluUGljdHVyZUV2
ZW50OjpJbml0IGluaXQ7CisgICAgICAgIGluaXQuYnViYmxlcyA9IHRydWU7CisgICAgICAgIGlu
aXQucGljdHVyZUluUGljdHVyZVdpbmRvdyA9IFBpY3R1cmVJblBpY3R1cmVXaW5kb3c6OmNyZWF0
ZShtX3ZpZGVvRWxlbWVudC5kb2N1bWVudCgpLCB3aW5kb3dTaXplLndpZHRoKCksIHdpbmRvd1Np
emUuaGVpZ2h0KCkpOworICAgICAgICBhdXRvIGVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50ID0g
RW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZW50ZXJwaWN0
dXJlaW5waWN0dXJlRXZlbnQsIFdURk1vdmUoaW5pdCkpOworICAgICAgICBtX3ZpZGVvRWxlbWVu
dC5zY2hlZHVsZUV2ZW50KFdURk1vdmUoZW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQpKTsKKwog
ICAgICAgICBtX2VudGVyUGljdHVyZUluUGljdHVyZVByb21pc2UtPnJlc29sdmUoKTsKICAgICAg
ICAgbV9lbnRlclBpY3R1cmVJblBpY3R1cmVQcm9taXNlID0gbnVsbHB0cjsKICAgICB9CkBAIC0x
NTgsNiArMTY0LDkgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6ZGlk
RXhpdFBpY3R1cmVJblBpY3R1cmUoKQogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogICAg
IG1fdmlkZW9FbGVtZW50LmRvY3VtZW50KCkuc2V0UGljdHVyZUluUGljdHVyZUVsZW1lbnQobnVs
bHB0cik7CiAgICAgaWYgKG1fZXhpdFBpY3R1cmVJblBpY3R1cmVQcm9taXNlKSB7CisgICAgICAg
IGF1dG8gbGVhdmVQaWN0dXJlSW5QaWN0dXJlRXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5sZWF2ZXBpY3R1cmVpbnBpY3R1cmVFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6WWVzLCBF
dmVudDo6SXNDYW5jZWxhYmxlOjpObyk7CisgICAgICAgIG1fdmlkZW9FbGVtZW50LnNjaGVkdWxl
RXZlbnQoV1RGTW92ZShsZWF2ZVBpY3R1cmVJblBpY3R1cmVFdmVudCkpOworCiAgICAgICAgIG1f
ZXhpdFBpY3R1cmVJblBpY3R1cmVQcm9taXNlLT5yZXNvbHZlKCk7CiAgICAgICAgIG1fZXhpdFBp
Y3R1cmVJblBpY3R1cmVQcm9taXNlID0gbnVsbHB0cjsKICAgICB9CkBAIC0xNzAsNiArMTc5LDEw
IEBAIFdURkxvZ0NoYW5uZWwmIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpsb2dD
aGFubmVsKCkgY29uc3QKIH0KICNlbmRpZgogCit2b2lkIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJl
SW5QaWN0dXJlOjpwaWN0dXJlSW5QaWN0dXJlV2luZG93UmVzaXplZChJbnRTaXplKQoreworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoUElDVFVSRV9JTl9Q
SUNUVVJFX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlu
cGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0
dXJlLmgKaW5kZXggMjkyODMwYmExMDE0NzUxYzFjNjAzOTY5ZmYyMTBkNmNhYjQ5Njk4YS4uMTYy
NjZkYzUwNzg3YjIwOWYyMjliZjczMzczODE0MWQ0YjRhMGFlZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJl
SW5QaWN0dXJlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJl
L0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmgKQEAgLTYwLDggKzYwLDkgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBleGl0UGljdHVyZUluUGljdHVyZShSZWY8RGVmZXJyZWRQcm9taXNl
PiYmKTsKIAotICAgIHZvaWQgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCk7CisgICAgdm9pZCBk
aWRFbnRlclBpY3R1cmVJblBpY3R1cmUoSW50U2l6ZSk7CiAgICAgdm9pZCBkaWRFeGl0UGljdHVy
ZUluUGljdHVyZSgpOworICAgIHZvaWQgcGljdHVyZUluUGljdHVyZVdpbmRvd1Jlc2l6ZWQoSW50
U2l6ZSk7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxv
Z2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVy
ZVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGlj
dHVyZUluUGljdHVyZVdpbmRvdy5jcHAKaW5kZXggYTAwMGYxNzM0ZWRkYzVlZmUyZjAxNjc5MTVi
MDJmNGUyYjJhZDhmMS4uNWRmMmMxODc5ZGYyNGRhODQyYTU3MGI4N2RhMDRmY2Y2YTE3Mjk0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1
cmVJblBpY3R1cmVXaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVy
ZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcApAQCAtNDEsNyArNDEsNyBAQCBS
ZWY8UGljdHVyZUluUGljdHVyZVdpbmRvdz4gUGljdHVyZUluUGljdHVyZVdpbmRvdzo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleAogfQogCiBQaWN0dXJlSW5QaWN0dXJlV2luZG93OjpQaWN0
dXJlSW5QaWN0dXJlV2luZG93KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIGludCB3aWR0aCwgaW50IGhlaWdodCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdCgm
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKKyAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICwgbV93aWR0aCh3aWR0aCkKICAgICAsIG1faGVp
Z2h0KGhlaWdodCkKIHsKQEAgLTQ5LDIxICs0OSw2IEBAIFBpY3R1cmVJblBpY3R1cmVXaW5kb3c6
OlBpY3R1cmVJblBpY3R1cmVXaW5kb3coU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhl
CiAKIFBpY3R1cmVJblBpY3R1cmVXaW5kb3c6On5QaWN0dXJlSW5QaWN0dXJlV2luZG93KCkgPSBk
ZWZhdWx0OwogCi1jb25zdCBjaGFyKiBQaWN0dXJlSW5QaWN0dXJlV2luZG93OjphY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3QKLXsKLSAgICByZXR1cm4gIlBpY3R1cmVJblBpY3R1cmVXaW5kb3ci
OwotfQotCi1FdmVudFRhcmdldEludGVyZmFjZSBQaWN0dXJlSW5QaWN0dXJlV2luZG93OjpldmVu
dFRhcmdldEludGVyZmFjZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFBpY3R1cmVJblBpY3R1cmVX
aW5kb3dFdmVudFRhcmdldEludGVyZmFjZVR5cGU7Ci19Ci0KLVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIFBpY3R1cmVJblBpY3R1cmVXaW5kb3c6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25z
dAotewotICAgIHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFBJQ1RV
UkVfSU5fUElDVFVSRV9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bp
Y3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaAppbmRleCAy
MzFiZjUzZDBiZmE0ZDhiNDFhZTRlNmRiOGNhOTMxOGEyOWIyZjEzLi40MmZhZTMwZTBiMGJlNmQ2
ODY0NDMzOGNlNGFlZTU2NzkzZTNlMDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93
LmgKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJ
KQogCi0jaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQu
aCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC0zNiw3ICszNSw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGljdHVyZUluUGljdHVyZVdpbmRvdyBmaW5hbAogICAg
IDogcHVibGljIFJlZkNvdW50ZWQ8UGljdHVyZUluUGljdHVyZVdpbmRvdz4KLSAgICAsIHB1Ymxp
YyBBY3RpdmVET01PYmplY3QKICAgICAsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRh
IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFBpY3R1cmVJblBpY3R1cmVXaW5kb3cpOwog
cHVibGljOgpAQCAtNDYsOSArNDQsNiBAQCBwdWJsaWM6CiAgICAgaW50IHdpZHRoKCkgY29uc3Qg
eyByZXR1cm4gbV93aWR0aDsgfQogICAgIGludCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hl
aWdodDsgfQogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAgY29uc3QgY2hhciogYWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwotCiAgICAgdXNpbmcgUmVmQ291bnRlZDxQaWN0
dXJlSW5QaWN0dXJlV2luZG93Pjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UGljdHVyZUlu
UGljdHVyZVdpbmRvdz46OmRlcmVmOwogCkBAIC01OCw5ICs1MywxMCBAQCBwcml2YXRlOgogICAg
IC8vIEV2ZW50VGFyZ2V0CiAgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7
IH0KICAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KLSAgICBF
dmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0OwotICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKKyAg
ICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFBpY3R1cmVJblBpY3R1cmVXaW5kb3dFdmVudFRhcmdldEludGVyZmFjZVR5
cGU7IH07CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICZtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7IH07
CiAKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CiAgICAgaW50IG1fd2lkdGg7CiAgICAgaW50IG1faGVpZ2h0OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2lu
ZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJl
SW5QaWN0dXJlV2luZG93LmlkbAppbmRleCAzZTBiNWQyYTJlMzc4NTI1NGE4NzVhODFkYTU1YzU2
NDUyNmUxZjZiLi5jNjYyZWI5OGUwNDU1OTViYWQ2OTZlZGQzM2Q1NTg1ZmRjNjdhNzIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUlu
UGljdHVyZVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5w
aWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaWRsCkBAIC0yNSw3ICsyNSw2IEBACiAgKi8K
IAogWwotICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25kaXRpb25hbD1QSUNUVVJFX0lOX1BJ
Q1RVUkVfQVBJLAogICAgIEVuYWJsZWRCeVNldHRpbmc9UGljdHVyZUluUGljdHVyZUFQSSwKICAg
ICBFeHBvc2VkPVdpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
aW5kZXggNGUxZmM4MzdlOGM0YzNmZWMyNDlmMzk0MDhiYzQ5ZTFmZDA4MTFlNC4uNjVmY2U0NmVk
MGViYTBjODNiMGFmNzRhNGUyZjk3YTg5NjE2YjgxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMDI0LDYgKzEwMjQsMTMgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSkKICAgICBt
X2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZlbnQpKTsKIH0KIAorI2lm
IEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpz
Y2hlZHVsZUV2ZW50KFJlZjxFdmVudD4mJiBldmVudCkKK3sKKyAgICBtX2FzeW5jRXZlbnRRdWV1
ZS0+ZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZlbnQpKTsKK30KKyNlbmRpZgorCiB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNjaGVkdWxlUmVzb2x2ZVBlbmRpbmdQbGF5UHJvbWlzZXMoKQogewogICAg
IG1fcHJvbWlzZVRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgcGVuZGluZ1BsYXlQcm9taXNl
cyA9IFdURk1vdmUobV9wZW5kaW5nUGxheVByb21pc2VzKV0gKCkgbXV0YWJsZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDgzZTU2ZTcyN2IwNjk1ZmE1ZGJkM2Yw
ZTIwYTUzMTEzZTU0NTc0M2EuLmNmMGVlOWFjYjE4YzFiN2M5MWE3ZmYxMDFkODE2ZTcyYjNkMmI0
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xODUsNyArMTg1
LDcgQEAgcHVibGljOgogI2lmZGVmIF9fT0JKQ19fCiAgICAgUGxhdGZvcm1MYXllciogdmlkZW9G
dWxsc2NyZWVuTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdl
dCgpOyB9CiAjZW5kaWYKLSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVj
dCk7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCk7
CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KE1lZGlhUGxheWVyRW51bXM6OlZp
ZGVvR3Jhdml0eSk7CiAgICAgTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5IHZpZGVvRnVs
bHNjcmVlbkdyYXZpdHkoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHk7
IH0KICNlbmRpZgpAQCAtNTc2LDYgKzU3NiwxMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpIG92ZXJyaWRlOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCk7CiAKKyNpZiBFTkFCTEUoUElDVFVS
RV9JTl9QSUNUVVJFX0FQSSkKKyAgICB2b2lkIHNjaGVkdWxlRXZlbnQoUmVmPEV2ZW50PiYmKTsK
KyNlbmRpZgorCiAgICAgZW51bSBjbGFzcyBBdXRvcGxheUV2ZW50UGxheWJhY2tTdGF0ZSB7IE5v
bmUsIFByZXZlbnRlZEF1dG9wbGF5LCBTdGFydGVkV2l0aFVzZXJHZXN0dXJlLCBTdGFydGVkV2l0
aG91dFVzZXJHZXN0dXJlIH07CiAKIHByb3RlY3RlZDoKQEAgLTYxMyw3ICs2MTcsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCB1cGRhdGVNZWRpYUNvbnRyb2xzQWZ0ZXJQcmVzZW50YXRpb25Nb2Rl
Q2hhbmdlKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgc2NoZWR1bGVFdmVudChjb25zdCBBdG9tU3Ry
aW5nJiBldmVudE5hbWUpOworICAgIHZvaWQgc2NoZWR1bGVFdmVudChjb25zdCBBdG9tU3RyaW5n
Jik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVNZWRpYVBsYXllcigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKaW5kZXggZDljMzM2YzFhYjAyYjAzMTczZGIy
MTBkN2RkNWIwYTdmYzAwY2JhYi4uZTBiNjNhODFiOTAzYjAwYjQzNmU0YTJlOTdhZDI4ZjA3NzRk
MWQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBAIC00OTIs
OSArNDkyLDcgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQo
VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogICAgICAgICAgICAgSFRNTFZpZGVvRWxlbWVudDo6
VmlkZW9QcmVzZW50YXRpb25Nb2RlIHRhcmdldFZpZGVvUHJlc2VudGF0aW9uTW9kZSA9IHRvUHJl
c2VudGF0aW9uTW9kZShtb2RlKTsKICAgICAgICAgICAgIEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVv
UHJlc2VudGF0aW9uTW9kZSBzb3VyY2VWaWRlb1ByZXNlbnRhdGlvbk1vZGUgPSB0b1ByZXNlbnRh
dGlvbk1vZGUoZnVsbHNjcmVlbk1vZGUoKSk7CiAKLSAgICAgICAgICAgIGlmICh0YXJnZXRWaWRl
b1ByZXNlbnRhdGlvbk1vZGUgPT0gSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25N
b2RlOjpQaWN0dXJlSW5QaWN0dXJlICYmIHNvdXJjZVZpZGVvUHJlc2VudGF0aW9uTW9kZSAhPSBI
VE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUp
Ci0gICAgICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEVudGVyUGlj
dHVyZUluUGljdHVyZSgpOwotICAgICAgICAgICAgZWxzZSBpZiAodGFyZ2V0VmlkZW9QcmVzZW50
YXRpb25Nb2RlICE9IEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGlj
dHVyZUluUGljdHVyZSAmJiBzb3VyY2VWaWRlb1ByZXNlbnRhdGlvbk1vZGUgPT0gSFRNTFZpZGVv
RWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlOjpQaWN0dXJlSW5QaWN0dXJlKQorICAgICAg
ICAgICAgaWYgKHRhcmdldFZpZGVvUHJlc2VudGF0aW9uTW9kZSAhPSBIVE1MVmlkZW9FbGVtZW50
OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUgJiYgc291cmNlVmlkZW9Q
cmVzZW50YXRpb25Nb2RlID09IEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9k
ZTo6UGljdHVyZUluUGljdHVyZSkKICAgICAgICAgICAgICAgICBtX3BpY3R1cmVJblBpY3R1cmVP
YnNlcnZlci0+ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKTsKICAgICAgICAgfQogI2VuZGlmCkBA
IC01MDcsMTQgKzUwNSw0MSBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmZ1bGxzY3JlZW5Nb2Rl
Q2hhbmdlZChWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCiB9CiAKICNpZiBFTkFCTEUoUElDVFVS
RV9JTl9QSUNUVVJFX0FQSSkKK3ZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkQmVjb21lRnVsbHNj
cmVlbkVsZW1lbnQoKQoreworICAgIG1fd2FpdGluZ0ZvclBpY3R1cmVJblBpY3R1cmVXaW5kb3dG
cmFtZSA9IHRydWU7CisgICAgSFRNTE1lZGlhRWxlbWVudDo6ZGlkQmVjb21lRnVsbHNjcmVlbkVs
ZW1lbnQoKTsKK30KKwogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQaWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXIoUGljdHVyZUluUGljdHVyZU9ic2VydmVyKiBvYnNlcnZlcikKIHsKICAgICBtX3Bp
Y3R1cmVJblBpY3R1cmVPYnNlcnZlciA9IG9ic2VydmVyOwogfQorCiAjZW5kaWYKIAogI2VuZGlm
CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUo
VklERU9fUFJFU0VOVEFUSU9OX01PREUpKQordm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRWaWRl
b0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgZnJhbWUpCit7CisgICAgSFRNTE1lZGlhRWxlbWVu
dDo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoZnJhbWUpOworCisjaWYgRU5BQkxFKFBJQ1RVUkVf
SU5fUElDVFVSRV9BUEkpCisgICAgaWYgKHRvUHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVuTW9k
ZSgpKSA9PSBWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAg
ICAgaWYgKG1fd2FpdGluZ0ZvclBpY3R1cmVJblBpY3R1cmVXaW5kb3dGcmFtZSkgeworICAgICAg
ICAgICAgbV93YWl0aW5nRm9yUGljdHVyZUluUGljdHVyZVdpbmRvd0ZyYW1lID0gZmFsc2U7Cisg
ICAgICAgICAgICBpZiAobV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIpCisgICAgICAgICAgICAg
ICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEVudGVyUGljdHVyZUluUGljdHVyZShJ
bnRTaXplKGZyYW1lLnNpemUoKSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYg
KG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKQorICAgICAgICAgICAgICAgIG1fcGljdHVyZUlu
UGljdHVyZU9ic2VydmVyLT5waWN0dXJlSW5QaWN0dXJlV2luZG93UmVzaXplZChJbnRTaXplKGZy
YW1lLnNpemUoKSkpOworICAgICAgICB9CisgICAgfQorI2VuZGlmCit9CisjZW5kaWYKKwogI2lm
IFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogdm9pZCBI
VE1MVmlkZW9FbGVtZW50OjpleGl0VG9GdWxsc2NyZWVuTW9kZVdpdGhvdXRBbmltYXRpb25JZlBv
c3NpYmxlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBmcm9tTW9k
ZSwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRvTW9kZSkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5kZXggODNlMDk1NDRiZjZjMjRi
Mjc2NjkwMTEyNjFlMGY1NjdhZTVmNGE0OC4uYTNhZTcxY2Q3MWQ4ODg0MjQ2Y2QxNTRmMGEwNjIx
MmI4YzA2M2ZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKQEAgLTkw
LDEwICs5MCwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQoVmlk
ZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7CiAKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJF
X0FQSSkKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50
KCkgZmluYWw7CiAgICAgdm9pZCBzZXRQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIoUGljdHVyZUlu
UGljdHVyZU9ic2VydmVyKik7CiAjZW5kaWYKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KSkKKyAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgZmluYWw7Cisj
ZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKQogICAgIHZvaWQgZXhpdFRvRnVsbHNjcmVlbk1vZGVXaXRob3V0QW5pbWF0aW9uSWZQb3Nz
aWJsZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgZnJvbU1vZGUs
IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB0b01vZGUpOwogI2Vu
ZGlmCkBAIC0xMzEsNiArMTM2LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2xhc3RSZXBv
cnRlZFZpZGVvSGVpZ2h0IHsgMCB9OwogCiAjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9B
UEkpCisgICAgYm9vbCBtX3dhaXRpbmdGb3JQaWN0dXJlSW5QaWN0dXJlV2luZG93RnJhbWUgeyBm
YWxzZSB9OwogICAgIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlciogbV9waWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXIgeyBudWxscHRyIH07CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oCmluZGV4IGFlNDA2NzA1NmNmMzU0
Y2VmMGNiNzVkMmQ3M2MzMDU5ZGE0MGVlZjkuLmEwM2M4ZTI0MGRiMjAzMzEwZGQzZjMwNzRjZTdl
ZjYzMDY1NWRjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BpY3R1cmVJ
blBpY3R1cmVPYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BpY3R1cmVJ
blBpY3R1cmVPYnNlcnZlci5oCkBAIC0zMiw4ICszMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxQ
aWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXI+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5QaWN0dXJl
SW5QaWN0dXJlT2JzZXJ2ZXIoKSB7IH07Ci0gICAgdmlydHVhbCB2b2lkIGRpZEVudGVyUGljdHVy
ZUluUGljdHVyZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW50ZXJQaWN0dXJlSW5QaWN0
dXJlKEludFNpemUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdFBpY3R1cmVJblBpY3R1
cmUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpY3R1cmVJblBpY3R1cmVXaW5kb3dSZXNpemVk
KEludFNpemUpID0gMDsKIH07CiAKIH0K
</data>
<flag name="review"
          id="397440"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381746</attachid>
            <date>2019-10-23 15:49:14 -0700</date>
            <delta_ts>2019-10-23 23:34:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202616-20191023154914.patch</filename>
            <type>text/plain</type>
            <size>16283</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmMxMWUxZmY1MjIzMWU4
Y2FmNzMwOTMwM2E2OTA0YTA3NTJiYmRjNS4uMTM3NzM4NjU1MGVlY2EwYTgzYmJjZjE0Yjg5ODRh
NjIwZGM2MjUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTEwLTIzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW1BpY3R1cmUtaW4tUGljdHVy
ZSBXZWIgQVBJXSBJbXBsZW1lbnQgRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQgc3VwcG9ydAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNjE2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEltcGxlbWVudCB0
aGUgc3VwcG9ydCBmb3IgZW50ZXJwaWN0dXJlaW5waWN0dXJlIGFuZCBsZWF2ZXBpY3R1cmVpbnBp
Y3R1cmUgZXZlbnRzLgorICAgICAgICAtIEFkZCBhIHB1YmxpYyBtZXRob2Qgc2NoZHVsZUV2ZW50
KCkgdG8gSFRNTE1lZGlhRWxlbWVudCBpbiBvcmRlciB0byBmaXJlIGVudGVycGljdHVyZWlucGlj
dHVyZQorICAgICAgICBldmVudCB3aGljaCBpbmNsdWRlcyBwcm9wZXJ0aWVzLgorICAgICAgICAt
IEluIG9yZGVyIHRvIG5vdGlmeSB0aGUgb2JzZXJ2ZXIgKEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJl
SW5QaWN0dXJlKSBhZnRlciBlbnRlcmluZyBwaWN0dXJlLWluLXBpY3R1cmUKKyAgICAgICAgdHJh
bnNpdGlvbiBpcyBjb21wbGV0ZWQgYW5kIHRoZSBwaWN0dXJlLWluLXBpY3R1cmUgd2luZG93IHNp
emUgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlLAorICAgICAgICB3ZSBoYXZlIHRvIGNoYW5nZSBz
ZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZSgpIHRvIHZpcnR1YWwgaW4gSFRNTE1lZGlhRWxlbWVudCBh
bmQgaW1wbGVtZW50IGl0IGluCisgICAgICAgIEhUTUxWaWRlb0VsZW1lbnQgdG8gdHJhY2sgdGhl
IHRyYW5zaXRpb24gc3RhdGUuCisgICAgICAgIC0gVGhlIFBpY3R1cmVJblBpY3R1cmVXaW5kb3cg
ZG9lcyBub3QgbmVlZCB0byBiYSBhbiBBY3RpdmVET01PYmplY3QsIHNvIGl0IGlzIHVwZGF0ZWQg
YWNjb3JkaW5nbHkuCisKKyAgICAgICAgV2l0aCBtYW51YWwgdGVzdHMsIHRoZSBpbXBsZW1lbnRh
dGlvbiBwYXNzZXMgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
aWN0dXJlLWluLXBpY3R1cmUvZW50ZXItcGljdHVyZS1pbi1waWN0dXJlLmh0bWwKKyAgICAgICAg
YW5kIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGljdHVyZS1p
bi1waWN0dXJlL2xlYXZlLXBpY3R1cmUtaW4tcGljdHVyZS5odG1sLgorCisgICAgICAgICogTW9k
dWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpk
aWRFbnRlclBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxl
bWVudFBpY3R1cmVJblBpY3R1cmU6OmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpwaWN0dXJlSW5QaWN0
dXJlV2luZG93UmVzaXplZCk6CisgICAgICAgICogTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hU
TUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmg6CisgICAgICAgICogTW9kdWxlcy9waWN0
dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGljdHVyZUluUGljdHVyZVdpbmRvdzo6UGljdHVyZUluUGljdHVyZVdpbmRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpQaWN0dXJlSW5QaWN0dXJlV2luZG93OjphY3RpdmVET01PYmplY3ROYW1l
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBpY3R1cmVJblBpY3R1cmVXaW5k
b3c6OmV2ZW50VGFyZ2V0SW50ZXJmYWNlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlBpY3R1cmVJblBpY3R1cmVXaW5kb3c6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5Q
aWN0dXJlV2luZG93Lmg6CisgICAgICAgICogTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1
cmVJblBpY3R1cmVXaW5kb3cuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZUV2ZW50KToK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxW
aWRlb0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6ZnVs
bHNjcmVlbk1vZGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6
OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRl
b0VsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKToKKyAgICAgICAgKiBodG1sL0hUTUxW
aWRlb0VsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QaWN0dXJlSW5QaWN0dXJlT2JzZXJ2
ZXIuaDoKKwogMjAxOS0xMC0yMyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVtb3ZlIE5hdmlnYXRvckJhc2U6OnNlcnZpY2VXb3JrZXJJZkV4aXN0cwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRl
b0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGlj
dHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKaW5kZXgg
NzM1ZTQwM2IxNjFkYzlkY2Q0ZTA3NzNmNmU1OTM2MjRhNTgyMjliZC4uNzYyZThkY2ZkZWE3MzE0
YzVhY2NiMzI5ZDIzZTIzMTYzNzM4NWM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVv
RWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCkBAIC0xNDMsMTEgKzE0MywxNiBAQCB2b2lkIEhU
TUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpleGl0UGljdHVyZUluUGljdHVyZShSZWY8
RGVmZXJyZWRQcm9taXNlPgogICAgIG1fdmlkZW9FbGVtZW50LndlYmtpdFNldFByZXNlbnRhdGlv
bk1vZGUoSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlOjpJbmxpbmUpOwog
fQogCi12b2lkIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpkaWRFbnRlclBpY3R1
cmVJblBpY3R1cmUoKQordm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6ZGlk
RW50ZXJQaWN0dXJlSW5QaWN0dXJlKEludFNpemUgd2luZG93U2l6ZSkKIHsKICAgICBJTkZPX0xP
RyhMT0dJREVOVElGSUVSKTsKICAgICBtX3ZpZGVvRWxlbWVudC5kb2N1bWVudCgpLnNldFBpY3R1
cmVJblBpY3R1cmVFbGVtZW50KCZtX3ZpZGVvRWxlbWVudCk7CiAgICAgaWYgKG1fZW50ZXJQaWN0
dXJlSW5QaWN0dXJlUHJvbWlzZSkgeworICAgICAgICBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVu
dDo6SW5pdCBpbml0aWFsaXplcjsKKyAgICAgICAgaW5pdGlhbGl6ZXIuYnViYmxlcyA9IHRydWU7
CisgICAgICAgIGluaXRpYWxpemVyLnBpY3R1cmVJblBpY3R1cmVXaW5kb3cgPSBQaWN0dXJlSW5Q
aWN0dXJlV2luZG93OjpjcmVhdGUobV92aWRlb0VsZW1lbnQuZG9jdW1lbnQoKSwgd2luZG93U2l6
ZS53aWR0aCgpLCB3aW5kb3dTaXplLmhlaWdodCgpKTsKKyAgICAgICAgbV92aWRlb0VsZW1lbnQu
c2NoZWR1bGVFdmVudChFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5lbnRlcnBpY3R1cmVpbnBpY3R1cmVFdmVudCwgV1RGTW92ZShpbml0aWFsaXplcikpKTsK
KwogICAgICAgICBtX2VudGVyUGljdHVyZUluUGljdHVyZVByb21pc2UtPnJlc29sdmUoKTsKICAg
ICAgICAgbV9lbnRlclBpY3R1cmVJblBpY3R1cmVQcm9taXNlID0gbnVsbHB0cjsKICAgICB9CkBA
IC0xNTgsNiArMTYzLDggQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6
ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKQogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwog
ICAgIG1fdmlkZW9FbGVtZW50LmRvY3VtZW50KCkuc2V0UGljdHVyZUluUGljdHVyZUVsZW1lbnQo
bnVsbHB0cik7CiAgICAgaWYgKG1fZXhpdFBpY3R1cmVJblBpY3R1cmVQcm9taXNlKSB7CisgICAg
ICAgIG1fdmlkZW9FbGVtZW50LnNjaGVkdWxlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkubGVhdmVwaWN0dXJlaW5waWN0dXJlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6OlllcywgRXZl
bnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKwogICAgICAgICBtX2V4aXRQaWN0dXJlSW5QaWN0dXJl
UHJvbWlzZS0+cmVzb2x2ZSgpOwogICAgICAgICBtX2V4aXRQaWN0dXJlSW5QaWN0dXJlUHJvbWlz
ZSA9IG51bGxwdHI7CiAgICAgfQpAQCAtMTcwLDYgKzE3NywxMCBAQCBXVEZMb2dDaGFubmVsJiBI
VE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB9CiAj
ZW5kaWYKIAordm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cGljdHVyZUlu
UGljdHVyZVdpbmRvd1Jlc2l6ZWQoSW50U2l6ZSkKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxl
bWVudFBpY3R1cmVJblBpY3R1cmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlu
cGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oCmluZGV4IDI5MjgzMGJh
MTAxNDc1MWMxYzYwMzk2OWZmMjEwZDZjYWI0OTY5OGEuLjE2MjY2ZGM1MDc4N2IyMDlmMjI5YmY3
MzM3MzgxNDFkNGI0YTBhZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGlj
dHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGlj
dHVyZUluUGljdHVyZS5oCkBAIC02MCw4ICs2MCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZXhp
dFBpY3R1cmVJblBpY3R1cmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAKLSAgICB2b2lkIGRp
ZEVudGVyUGljdHVyZUluUGljdHVyZSgpOworICAgIHZvaWQgZGlkRW50ZXJQaWN0dXJlSW5QaWN0
dXJlKEludFNpemUpOwogICAgIHZvaWQgZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKTsKKyAgICB2
b2lkIHBpY3R1cmVJblBpY3R1cmVXaW5kb3dSZXNpemVkKEludFNpemUpOwogCiAjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cu
Y3BwCmluZGV4IGEwMDBmMTczNGVkZGM1ZWZlMmYwMTY3OTE1YjAyZjRlMmIyYWQ4ZjEuLjVkZjJj
MTg3OWRmMjRkYTg0MmE1NzBiODdkYTA0ZmNmNmExNzI5NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUlu
UGljdHVyZVdpbmRvdy5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgUmVmPFBpY3R1cmVJblBpY3R1cmVX
aW5kb3c+IFBpY3R1cmVJblBpY3R1cmVXaW5kb3c6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXgKIH0KIAogUGljdHVyZUluUGljdHVyZVdpbmRvdzo6UGljdHVyZUluUGljdHVyZVdpbmRvdyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBpbnQgd2lkdGgs
IGludCBoZWlnaHQpCi0gICAgOiBBY3RpdmVET01PYmplY3QoJnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpCisgICAgOiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCkKICAgICAsIG1fd2lkdGgod2lkdGgpCiAgICAgLCBtX2hlaWdodChoZWlnaHQpCiB7CkBAIC00
OSwyMSArNDksNiBAQCBQaWN0dXJlSW5QaWN0dXJlV2luZG93OjpQaWN0dXJlSW5QaWN0dXJlV2lu
ZG93KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZQogCiBQaWN0dXJlSW5QaWN0dXJl
V2luZG93Ojp+UGljdHVyZUluUGljdHVyZVdpbmRvdygpID0gZGVmYXVsdDsKIAotY29uc3QgY2hh
ciogUGljdHVyZUluUGljdHVyZVdpbmRvdzo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuICJQaWN0dXJlSW5QaWN0dXJlV2luZG93IjsKLX0KLQotRXZlbnRUYXJnZXRJ
bnRlcmZhY2UgUGljdHVyZUluUGljdHVyZVdpbmRvdzo6ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBj
b25zdAotewotICAgIHJldHVybiBQaWN0dXJlSW5QaWN0dXJlV2luZG93RXZlbnRUYXJnZXRJbnRl
cmZhY2VUeXBlOwotfQotCi1TY3JpcHRFeGVjdXRpb25Db250ZXh0KiBQaWN0dXJlSW5QaWN0dXJl
V2luZG93OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gQWN0
aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1
cmVJblBpY3R1cmVXaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGlj
dHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmgKaW5kZXggMjMxYmY1M2QwYmZhNGQ4YjQxYWU0
ZTZkYjhjYTkzMThhMjliMmYxMy4uNDJmYWUzMGUwYjBiZTZkNjg2NDQzMzhjZTRhZWU1Njc5M2Uz
ZTA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJl
L1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bp
Y3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5oCkBAIC0yOCw3ICsyOCw2IEBA
CiAKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKIAotI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KIApAQCAtMzYsNyArMzUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFBpY3R1cmVJblBpY3R1cmVXaW5kb3cgZmluYWwKICAgICA6IHB1YmxpYyBSZWZDb3VudGVk
PFBpY3R1cmVJblBpY3R1cmVXaW5kb3c+Ci0gICAgLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0CiAg
ICAgLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChQaWN0dXJlSW5QaWN0dXJlV2luZG93KTsKIHB1YmxpYzoKQEAgLTQ2LDkgKzQ0
LDYgQEAgcHVibGljOgogICAgIGludCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0K
ICAgICBpbnQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KIAotICAgIC8vIEFj
dGl2ZURPTU9iamVjdAotICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dCBmaW5hbDsKLQogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UGljdHVyZUluUGljdHVyZVdpbmRvdz46
OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPFBpY3R1cmVJblBpY3R1cmVXaW5kb3c+OjpkZXJl
ZjsKIApAQCAtNTgsOSArNTMsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBFdmVudFRhcmdldAogICAg
IHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2
ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9Ci0gICAgRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdDsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CisgICAgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQaWN0dXJl
SW5QaWN0dXJlV2luZG93RXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9OworICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiAmbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9OwogCisgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwogICAgIGludCBtX3dpZHRoOwog
ICAgIGludCBtX2hlaWdodDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5pZGwK
aW5kZXggM2UwYjVkMmEyZTM3ODUyNTRhODc1YTgxZGE1NWM1NjQ1MjZlMWY2Yi4uYzY2MmViOThl
MDQ1NTk1YmFkNjk2ZWRkMzNkNTU4NWZkYzY3YTcyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0
dXJlV2luZG93LmlkbApAQCAtMjUsNyArMjUsNiBAQAogICovCiAKIFsKLSAgICBBY3RpdmVET01P
YmplY3QsCiAgICAgQ29uZGl0aW9uYWw9UElDVFVSRV9JTl9QSUNUVVJFX0FQSSwKICAgICBFbmFi
bGVkQnlTZXR0aW5nPVBpY3R1cmVJblBpY3R1cmVBUEksCiAgICAgRXhwb3NlZD1XaW5kb3cKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDRlMWZjODM3ZThjNGMz
ZmVjMjQ5ZjM5NDA4YmM0OWUxZmQwODExZTQuLjY1ZmNlNDZlZDBlYmEwYzgzYjBhZjc0YTRlMmY5
N2E4OTYxNmI4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApA
QCAtMTAyNCw2ICsxMDI0LDEzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVFdmVu
dChjb25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUpCiAgICAgbV9hc3luY0V2ZW50UXVldWUtPmVu
cXVldWVFdmVudChXVEZNb3ZlKGV2ZW50KSk7CiB9CiAKKyNpZiBFTkFCTEUoUElDVFVSRV9JTl9Q
SUNUVVJFX0FQSSkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVFdmVudChSZWY8RXZl
bnQ+JiYgZXZlbnQpCit7CisgICAgbV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChXVEZN
b3ZlKGV2ZW50KSk7Cit9CisjZW5kaWYKKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVs
ZVJlc29sdmVQZW5kaW5nUGxheVByb21pc2VzKCkKIHsKICAgICBtX3Byb21pc2VUYXNrUXVldWUu
ZW5xdWV1ZVRhc2soW3RoaXMsIHBlbmRpbmdQbGF5UHJvbWlzZXMgPSBXVEZNb3ZlKG1fcGVuZGlu
Z1BsYXlQcm9taXNlcyldICgpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaAppbmRleCA4M2U1NmU3MjdiMDY5NWZhNWRiZDNmMGUyMGE1MzExM2U1NDU3NDNhLi5j
ZjBlZTlhY2IxOGMxYjdjOTFhN2ZmMTAxZDgxNmU3MmIzZDJiNDg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTg1LDcgKzE4NSw3IEBAIHB1YmxpYzoKICNpZmRl
ZiBfX09CSkNfXwogICAgIFBsYXRmb3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVyKCkgY29u
c3QgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKTsgfQogI2VuZGlmCi0gICAg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpOwogICAgIHZvaWQgc2V0VmlkZW9G
dWxsc2NyZWVuR3Jhdml0eShNZWRpYVBsYXllckVudW1zOjpWaWRlb0dyYXZpdHkpOwogICAgIE1l
ZGlhUGxheWVyRW51bXM6OlZpZGVvR3Jhdml0eSB2aWRlb0Z1bGxzY3JlZW5HcmF2aXR5KCkgY29u
c3QgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5HcmF2aXR5OyB9CiAjZW5kaWYKQEAgLTU3Niw2
ICs1NzYsMTAgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQmVjb21lRnVs
bHNjcmVlbkVsZW1lbnQoKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdpbGxF
eGl0RnVsbHNjcmVlbigpOwogCisjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCisg
ICAgdm9pZCBzY2hlZHVsZUV2ZW50KFJlZjxFdmVudD4mJik7CisjZW5kaWYKKwogICAgIGVudW0g
Y2xhc3MgQXV0b3BsYXlFdmVudFBsYXliYWNrU3RhdGUgeyBOb25lLCBQcmV2ZW50ZWRBdXRvcGxh
eSwgU3RhcnRlZFdpdGhVc2VyR2VzdHVyZSwgU3RhcnRlZFdpdGhvdXRVc2VyR2VzdHVyZSB9Owog
CiBwcm90ZWN0ZWQ6CkBAIC02MTMsNyArNjE3LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdXBk
YXRlTWVkaWFDb250cm9sc0FmdGVyUHJlc2VudGF0aW9uTW9kZUNoYW5nZSgpOwogI2VuZGlmCiAK
LSAgICB2b2lkIHNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnROYW1lKTsKKyAg
ICB2b2lkIHNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYpOwogCiBwcml2YXRlOgogICAg
IHZvaWQgY3JlYXRlTWVkaWFQbGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0Vs
ZW1lbnQuY3BwCmluZGV4IGQ5YzMzNmMxYWIwMmIwMzE3M2RiMjEwZDdkZDViMGE3ZmMwMGNiYWIu
LmEzMGU1ODM0NWM1YTE0ZTNjNmEzZjUyZWJiMzMyNzkyMzkxZGFmY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcApAQCAtNDkyLDkgKzQ5Miw3IEBAIHZvaWQgSFRN
TFZpZGVvRWxlbWVudDo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFZpZGVvRnVsbHNjcmVlbk1vZGUg
bW9kZSkKICAgICAgICAgICAgIEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9k
ZSB0YXJnZXRWaWRlb1ByZXNlbnRhdGlvbk1vZGUgPSB0b1ByZXNlbnRhdGlvbk1vZGUobW9kZSk7
CiAgICAgICAgICAgICBIVE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGUgc291
cmNlVmlkZW9QcmVzZW50YXRpb25Nb2RlID0gdG9QcmVzZW50YXRpb25Nb2RlKGZ1bGxzY3JlZW5N
b2RlKCkpOwogCi0gICAgICAgICAgICBpZiAodGFyZ2V0VmlkZW9QcmVzZW50YXRpb25Nb2RlID09
IEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVy
ZSAmJiBzb3VyY2VWaWRlb1ByZXNlbnRhdGlvbk1vZGUgIT0gSFRNTFZpZGVvRWxlbWVudDo6Vmlk
ZW9QcmVzZW50YXRpb25Nb2RlOjpQaWN0dXJlSW5QaWN0dXJlKQotICAgICAgICAgICAgICAgIG1f
cGljdHVyZUluUGljdHVyZU9ic2VydmVyLT5kaWRFbnRlclBpY3R1cmVJblBpY3R1cmUoKTsKLSAg
ICAgICAgICAgIGVsc2UgaWYgKHRhcmdldFZpZGVvUHJlc2VudGF0aW9uTW9kZSAhPSBIVE1MVmlk
ZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUgJiYgc291
cmNlVmlkZW9QcmVzZW50YXRpb25Nb2RlID09IEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2Vu
dGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSkKKyAgICAgICAgICAgIGlmICh0YXJnZXRWaWRl
b1ByZXNlbnRhdGlvbk1vZGUgIT0gSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25N
b2RlOjpQaWN0dXJlSW5QaWN0dXJlICYmIHNvdXJjZVZpZGVvUHJlc2VudGF0aW9uTW9kZSA9PSBI
VE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUp
CiAgICAgICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEV4aXRQaWN0
dXJlSW5QaWN0dXJlKCk7CiAgICAgICAgIH0KICNlbmRpZgpAQCAtNTA3LDE0ICs1MDUsNDQgQEAg
dm9pZCBIVE1MVmlkZW9FbGVtZW50OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQoVmlkZW9GdWxsc2Ny
ZWVuTW9kZSBtb2RlKQogfQogCiAjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCit2
b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkKK3sKKyAg
ICBtX3dhaXRpbmdGb3JQaWN0dXJlSW5QaWN0dXJlV2luZG93RnJhbWUgPSB0cnVlOworICAgIEhU
TUxNZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCk7Cit9CisKIHZvaWQg
SFRNTFZpZGVvRWxlbWVudDo6c2V0UGljdHVyZUluUGljdHVyZU9ic2VydmVyKFBpY3R1cmVJblBp
Y3R1cmVPYnNlcnZlciogb2JzZXJ2ZXIpCiB7CiAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2
ZXIgPSBvYnNlcnZlcjsKIH0KKwogI2VuZGlmCiAKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKSkKK3ZvaWQgSFRNTFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxv
YXRSZWN0IGZyYW1lKQoreworICAgIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVl
bkZyYW1lKGZyYW1lKTsKKworI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQorICAg
IGlmICh0b1ByZXNlbnRhdGlvbk1vZGUoZnVsbHNjcmVlbk1vZGUoKSkgIT0gVmlkZW9QcmVzZW50
YXRpb25Nb2RlOjpQaWN0dXJlSW5QaWN0dXJlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
bV93YWl0aW5nRm9yUGljdHVyZUluUGljdHVyZVdpbmRvd0ZyYW1lKSB7CisgICAgICAgIG1fd2Fp
dGluZ0ZvclBpY3R1cmVJblBpY3R1cmVXaW5kb3dGcmFtZSA9IGZhbHNlOworICAgICAgICBpZiAo
bV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIpCisgICAgICAgICAgICBtX3BpY3R1cmVJblBpY3R1
cmVPYnNlcnZlci0+ZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKEludFNpemUoZnJhbWUuc2l6ZSgp
KSk7CisKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX3BpY3R1cmVJblBpY3R1
cmVPYnNlcnZlcikKKyAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPnBpY3R1cmVJ
blBpY3R1cmVXaW5kb3dSZXNpemVkKEludFNpemUoZnJhbWUuc2l6ZSgpKSk7CisjZW5kaWYKK30K
KyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmV4aXRUb0Z1bGxzY3JlZW5Nb2RlV2l0aG91
dEFuaW1hdGlvbklmUG9zc2libGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlIGZyb21Nb2RlLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUgdG9Nb2RlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCA4
M2UwOTU0NGJmNmMyNGIyNzY2OTAxMTI2MWUwZjU2N2FlNWY0YTQ4Li5hM2FlNzFjZDcxZDg4ODQy
NDZjZDE1NGYwYTA2MjEyYjhjMDYzZmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxWaWRlb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0Vs
ZW1lbnQuaApAQCAtOTAsMTAgKzkwLDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIGZ1bGxzY3JlZW5N
b2RlQ2hhbmdlZChWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKIAogI2lmIEVOQUJMRShQSUNU
VVJFX0lOX1BJQ1RVUkVfQVBJKQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQmVjb21lRnVs
bHNjcmVlbkVsZW1lbnQoKSBmaW5hbDsKICAgICB2b2lkIHNldFBpY3R1cmVJblBpY3R1cmVPYnNl
cnZlcihQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIqKTsKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpKQorICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRS
ZWN0KSBmaW5hbDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9f
UFJFU0VOVEFUSU9OX01PREUpCiAgICAgdm9pZCBleGl0VG9GdWxsc2NyZWVuTW9kZVdpdGhvdXRB
bmltYXRpb25JZlBvc3NpYmxlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSBmcm9tTW9kZSwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
IHRvTW9kZSk7CiAjZW5kaWYKQEAgLTEzMSw2ICsxMzYsNyBAQCBwcml2YXRlOgogICAgIHVuc2ln
bmVkIG1fbGFzdFJlcG9ydGVkVmlkZW9IZWlnaHQgeyAwIH07CiAKICNpZiBFTkFCTEUoUElDVFVS
RV9JTl9QSUNUVVJFX0FQSSkKKyAgICBib29sIG1fd2FpdGluZ0ZvclBpY3R1cmVJblBpY3R1cmVX
aW5kb3dGcmFtZSB7IGZhbHNlIH07CiAgICAgUGljdHVyZUluUGljdHVyZU9ic2VydmVyKiBtX3Bp
Y3R1cmVJblBpY3R1cmVPYnNlcnZlciB7IG51bGxwdHIgfTsKICNlbmRpZgogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmgKaW5kZXgg
YWU0MDY3MDU2Y2YzNTRjZWYwY2I3NWQyZDczYzMwNTlkYTQwZWVmOS4uYTAzYzhlMjQwZGIyMDMz
MTBkZDNmMzA3NGNlN2VmNjMwNjU1ZGM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmgKQEAgLTMyLDggKzMyLDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgUGljdHVyZUluUGljdHVyZU9ic2VydmVyIDogcHVibGljIENh
bk1ha2VXZWFrUHRyPFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlcj4gewogcHVibGljOgogICAgIHZp
cnR1YWwgflBpY3R1cmVJblBpY3R1cmVPYnNlcnZlcigpIHsgfTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRl
clBpY3R1cmVJblBpY3R1cmUoSW50U2l6ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0
UGljdHVyZUluUGljdHVyZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGljdHVyZUluUGljdHVy
ZVdpbmRvd1Jlc2l6ZWQoSW50U2l6ZSkgPSAwOwogfTsKIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>