<?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>220651</bug_id>
          
          <creation_ts>2021-01-15 01:49:26 -0800</creation_ts>
          <short_desc>[GStreamer] Clean-up the TextSink</short_desc>
          <delta_ts>2021-01-15 06:00:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1719818</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-15 01:49:26 -0800</bug_when>
    <thetext>Currently the text-sink implementation is spread between a custom AppSink sub-class and some AppSink code in the player. In order to reduce clutter in the player, this sink could be a bin and the implementation could host the appsink implementation details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719831</commentid>
    <comment_count>1</comment_count>
      <attachid>417691</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-15 02:41:11 -0800</bug_when>
    <thetext>Created attachment 417691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719832</commentid>
    <comment_count>2</comment_count>
      <attachid>417691</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2021-01-15 02:50:43 -0800</bug_when>
    <thetext>Comment on attachment 417691
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/TextSinkGStreamer.cpp:84
&gt; +    g_object_set(priv-&gt;appSink.get(), &quot;emit-signals&quot;, true, &quot;enable-last-sample&quot;, false, &quot;caps&quot;, textCaps.get(), nullptr);

I think these should be TRUE and FALSE

&gt; Source/WebCore/platform/graphics/gstreamer/TextSinkGStreamer.cpp:88
&gt; +        auto sample = adoptGRef(gst_app_sink_pull_sample(GST_APP_SINK(appSink)));
&gt; +        webkitTextSinkHandleSample(sink, WTFMove(sample));

What about webkitTextSinkHandleSample(sink, adoptGRef(gst_app_sink_pull_sample(GST_APP_SINK(appSink)))); ?

&gt; Source/WebCore/platform/graphics/gstreamer/TextSinkGStreamer.cpp:94
&gt; +        auto sample = adoptGRef(gst_app_sink_pull_preroll(GST_APP_SINK(appSink)));
&gt; +        webkitTextSinkHandleSample(sink, WTFMove(sample));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719834</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-15 03:11:30 -0800</bug_when>
    <thetext>WeakPtr asserts in debug, this needs another iteration :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719837</commentid>
    <comment_count>4</comment_count>
      <attachid>417692</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-15 03:49:20 -0800</bug_when>
    <thetext>Created attachment 417692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719843</commentid>
    <comment_count>5</comment_count>
      <attachid>417692</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2021-01-15 05:25:24 -0800</bug_when>
    <thetext>Comment on attachment 417692
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/TextSinkGStreamer.cpp:130
&gt; +GstElement* webkitTextSinkNew(WeakPtr&lt;MediaPlayerPrivateGStreamer&gt; player)

I think you can &amp;&amp; here and move when assigning to the priv</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719850</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-15 06:00:00 -0800</bug_when>
    <thetext>Committed r271517: &lt;https://trac.webkit.org/changeset/271517&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719851</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-15 06:00:42 -0800</bug_when>
    <thetext>&lt;rdar://problem/73246106&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417691</attachid>
            <date>2021-01-15 02:41:11 -0800</date>
            <delta_ts>2021-01-15 03:49:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220651-20210115024109.patch</filename>
            <type>text/plain</type>
            <size>17325</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNiYzcyMmEyNDUzYTIy
