<?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>69883</bug_id>
          
          <creation_ts>2011-10-11 16:56:10 -0700</creation_ts>
          <short_desc>Tidy up card walking logic</short_desc>
          <delta_ts>2011-10-11 17:24:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>482045</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-10-11 16:56:10 -0700</bug_when>
    <thetext>Tidy up card walking logic</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482048</commentid>
    <comment_count>1</comment_count>
      <attachid>110609</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-10-11 16:57:59 -0700</bug_when>
    <thetext>Created attachment 110609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482062</commentid>
    <comment_count>2</comment_count>
      <attachid>110612</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-10-11 17:15:14 -0700</bug_when>
    <thetext>Created attachment 110612
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482072</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-10-11 17:24:14 -0700</bug_when>
    <thetext>Committed r97203: &lt;http://trac.webkit.org/changeset/97203&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110609</attachid>
            <date>2011-10-11 16:57:59 -0700</date>
            <delta_ts>2011-10-11 17:15:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69883-20111011165758.patch</filename>
            <type>text/plain</type>
            <size>13071</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxOTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2
MjgyYzgzYzJlNjllYjQ1OGE5NWY1NmY2OWY1ZTBhZDAwNWYyMzQuLmIzNDdiZGQ0M2MzMzY0YjFh
NmM3ZTEyY2RmM2NiZmU1MDczNjM4OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM1IEBACisyMDExLTEwLTExICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgVGlkeSB1cCBjYXJkIHdhbGtpbmcgbG9naWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3BlY2lhbCBjYXNlIGNvbW1vbiBjZWxsIHNpemVz
IHdoZW4gd2Fsa2luZyBhIGJsb2NrJ3MKKyAgICAgICAgY2FyZHMuCisKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAgICBHQyBsb2dn
aW5nIHVzZXMgZXhpdCB0aW1lIGRlc3RydWN0b3JzLCBzbyBkaXNhYmxlCisgICAgICAgICAgIHRo
ZSB3YXJuaW5nIGZvciB0aGVtIG9uIEhlYXAuY3BwCisgICAgICAgICogaGVhcC9DYXJkU2V0Lmg6
CisgICAgICAgIChKU0M6Ojo6dGVzdEFuZENsZWFyKToKKyAgICAgICAgKiBoZWFwL0hlYXAuY3Bw
OgorICAgICAgICAoSlNDOjpHQ1RpbWVyOjpHQ0NvdW50ZXI6OkdDQ291bnRlcik6CisgICAgICAg
IChKU0M6OkdDVGltZXI6OkdDQ291bnRlcjo6Y291bnQpOgorICAgICAgICAoSlNDOjpHQ1RpbWVy
OjpHQ0NvdW50ZXI6On5HQ0NvdW50ZXIpOgorICAgICAgICAoSlNDOjpIZWFwOjptYXJrUm9vdHMp
OgorICAgICAgICAqIGhlYXAvTWFya1N0YWNrLmNwcDoKKyAgICAgICAgKEpTQzo6TWFya1N0YWNr
OjpyZXNldCk6CisgICAgICAgICogaGVhcC9NYXJrU3RhY2suaDoKKyAgICAgICAgKEpTQzo6TWFy
a1N0YWNrOjp2aXNpdENvdW50KToKKyAgICAgICAgKEpTQzo6TWFya1N0YWNrOjpNYXJrU3RhY2sp
OgorICAgICAgICAoSlNDOjpNYXJrU3RhY2s6OmFwcGVuZCk6CisgICAgICAgICogaGVhcC9NYXJr
ZWRCbG9jay5oOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6Z2F0aGVyRGlydHlDZWxsc1dp
dGhTaXplKToKKyAgICAgICAgKEpTQzo6TWFya2VkQmxvY2s6OmdhdGhlckRpcnR5Q2VsbHMpOgor
ICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAgIChKU0M6Ok1hcmtTdGFjazo6
aW50ZXJuYWxBcHBlbmQpOgorCiAyMDExLTEwLTExICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgREZHIHZpcnR1YWwgcmVnaXN0ZXIgYWxsb2NhdG9yIHNob3VsZCBi
ZSBtb3JlIGFnZ3Jlc3NpdmUgaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTEz
NGU3NzRhODBhNTU1OTY1YTU3NTVmNGE2YTZiMjE0ZTAzODAzMS4uMTUzZDJmMDQzZjcwYzM2Yzhh
NGM4MTRhODlkYjc0ZjliNGJmMzVkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTIxOCw3ICsyMTgsNyBAQAogCQkxNEI3MjNCODEyRDdEQTZGMDAzQkQ1RUQgLyogTWFjaGluZVN0
YWNrTWFya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNEI3MjM0MDEyRDdEMERBMDAzQkQ1RUQgLyogTWFjaGluZVN0YWNrTWFya2VyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTRCOEVDNzIwQTU2
NTIwOTAwNjJCRTU0IC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjBBNENGMDRCM0IzRTcwMDhBRTk1
MiAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CiAJCTE0QkE3OEYxMTNBQUI4OEYw
MDVCN0MyQyAvKiBTbG90VmlzaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTRCQTc4RjAxM0FBQjg4RjAwNUI3QzJDIC8qIFNsb3RWaXNpdG9yLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMTRCQTdB
OTcxM0FBREZGODAwNUI3QzJDIC8qIEhlYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMTRCQTdBOTUxM0FBREZGODAwNUI3QzJDIC8qIEhlYXAuY3Bw
ICovOyB9OworCQkxNEJBN0E5NzEzQUFERkY4MDA1QjdDMkMgLyogSGVhcC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEJBN0E5NTEzQUFERkY4MDA1
QjdDMkMgLyogSGVhcC5jcHAgKi87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1Xbm8t
ZXhpdC10aW1lLWRlc3RydWN0b3JzIjsgfTsgfTsKIAkJMTRCQTdBOTgxM0FBREZGODAwNUI3QzJD
IC8qIEhlYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDE0QkE3QTk2MTNBQURGRjgwMDVCN0MyQyAvKiBIZWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTRCRDU5QzUwQTNFOEY5RjAwQkFGNTlDIC8q
IEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzMkY1QkQ5MDgyMkExQzcwMDczNjk3NSAvKiBKYXZhU2NyaXB0
Q29yZS5mcmFtZXdvcmsgKi87IH07CiAJCTE0QkQ1QTMwMEEzRTkxRjYwMEJBRjU5QyAvKiBKU0Nv
bnRleHRSZWYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTRCRDVBMjkwQTNFOTFGNjAwQkFGNTlDIC8qIEpTQ29udGV4dFJlZi5jcHAgKi87IH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9DYXJkU2V0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9DYXJkU2V0LmgKaW5kZXggOTk1MWU5OTYwYzliNDY3YzcxYzFl
NzZkMDk3YWNmYTIyMDZiM2YzNi4uZGM0NGMwMjRkNjkxY2ZjYmQzM2M0ZTcyMTk5MjE2MTRiZWZh
MjQxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ2FyZFNldC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NhcmRTZXQuaApAQCAtNDcsNyArNDcsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBtYXJrQ2FyZEZvckF0b20oY29uc3Qgdm9pZCopOwogICAgIHVp
bnQ4X3QmIGNhcmRGb3JBdG9tKGNvbnN0IHZvaWQqKTsKICAgICBib29sIGlzQ2FyZE1hcmtlZChz
aXplX3QpOwotICAgIHZvaWQgY2xlYXJDYXJkKHNpemVfdCk7CisgICAgYm9vbCB0ZXN0QW5kQ2xl
YXIoc2l6ZV90KTsKIAogcHJpdmF0ZToKICAgICB1aW50OF90IG1fY2FyZHNbY2FyZENvdW50XTsK
QEAgLTc4LDEwICs3OCwxMiBAQCB0ZW1wbGF0ZSA8c2l6ZV90IGNhcmRTaXplLCBzaXplX3QgYmxv
Y2tTaXplPiBib29sIENhcmRTZXQ8Y2FyZFNpemUsIGJsb2NrU2l6ZT46OgogICAgIHJldHVybiBt
X2NhcmRzW2ldOwogfQogCi10ZW1wbGF0ZSA8c2l6ZV90IGNhcmRTaXplLCBzaXplX3QgYmxvY2tT
aXplPiB2b2lkIENhcmRTZXQ8Y2FyZFNpemUsIGJsb2NrU2l6ZT46OmNsZWFyQ2FyZChzaXplX3Qg
aSkKK3RlbXBsYXRlIDxzaXplX3QgY2FyZFNpemUsIHNpemVfdCBibG9ja1NpemU+IGJvb2wgQ2Fy
ZFNldDxjYXJkU2l6ZSwgYmxvY2tTaXplPjo6dGVzdEFuZENsZWFyKHNpemVfdCBpKQogewogICAg
IEFTU0VSVChpIDwgY2FyZENvdW50KTsKKyAgICBib29sIHJlc3VsdCA9IG1fY2FyZHNbaV07CiAg
ICAgbV9jYXJkc1tpXSA9IDA7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCA5NGRkYmIxNWU5YjEyOWVkMjA5MTIwMTA2ZDk2ODIy
ZDc5MTdkMWFhLi4zYTA1ZGFjZTMxZmMyYzc5YzdjZjU0ZDdhMjZkZmVkZmFiNTJhOWFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtODYsMTQgKzg2LDQ1IEBAIHN0cnVjdCBH
Q1RpbWVyU2NvcGUgewogICAgIGRvdWJsZSBtX3N0YXJ0OwogfTsKIAorc3RydWN0IEdDQ291bnRl
ciB7CisgICAgR0NDb3VudGVyKGNvbnN0IGNoYXIqIG5hbWUpCisgICAgICAgIDogbV9uYW1lKG5h
bWUpCisgICAgICAgICwgbV9jb3VudCgwKQorICAgICAgICAsIG1fdG90YWwoMCkKKyAgICAgICAg
LCBtX21pbigxMDAwMDAwMCkKKyAgICAgICAgLCBtX21heCgwKQorICAgIHsKKyAgICB9CisgICAg
CisgICAgdm9pZCBjb3VudChzaXplX3QgYW1vdW50KQorICAgIHsKKyAgICAgICAgbV9jb3VudCsr
OworICAgICAgICBtX3RvdGFsICs9IGFtb3VudDsKKyAgICAgICAgaWYgKGFtb3VudCA8IG1fbWlu
KQorICAgICAgICAgICAgbV9taW4gPSBhbW91bnQ7CisgICAgICAgIGlmIChhbW91bnQgPiBtX21h
eCkKKyAgICAgICAgICAgIG1fbWF4ID0gYW1vdW50OworICAgIH0KKyAgICB+R0NDb3VudGVyKCkK
KyAgICB7CisgICAgICAgIHByaW50ZigiJXM6ICV6dSB2YWx1ZXMgKGF2Zy4gJXp1LCBtaW4uICV6
dSwgbWF4LiAlenUpXG4iLCBtX25hbWUsIG1fdG90YWwsIG1fdG90YWwgLyBtX2NvdW50LCBtX21p
biwgbV9tYXgpOworICAgIH0KKyAgICBjb25zdCBjaGFyKiBtX25hbWU7CisgICAgc2l6ZV90IG1f
Y291bnQ7CisgICAgc2l6ZV90IG1fdG90YWw7CisgICAgc2l6ZV90IG1fbWluOworICAgIHNpemVf
dCBtX21heDsKK307CisKICNkZWZpbmUgR0NQSEFTRShuYW1lKSBzdGF0aWMgR0NUaW1lciBuYW1l
IyNUaW1lcigjbmFtZSk7IEdDVGltZXJTY29wZSBuYW1lIyNUaW1lclNjb3BlKCZuYW1lIyNUaW1l
cikKICNkZWZpbmUgQ09ORF9HQ1BIQVNFKGNvbmQsIG5hbWUxLCBuYW1lMikgc3RhdGljIEdDVGlt
ZXIgbmFtZTEjI1RpbWVyKCNuYW1lMSk7IHN0YXRpYyBHQ1RpbWVyIG5hbWUyIyNUaW1lcigjbmFt
ZTIpOyBHQ1RpbWVyU2NvcGUgbmFtZTEjI0NvbmRUaW1lclNjb3BlKGNvbmQgPyAmbmFtZTEjI1Rp
bWVyIDogJm5hbWUyIyNUaW1lcikKLQorI2RlZmluZSBHQ0NPVU5URVIobmFtZSwgdmFsdWUpIGRv
IHsgc3RhdGljIEdDQ291bnRlciBuYW1lIyNDb3VudGVyKCNuYW1lKTsgbmFtZSMjQ291bnRlci5j
b3VudCh2YWx1ZSk7IH0gd2hpbGUgKGZhbHNlKQorICAgIAogI2Vsc2UKIAogI2RlZmluZSBHQ1BI
QVNFKG5hbWUpIGRvIHsgfSB3aGlsZSAoZmFsc2UpCiAjZGVmaW5lIENPTkRfR0NQSEFTRShjb25k
LCBuYW1lMSwgbmFtZTIpIGRvIHsgfSB3aGlsZSAoZmFsc2UpCi0KKyNkZWZpbmUgR0NDT1VOVEVS
KG5hbWUsIHZhbHVlKSBkbyB7IH0gd2hpbGUgKGZhbHNlKQogI2VuZGlmCiAKIHN0YXRpYyBzaXpl
X3QgaGVhcFNpemVGb3JIaW50KEhlYXBTaXplIGhlYXBTaXplKQpAQCAtNTQ4LDggKzU3OSwxMCBA
QCB2b2lkIEhlYXA6Om1hcmtSb290cyhib29sIGZ1bGxHQykKICAgICBIZWFwUm9vdFZpc2l0b3Ig
aGVhcFJvb3RWaXNpdG9yKHZpc2l0b3IpOwogCiAjaWYgRU5BQkxFKEdHQykKLSAgICBpZiAoc2l6
ZV90IGRpcnR5Q2VsbENvdW50ID0gZGlydHlDZWxscy5zaXplKCkpIHsKKyAgICB7CisgICAgICAg
IHNpemVfdCBkaXJ0eUNlbGxDb3VudCA9IGRpcnR5Q2VsbHMuc2l6ZSgpOwogICAgICAgICBHQ1BI
QVNFKFZpc2l0RGlydHlDZWxscyk7CisgICAgICAgIEdDQ09VTlRFUihEaXJ0eUNlbGxDb3VudCwg
ZGlydHlDZWxsQ291bnQpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRpcnR5Q2Vs
bENvdW50OyBpKyspIHsKICAgICAgICAgICAgIGhlYXBSb290VmlzaXRvci52aXNpdENoaWxkcmVu
KGRpcnR5Q2VsbHNbaV0pOwogICAgICAgICAgICAgdmlzaXRvci5kcmFpbigpOwpAQCAtNjIxLDYg
KzY1NCw3IEBAIHZvaWQgSGVhcDo6bWFya1Jvb3RzKGJvb2wgZnVsbEdDKQogICAgICAgICAgICAg
Ly8gSWYgdGhlIHNldCBvZiBvcGFxdWUgcm9vdHMgaGFzIGdyb3duLCBtb3JlIHdlYWsgaGFuZGxl
cyBtYXkgaGF2ZSBiZWNvbWUgcmVhY2hhYmxlLgogICAgICAgICB9IHdoaWxlIChsYXN0T3BhcXVl
Um9vdENvdW50ICE9IHZpc2l0b3Iub3BhcXVlUm9vdENvdW50KCkpOwogICAgIH0KKyAgICBHQ0NP
VU5URVIoVmlzaXRlZFZhbHVlQ291bnQsIHZpc2l0b3IudmlzaXRDb3VudCgpKTsKICAgICB2aXNp
dG9yLnJlc2V0KCk7CiAKICAgICBtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPSBOb09wZXJhdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3BwCmluZGV4IGJmNzRhYmJiMjBm
MzFlNjkwNjFhOTA3ZjVkNWRkZWMwMTkxOWI2NWEuLmVhZjNkNmNmZjEzOTAyYTliZmQ5NzExNGI1
MzFiZDk3Mjc0YzM3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtTdGFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNw
cApAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogdm9pZCBNYXJrU3RhY2s6OnJl
c2V0KCkKIHsKKyAgICBtX3Zpc2l0Q291bnQgPSAwOwogICAgIG1fdmFsdWVzLnNocmlua0FsbG9j
YXRpb24ocGFnZVNpemUoKSk7CiAgICAgbV9tYXJrU2V0cy5zaHJpbmtBbGxvY2F0aW9uKHBhZ2VT
aXplKCkpOwogICAgIG1fb3BhcXVlUm9vdHMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvTWFya1N0YWNrLmgKaW5kZXggNDU1ZDQ0Y2M1ZTU1ZGYzNzZkMGU2NmE0NTNmNTJmMzk1MjA5
MWUzOS4uNDc3NTM3ZmU3YTliOTE1OWE1MThjYTA0ODI2NmU2MjBiNzQ0ZmNkMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmgKQEAgLTEwMyw2ICsxMDMsOCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICB2b2lkIHJlc2V0KCk7CiAKKyAgICAgICAgc2l6ZV90IHZpc2l0
Q291bnQoKSBjb25zdCB7IHJldHVybiBtX3Zpc2l0Q291bnQ7IH0KKwogI2lmIEVOQUJMRShTSU1Q
TEVfSEVBUF9QUk9GSUxJTkcpCiAgICAgICAgIFZUYWJsZVNwZWN0cnVtIG1fdmlzaXRlZFR5cGVD
b3VudHM7CiAjZW5kaWYKQEAgLTEzOSw2ICsxNDEsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgYm9vbCBtX2lzQ2hlY2tpbmdGb3JEZWZhdWx0TWFya1Zpb2xhdGlvbjsKICAgICAgICAgYm9v
bCBtX2lzRHJhaW5pbmc7CiAjZW5kaWYKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHNpemVfdCBt
X3Zpc2l0Q291bnQ7CiAgICAgfTsKIAogICAgIGlubGluZSBNYXJrU3RhY2s6Ok1hcmtTdGFjayh2
b2lkKiBqc0FycmF5VlB0cikKQEAgLTE0OCw2ICsxNTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgLCBtX2lzQ2hlY2tpbmdGb3JEZWZhdWx0TWFya1Zpb2xhdGlvbihmYWxzZSkKICAgICAg
ICAgLCBtX2lzRHJhaW5pbmcoZmFsc2UpCiAjZW5kaWYKKyAgICAgICAgLCBtX3Zpc2l0Q291bnQo
MCkKICAgICB7CiAgICAgfQogCkBAIC0yNjQsNiArMjY5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgewogICAgICAgICBpZiAoIWNvdW50KQogICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBt
X3Zpc2l0Q291bnQgKz0gY291bnQ7CiAjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCiAgICAgICAg
IHZhbGlkYXRlU2V0KHNsb3QsIGNvdW50KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL01hcmtlZEJsb2NrLmgKaW5kZXggZWQ4MWE5Y2FkZjYxMzIxMmMyZDEwZGVmZGFjNDNkNGRi
YjY3ZmJkNS4uMGFkNGFhMjc2NjY1NTIwNGYyZWQ3YTMyYTczMjRhNzY4Zjg1M2U2NiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCkBAIC03NSw3ICs3NSw3IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYXRvbXNQZXJCbG9j
ayA9IGJsb2NrU2l6ZSAvIGF0b21TaXplOyAvLyB+MC40JSBvdmVyaGVhZAogICAgICAgICBzdGF0
aWMgY29uc3Qgc2l6ZV90IGF0b21NYXNrID0gYXRvbXNQZXJCbG9jayAtIDE7Ci0gICAgICAgIHN0
YXRpYyBjb25zdCBpbnQgY2FyZFNoaWZ0ID0gMTA7IC8vIFRoaXMgaXMgbG9nMiBvZiBieXRlcyBw
ZXIgY2FyZC4KKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBjYXJkU2hpZnQgPSA4OyAvLyBUaGlz
IGlzIGxvZzIgb2YgYnl0ZXMgcGVyIGNhcmQuCiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3Qg
Ynl0ZXNQZXJDYXJkID0gMSA8PCBjYXJkU2hpZnQ7CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQg
Y2FyZENvdW50ID0gYmxvY2tTaXplIC8gYnl0ZXNQZXJDYXJkOwogICAgICAgICBzdGF0aWMgY29u
c3QgaW50IGNhcmRNYXNrID0gY2FyZENvdW50IC0gMTsKQEAgLTE1MCw2ICsxNTAsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogICAgICAgICB0eXBlZGVmIFZlY3RvcjxKU0NlbGwqLCAzMj4gRGlydHlD
ZWxsVmVjdG9yOwogICAgICAgICBpbmxpbmUgdm9pZCBnYXRoZXJEaXJ0eUNlbGxzKERpcnR5Q2Vs
bFZlY3RvciYpOworICAgICAgICB0ZW1wbGF0ZSA8aW50IHNpemU+IGlubGluZSB2b2lkIGdhdGhl
ckRpcnR5Q2VsbHNXaXRoU2l6ZShEaXJ0eUNlbGxWZWN0b3ImKTsKICNlbmRpZgogCiAgICAgICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGZvckVhY2hDZWxsKEZ1bmN0b3ImKTsK
QEAgLTMxNiw2ICszMTcsMzUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgfQogCiAjaWYgRU5BQkxF
KEdHQykKK3RlbXBsYXRlIDxpbnQgX2NlbGxTaXplPiB2b2lkIE1hcmtlZEJsb2NrOjpnYXRoZXJE
aXJ0eUNlbGxzV2l0aFNpemUoRGlydHlDZWxsVmVjdG9yJiBkaXJ0eUNlbGxzKQoreworICAgIGlm
IChtX2NhcmRzLnRlc3RBbmRDbGVhcigwKSkgeworICAgICAgICBjaGFyKiBwdHIgPSByZWludGVy
cHJldF9jYXN0PGNoYXIqPigmYXRvbXMoKVtmaXJzdEF0b20oKV0pOworICAgICAgICBjb25zdCBj
aGFyKiBlbmQgPSByZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlzKSArIGJ5dGVzUGVyQ2FyZDsK
KyAgICAgICAgd2hpbGUgKHB0ciA8IGVuZCkgeworICAgICAgICAgICAgSlNDZWxsKiBjZWxsID0g
cmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihwdHIpOworICAgICAgICAgICAgaWYgKGlzTWFya2Vk
KGNlbGwpKQorICAgICAgICAgICAgICAgIGRpcnR5Q2VsbHMuYXBwZW5kKGNlbGwpOworICAgICAg
ICAgICAgcHRyICs9IF9jZWxsU2l6ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBjb25z
dCBzaXplX3QgY2VsbE9mZnNldCA9IGZpcnN0QXRvbSgpICogYXRvbVNpemUgJSBfY2VsbFNpemU7
CisgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBtX2NhcmRzLmNhcmRDb3VudDsgaSsrKSB7Cisg
ICAgICAgIGlmICghbV9jYXJkcy50ZXN0QW5kQ2xlYXIoaSkpCisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgY2hhciogcHRyID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odGhpcykgKyBp
ICogYnl0ZXNQZXJDYXJkICsgY2VsbE9mZnNldDsKKyAgICAgICAgY2hhciogZW5kID0gcmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4odGhpcykgKyAoaSArIDEpICogYnl0ZXNQZXJDYXJkOworICAgICAg
ICAKKyAgICAgICAgd2hpbGUgKHB0ciA8IGVuZCkgeworICAgICAgICAgICAgSlNDZWxsKiBjZWxs
ID0gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihwdHIpOworICAgICAgICAgICAgaWYgKGlzTWFy
a2VkKGNlbGwpKQorICAgICAgICAgICAgICAgIGRpcnR5Q2VsbHMuYXBwZW5kKGNlbGwpOworICAg
ICAgICAgICAgcHRyICs9IF9jZWxsU2l6ZTsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBN
YXJrZWRCbG9jazo6Z2F0aGVyRGlydHlDZWxscyhEaXJ0eUNlbGxWZWN0b3ImIGRpcnR5Q2VsbHMp
CiB7CiAgICAgQ09NUElMRV9BU1NFUlQoKGludCltX2NhcmRzLmNhcmRDb3VudCA9PSAoaW50KWNh
cmRDb3VudCwgTWFya2VkQmxvY2tDYXJkQ291bnRzTWF0Y2gpOwpAQCAtMzMwLDI2ICszNjAsMzkg
QEAgdm9pZCBNYXJrZWRCbG9jazo6Z2F0aGVyRGlydHlDZWxscyhEaXJ0eUNlbGxWZWN0b3ImIGRp
cnR5Q2VsbHMpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBzaXplX3QgY2VsbFNpemUgPSB0
aGlzLT5jZWxsU2l6ZSgpOworICAgIGlmIChjZWxsU2l6ZSA9PSAzMikgeworICAgICAgICBnYXRo
ZXJEaXJ0eUNlbGxzV2l0aFNpemU8MzI+KGRpcnR5Q2VsbHMpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGlmIChjZWxsU2l6ZSA9PSA2NCkgeworICAgICAgICBnYXRoZXJEaXJ0eUNlbGxz
V2l0aFNpemU8NjQ+KGRpcnR5Q2VsbHMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
Y29uc3Qgc2l6ZV90IGZpcnN0Q2VsbE9mZnNldCA9IGZpcnN0QXRvbSgpICogYXRvbVNpemUgJSBj
ZWxsU2l6ZTsKICAgICAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY2FyZHMuY2FyZENv
dW50OyBpKyspIHsKLSAgICAgICAgaWYgKCFtX2NhcmRzLmlzQ2FyZE1hcmtlZChpKSkKKyAgICBp
ZiAobV9jYXJkcy50ZXN0QW5kQ2xlYXIoMCkpIHsKKyAgICAgICAgY2hhciogcHRyID0gcmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4odGhpcykgKyBmaXJzdEF0b20oKSAqIGF0b21TaXplOworICAgICAg
ICBjaGFyKiBlbmQgPSByZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlzKSArIGJ5dGVzUGVyQ2Fy
ZDsKKyAgICAgICAgd2hpbGUgKHB0ciA8IGVuZCkgeworICAgICAgICAgICAgSlNDZWxsKiBjZWxs
ID0gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihwdHIpOworICAgICAgICAgICAgaWYgKGlzTWFy
a2VkKGNlbGwpKQorICAgICAgICAgICAgICAgIGRpcnR5Q2VsbHMuYXBwZW5kKGNlbGwpOworICAg
ICAgICAgICAgcHRyICs9IGNlbGxTaXplOworICAgICAgICB9CisgICAgfQorICAgIGZvciAoc2l6
ZV90IGkgPSAxOyBpIDwgbV9jYXJkcy5jYXJkQ291bnQ7IGkrKykgeworICAgICAgICBpZiAoIW1f
Y2FyZHMudGVzdEFuZENsZWFyKGkpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGNo
YXIqIHB0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRoaXMpOwotICAgICAgICBpZiAoaSkK
LSAgICAgICAgICAgIHB0ciArPSBmaXJzdENlbGxPZmZzZXQgKyBjZWxsU2l6ZSAqICgoaSAqIGJ5
dGVzUGVyQ2FyZCArIGNlbGxTaXplIC0gMSAtIGZpcnN0Q2VsbE9mZnNldCkgLyBjZWxsU2l6ZSk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHB0ciArPSBmaXJzdEF0b20oKSAqIGF0b21TaXpl
OworICAgICAgICBjaGFyKiBwdHIgPSByZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlzKSArIGZp
cnN0Q2VsbE9mZnNldCArIGNlbGxTaXplICogKChpICogYnl0ZXNQZXJDYXJkICsgY2VsbFNpemUg
LSAxIC0gZmlyc3RDZWxsT2Zmc2V0KSAvIGNlbGxTaXplKTsKICAgICAgICAgY2hhciogZW5kID0g
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odGhpcykgKyBzdGQ6Om1pbigoaSArIDEpICogYnl0ZXNQ
ZXJDYXJkLCBtX2VuZEF0b20gKiBhdG9tU2l6ZSk7CiAgICAgICAgIAogICAgICAgICB3aGlsZSAo
cHRyIDwgZW5kKSB7CiAgICAgICAgICAgICBKU0NlbGwqIGNlbGwgPSByZWludGVycHJldF9jYXN0
PEpTQ2VsbCo+KHB0cik7Ci0gICAgICAgICAgICBBU1NFUlQoKmFkZHJlc3NPZkNhcmRGb3IoY2Vs
bCkpOwogICAgICAgICAgICAgaWYgKGlzTWFya2VkKGNlbGwpKQogICAgICAgICAgICAgICAgIGRp
cnR5Q2VsbHMuYXBwZW5kKGNlbGwpOwogICAgICAgICAgICAgcHRyICs9IGNlbGxTaXplOwogICAg
ICAgICB9Ci0gICAgICAgIG1fY2FyZHMuY2xlYXJDYXJkKGkpOwogICAgIH0KIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAppbmRleCAwZDJmZmExMDE1
ZWRhYjFkZTI1NzhlZWUzMzRmODFmMTBhZDE1ZWQ4Li4yMzViNjgyNGRkNTE0YjAxNmY5YzVmNzZk
OGEzODE0ZjI4MWQzMjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmUuaApAQCAtMzQ1LDYgKzM0NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICAgICAg
QVNTRVJUKCFtX2lzQ2hlY2tpbmdGb3JEZWZhdWx0TWFya1Zpb2xhdGlvbik7CiAgICAgICAgIEFT
U0VSVChjZWxsKTsKKyAgICAgICAgbV92aXNpdENvdW50Kys7CiAgICAgICAgIGlmIChIZWFwOjp0
ZXN0QW5kU2V0TWFya2VkKGNlbGwpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAo
Y2VsbC0+c3RydWN0dXJlKCkgJiYgY2VsbC0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkudHlwZSgp
ID49IENvbXBvdW5kVHlwZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110612</attachid>
            <date>2011-10-11 17:15:14 -0700</date>
            <delta_ts>2011-10-11 17:19:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69883-20111011171513.patch</filename>
            <type>text/plain</type>
            <size>12248</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxOTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2
