<?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>35949</bug_id>
          
          <creation_ts>2010-03-09 16:29:01 -0800</creation_ts>
          <short_desc>Hover states not updated when overflow section scrolls under stationary mouse pointer</short_desc>
          <delta_ts>2010-03-12 10:09:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gdk</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>197836</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-03-09 16:29:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/7694674&gt;

When an overflow: scroll; section is scrolled and different elements move under the mosue cursor, hover states don’t update to reflect the change, tool tips don’t update, and mouseover/mouseout events aren’t fired.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197901</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-03-09 23:44:47 -0800</bug_when>
    <thetext>I have a patch for this but I haven’t finished the regression test yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198860</commentid>
    <comment_count>2</comment_count>
      <attachid>50563</attachid>
    <who name="">mitz</who>
    <bug_when>2010-03-11 17:32:20 -0800</bug_when>
    <thetext>Created attachment 50563
Dispatch a fake mouse move event shrotly after scrolling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198874</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-11 17:58:36 -0800</bug_when>
    <thetext>Attachment 50563 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/642040</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198912</commentid>
    <comment_count>4</comment_count>
      <attachid>50574</attachid>
    <who name="">mitz</who>
    <bug_when>2010-03-11 19:32:32 -0800</bug_when>
    <thetext>Created attachment 50574
Dispatch a fake mouse move event shrotly after scrolling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198921</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-11 20:29:40 -0800</bug_when>
    <thetext>Attachment 50574 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/643033</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198933</commentid>
    <comment_count>6</comment_count>
      <attachid>50576</attachid>
    <who name="">mitz</who>
    <bug_when>2010-03-11 22:30:33 -0800</bug_when>
    <thetext>Created attachment 50576
Dispatch a fake mouse move event shrotly after scrolling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199047</commentid>
    <comment_count>7</comment_count>
      <attachid>50576</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-12 07:42:23 -0800</bug_when>
    <thetext>Comment on attachment 50576
Dispatch a fake mouse move event shrotly after scrolling

&gt; +void EventHandler::cancelFakeMouseMoveEvent()
&gt; +{
&gt; +    if (!m_fakeMouseMoveEventTimer.isActive())
&gt; +        return;
&gt; +
&gt; +    m_fakeMouseMoveEventTimer.stop();
&gt; +}

I don&apos;t think you need to check isActive before calling stop. It&apos;s safe to call it even if the timer is not active.