MGM2OGMyMDViMDlhNWJhZGNjYTFmYzAxMy4uM2YzYmU1NzkyMWIyYmQwNjJkNDI0YzgxMjk5NmQz
N2QyZmVmMTM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAxLTE1ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBDbGVhbi11cCB0aGUgVGV4dFNpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMDY1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoZSBHU3RyZWFtZXIgc2luayB1c2VkIHRvIGNvbGxlY3QgV2ViVlRU
IGN1ZXMgaXMgbm93IG1vcmUgc2VsZi1jb250YWluZWQgYW5kIHVzZXMgdGhlCisgICAgICAgIHBs
YXllciBvbmx5IHRvIGhhbmQtb2ZmIHNhbXBsZXMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgVGV4dFRy
YWNrIGltcGxlbWVudGF0aW9uIGZvciBmdXJ0aGVyCisgICAgICAgIHByb2Nlc3NpbmcuIFRoaXMg
aXMgb25seSBhIHJlZmFjdG9yaW5nLCBleGlzdGluZyB0ZXN0cyBpbiBtZWRpYS90cmFjayBjb3Zl
ciB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVUZXh0U2FtcGxlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UZXh0U2lua0dT
dHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJraXRUZXh0U2lua0hhbmRsZVNhbXBsZSk6CisgICAg
ICAgICh3ZWJraXRUZXh0U2lua0NvbnN0cnVjdGVkKToKKyAgICAgICAgKHdlYmtpdFRleHRTaW5r
UXVlcnkpOgorICAgICAgICAod2Via2l0X3RleHRfc2lua19jbGFzc19pbml0KToKKyAgICAgICAg
KHdlYmtpdFRleHRTaW5rTmV3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVGV4dFNpbmtHU3RyZWFtZXIuaDoKKwogMjAyMS0wMS0xNSAgUGhpbGlwcGUgTm9ybWFuZCAg
PHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gVUk8LT5XZWJQb2Nl
c3MgSVBDIG5lZWRlZCBmb3IgZW51bWVyYXRlRGV2aWNlcyBzdXBwb3J0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDEyZjhkNzlkYzJhMTI3
NGJmYTdjOWQ1NmFkODUxZTZkYTk0M2YwYjMuLmNmMTEwZTQxNzFiYTQxMmUxMDgyZDEyYTEyMDcy
MTY1MjgyMjc1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCkBAIC0xMjE3LDM5ICsxMjE3LDE2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZlRleHQoKQogICAgIHB1cmdlSW52YWxpZFRleHRUcmFj
a3ModmFsaWRUZXh0U3RyZWFtcyk7CiB9CiAKLUdzdEZsb3dSZXR1cm4gTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpuZXdUZXh0U2FtcGxlQ2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyKiBwbGF5ZXIpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxl
VGV4dFNhbXBsZShHc3RTYW1wbGUqIHNhbXBsZSwgY29uc3QgY2hhciogc3RyZWFtSWQpCiB7Ci0g
ICAgcGxheWVyLT5uZXdUZXh0U2FtcGxlKCk7Ci0gICAgcmV0dXJuIEdTVF9GTE9XX09LOwotfQot
Ci12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bmV3VGV4dFNhbXBsZSgpCi17Ci0g
ICAgaWYgKCFtX3RleHRBcHBTaW5rKQotICAgICAgICByZXR1cm47Ci0KLSAgICBHUmVmUHRyPEdz
dEV2ZW50PiBzdHJlYW1TdGFydEV2ZW50ID0gYWRvcHRHUmVmKAotICAgICAgICBnc3RfcGFkX2dl
dF9zdGlja3lfZXZlbnQobV90ZXh0QXBwU2lua1BhZC5nZXQoKSwgR1NUX0VWRU5UX1NUUkVBTV9T
VEFSVCwgMCkpOwotCi0gICAgR1JlZlB0cjxHc3RTYW1wbGU+IHNhbXBsZTsKLSAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUobV90ZXh0QXBwU2luay5nZXQoKSwgInB1bGwtc2FtcGxlIiwgJnNhbXBs
ZS5vdXRQdHIoKSwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHNhbXBsZSk7Ci0KLSAgICBpZiAoc3Ry
ZWFtU3RhcnRFdmVudCkgewotICAgICAgICBib29sIGZvdW5kID0gRkFMU0U7Ci0gICAgICAgIGNv
bnN0IGdjaGFyKiBpZDsKLSAgICAgICAgZ3N0X2V2ZW50X3BhcnNlX3N0cmVhbV9zdGFydChzdHJl
YW1TdGFydEV2ZW50LmdldCgpLCAmaWQpOwotICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90
ZXh0VHJhY2tzLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICBpZiAoIXN0cmNtcCh0cmFjay0+c3Ry
ZWFtSWQoKS51dGY4KCkuZGF0YSgpLCBpZCkpIHsKLSAgICAgICAgICAgICAgICB0cmFjay0+aGFu
ZGxlU2FtcGxlKHNhbXBsZSk7Ci0gICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOwotICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQorICAgIGZvciAoYXV0byYgdHJhY2sgOiBt
X3RleHRUcmFja3MudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFzdHJjbXAodHJhY2stPnN0cmVh
bUlkKCkudXRmOCgpLmRhdGEoKSwgc3RyZWFtSWQpKSB7CisgICAgICAgICAgICB0cmFjay0+aGFu
ZGxlU2FtcGxlKHNhbXBsZSk7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAg
ICAgaWYgKCFmb3VuZCkKLSAgICAgICAgICAgIEdTVF9XQVJOSU5HKCJHb3Qgc2FtcGxlIHdpdGgg
dW5rbm93biBzdHJlYW0gSUQgJXMuIiwgaWQpOwotICAgIH0gZWxzZQotICAgICAgICBHU1RfV0FS
TklORygiVW5hYmxlIHRvIGhhbmRsZSBzYW1wbGUgd2l0aCBubyBzdHJlYW0gc3RhcnQgZXZlbnQu
Iik7CisgICAgfQorCisgICAgR1NUX1dBUk5JTkdfT0JKRUNUKG1fcGlwZWxpbmUuZ2V0KCksICJH
b3Qgc2FtcGxlIHdpdGggdW5rbm93biBzdHJlYW0gSUQgJXMuIiwgc3RyZWFtSWQpOwogfQogCiBN
ZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybUR1cmF0aW9uKCkg
Y29uc3QKQEAgLTI3ODgsMTcgKzI3NjUsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYKICAg
ICBBU1NFUlQodGV4dENvbWJpbmVyKTsKICAgICBnX29iamVjdF9zZXQobV9waXBlbGluZS5nZXQo
KSwgInRleHQtc3RyZWFtLWNvbWJpbmVyIiwgdGV4dENvbWJpbmVyLCBudWxscHRyKTsKIAotICAg
IG1fdGV4dEFwcFNpbmsgPSB3ZWJraXRUZXh0U2lua05ldygpOwotICAgIEFTU0VSVChtX3RleHRB
cHBTaW5rKTsKLQotICAgIG1fdGV4dEFwcFNpbmtQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRf
Z2V0X3N0YXRpY19wYWQobV90ZXh0QXBwU2luay5nZXQoKSwgInNpbmsiKSk7Ci0gICAgQVNTRVJU
KG1fdGV4dEFwcFNpbmtQYWQpOwotCi0gICAgYXV0byB0ZXh0Q2FwcyA9IGFkb3B0R1JlZihnc3Rf
Y2Fwc19uZXdfZW1wdHlfc2ltcGxlKCJhcHBsaWNhdGlvbi94LXN1YnRpdGxlLXZ0dCIpKTsKLSAg
ICBnX29iamVjdF9zZXQobV90ZXh0QXBwU2luay5nZXQoKSwgImVtaXQtc2lnbmFscyIsIFRSVUUs
ICJlbmFibGUtbGFzdC1zYW1wbGUiLCBGQUxTRSwgImNhcHMiLCB0ZXh0Q2Fwcy5nZXQoKSwgbnVs
bHB0cik7Ci0gICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fdGV4dEFwcFNpbmsuZ2V0KCks
ICJuZXctc2FtcGxlIiwgR19DQUxMQkFDSyhuZXdUZXh0U2FtcGxlQ2FsbGJhY2spLCB0aGlzKTsK
KyAgICBtX3RleHRTaW5rID0gd2Via2l0VGV4dFNpbmtOZXcobWFrZVdlYWtQdHIoKnRoaXMpKTsK
KyAgICBBU1NFUlQobV90ZXh0U2luayk7CiAKLSAgICBnX29iamVjdF9zZXQobV9waXBlbGluZS5n
ZXQoKSwgInRleHQtc2luayIsIG1fdGV4dEFwcFNpbmsuZ2V0KCksIG51bGxwdHIpOworICAgIGdf
b2JqZWN0X3NldChtX3BpcGVsaW5lLmdldCgpLCAidGV4dC1zaW5rIiwgbV90ZXh0U2luay5nZXQo
KSwgbnVsbHB0cik7CiAKICAgICBpZiAoIW1fYXVkaW9TaW5rKQogICAgICAgICBtX2F1ZGlvU2lu
ayA9IGNyZWF0ZUF1ZGlvU2luaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5oCmluZGV4IDkwZDQ5ZDY0MGZhNmZiODZiZDkwNDg4NzhiMzcxOTQwMDYzNDk1
M2MuLjc5MGY2NDBkNGZhNzBiZDQ5OGYyNDVhZmEyNjU1YjZhZDhjMDc0OGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTIyMyw2ICsyMjMsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBmbHVzaEN1cnJlbnRCdWZmZXIoKTsKICNlbmRpZgogCisgICAg
dm9pZCBoYW5kbGVUZXh0U2FtcGxlKEdzdFNhbXBsZSosIGNvbnN0IGNoYXIqIHN0cmVhbUlkKTsK
KwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXI7IH0KICAgICBjb25zdCBjaGFyKiBsb2dDbGFz
c05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyIjsgfQpAQCAtMjk2LDcgKzI5OCw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIG5vdGlmeVBs
YXllck9mVmlkZW8oKTsKICAgICB2b2lkIG5vdGlmeVBsYXllck9mQXVkaW8oKTsKICAgICB2b2lk
IG5vdGlmeVBsYXllck9mVGV4dCgpOwotICAgIHZvaWQgbmV3VGV4dFNhbXBsZSgpOwogCiAgICAg
dm9pZCBlbnN1cmVBdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAgICAgdm9pZCBzZXRBdWRpb1N0cmVh
bVByb3BlcnRpZXMoR09iamVjdCopOwpAQCAtMzA3LDcgKzMwOCw2IEBAIHByb3RlY3RlZDoKICAg
ICBzdGF0aWMgdm9pZCB2aWRlb0NoYW5nZWRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIqKTsKICAgICBzdGF0aWMgdm9pZCBhdWRpb0NoYW5nZWRDYWxsYmFjayhNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIqKTsKICAgICBzdGF0aWMgdm9pZCB0ZXh0Q2hhbmdlZENhbGxiYWNr
KE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciopOwotICAgIHN0YXRpYyBHc3RGbG93UmV0dXJu
IG5ld1RleHRTYW1wbGVDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqKTsKIAog
ICAgIHZvaWQgdGltZUNoYW5nZWQoKTsKICAgICB2b2lkIGxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5
ZXI6Ok5ldHdvcmtTdGF0ZSwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcsIGJvb2wgZm9yY2VOb3RpZmljYXRpb25zID0gZmFsc2Up
OwpAQCAtNDU2LDggKzQ1Niw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIEF0b21pYzxib29s
PiBtX2lzUGxheWVyU2h1dHRpbmdEb3duOwotICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV90ZXh0
QXBwU2luazsKLSAgICBHUmVmUHRyPEdzdFBhZD4gbV90ZXh0QXBwU2lua1BhZDsKKyAgICBHUmVm
UHRyPEdzdEVsZW1lbnQ+IG1fdGV4dFNpbms7CiAgICAgR3N0U3RydWN0dXJlKiBtX21lZGlhTG9j
YXRpb25zIHsgbnVsbHB0ciB9OwogICAgIGludCBtX21lZGlhTG9jYXRpb25DdXJyZW50SW5kZXgg
eyAwIH07CiAgICAgYm9vbCBtX2lzUGxheWJhY2tSYXRlUGF1c2VkIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UZXh0U2lu
a0dTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVGV4dFNpbmtHU3RyZWFtZXIuY3BwCmluZGV4IDU2NmFmMjRhNTU5MDFjMGZkMjQ5NGU5NTU1
MzIyN2U2NDhiZDA1NDguLmU1Y2IyM2EzMjJjM2M3OTA1NDQ4Mjc5NDQwZDFjYzhiMWY0NGQwODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9U
ZXh0U2lua0dTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1RleHRTaW5rR1N0cmVhbWVyLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQ2FibGUgVGVsZXZpc2lvbiBMYWJvcmF0b3JpZXMsIEluYy4K
KyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI0LDc4ICsyNSwxMTIgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiVGV4dFNpbmtHU3RyZWFtZXIuaCIKKwogI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEdTVFJFQU1FUikKIAotI2luY2x1ZGUgIlRleHRTaW5rR1N0cmVhbWVyLmgiCisjaW5jbHVk
ZSAiR1N0cmVhbWVyQ29tbW9uLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmgiCisjaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzaW5rLmg+CisjaW5jbHVkZSA8d3RmL2ds
aWIvV1RGR1R5cGUuaD4KIAogR1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJQyh3ZWJraXRUZXh0U2lu
a0RlYnVnKTsKICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdlYmtpdFRleHRTaW5rRGVidWcKIAot
I2RlZmluZSB3ZWJraXRfdGV4dF9zaW5rX3BhcmVudF9jbGFzcyBwYXJlbnRfY2xhc3MKLUdfREVG
SU5FX1RZUEVfV0lUSF9DT0RFKFdlYktpdFRleHRTaW5rLCB3ZWJraXRfdGV4dF9zaW5rLCBHU1Rf
VFlQRV9BUFBfU0lOSywKLSAgICBHU1RfREVCVUdfQ0FURUdPUllfSU5JVCh3ZWJraXRUZXh0U2lu
a0RlYnVnLCAid2Via2l0dGV4dHNpbmsiLCAwLAotICAgICAgICAid2Via2l0IHRleHQgc2luayIp
KTsKLQotZW51bSB7Ci0gICAgUHJvcDAsCi0gICAgUHJvcFN5bmMsCi0gICAgUHJvcExhc3QKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdHJ1Y3QgX1dlYktpdFRleHRTaW5rUHJpdmF0ZSB7
CisgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBhcHBTaW5rOworICAgIFdlYWtQdHI8TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyPiBtZWRpYVBsYXllclByaXZhdGU7CisgICAgY29uc3QgY2hhciog
c3RyZWFtSWQgeyBudWxscHRyIH07CiB9OwogCi1zdGF0aWMgdm9pZCB3ZWJraXRfdGV4dF9zaW5r
X2luaXQoV2ViS2l0VGV4dFNpbmsqIHNpbmspCi17Ci0gICAgLyogV2Ugd2FudCB0byBnZXQgY3Vl
cyBhcyBxdWlja2x5IGFzIHBvc3NpYmxlIHNvIFdlYktpdCBoYXMgdGltZSB0byBoYW5kbGUgdGhl
bSwKLSAgICAgKiBhbmQgd2UgZG9uJ3Qgd2FudCBjdWVzIHRvIGJsb2NrIHdoZW4gdGhleSBjb21l
IGluIHRoZSB3cm9uZyBvcmRlci4gKi8KLSAgICBnc3RfYmFzZV9zaW5rX3NldF9zeW5jKEdTVF9C
QVNFX1NJTksoc2luayksIGZhbHNlKTsKLX0KKyNkZWZpbmUgd2Via2l0X3RleHRfc2lua19wYXJl
bnRfY2xhc3MgcGFyZW50X2NsYXNzCitXRUJLSVRfREVGSU5FX1RZUEVfV0lUSF9DT0RFKFdlYktp
dFRleHRTaW5rLCB3ZWJraXRfdGV4dF9zaW5rLCBHU1RfVFlQRV9CSU4sCisgICAgR1NUX0RFQlVH
X0NBVEVHT1JZX0lOSVQod2Via2l0VGV4dFNpbmtEZWJ1ZywgIndlYmtpdHRleHRzaW5rIiwgMCwg
IndlYmtpdCB0ZXh0IHNpbmsiKSkKIAotc3RhdGljIHZvaWQgd2Via2l0VGV4dFNpbmtHZXRQcm9w
ZXJ0eShHT2JqZWN0KiwgZ3VpbnQgLyogcHJvcGVydHlJZCAqLywKLSAgICBHVmFsdWUqLCBHUGFy
YW1TcGVjKikKK3N0YXRpYyB2b2lkIHdlYmtpdFRleHRTaW5rSGFuZGxlU2FtcGxlKFdlYktpdFRl
eHRTaW5rKiBzZWxmLCBHUmVmUHRyPEdzdFNhbXBsZT4mJiBzYW1wbGUpCiB7Ci0gICAgLyogRG8g
bm90aGluZyB3aXRoIFByb3BTeW5jICovCisgICAgYXV0byogcHJpdiA9IHNlbGYtPnByaXY7Cisg
ICAgaWYgKCFwcml2LT5zdHJlYW1JZCkgeworICAgICAgICBhdXRvIHBhZCA9IGFkb3B0R1JlZihn
c3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChwcml2LT5hcHBTaW5rLmdldCgpLCAic2luayIpKTsK
KyAgICAgICAgYXV0byBzdHJlYW1TdGFydEV2ZW50ID0gYWRvcHRHUmVmKGdzdF9wYWRfZ2V0X3N0
aWNreV9ldmVudChwYWQuZ2V0KCksIEdTVF9FVkVOVF9TVFJFQU1fU1RBUlQsIDApKTsKKworICAg
ICAgICBpZiAoc3RyZWFtU3RhcnRFdmVudCkKKyAgICAgICAgICAgIGdzdF9ldmVudF9wYXJzZV9z
dHJlYW1fc3RhcnQoc3RyZWFtU3RhcnRFdmVudC5nZXQoKSwgJnByaXYtPnN0cmVhbUlkKTsKKyAg
ICB9CisKKyAgICBpZiAocHJpdi0+c3RyZWFtSWQpIHsKKyAgICAgICAgcHJpdi0+bWVkaWFQbGF5
ZXJQcml2YXRlLT5oYW5kbGVUZXh0U2FtcGxlKHNhbXBsZS5nZXQoKSwgcHJpdi0+c3RyZWFtSWQp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEdTVF9XQVJOSU5HX09CSkVDVChzZWxmLCAi
VW5hYmxlIHRvIGhhbmRsZSBzYW1wbGUgd2l0aCBubyBzdHJlYW0gc3RhcnQgZXZlbnQuIik7CiB9
CiAKLXN0YXRpYyB2b2lkIHdlYmtpdFRleHRTaW5rU2V0UHJvcGVydHkoR09iamVjdCosIGd1aW50
IC8qIHByb3BlcnR5SWQgKi8sCi0gICAgY29uc3QgR1ZhbHVlKiwgR1BhcmFtU3BlYyopCitzdGF0
aWMgdm9pZCB3ZWJraXRUZXh0U2lua0NvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKIHsKLSAg
ICAvKiBEbyBub3RoaW5nIHdpdGggUHJvcFN5bmMgKi8KKyAgICBHU1RfQ0FMTF9QQVJFTlQoR19P
QkpFQ1RfQ0xBU1MsIGNvbnN0cnVjdGVkLCAob2JqZWN0KSk7CisKKyAgICBhdXRvKiBzaW5rID0g
V0VCS0lUX1RFWFRfU0lOSyhvYmplY3QpOworICAgIGF1dG8qIHByaXYgPSBzaW5rLT5wcml2Owor
CisgICAgcHJpdi0+YXBwU2luayA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXBwc2luayIs
IG51bGxwdHIpOworICAgIGdzdF9iaW5fYWRkKEdTVF9CSU5fQ0FTVChzaW5rKSwgcHJpdi0+YXBw
U2luay5nZXQoKSk7CisKKyAgICBhdXRvIHBhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRf
c3RhdGljX3BhZChwcml2LT5hcHBTaW5rLmdldCgpLCAic2luayIpKTsKKyAgICBnc3RfZWxlbWVu
dF9hZGRfcGFkKEdTVF9FTEVNRU5UX0NBU1Qoc2luayksIGdzdF9naG9zdF9wYWRfbmV3KCJzaW5r
IiwgcGFkLmdldCgpKSk7CisKKyAgICBhdXRvIHRleHRDYXBzID0gYWRvcHRHUmVmKGdzdF9jYXBz
X25ld19lbXB0eV9zaW1wbGUoImFwcGxpY2F0aW9uL3gtc3VidGl0bGUtdnR0IikpOworICAgIGdf
b2JqZWN0X3NldChwcml2LT5hcHBTaW5rLmdldCgpLCAiZW1pdC1zaWduYWxzIiwgdHJ1ZSwgImVu
YWJsZS1sYXN0LXNhbXBsZSIsIGZhbHNlLCAiY2FwcyIsIHRleHRDYXBzLmdldCgpLCBudWxscHRy
KTsKKworICAgIGdfc2lnbmFsX2Nvbm5lY3QocHJpdi0+YXBwU2luay5nZXQoKSwgIm5ldy1zYW1w
bGUiLCBHX0NBTExCQUNLKCtbXShHc3RFbGVtZW50KiBhcHBTaW5rLCBXZWJLaXRUZXh0U2luayog
c2luaykgLT4gR3N0Rmxvd1JldHVybiB7CisgICAgICAgIGF1dG8gc2FtcGxlID0gYWRvcHRHUmVm
KGdzdF9hcHBfc2lua19wdWxsX3NhbXBsZShHU1RfQVBQX1NJTksoYXBwU2luaykpKTsKKyAgICAg
ICAgd2Via2l0VGV4dFNpbmtIYW5kbGVTYW1wbGUoc2luaywgV1RGTW92ZShzYW1wbGUpKTsKKyAg
ICAgICAgcmV0dXJuIEdTVF9GTE9XX09LOworICAgIH0pLCBzaW5rKTsKKworICAgIGdfc2lnbmFs
X2Nvbm5lY3QocHJpdi0+YXBwU2luay5nZXQoKSwgIm5ldy1wcmVyb2xsIiwgR19DQUxMQkFDSygr
W10oR3N0RWxlbWVudCogYXBwU2luaywgV2ViS2l0VGV4dFNpbmsqIHNpbmspIC0+IEdzdEZsb3dS
ZXR1cm4geworICAgICAgICBhdXRvIHNhbXBsZSA9IGFkb3B0R1JlZihnc3RfYXBwX3NpbmtfcHVs
bF9wcmVyb2xsKEdTVF9BUFBfU0lOSyhhcHBTaW5rKSkpOworICAgICAgICB3ZWJraXRUZXh0U2lu
a0hhbmRsZVNhbXBsZShzaW5rLCBXVEZNb3ZlKHNhbXBsZSkpOworICAgICAgICByZXR1cm4gR1NU
X0ZMT1dfT0s7CisgICAgfSksIHNpbmspOworCisgICAgLy8gV2Ugd2FudCB0byBnZXQgY3VlcyBh
cyBxdWlja2x5IGFzIHBvc3NpYmxlIHNvIFdlYktpdCBoYXMgdGltZSB0byBoYW5kbGUgdGhlbSwK
KyAgICAvLyBhbmQgd2UgZG9uJ3Qgd2FudCBjdWVzIHRvIGJsb2NrIHdoZW4gdGhleSBjb21lIGlu
IHRoZSB3cm9uZyBvcmRlci4KKyAgICBnc3RfYmFzZV9zaW5rX3NldF9zeW5jKEdTVF9CQVNFX1NJ
TktfQ0FTVChzaW5rLT5wcml2LT5hcHBTaW5rLmdldCgpKSwgZmFsc2UpOwogfQogCi1zdGF0aWMg
Z2Jvb2xlYW4gd2Via2l0VGV4dFNpbmtRdWVyeShHc3RFbGVtZW50ICplbGVtZW50LCBHc3RRdWVy
eSAqcXVlcnkpCitzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0VGV4dFNpbmtRdWVyeShHc3RFbGVtZW50
KiBlbGVtZW50LCBHc3RRdWVyeSogcXVlcnkpCiB7CiAgICAgc3dpdGNoIChHU1RfUVVFUllfVFlQ
RShxdWVyeSkpIHsKICAgICBjYXNlIEdTVF9RVUVSWV9EVVJBVElPTjoKICAgICBjYXNlIEdTVF9R
VUVSWV9QT1NJVElPTjoKLSAgICAgICAgLyogSWdub3JlIGR1cmF0aW9uIGFuZCBwb3NpdGlvbiBi
ZWNhdXNlIHdlIGRvbid0IHdhbnQgdGhlIHNlZWsgYmFyIHRvIGJlCi0gICAgICAgICAqIGJhc2Vk
IG9uIHdoZXJlIHRoZSBjdWVzIGFyZS4gKi8KKyAgICAgICAgLy8gSWdub3JlIGR1cmF0aW9uIGFu
ZCBwb3NpdGlvbiBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdGhlIHNlZWsgYmFyIHRvIGJlIGJhc2Vk
IG9uIHdoZXJlIHRoZSBjdWVzIGFyZS4KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGRlZmF1
bHQ6Ci0gICAgICAgIFdlYktpdFRleHRTaW5rKiBzaW5rID0gV0VCS0lUX1RFWFRfU0lOSyhlbGVt
ZW50KTsKLSAgICAgICAgR3N0RWxlbWVudCogcGFyZW50ID0gR1NUX0VMRU1FTlQoJnNpbmstPnBh
cmVudCk7Ci0gICAgICAgIHJldHVybiBHU1RfRUxFTUVOVF9DTEFTUyhwYXJlbnRfY2xhc3MpLT5x
dWVyeShwYXJlbnQsIHF1ZXJ5KTsKKyAgICAgICAgcmV0dXJuIEdTVF9DQUxMX1BBUkVOVF9XSVRI
X0RFRkFVTFQoR1NUX0VMRU1FTlRfQ0xBU1MsIHF1ZXJ5LCAoZWxlbWVudCwgcXVlcnkpLCBUUlVF
KTsKICAgICB9CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF90ZXh0X3NpbmtfY2xhc3NfaW5pdChX
ZWJLaXRUZXh0U2lua0NsYXNzKiBrbGFzcykKIHsKLSAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RD
bGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKLSAgICBHc3RFbGVtZW50Q2xhc3MqIGVsZW1l
bnRDbGFzcyA9IEdTVF9FTEVNRU5UX0NMQVNTKGtsYXNzKTsKKyAgICBhdXRvKiBnb2JqZWN0Q2xh
c3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7CisgICAgYXV0byogZWxlbWVudENsYXNzID0gR1NU
X0VMRU1FTlRfQ0xBU1Moa2xhc3MpOwogCi0gICAgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X21ldGFk
YXRhKGVsZW1lbnRDbGFzcywgIldlYktpdCB0ZXh0IHNpbmsiLCAiR2VuZXJpYyIsCi0gICAgICAg
ICJBbiBhcHBzaW5rIHRoYXQgaWdub3JlcyB0aGUgc3luYyBwcm9wZXJ0eSBhbmQgcG9zaXRpb24g
YW5kIGR1cmF0aW9uIHF1ZXJpZXMiLAorICAgIGdzdF9lbGVtZW50X2NsYXNzX3NldF9tZXRhZGF0
YShlbGVtZW50Q2xhc3MsICJXZWJLaXQgdGV4dCBzaW5rIiwgR1NUX0VMRU1FTlRfRkFDVE9SWV9L
TEFTU19TSU5LLAorICAgICAgICAiV2ViS2l0J3MgdGV4dCBzaW5rIGNvbGxlY3RpbmcgY3VlcyBl
bmNvZGVkIGluIFdlYlZUVCBieSB0aGUgV2ViS2l0IHRleHQtY29tYmluZXIiLAogICAgICAgICAi
QnJlbmRhbiBMb25nIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4iKTsKIAotICAgIGdvYmplY3RDbGFz
cy0+Z2V0X3Byb3BlcnR5ID0gR1NUX0RFQlVHX0ZVTkNQVFIod2Via2l0VGV4dFNpbmtHZXRQcm9w
ZXJ0eSk7Ci0gICAgZ29iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSBHU1RfREVCVUdfRlVOQ1BU
Uih3ZWJraXRUZXh0U2lua1NldFByb3BlcnR5KTsKKyAgICBnb2JqZWN0Q2xhc3MtPmNvbnN0cnVj
dGVkID0gR1NUX0RFQlVHX0ZVTkNQVFIod2Via2l0VGV4dFNpbmtDb25zdHJ1Y3RlZCk7CiAgICAg
ZWxlbWVudENsYXNzLT5xdWVyeSA9IEdTVF9ERUJVR19GVU5DUFRSKHdlYmtpdFRleHRTaW5rUXVl
cnkpOwotCi0gICAgLyogT3ZlcnJpZGUgInN5bmMiIHNvIHBsYXlzaW5rIGRvZXNuJ3QgbWVzcyB3
aXRoIG91ciBhcHBzaW5rICovCi0gICAgZ19vYmplY3RfY2xhc3Nfb3ZlcnJpZGVfcHJvcGVydHko
Z29iamVjdENsYXNzLCBQcm9wU3luYywgInN5bmMiKTsKIH0KIAotR3N0RWxlbWVudCogd2Via2l0
VGV4dFNpbmtOZXcoKQorR3N0RWxlbWVudCogd2Via2l0VGV4dFNpbmtOZXcoV2Vha1B0cjxNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI+IHBsYXllcikKIHsKLSAgICByZXR1cm4gR1NUX0VMRU1F
TlQoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1RFWFRfU0lOSywgbnVsbHB0cikpOworICAgIGF1
dG8qIGVsZW1lbnQgPSBHU1RfRUxFTUVOVF9DQVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9U
RVhUX1NJTkssIG51bGxwdHIpKTsKKyAgICBhdXRvKiBzaW5rID0gV0VCS0lUX1RFWFRfU0lOSyhl
bGVtZW50KTsKKyAgICBzaW5rLT5wcml2LT5tZWRpYVBsYXllclByaXZhdGUgPSBwbGF5ZXI7Cisg
ICAgcmV0dXJuIGVsZW1lbnQ7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU8pICYmIFVTRShH
U1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvVGV4dFNpbmtHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9UZXh0U2lua0dTdHJlYW1lci5oCmluZGV4IDY2MWY3MmY2ZTFlMzhi
NDQ2Y2U0MzZhNGEwNDVmNWNmNzZmZWI5MDUuLjdkYWU1MmRiY2FhNWRhZTBjN2YyYmIwYWMzY2I1
NTNiNjlhNGNmZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9UZXh0U2lua0dTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UZXh0U2lua0dTdHJlYW1lci5oCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBDYWJsZSBUZWxldmlzaW9uIExhYm9yYXRvcmll
cywgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwKICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsMTEgKzI4LDE3IEBACiAKICNpZiBFTkFCTEUoVklERU8p
ICYmIFVTRShHU1RSRUFNRVIpCiAKLSNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUg
PGdzdC9hcHAvZ3N0YXBwc2luay5oPgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI7Cit9CisKK0dfQkVHSU5fREVDTFMKIAogI2RlZmluZSBXRUJLSVRfVFlQ
RV9URVhUX1NJTksgd2Via2l0X3RleHRfc2lua19nZXRfdHlwZSgpCitHVHlwZSB3ZWJraXRfdGV4
dF9zaW5rX2dldF90eXBlKHZvaWQpOwogCiAjZGVmaW5lIFdFQktJVF9URVhUX1NJTksob2JqKSAo
R19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1RFWFRfU0lOSywg
V2ViS2l0VGV4dFNpbmspKQogI2RlZmluZSBXRUJLSVRfVEVYVF9TSU5LX0NMQVNTKGtsYXNzKSAo
R19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgV0VCS0lUX1RZUEVfVEVYVF9TSU5LLCBX
ZWJLaXRUZXh0U2lua0NsYXNzKSkKQEAgLTQxLDIzICs0OCwxOSBAQAogCiB0eXBlZGVmIHN0cnVj
dCBfV2ViS2l0VGV4dFNpbmsgV2ViS2l0VGV4dFNpbms7CiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
VGV4dFNpbmtDbGFzcyBXZWJLaXRUZXh0U2lua0NsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktp
dFRleHRTaW5rUHJpdmF0ZSBXZWJLaXRUZXh0U2lua1ByaXZhdGU7CiAKIHN0cnVjdCBfV2ViS2l0
VGV4dFNpbmsgewotICAgIEdzdEFwcFNpbmsgcGFyZW50OworICAgIEdzdEJpbiBwYXJlbnQ7Cisg
ICAgV2ViS2l0VGV4dFNpbmtQcml2YXRlKiBwcml2OwogfTsKIAogc3RydWN0IF9XZWJLaXRUZXh0
U2lua0NsYXNzIHsKLSAgICBHc3RBcHBTaW5rQ2xhc3MgcGFyZW50Q2xhc3M7Ci0KLSAgICAvLyBG
dXR1cmUgcGFkZGluZwotICAgIHZvaWQgKCogX3dlYmtpdF9yZXNlcnZlZDEpKHZvaWQpOwotICAg
IHZvaWQgKCogX3dlYmtpdF9yZXNlcnZlZDIpKHZvaWQpOwotICAgIHZvaWQgKCogX3dlYmtpdF9y
ZXNlcnZlZDMpKHZvaWQpOwotICAgIHZvaWQgKCogX3dlYmtpdF9yZXNlcnZlZDQpKHZvaWQpOwot
ICAgIHZvaWQgKCogX3dlYmtpdF9yZXNlcnZlZDUpKHZvaWQpOwotICAgIHZvaWQgKCogX3dlYmtp
dF9yZXNlcnZlZDYpKHZvaWQpOworICAgIEdzdEJpbkNsYXNzIHBhcmVudENsYXNzOwogfTsKIAot
R3N0RWxlbWVudCogd2Via2l0VGV4dFNpbmtOZXcoKTsKK0dzdEVsZW1lbnQqIHdlYmtpdFRleHRT
aW5rTmV3KFdURjo6V2Vha1B0cjxXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+
KTsKKworR19FTkRfREVDTFMKIAogI2VuZGlmIC8vIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJF
QU1FUikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCAzNzI0ZWViYjM1NjY3M2QzY2U2YjU4YzhlOGNlZjc0Y2E0YzdiOGMzLi5kYTM0YjUxYTY1ZjE1
Yzc0Nzk0ODY2MThjMDJhMmI2NTM2MTU5NGM4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDEtMTUgIFBoaWxp
cHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJd
IENsZWFuLXVwIHRoZSBUZXh0U2luaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIwNjUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6IEFkZCBH
U3RyZWFtZXIgVGV4dFNpbmsgaW1wbGVtZW50YXRpb24gdG8gR09iamVjdAorICAgICAgICBjbGFz
c2VzIGFsbG93LWxpc3QuCisKIDIwMjEtMDEtMTUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFu
ZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIENsZWFuLXVwIHRoZSBUZXh0Q29t
YmluZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQppbmRleCAxZDQ5NTE3
MGYzNWI2ODkyOTZiODFjYjY3YTgyZDUzMDQ3NTMxYjAyLi4zMTE5Yjc4ZTdkZjFmZWEwMzZiNTIz
NTg2Y2YxZjk4OTdhZGE0NjczIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
LnB5CkBAIC0yMjMsNiArMjIzLDggQEAgX1BBVEhfUlVMRVNfU1BFQ0lGSUVSID0gWwogICAgICAg
b3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViQ29yZScsICdwbGF0Zm9ybScsICdncmFwaGljcycs
ICdnc3RyZWFtZXInLCAnVGV4dENvbWJpbmVyR1N0cmVhbWVyLmgnKSwKICAgICAgIG9zLnBhdGgu
am9pbignU291cmNlJywgJ1dlYkNvcmUnLCAncGxhdGZvcm0nLCAnZ3JhcGhpY3MnLCAnZ3N0cmVh
bWVyJywgJ1RleHRDb21iaW5lclBhZEdTdHJlYW1lci5jcHAnKSwKICAgICAgIG9zLnBhdGguam9p
bignU291cmNlJywgJ1dlYkNvcmUnLCAncGxhdGZvcm0nLCAnZ3JhcGhpY3MnLCAnZ3N0cmVhbWVy
JywgJ1RleHRDb21iaW5lclBhZEdTdHJlYW1lci5oJyksCisgICAgICBvcy5wYXRoLmpvaW4oJ1Nv
dXJjZScsICdXZWJDb3JlJywgJ3BsYXRmb3JtJywgJ2dyYXBoaWNzJywgJ2dzdHJlYW1lcicsICdU
ZXh0U2lua0dTdHJlYW1lci5jcHAnKSwKKyAgICAgIG9zLnBhdGguam9pbignU291cmNlJywgJ1dl
YkNvcmUnLCAncGxhdGZvcm0nLCAnZ3JhcGhpY3MnLCAnZ3N0cmVhbWVyJywgJ1RleHRTaW5rR1N0
cmVhbWVyLmgnKSwKICAgICAgIG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYkNvcmUnLCAncGxh
dGZvcm0nLCAnZ3JhcGhpY3MnLCAnZ3N0cmVhbWVyJywgJ1ZpZGVvU2lua0dTdHJlYW1lci5jcHAn
KSwKICAgICAgIG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYkNvcmUnLCAncGxhdGZvcm0nLCAn
Z3JhcGhpY3MnLCAnZ3N0cmVhbWVyJywgJ1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAnKSwK
ICAgICAgIG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYkNvcmUnLCAncGxhdGZvcm0nLCAnZ3Jh
cGhpY3MnLCAnZ3N0cmVhbWVyJywgJ1dlYktpdEF1ZGlvU2lua0dTdHJlYW1lci5jcHAnKSwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417692</attachid>
            <date>2021-01-15 03:49:20 -0800</date>
            <delta_ts>2021-01-15 05:25:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220651-20210115034918.patch</filename>
            <type>text/plain</type>
            <size>17503</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNiYzcyMmEyNDUzYTIy
