<?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>118867</bug_id>
          
          <creation_ts>2013-07-18 15:16:14 -0700</creation_ts>
          <short_desc>fourthTier: DFG shouldn&apos;t create CheckStructures for array accesses except if the ArrayMode implies an original array access</short_desc>
          <delta_ts>2013-07-18 16:31:21 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>118866</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>909890</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-07-18 15:16:14 -0700</bug_when>
    <thetext>This allows us to kill off a bunch of code in the parser, in fixup, and to simplify ArrayProfile.

It also makes it easier to ask any array-using node how to create its type check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909892</commentid>
    <comment_count>1</comment_count>
      <attachid>207028</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-07-18 15:17:46 -0700</bug_when>
    <thetext>Created attachment 207028
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909893</commentid>
    <comment_count>2</comment_count>
      <attachid>207028</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-07-18 15:23:08 -0700</bug_when>
    <thetext>Comment on attachment 207028
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909910</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-07-18 16:31:21 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/152872</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207028</attachid>
            <date>2013-07-18 15:17:46 -0700</date>
            <delta_ts>2013-07-18 15:23:08 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>17851</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUyODY5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDEzLTA3LTE4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Zm91cnRoVGllcjogREZHIHNob3VsZG4ndCBjcmVhdGUgQ2hlY2tTdHJ1Y3R1cmVzIGZvciBhcnJh
