<?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>236387</bug_id>
          
          <creation_ts>2022-02-09 11:28:35 -0800</creation_ts>
          <short_desc>Use local variable pointer for concurrently load value</short_desc>
          <delta_ts>2022-02-09 17:51:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1839307</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-09 11:28:35 -0800</bug_when>
    <thetext>Use WTF::opaque in some places to ensure access is done only once</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839314</commentid>
    <comment_count>1</comment_count>
      <attachid>451418</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-09 11:33:01 -0800</bug_when>
    <thetext>Created attachment 451418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839386</commentid>
    <comment_count>2</comment_count>
      <attachid>451436</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-09 13:32:22 -0800</bug_when>
    <thetext>Created attachment 451436
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839418</commentid>
    <comment_count>3</comment_count>
      <attachid>451436</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-02-09 14:56:50 -0800</bug_when>
    <thetext>Comment on attachment 451436
Patch

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

I wonder if it&apos;s just better to change Weak to do the thing where it doesn&apos;t use m_impl in multiple places than to change the code to use opaque everywhere. I don&apos;t think llvm in practice will ever emit a load from a field twice when the program says to do it once, even if it can prove that such a heap location hasn&apos;t changed

&gt; Source/JavaScriptCore/runtime/WriteBarrier.h:140
&gt; +    explicit operator bool() const { return !!cell(); }
&gt;      
&gt; -    bool operator!() const { return !m_cell; }
&gt; +    bool operator!() const { return !cell(); }

Why do these need to use the opaque version?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839421</commentid>
    <comment_count>4</comment_count>
      <attachid>451436</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-09 15:00:29 -0800</bug_when>
    <thetext>Comment on attachment 451436
Patch

Hmmm, not sure whether just using `m_impl` once is enough or not, probably it is not enough in terms of the C spec, but yeah, in the current build, it would be OK.
I&apos;ll remove WTF::opaque for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839423</commentid>
    <comment_count>5</comment_count>
      <attachid>451450</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-09 15:03:05 -0800</bug_when>
    <thetext>Created attachment 451450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839480</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-09 17:50:17 -0800</bug_when>
    <thetext>Committed r289515 (247046@trunk): &lt;https://commits.webkit.org/247046@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839481</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-09 17:51:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/88725823&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451418</attachid>
            <date>2022-02-09 11:33:01 -0800</date>
            <delta_ts>2022-02-09 14:16:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236387-20220209113300.patch</filename>
            <type>text/plain</type>
            <size>15409</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OWM0OGM3ZjgxMjkxZDI0YTFjMDU1OTI4ODc1MTI1OThmYzFiMmRjLi4xNjE1Mjc0NTlmZjdmYWQw