&gt; +void EventHandler::fakeMouseMoveEventTimerFired(Timer&lt;EventHandler&gt;* timer)
&gt; +{
&gt; +    ASSERT_ARG(timer, timer == &amp;m_fakeMouseMoveEventTimer);

You need to use ASSERT_UNUSED here because &quot;timer&quot; is otherwise unused in this function. I think this is why the Mac EWS build indicates a failure.

I&apos;m a little sad that the test requires a timeout and can&apos;t run instantaneously. Could it instead be based on the timing of the first mouse move event?

r=me, but please fix the Mac build issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199089</commentid>
    <comment_count>8</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-03-12 09:07:28 -0800</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/projects/webkit/changeset/55909&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199106</commentid>
    <comment_count>9</comment_count>
    <who name="Garret Kelly">gdk</who>
    <bug_when>2010-03-12 09:58:51 -0800</bug_when>
    <thetext>This change broke the Chromium Win Release build: http://build.webkit.org/builders/Chromium%20Win%20Release/builds/3286/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199112</commentid>
    <comment_count>10</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-03-12 10:09:29 -0800</bug_when>
    <thetext>Build fix in &lt;http://trac.webkit.org/projects/webkit/changeset/55911&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50563</attachid>
            <date>2010-03-11 17:32:20 -0800</date>
            <delta_ts>2010-03-11 19:32:32 -0800</delta_ts>
            <desc>Dispatch a fake mouse move event shrotly after scrolling</desc>
            <filename>35949_r1.diff</filename>
            <type>text/plain</type>
            <size>15888</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTg2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMTAtMDMtMTEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNzY5NDY3ND4gSG92ZXIgc3RhdGVzIG5vdCB1cGRhdGVkIHdoZW4gb3ZlcmZs
b3cgc2VjdGlvbiBzY3JvbGxzIHVuZGVyIHN0YXRpb25hcnkgbW91c2UgcG9pbnRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU5NDkKKworICAgICAg
ICBUZXN0OiBmYXN0L2V2ZW50cy9vdmVyZmxvdy1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLmh0bWwK
KworICAgICAgICBTb29uIGFmdGVyIGFuIG92ZXJmbG93IHNlY3Rpb24gc2Nyb2xscyB1bmRlciB0
aGUgbW91c2UgcG9pbnRlciwgZGlzcGF0Y2gKKyAgICAgICAgYSBmYWtlIG1vdXNlIG1vdmUgZXZl
bnQuIFRoaXMgaXMgc2ltaWxhciB0byBob3cgZnJhbWUgc2Nyb2xsaW5nIGlzIGhhbmRsZWQKKyAg
ICAgICAgaW4gV2ViS2l0LCBhbmQgaGFzIHRoZSBlZmZlY3Qgb2YgdXBkYXRpbmcgaG92ZXIgc3Rh
dGUsIGRpc3BhdGNoaW5nIERPTSBtb3VzZQorICAgICAgICBldmVudHMsIGFuZCB1cGRhdGluZyB0
aGUgdG9vbCB0aXAuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcik6IEluaXRpYWxpemUgbV9mYWtl
TW91c2VNb3ZlRXZlbnRUaW1lci4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6fkV2
ZW50SGFuZGxlcik6IEFzc2VydCB0aGF0IHRoZSB0aW1lciBpcyBub3QgYWN0aXZlLgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjbGVhcik6IFN0b3AgdGhlIHRpbWVyLgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQpOiBDYW5jZWwg
cGVuZGluZyBmYWtlIG1vdXNlCisgICAgICAgIG1vdmUgZXZlbnRzLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZU1vdmVFdmVudCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1
YWQpOiBJZiB0aGUgbW91c2UKKyAgICAgICAgaXMgaW4gdGhlIHBhc3NlZC1pbiBxdWFkLCBlbnN1
cmUgdGhhdCBhIGZha2UgbW91c2UgbW92ZSBldmVudCBpcyBzY2hlZHVsZWQKKyAgICAgICAgdG8g
ZmlyZSBzb29uLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjYW5jZWxGYWtlTW91
c2VNb3ZlRXZlbnQpOiBEb2VzIHdoYXQgdGhlIG5hbWUgc2F5cy4KKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCk6IENvbnN0cnVjdHMg
YQorICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgd2l0aCB0aGUgY3VycmVudCBtb3VzZSBsb2Nh
dGlvbiwgbW9kaWZpZXIga2V5IHN0YXRlIGFuZAorICAgICAgICB0aW1lIHN0YW1wIGFuZCBjYWxs
cyBtb3VzZU1vdmVkKCkuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaDogRGVjbGFyZWQgZ2V0Q3VycmVudE1v
ZGlmaWVyU3RhdGUoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL0tleUV2ZW50QW5kcm9p
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJl
bnRNb2RpZmllclN0YXRlKTogU3R1YmJlZCBvdXQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0tl
eUV2ZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6
Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
S2V5RXZlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2lu
L0tleUV2ZW50V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVu
dDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUpOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRv
T2Zmc2V0KTogQ2FsbAorICAgICAgICBFdmVudEhhbmRsZXI6OmRpc3BhdGNoRmFrZU1vdXNlTW92
ZUV2ZW50U29vbkluUXVhZCgpLiBNb3ZlZCB0aGluZ3MgYXJvdW5kCisgICAgICAgIGEgbGl0dGxl
IHRvIGF2b2lkIGNvbXB1dGluZyB0aGUgcmVwYWludCByZWN0IHR3aWNlLgorCiAyMDEwLTAzLTEx
ICBMZWFuZHJvIFBlcmVpcmEgIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KSW5kZXg6IFdlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCShyZXZp
c2lvbiA1NTg1OSkKKysrIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDYsNiArMTA2LDggQEAgdXNpbmcgbmFtZXNwYWNlIFNWR05hbWVzOwogLy8gV2hl
biB0aGUgYXV0b3Njcm9sbCBvciB0aGUgcGFuU2Nyb2xsIGlzIHRyaWdnZXJlZCB3aGVuIGRvIHRo
ZSBzY3JvbGwgZXZlcnkgMC4wNXMgdG8gbWFrZSBpdCBzbW9vdGgKIGNvbnN0IGRvdWJsZSBhdXRv
c2Nyb2xsSW50ZXJ2YWwgPSAwLjA1OwogCitjb25zdCBkb3VibGUgZmFrZU1vdXNlTW92ZUludGVy
dmFsID0gMC4xOworCiBzdGF0aWMgRnJhbWUqIHN1YmZyYW1lRm9ySGl0VGVzdFJlc3VsdChjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBz
Y3JvbGxOb2RlKGZsb2F0IGRlbHRhLCBXaGVlbEV2ZW50OjpHcmFudWxhcml0eSBncmFudWxhcml0
eSwgU2Nyb2xsRGlyZWN0aW9uIHBvc2l0aXZlRGlyZWN0aW9uLCBTY3JvbGxEaXJlY3Rpb24gbmVn
YXRpdmVEaXJlY3Rpb24sIE5vZGUqIG5vZGUsIE5vZGUqKiBzdG9wTm9kZSkKQEAgLTE2OCw2ICsx
NzAsNyBAQCBFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcihGcmFtZSogZnJhbWUpCiAgICAgLCBt
X2F1dG9zY3JvbGxJblByb2dyZXNzKGZhbHNlKQogICAgICwgbV9tb3VzZURvd25NYXlTdGFydEF1
dG9zY3JvbGwoZmFsc2UpCiAgICAgLCBtX21vdXNlRG93bldhc0luU3ViZnJhbWUoZmFsc2UpCisg
ICAgLCBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyKHRoaXMsICZFdmVudEhhbmRsZXI6OmZha2VN
b3VzZU1vdmVFdmVudFRpbWVyRmlyZWQpCiAjaWYgRU5BQkxFKFNWRykKICAgICAsIG1fc3ZnUGFu
KGZhbHNlKQogI2VuZGlmCkBAIC0xODcsNiArMTkwLDcgQEAgRXZlbnRIYW5kbGVyOjpFdmVudEhh
bmRsZXIoRnJhbWUqIGZyYW1lKQogCiBFdmVudEhhbmRsZXI6On5FdmVudEhhbmRsZXIoKQogewor
ICAgIEFTU0VSVCghbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lci5pc0FjdGl2ZSgpKTsKIH0KICAg
ICAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpAQCAtMjAwLDYgKzIwNCw3IEBAIEV2ZW50SGFu
ZGxlcjo6RXZlbnRIYW5kbGVyRHJhZ1N0YXRlJiBFdmUKIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVh
cigpCiB7CiAgICAgbV9ob3ZlclRpbWVyLnN0b3AoKTsKKyAgICBtX2Zha2VNb3VzZU1vdmVFdmVu
dFRpbWVyLnN0b3AoKTsKICAgICBtX3Jlc2l6ZUxheWVyID0gMDsKICAgICBtX25vZGVVbmRlck1v
dXNlID0gMDsKICAgICBtX2xhc3ROb2RlVW5kZXJNb3VzZSA9IDA7CkBAIC0zNzUsNiArMzgwLDgg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudAogICAgIGRyYWdTdGF0
ZSgpLm1fZHJhZ1NyYyA9IDA7CiAjZW5kaWYKIAorICAgIGNhbmNlbEZha2VNb3VzZU1vdmVFdmVu
dCgpOworCiAgICAgaWYgKFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcgPSBtX2ZyYW1lLT52aWV3KCkp
IHsKICAgICAgICAgaWYgKHNjcm9sbFZpZXctPmlzUG9pbnRJblNjcm9sbGJhckNvcm5lcihldmVu
dC5ldmVudCgpLnBvcygpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTExNTAsNiAr
MTE1Nyw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQKIHsKICAg
ICBSZWZQdHI8RnJhbWVWaWV3PiBwcm90ZWN0b3IobV9mcmFtZS0+dmlldygpKTsKIAorICAgIGNh
bmNlbEZha2VNb3VzZU1vdmVFdmVudCgpOwogICAgIG1fbW91c2VQcmVzc2VkID0gdHJ1ZTsKICAg
ICBtX2NhcHR1cmVzRHJhZ2dpbmcgPSB0cnVlOwogICAgIG1fY3VycmVudE1vdXNlUG9zaXRpb24g
PSBtb3VzZUV2ZW50LnBvcygpOwpAQCAtMTM0MSw2ICsxMzQ5LDggQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KAogICAgIGlmIChtX2hvdmVyVGltZXIuaXNBY3RpdmUo
KSkKICAgICAgICAgbV9ob3ZlclRpbWVyLnN0b3AoKTsKIAorICAgIGNhbmNlbEZha2VNb3VzZU1v
dmVFdmVudCgpOworCiAjaWYgRU5BQkxFKFNWRykKICAgICBpZiAobV9zdmdQYW4pIHsKICAgICAg
ICAgc3RhdGljX2Nhc3Q8U1ZHRG9jdW1lbnQqPihtX2ZyYW1lLT5kb2N1bWVudCgpKS0+dXBkYXRl
UGFuKG1fY3VycmVudE1vdXNlUG9zaXRpb24pOwpAQCAtMTk0Myw2ICsxOTUzLDQ2IEBAIHZvaWQg
RXZlbnRIYW5kbGVyOjpzY2hlZHVsZUhvdmVyU3RhdGVVcGQKICAgICAgICAgbV9ob3ZlclRpbWVy
LnN0YXJ0T25lU2hvdCgwKTsKIH0KIAordm9pZCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoRmFrZU1v
dXNlTW92ZUV2ZW50U29vbkluUXVhZChjb25zdCBGbG9hdFF1YWQmIHF1YWQpCit7CisgICAgRnJh
bWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpOworICAgIGlmICghdmlldykKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKG1fbW91c2VQcmVzc2VkIHx8ICFxdWFkLmNvbnRhaW5zUG9pbnQo
dmlldy0+d2luZG93VG9Db250ZW50cyhtX2N1cnJlbnRNb3VzZVBvc2l0aW9uKSkpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmICghbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lci5pc0FjdGl2ZSgp
KQorICAgICAgICBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyLnN0YXJ0T25lU2hvdChmYWtlTW91
c2VNb3ZlSW50ZXJ2YWwpOworfQorCit2b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRmFrZU1vdXNl
TW92ZUV2ZW50KCkKK3sKKyAgICBpZiAoIW1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuaXNBY3Rp
dmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lci5z
dG9wKCk7Cit9CisKK3ZvaWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZp
cmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4qIHRpbWVyKQoreworICAgIEFTU0VSVF9BUkcodGltZXIs
IHRpbWVyID09ICZtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyKTsKKyAgICBBU1NFUlQoIW1fbW91
c2VQcmVzc2VkKTsKKworICAgIEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKTsKKyAg
ICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgc2hpZnRLZXk7CisgICAg
Ym9vbCBjdHJsS2V5OworICAgIGJvb2wgYWx0S2V5OworICAgIGJvb2wgbWV0YUtleTsKKyAgICBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKHNoaWZ0S2V5LCBj
dHJsS2V5LCBhbHRLZXksIG1ldGFLZXkpOworICAgIEludFBvaW50IGdsb2JhbFBvaW50ID0gdmll
dy0+Y29udGVudHNUb1NjcmVlbihJbnRSZWN0KHZpZXctPndpbmRvd1RvQ29udGVudHMobV9jdXJy
ZW50TW91c2VQb3NpdGlvbiksIEludFNpemUoKSkpLmxvY2F0aW9uKCk7CisgICAgUGxhdGZvcm1N
b3VzZUV2ZW50IGZha2VNb3VzZU1vdmVFdmVudChtX2N1cnJlbnRNb3VzZVBvc2l0aW9uLCBnbG9i
YWxQb2ludCwgTm9CdXR0b24sIE1vdXNlRXZlbnRNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXks
IGFsdEtleSwgbWV0YUtleSwgY3VycmVudFRpbWUoKSk7CisgICAgbW91c2VNb3ZlZChmYWtlTW91
c2VNb3ZlRXZlbnQpOworfQorCiAvLyBXaGV0aGVyIG9yIG5vdCBhIG1vdXNlIGRvd24gY2FuIGJl
Z2luIHRoZSBjcmVhdGlvbiBvZiBhIHNlbGVjdGlvbi4gIEZpcmVzIHRoZSBzZWxlY3RTdGFydCBl
dmVudC4KIGJvb2wgRXZlbnRIYW5kbGVyOjpjYW5Nb3VzZURvd25TdGFydFNlbGVjdChOb2RlKiBu
b2RlKQogewpJbmRleDogV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAkocmV2aXNpb24gNTU4NTkpCisrKyBXZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDcgQEAgY2xh
c3MgQ3Vyc29yOwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBFdmVudFRhcmdldDsKIGNsYXNzIEZsb2F0
UG9pbnQ7CitjbGFzcyBGbG9hdFF1YWQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhpdFRlc3RSZXF1
ZXN0OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKQEAgLTEwMiw2ICsxMDMsOCBAQCBwdWJsaWM6CiAg
ICAgUmVuZGVyT2JqZWN0KiBhdXRvc2Nyb2xsUmVuZGVyZXIoKSBjb25zdDsKICAgICB2b2lkIHVw
ZGF0ZUF1dG9zY3JvbGxSZW5kZXJlcigpOwogCisgICAgdm9pZCBkaXNwYXRjaEZha2VNb3VzZU1v
dmVFdmVudFNvb25JblF1YWQoY29uc3QgRmxvYXRRdWFkJik7CisKICAgICBIaXRUZXN0UmVzdWx0
IGhpdFRlc3RSZXN1bHRBdFBvaW50KGNvbnN0IEludFBvaW50JiwgYm9vbCBhbGxvd1NoYWRvd0Nv
bnRlbnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcgPSBmYWxzZSwgSGl0VGVzdFNjcm9sbGJhcnMgc2Ny
b2xsYmFycyA9IERvbnRIaXRUZXN0U2Nyb2xsYmFycyk7CiAKICAgICBib29sIG1vdXNlUHJlc3Nl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VQcmVzc2VkOyB9CkBAIC0yNjYsNiArMjY5LDkgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNldEF1dG9zY3JvbGxSZW5kZXJlcihSZW5kZXJPYmplY3QqKTsK
ICAgICB2b2lkIGF1dG9zY3JvbGxUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4qKTsKIAor
ICAgIHZvaWQgZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZChUaW1lcjxFdmVudEhhbmRsZXI+
Kik7CisgICAgdm9pZCBjYW5jZWxGYWtlTW91c2VNb3ZlRXZlbnQoKTsKKwogICAgIHZvaWQgaW52
YWxpZGF0ZUNsaWNrKCk7CiAKICAgICBOb2RlKiBub2RlVW5kZXJNb3VzZSgpIGNvbnN0OwpAQCAt
MzczLDYgKzM3OSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX21vdXNlRG93bk1heVN0YXJ0QXV0
b3Njcm9sbDsKICAgICBib29sIG1fbW91c2VEb3duV2FzSW5TdWJmcmFtZTsKIAorICAgIFRpbWVy
PEV2ZW50SGFuZGxlcj4gbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lcjsKKwogI2lmIEVOQUJMRShT
VkcpCiAgICAgYm9vbCBtX3N2Z1BhbjsKICAgICBSZWZQdHI8U1ZHRWxlbWVudEluc3RhbmNlPiBt
X2luc3RhbmNlVW5kZXJNb3VzZTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJv
YXJkRXZlbnQuaAkocmV2aXNpb24gNTU4NTkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
S2V5Ym9hcmRFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNiArMTU1LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGJvb2wgY3VycmVudENh
cHNMb2NrU3RhdGUoKTsKKyAgICAgICAgc3RhdGljIHZvaWQgZ2V0Q3VycmVudE1vZGlmaWVyU3Rh
dGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJvb2wmIGFsdEtleSwgYm9vbCYgbWV0
YUtleSk7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dChOU0V2ZW50Kik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvS2V5RXZlbnRBbmRy
b2lkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvS2V5RXZlbnRB
bmRyb2lkLmNwcAkocmV2aXNpb24gNTU4NTkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQv
S2V5RXZlbnRBbmRyb2lkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUxLDYgKzI1MSwxNSBAQCBi
b29sIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3Rh
dGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJvb2wmIGFsdEtleSwgYm9vbCYgbWV0
YUtleSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHNoaWZ0S2V5ID0gZmFsc2U7Cisg
ICAgY3RybEtleSA9IGZhbHNlOworICAgIGFsdEtleSA9IGZhbHNlOworICAgIG1ldGFLZXkgPSBm
YWxzZTsKK30KKwogdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURv
d25FdmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSkKIHsKICAg
ICAvLyBDb3BpZWQgd2l0aCBtb2RpZmljYXRpb24gZnJvbSB0aGUgbWFjIHBvcnQuCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2d0ay9LZXlFdmVudEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvS2V5RXZlbnRHdGsuY3BwCShyZXZpc2lvbiA1NTg1OSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3RrL0tleUV2ZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTg2LDYg
KzU4NiwxNSBAQCBib29sIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVu
dE1vZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJvb2wmIGFsdEtl
eSwgYm9vbCYgbWV0YUtleSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHNoaWZ0S2V5
ID0gZmFsc2U7CisgICAgY3RybEtleSA9IGZhbHNlOworICAgIGFsdEtleSA9IGZhbHNlOworICAg
IG1ldGFLZXkgPSBmYWxzZTsKK30KKwogR2RrRXZlbnRLZXkqIFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dDo6Z2RrRXZlbnRLZXkoKSBjb25zdAogewogICAgIHJldHVybiBtX2dka0V2ZW50S2V5OwpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0JKHJldmlzaW9uIDU1ODU5KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNywg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTg3Niw0ICs4NzYsMTMgQEAgYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQ6OmN1cnJlbnRDYXBzTAogICAgIHJldHVybiBHZXRDdXJyZW50S2V5TW9kaWZpZXJzKCkgJiBh
bHBoYUxvY2s7CiB9CiAKK3ZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9k
aWZpZXJTdGF0ZShib29sJiBzaGlmdEtleSwgYm9vbCYgY3RybEtleSwgYm9vbCYgYWx0S2V5LCBi
b29sJiBtZXRhS2V5KQoreworICAgIFVJbnQzMiBjdXJyZW50TW9kaWZpZXJzID0gR2V0Q3VycmVu
dEtleU1vZGlmaWVycygpOworICAgIHNoaWZ0S2V5ID0gY3VycmVudE1vZGlmaWVycyAmIDo6c2hp
ZnRLZXk7CisgICAgY3RybEtleSA9IGN1cnJlbnRNb2RpZmllcnMgJiA6OmNvbnRyb2xLZXk7Cisg
ICAgYWx0S2V5ID0gY3VycmVudE1vZGlmaWVycyAmIDo6b3B0aW9uS2V5OworICAgIG1ldGFLZXkg
PSBjdXJyZW50TW9kaWZpZXJzICYgOjpjbWRLZXk7Cit9CisKIH0KSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vd2luL0tleUV2ZW50V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L3dpbi9LZXlFdmVudFdpbi5jcHAJKHJldmlzaW9uIDU1ODU5KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS93aW4vS2V5RXZlbnRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMTQsNCAr
MjE0LDEyIEBAIGJvb2wgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0wKICAgICAg
cmV0dXJuIEdldEtleVN0YXRlKFZLX0NBUElUQUwpICYgMTsKIH0KIAordm9pZCBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29s
JiBjdHJsS2V5LCBib29sJiBhbHRLZXksIGJvb2wmIG1ldGFLZXkpCit7CisgICAgc2hpZnRLZXkg
PSBHZXRLZXlTdGF0ZShWS19TSElGVCkgJiBISUdIX0JJVF9NQVNLX1NIT1JUOworICAgIGN0cmxL
ZXkgPSBHZXRLZXlTdGF0ZShWS19DT05UUk9MKSAmIEhJR0hfQklUX01BU0tfU0hPUlQ7CisgICAg
YWx0S2V5ID0gR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JUOworICAg
IG1ldGFLZXkgPSBmYWxzZTsKK30KKwogfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cAkocmV2aXNpb24gNTU4NTkpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2
LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUG9ydGlvbnMgYXJlIENvcHlyaWdodCAoQykgMTk5OCBOZXRzY2Fw
ZSBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbi4KICAqCkBAIC0xMjM1LDE1ICsxMjM1LDI0IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KGludCB4LCAKICAgICAgICAgdmlldy0+
dXBkYXRlV2lkZ2V0UG9zaXRpb25zKCk7CiAgICAgfQogCi0gICAgLy8gVGhlIGNhcmV0IHJlY3Qg
bmVlZHMgdG8gYmUgaW52YWxpZGF0ZWQgYWZ0ZXIgc2Nyb2xsaW5nCisgICAgUmVuZGVyQm94TW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIgPSByZW5kZXJlcigpLT5jb250YWluZXJGb3JSZXBh
aW50KCk7CisgICAgSW50UmVjdCByZWN0Rm9yUmVwYWludCA9IHJlbmRlcmVyKCktPmNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIpOworCiAgICAgRnJhbWUqIGZy
YW1lID0gcmVuZGVyZXIoKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKLSAgICBpZiAoZnJhbWUpCisg
ICAgaWYgKGZyYW1lKSB7CisgICAgICAgIC8vIFRoZSBjYXJldCByZWN0IG5lZWRzIHRvIGJlIGlu
dmFsaWRhdGVkIGFmdGVyIHNjcm9sbGluZwogICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPnNl
dE5lZWRzTGF5b3V0KCk7CiAKKyAgICAgICAgRmxvYXRRdWFkIHF1YWRGb3JGYWtlTW91c2VNb3Zl
RXZlbnQgPSBGbG9hdFF1YWQocmVjdEZvclJlcGFpbnQpOworICAgICAgICBpZiAocmVwYWludENv
bnRhaW5lcikKKyAgICAgICAgICAgIHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQgPSByZXBhaW50
Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQp
OworICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2
ZW50U29vbkluUXVhZChxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50KTsKKyAgICB9CisKICAgICAv
LyBKdXN0IHNjaGVkdWxlIGEgZnVsbCByZXBhaW50IG9mIG91ciBvYmplY3QuCi0gICAgaWYgKHJl
cGFpbnQpCi0gICAgICAgIHJlbmRlcmVyKCktPnJlcGFpbnQoKTsKLSAgICAKKyAgICBpZiAodmll
dyAmJiByZXBhaW50KQorICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50VXNpbmdDb250YWluZXIo
cmVwYWludENvbnRhaW5lciwgcmVjdEZvclJlcGFpbnQpOworCiAgICAgaWYgKHVwZGF0ZVNjcm9s
bGJhcnMpIHsKICAgICAgICAgaWYgKG1faEJhcikKICAgICAgICAgICAgIG1faEJhci0+c2V0VmFs
dWUoc2Nyb2xsWE9mZnNldCgpKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1ODY5KQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDMt
MTEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzY5NDY3ND4gSG92
ZXIgc3RhdGVzIG5vdCB1cGRhdGVkIHdoZW4gb3ZlcmZsb3cgc2VjdGlvbiBzY3JvbGxzIHVuZGVy
IHN0YXRpb25hcnkgbW91c2UgcG9pbnRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzU5NDkKKworICAgICAgICAqIGZhc3QvZXZlbnRzL292ZXJmbG93
LXNjcm9sbC1mYWtlLW1vdXNlLW1vdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9vdmVyZmxvdy1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy5odG1s
OgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2Jhc2ljLXNpbmdsZS10b3VjaC1ldmVudHMu
aHRtbDoKKwogMjAxMC0wMy0xMSAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gQWRkZWQgdGhlIHRlc3QgdGhhdCB0aW1lIG91dCBvbiBUaWdlciBi
b3QgdG8gbWFjLXRpZ2VyL1NraXBwZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9v
dmVyZmxvdy1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vdmVyZmxvdy1zY3JvbGwtZmFrZS1tb3VzZS1tb3Zl
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL292
ZXJmbG93LXNjcm9sbC1mYWtlLW1vdXNlLW1vdmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxIEBACitQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vdmVyZmxv
dy1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvb3ZlcmZsb3ctc2Nyb2xsLWZha2UtbW91c2UtbW92ZS5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvb3ZlcmZsb3ctc2Nyb2xsLWZha2UtbW91
c2UtbW92ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMzIEBACis8ZGl2IGlkPSJ0YXJn
ZXQiIHN0eWxlPSJvdmVyZmxvdzogYXV0bzsgaGVpZ2h0OiAyMDBweDsgd2lkdGg6IDIwMHB4OyI+
CisgICAgPGRpdiBvbm1vdXNlb3Zlcj0ibW91c2VPdmVyKGV2ZW50KSIgc3R5bGU9Im1hcmdpbjog
MzAwcHggMDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBi
bHVlOyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+VGVzdCBkaWQgbm90IHJ1bjwv
ZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgcGFzc2VkID0gZmFsc2U7CisKKyAgICBmdW5jdGlvbiBt
b3VzZU92ZXIoZXZlbnQpCisgICAgeworICAgICAgICBwYXNzZWQgPSB0cnVlOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGZpbmlzaCgpCisgICAgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0gcGFzc2VkID8gIlBBU1MiIDogIkZBSUwiOworICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKworICAgICAgICAvLyBXZWJLaXQgc2NoZWR1bGVzIGEgZmFrZSBtb3VzZSBtb3Zl
IGV2ZW50IGFzIHBhcnQgb2YgaW5zdGFsbGluZyB0aGUgV2ViVmlldyBpbgorICAgICAgICAvLyBh
IHdpbmRvdy4gRm9yIHRoZSB0ZXN0IHRvIGJlIHZhbGlkLCBpdCBtdXN0IGJlZ2luIG9ubHkgYWZ0
ZXIgdGhhdCBldmVudAorICAgICAgICAvLyBnZXRzIGRpc3BhdGNoZWQuCisgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyg1MCwgMTAwKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKS5zY3JvbGxUb3AgPSAyNTA7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZpbmlzaCwg
MjAwKTsKKyAgICAgICAgfSwgMjAwKTsKKyAgICB9Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50574</attachid>
            <date>2010-03-11 19:32:32 -0800</date>
            <delta_ts>2010-03-11 22:30:33 -0800</delta_ts>
            <desc>Dispatch a fake mouse move event shrotly after scrolling</desc>
            <filename>35949_r2.diff</filename>
            <type>text/plain</type>
            <size>16087</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTg2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMTAtMDMtMTEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNzY5NDY3ND4gSG92ZXIgc3RhdGVzIG5vdCB1cGRhdGVkIHdoZW4gb3ZlcmZs
b3cgc2VjdGlvbiBzY3JvbGxzIHVuZGVyIHN0YXRpb25hcnkgbW91c2UgcG9pbnRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU5NDkKKworICAgICAg
ICBUZXN0OiBmYXN0L2V2ZW50cy9vdmVyZmxvdy1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLmh0bWwK
KworICAgICAgICBTb29uIGFmdGVyIGFuIG92ZXJmbG93IHNlY3Rpb24gc2Nyb2xscyB1bmRlciB0
aGUgbW91c2UgcG9pbnRlciwgZGlzcGF0Y2gKKyAgICAgICAgYSBmYWtlIG1vdXNlIG1vdmUgZXZl
bnQuIFRoaXMgaXMgc2ltaWxhciB0byBob3cgZnJhbWUgc2Nyb2xsaW5nIGlzIGhhbmRsZWQKKyAg
ICAgICAgaW4gV2ViS2l0LCBhbmQgaGFzIHRoZSBlZmZlY3Qgb2YgdXBkYXRpbmcgaG92ZXIgc3Rh
dGUsIGRpc3BhdGNoaW5nIERPTSBtb3VzZQorICAgICAgICBldmVudHMsIGFuZCB1cGRhdGluZyB0
aGUgdG9vbCB0aXAuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcik6IEluaXRpYWxpemUgbV9mYWtl
TW91c2VNb3ZlRXZlbnRUaW1lci4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6fkV2
ZW50SGFuZGxlcik6IEFzc2VydCB0aGF0IHRoZSB0aW1lciBpcyBub3QgYWN0aXZlLgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjbGVhcik6IFN0b3AgdGhlIHRpbWVyLgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQpOiBDYW5jZWwg
cGVuZGluZyBmYWtlIG1vdXNlCisgICAgICAgIG1vdmUgZXZlbnRzLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZU1vdmVFdmVudCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1
YWQpOiBJZiB0aGUgbW91c2UKKyAgICAgICAgaXMgaW4gdGhlIHBhc3NlZC1pbiBxdWFkLCBlbnN1
cmUgdGhhdCBhIGZha2UgbW91c2UgbW92ZSBldmVudCBpcyBzY2hlZHVsZWQKKyAgICAgICAgdG8g
ZmlyZSBzb29uLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjYW5jZWxGYWtlTW91
c2VNb3ZlRXZlbnQpOiBEb2VzIHdoYXQgdGhlIG5hbWUgc2F5cy4KKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCk6IENvbnN0cnVjdHMg
YQorICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgd2l0aCB0aGUgY3VycmVudCBtb3VzZSBsb2Nh
dGlvbiwgbW9kaWZpZXIga2V5IHN0YXRlIGFuZAorICAgICAgICB0aW1lIHN0YW1wIGFuZCBjYWxs
cyBtb3VzZU1vdmVkKCkuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaDogRGVjbGFyZWQgZ2V0Q3VycmVudE1v
ZGlmaWVyU3RhdGUoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL0tleUV2ZW50QW5kcm9p
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJl
bnRNb2RpZmllclN0YXRlKTogU3R1YmJlZCBvdXQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0tl
eUV2ZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6
Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
S2V5RXZlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2lu
L0tleUV2ZW50V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVu
dDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUpOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRv
T2Zmc2V0KTogQ2FsbAorICAgICAgICBFdmVudEhhbmRsZXI6OmRpc3BhdGNoRmFrZU1vdXNlTW92
ZUV2ZW50U29vbkluUXVhZCgpLiBNb3ZlZCB0aGluZ3MgYXJvdW5kCisgICAgICAgIGEgbGl0dGxl
IHRvIGF2b2lkIGNvbXB1dGluZyB0aGUgcmVwYWludCByZWN0IHR3aWNlLgorCiAyMDEwLTAzLTEx
ICBMZWFuZHJvIFBlcmVpcmEgIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KSW5kZXg6IFdlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCShyZXZp
c2lvbiA1NTg1OSkKKysrIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAi
V2hlZWxFdmVudC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiIC8vIGZvciBjb21wYXJlUG9z
aXRpb25zKCkKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CiAKICNpZiBFTkFCTEUoU1ZHKQpAQCAtMTA2LDYgKzEwNyw4IEBAIHVzaW5n
IG5hbWVzcGFjZSBTVkdOYW1lczsKIC8vIFdoZW4gdGhlIGF1dG9zY3JvbGwgb3IgdGhlIHBhblNj
cm9sbCBpcyB0cmlnZ2VyZWQgd2hlbiBkbyB0aGUgc2Nyb2xsIGV2ZXJ5IDAuMDVzIHRvIG1ha2Ug
aXQgc21vb3RoCiBjb25zdCBkb3VibGUgYXV0b3Njcm9sbEludGVydmFsID0gMC4wNTsKIAorY29u
c3QgZG91YmxlIGZha2VNb3VzZU1vdmVJbnRlcnZhbCA9IDAuMTsKKwogc3RhdGljIEZyYW1lKiBz
dWJmcmFtZUZvckhpdFRlc3RSZXN1bHQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0
cyYpOwogCiBzdGF0aWMgaW5saW5lIGJvb2wgc2Nyb2xsTm9kZShmbG9hdCBkZWx0YSwgV2hlZWxF
dmVudDo6R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIFNjcm9sbERpcmVjdGlvbiBwb3NpdGl2ZURp
cmVjdGlvbiwgU2Nyb2xsRGlyZWN0aW9uIG5lZ2F0aXZlRGlyZWN0aW9uLCBOb2RlKiBub2RlLCBO
b2RlKiogc3RvcE5vZGUpCkBAIC0xNjgsNiArMTcxLDcgQEAgRXZlbnRIYW5kbGVyOjpFdmVudEhh
bmRsZXIoRnJhbWUqIGZyYW1lKQogICAgICwgbV9hdXRvc2Nyb2xsSW5Qcm9ncmVzcyhmYWxzZSkK
ICAgICAsIG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsKGZhbHNlKQogICAgICwgbV9tb3Vz
ZURvd25XYXNJblN1YmZyYW1lKGZhbHNlKQorICAgICwgbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1l
cih0aGlzLCAmRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKQogI2lm
IEVOQUJMRShTVkcpCiAgICAgLCBtX3N2Z1BhbihmYWxzZSkKICNlbmRpZgpAQCAtMTg3LDYgKzE5
MSw3IEBAIEV2ZW50SGFuZGxlcjo6RXZlbnRIYW5kbGVyKEZyYW1lKiBmcmFtZSkKIAogRXZlbnRI
YW5kbGVyOjp+RXZlbnRIYW5kbGVyKCkKIHsKKyAgICBBU1NFUlQoIW1fZmFrZU1vdXNlTW92ZUV2
ZW50VGltZXIuaXNBY3RpdmUoKSk7CiB9CiAgICAgCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkK
QEAgLTIwMCw2ICsyMDUsNyBAQCBFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlckRyYWdTdGF0ZSYg
RXZlCiB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXIoKQogewogICAgIG1faG92ZXJUaW1lci5zdG9w
KCk7CisgICAgbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lci5zdG9wKCk7CiAgICAgbV9yZXNpemVM
YXllciA9IDA7CiAgICAgbV9ub2RlVW5kZXJNb3VzZSA9IDA7CiAgICAgbV9sYXN0Tm9kZVVuZGVy
TW91c2UgPSAwOwpAQCAtMzc1LDYgKzM4MSw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVN
b3VzZVByZXNzRXZlbnQKICAgICBkcmFnU3RhdGUoKS5tX2RyYWdTcmMgPSAwOwogI2VuZGlmCiAK
KyAgICBjYW5jZWxGYWtlTW91c2VNb3ZlRXZlbnQoKTsKKwogICAgIGlmIChTY3JvbGxWaWV3KiBz
Y3JvbGxWaWV3ID0gbV9mcmFtZS0+dmlldygpKSB7CiAgICAgICAgIGlmIChzY3JvbGxWaWV3LT5p
c1BvaW50SW5TY3JvbGxiYXJDb3JuZXIoZXZlbnQuZXZlbnQoKS5wb3MoKSkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0xMTUwLDYgKzExNTgsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6
aGFuZGxlTW91c2VQcmVzc0V2ZW50CiB7CiAgICAgUmVmUHRyPEZyYW1lVmlldz4gcHJvdGVjdG9y
KG1fZnJhbWUtPnZpZXcoKSk7CiAKKyAgICBjYW5jZWxGYWtlTW91c2VNb3ZlRXZlbnQoKTsKICAg
ICBtX21vdXNlUHJlc3NlZCA9IHRydWU7CiAgICAgbV9jYXB0dXJlc0RyYWdnaW5nID0gdHJ1ZTsK
ICAgICBtX2N1cnJlbnRNb3VzZVBvc2l0aW9uID0gbW91c2VFdmVudC5wb3MoKTsKQEAgLTEzNDEs
NiArMTM1MCw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZU1vdmVFdmVudCgKICAg
ICBpZiAobV9ob3ZlclRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1faG92ZXJUaW1lci5zdG9w
KCk7CiAKKyAgICBjYW5jZWxGYWtlTW91c2VNb3ZlRXZlbnQoKTsKKwogI2lmIEVOQUJMRShTVkcp
CiAgICAgaWYgKG1fc3ZnUGFuKSB7CiAgICAgICAgIHN0YXRpY19jYXN0PFNWR0RvY3VtZW50Kj4o
bV9mcmFtZS0+ZG9jdW1lbnQoKSktPnVwZGF0ZVBhbihtX2N1cnJlbnRNb3VzZVBvc2l0aW9uKTsK
QEAgLTE5NDMsNiArMTk1NCw0NiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2NoZWR1bGVIb3ZlclN0
YXRlVXBkCiAgICAgICAgIG1faG92ZXJUaW1lci5zdGFydE9uZVNob3QoMCk7CiB9CiAKK3ZvaWQg
RXZlbnRIYW5kbGVyOjpkaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1YWQoY29uc3Qg
RmxvYXRRdWFkJiBxdWFkKQoreworICAgIEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXco
KTsKKyAgICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX21vdXNlUHJl
c3NlZCB8fCAhcXVhZC5jb250YWluc1BvaW50KHZpZXctPndpbmRvd1RvQ29udGVudHMobV9jdXJy
ZW50TW91c2VQb3NpdGlvbikpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fZmFrZU1v
dXNlTW92ZUV2ZW50VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9mYWtlTW91c2VNb3ZlRXZl
bnRUaW1lci5zdGFydE9uZVNob3QoZmFrZU1vdXNlTW92ZUludGVydmFsKTsKK30KKwordm9pZCBF
dmVudEhhbmRsZXI6OmNhbmNlbEZha2VNb3VzZU1vdmVFdmVudCgpCit7CisgICAgaWYgKCFtX2Zh
a2VNb3VzZU1vdmVFdmVudFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuc3RvcCgpOworfQorCit2b2lkIEV2ZW50SGFuZGxl
cjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZChUaW1lcjxFdmVudEhhbmRsZXI+KiB0aW1l
cikKK3sKKyAgICBBU1NFUlRfQVJHKHRpbWVyLCB0aW1lciA9PSAmbV9mYWtlTW91c2VNb3ZlRXZl
bnRUaW1lcik7CisgICAgQVNTRVJUKCFtX21vdXNlUHJlc3NlZCk7CisKKyAgICBGcmFtZVZpZXcq
IHZpZXcgPSBtX2ZyYW1lLT52aWV3KCk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1cm47
CisKKyAgICBib29sIHNoaWZ0S2V5OworICAgIGJvb2wgY3RybEtleTsKKyAgICBib29sIGFsdEtl
eTsKKyAgICBib29sIG1ldGFLZXk7CisgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJy
ZW50TW9kaWZpZXJTdGF0ZShzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5KTsKKyAg
ICBJbnRQb2ludCBnbG9iYWxQb2ludCA9IHZpZXctPmNvbnRlbnRzVG9TY3JlZW4oSW50UmVjdCh2
aWV3LT53aW5kb3dUb0NvbnRlbnRzKG1fY3VycmVudE1vdXNlUG9zaXRpb24pLCBJbnRTaXplKCkp
KS5sb2NhdGlvbigpOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBmYWtlTW91c2VNb3ZlRXZlbnQo
bV9jdXJyZW50TW91c2VQb3NpdGlvbiwgZ2xvYmFsUG9pbnQsIE5vQnV0dG9uLCBNb3VzZUV2ZW50
TW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIGN1cnJlbnRUaW1l
KCkpOworICAgIG1vdXNlTW92ZWQoZmFrZU1vdXNlTW92ZUV2ZW50KTsKK30KKwogLy8gV2hldGhl
ciBvciBub3QgYSBtb3VzZSBkb3duIGNhbiBiZWdpbiB0aGUgY3JlYXRpb24gb2YgYSBzZWxlY3Rp
b24uICBGaXJlcyB0aGUgc2VsZWN0U3RhcnQgZXZlbnQuCiBib29sIEV2ZW50SGFuZGxlcjo6Y2Fu
TW91c2VEb3duU3RhcnRTZWxlY3QoTm9kZSogbm9kZSkKIHsKSW5kZXg6IFdlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgJ
KHJldmlzaW9uIDU1ODU5KQorKysgV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIEN1cnNvcjsKIGNsYXNzIEV2ZW50OwogY2xh
c3MgRXZlbnRUYXJnZXQ7CiBjbGFzcyBGbG9hdFBvaW50OworY2xhc3MgRmxvYXRRdWFkOwogY2xh
c3MgRnJhbWU7CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CkBA
IC0xMDIsNiArMTAzLDggQEAgcHVibGljOgogICAgIFJlbmRlck9iamVjdCogYXV0b3Njcm9sbFJl
bmRlcmVyKCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVBdXRvc2Nyb2xsUmVuZGVyZXIoKTsKIAor
ICAgIHZvaWQgZGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRTb29uSW5RdWFkKGNvbnN0IEZsb2F0
UXVhZCYpOworCiAgICAgSGl0VGVzdFJlc3VsdCBoaXRUZXN0UmVzdWx0QXRQb2ludChjb25zdCBJ
bnRQb2ludCYsIGJvb2wgYWxsb3dTaGFkb3dDb250ZW50LCBib29sIGlnbm9yZUNsaXBwaW5nID0g
ZmFsc2UsIEhpdFRlc3RTY3JvbGxiYXJzIHNjcm9sbGJhcnMgPSBEb250SGl0VGVzdFNjcm9sbGJh
cnMpOwogCiAgICAgYm9vbCBtb3VzZVByZXNzZWQoKSBjb25zdCB7IHJldHVybiBtX21vdXNlUHJl
c3NlZDsgfQpAQCAtMjY2LDYgKzI2OSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRBdXRvc2Ny
b2xsUmVuZGVyZXIoUmVuZGVyT2JqZWN0Kik7CiAgICAgdm9pZCBhdXRvc2Nyb2xsVGltZXJGaXJl
ZChUaW1lcjxFdmVudEhhbmRsZXI+Kik7CiAKKyAgICB2b2lkIGZha2VNb3VzZU1vdmVFdmVudFRp
bWVyRmlyZWQoVGltZXI8RXZlbnRIYW5kbGVyPiopOworICAgIHZvaWQgY2FuY2VsRmFrZU1vdXNl
TW92ZUV2ZW50KCk7CisKICAgICB2b2lkIGludmFsaWRhdGVDbGljaygpOwogCiAgICAgTm9kZSog
bm9kZVVuZGVyTW91c2UoKSBjb25zdDsKQEAgLTM3Myw2ICszNzksOCBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGw7CiAgICAgYm9vbCBtX21vdXNlRG93
bldhc0luU3ViZnJhbWU7CiAKKyAgICBUaW1lcjxFdmVudEhhbmRsZXI+IG1fZmFrZU1vdXNlTW92
ZUV2ZW50VGltZXI7CisKICNpZiBFTkFCTEUoU1ZHKQogICAgIGJvb2wgbV9zdmdQYW47CiAgICAg
UmVmUHRyPFNWR0VsZW1lbnRJbnN0YW5jZT4gbV9pbnN0YW5jZVVuZGVyTW91c2U7CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgJKHJldmlzaW9uIDU1ODU5KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMTU1LDYgKzE1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfQogCiAg
ICAgICAgIHN0YXRpYyBib29sIGN1cnJlbnRDYXBzTG9ja1N0YXRlKCk7CisgICAgICAgIHN0YXRp
YyB2b2lkIGdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBjdHJs
S2V5LCBib29sJiBhbHRLZXksIGJvb2wmIG1ldGFLZXkpOwogCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQoTlNFdmVudCopOwpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9hbmRyb2lkL0tleUV2ZW50QW5kcm9pZC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9hbmRyb2lkL0tleUV2ZW50QW5kcm9pZC5jcHAJKHJldmlzaW9uIDU1ODU5KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL0tleUV2ZW50QW5kcm9pZC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI1MSw2ICsyNTEsMTUgQEAgYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1
cnJlbnRDYXBzTAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBjdHJs
S2V5LCBib29sJiBhbHRLZXksIGJvb2wmIG1ldGFLZXkpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICBzaGlmdEtleSA9IGZhbHNlOworICAgIGN0cmxLZXkgPSBmYWxzZTsKKyAgICBhbHRL
ZXkgPSBmYWxzZTsKKyAgICBtZXRhS2V5ID0gZmFsc2U7Cit9CisKIHZvaWQgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0eXBlLCBib29sIGJhY2t3
YXJkQ29tcGF0aWJpbGl0eU1vZGUpCiB7CiAgICAgLy8gQ29waWVkIHdpdGggbW9kaWZpY2F0aW9u
IGZyb20gdGhlIG1hYyBwb3J0LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvS2V5RXZlbnRH
dGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0tleUV2ZW50R3RrLmNw
cAkocmV2aXNpb24gNTU4NTkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9LZXlFdmVudEd0ay5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU4Niw2ICs1ODYsMTUgQEAgYm9vbCBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OmN1cnJlbnRDYXBzTAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5
LCBib29sJiBjdHJsS2V5LCBib29sJiBhbHRLZXksIGJvb2wmIG1ldGFLZXkpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICBzaGlmdEtleSA9IGZhbHNlOworICAgIGN0cmxLZXkgPSBmYWxz
ZTsKKyAgICBhbHRLZXkgPSBmYWxzZTsKKyAgICBtZXRhS2V5ID0gZmFsc2U7Cit9CisKIEdka0V2
ZW50S2V5KiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Omdka0V2ZW50S2V5KCkgY29uc3QKIHsKICAg
ICByZXR1cm4gbV9nZGtFdmVudEtleTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2
ZW50TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFj
Lm1tCShyZXZpc2lvbiA1NTg1OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFj
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04NzYsNCArODc2LDEz
IEBAIGJvb2wgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0wKICAgICByZXR1cm4g
R2V0Q3VycmVudEtleU1vZGlmaWVycygpICYgYWxwaGFMb2NrOwogfQogCit2b2lkIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJv
b2wmIGN0cmxLZXksIGJvb2wmIGFsdEtleSwgYm9vbCYgbWV0YUtleSkKK3sKKyAgICBVSW50MzIg
Y3VycmVudE1vZGlmaWVycyA9IEdldEN1cnJlbnRLZXlNb2RpZmllcnMoKTsKKyAgICBzaGlmdEtl
eSA9IGN1cnJlbnRNb2RpZmllcnMgJiA6OnNoaWZ0S2V5OworICAgIGN0cmxLZXkgPSBjdXJyZW50
TW9kaWZpZXJzICYgOjpjb250cm9sS2V5OworICAgIGFsdEtleSA9IGN1cnJlbnRNb2RpZmllcnMg
JiA6Om9wdGlvbktleTsKKyAgICBtZXRhS2V5ID0gY3VycmVudE1vZGlmaWVycyAmIDo6Y21kS2V5
OworfQorCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCShyZXZpc2lv
biA1NTg1OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAy
MDA3LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjE0LDQgKzIxNCwxMiBAQCBib29sIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudDo6Y3VycmVudENhcHNMCiAgICAgIHJldHVybiBHZXRLZXlTdGF0ZShWS19DQVBJVEFM
KSAmIDE7CiB9CiAKK3ZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZp
ZXJTdGF0ZShib29sJiBzaGlmdEtleSwgYm9vbCYgY3RybEtleSwgYm9vbCYgYWx0S2V5LCBib29s
JiBtZXRhS2V5KQoreworICAgIHNoaWZ0S2V5ID0gR2V0S2V5U3RhdGUoVktfU0hJRlQpICYgSElH
SF9CSVRfTUFTS19TSE9SVDsKKyAgICBjdHJsS2V5ID0gR2V0S2V5U3RhdGUoVktfQ09OVFJPTCkg
JiBISUdIX0JJVF9NQVNLX1NIT1JUOworICAgIGFsdEtleSA9IEdldEtleVN0YXRlKFZLX01FTlUp
ICYgSElHSF9CSVRfTUFTS19TSE9SVDsKKyAgICBtZXRhS2V5ID0gZmFsc2U7Cit9CisKIH0KSW5k
ZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHJldmlzaW9uIDU1ODU5KQorKysgV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFBvcnRpb25zIGFy
ZSBDb3B5cmlnaHQgKEMpIDE5OTggTmV0c2NhcGUgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24u
CiAgKgpAQCAtMTIzNSwxNSArMTIzNSwyNCBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09m
ZnNldChpbnQgeCwgCiAgICAgICAgIHZpZXctPnVwZGF0ZVdpZGdldFBvc2l0aW9ucygpOwogICAg
IH0KIAotICAgIC8vIFRoZSBjYXJldCByZWN0IG5lZWRzIHRvIGJlIGludmFsaWRhdGVkIGFmdGVy
IHNjcm9sbGluZworICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0g
cmVuZGVyZXIoKS0+Y29udGFpbmVyRm9yUmVwYWludCgpOworICAgIEludFJlY3QgcmVjdEZvclJl
cGFpbnQgPSByZW5kZXJlcigpLT5jbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBhaW50
Q29udGFpbmVyKTsKKwogICAgIEZyYW1lKiBmcmFtZSA9IHJlbmRlcmVyKCktPmRvY3VtZW50KCkt
PmZyYW1lKCk7Ci0gICAgaWYgKGZyYW1lKQorICAgIGlmIChmcmFtZSkgeworICAgICAgICAvLyBU
aGUgY2FyZXQgcmVjdCBuZWVkcyB0byBiZSBpbnZhbGlkYXRlZCBhZnRlciBzY3JvbGxpbmcKICAg
ICAgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5zZXROZWVkc0xheW91dCgpOwogCisgICAgICAgIEZs
b2F0UXVhZCBxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50ID0gRmxvYXRRdWFkKHJlY3RGb3JSZXBh
aW50KTsKKyAgICAgICAgaWYgKHJlcGFpbnRDb250YWluZXIpCisgICAgICAgICAgICBxdWFkRm9y
RmFrZU1vdXNlTW92ZUV2ZW50ID0gcmVwYWludENvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlUXVh
ZChxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50KTsKKyAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxl
cigpLT5kaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1YWQocXVhZEZvckZha2VNb3Vz
ZU1vdmVFdmVudCk7CisgICAgfQorCiAgICAgLy8gSnVzdCBzY2hlZHVsZSBhIGZ1bGwgcmVwYWlu
dCBvZiBvdXIgb2JqZWN0LgotICAgIGlmIChyZXBhaW50KQotICAgICAgICByZW5kZXJlcigpLT5y
ZXBhaW50KCk7Ci0gICAgCisgICAgaWYgKHZpZXcgJiYgcmVwYWludCkKKyAgICAgICAgcmVuZGVy
ZXIoKS0+cmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHJlY3RGb3JSZXBh
aW50KTsKKwogICAgIGlmICh1cGRhdGVTY3JvbGxiYXJzKSB7CiAgICAgICAgIGlmIChtX2hCYXIp
CiAgICAgICAgICAgICBtX2hCYXItPnNldFZhbHVlKHNjcm9sbFhPZmZzZXQoKSk7CkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTg2OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTAzLTExICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzc2OTQ2NzQ+IEhvdmVyIHN0YXRlcyBub3QgdXBkYXRlZCB3aGVuIG92
ZXJmbG93IHNlY3Rpb24gc2Nyb2xscyB1bmRlciBzdGF0aW9uYXJ5IG1vdXNlIHBvaW50ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1OTQ5CisKKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy9vdmVyZmxvdy1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvb3ZlcmZsb3ctc2Nyb2xsLWZh
a2UtbW91c2UtbW92ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9i
YXNpYy1tdWx0aS10b3VjaC1ldmVudHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3Vj
aC9iYXNpYy1zaW5nbGUtdG91Y2gtZXZlbnRzLmh0bWw6CisKIDIwMTAtMDMtMTEgIEppYW4gTGkg
IDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEFkZGVkIHRoZSB0
ZXN0IHRoYXQgdGltZSBvdXQgb24gVGlnZXIgYm90IHRvIG1hYy10aWdlci9Ta2lwcGVkLgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvb3ZlcmZsb3ctc2Nyb2xsLWZha2UtbW91c2UtbW92
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvb3Zl
cmZsb3ctc2Nyb2xsLWZha2UtbW91c2UtbW92ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vdmVyZmxvdy1zY3JvbGwtZmFrZS1tb3VzZS1tb3Zl
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorUEFTUwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvb3ZlcmZsb3ctc2Nyb2xsLWZha2UtbW91c2UtbW92ZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL292ZXJmbG93LXNjcm9sbC1m
YWtlLW1vdXNlLW1vdmUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL292ZXJmbG93LXNjcm9sbC1mYWtlLW1vdXNlLW1vdmUuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzMyBAQAorPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0ib3ZlcmZsb3c6IGF1dG87IGhl
aWdodDogMjAwcHg7IHdpZHRoOiAyMDBweDsiPgorICAgIDxkaXYgb25tb3VzZW92ZXI9Im1vdXNl
T3ZlcihldmVudCkiIHN0eWxlPSJtYXJnaW46IDMwMHB4IDA7IHdpZHRoOiAxMDBweDsgaGVpZ2h0
OiAxMDBweDsgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGlk
PSJyZXN1bHQiPlRlc3QgZGlkIG5vdCBydW48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIHBhc3Nl
ZCA9IGZhbHNlOworCisgICAgZnVuY3Rpb24gbW91c2VPdmVyKGV2ZW50KQorICAgIHsKKyAgICAg
ICAgcGFzc2VkID0gdHJ1ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2goKQorICAgIHsK
KyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVyVGV4dCA9IHBh
c3NlZCA/ICJQQVNTIiA6ICJGQUlMIjsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgIH0KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgLy8gV2ViS2l0
IHNjaGVkdWxlcyBhIGZha2UgbW91c2UgbW92ZSBldmVudCBhcyBwYXJ0IG9mIGluc3RhbGxpbmcg
dGhlIFdlYlZpZXcgaW4KKyAgICAgICAgLy8gYSB3aW5kb3cuIEZvciB0aGUgdGVzdCB0byBiZSB2
YWxpZCwgaXQgbXVzdCBiZWdpbiBvbmx5IGFmdGVyIHRoYXQgZXZlbnQKKyAgICAgICAgLy8gZ2V0
cyBkaXNwYXRjaGVkLgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDEwMCk7CisgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikuc2Nyb2xsVG9wID0gMjUwOworICAg
ICAgICAgICAgc2V0VGltZW91dChmaW5pc2gsIDIwMCk7CisgICAgICAgIH0sIDIwMCk7CisgICAg
fQorPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50576</attachid>
            <date>2010-03-11 22:30:33 -0800</date>
            <delta_ts>2010-03-12 07:42:23 -0800</delta_ts>
            <desc>Dispatch a fake mouse move event shrotly after scrolling</desc>
            <filename>35949_r3.diff</filename>
            <type>text/plain</type>
            <size>20235</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTg4NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMTAtMDMtMTEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNzY5NDY3ND4gSG92ZXIgc3RhdGVzIG5vdCB1cGRhdGVkIHdoZW4gb3ZlcmZs
b3cgc2VjdGlvbiBzY3JvbGxzIHVuZGVyIHN0YXRpb25hcnkgbW91c2UgcG9pbnRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU5NDkKKworICAgICAg
ICBUZXN0OiBmYXN0L2V2ZW50cy9vdmVyZmxvdy1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLmh0bWwK
KworICAgICAgICBTb29uIGFmdGVyIGFuIG92ZXJmbG93IHNlY3Rpb24gc2Nyb2xscyB1bmRlciB0
aGUgbW91c2UgcG9pbnRlciwgZGlzcGF0Y2gKKyAgICAgICAgYSBmYWtlIG1vdXNlIG1vdmUgZXZl
bnQuIFRoaXMgaXMgc2ltaWxhciB0byBob3cgZnJhbWUgc2Nyb2xsaW5nIGlzIGhhbmRsZWQKKyAg
ICAgICAgaW4gV2ViS2l0LCBhbmQgaGFzIHRoZSBlZmZlY3Qgb2YgdXBkYXRpbmcgaG92ZXIgc3Rh
dGUsIGRpc3BhdGNoaW5nIERPTSBtb3VzZQorICAgICAgICBldmVudHMsIGFuZCB1cGRhdGluZyB0
aGUgdG9vbCB0aXAuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcik6IEluaXRpYWxpemUgbV9mYWtl
TW91c2VNb3ZlRXZlbnRUaW1lci4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6fkV2
ZW50SGFuZGxlcik6IEFzc2VydCB0aGF0IHRoZSB0aW1lciBpcyBub3QgYWN0aXZlLgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjbGVhcik6IFN0b3AgdGhlIHRpbWVyLgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQpOiBDYW5jZWwg
cGVuZGluZyBmYWtlIG1vdXNlCisgICAgICAgIG1vdmUgZXZlbnRzLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZU1vdmVFdmVudCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1
YWQpOiBJZiB0aGUgbW91c2UKKyAgICAgICAgaXMgaW4gdGhlIHBhc3NlZC1pbiBxdWFkLCBlbnN1
cmUgdGhhdCBhIGZha2UgbW91c2UgbW92ZSBldmVudCBpcyBzY2hlZHVsZWQKKyAgICAgICAgdG8g
ZmlyZSBzb29uLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjYW5jZWxGYWtlTW91
c2VNb3ZlRXZlbnQpOiBEb2VzIHdoYXQgdGhlIG5hbWUgc2F5cy4KKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCk6IENvbnN0cnVjdHMg
YQorICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgd2l0aCB0aGUgY3VycmVudCBtb3VzZSBsb2Nh
dGlvbiwgbW9kaWZpZXIga2V5IHN0YXRlIGFuZAorICAgICAgICB0aW1lIHN0YW1wIGFuZCBjYWxs
cyBtb3VzZU1vdmVkKCkuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaDogRGVjbGFyZWQgZ2V0Q3VycmVudE1v
ZGlmaWVyU3RhdGUoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL0tleUV2ZW50QW5kcm9p
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJl
bnRNb2RpZmllclN0YXRlKTogU3R1YmJlZCBvdXQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0tl
eUV2ZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6
Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
S2V5RXZlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2lu
L0tleUV2ZW50V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVu
dDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUpOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRv
T2Zmc2V0KTogQ2FsbAorICAgICAgICBFdmVudEhhbmRsZXI6OmRpc3BhdGNoRmFrZU1vdXNlTW92
ZUV2ZW50U29vbkluUXVhZCgpLiBNb3ZlZCB0aGluZ3MgYXJvdW5kCisgICAgICAgIGEgbGl0dGxl
IHRvIGF2b2lkIGNvbXB1dGluZyB0aGUgcmVwYWludCByZWN0IHR3aWNlLgorCiAyMDEwLTAzLTEx
ICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhdmlkIExldmluLgpJbmRleDogV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHJldmlzaW9uIDU1ODg3
KQorKysgV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3
LDYgKzY3LDcgQEAKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50
LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIgLy8gZm9yIGNvbXBhcmVQb3NpdGlvbnMoKQor
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KIAogI2lmIEVOQUJMRShTVkcpCkBAIC0xMDYsNiArMTA3LDggQEAgdXNpbmcgbmFtZXNwYWNl
IFNWR05hbWVzOwogLy8gV2hlbiB0aGUgYXV0b3Njcm9sbCBvciB0aGUgcGFuU2Nyb2xsIGlzIHRy
aWdnZXJlZCB3aGVuIGRvIHRoZSBzY3JvbGwgZXZlcnkgMC4wNXMgdG8gbWFrZSBpdCBzbW9vdGgK
IGNvbnN0IGRvdWJsZSBhdXRvc2Nyb2xsSW50ZXJ2YWwgPSAwLjA1OwogCitjb25zdCBkb3VibGUg
ZmFrZU1vdXNlTW92ZUludGVydmFsID0gMC4xOworCiBzdGF0aWMgRnJhbWUqIHN1YmZyYW1lRm9y
SGl0VGVzdFJlc3VsdChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAKIHN0
YXRpYyBpbmxpbmUgYm9vbCBzY3JvbGxOb2RlKGZsb2F0IGRlbHRhLCBXaGVlbEV2ZW50OjpHcmFu
dWxhcml0eSBncmFudWxhcml0eSwgU2Nyb2xsRGlyZWN0aW9uIHBvc2l0aXZlRGlyZWN0aW9uLCBT
Y3JvbGxEaXJlY3Rpb24gbmVnYXRpdmVEaXJlY3Rpb24sIE5vZGUqIG5vZGUsIE5vZGUqKiBzdG9w
Tm9kZSkKQEAgLTE2OCw2ICsxNzEsNyBAQCBFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcihGcmFt
ZSogZnJhbWUpCiAgICAgLCBtX2F1dG9zY3JvbGxJblByb2dyZXNzKGZhbHNlKQogICAgICwgbV9t
b3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwoZmFsc2UpCiAgICAgLCBtX21vdXNlRG93bldhc0lu
U3ViZnJhbWUoZmFsc2UpCisgICAgLCBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyKHRoaXMsICZF
dmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQpCiAjaWYgRU5BQkxFKFNW
RykKICAgICAsIG1fc3ZnUGFuKGZhbHNlKQogI2VuZGlmCkBAIC0xODcsNiArMTkxLDcgQEAgRXZl
bnRIYW5kbGVyOjpFdmVudEhhbmRsZXIoRnJhbWUqIGZyYW1lKQogCiBFdmVudEhhbmRsZXI6On5F
dmVudEhhbmRsZXIoKQogeworICAgIEFTU0VSVCghbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lci5p
c0FjdGl2ZSgpKTsKIH0KICAgICAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpAQCAtMjAwLDYg
KzIwNSw3IEBAIEV2ZW50SGFuZGxlcjo6RXZlbnRIYW5kbGVyRHJhZ1N0YXRlJiBFdmUKIHZvaWQg
RXZlbnRIYW5kbGVyOjpjbGVhcigpCiB7CiAgICAgbV9ob3ZlclRpbWVyLnN0b3AoKTsKKyAgICBt
X2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyLnN0b3AoKTsKICAgICBtX3Jlc2l6ZUxheWVyID0gMDsK
ICAgICBtX25vZGVVbmRlck1vdXNlID0gMDsKICAgICBtX2xhc3ROb2RlVW5kZXJNb3VzZSA9IDA7
CkBAIC0zNzUsNiArMzgxLDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NF
dmVudAogICAgIGRyYWdTdGF0ZSgpLm1fZHJhZ1NyYyA9IDA7CiAjZW5kaWYKIAorICAgIGNhbmNl
bEZha2VNb3VzZU1vdmVFdmVudCgpOworCiAgICAgaWYgKFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcg
PSBtX2ZyYW1lLT52aWV3KCkpIHsKICAgICAgICAgaWYgKHNjcm9sbFZpZXctPmlzUG9pbnRJblNj
cm9sbGJhckNvcm5lcihldmVudC5ldmVudCgpLnBvcygpKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTExNTAsNiArMTE1OCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3Vz
ZVByZXNzRXZlbnQKIHsKICAgICBSZWZQdHI8RnJhbWVWaWV3PiBwcm90ZWN0b3IobV9mcmFtZS0+
dmlldygpKTsKIAorICAgIGNhbmNlbEZha2VNb3VzZU1vdmVFdmVudCgpOwogICAgIG1fbW91c2VQ
cmVzc2VkID0gdHJ1ZTsKICAgICBtX2NhcHR1cmVzRHJhZ2dpbmcgPSB0cnVlOwogICAgIG1fY3Vy
cmVudE1vdXNlUG9zaXRpb24gPSBtb3VzZUV2ZW50LnBvcygpOwpAQCAtMTM0MSw2ICsxMzUwLDgg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KAogICAgIGlmIChtX2hv
dmVyVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV9ob3ZlclRpbWVyLnN0b3AoKTsKIAorICAg
IGNhbmNlbEZha2VNb3VzZU1vdmVFdmVudCgpOworCiAjaWYgRU5BQkxFKFNWRykKICAgICBpZiAo
bV9zdmdQYW4pIHsKICAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHRG9jdW1lbnQqPihtX2ZyYW1lLT5k
b2N1bWVudCgpKS0+dXBkYXRlUGFuKG1fY3VycmVudE1vdXNlUG9zaXRpb24pOwpAQCAtMTk0Myw2
ICsxOTU0LDQ2IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzY2hlZHVsZUhvdmVyU3RhdGVVcGQKICAg
ICAgICAgbV9ob3ZlclRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAordm9pZCBFdmVudEhhbmRs
ZXI6OmRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbkluUXVhZChjb25zdCBGbG9hdFF1YWQm
IHF1YWQpCit7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpOworICAgIGlm
ICghdmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fbW91c2VQcmVzc2VkIHx8ICFx
dWFkLmNvbnRhaW5zUG9pbnQodmlldy0+d2luZG93VG9Db250ZW50cyhtX2N1cnJlbnRNb3VzZVBv
c2l0aW9uKSkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9mYWtlTW91c2VNb3ZlRXZl
bnRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyLnN0
YXJ0T25lU2hvdChmYWtlTW91c2VNb3ZlSW50ZXJ2YWwpOworfQorCit2b2lkIEV2ZW50SGFuZGxl
cjo6Y2FuY2VsRmFrZU1vdXNlTW92ZUV2ZW50KCkKK3sKKyAgICBpZiAoIW1fZmFrZU1vdXNlTW92
ZUV2ZW50VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9mYWtlTW91
c2VNb3ZlRXZlbnRUaW1lci5zdG9wKCk7Cit9CisKK3ZvaWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91
c2VNb3ZlRXZlbnRUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4qIHRpbWVyKQoreworICAg
IEFTU0VSVF9BUkcodGltZXIsIHRpbWVyID09ICZtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyKTsK
KyAgICBBU1NFUlQoIW1fbW91c2VQcmVzc2VkKTsKKworICAgIEZyYW1lVmlldyogdmlldyA9IG1f
ZnJhbWUtPnZpZXcoKTsKKyAgICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIGJv
b2wgc2hpZnRLZXk7CisgICAgYm9vbCBjdHJsS2V5OworICAgIGJvb2wgYWx0S2V5OworICAgIGJv
b2wgbWV0YUtleTsKKyAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmll
clN0YXRlKHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXkpOworICAgIEludFBvaW50
IGdsb2JhbFBvaW50ID0gdmlldy0+Y29udGVudHNUb1NjcmVlbihJbnRSZWN0KHZpZXctPndpbmRv
d1RvQ29udGVudHMobV9jdXJyZW50TW91c2VQb3NpdGlvbiksIEludFNpemUoKSkpLmxvY2F0aW9u
KCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGZha2VNb3VzZU1vdmVFdmVudChtX2N1cnJlbnRN
b3VzZVBvc2l0aW9uLCBnbG9iYWxQb2ludCwgTm9CdXR0b24sIE1vdXNlRXZlbnRNb3ZlZCwgMCwg
c2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgY3VycmVudFRpbWUoKSk7CisgICAg
bW91c2VNb3ZlZChmYWtlTW91c2VNb3ZlRXZlbnQpOworfQorCiAvLyBXaGV0aGVyIG9yIG5vdCBh
IG1vdXNlIGRvd24gY2FuIGJlZ2luIHRoZSBjcmVhdGlvbiBvZiBhIHNlbGVjdGlvbi4gIEZpcmVz
IHRoZSBzZWxlY3RTdGFydCBldmVudC4KIGJvb2wgRXZlbnRIYW5kbGVyOjpjYW5Nb3VzZURvd25T
dGFydFNlbGVjdChOb2RlKiBub2RlKQogewpJbmRleDogV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAkocmV2aXNpb24g
NTU4ODcpCisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUwLDYgKzUwLDcgQEAgY2xhc3MgQ3Vyc29yOwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBFdmVudFRh
cmdldDsKIGNsYXNzIEZsb2F0UG9pbnQ7CitjbGFzcyBGbG9hdFF1YWQ7CiBjbGFzcyBGcmFtZTsK
IGNsYXNzIEhpdFRlc3RSZXF1ZXN0OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKQEAgLTEwMiw2ICsx
MDMsOCBAQCBwdWJsaWM6CiAgICAgUmVuZGVyT2JqZWN0KiBhdXRvc2Nyb2xsUmVuZGVyZXIoKSBj
b25zdDsKICAgICB2b2lkIHVwZGF0ZUF1dG9zY3JvbGxSZW5kZXJlcigpOwogCisgICAgdm9pZCBk
aXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1YWQoY29uc3QgRmxvYXRRdWFkJik7CisK
ICAgICBIaXRUZXN0UmVzdWx0IGhpdFRlc3RSZXN1bHRBdFBvaW50KGNvbnN0IEludFBvaW50Jiwg
Ym9vbCBhbGxvd1NoYWRvd0NvbnRlbnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcgPSBmYWxzZSwgSGl0
VGVzdFNjcm9sbGJhcnMgc2Nyb2xsYmFycyA9IERvbnRIaXRUZXN0U2Nyb2xsYmFycyk7CiAKICAg
ICBib29sIG1vdXNlUHJlc3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VQcmVzc2VkOyB9CkBA
IC0yNjYsNiArMjY5LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEF1dG9zY3JvbGxSZW5kZXJl
cihSZW5kZXJPYmplY3QqKTsKICAgICB2b2lkIGF1dG9zY3JvbGxUaW1lckZpcmVkKFRpbWVyPEV2
ZW50SGFuZGxlcj4qKTsKIAorICAgIHZvaWQgZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZChU
aW1lcjxFdmVudEhhbmRsZXI+Kik7CisgICAgdm9pZCBjYW5jZWxGYWtlTW91c2VNb3ZlRXZlbnQo
KTsKKwogICAgIHZvaWQgaW52YWxpZGF0ZUNsaWNrKCk7CiAKICAgICBOb2RlKiBub2RlVW5kZXJN
b3VzZSgpIGNvbnN0OwpAQCAtMzczLDYgKzM3OSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX21v
dXNlRG93bk1heVN0YXJ0QXV0b3Njcm9sbDsKICAgICBib29sIG1fbW91c2VEb3duV2FzSW5TdWJm
cmFtZTsKIAorICAgIFRpbWVyPEV2ZW50SGFuZGxlcj4gbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1l
cjsKKwogI2lmIEVOQUJMRShTVkcpCiAgICAgYm9vbCBtX3N2Z1BhbjsKICAgICBSZWZQdHI8U1ZH
RWxlbWVudEluc3RhbmNlPiBtX2luc3RhbmNlVW5kZXJNb3VzZTsKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAkocmV2aXNpb24gNTU4ODcpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUs
NiArMTU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB9CiAKICAgICAgICAgc3Rh
dGljIGJvb2wgY3VycmVudENhcHNMb2NrU3RhdGUoKTsKKyAgICAgICAgc3RhdGljIHZvaWQgZ2V0
Q3VycmVudE1vZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJvb2wm
IGFsdEtleSwgYm9vbCYgbWV0YUtleSk7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIFBs
YXRmb3JtS2V5Ym9hcmRFdmVudChOU0V2ZW50Kik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Fu
ZHJvaWQvS2V5RXZlbnRBbmRyb2lkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2FuZHJvaWQvS2V5RXZlbnRBbmRyb2lkLmNwcAkocmV2aXNpb24gNTU4ODcpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2FuZHJvaWQvS2V5RXZlbnRBbmRyb2lkLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjUxLDYgKzI1MSwxNSBAQCBib29sIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNM
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0
Q3VycmVudE1vZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJvb2wm
IGFsdEtleSwgYm9vbCYgbWV0YUtleSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHNo
aWZ0S2V5ID0gZmFsc2U7CisgICAgY3RybEtleSA9IGZhbHNlOworICAgIGFsdEtleSA9IGZhbHNl
OworICAgIG1ldGFLZXkgPSBmYWxzZTsKK30KKwogdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb21wYXRp
YmlsaXR5TW9kZSkKIHsKICAgICAvLyBDb3BpZWQgd2l0aCBtb2RpZmljYXRpb24gZnJvbSB0aGUg
bWFjIHBvcnQuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2JyZXcvUGxhdGZvcm1LZXlib2FyZEV2
ZW50QnJldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1BsYXRmb3Jt
S2V5Ym9hcmRFdmVudEJyZXcuY3BwCShyZXZpc2lvbiA1NTg4NykKKysrIFdlYkNvcmUvcGxhdGZv
cm0vYnJldy9QbGF0Zm9ybUtleWJvYXJkRXZlbnRCcmV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTcwLDUgKzE3MCwxMyBAQCBib29sIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNM
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCit2b2lkIFBs
YXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRL
ZXksIGJvb2wmIGN0cmxLZXksIGJvb2wmIGFsdEtleSwgYm9vbCYgbWV0YUtleSkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHNoaWZ0S2V5ID0gZmFsc2U7CisgICAgY3RybEtleSA9IGZh
bHNlOworICAgIGFsdEtleSA9IGZhbHNlOworICAgIG1ldGFLZXkgPSBmYWxzZTsKK30KIAorfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0
Zm9ybUtleWJvYXJkRXZlbnRDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRDaHJvbWl1bS5jcHAJKHJldmlzaW9u
IDU1ODg3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybUtleWJvYXJkRXZl
bnRDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDQgKzgyLDIyIEBAIGJvb2wgUGxh
dGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0wKICNlbmRpZgogfQogCit2b2lkIFBsYXRm
b3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXks
IGJvb2wmIGN0cmxLZXksIGJvb2wmIGFsdEtleSwgYm9vbCYgbWV0YUtleSkKK3sKKyNpZiBPUyhX
SU5ET1dTKQorICAgIHNoaWZ0S2V5ID0gR2V0S2V5U3RhdGUoVktfU0hJRlQpICYgSElHSF9CSVRf
TUFTS19TSE9SVDsKKyAgICBjdHJsS2V5ID0gR2V0S2V5U3RhdGUoVktfQ09OVFJPTCkgJiBISUdI
X0JJVF9NQVNLX1NIT1JUOworICAgIGFsdEtleSA9IEdldEtleVN0YXRlKFZLX01FTlUpICYgSElH
SF9CSVRfTUFTS19TSE9SVDsKKyAgICBtZXRhS2V5ID0gZmFsc2U7CisjZWxpZiBPUyhEQVJXSU4p
CisgICAgVUludDMyIGN1cnJlbnRNb2RpZmllcnMgPSBHZXRDdXJyZW50S2V5TW9kaWZpZXJzKCk7
CisgICAgc2hpZnRLZXkgPSBjdXJyZW50TW9kaWZpZXJzICYgOjpzaGlmdEtleTsKKyAgICBjdHJs
S2V5ID0gY3VycmVudE1vZGlmaWVycyAmIDo6Y29udHJvbEtleTsKKyAgICBhbHRLZXkgPSBjdXJy
ZW50TW9kaWZpZXJzICYgOjpvcHRpb25LZXk7CisgICAgbWV0YUtleSA9IGN1cnJlbnRNb2RpZmll
cnMgJiA6OmNtZEtleTsKKyNlbHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgorfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0
Zm9ybUtleWJvYXJkRXZlbnRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
ZWZsL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEVmbC5jcHAJKHJldmlzaW9uIDU1ODg3KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1LZXlib2FyZEV2ZW50RWZsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQxLDQgKzI0MSwxMyBAQCBib29sIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3Vy
cmVudENhcHNMCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxL
ZXksIGJvb2wmIGFsdEtleSwgYm9vbCYgbWV0YUtleSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHNoaWZ0S2V5ID0gZmFsc2U7CisgICAgY3RybEtleSA9IGZhbHNlOworICAgIGFsdEtl
eSA9IGZhbHNlOworICAgIG1ldGFLZXkgPSBmYWxzZTsKK30KKwogfQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvS2V5RXZlbnRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3RrL0tleUV2ZW50R3RrLmNwcAkocmV2aXNpb24gNTU4ODcpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2d0ay9LZXlFdmVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4Niw2ICs1ODYsMTUg
QEAgYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBzTAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmll
clN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBjdHJsS2V5LCBib29sJiBhbHRLZXksIGJvb2wm
IG1ldGFLZXkpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBzaGlmdEtleSA9IGZhbHNl
OworICAgIGN0cmxLZXkgPSBmYWxzZTsKKyAgICBhbHRLZXkgPSBmYWxzZTsKKyAgICBtZXRhS2V5
ID0gZmFsc2U7Cit9CisKIEdka0V2ZW50S2V5KiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Omdka0V2
ZW50S2V5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9nZGtFdmVudEtleTsKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vaGFpa3UvUGxhdGZvcm1LZXlib2FyZEV2ZW50SGFpa3UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUGxhdGZvcm1LZXlib2FyZEV2ZW50SGFpa3Uu
Y3BwCShyZXZpc2lvbiA1NTg4NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUGxhdGZvcm1L
ZXlib2FyZEV2ZW50SGFpa3UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzcsNSArMzc3LDE0IEBA
IGJvb2wgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0wKICAgICByZXR1cm4gOjpt
b2RpZmllcnMoKSAmIEJfQ0FQU19MT0NLOwogfQogCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXks
IGJvb2wmIGFsdEtleSwgYm9vbCYgbWV0YUtleSkKK3sKKyAgICB1bml0MzIgbW9kaWZpZXJzID0g
Ojptb2RpZmllcnMoKTsKKyAgICBzaGlmdEtleSA9IG1vZGlmaWVycyAmIEJfU0hJRlRfS0VZOwor
ICAgIGN0cmxLZXkgPSBtb2RpZmllcnMgJiBCX0NPTU1BTkRfS0VZOworICAgIGFsdEtleSA9IG1v
ZGlmaWVycyAmIEJfQ09OVFJPTF9LRVk7CisgICAgbWV0YUtleSA9IG1vZGlmaWVycyAmIEJfT1BU
SU9OX0tFWTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L21hYy9LZXlFdmVudE1hYy5tbQkocmV2aXNpb24gNTU4ODcpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L21hYy9LZXlFdmVudE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtODc2LDQgKzg3NiwxMyBAQCBib29sIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENh
cHNMCiAgICAgcmV0dXJuIEdldEN1cnJlbnRLZXlNb2RpZmllcnMoKSAmIGFscGhhTG9jazsKIH0K
IAordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJv
b2wmIHNoaWZ0S2V5LCBib29sJiBjdHJsS2V5LCBib29sJiBhbHRLZXksIGJvb2wmIG1ldGFLZXkp
Cit7CisgICAgVUludDMyIGN1cnJlbnRNb2RpZmllcnMgPSBHZXRDdXJyZW50S2V5TW9kaWZpZXJz
KCk7CisgICAgc2hpZnRLZXkgPSBjdXJyZW50TW9kaWZpZXJzICYgOjpzaGlmdEtleTsKKyAgICBj
dHJsS2V5ID0gY3VycmVudE1vZGlmaWVycyAmIDo6Y29udHJvbEtleTsKKyAgICBhbHRLZXkgPSBj
dXJyZW50TW9kaWZpZXJzICYgOjpvcHRpb25LZXk7CisgICAgbWV0YUtleSA9IGN1cnJlbnRNb2Rp
ZmllcnMgJiA6OmNtZEtleTsKK30KKwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0
Zm9ybUtleWJvYXJkRXZlbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9x
dC9QbGF0Zm9ybUtleWJvYXJkRXZlbnRRdC5jcHAJKHJldmlzaW9uIDU1ODg3KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybUtleWJvYXJkRXZlbnRRdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU1MSw2ICs1NTEsMTUgQEAgYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRD
YXBzTAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBjdHJsS2V5LCBi
b29sJiBhbHRLZXksIGJvb2wmIG1ldGFLZXkpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBzaGlmdEtleSA9IGZhbHNlOworICAgIGN0cmxLZXkgPSBmYWxzZTsKKyAgICBhbHRLZXkgPSBm
YWxzZTsKKyAgICBtZXRhS2V5ID0gZmFsc2U7Cit9CisKIH0KIAogLy8gdmltOiB0cz00IHN3PTQg
ZXQKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAJKHJldmlzaW9uIDU1ODg3
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yMTQsNCArMjE0LDEyIEBAIGJvb2wgUGxhdGZvcm1LZXlib2FyZEV2ZW50
OjpjdXJyZW50Q2Fwc0wKICAgICAgcmV0dXJuIEdldEtleVN0YXRlKFZLX0NBUElUQUwpICYgMTsK
IH0KIAordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRl
KGJvb2wmIHNoaWZ0S2V5LCBib29sJiBjdHJsS2V5LCBib29sJiBhbHRLZXksIGJvb2wmIG1ldGFL
ZXkpCit7CisgICAgc2hpZnRLZXkgPSBHZXRLZXlTdGF0ZShWS19TSElGVCkgJiBISUdIX0JJVF9N
QVNLX1NIT1JUOworICAgIGN0cmxLZXkgPSBHZXRLZXlTdGF0ZShWS19DT05UUk9MKSAmIEhJR0hf
QklUX01BU0tfU0hPUlQ7CisgICAgYWx0S2V5ID0gR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdI
X0JJVF9NQVNLX1NIT1JUOworICAgIG1ldGFLZXkgPSBmYWxzZTsKK30KKwogfQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS93eC9LZXlib2FyZEV2ZW50V3guY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vd3gvS2V5Ym9hcmRFdmVudFd4LmNwcAkocmV2aXNpb24gNTU4ODcpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL3d4L0tleWJvYXJkRXZlbnRXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM4OCw1ICszODgsMTMgQEAgYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBz
TAogICAgIHJldHVybiB3eEdldEtleVN0YXRlKFdYS19DQVBJVEFMKTsKIH0KIAordm9pZCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5
LCBib29sJiBjdHJsS2V5LCBib29sJiBhbHRLZXksIGJvb2wmIG1ldGFLZXkpCit7CisgICAgc2hp
ZnRLZXkgPSB3eEdldEtleVN0YXRlKFdYS19TSElGVCk7CisgICAgY3RybEtleSA9IHd4R2V0S2V5
U3RhdGUoV1hLX0NPTlRST0wpOworICAgIGFsdEtleSA9IHd4R2V0S2V5U3RhdGUoV1hLX0FMVCk7
CisgICAgbWV0YUtleSA9IGZhbHNlOworfQorCiB9CiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAJKHJldmlzaW9uIDU1ODg3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFBvcnRpb25zIGFyZSBDb3B5cmlnaHQgKEMpIDE5OTgg
TmV0c2NhcGUgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24uCiAgKgpAQCAtMTIzNSwxNSArMTIz
NSwyNCBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChpbnQgeCwgCiAgICAgICAg
IHZpZXctPnVwZGF0ZVdpZGdldFBvc2l0aW9ucygpOwogICAgIH0KIAotICAgIC8vIFRoZSBjYXJl
dCByZWN0IG5lZWRzIHRvIGJlIGludmFsaWRhdGVkIGFmdGVyIHNjcm9sbGluZworICAgIFJlbmRl
ckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gcmVuZGVyZXIoKS0+Y29udGFpbmVy
Rm9yUmVwYWludCgpOworICAgIEludFJlY3QgcmVjdEZvclJlcGFpbnQgPSByZW5kZXJlcigpLT5j
bGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyKTsKKwogICAgIEZy
YW1lKiBmcmFtZSA9IHJlbmRlcmVyKCktPmRvY3VtZW50KCktPmZyYW1lKCk7Ci0gICAgaWYgKGZy
YW1lKQorICAgIGlmIChmcmFtZSkgeworICAgICAgICAvLyBUaGUgY2FyZXQgcmVjdCBuZWVkcyB0
byBiZSBpbnZhbGlkYXRlZCBhZnRlciBzY3JvbGxpbmcKICAgICAgICAgZnJhbWUtPnNlbGVjdGlv
bigpLT5zZXROZWVkc0xheW91dCgpOwogCisgICAgICAgIEZsb2F0UXVhZCBxdWFkRm9yRmFrZU1v
dXNlTW92ZUV2ZW50ID0gRmxvYXRRdWFkKHJlY3RGb3JSZXBhaW50KTsKKyAgICAgICAgaWYgKHJl
cGFpbnRDb250YWluZXIpCisgICAgICAgICAgICBxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50ID0g
cmVwYWludENvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlUXVhZChxdWFkRm9yRmFrZU1vdXNlTW92
ZUV2ZW50KTsKKyAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5kaXNwYXRjaEZha2VNb3Vz
ZU1vdmVFdmVudFNvb25JblF1YWQocXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCk7CisgICAgfQor
CiAgICAgLy8gSnVzdCBzY2hlZHVsZSBhIGZ1bGwgcmVwYWludCBvZiBvdXIgb2JqZWN0LgotICAg
IGlmIChyZXBhaW50KQotICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50KCk7Ci0gICAgCisgICAg
aWYgKHZpZXcgJiYgcmVwYWludCkKKyAgICAgICAgcmVuZGVyZXIoKS0+cmVwYWludFVzaW5nQ29u
dGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHJlY3RGb3JSZXBhaW50KTsKKwogICAgIGlmICh1cGRh
dGVTY3JvbGxiYXJzKSB7CiAgICAgICAgIGlmIChtX2hCYXIpCiAgICAgICAgICAgICBtX2hCYXIt
PnNldFZhbHVlKHNjcm9sbFhPZmZzZXQoKSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NTg4NykKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisy
MDEwLTAzLTExICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2OTQ2
NzQ+IEhvdmVyIHN0YXRlcyBub3QgdXBkYXRlZCB3aGVuIG92ZXJmbG93IHNlY3Rpb24gc2Nyb2xs
cyB1bmRlciBzdGF0aW9uYXJ5IG1vdXNlIHBvaW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1OTQ5CisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9v
dmVyZmxvdy1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvb3ZlcmZsb3ctc2Nyb2xsLWZha2UtbW91c2UtbW92ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10b3VjaC1ldmVu
dHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1zaW5nbGUtdG91Y2gt
ZXZlbnRzLmh0bWw6CisKIDIwMTAtMDMtMTEgIFNodSBDaGFuZyAgPENoYW5nLlNodUBub2tpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9vdmVyZmxvdy1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vdmVyZmxvdy1zY3JvbGwt
ZmFrZS1tb3VzZS1tb3ZlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL292ZXJmbG93LXNjcm9sbC1mYWtlLW1vdXNlLW1vdmUtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9vdmVyZmxvdy1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvb3ZlcmZsb3ctc2Nyb2xsLWZha2UtbW91c2UtbW92
ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvb3ZlcmZsb3ct
c2Nyb2xsLWZha2UtbW91c2UtbW92ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMzIEBA
Cis8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJvdmVyZmxvdzogYXV0bzsgaGVpZ2h0OiAyMDBweDsg
d2lkdGg6IDIwMHB4OyI+CisgICAgPGRpdiBvbm1vdXNlb3Zlcj0ibW91c2VPdmVyKGV2ZW50KSIg
c3R5bGU9Im1hcmdpbjogMzAwcHggMDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNr
Z3JvdW5kLWNvbG9yOiBibHVlOyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+VGVz
dCBkaWQgbm90IHJ1bjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgcGFzc2VkID0gZmFsc2U7CisK
KyAgICBmdW5jdGlvbiBtb3VzZU92ZXIoZXZlbnQpCisgICAgeworICAgICAgICBwYXNzZWQgPSB0
cnVlOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaCgpCisgICAgeworICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0gcGFzc2VkID8gIlBBU1Mi
IDogIkZBSUwiOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cisg
ICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAvLyBXZWJLaXQgc2NoZWR1bGVzIGEg
ZmFrZSBtb3VzZSBtb3ZlIGV2ZW50IGFzIHBhcnQgb2YgaW5zdGFsbGluZyB0aGUgV2ViVmlldyBp
bgorICAgICAgICAvLyBhIHdpbmRvdy4gRm9yIHRoZSB0ZXN0IHRvIGJlIHZhbGlkLCBpdCBtdXN0
IGJlZ2luIG9ubHkgYWZ0ZXIgdGhhdCBldmVudAorICAgICAgICAvLyBnZXRzIGRpc3BhdGNoZWQu
CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyg1MCwgMTAwKTsKKyAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5zY3JvbGxUb3AgPSAyNTA7CisgICAgICAgICAgICBzZXRU
aW1lb3V0KGZpbmlzaCwgMjAwKTsKKyAgICAgICAgfSwgMjAwKTsKKyAgICB9Cis8L3NjcmlwdD4K
</data>
<flag name="review"
          id="33747"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>