<?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>68677</bug_id>
          
          <creation_ts>2011-09-22 20:30:13 -0700</creation_ts>
          <short_desc>The DFG should not attempt to guess types in the absence of value profiles</short_desc>
          <delta_ts>2011-09-24 15:38:53 -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>
          <dependson>68676</dependson>
    
    <dependson>68723</dependson>
    
    <dependson>68763</dependson>
          <blocked>68593</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>472040</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-22 20:30:13 -0700</bug_when>
    <thetext>The DFG still has a bunch of code to try to guess the types of variables without knowing any information about how the code will run.  This is unnecessary now that we have continuous optimization.  The DFG should never attempt to speculate statically; instead points in the code where no sensible speculation can be made should turn into immediate OSR points into the old JIT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472041</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-22 20:31:37 -0700</bug_when>
    <thetext>This blocks https://bugs.webkit.org/show_bug.cgi?id=68593 because live range splitting should be done after parsing, but static predictions are made during parsing.  So, implementing 68593 while having to still deal with static predictions will result in a lot more cruft than we should have to put up with.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472825</commentid>
    <comment_count>2</comment_count>
      <attachid>108592</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-24 15:30:31 -0700</bug_when>
    <thetext>Created attachment 108592
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472826</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-24 15:38:53 -0700</bug_when>
    <thetext>Landed in r95916.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108592</attachid>
            <date>2011-09-24 15:30:31 -0700</date>
            <delta_ts>2011-09-24 15:33:09 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>forceosrexit_patch_1.diff</filename>
            <type>text/plain</type>
            <size>17797</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTU5MTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDAgQEAK
KzIwMTEtMDktMjQgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBU
aGUgREZHIHNob3VsZCBub3QgYXR0ZW1wdCB0byBndWVzcyB0eXBlcyBpbiB0aGUgYWJzZW5jZSBv
ZiB2YWx1ZQorICAgICAgICBwcm9maWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Njg2NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWRkcyB0aGUgRm9yY2VPU1JFeGl0IG5vZGUs
IHdoaWNoIGlzIGlnbm9yZWQgYnkgdGhlIHByb3BhZ2F0b3IKKyAgICAgICAgYW5kIHZpcnR1YWwg
cmVnaXN0ZXIgYWxsb2NhdG9yIChhbmQgaGVuY2UgZW5zdXJpbmcgdGhhdCBsaXZlbmVzcyBhbmFs
eXNpcworICAgICAgICB3b3JrcyBjb3JyZWN0bHkpLCBidXQgZm9yY2VzIHRlcm1pbmF0ZVNwZWN1
bGF0aXZlRXhlY3V0aW9uKCkgaW4gdGhlCisgICAgICAgIGJhY2stZW5kLiBUaGlzIGFwcGVhcnMg
dG8gYmUgYSBzbGlnaHQgc3BlZWQtdXAgb24gYmVuY2htYXJrIGF2ZXJhZ2VzLAorICAgICAgICB3
aXRoIH41JSBzd2luZ3Mgb24gaW5kaXZpZHVhbCBiZW5jaG1hcmtzLCBpbiBib3RoIGRpcmVjdGlv
bnMuIEJ1dCBpdCdzCisgICAgICAgIG5ldmVyIGEgcmVncmVzc2lvbiBvbiBhbnkgYXZlcmFnZSwg
YW5kIGFwcGVhcnMgdG8gYmUgYSB+MSUgcHJvZ3Jlc3Npb24KKyAgICAgICAgaW4gdGhlIFN1blNw
aWRlciBhdmVyYWdlLgorICAgICAgICAKKyAgICAgICAgVGhpcyBhbHNvIGFkZHMgYSBiaXQgYmV0
dGVyIGRlYnVnZ2luZyBzdXBwb3J0IGluIHRoZSBvbGQgSklUIGFuZCBpbiBERkcsCisgICAgICAg
IGFzIHRoaXMgd2FzIG5lY2Vzc2FyeSB0byBkZWJ1ZyB0aGUgbXVjaCBtb3JlIGZyZXF1ZW50IE9T
UiB0cmFuc2l0aW9ucworICAgICAgICB0aGF0IG9jY3VyIHdpdGggdGhpcyBjaGFuZ2UuCisKKyAg
ICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjphZGRDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNl
cjo6Z2V0U3Ryb25nUHJlZGljdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJz
ZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmV4aXRTcGVjdWxhdGl2ZVdpdGhPU1IpOgorICAg
ICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgICogZGZnL0RGR1Byb3BhZ2F0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlByb3BhZ2F0b3I6OnByb3BhZ2F0ZU5vZGVQcmVkaWN0aW9ucyk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJ
VDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVD
b21waWxlKToKKyAgICAgICAgKiBqaXQvSklULmg6CisKIDIwMTEtMDktMjQgIEdlb2ZmcmV5IEdh
cmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvY2F0ZSBuZXcgb2JqZWN0cyB1
bm1hcmtlZApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAJKHJldmlzaW9uIDk1OTEwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzMiwxOCArNDMyLDIx
IEBAIHByaXZhdGU6CiAgICAgCiAgICAgTm9kZUluZGV4IGFkZENhbGwoSW50ZXJwcmV0ZXIqIGlu
dGVycHJldGVyLCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBOb2RlVHlwZSBvcCkK
ICAgICB7CisgICAgICAgIEluc3RydWN0aW9uKiBwdXRJbnN0cnVjdGlvbiA9IGN1cnJlbnRJbnN0
cnVjdGlvbiArIE9QQ09ERV9MRU5HVEgob3BfY2FsbCk7CisKKyAgICAgICAgUHJlZGljdGVkVHlw
ZSBwcmVkaWN0aW9uID0gUHJlZGljdE5vbmU7CisgICAgICAgIGlmIChpbnRlcnByZXRlci0+Z2V0
T3Bjb2RlSUQocHV0SW5zdHJ1Y3Rpb24tPnUub3Bjb2RlKSA9PSBvcF9jYWxsX3B1dF9yZXN1bHQp
CisgICAgICAgICAgICBwcmVkaWN0aW9uID0gZ2V0U3Ryb25nUHJlZGljdGlvbihtX2dyYXBoLnNp
emUoKSwgbV9jdXJyZW50SW5kZXggKyBPUENPREVfTEVOR1RIKG9wX2NhbGwpKTsKKyAgICAgICAg
CiAgICAgICAgIGFkZFZhckFyZ0NoaWxkKGdldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kKSk7CiAgICAgICAgIGludCBhcmdDb3VudCA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9w
ZXJhbmQ7CiAgICAgICAgIGludCByZWdpc3Rlck9mZnNldCA9IGN1cnJlbnRJbnN0cnVjdGlvblsz
XS51Lm9wZXJhbmQ7CiAgICAgICAgIGludCBmaXJzdEFyZyA9IHJlZ2lzdGVyT2Zmc2V0IC0gYXJn
Q291bnQgLSBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemU7CiAgICAgICAgIGZvciAo
aW50IGFyZ0lkeCA9IGZpcnN0QXJnOyBhcmdJZHggPCBmaXJzdEFyZyArIGFyZ0NvdW50OyBhcmdJ
ZHgrKykKICAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKGdldChhcmdJZHgpKTsKLSAgICAgICAg
Tm9kZUluZGV4IGNhbGwgPSBhZGRUb0dyYXBoKE5vZGU6OlZhckFyZywgb3AsIE9wSW5mbygwKSwg
T3BJbmZvKFByZWRpY3ROb25lKSk7Ci0gICAgICAgIEluc3RydWN0aW9uKiBwdXRJbnN0cnVjdGlv
biA9IGN1cnJlbnRJbnN0cnVjdGlvbiArIE9QQ09ERV9MRU5HVEgob3BfY2FsbCk7Ci0gICAgICAg
IGlmIChpbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQocHV0SW5zdHJ1Y3Rpb24tPnUub3Bjb2RlKSA9
PSBvcF9jYWxsX3B1dF9yZXN1bHQpIHsKKyAgICAgICAgTm9kZUluZGV4IGNhbGwgPSBhZGRUb0dy
YXBoKE5vZGU6OlZhckFyZywgb3AsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pKTsKKyAg
ICAgICAgaWYgKGludGVycHJldGVyLT5nZXRPcGNvZGVJRChwdXRJbnN0cnVjdGlvbi0+dS5vcGNv
ZGUpID09IG9wX2NhbGxfcHV0X3Jlc3VsdCkKICAgICAgICAgICAgIHNldChwdXRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQsIGNhbGwpOwotICAgICAgICAgICAgc3Ryb25nbHlQcmVkaWN0KGNhbGws
IG1fY3VycmVudEluZGV4ICsgT1BDT0RFX0xFTkdUSChvcF9jYWxsKSk7Ci0gICAgICAgIH0KICAg
ICAgICAgaWYgKFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArICh1bnNpZ25lZClh
cmdDb3VudCA+IG1fcGFyYW1ldGVyU2xvdHMpCiAgICAgICAgICAgICBtX3BhcmFtZXRlclNsb3Rz
ID0gUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplICsgYXJnQ291bnQ7CiAgICAgICAg
IHJldHVybiBjYWxsOwpAQCAtNDg3LDcgKzQ5MCw2IEBAIHByaXZhdGU6CiAgICAgUHJlZGljdGVk
VHlwZSBnZXRTdHJvbmdQcmVkaWN0aW9uKE5vZGVJbmRleCBub2RlSW5kZXgsIHVuc2lnbmVkIGJ5
dGVjb2RlSW5kZXgpCiAgICAgewogICAgICAgICBVTlVTRURfUEFSQU0obm9kZUluZGV4KTsKLSAg
ICAgICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5kZXgpOwogICAgICAgICAKICAgICAgICAgVmFs
dWVQcm9maWxlKiBwcm9maWxlID0gbV9wcm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JCeXRl
Y29kZU9mZnNldChieXRlY29kZUluZGV4KTsKICAgICAgICAgQVNTRVJUKHByb2ZpbGUpOwpAQCAt
NDk1LDE5ICs0OTcsMjEgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoREZHX0RFQlVHX1ZFUkJPU0Up
CiAgICAgICAgIHByaW50ZigiRHluYW1pYyBbQCV1LCBiYyMldV0gcHJlZGljdGlvbjogJXNcbiIs
IG5vZGVJbmRleCwgYnl0ZWNvZGVJbmRleCwgcHJlZGljdGlvblRvU3RyaW5nKHByZWRpY3Rpb24p
KTsKICNlbmRpZgorICAgICAgICAKKyAgICAgICAgaWYgKHByZWRpY3Rpb24gPT0gUHJlZGljdE5v
bmUpIHsKKyAgICAgICAgICAgIC8vIFdlIGhhdmUgbm8gaW5mb3JtYXRpb24gYWJvdXQgd2hhdCB2
YWx1ZXMgdGhpcyBub2RlIGdlbmVyYXRlcy4gR2l2ZSB1cAorICAgICAgICAgICAgLy8gb24gZXhl
Y3V0aW5nIHRoaXMgY29kZSwgc2luY2Ugd2UncmUgbGlrZWx5IHRvIGRvIG1vcmUgZGFtYWdlIHRo
YW4gZ29vZC4KKyAgICAgICAgICAgIGFkZFRvR3JhcGgoRm9yY2VPU1JFeGl0KTsKKyAgICAgICAg
fQorICAgICAgICAKICAgICAgICAgcmV0dXJuIHByZWRpY3Rpb247CiAgICAgfQogICAgIAotICAg
IHZvaWQgc3Ryb25nbHlQcmVkaWN0KE5vZGVJbmRleCBub2RlSW5kZXgsIHVuc2lnbmVkIGJ5dGVj
b2RlSW5kZXgpCi0gICAgewotICAgICAgICBtX2dyYXBoW25vZGVJbmRleF0ucHJlZGljdChnZXRT
dHJvbmdQcmVkaWN0aW9uKG5vZGVJbmRleCwgYnl0ZWNvZGVJbmRleCkgJiB+UHJlZGljdGlvblRh
Z01hc2ssIFN0cm9uZ1ByZWRpY3Rpb24pOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHN0cm9uZ2x5
UHJlZGljdChOb2RlSW5kZXggbm9kZUluZGV4KQorICAgIFByZWRpY3RlZFR5cGUgZ2V0U3Ryb25n
UHJlZGljdGlvbigpCiAgICAgewotICAgICAgICBzdHJvbmdseVByZWRpY3Qobm9kZUluZGV4LCBt
X2N1cnJlbnRJbmRleCk7CisgICAgICAgIHJldHVybiBnZXRTdHJvbmdQcmVkaWN0aW9uKG1fZ3Jh
cGguc2l6ZSgpLCBtX2N1cnJlbnRJbmRleCk7CiAgICAgfQotICAgIAorCiAgICAgTm9kZUluZGV4
IG1ha2VTYWZlKE5vZGVJbmRleCBub2RlSW5kZXgpCiAgICAgewogICAgICAgICBpZiAoIW1fcHJv
ZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UobV9jdXJyZW50SW5kZXgpKQpAQCAtMTA1
OCwxNCArMTA2MiwxNSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVk
CiAgICAgICAgIC8vID09PSBQcm9wZXJ0eSBhY2Nlc3Mgb3BlcmF0aW9ucyA9PT0KIAogICAgICAg
ICBjYXNlIG9wX2dldF9ieV92YWw6IHsKKyAgICAgICAgICAgIFByZWRpY3RlZFR5cGUgcHJlZGlj
dGlvbiA9IGdldFN0cm9uZ1ByZWRpY3Rpb24oKTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAg
Tm9kZUluZGV4IGJhc2UgPSBnZXQoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCk7CiAg
ICAgICAgICAgICBOb2RlSW5kZXggcHJvcGVydHkgPSBnZXQoY3VycmVudEluc3RydWN0aW9uWzNd
LnUub3BlcmFuZCk7CiAgICAgICAgICAgICB3ZWFrbHlQcmVkaWN0QXJyYXkoYmFzZSk7CiAgICAg
ICAgICAgICB3ZWFrbHlQcmVkaWN0SW50MzIocHJvcGVydHkpOwogCi0gICAgICAgICAgICBOb2Rl
SW5kZXggZ2V0QnlWYWwgPSBhZGRUb0dyYXBoKEdldEJ5VmFsLCBPcEluZm8oMCksIE9wSW5mbyhQ
cmVkaWN0Tm9uZSksIGJhc2UsIHByb3BlcnR5KTsKKyAgICAgICAgICAgIE5vZGVJbmRleCBnZXRC
eVZhbCA9IGFkZFRvR3JhcGgoR2V0QnlWYWwsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24p
LCBiYXNlLCBwcm9wZXJ0eSk7CiAgICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZCwgZ2V0QnlWYWwpOwotICAgICAgICAgICAgc3Ryb25nbHlQcmVkaWN0KGdldEJ5
VmFsKTsKIAogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZ2V0X2J5X3ZhbCk7CiAgICAgICAg
IH0KQEAgLTEwODUsNiArMTA5MCw4IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2so
dW5zaWduZWQKICAgICAgICAgY2FzZSBvcF9tZXRob2RfY2hlY2s6IHsKICAgICAgICAgICAgIElu
c3RydWN0aW9uKiBnZXRJbnN0cnVjdGlvbiA9IGN1cnJlbnRJbnN0cnVjdGlvbiArIE9QQ09ERV9M
RU5HVEgob3BfbWV0aG9kX2NoZWNrKTsKICAgICAgICAgICAgIAorICAgICAgICAgICAgUHJlZGlj
dGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0U3Ryb25nUHJlZGljdGlvbigpOworICAgICAgICAgICAg
CiAgICAgICAgICAgICBBU1NFUlQoaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKGdldEluc3RydWN0
aW9uLT51Lm9wY29kZSkgPT0gb3BfZ2V0X2J5X2lkKTsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgTm9kZUluZGV4IGJhc2UgPSBnZXQoZ2V0SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKTsKQEAg
LTExMDksMjIgKzExMTYsMjEgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNp
Z25lZAogICAgICAgICAgICAgICAgIG1ldGhvZENoZWNrRGF0YS5wcm90b3R5cGUgPSBtZXRob2RD
YWxsLmNhY2hlZFByb3RvdHlwZS5nZXQoKTsKICAgICAgICAgICAgICAgICBtX2dyYXBoLm1fbWV0
aG9kQ2hlY2tEYXRhLmFwcGVuZChtZXRob2RDaGVja0RhdGEpOwogICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBOb2RlSW5kZXggZ2V0TWV0aG9kID0gYWRkVG9HcmFwaChHZXRN
ZXRob2QsIE9wSW5mbyhpZGVudGlmaWVyKSwgT3BJbmZvKFByZWRpY3ROb25lKSwgYmFzZSk7Cisg
ICAgICAgICAgICAgICAgTm9kZUluZGV4IGdldE1ldGhvZCA9IGFkZFRvR3JhcGgoR2V0TWV0aG9k
LCBPcEluZm8oaWRlbnRpZmllciksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSk7CiAgICAgICAg
ICAgICAgICAgc2V0KGdldEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgZ2V0TWV0aG9kKTsKLSAg
ICAgICAgICAgICAgICBzdHJvbmdseVByZWRpY3QoZ2V0TWV0aG9kKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9jdXJyZW50SW5kZXggKz0gT1BDT0RFX0xFTkdU
SChvcF9tZXRob2RfY2hlY2spICsgT1BDT0RFX0xFTkdUSChvcF9nZXRfYnlfaWQpOwogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9nZXRfc2NvcGVkX3Zh
cjogeworICAgICAgICAgICAgUHJlZGljdGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0U3Ryb25nUHJl
ZGljdGlvbigpOwogICAgICAgICAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgc2xvdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgZGVwdGggPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kOwogICAgICAgICAgICAgTm9kZUluZGV4IGdldFNjb3BlQ2hhaW4gPSBhZGRUb0dy
YXBoKEdldFNjb3BlQ2hhaW4sIE9wSW5mbyhkZXB0aCkpOwotICAgICAgICAgICAgTm9kZUluZGV4
IGdldFNjb3BlZFZhciA9IGFkZFRvR3JhcGgoR2V0U2NvcGVkVmFyLCBPcEluZm8oc2xvdCksIE9w
SW5mbyhQcmVkaWN0Tm9uZSksIGdldFNjb3BlQ2hhaW4pOworICAgICAgICAgICAgTm9kZUluZGV4
IGdldFNjb3BlZFZhciA9IGFkZFRvR3JhcGgoR2V0U2NvcGVkVmFyLCBPcEluZm8oc2xvdCksIE9w
SW5mbyhwcmVkaWN0aW9uKSwgZ2V0U2NvcGVDaGFpbik7CiAgICAgICAgICAgICBzZXQoZHN0LCBn
ZXRTY29wZWRWYXIpOwotICAgICAgICAgICAgc3Ryb25nbHlQcmVkaWN0KGdldFNjb3BlZFZhcik7
CiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9nZXRfc2NvcGVkX3Zhcik7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBvcF9wdXRfc2NvcGVkX3ZhcjogewpAQCAtMTEzNiw2ICsxMTQyLDggQEAg
Ym9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICAgICAgTkVY
VF9PUENPREUob3BfcHV0X3Njb3BlZF92YXIpOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bf
Z2V0X2J5X2lkOiB7CisgICAgICAgICAgICBQcmVkaWN0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRT
dHJvbmdQcmVkaWN0aW9uKCk7CisgICAgICAgICAgICAKICAgICAgICAgICAgIE5vZGVJbmRleCBi
YXNlID0gZ2V0KGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpOwogICAgICAgICAgICAg
dW5zaWduZWQgaWRlbnRpZmllck51bWJlciA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJh
bmQ7CiAgICAgICAgICAgICAKQEAgLTExNDgsNyArMTE1Niw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJz
ZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0ID0g
c3RydWN0dXJlLT5nZXQoKm1fZ2xvYmFsRGF0YSwgaWRlbnRpZmllcik7CiAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCAhPSBub3RGb3VuZCkgewotICAgICAgICAg
ICAgICAgICAgICBnZXRCeUlkID0gYWRkVG9HcmFwaChHZXRCeU9mZnNldCwgT3BJbmZvKG1fZ3Jh
cGgubV9zdG9yYWdlQWNjZXNzRGF0YS5zaXplKCkpLCBPcEluZm8oUHJlZGljdE5vbmUpLCBhZGRU
b0dyYXBoKENoZWNrU3RydWN0dXJlLCBPcEluZm8oc3RydWN0dXJlKSwgYmFzZSkpOworICAgICAg
ICAgICAgICAgICAgICBnZXRCeUlkID0gYWRkVG9HcmFwaChHZXRCeU9mZnNldCwgT3BJbmZvKG1f
Z3JhcGgubV9zdG9yYWdlQWNjZXNzRGF0YS5zaXplKCkpLCBPcEluZm8ocHJlZGljdGlvbiksIGFk
ZFRvR3JhcGgoQ2hlY2tTdHJ1Y3R1cmUsIE9wSW5mbyhzdHJ1Y3R1cmUpLCBiYXNlKSk7CiAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBTdG9yYWdlQWNjZXNzRGF0YSBz
dG9yYWdlQWNjZXNzRGF0YTsKICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZUFjY2Vzc0RhdGEu
b2Zmc2V0ID0gb2Zmc2V0OwpAQCAtMTE1OCwxMCArMTE2Niw5IEBAIGJvb2wgQnl0ZUNvZGVQYXJz
ZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAg
ICAgICAgICAgaWYgKGdldEJ5SWQgPT0gTm9Ob2RlKQotICAgICAgICAgICAgICAgIGdldEJ5SWQg
PSBhZGRUb0dyYXBoKEdldEJ5SWQsIE9wSW5mbyhpZGVudGlmaWVyTnVtYmVyKSwgT3BJbmZvKFBy
ZWRpY3ROb25lKSwgYmFzZSk7CisgICAgICAgICAgICAgICAgZ2V0QnlJZCA9IGFkZFRvR3JhcGgo
R2V0QnlJZCwgT3BJbmZvKGlkZW50aWZpZXJOdW1iZXIpLCBPcEluZm8ocHJlZGljdGlvbiksIGJh
c2UpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZCwgZ2V0QnlJZCk7Ci0gICAgICAgICAgICBzdHJvbmdseVByZWRpY3QoZ2V0QnlJ
ZCk7CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2dldF9ieV9pZCk7CiAgICAgICAgIH0K
QEAgLTExODEsOSArMTE4OCwxMSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVu
c2lnbmVkCiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIG9wX2dldF9nbG9iYWxfdmFyOiB7Cisg
ICAgICAgICAgICBQcmVkaWN0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRTdHJvbmdQcmVkaWN0aW9u
KCk7CisgICAgICAgICAgICAKICAgICAgICAgICAgIE5vZGVJbmRleCBnZXRHbG9iYWxWYXIgPSBh
ZGRUb0dyYXBoKEdldEdsb2JhbFZhciwgT3BJbmZvKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9w
ZXJhbmQpKTsKICAgICAgICAgICAgIHNldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
LCBnZXRHbG9iYWxWYXIpOwotICAgICAgICAgICAgbV9ncmFwaC5wcmVkaWN0R2xvYmFsVmFyKGN1
cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQsIGdldFN0cm9uZ1ByZWRpY3Rpb24oZ2V0R2xv
YmFsVmFyLCBtX2N1cnJlbnRJbmRleCkgJiB+UHJlZGljdGlvblRhZ01hc2ssIFN0cm9uZ1ByZWRp
Y3Rpb24pOworICAgICAgICAgICAgbV9ncmFwaC5wcmVkaWN0R2xvYmFsVmFyKGN1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmQsIHByZWRpY3Rpb24gJiB+UHJlZGljdGlvblRhZ01hc2ssIFN0
cm9uZ1ByZWRpY3Rpb24pOwogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZ2V0X2dsb2JhbF92
YXIpOwogICAgICAgICB9CiAKQEAgLTE0MTUsMzMgKzE0MjQsMzYgQEAgYm9vbCBCeXRlQ29kZVBh
cnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfY2Fs
bF9wdXRfcmVzdWx0KTsKIAogICAgICAgICBjYXNlIG9wX3Jlc29sdmU6IHsKKyAgICAgICAgICAg
IFByZWRpY3RlZFR5cGUgcHJlZGljdGlvbiA9IGdldFN0cm9uZ1ByZWRpY3Rpb24oKTsKKyAgICAg
ICAgICAgIAogICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRpZmllciA9IGN1cnJlbnRJbnN0cnVj
dGlvblsyXS51Lm9wZXJhbmQ7CiAKLSAgICAgICAgICAgIE5vZGVJbmRleCByZXNvbHZlID0gYWRk
VG9HcmFwaChSZXNvbHZlLCBPcEluZm8oaWRlbnRpZmllciksIE9wSW5mbyhQcmVkaWN0Tm9uZSkp
OworICAgICAgICAgICAgTm9kZUluZGV4IHJlc29sdmUgPSBhZGRUb0dyYXBoKFJlc29sdmUsIE9w
SW5mbyhpZGVudGlmaWVyKSwgT3BJbmZvKHByZWRpY3Rpb24pKTsKICAgICAgICAgICAgIHNldChj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZXNvbHZlKTsKLSAgICAgICAgICAgIHN0
cm9uZ2x5UHJlZGljdChyZXNvbHZlKTsKIAogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfcmVz
b2x2ZSk7CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIG9wX3Jlc29sdmVfYmFzZTogeworICAg
ICAgICAgICAgUHJlZGljdGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0U3Ryb25nUHJlZGljdGlvbigp
OworICAgICAgICAgICAgCiAgICAgICAgICAgICB1bnNpZ25lZCBpZGVudGlmaWVyID0gY3VycmVu
dEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKIAotICAgICAgICAgICAgTm9kZUluZGV4IHJlc29s
dmUgPSBhZGRUb0dyYXBoKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQgPyBSZXNvbHZl
QmFzZVN0cmljdFB1dCA6IFJlc29sdmVCYXNlLCBPcEluZm8oaWRlbnRpZmllciksIE9wSW5mbyhQ
cmVkaWN0Tm9uZSkpOworICAgICAgICAgICAgTm9kZUluZGV4IHJlc29sdmUgPSBhZGRUb0dyYXBo
KGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQgPyBSZXNvbHZlQmFzZVN0cmljdFB1dCA6
IFJlc29sdmVCYXNlLCBPcEluZm8oaWRlbnRpZmllciksIE9wSW5mbyhwcmVkaWN0aW9uKSk7CiAg
ICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVzb2x2ZSk7
Ci0gICAgICAgICAgICBzdHJvbmdseVByZWRpY3QocmVzb2x2ZSk7CiAKICAgICAgICAgICAgIE5F
WFRfT1BDT0RFKG9wX3Jlc29sdmVfYmFzZSk7CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAg
ICAgICBjYXNlIG9wX3Jlc29sdmVfZ2xvYmFsOiB7Ci0gICAgICAgICAgICBOb2RlSW5kZXggcmVz
b2x2ZSA9IGFkZFRvR3JhcGgoUmVzb2x2ZUdsb2JhbCwgT3BJbmZvKG1fZ3JhcGgubV9yZXNvbHZl
R2xvYmFsRGF0YS5zaXplKCkpLCBPcEluZm8oUHJlZGljdE5vbmUpKTsKKyAgICAgICAgICAgIFBy
ZWRpY3RlZFR5cGUgcHJlZGljdGlvbiA9IGdldFN0cm9uZ1ByZWRpY3Rpb24oKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgTm9kZUluZGV4IHJlc29sdmUgPSBhZGRUb0dyYXBoKFJlc29sdmVH
bG9iYWwsIE9wSW5mbyhtX2dyYXBoLm1fcmVzb2x2ZUdsb2JhbERhdGEuc2l6ZSgpKSwgT3BJbmZv
KHByZWRpY3Rpb24pKTsKICAgICAgICAgICAgIG1fZ3JhcGgubV9yZXNvbHZlR2xvYmFsRGF0YS5h
cHBlbmQoUmVzb2x2ZUdsb2JhbERhdGEoKSk7CiAgICAgICAgICAgICBSZXNvbHZlR2xvYmFsRGF0
YSYgZGF0YSA9IG1fZ3JhcGgubV9yZXNvbHZlR2xvYmFsRGF0YS5sYXN0KCk7CiAgICAgICAgICAg
ICBkYXRhLmlkZW50aWZpZXJOdW1iZXIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
OwogICAgICAgICAgICAgZGF0YS5yZXNvbHZlSW5mb0luZGV4ID0gbV9nbG9iYWxSZXNvbHZlTnVt
YmVyKys7CiAgICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwg
cmVzb2x2ZSk7Ci0gICAgICAgICAgICBzdHJvbmdseVByZWRpY3QocmVzb2x2ZSk7CiAKICAgICAg
ICAgICAgIE5FWFRfT1BDT0RFKG9wX3Jlc29sdmVfZ2xvYmFsKTsKICAgICAgICAgfQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHJldmlzaW9u
IDk1OTEwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEwOSwxMCArMTA5LDYgQEAgdm9pZCBKSVRDb21waWxlcjo6ZXhp
dFNwZWN1bGF0aXZlV2l0aE9TUgogICAgIGZwcmludGYoc3RkZXJyLCAiT1NSIGV4aXQgZm9yIE5v
ZGUgQCVkIChiYyMldSkgYXQgSklUIG9mZnNldCAweCV4ICAgIiwgKGludClleGl0Lm1fbm9kZUlu
ZGV4LCBleGl0Lm1fYnl0ZWNvZGVJbmRleCwgZGVidWdPZmZzZXQoKSk7CiAgICAgZXhpdC5kdW1w
KHN0ZGVycik7CiAjZW5kaWYKLSNpZiBFTkFCTEUoREZHX0pJVF9CUkVBS19PTl9TUEVDVUxBVElP
Tl9GQUlMVVJFKQotICAgIGJyZWFrcG9pbnQoKTsKLSNlbmRpZgotICAgIAogI2lmIEVOQUJMRShE
RkdfVkVSQk9TRV9TUEVDVUxBVElPTl9GQUlMVVJFKQogICAgIFNwZWN1bGF0aW9uRmFpbHVyZURl
YnVnSW5mbyogZGVidWdJbmZvID0gbmV3IFNwZWN1bGF0aW9uRmFpbHVyZURlYnVnSW5mbzsKICAg
ICBkZWJ1Z0luZm8tPmNvZGVCbG9jayA9IG1fY29kZUJsb2NrOwpAQCAtMTIxLDYgKzExNywxMCBA
QCB2b2lkIEpJVENvbXBpbGVyOjpleGl0U3BlY3VsYXRpdmVXaXRoT1NSCiAgICAgZGVidWdDYWxs
KGRlYnVnT3BlcmF0aW9uUHJpbnRTcGVjdWxhdGlvbkZhaWx1cmUsIGRlYnVnSW5mbyk7CiAjZW5k
aWYKICAgICAKKyNpZiBFTkFCTEUoREZHX0pJVF9CUkVBS19PTl9TUEVDVUxBVElPTl9GQUlMVVJF
KQorICAgIGJyZWFrcG9pbnQoKTsKKyNlbmRpZgorICAgIAogI2lmIEVOQUJMRShERkdfU1VDQ0VT
U19TVEFUUykKICAgICBzdGF0aWMgU2FtcGxpbmdDb3VudGVyIGNvdW50ZXIoIlNwZWN1bGF0aW9u
RmFpbHVyZSIpOwogICAgIGVtaXRDb3VudChjb3VudGVyKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiA5NTkxMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMDUsNyArMzA1LDEyIEBAIHN0YXRp
YyBpbmxpbmUgY29uc3QgY2hhciogYXJpdGhOb2RlRmxhZ3MKICAgICBtYWNybyhCcmFuY2gsIE5v
ZGVNdXN0R2VuZXJhdGUgfCBOb2RlSXNUZXJtaW5hbCB8IE5vZGVJc0JyYW5jaCkgXAogICAgIG1h
Y3JvKFJldHVybiwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVJc1Rlcm1pbmFsKSBcCiAgICAgbWFj
cm8oVGhyb3csIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSXNUZXJtaW5hbCkgXAotICAgIG1hY3Jv
KFRocm93UmVmZXJlbmNlRXJyb3IsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSXNUZXJtaW5hbCkK
KyAgICBtYWNybyhUaHJvd1JlZmVyZW5jZUVycm9yLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUlz
VGVybWluYWwpIFwKKyAgICBcCisgICAgLyogVGhpcyBpcyBhIHBzZXVkby10ZXJtaW5hbC4gSXQg
bWVhbnMgdGhhdCBleGVjdXRpb24gc2hvdWxkIGZhbGwgb3V0IG9mIERGRyBhdCAqL1wKKyAgICAv
KiB0aGlzIHBvaW50LCBidXQgZXhlY3V0aW9uIGRvZXMgY29udGludWUgaW4gdGhlIGJhc2ljIGJs
b2NrIC0ganVzdCBpbiBhICovXAorICAgIC8qIGRpZmZlcmVudCBjb21waWxlci4gKi9cCisgICAg
bWFjcm8oRm9yY2VPU1JFeGl0LCBOb2RlTXVzdEdlbmVyYXRlKQogCiAvLyBUaGlzIGVudW0gZ2Vu
ZXJhdGVzIGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGlkIGZvciBhbGwgTm9kZSB0eXBlcywK
IC8vIGFuZCBpcyB1c2VkIGJ5IHRoZSBzdWJzZXF1ZW50IGVudW0gdG8gZmlsbCBvdXQgdGhlIGlk
IChhcyBhY2Nlc3NlZCB2aWEgdGhlIE5vZGVJZE1hc2spLgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcm9wYWdhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1Byb3BhZ2F0b3IuY3BwCShyZXZpc2lvbiA5NTkxMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJvcGFnYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTYwNiw2ICs2MDYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFBoaToKICAgICAgICAgY2Fz
ZSBUaHJvdzoKICAgICAgICAgY2FzZSBUaHJvd1JlZmVyZW5jZUVycm9yOgorICAgICAgICBjYXNl
IEZvcmNlT1NSRXhpdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAg
IC8vIFRoaXMgZ2V0cyBpZ25vcmVkIGJlY2F1c2UgaXQgZG9lc24ndCBkbyBhbnl0aGluZy4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CShyZXZpc2lvbiA5NTkxMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDg5LDYgKzIwODksMTEgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICBqc1ZhbHVlUmVzdWx0
KHJlc3VsdEdQUiwgbV9jb21waWxlSW5kZXgpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAg
ICAgIAorICAgIGNhc2UgRm9yY2VPU1JFeGl0OiB7CisgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0
aXZlRXhlY3V0aW9uKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KIAogICAgIGNhc2UgUGhhbnRv
bToKICAgICAgICAgLy8gVGhpcyBpcyBhIG5vLW9wLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmNwcAkocmV2aXNpb24gOTU5MTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMSw2ICsyMTEsMTAgQEAgdm9pZCBKSVQ6OnByaXZh
dGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBpZiAobV9jYW5CZU9wdGltaXplZCkKICAgICAg
ICAgICAgIG1faml0Q29kZU1hcEVuY29kZXIuYXBwZW5kKG1fYnl0ZWNvZGVPZmZzZXQsIGRpZmZl
cmVuY2VCZXR3ZWVuKG1fc3RhcnRPZkNvZGUsIGxhYmVsKCkpKTsKICNlbmRpZgorICAgICAgICAK
KyNpZiBFTkFCTEUoSklUX1ZFUkJPU0UpCisgICAgICAgIHByaW50ZigiT2xkIEpJVCBlbWl0dGlu
ZyBjb2RlIGZvciBiYyMldSBhdCBvZmZzZXQgMHglbHguXG4iLCBtX2J5dGVjb2RlT2Zmc2V0LCBk
aWZmZXJlbmNlQmV0d2VlbihtX3N0YXJ0T2ZDb2RlLCBsYWJlbCgpKSk7CisjZW5kaWYKIAogICAg
ICAgICBzd2l0Y2ggKG1faW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKGN1cnJlbnRJbnN0cnVjdGlv
bi0+dS5vcGNvZGUpKSB7CiAgICAgICAgIERFRklORV9CSU5BUllfT1Aob3BfZGVsX2J5X3ZhbCkK
QEAgLTQyMCw2ICs0MjQsMTAgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkK
ICAgICAgICAgICAgIHJhcmVDYXNlUHJvZmlsZSA9IG1fY29kZUJsb2NrLT5hZGRSYXJlQ2FzZVBy
b2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShKSVRfVkVSQk9T
RSkKKyAgICAgICAgcHJpbnRmKCJPbGQgSklUIGVtaXR0aW5nIHNsb3cgY29kZSBmb3IgYmMjJXUg
YXQgb2Zmc2V0IDB4JWx4LlxuIiwgbV9ieXRlY29kZU9mZnNldCwgZGlmZmVyZW5jZUJldHdlZW4o
bV9zdGFydE9mQ29kZSwgbGFiZWwoKSkpOworI2VuZGlmCisKICAgICAgICAgc3dpdGNoIChtX2lu
dGVycHJldGVyLT5nZXRPcGNvZGVJRChjdXJyZW50SW5zdHJ1Y3Rpb24tPnUub3Bjb2RlKSkgewog
ICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfYWRkKQogICAgICAgICBERUZJTkVfU0xPV0NB
U0VfT1Aob3BfYml0YW5kKQpAQCAtNjcxLDcgKzY3OSwxMyBAQCBKSVRDb2RlIEpJVDo6cHJpdmF0
ZUNvbXBpbGUoQ29kZVB0ciogZnVuCiAgICAgaWYgKG1fY29kZUJsb2NrLT5jb2RlVHlwZSgpID09
IEZ1bmN0aW9uQ29kZSAmJiBmdW5jdGlvbkVudHJ5QXJpdHlDaGVjaykKICAgICAgICAgKmZ1bmN0
aW9uRW50cnlBcml0eUNoZWNrID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihhcml0eUNoZWNrKTsK
ICAgICAKLSAgICByZXR1cm4gSklUQ29kZShwYXRjaEJ1ZmZlci5maW5hbGl6ZUNvZGUoKSwgSklU
Q29kZTo6QmFzZWxpbmVKSVQpOworICAgIENvZGVSZWYgcmVzdWx0ID0gcGF0Y2hCdWZmZXIuZmlu
YWxpemVDb2RlKCk7CisgICAgCisjaWYgRU5BQkxFKEpJVF9WRVJCT1NFKQorICAgIHByaW50Zigi
SklUIGdlbmVyYXRlZCBjb2RlIGZvciAlcCBhdCBbJXAsICVwKS5cbiIsIG1fY29kZUJsb2NrLCBy
ZXN1bHQuZXhlY3V0YWJsZU1lbW9yeSgpLT5zdGFydCgpLCByZXN1bHQuZXhlY3V0YWJsZU1lbW9y
eSgpLT5lbmQoKSk7CisjZW5kaWYKKyAgICAKKyAgICByZXR1cm4gSklUQ29kZShyZXN1bHQsIEpJ
VENvZGU6OkJhc2VsaW5lSklUKTsKIH0KIAogdm9pZCBKSVQ6OmxpbmtGb3IoSlNGdW5jdGlvbiog
Y2FsbGVlLCBDb2RlQmxvY2sqIGNhbGxlckNvZGVCbG9jaywgQ29kZUJsb2NrKiBjYWxsZWVDb2Rl
QmxvY2ssIEpJVDo6Q29kZVB0ciBjb2RlLCBDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbywgaW50
IGNhbGxlckFyZ0NvdW50LCBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIENvZGVTcGVjaWFsaXph
dGlvbktpbmQga2luZCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gOTU5
MTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisvLyBWZXJib3NlIGxvZ2dpbmcg
b2YgY29kZSBnZW5lcmF0aW9uCisjZGVmaW5lIEVOQUJMRV9KSVRfVkVSQk9TRSAwCiAvLyBWZXJi
b3NlIGxvZ2dpbmcgZm9yIE9TUi1yZWxhdGVkIGNvZGUuCiAjZGVmaW5lIEVOQUJMRV9KSVRfVkVS
Qk9TRV9PU1IgMAogCg==
</data>
<flag name="review"
          id="105599"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>