<?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>41907</bug_id>
          
          <creation_ts>2010-07-08 14:41:33 -0700</creation_ts>
          <short_desc>Handle whitespace correctly</short_desc>
          <delta_ts>2010-07-09 01:08:59 -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>Other</rep_platform>
          <op_sys>OS X 10.5</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>41123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>248559</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-08 14:41:33 -0700</bug_when>
    <thetext>Handle whitespace correctly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248562</commentid>
    <comment_count>1</comment_count>
      <attachid>60963</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-08 14:46:40 -0700</bug_when>
    <thetext>Created attachment 60963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248582</commentid>
    <comment_count>2</comment_count>
      <attachid>60963</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-08 15:17:32 -0700</bug_when>
    <thetext>Comment on attachment 60963
Patch

WebCore/html/HTMLTreeBuilder.cpp:104
 +      String takeAll()
Should this be takeRemaining()?

WebCore/html/HTMLTreeBuilder.cpp:112
 +      String takeAllWhitespace()
takeRemainingWhitespace?

WebCore/html/HTMLTreeBuilder.cpp:109
 +          return String(start, m_current - start);
Could this have an optimized branch which returned the original string if we never moved m_current?

I like this change.  I think it would be useful to know the performance impact.  Not that it would actually change us from landing it, but would be useful to know how much perf we&apos;re losing here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248586</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-08 15:22:13 -0700</bug_when>
    <thetext>&gt; WebCore/html/HTMLTreeBuilder.cpp:104
&gt;  +      String takeAll()
&gt; Should this be takeRemaining()?

Sure.

&gt; WebCore/html/HTMLTreeBuilder.cpp:112
&gt;  +      String takeAllWhitespace()
&gt; takeRemainingWhitespace?

Sure.

&gt; WebCore/html/HTMLTreeBuilder.cpp:109
&gt;  +          return String(start, m_current - start);
&gt; Could this have an optimized branch which returned the original string if we never moved m_current?

Yeah, but I&apos;m going to make the source of these characters be the original buffer in the HTMLTokenizer, which is an inline buffer, not a String.

&gt; I like this change.  I think it would be useful to know the performance impact.  Not that it would actually change us from landing it, but would be useful to know how much perf we&apos;re losing here.

True.  I&apos;m working from my laptop, so it&apos;s painful to build release from scratch.  :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248587</commentid>
    <comment_count>4</comment_count>
      <attachid>60970</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-08 15:25:28 -0700</bug_when>
    <thetext>Created attachment 60970
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248815</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-09 01:08:59 -0700</bug_when>
    <thetext>Committed r62912: &lt;http://trac.webkit.org/changeset/62912&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60963</attachid>
            <date>2010-07-08 14:46:40 -0700</date>
            <delta_ts>2010-07-08 15:25:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41907-20100708144639.patch</filename>
            <type>text/plain</type>
            <size>20905</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ODY0YmMyODAzZmQ5NGZjYTE1OWIyN2M2NGI1ZTkyZWI1ZDRmMGZhLi5kMzVjY2Rh