YWYwY2ZkMjViM2RkNDBiNzEzNzU1YjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAyMi0wMi0wOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBXVEY6Om9wYXF1ZSBpbiBzb21lIHBsYWNlcyB0byBlbnN1cmUgYWNj
ZXNzIGlzIGRvbmUgb25seSBvbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzYzODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGNoIGFwcGxpZXMgV1RGOjpvcGFxdWUgbG9hZCB0bywKKwor
ICAgICAgICAxLiBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRAorICAgICAgICAyLiBKU1N0cmluZydz
IGZpYmVyCisgICAgICAgIDMuIFdlYWsKKyAgICAgICAgNC4gV3JpdGVCYXJyaWVyPFNvbWVLaW5k
T2ZDZWxsPgorCisgICAgICAgIFdlIHdpbGwgYWRkIG1vcmUgY292ZXJhZ2Ugb25jZSB3ZSBlbnN1
cmUgaXQgZG9lcyBub3QgaHVydCBwZXJmb3JtYW5jZSAoZS5nLiBmb3IgV3JpdGVCYXJyaWVyPFVu
a25vd24+KS4KKworICAgICAgICAqIGhlYXAvV2Vhay5jcHA6CisgICAgICAgIChKU0M6OndlYWtD
bGVhclNsb3dDYXNlKToKKyAgICAgICAgKiBoZWFwL1dlYWsuaDoKKyAgICAgICAgKEpTQzo6V2Vh
azo6aXNIYXNoVGFibGVFbXB0eVZhbHVlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2Vhazo6dW5z
YWZlSW1wbCBjb25zdCk6CisgICAgICAgIChKU0M6OldlYWs6OmNsZWFyKToKKyAgICAgICAgKEpT
Qzo6V2Vhazo6aW1wbCBjb25zdCk6CisgICAgICAgICogaGVhcC9XZWFrSW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpXZWFrPFQ+Ojppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSBjb25zdCk6CisgICAg
ICAgIChKU0M6OiBjb25zdCk6CisgICAgICAgIChKU0M6OldlYWs8VD46Om9wZXJhdG9yIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6V2VhazxUPjo6Z2V0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2Vh
azxUPjo6bGVha0ltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuY3BwOgorICAgICAg
ICAoSlNDOjpKU1N0cmluZzo6ZHVtcFRvU3RyZWFtKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6
OmVzdGltYXRlZFNpemUpOgorICAgICAgICAoSlNDOjpKU1N0cmluZzo6dmlzaXRDaGlsZHJlbklt
cGwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKEpTQzo6SlNTdHJp
bmc6OmlzUm9wZSBjb25zdCk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjpmaWJlciBjb25zdCk6
CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjppczhCaXQgY29uc3QpOgorICAgICAgICAoSlNDOjpK
U1N0cmluZzo6bGVuZ3RoIGNvbnN0KToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OmdldFZhbHVl
SW1wbCBjb25zdCk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjp0cnlHZXRWYWx1ZUltcGwgY29u
c3QpOgorICAgICAgICAoSlNDOjpKU1N0cmluZzo6aXNTdWJzdHJpbmcgY29uc3QpOgorICAgICAg
ICAqIHJ1bnRpbWUvV3JpdGVCYXJyaWVyLmg6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllckJh
c2U6OmdldCBjb25zdCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllckJhc2U6Om9wZXJhdG9y
KiBjb25zdCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllckJhc2U6Om9wZXJhdG9yLT4gY29u
c3QpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJCYXNlOjpvcGVyYXRvciBib29sIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFzZTo6b3BlcmF0b3IhIGNvbnN0KToKKyAg
ICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFzZTo6dW52YWxpZGF0ZWRHZXQgY29uc3QpOgorICAg
ICAgICAoSlNDOjpXcml0ZUJhcnJpZXJCYXNlOjpjZWxsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6OmdldCBjb25zdCk6CisgICAgICAgIChKU0M6OldyaXRl
QmFycmllclN0cnVjdHVyZUlEOjpvcGVyYXRvciogY29uc3QpOgorICAgICAgICAoSlNDOjpXcml0
ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6b3BlcmF0b3ItPiBjb25zdCk6CisgICAgICAgIChKU0M6Oldy
aXRlQmFycmllclN0cnVjdHVyZUlEOjpvcGVyYXRvciBib29sIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6Om9wZXJhdG9yISBjb25zdCk6CisgICAgICAgIChK
U0M6OldyaXRlQmFycmllclN0cnVjdHVyZUlEOjp1bnZhbGlkYXRlZEdldCBjb25zdCk6CisgICAg
ICAgIChKU0M6OldyaXRlQmFycmllclN0cnVjdHVyZUlEOjp2YWx1ZSBjb25zdCk6CisKIDIwMjIt
MDItMDkgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgTm9uLXVu
aWZpZWQgYnVpbGQgZml4ZXMgYWZ0ZXIgcjI4OTI0NwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvV2Vhay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFr
LmNwcAppbmRleCA0ZTA3OWNiZWEzNmI2Zjg0OTc5ZGViMGVjNjBmMDJiZDZkNjkyYWRiLi4yYmQ0
ZDQ5N2EwZDczYzJiODBjM2Y0ZmRhOWUyZWQxNDYwYzljZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9XZWFrLmNwcApAQCAtMzAsMTIgKzMwLDEwIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi12
b2lkIHdlYWtDbGVhclNsb3dDYXNlKFdlYWtJbXBsKiYgaW1wbCkKK3ZvaWQgd2Vha0NsZWFyU2xv
d0Nhc2UoV2Vha0ltcGwqIGltcGwpCiB7CiAgICAgQVNTRVJUKGltcGwpOwotCiAgICAgV2Vha1Nl
dDo6ZGVhbGxvY2F0ZShpbXBsKTsKLSAgICBpbXBsID0gbnVsbHB0cjsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrLmgKaW5kZXggODA0MTU2ZDkzOWEzNWYx
NjlmNzhlNWU1NmRiY2E2ODE2MjJkMTk3ZC4uZTU4Y2JkZmRhODEwMjk1NjQwNjliNTgxMWRjYjFl
ZmYwMzE2YjhiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuaApAQCAtMzcsNyArMzcsNyBA
QCBjbGFzcyBXZWFrSW1wbDsKIGNsYXNzIFdlYWtIYW5kbGVPd25lcjsKIAogLy8gVGhpcyBpcyBh
IGZyZWUgZnVuY3Rpb24gcmF0aGVyIHRoYW4gYSBXZWFrPFQ+IG1lbWJlciBmdW5jdGlvbiBzbyB3
ZSBjYW4gcHV0IGl0IGluIFdlYWsuY3BwLgotSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCB3ZWFrQ2xl
YXJTbG93Q2FzZShXZWFrSW1wbComKTsKK0pTX0VYUE9SVF9QUklWQVRFIHZvaWQgd2Vha0NsZWFy
U2xvd0Nhc2UoV2Vha0ltcGwqKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgV2VhayB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2Vhayk7CkBAIC01Myw3ICs1Myw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWsgewogCiAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0
ZWRWYWx1ZSgpIGNvbnN0OwogICAgIFdlYWsoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBl
KTsKLSAgICBjb25zdGV4cHIgYm9vbCBpc0hhc2hUYWJsZUVtcHR5VmFsdWUoKSBjb25zdCB7IHJl
dHVybiAhbV9pbXBsOyB9CisgICAgY29uc3RleHByIGJvb2wgaXNIYXNoVGFibGVFbXB0eVZhbHVl
KCkgY29uc3QgeyByZXR1cm4gIWltcGwoKTsgfQogCiAgICAgV2VhayhXZWFrJiYpOwogCkBAIC03
NiwxNiArNzYsMTkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgV2VhayB7CiAgICAgaW5s
aW5lIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdDsKIAogICAgIGlubGluZSBXZWFrSW1w
bCogbGVha0ltcGwoKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgV2Vha0ltcGwqIHVuc2FmZUlt
cGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGw7IH0KKyAgICBXZWFrSW1wbCogdW5zYWZlSW1wbCgp
IGNvbnN0IHsgcmV0dXJuIGltcGwoKTsgfQogICAgIHZvaWQgY2xlYXIoKQogICAgIHsKLSAgICAg
ICAgaWYgKCFtX2ltcGwpCisgICAgICAgIGF1dG8qIHBvaW50ZXIgPSBpbXBsKCk7CisgICAgICAg
IGlmICghcG9pbnRlcikKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgd2Vha0NsZWFyU2xv
d0Nhc2UobV9pbXBsKTsKKyAgICAgICAgd2Vha0NsZWFyU2xvd0Nhc2UocG9pbnRlcik7CisgICAg
ICAgIG1faW1wbCA9IG51bGxwdHI7CiAgICAgfQogICAgIAogcHJpdmF0ZToKICAgICBzdGF0aWMg
aW5saW5lIFdlYWtJbXBsKiBoYXNoVGFibGVEZWxldGVkVmFsdWUoKTsKKyAgICBXZWFrSW1wbCog
aW1wbCgpIGNvbnN0IHsgcmV0dXJuIFdURjo6b3BhcXVlKG1faW1wbCk7IH0KIAogICAgIFdlYWtJ
bXBsKiBtX2ltcGwgeyBudWxscHRyIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvV2Vha0lubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dl
YWtJbmxpbmVzLmgKaW5kZXggYTI0NDY3MWYyNzYxZDZhMzgyZjJmZDU3ZGFiMGY4MDkxYWIzYzk0
YS4uNDVjMzkyMTZiZDhiNjgzOTc4MDU4NmRhNjIyNmU1OWE1Mzk5NTA3NSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0lubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9XZWFrSW5saW5lcy5oCkBAIC0zOCw3ICszOCw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IGlubGluZSBXZWFrPFQ+OjpXZWFrKFQqIGNlbGwsIFdlYWtIYW5kbGVPd25l
ciogd2Vha093bmVyLCB2CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBib29sIFdlYWs8
VD46OmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9pbXBs
ID09IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOworICAgIHJldHVybiBpbXBsKCkgPT0gaGFzaFRh
YmxlRGVsZXRlZFZhbHVlKCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBXZWFr
PFQ+OjpXZWFrKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKQEAgLTcwLDI0ICs3MCwy
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYXV0byBXZWFrPFQ+OjpvcGVyYXRvcj0o
V2VhayYmIG90aGVyKSAtPiBXZWFrJgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCog
V2VhazxUPjo6b3BlcmF0b3ItPigpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKG1faW1wbCAmJiBtX2lt
cGwtPnN0YXRlKCkgPT0gV2Vha0ltcGw6OkxpdmUpOworICAgIGF1dG8qIHBvaW50ZXIgPSBpbXBs
KCk7CisgICAgQVNTRVJUKHBvaW50ZXIgJiYgcG9pbnRlci0+c3RhdGUoKSA9PSBXZWFrSW1wbDo6
TGl2ZSk7CiAgICAgLy8gV2UgY2FuJ3QgdXNlIGpzQ2FzdCBoZXJlIHNpbmNlIHdlIGNvdWxkIGJl
IGNhbGxlZCBpbiBhIGZpbmFsaXplci4KLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KG1faW1w
bC0+anNWYWx1ZSgpLmFzQ2VsbCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KHBvaW50
ZXItPmpzVmFsdWUoKS5hc0NlbGwoKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGlu
ZSBUJiBXZWFrPFQ+OjpvcGVyYXRvciooKSBjb25zdAogewotICAgIEFTU0VSVChtX2ltcGwgJiYg
bV9pbXBsLT5zdGF0ZSgpID09IFdlYWtJbXBsOjpMaXZlKTsKKyAgICBhdXRvKiBwb2ludGVyID0g
aW1wbCgpOworICAgIEFTU0VSVChwb2ludGVyICYmIHBvaW50ZXItPnN0YXRlKCkgPT0gV2Vha0lt
cGw6OkxpdmUpOwogICAgIC8vIFdlIGNhbid0IHVzZSBqc0Nhc3QgaGVyZSBzaW5jZSB3ZSBjb3Vs
ZCBiZSBjYWxsZWQgaW4gYSBmaW5hbGl6ZXIuCi0gICAgcmV0dXJuICpzdGF0aWNfY2FzdDxUKj4o
bV9pbXBsLT5qc1ZhbHVlKCkuYXNDZWxsKCkpOworICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8VCo+
KHBvaW50ZXItPmpzVmFsdWUoKS5hc0NlbGwoKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IGlubGluZSBUKiBXZWFrPFQ+OjpnZXQoKSBjb25zdAogewotICAgIGlmICghbV9pbXBsIHx8IG1f
aW1wbC0+c3RhdGUoKSAhPSBXZWFrSW1wbDo6TGl2ZSkKKyAgICBhdXRvKiBwb2ludGVyID0gaW1w
bCgpOworICAgIGlmICghcG9pbnRlciB8fCBwb2ludGVyLT5zdGF0ZSgpICE9IFdlYWtJbXBsOjpM
aXZlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAvLyBXZSBjYW4ndCB1c2UganNDYXN0
IGhlcmUgc2luY2Ugd2UgY291bGQgYmUgY2FsbGVkIGluIGEgZmluYWxpemVyLgotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxUKj4obV9pbXBsLT5qc1ZhbHVlKCkuYXNDZWxsKCkpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxUKj4ocG9pbnRlci0+anNWYWx1ZSgpLmFzQ2VsbCgpKTsKIH0KIAogdGVt
cGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGJvb2wgV2VhazxUPjo6d2FzKFQqIG90aGVyKSBjb25z
dApAQCAtOTcsNyArMTAwLDggQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGJvb2wgV2Vh
azxUPjo6d2FzKFQqIG90aGVyKSBjb25zdAogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUg
Ym9vbCBXZWFrPFQ+OjpvcGVyYXRvciEoKSBjb25zdAogewotICAgIHJldHVybiAhbV9pbXBsIHx8
ICFtX2ltcGwtPmpzVmFsdWUoKSB8fCBtX2ltcGwtPnN0YXRlKCkgIT0gV2Vha0ltcGw6OkxpdmU7
CisgICAgYXV0byogcG9pbnRlciA9IGltcGwoKTsKKyAgICByZXR1cm4gIXBvaW50ZXIgfHwgIXBv
aW50ZXItPmpzVmFsdWUoKSB8fCBwb2ludGVyLT5zdGF0ZSgpICE9IFdlYWtJbXBsOjpMaXZlOwog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgV2VhazxUPjo6b3BlcmF0b3IgYm9vbCgp
IGNvbnN0CkBAIC0xMDcsOSArMTExLDkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFdl
YWs8VD46Om9wZXJhdG9yIGJvb2woKSBjb25zdAogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxp
bmUgV2Vha0ltcGwqIFdlYWs8VD46OmxlYWtJbXBsKCkKIHsKLSAgICBXZWFrSW1wbCogaW1wbCA9
IG1faW1wbDsKKyAgICBhdXRvKiBwb2ludGVyID0gaW1wbCgpOwogICAgIG1faW1wbCA9IG51bGxw
dHI7Ci0gICAgcmV0dXJuIGltcGw7CisgICAgcmV0dXJuIHBvaW50ZXI7CiB9CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IGlubGluZSBXZWFrSW1wbCogV2VhazxUPjo6aGFzaFRhYmxlRGVsZXRlZFZh
bHVlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5n
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAppbmRleCBk
YzVlNjllNjc3Zjk2MGUzODkzZjUzYTVkZDNlNzViZDI4MzQyMDM5Li41ODI1MjAzYjMyMGNiNzNk
Mzk3NWVjZWE2YmZmOTczYTEwZDBiYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdHJpbmcuY3BwCkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgSlNTdHJpbmc6OmR1bXBUb1N0
cmVhbShjb25zdCBKU0NlbGwqIGNlbGwsIFByaW50U3RyZWFtJiBvdXQpCiAgICAgVk0mIHZtID0g
Y2VsbC0+dm0oKTsKICAgICBjb25zdCBKU1N0cmluZyogdGhpc09iamVjdCA9IGpzQ2FzdDxjb25z
dCBKU1N0cmluZyo+KGNlbGwpOwogICAgIG91dC5wcmludGYoIjwlcCwgJXMsIFsldV0sICIsIHRo
aXNPYmplY3QsIHRoaXNPYmplY3QtPmNsYXNzTmFtZSh2bSksIHRoaXNPYmplY3QtPmxlbmd0aCgp
KTsKLSAgICB1aW50cHRyX3QgcG9pbnRlciA9IHRoaXNPYmplY3QtPm1fZmliZXI7CisgICAgdWlu
dHB0cl90IHBvaW50ZXIgPSB0aGlzT2JqZWN0LT5maWJlckNvbmN1cnJlbnRseSgpOwogICAgIGlm
IChwb2ludGVyICYgaXNSb3BlSW5Qb2ludGVyKSB7CiAgICAgICAgIGlmIChwb2ludGVyICYgSlNS
b3BlU3RyaW5nOjppc1N1YnN0cmluZ0luUG9pbnRlcikKICAgICAgICAgICAgIG91dC5wcmludGYo
IltzdWJzdHJpbmddIik7CkBAIC0xMDMsNyArMTAzLDcgQEAgYm9vbCBKU1N0cmluZzo6ZXF1YWxT
bG93Q2FzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogb3RoZXIpIGNv
bnMKIHNpemVfdCBKU1N0cmluZzo6ZXN0aW1hdGVkU2l6ZShKU0NlbGwqIGNlbGwsIFZNJiB2bSkK
IHsKICAgICBKU1N0cmluZyogdGhpc09iamVjdCA9IGFzU3RyaW5nKGNlbGwpOwotICAgIHVpbnRw
dHJfdCBwb2ludGVyID0gdGhpc09iamVjdC0+bV9maWJlcjsKKyAgICB1aW50cHRyX3QgcG9pbnRl
ciA9IHRoaXNPYmplY3QtPmZpYmVyQ29uY3VycmVudGx5KCk7CiAgICAgaWYgKHBvaW50ZXIgJiBp
c1JvcGVJblBvaW50ZXIpCiAgICAgICAgIHJldHVybiBCYXNlOjplc3RpbWF0ZWRTaXplKGNlbGws
IHZtKTsKICAgICByZXR1cm4gQmFzZTo6ZXN0aW1hdGVkU2l6ZShjZWxsLCB2bSkgKyBiaXR3aXNl
X2Nhc3Q8U3RyaW5nSW1wbCo+KHBvaW50ZXIpLT5jb3N0RHVyaW5nR0MoKTsKQEAgLTExNiw3ICsx
MTYsNyBAQCB2b2lkIEpTU3RyaW5nOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZp
c2l0b3ImIHZpc2l0b3IpCiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0
LCBpbmZvKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7
CiAgICAgCi0gICAgdWludHB0cl90IHBvaW50ZXIgPSB0aGlzT2JqZWN0LT5tX2ZpYmVyOworICAg
IHVpbnRwdHJfdCBwb2ludGVyID0gdGhpc09iamVjdC0+ZmliZXJDb25jdXJyZW50bHkoKTsKICAg
ICBpZiAocG9pbnRlciAmIGlzUm9wZUluUG9pbnRlcikgewogICAgICAgICBpZiAocG9pbnRlciAm
IEpTUm9wZVN0cmluZzo6aXNTdWJzdHJpbmdJblBvaW50ZXIpIHsKICAgICAgICAgICAgIHZpc2l0
b3IuYXBwZW5kVW5iYXJyaWVyZWQoc3RhdGljX2Nhc3Q8SlNSb3BlU3RyaW5nKj4odGhpc09iamVj
dCktPmZpYmVyMSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCmlu
ZGV4IDg5NTNmOTQxNzY1ZDU5ZmUxOWIwMTVmNDFmNzI3MjM4YmU0MjVmYjguLjUyYjQyN2MyMWI3
ODUzYWEyZWI3ZjBlNTUzODVhZGU4ZDhlOWYwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTdHJpbmcuaApAQCAtMjM3LDYgKzIzNyw4IEBAIGNsYXNzIEpTU3RyaW5nIDogcHVi
bGljIEpTQ2VsbCB7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBlcXVhbFNsb3dDYXNlKEpT
R2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqIG90aGVyKSBjb25zdDsKICAgICBib29sIGlzU3Vic3Ry
aW5nKCkgY29uc3Q7CiAKKyAgICB1aW50cHRyX3QgZmliZXJDb25jdXJyZW50bHkoKSBjb25zdCB7
IHJldHVybiBXVEY6Om9wYXF1ZShtX2ZpYmVyKTsgfQorCiAgICAgbXV0YWJsZSB1aW50cHRyX3Qg
bV9maWJlcjsKIAogcHJpdmF0ZToKQEAgLTY5NSw3ICs2OTcsNyBAQCBKU19FWFBPUlRfUFJJVkFU
RSBKU1N0cmluZyoganNTdHJpbmdXaXRoQ2FjaGVTbG93Q2FzZShWTSYsIFN0cmluZ0ltcGwmKTsK
IC8vIGlzIGluIHRoZSBtaWRkbGUgb2YgY29udmVydGluZyBKU1JvcGVTdHJpbmcgdG8gSlNTdHJp
bmcuCiBBTFdBWVNfSU5MSU5FIGJvb2wgSlNTdHJpbmc6OmlzOEJpdCgpIGNvbnN0CiB7Ci0gICAg
dWludHB0cl90IHBvaW50ZXIgPSBtX2ZpYmVyOworICAgIHVpbnRwdHJfdCBwb2ludGVyID0gZmli
ZXJDb25jdXJyZW50bHkoKTsKICAgICBpZiAocG9pbnRlciAmIGlzUm9wZUluUG9pbnRlcikgewog
ICAgICAgICAvLyBEbyBub3QgbG9hZCBtX2ZpYmVyIHR3aWNlLiBXZSBzaG91bGQgdXNlIHRoZSBp
bmZvcm1hdGlvbiBpbiBwb2ludGVyLgogICAgICAgICAvLyBPdGhlcndpc2UsIEpTUm9wZVN0cmlu
ZyBtYXkgYmUgY29udmVydGVkIHRvIEpTU3RyaW5nIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBzZWNv
bmQgYWNjZXNzZXMuCkBAIC03MDksNyArNzExLDcgQEAgQUxXQVlTX0lOTElORSBib29sIEpTU3Ry
aW5nOjppczhCaXQoKSBjb25zdAogLy8gd2hlbiB3ZSByZXNvbHZlIGEgSlNSb3BlU3RyaW5nLgog
QUxXQVlTX0lOTElORSB1bnNpZ25lZCBKU1N0cmluZzo6bGVuZ3RoKCkgY29uc3QKIHsKLSAgICB1
aW50cHRyX3QgcG9pbnRlciA9IG1fZmliZXI7CisgICAgdWludHB0cl90IHBvaW50ZXIgPSBmaWJl
ckNvbmN1cnJlbnRseSgpOwogICAgIGlmIChwb2ludGVyICYgaXNSb3BlSW5Qb2ludGVyKQogICAg
ICAgICByZXR1cm4ganNDYXN0PGNvbnN0IEpTUm9wZVN0cmluZyo+KHRoaXMpLT5sZW5ndGgoKTsK
ICAgICByZXR1cm4gYml0d2lzZV9jYXN0PFN0cmluZ0ltcGwqPihwb2ludGVyKS0+bGVuZ3RoKCk7
CkBAIC03MjMsNyArNzI1LDcgQEAgaW5saW5lIGNvbnN0IFN0cmluZ0ltcGwqIEpTU3RyaW5nOjpn
ZXRWYWx1ZUltcGwoKSBjb25zdAogCiBpbmxpbmUgY29uc3QgU3RyaW5nSW1wbCogSlNTdHJpbmc6
OnRyeUdldFZhbHVlSW1wbCgpIGNvbnN0CiB7Ci0gICAgdWludHB0cl90IHBvaW50ZXIgPSBtX2Zp
YmVyOworICAgIHVpbnRwdHJfdCBwb2ludGVyID0gZmliZXJDb25jdXJyZW50bHkoKTsKICAgICBp
ZiAocG9pbnRlciAmIGlzUm9wZUluUG9pbnRlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxTdHJpbmdJbXBsKj4ocG9pbnRlcik7CkBAIC0xMDczLDcg
KzEwNzUsNyBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZ1ZpZXdXaXRoVW5kZXJseWluZ1N0cmluZyBK
U1N0cmluZzo6dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKAogCiBpbmxpbmUgYm9vbCBKU1N0cmlu
Zzo6aXNTdWJzdHJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBtX2ZpYmVyICYgSlNSb3BlU3Ry
aW5nOjppc1N1YnN0cmluZ0luUG9pbnRlcjsKKyAgICByZXR1cm4gZmliZXJDb25jdXJyZW50bHko
KSAmIEpTUm9wZVN0cmluZzo6aXNTdWJzdHJpbmdJblBvaW50ZXI7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVC
YXJyaWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaApp
bmRleCBhODY1ZjgzNzM0NmMxNWYzYWYyNGVlNzdiZTRmZmY3ODk4OGFkZGM2Li5iMDI2ZDJkMzU5
NDcyYTM0Y2Y3YWQ4YjczYzE4NTU3NmIzMGM3ZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaApAQCAtOTgsNyArOTgsNyBAQCB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgVHJhaXRzPiBjbGFzcyBXcml0ZUJhcnJpZXJCYXNlIHsKICAgICBU
KiBnZXQoKSBjb25zdAogICAgIHsKICAgICAgICAgLy8gQ29weSBtX2NlbGwgdG8gYSBsb2NhbCB0
byBhdm9pZCBtdWx0aXBsZS1yZWFkIGlzc3Vlcy4gKFNlZSA8aHR0cDovL3dlYmtpdC5vcmcvYi8x
MTA4NTQ+KQotICAgICAgICBTdG9yYWdlVHlwZSBjZWxsID0gbV9jZWxsOworICAgICAgICBTdG9y
YWdlVHlwZSBjZWxsID0gdGhpcy0+Y2VsbCgpOwogICAgICAgICBpZiAoY2VsbCkKICAgICAgICAg
ICAgIHZhbGlkYXRlQ2VsbChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHN0YXRpY19jYXN0PHZv
aWQqPihUcmFpdHM6OnVud3JhcChjZWxsKSkpKTsKICAgICAgICAgcmV0dXJuIFRyYWl0czo6dW53
cmFwKGNlbGwpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBl
bmFtZSBUcmFpdHM+IGNsYXNzIFdyaXRlQmFycmllckJhc2UgewogCiAgICAgVCogb3BlcmF0b3Iq
KCkgY29uc3QKICAgICB7Ci0gICAgICAgIFN0b3JhZ2VUeXBlIGNlbGwgPSBtX2NlbGw7CisgICAg
ICAgIFN0b3JhZ2VUeXBlIGNlbGwgPSB0aGlzLT5jZWxsKCk7CiAgICAgICAgIEFTU0VSVChjZWxs
KTsKICAgICAgICAgYXV0byB1bndyYXBwZWQgPSBUcmFpdHM6OnVud3JhcChjZWxsKTsKICAgICAg
ICAgdmFsaWRhdGVDZWxsPFQ+KHVud3JhcHBlZCk7CkBAIC0xMTUsNyArMTE1LDcgQEAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRyYWl0cz4gY2xhc3MgV3JpdGVCYXJyaWVyQmFzZSB7
CiAKICAgICBUKiBvcGVyYXRvci0+KCkgY29uc3QKICAgICB7Ci0gICAgICAgIFN0b3JhZ2VUeXBl
IGNlbGwgPSBtX2NlbGw7CisgICAgICAgIFN0b3JhZ2VUeXBlIGNlbGwgPSB0aGlzLT5jZWxsKCk7
CiAgICAgICAgIEFTU0VSVChjZWxsKTsKICAgICAgICAgYXV0byB1bndyYXBwZWQgPSBUcmFpdHM6
OnVud3JhcChjZWxsKTsKICAgICAgICAgdmFsaWRhdGVDZWxsKHVud3JhcHBlZCk7CkBAIC0xMzUs
OSArMTM1LDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRyYWl0cz4gY2xhc3Mg
V3JpdGVCYXJyaWVyQmFzZSB7CiAgICAgICAgIHJldHVybiBTbG90SGVscGVyPFQsIFRyYWl0cz46
OnJlaW50ZXJwcmV0KCZtX2NlbGwpOwogICAgIH0KICAgICAKLSAgICBleHBsaWNpdCBvcGVyYXRv
ciBib29sKCkgY29uc3QgeyByZXR1cm4gISFtX2NlbGw7IH0KKyAgICBleHBsaWNpdCBvcGVyYXRv
ciBib29sKCkgY29uc3QgeyByZXR1cm4gISFjZWxsKCk7IH0KICAgICAKLSAgICBib29sIG9wZXJh
dG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX2NlbGw7IH0KKyAgICBib29sIG9wZXJhdG9yISgpIGNv
bnN0IHsgcmV0dXJuICFjZWxsKCk7IH0KIAogICAgIHZvaWQgc2V0V2l0aG91dFdyaXRlQmFycmll
cihUKiB2YWx1ZSkKICAgICB7CkBAIC0xNDcsOSArMTQ3LDExIEBAIHRlbXBsYXRlIDx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBUcmFpdHM+IGNsYXNzIFdyaXRlQmFycmllckJhc2UgewogICAgICAgICBU
cmFpdHM6OmV4Y2hhbmdlKHRoaXMtPm1fY2VsbCwgdmFsdWUpOwogICAgIH0KIAotICAgIFQqIHVu
dmFsaWRhdGVkR2V0KCkgY29uc3QgeyByZXR1cm4gVHJhaXRzOjp1bndyYXAobV9jZWxsKTsgfQor
ICAgIFQqIHVudmFsaWRhdGVkR2V0KCkgY29uc3QgeyByZXR1cm4gVHJhaXRzOjp1bndyYXAoY2Vs
bCgpKTsgfQogCiBwcml2YXRlOgorICAgIFN0b3JhZ2VUeXBlIGNlbGwoKSBjb25zdCB7IHJldHVy
biBXVEY6Om9wYXF1ZShtX2NlbGwpOyB9CisKICAgICBTdG9yYWdlVHlwZSBtX2NlbGw7CiB9Owog
CkBAIC0yODEsNyArMjgzLDcgQEAgY2xhc3MgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgewogICAg
IFN0cnVjdHVyZSogZ2V0KCkgY29uc3QKICAgICB7CiAgICAgICAgIC8vIENvcHkgbV9zdHJ1Y3R1
cmVJRCB0byBhIGxvY2FsIHRvIGF2b2lkIG11bHRpcGxlLXJlYWQgaXNzdWVzLiAoU2VlIDxodHRw
Oi8vd2Via2l0Lm9yZy9iLzExMDg1ND4pCi0gICAgICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlE
ID0gbV9zdHJ1Y3R1cmVJRDsKKyAgICAgICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSB2YWx1
ZSgpOwogICAgICAgICBpZiAoc3RydWN0dXJlSUQpIHsKICAgICAgICAgICAgIFN0cnVjdHVyZSog
c3RydWN0dXJlID0gc3RydWN0dXJlSUQuZGVjb2RlKCk7CiAgICAgICAgICAgICB2YWxpZGF0ZUNl
bGwocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihzdHJ1Y3R1cmUpKTsKQEAgLTI5Miw3ICsyOTQs
NyBAQCBjbGFzcyBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCB7CiAKICAgICBTdHJ1Y3R1cmUqIG9w
ZXJhdG9yKigpIGNvbnN0CiAgICAgewotICAgICAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9
IG1fc3RydWN0dXJlSUQ7CisgICAgICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEID0gdmFsdWUo
KTsKICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZUlEKTsKICAgICAgICAgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUgPSBzdHJ1Y3R1cmVJRC5kZWNvZGUoKTsKICAgICAgICAgdmFsaWRhdGVDZWxsKHJlaW50
ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4oc3RydWN0dXJlKSk7CkBAIC0zMDEsNyArMzAzLDcgQEAgY2xh
c3MgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgewogCiAgICAgU3RydWN0dXJlKiBvcGVyYXRvci0+
KCkgY29uc3QKICAgICB7Ci0gICAgICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEID0gbV9zdHJ1
Y3R1cmVJRDsKKyAgICAgICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSB2YWx1ZSgpOwogICAg
ICAgICBBU1NFUlQoc3RydWN0dXJlSUQpOwogICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IHN0cnVjdHVyZUlELmRlY29kZSgpOwogICAgICAgICB2YWxpZGF0ZUNlbGwocmVpbnRlcnByZXRf
Y2FzdDxKU0NlbGwqPihzdHJ1Y3R1cmUpKTsKQEAgLTMxNSwxMiArMzE3LDEyIEBAIGNsYXNzIFdy
aXRlQmFycmllclN0cnVjdHVyZUlEIHsKIAogICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBj
b25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuICEhbV9zdHJ1Y3R1cmVJRDsKKyAgICAgICAgcmV0
dXJuICEhdmFsdWUoKTsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0CiAgICAg
ewotICAgICAgICByZXR1cm4gIW1fc3RydWN0dXJlSUQ7CisgICAgICAgIHJldHVybiAhdmFsdWUo
KTsKICAgICB9CiAKICAgICB2b2lkIHNldFdpdGhvdXRXcml0ZUJhcnJpZXIoU3RydWN0dXJlKiB2
YWx1ZSkKQEAgLTMzNywxMyArMzM5LDEzIEBAIGNsYXNzIFdyaXRlQmFycmllclN0cnVjdHVyZUlE
IHsKIAogICAgIFN0cnVjdHVyZSogdW52YWxpZGF0ZWRHZXQoKSBjb25zdAogICAgIHsKLSAgICAg
ICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSBtX3N0cnVjdHVyZUlEOworICAgICAgICBTdHJ1
Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IHZhbHVlKCk7CiAgICAgICAgIGlmIChzdHJ1Y3R1cmVJRCkK
ICAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmVJRC5kZWNvZGUoKTsKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQogCi0gICAgU3RydWN0dXJlSUQgdmFsdWUoKSBjb25zdCB7IHJldHVy
biBtX3N0cnVjdHVyZUlEOyB9CisgICAgU3RydWN0dXJlSUQgdmFsdWUoKSBjb25zdCB7IHJldHVy
biBXVEY6Om9wYXF1ZShtX3N0cnVjdHVyZUlEKTsgfQogCiBwcml2YXRlOgogICAgIFN0cnVjdHVy
ZUlEIG1fc3RydWN0dXJlSUQ7Cg==
</data>
<flag name="commit-queue"
          id="478169"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451436</attachid>
            <date>2022-02-09 13:32:22 -0800</date>
            <delta_ts>2022-02-09 15:03:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236387-20220209133221.patch</filename>
            <type>text/plain</type>
            <size>15520</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OWM0OGM3ZjgxMjkxZDI0YTFjMDU1OTI4ODc1MTI1OThmYzFiMmRjLi5mOGM1MWEwY2FmMDBiMjEw
