<?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>40596</bug_id>
          
          <creation_ts>2010-06-14 15:33:24 -0700</creation_ts>
          <short_desc>Safari beach-balls loading large pages with HTML5 parser</short_desc>
          <delta_ts>2010-06-14 17:37:35 -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>39259</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>238096</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-14 15:33:24 -0700</bug_when>
    <thetext>Safari beach-balls loading large pages with HTML5 parser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238124</commentid>
    <comment_count>1</comment_count>
      <attachid>58724</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-14 16:16:17 -0700</bug_when>
    <thetext>Created attachment 58724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238128</commentid>
    <comment_count>2</comment_count>
      <attachid>58725</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-14 16:24:07 -0700</bug_when>
    <thetext>Created attachment 58725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238132</commentid>
    <comment_count>3</comment_count>
      <attachid>58725</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-14 16:35:12 -0700</bug_when>
    <thetext>Comment on attachment 58725
Patch

Minor nits.  Don&apos;t know how to test this code...  :(

WebCore/html/HTML5DocumentParser.cpp:51
 +  // FIXME: We would this to be 0.2. Historically .2 caused slowness on old machines.
0.2 / .2 consistency.

WebCore/html/HTML5DocumentParser.cpp:129
 +  bool HTML5DocumentParser::processingData() const
WTF.  Please add a FIXME to track this down and figure out what it does.

WebCore/html/HTML5DocumentParser.cpp:174
 +      session.processedTokens++;
prefix increment

WebCore/html/HTML5DocumentParser.cpp:192
 +              return;
This is supposed to be break, not return

WebCore/html/HTML5DocumentParser.cpp:220
 +  // FIXME: This belongs on Document.
Please add this to document.

WebCore/html/HTML5DocumentParser.cpp:230
 +      // HACK: If a layout is scheduled, wait again to let the layout timer run first.
Is this copied from the old document parser?

WebCore/html/HTML5DocumentParser.cpp:278
 +      SynchronousMode mode = isFromNetwork ? AllowYield : ForceSynchronous;
Please inline this into call site.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238151</commentid>
    <comment_count>4</comment_count>
      <attachid>58730</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-14 17:11:57 -0700</bug_when>
    <thetext>Created attachment 58730
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238157</commentid>
    <comment_count>5</comment_count>
      <attachid>58731</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-14 17:20:58 -0700</bug_when>
    <thetext>Created attachment 58731
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238160</commentid>
    <comment_count>6</comment_count>
      <attachid>58731</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-14 17:26:06 -0700</bug_when>
    <thetext>Comment on attachment 58731
Patch for landing

Clearing flags on attachment: 58731

Committed r61165: &lt;http://trac.webkit.org/changeset/61165&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238161</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-14 17:26:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238163</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-14 17:31:56 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/61165 might have broken Chromium Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238165</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-14 17:37:35 -0700</bug_when>
    <thetext>Missing an include.  Build a patch now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58724</attachid>
            <date>2010-06-14 16:16:17 -0700</date>
            <delta_ts>2010-06-14 16:24:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40596-20100614161616.patch</filename>
            <type>text/plain</type>
            <size>16334</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjlmYWQxODY3ZjJiNjU2ZTlhZmNhZjA1MTc4YTYyODRmOTIwZWU4ZC4uNWE5MGI5ODZiMDVhMWU3
NmNjYmJiYjBmYWIzY2VhYjQ2NDZlOWQ4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxMC0wNi0xNCAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU2FmYXJpIGJlYWNoLWJhbGxzIGxvYWRpbmcgbGFyZ2UgcGFn
ZXMgd2l0aCBIVE1MNSBwYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQwNTk2CisKKyAgICAgICAgSW1wbGVtZW50IHBhcnNlciB5aWVsZGluZywg
c2ltaWxhciB0byBob3cgdGhlIG9sZAorICAgICAgICBIVE1MRG9jdW1lbnRQYXJzZXIgeWllbGRz
LgorCisgICAgICAgIFRoaXMgaW1wbGVtZW50YXRpb24gcmUtdXNlcyB0aGUgdG9rZW5pemVyVGlt
ZURlbGF5IGFuZAorICAgICAgICB0b2tlbml6ZXJDaHVua1NpemUgc2V0dGluZ3MgZXZlbiB0aG91
Z2ggdGhleSBkb24ndCBtYXAgZXhhY3RseQorICAgICAgICB0byB0aGUgdG9rZW4gbG9vcCB0aGF0
IHRoZSBIVE1MNSBwYXJzZXIgdXNlcy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudFBhcnNlci5o
OgorICAgICAgICAgLSBBZGQgYSBGSVhNRSBmb3IgcHJvY2Vzc2luZ0RhdGEoKSBhbmQgY2xhcmlm
eSBob3cgdGhlCisgICAgICAgICAgIGFwcGVuZERhdGEgZmxhZyBpcyB1c2VkIGJ5IHJlbmFtaW5n
IGl0IHRvIGlzRnJvbU5ldHdvcmsuCisgICAgICAgICogaHRtbC9IVE1MNURvY3VtZW50UGFyc2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlclRpbWVMaW1pdCk6CisgICAgICAgICAtIERl
ZmF1bHRzIGFjY2Vzc29yLCBwcm9iYWJseSBiZWxvbmdzIG9uIFBhZ2UuCisgICAgICAgIChXZWJD
b3JlOjpwYXJzZXJDaHVua1NpemUpOgorICAgICAgICAgLSBEZWZhdWx0cyBhY2Nlc3NvciwgcHJv
YmFibHkgYmVsb25ncyBvbiBQYWdlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBh
cnNlcjo6SFRNTDVEb2N1bWVudFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3Vt
ZW50UGFyc2VyOjpzdG9wUGFyc2luZyk6CisgICAgICAgICAtIFN0b3AgdGhlIGNvbnRpbnVlLXBh
cnNpbmcgdGltZXIgaWYgYWN0aXZlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBh
cnNlcjo6cHJvY2Vzc2luZ0RhdGEpOgorICAgICAgICAgLSBJbXBsZW1lbnQgdGhpcyBwb29ybHkg
dW5kZXJzdG9vZCBhY2Nlc3NvciB0byBtYXRjaAorICAgICAgICAgICB0aGUgb2xkIHBhcnNlcidz
IGJlaGF2aW9yLiAgSXQncyB1bmNsZWFyIHdoYXQgdGhpcyBkb2VzCisgICAgICAgICAgIGFuZCBp
dCBkb2VzIG5vdCBhZmZlY3QgYW55IGxheW91dCB0ZXN0cyB0byBteSBrbm93bGVkZ2UKKyAgICAg
ICAgICAgYnV0IGxpa2VseSBhZmZlY3RzIHRoZSBXZWJLaXQgQVBJIGluIHNvbWUgd2F5LgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExleGVySWZQb3NzaWJsZSk6
CisgICAgICAgICAtIFBhc3MgU3luY2hyb25vdXNNb2RlLgorICAgICAgICAgLSBEbyBub3QgZXZl
ciBwdW1wIGlmIHdlJ3ZlIHlpZWxkZWQgdG8gdGhlIHRpbWVyLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTDVEb2N1bWVudFBhcnNlcjo6UHVtcFNlc3Npb246OlB1bXBTZXNzaW9uKToKKyAgICAgICAg
IC0gQSBzdHJ1Y3QgZm9yIHN0b3JpbmcgdGhlIHlpZWxkIGNvdW50ZXJzLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6c2hvdWxkQ29udGludWVQYXJzaW5nKToKKyAgICAg
ICAgIC0gTW9zdGx5IG1hdGNoZXMgSFRNTERvY3VtZW50UGFyc2VyOjpzaG91bGRDb250aW51ZVBh
cnNpbmcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpwdW1wTGV4ZXIp
OgorICAgICAgICAgLSBSZXNwZWN0IFN5bmNocm9ub3VzTW9kZS4KKyAgICAgICAgIC0gQVNTRVJU
IHRoYXQgYSB0aW1lciBpcyBub3Qgc2NoZWR1bGVkIGlmIHdlJ3JlIHB1bXBpbmcuCisgICAgICAg
IChXZWJDb3JlOjppc0xheW91dFRpbWVyQWN0aXZlKToKKyAgICAgICAgIC0gVGhpcyBiZWxvbmdz
IG9uIERvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6Y29u
dGludWVOZXh0Q2h1bmtUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1l
bnRQYXJzZXI6OndyaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6
OmVuZCk6CisgICAgICAgICAtIFdlIHNob3VsZCBuZXZlciBlbmQoKSBpZiBhIHRpbWVyIGlzIHN0
aWxsIG91dHN0YW5kaW5nLgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6
YXR0ZW1wdFRvRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmVu
ZElmRGVsYXllZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpyZXN1
bWVQYXJzaW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24pOgorICAgICAgICAqIGh0bWwvSFRNTDVEb2N1
bWVudFBhcnNlci5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6KToK
KyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgICAtIENsYXJp
ZnkgdGhlIG9sZCBUaW1lRGVsYXkgYW5kIENodW5rU2l6ZSBjb25zdGFudHMuCisKIDIwMTAtMDUt
MTYgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkIG5hbWluZyBmaXhlcyBvZiBsb2NhbCB2YXJpYWJsZXMgdXNlZCBpbiBTcGF0aWFsIE5h
dmlnYXRpb24gbWV0aG9kcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2Vy
LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudFBhcnNlci5oCmluZGV4IGM3ZWVhMDY0YzdhNDYwZjQx
NzViNThjOTRlNGJjOThiNzU1NDI1OTUuLjNjMmEwOWI2MzExNjgyOTEyMzA5Y2IyMDk4YjllOTNi
ZDU3NjY0MmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmgKKysrIGIv
V2ViQ29yZS9kb20vRG9jdW1lbnRQYXJzZXIuaApAQCAtMzgsMTAgKzM4LDEzIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgLy8gcmVjZWl2ZWQgZHVyaW5nIGV4ZWN1dGluZyBhIHNjcmlw
dCBtdXN0IGJlIGFwcGVuZGVkLCBoZW5jZSB0aGUKICAgICAgICAgLy8gZXh0cmEgYm9vbCB0byBi
ZSBhYmxlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gYm90aCBjYXNlcy4KICAgICAgICAgLy8gZG9j
dW1lbnQud3JpdGUoKSBhbHdheXMgdXNlcyBmYWxzZSwgd2hpbGUgdGhlIGxvYWRlciB1c2VzIHRy
dWUuCi0gICAgICAgIHZpcnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBi
b29sIGFwcGVuZERhdGEpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNl
Z21lbnRlZFN0cmluZyYsIGJvb2wgaXNGcm9tTmV0d29yaykgPSAwOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgZmluaXNoKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNXYWl0aW5nRm9yU2Ny
aXB0cygpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHN0b3BQYXJzaW5nKCkgeyBt
X3BhcnNlclN0b3BwZWQgPSB0cnVlOyB9CisgICAgICAgIC8vIEZJWE1FOiBwcm9jZXNzaW5nRGF0
YSgpIGlzIG9ubHkgdXNlZCBieSBEb2N1bWVudExvYWRlcjo6aXNMb2FkaW5nSW5BUElTZW5zZQor
ICAgICAgICAvLyBhbmQgaXMgdmVyeSB1bmNsZWFyIGFzIHRvIHdoYXQgaXQgYWN0dWFsbHkgbWVh
bnMuICBPbmx5IEhUTUxEb2N1bWVudFBhcnNlcgorICAgICAgICAvLyBhY3R1YWxseSBpbXBsZW1l
bnRzIGl0LgogICAgICAgICB2aXJ0dWFsIGJvb2wgcHJvY2Vzc2luZ0RhdGEoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGludCBleGVjdXRpbmdTY3JpcHQoKSBjb25z
dCB7IHJldHVybiAwOyB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50
UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcAppbmRleCAy
OGRmMTRlMjVjMWZiYTEwNjljODhkNWE1YWU1MzY4NzY0NTk3OTg4Li45NzI3ZjhkZWE4M2NmNWMy
ZjhlYTJkYjY1NGU3ZDUyZjRiNGQ0ODBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVE
b2N1bWVudFBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIu
Y3BwCkBAIC0yOCwxOCArMjgsMjkgQEAKIAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIiAvLyBPbmx5IGZvciBpc0xheW91dFRp
bWVyQWN0aXZlCiAjaW5jbHVkZSAiSFRNTDVMZXhlci5oIgogI2luY2x1ZGUgIkhUTUw1U2NyaXB0
UnVubmVyLmgiCiAjaW5jbHVkZSAiSFRNTDVUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIkhUTUxE
b2N1bWVudC5oIgogI2luY2x1ZGUgIk5vZGUuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJYU1NBdWRpdG9yLmgiCiAKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKICNlbmRp
ZgogCisvLyBkZWZhdWx0UGFyc2VyQ2h1bmtTaXplIGlzIHVzZWQgdG8gZGVmaW5lIGhvdyBtYW55
IHRva2VucyB0aGUgcGFyc2VyIHdpbGwKKy8vIHByb2Nlc3MgYmVmb3JlIGNoZWNraW5nIGFnYWlu
c3QgcGFyc2VyVGltZUxpbWl0IGFuZCBwb3NzaWJseSB5aWVsZGluZy4KKy8vIFRoaXMgaXMgYSBw
ZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gdG8gcHJldmVudCBjaGVja2luZyBhZnRlciBldmVyeSB0
b2tlbi4KK3N0YXRpYyBjb25zdCBpbnQgZGVmYXVsdFBhcnNlckNodW5rU2l6ZSA9IDQwOTY7CisK
Ky8vIGRlZmF1bHRQYXJzZXJUaW1lTGltaXQgaXMgdGhlIHNlY29uZHMgdGhlIHBhcnNlciB3aWxs
IHJ1biBpbiBvbmUgd3JpdGUoKSBjYWxsCisvLyBiZWZvcmUgeWllbGRpbmcuICBJbmxpbmUgPHNj
cmlwdD4gZXhlY3V0aW9uIGNhbiBjYXVzZSBpdCB0byBleGNlZGUgdGhlIGxpbWl0LgorLy8gRklY
TUU6IFdlIHdvdWxkIHRoaXMgdG8gYmUgMC4yLiBIaXN0b3JpY2FsbHkgLjIgY2F1c2VkIHNsb3du
ZXNzIG9uIG9sZCBtYWNoaW5lcy4KK3N0YXRpYyBjb25zdCBkb3VibGUgZGVmYXVsdFBhcnNlclRp
bWVMaW1pdCA9IDAuNTAwOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSB7CkBA
IC02Myw2ICs3NCwyNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZQogCitzdGF0aWMgZG91
YmxlIHBhcnNlclRpbWVMaW1pdChQYWdlKiBwYWdlKQoreworICAgIC8vIFdlJ3JlIHVzaW5nIHRo
ZSBwb29ybHkgbmFtZWQgY3VzdG9tSFRNTFRva2VuaXplclRpbWVEZWxheSBzZXR0aW5nLgorICAg
IGlmIChwYWdlICYmIHBhZ2UtPmhhc0N1c3RvbUhUTUxUb2tlbml6ZXJUaW1lRGVsYXkoKSkKKyAg
ICAgICAgcmV0dXJuIHBhZ2UtPmN1c3RvbUhUTUxUb2tlbml6ZXJUaW1lRGVsYXkoKTsKKyAgICBy
ZXR1cm4gZGVmYXVsdFBhcnNlclRpbWVMaW1pdDsKK30KKworc3RhdGljIGludCBwYXJzZXJDaHVu
a1NpemUoUGFnZSogcGFnZSkKK3sKKyAgICAvLyBGSVhNRTogV2UgbWF5IG5lZWQgdG8gZGl2aWRl
IHRoZSB2YWx1ZSBmcm9tIGN1c3RvbUhUTUxUb2tlbml6ZXJDaHVua1NpemUKKyAgICAvLyBieSBz
b21lIGNvbnN0YW50IHRvIHRyYW5zbGF0ZSBmcm9tIHRoZSAiY2hhcmFjdGVyIiBiYXNlZCBiZWhh
dmlvciBvZiB0aGUKKyAgICAvLyBvbGQgSFRNTERvY3VtZW50UGFyc2VyIHRvIHRoZSB0b2tlbi1i
YXNlZCBiZWhhdmlvciBvZiB0aGlzIHBhcnNlci4KKyAgICBpZiAocGFnZSAmJiBwYWdlLT5oYXND
dXN0b21IVE1MVG9rZW5pemVyQ2h1bmtTaXplKCkpCisgICAgICAgIHJldHVybiBwYWdlLT5jdXN0
b21IVE1MVG9rZW5pemVyQ2h1bmtTaXplKCk7CisgICAgcmV0dXJuIGRlZmF1bHRQYXJzZXJDaHVu
a1NpemU7Cit9CisKIEhUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIoSFRN
TERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMpCiAgICAgOiBEb2N1bWVudFBh
cnNlcigpCiAgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQpAQCAtNzEsNiArMTAwLDkgQEAgSFRN
TDVEb2N1bWVudFBhcnNlcjo6SFRNTDVEb2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQqIGRvY3Vt
ZW50LCBib29sIHJlcG9ydEVycm8KICAgICAsIG1fdHJlZUNvbnN0cnVjdG9yKG5ldyBIVE1MNVRy
ZWVCdWlsZGVyKG1fbGV4ZXIuZ2V0KCksIGRvY3VtZW50LCByZXBvcnRFcnJvcnMpKQogICAgICwg
bV9lbmRXYXNEZWxheWVkKGZhbHNlKQogICAgICwgbV93cml0ZU5lc3RpbmdMZXZlbCgwKQorICAg
ICwgbV9wYXJzZXJUaW1lTGltaXQocGFyc2VyVGltZUxpbWl0KGRvY3VtZW50LT5wYWdlKCkpKQor
ICAgICwgbV9wYXJzZXJDaHVua1NpemUocGFyc2VyQ2h1bmtTaXplKGRvY3VtZW50LT5wYWdlKCkp
KQorICAgICwgbV9jb250aW51ZU5leHRDaHVua1RpbWVyKHRoaXMsICZIVE1MNURvY3VtZW50UGFy
c2VyOjpjb250aW51ZU5leHRDaHVua1RpbWVyRmlyZWQpCiB7CiAgICAgYmVnaW4oKTsKIH0KQEAg
LTg4LDI4ICsxMjAsODQgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpiZWdpbigpCiAgICAg
Ly8gRklYTUU6IFNob3VsZCB3ZSByZXNldCB0aGUgbGV4ZXI/CiB9CiAKLXZvaWQgSFRNTDVEb2N1
bWVudFBhcnNlcjo6cHVtcExleGVySWZQb3NzaWJsZSgpCit2b2lkIEhUTUw1RG9jdW1lbnRQYXJz
ZXI6OnN0b3BQYXJzaW5nKCkKK3sKKyAgICBEb2N1bWVudFBhcnNlcjo6c3RvcFBhcnNpbmcoKTsK
KyAgICBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuc3RvcCgpOworfQorCitib29sIEhUTUw1RG9j
dW1lbnRQYXJzZXI6OnByb2Nlc3NpbmdEYXRhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250
aW51ZU5leHRDaHVua1RpbWVyLmlzQWN0aXZlKCkgfHwgaW5Xcml0ZSgpOworfQorCit2b2lkIEhU
TUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcklmUG9zc2libGUoU3luY2hyb25vdXNNb2RlIG1v
ZGUpCiB7CiAgICAgaWYgKG1fcGFyc2VyU3RvcHBlZCB8fCBtX3RyZWVDb25zdHJ1Y3Rvci0+aXNQ
YXVzZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIHB1bXBMZXhlcigpOworCisgICAgLy8gT25j
ZSBhIHRpbWVyIGlzIHNldCwgaXQgaGFzIGNvbnRyb2wgb2Ygd2hlbiB0aGUgcGFyc2VyIGNvbnRp
bnVlcy4KKyAgICBpZiAobV9jb250aW51ZU5leHRDaHVua1RpbWVyLmlzQWN0aXZlKCkpIHsKKyAg
ICAgICAgQVNTRVJUKG1vZGUgPT0gQWxsb3dZaWVsZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBwdW1wTGV4ZXIobW9kZSk7CiB9CiAKLXZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6
cHVtcExleGVyKCkKK3N0cnVjdCBIVE1MNURvY3VtZW50UGFyc2VyOjpQdW1wU2Vzc2lvbiB7Cisg
ICAgUHVtcFNlc3Npb24oKQorICAgICAgICA6IHByb2Nlc3NlZFRva2VucygwKQorICAgICAgICAs
IHN0YXJ0VGltZShjdXJyZW50VGltZSgpKQorICAgIHsKKyAgICB9CisKKyAgICBpbnQgcHJvY2Vz
c2VkVG9rZW5zOworICAgIGRvdWJsZSBzdGFydFRpbWU7Cit9OworCitpbmxpbmUgYm9vbCBIVE1M
NURvY3VtZW50UGFyc2VyOjpzaG91bGRDb250aW51ZVBhcnNpbmcoUHVtcFNlc3Npb24mIHNlc3Np
b24pCiB7CisgICAgaWYgKG1fcGFyc2VyU3RvcHBlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKHNlc3Npb24ucHJvY2Vzc2VkVG9rZW5zID4gbV9wYXJzZXJDaHVua1NpemUpIHsK
KyAgICAgICAgc2Vzc2lvbi5wcm9jZXNzZWRUb2tlbnMgPSAwOworICAgICAgICBkb3VibGUgZWxh
cHNlZFRpbWUgPSBjdXJyZW50VGltZSgpIC0gc2Vzc2lvbi5zdGFydFRpbWU7CisgICAgICAgIGlm
IChlbGFwc2VkVGltZSA+IG1fcGFyc2VyVGltZUxpbWl0KSB7CisgICAgICAgICAgICAvLyBTY2hl
ZHVsZSBhbiBpbW1lZGlhdGUgdGltZXIgYW5kIHlpZWxkIGZyb20gdGhlIHBhcnNlci4KKyAgICAg
ICAgICAgIG1fY29udGludWVOZXh0Q2h1bmtUaW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzZXNzaW9uLnByb2Nl
c3NlZFRva2VucysrOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEhUTUw1RG9jdW1lbnRQ
YXJzZXI6OnB1bXBMZXhlcihTeW5jaHJvbm91c01vZGUgbW9kZSkKK3sKKyAgICBBU1NFUlQoIW1f
cGFyc2VyU3RvcHBlZCk7CisgICAgQVNTRVJUKCFtX3RyZWVDb25zdHJ1Y3Rvci0+aXNQYXVzZWQo
KSk7CisgICAgQVNTRVJUKCFtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuaXNBY3RpdmUoKSk7CisK
ICAgICAvLyBXZSB0ZWxsIHRoZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50IGFib3V0IGV2ZXJ5IHB1
bXAsIGV2ZW4gaWYgd2UKICAgICAvLyBlbmQgdXAgcHVtcGluZyBub3RoaW5nLiAgSXQgY2FuIGZp
bHRlciBvdXQgZW1wdHkgcHVtcHMgaXRzZWxmLgogICAgIHdpbGxQdW1wTGV4ZXIoKTsKIAotICAg
IEFTU0VSVCghbV9wYXJzZXJTdG9wcGVkKTsKLSAgICBBU1NFUlQoIW1fdHJlZUNvbnN0cnVjdG9y
LT5pc1BhdXNlZCgpKTsKLSAgICB3aGlsZSAoIW1fcGFyc2VyU3RvcHBlZCAmJiBtX2xleGVyLT5u
ZXh0VG9rZW4obV9pbnB1dC5jdXJyZW50KCksIG1fdG9rZW4pKSB7CisgICAgUHVtcFNlc3Npb24g
c2Vzc2lvbjsKKyAgICAvLyBGSVhNRTogVGhpcyBsb29wIGJvZHkgaGFzIGlzIG5vdyB0b28gbG9u
ZyBhbmQgbmVlZHMgY2xlYW51cC4KKyAgICB3aGlsZSAobW9kZSA9PSBGb3JjZVN5bmNocm9ub3Vz
IHx8IHNob3VsZENvbnRpbnVlUGFyc2luZyhzZXNzaW9uKSkgeworICAgICAgICBpZiAoIW1fbGV4
ZXItPm5leHRUb2tlbihtX2lucHV0LmN1cnJlbnQoKSwgbV90b2tlbikpCisgICAgICAgICAgICBy
ZXR1cm47CisKICAgICAgICAgaWYgKFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXIg
PSBzY3JpcHQoKSkKICAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPnNldEV2ZW50SGFuZGxl
ckxpbmVOdW1iZXIobGluZU51bWJlcigpICsgMSk7CiAKICAgICAgICAgbV90cmVlQ29uc3RydWN0
b3ItPmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4obV90b2tlbik7CiAgICAgICAgIG1fdG9rZW4uY2xl
YXIoKTsKIAorICAgICAgICAvLyBGSVhNRTogV2h5IGlzIHNldEV2ZW50SGFuZGxlckxpbmVOdW1i
ZXIoMCkgbmVjZXNzYXJ5PwogICAgICAgICBpZiAoU2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29u
dHJvbGxlciA9IHNjcmlwdCgpKQogICAgICAgICAgICAgc2NyaXB0Q29udHJvbGxlci0+c2V0RXZl
bnRIYW5kbGVyTGluZU51bWJlcigwKTsKIApAQCAtMTI5LDYgKzIxNywyNyBAQCB2b2lkIEhUTUw1
RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcigpCiAgICAgZGlkUHVtcExleGVyKCk7CiB9CiAKKy8v
IEZJWE1FOiBUaGlzIGJlbG9uZ3Mgb24gRG9jdW1lbnQuCitzdGF0aWMgYm9vbCBpc0xheW91dFRp
bWVyQWN0aXZlKERvY3VtZW50KiBkb2MpCit7CisgICAgQVNTRVJUKGRvYyk7CisgICAgcmV0dXJu
IGRvYy0+dmlldygpICYmIGRvYy0+dmlldygpLT5sYXlvdXRQZW5kaW5nKCkgJiYgIWRvYy0+bWlu
aW11bUxheW91dERlbGF5KCk7Cit9CisKK3ZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6Y29udGlu
dWVOZXh0Q2h1bmtUaW1lckZpcmVkKFRpbWVyPEhUTUw1RG9jdW1lbnRQYXJzZXI+KiB0aW1lcikK
K3sKKyAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV9jb250aW51ZU5leHRDaHVu
a1RpbWVyKTsKKyAgICAvLyBIQUNLOiBJZiBhIGxheW91dCBpcyBzY2hlZHVsZWQsIHdhaXQgYWdh
aW4gdG8gbGV0IHRoZSBsYXlvdXQgdGltZXIgcnVuIGZpcnN0LgorICAgIGlmIChpc0xheW91dFRp
bWVyQWN0aXZlKG1fZG9jdW1lbnQpKSB7CisgICAgICAgIG1fY29udGludWVOZXh0Q2h1bmtUaW1l
ci5zdGFydE9uZVNob3QoMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBXZSBz
aG91bGQgbmV2ZXIgYmUgaGVyZSB1bmxlc3Mgd2UgY2FuIHB1bXAgaW1tZWRpYXRlbHkuICBDYWxs
IHB1bXBMZXhlcigpCisgICAgLy8gZGlyZWN0bHkgc28gdGhhdCBBU1NFUlRTIHdpbGwgZmlyZSBp
ZiB3ZSdyZSB3cm9uZy4KKyAgICBwdW1wTGV4ZXIoQWxsb3dZaWVsZCk7Cit9CisKIHZvaWQgSFRN
TDVEb2N1bWVudFBhcnNlcjo6d2lsbFB1bXBMZXhlcigpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RP
UikKQEAgLTE0OCwxNCArMjU3LDE0IEBAIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6ZGlkUHVt
cExleGVyKCkKICNlbmRpZgogfQogCi12b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OndyaXRlKGNv
bnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sIGFwcGVuZERhdGEpCit2b2lkIEhUTUw1
RG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29s
IGlzRnJvbU5ldHdvcmspCiB7CiAgICAgaWYgKG1fcGFyc2VyU3RvcHBlZCkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5jcmVtZW50
ZXIobV93cml0ZU5lc3RpbmdMZXZlbCk7CiAKLSAgICBpZiAoYXBwZW5kRGF0YSkgeworICAgIGlm
IChpc0Zyb21OZXR3b3JrKSB7CiAgICAgICAgIG1faW5wdXQuYXBwZW5kVG9FbmQoc291cmNlKTsK
ICAgICAgICAgaWYgKG1fd3JpdGVOZXN0aW5nTGV2ZWwgPiAxKSB7CiAgICAgICAgICAgICAvLyBX
ZSd2ZSBnb3R0ZW4gZGF0YSBvZmYgdGhlIG5ldHdvcmsgaW4gYSBuZXN0ZWQgY2FsbCB0byB3cml0
ZSgpLgpAQCAtMTY2LDE0ICsyNzUsMTkgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjp3cml0
ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgYm9vbCBhcHBlbmREYXRhKQogICAgIH0g
ZWxzZQogICAgICAgICBtX2lucHV0Lmluc2VydEF0Q3VycmVudEluc2VydGlvblBvaW50KHNvdXJj
ZSk7CiAKLSAgICBwdW1wTGV4ZXJJZlBvc3NpYmxlKCk7CisgICAgU3luY2hyb25vdXNNb2RlIG1v
ZGUgPSBpc0Zyb21OZXR3b3JrID8gQWxsb3dZaWVsZCA6IEZvcmNlU3luY2hyb25vdXM7CisgICAg
cHVtcExleGVySWZQb3NzaWJsZShtb2RlKTsKICAgICBlbmRJZkRlbGF5ZWQoKTsKIH0KIAogdm9p
ZCBIVE1MNURvY3VtZW50UGFyc2VyOjplbmQoKQogewotICAgIHB1bXBMZXhlcklmUG9zc2libGUo
KTsKLSAgICAvLyBJbmZvcm1zIHRoZSB0aGUgcmVzdCBvZiBXZWJDb3JlIHRoYXQgcGFyc2luZyBp
cyByZWFsbHkgZmluaXNoZWQuCisgICAgQVNTRVJUKCFtX2NvbnRpbnVlTmV4dENodW5rVGltZXIu
aXNBY3RpdmUoKSk7CisgICAgLy8gTk9URTogVGhpcyBwdW1wIHNob3VsZCBvbmx5IGV2ZXIgZW1p
dCBidWZmZXJlZCBjaGFyYWN0ZXIgdG9rZW5zLAorICAgIC8vIHNvIEZvcmNlU3luY2hyb25vdXMg
dnMuIEFsbG93WWllbGQgc2hvdWxkIGJlIG1lYW5pbmdsZXNzLgorICAgIHB1bXBMZXhlcklmUG9z
c2libGUoRm9yY2VTeW5jaHJvbm91cyk7CisKKyAgICAvLyBJbmZvcm1zIHRoZSB0aGUgcmVzdCBv
ZiBXZWJDb3JlIHRoYXQgcGFyc2luZyBpcyByZWFsbHkgZmluaXNoZWQgKGFuZCBkZWxldGVzIHRo
aXMpLgogICAgIG1fdHJlZUNvbnN0cnVjdG9yLT5maW5pc2hlZCgpOwogfQogCkBAIC0xODIsNyAr
Mjk2LDcgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjphdHRlbXB0VG9FbmQoKQogICAgIC8v
IGZpbmlzaCgpIGluZGljYXRlcyB3ZSB3aWxsIG5vdCByZWNlaXZlIGFueSBtb3JlIGRhdGEuIElm
IHdlIGFyZSB3YWl0aW5nIG9uCiAgICAgLy8gYW4gZXh0ZXJuYWwgc2NyaXB0IHRvIGxvYWQsIHdl
IGNhbid0IGZpbmlzaCBwYXJzaW5nIHF1aXRlIHlldC4KIAotICAgIGlmIChpbldyaXRlKCkgfHwg
aXNXYWl0aW5nRm9yU2NyaXB0cygpIHx8IGV4ZWN1dGluZ1NjcmlwdCgpKSB7CisgICAgaWYgKGlu
V3JpdGUoKSB8fCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgfHwgZXhlY3V0aW5nU2NyaXB0KCkgfHwg
bV9jb250aW51ZU5leHRDaHVua1RpbWVyLmlzQWN0aXZlKCkpIHsKICAgICAgICAgbV9lbmRXYXNE
ZWxheWVkID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5MSw3ICszMDUsOSBA
QCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OmF0dGVtcHRUb0VuZCgpCiAKIHZvaWQgSFRNTDVE
b2N1bWVudFBhcnNlcjo6ZW5kSWZEZWxheWVkKCkKIHsKLSAgICBpZiAoIW1fZW5kV2FzRGVsYXll
ZCB8fCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgfHwgZXhlY3V0aW5nU2NyaXB0KCkpCisgICAgLy8g
V2UgZG9uJ3QgY2hlY2sgaW5Xcml0ZSgpIGhlcmUgc2luY2UgaW5Xcml0ZSgpIHdpbGwgYmUgdHJ1
ZSBpZiB0aGlzIHdhcworICAgIC8vIGNhbGxlZCBmcm9tIHdyaXRlKCkuCisgICAgaWYgKCFtX2Vu
ZFdhc0RlbGF5ZWQgfHwgaXNXYWl0aW5nRm9yU2NyaXB0cygpIHx8IGV4ZWN1dGluZ1NjcmlwdCgp
IHx8IG1fY29udGludWVOZXh0Q2h1bmtUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICByZXR1cm47
CiAKICAgICBtX2VuZFdhc0RlbGF5ZWQgPSBmYWxzZTsKQEAgLTIzNSw3ICszNTEsNyBAQCB2b2lk
IEhUTUw1RG9jdW1lbnRQYXJzZXI6OnJlc3VtZVBhcnNpbmdBZnRlclNjcmlwdEV4ZWN1dGlvbigp
CiB7CiAgICAgQVNTRVJUKCFtX3NjcmlwdFJ1bm5lci0+aW5TY3JpcHRFeGVjdXRpb24oKSk7CiAg
ICAgQVNTRVJUKCFtX3RyZWVDb25zdHJ1Y3Rvci0+aXNQYXVzZWQoKSk7Ci0gICAgcHVtcExleGVy
SWZQb3NzaWJsZSgpOworICAgIHB1bXBMZXhlcklmUG9zc2libGUoQWxsb3dZaWVsZCk7CiAKICAg
ICAvLyBUaGUgZG9jdW1lbnQgYWxyZWFkeSBmaW5pc2hlZCBwYXJzaW5nIHdlIHdlcmUganVzdCB3
YWl0aW5nIG9uIHNjcmlwdHMgd2hlbiBmaW5pc2hlZCgpIHdhcyBjYWxsZWQuCiAgICAgZW5kSWZE
ZWxheWVkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5o
IGIvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuaAppbmRleCA0YTc1Y2VjMWVhZGFj
NjU4YzNlYTAxNTNmNTRlYjAxYTU3MGVmNzZhLi45OGNhMzkxYWEyY2Y1ZGE2MTMwNzIyZTI1MGU4
YjgxNDc5ZmUxNzM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNl
ci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmgKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJIVE1MNVRva2VuLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5n
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRQYXJzZXIuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTAsMTAgKzUx
LDEyIEBAIHB1YmxpYzoKIAogICAgIC8vIERvY3VtZW50UGFyc2VyCiAgICAgdmlydHVhbCB2b2lk
IGJlZ2luKCk7Ci0gICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYs
IGJvb2wgYXBwZW5kRGF0YSk7CisgICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRl
ZFN0cmluZyYsIGJvb2wgaXNGcm9tTmV0d29yayk7CiAgICAgdmlydHVhbCB2b2lkIGVuZCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBmaW5pc2goKTsKICAgICB2aXJ0dWFsIGludCBleGVjdXRpbmdTY3Jp
cHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcHJvY2Vzc2luZ0RhdGEoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RvcFBhcnNpbmcoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNXYWl0aW5n
Rm9yU2NyaXB0cygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBleGVjdXRlU2NyaXB0c1dhaXRp
bmdGb3JTdHlsZXNoZWV0cygpOwogICAgIHZpcnR1YWwgaW50IGxpbmVOdW1iZXIoKSBjb25zdDsK
QEAgLTE2NCw4ICsxNjcsMTYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxQdW1wTGV4ZXIoKTsK
ICAgICB2b2lkIGRpZFB1bXBMZXhlcigpOwogCi0gICAgdm9pZCBwdW1wTGV4ZXIoKTsKLSAgICB2
b2lkIHB1bXBMZXhlcklmUG9zc2libGUoKTsKKyAgICBzdHJ1Y3QgUHVtcFNlc3Npb247CisgICAg
aW5saW5lIGJvb2wgc2hvdWxkQ29udGludWVQYXJzaW5nKFB1bXBTZXNzaW9uJik7CisKKyAgICBl
bnVtIFN5bmNocm9ub3VzTW9kZSB7CisgICAgICAgIEFsbG93WWllbGQsCisgICAgICAgIEZvcmNl
U3luY2hyb25vdXMsCisgICAgfTsKKyAgICB2b2lkIHB1bXBMZXhlcihTeW5jaHJvbm91c01vZGUp
OworICAgIHZvaWQgcHVtcExleGVySWZQb3NzaWJsZShTeW5jaHJvbm91c01vZGUpOworICAgIHZv
aWQgY29udGludWVOZXh0Q2h1bmtUaW1lckZpcmVkKFRpbWVyPEhUTUw1RG9jdW1lbnRQYXJzZXI+
Kik7CiAgICAgdm9pZCByZXN1bWVQYXJzaW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24oKTsKIAogICAg
IHZvaWQgYXR0ZW1wdFRvRW5kKCk7CkBAIC0xODUsNiArMTk2LDEwIEBAIHByaXZhdGU6CiAgICAg
T3duUHRyPEhUTUw1VHJlZUJ1aWxkZXI+IG1fdHJlZUNvbnN0cnVjdG9yOwogICAgIGJvb2wgbV9l
bmRXYXNEZWxheWVkOwogICAgIGludCBtX3dyaXRlTmVzdGluZ0xldmVsOworCisgICAgZG91Ymxl
IG1fcGFyc2VyVGltZUxpbWl0OworICAgIGludCBtX3BhcnNlckNodW5rU2l6ZTsKKyAgICBUaW1l
cjxIVE1MNURvY3VtZW50UGFyc2VyPiBtX2NvbnRpbnVlTmV4dENodW5rVGltZXI7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1dlYkNv
cmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDI0ZDY5ODU0YzlkZTdiY2E5MDk5
OWRlYzNiZWRmYjU2NGNlMDZhNWIuLjE1MWY1OTI0MTQ3ZTg0NGEzYzkzOTk4ZTY3MmY0MzA0MjQw
MDZlNzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisr
KyBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC02NiwxNiArNjYsMTYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi0v
LyBUaGlzIHZhbHVlIGlzIHVzZWQgdG8gZGVmaW5lIGhvdyBtYW55IGNoYXJhY3RlcnMgdGhlIHBh
cnNlciB3aWxsIHByb2Nlc3MgYmVmb3JlCi0vLyB5ZWlsZGluZyBjb250cm9sLgotLy8gVG8gaW5j
cmVhc2UgcmVzcG9uc2l2bmVzcyByZWR1Y2UgdGhlIHBhcnNlciBjaHVuayBzaXplLgorLy8gVGhp
cyB2YWx1ZSBpcyB1c2VkIHRvIGRlZmluZSBob3cgbWFueSBsb29wcyAoYXBwcm94aW1hdGVseSB0
b2tlbnMpIHRoZSBwYXJzZXIKKy8vIHRoZSBwYXJzZXIgd2lsbCBtYWtlIGJlZm9yZSBjaGVja2lu
ZyBpZiBpdCBzaG91bGQgeWllbGQuCisvLyBUbyBpbmNyZWFzZSByZXNwb25zaXZlbmVzcyByZWR1
Y2UgYm90aCBDaHVua1NpemUgYW5kIFRpbWVEZWxheSBjb250YW50cy4KIHN0YXRpYyBjb25zdCBp
bnQgZGVmYXVsdFRva2VuaXplckNodW5rU2l6ZSA9IDQwOTY7CiAKIC8vIEZJWE1FOiBXZSB3b3Vs
ZCBsaWtlIHRoaXMgY29uc3RhbnQgdG8gYmUgMjAwbXMuCiAvLyBZaWVsZGluZyBtb3JlIGFnZ3Jl
c3NpdmVseSByZXN1bHRzIGluIGluY3JlYXNlZCByZXNwb25zaXZlbmVzcyBhbmQgYmV0dGVyIGlu
Y3JlbWVudGFsIHJlbmRlcmluZy4KIC8vIEl0IHNsb3dzIGRvd24gb3ZlcmFsbCBwYWdlLWxvYWQg
b24gc2xvd2VyIG1hY2hpbmVzLCB0aG91Z2gsIHNvIGZvciBub3cgd2Ugc2V0IGEgdmFsdWUgb2Yg
NTAwLgotLy8gRm9yIHNtYWxsZXIgY2h1bmtzIChhYm92ZSkgZGVjcmVhc2UgdGhlIHZhbHVlIG9m
IFRpbWVyRGVsYXkgYXMgdGhlIHRoZSBwYXJzZXIgc2hvdWxkIG5vdAotLy8geWllbGQgZm9yIGFz
IGxvbmcgYSBwZXJpb2Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGFrZSB3YXkgdG8gbG9uZyB0byBsb2Fk
IGEgcGFnZS4KKy8vIFRpbWVEZWxheSBjb250cm9scyB0aGUgbWF4aW11bSB0aW1lIHRoZSBwYXJz
ZXIgd2lsbCBydW4gYmVmb3JlIHlpZWxkaW5nLgorLy8gSW5saW5lIHNjcmlwdCBleGVjdXRpb24g
Y2FuIGNhdXNlIHRoZSBwYXJzZXIgdG8gZXhjZWRlIHRoaXMgbGltaXQuCiBzdGF0aWMgY29uc3Qg
ZG91YmxlIGRlZmF1bHRUb2tlbml6ZXJUaW1lRGVsYXkgPSAwLjUwMDsKIAogc3RhdGljIGNvbnN0
IGNoYXIgY29tbWVudFN0YXJ0IFtdID0gIjwhLS0iOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58725</attachid>
            <date>2010-06-14 16:24:07 -0700</date>
            <delta_ts>2010-06-14 17:11:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40596-20100614162406.patch</filename>
            <type>text/plain</type>
            <size>16323</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjlmYWQxODY3ZjJiNjU2ZTlhZmNhZjA1MTc4YTYyODRmOTIwZWU4ZC4uNWE5MGI5ODZiMDVhMWU3
NmNjYmJiYjBmYWIzY2VhYjQ2NDZlOWQ4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxMC0wNi0xNCAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU2FmYXJpIGJlYWNoLWJhbGxzIGxvYWRpbmcgbGFyZ2UgcGFn
ZXMgd2l0aCBIVE1MNSBwYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQwNTk2CisKKyAgICAgICAgSW1wbGVtZW50IHBhcnNlciB5aWVsZGluZywg
c2ltaWxhciB0byBob3cgdGhlIG9sZAorICAgICAgICBIVE1MRG9jdW1lbnRQYXJzZXIgeWllbGRz
LgorCisgICAgICAgIFRoaXMgaW1wbGVtZW50YXRpb24gcmUtdXNlcyB0aGUgdG9rZW5pemVyVGlt
ZURlbGF5IGFuZAorICAgICAgICB0b2tlbml6ZXJDaHVua1NpemUgc2V0dGluZ3MgZXZlbiB0aG91
Z2ggdGhleSBkb24ndCBtYXAgZXhhY3RseQorICAgICAgICB0byB0aGUgdG9rZW4gbG9vcCB0aGF0
IHRoZSBIVE1MNSBwYXJzZXIgdXNlcy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudFBhcnNlci5o
OgorICAgICAgICAgLSBBZGQgYSBGSVhNRSBmb3IgcHJvY2Vzc2luZ0RhdGEoKSBhbmQgY2xhcmlm
eSBob3cgdGhlCisgICAgICAgICAgIGFwcGVuZERhdGEgZmxhZyBpcyB1c2VkIGJ5IHJlbmFtaW5n
IGl0IHRvIGlzRnJvbU5ldHdvcmsuCisgICAgICAgICogaHRtbC9IVE1MNURvY3VtZW50UGFyc2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlclRpbWVMaW1pdCk6CisgICAgICAgICAtIERl
ZmF1bHRzIGFjY2Vzc29yLCBwcm9iYWJseSBiZWxvbmdzIG9uIFBhZ2UuCisgICAgICAgIChXZWJD
b3JlOjpwYXJzZXJDaHVua1NpemUpOgorICAgICAgICAgLSBEZWZhdWx0cyBhY2Nlc3NvciwgcHJv
YmFibHkgYmVsb25ncyBvbiBQYWdlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBh
cnNlcjo6SFRNTDVEb2N1bWVudFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3Vt
ZW50UGFyc2VyOjpzdG9wUGFyc2luZyk6CisgICAgICAgICAtIFN0b3AgdGhlIGNvbnRpbnVlLXBh
cnNpbmcgdGltZXIgaWYgYWN0aXZlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBh
cnNlcjo6cHJvY2Vzc2luZ0RhdGEpOgorICAgICAgICAgLSBJbXBsZW1lbnQgdGhpcyBwb29ybHkg
dW5kZXJzdG9vZCBhY2Nlc3NvciB0byBtYXRjaAorICAgICAgICAgICB0aGUgb2xkIHBhcnNlcidz
IGJlaGF2aW9yLiAgSXQncyB1bmNsZWFyIHdoYXQgdGhpcyBkb2VzCisgICAgICAgICAgIGFuZCBp
dCBkb2VzIG5vdCBhZmZlY3QgYW55IGxheW91dCB0ZXN0cyB0byBteSBrbm93bGVkZ2UKKyAgICAg
ICAgICAgYnV0IGxpa2VseSBhZmZlY3RzIHRoZSBXZWJLaXQgQVBJIGluIHNvbWUgd2F5LgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExleGVySWZQb3NzaWJsZSk6
CisgICAgICAgICAtIFBhc3MgU3luY2hyb25vdXNNb2RlLgorICAgICAgICAgLSBEbyBub3QgZXZl
ciBwdW1wIGlmIHdlJ3ZlIHlpZWxkZWQgdG8gdGhlIHRpbWVyLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTDVEb2N1bWVudFBhcnNlcjo6UHVtcFNlc3Npb246OlB1bXBTZXNzaW9uKToKKyAgICAgICAg
IC0gQSBzdHJ1Y3QgZm9yIHN0b3JpbmcgdGhlIHlpZWxkIGNvdW50ZXJzLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6c2hvdWxkQ29udGludWVQYXJzaW5nKToKKyAgICAg
ICAgIC0gTW9zdGx5IG1hdGNoZXMgSFRNTERvY3VtZW50UGFyc2VyOjpzaG91bGRDb250aW51ZVBh
cnNpbmcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpwdW1wTGV4ZXIp
OgorICAgICAgICAgLSBSZXNwZWN0IFN5bmNocm9ub3VzTW9kZS4KKyAgICAgICAgIC0gQVNTRVJU
IHRoYXQgYSB0aW1lciBpcyBub3Qgc2NoZWR1bGVkIGlmIHdlJ3JlIHB1bXBpbmcuCisgICAgICAg
IChXZWJDb3JlOjppc0xheW91dFRpbWVyQWN0aXZlKToKKyAgICAgICAgIC0gVGhpcyBiZWxvbmdz
IG9uIERvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6Y29u
dGludWVOZXh0Q2h1bmtUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1l
bnRQYXJzZXI6OndyaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6
OmVuZCk6CisgICAgICAgICAtIFdlIHNob3VsZCBuZXZlciBlbmQoKSBpZiBhIHRpbWVyIGlzIHN0
aWxsIG91dHN0YW5kaW5nLgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6
YXR0ZW1wdFRvRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmVu
ZElmRGVsYXllZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpyZXN1
bWVQYXJzaW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24pOgorICAgICAgICAqIGh0bWwvSFRNTDVEb2N1
bWVudFBhcnNlci5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6KToK
KyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgICAtIENsYXJp
ZnkgdGhlIG9sZCBUaW1lRGVsYXkgYW5kIENodW5rU2l6ZSBjb25zdGFudHMuCisKIDIwMTAtMDUt
MTYgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkIG5hbWluZyBmaXhlcyBvZiBsb2NhbCB2YXJpYWJsZXMgdXNlZCBpbiBTcGF0aWFsIE5h
dmlnYXRpb24gbWV0aG9kcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2Vy
LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudFBhcnNlci5oCmluZGV4IGM3ZWVhMDY0YzdhNDYwZjQx
NzViNThjOTRlNGJjOThiNzU1NDI1OTUuLjNjMmEwOWI2MzExNjgyOTEyMzA5Y2IyMDk4YjllOTNi
ZDU3NjY0MmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmgKKysrIGIv
V2ViQ29yZS9kb20vRG9jdW1lbnRQYXJzZXIuaApAQCAtMzgsMTAgKzM4LDEzIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgLy8gcmVjZWl2ZWQgZHVyaW5nIGV4ZWN1dGluZyBhIHNjcmlw
dCBtdXN0IGJlIGFwcGVuZGVkLCBoZW5jZSB0aGUKICAgICAgICAgLy8gZXh0cmEgYm9vbCB0byBi
ZSBhYmxlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gYm90aCBjYXNlcy4KICAgICAgICAgLy8gZG9j
dW1lbnQud3JpdGUoKSBhbHdheXMgdXNlcyBmYWxzZSwgd2hpbGUgdGhlIGxvYWRlciB1c2VzIHRy
dWUuCi0gICAgICAgIHZpcnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBi
b29sIGFwcGVuZERhdGEpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNl
Z21lbnRlZFN0cmluZyYsIGJvb2wgaXNGcm9tTmV0d29yaykgPSAwOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgZmluaXNoKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNXYWl0aW5nRm9yU2Ny
aXB0cygpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHN0b3BQYXJzaW5nKCkgeyBt
X3BhcnNlclN0b3BwZWQgPSB0cnVlOyB9CisgICAgICAgIC8vIEZJWE1FOiBwcm9jZXNzaW5nRGF0
YSgpIGlzIG9ubHkgdXNlZCBieSBEb2N1bWVudExvYWRlcjo6aXNMb2FkaW5nSW5BUElTZW5zZQor
ICAgICAgICAvLyBhbmQgaXMgdmVyeSB1bmNsZWFyIGFzIHRvIHdoYXQgaXQgYWN0dWFsbHkgbWVh
bnMuICBPbmx5IEhUTUxEb2N1bWVudFBhcnNlcgorICAgICAgICAvLyBhY3R1YWxseSBpbXBsZW1l
bnRzIGl0LgogICAgICAgICB2aXJ0dWFsIGJvb2wgcHJvY2Vzc2luZ0RhdGEoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGludCBleGVjdXRpbmdTY3JpcHQoKSBjb25z
dCB7IHJldHVybiAwOyB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50
UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcAppbmRleCAy
OGRmMTRlMjVjMWZiYTEwNjljODhkNWE1YWU1MzY4NzY0NTk3OTg4Li45NzI3ZjhkZWE4M2NmNWMy
ZjhlYTJkYjY1NGU3ZDUyZjRiNGQ0ODBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVE
b2N1bWVudFBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIu
Y3BwCkBAIC0yOCwxOCArMjgsMjkgQEAKIAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIiAvLyBPbmx5IGZvciBpc0xheW91dFRp
bWVyQWN0aXZlCiAjaW5jbHVkZSAiSFRNTDVMZXhlci5oIgogI2luY2x1ZGUgIkhUTUw1U2NyaXB0
UnVubmVyLmgiCiAjaW5jbHVkZSAiSFRNTDVUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIkhUTUxE
b2N1bWVudC5oIgogI2luY2x1ZGUgIk5vZGUuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJYU1NBdWRpdG9yLmgiCiAKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKICNlbmRp
ZgogCisvLyBkZWZhdWx0UGFyc2VyQ2h1bmtTaXplIGlzIHVzZWQgdG8gZGVmaW5lIGhvdyBtYW55
IHRva2VucyB0aGUgcGFyc2VyIHdpbGwKKy8vIHByb2Nlc3MgYmVmb3JlIGNoZWNraW5nIGFnYWlu
c3QgcGFyc2VyVGltZUxpbWl0IGFuZCBwb3NzaWJseSB5aWVsZGluZy4KKy8vIFRoaXMgaXMgYSBw
ZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gdG8gcHJldmVudCBjaGVja2luZyBhZnRlciBldmVyeSB0
b2tlbi4KK3N0YXRpYyBjb25zdCBpbnQgZGVmYXVsdFBhcnNlckNodW5rU2l6ZSA9IDQwOTY7CisK
Ky8vIGRlZmF1bHRQYXJzZXJUaW1lTGltaXQgaXMgdGhlIHNlY29uZHMgdGhlIHBhcnNlciB3aWxs
IHJ1biBpbiBvbmUgd3JpdGUoKSBjYWxsCisvLyBiZWZvcmUgeWllbGRpbmcuICBJbmxpbmUgPHNj
cmlwdD4gZXhlY3V0aW9uIGNhbiBjYXVzZSBpdCB0byBleGNlZGUgdGhlIGxpbWl0LgorLy8gRklY
TUU6IFdlIHdvdWxkIHRoaXMgdG8gYmUgMC4yLiBIaXN0b3JpY2FsbHkgLjIgY2F1c2VkIHNsb3du
ZXNzIG9uIG9sZCBtYWNoaW5lcy4KK3N0YXRpYyBjb25zdCBkb3VibGUgZGVmYXVsdFBhcnNlclRp
bWVMaW1pdCA9IDAuNTAwOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSB7CkBA
IC02Myw2ICs3NCwyNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZQogCitzdGF0aWMgZG91
YmxlIHBhcnNlclRpbWVMaW1pdChQYWdlKiBwYWdlKQoreworICAgIC8vIFdlJ3JlIHVzaW5nIHRo
ZSBwb29ybHkgbmFtZWQgY3VzdG9tSFRNTFRva2VuaXplclRpbWVEZWxheSBzZXR0aW5nLgorICAg
IGlmIChwYWdlICYmIHBhZ2UtPmhhc0N1c3RvbUhUTUxUb2tlbml6ZXJUaW1lRGVsYXkoKSkKKyAg
ICAgICAgcmV0dXJuIHBhZ2UtPmN1c3RvbUhUTUxUb2tlbml6ZXJUaW1lRGVsYXkoKTsKKyAgICBy
ZXR1cm4gZGVmYXVsdFBhcnNlclRpbWVMaW1pdDsKK30KKworc3RhdGljIGludCBwYXJzZXJDaHVu
a1NpemUoUGFnZSogcGFnZSkKK3sKKyAgICAvLyBGSVhNRTogV2UgbWF5IG5lZWQgdG8gZGl2aWRl
IHRoZSB2YWx1ZSBmcm9tIGN1c3RvbUhUTUxUb2tlbml6ZXJDaHVua1NpemUKKyAgICAvLyBieSBz
b21lIGNvbnN0YW50IHRvIHRyYW5zbGF0ZSBmcm9tIHRoZSAiY2hhcmFjdGVyIiBiYXNlZCBiZWhh
dmlvciBvZiB0aGUKKyAgICAvLyBvbGQgSFRNTERvY3VtZW50UGFyc2VyIHRvIHRoZSB0b2tlbi1i
YXNlZCBiZWhhdmlvciBvZiB0aGlzIHBhcnNlci4KKyAgICBpZiAocGFnZSAmJiBwYWdlLT5oYXND
dXN0b21IVE1MVG9rZW5pemVyQ2h1bmtTaXplKCkpCisgICAgICAgIHJldHVybiBwYWdlLT5jdXN0
b21IVE1MVG9rZW5pemVyQ2h1bmtTaXplKCk7CisgICAgcmV0dXJuIGRlZmF1bHRQYXJzZXJDaHVu
a1NpemU7Cit9CisKIEhUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIoSFRN
TERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMpCiAgICAgOiBEb2N1bWVudFBh
cnNlcigpCiAgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQpAQCAtNzEsNiArMTAwLDkgQEAgSFRN
TDVEb2N1bWVudFBhcnNlcjo6SFRNTDVEb2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQqIGRvY3Vt
ZW50LCBib29sIHJlcG9ydEVycm8KICAgICAsIG1fdHJlZUNvbnN0cnVjdG9yKG5ldyBIVE1MNVRy
ZWVCdWlsZGVyKG1fbGV4ZXIuZ2V0KCksIGRvY3VtZW50LCByZXBvcnRFcnJvcnMpKQogICAgICwg
bV9lbmRXYXNEZWxheWVkKGZhbHNlKQogICAgICwgbV93cml0ZU5lc3RpbmdMZXZlbCgwKQorICAg
ICwgbV9wYXJzZXJUaW1lTGltaXQocGFyc2VyVGltZUxpbWl0KGRvY3VtZW50LT5wYWdlKCkpKQor
ICAgICwgbV9wYXJzZXJDaHVua1NpemUocGFyc2VyQ2h1bmtTaXplKGRvY3VtZW50LT5wYWdlKCkp
KQorICAgICwgbV9jb250aW51ZU5leHRDaHVua1RpbWVyKHRoaXMsICZIVE1MNURvY3VtZW50UGFy
c2VyOjpjb250aW51ZU5leHRDaHVua1RpbWVyRmlyZWQpCiB7CiAgICAgYmVnaW4oKTsKIH0KQEAg
LTg4LDI4ICsxMjAsODQgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpiZWdpbigpCiAgICAg
Ly8gRklYTUU6IFNob3VsZCB3ZSByZXNldCB0aGUgbGV4ZXI/CiB9CiAKLXZvaWQgSFRNTDVEb2N1
bWVudFBhcnNlcjo6cHVtcExleGVySWZQb3NzaWJsZSgpCit2b2lkIEhUTUw1RG9jdW1lbnRQYXJz
ZXI6OnN0b3BQYXJzaW5nKCkKK3sKKyAgICBEb2N1bWVudFBhcnNlcjo6c3RvcFBhcnNpbmcoKTsK
KyAgICBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuc3RvcCgpOworfQorCitib29sIEhUTUw1RG9j
dW1lbnRQYXJzZXI6OnByb2Nlc3NpbmdEYXRhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250
aW51ZU5leHRDaHVua1RpbWVyLmlzQWN0aXZlKCkgfHwgaW5Xcml0ZSgpOworfQorCit2b2lkIEhU
TUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcklmUG9zc2libGUoU3luY2hyb25vdXNNb2RlIG1v
ZGUpCiB7CiAgICAgaWYgKG1fcGFyc2VyU3RvcHBlZCB8fCBtX3RyZWVDb25zdHJ1Y3Rvci0+aXNQ
YXVzZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIHB1bXBMZXhlcigpOworCisgICAgLy8gT25j
ZSBhIHRpbWVyIGlzIHNldCwgaXQgaGFzIGNvbnRyb2wgb2Ygd2hlbiB0aGUgcGFyc2VyIGNvbnRp
bnVlcy4KKyAgICBpZiAobV9jb250aW51ZU5leHRDaHVua1RpbWVyLmlzQWN0aXZlKCkpIHsKKyAg
ICAgICAgQVNTRVJUKG1vZGUgPT0gQWxsb3dZaWVsZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBwdW1wTGV4ZXIobW9kZSk7CiB9CiAKLXZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6
cHVtcExleGVyKCkKK3N0cnVjdCBIVE1MNURvY3VtZW50UGFyc2VyOjpQdW1wU2Vzc2lvbiB7Cisg
ICAgUHVtcFNlc3Npb24oKQorICAgICAgICA6IHByb2Nlc3NlZFRva2VucygwKQorICAgICAgICAs
IHN0YXJ0VGltZShjdXJyZW50VGltZSgpKQorICAgIHsKKyAgICB9CisKKyAgICBpbnQgcHJvY2Vz
c2VkVG9rZW5zOworICAgIGRvdWJsZSBzdGFydFRpbWU7Cit9OworCitpbmxpbmUgYm9vbCBIVE1M
NURvY3VtZW50UGFyc2VyOjpzaG91bGRDb250aW51ZVBhcnNpbmcoUHVtcFNlc3Npb24mIHNlc3Np
b24pCiB7CisgICAgaWYgKG1fcGFyc2VyU3RvcHBlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKHNlc3Npb24ucHJvY2Vzc2VkVG9rZW5zID4gbV9wYXJzZXJDaHVua1NpemUpIHsK
KyAgICAgICAgc2Vzc2lvbi5wcm9jZXNzZWRUb2tlbnMgPSAwOworICAgICAgICBkb3VibGUgZWxh
cHNlZFRpbWUgPSBjdXJyZW50VGltZSgpIC0gc2Vzc2lvbi5zdGFydFRpbWU7CisgICAgICAgIGlm
IChlbGFwc2VkVGltZSA+IG1fcGFyc2VyVGltZUxpbWl0KSB7CisgICAgICAgICAgICAvLyBTY2hl
ZHVsZSBhbiBpbW1lZGlhdGUgdGltZXIgYW5kIHlpZWxkIGZyb20gdGhlIHBhcnNlci4KKyAgICAg
ICAgICAgIG1fY29udGludWVOZXh0Q2h1bmtUaW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzZXNzaW9uLnByb2Nl
c3NlZFRva2VucysrOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEhUTUw1RG9jdW1lbnRQ
YXJzZXI6OnB1bXBMZXhlcihTeW5jaHJvbm91c01vZGUgbW9kZSkKK3sKKyAgICBBU1NFUlQoIW1f
cGFyc2VyU3RvcHBlZCk7CisgICAgQVNTRVJUKCFtX3RyZWVDb25zdHJ1Y3Rvci0+aXNQYXVzZWQo
KSk7CisgICAgQVNTRVJUKCFtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuaXNBY3RpdmUoKSk7CisK
ICAgICAvLyBXZSB0ZWxsIHRoZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50IGFib3V0IGV2ZXJ5IHB1
bXAsIGV2ZW4gaWYgd2UKICAgICAvLyBlbmQgdXAgcHVtcGluZyBub3RoaW5nLiAgSXQgY2FuIGZp
bHRlciBvdXQgZW1wdHkgcHVtcHMgaXRzZWxmLgogICAgIHdpbGxQdW1wTGV4ZXIoKTsKIAotICAg
IEFTU0VSVCghbV9wYXJzZXJTdG9wcGVkKTsKLSAgICBBU1NFUlQoIW1fdHJlZUNvbnN0cnVjdG9y
LT5pc1BhdXNlZCgpKTsKLSAgICB3aGlsZSAoIW1fcGFyc2VyU3RvcHBlZCAmJiBtX2xleGVyLT5u
ZXh0VG9rZW4obV9pbnB1dC5jdXJyZW50KCksIG1fdG9rZW4pKSB7CisgICAgUHVtcFNlc3Npb24g
c2Vzc2lvbjsKKyAgICAvLyBGSVhNRTogVGhpcyBsb29wIGJvZHkgaGFzIGlzIG5vdyB0b28gbG9u
ZyBhbmQgbmVlZHMgY2xlYW51cC4KKyAgICB3aGlsZSAobW9kZSA9PSBGb3JjZVN5bmNocm9ub3Vz
IHx8IHNob3VsZENvbnRpbnVlUGFyc2luZyhzZXNzaW9uKSkgeworICAgICAgICBpZiAoIW1fbGV4
ZXItPm5leHRUb2tlbihtX2lucHV0LmN1cnJlbnQoKSwgbV90b2tlbikpCisgICAgICAgICAgICBy
ZXR1cm47CisKICAgICAgICAgaWYgKFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXIg
PSBzY3JpcHQoKSkKICAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPnNldEV2ZW50SGFuZGxl
ckxpbmVOdW1iZXIobGluZU51bWJlcigpICsgMSk7CiAKICAgICAgICAgbV90cmVlQ29uc3RydWN0
b3ItPmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4obV90b2tlbik7CiAgICAgICAgIG1fdG9rZW4uY2xl
YXIoKTsKIAorICAgICAgICAvLyBGSVhNRTogV2h5IGlzIHNldEV2ZW50SGFuZGxlckxpbmVOdW1i
ZXIoMCkgbmVjZXNzYXJ5PwogICAgICAgICBpZiAoU2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29u
dHJvbGxlciA9IHNjcmlwdCgpKQogICAgICAgICAgICAgc2NyaXB0Q29udHJvbGxlci0+c2V0RXZl
bnRIYW5kbGVyTGluZU51bWJlcigwKTsKIApAQCAtMTI5LDYgKzIxNywyNyBAQCB2b2lkIEhUTUw1
RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcigpCiAgICAgZGlkUHVtcExleGVyKCk7CiB9CiAKKy8v
IEZJWE1FOiBUaGlzIGJlbG9uZ3Mgb24gRG9jdW1lbnQuCitzdGF0aWMgYm9vbCBpc0xheW91dFRp
bWVyQWN0aXZlKERvY3VtZW50KiBkb2MpCit7CisgICAgQVNTRVJUKGRvYyk7CisgICAgcmV0dXJu
IGRvYy0+dmlldygpICYmIGRvYy0+dmlldygpLT5sYXlvdXRQZW5kaW5nKCkgJiYgIWRvYy0+bWlu
aW11bUxheW91dERlbGF5KCk7Cit9CisKK3ZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6Y29udGlu
dWVOZXh0Q2h1bmtUaW1lckZpcmVkKFRpbWVyPEhUTUw1RG9jdW1lbnRQYXJzZXI+KiB0aW1lcikK
K3sKKyAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV9jb250aW51ZU5leHRDaHVu
a1RpbWVyKTsKKyAgICAvLyBIQUNLOiBJZiBhIGxheW91dCBpcyBzY2hlZHVsZWQsIHdhaXQgYWdh
aW4gdG8gbGV0IHRoZSBsYXlvdXQgdGltZXIgcnVuIGZpcnN0LgorICAgIGlmIChpc0xheW91dFRp
bWVyQWN0aXZlKG1fZG9jdW1lbnQpKSB7CisgICAgICAgIG1fY29udGludWVOZXh0Q2h1bmtUaW1l
ci5zdGFydE9uZVNob3QoMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBXZSBz
aG91bGQgbmV2ZXIgYmUgaGVyZSB1bmxlc3Mgd2UgY2FuIHB1bXAgaW1tZWRpYXRlbHkuICBDYWxs
IHB1bXBMZXhlcigpCisgICAgLy8gZGlyZWN0bHkgc28gdGhhdCBBU1NFUlRTIHdpbGwgZmlyZSBp
ZiB3ZSdyZSB3cm9uZy4KKyAgICBwdW1wTGV4ZXIoQWxsb3dZaWVsZCk7Cit9CisKIHZvaWQgSFRN
TDVEb2N1bWVudFBhcnNlcjo6d2lsbFB1bXBMZXhlcigpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RP
UikKQEAgLTE0OCwxNCArMjU3LDE0IEBAIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6ZGlkUHVt
cExleGVyKCkKICNlbmRpZgogfQogCi12b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OndyaXRlKGNv
bnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sIGFwcGVuZERhdGEpCit2b2lkIEhUTUw1
RG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29s
IGlzRnJvbU5ldHdvcmspCiB7CiAgICAgaWYgKG1fcGFyc2VyU3RvcHBlZCkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5jcmVtZW50
ZXIobV93cml0ZU5lc3RpbmdMZXZlbCk7CiAKLSAgICBpZiAoYXBwZW5kRGF0YSkgeworICAgIGlm
IChpc0Zyb21OZXR3b3JrKSB7CiAgICAgICAgIG1faW5wdXQuYXBwZW5kVG9FbmQoc291cmNlKTsK
ICAgICAgICAgaWYgKG1fd3JpdGVOZXN0aW5nTGV2ZWwgPiAxKSB7CiAgICAgICAgICAgICAvLyBX
ZSd2ZSBnb3R0ZW4gZGF0YSBvZmYgdGhlIG5ldHdvcmsgaW4gYSBuZXN0ZWQgY2FsbCB0byB3cml0
ZSgpLgpAQCAtMTY2LDE0ICsyNzUsMTkgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjp3cml0
ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgYm9vbCBhcHBlbmREYXRhKQogICAgIH0g
ZWxzZQogICAgICAgICBtX2lucHV0Lmluc2VydEF0Q3VycmVudEluc2VydGlvblBvaW50KHNvdXJj
ZSk7CiAKLSAgICBwdW1wTGV4ZXJJZlBvc3NpYmxlKCk7CisgICAgU3luY2hyb25vdXNNb2RlIG1v
ZGUgPSBpc0Zyb21OZXR3b3JrID8gQWxsb3dZaWVsZCA6IEZvcmNlU3luY2hyb25vdXM7CisgICAg
cHVtcExleGVySWZQb3NzaWJsZShtb2RlKTsKICAgICBlbmRJZkRlbGF5ZWQoKTsKIH0KIAogdm9p
ZCBIVE1MNURvY3VtZW50UGFyc2VyOjplbmQoKQogewotICAgIHB1bXBMZXhlcklmUG9zc2libGUo
KTsKLSAgICAvLyBJbmZvcm1zIHRoZSB0aGUgcmVzdCBvZiBXZWJDb3JlIHRoYXQgcGFyc2luZyBp
cyByZWFsbHkgZmluaXNoZWQuCisgICAgQVNTRVJUKCFtX2NvbnRpbnVlTmV4dENodW5rVGltZXIu
aXNBY3RpdmUoKSk7CisgICAgLy8gTk9URTogVGhpcyBwdW1wIHNob3VsZCBvbmx5IGV2ZXIgZW1p
dCBidWZmZXJlZCBjaGFyYWN0ZXIgdG9rZW5zLAorICAgIC8vIHNvIEZvcmNlU3luY2hyb25vdXMg
dnMuIEFsbG93WWllbGQgc2hvdWxkIGJlIG1lYW5pbmdsZXNzLgorICAgIHB1bXBMZXhlcklmUG9z
c2libGUoRm9yY2VTeW5jaHJvbm91cyk7CisKKyAgICAvLyBJbmZvcm1zIHRoZSB0aGUgcmVzdCBv
ZiBXZWJDb3JlIHRoYXQgcGFyc2luZyBpcyByZWFsbHkgZmluaXNoZWQgKGFuZCBkZWxldGVzIHRo
aXMpLgogICAgIG1fdHJlZUNvbnN0cnVjdG9yLT5maW5pc2hlZCgpOwogfQogCkBAIC0xODIsNyAr
Mjk2LDcgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjphdHRlbXB0VG9FbmQoKQogICAgIC8v
IGZpbmlzaCgpIGluZGljYXRlcyB3ZSB3aWxsIG5vdCByZWNlaXZlIGFueSBtb3JlIGRhdGEuIElm
IHdlIGFyZSB3YWl0aW5nIG9uCiAgICAgLy8gYW4gZXh0ZXJuYWwgc2NyaXB0IHRvIGxvYWQsIHdl
IGNhbid0IGZpbmlzaCBwYXJzaW5nIHF1aXRlIHlldC4KIAotICAgIGlmIChpbldyaXRlKCkgfHwg
aXNXYWl0aW5nRm9yU2NyaXB0cygpIHx8IGV4ZWN1dGluZ1NjcmlwdCgpKSB7CisgICAgaWYgKGlu
V3JpdGUoKSB8fCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgfHwgZXhlY3V0aW5nU2NyaXB0KCkgfHwg
bV9jb250aW51ZU5leHRDaHVua1RpbWVyLmlzQWN0aXZlKCkpIHsKICAgICAgICAgbV9lbmRXYXNE
ZWxheWVkID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5MSw3ICszMDUsOSBA
QCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OmF0dGVtcHRUb0VuZCgpCiAKIHZvaWQgSFRNTDVE
b2N1bWVudFBhcnNlcjo6ZW5kSWZEZWxheWVkKCkKIHsKLSAgICBpZiAoIW1fZW5kV2FzRGVsYXll
ZCB8fCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgfHwgZXhlY3V0aW5nU2NyaXB0KCkpCisgICAgLy8g
V2UgZG9uJ3QgY2hlY2sgaW5Xcml0ZSgpIGhlcmUgc2luY2UgaW5Xcml0ZSgpIHdpbGwgYmUgdHJ1
ZSBpZiB0aGlzIHdhcworICAgIC8vIGNhbGxlZCBmcm9tIHdyaXRlKCkuCisgICAgaWYgKCFtX2Vu
ZFdhc0RlbGF5ZWQgfHwgaXNXYWl0aW5nRm9yU2NyaXB0cygpIHx8IGV4ZWN1dGluZ1NjcmlwdCgp
IHx8IG1fY29udGludWVOZXh0Q2h1bmtUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICByZXR1cm47
CiAKICAgICBtX2VuZFdhc0RlbGF5ZWQgPSBmYWxzZTsKQEAgLTIzNSw3ICszNTEsNyBAQCB2b2lk
IEhUTUw1RG9jdW1lbnRQYXJzZXI6OnJlc3VtZVBhcnNpbmdBZnRlclNjcmlwdEV4ZWN1dGlvbigp
CiB7CiAgICAgQVNTRVJUKCFtX3NjcmlwdFJ1bm5lci0+aW5TY3JpcHRFeGVjdXRpb24oKSk7CiAg
ICAgQVNTRVJUKCFtX3RyZWVDb25zdHJ1Y3Rvci0+aXNQYXVzZWQoKSk7Ci0gICAgcHVtcExleGVy
SWZQb3NzaWJsZSgpOworICAgIHB1bXBMZXhlcklmUG9zc2libGUoQWxsb3dZaWVsZCk7CiAKICAg
ICAvLyBUaGUgZG9jdW1lbnQgYWxyZWFkeSBmaW5pc2hlZCBwYXJzaW5nIHdlIHdlcmUganVzdCB3
YWl0aW5nIG9uIHNjcmlwdHMgd2hlbiBmaW5pc2hlZCgpIHdhcyBjYWxsZWQuCiAgICAgZW5kSWZE
ZWxheWVkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5o
IGIvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuaAppbmRleCA0YTc1Y2VjMWVhZGFj
NjU4YzNlYTAxNTNmNTRlYjAxYTU3MGVmNzZhLi45OGNhMzkxYWEyY2Y1ZGE2MTMwNzIyZTI1MGU4
YjgxNDc5ZmUxNzM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNl
ci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmgKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJIVE1MNVRva2VuLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5n
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRQYXJzZXIuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTAsMTAgKzUx
LDEyIEBAIHB1YmxpYzoKIAogICAgIC8vIERvY3VtZW50UGFyc2VyCiAgICAgdmlydHVhbCB2b2lk
IGJlZ2luKCk7Ci0gICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYs
IGJvb2wgYXBwZW5kRGF0YSk7CisgICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRl
ZFN0cmluZyYsIGJvb2wgaXNGcm9tTmV0d29yayk7CiAgICAgdmlydHVhbCB2b2lkIGVuZCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBmaW5pc2goKTsKICAgICB2aXJ0dWFsIGludCBleGVjdXRpbmdTY3Jp
cHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcHJvY2Vzc2luZ0RhdGEoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RvcFBhcnNpbmcoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNXYWl0aW5n
Rm9yU2NyaXB0cygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBleGVjdXRlU2NyaXB0c1dhaXRp
bmdGb3JTdHlsZXNoZWV0cygpOwogICAgIHZpcnR1YWwgaW50IGxpbmVOdW1iZXIoKSBjb25zdDsK
QEAgLTE2NCw4ICsxNjcsMTYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxQdW1wTGV4ZXIoKTsK
ICAgICB2b2lkIGRpZFB1bXBMZXhlcigpOwogCi0gICAgdm9pZCBwdW1wTGV4ZXIoKTsKLSAgICB2
b2lkIHB1bXBMZXhlcklmUG9zc2libGUoKTsKKyAgICBzdHJ1Y3QgUHVtcFNlc3Npb247CisgICAg
aW5saW5lIGJvb2wgc2hvdWxkQ29udGludWVQYXJzaW5nKFB1bXBTZXNzaW9uJik7CisKKyAgICBl
bnVtIFN5bmNocm9ub3VzTW9kZSB7CisgICAgICAgIEFsbG93WWllbGQsCisgICAgICAgIEZvcmNl
U3luY2hyb25vdXMsCisgICAgfTsKKyAgICB2b2lkIHB1bXBMZXhlcihTeW5jaHJvbm91c01vZGUp
OworICAgIHZvaWQgcHVtcExleGVySWZQb3NzaWJsZShTeW5jaHJvbm91c01vZGUpOworICAgIHZv
aWQgY29udGludWVOZXh0Q2h1bmtUaW1lckZpcmVkKFRpbWVyPEhUTUw1RG9jdW1lbnRQYXJzZXI+
Kik7CiAgICAgdm9pZCByZXN1bWVQYXJzaW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24oKTsKIAogICAg
IHZvaWQgYXR0ZW1wdFRvRW5kKCk7CkBAIC0xODUsNiArMTk2LDEwIEBAIHByaXZhdGU6CiAgICAg
T3duUHRyPEhUTUw1VHJlZUJ1aWxkZXI+IG1fdHJlZUNvbnN0cnVjdG9yOwogICAgIGJvb2wgbV9l
bmRXYXNEZWxheWVkOwogICAgIGludCBtX3dyaXRlTmVzdGluZ0xldmVsOworCisgICAgZG91Ymxl
IG1fcGFyc2VyVGltZUxpbWl0OworICAgIGludCBtX3BhcnNlckNodW5rU2l6ZTsKKyAgICBUaW1l
cjxIVE1MNURvY3VtZW50UGFyc2VyPiBtX2NvbnRpbnVlTmV4dENodW5rVGltZXI7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1dlYkNv
cmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDI0ZDY5ODU0YzlkZTdiY2E5MDk5
OWRlYzNiZWRmYjU2NGNlMDZhNWIuLmM1ZTYyYjY3MDgwMWJjNDEyYjU1MGU3MjRkMmY3ZGUyZGQx
ZjA0MDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisr
KyBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC02NiwxNiArNjYsMTYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi0v
LyBUaGlzIHZhbHVlIGlzIHVzZWQgdG8gZGVmaW5lIGhvdyBtYW55IGNoYXJhY3RlcnMgdGhlIHBh
cnNlciB3aWxsIHByb2Nlc3MgYmVmb3JlCi0vLyB5ZWlsZGluZyBjb250cm9sLgotLy8gVG8gaW5j
cmVhc2UgcmVzcG9uc2l2bmVzcyByZWR1Y2UgdGhlIHBhcnNlciBjaHVuayBzaXplLgorLy8gVGhp
cyB2YWx1ZSBpcyB1c2VkIHRvIGRlZmluZSBob3cgbWFueSBsb29wcyAoYXBwcm94aW1hdGVseSB0
b2tlbnMpCisvLyB0aGUgcGFyc2VyIHdpbGwgbWFrZSBiZWZvcmUgY2hlY2tpbmcgaWYgaXQgc2hv
dWxkIHlpZWxkLgorLy8gVG8gaW5jcmVhc2UgcmVzcG9uc2l2ZW5lc3MgcmVkdWNlIGJvdGggQ2h1
bmtTaXplIGFuZCBUaW1lRGVsYXkgY29udGFudHMuCiBzdGF0aWMgY29uc3QgaW50IGRlZmF1bHRU
b2tlbml6ZXJDaHVua1NpemUgPSA0MDk2OwogCiAvLyBGSVhNRTogV2Ugd291bGQgbGlrZSB0aGlz
IGNvbnN0YW50IHRvIGJlIDIwMG1zLgogLy8gWWllbGRpbmcgbW9yZSBhZ2dyZXNzaXZlbHkgcmVz
dWx0cyBpbiBpbmNyZWFzZWQgcmVzcG9uc2l2ZW5lc3MgYW5kIGJldHRlciBpbmNyZW1lbnRhbCBy
ZW5kZXJpbmcuCiAvLyBJdCBzbG93cyBkb3duIG92ZXJhbGwgcGFnZS1sb2FkIG9uIHNsb3dlciBt
YWNoaW5lcywgdGhvdWdoLCBzbyBmb3Igbm93IHdlIHNldCBhIHZhbHVlIG9mIDUwMC4KLS8vIEZv
ciBzbWFsbGVyIGNodW5rcyAoYWJvdmUpIGRlY3JlYXNlIHRoZSB2YWx1ZSBvZiBUaW1lckRlbGF5
IGFzIHRoZSB0aGUgcGFyc2VyIHNob3VsZCBub3QKLS8vIHlpZWxkIGZvciBhcyBsb25nIGEgcGVy
aW9kIG90aGVyd2lzZSBpdCB3aWxsIHRha2Ugd2F5IHRvIGxvbmcgdG8gbG9hZCBhIHBhZ2UuCisv
LyBUaW1lRGVsYXkgY29udHJvbHMgdGhlIG1heGltdW0gdGltZSB0aGUgcGFyc2VyIHdpbGwgcnVu
IGJlZm9yZSB5aWVsZGluZy4KKy8vIElubGluZSBzY3JpcHQgZXhlY3V0aW9uIGNhbiBjYXVzZSB0
aGUgcGFyc2VyIHRvIGV4Y2VkZSB0aGlzIGxpbWl0Lgogc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZh
dWx0VG9rZW5pemVyVGltZURlbGF5ID0gMC41MDA7CiAKIHN0YXRpYyBjb25zdCBjaGFyIGNvbW1l
bnRTdGFydCBbXSA9ICI8IS0tIjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58730</attachid>
            <date>2010-06-14 17:11:57 -0700</date>
            <delta_ts>2010-06-14 17:20:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-40596-20100614171155.patch</filename>
            <type>text/plain</type>
            <size>16520</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YmMyODhkMmVkNjkwYzM5ZWM4YmQ5YmE0ZDI0YzM4MzFiYWUxYTg0ZC4uYWNkOTNmN2YzNmYzNzcz
ZTQ5NjQ4NDM5YmU4YmJlMmY3MTdjMTg5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxMC0wNi0xNCAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KKworICAgICAgICBTYWZhcmkgYmVhY2gtYmFsbHMgbG9hZGluZyBsYXJnZSBwYWdlcyB3
aXRoIEhUTUw1IHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDA1OTYKKworICAgICAgICBJbXBsZW1lbnQgcGFyc2VyIHlpZWxkaW5nLCBzaW1p
bGFyIHRvIGhvdyB0aGUgb2xkCisgICAgICAgIEhUTUxEb2N1bWVudFBhcnNlciB5aWVsZHMuCisK
KyAgICAgICAgVGhpcyBpbXBsZW1lbnRhdGlvbiByZS11c2VzIHRoZSB0b2tlbml6ZXJUaW1lRGVs
YXkgYW5kCisgICAgICAgIHRva2VuaXplckNodW5rU2l6ZSBzZXR0aW5ncyBldmVuIHRob3VnaCB0
aGV5IGRvbid0IG1hcCBleGFjdGx5CisgICAgICAgIHRvIHRoZSB0b2tlbiBsb29wIHRoYXQgdGhl
IEhUTUw1IHBhcnNlciB1c2VzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50UGFyc2VyLmg6Cisg
ICAgICAgICAtIEFkZCBhIEZJWE1FIGZvciBwcm9jZXNzaW5nRGF0YSgpIGFuZCBjbGFyaWZ5IGhv
dyB0aGUKKyAgICAgICAgICAgYXBwZW5kRGF0YSBmbGFnIGlzIHVzZWQgYnkgcmVuYW1pbmcgaXQg
dG8gaXNGcm9tTmV0d29yay4KKyAgICAgICAgKiBodG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VyVGltZUxpbWl0KToKKyAgICAgICAgIC0gRGVmYXVs
dHMgYWNjZXNzb3IsIHByb2JhYmx5IGJlbG9uZ3Mgb24gUGFnZS4KKyAgICAgICAgKFdlYkNvcmU6
OnBhcnNlckNodW5rU2l6ZSk6CisgICAgICAgICAtIERlZmF1bHRzIGFjY2Vzc29yLCBwcm9iYWJs
eSBiZWxvbmdzIG9uIFBhZ2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2Vy
OjpIVE1MNURvY3VtZW50UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQ
YXJzZXI6OnN0b3BQYXJzaW5nKToKKyAgICAgICAgIC0gU3RvcCB0aGUgY29udGludWUtcGFyc2lu
ZyB0aW1lciBpZiBhY3RpdmUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2Vy
Ojpwcm9jZXNzaW5nRGF0YSk6CisgICAgICAgICAtIEltcGxlbWVudCB0aGlzIHBvb3JseSB1bmRl
cnN0b29kIGFjY2Vzc29yIHRvIG1hdGNoCisgICAgICAgICAgIHRoZSBvbGQgcGFyc2VyJ3MgYmVo
YXZpb3IuICBJdCdzIHVuY2xlYXIgd2hhdCB0aGlzIGRvZXMKKyAgICAgICAgICAgYW5kIGl0IGRv
ZXMgbm90IGFmZmVjdCBhbnkgbGF5b3V0IHRlc3RzIHRvIG15IGtub3dsZWRnZQorICAgICAgICAg
ICBidXQgbGlrZWx5IGFmZmVjdHMgdGhlIFdlYktpdCBBUEkgaW4gc29tZSB3YXkuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpwdW1wTGV4ZXJJZlBvc3NpYmxlKToKKyAg
ICAgICAgIC0gUGFzcyBTeW5jaHJvbm91c01vZGUuCisgICAgICAgICAtIERvIG5vdCBldmVyIHB1
bXAgaWYgd2UndmUgeWllbGRlZCB0byB0aGUgdGltZXIuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
NURvY3VtZW50UGFyc2VyOjpQdW1wU2Vzc2lvbjo6UHVtcFNlc3Npb24pOgorICAgICAgICAgLSBB
IHN0cnVjdCBmb3Igc3RvcmluZyB0aGUgeWllbGQgY291bnRlcnMuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MNURvY3VtZW50UGFyc2VyOjpzaG91bGRDb250aW51ZVBhcnNpbmcpOgorICAgICAgICAg
LSBNb3N0bHkgbWF0Y2hlcyBIVE1MRG9jdW1lbnRQYXJzZXI6OnNob3VsZENvbnRpbnVlUGFyc2lu
Zy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcik6Cisg
ICAgICAgICAtIFJlc3BlY3QgU3luY2hyb25vdXNNb2RlLgorICAgICAgICAgLSBBU1NFUlQgdGhh
dCBhIHRpbWVyIGlzIG5vdCBzY2hlZHVsZWQgaWYgd2UncmUgcHVtcGluZy4KKyAgICAgICAgKFdl
YkNvcmU6OmlzTGF5b3V0VGltZXJBY3RpdmUpOgorICAgICAgICAgLSBUaGlzIGJlbG9uZ3Mgb24g
RG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpjb250aW51
ZU5leHRDaHVua1RpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBh
cnNlcjo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6ZW5k
KToKKyAgICAgICAgIC0gV2Ugc2hvdWxkIG5ldmVyIGVuZCgpIGlmIGEgdGltZXIgaXMgc3RpbGwg
b3V0c3RhbmRpbmcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjphdHRl
bXB0VG9FbmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6ZW5kSWZE
ZWxheWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OnJlc3VtZVBh
cnNpbmdBZnRlclNjcmlwdEV4ZWN1dGlvbik6CisgICAgICAgICogaHRtbC9IVE1MNURvY3VtZW50
UGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjopOgorICAg
ICAgICAqIGh0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgIC0gQ2xhcmlmeSB0
aGUgb2xkIFRpbWVEZWxheSBhbmQgQ2h1bmtTaXplIGNvbnN0YW50cy4KKwogMjAxMC0wNi0xNCAg
QWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVy
aWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnRQYXJzZXIuaCBiL1dl
YkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmgKaW5kZXggYzdlZWEwNjRjN2E0NjBmNDE3NWI1OGM5
NGU0YmM5OGI3NTU0MjU5NS4uM2MyYTA5YjYzMTE2ODI5MTIzMDljYjIwOThiOWU5M2JkNTc2NjQy
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnRQYXJzZXIuaAorKysgYi9XZWJDb3Jl
L2RvbS9Eb2N1bWVudFBhcnNlci5oCkBAIC0zOCwxMCArMzgsMTMgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICAvLyByZWNlaXZlZCBkdXJpbmcgZXhlY3V0aW5nIGEgc2NyaXB0IG11c3Qg
YmUgYXBwZW5kZWQsIGhlbmNlIHRoZQogICAgICAgICAvLyBleHRyYSBib29sIHRvIGJlIGFibGUg
dG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBib3RoIGNhc2VzLgogICAgICAgICAvLyBkb2N1bWVudC53
cml0ZSgpIGFsd2F5cyB1c2VzIGZhbHNlLCB3aGlsZSB0aGUgbG9hZGVyIHVzZXMgdHJ1ZS4KLSAg
ICAgICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYsIGJvb2wgYXBw
ZW5kRGF0YSkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgd3JpdGUoY29uc3QgU2VnbWVudGVk
U3RyaW5nJiwgYm9vbCBpc0Zyb21OZXR3b3JrKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBm
aW5pc2goKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkg
Y29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc3RvcFBhcnNpbmcoKSB7IG1fcGFyc2Vy
U3RvcHBlZCA9IHRydWU7IH0KKyAgICAgICAgLy8gRklYTUU6IHByb2Nlc3NpbmdEYXRhKCkgaXMg
b25seSB1c2VkIGJ5IERvY3VtZW50TG9hZGVyOjppc0xvYWRpbmdJbkFQSVNlbnNlCisgICAgICAg
IC8vIGFuZCBpcyB2ZXJ5IHVuY2xlYXIgYXMgdG8gd2hhdCBpdCBhY3R1YWxseSBtZWFucy4gIE9u
bHkgSFRNTERvY3VtZW50UGFyc2VyCisgICAgICAgIC8vIGFjdHVhbGx5IGltcGxlbWVudHMgaXQu
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwcm9jZXNzaW5nRGF0YSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgICAgIHZpcnR1YWwgaW50IGV4ZWN1dGluZ1NjcmlwdCgpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIu
Y3BwIGIvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDI4ZGYxNGUy
NWMxZmJhMTA2OWM4OGQ1YTVhZTUzNjg3NjQ1OTc5ODguLjQ3ZWNlYTY0YTlhZTVlZjE0MGQ3NzI3
ZjVlZjZlMmY2Yjk5OWQ1YmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50
UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5jcHAKQEAg
LTI4LDE4ICsyOCwyOSBAQAogCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiIC8vIE9ubHkgZm9yIGlzTGF5b3V0VGltZXJBY3Rp
dmUKICNpbmNsdWRlICJIVE1MNUxleGVyLmgiCiAjaW5jbHVkZSAiSFRNTDVTY3JpcHRSdW5uZXIu
aCIKICNpbmNsdWRlICJIVE1MNVRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50
LmgiCiAjaW5jbHVkZSAiTm9kZS5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlhTU0F1ZGl0b3IuaCIKIAogI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2VuZGlmCiAKKy8v
IGRlZmF1bHRQYXJzZXJDaHVua1NpemUgaXMgdXNlZCB0byBkZWZpbmUgaG93IG1hbnkgdG9rZW5z
IHRoZSBwYXJzZXIgd2lsbAorLy8gcHJvY2VzcyBiZWZvcmUgY2hlY2tpbmcgYWdhaW5zdCBwYXJz
ZXJUaW1lTGltaXQgYW5kIHBvc3NpYmx5IHlpZWxkaW5nLgorLy8gVGhpcyBpcyBhIHBlcmZvcm1h
bmNlIG9wdGltaXphdGlvbiB0byBwcmV2ZW50IGNoZWNraW5nIGFmdGVyIGV2ZXJ5IHRva2VuLgor
c3RhdGljIGNvbnN0IGludCBkZWZhdWx0UGFyc2VyQ2h1bmtTaXplID0gNDA5NjsKKworLy8gZGVm
YXVsdFBhcnNlclRpbWVMaW1pdCBpcyB0aGUgc2Vjb25kcyB0aGUgcGFyc2VyIHdpbGwgcnVuIGlu
IG9uZSB3cml0ZSgpIGNhbGwKKy8vIGJlZm9yZSB5aWVsZGluZy4gIElubGluZSA8c2NyaXB0PiBl
eGVjdXRpb24gY2FuIGNhdXNlIGl0IHRvIGV4Y2VkZSB0aGUgbGltaXQuCisvLyBGSVhNRTogV2Ug
d291bGQgbGlrZSB0aGlzIHZhbHVlIHRvIGJlIDAuMi4KK3N0YXRpYyBjb25zdCBkb3VibGUgZGVm
YXVsdFBhcnNlclRpbWVMaW1pdCA9IDAuNTAwOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5h
bWVzcGFjZSB7CkBAIC02Myw2ICs3NCwyNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZQog
CitzdGF0aWMgZG91YmxlIHBhcnNlclRpbWVMaW1pdChQYWdlKiBwYWdlKQoreworICAgIC8vIFdl
J3JlIHVzaW5nIHRoZSBwb29ybHkgbmFtZWQgY3VzdG9tSFRNTFRva2VuaXplclRpbWVEZWxheSBz
ZXR0aW5nLgorICAgIGlmIChwYWdlICYmIHBhZ2UtPmhhc0N1c3RvbUhUTUxUb2tlbml6ZXJUaW1l
RGVsYXkoKSkKKyAgICAgICAgcmV0dXJuIHBhZ2UtPmN1c3RvbUhUTUxUb2tlbml6ZXJUaW1lRGVs
YXkoKTsKKyAgICByZXR1cm4gZGVmYXVsdFBhcnNlclRpbWVMaW1pdDsKK30KKworc3RhdGljIGlu
dCBwYXJzZXJDaHVua1NpemUoUGFnZSogcGFnZSkKK3sKKyAgICAvLyBGSVhNRTogV2UgbWF5IG5l
ZWQgdG8gZGl2aWRlIHRoZSB2YWx1ZSBmcm9tIGN1c3RvbUhUTUxUb2tlbml6ZXJDaHVua1NpemUK
KyAgICAvLyBieSBzb21lIGNvbnN0YW50IHRvIHRyYW5zbGF0ZSBmcm9tIHRoZSAiY2hhcmFjdGVy
IiBiYXNlZCBiZWhhdmlvciBvZiB0aGUKKyAgICAvLyBvbGQgSFRNTERvY3VtZW50UGFyc2VyIHRv
IHRoZSB0b2tlbi1iYXNlZCBiZWhhdmlvciBvZiB0aGlzIHBhcnNlci4KKyAgICBpZiAocGFnZSAm
JiBwYWdlLT5oYXNDdXN0b21IVE1MVG9rZW5pemVyQ2h1bmtTaXplKCkpCisgICAgICAgIHJldHVy
biBwYWdlLT5jdXN0b21IVE1MVG9rZW5pemVyQ2h1bmtTaXplKCk7CisgICAgcmV0dXJuIGRlZmF1
bHRQYXJzZXJDaHVua1NpemU7Cit9CisKIEhUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1l
bnRQYXJzZXIoSFRNTERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMpCiAgICAg
OiBEb2N1bWVudFBhcnNlcigpCiAgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQpAQCAtNzEsNiAr
MTAwLDkgQEAgSFRNTDVEb2N1bWVudFBhcnNlcjo6SFRNTDVEb2N1bWVudFBhcnNlcihIVE1MRG9j
dW1lbnQqIGRvY3VtZW50LCBib29sIHJlcG9ydEVycm8KICAgICAsIG1fdHJlZUNvbnN0cnVjdG9y
KG5ldyBIVE1MNVRyZWVCdWlsZGVyKG1fbGV4ZXIuZ2V0KCksIGRvY3VtZW50LCByZXBvcnRFcnJv
cnMpKQogICAgICwgbV9lbmRXYXNEZWxheWVkKGZhbHNlKQogICAgICwgbV93cml0ZU5lc3RpbmdM
ZXZlbCgwKQorICAgICwgbV9wYXJzZXJUaW1lTGltaXQocGFyc2VyVGltZUxpbWl0KGRvY3VtZW50
LT5wYWdlKCkpKQorICAgICwgbV9wYXJzZXJDaHVua1NpemUocGFyc2VyQ2h1bmtTaXplKGRvY3Vt
ZW50LT5wYWdlKCkpKQorICAgICwgbV9jb250aW51ZU5leHRDaHVua1RpbWVyKHRoaXMsICZIVE1M
NURvY3VtZW50UGFyc2VyOjpjb250aW51ZU5leHRDaHVua1RpbWVyRmlyZWQpCiB7CiAgICAgYmVn
aW4oKTsKIH0KQEAgLTg4LDI4ICsxMjAsODQgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpi
ZWdpbigpCiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSByZXNldCB0aGUgbGV4ZXI/CiB9CiAKLXZv
aWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExleGVySWZQb3NzaWJsZSgpCit2b2lkIEhUTUw1
RG9jdW1lbnRQYXJzZXI6OnN0b3BQYXJzaW5nKCkKK3sKKyAgICBEb2N1bWVudFBhcnNlcjo6c3Rv
cFBhcnNpbmcoKTsKKyAgICBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuc3RvcCgpOworfQorCiti
b29sIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnByb2Nlc3NpbmdEYXRhKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9jb250aW51ZU5leHRDaHVua1RpbWVyLmlzQWN0aXZlKCkgfHwgaW5Xcml0ZSgpOwor
fQorCit2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcklmUG9zc2libGUoU3luY2hy
b25vdXNNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1fcGFyc2VyU3RvcHBlZCB8fCBtX3RyZWVDb25z
dHJ1Y3Rvci0+aXNQYXVzZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIHB1bXBMZXhlcigpOwor
CisgICAgLy8gT25jZSBhIHRpbWVyIGlzIHNldCwgaXQgaGFzIGNvbnRyb2wgb2Ygd2hlbiB0aGUg
cGFyc2VyIGNvbnRpbnVlcy4KKyAgICBpZiAobV9jb250aW51ZU5leHRDaHVua1RpbWVyLmlzQWN0
aXZlKCkpIHsKKyAgICAgICAgQVNTRVJUKG1vZGUgPT0gQWxsb3dZaWVsZCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBwdW1wTGV4ZXIobW9kZSk7CiB9CiAKLXZvaWQgSFRNTDVEb2N1
bWVudFBhcnNlcjo6cHVtcExleGVyKCkKK3N0cnVjdCBIVE1MNURvY3VtZW50UGFyc2VyOjpQdW1w
U2Vzc2lvbiB7CisgICAgUHVtcFNlc3Npb24oKQorICAgICAgICA6IHByb2Nlc3NlZFRva2Vucygw
KQorICAgICAgICAsIHN0YXJ0VGltZShjdXJyZW50VGltZSgpKQorICAgIHsKKyAgICB9CisKKyAg
ICBpbnQgcHJvY2Vzc2VkVG9rZW5zOworICAgIGRvdWJsZSBzdGFydFRpbWU7Cit9OworCitpbmxp
bmUgYm9vbCBIVE1MNURvY3VtZW50UGFyc2VyOjpzaG91bGRDb250aW51ZVBhcnNpbmcoUHVtcFNl
c3Npb24mIHNlc3Npb24pCiB7CisgICAgaWYgKG1fcGFyc2VyU3RvcHBlZCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKHNlc3Npb24ucHJvY2Vzc2VkVG9rZW5zID4gbV9wYXJzZXJD
aHVua1NpemUpIHsKKyAgICAgICAgc2Vzc2lvbi5wcm9jZXNzZWRUb2tlbnMgPSAwOworICAgICAg
ICBkb3VibGUgZWxhcHNlZFRpbWUgPSBjdXJyZW50VGltZSgpIC0gc2Vzc2lvbi5zdGFydFRpbWU7
CisgICAgICAgIGlmIChlbGFwc2VkVGltZSA+IG1fcGFyc2VyVGltZUxpbWl0KSB7CisgICAgICAg
ICAgICAvLyBTY2hlZHVsZSBhbiBpbW1lZGlhdGUgdGltZXIgYW5kIHlpZWxkIGZyb20gdGhlIHBh
cnNlci4KKyAgICAgICAgICAgIG1fY29udGludWVOZXh0Q2h1bmtUaW1lci5zdGFydE9uZVNob3Qo
MCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAr
K3Nlc3Npb24ucHJvY2Vzc2VkVG9rZW5zOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEhU
TUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcihTeW5jaHJvbm91c01vZGUgbW9kZSkKK3sKKyAg
ICBBU1NFUlQoIW1fcGFyc2VyU3RvcHBlZCk7CisgICAgQVNTRVJUKCFtX3RyZWVDb25zdHJ1Y3Rv
ci0+aXNQYXVzZWQoKSk7CisgICAgQVNTRVJUKCFtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuaXNB
Y3RpdmUoKSk7CisKICAgICAvLyBXZSB0ZWxsIHRoZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50IGFi
b3V0IGV2ZXJ5IHB1bXAsIGV2ZW4gaWYgd2UKICAgICAvLyBlbmQgdXAgcHVtcGluZyBub3RoaW5n
LiAgSXQgY2FuIGZpbHRlciBvdXQgZW1wdHkgcHVtcHMgaXRzZWxmLgogICAgIHdpbGxQdW1wTGV4
ZXIoKTsKIAotICAgIEFTU0VSVCghbV9wYXJzZXJTdG9wcGVkKTsKLSAgICBBU1NFUlQoIW1fdHJl
ZUNvbnN0cnVjdG9yLT5pc1BhdXNlZCgpKTsKLSAgICB3aGlsZSAoIW1fcGFyc2VyU3RvcHBlZCAm
JiBtX2xleGVyLT5uZXh0VG9rZW4obV9pbnB1dC5jdXJyZW50KCksIG1fdG9rZW4pKSB7CisgICAg
UHVtcFNlc3Npb24gc2Vzc2lvbjsKKyAgICAvLyBGSVhNRTogVGhpcyBsb29wIGJvZHkgaGFzIGlz
IG5vdyB0b28gbG9uZyBhbmQgbmVlZHMgY2xlYW51cC4KKyAgICB3aGlsZSAobW9kZSA9PSBGb3Jj
ZVN5bmNocm9ub3VzIHx8IHNob3VsZENvbnRpbnVlUGFyc2luZyhzZXNzaW9uKSkgeworICAgICAg
ICBpZiAoIW1fbGV4ZXItPm5leHRUb2tlbihtX2lucHV0LmN1cnJlbnQoKSwgbV90b2tlbikpCisg
ICAgICAgICAgICBicmVhazsKKwogICAgICAgICBpZiAoU2NyaXB0Q29udHJvbGxlciogc2NyaXB0
Q29udHJvbGxlciA9IHNjcmlwdCgpKQogICAgICAgICAgICAgc2NyaXB0Q29udHJvbGxlci0+c2V0
RXZlbnRIYW5kbGVyTGluZU51bWJlcihsaW5lTnVtYmVyKCkgKyAxKTsKIAogICAgICAgICBtX3Ry
ZWVDb25zdHJ1Y3Rvci0+Y29uc3RydWN0VHJlZUZyb21Ub2tlbihtX3Rva2VuKTsKICAgICAgICAg
bV90b2tlbi5jbGVhcigpOwogCisgICAgICAgIC8vIEZJWE1FOiBXaHkgaXMgc2V0RXZlbnRIYW5k
bGVyTGluZU51bWJlcigwKSBuZWNlc3Nhcnk/CiAgICAgICAgIGlmIChTY3JpcHRDb250cm9sbGVy
KiBzY3JpcHRDb250cm9sbGVyID0gc2NyaXB0KCkpCiAgICAgICAgICAgICBzY3JpcHRDb250cm9s
bGVyLT5zZXRFdmVudEhhbmRsZXJMaW5lTnVtYmVyKDApOwogCkBAIC0xMjMsMTIgKzIxMSwzNCBA
QCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcigpCiAgICAgICAgIGJvb2wgc2hv
dWxkQ29udGludWVQYXJzaW5nID0gbV9zY3JpcHRSdW5uZXItPmV4ZWN1dGUoc2NyaXB0RWxlbWVu
dC5yZWxlYXNlKCksIHNjcmlwdFN0YXJ0TGluZSk7CiAgICAgICAgIG1fdHJlZUNvbnN0cnVjdG9y
LT5zZXRQYXVzZWQoIXNob3VsZENvbnRpbnVlUGFyc2luZyk7CiAgICAgICAgIGlmICghc2hvdWxk
Q29udGludWVQYXJzaW5nKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgfQogCiAgICAgZGlkUHVtcExleGVyKCk7CiB9CiAKKy8vIEZJWE1FOiBUaGlzIGJlbG9u
Z3Mgb24gRG9jdW1lbnQuCitzdGF0aWMgYm9vbCBpc0xheW91dFRpbWVyQWN0aXZlKERvY3VtZW50
KiBkb2MpCit7CisgICAgQVNTRVJUKGRvYyk7CisgICAgcmV0dXJuIGRvYy0+dmlldygpICYmIGRv
Yy0+dmlldygpLT5sYXlvdXRQZW5kaW5nKCkgJiYgIWRvYy0+bWluaW11bUxheW91dERlbGF5KCk7
Cit9CisKK3ZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6Y29udGludWVOZXh0Q2h1bmtUaW1lckZp
cmVkKFRpbWVyPEhUTUw1RG9jdW1lbnRQYXJzZXI+KiB0aW1lcikKK3sKKyAgICBBU1NFUlRfVU5V
U0VEKHRpbWVyLCB0aW1lciA9PSAmbV9jb250aW51ZU5leHRDaHVua1RpbWVyKTsKKyAgICAvLyBG
SVhNRTogVGhlIHRpbWVyIGNsYXNzIHNob3VsZCBoYW5kbGUgdGltZXIgcHJpb3JpdGllcyBpbnN0
ZWFkIG9mIHRoaXMgY29kZS4KKyAgICAvLyBJZiBhIGxheW91dCBpcyBzY2hlZHVsZWQsIHdhaXQg
YWdhaW4gdG8gbGV0IHRoZSBsYXlvdXQgdGltZXIgcnVuIGZpcnN0LgorICAgIGlmIChpc0xheW91
dFRpbWVyQWN0aXZlKG1fZG9jdW1lbnQpKSB7CisgICAgICAgIG1fY29udGludWVOZXh0Q2h1bmtU
aW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBX
ZSBzaG91bGQgbmV2ZXIgYmUgaGVyZSB1bmxlc3Mgd2UgY2FuIHB1bXAgaW1tZWRpYXRlbHkuICBD
YWxsIHB1bXBMZXhlcigpCisgICAgLy8gZGlyZWN0bHkgc28gdGhhdCBBU1NFUlRTIHdpbGwgZmly
ZSBpZiB3ZSdyZSB3cm9uZy4KKyAgICBwdW1wTGV4ZXIoQWxsb3dZaWVsZCk7Cit9CisKIHZvaWQg
SFRNTDVEb2N1bWVudFBhcnNlcjo6d2lsbFB1bXBMZXhlcigpCiB7CiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKQEAgLTE0OCwxNCArMjU4LDE0IEBAIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6ZGlk
UHVtcExleGVyKCkKICNlbmRpZgogfQogCi12b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OndyaXRl
KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sIGFwcGVuZERhdGEpCit2b2lkIEhU
TUw1RG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBi
b29sIGlzRnJvbU5ldHdvcmspCiB7CiAgICAgaWYgKG1fcGFyc2VyU3RvcHBlZCkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5jcmVt
ZW50ZXIobV93cml0ZU5lc3RpbmdMZXZlbCk7CiAKLSAgICBpZiAoYXBwZW5kRGF0YSkgeworICAg
IGlmIChpc0Zyb21OZXR3b3JrKSB7CiAgICAgICAgIG1faW5wdXQuYXBwZW5kVG9FbmQoc291cmNl
KTsKICAgICAgICAgaWYgKG1fd3JpdGVOZXN0aW5nTGV2ZWwgPiAxKSB7CiAgICAgICAgICAgICAv
LyBXZSd2ZSBnb3R0ZW4gZGF0YSBvZmYgdGhlIG5ldHdvcmsgaW4gYSBuZXN0ZWQgY2FsbCB0byB3
cml0ZSgpLgpAQCAtMTY2LDE0ICsyNzYsMTggQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjp3
cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgYm9vbCBhcHBlbmREYXRhKQogICAg
IH0gZWxzZQogICAgICAgICBtX2lucHV0Lmluc2VydEF0Q3VycmVudEluc2VydGlvblBvaW50KHNv
dXJjZSk7CiAKLSAgICBwdW1wTGV4ZXJJZlBvc3NpYmxlKCk7CisgICAgcHVtcExleGVySWZQb3Nz
aWJsZShpc0Zyb21OZXR3b3JrID8gQWxsb3dZaWVsZCA6IEZvcmNlU3luY2hyb25vdXMpOwogICAg
IGVuZElmRGVsYXllZCgpOwogfQogCiB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OmVuZCgpCiB7
Ci0gICAgcHVtcExleGVySWZQb3NzaWJsZSgpOwotICAgIC8vIEluZm9ybXMgdGhlIHRoZSByZXN0
IG9mIFdlYkNvcmUgdGhhdCBwYXJzaW5nIGlzIHJlYWxseSBmaW5pc2hlZC4KKyAgICBBU1NFUlQo
IW1fY29udGludWVOZXh0Q2h1bmtUaW1lci5pc0FjdGl2ZSgpKTsKKyAgICAvLyBOT1RFOiBUaGlz
IHB1bXAgc2hvdWxkIG9ubHkgZXZlciBlbWl0IGJ1ZmZlcmVkIGNoYXJhY3RlciB0b2tlbnMsCisg
ICAgLy8gc28gRm9yY2VTeW5jaHJvbm91cyB2cy4gQWxsb3dZaWVsZCBzaG91bGQgYmUgbWVhbmlu
Z2xlc3MuCisgICAgcHVtcExleGVySWZQb3NzaWJsZShGb3JjZVN5bmNocm9ub3VzKTsKKworICAg
IC8vIEluZm9ybXMgdGhlIHRoZSByZXN0IG9mIFdlYkNvcmUgdGhhdCBwYXJzaW5nIGlzIHJlYWxs
eSBmaW5pc2hlZCAoYW5kIGRlbGV0ZXMgdGhpcykuCiAgICAgbV90cmVlQ29uc3RydWN0b3ItPmZp
bmlzaGVkKCk7CiB9CiAKQEAgLTE4Miw3ICsyOTYsNyBAQCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJz
ZXI6OmF0dGVtcHRUb0VuZCgpCiAgICAgLy8gZmluaXNoKCkgaW5kaWNhdGVzIHdlIHdpbGwgbm90
IHJlY2VpdmUgYW55IG1vcmUgZGF0YS4gSWYgd2UgYXJlIHdhaXRpbmcgb24KICAgICAvLyBhbiBl
eHRlcm5hbCBzY3JpcHQgdG8gbG9hZCwgd2UgY2FuJ3QgZmluaXNoIHBhcnNpbmcgcXVpdGUgeWV0
LgogCi0gICAgaWYgKGluV3JpdGUoKSB8fCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgfHwgZXhlY3V0
aW5nU2NyaXB0KCkpIHsKKyAgICBpZiAoaW5Xcml0ZSgpIHx8IGlzV2FpdGluZ0ZvclNjcmlwdHMo
KSB8fCBleGVjdXRpbmdTY3JpcHQoKSB8fCBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuaXNBY3Rp
dmUoKSkgewogICAgICAgICBtX2VuZFdhc0RlbGF5ZWQgPSB0cnVlOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMTkxLDcgKzMwNSw5IEBAIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6YXR0
ZW1wdFRvRW5kKCkKIAogdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjplbmRJZkRlbGF5ZWQoKQog
ewotICAgIGlmICghbV9lbmRXYXNEZWxheWVkIHx8IGlzV2FpdGluZ0ZvclNjcmlwdHMoKSB8fCBl
eGVjdXRpbmdTY3JpcHQoKSkKKyAgICAvLyBXZSBkb24ndCBjaGVjayBpbldyaXRlKCkgaGVyZSBz
aW5jZSBpbldyaXRlKCkgd2lsbCBiZSB0cnVlIGlmIHRoaXMgd2FzCisgICAgLy8gY2FsbGVkIGZy
b20gd3JpdGUoKS4KKyAgICBpZiAoIW1fZW5kV2FzRGVsYXllZCB8fCBpc1dhaXRpbmdGb3JTY3Jp
cHRzKCkgfHwgZXhlY3V0aW5nU2NyaXB0KCkgfHwgbV9jb250aW51ZU5leHRDaHVua1RpbWVyLmlz
QWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fZW5kV2FzRGVsYXllZCA9IGZhbHNl
OwpAQCAtMjM1LDcgKzM1MSw3IEBAIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFy
c2luZ0FmdGVyU2NyaXB0RXhlY3V0aW9uKCkKIHsKICAgICBBU1NFUlQoIW1fc2NyaXB0UnVubmVy
LT5pblNjcmlwdEV4ZWN1dGlvbigpKTsKICAgICBBU1NFUlQoIW1fdHJlZUNvbnN0cnVjdG9yLT5p
c1BhdXNlZCgpKTsKLSAgICBwdW1wTGV4ZXJJZlBvc3NpYmxlKCk7CisgICAgcHVtcExleGVySWZQ
b3NzaWJsZShBbGxvd1lpZWxkKTsKIAogICAgIC8vIFRoZSBkb2N1bWVudCBhbHJlYWR5IGZpbmlz
aGVkIHBhcnNpbmcgd2Ugd2VyZSBqdXN0IHdhaXRpbmcgb24gc2NyaXB0cyB3aGVuIGZpbmlzaGVk
KCkgd2FzIGNhbGxlZC4KICAgICBlbmRJZkRlbGF5ZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmggYi9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBh
cnNlci5oCmluZGV4IDRhNzVjZWMxZWFkYWM2NThjM2VhMDE1M2Y1NGViMDFhNTcwZWY3NmEuLjk4
Y2EzOTFhYTJjZjVkYTYxMzA3MjJlMjUwZThiODE0NzlmZTE3MzUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1RG9j
dW1lbnRQYXJzZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkhUTUw1VG9rZW4uaCIK
ICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJEb2N1bWVudFBhcnNlci5o
IgorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC01MCwxMCArNTEsMTIgQEAgcHVibGljOgogCiAgICAgLy8gRG9jdW1l
bnRQYXJzZXIKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW4oKTsKLSAgICB2aXJ0dWFsIHZvaWQgd3Jp
dGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiwgYm9vbCBhcHBlbmREYXRhKTsKKyAgICB2aXJ0dWFs
IHZvaWQgd3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiwgYm9vbCBpc0Zyb21OZXR3b3JrKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZW5kKCk7CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpOwogICAg
IHZpcnR1YWwgaW50IGV4ZWN1dGluZ1NjcmlwdCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBw
cm9jZXNzaW5nRGF0YSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzdG9wUGFyc2luZygpOwog
ICAgIHZpcnR1YWwgYm9vbCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3Q7CiAgICAgdmlydHVh
bCB2b2lkIGV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKCk7CiAgICAgdmlydHVh
bCBpbnQgbGluZU51bWJlcigpIGNvbnN0OwpAQCAtMTY0LDggKzE2NywxNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgd2lsbFB1bXBMZXhlcigpOwogICAgIHZvaWQgZGlkUHVtcExleGVyKCk7CiAKLSAg
ICB2b2lkIHB1bXBMZXhlcigpOwotICAgIHZvaWQgcHVtcExleGVySWZQb3NzaWJsZSgpOworICAg
IHN0cnVjdCBQdW1wU2Vzc2lvbjsKKyAgICBpbmxpbmUgYm9vbCBzaG91bGRDb250aW51ZVBhcnNp
bmcoUHVtcFNlc3Npb24mKTsKKworICAgIGVudW0gU3luY2hyb25vdXNNb2RlIHsKKyAgICAgICAg
QWxsb3dZaWVsZCwKKyAgICAgICAgRm9yY2VTeW5jaHJvbm91cywKKyAgICB9OworICAgIHZvaWQg
cHVtcExleGVyKFN5bmNocm9ub3VzTW9kZSk7CisgICAgdm9pZCBwdW1wTGV4ZXJJZlBvc3NpYmxl
KFN5bmNocm9ub3VzTW9kZSk7CisgICAgdm9pZCBjb250aW51ZU5leHRDaHVua1RpbWVyRmlyZWQo
VGltZXI8SFRNTDVEb2N1bWVudFBhcnNlcj4qKTsKICAgICB2b2lkIHJlc3VtZVBhcnNpbmdBZnRl
clNjcmlwdEV4ZWN1dGlvbigpOwogCiAgICAgdm9pZCBhdHRlbXB0VG9FbmQoKTsKQEAgLTE4NSw2
ICsxOTYsMTAgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8SFRNTDVUcmVlQnVpbGRlcj4gbV90cmVl
Q29uc3RydWN0b3I7CiAgICAgYm9vbCBtX2VuZFdhc0RlbGF5ZWQ7CiAgICAgaW50IG1fd3JpdGVO
ZXN0aW5nTGV2ZWw7CisKKyAgICBkb3VibGUgbV9wYXJzZXJUaW1lTGltaXQ7CisgICAgaW50IG1f
cGFyc2VyQ2h1bmtTaXplOworICAgIFRpbWVyPEhUTUw1RG9jdW1lbnRQYXJzZXI+IG1fY29udGlu
dWVOZXh0Q2h1bmtUaW1lcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
RG9jdW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHAK
aW5kZXggMjRkNjk4NTRjOWRlN2JjYTkwOTk5ZGVjM2JlZGZiNTY0Y2UwNmE1Yi4uYzVlNjJiNjcw
ODAxYmM0MTJiNTUwZTcyNGQyZjdkZTJkZDFmMDQwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBh
cnNlci5jcHAKQEAgLTY2LDE2ICs2NiwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLS8vIFRoaXMgdmFsdWUgaXMgdXNlZCB0byBkZWZpbmUg
aG93IG1hbnkgY2hhcmFjdGVycyB0aGUgcGFyc2VyIHdpbGwgcHJvY2VzcyBiZWZvcmUKLS8vIHll
aWxkaW5nIGNvbnRyb2wuCi0vLyBUbyBpbmNyZWFzZSByZXNwb25zaXZuZXNzIHJlZHVjZSB0aGUg
cGFyc2VyIGNodW5rIHNpemUuCisvLyBUaGlzIHZhbHVlIGlzIHVzZWQgdG8gZGVmaW5lIGhvdyBt
YW55IGxvb3BzIChhcHByb3hpbWF0ZWx5IHRva2VucykKKy8vIHRoZSBwYXJzZXIgd2lsbCBtYWtl
IGJlZm9yZSBjaGVja2luZyBpZiBpdCBzaG91bGQgeWllbGQuCisvLyBUbyBpbmNyZWFzZSByZXNw
b25zaXZlbmVzcyByZWR1Y2UgYm90aCBDaHVua1NpemUgYW5kIFRpbWVEZWxheSBjb250YW50cy4K
IHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdFRva2VuaXplckNodW5rU2l6ZSA9IDQwOTY7CiAKIC8v
IEZJWE1FOiBXZSB3b3VsZCBsaWtlIHRoaXMgY29uc3RhbnQgdG8gYmUgMjAwbXMuCiAvLyBZaWVs
ZGluZyBtb3JlIGFnZ3Jlc3NpdmVseSByZXN1bHRzIGluIGluY3JlYXNlZCByZXNwb25zaXZlbmVz
cyBhbmQgYmV0dGVyIGluY3JlbWVudGFsIHJlbmRlcmluZy4KIC8vIEl0IHNsb3dzIGRvd24gb3Zl
cmFsbCBwYWdlLWxvYWQgb24gc2xvd2VyIG1hY2hpbmVzLCB0aG91Z2gsIHNvIGZvciBub3cgd2Ug
c2V0IGEgdmFsdWUgb2YgNTAwLgotLy8gRm9yIHNtYWxsZXIgY2h1bmtzIChhYm92ZSkgZGVjcmVh
c2UgdGhlIHZhbHVlIG9mIFRpbWVyRGVsYXkgYXMgdGhlIHRoZSBwYXJzZXIgc2hvdWxkIG5vdAot
Ly8geWllbGQgZm9yIGFzIGxvbmcgYSBwZXJpb2Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGFrZSB3YXkg
dG8gbG9uZyB0byBsb2FkIGEgcGFnZS4KKy8vIFRpbWVEZWxheSBjb250cm9scyB0aGUgbWF4aW11
bSB0aW1lIHRoZSBwYXJzZXIgd2lsbCBydW4gYmVmb3JlIHlpZWxkaW5nLgorLy8gSW5saW5lIHNj
cmlwdCBleGVjdXRpb24gY2FuIGNhdXNlIHRoZSBwYXJzZXIgdG8gZXhjZWRlIHRoaXMgbGltaXQu
CiBzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRUb2tlbml6ZXJUaW1lRGVsYXkgPSAwLjUwMDsK
IAogc3RhdGljIGNvbnN0IGNoYXIgY29tbWVudFN0YXJ0IFtdID0gIjwhLS0iOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58731</attachid>
            <date>2010-06-14 17:20:58 -0700</date>
            <delta_ts>2010-06-14 17:26:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-40596-20100614172056.patch</filename>
            <type>text/plain</type>
            <size>16263</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTk1ZGIyOWE3MGRlNGViMTUxZWM1ODM4Y2E0Njc1OWQ2ZTllYzI1Ny4uYzRkMTE3ZTcxYzFlMDdi
NDk1MjRiYWU4MjUwYTUxNjY1YzUyOGNhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxMC0wNi0xNCAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KKworICAgICAgICBTYWZhcmkgYmVhY2gtYmFsbHMgbG9hZGluZyBsYXJnZSBwYWdlcyB3
aXRoIEhUTUw1IHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDA1OTYKKworICAgICAgICBJbXBsZW1lbnQgcGFyc2VyIHlpZWxkaW5nLCBzaW1p
bGFyIHRvIGhvdyB0aGUgb2xkCisgICAgICAgIEhUTUxEb2N1bWVudFBhcnNlciB5aWVsZHMuCisK
KyAgICAgICAgVGhpcyBpbXBsZW1lbnRhdGlvbiByZS11c2VzIHRoZSB0b2tlbml6ZXJUaW1lRGVs
YXkgYW5kCisgICAgICAgIHRva2VuaXplckNodW5rU2l6ZSBzZXR0aW5ncyBldmVuIHRob3VnaCB0
aGV5IGRvbid0IG1hcCBleGFjdGx5CisgICAgICAgIHRvIHRoZSB0b2tlbiBsb29wIHRoYXQgdGhl
IEhUTUw1IHBhcnNlciB1c2VzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50UGFyc2VyLmg6Cisg
ICAgICAgICAtIEFkZCBhIEZJWE1FIGZvciBwcm9jZXNzaW5nRGF0YSgpIGFuZCBjbGFyaWZ5IGhv
dyB0aGUKKyAgICAgICAgICAgYXBwZW5kRGF0YSBmbGFnIGlzIHVzZWQgYnkgcmVuYW1pbmcgaXQg
dG8gaXNGcm9tTmV0d29yay4KKyAgICAgICAgKiBodG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VyVGltZUxpbWl0KToKKyAgICAgICAgIC0gRGVmYXVs
dHMgYWNjZXNzb3IsIHByb2JhYmx5IGJlbG9uZ3Mgb24gUGFnZS4KKyAgICAgICAgKFdlYkNvcmU6
OnBhcnNlckNodW5rU2l6ZSk6CisgICAgICAgICAtIERlZmF1bHRzIGFjY2Vzc29yLCBwcm9iYWJs
eSBiZWxvbmdzIG9uIFBhZ2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2Vy
OjpIVE1MNURvY3VtZW50UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQ
YXJzZXI6OnN0b3BQYXJzaW5nKToKKyAgICAgICAgIC0gU3RvcCB0aGUgY29udGludWUtcGFyc2lu
ZyB0aW1lciBpZiBhY3RpdmUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2Vy
Ojpwcm9jZXNzaW5nRGF0YSk6CisgICAgICAgICAtIEltcGxlbWVudCB0aGlzIHBvb3JseSB1bmRl
cnN0b29kIGFjY2Vzc29yIHRvIG1hdGNoCisgICAgICAgICAgIHRoZSBvbGQgcGFyc2VyJ3MgYmVo
YXZpb3IuICBJdCdzIHVuY2xlYXIgd2hhdCB0aGlzIGRvZXMKKyAgICAgICAgICAgYW5kIGl0IGRv
ZXMgbm90IGFmZmVjdCBhbnkgbGF5b3V0IHRlc3RzIHRvIG15IGtub3dsZWRnZQorICAgICAgICAg
ICBidXQgbGlrZWx5IGFmZmVjdHMgdGhlIFdlYktpdCBBUEkgaW4gc29tZSB3YXkuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpwdW1wTGV4ZXJJZlBvc3NpYmxlKToKKyAg
ICAgICAgIC0gUGFzcyBTeW5jaHJvbm91c01vZGUuCisgICAgICAgICAtIERvIG5vdCBldmVyIHB1
bXAgaWYgd2UndmUgeWllbGRlZCB0byB0aGUgdGltZXIuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
NURvY3VtZW50UGFyc2VyOjpQdW1wU2Vzc2lvbjo6UHVtcFNlc3Npb24pOgorICAgICAgICAgLSBB
IHN0cnVjdCBmb3Igc3RvcmluZyB0aGUgeWllbGQgY291bnRlcnMuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MNURvY3VtZW50UGFyc2VyOjpzaG91bGRDb250aW51ZVBhcnNpbmcpOgorICAgICAgICAg
LSBNb3N0bHkgbWF0Y2hlcyBIVE1MRG9jdW1lbnRQYXJzZXI6OnNob3VsZENvbnRpbnVlUGFyc2lu
Zy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcik6Cisg
ICAgICAgICAtIFJlc3BlY3QgU3luY2hyb25vdXNNb2RlLgorICAgICAgICAgLSBBU1NFUlQgdGhh
dCBhIHRpbWVyIGlzIG5vdCBzY2hlZHVsZWQgaWYgd2UncmUgcHVtcGluZy4KKyAgICAgICAgKFdl
YkNvcmU6OmlzTGF5b3V0VGltZXJBY3RpdmUpOgorICAgICAgICAgLSBUaGlzIGJlbG9uZ3Mgb24g
RG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpjb250aW51
ZU5leHRDaHVua1RpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBh
cnNlcjo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6ZW5k
KToKKyAgICAgICAgIC0gV2Ugc2hvdWxkIG5ldmVyIGVuZCgpIGlmIGEgdGltZXIgaXMgc3RpbGwg
b3V0c3RhbmRpbmcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjphdHRl
bXB0VG9FbmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6ZW5kSWZE
ZWxheWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OnJlc3VtZVBh
cnNpbmdBZnRlclNjcmlwdEV4ZWN1dGlvbik6CisgICAgICAgICogaHRtbC9IVE1MNURvY3VtZW50
UGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjopOgorICAg
ICAgICAqIGh0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgIC0gQ2xhcmlmeSB0
aGUgb2xkIFRpbWVEZWxheSBhbmQgQ2h1bmtTaXplIGNvbnN0YW50cy4KKwogMjAxMC0wNi0xNCAg
QWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVy
aWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnRQYXJzZXIuaCBiL1dl
YkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmgKaW5kZXggYzdlZWEwNjRjN2E0NjBmNDE3NWI1OGM5
NGU0YmM5OGI3NTU0MjU5NS4uM2MyYTA5YjYzMTE2ODI5MTIzMDljYjIwOThiOWU5M2JkNTc2NjQy
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnRQYXJzZXIuaAorKysgYi9XZWJDb3Jl
L2RvbS9Eb2N1bWVudFBhcnNlci5oCkBAIC0zOCwxMCArMzgsMTMgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICAvLyByZWNlaXZlZCBkdXJpbmcgZXhlY3V0aW5nIGEgc2NyaXB0IG11c3Qg
YmUgYXBwZW5kZWQsIGhlbmNlIHRoZQogICAgICAgICAvLyBleHRyYSBib29sIHRvIGJlIGFibGUg
dG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBib3RoIGNhc2VzLgogICAgICAgICAvLyBkb2N1bWVudC53
cml0ZSgpIGFsd2F5cyB1c2VzIGZhbHNlLCB3aGlsZSB0aGUgbG9hZGVyIHVzZXMgdHJ1ZS4KLSAg
ICAgICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYsIGJvb2wgYXBw
ZW5kRGF0YSkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgd3JpdGUoY29uc3QgU2VnbWVudGVk
U3RyaW5nJiwgYm9vbCBpc0Zyb21OZXR3b3JrKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBm
aW5pc2goKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkg
Y29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc3RvcFBhcnNpbmcoKSB7IG1fcGFyc2Vy
U3RvcHBlZCA9IHRydWU7IH0KKyAgICAgICAgLy8gRklYTUU6IHByb2Nlc3NpbmdEYXRhKCkgaXMg
b25seSB1c2VkIGJ5IERvY3VtZW50TG9hZGVyOjppc0xvYWRpbmdJbkFQSVNlbnNlCisgICAgICAg
IC8vIGFuZCBpcyB2ZXJ5IHVuY2xlYXIgYXMgdG8gd2hhdCBpdCBhY3R1YWxseSBtZWFucy4gIE9u
bHkgSFRNTERvY3VtZW50UGFyc2VyCisgICAgICAgIC8vIGFjdHVhbGx5IGltcGxlbWVudHMgaXQu
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwcm9jZXNzaW5nRGF0YSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgICAgIHZpcnR1YWwgaW50IGV4ZWN1dGluZ1NjcmlwdCgpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIu
Y3BwIGIvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGM3OTlhMzM4
M2Q2NDJlNDg0ZmYzY2IxZjNkOWYyNDU1ODkyZWVkNDguLmYxODczOWM5Y2QwZWNlMDhmMmFiYzky
MjI4Y2VmNzNlNTcyZGZmMDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50
UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5jcHAKQEAg
LTI4LDE5ICsyOCwzMCBAQAogCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiIC8vIE9ubHkgZm9yIGlzTGF5b3V0VGltZXJBY3Rp
dmUKICNpbmNsdWRlICJIVE1MNUxleGVyLmgiCiAjaW5jbHVkZSAiSFRNTDVQcmVsb2FkU2Nhbm5l
ci5oIgogI2luY2x1ZGUgIkhUTUw1U2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAiSFRNTDVUcmVl
QnVpbGRlci5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgogI2luY2x1ZGUgIk5vZGUuaCIK
LSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJYU1NBdWRpdG9yLmgiCiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogI2luY2x1ZGUgIkluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaCIKICNlbmRpZgogCisvLyBkZWZhdWx0UGFyc2VyQ2h1bmtTaXpl
IGlzIHVzZWQgdG8gZGVmaW5lIGhvdyBtYW55IHRva2VucyB0aGUgcGFyc2VyIHdpbGwKKy8vIHBy
b2Nlc3MgYmVmb3JlIGNoZWNraW5nIGFnYWluc3QgcGFyc2VyVGltZUxpbWl0IGFuZCBwb3NzaWJs
eSB5aWVsZGluZy4KKy8vIFRoaXMgaXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gdG8gcHJl
dmVudCBjaGVja2luZyBhZnRlciBldmVyeSB0b2tlbi4KK3N0YXRpYyBjb25zdCBpbnQgZGVmYXVs
dFBhcnNlckNodW5rU2l6ZSA9IDQwOTY7CisKKy8vIGRlZmF1bHRQYXJzZXJUaW1lTGltaXQgaXMg
dGhlIHNlY29uZHMgdGhlIHBhcnNlciB3aWxsIHJ1biBpbiBvbmUgd3JpdGUoKSBjYWxsCisvLyBi
ZWZvcmUgeWllbGRpbmcuICBJbmxpbmUgPHNjcmlwdD4gZXhlY3V0aW9uIGNhbiBjYXVzZSBpdCB0
byBleGNlZGUgdGhlIGxpbWl0LgorLy8gRklYTUU6IFdlIHdvdWxkIGxpa2UgdGhpcyB2YWx1ZSB0
byBiZSAwLjIuCitzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRQYXJzZXJUaW1lTGltaXQgPSAw
LjUwMDsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgewpAQCAtNjQsNiArNzUs
MjQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UKIAorc3RhdGljIGRvdWJsZSBwYXJzZXJU
aW1lTGltaXQoUGFnZSogcGFnZSkKK3sKKyAgICAvLyBXZSdyZSB1c2luZyB0aGUgcG9vcmx5IG5h
bWVkIGN1c3RvbUhUTUxUb2tlbml6ZXJUaW1lRGVsYXkgc2V0dGluZy4KKyAgICBpZiAocGFnZSAm
JiBwYWdlLT5oYXNDdXN0b21IVE1MVG9rZW5pemVyVGltZURlbGF5KCkpCisgICAgICAgIHJldHVy
biBwYWdlLT5jdXN0b21IVE1MVG9rZW5pemVyVGltZURlbGF5KCk7CisgICAgcmV0dXJuIGRlZmF1
bHRQYXJzZXJUaW1lTGltaXQ7Cit9CisKK3N0YXRpYyBpbnQgcGFyc2VyQ2h1bmtTaXplKFBhZ2Uq
IHBhZ2UpCit7CisgICAgLy8gRklYTUU6IFdlIG1heSBuZWVkIHRvIGRpdmlkZSB0aGUgdmFsdWUg
ZnJvbSBjdXN0b21IVE1MVG9rZW5pemVyQ2h1bmtTaXplCisgICAgLy8gYnkgc29tZSBjb25zdGFu
dCB0byB0cmFuc2xhdGUgZnJvbSB0aGUgImNoYXJhY3RlciIgYmFzZWQgYmVoYXZpb3Igb2YgdGhl
CisgICAgLy8gb2xkIEhUTUxEb2N1bWVudFBhcnNlciB0byB0aGUgdG9rZW4tYmFzZWQgYmVoYXZp
b3Igb2YgdGhpcyBwYXJzZXIuCisgICAgaWYgKHBhZ2UgJiYgcGFnZS0+aGFzQ3VzdG9tSFRNTFRv
a2VuaXplckNodW5rU2l6ZSgpKQorICAgICAgICByZXR1cm4gcGFnZS0+Y3VzdG9tSFRNTFRva2Vu
aXplckNodW5rU2l6ZSgpOworICAgIHJldHVybiBkZWZhdWx0UGFyc2VyQ2h1bmtTaXplOworfQor
CiBIVE1MNURvY3VtZW50UGFyc2VyOjpIVE1MNURvY3VtZW50UGFyc2VyKEhUTUxEb2N1bWVudCog
ZG9jdW1lbnQsIGJvb2wgcmVwb3J0RXJyb3JzKQogICAgIDogRG9jdW1lbnRQYXJzZXIoKQogICAg
ICwgbV9kb2N1bWVudChkb2N1bWVudCkKQEAgLTcyLDYgKzEwMSw5IEBAIEhUTUw1RG9jdW1lbnRQ
YXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIoSFRNTERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBy
ZXBvcnRFcnJvCiAgICAgLCBtX3RyZWVDb25zdHJ1Y3RvcihuZXcgSFRNTDVUcmVlQnVpbGRlciht
X2xleGVyLmdldCgpLCBkb2N1bWVudCwgcmVwb3J0RXJyb3JzKSkKICAgICAsIG1fZW5kV2FzRGVs
YXllZChmYWxzZSkKICAgICAsIG1fd3JpdGVOZXN0aW5nTGV2ZWwoMCkKKyAgICAsIG1fcGFyc2Vy
VGltZUxpbWl0KHBhcnNlclRpbWVMaW1pdChkb2N1bWVudC0+cGFnZSgpKSkKKyAgICAsIG1fcGFy
c2VyQ2h1bmtTaXplKHBhcnNlckNodW5rU2l6ZShkb2N1bWVudC0+cGFnZSgpKSkKKyAgICAsIG1f
Y29udGludWVOZXh0Q2h1bmtUaW1lcih0aGlzLCAmSFRNTDVEb2N1bWVudFBhcnNlcjo6Y29udGlu
dWVOZXh0Q2h1bmtUaW1lckZpcmVkKQogewogICAgIGJlZ2luKCk7CiB9CkBAIC04OSwyOCArMTIx
LDg0IEBAIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6YmVnaW4oKQogICAgIC8vIEZJWE1FOiBT
aG91bGQgd2UgcmVzZXQgdGhlIGxleGVyPwogfQogCi12b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6
OnB1bXBMZXhlcklmUG9zc2libGUoKQordm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpzdG9wUGFy
c2luZygpCit7CisgICAgRG9jdW1lbnRQYXJzZXI6OnN0b3BQYXJzaW5nKCk7CisgICAgbV9jb250
aW51ZU5leHRDaHVua1RpbWVyLnN0b3AoKTsKK30KKworYm9vbCBIVE1MNURvY3VtZW50UGFyc2Vy
Ojpwcm9jZXNzaW5nRGF0YSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGludWVOZXh0Q2h1
bmtUaW1lci5pc0FjdGl2ZSgpIHx8IGluV3JpdGUoKTsKK30KKwordm9pZCBIVE1MNURvY3VtZW50
UGFyc2VyOjpwdW1wTGV4ZXJJZlBvc3NpYmxlKFN5bmNocm9ub3VzTW9kZSBtb2RlKQogewogICAg
IGlmIChtX3BhcnNlclN0b3BwZWQgfHwgbV90cmVlQ29uc3RydWN0b3ItPmlzUGF1c2VkKCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICBwdW1wTGV4ZXIoKTsKKworICAgIC8vIE9uY2UgYSB0aW1lciBp
cyBzZXQsIGl0IGhhcyBjb250cm9sIG9mIHdoZW4gdGhlIHBhcnNlciBjb250aW51ZXMuCisgICAg
aWYgKG1fY29udGludWVOZXh0Q2h1bmtUaW1lci5pc0FjdGl2ZSgpKSB7CisgICAgICAgIEFTU0VS
VChtb2RlID09IEFsbG93WWllbGQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcHVt
cExleGVyKG1vZGUpOwogfQogCi12b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcigp
CitzdHJ1Y3QgSFRNTDVEb2N1bWVudFBhcnNlcjo6UHVtcFNlc3Npb24geworICAgIFB1bXBTZXNz
aW9uKCkKKyAgICAgICAgOiBwcm9jZXNzZWRUb2tlbnMoMCkKKyAgICAgICAgLCBzdGFydFRpbWUo
Y3VycmVudFRpbWUoKSkKKyAgICB7CisgICAgfQorCisgICAgaW50IHByb2Nlc3NlZFRva2VuczsK
KyAgICBkb3VibGUgc3RhcnRUaW1lOworfTsKKworaW5saW5lIGJvb2wgSFRNTDVEb2N1bWVudFBh
cnNlcjo6c2hvdWxkQ29udGludWVQYXJzaW5nKFB1bXBTZXNzaW9uJiBzZXNzaW9uKQogeworICAg
IGlmIChtX3BhcnNlclN0b3BwZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChz
ZXNzaW9uLnByb2Nlc3NlZFRva2VucyA+IG1fcGFyc2VyQ2h1bmtTaXplKSB7CisgICAgICAgIHNl
c3Npb24ucHJvY2Vzc2VkVG9rZW5zID0gMDsKKyAgICAgICAgZG91YmxlIGVsYXBzZWRUaW1lID0g
Y3VycmVudFRpbWUoKSAtIHNlc3Npb24uc3RhcnRUaW1lOworICAgICAgICBpZiAoZWxhcHNlZFRp
bWUgPiBtX3BhcnNlclRpbWVMaW1pdCkgeworICAgICAgICAgICAgLy8gU2NoZWR1bGUgYW4gaW1t
ZWRpYXRlIHRpbWVyIGFuZCB5aWVsZCBmcm9tIHRoZSBwYXJzZXIuCisgICAgICAgICAgICBtX2Nv
bnRpbnVlTmV4dENodW5rVGltZXIuc3RhcnRPbmVTaG90KDApOworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgKytzZXNzaW9uLnByb2Nlc3NlZFRva2Vu
czsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpwdW1w
TGV4ZXIoU3luY2hyb25vdXNNb2RlIG1vZGUpCit7CisgICAgQVNTRVJUKCFtX3BhcnNlclN0b3Bw
ZWQpOworICAgIEFTU0VSVCghbV90cmVlQ29uc3RydWN0b3ItPmlzUGF1c2VkKCkpOworICAgIEFT
U0VSVCghbV9jb250aW51ZU5leHRDaHVua1RpbWVyLmlzQWN0aXZlKCkpOworCiAgICAgLy8gV2Ug
dGVsbCB0aGUgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCBhYm91dCBldmVyeSBwdW1wLCBldmVuIGlm
IHdlCiAgICAgLy8gZW5kIHVwIHB1bXBpbmcgbm90aGluZy4gIEl0IGNhbiBmaWx0ZXIgb3V0IGVt
cHR5IHB1bXBzIGl0c2VsZi4KICAgICB3aWxsUHVtcExleGVyKCk7CiAKLSAgICBBU1NFUlQoIW1f
cGFyc2VyU3RvcHBlZCk7Ci0gICAgQVNTRVJUKCFtX3RyZWVDb25zdHJ1Y3Rvci0+aXNQYXVzZWQo
KSk7Ci0gICAgd2hpbGUgKCFtX3BhcnNlclN0b3BwZWQgJiYgbV9sZXhlci0+bmV4dFRva2VuKG1f
aW5wdXQuY3VycmVudCgpLCBtX3Rva2VuKSkgeworICAgIFB1bXBTZXNzaW9uIHNlc3Npb247Cisg
ICAgLy8gRklYTUU6IFRoaXMgbG9vcCBib2R5IGhhcyBpcyBub3cgdG9vIGxvbmcgYW5kIG5lZWRz
IGNsZWFudXAuCisgICAgd2hpbGUgKG1vZGUgPT0gRm9yY2VTeW5jaHJvbm91cyB8fCBzaG91bGRD
b250aW51ZVBhcnNpbmcoc2Vzc2lvbikpIHsKKyAgICAgICAgaWYgKCFtX2xleGVyLT5uZXh0VG9r
ZW4obV9pbnB1dC5jdXJyZW50KCksIG1fdG9rZW4pKQorICAgICAgICAgICAgYnJlYWs7CisKICAg
ICAgICAgaWYgKFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXIgPSBzY3JpcHQoKSkK
ICAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPnNldEV2ZW50SGFuZGxlckxpbmVOdW1iZXIo
bGluZU51bWJlcigpICsgMSk7CiAKICAgICAgICAgbV90cmVlQ29uc3RydWN0b3ItPmNvbnN0cnVj
dFRyZWVGcm9tVG9rZW4obV90b2tlbik7CiAgICAgICAgIG1fdG9rZW4uY2xlYXIoKTsKIAorICAg
ICAgICAvLyBGSVhNRTogV2h5IGlzIHNldEV2ZW50SGFuZGxlckxpbmVOdW1iZXIoMCkgbmVjZXNz
YXJ5PwogICAgICAgICBpZiAoU2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29udHJvbGxlciA9IHNj
cmlwdCgpKQogICAgICAgICAgICAgc2NyaXB0Q29udHJvbGxlci0+c2V0RXZlbnRIYW5kbGVyTGlu
ZU51bWJlcigwKTsKIApAQCAtMTM5LDYgKzIyNywyOCBAQCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJz
ZXI6OnB1bXBMZXhlcigpCiAgICAgZGlkUHVtcExleGVyKCk7CiB9CiAKKy8vIEZJWE1FOiBUaGlz
IGJlbG9uZ3Mgb24gRG9jdW1lbnQuCitzdGF0aWMgYm9vbCBpc0xheW91dFRpbWVyQWN0aXZlKERv
Y3VtZW50KiBkb2MpCit7CisgICAgQVNTRVJUKGRvYyk7CisgICAgcmV0dXJuIGRvYy0+dmlldygp
ICYmIGRvYy0+dmlldygpLT5sYXlvdXRQZW5kaW5nKCkgJiYgIWRvYy0+bWluaW11bUxheW91dERl
bGF5KCk7Cit9CisKK3ZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6Y29udGludWVOZXh0Q2h1bmtU
aW1lckZpcmVkKFRpbWVyPEhUTUw1RG9jdW1lbnRQYXJzZXI+KiB0aW1lcikKK3sKKyAgICBBU1NF
UlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV9jb250aW51ZU5leHRDaHVua1RpbWVyKTsKKyAg
ICAvLyBGSVhNRTogVGhlIHRpbWVyIGNsYXNzIHNob3VsZCBoYW5kbGUgdGltZXIgcHJpb3JpdGll
cyBpbnN0ZWFkIG9mIHRoaXMgY29kZS4KKyAgICAvLyBJZiBhIGxheW91dCBpcyBzY2hlZHVsZWQs
IHdhaXQgYWdhaW4gdG8gbGV0IHRoZSBsYXlvdXQgdGltZXIgcnVuIGZpcnN0LgorICAgIGlmIChp
c0xheW91dFRpbWVyQWN0aXZlKG1fZG9jdW1lbnQpKSB7CisgICAgICAgIG1fY29udGludWVOZXh0
Q2h1bmtUaW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICAvLyBXZSBzaG91bGQgbmV2ZXIgYmUgaGVyZSB1bmxlc3Mgd2UgY2FuIHB1bXAgaW1tZWRpYXRl
bHkuICBDYWxsIHB1bXBMZXhlcigpCisgICAgLy8gZGlyZWN0bHkgc28gdGhhdCBBU1NFUlRTIHdp
bGwgZmlyZSBpZiB3ZSdyZSB3cm9uZy4KKyAgICBwdW1wTGV4ZXIoQWxsb3dZaWVsZCk7Cit9CisK
IHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6d2lsbFB1bXBMZXhlcigpCiB7CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKQEAgLTE1OCwxNCArMjY4LDE0IEBAIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNl
cjo6ZGlkUHVtcExleGVyKCkKICNlbmRpZgogfQogCi12b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6
OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sIGFwcGVuZERhdGEpCit2
b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291
cmNlLCBib29sIGlzRnJvbU5ldHdvcmspCiB7CiAgICAgaWYgKG1fcGFyc2VyU3RvcHBlZCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVs
SW5jcmVtZW50ZXIobV93cml0ZU5lc3RpbmdMZXZlbCk7CiAKLSAgICBpZiAoYXBwZW5kRGF0YSkg
eworICAgIGlmIChpc0Zyb21OZXR3b3JrKSB7CiAgICAgICAgIG1faW5wdXQuYXBwZW5kVG9FbmQo
c291cmNlKTsKICAgICAgICAgaWYgKG1fcHJlbG9hZFNjYW5uZXIpCiAgICAgICAgICAgICBtX3By
ZWxvYWRTY2FubmVyLT5hcHBlbmRUb0VuZChzb3VyY2UpOwpAQCAtMTc5LDE0ICsyODksMTggQEAg
dm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjp3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNv
dXJjZSwgYm9vbCBhcHBlbmREYXRhKQogICAgIH0gZWxzZQogICAgICAgICBtX2lucHV0Lmluc2Vy
dEF0Q3VycmVudEluc2VydGlvblBvaW50KHNvdXJjZSk7CiAKLSAgICBwdW1wTGV4ZXJJZlBvc3Np
YmxlKCk7CisgICAgcHVtcExleGVySWZQb3NzaWJsZShpc0Zyb21OZXR3b3JrID8gQWxsb3dZaWVs
ZCA6IEZvcmNlU3luY2hyb25vdXMpOwogICAgIGVuZElmRGVsYXllZCgpOwogfQogCiB2b2lkIEhU
TUw1RG9jdW1lbnRQYXJzZXI6OmVuZCgpCiB7Ci0gICAgcHVtcExleGVySWZQb3NzaWJsZSgpOwot
ICAgIC8vIEluZm9ybXMgdGhlIHRoZSByZXN0IG9mIFdlYkNvcmUgdGhhdCBwYXJzaW5nIGlzIHJl
YWxseSBmaW5pc2hlZC4KKyAgICBBU1NFUlQoIW1fY29udGludWVOZXh0Q2h1bmtUaW1lci5pc0Fj
dGl2ZSgpKTsKKyAgICAvLyBOT1RFOiBUaGlzIHB1bXAgc2hvdWxkIG9ubHkgZXZlciBlbWl0IGJ1
ZmZlcmVkIGNoYXJhY3RlciB0b2tlbnMsCisgICAgLy8gc28gRm9yY2VTeW5jaHJvbm91cyB2cy4g
QWxsb3dZaWVsZCBzaG91bGQgYmUgbWVhbmluZ2xlc3MuCisgICAgcHVtcExleGVySWZQb3NzaWJs
ZShGb3JjZVN5bmNocm9ub3VzKTsKKworICAgIC8vIEluZm9ybXMgdGhlIHRoZSByZXN0IG9mIFdl
YkNvcmUgdGhhdCBwYXJzaW5nIGlzIHJlYWxseSBmaW5pc2hlZCAoYW5kIGRlbGV0ZXMgdGhpcyku
CiAgICAgbV90cmVlQ29uc3RydWN0b3ItPmZpbmlzaGVkKCk7CiB9CiAKQEAgLTE5NSw3ICszMDks
NyBAQCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OmF0dGVtcHRUb0VuZCgpCiAgICAgLy8gZmlu
aXNoKCkgaW5kaWNhdGVzIHdlIHdpbGwgbm90IHJlY2VpdmUgYW55IG1vcmUgZGF0YS4gSWYgd2Ug
YXJlIHdhaXRpbmcgb24KICAgICAvLyBhbiBleHRlcm5hbCBzY3JpcHQgdG8gbG9hZCwgd2UgY2Fu
J3QgZmluaXNoIHBhcnNpbmcgcXVpdGUgeWV0LgogCi0gICAgaWYgKGluV3JpdGUoKSB8fCBpc1dh
aXRpbmdGb3JTY3JpcHRzKCkgfHwgZXhlY3V0aW5nU2NyaXB0KCkpIHsKKyAgICBpZiAoaW5Xcml0
ZSgpIHx8IGlzV2FpdGluZ0ZvclNjcmlwdHMoKSB8fCBleGVjdXRpbmdTY3JpcHQoKSB8fCBtX2Nv
bnRpbnVlTmV4dENodW5rVGltZXIuaXNBY3RpdmUoKSkgewogICAgICAgICBtX2VuZFdhc0RlbGF5
ZWQgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjA0LDcgKzMxOCw5IEBAIHZv
aWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6YXR0ZW1wdFRvRW5kKCkKIAogdm9pZCBIVE1MNURvY3Vt
ZW50UGFyc2VyOjplbmRJZkRlbGF5ZWQoKQogewotICAgIGlmICghbV9lbmRXYXNEZWxheWVkIHx8
IGlzV2FpdGluZ0ZvclNjcmlwdHMoKSB8fCBleGVjdXRpbmdTY3JpcHQoKSkKKyAgICAvLyBXZSBk
b24ndCBjaGVjayBpbldyaXRlKCkgaGVyZSBzaW5jZSBpbldyaXRlKCkgd2lsbCBiZSB0cnVlIGlm
IHRoaXMgd2FzCisgICAgLy8gY2FsbGVkIGZyb20gd3JpdGUoKS4KKyAgICBpZiAoIW1fZW5kV2Fz
RGVsYXllZCB8fCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgfHwgZXhlY3V0aW5nU2NyaXB0KCkgfHwg
bV9jb250aW51ZU5leHRDaHVua1RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIG1fZW5kV2FzRGVsYXllZCA9IGZhbHNlOwpAQCAtMjQ5LDcgKzM2NSw3IEBAIHZvaWQgSFRN
TDVEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZ0FmdGVyU2NyaXB0RXhlY3V0aW9uKCkKICAg
ICBBU1NFUlQoIW1fc2NyaXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlvbigpKTsKICAgICBBU1NF
UlQoIW1fdHJlZUNvbnN0cnVjdG9yLT5pc1BhdXNlZCgpKTsKIAotICAgIHB1bXBMZXhlcklmUG9z
c2libGUoKTsKKyAgICBwdW1wTGV4ZXJJZlBvc3NpYmxlKEFsbG93WWllbGQpOwogCiAgICAgLy8g
VGhlIGRvY3VtZW50IGFscmVhZHkgZmluaXNoZWQgcGFyc2luZyB3ZSB3ZXJlIGp1c3Qgd2FpdGlu
ZyBvbiBzY3JpcHRzIHdoZW4gZmluaXNoZWQoKSB3YXMgY2FsbGVkLgogICAgIGVuZElmRGVsYXll
ZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuaCBiL1dl
YkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmgKaW5kZXggMzY3MzJhYjAwZmFhMjI0MGZm
NzdiMDg5Y2EyYjllZDZjMGRiOTIzYy4uNDFhZWJjYjkyODIwYjcxZTQyMmIxZDJiMGMzMWRkODE1
YWEyM2UyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuaAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5oCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiSFRNTDVUb2tlbi5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgog
I2luY2x1ZGUgIkRvY3VtZW50UGFyc2VyLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUxLDEwICs1MiwxMiBA
QCBwdWJsaWM6CiAKICAgICAvLyBEb2N1bWVudFBhcnNlcgogICAgIHZpcnR1YWwgdm9pZCBiZWdp
bigpOwotICAgIHZpcnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBib29s
IGFwcGVuZERhdGEpOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJp
bmcmLCBib29sIGlzRnJvbU5ldHdvcmspOwogICAgIHZpcnR1YWwgdm9pZCBlbmQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgZmluaXNoKCk7CiAgICAgdmlydHVhbCBpbnQgZXhlY3V0aW5nU2NyaXB0KCkg
Y29uc3Q7CisgICAgdmlydHVhbCBib29sIHByb2Nlc3NpbmdEYXRhKCkgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIHN0b3BQYXJzaW5nKCk7CiAgICAgdmlydHVhbCBib29sIGlzV2FpdGluZ0ZvclNj
cmlwdHMoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9y
U3R5bGVzaGVldHMoKTsKICAgICB2aXJ0dWFsIGludCBsaW5lTnVtYmVyKCkgY29uc3Q7CkBAIC0x
NjUsOCArMTY4LDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aWxsUHVtcExleGVyKCk7CiAgICAg
dm9pZCBkaWRQdW1wTGV4ZXIoKTsKIAotICAgIHZvaWQgcHVtcExleGVyKCk7Ci0gICAgdm9pZCBw
dW1wTGV4ZXJJZlBvc3NpYmxlKCk7CisgICAgc3RydWN0IFB1bXBTZXNzaW9uOworICAgIGlubGlu
ZSBib29sIHNob3VsZENvbnRpbnVlUGFyc2luZyhQdW1wU2Vzc2lvbiYpOworCisgICAgZW51bSBT
eW5jaHJvbm91c01vZGUgeworICAgICAgICBBbGxvd1lpZWxkLAorICAgICAgICBGb3JjZVN5bmNo
cm9ub3VzLAorICAgIH07CisgICAgdm9pZCBwdW1wTGV4ZXIoU3luY2hyb25vdXNNb2RlKTsKKyAg
ICB2b2lkIHB1bXBMZXhlcklmUG9zc2libGUoU3luY2hyb25vdXNNb2RlKTsKKyAgICB2b2lkIGNv
bnRpbnVlTmV4dENodW5rVGltZXJGaXJlZChUaW1lcjxIVE1MNURvY3VtZW50UGFyc2VyPiopOwog
ICAgIHZvaWQgcmVzdW1lUGFyc2luZ0FmdGVyU2NyaXB0RXhlY3V0aW9uKCk7CiAKICAgICB2b2lk
IGF0dGVtcHRUb0VuZCgpOwpAQCAtMTg3LDYgKzE5OCwxMCBAQCBwcml2YXRlOgogICAgIE93blB0
cjxIVE1MNVByZWxvYWRTY2FubmVyPiBtX3ByZWxvYWRTY2FubmVyOwogICAgIGJvb2wgbV9lbmRX
YXNEZWxheWVkOwogICAgIGludCBtX3dyaXRlTmVzdGluZ0xldmVsOworCisgICAgZG91YmxlIG1f
cGFyc2VyVGltZUxpbWl0OworICAgIGludCBtX3BhcnNlckNodW5rU2l6ZTsKKyAgICBUaW1lcjxI
VE1MNURvY3VtZW50UGFyc2VyPiBtX2NvbnRpbnVlTmV4dENodW5rVGltZXI7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1dlYkNvcmUv
aHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDI0ZDY5ODU0YzlkZTdiY2E5MDk5OWRl
YzNiZWRmYjU2NGNlMDZhNWIuLmM1ZTYyYjY3MDgwMWJjNDEyYjU1MGU3MjRkMmY3ZGUyZGQxZjA0
MDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC02NiwxNiArNjYsMTYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi0vLyBU
aGlzIHZhbHVlIGlzIHVzZWQgdG8gZGVmaW5lIGhvdyBtYW55IGNoYXJhY3RlcnMgdGhlIHBhcnNl
ciB3aWxsIHByb2Nlc3MgYmVmb3JlCi0vLyB5ZWlsZGluZyBjb250cm9sLgotLy8gVG8gaW5jcmVh
c2UgcmVzcG9uc2l2bmVzcyByZWR1Y2UgdGhlIHBhcnNlciBjaHVuayBzaXplLgorLy8gVGhpcyB2
YWx1ZSBpcyB1c2VkIHRvIGRlZmluZSBob3cgbWFueSBsb29wcyAoYXBwcm94aW1hdGVseSB0b2tl
bnMpCisvLyB0aGUgcGFyc2VyIHdpbGwgbWFrZSBiZWZvcmUgY2hlY2tpbmcgaWYgaXQgc2hvdWxk
IHlpZWxkLgorLy8gVG8gaW5jcmVhc2UgcmVzcG9uc2l2ZW5lc3MgcmVkdWNlIGJvdGggQ2h1bmtT
aXplIGFuZCBUaW1lRGVsYXkgY29udGFudHMuCiBzdGF0aWMgY29uc3QgaW50IGRlZmF1bHRUb2tl
bml6ZXJDaHVua1NpemUgPSA0MDk2OwogCiAvLyBGSVhNRTogV2Ugd291bGQgbGlrZSB0aGlzIGNv
bnN0YW50IHRvIGJlIDIwMG1zLgogLy8gWWllbGRpbmcgbW9yZSBhZ2dyZXNzaXZlbHkgcmVzdWx0
cyBpbiBpbmNyZWFzZWQgcmVzcG9uc2l2ZW5lc3MgYW5kIGJldHRlciBpbmNyZW1lbnRhbCByZW5k
ZXJpbmcuCiAvLyBJdCBzbG93cyBkb3duIG92ZXJhbGwgcGFnZS1sb2FkIG9uIHNsb3dlciBtYWNo
aW5lcywgdGhvdWdoLCBzbyBmb3Igbm93IHdlIHNldCBhIHZhbHVlIG9mIDUwMC4KLS8vIEZvciBz
bWFsbGVyIGNodW5rcyAoYWJvdmUpIGRlY3JlYXNlIHRoZSB2YWx1ZSBvZiBUaW1lckRlbGF5IGFz
IHRoZSB0aGUgcGFyc2VyIHNob3VsZCBub3QKLS8vIHlpZWxkIGZvciBhcyBsb25nIGEgcGVyaW9k
IG90aGVyd2lzZSBpdCB3aWxsIHRha2Ugd2F5IHRvIGxvbmcgdG8gbG9hZCBhIHBhZ2UuCisvLyBU
aW1lRGVsYXkgY29udHJvbHMgdGhlIG1heGltdW0gdGltZSB0aGUgcGFyc2VyIHdpbGwgcnVuIGJl
Zm9yZSB5aWVsZGluZy4KKy8vIElubGluZSBzY3JpcHQgZXhlY3V0aW9uIGNhbiBjYXVzZSB0aGUg
cGFyc2VyIHRvIGV4Y2VkZSB0aGlzIGxpbWl0Lgogc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0
VG9rZW5pemVyVGltZURlbGF5ID0gMC41MDA7CiAKIHN0YXRpYyBjb25zdCBjaGFyIGNvbW1lbnRT
dGFydCBbXSA9ICI8IS0tIjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>