M2EyM2Q4N2U0MzE5Nzc5ZTZkODE4NWExNmYyYWZiMjkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjEgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBIYW5kbGUg
d2hpdGVzcGFjZSBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQxOTA3CisKKyAgICAgICAgVXBkYXRlIGV4cGVjdGF0aW9ucyB0byBzaG93
IG1hc3NpdmUgcHJvZ3Jlc3Npb24uCisKKyAgICAgICAgKiBodG1sNWxpYi9yZXNvdXJjZXMvZG9j
dHlwZTAxLmRhdDoKKyAgICAgICAgICAtIFdoZW4gSSBjcmVhdGVkIHRoaXMgdGVzdCwgSSBzZXQg
dGhlIGV4cGVjdGF0aW9ucyBpbmNvcnJlY3RseS4gIFRoZQorICAgICAgICAgICAgbmV3IGV4cGVj
dGF0aW9ucyBub3cgbWF0Y2ggdGhlIHNwZWMgYW5kIE1pbmVmaWVsZC4KKyAgICAgICAgKiBodG1s
NWxpYi9ydW5uZXItZXhwZWN0ZWQtaHRtbDUudHh0OgorICAgICAgICAqIGh0bWw1bGliL3J1bm5l
ci1leHBlY3RlZC50eHQ6CisKKzIwMTAtMDctMDggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBH
ZXQgbXkgaGVhZCB3cmFwcGVkIGFyb3VuZCBwcm9jZXNzQ2hhcmFjdGVyCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTgxMgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvZG9jdHlwZTAxLmRhdCBiL0xheW91dFRlc3Rz
L2h0bWw1bGliL3Jlc291cmNlcy9kb2N0eXBlMDEuZGF0CmluZGV4IDk0ZmVkZmNmYmRjZTZmY2I3
N2IzY2I2ZGFiOWJjMzk3NzY4ZmZiZTcuLmFiZDJmMGU4MGNiYmViODY3ZDlkOTg4OWI1OTY2MWU0
ZGJhNTI4M2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy9kb2N0
eXBlMDEuZGF0CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy9kb2N0eXBlMDEu
ZGF0CkBAIC0zMDksOCArMzA5LDcgQEAKIHwgPGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+
Ci18ICAgICAiCi1dPiIKK3wgICAgICJdPiIKIAogI2RhdGEKIDwhRE9DVFlQRSBodG1sIFBVQkxJ
QwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLWh0bWw1
LnR4dCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC1odG1sNS50eHQKaW5k
ZXggZWVkODkzN2I1YzJhYzg1MjY0YjcyNjU5MTJlYjZmYzUzNDM0ZWYxMC4uYTczNzVhODY3ZDM1
MmViZDBmN2U4NDRlNGQyYTY3Zjg3OTkwNzU2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHRt
bDVsaWIvcnVubmVyLWV4cGVjdGVkLWh0bWw1LnR4dAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxp
Yi9ydW5uZXItZXhwZWN0ZWQtaHRtbDUudHh0CkBAIC02LDcgKzYsNiBAQCBDb250ZW50LVR5cGU6
IHRleHQvcGxhaW4KIHJlc291cmNlcy90ZXN0czEuZGF0OgogMzAKIDMyCi01MAogNTIKIDUzCiA3
OApAQCAtOTMsMjYgKzkyLDYgQEAgRXhwZWN0ZWQ6CiB8ICAgICAgICAgICAgICAgICAgICJwbGVh
c2UhIgogfCAgICAgICAgICAgICA8IS0tIFggLS0+CiAKLVRlc3QgNTAgb2YgMTEzIGluIHJlc291
cmNlcy90ZXN0czEuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48c2NyaXB0PiA8
IS0tIDwvc2NyaXB0PiAtLT4gPC9zY3JpcHQ+IEVPRgotR290OgotfCA8IURPQ1RZUEUgaHRtbD4K
LXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgICA8c2NyaXB0PgotfCAgICAgICAiIDwhLS0gIgot
fCAgIDxib2R5PgotfCAgICAgIiAtLT4gIEVPRiIKLUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRt
bD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgICA8c2NyaXB0PgotfCAgICAgICAiIDwhLS0g
IgotfCAgICAgIiAiCi18ICAgPGJvZHk+Ci18ICAgICAiLS0+ICBFT0YiCi0KIFRlc3QgNTIgb2Yg
MTEzIGluIHJlc291cmNlcy90ZXN0czEuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8cCBpZD1hPjxiPjxw
IGlkPWI+PC9iPlRFU1QKIEdvdDoKQEAgLTMwNSw5ICsyODQsNiBAQCBFeHBlY3RlZDoKIHwgICAg
IDxhPgogcmVzb3VyY2VzL3Rlc3RzMi5kYXQ6CiAxMwotNDcKLTQ4Ci00OQogCiBUZXN0IDEzIG9m
IDU5IGluIHJlc291cmNlcy90ZXN0czIuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8IURPQ1RZUEUgaHRt
bD48dGFibGU+PHRyPlRFU1QKQEAgLTMyOSw2MiArMzA1LDYgQEAgRXhwZWN0ZWQ6CiB8ICAgICA8
dGFibGU+CiB8ICAgICAgIDx0Ym9keT4KIHwgICAgICAgICA8dHI+Ci0KLVRlc3QgNDcgb2YgNTkg
aW4gcmVzb3VyY2VzL3Rlc3RzMi5kYXQgZmFpbGVkLiBJbnB1dDoKLSAKLSAKLUdvdDoKLXwgPGh0
bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiIAotICIKLUV4cGVjdGVkOgotfCA8
aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLQotVGVzdCA0OCBvZiA1OSBpbiByZXNvdXJj
ZXMvdGVzdHMyLmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+ICA8aHRtbD4KLUdv
dDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5Pgot
fCAgICAgIiAgIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8
aGVhZD4KLXwgICA8Ym9keT4KLQotVGVzdCA0OSBvZiA1OSBpbiByZXNvdXJjZXMvdGVzdHMyLmRh
dCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PHNjcmlwdD4KLTwvc2NyaXB0PiAgPHRp
dGxlPng8L3RpdGxlPiAgPC9oZWFkPgotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+
Ci18ICAgPGhlYWQ+Ci18ICAgICA8c2NyaXB0PgotfCAgICAgICAiCi0iCi18ICAgPGJvZHk+Ci18
ICAgICAiICAiCi18ICAgICA8dGl0bGU+Ci18ICAgICAgICJ4IgotfCAgICAgIiAgIgotRXhwZWN0
ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICAgIDxzY3Jp
cHQ+Ci18ICAgICAgICIKLSIKLXwgICAgICIgICIKLXwgICAgIDx0aXRsZT4KLXwgICAgICAgIngi
Ci18ICAgICAiICAiCi18ICAgPGJvZHk+CiByZXNvdXJjZXMvdGVzdHMzLmRhdDoKIDE2CiAxNwpA
QCAtNDg5LDE2NyArNDA5LDE3IEBAIEdvdDoKIEV4cGVjdGVkOgogfCA8dGl0bGU+CiB8ICAgInNl
dHRpbmcgaGVhZCdzIGlubmVySFRNTCIKLXJlc291cmNlcy90ZXN0czUuZGF0OgotMgotNwotOAor
cmVzb3VyY2VzL3Rlc3RzNS5kYXQ6IFBBU1MKIAotVGVzdCAyIG9mIDE2IGluIHJlc291cmNlcy90
ZXN0czUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08c3R5bGU+IDwhLS0gPC9zdHlsZT4gLS0+IDwvc3R5
bGU+eAotR290OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICAgIDxzdHlsZT4KLXwgICAgICAg
IiA8IS0tICIKLXwgICA8Ym9keT4KLXwgICAgICIgLS0+IHgiCi1FeHBlY3RlZDoKLXwgPGh0bWw+
Ci18ICAgPGhlYWQ+Ci18ICAgICA8c3R5bGU+Ci18ICAgICAgICIgPCEtLSAiCi18ICAgICAiICIK
LXwgICA8Ym9keT4KLXwgICAgICItLT4geCIKLQotVGVzdCA3IG9mIDE2IGluIHJlc291cmNlcy90
ZXN0czUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08c2NyaXB0PiA8IS0tIDwvc2NyaXB0PiAtLT4gPC9z
Y3JpcHQ+eAotR290OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICAgIDxzY3JpcHQ+Ci18ICAg
ICAgICIgPCEtLSAiCi18ICAgPGJvZHk+Ci18ICAgICAiIC0tPiB4IgotRXhwZWN0ZWQ6Ci18IDxo
dG1sPgotfCAgIDxoZWFkPgotfCAgICAgPHNjcmlwdD4KLXwgICAgICAgIiA8IS0tICIKLXwgICAg
ICIgIgotfCAgIDxib2R5PgotfCAgICAgIi0tPiB4IgotCi1UZXN0IDggb2YgMTYgaW4gcmVzb3Vy
Y2VzL3Rlc3RzNS5kYXQgZmFpbGVkLiBJbnB1dDoKLTx0aXRsZT4gPCEtLSA8L3RpdGxlPiAtLT4g
PC90aXRsZT54Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgICAgPHRpdGxlPgotfCAg
ICAgICAiIDwhLS0gIgotfCAgIDxib2R5PgotfCAgICAgIiAtLT4geCIKLUV4cGVjdGVkOgotfCA8
aHRtbD4KLXwgICA8aGVhZD4KLXwgICAgIDx0aXRsZT4KLXwgICAgICAgIiA8IS0tICIKLXwgICAg
ICIgIgotfCAgIDxib2R5PgotfCAgICAgIi0tPiB4IgogcmVzb3VyY2VzL3Rlc3RzNi5kYXQ6Ci0x
Ci04Ci05Ci0xMAotMTEKLTEyCiAyNgogMjcKIDMwCiAzNwogNDQKIDQ1Ci00NgogNDcKIAotVGVz
dCAxIG9mIDUxIGluIHJlc291cmNlcy90ZXN0czYuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IWRvY3R5
cGUgaHRtbD48L2hlYWQ+IDxoZWFkPgotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+
Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiICIKLUV4cGVjdGVkOgotfCA8IURPQ1RZ
UEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgIiAiCi18ICAgPGJvZHk+Ci0KLVRl
c3QgOCBvZiA1MSBpbiByZXNvdXJjZXMvdGVzdHM2LmRhdCBmYWlsZWQuIElucHV0OgotPGZyYW1l
c2V0PjwvZnJhbWVzZXQ+Ci1mb28KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGZy
YW1lc2V0PgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxmcmFtZXNldD4K
LXwgICAiCi0iCi0KLVRlc3QgOSBvZiA1MSBpbiByZXNvdXJjZXMvdGVzdHM2LmRhdCBmYWlsZWQu
IElucHV0OgotPGZyYW1lc2V0PjwvZnJhbWVzZXQ+Ci08bm9mcmFtZXM+Ci1Hb3Q6Ci18IDxodG1s
PgotfCAgIDxoZWFkPgotfCAgIDxmcmFtZXNldD4KLXwgICA8bm9mcmFtZXM+Ci1FeHBlY3RlZDoK
LXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGZyYW1lc2V0PgotfCAgICIKLSIKLXwgICA8bm9m
cmFtZXM+Ci0KLVRlc3QgMTAgb2YgNTEgaW4gcmVzb3VyY2VzL3Rlc3RzNi5kYXQgZmFpbGVkLiBJ
bnB1dDoKLTxmcmFtZXNldD48L2ZyYW1lc2V0PgotPGRpdj4KLUdvdDoKLXwgPGh0bWw+Ci18ICAg
PGhlYWQ+Ci18ICAgPGZyYW1lc2V0PgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgot
fCAgIDxmcmFtZXNldD4KLXwgICAiCi0iCi0KLVRlc3QgMTEgb2YgNTEgaW4gcmVzb3VyY2VzL3Rl
c3RzNi5kYXQgZmFpbGVkLiBJbnB1dDoKLTxmcmFtZXNldD48L2ZyYW1lc2V0PgotPC9odG1sPgot
R290OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8ZnJhbWVzZXQ+Ci1FeHBlY3RlZDoKLXwg
PGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGZyYW1lc2V0PgotfCAgICIKLSIKLQotVGVzdCAxMiBv
ZiA1MSBpbiByZXNvdXJjZXMvdGVzdHM2LmRhdCBmYWlsZWQuIElucHV0OgotPGZyYW1lc2V0Pjwv
ZnJhbWVzZXQ+Ci08L2Rpdj4KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGZyYW1l
c2V0PgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxmcmFtZXNldD4KLXwg
ICAiCi0iCi0KIFRlc3QgMjYgb2YgNTEgaW4gcmVzb3VyY2VzL3Rlc3RzNi5kYXQgZmFpbGVkLiBJ
bnB1dDoKIDx0YWJsZT48Y29sZ3JvdXA+Zm9vCiBHb3Q6CkBAIC03MDksMTggKzQ3OSw2IEBAIEV4
cGVjdGVkOgogfCA8aGVhZD4KIHwgPGJvZHk+CiAKLVRlc3QgNDYgb2YgNTEgaW4gcmVzb3VyY2Vz
L3Rlc3RzNi5kYXQgZmFpbGVkLiBJbnB1dDoKLTxodG1sPjxmcmFtZXNldD48L2ZyYW1lc2V0Pjwv
aHRtbD4gCi1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxmcmFtZXNldD4KLUV4cGVj
dGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8ZnJhbWVzZXQ+Ci18ICAgIiAiCi0KIFRl
c3QgNDcgb2YgNTEgaW4gcmVzb3VyY2VzL3Rlc3RzNi5kYXQgZmFpbGVkLiBJbnB1dDoKIDwhRE9D
VFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiI+PGh0bWw+PC9odG1s
PgogR290OgpAQCAtNzM1LDggKzQ5Myw2IEBAIEV4cGVjdGVkOgogfCAgIDxib2R5PgogcmVzb3Vy
Y2VzL3Rlc3RzNy5kYXQ6CiA2Ci03Ci04CiAxNgogMjQKIDI3CkBAIC03NzMsMzQgKzUyOSw2IEBA
IEV4cGVjdGVkOgogfCAgICAgICAgICAgICA8dGFibGU+CiB8ICAgICAgICAgICAgICAgIiAiCiAK
LVRlc3QgNyBvZiAzMCBpbiByZXNvdXJjZXMvdGVzdHM3LmRhdCBmYWlsZWQuIElucHV0OgotPCFk
b2N0eXBlIGh0bWw+PGh0bWw+IDxoZWFkPgotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0
bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiICIKLUV4cGVjdGVkOgotfCA8IURP
Q1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci0KLVRlc3QgOCBv
ZiAzMCBpbiByZXNvdXJjZXMvdGVzdHM3LmRhdCBmYWlsZWQuIElucHV0OgotPCFkb2N0eXBlIGh0
bWw+IDxoZWFkPgotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+
Ci18ICAgPGJvZHk+Ci18ICAgICAiICIKLUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwg
PGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci0KIFRlc3QgMTYgb2YgMzAgaW4gcmVzb3Vy
Y2VzL3Rlc3RzNy5kYXQgZmFpbGVkLiBJbnB1dDoKIDwhZG9jdHlwZSBodG1sPjx0YWJsZT5YPGlu
cHV0IHR5cGU9aGlkREVOPjwvdGFibGU+CiBHb3Q6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVubmVy
LWV4cGVjdGVkLnR4dAppbmRleCA3YTg4ZTJmMzViNzZlZjIyMjkyMjBjM2JmNjAzYWQ2ZGNhYThm
MjFmLi5jYTMwOTBjNjM3MDZjMGJlYTM3MTk0Y2ZjNTk3NGQwODk0Y2M5NTdjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQKQEAgLTQ5NDIsOCArNDk0MiwyNiBAQCBF
eHBlY3RlZDoKIHwgICAgICAgICA8bm9icj4KIHwgICAgICAgICAgICJhIgogfCAgICAgICAgIDxu
b2JyPgotcmVzb3VyY2VzL2RvY3R5cGUwMS5kYXQ6IFBBU1MKK3Jlc291cmNlcy9kb2N0eXBlMDEu
ZGF0OgorMzEKIAorVGVzdCAzMSBvZiAzNyBpbiByZXNvdXJjZXMvZG9jdHlwZTAxLmRhdCBmYWls
ZWQuIElucHV0OgorPCFET0NUWVBFIHJvb3QtZWxlbWVudCBbU1lTVEVNIE9SIFBVQkxJQyBGUEld
ICJ1cmkiIFsgCis8IS0tIGludGVybmFsIGRlY2xhcmF0aW9ucyAtLT4KK10+CitHb3Q6Cit8IDwh
RE9DVFlQRSByb290LWVsZW1lbnQ+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgIgorXT4iCitFeHBlY3RlZDoKK3wgPCFET0NUWVBFIHJvb3QtZWxlbWVudD4KK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiXT4iCiByZXNvdXJjZXMvc2NyaXB0
ZGF0YTAxLmRhdDogUEFTUwogCiByZXNvdXJjZXMvZW50aXRpZXMwMS5kYXQ6CmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYzYTFmM2E5OGQz
YWU2NzQ0N2IzNjQ5MzEzYTQyOTc1MjI4MGIzZTguLjQwNDA0Y2E5NDE0NTU0MDQwZWI0YWZkZjI0
YTQwZmI5YzQ3NDczMDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjMgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KIAorICAgICAgICBIYW5kbGUgd2hpdGVzcGFjZSBjb3JyZWN0bHkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxOTA3CisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGFuIGV4dHJhIG1lbWNweSBpbiB0aGUgY2hhcmFjdGVy
IHRva2VuIHBpcGVsaW5lLgorICAgICAgICBJJ2xsIHJlbW92ZSB0aGUgbWVtY3B5IGluIGEgZnV0
dXJlIHBhdGNoLgorCisgICAgICAgICogaHRtbC9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0VGV4dE5vZGUpOgor
ICAgICAgICAqIGh0bWwvSFRNTENvbnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NDaGFyYWN0ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFRyZWVCdWlsZGVyLmg6CisKKzIw
MTAtMDctMDggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBHZXQgbXkgaGVhZCB3cmFwcGVkIGFy
b3VuZCBwcm9jZXNzQ2hhcmFjdGVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MTgxMgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTENvbnN0
cnVjdGlvblNpdGUuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcApp
bmRleCBmZjE2MWUxNjhiN2MxZmQ4OTMwZTJlYzc4ZDYwZGE2MDU5YWRkM2ExLi45MGZmNWEwZWI1
ZGYxZTg5M2U1MGVhMTdlMDFmMjc0NDQyYTQyNjUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQ29uc3RydWN0
aW9uU2l0ZS5jcHAKQEAgLTIxOSwxOCArMjE5LDE4IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNp
dGU6Omluc2VydFNjcmlwdEVsZW1lbnQoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICBtX29w
ZW5FbGVtZW50cy5wdXNoKGF0dGFjaChjdXJyZW50RWxlbWVudCgpLCBlbGVtZW50LnJlbGVhc2Uo
KSkpOwogfQogCi12b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZShBdG9t
aWNIVE1MVG9rZW4mIHRva2VuKQordm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0VGV4
dE5vZGUoY29uc3QgU3RyaW5nJiBjaGFyYWN0ZXJzKQogewogICAgIGlmIChOb2RlKiBsYXN0Q2hp
bGQgPSBjdXJyZW50RWxlbWVudCgpLT5sYXN0Q2hpbGQoKSkgewogICAgICAgICBpZiAobGFzdENo
aWxkLT5pc1RleHROb2RlKCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSdyZSBvbmx5IHN1
cHBvc2VkIHRvIGFwcGVuZCB0byB0aGlzIHRleHQgbm9kZSBpZiBpdAogICAgICAgICAgICAgLy8g
d2FzIHRoZSBsYXN0IHRleHQgbm9kZSBpbnNlcnRlZCBieSB0aGUgcGFyc2VyLgogICAgICAgICAg
ICAgQ2hhcmFjdGVyRGF0YSogdGV4dE5vZGUgPSBzdGF0aWNfY2FzdDxDaGFyYWN0ZXJEYXRhKj4o
bGFzdENoaWxkKTsKLSAgICAgICAgICAgIHRleHROb2RlLT5wYXJzZXJBcHBlbmREYXRhKHRva2Vu
LmNoYXJhY3RlcnMoKSk7CisgICAgICAgICAgICB0ZXh0Tm9kZS0+cGFyc2VyQXBwZW5kRGF0YShj
aGFyYWN0ZXJzKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KLSAgICBh
dHRhY2goY3VycmVudEVsZW1lbnQoKSwgVGV4dDo6Y3JlYXRlKG1fZG9jdW1lbnQsIHRva2VuLmNo
YXJhY3RlcnMoKSkpOworICAgIGF0dGFjaChjdXJyZW50RWxlbWVudCgpLCBUZXh0OjpjcmVhdGUo
bV9kb2N1bWVudCwgY2hhcmFjdGVycykpOwogfQogCiBQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxD
b25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTENvbnN0cnVjdGlvblNpdGUuaCBiL1dlYkNvcmUv
aHRtbC9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCmluZGV4IGY0M2FiNGQ1NzE1NWNhOWMxNTJjZGVh
NzhkNGZlMDFjMzM3NzgxZGQuLjg4MmYxZDI3MTU3OTUyODY5MzIwMWYxMWRjZDA5YWFkZjAxYzdh
NWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCkBAIC01NiwxOSArNTYsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBpbnNlcnRIVE1MSGVhZEVsZW1lbnQoQXRvbWljSFRNTFRva2VuJik7
CiAgICAgdm9pZCBpbnNlcnRIVE1MQm9keUVsZW1lbnQoQXRvbWljSFRNTFRva2VuJik7CiAgICAg
dm9pZCBpbnNlcnRTY3JpcHRFbGVtZW50KEF0b21pY0hUTUxUb2tlbiYpOwotICAgIHZvaWQgaW5z
ZXJ0VGV4dE5vZGUoQXRvbWljSFRNTFRva2VuJik7Ci0KLSAgICBib29sIGluc2VydExlYWRpbmdX
aGl0ZXNwYWNlKEF0b21pY0hUTUxUb2tlbiYpCi0gICAgewotICAgICAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgYm9vbCBpbnNlcnRMZWFk
aW5nV2hpdGVzcGFjZVdpdGhBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoQXRvbWljSFRNTFRva2Vu
JikKLSAgICB7Ci0gICAgICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9CisgICAgdm9pZCBpbnNlcnRUZXh0Tm9kZShjb25zdCBTdHJpbmcmKTsKIAogICAg
IHZvaWQgaW5zZXJ0SFRNTEh0bWxTdGFydFRhZ0JlZm9yZUhUTUwoQXRvbWljSFRNTFRva2VuJik7
CiAgICAgdm9pZCBpbnNlcnRIVE1MSHRtbFN0YXJ0VGFnSW5Cb2R5KEF0b21pY0hUTUxUb2tlbiYp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVpbGRlci5jcHAgYi9XZWJDb3Jl
L2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcAppbmRleCA4MDM5MWVkODFiY2VmNDg2YzE5NzExNmJj
YzI0YTE0YTgyZDEyNTlkLi45Mzg3MWExYzcwN2ZmNjVmOWRlOGM4YTk0ZWQyZjYwZWZlMWZiZGNj
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtNjYsNiArNjYsNzEgQEAgaW5saW5lIGJv
b2wgaXNUcmVlQnVpbGRlcldoaXRlcGFjZShVQ2hhciBjYykKICAgICByZXR1cm4gY2MgPT0gJ1x0
JyB8fCBjYyA9PSAnXHgwQScgfHwgY2MgPT0gJ1x4MEMnIHx8IGNjID09ICdceDBEJyB8fCBjYyA9
PSAnICc7CiB9CiAKK2NsYXNzIEV4dGVybmFsQ2hhcmFjdGVyVG9rZW5CdWZmZXIgOiBwdWJsaWMg
Tm9uY29weWFibGUgeworcHVibGljOgorICAgIGV4cGxpY2l0IEV4dGVybmFsQ2hhcmFjdGVyVG9r
ZW5CdWZmZXIoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKKyAgICAgICAgOiBtX2N1cnJlbnQodG9r
ZW4uY2hhcmFjdGVycygpLmNoYXJhY3RlcnMoKSkKKyAgICAgICAgLCBtX2VuZChtX2N1cnJlbnQg
KyB0b2tlbi5jaGFyYWN0ZXJzKCkubGVuZ3RoKCkpCisgICAgeworICAgICAgICBBU1NFUlQoIWlz
RW1wdHkoKSk7CisgICAgfQorCisgICAgfkV4dGVybmFsQ2hhcmFjdGVyVG9rZW5CdWZmZXIoKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKGlzRW1wdHkoKSk7CisgICAgfQorCisgICAgYm9vbCBpc0Vt
cHR5KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50ID09IG1fZW5kOyB9CisKKyAgICB2b2lkIHNr
aXBMZWFkaW5nV2hpdGVzcGFjZSgpCisgICAgeworICAgICAgICBBU1NFUlQoIWlzRW1wdHkoKSk7
CisgICAgICAgIHdoaWxlIChpc1RyZWVCdWlsZGVyV2hpdGVwYWNlKCptX2N1cnJlbnQpKSB7Cisg
ICAgICAgICAgICBpZiAoKyttX2N1cnJlbnQgPT0gbV9lbmQpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgU3RyaW5nIHRha2VMZWFkaW5nV2hpdGVzcGFj
ZSgpCisgICAgeworICAgICAgICBBU1NFUlQoIWlzRW1wdHkoKSk7CisgICAgICAgIGNvbnN0IFVD
aGFyKiBzdGFydCA9IG1fY3VycmVudDsKKyAgICAgICAgc2tpcExlYWRpbmdXaGl0ZXNwYWNlKCk7
CisgICAgICAgIGlmIChzdGFydCA9PSBtX2N1cnJlbnQpCisgICAgICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7CisgICAgICAgIHJldHVybiBTdHJpbmcoc3RhcnQsIG1fY3VycmVudCAtIHN0YXJ0KTsK
KyAgICB9CisKKyAgICBTdHJpbmcgdGFrZUFsbCgpCisgICAgeworICAgICAgICBBU1NFUlQoIWlz
RW1wdHkoKSk7CisgICAgICAgIGNvbnN0IFVDaGFyKiBzdGFydCA9IG1fY3VycmVudDsKKyAgICAg
ICAgbV9jdXJyZW50ID0gbV9lbmQ7CisgICAgICAgIHJldHVybiBTdHJpbmcoc3RhcnQsIG1fY3Vy
cmVudCAtIHN0YXJ0KTsKKyAgICB9CisKKyAgICBTdHJpbmcgdGFrZUFsbFdoaXRlc3BhY2UoKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKCFpc0VtcHR5KCkpOworICAgICAgICBWZWN0b3I8VUNoYXI+
IHdoaXRlc3BhY2U7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIFVDaGFyIGNjID0gKm1fY3Vy
cmVudCsrOworICAgICAgICAgICAgaWYgKGlzVHJlZUJ1aWxkZXJXaGl0ZXBhY2UoY2MpKQorICAg
ICAgICAgICAgICAgIHdoaXRlc3BhY2UuYXBwZW5kKGNjKTsKKyAgICAgICAgfSB3aGlsZSAobV9j
dXJyZW50IDwgbV9lbmQpOworICAgICAgICAvLyBSZXR1cm5pbmcgdGhlIG51bGwgc3RyaW5nIHdo
ZW4gdGhlcmUgYXJlbid0IGFueSB3aGl0ZXNwYWNlCisgICAgICAgIC8vIGNoYXJhY3RlcnMgaXMg
c2xpZ2h0bHkgY2xlYW5lciBzZW1hbnRpY2FsbHkgYmVjYXVzZSB3ZSBkb24ndCB3YW50CisgICAg
ICAgIC8vIHRvIGluc2VydCBhIHRleHQgbm9kZSAoYXMgb3Bwb3NlZCB0byBpbnNlcnRpbmcgYW4g
ZW1wdHkgdGV4dCBub2RlKS4KKyAgICAgICAgaWYgKHdoaXRlc3BhY2UuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICByZXR1cm4gU3RyaW5nOjphZG9wdCh3
aGl0ZXNwYWNlKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgVUNoYXIqIG1fY3VycmVu
dDsKKyAgICBjb25zdCBVQ2hhciogbV9lbmQ7Cit9OworCiBpbmxpbmUgYm9vbCBoYXNOb25XaGl0
ZXNwYWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0
ZXJzID0gc3RyaW5nLmNoYXJhY3RlcnMoKTsKQEAgLTE5OTYsMTEwICsyMDYxLDE1MCBAQCB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NvbW1lbnQoQXRvbWljSFRNTFRva2VuJiB0b2tlbikK
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ2hhcmFjdGVyKEF0b21pY0hUTUxUb2tlbiYg
dG9rZW4pCiB7CiAgICAgQVNTRVJUKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW46OkNoYXJhY3Rl
cik7Ci0gICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdG8gaGFuZGxlIGVh
Y2ggY2hhcmFjdGVyIGluZGl2aWR1YWxseS4KKworICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgdGhp
cyBkZXNpZ24gaGFzIGFuIGV4dHJhIG1lbWNweSBiZWNhdXNlIHdlIGNvcHkgdGhlCisgICAgLy8g
Y2hhcmFjdGVycyBvdXQgb2YgdGhlIEhUTUxUb2tlbml6ZXIncyBidWZmZXIgaW50byB0aGUgQXRv
bWljSFRNTFRva2VuCisgICAgLy8gYW5kIHRoZW4gaW50byB0aGUgdGV4dCBub2RlLiAgV2hhdCB3
ZSdkIHJlYWxseSBsaWtlIGlzIHRvIGNvcHkgZGlyZWN0bHkKKyAgICAvLyBmcm9tIHRoZSBIVE1M
VG9rZW5pemVyJ3MgYnVmZmVyIGludG8gdGhlIHRleHQgbm9kZS4KKyAgICBFeHRlcm5hbENoYXJh
Y3RlclRva2VuQnVmZmVyIGJ1ZmZlcih0b2tlbik7CisKK1JlcHJvY2Vzc0J1ZmZlcjoKICAgICBz
d2l0Y2ggKGluc2VydGlvbk1vZGUoKSkgewotICAgIGNhc2UgSW5pdGlhbE1vZGU6CisgICAgY2Fz
ZSBJbml0aWFsTW9kZTogewogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluaXRp
YWxNb2RlKTsKLSAgICAgICAgaWYgKHNraXBMZWFkaW5nV2hpdGVzcGFjZSh0b2tlbikpCisgICAg
ICAgIGJ1ZmZlci5za2lwTGVhZGluZ1doaXRlc3BhY2UoKTsKKyAgICAgICAgaWYgKGJ1ZmZlci5p
c0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHByb2Nlc3NEZWZhdWx0Rm9y
SW5pdGlhbE1vZGUodG9rZW4pOwogICAgICAgICAvLyBGYWxsIHRocm91Z2guCi0gICAgY2FzZSBC
ZWZvcmVIVE1MTW9kZToKKyAgICB9CisgICAgY2FzZSBCZWZvcmVIVE1MTW9kZTogewogICAgICAg
ICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEJlZm9yZUhUTUxNb2RlKTsKLSAgICAgICAgaWYg
KHNraXBMZWFkaW5nV2hpdGVzcGFjZSh0b2tlbikpCisgICAgICAgIGJ1ZmZlci5za2lwTGVhZGlu
Z1doaXRlc3BhY2UoKTsKKyAgICAgICAgaWYgKGJ1ZmZlci5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIHByb2Nlc3NEZWZhdWx0Rm9yQmVmb3JlSFRNTE1vZGUodG9rZW4p
OwogICAgICAgICAvLyBGYWxsIHRocm91Z2guCi0gICAgY2FzZSBCZWZvcmVIZWFkTW9kZToKKyAg
ICB9CisgICAgY2FzZSBCZWZvcmVIZWFkTW9kZTogewogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9u
TW9kZSgpID09IEJlZm9yZUhlYWRNb2RlKTsKLSAgICAgICAgaWYgKHNraXBMZWFkaW5nV2hpdGVz
cGFjZSh0b2tlbikpCisgICAgICAgIGJ1ZmZlci5za2lwTGVhZGluZ1doaXRlc3BhY2UoKTsKKyAg
ICAgICAgaWYgKGJ1ZmZlci5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IHByb2Nlc3NEZWZhdWx0Rm9yQmVmb3JlSGVhZE1vZGUodG9rZW4pOwogICAgICAgICAvLyBGYWxs
IHRocm91Z2guCi0gICAgY2FzZSBJbkhlYWRNb2RlOgorICAgIH0KKyAgICBjYXNlIEluSGVhZE1v
ZGU6IHsKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkhlYWRNb2RlKTsKLSAg
ICAgICAgaWYgKG1fdHJlZS5pbnNlcnRMZWFkaW5nV2hpdGVzcGFjZSh0b2tlbikpCisgICAgICAg
IFN0cmluZyBsZWFkaW5nV2hpdGVzcGFjZSA9IGJ1ZmZlci50YWtlTGVhZGluZ1doaXRlc3BhY2Uo
KTsKKyAgICAgICAgaWYgKCFsZWFkaW5nV2hpdGVzcGFjZS5pc0VtcHR5KCkpCisgICAgICAgICAg
ICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUobGVhZGluZ1doaXRlc3BhY2UpOworICAgICAgICBpZiAo
YnVmZmVyLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgcHJvY2Vzc0Rl
ZmF1bHRGb3JJbkhlYWRNb2RlKHRva2VuKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgotICAg
IGNhc2UgQWZ0ZXJIZWFkTW9kZToKKyAgICB9CisgICAgY2FzZSBBZnRlckhlYWRNb2RlOiB7CiAg
ICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJIZWFkTW9kZSk7Ci0gICAgICAg
IGlmIChtX3RyZWUuaW5zZXJ0TGVhZGluZ1doaXRlc3BhY2UodG9rZW4pKQorICAgICAgICBTdHJp
bmcgbGVhZGluZ1doaXRlc3BhY2UgPSBidWZmZXIudGFrZUxlYWRpbmdXaGl0ZXNwYWNlKCk7Cisg
ICAgICAgIGlmICghbGVhZGluZ1doaXRlc3BhY2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV90
cmVlLmluc2VydFRleHROb2RlKGxlYWRpbmdXaGl0ZXNwYWNlKTsKKyAgICAgICAgaWYgKGJ1ZmZl
ci5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHByb2Nlc3NEZWZhdWx0
Rm9yQWZ0ZXJIZWFkTW9kZSh0b2tlbik7Ci0gICAgICAgIC8vIEZhbGwgdGhyb3VnaAorICAgICAg
ICAvLyBGYWxsIHRocm91Z2guCisgICAgfQogICAgIGNhc2UgSW5Cb2R5TW9kZToKICAgICBjYXNl
IEluQ2FwdGlvbk1vZGU6Ci0gICAgY2FzZSBJbkNlbGxNb2RlOgorICAgIGNhc2UgSW5DZWxsTW9k
ZTogewogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9keU1vZGUgfHwgaW5z
ZXJ0aW9uTW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2Vs
bE1vZGUpOwogICAgICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxl
bWVudHMoKTsKLSAgICAgICAgbV90cmVlLmluc2VydFRleHROb2RlKHRva2VuKTsKLSAgICAgICAg
aWYgKG1fZnJhbWVzZXRPayAmJiBoYXNOb25XaGl0ZXNwYWNlKHRva2VuLmNoYXJhY3RlcnMoKSkp
CisgICAgICAgIFN0cmluZyBjaGFyYWN0ZXJzID0gYnVmZmVyLnRha2VBbGwoKTsKKyAgICAgICAg
bV90cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMpOworICAgICAgICBpZiAobV9mcmFtZXNl
dE9rICYmIGhhc05vbldoaXRlc3BhY2UoY2hhcmFjdGVycykpCiAgICAgICAgICAgICBtX2ZyYW1l
c2V0T2sgPSBmYWxzZTsKICAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgSW5UYWJsZU1v
ZGU6CiAgICAgY2FzZSBJblRhYmxlQm9keU1vZGU6Ci0gICAgY2FzZSBJblJvd01vZGU6CisgICAg
Y2FzZSBJblJvd01vZGU6IHsKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJblRh
YmxlTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJsZUJvZHlNb2RlIHx8IGluc2VydGlv
bk1vZGUoKSA9PSBJblJvd01vZGUpOwogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOyAvLyBDcmF6
eSBwZW5kaW5nIGNoYXJhY3RlcnMuCi0gICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZSh0b2tl
bik7CisgICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShidWZmZXIudGFrZUFsbCgpKTsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJblRhYmxlVGV4dE1vZGU6CisgICAgfQorICAgIGNhc2Ug
SW5UYWJsZVRleHRNb2RlOiB7CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7IC8vIENyYXp5IHBl
bmRpbmcgY2hhcmFjdGVycy4KICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbkNvbHVtbkdyb3Vw
TW9kZToKKyAgICB9CisgICAgY2FzZSBJbkNvbHVtbkdyb3VwTW9kZTogewogICAgICAgICBBU1NF
UlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQ29sdW1uR3JvdXBNb2RlKTsKLSAgICAgICAgaWYgKG1f
dHJlZS5pbnNlcnRMZWFkaW5nV2hpdGVzcGFjZSh0b2tlbikpCisgICAgICAgIFN0cmluZyBsZWFk
aW5nV2hpdGVzcGFjZSA9IGJ1ZmZlci50YWtlTGVhZGluZ1doaXRlc3BhY2UoKTsKKyAgICAgICAg
aWYgKCFsZWFkaW5nV2hpdGVzcGFjZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX3RyZWUuaW5z
ZXJ0VGV4dE5vZGUobGVhZGluZ1doaXRlc3BhY2UpOworICAgICAgICBpZiAoYnVmZmVyLmlzRW1w
dHkoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKCFwcm9jZXNzQ29sZ3JvdXBF
bmRUYWdGb3JJbkNvbHVtbkdyb3VwKCkpIHsKICAgICAgICAgICAgIEFTU0VSVChtX2lzUGFyc2lu
Z0ZyYWdtZW50KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBwcm9j
ZXNzQ2hhcmFjdGVyKHRva2VuKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIGdvdG8gUmVwcm9j
ZXNzQnVmZmVyOworICAgIH0KICAgICBjYXNlIEFmdGVyQm9keU1vZGU6Ci0gICAgY2FzZSBBZnRl
ckFmdGVyQm9keU1vZGU6CisgICAgY2FzZSBBZnRlckFmdGVyQm9keU1vZGU6IHsKICAgICAgICAg
QVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBBZnRlckJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUo
KSA9PSBBZnRlckFmdGVyQm9keU1vZGUpOwogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAg
ICAgICAgbV9pbnNlcnRpb25Nb2RlID0gSW5Cb2R5TW9kZTsKLSAgICAgICAgcHJvY2Vzc0NoYXJh
Y3Rlcih0b2tlbik7CisgICAgICAgIGdvdG8gUmVwcm9jZXNzQnVmZmVyOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIFRleHRNb2RlOgotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAg
ICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUodG9rZW4pOworICAgIH0KKyAgICBjYXNlIFRleHRNb2Rl
OiB7CisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gVGV4dE1vZGUpOworICAgICAg
ICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoYnVmZmVyLnRha2VBbGwoKSk7CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgSW5IZWFkTm9zY3JpcHRNb2RlOgorICAgIH0KKyAgICBjYXNlIEluSGVhZE5v
c2NyaXB0TW9kZTogewogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluSGVhZE5v
c2NyaXB0TW9kZSk7Ci0gICAgICAgIGlmIChtX3RyZWUuaW5zZXJ0TGVhZGluZ1doaXRlc3BhY2Uo
dG9rZW4pKQorICAgICAgICBTdHJpbmcgbGVhZGluZ1doaXRlc3BhY2UgPSBidWZmZXIudGFrZUxl
YWRpbmdXaGl0ZXNwYWNlKCk7CisgICAgICAgIGlmICghbGVhZGluZ1doaXRlc3BhY2UuaXNFbXB0
eSgpKQorICAgICAgICAgICAgbV90cmVlLmluc2VydFRleHROb2RlKGxlYWRpbmdXaGl0ZXNwYWNl
KTsKKyAgICAgICAgaWYgKGJ1ZmZlci5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIHByb2Nlc3NEZWZhdWx0Rm9ySW5IZWFkTm9zY3JpcHRNb2RlKHRva2VuKTsKLSAgICAg
ICAgcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICAgICAgZ290byBSZXByb2Nlc3NCdWZmZXI7CiAg
ICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNlIEluRnJhbWVzZXRNb2RlOgotICAgIGNhc2Ug
QWZ0ZXJGcmFtZXNldE1vZGU6CisgICAgY2FzZSBBZnRlckZyYW1lc2V0TW9kZTogewogICAgICAg
ICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluRnJhbWVzZXRNb2RlIHx8IGluc2VydGlvbk1v
ZGUoKSA9PSBBZnRlckZyYW1lc2V0TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJBZnRl
ckZyYW1lc2V0TW9kZSk7Ci0gICAgICAgIGlmIChtX3RyZWUuaW5zZXJ0TGVhZGluZ1doaXRlc3Bh
Y2UodG9rZW4pKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBwYXJzZUVycm9yKHRva2Vu
KTsKLSAgICAgICAgLy8gRklYTUU6IFdlIHByb2JhYmx5IG5lZWQgc29tZSBzb3J0IG9mIGxvb3Ag
aGVyZS4gV2UncmUgYmFzaWNhbGx5Ci0gICAgICAgIC8vIGZpbHRlcmluZyBvdXQgdGhlIG5vbi13
aGl0ZXNwYWNlIGNoYXJhY3RlcnMuCisgICAgICAgIFN0cmluZyBsZWFkaW5nV2hpdGVzcGFjZSA9
IGJ1ZmZlci50YWtlQWxsV2hpdGVzcGFjZSgpOworICAgICAgICBpZiAoIWxlYWRpbmdXaGl0ZXNw
YWNlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShsZWFkaW5n
V2hpdGVzcGFjZSk7CisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZ2VuZXJhdGUgYSBwYXJz
ZSBlcnJvciBpZiB3ZSBza2lwcGVkIG92ZXIgYW55CisgICAgICAgIC8vIG5vbi13aGl0ZXNwYWNl
IGNoYXJhY3RlcnMuCiAgICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNlIEluU2VsZWN0SW5U
YWJsZU1vZGU6Ci0gICAgY2FzZSBJblNlbGVjdE1vZGU6CisgICAgY2FzZSBJblNlbGVjdE1vZGU6
IHsKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJblNlbGVjdE1vZGUgfHwgaW5z
ZXJ0aW9uTW9kZSgpID09IEluU2VsZWN0SW5UYWJsZU1vZGUpOwotICAgICAgICBtX3RyZWUuaW5z
ZXJ0VGV4dE5vZGUodG9rZW4pOworICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoYnVmZmVy
LnRha2VBbGwoKSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5Gb3JlaWduQ29udGVudE1v
ZGU6CisgICAgfQorICAgIGNhc2UgSW5Gb3JlaWduQ29udGVudE1vZGU6IHsKICAgICAgICAgbm90
SW1wbGVtZW50ZWQoKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBZnRlckFmdGVyRnJhbWVz
ZXRNb2RlOgotICAgICAgICBpZiAobV90cmVlLmluc2VydExlYWRpbmdXaGl0ZXNwYWNlV2l0aEFj
dGl2ZUZvcm1hdHRpbmdFbGVtZW50cyh0b2tlbikpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIHBhcnNlRXJyb3IodG9rZW4pOwotICAgICAgICAvLyBGSVhNRTogV2UgcHJvYmFibHkgbmVl
ZCBzb21lIHNvcnQgb2YgbG9vcCBoZXJlLiBXZSdyZSBiYXNpY2FsbHkKLSAgICAgICAgLy8gZmls
dGVyaW5nIG91dCB0aGUgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVycy4KKyAgICB9CisgICAgY2Fz
ZSBBZnRlckFmdGVyRnJhbWVzZXRNb2RlOiB7CisgICAgICAgIFN0cmluZyBsZWFkaW5nV2hpdGVz
cGFjZSA9IGJ1ZmZlci50YWtlQWxsV2hpdGVzcGFjZSgpOworICAgICAgICBpZiAoIWxlYWRpbmdX
aGl0ZXNwYWNlLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgbV90cmVlLnJlY29uc3RydWN0VGhl
QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CisgICAgICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4
dE5vZGUobGVhZGluZ1doaXRlc3BhY2UpOworICAgICAgICB9CisgICAgICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgZ2VuZXJhdGUgYSBwYXJzZSBlcnJvciBpZiB3ZSBza2lwcGVkIG92ZXIgYW55Cisg
ICAgICAgIC8vIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcnMuCiAgICAgICAgIGJyZWFrOwogICAg
IH0KKyAgICB9CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0
b21pY0hUTUxUb2tlbiYgdG9rZW4pCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRyZWVC
dWlsZGVyLmggYi9XZWJDb3JlL2h0bWwvSFRNTFRyZWVCdWlsZGVyLmgKaW5kZXggMjU3NGI1ZjZk
MTViZmRlMzJjMDZkMTUzNDZmZTE5MWUzZTBiYzU2YS4uOGVkODI2MDI1OTlkYjA2YjliNDRlNjNh
MTZkNGYwYTE3Y2E5ZmUyMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVpbGRl
ci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVHJlZUJ1aWxkZXIuaApAQCAtMTU0LDEyICsxNTQs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVwYXJlbnRDaGlsZHJlbihFbGVtZW50KiBvbGRQYXJl
bnQsIEVsZW1lbnQqIG5ld1BhcmVudCk7CiAgICAgdm9pZCBjYWxsVGhlQWRvcHRpb25BZ2VuY3ko
QXRvbWljSFRNTFRva2VuJik7CiAKLSAgICBib29sIHNraXBMZWFkaW5nV2hpdGVzcGFjZShBdG9t
aWNIVE1MVG9rZW4mKQotICAgIHsKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLQogICAgIHZvaWQgY2xvc2VUaGVDZWxsKCk7CiAKICAgICB0
ZW1wbGF0ZSA8Ym9vbCBzaG91bGRDbG9zZShjb25zdCBFbGVtZW50Kik+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60970</attachid>
            <date>2010-07-08 15:25:28 -0700</date>
            <delta_ts>2010-07-08 15:25:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-41907-20100708152526.patch</filename>
            <type>text/plain</type>
            <size>21101</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ODY0YmMyODAzZmQ5NGZjYTE1OWIyN2M2NGI1ZTkyZWI1ZDRmMGZhLi4wMGYwOGRl