M2NkOGJjM2NhNDA2ODU2NTVlNGIxMWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAyMi0wMi0wOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBXVEY6Om9wYXF1ZSBpbiBzb21lIHBsYWNlcyB0byBlbnN1cmUgYWNj
ZXNzIGlzIGRvbmUgb25seSBvbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzYzODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGNoIGFwcGxpZXMgV1RGOjpvcGFxdWUgbG9hZCB0bywKKwor
ICAgICAgICAxLiBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRAorICAgICAgICAyLiBKU1N0cmluZydz
IGZpYmVyCisgICAgICAgIDMuIFdlYWsKKyAgICAgICAgNC4gV3JpdGVCYXJyaWVyPFNvbWVLaW5k
T2ZDZWxsPgorCisgICAgICAgIFdlIHdpbGwgYWRkIG1vcmUgY292ZXJhZ2Ugb25jZSB3ZSBlbnN1
cmUgaXQgZG9lcyBub3QgaHVydCBwZXJmb3JtYW5jZSAoZS5nLiBmb3IgV3JpdGVCYXJyaWVyPFVu
a25vd24+KS4KKworICAgICAgICAqIGhlYXAvV2Vhay5jcHA6CisgICAgICAgIChKU0M6OndlYWtD
bGVhclNsb3dDYXNlKToKKyAgICAgICAgKiBoZWFwL1dlYWsuaDoKKyAgICAgICAgKEpTQzo6V2Vh
azo6aXNIYXNoVGFibGVFbXB0eVZhbHVlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2Vhazo6dW5z
YWZlSW1wbCBjb25zdCk6CisgICAgICAgIChKU0M6OldlYWs6OmNsZWFyKToKKyAgICAgICAgKEpT
Qzo6V2Vhazo6aW1wbCBjb25zdCk6CisgICAgICAgICogaGVhcC9XZWFrSW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpXZWFrPFQ+Ojppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSBjb25zdCk6CisgICAg
ICAgIChKU0M6OiBjb25zdCk6CisgICAgICAgIChKU0M6OldlYWs8VD46Om9wZXJhdG9yIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6V2VhazxUPjo6Z2V0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2Vh
azxUPjo6bGVha0ltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuY3BwOgorICAgICAg
ICAoSlNDOjpKU1N0cmluZzo6ZHVtcFRvU3RyZWFtKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6
OmVzdGltYXRlZFNpemUpOgorICAgICAgICAoSlNDOjpKU1N0cmluZzo6dmlzaXRDaGlsZHJlbklt
cGwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKEpTQzo6SlNTdHJp
bmc6OmZpYmVyQ29uY3VycmVudGx5IGNvbnN0KToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6Omlz
OEJpdCBjb25zdCk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjpsZW5ndGggY29uc3QpOgorICAg
ICAgICAoSlNDOjpKU1N0cmluZzo6dHJ5R2V0VmFsdWVJbXBsIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6SlNTdHJpbmc6OmlzU3Vic3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL1dyaXRl
QmFycmllci5oOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJCYXNlOjpnZXQgY29uc3QpOgor
ICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJCYXNlOjpvcGVyYXRvciogY29uc3QpOgorICAgICAg
ICAoSlNDOjpXcml0ZUJhcnJpZXJCYXNlOjpvcGVyYXRvci0+IGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6V3JpdGVCYXJyaWVyQmFzZTo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChKU0M6
OldyaXRlQmFycmllckJhc2U6Om9wZXJhdG9yISBjb25zdCk6CisgICAgICAgIChKU0M6OldyaXRl
QmFycmllckJhc2U6OnVudmFsaWRhdGVkR2V0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V3JpdGVC
YXJyaWVyQmFzZTo6Y2VsbCBjb25zdCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllclN0cnVj
dHVyZUlEOjpnZXQgY29uc3QpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJ
RDo6b3BlcmF0b3IqIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJl
SUQ6Om9wZXJhdG9yLT4gY29uc3QpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1
cmVJRDo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllclN0
cnVjdHVyZUlEOjpvcGVyYXRvciEgY29uc3QpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJT
dHJ1Y3R1cmVJRDo6dW52YWxpZGF0ZWRHZXQgY29uc3QpOgorICAgICAgICAoSlNDOjpXcml0ZUJh
cnJpZXJTdHJ1Y3R1cmVJRDo6dmFsdWUgY29uc3QpOgorCiAyMDIyLTAyLTA5ICBMYXVybyBNb3Vy
YSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVz
IGFmdGVyIHIyODkyNDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dl
YWsuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5jcHAKaW5kZXggNGUwNzlj
YmVhMzZiNmY4NDk3OWRlYjBlYzYwZjAyYmQ2ZDY5MmFkYi4uMmJkNGQ0OTdhMGQ3M2MyYjgwYzNm
NGZkYTllMmVkMTQ2MGM5Y2RiYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvV2Vhay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5jcHAKQEAg
LTMwLDEyICszMCwxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotdm9pZCB3ZWFrQ2xlYXJTbG93
Q2FzZShXZWFrSW1wbComIGltcGwpCit2b2lkIHdlYWtDbGVhclNsb3dDYXNlKFdlYWtJbXBsKiBp
bXBsKQogewogICAgIEFTU0VSVChpbXBsKTsKLQogICAgIFdlYWtTZXQ6OmRlYWxsb2NhdGUoaW1w
bCk7Ci0gICAgaW1wbCA9IG51bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvV2Vhay5oCmluZGV4IDgwNDE1NmQ5MzlhMzVmMTY5Zjc4ZTVlNTZkYmNhNjgx
NjIyZDE5N2QuLmJlOGU2MmMzMjJmNjZhYmM0YjZhZjU0YjI5ZWEwYmUzNGRiM2RhOWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9XZWFrLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkpT
RXhwb3J0TWFjcm9zLmgiCiAjaW5jbHVkZSA8Y3N0ZGRlZj4KKyNpbmNsdWRlIDx3dGYvQXRvbWlj
cy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3RvclRyYWl0cy5oPgpAQCAtMzcsNyArMzgsNyBAQCBj
bGFzcyBXZWFrSW1wbDsKIGNsYXNzIFdlYWtIYW5kbGVPd25lcjsKIAogLy8gVGhpcyBpcyBhIGZy
ZWUgZnVuY3Rpb24gcmF0aGVyIHRoYW4gYSBXZWFrPFQ+IG1lbWJlciBmdW5jdGlvbiBzbyB3ZSBj
YW4gcHV0IGl0IGluIFdlYWsuY3BwLgotSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCB3ZWFrQ2xlYXJT
bG93Q2FzZShXZWFrSW1wbComKTsKK0pTX0VYUE9SVF9QUklWQVRFIHZvaWQgd2Vha0NsZWFyU2xv
d0Nhc2UoV2Vha0ltcGwqKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgV2VhayB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2Vhayk7CkBAIC01Myw3ICs1NCw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWsgewogCiAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRW
YWx1ZSgpIGNvbnN0OwogICAgIFdlYWsoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKTsK
LSAgICBjb25zdGV4cHIgYm9vbCBpc0hhc2hUYWJsZUVtcHR5VmFsdWUoKSBjb25zdCB7IHJldHVy
biAhbV9pbXBsOyB9CisgICAgY29uc3RleHByIGJvb2wgaXNIYXNoVGFibGVFbXB0eVZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gIWltcGwoKTsgfQogCiAgICAgV2VhayhXZWFrJiYpOwogCkBAIC03Niwx
NiArNzcsMTkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgV2VhayB7CiAgICAgaW5saW5l
IGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdDsKIAogICAgIGlubGluZSBXZWFrSW1wbCog
bGVha0ltcGwoKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgV2Vha0ltcGwqIHVuc2FmZUltcGwo
KSBjb25zdCB7IHJldHVybiBtX2ltcGw7IH0KKyAgICBXZWFrSW1wbCogdW5zYWZlSW1wbCgpIGNv
bnN0IHsgcmV0dXJuIGltcGwoKTsgfQogICAgIHZvaWQgY2xlYXIoKQogICAgIHsKLSAgICAgICAg
aWYgKCFtX2ltcGwpCisgICAgICAgIGF1dG8qIHBvaW50ZXIgPSBpbXBsKCk7CisgICAgICAgIGlm
ICghcG9pbnRlcikKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgd2Vha0NsZWFyU2xvd0Nh
c2UobV9pbXBsKTsKKyAgICAgICAgd2Vha0NsZWFyU2xvd0Nhc2UocG9pbnRlcik7CisgICAgICAg
IG1faW1wbCA9IG51bGxwdHI7CiAgICAgfQogICAgIAogcHJpdmF0ZToKICAgICBzdGF0aWMgaW5s
aW5lIFdlYWtJbXBsKiBoYXNoVGFibGVEZWxldGVkVmFsdWUoKTsKKyAgICBXZWFrSW1wbCogaW1w
bCgpIGNvbnN0IHsgcmV0dXJuIFdURjo6b3BhcXVlKG1faW1wbCk7IH0KIAogICAgIFdlYWtJbXBs
KiBtX2ltcGwgeyBudWxscHRyIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvV2Vha0lubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtJ
bmxpbmVzLmgKaW5kZXggYTI0NDY3MWYyNzYxZDZhMzgyZjJmZDU3ZGFiMGY4MDkxYWIzYzk0YS4u
NDVjMzkyMTZiZDhiNjgzOTc4MDU4NmRhNjIyNmU1OWE1Mzk5NTA3NSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0lubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9XZWFrSW5saW5lcy5oCkBAIC0zOCw3ICszOCw3IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGlubGluZSBXZWFrPFQ+OjpXZWFrKFQqIGNlbGwsIFdlYWtIYW5kbGVPd25lciog
d2Vha093bmVyLCB2CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBib29sIFdlYWs8VD46
OmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9pbXBsID09
IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOworICAgIHJldHVybiBpbXBsKCkgPT0gaGFzaFRhYmxl
RGVsZXRlZFZhbHVlKCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBXZWFrPFQ+
OjpXZWFrKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKQEAgLTcwLDI0ICs3MCwyNyBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYXV0byBXZWFrPFQ+OjpvcGVyYXRvcj0oV2Vh
ayYmIG90aGVyKSAtPiBXZWFrJgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCogV2Vh
azxUPjo6b3BlcmF0b3ItPigpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKG1faW1wbCAmJiBtX2ltcGwt
PnN0YXRlKCkgPT0gV2Vha0ltcGw6OkxpdmUpOworICAgIGF1dG8qIHBvaW50ZXIgPSBpbXBsKCk7
CisgICAgQVNTRVJUKHBvaW50ZXIgJiYgcG9pbnRlci0+c3RhdGUoKSA9PSBXZWFrSW1wbDo6TGl2
ZSk7CiAgICAgLy8gV2UgY2FuJ3QgdXNlIGpzQ2FzdCBoZXJlIHNpbmNlIHdlIGNvdWxkIGJlIGNh
bGxlZCBpbiBhIGZpbmFsaXplci4KLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KG1faW1wbC0+
anNWYWx1ZSgpLmFzQ2VsbCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KHBvaW50ZXIt
PmpzVmFsdWUoKS5hc0NlbGwoKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBU
JiBXZWFrPFQ+OjpvcGVyYXRvciooKSBjb25zdAogewotICAgIEFTU0VSVChtX2ltcGwgJiYgbV9p
bXBsLT5zdGF0ZSgpID09IFdlYWtJbXBsOjpMaXZlKTsKKyAgICBhdXRvKiBwb2ludGVyID0gaW1w
bCgpOworICAgIEFTU0VSVChwb2ludGVyICYmIHBvaW50ZXItPnN0YXRlKCkgPT0gV2Vha0ltcGw6
OkxpdmUpOwogICAgIC8vIFdlIGNhbid0IHVzZSBqc0Nhc3QgaGVyZSBzaW5jZSB3ZSBjb3VsZCBi
ZSBjYWxsZWQgaW4gYSBmaW5hbGl6ZXIuCi0gICAgcmV0dXJuICpzdGF0aWNfY2FzdDxUKj4obV9p
bXBsLT5qc1ZhbHVlKCkuYXNDZWxsKCkpOworICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8VCo+KHBv
aW50ZXItPmpzVmFsdWUoKS5hc0NlbGwoKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBUKiBXZWFrPFQ+OjpnZXQoKSBjb25zdAogewotICAgIGlmICghbV9pbXBsIHx8IG1faW1w
bC0+c3RhdGUoKSAhPSBXZWFrSW1wbDo6TGl2ZSkKKyAgICBhdXRvKiBwb2ludGVyID0gaW1wbCgp
OworICAgIGlmICghcG9pbnRlciB8fCBwb2ludGVyLT5zdGF0ZSgpICE9IFdlYWtJbXBsOjpMaXZl
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAvLyBXZSBjYW4ndCB1c2UganNDYXN0IGhl
cmUgc2luY2Ugd2UgY291bGQgYmUgY2FsbGVkIGluIGEgZmluYWxpemVyLgotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxUKj4obV9pbXBsLT5qc1ZhbHVlKCkuYXNDZWxsKCkpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxUKj4ocG9pbnRlci0+anNWYWx1ZSgpLmFzQ2VsbCgpKTsKIH0KIAogdGVtcGxh
dGU8dHlwZW5hbWUgVD4gaW5saW5lIGJvb2wgV2VhazxUPjo6d2FzKFQqIG90aGVyKSBjb25zdApA
QCAtOTcsNyArMTAwLDggQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGJvb2wgV2VhazxU
Pjo6d2FzKFQqIG90aGVyKSBjb25zdAogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYm9v
bCBXZWFrPFQ+OjpvcGVyYXRvciEoKSBjb25zdAogewotICAgIHJldHVybiAhbV9pbXBsIHx8ICFt
X2ltcGwtPmpzVmFsdWUoKSB8fCBtX2ltcGwtPnN0YXRlKCkgIT0gV2Vha0ltcGw6OkxpdmU7Cisg
ICAgYXV0byogcG9pbnRlciA9IGltcGwoKTsKKyAgICByZXR1cm4gIXBvaW50ZXIgfHwgIXBvaW50
ZXItPmpzVmFsdWUoKSB8fCBwb2ludGVyLT5zdGF0ZSgpICE9IFdlYWtJbXBsOjpMaXZlOwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgV2VhazxUPjo6b3BlcmF0b3IgYm9vbCgpIGNv
bnN0CkBAIC0xMDcsOSArMTExLDkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFdlYWs8
VD46Om9wZXJhdG9yIGJvb2woKSBjb25zdAogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUg
V2Vha0ltcGwqIFdlYWs8VD46OmxlYWtJbXBsKCkKIHsKLSAgICBXZWFrSW1wbCogaW1wbCA9IG1f
aW1wbDsKKyAgICBhdXRvKiBwb2ludGVyID0gaW1wbCgpOwogICAgIG1faW1wbCA9IG51bGxwdHI7
Ci0gICAgcmV0dXJuIGltcGw7CisgICAgcmV0dXJuIHBvaW50ZXI7CiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGlubGluZSBXZWFrSW1wbCogV2VhazxUPjo6aGFzaFRhYmxlRGVsZXRlZFZhbHVl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAppbmRleCBkYzVl
NjllNjc3Zjk2MGUzODkzZjUzYTVkZDNlNzViZDI4MzQyMDM5Li41ODI1MjAzYjMyMGNiNzNkMzk3
NWVjZWE2YmZmOTczYTEwZDBiYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdHJpbmcuY3BwCkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgSlNTdHJpbmc6OmR1bXBUb1N0cmVh
bShjb25zdCBKU0NlbGwqIGNlbGwsIFByaW50U3RyZWFtJiBvdXQpCiAgICAgVk0mIHZtID0gY2Vs
bC0+dm0oKTsKICAgICBjb25zdCBKU1N0cmluZyogdGhpc09iamVjdCA9IGpzQ2FzdDxjb25zdCBK
U1N0cmluZyo+KGNlbGwpOwogICAgIG91dC5wcmludGYoIjwlcCwgJXMsIFsldV0sICIsIHRoaXNP
YmplY3QsIHRoaXNPYmplY3QtPmNsYXNzTmFtZSh2bSksIHRoaXNPYmplY3QtPmxlbmd0aCgpKTsK
LSAgICB1aW50cHRyX3QgcG9pbnRlciA9IHRoaXNPYmplY3QtPm1fZmliZXI7CisgICAgdWludHB0
cl90IHBvaW50ZXIgPSB0aGlzT2JqZWN0LT5maWJlckNvbmN1cnJlbnRseSgpOwogICAgIGlmIChw
b2ludGVyICYgaXNSb3BlSW5Qb2ludGVyKSB7CiAgICAgICAgIGlmIChwb2ludGVyICYgSlNSb3Bl
U3RyaW5nOjppc1N1YnN0cmluZ0luUG9pbnRlcikKICAgICAgICAgICAgIG91dC5wcmludGYoIltz
dWJzdHJpbmddIik7CkBAIC0xMDMsNyArMTAzLDcgQEAgYm9vbCBKU1N0cmluZzo6ZXF1YWxTbG93
Q2FzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogb3RoZXIpIGNvbnMK
IHNpemVfdCBKU1N0cmluZzo6ZXN0aW1hdGVkU2l6ZShKU0NlbGwqIGNlbGwsIFZNJiB2bSkKIHsK
ICAgICBKU1N0cmluZyogdGhpc09iamVjdCA9IGFzU3RyaW5nKGNlbGwpOwotICAgIHVpbnRwdHJf
dCBwb2ludGVyID0gdGhpc09iamVjdC0+bV9maWJlcjsKKyAgICB1aW50cHRyX3QgcG9pbnRlciA9
IHRoaXNPYmplY3QtPmZpYmVyQ29uY3VycmVudGx5KCk7CiAgICAgaWYgKHBvaW50ZXIgJiBpc1Jv
cGVJblBvaW50ZXIpCiAgICAgICAgIHJldHVybiBCYXNlOjplc3RpbWF0ZWRTaXplKGNlbGwsIHZt
KTsKICAgICByZXR1cm4gQmFzZTo6ZXN0aW1hdGVkU2l6ZShjZWxsLCB2bSkgKyBiaXR3aXNlX2Nh
c3Q8U3RyaW5nSW1wbCo+KHBvaW50ZXIpLT5jb3N0RHVyaW5nR0MoKTsKQEAgLTExNiw3ICsxMTYs
NyBAQCB2b2lkIEpTU3RyaW5nOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0
b3ImIHZpc2l0b3IpCiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBp
bmZvKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CiAg
ICAgCi0gICAgdWludHB0cl90IHBvaW50ZXIgPSB0aGlzT2JqZWN0LT5tX2ZpYmVyOworICAgIHVp
bnRwdHJfdCBwb2ludGVyID0gdGhpc09iamVjdC0+ZmliZXJDb25jdXJyZW50bHkoKTsKICAgICBp
ZiAocG9pbnRlciAmIGlzUm9wZUluUG9pbnRlcikgewogICAgICAgICBpZiAocG9pbnRlciAmIEpT
Um9wZVN0cmluZzo6aXNTdWJzdHJpbmdJblBvaW50ZXIpIHsKICAgICAgICAgICAgIHZpc2l0b3Iu
YXBwZW5kVW5iYXJyaWVyZWQoc3RhdGljX2Nhc3Q8SlNSb3BlU3RyaW5nKj4odGhpc09iamVjdCkt
PmZpYmVyMSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCmluZGV4
IDg5NTNmOTQxNzY1ZDU5ZmUxOWIwMTVmNDFmNzI3MjM4YmU0MjVmYjguLjUyYjQyN2MyMWI3ODUz
YWEyZWI3ZjBlNTUzODVhZGU4ZDhlOWYwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdHJpbmcuaApAQCAtMjM3LDYgKzIzNyw4IEBAIGNsYXNzIEpTU3RyaW5nIDogcHVibGlj
IEpTQ2VsbCB7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBlcXVhbFNsb3dDYXNlKEpTR2xv
YmFsT2JqZWN0KiwgSlNTdHJpbmcqIG90aGVyKSBjb25zdDsKICAgICBib29sIGlzU3Vic3RyaW5n
KCkgY29uc3Q7CiAKKyAgICB1aW50cHRyX3QgZmliZXJDb25jdXJyZW50bHkoKSBjb25zdCB7IHJl
dHVybiBXVEY6Om9wYXF1ZShtX2ZpYmVyKTsgfQorCiAgICAgbXV0YWJsZSB1aW50cHRyX3QgbV9m
aWJlcjsKIAogcHJpdmF0ZToKQEAgLTY5NSw3ICs2OTcsNyBAQCBKU19FWFBPUlRfUFJJVkFURSBK
U1N0cmluZyoganNTdHJpbmdXaXRoQ2FjaGVTbG93Q2FzZShWTSYsIFN0cmluZ0ltcGwmKTsKIC8v
IGlzIGluIHRoZSBtaWRkbGUgb2YgY29udmVydGluZyBKU1JvcGVTdHJpbmcgdG8gSlNTdHJpbmcu
CiBBTFdBWVNfSU5MSU5FIGJvb2wgSlNTdHJpbmc6OmlzOEJpdCgpIGNvbnN0CiB7Ci0gICAgdWlu
dHB0cl90IHBvaW50ZXIgPSBtX2ZpYmVyOworICAgIHVpbnRwdHJfdCBwb2ludGVyID0gZmliZXJD
b25jdXJyZW50bHkoKTsKICAgICBpZiAocG9pbnRlciAmIGlzUm9wZUluUG9pbnRlcikgewogICAg
ICAgICAvLyBEbyBub3QgbG9hZCBtX2ZpYmVyIHR3aWNlLiBXZSBzaG91bGQgdXNlIHRoZSBpbmZv
cm1hdGlvbiBpbiBwb2ludGVyLgogICAgICAgICAvLyBPdGhlcndpc2UsIEpTUm9wZVN0cmluZyBt
YXkgYmUgY29udmVydGVkIHRvIEpTU3RyaW5nIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBzZWNvbmQg
YWNjZXNzZXMuCkBAIC03MDksNyArNzExLDcgQEAgQUxXQVlTX0lOTElORSBib29sIEpTU3RyaW5n
OjppczhCaXQoKSBjb25zdAogLy8gd2hlbiB3ZSByZXNvbHZlIGEgSlNSb3BlU3RyaW5nLgogQUxX
QVlTX0lOTElORSB1bnNpZ25lZCBKU1N0cmluZzo6bGVuZ3RoKCkgY29uc3QKIHsKLSAgICB1aW50
cHRyX3QgcG9pbnRlciA9IG1fZmliZXI7CisgICAgdWludHB0cl90IHBvaW50ZXIgPSBmaWJlckNv
bmN1cnJlbnRseSgpOwogICAgIGlmIChwb2ludGVyICYgaXNSb3BlSW5Qb2ludGVyKQogICAgICAg
ICByZXR1cm4ganNDYXN0PGNvbnN0IEpTUm9wZVN0cmluZyo+KHRoaXMpLT5sZW5ndGgoKTsKICAg
ICByZXR1cm4gYml0d2lzZV9jYXN0PFN0cmluZ0ltcGwqPihwb2ludGVyKS0+bGVuZ3RoKCk7CkBA
IC03MjMsNyArNzI1LDcgQEAgaW5saW5lIGNvbnN0IFN0cmluZ0ltcGwqIEpTU3RyaW5nOjpnZXRW
YWx1ZUltcGwoKSBjb25zdAogCiBpbmxpbmUgY29uc3QgU3RyaW5nSW1wbCogSlNTdHJpbmc6OnRy
eUdldFZhbHVlSW1wbCgpIGNvbnN0CiB7Ci0gICAgdWludHB0cl90IHBvaW50ZXIgPSBtX2ZpYmVy
OworICAgIHVpbnRwdHJfdCBwb2ludGVyID0gZmliZXJDb25jdXJyZW50bHkoKTsKICAgICBpZiAo
cG9pbnRlciAmIGlzUm9wZUluUG9pbnRlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
cmV0dXJuIGJpdHdpc2VfY2FzdDxTdHJpbmdJbXBsKj4ocG9pbnRlcik7CkBAIC0xMDczLDcgKzEw
NzUsNyBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZ1ZpZXdXaXRoVW5kZXJseWluZ1N0cmluZyBKU1N0
cmluZzo6dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKAogCiBpbmxpbmUgYm9vbCBKU1N0cmluZzo6
aXNTdWJzdHJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBtX2ZpYmVyICYgSlNSb3BlU3RyaW5n
Ojppc1N1YnN0cmluZ0luUG9pbnRlcjsKKyAgICByZXR1cm4gZmliZXJDb25jdXJyZW50bHkoKSAm
IEpTUm9wZVN0cmluZzo6aXNTdWJzdHJpbmdJblBvaW50ZXI7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJy
aWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaAppbmRl
eCBhODY1ZjgzNzM0NmMxNWYzYWYyNGVlNzdiZTRmZmY3ODk4OGFkZGM2Li5iMDI2ZDJkMzU5NDcy
YTM0Y2Y3YWQ4YjczYzE4NTU3NmIzMGM3ZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Xcml0ZUJhcnJpZXIuaApAQCAtOTgsNyArOTgsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVHJhaXRzPiBjbGFzcyBXcml0ZUJhcnJpZXJCYXNlIHsKICAgICBUKiBn
ZXQoKSBjb25zdAogICAgIHsKICAgICAgICAgLy8gQ29weSBtX2NlbGwgdG8gYSBsb2NhbCB0byBh
dm9pZCBtdWx0aXBsZS1yZWFkIGlzc3Vlcy4gKFNlZSA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTA4
NTQ+KQotICAgICAgICBTdG9yYWdlVHlwZSBjZWxsID0gbV9jZWxsOworICAgICAgICBTdG9yYWdl
VHlwZSBjZWxsID0gdGhpcy0+Y2VsbCgpOwogICAgICAgICBpZiAoY2VsbCkKICAgICAgICAgICAg
IHZhbGlkYXRlQ2VsbChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHN0YXRpY19jYXN0PHZvaWQq
PihUcmFpdHM6OnVud3JhcChjZWxsKSkpKTsKICAgICAgICAgcmV0dXJuIFRyYWl0czo6dW53cmFw
KGNlbGwpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBUcmFpdHM+IGNsYXNzIFdyaXRlQmFycmllckJhc2UgewogCiAgICAgVCogb3BlcmF0b3IqKCkg
Y29uc3QKICAgICB7Ci0gICAgICAgIFN0b3JhZ2VUeXBlIGNlbGwgPSBtX2NlbGw7CisgICAgICAg
IFN0b3JhZ2VUeXBlIGNlbGwgPSB0aGlzLT5jZWxsKCk7CiAgICAgICAgIEFTU0VSVChjZWxsKTsK
ICAgICAgICAgYXV0byB1bndyYXBwZWQgPSBUcmFpdHM6OnVud3JhcChjZWxsKTsKICAgICAgICAg
dmFsaWRhdGVDZWxsPFQ+KHVud3JhcHBlZCk7CkBAIC0xMTUsNyArMTE1LDcgQEAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRyYWl0cz4gY2xhc3MgV3JpdGVCYXJyaWVyQmFzZSB7CiAK
ICAgICBUKiBvcGVyYXRvci0+KCkgY29uc3QKICAgICB7Ci0gICAgICAgIFN0b3JhZ2VUeXBlIGNl
bGwgPSBtX2NlbGw7CisgICAgICAgIFN0b3JhZ2VUeXBlIGNlbGwgPSB0aGlzLT5jZWxsKCk7CiAg
ICAgICAgIEFTU0VSVChjZWxsKTsKICAgICAgICAgYXV0byB1bndyYXBwZWQgPSBUcmFpdHM6OnVu
d3JhcChjZWxsKTsKICAgICAgICAgdmFsaWRhdGVDZWxsKHVud3JhcHBlZCk7CkBAIC0xMzUsOSAr
MTM1LDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRyYWl0cz4gY2xhc3MgV3Jp
dGVCYXJyaWVyQmFzZSB7CiAgICAgICAgIHJldHVybiBTbG90SGVscGVyPFQsIFRyYWl0cz46OnJl
aW50ZXJwcmV0KCZtX2NlbGwpOwogICAgIH0KICAgICAKLSAgICBleHBsaWNpdCBvcGVyYXRvciBi
b29sKCkgY29uc3QgeyByZXR1cm4gISFtX2NlbGw7IH0KKyAgICBleHBsaWNpdCBvcGVyYXRvciBi
b29sKCkgY29uc3QgeyByZXR1cm4gISFjZWxsKCk7IH0KICAgICAKLSAgICBib29sIG9wZXJhdG9y
ISgpIGNvbnN0IHsgcmV0dXJuICFtX2NlbGw7IH0KKyAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0
IHsgcmV0dXJuICFjZWxsKCk7IH0KIAogICAgIHZvaWQgc2V0V2l0aG91dFdyaXRlQmFycmllcihU
KiB2YWx1ZSkKICAgICB7CkBAIC0xNDcsOSArMTQ3LDExIEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBUcmFpdHM+IGNsYXNzIFdyaXRlQmFycmllckJhc2UgewogICAgICAgICBUcmFp
dHM6OmV4Y2hhbmdlKHRoaXMtPm1fY2VsbCwgdmFsdWUpOwogICAgIH0KIAotICAgIFQqIHVudmFs
aWRhdGVkR2V0KCkgY29uc3QgeyByZXR1cm4gVHJhaXRzOjp1bndyYXAobV9jZWxsKTsgfQorICAg
IFQqIHVudmFsaWRhdGVkR2V0KCkgY29uc3QgeyByZXR1cm4gVHJhaXRzOjp1bndyYXAoY2VsbCgp
KTsgfQogCiBwcml2YXRlOgorICAgIFN0b3JhZ2VUeXBlIGNlbGwoKSBjb25zdCB7IHJldHVybiBX
VEY6Om9wYXF1ZShtX2NlbGwpOyB9CisKICAgICBTdG9yYWdlVHlwZSBtX2NlbGw7CiB9OwogCkBA
IC0yODEsNyArMjgzLDcgQEAgY2xhc3MgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgewogICAgIFN0
cnVjdHVyZSogZ2V0KCkgY29uc3QKICAgICB7CiAgICAgICAgIC8vIENvcHkgbV9zdHJ1Y3R1cmVJ
RCB0byBhIGxvY2FsIHRvIGF2b2lkIG11bHRpcGxlLXJlYWQgaXNzdWVzLiAoU2VlIDxodHRwOi8v
d2Via2l0Lm9yZy9iLzExMDg1ND4pCi0gICAgICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEID0g
bV9zdHJ1Y3R1cmVJRDsKKyAgICAgICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSB2YWx1ZSgp
OwogICAgICAgICBpZiAoc3RydWN0dXJlSUQpIHsKICAgICAgICAgICAgIFN0cnVjdHVyZSogc3Ry
dWN0dXJlID0gc3RydWN0dXJlSUQuZGVjb2RlKCk7CiAgICAgICAgICAgICB2YWxpZGF0ZUNlbGwo
cmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihzdHJ1Y3R1cmUpKTsKQEAgLTI5Miw3ICsyOTQsNyBA
QCBjbGFzcyBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCB7CiAKICAgICBTdHJ1Y3R1cmUqIG9wZXJh
dG9yKigpIGNvbnN0CiAgICAgewotICAgICAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IG1f
c3RydWN0dXJlSUQ7CisgICAgICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEID0gdmFsdWUoKTsK
ICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZUlEKTsKICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUgPSBzdHJ1Y3R1cmVJRC5kZWNvZGUoKTsKICAgICAgICAgdmFsaWRhdGVDZWxsKHJlaW50ZXJw
cmV0X2Nhc3Q8SlNDZWxsKj4oc3RydWN0dXJlKSk7CkBAIC0zMDEsNyArMzAzLDcgQEAgY2xhc3Mg
V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgewogCiAgICAgU3RydWN0dXJlKiBvcGVyYXRvci0+KCkg
Y29uc3QKICAgICB7Ci0gICAgICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEID0gbV9zdHJ1Y3R1
cmVJRDsKKyAgICAgICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSB2YWx1ZSgpOwogICAgICAg
ICBBU1NFUlQoc3RydWN0dXJlSUQpOwogICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHN0
cnVjdHVyZUlELmRlY29kZSgpOwogICAgICAgICB2YWxpZGF0ZUNlbGwocmVpbnRlcnByZXRfY2Fz
dDxKU0NlbGwqPihzdHJ1Y3R1cmUpKTsKQEAgLTMxNSwxMiArMzE3LDEyIEBAIGNsYXNzIFdyaXRl
QmFycmllclN0cnVjdHVyZUlEIHsKIAogICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuICEhbV9zdHJ1Y3R1cmVJRDsKKyAgICAgICAgcmV0dXJu
ICEhdmFsdWUoKTsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0CiAgICAgewot
ICAgICAgICByZXR1cm4gIW1fc3RydWN0dXJlSUQ7CisgICAgICAgIHJldHVybiAhdmFsdWUoKTsK
ICAgICB9CiAKICAgICB2b2lkIHNldFdpdGhvdXRXcml0ZUJhcnJpZXIoU3RydWN0dXJlKiB2YWx1
ZSkKQEAgLTMzNywxMyArMzM5LDEzIEBAIGNsYXNzIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIHsK
IAogICAgIFN0cnVjdHVyZSogdW52YWxpZGF0ZWRHZXQoKSBjb25zdAogICAgIHsKLSAgICAgICAg
U3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSBtX3N0cnVjdHVyZUlEOworICAgICAgICBTdHJ1Y3R1
cmVJRCBzdHJ1Y3R1cmVJRCA9IHZhbHVlKCk7CiAgICAgICAgIGlmIChzdHJ1Y3R1cmVJRCkKICAg
ICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmVJRC5kZWNvZGUoKTsKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogCi0gICAgU3RydWN0dXJlSUQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X3N0cnVjdHVyZUlEOyB9CisgICAgU3RydWN0dXJlSUQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBX
VEY6Om9wYXF1ZShtX3N0cnVjdHVyZUlEKTsgfQogCiBwcml2YXRlOgogICAgIFN0cnVjdHVyZUlE
IG1fc3RydWN0dXJlSUQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451450</attachid>
            <date>2022-02-09 15:03:05 -0800</date>
            <delta_ts>2022-02-09 15:05:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236387-20220209150304.patch</filename>
            <type>text/plain</type>
            <size>15216</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OWM0OGM3ZjgxMjkxZDI0YTFjMDU1OTI4ODc1MTI1OThmYzFiMmRjLi44ZWMwYzc2ODg0ZjIxYmQ4