MGM2OGMyMDViMDlhNWJhZGNjYTFmYzAxMy4uM2YzYmU1NzkyMWIyYmQwNjJkNDI0YzgxMjk5NmQz
N2QyZmVmMTM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAxLTE1ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBDbGVhbi11cCB0aGUgVGV4dFNpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMDY1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoZSBHU3RyZWFtZXIgc2luayB1c2VkIHRvIGNvbGxlY3QgV2ViVlRU
IGN1ZXMgaXMgbm93IG1vcmUgc2VsZi1jb250YWluZWQgYW5kIHVzZXMgdGhlCisgICAgICAgIHBs
YXllciBvbmx5IHRvIGhhbmQtb2ZmIHNhbXBsZXMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgVGV4dFRy
YWNrIGltcGxlbWVudGF0aW9uIGZvciBmdXJ0aGVyCisgICAgICAgIHByb2Nlc3NpbmcuIFRoaXMg
aXMgb25seSBhIHJlZmFjdG9yaW5nLCBleGlzdGluZyB0ZXN0cyBpbiBtZWRpYS90cmFjayBjb3Zl
ciB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVUZXh0U2FtcGxlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UZXh0U2lua0dT
dHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJraXRUZXh0U2lua0hhbmRsZVNhbXBsZSk6CisgICAg
ICAgICh3ZWJraXRUZXh0U2lua0NvbnN0cnVjdGVkKToKKyAgICAgICAgKHdlYmtpdFRleHRTaW5r
UXVlcnkpOgorICAgICAgICAod2Via2l0X3RleHRfc2lua19jbGFzc19pbml0KToKKyAgICAgICAg
KHdlYmtpdFRleHRTaW5rTmV3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVGV4dFNpbmtHU3RyZWFtZXIuaDoKKwogMjAyMS0wMS0xNSAgUGhpbGlwcGUgTm9ybWFuZCAg
PHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gVUk8LT5XZWJQb2Nl
c3MgSVBDIG5lZWRlZCBmb3IgZW51bWVyYXRlRGV2aWNlcyBzdXBwb3J0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDEyZjhkNzlkYzJhMTI3
NGJmYTdjOWQ1NmFkODUxZTZkYTk0M2YwYjMuLmNmMTEwZTQxNzFiYTQxMmUxMDgyZDEyYTEyMDcy
MTY1MjgyMjc1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCkBAIC0xMjE3LDM5ICsxMjE3LDE2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZlRleHQoKQogICAgIHB1cmdlSW52YWxpZFRleHRUcmFj
a3ModmFsaWRUZXh0U3RyZWFtcyk7CiB9CiAKLUdzdEZsb3dSZXR1cm4gTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpuZXdUZXh0U2FtcGxlQ2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyKiBwbGF5ZXIpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxl
VGV4dFNhbXBsZShHc3RTYW1wbGUqIHNhbXBsZSwgY29uc3QgY2hhciogc3RyZWFtSWQpCiB7Ci0g
ICAgcGxheWVyLT5uZXdUZXh0U2FtcGxlKCk7Ci0gICAgcmV0dXJuIEdTVF9GTE9XX09LOwotfQot
Ci12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bmV3VGV4dFNhbXBsZSgpCi17Ci0g
ICAgaWYgKCFtX3RleHRBcHBTaW5rKQotICAgICAgICByZXR1cm47Ci0KLSAgICBHUmVmUHRyPEdz
dEV2ZW50PiBzdHJlYW1TdGFydEV2ZW50ID0gYWRvcHRHUmVmKAotICAgICAgICBnc3RfcGFkX2dl
dF9zdGlja3lfZXZlbnQobV90ZXh0QXBwU2lua1BhZC5nZXQoKSwgR1NUX0VWRU5UX1NUUkVBTV9T
VEFSVCwgMCkpOwotCi0gICAgR1JlZlB0cjxHc3RTYW1wbGU+IHNhbXBsZTsKLSAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUobV90ZXh0QXBwU2luay5nZXQoKSwgInB1bGwtc2FtcGxlIiwgJnNhbXBs
ZS5vdXRQdHIoKSwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHNhbXBsZSk7Ci0KLSAgICBpZiAoc3Ry
ZWFtU3RhcnRFdmVudCkgewotICAgICAgICBib29sIGZvdW5kID0gRkFMU0U7Ci0gICAgICAgIGNv
bnN0IGdjaGFyKiBpZDsKLSAgICAgICAgZ3N0X2V2ZW50X3BhcnNlX3N0cmVhbV9zdGFydChzdHJl
YW1TdGFydEV2ZW50LmdldCgpLCAmaWQpOwotICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90
ZXh0VHJhY2tzLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICBpZiAoIXN0cmNtcCh0cmFjay0+c3Ry
ZWFtSWQoKS51dGY4KCkuZGF0YSgpLCBpZCkpIHsKLSAgICAgICAgICAgICAgICB0cmFjay0+aGFu
ZGxlU2FtcGxlKHNhbXBsZSk7Ci0gICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOwotICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQorICAgIGZvciAoYXV0byYgdHJhY2sgOiBt
X3RleHRUcmFja3MudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFzdHJjbXAodHJhY2stPnN0cmVh
bUlkKCkudXRmOCgpLmRhdGEoKSwgc3RyZWFtSWQpKSB7CisgICAgICAgICAgICB0cmFjay0+aGFu
ZGxlU2FtcGxlKHNhbXBsZSk7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAg
ICAgaWYgKCFmb3VuZCkKLSAgICAgICAgICAgIEdTVF9XQVJOSU5HKCJHb3Qgc2FtcGxlIHdpdGgg
dW5rbm93biBzdHJlYW0gSUQgJXMuIiwgaWQpOwotICAgIH0gZWxzZQotICAgICAgICBHU1RfV0FS
TklORygiVW5hYmxlIHRvIGhhbmRsZSBzYW1wbGUgd2l0aCBubyBzdHJlYW0gc3RhcnQgZXZlbnQu
Iik7CisgICAgfQorCisgICAgR1NUX1dBUk5JTkdfT0JKRUNUKG1fcGlwZWxpbmUuZ2V0KCksICJH
b3Qgc2FtcGxlIHdpdGggdW5rbm93biBzdHJlYW0gSUQgJXMuIiwgc3RyZWFtSWQpOwogfQogCiBN
ZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybUR1cmF0aW9uKCkg
Y29uc3QKQEAgLTI3ODgsMTcgKzI3NjUsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYKICAg
ICBBU1NFUlQodGV4dENvbWJpbmVyKTsKICAgICBnX29iamVjdF9zZXQobV9waXBlbGluZS5nZXQo
KSwgInRleHQtc3RyZWFtLWNvbWJpbmVyIiwgdGV4dENvbWJpbmVyLCBudWxscHRyKTsKIAotICAg
IG1fdGV4dEFwcFNpbmsgPSB3ZWJraXRUZXh0U2lua05ldygpOwotICAgIEFTU0VSVChtX3RleHRB
cHBTaW5rKTsKLQotICAgIG1fdGV4dEFwcFNpbmtQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRf
Z2V0X3N0YXRpY19wYWQobV90ZXh0QXBwU2luay5nZXQoKSwgInNpbmsiKSk7Ci0gICAgQVNTRVJU
KG1fdGV4dEFwcFNpbmtQYWQpOwotCi0gICAgYXV0byB0ZXh0Q2FwcyA9IGFkb3B0R1JlZihnc3Rf
Y2Fwc19uZXdfZW1wdHlfc2ltcGxlKCJhcHBsaWNhdGlvbi94LXN1YnRpdGxlLXZ0dCIpKTsKLSAg
ICBnX29iamVjdF9zZXQobV90ZXh0QXBwU2luay5nZXQoKSwgImVtaXQtc2lnbmFscyIsIFRSVUUs
ICJlbmFibGUtbGFzdC1zYW1wbGUiLCBGQUxTRSwgImNhcHMiLCB0ZXh0Q2Fwcy5nZXQoKSwgbnVs
bHB0cik7Ci0gICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fdGV4dEFwcFNpbmsuZ2V0KCks
ICJuZXctc2FtcGxlIiwgR19DQUxMQkFDSyhuZXdUZXh0U2FtcGxlQ2FsbGJhY2spLCB0aGlzKTsK
KyAgICBtX3RleHRTaW5rID0gd2Via2l0VGV4dFNpbmtOZXcobWFrZVdlYWtQdHIoKnRoaXMpKTsK
KyAgICBBU1NFUlQobV90ZXh0U2luayk7CiAKLSAgICBnX29iamVjdF9zZXQobV9waXBlbGluZS5n
ZXQoKSwgInRleHQtc2luayIsIG1fdGV4dEFwcFNpbmsuZ2V0KCksIG51bGxwdHIpOworICAgIGdf
b2JqZWN0X3NldChtX3BpcGVsaW5lLmdldCgpLCAidGV4dC1zaW5rIiwgbV90ZXh0U2luay5nZXQo
KSwgbnVsbHB0cik7CiAKICAgICBpZiAoIW1fYXVkaW9TaW5rKQogICAgICAgICBtX2F1ZGlvU2lu
ayA9IGNyZWF0ZUF1ZGlvU2luaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5oCmluZGV4IDkwZDQ5ZDY0MGZhNmZiODZiZDkwNDg4NzhiMzcxOTQwMDYzNDk1
M2MuLjc5MGY2NDBkNGZhNzBiZDQ5OGYyNDVhZmEyNjU1YjZhZDhjMDc0OGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTIyMyw2ICsyMjMsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBmbHVzaEN1cnJlbnRCdWZmZXIoKTsKICNlbmRpZgogCisgICAg
dm9pZCBoYW5kbGVUZXh0U2FtcGxlKEdzdFNhbXBsZSosIGNvbnN0IGNoYXIqIHN0cmVhbUlkKTsK
KwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXI7IH0KICAgICBjb25zdCBjaGFyKiBsb2dDbGFz
c05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyIjsgfQpAQCAtMjk2LDcgKzI5OCw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIG5vdGlmeVBs
YXllck9mVmlkZW8oKTsKICAgICB2b2lkIG5vdGlmeVBsYXllck9mQXVkaW8oKTsKICAgICB2b2lk
IG5vdGlmeVBsYXllck9mVGV4dCgpOwotICAgIHZvaWQgbmV3VGV4dFNhbXBsZSgpOwogCiAgICAg
dm9pZCBlbnN1cmVBdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAgICAgdm9pZCBzZXRBdWRpb1N0cmVh
bVByb3BlcnRpZXMoR09iamVjdCopOwpAQCAtMzA3LDcgKzMwOCw2IEBAIHByb3RlY3RlZDoKICAg
ICBzdGF0aWMgdm9pZCB2aWRlb0NoYW5nZWRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIqKTsKICAgICBzdGF0aWMgdm9pZCBhdWRpb0NoYW5nZWRDYWxsYmFjayhNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIqKTsKICAgICBzdGF0aWMgdm9pZCB0ZXh0Q2hhbmdlZENhbGxiYWNr
KE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciopOwotICAgIHN0YXRpYyBHc3RGbG93UmV0dXJu
IG5ld1RleHRTYW1wbGVDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqKTsKIAog
ICAgIHZvaWQgdGltZUNoYW5nZWQoKTsKICAgICB2b2lkIGxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5
ZXI6Ok5ldHdvcmtTdGF0ZSwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcsIGJvb2wgZm9yY2VOb3RpZmljYXRpb25zID0gZmFsc2Up
OwpAQCAtNDU2LDggKzQ1Niw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIEF0b21pYzxib29s
PiBtX2lzUGxheWVyU2h1dHRpbmdEb3duOwotICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV90ZXh0
QXBwU2luazsKLSAgICBHUmVmUHRyPEdzdFBhZD4gbV90ZXh0QXBwU2lua1BhZDsKKyAgICBHUmVm
UHRyPEdzdEVsZW1lbnQ+IG1fdGV4dFNpbms7CiAgICAgR3N0U3RydWN0dXJlKiBtX21lZGlhTG9j
YXRpb25zIHsgbnVsbHB0ciB9OwogICAgIGludCBtX21lZGlhTG9jYXRpb25DdXJyZW50SW5kZXgg
eyAwIH07CiAgICAgYm9vbCBtX2lzUGxheWJhY2tSYXRlUGF1c2VkIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UZXh0U2lu
a0dTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVGV4dFNpbmtHU3RyZWFtZXIuY3BwCmluZGV4IDU2NmFmMjRhNTU5MDFjMGZkMjQ5NGU5NTU1
MzIyN2U2NDhiZDA1NDguLjAwNTQ4Mjg0ZWNmOGE4NmM4MTAxNDhkZTU2MTM1OThjN2Q3Yzk2ZTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9U
ZXh0U2lua0dTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1RleHRTaW5rR1N0cmVhbWVyLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQ2FibGUgVGVsZXZpc2lvbiBMYWJvcmF0b3JpZXMsIEluYy4K
KyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI0LDc4ICsyNSwxMTUgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiVGV4dFNpbmtHU3RyZWFtZXIuaCIKKwogI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEdTVFJFQU1FUikKIAotI2luY2x1ZGUgIlRleHRTaW5rR1N0cmVhbWVyLmgiCisjaW5jbHVk
ZSAiR1N0cmVhbWVyQ29tbW9uLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmgiCisjaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzaW5rLmg+CisjaW5jbHVkZSA8d3RmL2ds
aWIvV1RGR1R5cGUuaD4KIAogR1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJQyh3ZWJraXRUZXh0U2lu
a0RlYnVnKTsKICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdlYmtpdFRleHRTaW5rRGVidWcKIAot
I2RlZmluZSB3ZWJraXRfdGV4dF9zaW5rX3BhcmVudF9jbGFzcyBwYXJlbnRfY2xhc3MKLUdfREVG
SU5FX1RZUEVfV0lUSF9DT0RFKFdlYktpdFRleHRTaW5rLCB3ZWJraXRfdGV4dF9zaW5rLCBHU1Rf
VFlQRV9BUFBfU0lOSywKLSAgICBHU1RfREVCVUdfQ0FURUdPUllfSU5JVCh3ZWJraXRUZXh0U2lu
a0RlYnVnLCAid2Via2l0dGV4dHNpbmsiLCAwLAotICAgICAgICAid2Via2l0IHRleHQgc2luayIp
KTsKLQotZW51bSB7Ci0gICAgUHJvcDAsCi0gICAgUHJvcFN5bmMsCi0gICAgUHJvcExhc3QKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdHJ1Y3QgX1dlYktpdFRleHRTaW5rUHJpdmF0ZSB7
CisgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBhcHBTaW5rOworICAgIFdlYWtQdHI8TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyPiBtZWRpYVBsYXllclByaXZhdGU7CisgICAgY29uc3QgY2hhciog
c3RyZWFtSWQgeyBudWxscHRyIH07CiB9OwogCi1zdGF0aWMgdm9pZCB3ZWJraXRfdGV4dF9zaW5r
X2luaXQoV2ViS2l0VGV4dFNpbmsqIHNpbmspCi17Ci0gICAgLyogV2Ugd2FudCB0byBnZXQgY3Vl
cyBhcyBxdWlja2x5IGFzIHBvc3NpYmxlIHNvIFdlYktpdCBoYXMgdGltZSB0byBoYW5kbGUgdGhl
bSwKLSAgICAgKiBhbmQgd2UgZG9uJ3Qgd2FudCBjdWVzIHRvIGJsb2NrIHdoZW4gdGhleSBjb21l
IGluIHRoZSB3cm9uZyBvcmRlci4gKi8KLSAgICBnc3RfYmFzZV9zaW5rX3NldF9zeW5jKEdTVF9C
QVNFX1NJTksoc2luayksIGZhbHNlKTsKLX0KKyNkZWZpbmUgd2Via2l0X3RleHRfc2lua19wYXJl
bnRfY2xhc3MgcGFyZW50X2NsYXNzCitXRUJLSVRfREVGSU5FX1RZUEVfV0lUSF9DT0RFKFdlYktp
dFRleHRTaW5rLCB3ZWJraXRfdGV4dF9zaW5rLCBHU1RfVFlQRV9CSU4sCisgICAgR1NUX0RFQlVH
X0NBVEVHT1JZX0lOSVQod2Via2l0VGV4dFNpbmtEZWJ1ZywgIndlYmtpdHRleHRzaW5rIiwgMCwg
IndlYmtpdCB0ZXh0IHNpbmsiKSkKIAotc3RhdGljIHZvaWQgd2Via2l0VGV4dFNpbmtHZXRQcm9w
ZXJ0eShHT2JqZWN0KiwgZ3VpbnQgLyogcHJvcGVydHlJZCAqLywKLSAgICBHVmFsdWUqLCBHUGFy
YW1TcGVjKikKK3N0YXRpYyB2b2lkIHdlYmtpdFRleHRTaW5rSGFuZGxlU2FtcGxlKFdlYktpdFRl
eHRTaW5rKiBzZWxmLCBHUmVmUHRyPEdzdFNhbXBsZT4mJiBzYW1wbGUpCiB7Ci0gICAgLyogRG8g
bm90aGluZyB3aXRoIFByb3BTeW5jICovCisgICAgYXV0byogcHJpdiA9IHNlbGYtPnByaXY7Cisg
ICAgaWYgKCFwcml2LT5zdHJlYW1JZCkgeworICAgICAgICBhdXRvIHBhZCA9IGFkb3B0R1JlZihn
c3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChwcml2LT5hcHBTaW5rLmdldCgpLCAic2luayIpKTsK
KyAgICAgICAgYXV0byBzdHJlYW1TdGFydEV2ZW50ID0gYWRvcHRHUmVmKGdzdF9wYWRfZ2V0X3N0
aWNreV9ldmVudChwYWQuZ2V0KCksIEdTVF9FVkVOVF9TVFJFQU1fU1RBUlQsIDApKTsKKworICAg
ICAgICBpZiAoc3RyZWFtU3RhcnRFdmVudCkKKyAgICAgICAgICAgIGdzdF9ldmVudF9wYXJzZV9z
dHJlYW1fc3RhcnQoc3RyZWFtU3RhcnRFdmVudC5nZXQoKSwgJnByaXYtPnN0cmVhbUlkKTsKKyAg
ICB9CisKKyAgICBpZiAocHJpdi0+c3RyZWFtSWQpIHsKKyAgICAgICAgLy8gQXMgdGhlIG1lZGlh
UGxheWVyUHJpdmF0ZSBXZWFrUHRyIGlzIGNvbnN0cnVjdGVkIGZyb20gdGhlIG1haW4gdGhyZWFk
LCB3ZSBoYXZlIHRvIHVzZSBpdAorICAgICAgICAvLyBmcm9tIHRoZSBtYWluIHRocmVhZCBhcyB3
ZWxsLgorICAgICAgICBjYWxsT25NYWluVGhyZWFkQW5kV2FpdChbcHJpdiwgc2FtcGxlID0gV1RG
TW92ZShzYW1wbGUpXSB7CisgICAgICAgICAgICBwcml2LT5tZWRpYVBsYXllclByaXZhdGUtPmhh
bmRsZVRleHRTYW1wbGUoc2FtcGxlLmdldCgpLCBwcml2LT5zdHJlYW1JZCk7CisgICAgICAgIH0p
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEdTVF9XQVJOSU5HX09CSkVDVChzZWxmLCAi
VW5hYmxlIHRvIGhhbmRsZSBzYW1wbGUgd2l0aCBubyBzdHJlYW0gc3RhcnQgZXZlbnQuIik7CiB9
CiAKLXN0YXRpYyB2b2lkIHdlYmtpdFRleHRTaW5rU2V0UHJvcGVydHkoR09iamVjdCosIGd1aW50
IC8qIHByb3BlcnR5SWQgKi8sCi0gICAgY29uc3QgR1ZhbHVlKiwgR1BhcmFtU3BlYyopCitzdGF0
aWMgdm9pZCB3ZWJraXRUZXh0U2lua0NvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKIHsKLSAg
ICAvKiBEbyBub3RoaW5nIHdpdGggUHJvcFN5bmMgKi8KKyAgICBHU1RfQ0FMTF9QQVJFTlQoR19P
QkpFQ1RfQ0xBU1MsIGNvbnN0cnVjdGVkLCAob2JqZWN0KSk7CisKKyAgICBhdXRvKiBzaW5rID0g
V0VCS0lUX1RFWFRfU0lOSyhvYmplY3QpOworICAgIGF1dG8qIHByaXYgPSBzaW5rLT5wcml2Owor
CisgICAgcHJpdi0+YXBwU2luayA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXBwc2luayIs
IG51bGxwdHIpOworICAgIGdzdF9iaW5fYWRkKEdTVF9CSU5fQ0FTVChzaW5rKSwgcHJpdi0+YXBw
U2luay5nZXQoKSk7CisKKyAgICBhdXRvIHBhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRf
c3RhdGljX3BhZChwcml2LT5hcHBTaW5rLmdldCgpLCAic2luayIpKTsKKyAgICBnc3RfZWxlbWVu
dF9hZGRfcGFkKEdTVF9FTEVNRU5UX0NBU1Qoc2luayksIGdzdF9naG9zdF9wYWRfbmV3KCJzaW5r
IiwgcGFkLmdldCgpKSk7CisKKyAgICBhdXRvIHRleHRDYXBzID0gYWRvcHRHUmVmKGdzdF9jYXBz
X25ld19lbXB0eV9zaW1wbGUoImFwcGxpY2F0aW9uL3gtc3VidGl0bGUtdnR0IikpOworICAgIGdf
b2JqZWN0X3NldChwcml2LT5hcHBTaW5rLmdldCgpLCAiZW1pdC1zaWduYWxzIiwgVFJVRSwgImVu
YWJsZS1sYXN0LXNhbXBsZSIsIEZBTFNFLCAiY2FwcyIsIHRleHRDYXBzLmdldCgpLCBudWxscHRy
KTsKKworICAgIGdfc2lnbmFsX2Nvbm5lY3QocHJpdi0+YXBwU2luay5nZXQoKSwgIm5ldy1zYW1w
bGUiLCBHX0NBTExCQUNLKCtbXShHc3RFbGVtZW50KiBhcHBTaW5rLCBXZWJLaXRUZXh0U2luayog
c2luaykgLT4gR3N0Rmxvd1JldHVybiB7CisgICAgICAgIHdlYmtpdFRleHRTaW5rSGFuZGxlU2Ft
cGxlKHNpbmssIGFkb3B0R1JlZihnc3RfYXBwX3NpbmtfcHVsbF9zYW1wbGUoR1NUX0FQUF9TSU5L
KGFwcFNpbmspKSkpOworICAgICAgICByZXR1cm4gR1NUX0ZMT1dfT0s7CisgICAgfSksIHNpbmsp
OworCisgICAgZ19zaWduYWxfY29ubmVjdChwcml2LT5hcHBTaW5rLmdldCgpLCAibmV3LXByZXJv
bGwiLCBHX0NBTExCQUNLKCtbXShHc3RFbGVtZW50KiBhcHBTaW5rLCBXZWJLaXRUZXh0U2luayog
c2luaykgLT4gR3N0Rmxvd1JldHVybiB7CisgICAgICAgIHdlYmtpdFRleHRTaW5rSGFuZGxlU2Ft
cGxlKHNpbmssIGFkb3B0R1JlZihnc3RfYXBwX3NpbmtfcHVsbF9wcmVyb2xsKEdTVF9BUFBfU0lO
SyhhcHBTaW5rKSkpKTsKKyAgICAgICAgcmV0dXJuIEdTVF9GTE9XX09LOworICAgIH0pLCBzaW5r
KTsKKworICAgIC8vIFdlIHdhbnQgdG8gZ2V0IGN1ZXMgYXMgcXVpY2tseSBhcyBwb3NzaWJsZSBz
byBXZWJLaXQgaGFzIHRpbWUgdG8gaGFuZGxlIHRoZW0sCisgICAgLy8gYW5kIHdlIGRvbid0IHdh
bnQgY3VlcyB0byBibG9jayB3aGVuIHRoZXkgY29tZSBpbiB0aGUgd3Jvbmcgb3JkZXIuCisgICAg
Z3N0X2Jhc2Vfc2lua19zZXRfc3luYyhHU1RfQkFTRV9TSU5LX0NBU1Qoc2luay0+cHJpdi0+YXBw
U2luay5nZXQoKSksIGZhbHNlKTsKIH0KIAotc3RhdGljIGdib29sZWFuIHdlYmtpdFRleHRTaW5r
UXVlcnkoR3N0RWxlbWVudCAqZWxlbWVudCwgR3N0UXVlcnkgKnF1ZXJ5KQorc3RhdGljIGdib29s
ZWFuIHdlYmtpdFRleHRTaW5rUXVlcnkoR3N0RWxlbWVudCogZWxlbWVudCwgR3N0UXVlcnkqIHF1
ZXJ5KQogewogICAgIHN3aXRjaCAoR1NUX1FVRVJZX1RZUEUocXVlcnkpKSB7CiAgICAgY2FzZSBH
U1RfUVVFUllfRFVSQVRJT046CiAgICAgY2FzZSBHU1RfUVVFUllfUE9TSVRJT046Ci0gICAgICAg
IC8qIElnbm9yZSBkdXJhdGlvbiBhbmQgcG9zaXRpb24gYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRo
ZSBzZWVrIGJhciB0byBiZQotICAgICAgICAgKiBiYXNlZCBvbiB3aGVyZSB0aGUgY3VlcyBhcmUu
ICovCisgICAgICAgIC8vIElnbm9yZSBkdXJhdGlvbiBhbmQgcG9zaXRpb24gYmVjYXVzZSB3ZSBk
b24ndCB3YW50IHRoZSBzZWVrIGJhciB0byBiZSBiYXNlZCBvbiB3aGVyZSB0aGUgY3VlcyBhcmUu
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBkZWZhdWx0OgotICAgICAgICBXZWJLaXRUZXh0
U2luayogc2luayA9IFdFQktJVF9URVhUX1NJTksoZWxlbWVudCk7Ci0gICAgICAgIEdzdEVsZW1l
bnQqIHBhcmVudCA9IEdTVF9FTEVNRU5UKCZzaW5rLT5wYXJlbnQpOwotICAgICAgICByZXR1cm4g
R1NUX0VMRU1FTlRfQ0xBU1MocGFyZW50X2NsYXNzKS0+cXVlcnkocGFyZW50LCBxdWVyeSk7Cisg
ICAgICAgIHJldHVybiBHU1RfQ0FMTF9QQVJFTlRfV0lUSF9ERUZBVUxUKEdTVF9FTEVNRU5UX0NM
QVNTLCBxdWVyeSwgKGVsZW1lbnQsIHF1ZXJ5KSwgRkFMU0UpOwogICAgIH0KIH0KIAogc3RhdGlj
IHZvaWQgd2Via2l0X3RleHRfc2lua19jbGFzc19pbml0KFdlYktpdFRleHRTaW5rQ2xhc3MqIGts
YXNzKQogewotICAgIEdPYmplY3RDbGFzcyogZ29iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Mo
a2xhc3MpOwotICAgIEdzdEVsZW1lbnRDbGFzcyogZWxlbWVudENsYXNzID0gR1NUX0VMRU1FTlRf
Q0xBU1Moa2xhc3MpOworICAgIGF1dG8qIGdvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGts
YXNzKTsKKyAgICBhdXRvKiBlbGVtZW50Q2xhc3MgPSBHU1RfRUxFTUVOVF9DTEFTUyhrbGFzcyk7
CiAKLSAgICBnc3RfZWxlbWVudF9jbGFzc19zZXRfbWV0YWRhdGEoZWxlbWVudENsYXNzLCAiV2Vi
S2l0IHRleHQgc2luayIsICJHZW5lcmljIiwKLSAgICAgICAgIkFuIGFwcHNpbmsgdGhhdCBpZ25v
cmVzIHRoZSBzeW5jIHByb3BlcnR5IGFuZCBwb3NpdGlvbiBhbmQgZHVyYXRpb24gcXVlcmllcyIs
CisgICAgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X21ldGFkYXRhKGVsZW1lbnRDbGFzcywgIldlYktp
dCB0ZXh0IHNpbmsiLCBHU1RfRUxFTUVOVF9GQUNUT1JZX0tMQVNTX1NJTkssCisgICAgICAgICJX
ZWJLaXQncyB0ZXh0IHNpbmsgY29sbGVjdGluZyBjdWVzIGVuY29kZWQgaW4gV2ViVlRUIGJ5IHRo
ZSBXZWJLaXQgdGV4dC1jb21iaW5lciIsCiAgICAgICAgICJCcmVuZGFuIExvbmcgPGIubG9uZ0Bj
YWJsZWxhYnMuY29tPiIpOwogCi0gICAgZ29iamVjdENsYXNzLT5nZXRfcHJvcGVydHkgPSBHU1Rf
REVCVUdfRlVOQ1BUUih3ZWJraXRUZXh0U2lua0dldFByb3BlcnR5KTsKLSAgICBnb2JqZWN0Q2xh
c3MtPnNldF9wcm9wZXJ0eSA9IEdTVF9ERUJVR19GVU5DUFRSKHdlYmtpdFRleHRTaW5rU2V0UHJv
cGVydHkpOworICAgIGdvYmplY3RDbGFzcy0+Y29uc3RydWN0ZWQgPSBHU1RfREVCVUdfRlVOQ1BU
Uih3ZWJraXRUZXh0U2lua0NvbnN0cnVjdGVkKTsKICAgICBlbGVtZW50Q2xhc3MtPnF1ZXJ5ID0g
R1NUX0RFQlVHX0ZVTkNQVFIod2Via2l0VGV4dFNpbmtRdWVyeSk7Ci0KLSAgICAvKiBPdmVycmlk
ZSAic3luYyIgc28gcGxheXNpbmsgZG9lc24ndCBtZXNzIHdpdGggb3VyIGFwcHNpbmsgKi8KLSAg
ICBnX29iamVjdF9jbGFzc19vdmVycmlkZV9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsIFByb3BTeW5j
LCAic3luYyIpOwogfQogCi1Hc3RFbGVtZW50KiB3ZWJraXRUZXh0U2lua05ldygpCitHc3RFbGVt
ZW50KiB3ZWJraXRUZXh0U2lua05ldyhXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cj4gcGxheWVyKQogewotICAgIHJldHVybiBHU1RfRUxFTUVOVChnX29iamVjdF9uZXcoV0VCS0lU
X1RZUEVfVEVYVF9TSU5LLCBudWxscHRyKSk7CisgICAgYXV0byogZWxlbWVudCA9IEdTVF9FTEVN
RU5UX0NBU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1RFWFRfU0lOSywgbnVsbHB0cikpOwor
ICAgIGF1dG8qIHNpbmsgPSBXRUJLSVRfVEVYVF9TSU5LKGVsZW1lbnQpOworICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisgICAgc2luay0+cHJpdi0+bWVkaWFQbGF5ZXJQcml2YXRlID0gcGxh
eWVyOworICAgIHJldHVybiBlbGVtZW50OwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKSAm
JiBVU0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1RleHRTaW5rR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVGV4dFNpbmtHU3RyZWFtZXIuaAppbmRleCA2NjFmNzJm
NmUxZTM4YjQ0NmNlNDM2YTRhMDQ1ZjVjZjc2ZmViOTA1Li43ZGFlNTJkYmNhYTVkYWUwYzdmMmJi
MGFjM2NiNTUzYjY5YTRjZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVGV4dFNpbmtHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVGV4dFNpbmtHU3RyZWFtZXIuaApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQ2FibGUgVGVsZXZpc2lvbiBMYWJv
cmF0b3JpZXMsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDExICsyOCwxNyBAQAogCiAjaWYgRU5BQkxF
KFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQogCi0jaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLSNp
bmNsdWRlIDxnc3QvYXBwL2dzdGFwcHNpbmsuaD4KICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOworfQorCitHX0JFR0lOX0RFQ0xTCiAKICNkZWZpbmUgV0VC
S0lUX1RZUEVfVEVYVF9TSU5LIHdlYmtpdF90ZXh0X3NpbmtfZ2V0X3R5cGUoKQorR1R5cGUgd2Vi
a2l0X3RleHRfc2lua19nZXRfdHlwZSh2b2lkKTsKIAogI2RlZmluZSBXRUJLSVRfVEVYVF9TSU5L
KG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9URVhU
X1NJTkssIFdlYktpdFRleHRTaW5rKSkKICNkZWZpbmUgV0VCS0lUX1RFWFRfU0lOS19DTEFTUyhr
bGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksIFdFQktJVF9UWVBFX1RFWFRf
U0lOSywgV2ViS2l0VGV4dFNpbmtDbGFzcykpCkBAIC00MSwyMyArNDgsMTkgQEAKIAogdHlwZWRl
ZiBzdHJ1Y3QgX1dlYktpdFRleHRTaW5rIFdlYktpdFRleHRTaW5rOwogdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdFRleHRTaW5rQ2xhc3MgV2ViS2l0VGV4dFNpbmtDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9XZWJLaXRUZXh0U2lua1ByaXZhdGUgV2ViS2l0VGV4dFNpbmtQcml2YXRlOwogCiBzdHJ1Y3Qg
X1dlYktpdFRleHRTaW5rIHsKLSAgICBHc3RBcHBTaW5rIHBhcmVudDsKKyAgICBHc3RCaW4gcGFy
ZW50OworICAgIFdlYktpdFRleHRTaW5rUHJpdmF0ZSogcHJpdjsKIH07CiAKIHN0cnVjdCBfV2Vi
S2l0VGV4dFNpbmtDbGFzcyB7Ci0gICAgR3N0QXBwU2lua0NsYXNzIHBhcmVudENsYXNzOwotCi0g
ICAgLy8gRnV0dXJlIHBhZGRpbmcKLSAgICB2b2lkICgqIF93ZWJraXRfcmVzZXJ2ZWQxKSh2b2lk
KTsKLSAgICB2b2lkICgqIF93ZWJraXRfcmVzZXJ2ZWQyKSh2b2lkKTsKLSAgICB2b2lkICgqIF93
ZWJraXRfcmVzZXJ2ZWQzKSh2b2lkKTsKLSAgICB2b2lkICgqIF93ZWJraXRfcmVzZXJ2ZWQ0KSh2
b2lkKTsKLSAgICB2b2lkICgqIF93ZWJraXRfcmVzZXJ2ZWQ1KSh2b2lkKTsKLSAgICB2b2lkICgq
IF93ZWJraXRfcmVzZXJ2ZWQ2KSh2b2lkKTsKKyAgICBHc3RCaW5DbGFzcyBwYXJlbnRDbGFzczsK
IH07CiAKLUdzdEVsZW1lbnQqIHdlYmtpdFRleHRTaW5rTmV3KCk7CitHc3RFbGVtZW50KiB3ZWJr
aXRUZXh0U2lua05ldyhXVEY6OldlYWtQdHI8V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyPik7CisKK0dfRU5EX0RFQ0xTCiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU8pICYmIFVT
RShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggMzcyNGVlYmIzNTY2NzNkM2NlNmI1OGM4ZThjZWY3NGNhNGM3YjhjMy4uZGEzNGI1
MWE2NWYxNWM3NDc5NDg2NjE4YzAyYTJiNjUzNjE1OTRjOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTAxLTE1
ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0
cmVhbWVyXSBDbGVhbi11cCB0aGUgVGV4dFNpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDY1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5
OiBBZGQgR1N0cmVhbWVyIFRleHRTaW5rIGltcGxlbWVudGF0aW9uIHRvIEdPYmplY3QKKyAgICAg
ICAgY2xhc3NlcyBhbGxvdy1saXN0LgorCiAyMDIxLTAxLTE1ICBQaGlsaXBwZSBOb3JtYW5kICA8
cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBDbGVhbi11cCB0aGUg
VGV4dENvbWJpbmVyCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2No
ZWNrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXgg
MWQ0OTUxNzBmMzViNjg5Mjk2YjgxY2I2N2E4MmQ1MzA0NzUzMWIwMi4uMzExOWI3OGU3ZGYxZmVh
MDM2YjUyMzU4NmNmMWY5ODk3YWRhNDY3MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlci5weQpAQCAtMjIzLDYgKzIyMyw4IEBAIF9QQVRIX1JVTEVTX1NQRUNJRklFUiA9IFsK
ICAgICAgIG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYkNvcmUnLCAncGxhdGZvcm0nLCAnZ3Jh
cGhpY3MnLCAnZ3N0cmVhbWVyJywgJ1RleHRDb21iaW5lckdTdHJlYW1lci5oJyksCiAgICAgICBv
cy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJDb3JlJywgJ3BsYXRmb3JtJywgJ2dyYXBoaWNzJywg
J2dzdHJlYW1lcicsICdUZXh0Q29tYmluZXJQYWRHU3RyZWFtZXIuY3BwJyksCiAgICAgICBvcy5w
YXRoLmpvaW4oJ1NvdXJjZScsICdXZWJDb3JlJywgJ3BsYXRmb3JtJywgJ2dyYXBoaWNzJywgJ2dz
dHJlYW1lcicsICdUZXh0Q29tYmluZXJQYWRHU3RyZWFtZXIuaCcpLAorICAgICAgb3MucGF0aC5q
b2luKCdTb3VyY2UnLCAnV2ViQ29yZScsICdwbGF0Zm9ybScsICdncmFwaGljcycsICdnc3RyZWFt
ZXInLCAnVGV4dFNpbmtHU3RyZWFtZXIuY3BwJyksCisgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJj
ZScsICdXZWJDb3JlJywgJ3BsYXRmb3JtJywgJ2dyYXBoaWNzJywgJ2dzdHJlYW1lcicsICdUZXh0
U2lua0dTdHJlYW1lci5oJyksCiAgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJDb3Jl
JywgJ3BsYXRmb3JtJywgJ2dyYXBoaWNzJywgJ2dzdHJlYW1lcicsICdWaWRlb1NpbmtHU3RyZWFt
ZXIuY3BwJyksCiAgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJDb3JlJywgJ3BsYXRm
b3JtJywgJ2dyYXBoaWNzJywgJ2dzdHJlYW1lcicsICdXZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIu
Y3BwJyksCiAgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJDb3JlJywgJ3BsYXRmb3Jt
JywgJ2dyYXBoaWNzJywgJ2dzdHJlYW1lcicsICdXZWJLaXRBdWRpb1NpbmtHU3RyZWFtZXIuY3Bw
JyksCg==
</data>
<flag name="review"
          id="435449"
          type_id="1"
          status="+"
          setter="calvaris"
    />
    <flag name="commit-queue"
          id="435452"
          type_id="3"
          status="-"
          setter="calvaris"
    />
          </attachment>
      

    </bug>

</bugzilla>