MzM3MGQ4YjliZWI5NDE2YmE3MDIzZTY1YTVmZGQ3ODI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDYgKzEsMjEgQEAK
IDIwMTAtMDctMDggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAotICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlk
ZWwuCisKKyAgICAgICAgSGFuZGxlIHdoaXRlc3BhY2UgY29ycmVjdGx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTkwNworCisgICAgICAgIFVwZGF0
ZSBleHBlY3RhdGlvbnMgdG8gc2hvdyBtYXNzaXZlIHByb2dyZXNzaW9uLgorCisgICAgICAgICog
aHRtbDVsaWIvcmVzb3VyY2VzL2RvY3R5cGUwMS5kYXQ6CisgICAgICAgICAgLSBXaGVuIEkgY3Jl
YXRlZCB0aGlzIHRlc3QsIEkgc2V0IHRoZSBleHBlY3RhdGlvbnMgaW5jb3JyZWN0bHkuICBUaGUK
KyAgICAgICAgICAgIG5ldyBleHBlY3RhdGlvbnMgbm93IG1hdGNoIHRoZSBzcGVjIGFuZCBNaW5l
ZmllbGQuCisgICAgICAgICogaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLWh0bWw1LnR4dDoKKyAg
ICAgICAgKiBodG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0OgorCisyMDEwLTA3LTA4ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBT
ZWlkZWwuCiAKICAgICAgICAgR2V0IG15IGhlYWQgd3JhcHBlZCBhcm91bmQgcHJvY2Vzc0NoYXJh
Y3RlcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE4
MTIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy9kb2N0eXBlMDEu
ZGF0IGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL2RvY3R5cGUwMS5kYXQKaW5kZXgg
OTRmZWRmY2ZiZGNlNmZjYjc3YjNjYjZkYWI5YmMzOTc3NjhmZmJlNy4uYWJkMmYwZTgwY2JiZWI4
NjdkOWQ5ODg5YjU5NjYxZTRkYmE1MjgzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHRtbDVs
aWIvcmVzb3VyY2VzL2RvY3R5cGUwMS5kYXQKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVz
b3VyY2VzL2RvY3R5cGUwMS5kYXQKQEAgLTMwOSw4ICszMDksNyBAQAogfCA8aHRtbD4KIHwgICA8
aGVhZD4KIHwgICA8Ym9keT4KLXwgICAgICIKLV0+IgorfCAgICAgIl0+IgogCiAjZGF0YQogPCFE
T0NUWVBFIGh0bWwgUFVCTElDCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5u
ZXItZXhwZWN0ZWQtaHRtbDUudHh0IGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVubmVyLWV4cGVj
dGVkLWh0bWw1LnR4dAppbmRleCBlZWQ4OTM3YjVjMmFjODUyNjRiNzI2NTkxMmViNmZjNTM0MzRl
ZjEwLi5hNzM3NWE4NjdkMzUyZWJkMGY3ZTg0NGU0ZDJhNjdmODc5OTA3NTYyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQtaHRtbDUudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC1odG1sNS50eHQKQEAgLTYsNyArNiw2
IEBAIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgogcmVzb3VyY2VzL3Rlc3RzMS5kYXQ6CiAzMAog
MzIKLTUwCiA1MgogNTMKIDc4CkBAIC05MywyNiArOTIsNiBAQCBFeHBlY3RlZDoKIHwgICAgICAg
ICAgICAgICAgICAgInBsZWFzZSEiCiB8ICAgICAgICAgICAgIDwhLS0gWCAtLT4KIAotVGVzdCA1
MCBvZiAxMTMgaW4gcmVzb3VyY2VzL3Rlc3RzMS5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQ
RSBodG1sPjxzY3JpcHQ+IDwhLS0gPC9zY3JpcHQ+IC0tPiA8L3NjcmlwdD4gRU9GCi1Hb3Q6Ci18
IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICAgIDxzY3JpcHQ+Ci18
ICAgICAgICIgPCEtLSAiCi18ICAgPGJvZHk+Ci18ICAgICAiIC0tPiAgRU9GIgotRXhwZWN0ZWQ6
Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICAgIDxzY3JpcHQ+
Ci18ICAgICAgICIgPCEtLSAiCi18ICAgICAiICIKLXwgICA8Ym9keT4KLXwgICAgICItLT4gIEVP
RiIKLQogVGVzdCA1MiBvZiAxMTMgaW4gcmVzb3VyY2VzL3Rlc3RzMS5kYXQgZmFpbGVkLiBJbnB1
dDoKIDxwIGlkPWE+PGI+PHAgaWQ9Yj48L2I+VEVTVAogR290OgpAQCAtMzA1LDkgKzI4NCw2IEBA
IEV4cGVjdGVkOgogfCAgICAgPGE+CiByZXNvdXJjZXMvdGVzdHMyLmRhdDoKIDEzCi00NwotNDgK
LTQ5CiAKIFRlc3QgMTMgb2YgNTkgaW4gcmVzb3VyY2VzL3Rlc3RzMi5kYXQgZmFpbGVkLiBJbnB1
dDoKIDwhRE9DVFlQRSBodG1sPjx0YWJsZT48dHI+VEVTVApAQCAtMzI5LDYyICszMDUsNiBAQCBF
eHBlY3RlZDoKIHwgICAgIDx0YWJsZT4KIHwgICAgICAgPHRib2R5PgogfCAgICAgICAgIDx0cj4K
LQotVGVzdCA0NyBvZiA1OSBpbiByZXNvdXJjZXMvdGVzdHMyLmRhdCBmYWlsZWQuIElucHV0Ogot
IAotIAotR290OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICIgCi0g
IgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotCi1UZXN0IDQ4
IG9mIDU5IGluIHJlc291cmNlcy90ZXN0czIuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUg
aHRtbD4gIDxodG1sPgotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhl
YWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiICAiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+
Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotCi1UZXN0IDQ5IG9mIDU5IGluIHJl
c291cmNlcy90ZXN0czIuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48c2NyaXB0
PgotPC9zY3JpcHQ+ICA8dGl0bGU+eDwvdGl0bGU+ICA8L2hlYWQ+Ci1Hb3Q6Ci18IDwhRE9DVFlQ
RSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICAgIDxzY3JpcHQ+Ci18ICAgICAgICIK
LSIKLXwgICA8Ym9keT4KLXwgICAgICIgICIKLXwgICAgIDx0aXRsZT4KLXwgICAgICAgIngiCi18
ICAgICAiICAiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxo
ZWFkPgotfCAgICAgPHNjcmlwdD4KLXwgICAgICAgIgotIgotfCAgICAgIiAgIgotfCAgICAgPHRp
dGxlPgotfCAgICAgICAieCIKLXwgICAgICIgICIKLXwgICA8Ym9keT4KIHJlc291cmNlcy90ZXN0
czMuZGF0OgogMTYKIDE3CkBAIC00ODksMTY3ICs0MDksMTcgQEAgR290OgogRXhwZWN0ZWQ6CiB8
IDx0aXRsZT4KIHwgICAic2V0dGluZyBoZWFkJ3MgaW5uZXJIVE1MIgotcmVzb3VyY2VzL3Rlc3Rz
NS5kYXQ6Ci0yCi03Ci04CityZXNvdXJjZXMvdGVzdHM1LmRhdDogUEFTUwogCi1UZXN0IDIgb2Yg
MTYgaW4gcmVzb3VyY2VzL3Rlc3RzNS5kYXQgZmFpbGVkLiBJbnB1dDoKLTxzdHlsZT4gPCEtLSA8
L3N0eWxlPiAtLT4gPC9zdHlsZT54Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgICAg
PHN0eWxlPgotfCAgICAgICAiIDwhLS0gIgotfCAgIDxib2R5PgotfCAgICAgIiAtLT4geCIKLUV4
cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICAgIDxzdHlsZT4KLXwgICAgICAgIiA8
IS0tICIKLXwgICAgICIgIgotfCAgIDxib2R5PgotfCAgICAgIi0tPiB4IgotCi1UZXN0IDcgb2Yg
MTYgaW4gcmVzb3VyY2VzL3Rlc3RzNS5kYXQgZmFpbGVkLiBJbnB1dDoKLTxzY3JpcHQ+IDwhLS0g
PC9zY3JpcHQ+IC0tPiA8L3NjcmlwdD54Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAg
ICAgPHNjcmlwdD4KLXwgICAgICAgIiA8IS0tICIKLXwgICA8Ym9keT4KLXwgICAgICIgLS0+IHgi
Ci1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgICA8c2NyaXB0PgotfCAgICAg
ICAiIDwhLS0gIgotfCAgICAgIiAiCi18ICAgPGJvZHk+Ci18ICAgICAiLS0+IHgiCi0KLVRlc3Qg
OCBvZiAxNiBpbiByZXNvdXJjZXMvdGVzdHM1LmRhdCBmYWlsZWQuIElucHV0OgotPHRpdGxlPiA8
IS0tIDwvdGl0bGU+IC0tPiA8L3RpdGxlPngKLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18
ICAgICA8dGl0bGU+Ci18ICAgICAgICIgPCEtLSAiCi18ICAgPGJvZHk+Ci18ICAgICAiIC0tPiB4
IgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgICAgPHRpdGxlPgotfCAgICAg
ICAiIDwhLS0gIgotfCAgICAgIiAiCi18ICAgPGJvZHk+Ci18ICAgICAiLS0+IHgiCiByZXNvdXJj
ZXMvdGVzdHM2LmRhdDoKLTEKLTgKLTkKLTEwCi0xMQotMTIKIDI2CiAyNwogMzAKIDM3CiA0NAog
NDUKLTQ2CiA0NwogCi1UZXN0IDEgb2YgNTEgaW4gcmVzb3VyY2VzL3Rlc3RzNi5kYXQgZmFpbGVk
LiBJbnB1dDoKLTwhZG9jdHlwZSBodG1sPjwvaGVhZD4gPGhlYWQ+Ci1Hb3Q6Ci18IDwhRE9DVFlQ
RSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICIgIgotRXhw
ZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICAiICIK
LXwgICA8Ym9keT4KLQotVGVzdCA4IG9mIDUxIGluIHJlc291cmNlcy90ZXN0czYuZGF0IGZhaWxl
ZC4gSW5wdXQ6Ci08ZnJhbWVzZXQ+PC9mcmFtZXNldD4KLWZvbwotR290OgotfCA8aHRtbD4KLXwg
ICA8aGVhZD4KLXwgICA8ZnJhbWVzZXQ+Ci1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+
Ci18ICAgPGZyYW1lc2V0PgotfCAgICIKLSIKLQotVGVzdCA5IG9mIDUxIGluIHJlc291cmNlcy90
ZXN0czYuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08ZnJhbWVzZXQ+PC9mcmFtZXNldD4KLTxub2ZyYW1l
cz4KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGZyYW1lc2V0PgotfCAgIDxub2Zy
YW1lcz4KLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8ZnJhbWVzZXQ+Ci18
ICAgIgotIgotfCAgIDxub2ZyYW1lcz4KLQotVGVzdCAxMCBvZiA1MSBpbiByZXNvdXJjZXMvdGVz
dHM2LmRhdCBmYWlsZWQuIElucHV0OgotPGZyYW1lc2V0PjwvZnJhbWVzZXQ+Ci08ZGl2PgotR290
OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8ZnJhbWVzZXQ+Ci1FeHBlY3RlZDoKLXwgPGh0
bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGZyYW1lc2V0PgotfCAgICIKLSIKLQotVGVzdCAxMSBvZiA1
MSBpbiByZXNvdXJjZXMvdGVzdHM2LmRhdCBmYWlsZWQuIElucHV0OgotPGZyYW1lc2V0PjwvZnJh
bWVzZXQ+Ci08L2h0bWw+Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxmcmFtZXNl
dD4KLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8ZnJhbWVzZXQ+Ci18ICAg
IgotIgotCi1UZXN0IDEyIG9mIDUxIGluIHJlc291cmNlcy90ZXN0czYuZGF0IGZhaWxlZC4gSW5w
dXQ6Ci08ZnJhbWVzZXQ+PC9mcmFtZXNldD4KLTwvZGl2PgotR290OgotfCA8aHRtbD4KLXwgICA8
aGVhZD4KLXwgICA8ZnJhbWVzZXQ+Ci1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18
ICAgPGZyYW1lc2V0PgotfCAgICIKLSIKLQogVGVzdCAyNiBvZiA1MSBpbiByZXNvdXJjZXMvdGVz
dHM2LmRhdCBmYWlsZWQuIElucHV0OgogPHRhYmxlPjxjb2xncm91cD5mb28KIEdvdDoKQEAgLTcw
OSwxOCArNDc5LDYgQEAgRXhwZWN0ZWQ6CiB8IDxoZWFkPgogfCA8Ym9keT4KIAotVGVzdCA0NiBv
ZiA1MSBpbiByZXNvdXJjZXMvdGVzdHM2LmRhdCBmYWlsZWQuIElucHV0OgotPGh0bWw+PGZyYW1l
c2V0PjwvZnJhbWVzZXQ+PC9odG1sPiAKLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAg
PGZyYW1lc2V0PgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxmcmFtZXNl
dD4KLXwgICAiICIKLQogVGVzdCA0NyBvZiA1MSBpbiByZXNvdXJjZXMvdGVzdHM2LmRhdCBmYWls
ZWQuIElucHV0OgogPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEv
L0VOIj48aHRtbD48L2h0bWw+CiBHb3Q6CkBAIC03MzUsOCArNDkzLDYgQEAgRXhwZWN0ZWQ6CiB8
ICAgPGJvZHk+CiByZXNvdXJjZXMvdGVzdHM3LmRhdDoKIDYKLTcKLTgKIDE2CiAyNAogMjcKQEAg
LTc3MywzNCArNTI5LDYgQEAgRXhwZWN0ZWQ6CiB8ICAgICAgICAgICAgIDx0YWJsZT4KIHwgICAg
ICAgICAgICAgICAiICIKIAotVGVzdCA3IG9mIDMwIGluIHJlc291cmNlcy90ZXN0czcuZGF0IGZh
aWxlZC4gSW5wdXQ6Ci08IWRvY3R5cGUgaHRtbD48aHRtbD4gPGhlYWQ+Ci1Hb3Q6Ci18IDwhRE9D
VFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICIgIgot
RXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8
Ym9keT4KLQotVGVzdCA4IG9mIDMwIGluIHJlc291cmNlcy90ZXN0czcuZGF0IGZhaWxlZC4gSW5w
dXQ6Ci08IWRvY3R5cGUgaHRtbD4gPGhlYWQ+Ci1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8
aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICIgIgotRXhwZWN0ZWQ6Ci18IDwh
RE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLQogVGVzdCAx
NiBvZiAzMCBpbiByZXNvdXJjZXMvdGVzdHM3LmRhdCBmYWlsZWQuIElucHV0OgogPCFkb2N0eXBl
IGh0bWw+PHRhYmxlPlg8aW5wdXQgdHlwZT1oaWRERU4+PC90YWJsZT4KIEdvdDoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0CmluZGV4IDdhODhlMmYzNWI3NmVmMjIyOTIy
MGMzYmY2MDNhZDZkY2FhOGYyMWYuLmNhMzA5MGM2MzcwNmMwYmVhMzcxOTRjZmM1OTc0ZDA4OTRj
Yzk1N2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dApAQCAtNDk0
Miw4ICs0OTQyLDI2IEBAIEV4cGVjdGVkOgogfCAgICAgICAgIDxub2JyPgogfCAgICAgICAgICAg
ImEiCiB8ICAgICAgICAgPG5vYnI+Ci1yZXNvdXJjZXMvZG9jdHlwZTAxLmRhdDogUEFTUworcmVz
b3VyY2VzL2RvY3R5cGUwMS5kYXQ6CiszMQogCitUZXN0IDMxIG9mIDM3IGluIHJlc291cmNlcy9k
b2N0eXBlMDEuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8IURPQ1RZUEUgcm9vdC1lbGVtZW50IFtTWVNU
RU0gT1IgUFVCTElDIEZQSV0gInVyaSIgWyAKKzwhLS0gaW50ZXJuYWwgZGVjbGFyYXRpb25zIC0t
PgorXT4KK0dvdDoKK3wgPCFET0NUWVBFIHJvb3QtZWxlbWVudD4KK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiCitdPiIKK0V4cGVjdGVkOgorfCA8IURPQ1RZUEUgcm9v
dC1lbGVtZW50PgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJdPiIK
IHJlc291cmNlcy9zY3JpcHRkYXRhMDEuZGF0OiBQQVNTCiAKIHJlc291cmNlcy9lbnRpdGllczAx
LmRhdDoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNjNhMWYzYTk4ZDNhZTY3NDQ3YjM2NDkzMTNhNDI5NzUyMjgwYjNlOC4uM2VlZWQ3NDdh
MjNjNmEwNTQyOWU3MTM4OWNlZDc1MmQ2YWIzYjFmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNiArMSwyMyBAQAogMjAxMC0wNy0w
OCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCi0gICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KKworICAg
ICAgICBIYW5kbGUgd2hpdGVzcGFjZSBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxOTA3CisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRy
b2R1Y2VzIGFuIGV4dHJhIG1lbWNweSBpbiB0aGUgY2hhcmFjdGVyIHRva2VuIHBpcGVsaW5lLgor
ICAgICAgICBJJ2xsIHJlbW92ZSB0aGUgbWVtY3B5IGluIGEgZnV0dXJlIHBhdGNoLgorCisgICAg
ICAgICogaHRtbC9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0VGV4dE5vZGUpOgorICAgICAgICAqIGh0bWwvSFRN
TENvbnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUcmVlQnVpbGRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NDaGFyYWN0ZXIpOgor
ICAgICAgICAqIGh0bWwvSFRNTFRyZWVCdWlsZGVyLmg6CisKKzIwMTAtMDctMDggIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KIAogICAgICAgICBHZXQgbXkgaGVhZCB3cmFwcGVkIGFyb3VuZCBwcm9jZXNzQ2hhcmFjdGVy
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTgxMgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1dlYkNv
cmUvaHRtbC9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKaW5kZXggZmYxNjFlMTY4YjdjMWZkODkz
MGUyZWM3OGQ2MGRhNjA1OWFkZDNhMS4uOTBmZjVhMGViNWRmMWU4OTNlNTBlYTE3ZTAxZjI3NDQ0
MmE0MjY1MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNw
cAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC0yMTksMTgg
KzIxOSwxOCBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRTY3JpcHRFbGVtZW50
KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgbV9vcGVuRWxlbWVudHMucHVzaChhdHRhY2go
Y3VycmVudEVsZW1lbnQoKSwgZWxlbWVudC5yZWxlYXNlKCkpKTsKIH0KIAotdm9pZCBIVE1MQ29u
c3RydWN0aW9uU2l0ZTo6aW5zZXJ0VGV4dE5vZGUoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKK3Zv
aWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKGNvbnN0IFN0cmluZyYgY2hh
cmFjdGVycykKIHsKICAgICBpZiAoTm9kZSogbGFzdENoaWxkID0gY3VycmVudEVsZW1lbnQoKS0+
bGFzdENoaWxkKCkpIHsKICAgICAgICAgaWYgKGxhc3RDaGlsZC0+aXNUZXh0Tm9kZSgpKSB7CiAg
ICAgICAgICAgICAvLyBGSVhNRTogV2UncmUgb25seSBzdXBwb3NlZCB0byBhcHBlbmQgdG8gdGhp
cyB0ZXh0IG5vZGUgaWYgaXQKICAgICAgICAgICAgIC8vIHdhcyB0aGUgbGFzdCB0ZXh0IG5vZGUg
aW5zZXJ0ZWQgYnkgdGhlIHBhcnNlci4KICAgICAgICAgICAgIENoYXJhY3RlckRhdGEqIHRleHRO
b2RlID0gc3RhdGljX2Nhc3Q8Q2hhcmFjdGVyRGF0YSo+KGxhc3RDaGlsZCk7Ci0gICAgICAgICAg
ICB0ZXh0Tm9kZS0+cGFyc2VyQXBwZW5kRGF0YSh0b2tlbi5jaGFyYWN0ZXJzKCkpOworICAgICAg
ICAgICAgdGV4dE5vZGUtPnBhcnNlckFwcGVuZERhdGEoY2hhcmFjdGVycyk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KICAgICB9Ci0gICAgYXR0YWNoKGN1cnJlbnRFbGVtZW50KCks
IFRleHQ6OmNyZWF0ZShtX2RvY3VtZW50LCB0b2tlbi5jaGFyYWN0ZXJzKCkpKTsKKyAgICBhdHRh
Y2goY3VycmVudEVsZW1lbnQoKSwgVGV4dDo6Y3JlYXRlKG1fZG9jdW1lbnQsIGNoYXJhY3RlcnMp
KTsKIH0KIAogUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRl
RWxlbWVudChBdG9taWNIVE1MVG9rZW4mIHRva2VuKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmggYi9XZWJDb3JlL2h0bWwvSFRNTENvbnN0cnVjdGlvblNp
dGUuaAppbmRleCBmNDNhYjRkNTcxNTVjYTljMTUyY2RlYTc4ZDRmZTAxYzMzNzc4MWRkLi44ODJm
MWQyNzE1Nzk1Mjg2OTMyMDFmMTFkY2QwOWFhZGYwMWM3YTVhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTENvbnN0cnVjdGlvblNpdGUuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTENvbnN0
cnVjdGlvblNpdGUuaApAQCAtNTYsMTkgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgaW5zZXJ0
SFRNTEhlYWRFbGVtZW50KEF0b21pY0hUTUxUb2tlbiYpOwogICAgIHZvaWQgaW5zZXJ0SFRNTEJv
ZHlFbGVtZW50KEF0b21pY0hUTUxUb2tlbiYpOwogICAgIHZvaWQgaW5zZXJ0U2NyaXB0RWxlbWVu
dChBdG9taWNIVE1MVG9rZW4mKTsKLSAgICB2b2lkIGluc2VydFRleHROb2RlKEF0b21pY0hUTUxU
b2tlbiYpOwotCi0gICAgYm9vbCBpbnNlcnRMZWFkaW5nV2hpdGVzcGFjZShBdG9taWNIVE1MVG9r
ZW4mKQotICAgIHsKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLQotICAgIGJvb2wgaW5zZXJ0TGVhZGluZ1doaXRlc3BhY2VXaXRoQWN0aXZl
Rm9ybWF0dGluZ0VsZW1lbnRzKEF0b21pY0hUTUxUb2tlbiYpCi0gICAgewotICAgICAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQorICAgIHZvaWQgaW5z
ZXJ0VGV4dE5vZGUoY29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIGluc2VydEhUTUxIdG1sU3Rh
cnRUYWdCZWZvcmVIVE1MKEF0b21pY0hUTUxUb2tlbiYpOwogICAgIHZvaWQgaW5zZXJ0SFRNTEh0
bWxTdGFydFRhZ0luQm9keShBdG9taWNIVE1MVG9rZW4mKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVpbGRlci5j
cHAKaW5kZXggODAzOTFlZDgxYmNlZjQ4NmMxOTcxMTZiY2MyNGExNGE4MmQxMjU5ZC4uYWQ3ODM0
ODVlYjFhNjBmNTFmODFjYjZkN2U0MTc4ZDM2N2UyZTgxNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVpbGRl
ci5jcHAKQEAgLTY2LDYgKzY2LDcxIEBAIGlubGluZSBib29sIGlzVHJlZUJ1aWxkZXJXaGl0ZXBh
Y2UoVUNoYXIgY2MpCiAgICAgcmV0dXJuIGNjID09ICdcdCcgfHwgY2MgPT0gJ1x4MEEnIHx8IGNj
ID09ICdceDBDJyB8fCBjYyA9PSAnXHgwRCcgfHwgY2MgPT0gJyAnOwogfQogCitjbGFzcyBFeHRl
cm5hbENoYXJhY3RlclRva2VuQnVmZmVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCBFeHRlcm5hbENoYXJhY3RlclRva2VuQnVmZmVyKEF0b21pY0hUTUxUb2tl
biYgdG9rZW4pCisgICAgICAgIDogbV9jdXJyZW50KHRva2VuLmNoYXJhY3RlcnMoKS5jaGFyYWN0
ZXJzKCkpCisgICAgICAgICwgbV9lbmQobV9jdXJyZW50ICsgdG9rZW4uY2hhcmFjdGVycygpLmxl
bmd0aCgpKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFpc0VtcHR5KCkpOworICAgIH0KKworICAg
IH5FeHRlcm5hbENoYXJhY3RlclRva2VuQnVmZmVyKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChp
c0VtcHR5KCkpOworICAgIH0KKworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
Y3VycmVudCA9PSBtX2VuZDsgfQorCisgICAgdm9pZCBza2lwTGVhZGluZ1doaXRlc3BhY2UoKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKCFpc0VtcHR5KCkpOworICAgICAgICB3aGlsZSAoaXNUcmVl
QnVpbGRlcldoaXRlcGFjZSgqbV9jdXJyZW50KSkgeworICAgICAgICAgICAgaWYgKCsrbV9jdXJy
ZW50ID09IG1fZW5kKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0K
KworICAgIFN0cmluZyB0YWtlTGVhZGluZ1doaXRlc3BhY2UoKQorICAgIHsKKyAgICAgICAgQVNT
RVJUKCFpc0VtcHR5KCkpOworICAgICAgICBjb25zdCBVQ2hhciogc3RhcnQgPSBtX2N1cnJlbnQ7
CisgICAgICAgIHNraXBMZWFkaW5nV2hpdGVzcGFjZSgpOworICAgICAgICBpZiAoc3RhcnQgPT0g
bV9jdXJyZW50KQorICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICByZXR1cm4g
U3RyaW5nKHN0YXJ0LCBtX2N1cnJlbnQgLSBzdGFydCk7CisgICAgfQorCisgICAgU3RyaW5nIHRh
a2VSZW1haW5pbmcoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFpc0VtcHR5KCkpOworICAgICAg
ICBjb25zdCBVQ2hhciogc3RhcnQgPSBtX2N1cnJlbnQ7CisgICAgICAgIG1fY3VycmVudCA9IG1f
ZW5kOworICAgICAgICByZXR1cm4gU3RyaW5nKHN0YXJ0LCBtX2N1cnJlbnQgLSBzdGFydCk7Cisg
ICAgfQorCisgICAgU3RyaW5nIHRha2VSZW1haW5pbmdXaGl0ZXNwYWNlKCkKKyAgICB7CisgICAg
ICAgIEFTU0VSVCghaXNFbXB0eSgpKTsKKyAgICAgICAgVmVjdG9yPFVDaGFyPiB3aGl0ZXNwYWNl
OworICAgICAgICBkbyB7CisgICAgICAgICAgICBVQ2hhciBjYyA9ICptX2N1cnJlbnQrKzsKKyAg
ICAgICAgICAgIGlmIChpc1RyZWVCdWlsZGVyV2hpdGVwYWNlKGNjKSkKKyAgICAgICAgICAgICAg
ICB3aGl0ZXNwYWNlLmFwcGVuZChjYyk7CisgICAgICAgIH0gd2hpbGUgKG1fY3VycmVudCA8IG1f
ZW5kKTsKKyAgICAgICAgLy8gUmV0dXJuaW5nIHRoZSBudWxsIHN0cmluZyB3aGVuIHRoZXJlIGFy
ZW4ndCBhbnkgd2hpdGVzcGFjZQorICAgICAgICAvLyBjaGFyYWN0ZXJzIGlzIHNsaWdodGx5IGNs
ZWFuZXIgc2VtYW50aWNhbGx5IGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudAorICAgICAgICAvLyB0byBp
bnNlcnQgYSB0ZXh0IG5vZGUgKGFzIG9wcG9zZWQgdG8gaW5zZXJ0aW5nIGFuIGVtcHR5IHRleHQg
bm9kZSkuCisgICAgICAgIGlmICh3aGl0ZXNwYWNlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6YWRvcHQod2hpdGVzcGFjZSk7
CisgICAgfQorCitwcml2YXRlOgorICAgIGNvbnN0IFVDaGFyKiBtX2N1cnJlbnQ7CisgICAgY29u
c3QgVUNoYXIqIG1fZW5kOworfTsKKwogaW5saW5lIGJvb2wgaGFzTm9uV2hpdGVzcGFjZShjb25z
dCBTdHJpbmcmIHN0cmluZykKIHsKICAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVycyA9IHN0cmlu
Zy5jaGFyYWN0ZXJzKCk7CkBAIC0xOTk2LDExMCArMjA2MSwxNTAgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NDb21tZW50KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlcihBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogewog
ICAgIEFTU0VSVCh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuOjpDaGFyYWN0ZXIpOwotICAgIC8v
IEZJWE1FOiBXZSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRvIGhhbmRsZSBlYWNoIGNoYXJhY3Rl
ciBpbmRpdmlkdWFsbHkuCisKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5IHRoaXMgZGVzaWduIGhh
cyBhbiBleHRyYSBtZW1jcHkgYmVjYXVzZSB3ZSBjb3B5IHRoZQorICAgIC8vIGNoYXJhY3RlcnMg
b3V0IG9mIHRoZSBIVE1MVG9rZW5pemVyJ3MgYnVmZmVyIGludG8gdGhlIEF0b21pY0hUTUxUb2tl
bgorICAgIC8vIGFuZCB0aGVuIGludG8gdGhlIHRleHQgbm9kZS4gIFdoYXQgd2UnZCByZWFsbHkg
bGlrZSBpcyB0byBjb3B5IGRpcmVjdGx5CisgICAgLy8gZnJvbSB0aGUgSFRNTFRva2VuaXplcidz
IGJ1ZmZlciBpbnRvIHRoZSB0ZXh0IG5vZGUuCisgICAgRXh0ZXJuYWxDaGFyYWN0ZXJUb2tlbkJ1
ZmZlciBidWZmZXIodG9rZW4pOworCitSZXByb2Nlc3NCdWZmZXI6CiAgICAgc3dpdGNoIChpbnNl
cnRpb25Nb2RlKCkpIHsKLSAgICBjYXNlIEluaXRpYWxNb2RlOgorICAgIGNhc2UgSW5pdGlhbE1v
ZGU6IHsKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbml0aWFsTW9kZSk7Ci0g
ICAgICAgIGlmIChza2lwTGVhZGluZ1doaXRlc3BhY2UodG9rZW4pKQorICAgICAgICBidWZmZXIu
c2tpcExlYWRpbmdXaGl0ZXNwYWNlKCk7CisgICAgICAgIGlmIChidWZmZXIuaXNFbXB0eSgpKQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBwcm9jZXNzRGVmYXVsdEZvckluaXRpYWxNb2Rl
KHRva2VuKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgotICAgIGNhc2UgQmVmb3JlSFRNTE1v
ZGU6CisgICAgfQorICAgIGNhc2UgQmVmb3JlSFRNTE1vZGU6IHsKICAgICAgICAgQVNTRVJUKGlu
c2VydGlvbk1vZGUoKSA9PSBCZWZvcmVIVE1MTW9kZSk7Ci0gICAgICAgIGlmIChza2lwTGVhZGlu
Z1doaXRlc3BhY2UodG9rZW4pKQorICAgICAgICBidWZmZXIuc2tpcExlYWRpbmdXaGl0ZXNwYWNl
KCk7CisgICAgICAgIGlmIChidWZmZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICBwcm9jZXNzRGVmYXVsdEZvckJlZm9yZUhUTUxNb2RlKHRva2VuKTsKICAgICAgICAg
Ly8gRmFsbCB0aHJvdWdoLgotICAgIGNhc2UgQmVmb3JlSGVhZE1vZGU6CisgICAgfQorICAgIGNh
c2UgQmVmb3JlSGVhZE1vZGU6IHsKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBC
ZWZvcmVIZWFkTW9kZSk7Ci0gICAgICAgIGlmIChza2lwTGVhZGluZ1doaXRlc3BhY2UodG9rZW4p
KQorICAgICAgICBidWZmZXIuc2tpcExlYWRpbmdXaGl0ZXNwYWNlKCk7CisgICAgICAgIGlmIChi
dWZmZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBwcm9jZXNzRGVm
YXVsdEZvckJlZm9yZUhlYWRNb2RlKHRva2VuKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgot
ICAgIGNhc2UgSW5IZWFkTW9kZToKKyAgICB9CisgICAgY2FzZSBJbkhlYWRNb2RlOiB7CiAgICAg
ICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5IZWFkTW9kZSk7Ci0gICAgICAgIGlmICht
X3RyZWUuaW5zZXJ0TGVhZGluZ1doaXRlc3BhY2UodG9rZW4pKQorICAgICAgICBTdHJpbmcgbGVh
ZGluZ1doaXRlc3BhY2UgPSBidWZmZXIudGFrZUxlYWRpbmdXaGl0ZXNwYWNlKCk7CisgICAgICAg
IGlmICghbGVhZGluZ1doaXRlc3BhY2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV90cmVlLmlu
c2VydFRleHROb2RlKGxlYWRpbmdXaGl0ZXNwYWNlKTsKKyAgICAgICAgaWYgKGJ1ZmZlci5pc0Vt
cHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHByb2Nlc3NEZWZhdWx0Rm9ySW5I
ZWFkTW9kZSh0b2tlbik7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KLSAgICBjYXNlIEFmdGVy
SGVhZE1vZGU6CisgICAgfQorICAgIGNhc2UgQWZ0ZXJIZWFkTW9kZTogewogICAgICAgICBBU1NF
UlQoaW5zZXJ0aW9uTW9kZSgpID09IEFmdGVySGVhZE1vZGUpOwotICAgICAgICBpZiAobV90cmVl
Lmluc2VydExlYWRpbmdXaGl0ZXNwYWNlKHRva2VuKSkKKyAgICAgICAgU3RyaW5nIGxlYWRpbmdX
aGl0ZXNwYWNlID0gYnVmZmVyLnRha2VMZWFkaW5nV2hpdGVzcGFjZSgpOworICAgICAgICBpZiAo
IWxlYWRpbmdXaGl0ZXNwYWNlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fdHJlZS5pbnNlcnRU
ZXh0Tm9kZShsZWFkaW5nV2hpdGVzcGFjZSk7CisgICAgICAgIGlmIChidWZmZXIuaXNFbXB0eSgp
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBwcm9jZXNzRGVmYXVsdEZvckFmdGVySGVh
ZE1vZGUodG9rZW4pOwotICAgICAgICAvLyBGYWxsIHRocm91Z2gKKyAgICAgICAgLy8gRmFsbCB0
aHJvdWdoLgorICAgIH0KICAgICBjYXNlIEluQm9keU1vZGU6CiAgICAgY2FzZSBJbkNhcHRpb25N
b2RlOgotICAgIGNhc2UgSW5DZWxsTW9kZToKKyAgICBjYXNlIEluQ2VsbE1vZGU6IHsKICAgICAg
ICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUo
KSA9PSBJbkNhcHRpb25Nb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNlbGxNb2RlKTsKICAg
ICAgICAgbV90cmVlLnJlY29uc3RydWN0VGhlQWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7Ci0g
ICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZSh0b2tlbik7Ci0gICAgICAgIGlmIChtX2ZyYW1l
c2V0T2sgJiYgaGFzTm9uV2hpdGVzcGFjZSh0b2tlbi5jaGFyYWN0ZXJzKCkpKQorICAgICAgICBT
dHJpbmcgY2hhcmFjdGVycyA9IGJ1ZmZlci50YWtlUmVtYWluaW5nKCk7CisgICAgICAgIG1fdHJl
ZS5pbnNlcnRUZXh0Tm9kZShjaGFyYWN0ZXJzKTsKKyAgICAgICAgaWYgKG1fZnJhbWVzZXRPayAm
JiBoYXNOb25XaGl0ZXNwYWNlKGNoYXJhY3RlcnMpKQogICAgICAgICAgICAgbV9mcmFtZXNldE9r
ID0gZmFsc2U7CiAgICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNlIEluVGFibGVNb2RlOgog
ICAgIGNhc2UgSW5UYWJsZUJvZHlNb2RlOgotICAgIGNhc2UgSW5Sb3dNb2RlOgorICAgIGNhc2Ug
SW5Sb3dNb2RlOiB7CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJsZU1v
ZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVCb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2Rl
KCkgPT0gSW5Sb3dNb2RlKTsKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsgLy8gQ3JhenkgcGVu
ZGluZyBjaGFyYWN0ZXJzLgotICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUodG9rZW4pOwor
ICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoYnVmZmVyLnRha2VSZW1haW5pbmcoKSk7CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5UYWJsZVRleHRNb2RlOgorICAgIH0KKyAgICBjYXNl
IEluVGFibGVUZXh0TW9kZTogewogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOyAvLyBDcmF6eSBw
ZW5kaW5nIGNoYXJhY3RlcnMuCiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5Db2x1bW5Hcm91
cE1vZGU6CisgICAgfQorICAgIGNhc2UgSW5Db2x1bW5Hcm91cE1vZGU6IHsKICAgICAgICAgQVNT
RVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkNvbHVtbkdyb3VwTW9kZSk7Ci0gICAgICAgIGlmICht
X3RyZWUuaW5zZXJ0TGVhZGluZ1doaXRlc3BhY2UodG9rZW4pKQorICAgICAgICBTdHJpbmcgbGVh
ZGluZ1doaXRlc3BhY2UgPSBidWZmZXIudGFrZUxlYWRpbmdXaGl0ZXNwYWNlKCk7CisgICAgICAg
IGlmICghbGVhZGluZ1doaXRlc3BhY2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV90cmVlLmlu
c2VydFRleHROb2RlKGxlYWRpbmdXaGl0ZXNwYWNlKTsKKyAgICAgICAgaWYgKGJ1ZmZlci5pc0Vt
cHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmICghcHJvY2Vzc0NvbGdyb3Vw
RW5kVGFnRm9ySW5Db2x1bW5Hcm91cCgpKSB7CiAgICAgICAgICAgICBBU1NFUlQobV9pc1BhcnNp
bmdGcmFnbWVudCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgcHJv
Y2Vzc0NoYXJhY3Rlcih0b2tlbik7Ci0gICAgICAgIGJyZWFrOworICAgICAgICBnb3RvIFJlcHJv
Y2Vzc0J1ZmZlcjsKKyAgICB9CiAgICAgY2FzZSBBZnRlckJvZHlNb2RlOgotICAgIGNhc2UgQWZ0
ZXJBZnRlckJvZHlNb2RlOgorICAgIGNhc2UgQWZ0ZXJBZnRlckJvZHlNb2RlOiB7CiAgICAgICAg
IEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJCb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2Rl
KCkgPT0gQWZ0ZXJBZnRlckJvZHlNb2RlKTsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAg
ICAgICAgIG1faW5zZXJ0aW9uTW9kZSA9IEluQm9keU1vZGU7Ci0gICAgICAgIHByb2Nlc3NDaGFy
YWN0ZXIodG9rZW4pOworICAgICAgICBnb3RvIFJlcHJvY2Vzc0J1ZmZlcjsKICAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBUZXh0TW9kZToKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAg
ICAgbV90cmVlLmluc2VydFRleHROb2RlKHRva2VuKTsKKyAgICB9CisgICAgY2FzZSBUZXh0TW9k
ZTogeworICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IFRleHRNb2RlKTsKKyAgICAg
ICAgbV90cmVlLmluc2VydFRleHROb2RlKGJ1ZmZlci50YWtlUmVtYWluaW5nKCkpOwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEluSGVhZE5vc2NyaXB0TW9kZToKKyAgICB9CisgICAgY2FzZSBJ
bkhlYWROb3NjcmlwdE1vZGU6IHsKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJ
bkhlYWROb3NjcmlwdE1vZGUpOwotICAgICAgICBpZiAobV90cmVlLmluc2VydExlYWRpbmdXaGl0
ZXNwYWNlKHRva2VuKSkKKyAgICAgICAgU3RyaW5nIGxlYWRpbmdXaGl0ZXNwYWNlID0gYnVmZmVy
LnRha2VMZWFkaW5nV2hpdGVzcGFjZSgpOworICAgICAgICBpZiAoIWxlYWRpbmdXaGl0ZXNwYWNl
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShsZWFkaW5nV2hp
dGVzcGFjZSk7CisgICAgICAgIGlmIChidWZmZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICBwcm9jZXNzRGVmYXVsdEZvckluSGVhZE5vc2NyaXB0TW9kZSh0b2tlbik7
Ci0gICAgICAgIHByb2Nlc3NUb2tlbih0b2tlbik7CisgICAgICAgIGdvdG8gUmVwcm9jZXNzQnVm
ZmVyOwogICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBJbkZyYW1lc2V0TW9kZToKLSAg
ICBjYXNlIEFmdGVyRnJhbWVzZXRNb2RlOgorICAgIGNhc2UgQWZ0ZXJGcmFtZXNldE1vZGU6IHsK
ICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkZyYW1lc2V0TW9kZSB8fCBpbnNl
cnRpb25Nb2RlKCkgPT0gQWZ0ZXJGcmFtZXNldE1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEFm
dGVyQWZ0ZXJGcmFtZXNldE1vZGUpOwotICAgICAgICBpZiAobV90cmVlLmluc2VydExlYWRpbmdX
aGl0ZXNwYWNlKHRva2VuKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgcGFyc2VFcnJv
cih0b2tlbik7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBwcm9iYWJseSBuZWVkIHNvbWUgc29ydCBv
ZiBsb29wIGhlcmUuIFdlJ3JlIGJhc2ljYWxseQotICAgICAgICAvLyBmaWx0ZXJpbmcgb3V0IHRo
ZSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXJzLgorICAgICAgICBTdHJpbmcgbGVhZGluZ1doaXRl
c3BhY2UgPSBidWZmZXIudGFrZVJlbWFpbmluZ1doaXRlc3BhY2UoKTsKKyAgICAgICAgaWYgKCFs
ZWFkaW5nV2hpdGVzcGFjZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4
dE5vZGUobGVhZGluZ1doaXRlc3BhY2UpOworICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGdl
bmVyYXRlIGEgcGFyc2UgZXJyb3IgaWYgd2Ugc2tpcHBlZCBvdmVyIGFueQorICAgICAgICAvLyBu
b24td2hpdGVzcGFjZSBjaGFyYWN0ZXJzLgogICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2Fz
ZSBJblNlbGVjdEluVGFibGVNb2RlOgotICAgIGNhc2UgSW5TZWxlY3RNb2RlOgorICAgIGNhc2Ug
SW5TZWxlY3RNb2RlOiB7CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5TZWxl
Y3RNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJblNlbGVjdEluVGFibGVNb2RlKTsKLSAgICAg
ICAgbV90cmVlLmluc2VydFRleHROb2RlKHRva2VuKTsKKyAgICAgICAgbV90cmVlLmluc2VydFRl
eHROb2RlKGJ1ZmZlci50YWtlUmVtYWluaW5nKCkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IEluRm9yZWlnbkNvbnRlbnRNb2RlOgorICAgIH0KKyAgICBjYXNlIEluRm9yZWlnbkNvbnRlbnRN
b2RlOiB7CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNh
c2UgQWZ0ZXJBZnRlckZyYW1lc2V0TW9kZToKLSAgICAgICAgaWYgKG1fdHJlZS5pbnNlcnRMZWFk
aW5nV2hpdGVzcGFjZVdpdGhBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHModG9rZW4pKQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKLSAgICAgICAgLy8gRklY
TUU6IFdlIHByb2JhYmx5IG5lZWQgc29tZSBzb3J0IG9mIGxvb3AgaGVyZS4gV2UncmUgYmFzaWNh
bGx5Ci0gICAgICAgIC8vIGZpbHRlcmluZyBvdXQgdGhlIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3Rl
cnMuCisgICAgfQorICAgIGNhc2UgQWZ0ZXJBZnRlckZyYW1lc2V0TW9kZTogeworICAgICAgICBT
dHJpbmcgbGVhZGluZ1doaXRlc3BhY2UgPSBidWZmZXIudGFrZVJlbWFpbmluZ1doaXRlc3BhY2Uo
KTsKKyAgICAgICAgaWYgKCFsZWFkaW5nV2hpdGVzcGFjZS5pc0VtcHR5KCkpIHsKKyAgICAgICAg
ICAgIG1fdHJlZS5yZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOworICAg
ICAgICAgICAgbV90cmVlLmluc2VydFRleHROb2RlKGxlYWRpbmdXaGl0ZXNwYWNlKTsKKyAgICAg
ICAgfQorICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGdlbmVyYXRlIGEgcGFyc2UgZXJyb3Ig
aWYgd2Ugc2tpcHBlZCBvdmVyIGFueQorICAgICAgICAvLyBub24td2hpdGVzcGFjZSBjaGFyYWN0
ZXJzLgogICAgICAgICBicmVhazsKICAgICB9CisgICAgfQogfQogCiB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc0VuZE9mRmlsZShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVpbGRlci5oIGIvV2ViQ29yZS9odG1sL0hUTUxUcmVl
QnVpbGRlci5oCmluZGV4IDI1NzRiNWY2ZDE1YmZkZTMyYzA2ZDE1MzQ2ZmUxOTFlM2UwYmM1NmEu
LjhlZDgyNjAyNTk5ZGIwNmI5YjQ0ZTYzYTE2ZDRmMGExN2NhOWZlMjEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MVHJlZUJ1aWxkZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRyZWVC
dWlsZGVyLmgKQEAgLTE1NCwxMiArMTU0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcGFyZW50
Q2hpbGRyZW4oRWxlbWVudCogb2xkUGFyZW50LCBFbGVtZW50KiBuZXdQYXJlbnQpOwogICAgIHZv
aWQgY2FsbFRoZUFkb3B0aW9uQWdlbmN5KEF0b21pY0hUTUxUb2tlbiYpOwogCi0gICAgYm9vbCBz
a2lwTGVhZGluZ1doaXRlc3BhY2UoQXRvbWljSFRNTFRva2VuJikKLSAgICB7Ci0gICAgICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KICAgICB2b2lk
IGNsb3NlVGhlQ2VsbCgpOwogCiAgICAgdGVtcGxhdGUgPGJvb2wgc2hvdWxkQ2xvc2UoY29uc3Qg
RWxlbWVudCopPgo=
</data>
<flag name="commit-queue"
          id="48848"
          type_id="3"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>