YjgzNzEzZGQ4MDc3Zjg1YzFhNWFjZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAyMi0wMi0wOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBsb2NhbCB2YXJpYWJsZSBwb2ludGVyIGZvciBjb25jdXJyZW50bHkg
bG9hZCB2YWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM2Mzg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ29uc2lzdGVudGx5IHVzaW5nIGxvY2FsIHBvaW50ZXIgdG8gbG9hZCBtZW1iZXIgZmllbGRz
IGluCisKKyAgICAgICAgICAgIDEuIFdyaXRlQmFycmllclN0cnVjdHVyZUlECisgICAgICAgICAg
ICAyLiBKU1N0cmluZydzIGZpYmVyCisgICAgICAgICAgICAzLiBXZWFrCisgICAgICAgICAgICA0
LiBXcml0ZUJhcnJpZXI8U29tZUtpbmRPZkNlbGw+CisKKyAgICAgICAgdG8gZW5jb3VyYWdlIGNv
bXBpbGVycyBub3QgdG8gbG9hZCB0aGUgZmllbGQgdHdpY2UuCisKKyAgICAgICAgKiBoZWFwL1dl
YWsuY3BwOgorICAgICAgICAoSlNDOjp3ZWFrQ2xlYXJTbG93Q2FzZSk6CisgICAgICAgICogaGVh
cC9XZWFrLmg6CisgICAgICAgIChKU0M6OldlYWs6OmlzSGFzaFRhYmxlRW1wdHlWYWx1ZSBjb25z
dCk6CisgICAgICAgIChKU0M6OldlYWs6OnVuc2FmZUltcGwgY29uc3QpOgorICAgICAgICAoSlND
OjpXZWFrOjpjbGVhcik6CisgICAgICAgIChKU0M6OldlYWs6OmltcGwgY29uc3QpOgorICAgICAg
ICAqIGhlYXAvV2Vha0lubGluZXMuaDoKKyAgICAgICAgKEpTQzo6V2VhazxUPjo6aXNIYXNoVGFi
bGVEZWxldGVkVmFsdWUgY29uc3QpOgorICAgICAgICAoSlNDOjogY29uc3QpOgorICAgICAgICAo
SlNDOjpXZWFrPFQ+OjpvcGVyYXRvciBjb25zdCk6CisgICAgICAgIChKU0M6OldlYWs8VD46Omdl
dCBjb25zdCk6CisgICAgICAgIChKU0M6OldlYWs8VD46OmxlYWtJbXBsKToKKyAgICAgICAgKiBy
dW50aW1lL0pTU3RyaW5nLmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OmR1bXBUb1N0cmVh
bSk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjplc3RpbWF0ZWRTaXplKToKKyAgICAgICAgKEpT
Qzo6SlNTdHJpbmc6OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAgICAgKiBydW50aW1lL0pTU3Ry
aW5nLmg6CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjpmaWJlckNvbmN1cnJlbnRseSBjb25zdCk6
CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjppczhCaXQgY29uc3QpOgorICAgICAgICAoSlNDOjpK
U1N0cmluZzo6bGVuZ3RoIGNvbnN0KToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OnRyeUdldFZh
bHVlSW1wbCBjb25zdCk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjppc1N1YnN0cmluZyBjb25z
dCk6CisgICAgICAgICogcnVudGltZS9Xcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6V3Jp
dGVCYXJyaWVyQmFzZTo6Z2V0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFz
ZTo6b3BlcmF0b3IqIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFzZTo6b3Bl
cmF0b3ItPiBjb25zdCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllckJhc2U6Om9wZXJhdG9y
IGJvb2wgY29uc3QpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJCYXNlOjpvcGVyYXRvciEg
Y29uc3QpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJCYXNlOjp1bnZhbGlkYXRlZEdldCBj
b25zdCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllckJhc2U6OmNlbGwgY29uc3QpOgorICAg
ICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6Z2V0IGNvbnN0KToKKyAgICAgICAg
KEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6Om9wZXJhdG9yKiBjb25zdCk6CisgICAgICAg
IChKU0M6OldyaXRlQmFycmllclN0cnVjdHVyZUlEOjpvcGVyYXRvci0+IGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgor
ICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6b3BlcmF0b3IhIGNvbnN0KToK
KyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6OnVudmFsaWRhdGVkR2V0IGNv
bnN0KToKKwogMjAyMi0wMi0wOSAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBOb24tdW5pZmllZCBidWlsZCBmaXhlcyBhZnRlciByMjg5MjQ3CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1dlYWsuY3BwCmluZGV4IDRlMDc5Y2JlYTM2YjZmODQ5NzlkZWIwZWM2MGYwMmJk
NmQ2OTJhZGIuLjJiZDRkNDk3YTBkNzNjMmI4MGMzZjRmZGE5ZTJlZDE0NjBjOWNkYmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuY3BwCkBAIC0zMCwxMiArMzAsMTAgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKLXZvaWQgd2Vha0NsZWFyU2xvd0Nhc2UoV2Vha0ltcGwqJiBpbXBsKQordm9p
ZCB3ZWFrQ2xlYXJTbG93Q2FzZShXZWFrSW1wbCogaW1wbCkKIHsKICAgICBBU1NFUlQoaW1wbCk7
Ci0KICAgICBXZWFrU2V0OjpkZWFsbG9jYXRlKGltcGwpOwotICAgIGltcGwgPSBudWxscHRyOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL1dlYWsuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuaAppbmRleCA4
MDQxNTZkOTM5YTM1ZjE2OWY3OGU1ZTU2ZGJjYTY4MTYyMmQxOTdkLi5mZGFlM2NlNGQzZWZlNzJj
OWNjNzFiMzA4ZDk0YWEzNjY4MDM3YzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9XZWFrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5oCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgogI2luY2x1ZGUg
PGNzdGRkZWY+CisjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFRy
YWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3JUcmFpdHMuaD4KQEAgLTM3LDcgKzM4LDcgQEAgY2xhc3MgV2Vha0ltcGw7CiBjbGFzcyBXZWFr
SGFuZGxlT3duZXI7CiAKIC8vIFRoaXMgaXMgYSBmcmVlIGZ1bmN0aW9uIHJhdGhlciB0aGFuIGEg
V2VhazxUPiBtZW1iZXIgZnVuY3Rpb24gc28gd2UgY2FuIHB1dCBpdCBpbiBXZWFrLmNwcC4KLUpT
X0VYUE9SVF9QUklWQVRFIHZvaWQgd2Vha0NsZWFyU2xvd0Nhc2UoV2Vha0ltcGwqJik7CitKU19F
WFBPUlRfUFJJVkFURSB2b2lkIHdlYWtDbGVhclNsb3dDYXNlKFdlYWtJbXBsKik7CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWsgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdl
YWspOwpAQCAtNTMsNyArNTQsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBXZWFrIHsK
IAogICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdDsKICAgICBXZWFrKFdU
Rjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSk7Ci0gICAgY29uc3RleHByIGJvb2wgaXNIYXNo
VGFibGVFbXB0eVZhbHVlKCkgY29uc3QgeyByZXR1cm4gIW1faW1wbDsgfQorICAgIGNvbnN0ZXhw
ciBib29sIGlzSGFzaFRhYmxlRW1wdHlWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuICFpbXBsKCk7IH0K
IAogICAgIFdlYWsoV2VhayYmKTsKIApAQCAtNzYsMTYgKzc3LDE5IEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGNsYXNzIFdlYWsgewogICAgIGlubGluZSBleHBsaWNpdCBvcGVyYXRvciBib29sKCkg
Y29uc3Q7CiAKICAgICBpbmxpbmUgV2Vha0ltcGwqIGxlYWtJbXBsKCkgV0FSTl9VTlVTRURfUkVU
VVJOOwotICAgIFdlYWtJbXBsKiB1bnNhZmVJbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsOyB9
CisgICAgV2Vha0ltcGwqIHVuc2FmZUltcGwoKSBjb25zdCB7IHJldHVybiBpbXBsKCk7IH0KICAg
ICB2b2lkIGNsZWFyKCkKICAgICB7Ci0gICAgICAgIGlmICghbV9pbXBsKQorICAgICAgICBhdXRv
KiBwb2ludGVyID0gaW1wbCgpOworICAgICAgICBpZiAoIXBvaW50ZXIpCiAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIHdlYWtDbGVhclNsb3dDYXNlKG1faW1wbCk7CisgICAgICAgIHdlYWtD
bGVhclNsb3dDYXNlKHBvaW50ZXIpOworICAgICAgICBtX2ltcGwgPSBudWxscHRyOwogICAgIH0K
ICAgICAKIHByaXZhdGU6CiAgICAgc3RhdGljIGlubGluZSBXZWFrSW1wbCogaGFzaFRhYmxlRGVs
ZXRlZFZhbHVlKCk7CisgICAgV2Vha0ltcGwqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGw7
IH0KIAogICAgIFdlYWtJbXBsKiBtX2ltcGwgeyBudWxscHRyIH07CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0lubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1dlYWtJbmxpbmVzLmgKaW5kZXggYTI0NDY3MWYyNzYxZDZhMzgyZjJmZDU3
ZGFiMGY4MDkxYWIzYzk0YS4uNDVjMzkyMTZiZDhiNjgzOTc4MDU4NmRhNjIyNmU1OWE1Mzk5NTA3
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0lubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrSW5saW5lcy5oCkBAIC0zOCw3ICsz
OCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBXZWFrPFQ+OjpXZWFrKFQqIGNlbGws
IFdlYWtIYW5kbGVPd25lciogd2Vha093bmVyLCB2CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBib29sIFdlYWs8VD46OmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV9pbXBsID09IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOworICAgIHJldHVybiBp
bXBsKCkgPT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGlubGluZSBXZWFrPFQ+OjpXZWFrKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkK
QEAgLTcwLDI0ICs3MCwyNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYXV0byBXZWFr
PFQ+OjpvcGVyYXRvcj0oV2VhayYmIG90aGVyKSAtPiBXZWFrJgogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBpbmxpbmUgVCogV2VhazxUPjo6b3BlcmF0b3ItPigpIGNvbnN0CiB7Ci0gICAgQVNTRVJU
KG1faW1wbCAmJiBtX2ltcGwtPnN0YXRlKCkgPT0gV2Vha0ltcGw6OkxpdmUpOworICAgIGF1dG8q
IHBvaW50ZXIgPSBpbXBsKCk7CisgICAgQVNTRVJUKHBvaW50ZXIgJiYgcG9pbnRlci0+c3RhdGUo
KSA9PSBXZWFrSW1wbDo6TGl2ZSk7CiAgICAgLy8gV2UgY2FuJ3QgdXNlIGpzQ2FzdCBoZXJlIHNp
bmNlIHdlIGNvdWxkIGJlIGNhbGxlZCBpbiBhIGZpbmFsaXplci4KLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8VCo+KG1faW1wbC0+anNWYWx1ZSgpLmFzQ2VsbCgpKTsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8VCo+KHBvaW50ZXItPmpzVmFsdWUoKS5hc0NlbGwoKSk7CiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGlubGluZSBUJiBXZWFrPFQ+OjpvcGVyYXRvciooKSBjb25zdAogewotICAgIEFT
U0VSVChtX2ltcGwgJiYgbV9pbXBsLT5zdGF0ZSgpID09IFdlYWtJbXBsOjpMaXZlKTsKKyAgICBh
dXRvKiBwb2ludGVyID0gaW1wbCgpOworICAgIEFTU0VSVChwb2ludGVyICYmIHBvaW50ZXItPnN0
YXRlKCkgPT0gV2Vha0ltcGw6OkxpdmUpOwogICAgIC8vIFdlIGNhbid0IHVzZSBqc0Nhc3QgaGVy
ZSBzaW5jZSB3ZSBjb3VsZCBiZSBjYWxsZWQgaW4gYSBmaW5hbGl6ZXIuCi0gICAgcmV0dXJuICpz
dGF0aWNfY2FzdDxUKj4obV9pbXBsLT5qc1ZhbHVlKCkuYXNDZWxsKCkpOworICAgIHJldHVybiAq
c3RhdGljX2Nhc3Q8VCo+KHBvaW50ZXItPmpzVmFsdWUoKS5hc0NlbGwoKSk7CiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IGlubGluZSBUKiBXZWFrPFQ+OjpnZXQoKSBjb25zdAogewotICAgIGlm
ICghbV9pbXBsIHx8IG1faW1wbC0+c3RhdGUoKSAhPSBXZWFrSW1wbDo6TGl2ZSkKKyAgICBhdXRv
KiBwb2ludGVyID0gaW1wbCgpOworICAgIGlmICghcG9pbnRlciB8fCBwb2ludGVyLT5zdGF0ZSgp
ICE9IFdlYWtJbXBsOjpMaXZlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAvLyBXZSBj
YW4ndCB1c2UganNDYXN0IGhlcmUgc2luY2Ugd2UgY291bGQgYmUgY2FsbGVkIGluIGEgZmluYWxp
emVyLgotICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4obV9pbXBsLT5qc1ZhbHVlKCkuYXNDZWxs
KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4ocG9pbnRlci0+anNWYWx1ZSgpLmFzQ2Vs
bCgpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGJvb2wgV2VhazxUPjo6d2Fz
KFQqIG90aGVyKSBjb25zdApAQCAtOTcsNyArMTAwLDggQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIGJvb2wgV2VhazxUPjo6d2FzKFQqIG90aGVyKSBjb25zdAogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBpbmxpbmUgYm9vbCBXZWFrPFQ+OjpvcGVyYXRvciEoKSBjb25zdAogewotICAgIHJl
dHVybiAhbV9pbXBsIHx8ICFtX2ltcGwtPmpzVmFsdWUoKSB8fCBtX2ltcGwtPnN0YXRlKCkgIT0g
V2Vha0ltcGw6OkxpdmU7CisgICAgYXV0byogcG9pbnRlciA9IGltcGwoKTsKKyAgICByZXR1cm4g
IXBvaW50ZXIgfHwgIXBvaW50ZXItPmpzVmFsdWUoKSB8fCBwb2ludGVyLT5zdGF0ZSgpICE9IFdl
YWtJbXBsOjpMaXZlOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgV2VhazxUPjo6
b3BlcmF0b3IgYm9vbCgpIGNvbnN0CkBAIC0xMDcsOSArMTExLDkgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gaW5saW5lIFdlYWs8VD46Om9wZXJhdG9yIGJvb2woKSBjb25zdAogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBpbmxpbmUgV2Vha0ltcGwqIFdlYWs8VD46OmxlYWtJbXBsKCkKIHsKLSAgICBX
ZWFrSW1wbCogaW1wbCA9IG1faW1wbDsKKyAgICBhdXRvKiBwb2ludGVyID0gaW1wbCgpOwogICAg
IG1faW1wbCA9IG51bGxwdHI7Ci0gICAgcmV0dXJuIGltcGw7CisgICAgcmV0dXJuIHBvaW50ZXI7
CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBXZWFrSW1wbCogV2VhazxUPjo6aGFz
aFRhYmxlRGVsZXRlZFZhbHVlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RyaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nLmNwcAppbmRleCBkYzVlNjllNjc3Zjk2MGUzODkzZjUzYTVkZDNlNzViZDI4MzQyMDM5Li41
ODI1MjAzYjMyMGNiNzNkMzk3NWVjZWE2YmZmOTczYTEwZDBiYjQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgSlNT
dHJpbmc6OmR1bXBUb1N0cmVhbShjb25zdCBKU0NlbGwqIGNlbGwsIFByaW50U3RyZWFtJiBvdXQp
CiAgICAgVk0mIHZtID0gY2VsbC0+dm0oKTsKICAgICBjb25zdCBKU1N0cmluZyogdGhpc09iamVj
dCA9IGpzQ2FzdDxjb25zdCBKU1N0cmluZyo+KGNlbGwpOwogICAgIG91dC5wcmludGYoIjwlcCwg
JXMsIFsldV0sICIsIHRoaXNPYmplY3QsIHRoaXNPYmplY3QtPmNsYXNzTmFtZSh2bSksIHRoaXNP
YmplY3QtPmxlbmd0aCgpKTsKLSAgICB1aW50cHRyX3QgcG9pbnRlciA9IHRoaXNPYmplY3QtPm1f
ZmliZXI7CisgICAgdWludHB0cl90IHBvaW50ZXIgPSB0aGlzT2JqZWN0LT5maWJlckNvbmN1cnJl
bnRseSgpOwogICAgIGlmIChwb2ludGVyICYgaXNSb3BlSW5Qb2ludGVyKSB7CiAgICAgICAgIGlm
IChwb2ludGVyICYgSlNSb3BlU3RyaW5nOjppc1N1YnN0cmluZ0luUG9pbnRlcikKICAgICAgICAg
ICAgIG91dC5wcmludGYoIltzdWJzdHJpbmddIik7CkBAIC0xMDMsNyArMTAzLDcgQEAgYm9vbCBK
U1N0cmluZzo6ZXF1YWxTbG93Q2FzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0
cmluZyogb3RoZXIpIGNvbnMKIHNpemVfdCBKU1N0cmluZzo6ZXN0aW1hdGVkU2l6ZShKU0NlbGwq
IGNlbGwsIFZNJiB2bSkKIHsKICAgICBKU1N0cmluZyogdGhpc09iamVjdCA9IGFzU3RyaW5nKGNl
bGwpOwotICAgIHVpbnRwdHJfdCBwb2ludGVyID0gdGhpc09iamVjdC0+bV9maWJlcjsKKyAgICB1
aW50cHRyX3QgcG9pbnRlciA9IHRoaXNPYmplY3QtPmZpYmVyQ29uY3VycmVudGx5KCk7CiAgICAg
aWYgKHBvaW50ZXIgJiBpc1JvcGVJblBvaW50ZXIpCiAgICAgICAgIHJldHVybiBCYXNlOjplc3Rp
bWF0ZWRTaXplKGNlbGwsIHZtKTsKICAgICByZXR1cm4gQmFzZTo6ZXN0aW1hdGVkU2l6ZShjZWxs
LCB2bSkgKyBiaXR3aXNlX2Nhc3Q8U3RyaW5nSW1wbCo+KHBvaW50ZXIpLT5jb3N0RHVyaW5nR0Mo
KTsKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIEpTU3RyaW5nOjp2aXNpdENoaWxkcmVuSW1wbChK
U0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09i
amVjdCwgdmlzaXRvcik7CiAgICAgCi0gICAgdWludHB0cl90IHBvaW50ZXIgPSB0aGlzT2JqZWN0
LT5tX2ZpYmVyOworICAgIHVpbnRwdHJfdCBwb2ludGVyID0gdGhpc09iamVjdC0+ZmliZXJDb25j
dXJyZW50bHkoKTsKICAgICBpZiAocG9pbnRlciAmIGlzUm9wZUluUG9pbnRlcikgewogICAgICAg
ICBpZiAocG9pbnRlciAmIEpTUm9wZVN0cmluZzo6aXNTdWJzdHJpbmdJblBvaW50ZXIpIHsKICAg
ICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQoc3RhdGljX2Nhc3Q8SlNSb3BlU3Ry
aW5nKj4odGhpc09iamVjdCktPmZpYmVyMSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0cmluZy5oCmluZGV4IDg5NTNmOTQxNzY1ZDU5ZmUxOWIwMTVmNDFmNzI3MjM4YmU0MjVm
YjguLmFmMzhjYjVhZDVmN2I5MWYxN2E3YjM5MDg0NjU4Njk1MGI3OGQ1Y2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaApAQCAtMjM3LDYgKzIzNyw4IEBAIGNsYXNz
IEpTU3RyaW5nIDogcHVibGljIEpTQ2VsbCB7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBl
cXVhbFNsb3dDYXNlKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqIG90aGVyKSBjb25zdDsKICAg
ICBib29sIGlzU3Vic3RyaW5nKCkgY29uc3Q7CiAKKyAgICB1aW50cHRyX3QgZmliZXJDb25jdXJy
ZW50bHkoKSBjb25zdCB7IHJldHVybiBtX2ZpYmVyOyB9CisKICAgICBtdXRhYmxlIHVpbnRwdHJf
dCBtX2ZpYmVyOwogCiBwcml2YXRlOgpAQCAtNjk1LDcgKzY5Nyw3IEBAIEpTX0VYUE9SVF9QUklW
QVRFIEpTU3RyaW5nKiBqc1N0cmluZ1dpdGhDYWNoZVNsb3dDYXNlKFZNJiwgU3RyaW5nSW1wbCYp
OwogLy8gaXMgaW4gdGhlIG1pZGRsZSBvZiBjb252ZXJ0aW5nIEpTUm9wZVN0cmluZyB0byBKU1N0
cmluZy4KIEFMV0FZU19JTkxJTkUgYm9vbCBKU1N0cmluZzo6aXM4Qml0KCkgY29uc3QKIHsKLSAg
ICB1aW50cHRyX3QgcG9pbnRlciA9IG1fZmliZXI7CisgICAgdWludHB0cl90IHBvaW50ZXIgPSBm
aWJlckNvbmN1cnJlbnRseSgpOwogICAgIGlmIChwb2ludGVyICYgaXNSb3BlSW5Qb2ludGVyKSB7
CiAgICAgICAgIC8vIERvIG5vdCBsb2FkIG1fZmliZXIgdHdpY2UuIFdlIHNob3VsZCB1c2UgdGhl
IGluZm9ybWF0aW9uIGluIHBvaW50ZXIuCiAgICAgICAgIC8vIE90aGVyd2lzZSwgSlNSb3BlU3Ry
aW5nIG1heSBiZSBjb252ZXJ0ZWQgdG8gSlNTdHJpbmcgYmV0d2VlbiB0aGUgZmlyc3QgYW5kIHNl
Y29uZCBhY2Nlc3Nlcy4KQEAgLTcwOSw3ICs3MTEsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNT
dHJpbmc6OmlzOEJpdCgpIGNvbnN0CiAvLyB3aGVuIHdlIHJlc29sdmUgYSBKU1JvcGVTdHJpbmcu
CiBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIEpTU3RyaW5nOjpsZW5ndGgoKSBjb25zdAogewotICAg
IHVpbnRwdHJfdCBwb2ludGVyID0gbV9maWJlcjsKKyAgICB1aW50cHRyX3QgcG9pbnRlciA9IGZp
YmVyQ29uY3VycmVudGx5KCk7CiAgICAgaWYgKHBvaW50ZXIgJiBpc1JvcGVJblBvaW50ZXIpCiAg
ICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNSb3BlU3RyaW5nKj4odGhpcyktPmxlbmd0aCgp
OwogICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8U3RyaW5nSW1wbCo+KHBvaW50ZXIpLT5sZW5ndGgo
KTsKQEAgLTcyMyw3ICs3MjUsNyBAQCBpbmxpbmUgY29uc3QgU3RyaW5nSW1wbCogSlNTdHJpbmc6
OmdldFZhbHVlSW1wbCgpIGNvbnN0CiAKIGlubGluZSBjb25zdCBTdHJpbmdJbXBsKiBKU1N0cmlu
Zzo6dHJ5R2V0VmFsdWVJbXBsKCkgY29uc3QKIHsKLSAgICB1aW50cHRyX3QgcG9pbnRlciA9IG1f
ZmliZXI7CisgICAgdWludHB0cl90IHBvaW50ZXIgPSBmaWJlckNvbmN1cnJlbnRseSgpOwogICAg
IGlmIChwb2ludGVyICYgaXNSb3BlSW5Qb2ludGVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICByZXR1cm4gYml0d2lzZV9jYXN0PFN0cmluZ0ltcGwqPihwb2ludGVyKTsKQEAgLTEwNzMs
NyArMTA3NSw3IEBAIEFMV0FZU19JTkxJTkUgU3RyaW5nVmlld1dpdGhVbmRlcmx5aW5nU3RyaW5n
IEpTU3RyaW5nOjp2aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoCiAKIGlubGluZSBib29sIEpTU3Ry
aW5nOjppc1N1YnN0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fZmliZXIgJiBKU1JvcGVT
dHJpbmc6OmlzU3Vic3RyaW5nSW5Qb2ludGVyOworICAgIHJldHVybiBmaWJlckNvbmN1cnJlbnRs
eSgpICYgSlNSb3BlU3RyaW5nOjppc1N1YnN0cmluZ0luUG9pbnRlcjsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0
ZUJhcnJpZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5o
CmluZGV4IGE4NjVmODM3MzQ2YzE1ZjNhZjI0ZWU3N2JlNGZmZjc4OTg4YWRkYzYuLjM4M2Y3MmQw
NGYxZTRiZWFiOGE2YmY2ZmE5YmVmOTkxYTFhN2Y0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCkBAIC05OCw3ICs5OCw3IEBAIHRlbXBsYXRlIDx0
eXBlbmFtZSBULCB0eXBlbmFtZSBUcmFpdHM+IGNsYXNzIFdyaXRlQmFycmllckJhc2UgewogICAg
IFQqIGdldCgpIGNvbnN0CiAgICAgewogICAgICAgICAvLyBDb3B5IG1fY2VsbCB0byBhIGxvY2Fs
IHRvIGF2b2lkIG11bHRpcGxlLXJlYWQgaXNzdWVzLiAoU2VlIDxodHRwOi8vd2Via2l0Lm9yZy9i
LzExMDg1ND4pCi0gICAgICAgIFN0b3JhZ2VUeXBlIGNlbGwgPSBtX2NlbGw7CisgICAgICAgIFN0
b3JhZ2VUeXBlIGNlbGwgPSB0aGlzLT5jZWxsKCk7CiAgICAgICAgIGlmIChjZWxsKQogICAgICAg
ICAgICAgdmFsaWRhdGVDZWxsKHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4oc3RhdGljX2Nhc3Q8
dm9pZCo+KFRyYWl0czo6dW53cmFwKGNlbGwpKSkpOwogICAgICAgICByZXR1cm4gVHJhaXRzOjp1
bndyYXAoY2VsbCk7CkBAIC0xMDYsNyArMTA2LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFRyYWl0cz4gY2xhc3MgV3JpdGVCYXJyaWVyQmFzZSB7CiAKICAgICBUKiBvcGVyYXRv
ciooKSBjb25zdAogICAgIHsKLSAgICAgICAgU3RvcmFnZVR5cGUgY2VsbCA9IG1fY2VsbDsKKyAg
ICAgICAgU3RvcmFnZVR5cGUgY2VsbCA9IHRoaXMtPmNlbGwoKTsKICAgICAgICAgQVNTRVJUKGNl
bGwpOwogICAgICAgICBhdXRvIHVud3JhcHBlZCA9IFRyYWl0czo6dW53cmFwKGNlbGwpOwogICAg
ICAgICB2YWxpZGF0ZUNlbGw8VD4odW53cmFwcGVkKTsKQEAgLTExNSw3ICsxMTUsNyBAQCB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVHJhaXRzPiBjbGFzcyBXcml0ZUJhcnJpZXJCYXNl
IHsKIAogICAgIFQqIG9wZXJhdG9yLT4oKSBjb25zdAogICAgIHsKLSAgICAgICAgU3RvcmFnZVR5
cGUgY2VsbCA9IG1fY2VsbDsKKyAgICAgICAgU3RvcmFnZVR5cGUgY2VsbCA9IHRoaXMtPmNlbGwo
KTsKICAgICAgICAgQVNTRVJUKGNlbGwpOwogICAgICAgICBhdXRvIHVud3JhcHBlZCA9IFRyYWl0
czo6dW53cmFwKGNlbGwpOwogICAgICAgICB2YWxpZGF0ZUNlbGwodW53cmFwcGVkKTsKQEAgLTEz
NSw5ICsxMzUsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVHJhaXRzPiBjbGFz
cyBXcml0ZUJhcnJpZXJCYXNlIHsKICAgICAgICAgcmV0dXJuIFNsb3RIZWxwZXI8VCwgVHJhaXRz
Pjo6cmVpbnRlcnByZXQoJm1fY2VsbCk7CiAgICAgfQogICAgIAotICAgIGV4cGxpY2l0IG9wZXJh
dG9yIGJvb2woKSBjb25zdCB7IHJldHVybiAhIW1fY2VsbDsgfQorICAgIGV4cGxpY2l0IG9wZXJh
dG9yIGJvb2woKSBjb25zdCB7IHJldHVybiAhIWNlbGwoKTsgfQogICAgIAotICAgIGJvb2wgb3Bl
cmF0b3IhKCkgY29uc3QgeyByZXR1cm4gIW1fY2VsbDsgfQorICAgIGJvb2wgb3BlcmF0b3IhKCkg
Y29uc3QgeyByZXR1cm4gIWNlbGwoKTsgfQogCiAgICAgdm9pZCBzZXRXaXRob3V0V3JpdGVCYXJy
aWVyKFQqIHZhbHVlKQogICAgIHsKQEAgLTE0Nyw5ICsxNDcsMTEgQEAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQsIHR5cGVuYW1lIFRyYWl0cz4gY2xhc3MgV3JpdGVCYXJyaWVyQmFzZSB7CiAgICAgICAg
IFRyYWl0czo6ZXhjaGFuZ2UodGhpcy0+bV9jZWxsLCB2YWx1ZSk7CiAgICAgfQogCi0gICAgVCog
dW52YWxpZGF0ZWRHZXQoKSBjb25zdCB7IHJldHVybiBUcmFpdHM6OnVud3JhcChtX2NlbGwpOyB9
CisgICAgVCogdW52YWxpZGF0ZWRHZXQoKSBjb25zdCB7IHJldHVybiBUcmFpdHM6OnVud3JhcChj
ZWxsKCkpOyB9CiAKIHByaXZhdGU6CisgICAgU3RvcmFnZVR5cGUgY2VsbCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2VsbDsgfQorCiAgICAgU3RvcmFnZVR5cGUgbV9jZWxsOwogfTsKIApAQCAtMjgxLDcg
KzI4Myw3IEBAIGNsYXNzIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIHsKICAgICBTdHJ1Y3R1cmUq
IGdldCgpIGNvbnN0CiAgICAgewogICAgICAgICAvLyBDb3B5IG1fc3RydWN0dXJlSUQgdG8gYSBs
b2NhbCB0byBhdm9pZCBtdWx0aXBsZS1yZWFkIGlzc3Vlcy4gKFNlZSA8aHR0cDovL3dlYmtpdC5v
cmcvYi8xMTA4NTQ+KQotICAgICAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IG1fc3RydWN0
dXJlSUQ7CisgICAgICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEID0gdmFsdWUoKTsKICAgICAg
ICAgaWYgKHN0cnVjdHVyZUlEKSB7CiAgICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IHN0cnVjdHVyZUlELmRlY29kZSgpOwogICAgICAgICAgICAgdmFsaWRhdGVDZWxsKHJlaW50ZXJw
cmV0X2Nhc3Q8SlNDZWxsKj4oc3RydWN0dXJlKSk7CkBAIC0yOTIsNyArMjk0LDcgQEAgY2xhc3Mg
V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgewogCiAgICAgU3RydWN0dXJlKiBvcGVyYXRvciooKSBj
b25zdAogICAgIHsKLSAgICAgICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSBtX3N0cnVjdHVy
ZUlEOworICAgICAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IHZhbHVlKCk7CiAgICAgICAg
IEFTU0VSVChzdHJ1Y3R1cmVJRCk7CiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gc3Ry
dWN0dXJlSUQuZGVjb2RlKCk7CiAgICAgICAgIHZhbGlkYXRlQ2VsbChyZWludGVycHJldF9jYXN0
PEpTQ2VsbCo+KHN0cnVjdHVyZSkpOwpAQCAtMzAxLDcgKzMwMyw3IEBAIGNsYXNzIFdyaXRlQmFy
cmllclN0cnVjdHVyZUlEIHsKIAogICAgIFN0cnVjdHVyZSogb3BlcmF0b3ItPigpIGNvbnN0CiAg
ICAgewotICAgICAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IG1fc3RydWN0dXJlSUQ7Cisg
ICAgICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEID0gdmFsdWUoKTsKICAgICAgICAgQVNTRVJU
KHN0cnVjdHVyZUlEKTsKICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmVJ
RC5kZWNvZGUoKTsKICAgICAgICAgdmFsaWRhdGVDZWxsKHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxs
Kj4oc3RydWN0dXJlKSk7CkBAIC0zMTUsMTIgKzMxNywxMiBAQCBjbGFzcyBXcml0ZUJhcnJpZXJT
dHJ1Y3R1cmVJRCB7CiAKICAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QKICAgICB7
Ci0gICAgICAgIHJldHVybiAhIW1fc3RydWN0dXJlSUQ7CisgICAgICAgIHJldHVybiAhIXZhbHVl
KCk7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdAogICAgIHsKLSAgICAgICAg
cmV0dXJuICFtX3N0cnVjdHVyZUlEOworICAgICAgICByZXR1cm4gIXZhbHVlKCk7CiAgICAgfQog
CiAgICAgdm9pZCBzZXRXaXRob3V0V3JpdGVCYXJyaWVyKFN0cnVjdHVyZSogdmFsdWUpCkBAIC0z
MzcsNyArMzM5LDcgQEAgY2xhc3MgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgewogCiAgICAgU3Ry
dWN0dXJlKiB1bnZhbGlkYXRlZEdldCgpIGNvbnN0CiAgICAgewotICAgICAgICBTdHJ1Y3R1cmVJ
RCBzdHJ1Y3R1cmVJRCA9IG1fc3RydWN0dXJlSUQ7CisgICAgICAgIFN0cnVjdHVyZUlEIHN0cnVj
dHVyZUlEID0gdmFsdWUoKTsKICAgICAgICAgaWYgKHN0cnVjdHVyZUlEKQogICAgICAgICAgICAg
cmV0dXJuIHN0cnVjdHVyZUlELmRlY29kZSgpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
</data>
<flag name="review"
          id="478178"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>