<?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>206851</bug_id>
          
          <creation_ts>2020-01-27 16:30:52 -0800</creation_ts>
          <short_desc>Remove the include of BytecodeGenerator.h in CodeCache.h</short_desc>
          <delta_ts>2020-01-28 16:23:13 -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>JavaScriptCore</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>
          
          <blocked>206720</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>commit-queue</cc>
    
    <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>1611691</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-01-27 16:30:52 -0800</bug_when>
    <thetext>This is a blocker for https://bugs.webkit.org/show_bug.cgi?id=206720.
Even by itself, it should help for compile times, since BytecodeGenerator.h includes the huge BytecodeStructs.h and CodeCache.h is included in quite a few places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611694</commentid>
    <comment_count>1</comment_count>
      <attachid>388936</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-01-27 16:39:13 -0800</bug_when>
    <thetext>Created attachment 388936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611704</commentid>
    <comment_count>2</comment_count>
      <attachid>388936</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-01-27 16:53:16 -0800</bug_when>
    <thetext>Comment on attachment 388936
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611710</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-01-27 16:59:07 -0800</bug_when>
    <thetext>r=me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612244</commentid>
    <comment_count>4</comment_count>
      <attachid>388936</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-28 16:22:22 -0800</bug_when>
    <thetext>Comment on attachment 388936
Patch

Clearing flags on attachment: 388936

Committed r255321: &lt;https://trac.webkit.org/changeset/255321&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612245</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-28 16:22:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612248</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-28 16:23:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/58974442&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388936</attachid>
            <date>2020-01-27 16:39:13 -0800</date>
            <delta_ts>2020-01-28 16:22:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch206851</filename>
            <type>text/plain</type>
            <size>22031</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDdkODU5ODNjYzFlLi5hOTllZTAxMzE3MiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjAtMDEtMjcgIFJvYmlu
IE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIGlu
Y2x1ZGUgb2YgQnl0ZWNvZGVHZW5lcmF0b3IuaCBpbiBDb2RlQ2FjaGUuaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2ODUxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZWR1Y2VzIHRoZSBudW1i
ZXIgb2YgdGltZXMgdGhhdCBCeXRlY29kZVN0cnVjdHMuaCBoYXMgdG8gYmUgcGFyc2VkIGZyb20g
MzMgdG8gMjUgdGltZXMsIGFuZCB1bmJsb2NrcyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA2NzIwLgorCisgICAgICAgICogcnVudGltZS9Db2RlQ2FjaGUuY3BwOgor
ICAgICAgICAoSlNDOjpnZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrRm9yRnVuY3Rpb25zKToKKyAg
ICAgICAgKEpTQzo6Z2VuZXJhdGVVbmxpbmtlZENvZGVCbG9ja0ltcGwpOgorICAgICAgICAoSlND
OjpnZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6Z2VuZXJhdGVVbmxp
bmtlZENvZGVCbG9ja0ZvckRpcmVjdEV2YWwpOgorICAgICAgICAoSlNDOjpyZWN1cnNpdmVseUdl
bmVyYXRlVW5saW5rZWRDb2RlQmxvY2tGb3JQcm9ncmFtKToKKyAgICAgICAgKEpTQzo6cmVjdXJz
aXZlbHlHZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrRm9yTW9kdWxlUHJvZ3JhbSk6CisgICAgICAg
ICogcnVudGltZS9Db2RlQ2FjaGUuaDoKKyAgICAgICAgKiBydW50aW1lL0NvbXBsZXRpb24uY3Bw
OgorICAgICAgICAoSlNDOjpnZW5lcmF0ZVByb2dyYW1CeXRlY29kZSk6CisgICAgICAgIChKU0M6
OmdlbmVyYXRlTW9kdWxlQnl0ZWNvZGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGlyZWN0RXZhbEV4
ZWN1dGFibGUuY3BwOgorICAgICAgICAoSlNDOjpEaXJlY3RFdmFsRXhlY3V0YWJsZTo6Y3JlYXRl
KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50
aW1lL1ZNLmNwcDoKKwogMjAyMC0wMS0yMyAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBkZWFkIG9wdGlvbiB1c2VGVExUQkFBCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcAppbmRleCBlY2Y5NTEwZTBmMC4u
YjdjNzk3ODQ0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
ZGVDYWNoZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hl
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNv
ZGVDYWNoZS5oIgogCisjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJJ
bmRpcmVjdEV2YWxFeGVjdXRhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0
ZW5hdGVOdW1iZXJzLmg+CiAKQEAgLTUwLDYgKzUxLDEwMCBAQCB2b2lkIENvZGVDYWNoZU1hcDo6
cHJ1bmVTbG93Q2FzZSgpCiAgICAgfQogfQogCitzdGF0aWMgdm9pZCBnZW5lcmF0ZVVubGlua2Vk
Q29kZUJsb2NrRm9yRnVuY3Rpb25zKFZNJiB2bSwgVW5saW5rZWRDb2RlQmxvY2sqIHVubGlua2Vk
Q29kZUJsb2NrLCBjb25zdCBTb3VyY2VDb2RlJiBwYXJlbnRTb3VyY2UsIE9wdGlvblNldDxDb2Rl
R2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yKQor
eworICAgIGF1dG8gZ2VuZXJhdGUgPSBbJl0oVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIHVu
bGlua2VkRXhlY3V0YWJsZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBjb25zdHJ1Y3RvcktpbmQp
IHsKKyAgICAgICAgaWYgKGNvbnN0cnVjdG9yS2luZCA9PSBDb2RlRm9yQ29uc3RydWN0ICYmIFNv
dXJjZVBhcnNlTW9kZVNldChTb3VyY2VQYXJzZU1vZGU6OkFzeW5jQXJyb3dGdW5jdGlvbk1vZGUs
IFNvdXJjZVBhcnNlTW9kZTo6QXN5bmNNZXRob2RNb2RlLCBTb3VyY2VQYXJzZU1vZGU6OkFzeW5j
RnVuY3Rpb25Nb2RlKS5jb250YWlucyh1bmxpbmtlZEV4ZWN1dGFibGUtPnBhcnNlTW9kZSgpKSkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IHVubGlu
a2VkRXhlY3V0YWJsZS0+bGlua2VkU291cmNlQ29kZShwYXJlbnRTb3VyY2UpOworICAgICAgICBV
bmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiB1bmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrID0gdW5s
aW5rZWRFeGVjdXRhYmxlLT51bmxpbmtlZENvZGVCbG9ja0Zvcih2bSwgc291cmNlLCBjb25zdHJ1
Y3RvcktpbmQsIGNvZGVHZW5lcmF0aW9uTW9kZSwgZXJyb3IsIHVubGlua2VkRXhlY3V0YWJsZS0+
cGFyc2VNb2RlKCkpOworICAgICAgICBpZiAodW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jaykKKyAg
ICAgICAgICAgIGdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2tGb3JGdW5jdGlvbnModm0sIHVubGlu
a2VkRnVuY3Rpb25Db2RlQmxvY2ssIHNvdXJjZSwgY29kZUdlbmVyYXRpb25Nb2RlLCBlcnJvcik7
CisgICAgfTsKKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWxzbyBnZW5lcmF0ZSBDb2RlQmxv
Y2tzIGZvciBDb2RlRm9yQ29uc3RydWN0CisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MzgyMworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB1bmxp
bmtlZENvZGVCbG9jay0+bnVtYmVyT2ZGdW5jdGlvbkRlY2xzKCk7IGkrKykKKyAgICAgICAgZ2Vu
ZXJhdGUodW5saW5rZWRDb2RlQmxvY2stPmZ1bmN0aW9uRGVjbChpKSwgQ29kZUZvckNhbGwpOwor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB1bmxpbmtlZENvZGVCbG9jay0+bnVtYmVyT2ZG
dW5jdGlvbkV4cHJzKCk7IGkrKykKKyAgICAgICAgZ2VuZXJhdGUodW5saW5rZWRDb2RlQmxvY2st
PmZ1bmN0aW9uRXhwcihpKSwgQ29kZUZvckNhbGwpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVW5s
aW5rZWRDb2RlQmxvY2tUeXBlLCBjbGFzcyBFeGVjdXRhYmxlVHlwZSA9IFNjcmlwdEV4ZWN1dGFi
bGU+CitVbmxpbmtlZENvZGVCbG9ja1R5cGUqIGdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2tJbXBs
KFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBKU1BhcnNlclN0cmljdE1vZGUgc3Ry
aWN0TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUsIE9wdGlvblNldDxDb2RlR2Vu
ZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBFdmFs
Q29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlLCBEZXJpdmVkQ29udGV4dFR5cGUgZGVyaXZlZENv
bnRleHRUeXBlLCBib29sIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIGNvbnN0IFZhcmlhYmxlRW52
aXJvbm1lbnQqIHZhcmlhYmxlc1VuZGVyVERaLCBFeGVjdXRhYmxlVHlwZSogZXhlY3V0YWJsZSA9
IG51bGxwdHIpCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBDYWNoZVR5cGVzPFVubGlua2VkQ29k
ZUJsb2NrVHlwZT46OlJvb3ROb2RlIFJvb3ROb2RlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSb290
Tm9kZT4gcm9vdE5vZGUgPSBwYXJzZTxSb290Tm9kZT4oCisgICAgICAgIHZtLCBzb3VyY2UsIElk
ZW50aWZpZXIoKSwgSlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVpbHRpbiwgc3RyaWN0TW9kZSwg
c2NyaXB0TW9kZSwgQ2FjaGVUeXBlczxVbmxpbmtlZENvZGVCbG9ja1R5cGU+OjpwYXJzZU1vZGUs
IFN1cGVyQmluZGluZzo6Tm90TmVlZGVkLCBlcnJvciwgbnVsbHB0ciwgQ29uc3RydWN0b3JLaW5k
OjpOb25lLCBkZXJpdmVkQ29udGV4dFR5cGUsIGV2YWxDb250ZXh0VHlwZSk7CisgICAgaWYgKCFy
b290Tm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICB1bnNpZ25lZCBsaW5lQ291
bnQgPSByb290Tm9kZS0+bGFzdExpbmUoKSAtIHJvb3ROb2RlLT5maXJzdExpbmUoKTsKKyAgICB1
bnNpZ25lZCBzdGFydENvbHVtbiA9IHJvb3ROb2RlLT5zdGFydENvbHVtbigpICsgMTsKKyAgICBi
b29sIGVuZENvbHVtbklzT25TdGFydExpbmUgPSAhbGluZUNvdW50OworICAgIHVuc2lnbmVkIHVu
bGlua2VkRW5kQ29sdW1uID0gcm9vdE5vZGUtPmVuZENvbHVtbigpOworICAgIHVuc2lnbmVkIGVu
ZENvbHVtbiA9IHVubGlua2VkRW5kQ29sdW1uICsgKGVuZENvbHVtbklzT25TdGFydExpbmUgPyBz
dGFydENvbHVtbiA6IDEpOworICAgIHVuc2lnbmVkIGFycm93Q29udGV4dEZlYXR1cmUgPSBpc0Fy
cm93RnVuY3Rpb25Db250ZXh0ID8gQXJyb3dGdW5jdGlvbkNvbnRleHRGZWF0dXJlIDogMDsKKyAg
ICBpZiAoZXhlY3V0YWJsZSkKKyAgICAgICAgZXhlY3V0YWJsZS0+cmVjb3JkUGFyc2Uocm9vdE5v
ZGUtPmZlYXR1cmVzKCkgfCBhcnJvd0NvbnRleHRGZWF0dXJlLCByb290Tm9kZS0+aGFzQ2FwdHVy
ZWRWYXJpYWJsZXMoKSwgcm9vdE5vZGUtPmxhc3RMaW5lKCksIGVuZENvbHVtbik7CisKKyAgICBi
b29sIHVzZXNFdmFsID0gcm9vdE5vZGUtPmZlYXR1cmVzKCkgJiBFdmFsRmVhdHVyZTsKKyAgICBi
b29sIGlzU3RyaWN0TW9kZSA9IHJvb3ROb2RlLT5mZWF0dXJlcygpICYgU3RyaWN0TW9kZUZlYXR1
cmU7CisgICAgTmVlZHNDbGFzc0ZpZWxkSW5pdGlhbGl6ZXIgbmVlZHNDbGFzc0ZpZWxkSW5pdGlh
bGl6ZXIgPSBOZWVkc0NsYXNzRmllbGRJbml0aWFsaXplcjo6Tm87CisgICAgaWYgY29uc3RleHBy
IChzdGQ6OmlzX3NhbWVfdjxFeGVjdXRhYmxlVHlwZSwgRGlyZWN0RXZhbEV4ZWN1dGFibGU+KQor
ICAgICAgICBuZWVkc0NsYXNzRmllbGRJbml0aWFsaXplciA9IGV4ZWN1dGFibGUtPm5lZWRzQ2xh
c3NGaWVsZEluaXRpYWxpemVyKCk7CisgICAgRXhlY3V0YWJsZUluZm8gZXhlY3V0YWJsZUluZm8o
dXNlc0V2YWwsIGlzU3RyaWN0TW9kZSwgZmFsc2UsIGZhbHNlLCBDb25zdHJ1Y3RvcktpbmQ6Ok5v
bmUsIHNjcmlwdE1vZGUsIFN1cGVyQmluZGluZzo6Tm90TmVlZGVkLCBDYWNoZVR5cGVzPFVubGlu
a2VkQ29kZUJsb2NrVHlwZT46OnBhcnNlTW9kZSwgZGVyaXZlZENvbnRleHRUeXBlLCBuZWVkc0Ns
YXNzRmllbGRJbml0aWFsaXplciwgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgZmFsc2UsIGV2YWxD
b250ZXh0VHlwZSk7CisKKyAgICBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIHVubGlua2VkQ29kZUJs
b2NrID0gVW5saW5rZWRDb2RlQmxvY2tUeXBlOjpjcmVhdGUodm0sIGV4ZWN1dGFibGVJbmZvLCBj
b2RlR2VuZXJhdGlvbk1vZGUpOworICAgIHVubGlua2VkQ29kZUJsb2NrLT5yZWNvcmRQYXJzZShy
b290Tm9kZS0+ZmVhdHVyZXMoKSwgcm9vdE5vZGUtPmhhc0NhcHR1cmVkVmFyaWFibGVzKCksIGxp
bmVDb3VudCwgdW5saW5rZWRFbmRDb2x1bW4pOworICAgIGlmICghc291cmNlLnByb3ZpZGVyKCkt
PnNvdXJjZVVSTERpcmVjdGl2ZSgpLmlzTnVsbCgpKQorICAgICAgICB1bmxpbmtlZENvZGVCbG9j
ay0+c2V0U291cmNlVVJMRGlyZWN0aXZlKHNvdXJjZS5wcm92aWRlcigpLT5zb3VyY2VVUkxEaXJl
Y3RpdmUoKSk7CisgICAgaWYgKCFzb3VyY2UucHJvdmlkZXIoKS0+c291cmNlTWFwcGluZ1VSTERp
cmVjdGl2ZSgpLmlzTnVsbCgpKQorICAgICAgICB1bmxpbmtlZENvZGVCbG9jay0+c2V0U291cmNl
TWFwcGluZ1VSTERpcmVjdGl2ZShzb3VyY2UucHJvdmlkZXIoKS0+c291cmNlTWFwcGluZ1VSTERp
cmVjdGl2ZSgpKTsKKworICAgIGVycm9yID0gQnl0ZWNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlKHZt
LCByb290Tm9kZS5nZXQoKSwgc291cmNlLCB1bmxpbmtlZENvZGVCbG9jaywgY29kZUdlbmVyYXRp
b25Nb2RlLCB2YXJpYWJsZXNVbmRlclREWik7CisKKyAgICBpZiAoZXJyb3IuaXNWYWxpZCgpKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiB1bmxpbmtlZENvZGVCbG9jazsK
K30KKwordGVtcGxhdGUgPGNsYXNzIFVubGlua2VkQ29kZUJsb2NrVHlwZSwgY2xhc3MgRXhlY3V0
YWJsZVR5cGU+CitVbmxpbmtlZENvZGVCbG9ja1R5cGUqIGdlbmVyYXRlVW5saW5rZWRDb2RlQmxv
Y2soVk0mIHZtLCBFeGVjdXRhYmxlVHlwZSogZXhlY3V0YWJsZSwgY29uc3QgU291cmNlQ29kZSYg
c291cmNlLCBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2Rl
IHNjcmlwdE1vZGUsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9u
TW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBl
LCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiB2YXJpYWJsZXNVbmRlclREWikKK3sKKyAgICBy
ZXR1cm4gZ2VuZXJhdGVVbmxpbmtlZENvZGVCbG9ja0ltcGw8VW5saW5rZWRDb2RlQmxvY2tUeXBl
LCBFeGVjdXRhYmxlVHlwZT4odm0sIHNvdXJjZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgY29k
ZUdlbmVyYXRpb25Nb2RlLCBlcnJvciwgZXZhbENvbnRleHRUeXBlLCBleGVjdXRhYmxlLT5kZXJp
dmVkQ29udGV4dFR5cGUoKSwgZXhlY3V0YWJsZS0+aXNBcnJvd0Z1bmN0aW9uQ29udGV4dCgpLCB2
YXJpYWJsZXNVbmRlclREWiwgZXhlY3V0YWJsZSk7Cit9CisKK1VubGlua2VkRXZhbENvZGVCbG9j
ayogZ2VuZXJhdGVVbmxpbmtlZENvZGVCbG9ja0ZvckRpcmVjdEV2YWwoVk0mIHZtLCBEaXJlY3RF
dmFsRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBKU1Bh
cnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUs
IE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSwgUGFyc2Vy
RXJyb3ImIGVycm9yLCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlLCBjb25zdCBWYXJp
YWJsZUVudmlyb25tZW50KiB2YXJpYWJsZXNVbmRlclREWikKK3sKKyAgICByZXR1cm4gZ2VuZXJh
dGVVbmxpbmtlZENvZGVCbG9jazxVbmxpbmtlZEV2YWxDb2RlQmxvY2s+KHZtLCBleGVjdXRhYmxl
LCBzb3VyY2UsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIGNvZGVHZW5lcmF0aW9uTW9kZSwgZXJy
b3IsIGV2YWxDb250ZXh0VHlwZSwgdmFyaWFibGVzVW5kZXJURFopOworfQorCit0ZW1wbGF0ZSA8
Y2xhc3MgVW5saW5rZWRDb2RlQmxvY2tUeXBlPgorc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19z
YW1lPFVubGlua2VkQ29kZUJsb2NrVHlwZSwgVW5saW5rZWRFdmFsQ29kZUJsb2NrPjo6dmFsdWUs
IFVubGlua2VkQ29kZUJsb2NrVHlwZSo+CityZWN1cnNpdmVseUdlbmVyYXRlVW5saW5rZWRDb2Rl
QmxvY2soVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyU3RyaWN0TW9k
ZSBzdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGUgc2NyaXB0TW9kZSwgT3B0aW9uU2V0PENv
ZGVHZW5lcmF0aW9uTW9kZT4gY29kZUdlbmVyYXRpb25Nb2RlLCBQYXJzZXJFcnJvciYgZXJyb3Is
IEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1l
bnQqIHZhcmlhYmxlc1VuZGVyVERaKQoreworICAgIGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4
dCA9IGZhbHNlOworICAgIFVubGlua2VkQ29kZUJsb2NrVHlwZSogdW5saW5rZWRDb2RlQmxvY2sg
PSBnZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrSW1wbDxVbmxpbmtlZENvZGVCbG9ja1R5cGU+KHZt
LCBzb3VyY2UsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIGNvZGVHZW5lcmF0aW9uTW9kZSwgZXJy
b3IsIGV2YWxDb250ZXh0VHlwZSwgRGVyaXZlZENvbnRleHRUeXBlOjpOb25lLCBpc0Fycm93RnVu
Y3Rpb25Db250ZXh0LCB2YXJpYWJsZXNVbmRlclREWik7CisgICAgaWYgKCF1bmxpbmtlZENvZGVC
bG9jaykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBnZW5lcmF0ZVVubGlua2VkQ29k
ZUJsb2NrRm9yRnVuY3Rpb25zKHZtLCB1bmxpbmtlZENvZGVCbG9jaywgc291cmNlLCBjb2RlR2Vu
ZXJhdGlvbk1vZGUsIGVycm9yKTsKKyAgICByZXR1cm4gdW5saW5rZWRDb2RlQmxvY2s7Cit9CisK
K1VubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlua2VkQ29k
ZUJsb2NrRm9yUHJvZ3JhbShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJz
ZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLCBP
cHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUsIFBhcnNlckVy
cm9yJiBlcnJvciwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSwgY29uc3QgVmFyaWFi
bGVFbnZpcm9ubWVudCogdmFyaWFibGVzVW5kZXJURFopCit7CisgICAgcmV0dXJuIHJlY3Vyc2l2
ZWx5R2VuZXJhdGVVbmxpbmtlZENvZGVCbG9jazxVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2s+KHZt
LCBzb3VyY2UsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIGNvZGVHZW5lcmF0aW9uTW9kZSwgZXJy
b3IsIGV2YWxDb250ZXh0VHlwZSwgdmFyaWFibGVzVW5kZXJURFopOworfQorCitVbmxpbmtlZE1v
ZHVsZVByb2dyYW1Db2RlQmxvY2sqIHJlY3Vyc2l2ZWx5R2VuZXJhdGVVbmxpbmtlZENvZGVCbG9j
a0Zvck1vZHVsZVByb2dyYW0oVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFy
c2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGUgc2NyaXB0TW9kZSwg
T3B0aW9uU2V0PENvZGVHZW5lcmF0aW9uTW9kZT4gY29kZUdlbmVyYXRpb25Nb2RlLCBQYXJzZXJF
cnJvciYgZXJyb3IsIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUsIGNvbnN0IFZhcmlh
YmxlRW52aXJvbm1lbnQqIHZhcmlhYmxlc1VuZGVyVERaKQoreworICAgIHJldHVybiByZWN1cnNp
dmVseUdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2s8VW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJs
b2NrPih2bSwgc291cmNlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCBjb2RlR2VuZXJhdGlvbk1v
ZGUsIGVycm9yLCBldmFsQ29udGV4dFR5cGUsIHZhcmlhYmxlc1VuZGVyVERaKTsKK30KKwogdGVt
cGxhdGUgPGNsYXNzIFVubGlua2VkQ29kZUJsb2NrVHlwZSwgY2xhc3MgRXhlY3V0YWJsZVR5cGU+
CiBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIENvZGVDYWNoZTo6Z2V0VW5saW5rZWRHbG9iYWxDb2Rl
QmxvY2soVk0mIHZtLCBFeGVjdXRhYmxlVHlwZSogZXhlY3V0YWJsZSwgY29uc3QgU291cmNlQ29k
ZSYgc291cmNlLCBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSwgSlNQYXJzZXJTY3JpcHRN
b2RlIHNjcmlwdE1vZGUsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0
aW9uTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRU
eXBlKQogewpAQCAtMTcyLDI2ICsyNjcsNiBAQCB2b2lkIENvZGVDYWNoZTo6d3JpdGUoVk0mIHZt
KQogICAgICAgICB3cml0ZUNvZGVCbG9jayh2bSwgaXQua2V5LCBpdC52YWx1ZSk7CiB9CiAKLXZv
aWQgZ2VuZXJhdGVVbmxpbmtlZENvZGVCbG9ja0ZvckZ1bmN0aW9ucyhWTSYgdm0sIFVubGlua2Vk
Q29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jaywgY29uc3QgU291cmNlQ29kZSYgcGFyZW50U291
cmNlLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUsIFBh
cnNlckVycm9yJiBlcnJvcikKLXsKLSAgICBhdXRvIGdlbmVyYXRlID0gWyZdKFVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlKiB1bmxpbmtlZEV4ZWN1dGFibGUsIENvZGVTcGVjaWFsaXphdGlvbktp
bmQgY29uc3RydWN0b3JLaW5kKSB7Ci0gICAgICAgIGlmIChjb25zdHJ1Y3RvcktpbmQgPT0gQ29k
ZUZvckNvbnN0cnVjdCAmJiBTb3VyY2VQYXJzZU1vZGVTZXQoU291cmNlUGFyc2VNb2RlOjpBc3lu
Y0Fycm93RnVuY3Rpb25Nb2RlLCBTb3VyY2VQYXJzZU1vZGU6OkFzeW5jTWV0aG9kTW9kZSwgU291
cmNlUGFyc2VNb2RlOjpBc3luY0Z1bmN0aW9uTW9kZSkuY29udGFpbnModW5saW5rZWRFeGVjdXRh
YmxlLT5wYXJzZU1vZGUoKSkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgU291cmNl
Q29kZSBzb3VyY2UgPSB1bmxpbmtlZEV4ZWN1dGFibGUtPmxpbmtlZFNvdXJjZUNvZGUocGFyZW50
U291cmNlKTsKLSAgICAgICAgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogdW5saW5rZWRGdW5j
dGlvbkNvZGVCbG9jayA9IHVubGlua2VkRXhlY3V0YWJsZS0+dW5saW5rZWRDb2RlQmxvY2tGb3Io
dm0sIHNvdXJjZSwgY29uc3RydWN0b3JLaW5kLCBjb2RlR2VuZXJhdGlvbk1vZGUsIGVycm9yLCB1
bmxpbmtlZEV4ZWN1dGFibGUtPnBhcnNlTW9kZSgpKTsKLSAgICAgICAgaWYgKHVubGlua2VkRnVu
Y3Rpb25Db2RlQmxvY2spCi0gICAgICAgICAgICBnZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrRm9y
RnVuY3Rpb25zKHZtLCB1bmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrLCBzb3VyY2UsIGNvZGVHZW5l
cmF0aW9uTW9kZSwgZXJyb3IpOwotICAgIH07Ci0KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFs
c28gZ2VuZXJhdGUgQ29kZUJsb2NrcyBmb3IgQ29kZUZvckNvbnN0cnVjdAotICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM4MjMKLSAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgdW5saW5rZWRDb2RlQmxvY2stPm51bWJlck9mRnVuY3Rpb25EZWNscygp
OyBpKyspCi0gICAgICAgIGdlbmVyYXRlKHVubGlua2VkQ29kZUJsb2NrLT5mdW5jdGlvbkRlY2wo
aSksIENvZGVGb3JDYWxsKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdW5saW5rZWRD
b2RlQmxvY2stPm51bWJlck9mRnVuY3Rpb25FeHBycygpOyBpKyspCi0gICAgICAgIGdlbmVyYXRl
KHVubGlua2VkQ29kZUJsb2NrLT5mdW5jdGlvbkV4cHIoaSksIENvZGVGb3JDYWxsKTsKLX0KLQog
dm9pZCB3cml0ZUNvZGVCbG9jayhWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGVLZXkmIGtleSwgY29u
c3QgU291cmNlQ29kZVZhbHVlJiB2YWx1ZSkKIHsKICAgICBVbmxpbmtlZENvZGVCbG9jayogY29k
ZUJsb2NrID0ganNEeW5hbWljQ2FzdDxVbmxpbmtlZENvZGVCbG9jayo+KHZtLCB2YWx1ZS5jZWxs
LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVD
YWNoZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgKaW5kZXgg
YjRhODFlN2ViMTAuLjc3MjYyMGU5ZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db2RlQ2FjaGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db2RlQ2FjaGUuaApAQCAtMjUsNyArMjUsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1
ZGUgIkJ5dGVjb2RlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiQ2FjaGVkVHlwZXMuaCIKICNpbmNs
dWRlICJFeGVjdXRhYmxlSW5mby5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKQEAgLTUwLDEx
ICs0OSw2IEBAIGNsYXNzIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlOwogY2xhc3MgUGFyc2VyRXJy
b3I7CiBjbGFzcyBQcm9ncmFtRXhlY3V0YWJsZTsKIGNsYXNzIFNvdXJjZUNvZGU7Ci1jbGFzcyBV
bmxpbmtlZENvZGVCbG9jazsKLWNsYXNzIFVubGlua2VkRXZhbENvZGVCbG9jazsKLWNsYXNzIFVu
bGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOwotY2xhc3MgVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29k
ZUJsb2NrOwotY2xhc3MgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrOwogY2xhc3MgVk07CiBjbGFz
cyBWYXJpYWJsZUVudmlyb25tZW50OwogCkBAIC0yNTksNjYgKzI1Myw5IEBAIHRlbXBsYXRlIDw+
IHN0cnVjdCBDYWNoZVR5cGVzPFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jaz4gewogICAg
IHN0YXRpYyBjb25zdGV4cHIgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSA9IFNvdXJjZVBhcnNl
TW9kZTo6TW9kdWxlRXZhbHVhdGVNb2RlOwogfTsKIAotdGVtcGxhdGUgPGNsYXNzIFVubGlua2Vk
Q29kZUJsb2NrVHlwZSwgY2xhc3MgRXhlY3V0YWJsZVR5cGUgPSBTY3JpcHRFeGVjdXRhYmxlPgot
VW5saW5rZWRDb2RlQmxvY2tUeXBlKiBnZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrSW1wbChWTSYg
dm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1v
ZGUsIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRp
b25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUsIFBhcnNlckVycm9yJiBlcnJvciwgRXZhbENvbnRl
eHRUeXBlIGV2YWxDb250ZXh0VHlwZSwgRGVyaXZlZENvbnRleHRUeXBlIGRlcml2ZWRDb250ZXh0
VHlwZSwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBjb25zdCBWYXJpYWJsZUVudmlyb25t
ZW50KiB2YXJpYWJsZXNVbmRlclREWiwgRXhlY3V0YWJsZVR5cGUqIGV4ZWN1dGFibGUgPSBudWxs
cHRyKQotewotICAgIHR5cGVkZWYgdHlwZW5hbWUgQ2FjaGVUeXBlczxVbmxpbmtlZENvZGVCbG9j
a1R5cGU+OjpSb290Tm9kZSBSb290Tm9kZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Um9vdE5vZGU+
IHJvb3ROb2RlID0gcGFyc2U8Um9vdE5vZGU+KAotICAgICAgICB2bSwgc291cmNlLCBJZGVudGlm
aWVyKCksIEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIHN0cmljdE1vZGUsIHNjcmlw
dE1vZGUsIENhY2hlVHlwZXM8VW5saW5rZWRDb2RlQmxvY2tUeXBlPjo6cGFyc2VNb2RlLCBTdXBl
ckJpbmRpbmc6Ok5vdE5lZWRlZCwgZXJyb3IsIG51bGxwdHIsIENvbnN0cnVjdG9yS2luZDo6Tm9u
ZSwgZGVyaXZlZENvbnRleHRUeXBlLCBldmFsQ29udGV4dFR5cGUpOwotICAgIGlmICghcm9vdE5v
ZGUpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgdW5zaWduZWQgbGluZUNvdW50ID0g
cm9vdE5vZGUtPmxhc3RMaW5lKCkgLSByb290Tm9kZS0+Zmlyc3RMaW5lKCk7Ci0gICAgdW5zaWdu
ZWQgc3RhcnRDb2x1bW4gPSByb290Tm9kZS0+c3RhcnRDb2x1bW4oKSArIDE7Ci0gICAgYm9vbCBl
bmRDb2x1bW5Jc09uU3RhcnRMaW5lID0gIWxpbmVDb3VudDsKLSAgICB1bnNpZ25lZCB1bmxpbmtl
ZEVuZENvbHVtbiA9IHJvb3ROb2RlLT5lbmRDb2x1bW4oKTsKLSAgICB1bnNpZ25lZCBlbmRDb2x1
bW4gPSB1bmxpbmtlZEVuZENvbHVtbiArIChlbmRDb2x1bW5Jc09uU3RhcnRMaW5lID8gc3RhcnRD
b2x1bW4gOiAxKTsKLSAgICB1bnNpZ25lZCBhcnJvd0NvbnRleHRGZWF0dXJlID0gaXNBcnJvd0Z1
bmN0aW9uQ29udGV4dCA/IEFycm93RnVuY3Rpb25Db250ZXh0RmVhdHVyZSA6IDA7Ci0gICAgaWYg
KGV4ZWN1dGFibGUpCi0gICAgICAgIGV4ZWN1dGFibGUtPnJlY29yZFBhcnNlKHJvb3ROb2RlLT5m
ZWF0dXJlcygpIHwgYXJyb3dDb250ZXh0RmVhdHVyZSwgcm9vdE5vZGUtPmhhc0NhcHR1cmVkVmFy
aWFibGVzKCksIHJvb3ROb2RlLT5sYXN0TGluZSgpLCBlbmRDb2x1bW4pOwotCi0gICAgYm9vbCB1
c2VzRXZhbCA9IHJvb3ROb2RlLT5mZWF0dXJlcygpICYgRXZhbEZlYXR1cmU7Ci0gICAgYm9vbCBp
c1N0cmljdE1vZGUgPSByb290Tm9kZS0+ZmVhdHVyZXMoKSAmIFN0cmljdE1vZGVGZWF0dXJlOwot
ICAgIE5lZWRzQ2xhc3NGaWVsZEluaXRpYWxpemVyIG5lZWRzQ2xhc3NGaWVsZEluaXRpYWxpemVy
ID0gTmVlZHNDbGFzc0ZpZWxkSW5pdGlhbGl6ZXI6Ok5vOwotICAgIGlmIGNvbnN0ZXhwciAoc3Rk
Ojppc19zYW1lX3Y8RXhlY3V0YWJsZVR5cGUsIERpcmVjdEV2YWxFeGVjdXRhYmxlPikKLSAgICAg
ICAgbmVlZHNDbGFzc0ZpZWxkSW5pdGlhbGl6ZXIgPSBleGVjdXRhYmxlLT5uZWVkc0NsYXNzRmll
bGRJbml0aWFsaXplcigpOwotICAgIEV4ZWN1dGFibGVJbmZvIGV4ZWN1dGFibGVJbmZvKHVzZXNF
dmFsLCBpc1N0cmljdE1vZGUsIGZhbHNlLCBmYWxzZSwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBz
Y3JpcHRNb2RlLCBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCwgQ2FjaGVUeXBlczxVbmxpbmtlZENv
ZGVCbG9ja1R5cGU+OjpwYXJzZU1vZGUsIGRlcml2ZWRDb250ZXh0VHlwZSwgbmVlZHNDbGFzc0Zp
ZWxkSW5pdGlhbGl6ZXIsIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIGZhbHNlLCBldmFsQ29udGV4
dFR5cGUpOwotCi0gICAgVW5saW5rZWRDb2RlQmxvY2tUeXBlKiB1bmxpbmtlZENvZGVCbG9jayA9
IFVubGlua2VkQ29kZUJsb2NrVHlwZTo6Y3JlYXRlKHZtLCBleGVjdXRhYmxlSW5mbywgY29kZUdl
bmVyYXRpb25Nb2RlKTsKLSAgICB1bmxpbmtlZENvZGVCbG9jay0+cmVjb3JkUGFyc2Uocm9vdE5v
ZGUtPmZlYXR1cmVzKCksIHJvb3ROb2RlLT5oYXNDYXB0dXJlZFZhcmlhYmxlcygpLCBsaW5lQ291
bnQsIHVubGlua2VkRW5kQ29sdW1uKTsKLSAgICBpZiAoIXNvdXJjZS5wcm92aWRlcigpLT5zb3Vy
Y2VVUkxEaXJlY3RpdmUoKS5pc051bGwoKSkKLSAgICAgICAgdW5saW5rZWRDb2RlQmxvY2stPnNl
dFNvdXJjZVVSTERpcmVjdGl2ZShzb3VyY2UucHJvdmlkZXIoKS0+c291cmNlVVJMRGlyZWN0aXZl
KCkpOwotICAgIGlmICghc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZU1hcHBpbmdVUkxEaXJlY3Rp
dmUoKS5pc051bGwoKSkKLSAgICAgICAgdW5saW5rZWRDb2RlQmxvY2stPnNldFNvdXJjZU1hcHBp
bmdVUkxEaXJlY3RpdmUoc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZU1hcHBpbmdVUkxEaXJlY3Rp
dmUoKSk7Ci0KLSAgICBlcnJvciA9IEJ5dGVjb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZSh2bSwgcm9v
dE5vZGUuZ2V0KCksIHNvdXJjZSwgdW5saW5rZWRDb2RlQmxvY2ssIGNvZGVHZW5lcmF0aW9uTW9k
ZSwgdmFyaWFibGVzVW5kZXJURFopOwotCi0gICAgaWYgKGVycm9yLmlzVmFsaWQoKSkKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICByZXR1cm4gdW5saW5rZWRDb2RlQmxvY2s7Ci19Ci0K
LXRlbXBsYXRlIDxjbGFzcyBVbmxpbmtlZENvZGVCbG9ja1R5cGUsIGNsYXNzIEV4ZWN1dGFibGVU
eXBlPgotVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBnZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrKFZN
JiB2bSwgRXhlY3V0YWJsZVR5cGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJj
ZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3Jp
cHRNb2RlLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUs
IFBhcnNlckVycm9yJiBlcnJvciwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSwgY29u
c3QgVmFyaWFibGVFbnZpcm9ubWVudCogdmFyaWFibGVzVW5kZXJURFopCi17Ci0gICAgcmV0dXJu
IGdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2tJbXBsPFVubGlua2VkQ29kZUJsb2NrVHlwZSwgRXhl
Y3V0YWJsZVR5cGU+KHZtLCBzb3VyY2UsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIGNvZGVHZW5l
cmF0aW9uTW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0VHlwZSwgZXhlY3V0YWJsZS0+ZGVyaXZlZENv
bnRleHRUeXBlKCksIGV4ZWN1dGFibGUtPmlzQXJyb3dGdW5jdGlvbkNvbnRleHQoKSwgdmFyaWFi
bGVzVW5kZXJURFosIGV4ZWN1dGFibGUpOwotfQotCi12b2lkIGdlbmVyYXRlVW5saW5rZWRDb2Rl
QmxvY2tGb3JGdW5jdGlvbnMoVk0mLCBVbmxpbmtlZENvZGVCbG9jayosIGNvbnN0IFNvdXJjZUNv
ZGUmLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiwgUGFyc2VyRXJyb3ImKTsKLQotdGVt
cGxhdGUgPGNsYXNzIFVubGlua2VkQ29kZUJsb2NrVHlwZT4KLXN0ZDo6ZW5hYmxlX2lmX3Q8IXN0
ZDo6aXNfc2FtZTxVbmxpbmtlZENvZGVCbG9ja1R5cGUsIFVubGlua2VkRXZhbENvZGVCbG9jaz46
OnZhbHVlLCBVbmxpbmtlZENvZGVCbG9ja1R5cGUqPgotcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlu
a2VkQ29kZUJsb2NrKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBKU1BhcnNlclN0
cmljdE1vZGUgc3RyaWN0TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUsIE9wdGlv
blNldDxDb2RlR2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSwgUGFyc2VyRXJyb3Im
IGVycm9yLCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlLCBjb25zdCBWYXJpYWJsZUVu
dmlyb25tZW50KiB2YXJpYWJsZXNVbmRlclREWikKLXsKLSAgICBib29sIGlzQXJyb3dGdW5jdGlv
bkNvbnRleHQgPSBmYWxzZTsKLSAgICBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIHVubGlua2VkQ29k
ZUJsb2NrID0gZ2VuZXJhdGVVbmxpbmtlZENvZGVCbG9ja0ltcGw8VW5saW5rZWRDb2RlQmxvY2tU
eXBlPih2bSwgc291cmNlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCBjb2RlR2VuZXJhdGlvbk1v
ZGUsIGVycm9yLCBldmFsQ29udGV4dFR5cGUsIERlcml2ZWRDb250ZXh0VHlwZTo6Tm9uZSwgaXNB
cnJvd0Z1bmN0aW9uQ29udGV4dCwgdmFyaWFibGVzVW5kZXJURFopOwotICAgIGlmICghdW5saW5r
ZWRDb2RlQmxvY2spCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgZ2VuZXJhdGVVbmxp
bmtlZENvZGVCbG9ja0ZvckZ1bmN0aW9ucyh2bSwgdW5saW5rZWRDb2RlQmxvY2ssIHNvdXJjZSwg
Y29kZUdlbmVyYXRpb25Nb2RlLCBlcnJvcik7Ci0gICAgcmV0dXJuIHVubGlua2VkQ29kZUJsb2Nr
OwotfQorVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBnZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrRm9y
RGlyZWN0RXZhbChWTSYsIERpcmVjdEV2YWxFeGVjdXRhYmxlKiwgY29uc3QgU291cmNlQ29kZSYs
IEpTUGFyc2VyU3RyaWN0TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2RlLCBPcHRpb25TZXQ8Q29kZUdl
bmVyYXRpb25Nb2RlPiwgUGFyc2VyRXJyb3ImLCBFdmFsQ29udGV4dFR5cGUsIGNvbnN0IFZhcmlh
YmxlRW52aXJvbm1lbnQqIHZhcmlhYmxlc1VuZGVyVERaKTsKK1VubGlua2VkUHJvZ3JhbUNvZGVC
bG9jayogcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrRm9yUHJvZ3JhbShWTSYs
IGNvbnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlclN0cmljdE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9k
ZSwgT3B0aW9uU2V0PENvZGVHZW5lcmF0aW9uTW9kZT4sIFBhcnNlckVycm9yJiwgRXZhbENvbnRl
eHRUeXBlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiB2YXJpYWJsZXNVbmRlclREWik7CitV
bmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIHJlY3Vyc2l2ZWx5R2VuZXJhdGVVbmxpbmtl
ZENvZGVCbG9ja0Zvck1vZHVsZVByb2dyYW0oVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJz
ZXJTdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGUsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlv
bk1vZGU+LCBQYXJzZXJFcnJvciYsIEV2YWxDb250ZXh0VHlwZSwgY29uc3QgVmFyaWFibGVFbnZp
cm9ubWVudCogdmFyaWFibGVzVW5kZXJURFopOwogCiB2b2lkIHdyaXRlQ29kZUJsb2NrKFZNJiwg
Y29uc3QgU291cmNlQ29kZUtleSYsIGNvbnN0IFNvdXJjZUNvZGVWYWx1ZSYpOwogUmVmUHRyPENh
Y2hlZEJ5dGVjb2RlPiBzZXJpYWxpemVCeXRlY29kZShWTSYsIFVubGlua2VkQ29kZUJsb2NrKiwg
Y29uc3QgU291cmNlQ29kZSYsIFNvdXJjZUNvZGVUeXBlLCBKU1BhcnNlclN0cmljdE1vZGUsIEpT
UGFyc2VyU2NyaXB0TW9kZSwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZkLCBCeXRl
Y29kZUNhY2hlRXJyb3ImLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCmluZGV4IGE3YmRmNTIxYzQ3
Li4yMTE3Y2M5ZTk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tcGxldGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxl
dGlvbi5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBSZWZQdHI8Q2FjaGVkQnl0ZWNvZGU+IGdlbmVy
YXRlUHJvZ3JhbUJ5dGVjb2RlKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLAogICAg
IEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUgPSBFdmFsQ29udGV4dFR5cGU6Ok5vbmU7
CiAKICAgICBQYXJzZXJFcnJvciBwYXJzZXJFcnJvcjsKLSAgICBVbmxpbmtlZENvZGVCbG9jayog
dW5saW5rZWRDb2RlQmxvY2sgPSByZWN1cnNpdmVseUdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2s8
VW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrPih2bSwgc291cmNlLCBzdHJpY3RNb2RlLCBzY3JpcHRN
b2RlLCB7IH0sIHBhcnNlckVycm9yLCBldmFsQ29udGV4dFR5cGUsICZ2YXJpYWJsZXNVbmRlclRE
Wik7CisgICAgVW5saW5rZWRDb2RlQmxvY2sqIHVubGlua2VkQ29kZUJsb2NrID0gcmVjdXJzaXZl
bHlHZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrRm9yUHJvZ3JhbSh2bSwgc291cmNlLCBzdHJpY3RN
b2RlLCBzY3JpcHRNb2RlLCB7IH0sIHBhcnNlckVycm9yLCBldmFsQ29udGV4dFR5cGUsICZ2YXJp
YWJsZXNVbmRlclREWik7CiAgICAgaWYgKHBhcnNlckVycm9yLmlzVmFsaWQoKSkKICAgICAgICAg
ZXJyb3IgPSBwYXJzZXJFcnJvcjsKICAgICBpZiAoIXVubGlua2VkQ29kZUJsb2NrKQpAQCAtMTIy
LDcgKzEyMiw3IEBAIFJlZlB0cjxDYWNoZWRCeXRlY29kZT4gZ2VuZXJhdGVNb2R1bGVCeXRlY29k
ZShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwKICAgICBFdmFsQ29udGV4dFR5cGUg
ZXZhbENvbnRleHRUeXBlID0gRXZhbENvbnRleHRUeXBlOjpOb25lOwogCiAgICAgUGFyc2VyRXJy
b3IgcGFyc2VyRXJyb3I7Ci0gICAgVW5saW5rZWRDb2RlQmxvY2sqIHVubGlua2VkQ29kZUJsb2Nr
ID0gcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrPFVubGlua2VkTW9kdWxlUHJv
Z3JhbUNvZGVCbG9jaz4odm0sIHNvdXJjZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgeyB9LCBw
YXJzZXJFcnJvciwgZXZhbENvbnRleHRUeXBlLCAmdmFyaWFibGVzVW5kZXJURFopOworICAgIFVu
bGlua2VkQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IHJlY3Vyc2l2ZWx5R2VuZXJhdGVV
bmxpbmtlZENvZGVCbG9ja0Zvck1vZHVsZVByb2dyYW0odm0sIHNvdXJjZSwgc3RyaWN0TW9kZSwg
c2NyaXB0TW9kZSwgeyB9LCBwYXJzZXJFcnJvciwgZXZhbENvbnRleHRUeXBlLCAmdmFyaWFibGVz
VW5kZXJURFopOwogICAgIGlmIChwYXJzZXJFcnJvci5pc1ZhbGlkKCkpCiAgICAgICAgIGVycm9y
ID0gcGFyc2VyRXJyb3I7CiAgICAgaWYgKCF1bmxpbmtlZENvZGVCbG9jaykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RpcmVjdEV2YWxFeGVjdXRhYmxlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RpcmVjdEV2YWxFeGVjdXRhYmxlLmNwcApp
bmRleCA5ZWU4YzkxZWQwNy4uZWFiMzg3MjJmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RpcmVjdEV2YWxFeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EaXJlY3RFdmFsRXhlY3V0YWJsZS5jcHAKQEAgLTUzLDggKzUz
LDcgQEAgRGlyZWN0RXZhbEV4ZWN1dGFibGUqIERpcmVjdEV2YWxFeGVjdXRhYmxlOjpjcmVhdGUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBPcHRpb25TZXQ8Q29kZUdlbmVyYXRp
b25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUgPSBnbG9iYWxPYmplY3QtPmRlZmF1bHRDb2RlR2Vu
ZXJhdGlvbk1vZGUoKTsKIAogICAgIC8vIFdlIGRvbid0IGJvdGhlciB3aXRoIENvZGVDYWNoZSBo
ZXJlIGJlY2F1c2UgZGlyZWN0IGV2YWwgdXNlcyBhIHNwZWNpYWxpemVkIERpcmVjdEV2YWxDb2Rl
Q2FjaGUuCi0gICAgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiB1bmxpbmtlZEV2YWxDb2RlID0gZ2Vu
ZXJhdGVVbmxpbmtlZENvZGVCbG9jazxVbmxpbmtlZEV2YWxDb2RlQmxvY2s+KAotICAgICAgICB2
bSwgZXhlY3V0YWJsZSwgZXhlY3V0YWJsZS0+c291cmNlKCksIHN0cmljdE1vZGUsIEpTUGFyc2Vy
U2NyaXB0TW9kZTo6Q2xhc3NpYywgY29kZUdlbmVyYXRpb25Nb2RlLCBlcnJvciwgZXZhbENvbnRl
eHRUeXBlLCB2YXJpYWJsZXNVbmRlclREWik7CisgICAgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiB1
bmxpbmtlZEV2YWxDb2RlID0gZ2VuZXJhdGVVbmxpbmtlZENvZGVCbG9ja0ZvckRpcmVjdEV2YWwo
dm0sIGV4ZWN1dGFibGUsIGV4ZWN1dGFibGUtPnNvdXJjZSgpLCBzdHJpY3RNb2RlLCBKU1BhcnNl
clNjcmlwdE1vZGU6OkNsYXNzaWMsIGNvZGVHZW5lcmF0aW9uTW9kZSwgZXJyb3IsIGV2YWxDb250
ZXh0VHlwZSwgdmFyaWFibGVzVW5kZXJURFopOwogCiAgICAgaWYgKGdsb2JhbE9iamVjdC0+aGFz
RGVidWdnZXIoKSkKICAgICAgICAgZ2xvYmFsT2JqZWN0LT5kZWJ1Z2dlcigpLT5zb3VyY2VQYXJz
ZWQoZ2xvYmFsT2JqZWN0LCBleGVjdXRhYmxlLT5zb3VyY2UoKS5wcm92aWRlcigpLCBlcnJvci5s
aW5lKCksIGVycm9yLm1lc3NhZ2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggZTVmYjg4ZTY1MjYuLmIzYzk4MGE0NjYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3Bw
CkBAIC04MSw2ICs4MSw3IEBACiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5oIgog
I2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTQXN5bmNGdW5jdGlvbi5o
IgorI2luY2x1ZGUgIkpTQXN5bmNHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKU0FzeW5jR2VuZXJh
dG9yRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0JpZ0ludC5oIgogI2luY2x1ZGUgIkpTQm91bmRG
dW5jdGlvbi5oIgpAQCAtOTMsNiArOTQsNyBAQAogI2luY2x1ZGUgIkpTRGF0YVZpZXdQcm90b3R5
cGUuaCIKICNpbmNsdWRlICJKU0RvbGxhclZNLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgor
I2luY2x1ZGUgIkpTR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNHZW5lcmF0b3JGdW5jdGlvbi5o
IgogI2luY2x1ZGUgIkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggNGU4Y2U1MzI5ZjYuLjdmN2U1ZTkzMjBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC04OSw2ICs4OSw3IEBACiAjaW5jbHVk
ZSAiSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiSlNBc3luY0Z1bmN0aW9uLmgiCisjaW5jbHVkZSAiSlNBc3luY0dlbmVy
YXRvci5oIgogI2luY2x1ZGUgIkpTQmlnSW50LmgiCiAjaW5jbHVkZSAiSlNCb3VuZEZ1bmN0aW9u
LmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>