<?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>225888</bug_id>
          
          <creation_ts>2021-05-17 14:31:10 -0700</creation_ts>
          <short_desc>Remove JSObject::putOwnDataProperty() and friends</short_desc>
          <delta_ts>2021-05-24 14:32:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</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>1760891</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-05-17 14:31:10 -0700</bug_when>
    <thetext>Remove JSObject::putOwnDataProperty() and friends</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760897</commentid>
    <comment_count>1</comment_count>
      <attachid>428872</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-05-17 14:37:26 -0700</bug_when>
    <thetext>Created attachment 428872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760944</commentid>
    <comment_count>2</comment_count>
      <attachid>428889</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-05-17 16:35:29 -0700</bug_when>
    <thetext>Created attachment 428889
Patch

Inline putDirectMayBeIndex() into JSObject.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761155</commentid>
    <comment_count>3</comment_count>
      <attachid>428940</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-05-18 08:05:10 -0700</bug_when>
    <thetext>Created attachment 428940
Patch

Remove incorrect ASSERT from putInlineFast().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763256</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-24 14:32:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/78419286&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428872</attachid>
            <date>2021-05-17 14:37:26 -0700</date>
            <delta_ts>2021-05-17 16:54:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225888-20210518003725.patch</filename>
            <type>text/plain</type>
            <size>15863</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzc2MDcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDIxLTA1LTE3ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBSZW1vdmUgSlNPYmplY3Q6OnB1dE93bkRhdGFQcm9wZXJ0
eSgpIGFuZCBmcmllbmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjU4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHN0cmVzcy9vYmplY3QtYXNzaWduLWZhc3QtcGF0aC5qczoKKwogMjAyMS0wNS0x
NiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBERkdWYXJhcmdz
Rm9yd2FyZGluZ1BoYXNlIHNob3VsZG4ndCBjb25zdWx0IEZsdXNoCkluZGV4OiBKU1Rlc3RzL3N0
cmVzcy9vYmplY3QtYXNzaWduLWZhc3QtcGF0aC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0
cmVzcy9vYmplY3QtYXNzaWduLWZhc3QtcGF0aC5qcwkocmV2aXNpb24gMjc3NDg4KQorKysgSlNU
ZXN0cy9zdHJlc3Mvb2JqZWN0LWFzc2lnbi1mYXN0LXBhdGguanMJKHdvcmtpbmcgY29weSkKQEAg
LTE3OSwzICsxNzksMTggQEAgZnVuY3Rpb24gY2hlY2tQcm9wZXJ0eShvYmplY3QsIG5hbWUsIHZh
bAogICAgIH0sIGBUeXBlRXJyb3I6IEF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJv
cGVydHkuYCk7CiAgICAgc2hvdWxkQmUob2JqZWN0LmJhciwgdW5kZWZpbmVkKTsKIH0KK3sKKyAg
ICBsZXQgb2JqZWN0ID0geyBmb286IDEgfTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2Jq
ZWN0LCAiZm9vIiwgeyBlbnVtZXJhYmxlOiBmYWxzZSB9KTsKKyAgICBPYmplY3QuYXNzaWduKG9i
amVjdCwgeyBmb286IDIgfSk7CisgICAgc2hvdWxkQmUob2JqZWN0LmZvbywgMik7CisgICAgc2hv
dWxkQmUob2JqZWN0LnByb3BlcnR5SXNFbnVtZXJhYmxlKCJmb28iKSwgZmFsc2UpOworfQorewor
ICAgIGxldCBvYmplY3QgPSB7IGZvbzogMSB9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShv
YmplY3QsICJmb28iLCB7IGNvbmZpZ3VyYWJsZTogZmFsc2UgfSk7CisgICAgT2JqZWN0LmFzc2ln
bihvYmplY3QsIHsgZm9vOiAyIH0pOworICAgIGxldCBkZXNjID0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihvYmplY3QsICJmb28iKTsKKyAgICBzaG91bGRCZShkZXNjLnZhbHVlLCAy
KTsKKyAgICBzaG91bGRCZShkZXNjLmNvbmZpZ3VyYWJsZSwgZmFsc2UpOworfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzc0ODgpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjEtMDUt
MTcgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFJl
bW92ZSBKU09iamVjdDo6cHV0T3duRGF0YVByb3BlcnR5KCkgYW5kIGZyaWVuZHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTg4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYXNvbnMgZm9yIHJlbW92
YWw6CisgICAgICAgICAgMS4gQW5vdGhlciBBUEksIHNsaWdodGx5IGRpZmZlcmVudCBmcm9tIHB1
dCgpIGFuZCBwdXREaXJlY3QoKSwgaXMgYW4gZXh0cmEgbWVudGFsIGxvYWQuCisgICAgICAgICAg
Mi4gSXQncyBwcmVmZXJyZWQgdG8gY2hlY2sgdGhhdCBhbnkgb2JqZWN0IHByb3BlcnR5LCBpbnN0
ZWFkIG9mIGdpdmVuIG9uZSwgaXMgZmFzdCB0byBwdXQuCisgICAgICAgICAgMy4gdmFsaWRhdGVQ
dXRPd25EYXRhUHJvcGVydHkoKSBzaG91bGQgaGF2ZSByZWplY3RlZCBhbnkga2luZCBvZiBub24t
cmVpZmllZCBwcm9wZXJ0aWVzLgorCisgICAgICAgIFRoaXMgY2hhbmdlIHJlcGxhY2VzIHB1dE93
bkRhdGFQcm9wZXJ0eSgpIHdpdGggcHV0RGlyZWN0KCkgd2hlcmUgcG9zc2libGU6IGF0dHJpYnV0
ZXMKKyAgICAgICAgcHJlc2VydmF0aW9uIG5vdCByZXF1aXJlZCArIG5vIFJlYWRPbmx5IC8gQWNj
ZXNzb3IgcHJvcGVydGllcyArIGV4dGVuc2libGUgc3RydWN0dXJlLgorCisgICAgICAgIEZvciBP
YmplY3QuYXNzaWduLCBwdXRJbmxpbmVGYXN0QXNzZXJ0U3VjY2VzcygpIGlzIGludHJvZHVjZWQs
IHdoaWNoIGlzIGFsbW9zdCBlcXVpdmFsZW50IHRvCisgICAgICAgIHB1dE93bkRhdGFQcm9wZXJ0
eSgpLCBidXQgbW9yZSBjb25jaXNlIGFuZCBzdHJpY3Qgd2l0aCBub24tcmVpZmllZCBwcm9wZXJ0
aWVzLiBJdCdzIGNvcnJlY3QKKyAgICAgICAgYmVjYXVzZSBwdXREaXJlY3RJbnRlcm5hbDxQdXRN
b2RlUHV0PiB3YXMgcmVjZW50bHkgdXBkYXRlZCB0byByZWplY3QgYWxsIGtpbmRzIG9mIGFjY2Vz
c29ycy4KKworICAgICAgICBBbHNvLCBjbGFyaWZpZXMgcHV0SW5saW5lRm9ySlNPYmplY3QoKSBm
aXJzdCBhcmd1bWVudCdzIHR5cGUgYW5kIG1ha2VzIHB1dERpcmVjdE1heUJlSW5kZXgoKQorICAg
ICAgICBpbmxpbmVhYmxlLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAg
ICAqIHJ1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuY3BwOgorICAgICAgICAoSlNDOjpKU0xl
eGljYWxFbnZpcm9ubWVudDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNM
ZXhpY2FsRW52aXJvbm1lbnQ6OnB1dCk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXQpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6
cHV0RGlyZWN0TWF5QmVJbmRleCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU09iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6aGFzQ3VzdG9tUHJvcGVydGllcyk6CisgICAg
ICAgIChKU0M6OkpTT2JqZWN0OjpoYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6SlNPYmplY3Q6Omhhc0N1c3RvbUdldHRlclNldHRlclByb3BlcnRpZXMp
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OkpTT2JqZWN0OjpwdXREaXJlY3RNYXlCZUluZGV4KToKKyAgICAgICAgKEpTQzo6SlNP
YmplY3Q6OnB1dElubGluZUZvckpTT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1
dElubGluZUZhc3QpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6cHV0SW5saW5lRmFzdEFzc2Vy
dFN1Y2Nlc3MpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6c2V0SW5kZXhRdWlja2x5Rm9yVHlw
ZWRBcnJheSk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0Ojp2YWxpZGF0ZVB1dE93bkRhdGFQcm9w
ZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRPd25EYXRhUHJvcGVy
dHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU09iamVjdDo6cHV0T3duRGF0YVByb3BlcnR5
TWF5QmVJbmRleCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNj
cmlwdG9ycyk6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisKIDIw
MjEtMDUtMTMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZvbGxv
dy11cCBmaXggZm9yOiBSZW1vdmUgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJv
bm1lbnQuY3BwCShyZXZpc2lvbiAyNzc0ODgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsx
MDMsNyBAQCBib29sIEpTTGV4aWNhbEVudmlyb25tZW50OjpnZXRPd25Qcm9wZXJ0CiAKICAgICAv
LyBXZSBkb24ndCBjYWxsIHRocm91Z2ggdG8gSlNPYmplY3QgYmVjYXVzZSB0aGVyZSdzIG5vIHdh
eSB0byBnaXZlIGEgCiAgICAgLy8gbGV4aWNhbCBlbnZpcm9ubWVudCBvYmplY3QgZ2V0dGVyIHBy
b3BlcnRpZXMgb3IgYSBwcm90b3R5cGUuCi0gICAgQVNTRVJUKCF0aGlzT2JqZWN0LT5oYXNHZXR0
ZXJTZXR0ZXJQcm9wZXJ0aWVzKHZtKSk7CisgICAgQVNTRVJUKCF0aGlzT2JqZWN0LT5zdHJ1Y3R1
cmUodm0pLT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkpOwogICAgIEFTU0VSVCh0aGlzT2Jq
ZWN0LT5nZXRQcm90b3R5cGVEaXJlY3Qodm0pLmlzTnVsbCgpKTsKICAgICByZXR1cm4gZmFsc2U7
CiB9CkBAIC0xMTksMTEgKzExOSwxNSBAQCBib29sIEpTTGV4aWNhbEVudmlyb25tZW50OjpwdXQo
SlNDZWxsKiBjCiAgICAgaWYgKHN5bWJvbFRhYmxlUHV0SW52YWxpZGF0ZVdhdGNocG9pbnRTZXQo
dGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzaG91bGRUaHJv
d1JlYWRPbmx5RXJyb3IsIGlnbm9yZVJlYWRPbmx5RXJyb3JzLCBwdXRSZXN1bHQpKQogICAgICAg
ICByZXR1cm4gcHV0UmVzdWx0OwogCi0gICAgLy8gV2UgZG9uJ3QgY2FsbCB0aHJvdWdoIHRvIEpT
T2JqZWN0IGJlY2F1c2UgX19wcm90b19fIGFuZCBnZXR0ZXIvc2V0dGVyIAotICAgIC8vIHByb3Bl
cnRpZXMgYXJlIG5vbi1zdGFuZGFyZCBleHRlbnNpb25zIHRoYXQgb3RoZXIgaW1wbGVtZW50YXRp
b25zIGRvIG5vdAotICAgIC8vIGV4cG9zZSBpbiB0aGUgbGV4aWNhbEVudmlyb25tZW50IG9iamVj
dC4KLSAgICBBU1NFUlQoIXRoaXNPYmplY3QtPmhhc0dldHRlclNldHRlclByb3BlcnRpZXMoZ2xv
YmFsT2JqZWN0LT52bSgpKSk7Ci0gICAgcmV0dXJuIHRoaXNPYmplY3QtPnB1dE93bkRhdGFQcm9w
ZXJ0eShnbG9iYWxPYmplY3QtPnZtKCksIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKworICAgIC8vIFdlIGRvbid0IGNhbGwgdGhy
b3VnaCB0byBKU09iamVjdCBiZWNhdXNlIHRoZXJlJ3Mgbm8gd2F5IHRvIGdpdmUgYQorICAgIC8v
IGxleGljYWwgZW52aXJvbm1lbnQgb2JqZWN0IEFjY2Vzc29yIC8gUmVhZE9ubHkgcHJvcGVydGll
cywgbWFrZSBpdCBub24tZXh0ZW5zaWJsZSwgbm9yIHNldCBpdHMgcHJvdG90eXBlLgorICAgIEFT
U0VSVCghdGhpc09iamVjdC0+c3RydWN0dXJlKHZtKS0+aGFzUmVhZE9ubHlPckdldHRlclNldHRl
clByb3BlcnRpZXNFeGNsdWRpbmdQcm90bygpKTsKKyAgICBBU1NFUlQodGhpc09iamVjdC0+aXNT
dHJ1Y3R1cmVFeHRlbnNpYmxlKHZtKSk7CisgICAgQVNTRVJUKHRoaXNPYmplY3QtPmdldFByb3Rv
dHlwZURpcmVjdCh2bSkuaXNOdWxsKCkpOworICAgIHRoaXNPYmplY3QtPnB1dERpcmVjdCh2bSwg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wg
SlNMZXhpY2FsRW52aXJvbm1lbnQ6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgRGVsZXRl
UHJvcGVydHlTbG90JiBzbG90KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcAkocmV2aXNpb24gMjc3NDg4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NTcsNyArNzU3LDcgQEAg
Ym9vbCBvcmRpbmFyeVNldFNsb3coSlNHbG9iYWxPYmplY3QqIGdsbwogLy8gaHR0cHM6Ly90YzM5
LmVzL2VjbWEyNjIvI3NlYy1vcmRpbmFyeXNldAogYm9vbCBKU09iamVjdDo6cHV0KEpTQ2VsbCog
Y2VsbCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVy
biBwdXRJbmxpbmVGb3JKU09iamVjdChjZWxsLCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpOworICAgIHJldHVybiBwdXRJbmxpbmVGb3JKU09iamVjdChhc09iamVjdChj
ZWxsKSwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAogYm9v
bCBKU09iamVjdDo6cHV0SW5saW5lU2xvdyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCkBAIC0zNjUzLDEzICszNjUzLDYgQEAgYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpTT2JqZWN0OjpwdXRE
aXJlY3RNYXlCZUluZGV4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgaWYgKE9wdGlvbmFsPHVpbnQz
Ml90PiBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIHB1
dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgudmFsdWUoKSwgdmFsdWUpOwotICAgIHJl
dHVybiBwdXREaXJlY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsK
LX0KLQogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy12YWxpZGF0ZWFuZGFwcGx5cHJv
cGVydHlkZXNjcmlwdG9yCiBib29sIHZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURlc2NyaXB0b3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgYm9vbCBpc0V4dGVuc2libGUsCiAgICAgY29uc3QgUHJvcGVydHlE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBib29sIGlzQ3VycmVudERlZmluZWQsIGNvbnN0IFByb3Bl
cnR5RGVzY3JpcHRvciYgY3VycmVudCwgYm9vbCB0aHJvd0V4Y2VwdGlvbikKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkocmV2aXNpb24gMjc3NDg4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkod29ya2luZyBjb3B5KQpA
QCAtMTk4LDcgKzE5OCw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fYnV0dGVyZmx5LT52
ZWN0b3JMZW5ndGgoKTsKICAgICB9CiAgICAgCi0gICAgc3RhdGljIGJvb2wgcHV0SW5saW5lRm9y
SlNPYmplY3QoSlNDZWxsKiwgSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIHB1dElubGluZUZvckpTT2JqZWN0
KEpTT2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOworICAgIHZvaWQgcHV0SW5saW5lRmFzdEFzc2VydFN1Y2Nlc3MoVk0mLCBQ
cm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBib29sIHB1dChKU0NlbGwqLCBKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgSlNWYWx1
ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgTkVWRVJfSU5MSU5F
IHN0YXRpYyBib29sIGRlZmluZVByb3BlcnR5T25SZWNlaXZlcihKU0dsb2JhbE9iamVjdCosIFBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CkBAIC03NjcsMjUgKzc2OCwx
MSBAQCBwdWJsaWM6CiAgICAgdm9pZCB0cmFuc2l0aW9uVG8oVk0mLCBTdHJ1Y3R1cmUqKTsKIAog
ICAgIGJvb2wgaGFzQ3VzdG9tUHJvcGVydGllcyhWTSYgdm0pIHsgcmV0dXJuIHN0cnVjdHVyZSh2
bSktPmRpZFRyYW5zaXRpb24oKTsgfQotICAgIGJvb2wgaGFzR2V0dGVyU2V0dGVyUHJvcGVydGll
cyhWTSYgdm0pIHsgcmV0dXJuIHN0cnVjdHVyZSh2bSktPmhhc0dldHRlclNldHRlclByb3BlcnRp
ZXMoKTsgfQotICAgIGJvb2wgaGFzQ3VzdG9tR2V0dGVyU2V0dGVyUHJvcGVydGllcyhWTSYgdm0p
IHsgcmV0dXJuIHN0cnVjdHVyZSh2bSktPmhhc0N1c3RvbUdldHRlclNldHRlclByb3BlcnRpZXMo
KTsgfQotCiAgICAgYm9vbCBoYXNOb25SZWlmaWVkU3RhdGljUHJvcGVydGllcyhWTSYgdm0pCiAg
ICAgewogICAgICAgICByZXR1cm4gVHlwZUluZm86Omhhc1N0YXRpY1Byb3BlcnR5VGFibGUoaW5s
aW5lVHlwZUZsYWdzKCkpICYmICFzdHJ1Y3R1cmUodm0pLT5zdGF0aWNQcm9wZXJ0aWVzUmVpZmll
ZCgpOwogICAgIH0KIAotICAgIC8vIHB1dE93bkRhdGFQcm9wZXJ0eSBoYXMgJ3B1dCcgbGlrZSBz
ZW1hbnRpY3MsIGhvd2V2ZXIgdGhpcyBtZXRob2Q6Ci0gICAgLy8gIC0gYXNzdW1lcyB0aGUgb2Jq
ZWN0IGNvbnRhaW5zIG5vIG93biBnZXR0ZXIvc2V0dGVyIHByb3BlcnRpZXMuCi0gICAgLy8gIC0g
cHJvdmlkZXMgbm8gc3BlY2lhbCBoYW5kbGluZyBmb3IgX19wcm90b19fCi0gICAgLy8gIC0gZG9l
cyBub3Qgd2FsayB0aGUgcHJvdG90eXBlIGNoYWluICh0byBjaGVjayBmb3IgYWNjZXNzb3JzIG9y
IG5vbi13cml0YWJsZSBwcm9wZXJ0aWVzKS4KLSAgICAvLyBUaGlzIGlzIHVzZWQgYnkgSlNMZXhp
Y2FsRW52aXJvbm1lbnQuCi0gICAgYm9vbCBwdXRPd25EYXRhUHJvcGVydHkoVk0mLCBQcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwotICAgIGJvb2wgcHV0T3duRGF0YVBy
b3BlcnR5TWF5QmVJbmRleChKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwg
UHV0UHJvcGVydHlTbG90Jik7Ci1wcml2YXRlOgotICAgIHZvaWQgdmFsaWRhdGVQdXRPd25EYXRh
UHJvcGVydHkoVk0mLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwotcHVibGljOgotCiAgICAgLy8g
RmFzdCBhY2Nlc3MgdG8ga25vd24gcHJvcGVydHkgb2Zmc2V0cy4KICAgICBBTFdBWVNfSU5MSU5F
IEpTVmFsdWUgZ2V0RGlyZWN0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkgY29uc3QgeyByZXR1cm4g
bG9jYXRpb25Gb3JPZmZzZXQob2Zmc2V0KS0+Z2V0KCk7IH0KICAgICBKU1ZhbHVlIGdldERpcmVj
dENvbmN1cnJlbnRseShTdHJ1Y3R1cmUqIGV4cGVjdGVkU3RydWN0dXJlLCBQcm9wZXJ0eU9mZnNl
dCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElu
bGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdElubGluZXMuaAkocmV2aXNpb24gMjc3NDg4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyNiw2ICsyMjYs
MTMgQEAgaW5saW5lIHZvaWQgSlNPYmplY3Q6OnB1dERpcmVjdFdpdGhvdXRUcgogICAgICAgICBz
dHJ1Y3R1cmUtPnNldENvbnRhaW5zUmVhZE9ubHlQcm9wZXJ0aWVzKCk7CiB9CiAKK0FMV0FZU19J
TkxJTkUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0TWF5QmVJbmRleChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQor
eworICAgIGlmIChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5
TmFtZSkpCisgICAgICAgIHJldHVybiBwdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGluZGV4
LnZhbHVlKCksIHZhbHVlKTsKKyAgICByZXR1cm4gcHV0RGlyZWN0KGdldFZNKGdsb2JhbE9iamVj
dCksIHByb3BlcnR5TmFtZSwgdmFsdWUpOworfQorCiBBTFdBWVNfSU5MSU5FIFByb3BlcnR5T2Zm
c2V0IEpTT2JqZWN0OjpwcmVwYXJlVG9QdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihWTSYgdm0s
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIFN0cnVjdHVy
ZUlEIHN0cnVjdHVyZUlELCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICB1bnNpZ25lZCBv
bGRPdXRPZkxpbmVDYXBhY2l0eSA9IHN0cnVjdHVyZS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKTsKQEAg
LTI1MiwxMSArMjU5LDEwIEBAIEFMV0FZU19JTkxJTkUgUHJvcGVydHlPZmZzZXQgSlNPYmplY3Q6
OnAKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vcmRpbmFyeXNldAotQUxX
QVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpwdXRJbmxpbmVGb3JKU09iamVjdChKU0NlbGwqIGNl
bGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK0FMV0FZU19JTkxJTkUg
Ym9vbCBKU09iamVjdDo6cHV0SW5saW5lRm9ySlNPYmplY3QoSlNPYmplY3QqIHRoaXNPYmplY3Qs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBWTSYgdm0gPSBn
ZXRWTShnbG9iYWxPYmplY3QpOwogCi0gICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNPYmplY3QqPihjZWxsKTsKICAgICBBU1NFUlQodmFsdWUpOwogICAgIEFTU0VSVCghSGVhcDo6
aGVhcCh2YWx1ZSkgfHwgSGVhcDo6aGVhcCh2YWx1ZSkgPT0gSGVhcDo6aGVhcCh0aGlzT2JqZWN0
KSk7CiAKQEAgLTI3OSwxNyArMjg1LDI1IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6
cHV0SW5saW5lRm8KIAogQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpwdXRJbmxpbmVGYXN0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBBU1NFUlQoIXBh
cnNlSW5kZXgocHJvcGVydHlOYW1lKSk7Ci0KICAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAorICAgIEFT
U0VSVCghaGFzTm9uUmVpZmllZFN0YXRpY1Byb3BlcnRpZXModm0pKTsKICAgICAvLyBGSVhNRTog
Rm9yIGEgZmFpbHVyZSBkdWUgdG8gbm9uLWV4dGVuc2libGUgc3RydWN0dXJlLCB0aGUgZXJyb3Ig
bWVzc2FnZSBpcyBtaXNsZWFkaW5nLgogICAgIGlmICghcHV0RGlyZWN0SW50ZXJuYWw8UHV0TW9k
ZVB1dD4odm0sIHByb3BlcnR5TmFtZSwgdmFsdWUsIDAsIHNsb3QpKQogICAgICAgICByZXR1cm4g
dHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHNsb3QuaXNTdHJpY3RNb2RlKCksIFJlYWRv
bmx5UHJvcGVydHlXcml0ZUVycm9yKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorQUxXQVlTX0lO
TElORSB2b2lkIEpTT2JqZWN0OjpwdXRJbmxpbmVGYXN0QXNzZXJ0U3VjY2VzcyhWTSYgdm0sIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgQVNTRVJUKCFo
YXNOb25SZWlmaWVkU3RhdGljUHJvcGVydGllcyh2bSkpOworCisgICAgUHV0UHJvcGVydHlTbG90
IHNsb3QodGhpcywgdHJ1ZSk7CisgICAgYm9vbCByZXN1bHQgPSBwdXREaXJlY3RJbnRlcm5hbDxQ
dXRNb2RlUHV0Pih2bSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgMCwgc2xvdCk7CisgICAgQVNTRVJU
X1VOVVNFRChyZXN1bHQsIHJlc3VsdCk7Cit9CisKIC8vIEhhc093blByb3BlcnR5KE8sIFApIGZy
b20gc2VjdGlvbiA3LjMuMTEgaW4gdGhlIHNwZWMuCiAvLyBodHRwOi8vd3d3LmVjbWEtaW50ZXJu
YXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wL2luZGV4Lmh0bWwjc2VjLWhhc293bnByb3BlcnR5CiBB
TFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6Omhhc093blByb3BlcnR5KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkgY29uc3QKQEAgLTUwMiw0MiArNTE2LDYgQEAgaW5saW5lIHZvaWQgSlNPYmplY3Q6OnNl
dEluZGV4UXVpY2tseUZvcgogICAgICAgICByZXR1cm47CiAgICAgfQogfQotICAgIAotaW5saW5l
IHZvaWQgSlNPYmplY3Q6OnZhbGlkYXRlUHV0T3duRGF0YVByb3BlcnR5KFZNJiB2bSwgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSNpZiBBU1NFUlRfRU5BQkxF
RAotICAgIEFTU0VSVCh2YWx1ZSk7Ci0gICAgQVNTRVJUKCFIZWFwOjpoZWFwKHZhbHVlKSB8fCBI
ZWFwOjpoZWFwKHZhbHVlKSA9PSBIZWFwOjpoZWFwKHRoaXMpKTsKLSAgICB1bnNpZ25lZCBhdHRy
aWJ1dGVzOwotICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IHN0cnVjdHVyZSh2bSktPmdldCh2
bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKTsKLSAgICBpZiAoaXNWYWxpZE9mZnNldChvZmZz
ZXQpKQotICAgICAgICBBU1NFUlQoIShhdHRyaWJ1dGVzICYgKFByb3BlcnR5QXR0cmlidXRlOjpB
Y2Nlc3NvciB8IFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IFByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSkpKTsKLSAgICBlbHNlIGlmIChUeXBlSW5mbzo6aGFzU3RhdGljUHJv
cGVydHlUYWJsZShpbmxpbmVUeXBlRmxhZ3MoKSkpIHsKLSAgICAgICAgaWYgKGF1dG8gZW50cnkg
PSBmaW5kUHJvcGVydHlIYXNoRW50cnkodm0sIHByb3BlcnR5TmFtZSkpCi0gICAgICAgICAgICBB
U1NFUlQoIShlbnRyeS0+dmFsdWUtPmF0dHJpYnV0ZXMoKSAmIChQcm9wZXJ0eUF0dHJpYnV0ZTo6
QWNjZXNzb3IgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkpKSk7Ci0gICAgfQotI2Vsc2UgLy8gbm90IEFTU0VSVF9FTkFCTEVE
Ci0gICAgVU5VU0VEX1BBUkFNKHZtKTsKLSAgICBVTlVTRURfUEFSQU0ocHJvcGVydHlOYW1lKTsK
LSAgICBVTlVTRURfUEFSQU0odmFsdWUpOwotI2VuZGlmIC8vIG5vdCBBU1NFUlRfRU5BQkxFRAot
fQotCi1pbmxpbmUgYm9vbCBKU09iamVjdDo6cHV0T3duRGF0YVByb3BlcnR5KFZNJiB2bSwgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBz
bG90KQotewotICAgIHZhbGlkYXRlUHV0T3duRGF0YVByb3BlcnR5KHZtLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlKTsKLSAgICByZXR1cm4gcHV0RGlyZWN0SW50ZXJuYWw8UHV0TW9kZVB1dD4odm0sIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIDAsIHNsb3QpOwotfQotCi1pbmxpbmUgYm9vbCBKU09iamVjdDo6
cHV0T3duRGF0YVByb3BlcnR5TWF5QmVJbmRleChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHNsb3QpCi17Ci0gICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsKLSAgICB2YWxp
ZGF0ZVB1dE93bkRhdGFQcm9wZXJ0eSh2bSwgcHJvcGVydHlOYW1lLCB2YWx1ZSk7Ci0gICAgaWYg
KE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkKLSAg
ICAgICAgcmV0dXJuIHB1dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgudmFsdWUoKSwg
dmFsdWUsIDAsIFB1dERpcmVjdEluZGV4TGlrZVB1dERpcmVjdCk7Ci0KLSAgICByZXR1cm4gcHV0
RGlyZWN0SW50ZXJuYWw8UHV0TW9kZVB1dD4odm0sIHByb3BlcnR5TmFtZSwgdmFsdWUsIDAsIHNs
b3QpOwotfQogCiBpbmxpbmUgQ2FsbERhdGEgZ2V0Q2FsbERhdGEoVk0mIHZtLCBKU1ZhbHVlIHZh
bHVlKQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3Ry
dWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMjc3NDg4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDYsOCArMjA2LDcgQEAgSlNWYWx1ZSBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RAog
ICAgICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQoZnJvbURl
c2NyaXB0b3IpOwogCi0gICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGRlc2NyaXB0b3JzKTsK
LSAgICAgICAgZGVzY3JpcHRvcnMtPnB1dE93bkRhdGFQcm9wZXJ0eU1heUJlSW5kZXgoZ2xvYmFs
T2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGZyb21EZXNjcmlwdG9yLCBzbG90KTsKKyAgICAgICAgZGVz
Y3JpcHRvcnMtPnB1dERpcmVjdE1heUJlSW5kZXgoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IGZyb21EZXNjcmlwdG9yKTsKICAgICAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb25FeGNlcHRU
ZXJtaW5hdGlvbigpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwog
ICAgIH0KQEAgLTM0OCw4ICszNDcsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0
Q29uc3RydWN0CiAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcm9wZXJ0
aWVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBjb3Vs
ZCBwdXQgcHJvcGVydGllcyBpbiBhIGJhdGNoaW5nIG1hbm5lciB0byBhY2NlbGVyYXRlIE9iamVj
dC5hc3NpZ24gbW9yZS4KICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTM1OAotICAgICAgICAgICAgICAgICAgICBQdXRQcm9w
ZXJ0eVNsb3QgcHV0UHJvcGVydHlTbG90KHRhcmdldCwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAg
ICAgIHRhcmdldC0+cHV0T3duRGF0YVByb3BlcnR5KHZtLCBwcm9wZXJ0aWVzW2ldLmdldCgpLCB2
YWx1ZXMuYXQoaSksIHB1dFByb3BlcnR5U2xvdCk7CisgICAgICAgICAgICAgICAgICAgIHRhcmdl
dC0+cHV0SW5saW5lRmFzdEFzc2VydFN1Y2Nlc3Modm0sIHByb3BlcnRpZXNbaV0uZ2V0KCksIHZh
bHVlcy5hdChpKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgfQo=
</data>
<flag name="commit-queue"
          id="449942"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428889</attachid>
            <date>2021-05-17 16:35:29 -0700</date>
            <delta_ts>2021-05-18 08:05:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225888-20210518023527.patch</filename>
            <type>text/plain</type>
            <size>16004</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzc2MTQpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDIxLTA1LTE3ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBSZW1vdmUgSlNPYmplY3Q6OnB1dE93bkRhdGFQcm9wZXJ0
eSgpIGFuZCBmcmllbmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjU4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHN0cmVzcy9vYmplY3QtYXNzaWduLWZhc3QtcGF0aC5qczoKKwogMjAyMS0wNS0x
NyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjI3MTExOSk6IE9iamVjdCBtZXRob2RzIGRlZmluZWQgd2l0aCBzaG9ydGhhbmQg
bm90YXRpb24gY2Fubm90IGFjY2VzcyAiY2FsbGVyIiBpbiBub24tc3RyaWN0IG1vZGUKSW5kZXg6
IEpTVGVzdHMvc3RyZXNzL29iamVjdC1hc3NpZ24tZmFzdC1wYXRoLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEpTVGVzdHMvc3RyZXNzL29iamVjdC1hc3NpZ24tZmFzdC1wYXRoLmpzCShyZXZpc2lvbiAyNzc2
MTIpCisrKyBKU1Rlc3RzL3N0cmVzcy9vYmplY3QtYXNzaWduLWZhc3QtcGF0aC5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMTc5LDMgKzE3OSwxOCBAQCBmdW5jdGlvbiBjaGVja1Byb3BlcnR5KG9iamVj
dCwgbmFtZSwgdmFsCiAgICAgfSwgYFR5cGVFcnJvcjogQXR0ZW1wdGVkIHRvIGFzc2lnbiB0byBy
ZWFkb25seSBwcm9wZXJ0eS5gKTsKICAgICBzaG91bGRCZShvYmplY3QuYmFyLCB1bmRlZmluZWQp
OwogfQoreworICAgIGxldCBvYmplY3QgPSB7IGZvbzogMSB9OworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShvYmplY3QsICJmb28iLCB7IGVudW1lcmFibGU6IGZhbHNlIH0pOworICAgIE9iamVj
dC5hc3NpZ24ob2JqZWN0LCB7IGZvbzogMiB9KTsKKyAgICBzaG91bGRCZShvYmplY3QuZm9vLCAy
KTsKKyAgICBzaG91bGRCZShvYmplY3QucHJvcGVydHlJc0VudW1lcmFibGUoImZvbyIpLCBmYWxz
ZSk7Cit9Cit7CisgICAgbGV0IG9iamVjdCA9IHsgZm9vOiAxIH07CisgICAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KG9iamVjdCwgImZvbyIsIHsgY29uZmlndXJhYmxlOiBmYWxzZSB9KTsKKyAgICBP
YmplY3QuYXNzaWduKG9iamVjdCwgeyBmb286IDIgfSk7CisgICAgbGV0IGRlc2MgPSBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgImZvbyIpOworICAgIHNob3VsZEJlKGRl
c2MudmFsdWUsIDIpOworICAgIHNob3VsZEJlKGRlc2MuY29uZmlndXJhYmxlLCBmYWxzZSk7Cit9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NzYxMikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MCBA
QAorMjAyMS0wNS0xNyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisK
KyAgICAgICAgUmVtb3ZlIEpTT2JqZWN0OjpwdXRPd25EYXRhUHJvcGVydHkoKSBhbmQgZnJpZW5k
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODg4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVhc29u
cyBmb3IgcmVtb3ZhbDoKKyAgICAgICAgICAxLiBBbm90aGVyIEFQSSwgc2xpZ2h0bHkgZGlmZmVy
ZW50IGZyb20gcHV0KCkgYW5kIHB1dERpcmVjdCgpLCBpcyBhbiBleHRyYSBtZW50YWwgbG9hZC4K
KyAgICAgICAgICAyLiBJdCdzIHByZWZlcnJlZCB0byBjaGVjayB0aGF0IGFueSBvYmplY3QgcHJv
cGVydHksIGluc3RlYWQgb2YgZ2l2ZW4gb25lLCBpcyBmYXN0IHRvIHB1dC4KKyAgICAgICAgICAz
LiB2YWxpZGF0ZVB1dE93bkRhdGFQcm9wZXJ0eSgpIHNob3VsZCBoYXZlIHJlamVjdGVkIGFueSBr
aW5kIG9mIG5vbi1yZWlmaWVkIHByb3BlcnRpZXMuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmVw
bGFjZXMgcHV0T3duRGF0YVByb3BlcnR5KCkgd2l0aCBwdXREaXJlY3QoKSB3aGVyZSBwb3NzaWJs
ZTogYXR0cmlidXRlcworICAgICAgICBwcmVzZXJ2YXRpb24gbm90IHJlcXVpcmVkICsgbm8gUmVh
ZE9ubHkgLyBBY2Nlc3NvciBwcm9wZXJ0aWVzICsgZXh0ZW5zaWJsZSBzdHJ1Y3R1cmUuCisKKyAg
ICAgICAgRm9yIE9iamVjdC5hc3NpZ24sIHB1dElubGluZUZhc3RBc3NlcnRTdWNjZXNzKCkgaXMg
aW50cm9kdWNlZCwgd2hpY2ggaXMgYWxtb3N0IGVxdWl2YWxlbnQgdG8KKyAgICAgICAgcHV0T3du
RGF0YVByb3BlcnR5KCksIGJ1dCBtb3JlIGNvbmNpc2UgYW5kIHN0cmljdCB3aXRoIG5vbi1yZWlm
aWVkIHByb3BlcnRpZXMuIEl0J3MgY29ycmVjdAorICAgICAgICBiZWNhdXNlIHB1dERpcmVjdElu
dGVybmFsPFB1dE1vZGVQdXQ+IHdhcyByZWNlbnRseSB1cGRhdGVkIHRvIHJlamVjdCBhbGwga2lu
ZHMgb2YgYWNjZXNzb3JzLgorCisgICAgICAgIEFsc28sIGNsYXJpZmllcyBwdXRJbmxpbmVGb3JK
U09iamVjdCgpIGZpcnN0IGFyZ3VtZW50J3MgdHlwZSBhbmQgbWFrZXMgcHV0RGlyZWN0TWF5QmVJ
bmRleCgpCisgICAgICAgIGlubGluZWFibGUuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdl
LgorCisgICAgICAgICogcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5jcHA6CisgICAgICAg
IChKU0M6OkpTTGV4aWNhbEVudmlyb25tZW50OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAg
ICAoSlNDOjpKU0xleGljYWxFbnZpcm9ubWVudDo6cHV0KToKKyAgICAgICAgKiBydW50aW1lL0pT
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dCk6CisgICAgICAgIChKU0M6
OkpTT2JqZWN0OjpwdXREaXJlY3RNYXlCZUluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXREaXJlY3RNYXlCZUlu
ZGV4KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6Omhhc0N1c3RvbVByb3BlcnRpZXMpOgorICAg
ICAgICAoSlNDOjpKU09iamVjdDo6aGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpoYXNDdXN0b21HZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpKU09iamVjdDo6cHV0SW5saW5lRm9ySlNPYmplY3QpOgorICAgICAgICAoSlNDOjpK
U09iamVjdDo6cHV0SW5saW5lRmFzdCk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRJbmxp
bmVGYXN0QXNzZXJ0U3VjY2Vzcyk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpzZXRJbmRleFF1
aWNrbHlGb3JUeXBlZEFycmF5KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnZhbGlkYXRlUHV0
T3duRGF0YVByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dE93
bkRhdGFQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRPd25E
YXRhUHJvcGVydHlNYXlCZUluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL09iamVj
dENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JHZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3JzKToKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKwogMjAyMS0wNS0xNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgSW1wbGVtZW50IGJhc2VsaW5lIG9wX2VudGVyLCBvcF9yZXQsIG9wX2NoZWNrX3RyYXBz
LCBvcF90aHJvdyB1c2luZyBKSVQgdGh1bmtzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmNwcAkocmV2aXNpb24g
Mjc3NjEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJv
bm1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsNyArMTAzLDcgQEAgYm9vbCBKU0xleGlj
YWxFbnZpcm9ubWVudDo6Z2V0T3duUHJvcGVydAogCiAgICAgLy8gV2UgZG9uJ3QgY2FsbCB0aHJv
dWdoIHRvIEpTT2JqZWN0IGJlY2F1c2UgdGhlcmUncyBubyB3YXkgdG8gZ2l2ZSBhIAogICAgIC8v
IGxleGljYWwgZW52aXJvbm1lbnQgb2JqZWN0IGdldHRlciBwcm9wZXJ0aWVzIG9yIGEgcHJvdG90
eXBlLgotICAgIEFTU0VSVCghdGhpc09iamVjdC0+aGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcyh2
bSkpOworICAgIEFTU0VSVCghdGhpc09iamVjdC0+c3RydWN0dXJlKHZtKS0+aGFzR2V0dGVyU2V0
dGVyUHJvcGVydGllcygpKTsKICAgICBBU1NFUlQodGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGly
ZWN0KHZtKS5pc051bGwoKSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMTE5LDExICsxMTks
MTUgQEAgYm9vbCBKU0xleGljYWxFbnZpcm9ubWVudDo6cHV0KEpTQ2VsbCogYwogICAgIGlmIChz
eW1ib2xUYWJsZVB1dEludmFsaWRhdGVXYXRjaHBvaW50U2V0KHRoaXNPYmplY3QsIGdsb2JhbE9i
amVjdCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2hvdWxkVGhyb3dSZWFkT25seUVycm9yLCBpZ25v
cmVSZWFkT25seUVycm9ycywgcHV0UmVzdWx0KSkKICAgICAgICAgcmV0dXJuIHB1dFJlc3VsdDsK
IAotICAgIC8vIFdlIGRvbid0IGNhbGwgdGhyb3VnaCB0byBKU09iamVjdCBiZWNhdXNlIF9fcHJv
dG9fXyBhbmQgZ2V0dGVyL3NldHRlciAKLSAgICAvLyBwcm9wZXJ0aWVzIGFyZSBub24tc3RhbmRh
cmQgZXh0ZW5zaW9ucyB0aGF0IG90aGVyIGltcGxlbWVudGF0aW9ucyBkbyBub3QKLSAgICAvLyBl
eHBvc2UgaW4gdGhlIGxleGljYWxFbnZpcm9ubWVudCBvYmplY3QuCi0gICAgQVNTRVJUKCF0aGlz
T2JqZWN0LT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKGdsb2JhbE9iamVjdC0+dm0oKSkpOwot
ICAgIHJldHVybiB0aGlzT2JqZWN0LT5wdXRPd25EYXRhUHJvcGVydHkoZ2xvYmFsT2JqZWN0LT52
bSgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CisKKyAgICAvLyBXZSBkb24ndCBjYWxsIHRocm91Z2ggdG8gSlNPYmplY3QgYmVj
YXVzZSB0aGVyZSdzIG5vIHdheSB0byBnaXZlIGEKKyAgICAvLyBsZXhpY2FsIGVudmlyb25tZW50
IG9iamVjdCBBY2Nlc3NvciAvIFJlYWRPbmx5IHByb3BlcnRpZXMsIG1ha2UgaXQgbm9uLWV4dGVu
c2libGUsIG5vciBzZXQgaXRzIHByb3RvdHlwZS4KKyAgICBBU1NFUlQoIXRoaXNPYmplY3QtPnN0
cnVjdHVyZSh2bSktPmhhc1JlYWRPbmx5T3JHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzRXhjbHVkaW5n
UHJvdG8oKSk7CisgICAgQVNTRVJUKHRoaXNPYmplY3QtPmlzU3RydWN0dXJlRXh0ZW5zaWJsZSh2
bSkpOworICAgIEFTU0VSVCh0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3Qodm0pLmlzTnVs
bCgpKTsKKyAgICB0aGlzT2JqZWN0LT5wdXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOworICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIEpTTGV4aWNhbEVudmlyb25tZW50
OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIERlbGV0ZVByb3BlcnR5U2xvdCYgc2xvdCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHJldmlz
aW9uIDI3NzYxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzU3LDcgKzc1Nyw3IEBAIGJvb2wgb3JkaW5hcnlTZXRTbG93
KEpTR2xvYmFsT2JqZWN0KiBnbG8KIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb3Jk
aW5hcnlzZXQKIGJvb2wgSlNPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gcHV0SW5saW5lRm9ySlNPYmpl
Y3QoY2VsbCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBy
ZXR1cm4gcHV0SW5saW5lRm9ySlNPYmplY3QoYXNPYmplY3QoY2VsbCksIGdsb2JhbE9iamVjdCwg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNPYmplY3Q6OnB1dElubGlu
ZVNsb3coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpAQCAtMzY1MiwxMyAr
MzY1Miw2IEBAIGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcigKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0TWF5QmVJbmRleChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHVlKQotewotICAgIGlmIChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwYXJzZUlu
ZGV4KHByb3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBwdXREaXJlY3RJbmRleChnbG9iYWxP
YmplY3QsIGluZGV4LnZhbHVlKCksIHZhbHVlKTsKLSAgICByZXR1cm4gcHV0RGlyZWN0KGdsb2Jh
bE9iamVjdC0+dm0oKSwgcHJvcGVydHlOYW1lLCB2YWx1ZSk7Ci19Ci0KIC8vIGh0dHBzOi8vdGMz
OS5lcy9lY21hMjYyLyNzZWMtdmFsaWRhdGVhbmRhcHBseXByb3BlcnR5ZGVzY3JpcHRvcgogYm9v
bCB2YWxpZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGJv
b2wgaXNFeHRlbnNpYmxlLAogICAgIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgYm9vbCBpc0N1cnJlbnREZWZpbmVkLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIGN1cnJl
bnQsIGJvb2wgdGhyb3dFeGNlcHRpb24pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmgJKHJldmlzaW9uIDI3NzYxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OCw3ICsxOTgsOCBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBtX2J1dHRlcmZseS0+dmVjdG9yTGVuZ3RoKCk7CiAgICAg
fQogICAgIAotICAgIHN0YXRpYyBib29sIHB1dElubGluZUZvckpTT2JqZWN0KEpTQ2VsbCosIEpT
R2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
KyAgICBzdGF0aWMgYm9vbCBwdXRJbmxpbmVGb3JKU09iamVjdChKU09iamVjdCosIEpTR2xvYmFs
T2JqZWN0KiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICB2
b2lkIHB1dElubGluZUZhc3RBc3NlcnRTdWNjZXNzKFZNJiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVl
KTsKICAgICAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBwdXQoSlNDZWxsKiwg
SlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYp
OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIE5FVkVSX0lOTElORSBzdGF0aWMgYm9vbCBkZWZpbmVQ
cm9wZXJ0eU9uUmVjZWl2ZXIoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwpAQCAtMjc5LDcgKzI4MCwxMiBAQCBwdWJsaWM6CiAgICAgLy8g
aXQgbWF5IGNhbGwgaW50byBhcmJpdHJhcnkgSlMgY29kZS4gSXQncyB0aGUgcmVzcG9uc2liaWxp
dHkgb2YgdGhlIHVzZXIgb2YKICAgICAvLyB0aGlzIEFQSSB0byBlbnN1cmUgdGhhdCB0aGUgcmVj
ZWl2ZXIgb2JqZWN0IGlzIGEgd2VsbCBrbm93biB0eXBlIGlmIHRoZXkKICAgICAvLyB3YW50IHRv
IGVuc3VyZSB0aGF0IHRoaXMgd29uJ3QgdGhyb3cgYW4gZXhjZXB0aW9uLgotICAgIEpTX0VYUE9S
VF9QUklWQVRFIGJvb2wgcHV0RGlyZWN0TWF5QmVJbmRleChKU0dsb2JhbE9iamVjdCosIFByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSk7CisgICAgQUxXQVlTX0lOTElORSBib29sIHB1dERpcmVjdE1heUJl
SW5kZXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChPcHRpb25hbDx1aW50MzJf
dD4gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpCisgICAgICAgICAgICByZXR1cm4g
cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleC52YWx1ZSgpLCB2YWx1ZSk7CisgICAg
ICAgIHJldHVybiBwdXREaXJlY3QoZ2V0Vk0oZ2xvYmFsT2JqZWN0KSwgcHJvcGVydHlOYW1lLCB2
YWx1ZSk7CisgICAgfQogICAgICAgICAKICAgICBib29sIGhhc0luZGV4aW5nSGVhZGVyKFZNJiB2
bSkgY29uc3QKICAgICB7CkBAIC03NjcsMjUgKzc3MywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCB0
cmFuc2l0aW9uVG8oVk0mLCBTdHJ1Y3R1cmUqKTsKIAogICAgIGJvb2wgaGFzQ3VzdG9tUHJvcGVy
dGllcyhWTSYgdm0pIHsgcmV0dXJuIHN0cnVjdHVyZSh2bSktPmRpZFRyYW5zaXRpb24oKTsgfQot
ICAgIGJvb2wgaGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcyhWTSYgdm0pIHsgcmV0dXJuIHN0cnVj
dHVyZSh2bSktPmhhc0dldHRlclNldHRlclByb3BlcnRpZXMoKTsgfQotICAgIGJvb2wgaGFzQ3Vz
dG9tR2V0dGVyU2V0dGVyUHJvcGVydGllcyhWTSYgdm0pIHsgcmV0dXJuIHN0cnVjdHVyZSh2bSkt
Pmhhc0N1c3RvbUdldHRlclNldHRlclByb3BlcnRpZXMoKTsgfQotCiAgICAgYm9vbCBoYXNOb25S
ZWlmaWVkU3RhdGljUHJvcGVydGllcyhWTSYgdm0pCiAgICAgewogICAgICAgICByZXR1cm4gVHlw
ZUluZm86Omhhc1N0YXRpY1Byb3BlcnR5VGFibGUoaW5saW5lVHlwZUZsYWdzKCkpICYmICFzdHJ1
Y3R1cmUodm0pLT5zdGF0aWNQcm9wZXJ0aWVzUmVpZmllZCgpOwogICAgIH0KIAotICAgIC8vIHB1
dE93bkRhdGFQcm9wZXJ0eSBoYXMgJ3B1dCcgbGlrZSBzZW1hbnRpY3MsIGhvd2V2ZXIgdGhpcyBt
ZXRob2Q6Ci0gICAgLy8gIC0gYXNzdW1lcyB0aGUgb2JqZWN0IGNvbnRhaW5zIG5vIG93biBnZXR0
ZXIvc2V0dGVyIHByb3BlcnRpZXMuCi0gICAgLy8gIC0gcHJvdmlkZXMgbm8gc3BlY2lhbCBoYW5k
bGluZyBmb3IgX19wcm90b19fCi0gICAgLy8gIC0gZG9lcyBub3Qgd2FsayB0aGUgcHJvdG90eXBl
IGNoYWluICh0byBjaGVjayBmb3IgYWNjZXNzb3JzIG9yIG5vbi13cml0YWJsZSBwcm9wZXJ0aWVz
KS4KLSAgICAvLyBUaGlzIGlzIHVzZWQgYnkgSlNMZXhpY2FsRW52aXJvbm1lbnQuCi0gICAgYm9v
bCBwdXRPd25EYXRhUHJvcGVydHkoVk0mLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpOwotICAgIGJvb2wgcHV0T3duRGF0YVByb3BlcnR5TWF5QmVJbmRleChKU0dsb2Jh
bE9iamVjdCosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci1wcml2
YXRlOgotICAgIHZvaWQgdmFsaWRhdGVQdXRPd25EYXRhUHJvcGVydHkoVk0mLCBQcm9wZXJ0eU5h
bWUsIEpTVmFsdWUpOwotcHVibGljOgotCiAgICAgLy8gRmFzdCBhY2Nlc3MgdG8ga25vd24gcHJv
cGVydHkgb2Zmc2V0cy4KICAgICBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgZ2V0RGlyZWN0KFByb3Bl
cnR5T2Zmc2V0IG9mZnNldCkgY29uc3QgeyByZXR1cm4gbG9jYXRpb25Gb3JPZmZzZXQob2Zmc2V0
KS0+Z2V0KCk7IH0KICAgICBKU1ZhbHVlIGdldERpcmVjdENvbmN1cnJlbnRseShTdHJ1Y3R1cmUq
IGV4cGVjdGVkU3RydWN0dXJlLCBQcm9wZXJ0eU9mZnNldCkgY29uc3Q7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAkocmV2aXNpb24g
Mjc3NjEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1MiwxMSArMjUyLDEwIEBAIEFMV0FZU19JTkxJTkUgUHJv
cGVydHlPZmZzZXQgSlNPYmplY3Q6OnAKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIv
I3NlYy1vcmRpbmFyeXNldAotQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpwdXRJbmxpbmVG
b3JKU09iamVjdChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKK0FMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6cHV0SW5saW5lRm9ySlNPYmplY3Qo
SlNPYmplY3QqIHRoaXNPYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKICAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOwogCi0gICAgSlNPYmplY3Qq
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNPYmplY3QqPihjZWxsKTsKICAgICBBU1NFUlQodmFsdWUp
OwogICAgIEFTU0VSVCghSGVhcDo6aGVhcCh2YWx1ZSkgfHwgSGVhcDo6aGVhcCh2YWx1ZSkgPT0g
SGVhcDo6aGVhcCh0aGlzT2JqZWN0KSk7CiAKQEAgLTI3OSwxNyArMjc4LDI1IEBAIEFMV0FZU19J
TkxJTkUgYm9vbCBKU09iamVjdDo6cHV0SW5saW5lRm8KIAogQUxXQVlTX0lOTElORSBib29sIEpT
T2JqZWN0OjpwdXRJbmxpbmVGYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKLSAgICBBU1NFUlQoIXBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSk7Ci0KICAgICBWTSYg
dm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAorICAgIEFTU0VSVCghaGFzTm9uUmVpZmllZFN0YXRpY1Byb3BlcnRpZXMo
dm0pKTsKICAgICAvLyBGSVhNRTogRm9yIGEgZmFpbHVyZSBkdWUgdG8gbm9uLWV4dGVuc2libGUg
c3RydWN0dXJlLCB0aGUgZXJyb3IgbWVzc2FnZSBpcyBtaXNsZWFkaW5nLgogICAgIGlmICghcHV0
RGlyZWN0SW50ZXJuYWw8UHV0TW9kZVB1dD4odm0sIHByb3BlcnR5TmFtZSwgdmFsdWUsIDAsIHNs
b3QpKQogICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHNsb3Qu
aXNTdHJpY3RNb2RlKCksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAorQUxXQVlTX0lOTElORSB2b2lkIEpTT2JqZWN0OjpwdXRJbmxpbmVGYXN0QXNz
ZXJ0U3VjY2VzcyhWTSYgdm0sIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUpCit7CisgICAgQVNTRVJUKCFoYXNOb25SZWlmaWVkU3RhdGljUHJvcGVydGllcyh2bSkpOwor
CisgICAgUHV0UHJvcGVydHlTbG90IHNsb3QodGhpcywgdHJ1ZSk7CisgICAgYm9vbCByZXN1bHQg
PSBwdXREaXJlY3RJbnRlcm5hbDxQdXRNb2RlUHV0Pih2bSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwg
MCwgc2xvdCk7CisgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdCk7Cit9CisKIC8vIEhh
c093blByb3BlcnR5KE8sIFApIGZyb20gc2VjdGlvbiA3LjMuMTEgaW4gdGhlIHNwZWMuCiAvLyBo
dHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wL2luZGV4Lmh0bWwj
c2VjLWhhc293bnByb3BlcnR5CiBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6Omhhc093blBy
b3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkgY29uc3QKQEAgLTUwMiw0MiArNTA5LDYgQEAgaW5s
aW5lIHZvaWQgSlNPYmplY3Q6OnNldEluZGV4UXVpY2tseUZvcgogICAgICAgICByZXR1cm47CiAg
ICAgfQogfQotICAgIAotaW5saW5lIHZvaWQgSlNPYmplY3Q6OnZhbGlkYXRlUHV0T3duRGF0YVBy
b3BlcnR5KFZNJiB2bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkK
LXsKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIEFTU0VSVCh2YWx1ZSk7Ci0gICAgQVNTRVJUKCFI
ZWFwOjpoZWFwKHZhbHVlKSB8fCBIZWFwOjpoZWFwKHZhbHVlKSA9PSBIZWFwOjpoZWFwKHRoaXMp
KTsKLSAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzOwotICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9
IHN0cnVjdHVyZSh2bSktPmdldCh2bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKTsKLSAgICBp
ZiAoaXNWYWxpZE9mZnNldChvZmZzZXQpKQotICAgICAgICBBU1NFUlQoIShhdHRyaWJ1dGVzICYg
KFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvciB8IFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkpKTsKLSAgICBlbHNlIGlmIChU
eXBlSW5mbzo6aGFzU3RhdGljUHJvcGVydHlUYWJsZShpbmxpbmVUeXBlRmxhZ3MoKSkpIHsKLSAg
ICAgICAgaWYgKGF1dG8gZW50cnkgPSBmaW5kUHJvcGVydHlIYXNoRW50cnkodm0sIHByb3BlcnR5
TmFtZSkpCi0gICAgICAgICAgICBBU1NFUlQoIShlbnRyeS0+dmFsdWUtPmF0dHJpYnV0ZXMoKSAm
IChQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9t
QWNjZXNzb3IgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKSk7Ci0gICAgfQotI2Vsc2Ug
Ly8gbm90IEFTU0VSVF9FTkFCTEVECi0gICAgVU5VU0VEX1BBUkFNKHZtKTsKLSAgICBVTlVTRURf
UEFSQU0ocHJvcGVydHlOYW1lKTsKLSAgICBVTlVTRURfUEFSQU0odmFsdWUpOwotI2VuZGlmIC8v
IG5vdCBBU1NFUlRfRU5BQkxFRAotfQotCi1pbmxpbmUgYm9vbCBKU09iamVjdDo6cHV0T3duRGF0
YVByb3BlcnR5KFZNJiB2bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1
ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHZhbGlkYXRlUHV0T3duRGF0YVByb3Bl
cnR5KHZtLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKLSAgICByZXR1cm4gcHV0RGlyZWN0SW50ZXJu
YWw8UHV0TW9kZVB1dD4odm0sIHByb3BlcnR5TmFtZSwgdmFsdWUsIDAsIHNsb3QpOwotfQotCi1p
bmxpbmUgYm9vbCBKU09iamVjdDo6cHV0T3duRGF0YVByb3BlcnR5TWF5QmVJbmRleChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgVk0mIHZtID0gZ2V0Vk0oZ2xv
YmFsT2JqZWN0KTsKLSAgICB2YWxpZGF0ZVB1dE93bkRhdGFQcm9wZXJ0eSh2bSwgcHJvcGVydHlO
YW1lLCB2YWx1ZSk7Ci0gICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHBhcnNlSW5k
ZXgocHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIHB1dERpcmVjdEluZGV4KGdsb2JhbE9i
amVjdCwgaW5kZXgudmFsdWUoKSwgdmFsdWUsIDAsIFB1dERpcmVjdEluZGV4TGlrZVB1dERpcmVj
dCk7Ci0KLSAgICByZXR1cm4gcHV0RGlyZWN0SW50ZXJuYWw8UHV0TW9kZVB1dD4odm0sIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIDAsIHNsb3QpOwotfQogCiBBTFdBWVNfSU5MSU5FIENhbGxEYXRhIGdl
dENhbGxEYXRhKFZNJiB2bSwgSlNDZWxsKiBjZWxsKQogewpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24g
Mjc3NjEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYsOCArMjA2LDcgQEAgSlNWYWx1ZSBvYmplY3RD
b25zdHJ1Y3RvckdldE93blByb3BlcnR5RAogICAgICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlv
bigpOwogICAgICAgICBBU1NFUlQoZnJvbURlc2NyaXB0b3IpOwogCi0gICAgICAgIFB1dFByb3Bl
cnR5U2xvdCBzbG90KGRlc2NyaXB0b3JzKTsKLSAgICAgICAgZGVzY3JpcHRvcnMtPnB1dE93bkRh
dGFQcm9wZXJ0eU1heUJlSW5kZXgoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGZyb21EZXNj
cmlwdG9yLCBzbG90KTsKKyAgICAgICAgZGVzY3JpcHRvcnMtPnB1dERpcmVjdE1heUJlSW5kZXgo
Z2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGZyb21EZXNjcmlwdG9yKTsKICAgICAgICAgc2Nv
cGUuYXNzZXJ0Tm9FeGNlcHRpb25FeGNlcHRUZXJtaW5hdGlvbigpOwogICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgIH0KQEAgLTM0OCw4ICszNDcsNyBAQCBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0CiAgICAgICAgICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBwdXQgcHJvcGVydGllcyBpbiBhIGJhdGNoaW5n
IG1hbm5lciB0byBhY2NlbGVyYXRlIE9iamVjdC5hc3NpZ24gbW9yZS4KICAgICAgICAgICAgICAg
ICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTM1OAot
ICAgICAgICAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3QgcHV0UHJvcGVydHlTbG90KHRhcmdl
dCwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIHRhcmdldC0+cHV0T3duRGF0YVByb3BlcnR5
KHZtLCBwcm9wZXJ0aWVzW2ldLmdldCgpLCB2YWx1ZXMuYXQoaSksIHB1dFByb3BlcnR5U2xvdCk7
CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC0+cHV0SW5saW5lRmFzdEFzc2VydFN1Y2Nlc3Mo
dm0sIHByb3BlcnRpZXNbaV0uZ2V0KCksIHZhbHVlcy5hdChpKSk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428940</attachid>
            <date>2021-05-18 08:05:10 -0700</date>
            <delta_ts>2021-05-18 08:05:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225888-20210518180509.patch</filename>
            <type>text/plain</type>
            <size>15748</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzc2NTIpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDIxLTA1LTE4ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBSZW1vdmUgSlNPYmplY3Q6OnB1dE93bkRhdGFQcm9wZXJ0
eSgpIGFuZCBmcmllbmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjU4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHN0cmVzcy9vYmplY3QtYXNzaWduLWZhc3QtcGF0aC5qczoKKwogMjAyMS0wNS0x
NyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjI3MTExOSk6IE9iamVjdCBtZXRob2RzIGRlZmluZWQgd2l0aCBzaG9ydGhhbmQg
bm90YXRpb24gY2Fubm90IGFjY2VzcyAiY2FsbGVyIiBpbiBub24tc3RyaWN0IG1vZGUKSW5kZXg6
IEpTVGVzdHMvc3RyZXNzL29iamVjdC1hc3NpZ24tZmFzdC1wYXRoLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEpTVGVzdHMvc3RyZXNzL29iamVjdC1hc3NpZ24tZmFzdC1wYXRoLmpzCShyZXZpc2lvbiAyNzc2
MTIpCisrKyBKU1Rlc3RzL3N0cmVzcy9vYmplY3QtYXNzaWduLWZhc3QtcGF0aC5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMTc5LDMgKzE3OSwxOCBAQCBmdW5jdGlvbiBjaGVja1Byb3BlcnR5KG9iamVj
dCwgbmFtZSwgdmFsCiAgICAgfSwgYFR5cGVFcnJvcjogQXR0ZW1wdGVkIHRvIGFzc2lnbiB0byBy
ZWFkb25seSBwcm9wZXJ0eS5gKTsKICAgICBzaG91bGRCZShvYmplY3QuYmFyLCB1bmRlZmluZWQp
OwogfQoreworICAgIGxldCBvYmplY3QgPSB7IGZvbzogMSB9OworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShvYmplY3QsICJmb28iLCB7IGVudW1lcmFibGU6IGZhbHNlIH0pOworICAgIE9iamVj
dC5hc3NpZ24ob2JqZWN0LCB7IGZvbzogMiB9KTsKKyAgICBzaG91bGRCZShvYmplY3QuZm9vLCAy
KTsKKyAgICBzaG91bGRCZShvYmplY3QucHJvcGVydHlJc0VudW1lcmFibGUoImZvbyIpLCBmYWxz
ZSk7Cit9Cit7CisgICAgbGV0IG9iamVjdCA9IHsgZm9vOiAxIH07CisgICAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KG9iamVjdCwgImZvbyIsIHsgY29uZmlndXJhYmxlOiBmYWxzZSB9KTsKKyAgICBP
YmplY3QuYXNzaWduKG9iamVjdCwgeyBmb286IDIgfSk7CisgICAgbGV0IGRlc2MgPSBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgImZvbyIpOworICAgIHNob3VsZEJlKGRl
c2MudmFsdWUsIDIpOworICAgIHNob3VsZEJlKGRlc2MuY29uZmlndXJhYmxlLCBmYWxzZSk7Cit9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NzYxMikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MCBA
QAorMjAyMS0wNS0xOCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisK
KyAgICAgICAgUmVtb3ZlIEpTT2JqZWN0OjpwdXRPd25EYXRhUHJvcGVydHkoKSBhbmQgZnJpZW5k
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODg4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVhc29u
cyBmb3IgcmVtb3ZhbDoKKyAgICAgICAgICAxLiBBbm90aGVyIEFQSSwgc2xpZ2h0bHkgZGlmZmVy
ZW50IGZyb20gcHV0KCkgYW5kIHB1dERpcmVjdCgpLCBpcyBhbiBleHRyYSBtZW50YWwgbG9hZC4K
KyAgICAgICAgICAyLiBJdCdzIHByZWZlcnJlZCB0byBjaGVjayB0aGF0IGFueSBvYmplY3QgcHJv
cGVydHksIGluc3RlYWQgb2YgZ2l2ZW4gb25lLCBpcyBmYXN0IHRvIHB1dC4KKyAgICAgICAgICAz
LiB2YWxpZGF0ZVB1dE93bkRhdGFQcm9wZXJ0eSgpIHNob3VsZCBoYXZlIHJlamVjdGVkIGFueSBr
aW5kIG9mIG5vbi1yZWlmaWVkIHByb3BlcnRpZXMuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmVw
bGFjZXMgcHV0T3duRGF0YVByb3BlcnR5KCkgd2l0aCBwdXREaXJlY3QoKSB3aGVyZSBwb3NzaWJs
ZTogYXR0cmlidXRlcworICAgICAgICBwcmVzZXJ2YXRpb24gbm90IHJlcXVpcmVkICsgbm8gUmVh
ZE9ubHkgLyBBY2Nlc3NvciBwcm9wZXJ0aWVzICsgZXh0ZW5zaWJsZSBzdHJ1Y3R1cmUuCisKKyAg
ICAgICAgRm9yIE9iamVjdC5hc3NpZ24sIHB1dElubGluZUZhc3RBc3NlcnRTdWNjZXNzKCkgaXMg
aW50cm9kdWNlZCwgd2hpY2ggaXMgYWxtb3N0IGVxdWl2YWxlbnQgdG8KKyAgICAgICAgcHV0T3du
RGF0YVByb3BlcnR5KCksIGJ1dCBtb3JlIGNvbmNpc2UgYW5kIHN0cmljdCB3aXRoIG5vbi1yZWlm
aWVkIHByb3BlcnRpZXMuIEl0J3MgY29ycmVjdAorICAgICAgICBiZWNhdXNlIHB1dERpcmVjdElu
dGVybmFsPFB1dE1vZGVQdXQ+IHdhcyByZWNlbnRseSB1cGRhdGVkIHRvIHJlamVjdCBhbGwga2lu
ZHMgb2YgYWNjZXNzb3JzLgorCisgICAgICAgIEFsc28sIGNsYXJpZmllcyBwdXRJbmxpbmVGb3JK
U09iamVjdCgpIGZpcnN0IGFyZ3VtZW50J3MgdHlwZSBhbmQgbWFrZXMgcHV0RGlyZWN0TWF5QmVJ
bmRleCgpCisgICAgICAgIGlubGluZWFibGUuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdl
LgorCisgICAgICAgICogcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5jcHA6CisgICAgICAg
IChKU0M6OkpTTGV4aWNhbEVudmlyb25tZW50OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAg
ICAoSlNDOjpKU0xleGljYWxFbnZpcm9ubWVudDo6cHV0KToKKyAgICAgICAgKiBydW50aW1lL0pT
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dCk6CisgICAgICAgIChKU0M6
OkpTT2JqZWN0OjpwdXREaXJlY3RNYXlCZUluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXREaXJlY3RNYXlCZUlu
ZGV4KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6Omhhc0N1c3RvbVByb3BlcnRpZXMpOgorICAg
ICAgICAoSlNDOjpKU09iamVjdDo6aGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpoYXNDdXN0b21HZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpKU09iamVjdDo6cHV0SW5saW5lRm9ySlNPYmplY3QpOgorICAgICAgICAoSlNDOjpK
U09iamVjdDo6cHV0SW5saW5lRmFzdCk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRJbmxp
bmVGYXN0QXNzZXJ0U3VjY2Vzcyk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpzZXRJbmRleFF1
aWNrbHlGb3JUeXBlZEFycmF5KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnZhbGlkYXRlUHV0
T3duRGF0YVByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dE93
bkRhdGFQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRPd25E
YXRhUHJvcGVydHlNYXlCZUluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL09iamVj
dENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JHZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3JzKToKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKwogMjAyMS0wNS0xNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgSW1wbGVtZW50IGJhc2VsaW5lIG9wX2VudGVyLCBvcF9yZXQsIG9wX2NoZWNrX3RyYXBz
LCBvcF90aHJvdyB1c2luZyBKSVQgdGh1bmtzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmNwcAkocmV2aXNpb24g
Mjc3NjEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJv
bm1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsNyArMTAzLDcgQEAgYm9vbCBKU0xleGlj
YWxFbnZpcm9ubWVudDo6Z2V0T3duUHJvcGVydAogCiAgICAgLy8gV2UgZG9uJ3QgY2FsbCB0aHJv
dWdoIHRvIEpTT2JqZWN0IGJlY2F1c2UgdGhlcmUncyBubyB3YXkgdG8gZ2l2ZSBhIAogICAgIC8v
IGxleGljYWwgZW52aXJvbm1lbnQgb2JqZWN0IGdldHRlciBwcm9wZXJ0aWVzIG9yIGEgcHJvdG90
eXBlLgotICAgIEFTU0VSVCghdGhpc09iamVjdC0+aGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcyh2
bSkpOworICAgIEFTU0VSVCghdGhpc09iamVjdC0+c3RydWN0dXJlKHZtKS0+aGFzR2V0dGVyU2V0
dGVyUHJvcGVydGllcygpKTsKICAgICBBU1NFUlQodGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGly
ZWN0KHZtKS5pc051bGwoKSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMTE5LDExICsxMTks
MTUgQEAgYm9vbCBKU0xleGljYWxFbnZpcm9ubWVudDo6cHV0KEpTQ2VsbCogYwogICAgIGlmIChz
eW1ib2xUYWJsZVB1dEludmFsaWRhdGVXYXRjaHBvaW50U2V0KHRoaXNPYmplY3QsIGdsb2JhbE9i
amVjdCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2hvdWxkVGhyb3dSZWFkT25seUVycm9yLCBpZ25v
cmVSZWFkT25seUVycm9ycywgcHV0UmVzdWx0KSkKICAgICAgICAgcmV0dXJuIHB1dFJlc3VsdDsK
IAotICAgIC8vIFdlIGRvbid0IGNhbGwgdGhyb3VnaCB0byBKU09iamVjdCBiZWNhdXNlIF9fcHJv
dG9fXyBhbmQgZ2V0dGVyL3NldHRlciAKLSAgICAvLyBwcm9wZXJ0aWVzIGFyZSBub24tc3RhbmRh
cmQgZXh0ZW5zaW9ucyB0aGF0IG90aGVyIGltcGxlbWVudGF0aW9ucyBkbyBub3QKLSAgICAvLyBl
eHBvc2UgaW4gdGhlIGxleGljYWxFbnZpcm9ubWVudCBvYmplY3QuCi0gICAgQVNTRVJUKCF0aGlz
T2JqZWN0LT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKGdsb2JhbE9iamVjdC0+dm0oKSkpOwot
ICAgIHJldHVybiB0aGlzT2JqZWN0LT5wdXRPd25EYXRhUHJvcGVydHkoZ2xvYmFsT2JqZWN0LT52
bSgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CisKKyAgICAvLyBXZSBkb24ndCBjYWxsIHRocm91Z2ggdG8gSlNPYmplY3QgYmVj
YXVzZSB0aGVyZSdzIG5vIHdheSB0byBnaXZlIGEKKyAgICAvLyBsZXhpY2FsIGVudmlyb25tZW50
IG9iamVjdCBBY2Nlc3NvciAvIFJlYWRPbmx5IHByb3BlcnRpZXMsIG1ha2UgaXQgbm9uLWV4dGVu
c2libGUsIG5vciBzZXQgaXRzIHByb3RvdHlwZS4KKyAgICBBU1NFUlQoIXRoaXNPYmplY3QtPnN0
cnVjdHVyZSh2bSktPmhhc1JlYWRPbmx5T3JHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzRXhjbHVkaW5n
UHJvdG8oKSk7CisgICAgQVNTRVJUKHRoaXNPYmplY3QtPmlzU3RydWN0dXJlRXh0ZW5zaWJsZSh2
bSkpOworICAgIEFTU0VSVCh0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3Qodm0pLmlzTnVs
bCgpKTsKKyAgICB0aGlzT2JqZWN0LT5wdXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOworICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIEpTTGV4aWNhbEVudmlyb25tZW50
OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIERlbGV0ZVByb3BlcnR5U2xvdCYgc2xvdCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHJldmlz
aW9uIDI3NzYxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzU3LDcgKzc1Nyw3IEBAIGJvb2wgb3JkaW5hcnlTZXRTbG93
KEpTR2xvYmFsT2JqZWN0KiBnbG8KIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb3Jk
aW5hcnlzZXQKIGJvb2wgSlNPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gcHV0SW5saW5lRm9ySlNPYmpl
Y3QoY2VsbCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBy
ZXR1cm4gcHV0SW5saW5lRm9ySlNPYmplY3QoYXNPYmplY3QoY2VsbCksIGdsb2JhbE9iamVjdCwg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNPYmplY3Q6OnB1dElubGlu
ZVNsb3coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpAQCAtMzY1MiwxMyAr
MzY1Miw2IEBAIGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcigKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0TWF5QmVJbmRleChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHVlKQotewotICAgIGlmIChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwYXJzZUlu
ZGV4KHByb3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBwdXREaXJlY3RJbmRleChnbG9iYWxP
YmplY3QsIGluZGV4LnZhbHVlKCksIHZhbHVlKTsKLSAgICByZXR1cm4gcHV0RGlyZWN0KGdsb2Jh
bE9iamVjdC0+dm0oKSwgcHJvcGVydHlOYW1lLCB2YWx1ZSk7Ci19Ci0KIC8vIGh0dHBzOi8vdGMz
OS5lcy9lY21hMjYyLyNzZWMtdmFsaWRhdGVhbmRhcHBseXByb3BlcnR5ZGVzY3JpcHRvcgogYm9v
bCB2YWxpZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGJv
b2wgaXNFeHRlbnNpYmxlLAogICAgIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgYm9vbCBpc0N1cnJlbnREZWZpbmVkLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIGN1cnJl
bnQsIGJvb2wgdGhyb3dFeGNlcHRpb24pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmgJKHJldmlzaW9uIDI3NzYxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OCw3ICsxOTgsOCBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBtX2J1dHRlcmZseS0+dmVjdG9yTGVuZ3RoKCk7CiAgICAg
fQogICAgIAotICAgIHN0YXRpYyBib29sIHB1dElubGluZUZvckpTT2JqZWN0KEpTQ2VsbCosIEpT
R2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
KyAgICBzdGF0aWMgYm9vbCBwdXRJbmxpbmVGb3JKU09iamVjdChKU09iamVjdCosIEpTR2xvYmFs
T2JqZWN0KiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICB2
b2lkIHB1dElubGluZUZhc3RBc3NlcnRTdWNjZXNzKFZNJiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVl
KTsKICAgICAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBwdXQoSlNDZWxsKiwg
SlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYp
OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIE5FVkVSX0lOTElORSBzdGF0aWMgYm9vbCBkZWZpbmVQ
cm9wZXJ0eU9uUmVjZWl2ZXIoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwpAQCAtMjc5LDcgKzI4MCwxMiBAQCBwdWJsaWM6CiAgICAgLy8g
aXQgbWF5IGNhbGwgaW50byBhcmJpdHJhcnkgSlMgY29kZS4gSXQncyB0aGUgcmVzcG9uc2liaWxp
dHkgb2YgdGhlIHVzZXIgb2YKICAgICAvLyB0aGlzIEFQSSB0byBlbnN1cmUgdGhhdCB0aGUgcmVj
ZWl2ZXIgb2JqZWN0IGlzIGEgd2VsbCBrbm93biB0eXBlIGlmIHRoZXkKICAgICAvLyB3YW50IHRv
IGVuc3VyZSB0aGF0IHRoaXMgd29uJ3QgdGhyb3cgYW4gZXhjZXB0aW9uLgotICAgIEpTX0VYUE9S
VF9QUklWQVRFIGJvb2wgcHV0RGlyZWN0TWF5QmVJbmRleChKU0dsb2JhbE9iamVjdCosIFByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSk7CisgICAgQUxXQVlTX0lOTElORSBib29sIHB1dERpcmVjdE1heUJl
SW5kZXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChPcHRpb25hbDx1aW50MzJf
dD4gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpCisgICAgICAgICAgICByZXR1cm4g
cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleC52YWx1ZSgpLCB2YWx1ZSk7CisgICAg
ICAgIHJldHVybiBwdXREaXJlY3QoZ2V0Vk0oZ2xvYmFsT2JqZWN0KSwgcHJvcGVydHlOYW1lLCB2
YWx1ZSk7CisgICAgfQogICAgICAgICAKICAgICBib29sIGhhc0luZGV4aW5nSGVhZGVyKFZNJiB2
bSkgY29uc3QKICAgICB7CkBAIC03NjcsMjUgKzc3MywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCB0
cmFuc2l0aW9uVG8oVk0mLCBTdHJ1Y3R1cmUqKTsKIAogICAgIGJvb2wgaGFzQ3VzdG9tUHJvcGVy
dGllcyhWTSYgdm0pIHsgcmV0dXJuIHN0cnVjdHVyZSh2bSktPmRpZFRyYW5zaXRpb24oKTsgfQot
ICAgIGJvb2wgaGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcyhWTSYgdm0pIHsgcmV0dXJuIHN0cnVj
dHVyZSh2bSktPmhhc0dldHRlclNldHRlclByb3BlcnRpZXMoKTsgfQotICAgIGJvb2wgaGFzQ3Vz
dG9tR2V0dGVyU2V0dGVyUHJvcGVydGllcyhWTSYgdm0pIHsgcmV0dXJuIHN0cnVjdHVyZSh2bSkt
Pmhhc0N1c3RvbUdldHRlclNldHRlclByb3BlcnRpZXMoKTsgfQotCiAgICAgYm9vbCBoYXNOb25S
ZWlmaWVkU3RhdGljUHJvcGVydGllcyhWTSYgdm0pCiAgICAgewogICAgICAgICByZXR1cm4gVHlw
ZUluZm86Omhhc1N0YXRpY1Byb3BlcnR5VGFibGUoaW5saW5lVHlwZUZsYWdzKCkpICYmICFzdHJ1
Y3R1cmUodm0pLT5zdGF0aWNQcm9wZXJ0aWVzUmVpZmllZCgpOwogICAgIH0KIAotICAgIC8vIHB1
dE93bkRhdGFQcm9wZXJ0eSBoYXMgJ3B1dCcgbGlrZSBzZW1hbnRpY3MsIGhvd2V2ZXIgdGhpcyBt
ZXRob2Q6Ci0gICAgLy8gIC0gYXNzdW1lcyB0aGUgb2JqZWN0IGNvbnRhaW5zIG5vIG93biBnZXR0
ZXIvc2V0dGVyIHByb3BlcnRpZXMuCi0gICAgLy8gIC0gcHJvdmlkZXMgbm8gc3BlY2lhbCBoYW5k
bGluZyBmb3IgX19wcm90b19fCi0gICAgLy8gIC0gZG9lcyBub3Qgd2FsayB0aGUgcHJvdG90eXBl
IGNoYWluICh0byBjaGVjayBmb3IgYWNjZXNzb3JzIG9yIG5vbi13cml0YWJsZSBwcm9wZXJ0aWVz
KS4KLSAgICAvLyBUaGlzIGlzIHVzZWQgYnkgSlNMZXhpY2FsRW52aXJvbm1lbnQuCi0gICAgYm9v
bCBwdXRPd25EYXRhUHJvcGVydHkoVk0mLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpOwotICAgIGJvb2wgcHV0T3duRGF0YVByb3BlcnR5TWF5QmVJbmRleChKU0dsb2Jh
bE9iamVjdCosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci1wcml2
YXRlOgotICAgIHZvaWQgdmFsaWRhdGVQdXRPd25EYXRhUHJvcGVydHkoVk0mLCBQcm9wZXJ0eU5h
bWUsIEpTVmFsdWUpOwotcHVibGljOgotCiAgICAgLy8gRmFzdCBhY2Nlc3MgdG8ga25vd24gcHJv
cGVydHkgb2Zmc2V0cy4KICAgICBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgZ2V0RGlyZWN0KFByb3Bl
cnR5T2Zmc2V0IG9mZnNldCkgY29uc3QgeyByZXR1cm4gbG9jYXRpb25Gb3JPZmZzZXQob2Zmc2V0
KS0+Z2V0KCk7IH0KICAgICBKU1ZhbHVlIGdldERpcmVjdENvbmN1cnJlbnRseShTdHJ1Y3R1cmUq
IGV4cGVjdGVkU3RydWN0dXJlLCBQcm9wZXJ0eU9mZnNldCkgY29uc3Q7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAkocmV2aXNpb24g
Mjc3NjEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1MiwxMSArMjUyLDEwIEBAIEFMV0FZU19JTkxJTkUgUHJv
cGVydHlPZmZzZXQgSlNPYmplY3Q6OnAKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIv
I3NlYy1vcmRpbmFyeXNldAotQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpwdXRJbmxpbmVG
b3JKU09iamVjdChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKK0FMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6cHV0SW5saW5lRm9ySlNPYmplY3Qo
SlNPYmplY3QqIHRoaXNPYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKICAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOwogCi0gICAgSlNPYmplY3Qq
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNPYmplY3QqPihjZWxsKTsKICAgICBBU1NFUlQodmFsdWUp
OwogICAgIEFTU0VSVCghSGVhcDo6aGVhcCh2YWx1ZSkgfHwgSGVhcDo6aGVhcCh2YWx1ZSkgPT0g
SGVhcDo6aGVhcCh0aGlzT2JqZWN0KSk7CiAKQEAgLTI3OSw4ICsyNzgsNiBAQCBBTFdBWVNfSU5M
SU5FIGJvb2wgSlNPYmplY3Q6OnB1dElubGluZUZvCiAKIEFMV0FZU19JTkxJTkUgYm9vbCBKU09i
amVjdDo6cHV0SW5saW5lRmFzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7Ci0gICAgQVNTRVJUKCFwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpOwotCiAgICAgVk0mIHZt
ID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAKQEAgLTI5MCw2ICsyODcsMTUgQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2Jq
ZWN0OjpwdXRJbmxpbmVGYQogICAgIHJldHVybiB0cnVlOwogfQogCitBTFdBWVNfSU5MSU5FIHZv
aWQgSlNPYmplY3Q6OnB1dElubGluZUZhc3RBc3NlcnRTdWNjZXNzKFZNJiB2bSwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoIWhhc05vblJl
aWZpZWRTdGF0aWNQcm9wZXJ0aWVzKHZtKSk7CisKKyAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdCh0
aGlzLCB0cnVlKTsKKyAgICBib29sIHJlc3VsdCA9IHB1dERpcmVjdEludGVybmFsPFB1dE1vZGVQ
dXQ+KHZtLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCAwLCBzbG90KTsKKyAgICBBU1NFUlRfVU5VU0VE
KHJlc3VsdCwgcmVzdWx0KTsKK30KKwogLy8gSGFzT3duUHJvcGVydHkoTywgUCkgZnJvbSBzZWN0
aW9uIDcuMy4xMSBpbiB0aGUgc3BlYy4KIC8vIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFs
Lm9yZy9lY21hLTI2Mi82LjAvaW5kZXguaHRtbCNzZWMtaGFzb3ducHJvcGVydHkKIEFMV0FZU19J
TkxJTkUgYm9vbCBKU09iamVjdDo6aGFzT3duUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KSBj
b25zdApAQCAtNTAyLDQyICs1MDgsNiBAQCBpbmxpbmUgdm9pZCBKU09iamVjdDo6c2V0SW5kZXhR
dWlja2x5Rm9yCiAgICAgICAgIHJldHVybjsKICAgICB9CiB9Ci0gICAgCi1pbmxpbmUgdm9pZCBK
U09iamVjdDo6dmFsaWRhdGVQdXRPd25EYXRhUHJvcGVydHkoVk0mIHZtLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQotewotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAg
QVNTRVJUKHZhbHVlKTsKLSAgICBBU1NFUlQoIUhlYXA6OmhlYXAodmFsdWUpIHx8IEhlYXA6Omhl
YXAodmFsdWUpID09IEhlYXA6OmhlYXAodGhpcykpOwotICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXM7
Ci0gICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0gc3RydWN0dXJlKHZtKS0+Z2V0KHZtLCBwcm9w
ZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpOwotICAgIGlmIChpc1ZhbGlkT2Zmc2V0KG9mZnNldCkpCi0g
ICAgICAgIEFTU0VSVCghKGF0dHJpYnV0ZXMgJiAoUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29y
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5KSkpOwotICAgIGVsc2UgaWYgKFR5cGVJbmZvOjpoYXNTdGF0aWNQcm9wZXJ0eVRh
YmxlKGlubGluZVR5cGVGbGFncygpKSkgewotICAgICAgICBpZiAoYXV0byBlbnRyeSA9IGZpbmRQ
cm9wZXJ0eUhhc2hFbnRyeSh2bSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgICAgIEFTU0VSVCgh
KGVudHJ5LT52YWx1ZS0+YXR0cmlidXRlcygpICYgKFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nv
ciB8IFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IFByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSkpKTsKLSAgICB9Ci0jZWxzZSAvLyBub3QgQVNTRVJUX0VOQUJMRUQKLSAgICBV
TlVTRURfUEFSQU0odm0pOwotICAgIFVOVVNFRF9QQVJBTShwcm9wZXJ0eU5hbWUpOwotICAgIFVO
VVNFRF9QQVJBTSh2YWx1ZSk7Ci0jZW5kaWYgLy8gbm90IEFTU0VSVF9FTkFCTEVECi19Ci0KLWlu
bGluZSBib29sIEpTT2JqZWN0OjpwdXRPd25EYXRhUHJvcGVydHkoVk0mIHZtLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17
Ci0gICAgdmFsaWRhdGVQdXRPd25EYXRhUHJvcGVydHkodm0sIHByb3BlcnR5TmFtZSwgdmFsdWUp
OwotICAgIHJldHVybiBwdXREaXJlY3RJbnRlcm5hbDxQdXRNb2RlUHV0Pih2bSwgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgMCwgc2xvdCk7Ci19Ci0KLWlubGluZSBib29sIEpTT2JqZWN0OjpwdXRPd25E
YXRhUHJvcGVydHlNYXlCZUluZGV4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKLXsKLSAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOwotICAgIHZhbGlkYXRlUHV0
T3duRGF0YVByb3BlcnR5KHZtLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKLSAgICBpZiAoT3B0aW9u
YWw8dWludDMyX3Q+IGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKQotICAgICAgICBy
ZXR1cm4gcHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleC52YWx1ZSgpLCB2YWx1ZSwg
MCwgUHV0RGlyZWN0SW5kZXhMaWtlUHV0RGlyZWN0KTsKLQotICAgIHJldHVybiBwdXREaXJlY3RJ
bnRlcm5hbDxQdXRNb2RlUHV0Pih2bSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgMCwgc2xvdCk7Ci19
CiAKIEFMV0FZU19JTkxJTkUgQ2FsbERhdGEgZ2V0Q2FsbERhdGEoVk0mIHZtLCBKU0NlbGwqIGNl
bGwpCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAyNzc2MTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIw
Niw4ICsyMDYsNyBAQCBKU1ZhbHVlIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlECiAg
ICAgICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChmcm9tRGVz
Y3JpcHRvcik7CiAKLSAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoZGVzY3JpcHRvcnMpOwot
ICAgICAgICBkZXNjcmlwdG9ycy0+cHV0T3duRGF0YVByb3BlcnR5TWF5QmVJbmRleChnbG9iYWxP
YmplY3QsIHByb3BlcnR5TmFtZSwgZnJvbURlc2NyaXB0b3IsIHNsb3QpOworICAgICAgICBkZXNj
cmlwdG9ycy0+cHV0RGlyZWN0TWF5QmVJbmRleChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwg
ZnJvbURlc2NyaXB0b3IpOwogICAgICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbkV4Y2VwdFRl
cm1pbmF0aW9uKCk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAg
ICAgfQpAQCAtMzQ4LDggKzM0Nyw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RD
b25zdHJ1Y3QKICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHByb3BlcnRp
ZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdlIGNvdWxk
IHB1dCBwcm9wZXJ0aWVzIGluIGEgYmF0Y2hpbmcgbWFubmVyIHRvIGFjY2VsZXJhdGUgT2JqZWN0
LmFzc2lnbiBtb3JlLgogICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MzU4Ci0gICAgICAgICAgICAgICAgICAgIFB1dFByb3Bl
cnR5U2xvdCBwdXRQcm9wZXJ0eVNsb3QodGFyZ2V0LCB0cnVlKTsKLSAgICAgICAgICAgICAgICAg
ICAgdGFyZ2V0LT5wdXRPd25EYXRhUHJvcGVydHkodm0sIHByb3BlcnRpZXNbaV0uZ2V0KCksIHZh
bHVlcy5hdChpKSwgcHV0UHJvcGVydHlTbG90KTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0
LT5wdXRJbmxpbmVGYXN0QXNzZXJ0U3VjY2Vzcyh2bSwgcHJvcGVydGllc1tpXS5nZXQoKSwgdmFs
dWVzLmF0KGkpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICB9Cg==
</data>
<flag name="review"
          id="449996"
          type_id="1"
          status="?"
          setter="ashvayka"
    />
          </attachment>
      

    </bug>

</bugzilla>