<?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>113897</bug_id>
          
          <creation_ts>2013-04-03 14:19:32 -0700</creation_ts>
          <short_desc>fourthTier: Everyone should know about the FTL</short_desc>
          <delta_ts>2013-04-03 14:52:12 -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>113623</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>868900</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-03 14:19:32 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868903</commentid>
    <comment_count>1</comment_count>
      <attachid>196408</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-03 14:25:49 -0700</bug_when>
    <thetext>Created attachment 196408
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868910</commentid>
    <comment_count>2</comment_count>
      <attachid>196408</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-03 14:50:51 -0700</bug_when>
    <thetext>Comment on attachment 196408
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868913</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-03 14:52:12 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/147587</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196408</attachid>
            <date>2013-04-03 14:25:49 -0700</date>
            <delta_ts>2013-04-03 14:50:50 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>19436</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ3NTg0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBA
CisyMDEzLTA0LTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Zm91cnRoVGllcjogRXZlcnlvbmUgc2hvdWxkIGtub3cgYWJvdXQgdGhlIEZUTAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzODk3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBJbiBvcmRlciB0
byBnZXQgT1NSIGV4aXQgdG8gd29yayByaWdodCwgd2UgbmVlZCB0aGUgZGlzdGluY3Rpb24gYmV0
d2VlbiBERkcgYW5kCisgICAgICAgIEZUTCB0byBiZSBjbGVhciBldmVuIGFmdGVyIGNvbXBpbGF0
aW9uIGZpbmlzaGVzLCBzaW5jZSB0aGV5IHdpbGwgaGF2ZSBzdWJ0bHkKKyAgICAgICAgZGlmZmVy
ZW50IE9TUiBzdG9yaWVzIGFuZCBsaWtlbHkgdXNlIGRpZmZlcmVudCBkYXRhIHN0cnVjdHVyZXMu
CisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2Rl
QmxvY2s6OnJlc2V0U3R1YkludGVybmFsKToKKyAgICAgICAgKEpTQzo6UHJvZ3JhbUNvZGVCbG9j
azo6Y29tcGlsZU9wdGltaXplZCk6CisgICAgICAgIChKU0M6OkV2YWxDb2RlQmxvY2s6OmNvbXBp
bGVPcHRpbWl6ZWQpOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvZGVCbG9jazo6Y29tcGlsZU9w
dGltaXplZCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6YWRqdXN0ZWRFeGl0Q291bnRUaHJl
c2hvbGQpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnRhbGx5RnJlcXVlbnRFeGl0U2l0ZXMp
OgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxv
Y2s6OnNldEpJVENvZGUpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6Omhhc09wdGltaXplZFJl
cGxhY2VtZW50KToKKyAgICAgICAgKEpTQzo6RXhlY1N0YXRlOjppc0lubGluZUNhbGxGcmFtZSk6
CisgICAgICAgICogZnRsL0ZUTENvbXBpbGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNvbXBp
bGUpOgorICAgICAgICAqIGZ0bC9GVExKSVRDb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpK
SVRDb2RlOjpKSVRDb2RlKToKKyAgICAgICAgKiBmdGwvRlRMU3RhdGUuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OlN0YXRlOjpkdW1wU3RhdGUpOgorICAgICAgICAqIGhlYXAvREZHQ29kZUJsb2Nr
cy5jcHA6CisgICAgICAgIChKU0M6OkRGR0NvZGVCbG9ja3M6OmpldHRpc29uKToKKyAgICAgICAg
KiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OmdldExpbmVOdW1i
ZXJGb3JDYWxsRnJhbWUpOgorICAgICAgICAoSlNDOjpnZXRDYWxsZXJJbmZvKToKKyAgICAgICAg
KiBqaXQvSklUQ29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAg
ICAqIGppdC9KSVRDb2RlLmg6CisgICAgICAgIChKU0M6OkpJVENvZGU6OnRvcFRpZXJKSVQpOgor
ICAgICAgICAoSlNDOjpKSVRDb2RlOjpuZXh0VGllckpJVCk6CisgICAgICAgIChKSVRDb2RlKToK
KyAgICAgICAgKEpTQzo6SklUQ29kZTo6aXNKSVQpOgorICAgICAgICAoSlNDOjpKSVRDb2RlOjpp
c0xvd2VyVGllcik6CisgICAgICAgIChKU0M6OkpJVENvZGU6OmlzSGlnaGVyVGllcik6CisgICAg
ICAgIChKU0M6OkpJVENvZGU6OmlzTG93ZXJPclNhbWVUaWVyKToKKyAgICAgICAgKEpTQzo6SklU
Q29kZTo6aXNIaWdoZXJPclNhbWVUaWVyKToKKyAgICAgICAgKEpTQzo6SklUQ29kZTo6aXNPcHRp
bWl6aW5nSklUKToKKyAgICAgICAgKiBqaXQvSklURHJpdmVyLmg6CisgICAgICAgIChKU0M6Ompp
dENvbXBpbGVJZkFwcHJvcHJpYXRlKToKKyAgICAgICAgKEpTQzo6aml0Q29tcGlsZUZ1bmN0aW9u
SWZBcHByb3ByaWF0ZSk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpT
Qzo6REVGSU5FX1NUVUJfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5j
cHA6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjb21waWxlT3B0aW1pemVkKToKKyAg
ICAgICAgKEpTQzo6c2FtcGxpbmdEZXNjcmlwdGlvbik6CisgICAgICAgIChKU0M6OlByb2dyYW1F
eGVjdXRhYmxlOjpjb21waWxlT3B0aW1pemVkKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVj
dXRhYmxlOjpjb21waWxlT3B0aW1pemVkRm9yQ2FsbCk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9u
RXhlY3V0YWJsZTo6Y29tcGlsZU9wdGltaXplZEZvckNvbnN0cnVjdCk6CisKIDIwMTMtMDQtMDMg
IEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBmb3VydGhUaWVyOiBE
Rkcgc2hvdWxkIGFic3RyYWN0IG91dCBob3cgaXQgZG9lcyBmb3J3YXJkIGV4aXRzLCBhbmQgdGhh
dCBjb2RlIHNob3VsZCBiZSBzaW1wbGlmaWVkCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTQ3NTgyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0
NDAsMTggKzI0NDAsMjMgQEAgdm9pZCBDb2RlQmxvY2s6OnJlc2V0U3R1YkludGVybmFsKFJlcGF0
YwogICAgIAogICAgIGlmICh2ZXJib3NlVW5saW5raW5nKQogICAgICAgICBkYXRhTG9nKCJDbGVh
cmluZyBzdHJ1Y3R1cmUgY2FjaGUgKGtpbmQgIiwgc3RhdGljX2Nhc3Q8aW50PihzdHViSW5mby5h
Y2Nlc3NUeXBlKSwgIikgaW4gIiwgKnRoaXMsICIuXG4iKTsKLSAgICAKLSAgICBpZiAoaXNHZXRC
eUlkQWNjZXNzKGFjY2Vzc1R5cGUpKSB7Ci0gICAgICAgIGlmIChnZXRKSVRUeXBlKCkgPT0gSklU
Q29kZTo6REZHSklUKQorCisgICAgc3dpdGNoIChnZXRKSVRUeXBlKCkpIHsKKyAgICBjYXNlIEpJ
VENvZGU6OkJhc2VsaW5lSklUOgorICAgICAgICBpZiAoaXNHZXRCeUlkQWNjZXNzKGFjY2Vzc1R5
cGUpKQorICAgICAgICAgICAgSklUOjpyZXNldFBhdGNoR2V0QnlJZChyZXBhdGNoQnVmZmVyLCAm
c3R1YkluZm8pOworICAgICAgICBlbHNlCisgICAgICAgICAgICBKSVQ6OnJlc2V0UGF0Y2hQdXRC
eUlkKHJlcGF0Y2hCdWZmZXIsICZzdHViSW5mbyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
SklUQ29kZTo6REZHSklUOgorICAgICAgICBpZiAoaXNHZXRCeUlkQWNjZXNzKGFjY2Vzc1R5cGUp
KQogICAgICAgICAgICAgREZHOjpkZmdSZXNldEdldEJ5SUQocmVwYXRjaEJ1ZmZlciwgc3R1Yklu
Zm8pOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBKSVQ6OnJlc2V0UGF0Y2hHZXRCeUlkKHJl
cGF0Y2hCdWZmZXIsICZzdHViSW5mbyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUKGlz
UHV0QnlJZEFjY2VzcyhhY2Nlc3NUeXBlKSk7Ci0gICAgICAgIGlmIChnZXRKSVRUeXBlKCkgPT0g
SklUQ29kZTo6REZHSklUKQogICAgICAgICAgICAgREZHOjpkZmdSZXNldFB1dEJ5SUQocmVwYXRj
aEJ1ZmZlciwgc3R1YkluZm8pOwotICAgICAgICBlbHNlIAotICAgICAgICAgICAgSklUOjpyZXNl
dFBhdGNoUHV0QnlJZChyZXBhdGNoQnVmZmVyLCAmc3R1YkluZm8pOworICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgCiAgICAgc3R1YkluZm8ucmVzZXQoKTsKQEAgLTI4NTgs
NyArMjg2Myw3IEBAIENvZGVCbG9jayogRnVuY3Rpb25Db2RlQmxvY2s6OnJlcGxhY2VtZW4KIAog
SlNPYmplY3QqIFByb2dyYW1Db2RlQmxvY2s6OmNvbXBpbGVPcHRpbWl6ZWQoRXhlY1N0YXRlKiBl
eGVjLCBKU1Njb3BlKiBzY29wZSwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKIHsKLSAgICBpZiAo
cmVwbGFjZW1lbnQoKS0+Z2V0SklUVHlwZSgpID09IEpJVENvZGU6Om5leHRUaWVySklUKGdldEpJ
VFR5cGUoKSkpCisgICAgaWYgKEpJVENvZGU6OmlzSGlnaGVyVGllcihyZXBsYWNlbWVudCgpLT5n
ZXRKSVRUeXBlKCksIGdldEpJVFR5cGUoKSkpCiAgICAgICAgIHJldHVybiAwOwogICAgIEpTT2Jq
ZWN0KiBlcnJvciA9IHN0YXRpY19jYXN0PFByb2dyYW1FeGVjdXRhYmxlKj4ob3duZXJFeGVjdXRh
YmxlKCkpLT5jb21waWxlT3B0aW1pemVkKGV4ZWMsIHNjb3BlLCBieXRlY29kZUluZGV4KTsKICAg
ICByZXR1cm4gZXJyb3I7CkBAIC0yODY2LDcgKzI4NzEsNyBAQCBKU09iamVjdCogUHJvZ3JhbUNv
ZGVCbG9jazo6Y29tcGlsZU9wdGltCiAKIEpTT2JqZWN0KiBFdmFsQ29kZUJsb2NrOjpjb21waWxl
T3B0aW1pemVkKEV4ZWNTdGF0ZSogZXhlYywgSlNTY29wZSogc2NvcGUsIHVuc2lnbmVkIGJ5dGVj
b2RlSW5kZXgpCiB7Ci0gICAgaWYgKHJlcGxhY2VtZW50KCktPmdldEpJVFR5cGUoKSA9PSBKSVRD
b2RlOjpuZXh0VGllckpJVChnZXRKSVRUeXBlKCkpKQorICAgIGlmIChKSVRDb2RlOjppc0hpZ2hl
clRpZXIocmVwbGFjZW1lbnQoKS0+Z2V0SklUVHlwZSgpLCBnZXRKSVRUeXBlKCkpKQogICAgICAg
ICByZXR1cm4gMDsKICAgICBKU09iamVjdCogZXJyb3IgPSBzdGF0aWNfY2FzdDxFdmFsRXhlY3V0
YWJsZSo+KG93bmVyRXhlY3V0YWJsZSgpKS0+Y29tcGlsZU9wdGltaXplZChleGVjLCBzY29wZSwg
Ynl0ZWNvZGVJbmRleCk7CiAgICAgcmV0dXJuIGVycm9yOwpAQCAtMjg3NCw3ICsyODc5LDcgQEAg
SlNPYmplY3QqIEV2YWxDb2RlQmxvY2s6OmNvbXBpbGVPcHRpbWl6ZQogCiBKU09iamVjdCogRnVu
Y3Rpb25Db2RlQmxvY2s6OmNvbXBpbGVPcHRpbWl6ZWQoRXhlY1N0YXRlKiBleGVjLCBKU1Njb3Bl
KiBzY29wZSwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKIHsKLSAgICBpZiAocmVwbGFjZW1lbnQo
KS0+Z2V0SklUVHlwZSgpID09IEpJVENvZGU6Om5leHRUaWVySklUKGdldEpJVFR5cGUoKSkpCisg
ICAgaWYgKEpJVENvZGU6OmlzSGlnaGVyVGllcihyZXBsYWNlbWVudCgpLT5nZXRKSVRUeXBlKCks
IGdldEpJVFR5cGUoKSkpCiAgICAgICAgIHJldHVybiAwOwogICAgIEpTT2JqZWN0KiBlcnJvciA9
IHN0YXRpY19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KG93bmVyRXhlY3V0YWJsZSgpKS0+Y29t
cGlsZU9wdGltaXplZEZvcihleGVjLCBzY29wZSwgYnl0ZWNvZGVJbmRleCwgbV9pc0NvbnN0cnVj
dG9yID8gQ29kZUZvckNvbnN0cnVjdCA6IENvZGVGb3JDYWxsKTsKICAgICByZXR1cm4gZXJyb3I7
CkBAIC0zMTE3LDcgKzMxMjIsNyBAQCB2b2lkIENvZGVCbG9jazo6b3B0aW1pemVTb29uKCkKICNp
ZiBFTkFCTEUoSklUKQogdWludDMyX3QgQ29kZUJsb2NrOjphZGp1c3RlZEV4aXRDb3VudFRocmVz
aG9sZCh1aW50MzJfdCBkZXNpcmVkVGhyZXNob2xkKQogewotICAgIEFTU0VSVChnZXRKSVRUeXBl
KCkgPT0gSklUQ29kZTo6REZHSklUKTsKKyAgICBBU1NFUlQoSklUQ29kZTo6aXNPcHRpbWl6aW5n
SklUKGdldEpJVFR5cGUoKSkpOwogICAgIC8vIENvbXB1dGUgdGhpcyB0aGUgbGFtZSB3YXkgc28g
d2UgZG9uJ3Qgc2F0dXJhdGUuIFRoaXMgaXMgY2FsbGVkIGluZnJlcXVlbnRseQogICAgIC8vIGVu
b3VnaCB0aGF0IHRoaXMgbG9vcCB3b24ndCBodXJ0IHVzLgogICAgIHVuc2lnbmVkIHJlc3VsdCA9
IGRlc2lyZWRUaHJlc2hvbGQ7CkBAIC0zMjU0LDcgKzMyNTksNyBAQCBib29sIENvZGVCbG9jazo6
c2hvdWxkT3B0aW1pemVOb3coKQogI2lmIEVOQUJMRShERkdfSklUKQogdm9pZCBDb2RlQmxvY2s6
OnRhbGx5RnJlcXVlbnRFeGl0U2l0ZXMoKQogewotICAgIEFTU0VSVChnZXRKSVRUeXBlKCkgPT0g
SklUQ29kZTo6REZHSklUKTsKKyAgICBBU1NFUlQoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGdl
dEpJVFR5cGUoKSkpOwogICAgIEFTU0VSVChhbHRlcm5hdGl2ZSgpLT5nZXRKSVRUeXBlKCkgPT0g
SklUQ29kZTo6QmFzZWxpbmVKSVQpOwogICAgIEFTU0VSVCghIW1fZGZnRGF0YSk7CiAgICAgCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCShyZXZpc2lv
biAxNDc1ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQyNiw3ICs0MjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIG1faml0Q29kZSA9IGNvZGU7CiAgICAgICAgICAgICBtX2ppdENvZGVXaXRoQXJpdHlD
aGVjayA9IGNvZGVXaXRoQXJpdHlDaGVjazsKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICAgICAg
ICAgIGlmIChKSVRDb2RlOjpqaXRUeXBlRm9yKG1faml0Q29kZSkgPT0gSklUQ29kZTo6REZHSklU
KSB7CisgICAgICAgICAgICBpZiAoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKEpJVENvZGU6Ompp
dFR5cGVGb3IobV9qaXRDb2RlKSkpIHsKICAgICAgICAgICAgICAgICBjcmVhdGVERkdEYXRhSWZO
ZWNlc3NhcnkoKTsKICAgICAgICAgICAgICAgICBtX2dsb2JhbERhdGEtPmhlYXAubV9kZmdDb2Rl
QmxvY2tzLm1fc2V0LmFkZCh0aGlzKTsKICAgICAgICAgICAgIH0KQEAgLTQ2NywxMCArNDY3LDEw
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIGhhc09wdGltaXplZFJlcGxhY2VtZW50
KCkKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKEpJVENvZGU6OmlzQmFzZWxpbmVDb2Rl
KGdldEpJVFR5cGUoKSkpOwotICAgICAgICAgICAgYm9vbCByZXN1bHQgPSByZXBsYWNlbWVudCgp
LT5nZXRKSVRUeXBlKCkgPiBnZXRKSVRUeXBlKCk7CisgICAgICAgICAgICBib29sIHJlc3VsdCA9
IEpJVENvZGU6OmlzSGlnaGVyVGllcihyZXBsYWNlbWVudCgpLT5nZXRKSVRUeXBlKCksIGdldEpJ
VFR5cGUoKSk7CiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgICAgICAgICAgaWYgKHJlc3VsdCkK
LSAgICAgICAgICAgICAgICBBU1NFUlQocmVwbGFjZW1lbnQoKS0+Z2V0SklUVHlwZSgpID09IEpJ
VENvZGU6OkRGR0pJVCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKEpJVENvZGU6OmlzT3B0aW1p
emluZ0pJVChyZXBsYWNlbWVudCgpLT5nZXRKSVRUeXBlKCkpKTsKICAgICAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgICAgIEFTU0VSVChKSVRDb2RlOjppc0Jhc2VsaW5lQ29kZShyZXBsYWNl
bWVudCgpLT5nZXRKSVRUeXBlKCkpKTsKICAgICAgICAgICAgICAgICBBU1NFUlQocmVwbGFjZW1l
bnQoKSA9PSB0aGlzKTsKQEAgLTE0MjEsNyArMTQyMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2lm
IEVOQUJMRShERkdfSklUKQogICAgIGlubGluZSBib29sIEV4ZWNTdGF0ZTo6aXNJbmxpbmVDYWxs
RnJhbWUoKQogICAgIHsKLSAgICAgICAgaWYgKExJS0VMWSghY29kZUJsb2NrKCkgfHwgY29kZUJs
b2NrKCktPmdldEpJVFR5cGUoKSAhPSBKSVRDb2RlOjpERkdKSVQpKQorICAgICAgICBpZiAoTElL
RUxZKCFjb2RlQmxvY2soKSB8fCAhSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGNvZGVCbG9jaygp
LT5nZXRKSVRUeXBlKCkpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0
dXJuIGlzSW5saW5lQ2FsbEZyYW1lU2xvdygpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkocmV2aXNpb24gMTQ3NTgyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcg
KzE1NSw3IEBAIHZvaWQgY29tcGlsZShTdGF0ZSYgc3RhdGUsIFJlZlB0cjxKU0M6OkoKICAgICAg
ICAgZW5naW5lLAogICAgICAgICBGSU5BTElaRV9ERkdfQ09ERSgKICAgICAgICAgICAgIGxpbmtC
dWZmZXIsCi0gICAgICAgICAgICAoIkZUTCBlbnRyeXBvaW50IHRodW5rIGZvciAlcyIsIHRvQ1N0
cmluZyhDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29k
ZTo6REZHSklUKSkuZGF0YSgpKSkpKTsKKyAgICAgICAgICAgICgiRlRMIGVudHJ5cG9pbnQgdGh1
bmsgZm9yICVzIiwgdG9DU3RyaW5nKENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1f
Y29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpKS5kYXRhKCkpKSkpOwogfQogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6RlRMCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENv
ZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29k
ZS5jcHAJKHJldmlzaW9uIDE0NzU4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SklUQ29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgRlRMIHsKIAogSklUQ29kZTo6SklUQ29kZShMTFZNRXhlY3V0aW9uRW5n
aW5lUmVmIGVuZ2luZSwgQ29kZVJlZiBlbnRyeXBvaW50KQotICAgIDogSlNDOjpKSVRDb2RlKERG
R0pJVCkKKyAgICA6IEpTQzo6SklUQ29kZShGVExKSVQpCiAgICAgLCBtX2VuZ2luZShlbmdpbmUp
CiAgICAgLCBtX2VudHJ5cG9pbnQoZW50cnlwb2ludCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMU3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMU3RhdGUuY3BwCShyZXZpc2lvbiAxNDc1ODIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKIHZvaWQgU3RhdGU6OmR1bXBTdGF0
ZShjb25zdCBjaGFyKiB3aGVuKQogewotICAgIGRhdGFMb2coIkxMVk0gSVIgZm9yICIsIENvZGVC
bG9ja1dpdGhKSVRUeXBlKGdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpERkdKSVQpLCAiICIs
IHdoZW4sICI6XG4iKTsKKyAgICBkYXRhTG9nKCJMTFZNIElSIGZvciAiLCBDb2RlQmxvY2tXaXRo
SklUVHlwZShncmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6RlRMSklUKSwgIiAiLCB3aGVuLCAi
OlxuIik7CiAgICAgZHVtcE1vZHVsZShtb2R1bGUpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9ERkdDb2RlQmxvY2tzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9ERkdDb2RlQmxvY2tzLmNwcAkocmV2aXNpb24gMTQ3NTgyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvREZHQ29kZUJsb2Nrcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU0LDcgKzU0LDcgQEAgdm9pZCBERkdDb2RlQmxvY2tzOjpqZXR0aXNvbihQYXNzT3du
UHRyPAogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY29kZUJsb2NrUHRyLmxlYWtQdHIoKTsK
ICAgICAKICAgICBBU1NFUlQoY29kZUJsb2NrKTsKLSAgICBBU1NFUlQoY29kZUJsb2NrLT5nZXRK
SVRUeXBlKCkgPT0gSklUQ29kZTo6REZHSklUKTsKKyAgICBBU1NFUlQoSklUQ29kZTo6aXNPcHRp
bWl6aW5nSklUKGNvZGVCbG9jay0+Z2V0SklUVHlwZSgpKSk7CiAgICAgCiAgICAgLy8gSXQgc2hv
dWxkIG5vdCBoYXZlIGFscmVhZHkgYmVlbiBqZXR0aXNvbmVkLgogICAgIEFTU0VSVCghY29kZUJs
b2NrLT5tX2RmZ0RhdGEtPmlzSmV0dGlzb25lZCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHJldmlzaW9uIDE0NzU4MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU4MSw3ICs1ODEsNyBAQCBzdGF0aWMgaW50IGdldExpbmVOdW1iZXJG
b3JDYWxsRnJhbWUoSlNHCiAgICAgICAgIHJldHVybiAtMTsKICNpZiBFTkFCTEUoSklUKSB8fCBF
TkFCTEUoTExJTlQpCiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgaWYgKGNvZGVCbG9jay0+Z2V0
SklUVHlwZSgpID09IEpJVENvZGU6OkRGR0pJVCkKKyAgICBpZiAoSklUQ29kZTo6aXNPcHRpbWl6
aW5nSklUKGNvZGVCbG9jay0+Z2V0SklUVHlwZSgpKSkKICAgICAgICAgcmV0dXJuIGNvZGVCbG9j
ay0+bGluZU51bWJlckZvckJ5dGVjb2RlT2Zmc2V0KGNvZGVCbG9jay0+Y29kZU9yaWdpbihjYWxs
RnJhbWUtPmNvZGVPcmlnaW5JbmRleEZvckRGRygpKS5ieXRlY29kZUluZGV4KTsKICNlbmRpZgog
ICAgIHJldHVybiBjb2RlQmxvY2stPmxpbmVOdW1iZXJGb3JCeXRlY29kZU9mZnNldChjYWxsRnJh
bWUtPmJ5dGVjb2RlT2Zmc2V0Rm9yTm9uREZHQ29kZSgpKTsKQEAgLTYxNyw3ICs2MTcsNyBAQCBz
dGF0aWMgQ2FsbEZyYW1lKiBnZXRDYWxsZXJJbmZvKEpTR2xvYmFsCiAgICAgICAgIC8vIGlubGlu
ZWQgYSBjYWxsIHdpdGggYW4gaW50ZXJ2ZW5pbmcgbmF0aXZlIGNhbGwgZnJhbWUuCiAjaWYgRU5B
QkxFKEpJVCkgfHwgRU5BQkxFKExMSU5UKQogI2lmIEVOQUJMRShERkdfSklUKQotICAgICAgICBp
ZiAoY2FsbGVyQ29kZUJsb2NrICYmIGNhbGxlckNvZGVCbG9jay0+Z2V0SklUVHlwZSgpID09IEpJ
VENvZGU6OkRGR0pJVCkgeworICAgICAgICBpZiAoY2FsbGVyQ29kZUJsb2NrICYmIEpJVENvZGU6
OmlzT3B0aW1pemluZ0pJVChjYWxsZXJDb2RlQmxvY2stPmdldEpJVFR5cGUoKSkpIHsKICAgICAg
ICAgICAgIHVuc2lnbmVkIGNvZGVPcmlnaW5JbmRleCA9IGNhbGxlckZyYW1lLT5jb2RlT3JpZ2lu
SW5kZXhGb3JERkcoKTsKICAgICAgICAgICAgIGJ5dGVjb2RlT2Zmc2V0ID0gY2FsbGVyQ29kZUJs
b2NrLT5jb2RlT3JpZ2luKGNvZGVPcmlnaW5JbmRleCkuYnl0ZWNvZGVJbmRleDsKICAgICAgICAg
fSBlbHNlCkBAIC02MzcsNyArNjM3LDcgQEAgc3RhdGljIENhbGxGcmFtZSogZ2V0Q2FsbGVySW5m
byhKU0dsb2JhbAogICAgICAgICAgICAgICAgIEFTU0VSVChuZXdDb2RlQmxvY2stPmluc3RydWN0
aW9uQ291bnQoKSA+IGJ5dGVjb2RlT2Zmc2V0KTsKICAgICAgICAgICAgICAgICBjYWxsZXJDb2Rl
QmxvY2sgPSBuZXdDb2RlQmxvY2s7CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAo
Y2FsbGVyQ29kZUJsb2NrICYmIGNhbGxlckNvZGVCbG9jay0+Z2V0SklUVHlwZSgpID09IEpJVENv
ZGU6OkRGR0pJVCkgeworICAgICAgICB9IGVsc2UgaWYgKGNhbGxlckNvZGVCbG9jayAmJiBKSVRD
b2RlOjppc09wdGltaXppbmdKSVQoY2FsbGVyQ29kZUJsb2NrLT5nZXRKSVRUeXBlKCkpKSB7CiAg
ICAgICAgICAgICBDb2RlT3JpZ2luIG9yaWdpbjsKICAgICAgICAgICAgIGlmICghY2FsbGVyQ29k
ZUJsb2NrLT5jb2RlT3JpZ2luRm9yUmV0dXJuKGNhbGxGcmFtZS0+cmV0dXJuUEMoKSwgb3JpZ2lu
KSkKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3BwCShyZXZpc2lvbiAxNDc1ODIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTYsNiArMTE2LDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEpTQwog
ICAgIGNhc2UgSlNDOjpKSVRDb2RlOjpERkdKSVQ6CiAgICAgICAgIG91dC5wcmludCgiREZHIik7
CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6SklUQ29kZTo6RlRMSklUOgorICAgICAg
ICBvdXQucHJpbnQoIkZUTCIpOworICAgICAgICByZXR1cm47CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRDb2RlLmgJKHJldmlzaW9uIDE0NzU4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB0
eXBlZGVmIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBDb2RlUmVmOwogICAgIHR5cGVkZWYgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIENvZGVQdHI7CiAKLSAgICBlbnVtIEpJVFR5cGUgeyBOb25lLCBIb3N0
Q2FsbFRodW5rLCBJbnRlcnByZXRlclRodW5rLCBCYXNlbGluZUpJVCwgREZHSklUIH07CisgICAg
ZW51bSBKSVRUeXBlIHsgTm9uZSwgSG9zdENhbGxUaHVuaywgSW50ZXJwcmV0ZXJUaHVuaywgQmFz
ZWxpbmVKSVQsIERGR0pJVCwgRlRMSklUIH07CiAgICAgCiAgICAgc3RhdGljIEpJVFR5cGUgYm90
dG9tVGllckpJVCgpCiAgICAgewpAQCAtNTYsMTggKzU2LDU4IEBAIHB1YmxpYzoKICAgICAKICAg
ICBzdGF0aWMgSklUVHlwZSB0b3BUaWVySklUKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBERkdK
SVQ7CisgICAgICAgIHJldHVybiBGVExKSVQ7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBKSVRU
eXBlIG5leHRUaWVySklUKEpJVFR5cGUgaml0VHlwZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVF9V
TlVTRUQoaml0VHlwZSwgaml0VHlwZSA9PSBCYXNlbGluZUpJVCB8fCBqaXRUeXBlID09IERGR0pJ
VCk7Ci0gICAgICAgIHJldHVybiBERkdKSVQ7CisgICAgICAgIHN3aXRjaCAoaml0VHlwZSkgewor
ICAgICAgICBjYXNlIEJhc2VsaW5lSklUOgorICAgICAgICAgICAgcmV0dXJuIERGR0pJVDsKKyAg
ICAgICAgY2FzZSBERkdKSVQ6CisgICAgICAgICAgICByZXR1cm4gRlRMSklUOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbCBpc0pJVChKSVRUeXBlIGppdFR5cGUp
CisgICAgeworICAgICAgICBzd2l0Y2ggKGppdFR5cGUpIHsKKyAgICAgICAgY2FzZSBCYXNlbGlu
ZUpJVDoKKyAgICAgICAgY2FzZSBERkdKSVQ6CisgICAgICAgIGNhc2UgRlRMSklUOgorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGJvb2wgaXNMb3dlclRp
ZXIoSklUVHlwZSBleHBlY3RlZExvd2VyLCBKSVRUeXBlIGV4cGVjdGVkSGlnaGVyKQorICAgIHsK
KyAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNKSVQoZXhwZWN0ZWRMb3dlcikpOworICAgICAgICBS
RUxFQVNFX0FTU0VSVChpc0pJVChleHBlY3RlZEhpZ2hlcikpOworICAgICAgICByZXR1cm4gZXhw
ZWN0ZWRMb3dlciA8IGV4cGVjdGVkSGlnaGVyOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9v
bCBpc0hpZ2hlclRpZXIoSklUVHlwZSBleHBlY3RlZEhpZ2hlciwgSklUVHlwZSBleHBlY3RlZExv
d2VyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzTG93ZXJUaWVyKGV4cGVjdGVkTG93ZXIsIGV4
cGVjdGVkSGlnaGVyKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGJvb2wgaXNMb3dlck9yU2Ft
ZVRpZXIoSklUVHlwZSBleHBlY3RlZExvd2VyLCBKSVRUeXBlIGV4cGVjdGVkSGlnaGVyKQorICAg
IHsKKyAgICAgICAgcmV0dXJuICFpc0hpZ2hlclRpZXIoZXhwZWN0ZWRMb3dlciwgZXhwZWN0ZWRI
aWdoZXIpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbCBpc0hpZ2hlck9yU2FtZVRpZXIo
SklUVHlwZSBleHBlY3RlZEhpZ2hlciwgSklUVHlwZSBleHBlY3RlZExvd2VyKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGlzTG93ZXJPclNhbWVUaWVyKGV4cGVjdGVkTG93ZXIsIGV4cGVjdGVkSGln
aGVyKTsKICAgICB9CiAgICAgCiAgICAgc3RhdGljIGJvb2wgaXNPcHRpbWl6aW5nSklUKEpJVFR5
cGUgaml0VHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBqaXRUeXBlID09IERGR0pJVDsKKyAg
ICAgICAgcmV0dXJuIGppdFR5cGUgPT0gREZHSklUIHx8IGppdFR5cGUgPT0gRlRMSklUOwogICAg
IH0KICAgICAKICAgICBzdGF0aWMgYm9vbCBpc0Jhc2VsaW5lQ29kZShKSVRUeXBlIGppdFR5cGUp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERyaXZlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURHJpdmVyLmgJKHJldmlzaW9uIDE0NzU4
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURHJpdmVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTUzLDcgKzUzLDcgQEAgaW5saW5lIGJvb2wgaml0Q29tcGlsZUlmQXBwcm9wcmlhdGUo
RXhlYwogICAgIFJlZlB0cjxKSVRDb2RlPiBvbGRKSVRDb2RlID0gaml0Q29kZTsKICAgICAKICAg
ICBib29sIGRmZ0NvbXBpbGVkID0gZmFsc2U7Ci0gICAgaWYgKGppdFR5cGUgPT0gSklUQ29kZTo6
REZHSklUKQorICAgIGlmIChKSVRDb2RlOjppc09wdGltaXppbmdKSVQoaml0VHlwZSkpCiAgICAg
ICAgIGRmZ0NvbXBpbGVkID0gREZHOjp0cnlDb21waWxlKGV4ZWMsIGNvZGVCbG9jay5nZXQoKSwg
aml0Q29kZSwgYnl0ZWNvZGVJbmRleCk7CiAgICAgaWYgKGRmZ0NvbXBpbGVkKSB7CiAgICAgICAg
IGlmIChjb2RlQmxvY2stPmFsdGVybmF0aXZlKCkpCkBAIC05MSw3ICs5MSw3IEBAIGlubGluZSBi
b29sIGppdENvbXBpbGVGdW5jdGlvbklmQXBwcm9wcmkKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgb2xkSklUQ29kZVdpdGhBcml0eUNoZWNrID0gaml0Q29kZVdpdGhBcml0eUNoZWNrOwogICAg
IAogICAgIGJvb2wgZGZnQ29tcGlsZWQgPSBmYWxzZTsKLSAgICBpZiAoaml0VHlwZSA9PSBKSVRD
b2RlOjpERkdKSVQpCisgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChqaXRUeXBlKSkK
ICAgICAgICAgZGZnQ29tcGlsZWQgPSBERkc6OnRyeUNvbXBpbGVGdW5jdGlvbihleGVjLCBjb2Rl
QmxvY2suZ2V0KCksIGppdENvZGUsIGppdENvZGVXaXRoQXJpdHlDaGVjaywgYnl0ZWNvZGVJbmRl
eCk7CiAgICAgaWYgKGRmZ0NvbXBpbGVkKSB7CiAgICAgICAgIGlmIChjb2RlQmxvY2stPmFsdGVy
bmF0aXZlKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2
aXNpb24gMTQ3NTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE5MTYsNyArMTkxNiwxNiBAQCBERUZJTkVfU1RVQl9GVU5DVElP
Tih2b2lkLCBvcHRpbWl6ZSkKICAgICB9CiAgICAgCiAgICAgQ29kZUJsb2NrKiBvcHRpbWl6ZWRD
b2RlQmxvY2sgPSBjb2RlQmxvY2stPnJlcGxhY2VtZW50KCk7Ci0gICAgQVNTRVJUKG9wdGltaXpl
ZENvZGVCbG9jay0+Z2V0SklUVHlwZSgpID09IEpJVENvZGU6OkRGR0pJVCk7CisgICAgQVNTRVJU
KEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChvcHRpbWl6ZWRDb2RlQmxvY2stPmdldEpJVFR5cGUo
KSkpOworICAgIAorICAgIGlmIChvcHRpbWl6ZWRDb2RlQmxvY2stPmdldEpJVFR5cGUoKSA9PSBK
SVRDb2RlOjpGVExKSVQpIHsKKyAgICAgICAgLy8gRlRMIEpJVCBkb2Vzbid0IHN1cHBvcnQgT1NS
IGVudHJ5IHlldC4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExMzYyNQorICAgICAgICAKKyAgICAgICAgLy8gRG9uJ3QgYXR0ZW1wdCBPU1IgZW50
cnkgYWdhaW4uCisgICAgICAgIGNvZGVCbG9jay0+ZG9udE9wdGltaXplQW55dGltZVNvb24oKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICAKICAgICBpZiAodm9pZCogYWRkcmVzcyA9IERG
Rzo6cHJlcGFyZU9TUkVudHJ5KGNhbGxGcmFtZSwgb3B0aW1pemVkQ29kZUJsb2NrLCBieXRlY29k
ZUluZGV4KSkgewogICAgICAgICBpZiAoT3B0aW9uczo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCkpIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCShy
ZXZpc2lvbiAxNDc1ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRh
YmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDcgKzE2MCw3IEBAIEpTT2JqZWN0KiBFdmFs
RXhlY3V0YWJsZTo6Y29tcGlsZU9wdGltaXoKICAgICBBU1NFUlQoZXhlYy0+Z2xvYmFsRGF0YSgp
LmR5bmFtaWNHbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVCghIW1fZXZhbENvZGVCbG9jayk7CiAg
ICAgSlNPYmplY3QqIGVycm9yID0gMDsKLSAgICBpZiAobV9ldmFsQ29kZUJsb2NrLT5nZXRKSVRU
eXBlKCkgIT0gSklUQ29kZTo6dG9wVGllckpJVCgpKQorICAgIGlmICghSklUQ29kZTo6aXNPcHRp
bWl6aW5nSklUKG1fZXZhbENvZGVCbG9jay0+Z2V0SklUVHlwZSgpKSkKICAgICAgICAgZXJyb3Ig
PSBjb21waWxlSW50ZXJuYWwoZXhlYywgc2NvcGUsIEpJVENvZGU6Om5leHRUaWVySklUKG1fZXZh
bENvZGVCbG9jay0+Z2V0SklUVHlwZSgpKSwgYnl0ZWNvZGVJbmRleCk7CiAgICAgQVNTRVJUKCEh
bV9ldmFsQ29kZUJsb2NrKTsKICAgICByZXR1cm4gZXJyb3I7CkBAIC0xODIsNiArMTgyLDggQEAg
aW5saW5lIGNvbnN0IGNoYXIqIHNhbXBsaW5nRGVzY3JpcHRpb24oSgogICAgICAgICByZXR1cm4g
IkJhc2VsaW5lIENvbXBpbGF0aW9uIChUT1RBTCkiOwogICAgIGNhc2UgSklUQ29kZTo6REZHSklU
OgogICAgICAgICByZXR1cm4gIkRGRyBDb21waWxhdGlvbiAoVE9UQUwpIjsKKyAgICBjYXNlIEpJ
VENvZGU6OkZUTEpJVDoKKyAgICAgICAgcmV0dXJuICJGVEwgQ29tcGlsYXRpb24gKFRPVEFMKSI7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgcmV0dXJuIDA7CkBAIC0yOTEsNyArMjkzLDcgQEAgSlNPYmplY3QqIFByb2dyYW1FeGVj
dXRhYmxlOjpjb21waWxlT3B0aQogICAgIFJFTEVBU0VfQVNTRVJUKGV4ZWMtPmdsb2JhbERhdGEo
KS5keW5hbWljR2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoISFtX3Byb2dyYW1Db2RlQmxvY2sp
OwogICAgIEpTT2JqZWN0KiBlcnJvciA9IDA7Ci0gICAgaWYgKG1fcHJvZ3JhbUNvZGVCbG9jay0+
Z2V0SklUVHlwZSgpICE9IEpJVENvZGU6OnRvcFRpZXJKSVQoKSkKKyAgICBpZiAoIUpJVENvZGU6
OmlzT3B0aW1pemluZ0pJVChtX3Byb2dyYW1Db2RlQmxvY2stPmdldEpJVFR5cGUoKSkpCiAgICAg
ICAgIGVycm9yID0gY29tcGlsZUludGVybmFsKGV4ZWMsIHNjb3BlLCBKSVRDb2RlOjpuZXh0VGll
ckpJVChtX3Byb2dyYW1Db2RlQmxvY2stPmdldEpJVFR5cGUoKSksIGJ5dGVjb2RlSW5kZXgpOwog
ICAgIEFTU0VSVCghIW1fcHJvZ3JhbUNvZGVCbG9jayk7CiAgICAgcmV0dXJuIGVycm9yOwpAQCAt
NDU5LDcgKzQ2MSw3IEBAIEpTT2JqZWN0KiBGdW5jdGlvbkV4ZWN1dGFibGU6OmNvbXBpbGVPcHQK
ICAgICBSRUxFQVNFX0FTU0VSVChleGVjLT5nbG9iYWxEYXRhKCkuZHluYW1pY0dsb2JhbE9iamVj
dCk7CiAgICAgQVNTRVJUKCEhbV9jb2RlQmxvY2tGb3JDYWxsKTsKICAgICBKU09iamVjdCogZXJy
b3IgPSAwOwotICAgIGlmIChtX2NvZGVCbG9ja0ZvckNhbGwtPmdldEpJVFR5cGUoKSAhPSBKSVRD
b2RlOjp0b3BUaWVySklUKCkpCisgICAgaWYgKCFKSVRDb2RlOjppc09wdGltaXppbmdKSVQobV9j
b2RlQmxvY2tGb3JDYWxsLT5nZXRKSVRUeXBlKCkpKQogICAgICAgICBlcnJvciA9IGNvbXBpbGVG
b3JDYWxsSW50ZXJuYWwoZXhlYywgc2NvcGUsIEpJVENvZGU6Om5leHRUaWVySklUKG1fY29kZUJs
b2NrRm9yQ2FsbC0+Z2V0SklUVHlwZSgpKSwgYnl0ZWNvZGVJbmRleCk7CiAgICAgQVNTRVJUKCEh
bV9jb2RlQmxvY2tGb3JDYWxsKTsKICAgICByZXR1cm4gZXJyb3I7CkBAIC00NzAsNyArNDcyLDcg
QEAgSlNPYmplY3QqIEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y29tcGlsZU9wdAogICAgIFJFTEVBU0Vf
QVNTRVJUKGV4ZWMtPmdsb2JhbERhdGEoKS5keW5hbWljR2xvYmFsT2JqZWN0KTsKICAgICBBU1NF
UlQoISFtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdCk7CiAgICAgSlNPYmplY3QqIGVycm9yID0gMDsK
LSAgICBpZiAobV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3QtPmdldEpJVFR5cGUoKSAhPSBKSVRDb2Rl
Ojp0b3BUaWVySklUKCkpCisgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChtX2NvZGVC
bG9ja0ZvckNvbnN0cnVjdC0+Z2V0SklUVHlwZSgpKSkKICAgICAgICAgZXJyb3IgPSBjb21waWxl
Rm9yQ29uc3RydWN0SW50ZXJuYWwoZXhlYywgc2NvcGUsIEpJVENvZGU6Om5leHRUaWVySklUKG1f
Y29kZUJsb2NrRm9yQ29uc3RydWN0LT5nZXRKSVRUeXBlKCkpLCBieXRlY29kZUluZGV4KTsKICAg
ICBBU1NFUlQoISFtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdCk7CiAgICAgcmV0dXJuIGVycm9yOwo=
</data>
<flag name="review"
          id="218473"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
      

    </bug>

</bugzilla>