eSBhY2Nlc3NlcyBleGNlcHQgaWYgdGhlIEFycmF5TW9kZSBpbXBsaWVzIGFuIG9yaWdpbmFsIGFy
cmF5IGFjY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE4ODY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAg
IAorICAgICAgICBUaGlzIGFsbG93cyB1cyB0byBraWxsIG9mZiBhIGJ1bmNoIG9mIGNvZGUgaW4g
dGhlIHBhcnNlciwgaW4gZml4dXAsIGFuZCB0byBzaW1wbGlmeQorICAgICAgICBBcnJheVByb2Zp
bGUuCisKKyAgICAgICAgSXQgYWxzbyBtYWtlcyBpdCBlYXNpZXIgdG8gYXNrIGFueSBhcnJheS11
c2luZyBub2RlIGhvdyB0byBjcmVhdGUgaXRzIHR5cGUgY2hlY2suCisgICAgICAgIAorICAgICAg
ICBEb2luZyB0aGlzIHJlcXVpcmVkIGZpeGluZyBhIGJ1ZyBpbiBMb3dMZXZlbEludGVycHJldGVy
NjQsIHdoZXJlIGl0IHdhcyBzdG9yaW5nIGludG8KKyAgICAgICAgYW4gYXJyYXkgcHJvZmlsZSwg
dGhpbmtpbmcgdGhhdCBpdCB3YXMgc3RvcmluZyBpbnRvIGEgdmFsdWUgcHJvZmlsZS4gUmVzaHVm
ZmxpbmcgdGhlCisgICAgICAgIGZpZWxkcyBpbiBBcnJheVByb2ZpbGUgcmV2ZWFsZWQgdGhpcy4K
KworICAgICAgICAqIGJ5dGVjb2RlL0FycmF5UHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6OkFy
cmF5UHJvZmlsZTo6Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKToKKyAgICAgICAgKEpTQzo6QXJy
YXlQcm9maWxlOjpicmllZkRlc2NyaXB0aW9uV2l0aG91dFVwZGF0aW5nKToKKyAgICAgICAgKiBi
eXRlY29kZS9BcnJheVByb2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6QXJyYXlQcm9maWxlOjpBcnJh
eVByb2ZpbGUpOgorICAgICAgICAoQXJyYXlQcm9maWxlKToKKyAgICAgICAgKiBieXRlY29kZS9D
b2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnVwZGF0ZUFsbEFycmF5UHJl
ZGljdGlvbnMpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnVwZGF0ZUFsbFByZWRpY3Rpb25z
KToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKENvZGVCbG9jayk6
CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6dXBkYXRlQWxsQXJyYXlQcmVkaWN0aW9ucyk6Cisg
ICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5oOgorICAgICAgICAoQXJyYXlNb2RlKToKKyAgICAg
ICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVD
b2RlUGFyc2VyOjpnZXRBcnJheU1vZGVDb25zaWRlcmluZ1Nsb3dQYXRoKToKKyAgICAgICAgKEpT
Qzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6
CisgICAgICAgIChGaXh1cFBoYXNlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpj
aGVja0FycmF5KToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpibGVzc0FycmF5T3Bl
cmF0aW9uKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorCiAy
MDEzLTA3LTE4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgZm91
cnRoVGllcjogQ0ZBIHNob3VsZCBjb25zaWRlciBsaXZlLWF0LWhlYWQgZm9yIGNsb2JiZXJpbmcg
YW5kIGR1bXBpbmcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVBy
b2ZpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9B
cnJheVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxNTI4NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQXJyYXlQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQsMzggKzc0
LDI0IEBAIHZvaWQgZHVtcEFycmF5TW9kZXMoUHJpbnRTdHJlYW0mIG91dCwgQXIKICAgICAgICAg
b3V0LnByaW50KCJBcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdlIik7CiB9CiAKLXZvaWQgQXJy
YXlQcm9maWxlOjpjb21wdXRlVXBkYXRlZFByZWRpY3Rpb24oY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYgbG9ja2VyLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgT3BlcmF0aW9uSW5Qcm9ncmVzcyBv
cGVyYXRpb24pCit2b2lkIEFycmF5UHJvZmlsZTo6Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGNv
bnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKLSAgICBp
ZiAobV9sYXN0U2VlblN0cnVjdHVyZSkgewotICAgICAgICBtX29ic2VydmVkQXJyYXlNb2RlcyB8
PSBhcnJheU1vZGVGcm9tU3RydWN0dXJlKG1fbGFzdFNlZW5TdHJ1Y3R1cmUpOwotCi0gICAgICAg
IGlmICghbV9kaWRQZXJmb3JtRmlyc3RSdW5QcnVuaW5nCi0gICAgICAgICAgICAmJiBoYXNUd29P
ck1vcmVCaXRzU2V0KG1fb2JzZXJ2ZWRBcnJheU1vZGVzKSkgewotICAgICAgICAgICAgbV9vYnNl
cnZlZEFycmF5TW9kZXMgPSBhcnJheU1vZGVGcm9tU3RydWN0dXJlKG1fbGFzdFNlZW5TdHJ1Y3R1
cmUpOwotICAgICAgICAgICAgbV9leHBlY3RlZFN0cnVjdHVyZSA9IDA7Ci0gICAgICAgICAgICBt
X2RpZFBlcmZvcm1GaXJzdFJ1blBydW5pbmcgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIAot
ICAgICAgICBtX21heUludGVyY2VwdEluZGV4ZWRBY2Nlc3NlcyB8PQotICAgICAgICAgICAgbV9s
YXN0U2VlblN0cnVjdHVyZS0+dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90
QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvKCk7Ci0gICAgICAgIGlmICghY29kZUJsb2Nr
LT5nbG9iYWxPYmplY3QoKS0+aXNPcmlnaW5hbEFycmF5U3RydWN0dXJlKG1fbGFzdFNlZW5TdHJ1
Y3R1cmUpKQotICAgICAgICAgICAgbV91c2VzT3JpZ2luYWxBcnJheVN0cnVjdHVyZXMgPSBmYWxz
ZTsKLSAgICAgICAgaWYgKCFzdHJ1Y3R1cmVJc1BvbHltb3JwaGljKGxvY2tlcikpIHsKLSAgICAg
ICAgICAgIGlmICghbV9leHBlY3RlZFN0cnVjdHVyZSkKLSAgICAgICAgICAgICAgICBtX2V4cGVj
dGVkU3RydWN0dXJlID0gbV9sYXN0U2VlblN0cnVjdHVyZTsKLSAgICAgICAgICAgIGVsc2UgaWYg
KG1fZXhwZWN0ZWRTdHJ1Y3R1cmUgIT0gbV9sYXN0U2VlblN0cnVjdHVyZSkKLSAgICAgICAgICAg
ICAgICBtX2V4cGVjdGVkU3RydWN0dXJlID0gcG9seW1vcnBoaWNTdHJ1Y3R1cmUoKTsKLSAgICAg
ICAgfQotICAgICAgICBtX2xhc3RTZWVuU3RydWN0dXJlID0gMDsKLSAgICB9Ci0gICAgCi0gICAg
aWYgKGhhc1R3b09yTW9yZUJpdHNTZXQobV9vYnNlcnZlZEFycmF5TW9kZXMpKQotICAgICAgICBt
X2V4cGVjdGVkU3RydWN0dXJlID0gcG9seW1vcnBoaWNTdHJ1Y3R1cmUoKTsKLSAgICAKLSAgICBp
ZiAob3BlcmF0aW9uID09IENvbGxlY3Rpb24KLSAgICAgICAgJiYgZXhwZWN0ZWRTdHJ1Y3R1cmUo
bG9ja2VyKQotICAgICAgICAmJiAhSGVhcDo6aXNNYXJrZWQobV9leHBlY3RlZFN0cnVjdHVyZSkp
Ci0gICAgICAgIG1fZXhwZWN0ZWRTdHJ1Y3R1cmUgPSBwb2x5bW9ycGhpY1N0cnVjdHVyZSgpOwor
ICAgIGlmICghbV9sYXN0U2VlblN0cnVjdHVyZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAg
IG1fb2JzZXJ2ZWRBcnJheU1vZGVzIHw9IGFycmF5TW9kZUZyb21TdHJ1Y3R1cmUobV9sYXN0U2Vl
blN0cnVjdHVyZSk7CisgICAgCisgICAgaWYgKCFtX2RpZFBlcmZvcm1GaXJzdFJ1blBydW5pbmcK
KyAgICAgICAgJiYgaGFzVHdvT3JNb3JlQml0c1NldChtX29ic2VydmVkQXJyYXlNb2RlcykpIHsK
KyAgICAgICAgbV9vYnNlcnZlZEFycmF5TW9kZXMgPSBhcnJheU1vZGVGcm9tU3RydWN0dXJlKG1f
bGFzdFNlZW5TdHJ1Y3R1cmUpOworICAgICAgICBtX2RpZFBlcmZvcm1GaXJzdFJ1blBydW5pbmcg
PSB0cnVlOworICAgIH0KKyAgICAKKyAgICBtX21heUludGVyY2VwdEluZGV4ZWRBY2Nlc3NlcyB8
PQorICAgICAgICBtX2xhc3RTZWVuU3RydWN0dXJlLT50eXBlSW5mbygpLmludGVyY2VwdHNHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8oKTsKKyAgICBpZiAo
IWNvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmlzT3JpZ2luYWxBcnJheVN0cnVjdHVyZShtX2xh
c3RTZWVuU3RydWN0dXJlKSkKKyAgICAgICAgbV91c2VzT3JpZ2luYWxBcnJheVN0cnVjdHVyZXMg
PSBmYWxzZTsKKyAgICBtX2xhc3RTZWVuU3RydWN0dXJlID0gMDsKIH0KIAogQ1N0cmluZyBBcnJh
eVByb2ZpbGU6OmJyaWVmRGVzY3JpcHRpb24oY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9j
a2VyLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKQEAgLTExNCw3ICsxMDAsNyBAQCBDU3RyaW5nIEFy
cmF5UHJvZmlsZTo6YnJpZWZEZXNjcmlwdGlvbihjCiAgICAgcmV0dXJuIGJyaWVmRGVzY3JpcHRp
b25XaXRob3V0VXBkYXRpbmcobG9ja2VyKTsKIH0KIAotQ1N0cmluZyBBcnJheVByb2ZpbGU6OmJy
aWVmRGVzY3JpcHRpb25XaXRob3V0VXBkYXRpbmcoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYg
bG9ja2VyKQorQ1N0cmluZyBBcnJheVByb2ZpbGU6OmJyaWVmRGVzY3JpcHRpb25XaXRob3V0VXBk
YXRpbmcoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYpCiB7CiAgICAgU3RyaW5nUHJpbnRTdHJl
YW0gb3V0OwogICAgIApAQCAtMTI3LDE4ICsxMTMsNiBAQCBDU3RyaW5nIEFycmF5UHJvZmlsZTo6
YnJpZWZEZXNjcmlwdGlvbldpCiAgICAgICAgIGhhc1ByaW50ZWQgPSB0cnVlOwogICAgIH0KICAg
ICAKLSAgICBpZiAoc3RydWN0dXJlSXNQb2x5bW9ycGhpYyhsb2NrZXIpKSB7Ci0gICAgICAgIGlm
IChoYXNQcmludGVkKQotICAgICAgICAgICAgb3V0LnByaW50KCIsICIpOwotICAgICAgICBvdXQu
cHJpbnQoInN0cnVjdCA9IFRPUCIpOwotICAgICAgICBoYXNQcmludGVkID0gdHJ1ZTsKLSAgICB9
IGVsc2UgaWYgKG1fZXhwZWN0ZWRTdHJ1Y3R1cmUpIHsKLSAgICAgICAgaWYgKGhhc1ByaW50ZWQp
Ci0gICAgICAgICAgICBvdXQucHJpbnQoIiwgIik7Ci0gICAgICAgIG91dC5wcmludCgic3RydWN0
ID0gIiwgUmF3UG9pbnRlcihtX2V4cGVjdGVkU3RydWN0dXJlKSk7Ci0gICAgICAgIGhhc1ByaW50
ZWQgPSB0cnVlOwotICAgIH0KLSAgICAKICAgICBpZiAobV9tYXlTdG9yZVRvSG9sZSkgewogICAg
ICAgICBpZiAoaGFzUHJpbnRlZCkKICAgICAgICAgICAgIG91dC5wcmludCgiLCAiKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2ZpbGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlQcm9maWxlLmgJKHJldmlz
aW9uIDE1Mjg1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2Zp
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDcgKzEyNiw2IEBAIHB1YmxpYzoKICAgICBBcnJh
eVByb2ZpbGUoKQogICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXQoc3RkOjpudW1lcmljX2xpbWl0
czx1bnNpZ25lZD46Om1heCgpKQogICAgICAgICAsIG1fbGFzdFNlZW5TdHJ1Y3R1cmUoMCkKLSAg
ICAgICAgLCBtX2V4cGVjdGVkU3RydWN0dXJlKDApCiAgICAgICAgICwgbV9tYXlTdG9yZVRvSG9s
ZShmYWxzZSkKICAgICAgICAgLCBtX291dE9mQm91bmRzKGZhbHNlKQogICAgICAgICAsIG1fbWF5
SW50ZXJjZXB0SW5kZXhlZEFjY2Vzc2VzKGZhbHNlKQpAQCAtMTM5LDcgKzEzOCw2IEBAIHB1Ymxp
YzoKICAgICBBcnJheVByb2ZpbGUodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQpCiAgICAgICAgIDog
bV9ieXRlY29kZU9mZnNldChieXRlY29kZU9mZnNldCkKICAgICAgICAgLCBtX2xhc3RTZWVuU3Ry
dWN0dXJlKDApCi0gICAgICAgICwgbV9leHBlY3RlZFN0cnVjdHVyZSgwKQogICAgICAgICAsIG1f
bWF5U3RvcmVUb0hvbGUoZmFsc2UpCiAgICAgICAgICwgbV9vdXRPZkJvdW5kcyhmYWxzZSkKICAg
ICAgICAgLCBtX21heUludGVyY2VwdEluZGV4ZWRBY2Nlc3NlcyhmYWxzZSkKQEAgLTE2MSwyMiAr
MTU5LDggQEAgcHVibGljOgogICAgICAgICBtX2xhc3RTZWVuU3RydWN0dXJlID0gc3RydWN0dXJl
OwogICAgIH0KICAgICAKLSAgICB2b2lkIGNvbXB1dGVVcGRhdGVkUHJlZGljdGlvbihjb25zdCBD
b25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgT3BlcmF0aW9uSW5Qcm9ncmVzcyA9IE5v
T3BlcmF0aW9uKTsKKyAgICB2b2lkIGNvbXB1dGVVcGRhdGVkUHJlZGljdGlvbihjb25zdCBDb25j
dXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKik7CiAgICAgCi0gICAgU3RydWN0dXJlKiBleHBl
Y3RlZFN0cnVjdHVyZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIpIGNvbnN0Ci0g
ICAgewotICAgICAgICBpZiAoc3RydWN0dXJlSXNQb2x5bW9ycGhpYyhsb2NrZXIpKQotICAgICAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHJldHVybiBtX2V4cGVjdGVkU3RydWN0dXJlOwotICAg
IH0KLSAgICBib29sIHN0cnVjdHVyZUlzUG9seW1vcnBoaWMoY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9leHBlY3RlZFN0cnVjdHVyZSA9
PSBwb2x5bW9ycGhpY1N0cnVjdHVyZSgpOwotICAgIH0KLSAgICBib29sIGhhc0RlZmluaXRlU3Ry
dWN0dXJlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlcikgY29uc3QKLSAgICB7Ci0g
ICAgICAgIHJldHVybiAhc3RydWN0dXJlSXNQb2x5bW9ycGhpYyhsb2NrZXIpICYmIG1fZXhwZWN0
ZWRTdHJ1Y3R1cmU7Ci0gICAgfQogICAgIEFycmF5TW9kZXMgb2JzZXJ2ZWRBcnJheU1vZGVzKGNv
bnN0IENvbmN1cnJlbnRKSVRMb2NrZXImKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVkQXJyYXlN
b2RlczsgfQogICAgIGJvb2wgbWF5SW50ZXJjZXB0SW5kZXhlZEFjY2Vzc2VzKGNvbnN0IENvbmN1
cnJlbnRKSVRMb2NrZXImKSBjb25zdCB7IHJldHVybiBtX21heUludGVyY2VwdEluZGV4ZWRBY2Nl
c3NlczsgfQogICAgIApAQCAtMTk1LDcgKzE3OSw2IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdW5z
aWduZWQgbV9ieXRlY29kZU9mZnNldDsKICAgICBTdHJ1Y3R1cmUqIG1fbGFzdFNlZW5TdHJ1Y3R1
cmU7Ci0gICAgU3RydWN0dXJlKiBtX2V4cGVjdGVkU3RydWN0dXJlOwogICAgIGJvb2wgbV9tYXlT
dG9yZVRvSG9sZTsgLy8gVGhpcyBmbGFnIG1heSBiZWNvbWUgb3ZlcmxvYWRlZCB0byBpbmRpY2F0
ZSBvdGhlciBzcGVjaWFsIGNhc2VzIHRoYXQgd2VyZSBlbmNvdW50ZXJlZCBkdXJpbmcgYXJyYXkg
YWNjZXNzLCBhcyBpdCBkZXBlbmRzIG9uIGluZGV4aW5nIHR5cGUuIFNpbmNlIHdlIGN1cnJlbnRs
eSBoYXZlIGJhc2ljYWxseSBqdXN0IG9uZSBpbmRleGluZyB0eXBlICh0d28gdmFyaWFudHMgb2Yg
QXJyYXlTdG9yYWdlKSwgdGhpcyBmbGFnIGZvciBub3cganVzdCBtZWFucyBleGFjdGx5IHdoYXQg
aXRzIG5hbWUgaW1wbGllcy4KICAgICBib29sIG1fb3V0T2ZCb3VuZHM7CiAgICAgYm9vbCBtX21h
eUludGVyY2VwdEluZGV4ZWRBY2Nlc3NlcyA6IDE7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTUyODU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMxOTcsMTIgKzMxOTcsMTIgQEAgdm9pZCBDb2RlQmxvY2s6OnVwZGF0ZUFsbFZhbHVlUHJvZmls
ZVByZQogICAgIHVwZGF0ZUFsbFByZWRpY3Rpb25zQW5kQ291bnRMaXZlbmVzcyhvcGVyYXRpb24s
IGlnbm9yZWRWYWx1ZTEsIGlnbm9yZWRWYWx1ZTIpOwogfQogCi12b2lkIENvZGVCbG9jazo6dXBk
YXRlQWxsQXJyYXlQcmVkaWN0aW9ucyhPcGVyYXRpb25JblByb2dyZXNzIG9wZXJhdGlvbikKK3Zv
aWQgQ29kZUJsb2NrOjp1cGRhdGVBbGxBcnJheVByZWRpY3Rpb25zKCkKIHsKICAgICBDb25jdXJy
ZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgIAogICAgIGZvciAodW5zaWduZWQgaSA9
IG1fYXJyYXlQcm9maWxlcy5zaXplKCk7IGktLTspCi0gICAgICAgIG1fYXJyYXlQcm9maWxlc1tp
XS5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyLCB0aGlzLCBvcGVyYXRpb24pOworICAg
ICAgICBtX2FycmF5UHJvZmlsZXNbaV0uY29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwg
dGhpcyk7CiAgICAgCiAgICAgLy8gRG9uJ3QgY291bnQgdGhlc2UgZWl0aGVyLCBmb3Igc2ltaWxh
ciByZWFzb25zLgogICAgIGZvciAodW5zaWduZWQgaSA9IG1fYXJyYXlBbGxvY2F0aW9uUHJvZmls
ZXMuc2l6ZSgpOyBpLS07KQpAQCAtMzIxMiw3ICszMjEyLDcgQEAgdm9pZCBDb2RlQmxvY2s6OnVw
ZGF0ZUFsbEFycmF5UHJlZGljdGlvbgogdm9pZCBDb2RlQmxvY2s6OnVwZGF0ZUFsbFByZWRpY3Rp
b25zKE9wZXJhdGlvbkluUHJvZ3Jlc3Mgb3BlcmF0aW9uKQogewogICAgIHVwZGF0ZUFsbFZhbHVl
UHJvZmlsZVByZWRpY3Rpb25zKG9wZXJhdGlvbik7Ci0gICAgdXBkYXRlQWxsQXJyYXlQcmVkaWN0
aW9ucyhvcGVyYXRpb24pOworICAgIHVwZGF0ZUFsbEFycmF5UHJlZGljdGlvbnMoKTsKIH0KIAog
Ym9vbCBDb2RlQmxvY2s6OnNob3VsZE9wdGltaXplTm93KCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDE1Mjg1OCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAt
ODc5LDEyICs4NzksMTIgQEAgcHVibGljOgogI2lmIEVOQUJMRShWQUxVRV9QUk9GSUxFUikKICAg
ICBib29sIHNob3VsZE9wdGltaXplTm93KCk7CiAgICAgdm9pZCB1cGRhdGVBbGxWYWx1ZVByb2Zp
bGVQcmVkaWN0aW9ucyhPcGVyYXRpb25JblByb2dyZXNzID0gTm9PcGVyYXRpb24pOwotICAgIHZv
aWQgdXBkYXRlQWxsQXJyYXlQcmVkaWN0aW9ucyhPcGVyYXRpb25JblByb2dyZXNzID0gTm9PcGVy
YXRpb24pOworICAgIHZvaWQgdXBkYXRlQWxsQXJyYXlQcmVkaWN0aW9ucygpOwogICAgIHZvaWQg
dXBkYXRlQWxsUHJlZGljdGlvbnMoT3BlcmF0aW9uSW5Qcm9ncmVzcyA9IE5vT3BlcmF0aW9uKTsK
ICNlbHNlCiAgICAgYm9vbCB1cGRhdGVBbGxQcmVkaWN0aW9uc0FuZENoZWNrSWZTaG91bGRPcHRp
bWl6ZU5vdygpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdm9pZCB1cGRhdGVBbGxWYWx1ZVByb2Zp
bGVQcmVkaWN0aW9ucyhPcGVyYXRpb25JblByb2dyZXNzID0gTm9PcGVyYXRpb24pIHsgfQotICAg
IHZvaWQgdXBkYXRlQWxsQXJyYXlQcmVkaWN0aW9ucyhPcGVyYXRpb25JblByb2dyZXNzID0gTm9P
cGVyYXRpb24pIHsgfQorICAgIHZvaWQgdXBkYXRlQWxsQXJyYXlQcmVkaWN0aW9ucygpIHsgfQog
ICAgIHZvaWQgdXBkYXRlQWxsUHJlZGljdGlvbnMoT3BlcmF0aW9uSW5Qcm9ncmVzcyA9IE5vT3Bl
cmF0aW9uKSB7IH0KICNlbmRpZgogICAgICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQXJyYXlNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcnJheU1vZGUuaAkocmV2aXNpb24gMTUyODU4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzQ1LDE5ICszNDUs
NiBAQCBwdWJsaWM6CiAgICAgU3RydWN0dXJlKiBvcmlnaW5hbEFycmF5U3RydWN0dXJlKEdyYXBo
JiwgY29uc3QgQ29kZU9yaWdpbiYpIGNvbnN0OwogICAgIFN0cnVjdHVyZSogb3JpZ2luYWxBcnJh
eVN0cnVjdHVyZShHcmFwaCYsIE5vZGUqKSBjb25zdDsKICAgICAKLSAgICBib29sIGJlbmVmaXRz
RnJvbVN0cnVjdHVyZUNoZWNrKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHN3aXRjaCAodHlwZSgp
KSB7Ci0gICAgICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6Ci0gICAgICAg
IGNhc2UgQXJyYXk6OlVucHJvZmlsZWQ6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkZvcmNlRXhpdDoK
LSAgICAgICAgY2FzZSBBcnJheTo6R2VuZXJpYzoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBjb252ZXJzaW9uKCkgPT0gQXJy
YXk6OkFzSXM7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCiAgICAgYm9vbCBkb2VzQ29udmVyc2lv
bigpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gY29udmVyc2lvbigpICE9IEFycmF5OjpB
c0lzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAJKHJldmlzaW9uIDE1Mjg1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MTgsNyArODE4LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgcmV0dXJuIGdldEFycmF5TW9kZShwcm9maWxlLCBBcnJheTo6UmVh
ZCk7CiAgICAgfQogICAgIAotICAgIEFycmF5TW9kZSBnZXRBcnJheU1vZGVBbmRFbWl0Q2hlY2tz
KEFycmF5UHJvZmlsZSogcHJvZmlsZSwgQXJyYXk6OkFjdGlvbiBhY3Rpb24sIE5vZGUqIGJhc2Up
CisgICAgQXJyYXlNb2RlIGdldEFycmF5TW9kZUNvbnNpZGVyaW5nU2xvd1BhdGgoQXJyYXlQcm9m
aWxlKiBwcm9maWxlLCBBcnJheTo6QWN0aW9uIGFjdGlvbikKICAgICB7CiAgICAgICAgIENvbmN1
cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+
bV9sb2NrKTsKICAgICAgICAgCkBAIC04MjcsNyArODI3LDcgQEAgcHJpdmF0ZToKICNpZiBERkdf
RU5BQkxFKERFQlVHX1BST1BBR0FUSU9OX1ZFUkJPU0UpCiAgICAgICAgIGlmIChtX2lubGluZVN0
YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPm51bWJlck9mUmFyZUNhc2VQcm9maWxlcygpKQogICAg
ICAgICAgICAgZGF0YUxvZ0YoIlNsb3cgY2FzZSBwcm9maWxlIGZvciBiYyMldTogJXVcbiIsIG1f
Y3VycmVudEluZGV4LCBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPnJhcmVDYXNl
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG1fY3VycmVudEluZGV4KS0+bV9jb3VudGVyKTsKLSAg
ICAgICAgZGF0YUxvZ0YoIkFycmF5IHByb2ZpbGUgZm9yIGJjIyV1OiAlcCVzJXMsICV1XG4iLCBt
X2N1cnJlbnRJbmRleCwgcHJvZmlsZS0+ZXhwZWN0ZWRTdHJ1Y3R1cmUoKSwgcHJvZmlsZS0+c3Ry
dWN0dXJlSXNQb2x5bW9ycGhpYyhsb2NrZXIpID8gIiAocG9seW1vcnBoaWMpIiA6ICIiLCBwcm9m
aWxlLT5tYXlJbnRlcmNlcHRJbmRleGVkQWNjZXNzZXMobG9ja2VyKSA/ICIgKG1heSBpbnRlcmNl
cHQpIiA6ICIiLCBwcm9maWxlLT5vYnNlcnZlZEFycmF5TW9kZXMobG9ja2VyKSk7CisgICAgICAg
IGRhdGFMb2dGKCJBcnJheSBwcm9maWxlIGZvciBiYyMldTogJXUgJXMlc1xuIiwgbV9jdXJyZW50
SW5kZXgsIHByb2ZpbGUtPm9ic2VydmVkQXJyYXlNb2Rlcyhsb2NrZXIpLCBwcm9maWxlLT5zdHJ1
Y3R1cmVJc1BvbHltb3JwaGljKGxvY2tlcikgPyAiIChwb2x5bW9ycGhpYykiIDogIiIsIHByb2Zp
bGUtPm1heUludGVyY2VwdEluZGV4ZWRBY2Nlc3Nlcyhsb2NrZXIpID8gIiAobWF5IGludGVyY2Vw
dCkiIDogIiIpOwogI2VuZGlmCiAgICAgICAgIAogICAgICAgICBib29sIG1ha2VTYWZlID0KQEAg
LTgzNiwxMSArODM2LDYgQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIEFycmF5TW9kZSBy
ZXN1bHQgPSBBcnJheU1vZGU6OmZyb21PYnNlcnZlZChsb2NrZXIsIHByb2ZpbGUsIGFjdGlvbiwg
bWFrZVNhZmUpOwogICAgICAgICAKLSAgICAgICAgaWYgKHByb2ZpbGUtPmhhc0RlZmluaXRlU3Ry
dWN0dXJlKGxvY2tlcikKLSAgICAgICAgICAgICYmIHJlc3VsdC5iZW5lZml0c0Zyb21TdHJ1Y3R1
cmVDaGVjaygpCi0gICAgICAgICAgICAmJiAhbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmls
ZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGUpKQotICAgICAgICAgICAgYWRk
VG9HcmFwaChDaGVja1N0cnVjdHVyZSwgT3BJbmZvKG1fZ3JhcGguYWRkU3RydWN0dXJlU2V0KHBy
b2ZpbGUtPmV4cGVjdGVkU3RydWN0dXJlKGxvY2tlcikpKSwgYmFzZSk7Ci0gICAgICAgIAogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKQEAgLTIzMzAsNyArMjMyNSw3IEBAIGJv
b2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAgIFNwZWN1
bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uKCk7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFu
ZCk7Ci0gICAgICAgICAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gZ2V0QXJyYXlNb2RlQW5kRW1p
dENoZWNrcyhjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGUsIEFycmF5OjpSZWFk
LCBiYXNlKTsKKyAgICAgICAgICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBnZXRBcnJheU1vZGVD
b25zaWRlcmluZ1Nsb3dQYXRoKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZSwg
QXJyYXk6OlJlYWQpOwogICAgICAgICAgICAgTm9kZSogcHJvcGVydHkgPSBnZXQoY3VycmVudElu
c3RydWN0aW9uWzNdLnUub3BlcmFuZCk7CiAgICAgICAgICAgICBOb2RlKiBnZXRCeVZhbCA9IGFk
ZFRvR3JhcGgoR2V0QnlWYWwsIE9wSW5mbyhhcnJheU1vZGUuYXNXb3JkKCkpLCBPcEluZm8ocHJl
ZGljdGlvbiksIGJhc2UsIHByb3BlcnR5KTsKICAgICAgICAgICAgIHNldChjdXJyZW50SW5zdHJ1
Y3Rpb25bMV0udS5vcGVyYW5kLCBnZXRCeVZhbCk7CkBAIC0yMzQxLDcgKzIzMzYsNyBAQCBib29s
IEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkCiAgICAgICAgIGNhc2Ugb3BfcHV0
X2J5X3ZhbDogewogICAgICAgICAgICAgTm9kZSogYmFzZSA9IGdldChjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kKTsKIAotICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdl
dEFycmF5TW9kZUFuZEVtaXRDaGVja3MoY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9m
aWxlLCBBcnJheTo6V3JpdGUsIGJhc2UpOworICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9k
ZSA9IGdldEFycmF5TW9kZUNvbnNpZGVyaW5nU2xvd1BhdGgoY3VycmVudEluc3RydWN0aW9uWzRd
LnUuYXJyYXlQcm9maWxlLCBBcnJheTo6V3JpdGUpOwogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBOb2RlKiBwcm9wZXJ0eSA9IGdldChjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKTsK
ICAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9w
ZXJhbmQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwCShyZXZpc2lvbiAxNTI4NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03ODEsMTIgKzc4MSw2IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24o
bG9ja2VyLCBwcm9maWxlZEJsb2NrKTsKICAgICAgICAgICAgICAgICBhcnJheU1vZGUgPSBBcnJh
eU1vZGU6OmZyb21PYnNlcnZlZChsb2NrZXIsIGFycmF5UHJvZmlsZSwgQXJyYXk6OlJlYWQsIGZh
bHNlKTsKICAgICAgICAgICAgICAgICBhcnJheU1vZGUgPSBhcnJheU1vZGUucmVmaW5lKG5vZGUt
PmNoaWxkMSgpLT5wcmVkaWN0aW9uKCksIG5vZGUtPnByZWRpY3Rpb24oKSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKGFycmF5TW9kZS5zdXBwb3J0c0xlbmd0aCgpICYmIGFycmF5UHJvZmlsZS0+aGFz
RGVmaW5pdGVTdHJ1Y3R1cmUobG9ja2VyKSkgewotICAgICAgICAgICAgICAgICAgICBtX2luc2Vy
dGlvblNldC5pbnNlcnROb2RlKAotICAgICAgICAgICAgICAgICAgICAgICAgbV9pbmRleEluQmxv
Y2ssIFNwZWNOb25lLCBDaGVja1N0cnVjdHVyZSwgbm9kZS0+Y29kZU9yaWdpbiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIE9wSW5mbyhtX2dyYXBoLmFkZFN0cnVjdHVyZVNldChhcnJheVByb2Zp
bGUtPmV4cGVjdGVkU3RydWN0dXJlKGxvY2tlcikpKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
IG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgICAgICBhcnJheU1vZGUgPSBhcnJheU1vZGUucmVmaW5lKG5vZGUtPmNoaWxk
MSgpLT5wcmVkaWN0aW9uKCksIG5vZGUtPnByZWRpY3Rpb24oKSk7CiAgICAgICAgICAgICAKQEAg
LTExNzksMjUgKzExNzMsNiBAQCBwcml2YXRlOgogICAgICAgICBtX2luc2VydGlvblNldC5leGVj
dXRlKGJsb2NrKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBmaW5kQW5kUmVtb3ZlVW5uZWNlc3Nh
cnlTdHJ1Y3R1cmVDaGVjayhOb2RlKiBhcnJheSwgY29uc3QgQ29kZU9yaWdpbiYgY29kZU9yaWdp
bikKLSAgICB7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSBtX2luZGV4SW5CbG9jazsg
aW5kZXgtLTspIHsKLSAgICAgICAgICAgIE5vZGUqIHByZXZpb3VzTm9kZSA9IG1fYmxvY2stPmF0
KGluZGV4KTsKLSAgICAgICAgICAgIGlmIChwcmV2aW91c05vZGUtPmNvZGVPcmlnaW4gIT0gY29k
ZU9yaWdpbikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAKLSAgICAgICAg
ICAgIGlmIChwcmV2aW91c05vZGUtPm9wKCkgIT0gQ2hlY2tTdHJ1Y3R1cmUpCi0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChwcmV2aW91c05v
ZGUtPmNoaWxkMSgpICE9IGFycmF5KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICBwcmV2aW91c05vZGUtPmNoaWxkMSgpID0gRWRnZSgpOwotICAg
ICAgICAgICAgcHJldmlvdXNOb2RlLT5jb252ZXJ0VG9QaGFudG9tKCk7Ci0gICAgICAgICAgICBy
ZXR1cm47IC8vIEFzc3VtZSB3ZSB3ZXJlIHNtYXJ0IGVub3VnaCB0byBvbmx5IGluc2VydCBvbmUg
Q2hlY2tTdHJ1Y3R1cmUgb24gdGhlIGFycmF5LgotICAgICAgICB9Ci0gICAgfQotICAgIAogICAg
IE5vZGUqIGNoZWNrQXJyYXkoQXJyYXlNb2RlIGFycmF5TW9kZSwgY29uc3QgQ29kZU9yaWdpbiYg
Y29kZU9yaWdpbiwgTm9kZSogYXJyYXksIE5vZGUqIGluZGV4LCBib29sICgqc3RvcmFnZUNoZWNr
KShjb25zdCBBcnJheU1vZGUmKSA9IGNhbkNTRVN0b3JhZ2UpCiAgICAgewogICAgICAgICBBU1NF
UlQoYXJyYXlNb2RlLmlzU3BlY2lmaWMoKSk7CkBAIC0xMjA4LDEzICsxMTgzLDYgQEAgcHJpdmF0
ZToKICAgICAgICAgCiAgICAgICAgIGlmIChhcnJheU1vZGUuZG9lc0NvbnZlcnNpb24oKSkgewog
ICAgICAgICAgICAgaWYgKHN0cnVjdHVyZSkgewotICAgICAgICAgICAgICAgIGlmIChtX2luZGV4
SW5CbG9jayA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHByZXZpb3VzIG5v
ZGUgd2FzIGEgQ2hlY2tTdHJ1Y3R1cmUgaW5zZXJ0ZWQgYmVjYXVzZSBvZiBzdHVmZgotICAgICAg
ICAgICAgICAgICAgICAvLyB0aGF0IHRoZSBhcnJheSBwcm9maWxlIHRvbGQgdXMsIHRoZW4gcmVt
b3ZlIGl0LCBzaW5jZSB3ZSdyZSBnb2luZyB0byBiZQotICAgICAgICAgICAgICAgICAgICAvLyBk
b2luZyBhcnJheWlmaWNhdGlvbiBpbnN0ZWFkLgotICAgICAgICAgICAgICAgICAgICBmaW5kQW5k
UmVtb3ZlVW5uZWNlc3NhcnlTdHJ1Y3R1cmVDaGVjayhhcnJheSwgY29kZU9yaWdpbik7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIG1faW5zZXJ0
aW9uU2V0Lmluc2VydE5vZGUoCiAgICAgICAgICAgICAgICAgICAgIG1faW5kZXhJbkJsb2NrLCBT
cGVjTm9uZSwgQXJyYXlpZnlUb1N0cnVjdHVyZSwgY29kZU9yaWdpbiwKICAgICAgICAgICAgICAg
ICAgICAgT3BJbmZvKHN0cnVjdHVyZSksIE9wSW5mbyhhcnJheU1vZGUuYXNXb3JkKCkpLCBFZGdl
KGFycmF5LCBDZWxsVXNlKSwgaW5kZXhFZGdlKTsKQEAgLTEyNjUsNyArMTIzMyw2IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJh
eTo6R2VuZXJpYzoKLSAgICAgICAgICAgIGZpbmRBbmRSZW1vdmVVbm5lY2Vzc2FyeVN0cnVjdHVy
ZUNoZWNrKGJhc2Uubm9kZSgpLCBub2RlLT5jb2RlT3JpZ2luKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OiB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2
aXNpb24gMTUyODU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXI2NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEwODQsNyArMTA4NCw3IEBAIF9sbGlu
dF9vcF9nZXRfYXJndW1lbnRfYnlfdmFsOgogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0
MykKICAgICBsb2FkcSBUaGlzQXJndW1lbnRPZmZzZXRbY2ZyLCB0MiwgOF0sIHQwCiAgICAgc3Rv
cmVxIHQwLCBbY2ZyLCB0MywgOF0KLSAgICB2YWx1ZVByb2ZpbGUodDAsIDQsIHQxKQorICAgIHZh
bHVlUHJvZmlsZSh0MCwgNSwgdDEpCiAgICAgZGlzcGF0Y2goNikKIAogLm9wR2V0QXJndW1lbnRC
eVZhbFNsb3c6Cg==
</data>
<flag name="review"
          id="228795"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
      

    </bug>

</bugzilla>