MjgyYzgzYzJlNjllYjQ1OGE5NWY1NmY2OWY1ZTBhZDAwNWYyMzQuLjczZWRmYWRmYWU0NzZhYmFj
OGVkOWJkMDZmNzZlOTUzMmQ3ZTI4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMyIEBACisyMDExLTEwLTExICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgVGlkeSB1cCBjYXJkIHdhbGtpbmcgbG9naWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3BlY2lhbCBjYXNlIGNvbW1vbiBjZWxsIHNpemVz
IHdoZW4gd2Fsa2luZyBhIGJsb2NrJ3MKKyAgICAgICAgY2FyZHMuCisKKyAgICAgICAgKiBoZWFw
L0NhcmRTZXQuaDoKKyAgICAgICAgKEpTQzo6Ojp0ZXN0QW5kQ2xlYXIpOgorICAgICAgICAqIGhl
YXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkdDVGltZXI6OkdDQ291bnRlcjo6R0NDb3VudGVy
KToKKyAgICAgICAgKEpTQzo6R0NUaW1lcjo6R0NDb3VudGVyOjpjb3VudCk6CisgICAgICAgIChK
U0M6OkdDVGltZXI6OkdDQ291bnRlcjo6fkdDQ291bnRlcik6CisgICAgICAgIChKU0M6OkhlYXA6
Om1hcmtSb290cyk6CisgICAgICAgICogaGVhcC9NYXJrU3RhY2suY3BwOgorICAgICAgICAoSlND
OjpNYXJrU3RhY2s6OnJlc2V0KToKKyAgICAgICAgKiBoZWFwL01hcmtTdGFjay5oOgorICAgICAg
ICAoSlNDOjpNYXJrU3RhY2s6OnZpc2l0Q291bnQpOgorICAgICAgICAoSlNDOjpNYXJrU3RhY2s6
Ok1hcmtTdGFjayk6CisgICAgICAgIChKU0M6Ok1hcmtTdGFjazo6YXBwZW5kKToKKyAgICAgICAg
KiBoZWFwL01hcmtlZEJsb2NrLmg6CisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpnYXRoZXJE
aXJ0eUNlbGxzV2l0aFNpemUpOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6Z2F0aGVyRGly
dHlDZWxscyk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6
TWFya1N0YWNrOjppbnRlcm5hbEFwcGVuZCk6CisKIDIwMTEtMTAtMTEgIEZpbGlwIFBpemxvICA8
ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgdmlydHVhbCByZWdpc3RlciBhbGxvY2F0
b3Igc2hvdWxkIGJlIG1vcmUgYWdncmVzc2l2ZSBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvQ2FyZFNldC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ2Fy
ZFNldC5oCmluZGV4IDk5NTFlOTk2MGM5YjQ2N2M3MWMxZTc2ZDA5N2FjZmEyMjA2YjNmMzYuLmRj
NDRjMDI0ZDY5MWNmY2JkMzNjNGU3MjE5OTIxNjE0YmVmYTI0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NhcmRTZXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9DYXJkU2V0LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgbWFy
a0NhcmRGb3JBdG9tKGNvbnN0IHZvaWQqKTsKICAgICB1aW50OF90JiBjYXJkRm9yQXRvbShjb25z
dCB2b2lkKik7CiAgICAgYm9vbCBpc0NhcmRNYXJrZWQoc2l6ZV90KTsKLSAgICB2b2lkIGNsZWFy
Q2FyZChzaXplX3QpOworICAgIGJvb2wgdGVzdEFuZENsZWFyKHNpemVfdCk7CiAKIHByaXZhdGU6
CiAgICAgdWludDhfdCBtX2NhcmRzW2NhcmRDb3VudF07CkBAIC03OCwxMCArNzgsMTIgQEAgdGVt
cGxhdGUgPHNpemVfdCBjYXJkU2l6ZSwgc2l6ZV90IGJsb2NrU2l6ZT4gYm9vbCBDYXJkU2V0PGNh
cmRTaXplLCBibG9ja1NpemU+OjoKICAgICByZXR1cm4gbV9jYXJkc1tpXTsKIH0KIAotdGVtcGxh
dGUgPHNpemVfdCBjYXJkU2l6ZSwgc2l6ZV90IGJsb2NrU2l6ZT4gdm9pZCBDYXJkU2V0PGNhcmRT
aXplLCBibG9ja1NpemU+OjpjbGVhckNhcmQoc2l6ZV90IGkpCit0ZW1wbGF0ZSA8c2l6ZV90IGNh
cmRTaXplLCBzaXplX3QgYmxvY2tTaXplPiBib29sIENhcmRTZXQ8Y2FyZFNpemUsIGJsb2NrU2l6
ZT46OnRlc3RBbmRDbGVhcihzaXplX3QgaSkKIHsKICAgICBBU1NFUlQoaSA8IGNhcmRDb3VudCk7
CisgICAgYm9vbCByZXN1bHQgPSBtX2NhcmRzW2ldOwogICAgIG1fY2FyZHNbaV0gPSAwOworICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5k
ZXggOTRkZGJiMTVlOWIxMjllZDIwOTEyMDEwNmQ5NjgyMmQ3OTE3ZDFhYS4uZWE2M2I2ZTE3NDBi
MjZiYzc4OGVkZDExNmU1ZDM0OTNmZGNhNTQyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5jcHAKQEAgLTQzLDkgKzQzLDIwIEBAIG5hbWVzcGFjZSB7CiAKIHN0YXRpYyBjb25zdCBzaXpl
X3QgbGFyZ2VIZWFwU2l6ZSA9IDE2ICogMTAyNCAqIDEwMjQ7CiBzdGF0aWMgY29uc3Qgc2l6ZV90
IHNtYWxsSGVhcFNpemUgPSA1MTIgKiAxMDI0OwotCisjZGVmaW5lIEVOQUJMRV9HQ19MT0dHSU5H
IDEKICNpZiBFTkFCTEUoR0NfTE9HR0lORykKLSAgICAKKyNpZiBDT01QSUxFUihDTEFORykKKyNk
ZWZpbmUgREVGSU5FX0dDX0xPR0dJTkdfR0xPQkFMKHR5cGUsIG5hbWUsIGFyZ3VtZW50cykgXAor
X1ByYWdtYSgiY2xhbmcgZGlhZ25vc3RpYyBwdXNoIikgXAorX1ByYWdtYSgiY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkIFwiLVdnbG9iYWwtY29uc3RydWN0b3JzXCIiKSBcCitfUHJhZ21hKCJjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgXCItV2V4aXQtdGltZS1kZXN0cnVjdG9yc1wiIikgXAorc3Rh
dGljIHR5cGUgbmFtZSBhcmd1bWVudHM7IFwKK19QcmFnbWEoImNsYW5nIGRpYWdub3N0aWMgcG9w
IikKKyNlbHNlCisjZGVmaW5lIERFRklORV9HQ19MT0dHSU5HX0dMT0JBTCh0eXBlLCBuYW1lLCBh
cmd1bWVudHMpIFwKK3N0YXRpYyB0eXBlIG5hbWUgYXJndW1lbnRzOworI2VuZGlmIC8vIENPTVBJ
TEVSKENMQU5HKQorCiBzdHJ1Y3QgR0NUaW1lciB7CiAgICAgR0NUaW1lcihjb25zdCBjaGFyKiBu
YW1lKQogICAgICAgICA6IG1fdGltZSgwKQpAQCAtODYsMTQgKzk3LDQ1IEBAIHN0cnVjdCBHQ1Rp
bWVyU2NvcGUgewogICAgIGRvdWJsZSBtX3N0YXJ0OwogfTsKIAotI2RlZmluZSBHQ1BIQVNFKG5h
bWUpIHN0YXRpYyBHQ1RpbWVyIG5hbWUjI1RpbWVyKCNuYW1lKTsgR0NUaW1lclNjb3BlIG5hbWUj
I1RpbWVyU2NvcGUoJm5hbWUjI1RpbWVyKQotI2RlZmluZSBDT05EX0dDUEhBU0UoY29uZCwgbmFt
ZTEsIG5hbWUyKSBzdGF0aWMgR0NUaW1lciBuYW1lMSMjVGltZXIoI25hbWUxKTsgc3RhdGljIEdD
VGltZXIgbmFtZTIjI1RpbWVyKCNuYW1lMik7IEdDVGltZXJTY29wZSBuYW1lMSMjQ29uZFRpbWVy
U2NvcGUoY29uZCA/ICZuYW1lMSMjVGltZXIgOiAmbmFtZTIjI1RpbWVyKQorc3RydWN0IEdDQ291
bnRlciB7CisgICAgR0NDb3VudGVyKGNvbnN0IGNoYXIqIG5hbWUpCisgICAgICAgIDogbV9uYW1l
KG5hbWUpCisgICAgICAgICwgbV9jb3VudCgwKQorICAgICAgICAsIG1fdG90YWwoMCkKKyAgICAg
ICAgLCBtX21pbigxMDAwMDAwMCkKKyAgICAgICAgLCBtX21heCgwKQorICAgIHsKKyAgICB9Cisg
ICAgCisgICAgdm9pZCBjb3VudChzaXplX3QgYW1vdW50KQorICAgIHsKKyAgICAgICAgbV9jb3Vu
dCsrOworICAgICAgICBtX3RvdGFsICs9IGFtb3VudDsKKyAgICAgICAgaWYgKGFtb3VudCA8IG1f
bWluKQorICAgICAgICAgICAgbV9taW4gPSBhbW91bnQ7CisgICAgICAgIGlmIChhbW91bnQgPiBt
X21heCkKKyAgICAgICAgICAgIG1fbWF4ID0gYW1vdW50OworICAgIH0KKyAgICB+R0NDb3VudGVy
KCkKKyAgICB7CisgICAgICAgIHByaW50ZigiJXM6ICV6dSB2YWx1ZXMgKGF2Zy4gJXp1LCBtaW4u
ICV6dSwgbWF4LiAlenUpXG4iLCBtX25hbWUsIG1fdG90YWwsIG1fdG90YWwgLyBtX2NvdW50LCBt
X21pbiwgbV9tYXgpOworICAgIH0KKyAgICBjb25zdCBjaGFyKiBtX25hbWU7CisgICAgc2l6ZV90
IG1fY291bnQ7CisgICAgc2l6ZV90IG1fdG90YWw7CisgICAgc2l6ZV90IG1fbWluOworICAgIHNp
emVfdCBtX21heDsKK307CiAKKyNkZWZpbmUgR0NQSEFTRShuYW1lKSBERUZJTkVfR0NfTE9HR0lO
R19HTE9CQUwoR0NUaW1lciwgbmFtZSMjVGltZXIsICgjbmFtZSkpOyBHQ1RpbWVyU2NvcGUgbmFt
ZSMjVGltZXJTY29wZSgmbmFtZSMjVGltZXIpCisjZGVmaW5lIENPTkRfR0NQSEFTRShjb25kLCBu
YW1lMSwgbmFtZTIpIERFRklORV9HQ19MT0dHSU5HX0dMT0JBTChHQ1RpbWVyLCBuYW1lMSMjVGlt
ZXIsICgjbmFtZTEpKTsgREVGSU5FX0dDX0xPR0dJTkdfR0xPQkFMKEdDVGltZXIsIG5hbWUyIyNU
aW1lciwgKCNuYW1lMikpOyBHQ1RpbWVyU2NvcGUgbmFtZTEjI0NvbmRUaW1lclNjb3BlKGNvbmQg
PyAmbmFtZTEjI1RpbWVyIDogJm5hbWUyIyNUaW1lcikKKyNkZWZpbmUgR0NDT1VOVEVSKG5hbWUs
IHZhbHVlKSBkbyB7IERFRklORV9HQ19MT0dHSU5HX0dMT0JBTChHQ0NvdW50ZXIsIG5hbWUjI0Nv
dW50ZXIsICgjbmFtZSkpOyBuYW1lIyNDb3VudGVyLmNvdW50KHZhbHVlKTsgfSB3aGlsZSAoZmFs
c2UpCisgICAgCiAjZWxzZQogCiAjZGVmaW5lIEdDUEhBU0UobmFtZSkgZG8geyB9IHdoaWxlIChm
YWxzZSkKICNkZWZpbmUgQ09ORF9HQ1BIQVNFKGNvbmQsIG5hbWUxLCBuYW1lMikgZG8geyB9IHdo
aWxlIChmYWxzZSkKLQorI2RlZmluZSBHQ0NPVU5URVIobmFtZSwgdmFsdWUpIGRvIHsgfSB3aGls
ZSAoZmFsc2UpCiAjZW5kaWYKIAogc3RhdGljIHNpemVfdCBoZWFwU2l6ZUZvckhpbnQoSGVhcFNp
emUgaGVhcFNpemUpCkBAIC01NDgsOCArNTkwLDEwIEBAIHZvaWQgSGVhcDo6bWFya1Jvb3RzKGJv
b2wgZnVsbEdDKQogICAgIEhlYXBSb290VmlzaXRvciBoZWFwUm9vdFZpc2l0b3IodmlzaXRvcik7
CiAKICNpZiBFTkFCTEUoR0dDKQotICAgIGlmIChzaXplX3QgZGlydHlDZWxsQ291bnQgPSBkaXJ0
eUNlbGxzLnNpemUoKSkgeworICAgIHsKKyAgICAgICAgc2l6ZV90IGRpcnR5Q2VsbENvdW50ID0g
ZGlydHlDZWxscy5zaXplKCk7CiAgICAgICAgIEdDUEhBU0UoVmlzaXREaXJ0eUNlbGxzKTsKKyAg
ICAgICAgR0NDT1VOVEVSKERpcnR5Q2VsbENvdW50LCBkaXJ0eUNlbGxDb3VudCk7CiAgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGlydHlDZWxsQ291bnQ7IGkrKykgewogICAgICAgICAg
ICAgaGVhcFJvb3RWaXNpdG9yLnZpc2l0Q2hpbGRyZW4oZGlydHlDZWxsc1tpXSk7CiAgICAgICAg
ICAgICB2aXNpdG9yLmRyYWluKCk7CkBAIC02MjEsNiArNjY1LDcgQEAgdm9pZCBIZWFwOjptYXJr
Um9vdHMoYm9vbCBmdWxsR0MpCiAgICAgICAgICAgICAvLyBJZiB0aGUgc2V0IG9mIG9wYXF1ZSBy
b290cyBoYXMgZ3Jvd24sIG1vcmUgd2VhayBoYW5kbGVzIG1heSBoYXZlIGJlY29tZSByZWFjaGFi
bGUuCiAgICAgICAgIH0gd2hpbGUgKGxhc3RPcGFxdWVSb290Q291bnQgIT0gdmlzaXRvci5vcGFx
dWVSb290Q291bnQoKSk7CiAgICAgfQorICAgIEdDQ09VTlRFUihWaXNpdGVkVmFsdWVDb3VudCwg
dmlzaXRvci52aXNpdENvdW50KCkpOwogICAgIHZpc2l0b3IucmVzZXQoKTsKIAogICAgIG1fb3Bl
cmF0aW9uSW5Qcm9ncmVzcyA9IE5vT3BlcmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L01hcmtTdGFjay5jcHAKaW5kZXggYmY3NGFiYmIyMGYzMWU2OTA2MWE5MDdmNWQ1ZGRlYzAxOTE5
YjY1YS4uZWFmM2Q2Y2ZmMTM5MDJhOWJmZDk3MTE0YjUzMWJkOTcyNzRjMzdlMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3BwCkBAIC0zOCw2ICszOCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogCiB2b2lkIE1hcmtTdGFjazo6cmVzZXQoKQogeworICAgIG1fdmlzaXRDb3Vu
dCA9IDA7CiAgICAgbV92YWx1ZXMuc2hyaW5rQWxsb2NhdGlvbihwYWdlU2l6ZSgpKTsKICAgICBt
X21hcmtTZXRzLnNocmlua0FsbG9jYXRpb24ocGFnZVNpemUoKSk7CiAgICAgbV9vcGFxdWVSb290
cy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0
YWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaAppbmRleCA0NTVk
NDRjYzVlNTVkZjM3NmQwZTY2YTQ1M2Y1MmYzOTUyMDkxZTM5Li40Nzc1MzdmZTdhOWI5MTU5YTUx
OGNhMDQ4MjY2ZTYyMGI3NDRmY2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9NYXJrU3RhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3Rh
Y2suaApAQCAtMTAzLDYgKzEwMyw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZvaWQg
cmVzZXQoKTsKIAorICAgICAgICBzaXplX3QgdmlzaXRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
dmlzaXRDb3VudDsgfQorCiAjaWYgRU5BQkxFKFNJTVBMRV9IRUFQX1BST0ZJTElORykKICAgICAg
ICAgVlRhYmxlU3BlY3RydW0gbV92aXNpdGVkVHlwZUNvdW50czsKICNlbmRpZgpAQCAtMTM5LDYg
KzE0MSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIG1faXNDaGVja2luZ0ZvckRl
ZmF1bHRNYXJrVmlvbGF0aW9uOwogICAgICAgICBib29sIG1faXNEcmFpbmluZzsKICNlbmRpZgor
ICAgIHByb3RlY3RlZDoKKyAgICAgICAgc2l6ZV90IG1fdmlzaXRDb3VudDsKICAgICB9OwogCiAg
ICAgaW5saW5lIE1hcmtTdGFjazo6TWFya1N0YWNrKHZvaWQqIGpzQXJyYXlWUHRyKQpAQCAtMTQ4
LDYgKzE1Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAsIG1faXNDaGVja2luZ0ZvckRl
ZmF1bHRNYXJrVmlvbGF0aW9uKGZhbHNlKQogICAgICAgICAsIG1faXNEcmFpbmluZyhmYWxzZSkK
ICNlbmRpZgorICAgICAgICAsIG1fdmlzaXRDb3VudCgwKQogICAgIHsKICAgICB9CiAKQEAgLTI2
NCw2ICsyNjksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgICAgIGlmICghY291bnQp
CiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fdmlzaXRDb3VudCArPSBjb3VudDsKICNp
ZiBFTkFCTEUoR0NfVkFMSURBVElPTikKICAgICAgICAgdmFsaWRhdGVTZXQoc2xvdCwgY291bnQp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRC
bG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAppbmRleCBl
ZDgxYTljYWRmNjEzMjEyYzJkMTBkZWZkYWM0M2Q0ZGJiNjdmYmQ1Li4wYWQ0YWEyNzY2NjU1MjA0
ZjJlZDdhMzJhNzMyNGE3NjhmODUzZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9NYXJrZWRCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtlZEJsb2NrLmgKQEAgLTc1LDcgKzc1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
c3RhdGljIGNvbnN0IHNpemVfdCBhdG9tc1BlckJsb2NrID0gYmxvY2tTaXplIC8gYXRvbVNpemU7
IC8vIH4wLjQlIG92ZXJoZWFkCiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYXRvbU1hc2sg
PSBhdG9tc1BlckJsb2NrIC0gMTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBjYXJkU2hpZnQg
PSAxMDsgLy8gVGhpcyBpcyBsb2cyIG9mIGJ5dGVzIHBlciBjYXJkLgorICAgICAgICBzdGF0aWMg
Y29uc3QgaW50IGNhcmRTaGlmdCA9IDg7IC8vIFRoaXMgaXMgbG9nMiBvZiBieXRlcyBwZXIgY2Fy
ZC4KICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBieXRlc1BlckNhcmQgPSAxIDw8IGNhcmRT
aGlmdDsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBjYXJkQ291bnQgPSBibG9ja1NpemUgLyBi
eXRlc1BlckNhcmQ7CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgY2FyZE1hc2sgPSBjYXJkQ291
bnQgLSAxOwpAQCAtMTUwLDYgKzE1MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHR5
cGVkZWYgVmVjdG9yPEpTQ2VsbCosIDMyPiBEaXJ0eUNlbGxWZWN0b3I7CiAgICAgICAgIGlubGlu
ZSB2b2lkIGdhdGhlckRpcnR5Q2VsbHMoRGlydHlDZWxsVmVjdG9yJik7CisgICAgICAgIHRlbXBs
YXRlIDxpbnQgc2l6ZT4gaW5saW5lIHZvaWQgZ2F0aGVyRGlydHlDZWxsc1dpdGhTaXplKERpcnR5
Q2VsbFZlY3RvciYpOwogI2VuZGlmCiAKICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0
b3I+IHZvaWQgZm9yRWFjaENlbGwoRnVuY3RvciYpOwpAQCAtMzE2LDYgKzMxNywzNSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICB9CiAKICNpZiBFTkFCTEUoR0dDKQordGVtcGxhdGUgPGludCBfY2Vs
bFNpemU+IHZvaWQgTWFya2VkQmxvY2s6OmdhdGhlckRpcnR5Q2VsbHNXaXRoU2l6ZShEaXJ0eUNl
bGxWZWN0b3ImIGRpcnR5Q2VsbHMpCit7CisgICAgaWYgKG1fY2FyZHMudGVzdEFuZENsZWFyKDAp
KSB7CisgICAgICAgIGNoYXIqIHB0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZhdG9tcygp
W2ZpcnN0QXRvbSgpXSk7CisgICAgICAgIGNvbnN0IGNoYXIqIGVuZCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHRoaXMpICsgYnl0ZXNQZXJDYXJkOworICAgICAgICB3aGlsZSAocHRyIDwgZW5k
KSB7CisgICAgICAgICAgICBKU0NlbGwqIGNlbGwgPSByZWludGVycHJldF9jYXN0PEpTQ2VsbCo+
KHB0cik7CisgICAgICAgICAgICBpZiAoaXNNYXJrZWQoY2VsbCkpCisgICAgICAgICAgICAgICAg
ZGlydHlDZWxscy5hcHBlbmQoY2VsbCk7CisgICAgICAgICAgICBwdHIgKz0gX2NlbGxTaXplOwor
ICAgICAgICB9CisgICAgfQorICAgIAorICAgIGNvbnN0IHNpemVfdCBjZWxsT2Zmc2V0ID0gZmly
c3RBdG9tKCkgKiBhdG9tU2l6ZSAlIF9jZWxsU2l6ZTsKKyAgICBmb3IgKHNpemVfdCBpID0gMTsg
aSA8IG1fY2FyZHMuY2FyZENvdW50OyBpKyspIHsKKyAgICAgICAgaWYgKCFtX2NhcmRzLnRlc3RB
bmRDbGVhcihpKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjaGFyKiBwdHIgPSBy
ZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlzKSArIGkgKiBieXRlc1BlckNhcmQgKyBjZWxsT2Zm
c2V0OworICAgICAgICBjaGFyKiBlbmQgPSByZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlzKSAr
IChpICsgMSkgKiBieXRlc1BlckNhcmQ7CisgICAgICAgIAorICAgICAgICB3aGlsZSAocHRyIDwg
ZW5kKSB7CisgICAgICAgICAgICBKU0NlbGwqIGNlbGwgPSByZWludGVycHJldF9jYXN0PEpTQ2Vs
bCo+KHB0cik7CisgICAgICAgICAgICBpZiAoaXNNYXJrZWQoY2VsbCkpCisgICAgICAgICAgICAg
ICAgZGlydHlDZWxscy5hcHBlbmQoY2VsbCk7CisgICAgICAgICAgICBwdHIgKz0gX2NlbGxTaXpl
OworICAgICAgICB9CisgICAgfQorfQorCiB2b2lkIE1hcmtlZEJsb2NrOjpnYXRoZXJEaXJ0eUNl
bGxzKERpcnR5Q2VsbFZlY3RvciYgZGlydHlDZWxscykKIHsKICAgICBDT01QSUxFX0FTU0VSVCgo
aW50KW1fY2FyZHMuY2FyZENvdW50ID09IChpbnQpY2FyZENvdW50LCBNYXJrZWRCbG9ja0NhcmRD
b3VudHNNYXRjaCk7CkBAIC0zMzAsMjYgKzM2MCwzOSBAQCB2b2lkIE1hcmtlZEJsb2NrOjpnYXRo
ZXJEaXJ0eUNlbGxzKERpcnR5Q2VsbFZlY3RvciYgZGlydHlDZWxscykKICAgICAgICAgcmV0dXJu
OwogICAgIAogICAgIHNpemVfdCBjZWxsU2l6ZSA9IHRoaXMtPmNlbGxTaXplKCk7CisgICAgaWYg
KGNlbGxTaXplID09IDMyKSB7CisgICAgICAgIGdhdGhlckRpcnR5Q2VsbHNXaXRoU2l6ZTwzMj4o
ZGlydHlDZWxscyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGNlbGxTaXplID09
IDY0KSB7CisgICAgICAgIGdhdGhlckRpcnR5Q2VsbHNXaXRoU2l6ZTw2ND4oZGlydHlDZWxscyk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBjb25zdCBzaXplX3QgZmlyc3RDZWxsT2Zm
c2V0ID0gZmlyc3RBdG9tKCkgKiBhdG9tU2l6ZSAlIGNlbGxTaXplOwogICAgIAotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbV9jYXJkcy5jYXJkQ291bnQ7IGkrKykgewotICAgICAgICBpZiAo
IW1fY2FyZHMuaXNDYXJkTWFya2VkKGkpKQorICAgIGlmIChtX2NhcmRzLnRlc3RBbmRDbGVhcigw
KSkgeworICAgICAgICBjaGFyKiBwdHIgPSByZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlzKSAr
IGZpcnN0QXRvbSgpICogYXRvbVNpemU7CisgICAgICAgIGNoYXIqIGVuZCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KHRoaXMpICsgYnl0ZXNQZXJDYXJkOworICAgICAgICB3aGlsZSAocHRyIDwg
ZW5kKSB7CisgICAgICAgICAgICBKU0NlbGwqIGNlbGwgPSByZWludGVycHJldF9jYXN0PEpTQ2Vs
bCo+KHB0cik7CisgICAgICAgICAgICBpZiAoaXNNYXJrZWQoY2VsbCkpCisgICAgICAgICAgICAg
ICAgZGlydHlDZWxscy5hcHBlbmQoY2VsbCk7CisgICAgICAgICAgICBwdHIgKz0gY2VsbFNpemU7
CisgICAgICAgIH0KKyAgICB9CisgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBtX2NhcmRzLmNh
cmRDb3VudDsgaSsrKSB7CisgICAgICAgIGlmICghbV9jYXJkcy50ZXN0QW5kQ2xlYXIoaSkpCiAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgY2hhciogcHRyID0gcmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4odGhpcyk7Ci0gICAgICAgIGlmIChpKQotICAgICAgICAgICAgcHRyICs9IGZpcnN0
Q2VsbE9mZnNldCArIGNlbGxTaXplICogKChpICogYnl0ZXNQZXJDYXJkICsgY2VsbFNpemUgLSAx
IC0gZmlyc3RDZWxsT2Zmc2V0KSAvIGNlbGxTaXplKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgcHRyICs9IGZpcnN0QXRvbSgpICogYXRvbVNpemU7CisgICAgICAgIGNoYXIqIHB0ciA9IHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRoaXMpICsgZmlyc3RDZWxsT2Zmc2V0ICsgY2VsbFNpemUg
KiAoKGkgKiBieXRlc1BlckNhcmQgKyBjZWxsU2l6ZSAtIDEgLSBmaXJzdENlbGxPZmZzZXQpIC8g
Y2VsbFNpemUpOwogICAgICAgICBjaGFyKiBlbmQgPSByZWludGVycHJldF9jYXN0PGNoYXIqPih0
aGlzKSArIHN0ZDo6bWluKChpICsgMSkgKiBieXRlc1BlckNhcmQsIG1fZW5kQXRvbSAqIGF0b21T
aXplKTsKICAgICAgICAgCiAgICAgICAgIHdoaWxlIChwdHIgPCBlbmQpIHsKICAgICAgICAgICAg
IEpTQ2VsbCogY2VsbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4ocHRyKTsKLSAgICAgICAg
ICAgIEFTU0VSVCgqYWRkcmVzc09mQ2FyZEZvcihjZWxsKSk7CiAgICAgICAgICAgICBpZiAoaXNN
YXJrZWQoY2VsbCkpCiAgICAgICAgICAgICAgICAgZGlydHlDZWxscy5hcHBlbmQoY2VsbCk7CiAg
ICAgICAgICAgICBwdHIgKz0gY2VsbFNpemU7CiAgICAgICAgIH0KLSAgICAgICAgbV9jYXJkcy5j
bGVhckNhcmQoaSk7CiAgICAgfQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZS5oCmluZGV4IDBkMmZmYTEwMTVlZGFiMWRlMjU3OGVlZTMzNGY4MWYxMGFk
MTVlZDguLjIzNWI2ODI0ZGQ1MTRiMDE2ZjljNWY3NmQ4YTM4MTRmMjgxZDMyOTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC0zNDUsNiArMzQ1LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgICAgICBBU1NFUlQoIW1faXNDaGVja2luZ0ZvckRl
ZmF1bHRNYXJrVmlvbGF0aW9uKTsKICAgICAgICAgQVNTRVJUKGNlbGwpOworICAgICAgICBtX3Zp
c2l0Q291bnQrKzsKICAgICAgICAgaWYgKEhlYXA6OnRlc3RBbmRTZXRNYXJrZWQoY2VsbCkpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChjZWxsLT5zdHJ1Y3R1cmUoKSAmJiBjZWxs
LT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS50eXBlKCkgPj0gQ29tcG91bmRUeXBlKQo=
</data>
<flag name="review"
          id="108162"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>