<?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>168117</bug_id>
          
          <creation_ts>2017-02-10 08:04:03 -0800</creation_ts>
          <short_desc>[Win] Custom scale factor is not applied in all cases.</short_desc>
          <delta_ts>2017-02-20 10:03:33 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1275326</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-02-10 08:04:03 -0800</bug_when>
    <thetext>It should always be preferred over system scale factor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275329</commentid>
    <comment_count>1</comment_count>
      <attachid>301159</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-02-10 08:16:32 -0800</bug_when>
    <thetext>Created attachment 301159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275332</commentid>
    <comment_count>2</comment_count>
      <attachid>301159</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-02-10 08:33:54 -0800</bug_when>
    <thetext>Comment on attachment 301159
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=301159&amp;action=review

&gt; Source/WebCore/ChangeLog:8
&gt; +        Custom scale factor should be preferred over system scale factor.

There isn&apos;t enough explanation here for me to understand the reasoning behind this change.

It&apos;s also very odd that PlatformMouseEvent needs a scale factor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275337</commentid>
    <comment_count>3</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-02-10 08:59:27 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 301159 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=301159&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Custom scale factor should be preferred over system scale factor.
&gt; 
&gt; There isn&apos;t enough explanation here for me to understand the reasoning
&gt; behind this change.
&gt; 

The problem is that when a custom scale factor is set, there are still a few places where the system scale factor is used, causing rendering artifacts.

&gt; It&apos;s also very odd that PlatformMouseEvent needs a scale factor.

This should perhaps be done differently, we scale the platform coordinates to logical coordinates.

Thanks for reviewing :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275381</commentid>
    <comment_count>4</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-02-10 10:31:38 -0800</bug_when>
    <thetext>rdar://problem/30435303</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275477</commentid>
    <comment_count>5</comment_count>
      <attachid>301159</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-10 12:19:48 -0800</bug_when>
    <thetext>Comment on attachment 301159
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=301159&amp;action=review

&gt; Source/WebCore/platform/PlatformMouseEvent.h:119
&gt; +        PlatformMouseEvent(HWND, UINT, WPARAM, LPARAM, float scaleFactor, bool didActivateWebView = false);

I don&apos;t think we need this (see later comments)

&gt; Source/WebCore/platform/win/PlatformMouseEventWin.cpp:45
&gt; +    float inverseScaleFactor = 1.0f / scaleFactor;

Since we have learned that we can&apos;t trust the system scale factor (at least under Windows 7), and we can&apos;t use the &quot;correct&quot; ones added in Windows 8, it seems like this whole &apos;positionForEvent&apos; scaling logic could be removed.

&gt; Source/WebCore/platform/win/PlatformMouseEventWin.cpp:85
&gt; +PlatformMouseEvent::PlatformMouseEvent(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, float scaleFactor, bool didActivateWebView)

So, don&apos;t pass the scaleFactor here.

&gt; Source/WebCore/platform/win/PlatformMouseEventWin.cpp:87
&gt; +    , m_position(positionForEvent(hWnd, lParam, scaleFactor))

... or here.

&gt; Source/WebCore/platform/win/PopupMenuWin.cpp:963
&gt;                      mousePoint.move(-scrollBarRect.x(), -scrollBarRect.y());

I suggest we do the scaling here:

Perhaps add this to IntPoint, or it could just be a local static function:

static LPARAM makeScaledPoint(IntPoint point, float scaleFactor) {
    float inverseScaleFactor = 1.0f / scaleFactor;
    point.scale(inverseScaleFactor, inverseScaleFactor);
    return MAKELPARAM(point.x(), point.y());
}

&gt; Source/WebCore/platform/win/PopupMenuWin.cpp:964
&gt; +                    PlatformMouseEvent event(hWnd, message, wParam, MAKELPARAM(mousePoint.x(), mousePoint.y()), m_scaleFactor);

Then this would become:

PlatformMouseEvent event(hWnd, message, wParam, makeScaledPoint(mousePoint, m_scaleFactor));

&gt; Source/WebCore/platform/win/PopupMenuWin.cpp:1001
&gt; +                    PlatformMouseEvent event(hWnd, message, wParam, MAKELPARAM(mousePoint.x(), mousePoint.y()), m_scaleFactor);

PlatformMouseEvent event(hWnd, message, wParam, makeScaledPoint(mousePoint, m_scaleFactor));

&gt; Source/WebCore/platform/win/PopupMenuWin.cpp:1028
&gt; +                    PlatformMouseEvent event(hWnd, message, wParam, MAKELPARAM(mousePoint.x(), mousePoint.y()), m_scaleFactor);

PlatformMouseEvent event(hWnd, message, wParam, makeScaledPoint(mousePoint, m_scaleFactor));

&gt; Source/WebKit/win/WebView.cpp:1661
&gt; +    PlatformMouseEvent mouseEvent(m_viewWindow, WM_RBUTTONUP, wParam, lParam, deviceScaleFactor());

PlatformMouseEvent event(m_viewWindow, WM_RBUTTONUP, wParam, makeScaledPoint(IntPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)), deviceScaleFactor()));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275480</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-10 12:20:36 -0800</bug_when>
    <thetext>The patch looks good, but I think we should do a few things to clean it up before calling it done.

Also: Do we have working &apos;custom scale factor&apos; tests we can activate on Windows if they aren&apos;t already?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278877</commentid>
    <comment_count>7</comment_count>
      <attachid>302125</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-02-20 01:31:55 -0800</bug_when>
    <thetext>Created attachment 302125
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278881</commentid>
    <comment_count>8</comment_count>
      <attachid>302128</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-02-20 01:48:52 -0800</bug_when>
    <thetext>Created attachment 302128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278882</commentid>
    <comment_count>9</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-02-20 01:53:07 -0800</bug_when>
    <thetext>Thanks for reviewing :) Updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278889</commentid>
    <comment_count>10</comment_count>
      <attachid>302131</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-02-20 03:03:52 -0800</bug_when>
    <thetext>Created attachment 302131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278908</commentid>
    <comment_count>11</comment_count>
      <attachid>302138</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-02-20 05:15:46 -0800</bug_when>
    <thetext>Created attachment 302138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278965</commentid>
    <comment_count>12</comment_count>
      <attachid>302153</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-02-20 09:42:34 -0800</bug_when>
    <thetext>Created attachment 302153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278967</commentid>
    <comment_count>13</comment_count>
      <attachid>302153</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-20 09:51:01 -0800</bug_when>
    <thetext>Comment on attachment 302153
Patch

Looks great! R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278971</commentid>
    <comment_count>14</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-02-20 10:03:33 -0800</bug_when>
    <thetext>Committed &lt;https://trac.webkit.org/changeset/212652&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301159</attachid>
            <date>2017-02-10 08:16:32 -0800</date>
            <delta_ts>2017-02-20 01:31:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168117-20170210081404.patch</filename>
            <type>text/plain</type>
            <size>11279</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTg1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE3LTAyLTEwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2luXSBDdXN0b20gc2Nh
bGUgZmFjdG9yIGlzIG5vdCBhcHBsaWVkIGluIGFsbCBjYXNlcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODExNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1c3RvbSBzY2FsZSBmYWN0b3Igc2hvdWxk
IGJlIHByZWZlcnJlZCBvdmVyIHN5c3RlbSBzY2FsZSBmYWN0b3IuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vQ0FDRkxheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V0tD
QUNGVmlld0xheWVyVHJlZUhvc3Q6OmluaXRpYWxpemVDb250ZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OldLQ0FDRlZpZXdMYXllclRyZWVIb3N0OjpyZXNpemUpOgorICAgICAgICAoV2ViQ29yZTo6
V0tDQUNGVmlld0xheWVyVHJlZUhvc3Q6OnNldFNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnBvc2l0aW9uRm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2
ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzaG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6d25kUHJvYyk6CisgICAgICAgICogcGxhdGZvcm0v
d2luL1BvcHVwTWVudVdpbi5oOgorCiAyMDE3LTAyLTA2ICBNYXR0aGV3IEhhbnNvbiAgPG1hdHRo
ZXdfaGFuc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZXJnZSByMjExNjUzLiByZGFyOi8vcHJv
YmxlbS8yOTg3Mjk0MwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3Vz
ZUV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1N
b3VzZUV2ZW50LmgJKHJldmlzaW9uIDIxMTg1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtTW91c2VFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsNyArMTE2LDcgQEAg
Y29uc3QgZG91YmxlIEZvcmNlQXRGb3JjZUNsaWNrID0gMjsKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oV0lOKQotICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQoSFdORCwgVUlOVCwgV1BBUkFNLCBM
UEFSQU0sIGJvb2wgZGlkQWN0aXZhdGVXZWJWaWV3ID0gZmFsc2UpOworICAgICAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0sIGZsb2F0IHNjYWxlRmFjdG9y
LCBib29sIGRpZEFjdGl2YXRlV2ViVmlldyA9IGZhbHNlKTsKICAgICAgICAgdm9pZCBzZXRDbGlj
a0NvdW50KGludCBjb3VudCkgeyBtX2NsaWNrQ291bnQgPSBjb3VudDsgfQogICAgICAgICBib29s
IGRpZEFjdGl2YXRlV2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fZGlkQWN0aXZhdGVXZWJWaWV3
OyB9CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dp
bi9DQUNGTGF5ZXJUcmVlSG9zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5oCShyZXZpc2lvbiAyMTE4NTUp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vQ0FDRkxheWVyVHJl
ZUhvc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjksNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRQYWdlKFBhZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoSERDID0gbnVsbHB0cik7
CiAgICAgdmlydHVhbCB2b2lkIHJlc2l6ZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nh
bGVGYWN0b3IoZmxvYXQpID0gMDsKICAgICB2b2lkIGZsdXNoUGVuZGluZ0dyYXBoaWNzTGF5ZXJD
aGFuZ2VzU29vbigpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRJbnZlcnRDb2xvcnMoYm9v
bCk7CiAjaWYgVVNFKEFWRk9VTkRBVElPTikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1dLQ0FDRlZpZXdMYXll
clRyZWVIb3N0LmNwcAkocmV2aXNpb24gMjExODU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTI0LDEyICsxMjQsNiBAQCB2b2lkIFdLQ0FDRlZpZXdMYXllclRyZWVIb3N0Ojpj
b250ZXh0RGlkCiAKIHZvaWQgV0tDQUNGVmlld0xheWVyVHJlZUhvc3Q6OmluaXRpYWxpemVDb250
ZXh0KHZvaWQqIHVzZXJEYXRhLCBQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQogewotI2lmIEhBVkUo
Q0FDRkxBWUVSX1NFVENPTlRFTlRTU0NBTEUpCi0gICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBkZXZp
Y2VTY2FsZUZhY3RvckZvcldpbmRvdyhudWxscHRyKTsKLSAgICBDQUNGTGF5ZXJTZXRUcmFuc2Zv
cm0obGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSwgQ0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShzY2FsZUZh
Y3Rvciwgc2NhbGVGYWN0b3IsIDEpKTsKLSAgICBDQUNGTGF5ZXJTZXRDb250ZW50c1NjYWxlKGxh
eWVyLT5wbGF0Zm9ybUxheWVyKCksIHNjYWxlRmFjdG9yKTsKLSNlbmRpZgotCiAgICAgV0tDQUNG
Vmlld1NldENvbnRleHRVc2VyRGF0YShtX3ZpZXcuZ2V0KCksIHVzZXJEYXRhKTsKICAgICBXS0NB
Q0ZWaWV3U2V0TGF5ZXIobV92aWV3LmdldCgpLCBsYXllci0+cGxhdGZvcm1MYXllcigpKTsKICAg
ICBXS0NBQ0ZWaWV3U2V0Q29udGV4dERpZENoYW5nZUNhbGxiYWNrKG1fdmlldy5nZXQoKSwgY29u
dGV4dERpZENoYW5nZUNhbGxiYWNrLCB0aGlzKTsKQEAgLTE0MCw2ICsxMzQsMTQgQEAgdm9pZCBX
S0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdDo6cmVzaXplKCkKICAgICBtX3ZpZXdOZWVkc1VwZGF0ZSA9
IHRydWU7CiB9CiAKK3ZvaWQgV0tDQUNGVmlld0xheWVyVHJlZUhvc3Q6OnNldFNjYWxlRmFjdG9y
KGZsb2F0IHNjYWxlRmFjdG9yKQoreworI2lmIEhBVkUoQ0FDRkxBWUVSX1NFVENPTlRFTlRTU0NB
TEUpCisgICAgQ0FDRkxheWVyU2V0VHJhbnNmb3JtKHJvb3RMYXllcigpLT5wbGF0Zm9ybUxheWVy
KCksIENBVHJhbnNmb3JtM0RNYWtlU2NhbGUoc2NhbGVGYWN0b3IsIHNjYWxlRmFjdG9yLCAxKSk7
CisgICAgQ0FDRkxheWVyU2V0Q29udGVudHNTY2FsZShyb290TGF5ZXIoKS0+cGxhdGZvcm1MYXll
cigpLCBzY2FsZUZhY3Rvcik7CisjZW5kaWYKK30KKwogYm9vbCBXS0NBQ0ZWaWV3TGF5ZXJUcmVl
SG9zdDo6Y3JlYXRlUmVuZGVyZXIoKQogewogICAgIHVwZGF0ZVZpZXdJZk5lZWRlZCgpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1dLQ0FDRlZpZXdMYXll
clRyZWVIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Evd2luL1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmgJKHJldmlzaW9uIDIxMTg1NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJU
cmVlSG9zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBAIHByaXZhdGU6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNvbnRleHQodm9pZCogdXNlckRhdGEsIFBsYXRmb3Jt
Q0FMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCByZXNpemUoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0U2NhbGVGYWN0b3IoZmxvYXQpOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95UmVuZGVyZXIo
KTsKICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb250ZXh0KCk7CiAgICAgdmlydHVhbCB2b2lkIGNv
bnRleHREaWRDaGFuZ2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0
Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCShyZXZpc2lvbiAyMTE4NTUpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzksMTAgKzM5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2Rl
ZmluZSBISUdIX0JJVF9NQVNLX1NIT1JUIDB4ODAwMAogCi1zdGF0aWMgSW50UG9pbnQgcG9zaXRp
b25Gb3JFdmVudChIV05EIGhXbmQsIExQQVJBTSBsUGFyYW0pCitzdGF0aWMgSW50UG9pbnQgcG9z
aXRpb25Gb3JFdmVudChIV05EIGhXbmQsIExQQVJBTSBsUGFyYW0sIGZsb2F0IHNjYWxlRmFjdG9y
KQogewogICAgIEludFBvaW50IHBvaW50KEdFVF9YX0xQQVJBTShsUGFyYW0pLCBHRVRfWV9MUEFS
QU0obFBhcmFtKSk7Ci0gICAgZmxvYXQgaW52ZXJzZVNjYWxlRmFjdG9yID0gMS4wZiAvIGRldmlj
ZVNjYWxlRmFjdG9yRm9yV2luZG93KGhXbmQpOworICAgIGZsb2F0IGludmVyc2VTY2FsZUZhY3Rv
ciA9IDEuMGYgLyBzY2FsZUZhY3RvcjsKICAgICBwb2ludC5zY2FsZShpbnZlcnNlU2NhbGVGYWN0
b3IsIGludmVyc2VTY2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIHBvaW50OwogfQpAQCAtODIsOSAr
ODIsOSBAQCBzdGF0aWMgUGxhdGZvcm1FdmVudDo6VHlwZSBtZXNzYWdlVG9FdmVuCiAgICAgfQog
fQogCi1QbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChIV05EIGhXbmQsIFVJ
TlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSwgYm9vbCBkaWRBY3RpdmF0
ZVdlYlZpZXcpCitQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChIV05EIGhX
bmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSwgZmxvYXQgc2Nh
bGVGYWN0b3IsIGJvb2wgZGlkQWN0aXZhdGVXZWJWaWV3KQogICAgIDogUGxhdGZvcm1FdmVudCht
ZXNzYWdlVG9FdmVudFR5cGUobWVzc2FnZSksIHdQYXJhbSAmIE1LX1NISUZULCB3UGFyYW0gJiBN
S19DT05UUk9MLCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdl
dEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgY3VycmVudFRpbWUoKSkK
LSAgICAsIG1fcG9zaXRpb24ocG9zaXRpb25Gb3JFdmVudChoV25kLCBsUGFyYW0pKQorICAgICwg
bV9wb3NpdGlvbihwb3NpdGlvbkZvckV2ZW50KGhXbmQsIGxQYXJhbSwgc2NhbGVGYWN0b3IpKQog
ICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbkZvckV2ZW50KGhXbmQsIGxQYXJh
bSkpCiAgICAgLCBtX2NsaWNrQ291bnQoMCkKICAgICAsIG1fZGlkQWN0aXZhdGVXZWJWaWV3KGRp
ZEFjdGl2YXRlV2ViVmlldykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1
cE1lbnVXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Q
b3B1cE1lbnVXaW4uY3BwCShyZXZpc2lvbiAyMTE4NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMxLDYgKzEzMSw5
IEBAIHZvaWQgUG9wdXBNZW51V2luOjpzaG93KGNvbnN0IEludFJlY3QmIHIKICAgICBpZiAoY2xp
ZW50UmVjdCgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKHZpZXcgJiYg
dmlldy0+ZnJhbWUoKS5wYWdlKCkpCisgICAgICAgIG1fc2NhbGVGYWN0b3IgPSB2aWV3LT5mcmFt
ZSgpLnBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKKwogICAgIEhXTkQgaG9zdFdpbmRvdyA9
IHZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7CiAKICAgICBpZiAoIW1f
c2Nyb2xsYmFyICYmIHZpc2libGVJdGVtcygpIDwgY2xpZW50KCktPmxpc3RTaXplKCkpIHsKQEAg
LTk1OCw3ICs5NjEsNyBAQCBMUkVTVUxUIFBvcHVwTWVudVdpbjo6d25kUHJvYyhIV05EIGhXbmQs
CiAgICAgICAgICAgICAgICAgaWYgKHNjcm9sbGJhckNhcHR1cmluZ01vdXNlKCkgfHwgc2Nyb2xs
QmFyUmVjdC5jb250YWlucyhtb3VzZVBvaW50KSkgewogICAgICAgICAgICAgICAgICAgICAvLyBQ
dXQgdGhlIHBvaW50IGludG8gY29vcmRpbmF0ZXMgcmVsYXRpdmUgdG8gdGhlIHNjcm9sbCBiYXIK
ICAgICAgICAgICAgICAgICAgICAgbW91c2VQb2ludC5tb3ZlKC1zY3JvbGxCYXJSZWN0LngoKSwg
LXNjcm9sbEJhclJlY3QueSgpKTsKLSAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IGV2ZW50KGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgTUFLRUxQQVJBTShtb3VzZVBvaW50Lngo
KSwgbW91c2VQb2ludC55KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IGV2ZW50KGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgTUFLRUxQQVJBTShtb3VzZVBvaW50Lngo
KSwgbW91c2VQb2ludC55KCkpLCBtX3NjYWxlRmFjdG9yKTsKICAgICAgICAgICAgICAgICAgICAg
c2Nyb2xsYmFyKCktPm1vdXNlTW92ZWQoZXZlbnQpOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgICB9CkBAIC05OTUsNyArOTk4LDcgQEAgTFJFU1VMVCBQb3B1cE1l
bnVXaW46OnduZFByb2MoSFdORCBoV25kLAogICAgICAgICAgICAgICAgIGlmIChzY3JvbGxCYXJS
ZWN0LmNvbnRhaW5zKG1vdXNlUG9pbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFB1dCB0
aGUgcG9pbnQgaW50byBjb29yZGluYXRlcyByZWxhdGl2ZSB0byB0aGUgc2Nyb2xsIGJhcgogICAg
ICAgICAgICAgICAgICAgICBtb3VzZVBvaW50Lm1vdmUoLXNjcm9sbEJhclJlY3QueCgpLCAtc2Ny
b2xsQmFyUmVjdC55KCkpOwotICAgICAgICAgICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBNQUtFTFBBUkFNKG1vdXNlUG9pbnQueCgpLCBt
b3VzZVBvaW50LnkoKSkpOworICAgICAgICAgICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBNQUtFTFBBUkFNKG1vdXNlUG9pbnQueCgpLCBt
b3VzZVBvaW50LnkoKSksIG1fc2NhbGVGYWN0b3IpOwogICAgICAgICAgICAgICAgICAgICBzY3Jv
bGxiYXIoKS0+bW91c2VEb3duKGV2ZW50KTsKICAgICAgICAgICAgICAgICAgICAgc2V0U2Nyb2xs
YmFyQ2FwdHVyaW5nTW91c2UodHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAt
MTAyMiw3ICsxMDI1LDcgQEAgTFJFU1VMVCBQb3B1cE1lbnVXaW46OnduZFByb2MoSFdORCBoV25k
LAogICAgICAgICAgICAgICAgICAgICBzZXRTY3JvbGxiYXJDYXB0dXJpbmdNb3VzZShmYWxzZSk7
CiAgICAgICAgICAgICAgICAgICAgIC8vIFB1dCB0aGUgcG9pbnQgaW50byBjb29yZGluYXRlcyBy
ZWxhdGl2ZSB0byB0aGUgc2Nyb2xsIGJhcgogICAgICAgICAgICAgICAgICAgICBtb3VzZVBvaW50
Lm1vdmUoLXNjcm9sbEJhclJlY3QueCgpLCAtc2Nyb2xsQmFyUmVjdC55KCkpOwotICAgICAgICAg
ICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFt
LCBNQUtFTFBBUkFNKG1vdXNlUG9pbnQueCgpLCBtb3VzZVBvaW50LnkoKSkpOworICAgICAgICAg
ICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFt
LCBNQUtFTFBBUkFNKG1vdXNlUG9pbnQueCgpLCBtb3VzZVBvaW50LnkoKSksIG1fc2NhbGVGYWN0
b3IpOwogICAgICAgICAgICAgICAgICAgICBzY3JvbGxiYXIoKS0+bW91c2VVcChldmVudCk7CiAg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgaGFjayB0byB3b3JrIGFyb3Vu
ZCBTY3JvbGxiYXIgbm90IGludmFsaWRhdGluZyBjb3JyZWN0bHkgd2hlbiBpdCBkb2Vzbid0IGhh
dmUgYSBwYXJlbnQgd2lkZ2V0CiAgICAgICAgICAgICAgICAgICAgIFJFQ1QgciA9IHNjcm9sbEJh
clJlY3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5o
CShyZXZpc2lvbiAyMTE4NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBN
ZW51V2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNCw2ICsxMzQsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV93YXNDbGlja2VkIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2Nyb2xsYmFyQ2FwdHVy
aW5nTW91c2UgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG93UG9wdXAgeyBmYWxzZSB9OworICAg
IGZsb2F0IG1fc2NhbGVGYWN0b3IgeyAxIH07CiAKICAgICBmcmllbmQgY2xhc3MgQWNjZXNzaWJs
ZVBvcHVwTWVudTsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTIxMTMpCisr
KyBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NiBAQAorMjAxNy0wMi0xMCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dpbl0gQ3VzdG9tIHNjYWxlIGZhY3RvciBpcyBub3QgYXBwbGllZCBpbiBhbGwg
Y2FzZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjgxMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAg
Q3VzdG9tIHNjYWxlIGZhY3RvciBzaG91bGQgYmUgcHJlZmVycmVkIG92ZXIgc3lzdGVtIHNjYWxl
IGZhY3Rvci4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6aGFu
ZGxlQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAgIChXZWJWaWV3OjpzZXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nKToKKwogMjAxNy0wMi0wNSAgTWF0dGhldyBIYW5zb24gIDxtYXR0aGV3X2hhbnNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgTWVyZ2UgcjIxMTU2OS4gcmRhcjovL3Byb2JsZW0vMzAy
Mjk5OTAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCShyZXZpc2lvbiAyMTE4NTUpCisrKyBTb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY1OCw3ICsxNjU4
LDcgQEAgYm9vbCBXZWJWaWV3OjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KFdQQQogICAgIEZyYW1l
KiB0YXJnZXRGcmFtZSA9IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSA/IHJlc3VsdC5pbm5l
ck5vblNoYXJlZE5vZGUoKS0+ZG9jdW1lbnQoKS5mcmFtZSgpIDogJm1fcGFnZS0+Zm9jdXNDb250
cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAKICAgICB0YXJnZXRGcmFtZS0+dmlldygp
LT5zZXRDdXJzb3IocG9pbnRlckN1cnNvcigpKTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91
c2VFdmVudChtX3ZpZXdXaW5kb3csIFdNX1JCVVRUT05VUCwgd1BhcmFtLCBsUGFyYW0pOworICAg
IFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KG1fdmlld1dpbmRvdywgV01fUkJVVFRPTlVQ
LCB3UGFyYW0sIGxQYXJhbSwgZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAgICAgYm9vbCBoYW5kbGVk
RXZlbnQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRleHRNZW51RXZlbnQo
bW91c2VFdmVudCk7CiAgICAgaWYgKCFoYW5kbGVkRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTcxNDcsNiArNzE0Nyw3IEBAIHZvaWQgV2ViVmlldzo6c2V0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZygKICAgICAgICAgICAgIEFTU0VSVChtX3ZpZXdXaW5kb3cpOwogICAgICAgICAgICAg
bV9sYXllclRyZWVIb3N0LT5zZXRXaW5kb3cobV92aWV3V2luZG93KTsKICAgICAgICAgICAgIG1f
bGF5ZXJUcmVlSG9zdC0+c2V0UGFnZShwYWdlKCkpOworICAgICAgICAgICAgbV9sYXllclRyZWVI
b3N0LT5zZXRTY2FsZUZhY3RvcihkZXZpY2VTY2FsZUZhY3RvcigpKTsKIAogICAgICAgICAgICAg
Ly8gRklYTUU6IFdlIGNvdWxkIHBlcmhhcHMgZ2V0IGJldHRlciBwZXJmb3JtYW5jZSBieSBuZXZl
ciBhbGxvd2luZyB0aGlzIGxheWVyIHRvCiAgICAgICAgICAgICAvLyBiZWNvbWUgdGlsZWQgKG9y
IGNob29zaW5nIGEgaGlnaGVyLXRoYW4tbm9ybWFsIHRpbGluZyB0aHJlc2hvbGQpLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302125</attachid>
            <date>2017-02-20 01:31:55 -0800</date>
            <delta_ts>2017-02-20 01:48:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168117-20170220012911.patch</filename>
            <type>text/plain</type>
            <size>11834</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTg1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDE3LTAyLTIwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2luXSBDdXN0b20gc2Nh
bGUgZmFjdG9yIGlzIG5vdCBhcHBsaWVkIGluIGFsbCBjYXNlcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODExNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBub3QgY2FsbCB0aGUgZnVu
Y3Rpb24gZGV2aWNlU2NhbGVGYWN0b3JGb3JXaW5kb3cgZGlyZWN0bHksIHNpbmNlIHRoaXMKKyAg
ICAgICAgd2lsbCByZXR1cm4gdGhlIHN5c3RlbSBzY2FsZSBmYWN0b3IsIGFuZCBpZ25vcmUgdGhl
IGN1c3RvbSBzY2FsZSBmYWN0b3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRQ
b2ludC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVl
SG9zdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5
ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9z
dDo6aW5pdGlhbGl6ZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGVmlld0xheWVy
VHJlZUhvc3Q6OnJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZWaWV3TGF5ZXJUcmVl
SG9zdDo6c2V0U2NhbGVGYWN0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dp
bi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbi9JbnRQb2ludFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRQb2ludDo6bWFrZVNj
YWxlZFBvaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2lu
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBvc2l0aW9uRm9yRXZlbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
V2luOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6d25kUHJvYyk6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oOgorCiAyMDE3LTAyLTA2ICBNYXR0
aGV3IEhhbnNvbiAgPG1hdHRoZXdfaGFuc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZXJnZSBy
MjExNjUzLiByZGFyOi8vcHJvYmxlbS8yOTg3Mjk0MwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oCShyZXZpc2lvbiAyMTE4NTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDYsNiArMTQ2LDggQEAgcHVibGljOgogICAgIGV4cGxpY2l0IEludFBvaW50KGNvbnN0IEQyRDFf
UE9JTlRfMkYmKTsgLy8gRG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5LCBzaW5jZSBpdCdzIGxvc3N5
LgogICAgIG9wZXJhdG9yIEQyRDFfUE9JTlRfMkYoKSBjb25zdDsKICAgICBvcGVyYXRvciBEMkQx
X1BPSU5UXzJVKCkgY29uc3Q7CisKKyAgICBzdGF0aWMgTFBBUkFNIG1ha2VTY2FsZWRQb2ludChJ
bnRQb2ludCwgZmxvYXQgc2NhbGVGYWN0b3IpOwogI2VsaWYgUExBVEZPUk0oRUZMKQogICAgIGV4
cGxpY2l0IEludFBvaW50KGNvbnN0IEV2YXNfUG9pbnQmKTsKICAgICBvcGVyYXRvciBFdmFzX1Bv
aW50KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93
aW4vQ0FDRkxheWVyVHJlZUhvc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vQ0FDRkxheWVyVHJlZUhvc3QuaAkocmV2aXNpb24gMjExODU1
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0NBQ0ZMYXllclRy
ZWVIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0UGFnZShQYWdlKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KEhEQyA9IG51bGxwdHIp
OwogICAgIHZpcnR1YWwgdm9pZCByZXNpemUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFNj
YWxlRmFjdG9yKGZsb2F0KSA9IDA7CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdHcmFwaGljc0xheWVy
Q2hhbmdlc1Nvb24oKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkSW52ZXJ0Q29sb3JzKGJv
b2wpOwogI2lmIFVTRShBVkZPVU5EQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5
ZXJUcmVlSG9zdC5jcHAJKHJldmlzaW9uIDIxMTg1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEyNCwxMiArMTI0LDYgQEAgdm9pZCBXS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdDo6
Y29udGV4dERpZAogCiB2b2lkIFdLQ0FDRlZpZXdMYXllclRyZWVIb3N0Ojppbml0aWFsaXplQ29u
dGV4dCh2b2lkKiB1c2VyRGF0YSwgUGxhdGZvcm1DQUxheWVyKiBsYXllcikKIHsKLSNpZiBIQVZF
KENBQ0ZMQVlFUl9TRVRDT05URU5UU1NDQUxFKQotICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gZGV2
aWNlU2NhbGVGYWN0b3JGb3JXaW5kb3cobnVsbHB0cik7Ci0gICAgQ0FDRkxheWVyU2V0VHJhbnNm
b3JtKGxheWVyLT5wbGF0Zm9ybUxheWVyKCksIENBVHJhbnNmb3JtM0RNYWtlU2NhbGUoc2NhbGVG
YWN0b3IsIHNjYWxlRmFjdG9yLCAxKSk7Ci0gICAgQ0FDRkxheWVyU2V0Q29udGVudHNTY2FsZShs
YXllci0+cGxhdGZvcm1MYXllcigpLCBzY2FsZUZhY3Rvcik7Ci0jZW5kaWYKLQogICAgIFdLQ0FD
RlZpZXdTZXRDb250ZXh0VXNlckRhdGEobV92aWV3LmdldCgpLCB1c2VyRGF0YSk7CiAgICAgV0tD
QUNGVmlld1NldExheWVyKG1fdmlldy5nZXQoKSwgbGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSk7CiAg
ICAgV0tDQUNGVmlld1NldENvbnRleHREaWRDaGFuZ2VDYWxsYmFjayhtX3ZpZXcuZ2V0KCksIGNv
bnRleHREaWRDaGFuZ2VDYWxsYmFjaywgdGhpcyk7CkBAIC0xNDAsNiArMTM0LDE0IEBAIHZvaWQg
V0tDQUNGVmlld0xheWVyVHJlZUhvc3Q6OnJlc2l6ZSgpCiAgICAgbV92aWV3TmVlZHNVcGRhdGUg
PSB0cnVlOwogfQogCit2b2lkIFdLQ0FDRlZpZXdMYXllclRyZWVIb3N0OjpzZXRTY2FsZUZhY3Rv
cihmbG9hdCBzY2FsZUZhY3RvcikKK3sKKyNpZiBIQVZFKENBQ0ZMQVlFUl9TRVRDT05URU5UU1ND
QUxFKQorICAgIENBQ0ZMYXllclNldFRyYW5zZm9ybShyb290TGF5ZXIoKS0+cGxhdGZvcm1MYXll
cigpLCBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKHNjYWxlRmFjdG9yLCBzY2FsZUZhY3RvciwgMSkp
OworICAgIENBQ0ZMYXllclNldENvbnRlbnRzU2NhbGUocm9vdExheWVyKCktPnBsYXRmb3JtTGF5
ZXIoKSwgc2NhbGVGYWN0b3IpOworI2VuZGlmCit9CisKIGJvb2wgV0tDQUNGVmlld0xheWVyVHJl
ZUhvc3Q6OmNyZWF0ZVJlbmRlcmVyKCkKIHsKICAgICB1cGRhdGVWaWV3SWZOZWVkZWQoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5
ZXJUcmVlSG9zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5oCShyZXZpc2lvbiAyMTE4NTUpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVy
VHJlZUhvc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBwcml2YXRlOgogCiAg
ICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVDb250ZXh0KHZvaWQqIHVzZXJEYXRhLCBQbGF0Zm9y
bUNBTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzaXplKCk7CisgICAgdmlydHVhbCB2b2lk
IHNldFNjYWxlRmFjdG9yKGZsb2F0KTsKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveVJlbmRlcmVy
KCk7CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoQ29udGV4dCgpOwogICAgIHZpcnR1YWwgdm9pZCBj
b250ZXh0RGlkQ2hhbmdlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vSW50UG9pbnRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9JbnRQb2ludFdpbi5jcHAJKHJldmlzaW9uIDIxMTg1NSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbnRQb2ludFdpbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTc5LDQgKzc5LDExIEBAIEludFBvaW50OjpvcGVyYXRvciBEMkQxX1BPSU5U
XzJVKCkgY29uc3QKICAgICByZXR1cm4gRDJEMTo6UG9pbnQyVShtX3gsIG1feSk7CiB9CiAKK0xQ
QVJBTSBJbnRQb2ludDo6bWFrZVNjYWxlZFBvaW50KEludFBvaW50IHBvaW50LCBmbG9hdCBzY2Fs
ZUZhY3RvcikKK3sKKyAgICBmbG9hdCBpbnZlcnNlU2NhbGVGYWN0b3IgPSAxLjBmIC8gc2NhbGVG
YWN0b3I7CisgICAgcG9pbnQuc2NhbGUoaW52ZXJzZVNjYWxlRmFjdG9yLCBpbnZlcnNlU2NhbGVG
YWN0b3IpOworICAgIHJldHVybiBNQUtFTFBBUkFNKHBvaW50LngoKSwgcG9pbnQueSgpKTsKK30K
KwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtTW91c2VFdmVu
dFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRm
b3JtTW91c2VFdmVudFdpbi5jcHAJKHJldmlzaW9uIDIxMTg1NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Miw4ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBJbnRQb2ludCBwb3Np
dGlvbkZvckV2ZW50KEhXTkQgaFduZCwgTFBBUkFNIGxQYXJhbSkKIHsKICAgICBJbnRQb2ludCBw
b2ludChHRVRfWF9MUEFSQU0obFBhcmFtKSwgR0VUX1lfTFBBUkFNKGxQYXJhbSkpOwotICAgIGZs
b2F0IGludmVyc2VTY2FsZUZhY3RvciA9IDEuMGYgLyBkZXZpY2VTY2FsZUZhY3RvckZvcldpbmRv
dyhoV25kKTsKLSAgICBwb2ludC5zY2FsZShpbnZlcnNlU2NhbGVGYWN0b3IsIGludmVyc2VTY2Fs
ZUZhY3Rvcik7CiAgICAgcmV0dXJuIHBvaW50OwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAkocmV2aXNpb24gMjExODU1KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzMSw2ICsxMzEsOSBAQCB2b2lkIFBvcHVwTWVudVdpbjo6c2hvdyhjb25zdCBJbnRSZWN0
JiByCiAgICAgaWYgKGNsaWVudFJlY3QoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIGlmICh2aWV3ICYmIHZpZXctPmZyYW1lKCkucGFnZSgpKQorICAgICAgICBtX3NjYWxlRmFj
dG9yID0gdmlldy0+ZnJhbWUoKS5wYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCk7CisKICAgICBI
V05EIGhvc3RXaW5kb3cgPSB2aWV3LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgp
OwogCiAgICAgaWYgKCFtX3Njcm9sbGJhciAmJiB2aXNpYmxlSXRlbXMoKSA8IGNsaWVudCgpLT5s
aXN0U2l6ZSgpKSB7CkBAIC05NTgsNyArOTYxLDcgQEAgTFJFU1VMVCBQb3B1cE1lbnVXaW46Ondu
ZFByb2MoSFdORCBoV25kLAogICAgICAgICAgICAgICAgIGlmIChzY3JvbGxiYXJDYXB0dXJpbmdN
b3VzZSgpIHx8IHNjcm9sbEJhclJlY3QuY29udGFpbnMobW91c2VQb2ludCkpIHsKICAgICAgICAg
ICAgICAgICAgICAgLy8gUHV0IHRoZSBwb2ludCBpbnRvIGNvb3JkaW5hdGVzIHJlbGF0aXZlIHRv
IHRoZSBzY3JvbGwgYmFyCiAgICAgICAgICAgICAgICAgICAgIG1vdXNlUG9pbnQubW92ZSgtc2Ny
b2xsQmFyUmVjdC54KCksIC1zY3JvbGxCYXJSZWN0LnkoKSk7Ci0gICAgICAgICAgICAgICAgICAg
IFBsYXRmb3JtTW91c2VFdmVudCBldmVudChoV25kLCBtZXNzYWdlLCB3UGFyYW0sIE1BS0VMUEFS
QU0obW91c2VQb2ludC54KCksIG1vdXNlUG9pbnQueSgpKSk7CisgICAgICAgICAgICAgICAgICAg
IFBsYXRmb3JtTW91c2VFdmVudCBldmVudChoV25kLCBtZXNzYWdlLCB3UGFyYW0sIEludFBvaW50
OjptYWtlU2NhbGVkUG9pbnQobW91c2VQb2ludCwgbV9zY2FsZUZhY3RvcikpOwogICAgICAgICAg
ICAgICAgICAgICBzY3JvbGxiYXIoKS0+bW91c2VNb3ZlZChldmVudCk7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTk5NSw3ICs5OTgsNyBAQCBMUkVT
VUxUIFBvcHVwTWVudVdpbjo6d25kUHJvYyhIV05EIGhXbmQsCiAgICAgICAgICAgICAgICAgaWYg
KHNjcm9sbEJhclJlY3QuY29udGFpbnMobW91c2VQb2ludCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgLy8gUHV0IHRoZSBwb2ludCBpbnRvIGNvb3JkaW5hdGVzIHJlbGF0aXZlIHRvIHRoZSBzY3Jv
bGwgYmFyCiAgICAgICAgICAgICAgICAgICAgIG1vdXNlUG9pbnQubW92ZSgtc2Nyb2xsQmFyUmVj
dC54KCksIC1zY3JvbGxCYXJSZWN0LnkoKSk7Ci0gICAgICAgICAgICAgICAgICAgIFBsYXRmb3Jt
TW91c2VFdmVudCBldmVudChoV25kLCBtZXNzYWdlLCB3UGFyYW0sIE1BS0VMUEFSQU0obW91c2VQ
b2ludC54KCksIG1vdXNlUG9pbnQueSgpKSk7CisgICAgICAgICAgICAgICAgICAgIFBsYXRmb3Jt
TW91c2VFdmVudCBldmVudChoV25kLCBtZXNzYWdlLCB3UGFyYW0sIEludFBvaW50OjptYWtlU2Nh
bGVkUG9pbnQobW91c2VQb2ludCwgbV9zY2FsZUZhY3RvcikpOwogICAgICAgICAgICAgICAgICAg
ICBzY3JvbGxiYXIoKS0+bW91c2VEb3duKGV2ZW50KTsKICAgICAgICAgICAgICAgICAgICAgc2V0
U2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UodHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMTAyMiw3ICsxMDI1LDcgQEAgTFJFU1VMVCBQb3B1cE1lbnVXaW46OnduZFByb2MoSFdO
RCBoV25kLAogICAgICAgICAgICAgICAgICAgICBzZXRTY3JvbGxiYXJDYXB0dXJpbmdNb3VzZShm
YWxzZSk7CiAgICAgICAgICAgICAgICAgICAgIC8vIFB1dCB0aGUgcG9pbnQgaW50byBjb29yZGlu
YXRlcyByZWxhdGl2ZSB0byB0aGUgc2Nyb2xsIGJhcgogICAgICAgICAgICAgICAgICAgICBtb3Vz
ZVBvaW50Lm1vdmUoLXNjcm9sbEJhclJlY3QueCgpLCAtc2Nyb2xsQmFyUmVjdC55KCkpOwotICAg
ICAgICAgICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoaFduZCwgbWVzc2FnZSwg
d1BhcmFtLCBNQUtFTFBBUkFNKG1vdXNlUG9pbnQueCgpLCBtb3VzZVBvaW50LnkoKSkpOworICAg
ICAgICAgICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoaFduZCwgbWVzc2FnZSwg
d1BhcmFtLCBJbnRQb2ludDo6bWFrZVNjYWxlZFBvaW50KG1vdXNlUG9pbnQsIG1fc2NhbGVGYWN0
b3IpKTsKICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsYmFyKCktPm1vdXNlVXAoZXZlbnQpOwog
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIGhhY2sgdG8gd29yayBhcm91
bmQgU2Nyb2xsYmFyIG5vdCBpbnZhbGlkYXRpbmcgY29ycmVjdGx5IHdoZW4gaXQgZG9lc24ndCBo
YXZlIGEgcGFyZW50IHdpZGdldAogICAgICAgICAgICAgICAgICAgICBSRUNUIHIgPSBzY3JvbGxC
YXJSZWN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4u
aAkocmV2aXNpb24gMjExODU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVw
TWVudVdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsNiArMTM0LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fd2FzQ2xpY2tlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Njcm9sbGJhckNhcHR1
cmluZ01vdXNlIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvd1BvcHVwIHsgZmFsc2UgfTsKKyAg
ICBmbG9hdCBtX3NjYWxlRmFjdG9yIHsgMSB9OwogCiAgICAgZnJpZW5kIGNsYXNzIEFjY2Vzc2li
bGVQb3B1cE1lbnU7CiB9OwpJbmRleDogU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMjEyNjI4KQor
KysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTctMDItMjAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgor
CisgICAgICAgIFtXaW5dIEN1c3RvbSBzY2FsZSBmYWN0b3IgaXMgbm90IGFwcGxpZWQgaW4gYWxs
IGNhc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY4MTE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2Ugc2hvdWxkIG5vdCBjYWxsIHRoZSBmdW5jdGlvbiBkZXZpY2VTY2FsZUZhY3RvckZvcldpbmRv
dyBkaXJlY3RseSwgc2luY2UgdGhpcworICAgICAgICB3aWxsIHJldHVybiB0aGUgc3lzdGVtIHNj
YWxlIGZhY3RvciwgYW5kIGlnbm9yZSB0aGUgY3VzdG9tIHNjYWxlIGZhY3Rvci4KKworICAgICAg
ICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6aGFuZGxlQ29udGV4dE1lbnVFdmVu
dCk6CisgICAgICAgIChXZWJWaWV3OjpoYW5kbGVNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYlZp
ZXc6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcpOgorCiAyMDE3LTAyLTA1ICBNYXR0aGV3IEhh
bnNvbiAgPG1hdHRoZXdfaGFuc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZXJnZSByMjExNTY5
LiByZGFyOi8vcHJvYmxlbS8zMDIyOTk5MApJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlz
aW9uIDIxMTg1NSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjU4LDcgKzE2NTgsNyBAQCBib29sIFdlYlZpZXc6OmhhbmRsZUNvbnRleHRNZW51
RXZlbnQoV1BBCiAgICAgRnJhbWUqIHRhcmdldEZyYW1lID0gcmVzdWx0LmlubmVyTm9uU2hhcmVk
Tm9kZSgpID8gcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpLT5kb2N1bWVudCgpLmZyYW1lKCkg
OiAmbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKIAogICAg
IHRhcmdldEZyYW1lLT52aWV3KCktPnNldEN1cnNvcihwb2ludGVyQ3Vyc29yKCkpOwotICAgIFBs
YXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KG1fdmlld1dpbmRvdywgV01fUkJVVFRPTlVQLCB3
UGFyYW0sIGxQYXJhbSk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQobV92aWV3
V2luZG93LCBXTV9SQlVUVE9OVVAsIHdQYXJhbSwgSW50UG9pbnQ6Om1ha2VTY2FsZWRQb2ludChJ
bnRQb2ludChHRVRfWF9MUEFSQU0obFBhcmFtKSwgR0VUX1lfTFBBUkFNKGxQYXJhbSkpLCBkZXZp
Y2VTY2FsZUZhY3RvcigpKSk7CiAgICAgYm9vbCBoYW5kbGVkRXZlbnQgPSB0YXJnZXRGcmFtZS0+
ZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRleHRNZW51RXZlbnQobW91c2VFdmVudCk7CiAgICAgaWYg
KCFoYW5kbGVkRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE4MjYsNyArMTgyNiw3
IEBAIGJvb2wgV2ViVmlldzo6aGFuZGxlTW91c2VFdmVudChVSU5UIG1lc3MKICAgICAvLyBDcmVh
dGUgb3VyIGV2ZW50LgogICAgIC8vIE9uIFdNX01PVVNFTEVBVkUgd2UgbmVlZCB0byBjcmVhdGUg
YSBtb3VzZW91dCBldmVudCwgc28gd2UgZm9yY2UgdGhlIHBvc2l0aW9uCiAgICAgLy8gb2YgdGhl
IGV2ZW50IHRvIGJlIGF0IChNSU5TSE9SVCwgTUlOU0hPUlQpLgotICAgIExQQVJBTSBwb3NpdGlv
biA9IChtZXNzYWdlID09IFdNX01PVVNFTEVBVkUpID8gKChNSU5TSE9SVCA8PCAxNikgfCBNSU5T
SE9SVCkgOiBsUGFyYW07CisgICAgTFBBUkFNIHBvc2l0aW9uID0gKG1lc3NhZ2UgPT0gV01fTU9V
U0VMRUFWRSkgPyAoKE1JTlNIT1JUIDw8IDE2KSB8IE1JTlNIT1JUKSA6IEludFBvaW50OjptYWtl
U2NhbGVkUG9pbnQoSW50UG9pbnQoR0VUX1hfTFBBUkFNKGxQYXJhbSksIEdFVF9ZX0xQQVJBTShs
UGFyYW0pKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1v
dXNlRXZlbnQobV92aWV3V2luZG93LCBtZXNzYWdlLCB3UGFyYW0sIHBvc2l0aW9uLCBtX21vdXNl
QWN0aXZhdGVkKTsKIAogICAgIHNldE1vdXNlQWN0aXZhdGVkKGZhbHNlKTsKQEAgLTcxNDcsNiAr
NzE0Nyw3IEBAIHZvaWQgV2ViVmlldzo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZygKICAgICAg
ICAgICAgIEFTU0VSVChtX3ZpZXdXaW5kb3cpOwogICAgICAgICAgICAgbV9sYXllclRyZWVIb3N0
LT5zZXRXaW5kb3cobV92aWV3V2luZG93KTsKICAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+
c2V0UGFnZShwYWdlKCkpOworICAgICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRTY2FsZUZh
Y3RvcihkZXZpY2VTY2FsZUZhY3RvcigpKTsKIAogICAgICAgICAgICAgLy8gRklYTUU6IFdlIGNv
dWxkIHBlcmhhcHMgZ2V0IGJldHRlciBwZXJmb3JtYW5jZSBieSBuZXZlciBhbGxvd2luZyB0aGlz
IGxheWVyIHRvCiAgICAgICAgICAgICAvLyBiZWNvbWUgdGlsZWQgKG9yIGNob29zaW5nIGEgaGln
aGVyLXRoYW4tbm9ybWFsIHRpbGluZyB0aHJlc2hvbGQpLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302128</attachid>
            <date>2017-02-20 01:48:52 -0800</date>
            <delta_ts>2017-02-20 03:03:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168117-20170220014608.patch</filename>
            <type>text/plain</type>
            <size>12285</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMjYyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDE3LTAyLTIwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2luXSBDdXN0b20gc2Nh
bGUgZmFjdG9yIGlzIG5vdCBhcHBsaWVkIGluIGFsbCBjYXNlcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODExNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBub3QgY2FsbCB0aGUgZnVu
Y3Rpb24gZGV2aWNlU2NhbGVGYWN0b3JGb3JXaW5kb3cgZGlyZWN0bHksIHNpbmNlIHRoaXMKKyAg
ICAgICAgd2lsbCByZXR1cm4gdGhlIHN5c3RlbSBzY2FsZSBmYWN0b3IsIGFuZCBpZ25vcmUgdGhl
IGN1c3RvbSBzY2FsZSBmYWN0b3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRQ
b2ludC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVl
SG9zdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5
ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9z
dDo6aW5pdGlhbGl6ZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGVmlld0xheWVy
VHJlZUhvc3Q6OnJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZWaWV3TGF5ZXJUcmVl
SG9zdDo6c2V0U2NhbGVGYWN0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dp
bi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbi9JbnRQb2ludFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRQb2ludDo6bWFrZVNj
YWxlZFBvaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2lu
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBvc2l0aW9uRm9yRXZlbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
V2luOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6d25kUHJvYyk6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oOgorCiAyMDE3LTAyLTIwICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OKHIyMTIzNDUpOiBbR1RLXSBBU1NFUlQoY29va2llQ2hhbmdlQ2FsbGJhY2tNYXAoKS5jb250
YWlucyhqYXIpKSBmYWlsZWQgaW4gV2ViQ29yZTo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXM6
NTQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuaAko
cmV2aXNpb24gMjEyNjI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50
UG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDYgKzE0Niw4IEBAIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBJbnRQb2ludChjb25zdCBEMkQxX1BPSU5UXzJGJik7IC8vIERvbid0IGRvIHRoaXMg
aW1wbGljaXRseSwgc2luY2UgaXQncyBsb3NzeS4KICAgICBvcGVyYXRvciBEMkQxX1BPSU5UXzJG
KCkgY29uc3Q7CiAgICAgb3BlcmF0b3IgRDJEMV9QT0lOVF8yVSgpIGNvbnN0OworCisgICAgc3Rh
dGljIExQQVJBTSBtYWtlU2NhbGVkUG9pbnQoSW50UG9pbnQsIGZsb2F0IHNjYWxlRmFjdG9yKTsK
ICNlbmRpZgogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0LmgJKHJldmlzaW9u
IDIxMjYyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNG
TGF5ZXJUcmVlSG9zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFBhZ2UoUGFnZSopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChIREMgPSBu
dWxscHRyKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzaXplKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRTY2FsZUZhY3RvcihmbG9hdCkgPSAwOwogICAgIHZvaWQgZmx1c2hQZW5kaW5nR3JhcGhp
Y3NMYXllckNoYW5nZXNTb29uKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZEludmVydENv
bG9ycyhib29sKTsKICNpZiBVU0UoQVZGT1VOREFUSU9OKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tDQUNG
Vmlld0xheWVyVHJlZUhvc3QuY3BwCShyZXZpc2lvbiAyMTI2MjgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjQsMTIgKzEyNCw2IEBAIHZvaWQgV0tDQUNGVmlld0xheWVyVHJl
ZUhvc3Q6OmNvbnRleHREaWQKIAogdm9pZCBXS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdDo6aW5pdGlh
bGl6ZUNvbnRleHQodm9pZCogdXNlckRhdGEsIFBsYXRmb3JtQ0FMYXllciogbGF5ZXIpCiB7Ci0j
aWYgSEFWRShDQUNGTEFZRVJfU0VUQ09OVEVOVFNTQ0FMRSkKLSAgICBmbG9hdCBzY2FsZUZhY3Rv
ciA9IGRldmljZVNjYWxlRmFjdG9yRm9yV2luZG93KG51bGxwdHIpOwotICAgIENBQ0ZMYXllclNl
dFRyYW5zZm9ybShsYXllci0+cGxhdGZvcm1MYXllcigpLCBDQVRyYW5zZm9ybTNETWFrZVNjYWxl
KHNjYWxlRmFjdG9yLCBzY2FsZUZhY3RvciwgMSkpOwotICAgIENBQ0ZMYXllclNldENvbnRlbnRz
U2NhbGUobGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSwgc2NhbGVGYWN0b3IpOwotI2VuZGlmCi0KICAg
ICBXS0NBQ0ZWaWV3U2V0Q29udGV4dFVzZXJEYXRhKG1fdmlldy5nZXQoKSwgdXNlckRhdGEpOwog
ICAgIFdLQ0FDRlZpZXdTZXRMYXllcihtX3ZpZXcuZ2V0KCksIGxheWVyLT5wbGF0Zm9ybUxheWVy
KCkpOwogICAgIFdLQ0FDRlZpZXdTZXRDb250ZXh0RGlkQ2hhbmdlQ2FsbGJhY2sobV92aWV3Lmdl
dCgpLCBjb250ZXh0RGlkQ2hhbmdlQ2FsbGJhY2ssIHRoaXMpOwpAQCAtMTQwLDYgKzEzNCwxNCBA
QCB2b2lkIFdLQ0FDRlZpZXdMYXllclRyZWVIb3N0OjpyZXNpemUoKQogICAgIG1fdmlld05lZWRz
VXBkYXRlID0gdHJ1ZTsKIH0KIAordm9pZCBXS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdDo6c2V0U2Nh
bGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCit7CisjaWYgSEFWRShDQUNGTEFZRVJfU0VUQ09O
VEVOVFNTQ0FMRSkKKyAgICBDQUNGTGF5ZXJTZXRUcmFuc2Zvcm0ocm9vdExheWVyKCktPnBsYXRm
b3JtTGF5ZXIoKSwgQ0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0
b3IsIDEpKTsKKyAgICBDQUNGTGF5ZXJTZXRDb250ZW50c1NjYWxlKHJvb3RMYXllcigpLT5wbGF0
Zm9ybUxheWVyKCksIHNjYWxlRmFjdG9yKTsKKyNlbmRpZgorfQorCiBib29sIFdLQ0FDRlZpZXdM
YXllclRyZWVIb3N0OjpjcmVhdGVSZW5kZXJlcigpCiB7CiAgICAgdXBkYXRlVmlld0lmTmVlZGVk
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tDQUNG
Vmlld0xheWVyVHJlZUhvc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuaAkocmV2aXNpb24gMjEy
NjI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1dLQ0FDRlZp
ZXdMYXllclRyZWVIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ29udGV4dCh2b2lkKiB1c2VyRGF0YSwg
UGxhdGZvcm1DQUxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHJlc2l6ZSgpOworICAgIHZpcnR1
YWwgdm9pZCBzZXRTY2FsZUZhY3RvcihmbG9hdCk7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lS
ZW5kZXJlcigpOwogICAgIHZpcnR1YWwgdm9pZCBmbHVzaENvbnRleHQoKTsKICAgICB2aXJ0dWFs
IHZvaWQgY29udGV4dERpZENoYW5nZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ludFBvaW50V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW50UG9pbnRXaW4uY3BwCShyZXZpc2lvbiAyMTI2Mjgp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW50UG9pbnRXaW4uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03OSw0ICs3OSwxMSBAQCBJbnRQb2ludDo6b3BlcmF0b3IgRDJE
MV9QT0lOVF8yVSgpIGNvbnN0CiAgICAgcmV0dXJuIEQyRDE6OlBvaW50MlUobV94LCBtX3kpOwog
fQogCitMUEFSQU0gSW50UG9pbnQ6Om1ha2VTY2FsZWRQb2ludChJbnRQb2ludCBwb2ludCwgZmxv
YXQgc2NhbGVGYWN0b3IpCit7CisgICAgZmxvYXQgaW52ZXJzZVNjYWxlRmFjdG9yID0gMS4wZiAv
IHNjYWxlRmFjdG9yOworICAgIHBvaW50LnNjYWxlKGludmVyc2VTY2FsZUZhY3RvciwgaW52ZXJz
ZVNjYWxlRmFjdG9yKTsKKyAgICByZXR1cm4gTUFLRUxQQVJBTShwb2ludC54KCksIHBvaW50Lnko
KSk7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1v
dXNlRXZlbnRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCShyZXZpc2lvbiAyMTI2MjgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDIsOCArNDIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgSW50UG9p
bnQgcG9zaXRpb25Gb3JFdmVudChIV05EIGhXbmQsIExQQVJBTSBsUGFyYW0pCiB7CiAgICAgSW50
UG9pbnQgcG9pbnQoR0VUX1hfTFBBUkFNKGxQYXJhbSksIEdFVF9ZX0xQQVJBTShsUGFyYW0pKTsK
LSAgICBmbG9hdCBpbnZlcnNlU2NhbGVGYWN0b3IgPSAxLjBmIC8gZGV2aWNlU2NhbGVGYWN0b3JG
b3JXaW5kb3coaFduZCk7Ci0gICAgcG9pbnQuc2NhbGUoaW52ZXJzZVNjYWxlRmFjdG9yLCBpbnZl
cnNlU2NhbGVGYWN0b3IpOwogICAgIHJldHVybiBwb2ludDsKIH0KIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAJKHJldmlzaW9uIDIxMjYyOCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzEsNiArMTMxLDkgQEAgdm9pZCBQb3B1cE1lbnVXaW46OnNob3coY29uc3Qg
SW50UmVjdCYgcgogICAgIGlmIChjbGllbnRSZWN0KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CiAKKyAgICBpZiAodmlldyAmJiB2aWV3LT5mcmFtZSgpLnBhZ2UoKSkKKyAgICAgICAgbV9z
Y2FsZUZhY3RvciA9IHZpZXctPmZyYW1lKCkucGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpOwor
CiAgICAgSFdORCBob3N0V2luZG93ID0gdmlldy0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VD
bGllbnQoKTsKIAogICAgIGlmICghbV9zY3JvbGxiYXIgJiYgdmlzaWJsZUl0ZW1zKCkgPCBjbGll
bnQoKS0+bGlzdFNpemUoKSkgewpAQCAtOTU4LDcgKzk2MSw3IEBAIExSRVNVTFQgUG9wdXBNZW51
V2luOjp3bmRQcm9jKEhXTkQgaFduZCwKICAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsYmFyQ2Fw
dHVyaW5nTW91c2UoKSB8fCBzY3JvbGxCYXJSZWN0LmNvbnRhaW5zKG1vdXNlUG9pbnQpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIC8vIFB1dCB0aGUgcG9pbnQgaW50byBjb29yZGluYXRlcyByZWxh
dGl2ZSB0byB0aGUgc2Nyb2xsIGJhcgogICAgICAgICAgICAgICAgICAgICBtb3VzZVBvaW50Lm1v
dmUoLXNjcm9sbEJhclJlY3QueCgpLCAtc2Nyb2xsQmFyUmVjdC55KCkpOwotICAgICAgICAgICAg
ICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBN
QUtFTFBBUkFNKG1vdXNlUG9pbnQueCgpLCBtb3VzZVBvaW50LnkoKSkpOworICAgICAgICAgICAg
ICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBJ
bnRQb2ludDo6bWFrZVNjYWxlZFBvaW50KG1vdXNlUG9pbnQsIG1fc2NhbGVGYWN0b3IpKTsKICAg
ICAgICAgICAgICAgICAgICAgc2Nyb2xsYmFyKCktPm1vdXNlTW92ZWQoZXZlbnQpOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC05OTUsNyArOTk4LDcg
QEAgTFJFU1VMVCBQb3B1cE1lbnVXaW46OnduZFByb2MoSFdORCBoV25kLAogICAgICAgICAgICAg
ICAgIGlmIChzY3JvbGxCYXJSZWN0LmNvbnRhaW5zKG1vdXNlUG9pbnQpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIC8vIFB1dCB0aGUgcG9pbnQgaW50byBjb29yZGluYXRlcyByZWxhdGl2ZSB0byB0
aGUgc2Nyb2xsIGJhcgogICAgICAgICAgICAgICAgICAgICBtb3VzZVBvaW50Lm1vdmUoLXNjcm9s
bEJhclJlY3QueCgpLCAtc2Nyb2xsQmFyUmVjdC55KCkpOwotICAgICAgICAgICAgICAgICAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBNQUtFTFBBUkFN
KG1vdXNlUG9pbnQueCgpLCBtb3VzZVBvaW50LnkoKSkpOworICAgICAgICAgICAgICAgICAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBJbnRQb2ludDo6
bWFrZVNjYWxlZFBvaW50KG1vdXNlUG9pbnQsIG1fc2NhbGVGYWN0b3IpKTsKICAgICAgICAgICAg
ICAgICAgICAgc2Nyb2xsYmFyKCktPm1vdXNlRG93bihldmVudCk7CiAgICAgICAgICAgICAgICAg
ICAgIHNldFNjcm9sbGJhckNhcHR1cmluZ01vdXNlKHRydWUpOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKQEAgLTEwMjIsNyArMTAyNSw3IEBAIExSRVNVTFQgUG9wdXBNZW51V2luOjp3bmRQ
cm9jKEhXTkQgaFduZCwKICAgICAgICAgICAgICAgICAgICAgc2V0U2Nyb2xsYmFyQ2FwdHVyaW5n
TW91c2UoZmFsc2UpOwogICAgICAgICAgICAgICAgICAgICAvLyBQdXQgdGhlIHBvaW50IGludG8g
Y29vcmRpbmF0ZXMgcmVsYXRpdmUgdG8gdGhlIHNjcm9sbCBiYXIKICAgICAgICAgICAgICAgICAg
ICAgbW91c2VQb2ludC5tb3ZlKC1zY3JvbGxCYXJSZWN0LngoKSwgLXNjcm9sbEJhclJlY3QueSgp
KTsKLSAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGhXbmQsIG1l
c3NhZ2UsIHdQYXJhbSwgTUFLRUxQQVJBTShtb3VzZVBvaW50LngoKSwgbW91c2VQb2ludC55KCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGhXbmQsIG1l
c3NhZ2UsIHdQYXJhbSwgSW50UG9pbnQ6Om1ha2VTY2FsZWRQb2ludChtb3VzZVBvaW50LCBtX3Nj
YWxlRmFjdG9yKSk7CiAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGJhcigpLT5tb3VzZVVwKGV2
ZW50KTsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSBoYWNrIHRvIHdv
cmsgYXJvdW5kIFNjcm9sbGJhciBub3QgaW52YWxpZGF0aW5nIGNvcnJlY3RseSB3aGVuIGl0IGRv
ZXNuJ3QgaGF2ZSBhIHBhcmVudCB3aWRnZXQKICAgICAgICAgICAgICAgICAgICAgUkVDVCByID0g
c2Nyb2xsQmFyUmVjdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBN
ZW51V2luLmgJKHJldmlzaW9uIDIxMjYyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9Qb3B1cE1lbnVXaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMTM0LDYgKzEzNCw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3dhc0NsaWNrZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zY3JvbGxi
YXJDYXB0dXJpbmdNb3VzZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3dQb3B1cCB7IGZhbHNl
IH07CisgICAgZmxvYXQgbV9zY2FsZUZhY3RvciB7IDEgfTsKIAogICAgIGZyaWVuZCBjbGFzcyBB
Y2Nlc3NpYmxlUG9wdXBNZW51OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIx
MjYyOCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDMwIEBACisyMDE3LTAyLTIwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBbV2luXSBDdXN0b20gc2NhbGUgZmFjdG9yIGlzIG5vdCBhcHBsaWVk
IGluIGFsbCBjYXNlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2ODExNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlIHNob3VsZCBub3QgY2FsbCB0aGUgZnVuY3Rpb24gZGV2aWNlU2NhbGVGYWN0b3JG
b3JXaW5kb3cgZGlyZWN0bHksIHNpbmNlIHRoaXMKKyAgICAgICAgd2lsbCByZXR1cm4gdGhlIHN5
c3RlbSBzY2FsZSBmYWN0b3IsIGFuZCBpZ25vcmUgdGhlIGN1c3RvbSBzY2FsZSBmYWN0b3IuCisK
KyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmhhbmRsZUNvbnRleHRN
ZW51RXZlbnQpOgorICAgICAgICAoV2ViVmlldzo6aGFuZGxlTW91c2VFdmVudCk6CisgICAgICAg
IChXZWJWaWV3OjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKToKKworMjAxNy0wMi0wMiAgUGVy
IEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dpbl1bSGlEUEld
IFNjYWxlIGZhY3RvciBpcyBhcHBsaWVkIHR3aWNlIGluIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
IG1vZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Njc3MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBC
YWNraW5nIGxheWVyIHNob3VsZCBub3QgYmUgc2NhbGVkIHdoZW4gQ0FDRkxheWVyU2V0Q29udGVu
dHNTY2FsZSBpcyB1c2VkIGZvciBzY2FsaW5nLgorCisgICAgICAgICogV2ViVmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3OjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKToKKwogMjAxNy0wMi0x
NiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIENo
cm9taXVtLXNwZWNpZmljIGNvZGUgdG8gY2FsbCBGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJlY3RE
YXRhVG9QbHVnaW4obnVsbHB0cikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCShyZXZpc2lvbiAy
MTI2MjgpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTY1OSw3ICsxNjU5LDcgQEAgYm9vbCBXZWJWaWV3OjpoYW5kbGVDb250ZXh0TWVudUV2ZW50
KFdQQQogICAgIEZyYW1lKiB0YXJnZXRGcmFtZSA9IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUo
KSA/IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKS0+ZG9jdW1lbnQoKS5mcmFtZSgpIDogJm1f
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAKICAgICB0YXJn
ZXRGcmFtZS0+dmlldygpLT5zZXRDdXJzb3IocG9pbnRlckN1cnNvcigpKTsKLSAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgbW91c2VFdmVudChtX3ZpZXdXaW5kb3csIFdNX1JCVVRUT05VUCwgd1BhcmFt
LCBsUGFyYW0pOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KG1fdmlld1dpbmRv
dywgV01fUkJVVFRPTlVQLCB3UGFyYW0sIEludFBvaW50OjptYWtlU2NhbGVkUG9pbnQoSW50UG9p
bnQoR0VUX1hfTFBBUkFNKGxQYXJhbSksIEdFVF9ZX0xQQVJBTShsUGFyYW0pKSwgZGV2aWNlU2Nh
bGVGYWN0b3IoKSkpOwogICAgIGJvb2wgaGFuZGxlZEV2ZW50ID0gdGFyZ2V0RnJhbWUtPmV2ZW50
SGFuZGxlcigpLnNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOwogICAgIGlmICghaGFu
ZGxlZEV2ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xODI3LDcgKzE4MjcsNyBAQCBi
b29sIFdlYlZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoVUlOVCBtZXNzCiAgICAgLy8gQ3JlYXRlIG91
ciBldmVudC4KICAgICAvLyBPbiBXTV9NT1VTRUxFQVZFIHdlIG5lZWQgdG8gY3JlYXRlIGEgbW91
c2VvdXQgZXZlbnQsIHNvIHdlIGZvcmNlIHRoZSBwb3NpdGlvbgogICAgIC8vIG9mIHRoZSBldmVu
dCB0byBiZSBhdCAoTUlOU0hPUlQsIE1JTlNIT1JUKS4KLSAgICBMUEFSQU0gcG9zaXRpb24gPSAo
bWVzc2FnZSA9PSBXTV9NT1VTRUxFQVZFKSA/ICgoTUlOU0hPUlQgPDwgMTYpIHwgTUlOU0hPUlQp
IDogbFBhcmFtOworICAgIExQQVJBTSBwb3NpdGlvbiA9IChtZXNzYWdlID09IFdNX01PVVNFTEVB
VkUpID8gKChNSU5TSE9SVCA8PCAxNikgfCBNSU5TSE9SVCkgOiBJbnRQb2ludDo6bWFrZVNjYWxl
ZFBvaW50KEludFBvaW50KEdFVF9YX0xQQVJBTShsUGFyYW0pLCBHRVRfWV9MUEFSQU0obFBhcmFt
KSksIGRldmljZVNjYWxlRmFjdG9yKCkpOwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2
ZW50KG1fdmlld1dpbmRvdywgbWVzc2FnZSwgd1BhcmFtLCBwb3NpdGlvbiwgbV9tb3VzZUFjdGl2
YXRlZCk7CiAKICAgICBzZXRNb3VzZUFjdGl2YXRlZChmYWxzZSk7CkBAIC03MTYwLDYgKzcxNjAs
NyBAQCB2b2lkIFdlYlZpZXc6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoCiAgICAgICAgICAg
ICBBU1NFUlQobV92aWV3V2luZG93KTsKICAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0
V2luZG93KG1fdmlld1dpbmRvdyk7CiAgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFBh
Z2UocGFnZSgpKTsKKyAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0U2NhbGVGYWN0b3Io
ZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBw
ZXJoYXBzIGdldCBiZXR0ZXIgcGVyZm9ybWFuY2UgYnkgbmV2ZXIgYWxsb3dpbmcgdGhpcyBsYXll
ciB0bwogICAgICAgICAgICAgLy8gYmVjb21lIHRpbGVkIChvciBjaG9vc2luZyBhIGhpZ2hlci10
aGFuLW5vcm1hbCB0aWxpbmcgdGhyZXNob2xkKS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302131</attachid>
            <date>2017-02-20 03:03:52 -0800</date>
            <delta_ts>2017-02-20 05:15:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168117-20170220030107.patch</filename>
            <type>text/plain</type>
            <size>12459</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMjYyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDE3LTAyLTIwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2luXSBDdXN0b20gc2Nh
bGUgZmFjdG9yIGlzIG5vdCBhcHBsaWVkIGluIGFsbCBjYXNlcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODExNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBub3QgY2FsbCB0aGUgZnVu
Y3Rpb24gZGV2aWNlU2NhbGVGYWN0b3JGb3JXaW5kb3cgZGlyZWN0bHksIHNpbmNlIHRoaXMKKyAg
ICAgICAgd2lsbCByZXR1cm4gdGhlIHN5c3RlbSBzY2FsZSBmYWN0b3IsIGFuZCBpZ25vcmUgdGhl
IGN1c3RvbSBzY2FsZSBmYWN0b3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRQ
b2ludC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVl
SG9zdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5
ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9z
dDo6aW5pdGlhbGl6ZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNGVmlld0xheWVy
VHJlZUhvc3Q6OnJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpXS0NBQ0ZWaWV3TGF5ZXJUcmVl
SG9zdDo6c2V0U2NhbGVGYWN0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dp
bi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbi9JbnRQb2ludFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRQb2ludDo6bWFrZVNj
YWxlZFBvaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2lu
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBvc2l0aW9uRm9yRXZlbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
V2luOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6d25kUHJvYyk6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oOgorCiAyMDE3LTAyLTIwICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OKHIyMTIzNDUpOiBbR1RLXSBBU1NFUlQoY29va2llQ2hhbmdlQ2FsbGJhY2tNYXAoKS5jb250
YWlucyhqYXIpKSBmYWlsZWQgaW4gV2ViQ29yZTo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXM6
NTQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuaAko
cmV2aXNpb24gMjEyNjI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50
UG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsOCBAQCB0eXBlZGVmIEQyRF9QT0lO
VF8yVSBEMkQxX1BPSU5UXzJVOwogCiBzdHJ1Y3QgRDJEX1BPSU5UXzJGOwogdHlwZWRlZiBEMkRf
UE9JTlRfMkYgRDJEMV9QT0lOVF8yRjsKKwordHlwZWRlZiBMT05HX1BUUiBMUEFSQU07CiAjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTQ2LDYgKzE0OCw4IEBAIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBJbnRQb2ludChjb25zdCBEMkQxX1BPSU5UXzJGJik7IC8vIERvbid0IGRvIHRo
aXMgaW1wbGljaXRseSwgc2luY2UgaXQncyBsb3NzeS4KICAgICBvcGVyYXRvciBEMkQxX1BPSU5U
XzJGKCkgY29uc3Q7CiAgICAgb3BlcmF0b3IgRDJEMV9QT0lOVF8yVSgpIGNvbnN0OworCisgICAg
c3RhdGljIExQQVJBTSBtYWtlU2NhbGVkUG9pbnQoSW50UG9pbnQsIGZsb2F0IHNjYWxlRmFjdG9y
KTsKICNlbmRpZgogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0LmgJKHJldmlz
aW9uIDIxMjYyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9D
QUNGTGF5ZXJUcmVlSG9zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFBhZ2UoUGFnZSopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChIREMg
PSBudWxscHRyKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzaXplKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzZXRTY2FsZUZhY3RvcihmbG9hdCkgPSAwOwogICAgIHZvaWQgZmx1c2hQZW5kaW5nR3Jh
cGhpY3NMYXllckNoYW5nZXNTb29uKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZEludmVy
dENvbG9ycyhib29sKTsKICNpZiBVU0UoQVZGT1VOREFUSU9OKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tD
QUNGVmlld0xheWVyVHJlZUhvc3QuY3BwCShyZXZpc2lvbiAyMTI2MjgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsMTIgKzEyNCw2IEBAIHZvaWQgV0tDQUNGVmlld0xheWVy
VHJlZUhvc3Q6OmNvbnRleHREaWQKIAogdm9pZCBXS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdDo6aW5p
dGlhbGl6ZUNvbnRleHQodm9pZCogdXNlckRhdGEsIFBsYXRmb3JtQ0FMYXllciogbGF5ZXIpCiB7
Ci0jaWYgSEFWRShDQUNGTEFZRVJfU0VUQ09OVEVOVFNTQ0FMRSkKLSAgICBmbG9hdCBzY2FsZUZh
Y3RvciA9IGRldmljZVNjYWxlRmFjdG9yRm9yV2luZG93KG51bGxwdHIpOwotICAgIENBQ0ZMYXll
clNldFRyYW5zZm9ybShsYXllci0+cGxhdGZvcm1MYXllcigpLCBDQVRyYW5zZm9ybTNETWFrZVNj
YWxlKHNjYWxlRmFjdG9yLCBzY2FsZUZhY3RvciwgMSkpOwotICAgIENBQ0ZMYXllclNldENvbnRl
bnRzU2NhbGUobGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSwgc2NhbGVGYWN0b3IpOwotI2VuZGlmCi0K
ICAgICBXS0NBQ0ZWaWV3U2V0Q29udGV4dFVzZXJEYXRhKG1fdmlldy5nZXQoKSwgdXNlckRhdGEp
OwogICAgIFdLQ0FDRlZpZXdTZXRMYXllcihtX3ZpZXcuZ2V0KCksIGxheWVyLT5wbGF0Zm9ybUxh
eWVyKCkpOwogICAgIFdLQ0FDRlZpZXdTZXRDb250ZXh0RGlkQ2hhbmdlQ2FsbGJhY2sobV92aWV3
LmdldCgpLCBjb250ZXh0RGlkQ2hhbmdlQ2FsbGJhY2ssIHRoaXMpOwpAQCAtMTQwLDYgKzEzNCwx
NCBAQCB2b2lkIFdLQ0FDRlZpZXdMYXllclRyZWVIb3N0OjpyZXNpemUoKQogICAgIG1fdmlld05l
ZWRzVXBkYXRlID0gdHJ1ZTsKIH0KIAordm9pZCBXS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdDo6c2V0
U2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCit7CisjaWYgSEFWRShDQUNGTEFZRVJfU0VU
Q09OVEVOVFNTQ0FMRSkKKyAgICBDQUNGTGF5ZXJTZXRUcmFuc2Zvcm0ocm9vdExheWVyKCktPnBs
YXRmb3JtTGF5ZXIoKSwgQ0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShzY2FsZUZhY3Rvciwgc2NhbGVG
YWN0b3IsIDEpKTsKKyAgICBDQUNGTGF5ZXJTZXRDb250ZW50c1NjYWxlKHJvb3RMYXllcigpLT5w
bGF0Zm9ybUxheWVyKCksIHNjYWxlRmFjdG9yKTsKKyNlbmRpZgorfQorCiBib29sIFdLQ0FDRlZp
ZXdMYXllclRyZWVIb3N0OjpjcmVhdGVSZW5kZXJlcigpCiB7CiAgICAgdXBkYXRlVmlld0lmTmVl
ZGVkKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tD
QUNGVmlld0xheWVyVHJlZUhvc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuaAkocmV2aXNpb24g
MjEyNjI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1dLQ0FD
RlZpZXdMYXllclRyZWVIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ29udGV4dCh2b2lkKiB1c2VyRGF0
YSwgUGxhdGZvcm1DQUxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHJlc2l6ZSgpOworICAgIHZp
cnR1YWwgdm9pZCBzZXRTY2FsZUZhY3RvcihmbG9hdCk7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ry
b3lSZW5kZXJlcigpOwogICAgIHZpcnR1YWwgdm9pZCBmbHVzaENvbnRleHQoKTsKICAgICB2aXJ0
dWFsIHZvaWQgY29udGV4dERpZENoYW5nZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ludFBvaW50V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW50UG9pbnRXaW4uY3BwCShyZXZpc2lvbiAyMTI2
MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW50UG9pbnRXaW4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw0ICs3OSwxMSBAQCBJbnRQb2ludDo6b3BlcmF0b3Ig
RDJEMV9QT0lOVF8yVSgpIGNvbnN0CiAgICAgcmV0dXJuIEQyRDE6OlBvaW50MlUobV94LCBtX3kp
OwogfQogCitMUEFSQU0gSW50UG9pbnQ6Om1ha2VTY2FsZWRQb2ludChJbnRQb2ludCBwb2ludCwg
ZmxvYXQgc2NhbGVGYWN0b3IpCit7CisgICAgZmxvYXQgaW52ZXJzZVNjYWxlRmFjdG9yID0gMS4w
ZiAvIHNjYWxlRmFjdG9yOworICAgIHBvaW50LnNjYWxlKGludmVyc2VTY2FsZUZhY3RvciwgaW52
ZXJzZVNjYWxlRmFjdG9yKTsKKyAgICByZXR1cm4gTUFLRUxQQVJBTShwb2ludC54KCksIHBvaW50
LnkoKSk7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9y
bU1vdXNlRXZlbnRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCShyZXZpc2lvbiAyMTI2MjgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDIsOCArNDIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgSW50
UG9pbnQgcG9zaXRpb25Gb3JFdmVudChIV05EIGhXbmQsIExQQVJBTSBsUGFyYW0pCiB7CiAgICAg
SW50UG9pbnQgcG9pbnQoR0VUX1hfTFBBUkFNKGxQYXJhbSksIEdFVF9ZX0xQQVJBTShsUGFyYW0p
KTsKLSAgICBmbG9hdCBpbnZlcnNlU2NhbGVGYWN0b3IgPSAxLjBmIC8gZGV2aWNlU2NhbGVGYWN0
b3JGb3JXaW5kb3coaFduZCk7Ci0gICAgcG9pbnQuc2NhbGUoaW52ZXJzZVNjYWxlRmFjdG9yLCBp
bnZlcnNlU2NhbGVGYWN0b3IpOwogICAgIHJldHVybiBwb2ludDsKIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAJKHJldmlzaW9uIDIxMjYy
OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzEsNiArMTMxLDkgQEAgdm9pZCBQb3B1cE1lbnVXaW46OnNob3coY29u
c3QgSW50UmVjdCYgcgogICAgIGlmIChjbGllbnRSZWN0KCkuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm47CiAKKyAgICBpZiAodmlldyAmJiB2aWV3LT5mcmFtZSgpLnBhZ2UoKSkKKyAgICAgICAg
bV9zY2FsZUZhY3RvciA9IHZpZXctPmZyYW1lKCkucGFnZSgpLT5kZXZpY2VTY2FsZUZhY3Rvcigp
OworCiAgICAgSFdORCBob3N0V2luZG93ID0gdmlldy0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBh
Z2VDbGllbnQoKTsKIAogICAgIGlmICghbV9zY3JvbGxiYXIgJiYgdmlzaWJsZUl0ZW1zKCkgPCBj
bGllbnQoKS0+bGlzdFNpemUoKSkgewpAQCAtOTU4LDcgKzk2MSw3IEBAIExSRVNVTFQgUG9wdXBN
ZW51V2luOjp3bmRQcm9jKEhXTkQgaFduZCwKICAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsYmFy
Q2FwdHVyaW5nTW91c2UoKSB8fCBzY3JvbGxCYXJSZWN0LmNvbnRhaW5zKG1vdXNlUG9pbnQpKSB7
CiAgICAgICAgICAgICAgICAgICAgIC8vIFB1dCB0aGUgcG9pbnQgaW50byBjb29yZGluYXRlcyBy
ZWxhdGl2ZSB0byB0aGUgc2Nyb2xsIGJhcgogICAgICAgICAgICAgICAgICAgICBtb3VzZVBvaW50
Lm1vdmUoLXNjcm9sbEJhclJlY3QueCgpLCAtc2Nyb2xsQmFyUmVjdC55KCkpOwotICAgICAgICAg
ICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFt
LCBNQUtFTFBBUkFNKG1vdXNlUG9pbnQueCgpLCBtb3VzZVBvaW50LnkoKSkpOworICAgICAgICAg
ICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFt
LCBJbnRQb2ludDo6bWFrZVNjYWxlZFBvaW50KG1vdXNlUG9pbnQsIG1fc2NhbGVGYWN0b3IpKTsK
ICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsYmFyKCktPm1vdXNlTW92ZWQoZXZlbnQpOwogICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC05OTUsNyArOTk4
LDcgQEAgTFJFU1VMVCBQb3B1cE1lbnVXaW46OnduZFByb2MoSFdORCBoV25kLAogICAgICAgICAg
ICAgICAgIGlmIChzY3JvbGxCYXJSZWN0LmNvbnRhaW5zKG1vdXNlUG9pbnQpKSB7CiAgICAgICAg
ICAgICAgICAgICAgIC8vIFB1dCB0aGUgcG9pbnQgaW50byBjb29yZGluYXRlcyByZWxhdGl2ZSB0
byB0aGUgc2Nyb2xsIGJhcgogICAgICAgICAgICAgICAgICAgICBtb3VzZVBvaW50Lm1vdmUoLXNj
cm9sbEJhclJlY3QueCgpLCAtc2Nyb2xsQmFyUmVjdC55KCkpOwotICAgICAgICAgICAgICAgICAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBNQUtFTFBB
UkFNKG1vdXNlUG9pbnQueCgpLCBtb3VzZVBvaW50LnkoKSkpOworICAgICAgICAgICAgICAgICAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBJbnRQb2lu
dDo6bWFrZVNjYWxlZFBvaW50KG1vdXNlUG9pbnQsIG1fc2NhbGVGYWN0b3IpKTsKICAgICAgICAg
ICAgICAgICAgICAgc2Nyb2xsYmFyKCktPm1vdXNlRG93bihldmVudCk7CiAgICAgICAgICAgICAg
ICAgICAgIHNldFNjcm9sbGJhckNhcHR1cmluZ01vdXNlKHRydWUpOwogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKQEAgLTEwMjIsNyArMTAyNSw3IEBAIExSRVNVTFQgUG9wdXBNZW51V2luOjp3
bmRQcm9jKEhXTkQgaFduZCwKICAgICAgICAgICAgICAgICAgICAgc2V0U2Nyb2xsYmFyQ2FwdHVy
aW5nTW91c2UoZmFsc2UpOwogICAgICAgICAgICAgICAgICAgICAvLyBQdXQgdGhlIHBvaW50IGlu
dG8gY29vcmRpbmF0ZXMgcmVsYXRpdmUgdG8gdGhlIHNjcm9sbCBiYXIKICAgICAgICAgICAgICAg
ICAgICAgbW91c2VQb2ludC5tb3ZlKC1zY3JvbGxCYXJSZWN0LngoKSwgLXNjcm9sbEJhclJlY3Qu
eSgpKTsKLSAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGhXbmQs
IG1lc3NhZ2UsIHdQYXJhbSwgTUFLRUxQQVJBTShtb3VzZVBvaW50LngoKSwgbW91c2VQb2ludC55
KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGhXbmQs
IG1lc3NhZ2UsIHdQYXJhbSwgSW50UG9pbnQ6Om1ha2VTY2FsZWRQb2ludChtb3VzZVBvaW50LCBt
X3NjYWxlRmFjdG9yKSk7CiAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGJhcigpLT5tb3VzZVVw
KGV2ZW50KTsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSBoYWNrIHRv
IHdvcmsgYXJvdW5kIFNjcm9sbGJhciBub3QgaW52YWxpZGF0aW5nIGNvcnJlY3RseSB3aGVuIGl0
IGRvZXNuJ3QgaGF2ZSBhIHBhcmVudCB3aWRnZXQKICAgICAgICAgICAgICAgICAgICAgUkVDVCBy
ID0gc2Nyb2xsQmFyUmVjdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1
cE1lbnVXaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9w
dXBNZW51V2luLmgJKHJldmlzaW9uIDIxMjYyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMTM0LDYgKzEzNCw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX3dhc0NsaWNrZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zY3Jv
bGxiYXJDYXB0dXJpbmdNb3VzZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3dQb3B1cCB7IGZh
bHNlIH07CisgICAgZmxvYXQgbV9zY2FsZUZhY3RvciB7IDEgfTsKIAogICAgIGZyaWVuZCBjbGFz
cyBBY2Nlc3NpYmxlUG9wdXBNZW51OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIxMjYyOCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDMwIEBACisyMDE3LTAyLTIwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFw
cGxlLmNvbT4KKworICAgICAgICBbV2luXSBDdXN0b20gc2NhbGUgZmFjdG9yIGlzIG5vdCBhcHBs
aWVkIGluIGFsbCBjYXNlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2ODExNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdlIHNob3VsZCBub3QgY2FsbCB0aGUgZnVuY3Rpb24gZGV2aWNlU2NhbGVGYWN0
b3JGb3JXaW5kb3cgZGlyZWN0bHksIHNpbmNlIHRoaXMKKyAgICAgICAgd2lsbCByZXR1cm4gdGhl
IHN5c3RlbSBzY2FsZSBmYWN0b3IsIGFuZCBpZ25vcmUgdGhlIGN1c3RvbSBzY2FsZSBmYWN0b3Iu
CisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmhhbmRsZUNvbnRl
eHRNZW51RXZlbnQpOgorICAgICAgICAoV2ViVmlldzo6aGFuZGxlTW91c2VFdmVudCk6CisgICAg
ICAgIChXZWJWaWV3OjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKToKKworMjAxNy0wMi0wMiAg
UGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dpbl1bSGlE
UEldIFNjYWxlIGZhY3RvciBpcyBhcHBsaWVkIHR3aWNlIGluIGFjY2VsZXJhdGVkIGNvbXBvc2l0
aW5nIG1vZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjc3MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBCYWNraW5nIGxheWVyIHNob3VsZCBub3QgYmUgc2NhbGVkIHdoZW4gQ0FDRkxheWVyU2V0Q29u
dGVudHNTY2FsZSBpcyB1c2VkIGZvciBzY2FsaW5nLgorCisgICAgICAgICogV2ViVmlldy5jcHA6
CisgICAgICAgIChXZWJWaWV3OjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKToKKwogMjAxNy0w
Mi0xNiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IENocm9taXVtLXNwZWNpZmljIGNvZGUgdG8gY2FsbCBGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJl
Y3REYXRhVG9QbHVnaW4obnVsbHB0cikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCShyZXZpc2lv
biAyMTI2MjgpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTY1OSw3ICsxNjU5LDcgQEAgYm9vbCBXZWJWaWV3OjpoYW5kbGVDb250ZXh0TWVudUV2
ZW50KFdQQQogICAgIEZyYW1lKiB0YXJnZXRGcmFtZSA9IHJlc3VsdC5pbm5lck5vblNoYXJlZE5v
ZGUoKSA/IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKS0+ZG9jdW1lbnQoKS5mcmFtZSgpIDog
Jm1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAKICAgICB0
YXJnZXRGcmFtZS0+dmlldygpLT5zZXRDdXJzb3IocG9pbnRlckN1cnNvcigpKTsKLSAgICBQbGF0
Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChtX3ZpZXdXaW5kb3csIFdNX1JCVVRUT05VUCwgd1Bh
cmFtLCBsUGFyYW0pOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KG1fdmlld1dp
bmRvdywgV01fUkJVVFRPTlVQLCB3UGFyYW0sIEludFBvaW50OjptYWtlU2NhbGVkUG9pbnQoSW50
UG9pbnQoR0VUX1hfTFBBUkFNKGxQYXJhbSksIEdFVF9ZX0xQQVJBTShsUGFyYW0pKSwgZGV2aWNl
U2NhbGVGYWN0b3IoKSkpOwogICAgIGJvb2wgaGFuZGxlZEV2ZW50ID0gdGFyZ2V0RnJhbWUtPmV2
ZW50SGFuZGxlcigpLnNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOwogICAgIGlmICgh
aGFuZGxlZEV2ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xODI3LDcgKzE4MjcsNyBA
QCBib29sIFdlYlZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoVUlOVCBtZXNzCiAgICAgLy8gQ3JlYXRl
IG91ciBldmVudC4KICAgICAvLyBPbiBXTV9NT1VTRUxFQVZFIHdlIG5lZWQgdG8gY3JlYXRlIGEg
bW91c2VvdXQgZXZlbnQsIHNvIHdlIGZvcmNlIHRoZSBwb3NpdGlvbgogICAgIC8vIG9mIHRoZSBl
dmVudCB0byBiZSBhdCAoTUlOU0hPUlQsIE1JTlNIT1JUKS4KLSAgICBMUEFSQU0gcG9zaXRpb24g
PSAobWVzc2FnZSA9PSBXTV9NT1VTRUxFQVZFKSA/ICgoTUlOU0hPUlQgPDwgMTYpIHwgTUlOU0hP
UlQpIDogbFBhcmFtOworICAgIExQQVJBTSBwb3NpdGlvbiA9IChtZXNzYWdlID09IFdNX01PVVNF
TEVBVkUpID8gKChNSU5TSE9SVCA8PCAxNikgfCBNSU5TSE9SVCkgOiBJbnRQb2ludDo6bWFrZVNj
YWxlZFBvaW50KEludFBvaW50KEdFVF9YX0xQQVJBTShsUGFyYW0pLCBHRVRfWV9MUEFSQU0obFBh
cmFtKSksIGRldmljZVNjYWxlRmFjdG9yKCkpOwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3Vz
ZUV2ZW50KG1fdmlld1dpbmRvdywgbWVzc2FnZSwgd1BhcmFtLCBwb3NpdGlvbiwgbV9tb3VzZUFj
dGl2YXRlZCk7CiAKICAgICBzZXRNb3VzZUFjdGl2YXRlZChmYWxzZSk7CkBAIC03MTYwLDYgKzcx
NjAsNyBAQCB2b2lkIFdlYlZpZXc6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoCiAgICAgICAg
ICAgICBBU1NFUlQobV92aWV3V2luZG93KTsKICAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+
c2V0V2luZG93KG1fdmlld1dpbmRvdyk7CiAgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNl
dFBhZ2UocGFnZSgpKTsKKyAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0U2NhbGVGYWN0
b3IoZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBjb3Vs
ZCBwZXJoYXBzIGdldCBiZXR0ZXIgcGVyZm9ybWFuY2UgYnkgbmV2ZXIgYWxsb3dpbmcgdGhpcyBs
YXllciB0bwogICAgICAgICAgICAgLy8gYmVjb21lIHRpbGVkIChvciBjaG9vc2luZyBhIGhpZ2hl
ci10aGFuLW5vcm1hbCB0aWxpbmcgdGhyZXNob2xkKS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302138</attachid>
            <date>2017-02-20 05:15:46 -0800</date>
            <delta_ts>2017-02-20 09:42:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168117-20170220051301.patch</filename>
            <type>text/plain</type>
            <size>11866</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMjYzNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE3LTAyLTIwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2luXSBDdXN0b20gc2Nh
bGUgZmFjdG9yIGlzIG5vdCBhcHBsaWVkIGluIGFsbCBjYXNlcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODExNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBub3QgY2FsbCB0aGUgZnVu
Y3Rpb24gZGV2aWNlU2NhbGVGYWN0b3JGb3JXaW5kb3cgZGlyZWN0bHksIHNpbmNlIHRoaXMKKyAg
ICAgICAgd2lsbCByZXR1cm4gdGhlIHN5c3RlbSBzY2FsZSBmYWN0b3IsIGFuZCBpZ25vcmUgdGhl
IGN1c3RvbSBzY2FsZSBmYWN0b3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93
aW4vQ0FDRkxheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93
aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNG
Vmlld0xheWVyVHJlZUhvc3Q6OmluaXRpYWxpemVDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OldLQ0FDRlZpZXdMYXllclRyZWVIb3N0OjpyZXNpemUpOgorICAgICAgICAoV2ViQ29yZTo6V0tD
QUNGVmlld0xheWVyVHJlZUhvc3Q6OnNldFNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS93aW4vR0RJVXRpbGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlOjptYWtlU2NhbGVk
UG9pbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cG9zaXRpb25Gb3JFdmVudCk6CisgICAgICAgICogcGxhdGZv
cm0vd2luL1BvcHVwTWVudVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46
OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjp3bmRQcm9jKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmg6CisKIDIwMTctMDItMTkgIERlYW4gSmFj
a3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIEFjdGl2YXRlL2RlYWN0aXZhdGUgaGln
aCBwZXJmb3JtYW5jZSBHUFUgd2hlbiByZXF1ZXN0ZWQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9z
dC5oCShyZXZpc2lvbiAyMTI2MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS93aW4vQ0FDRkxheWVyVHJlZUhvc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjks
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQYWdlKFBhZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnQoSERDID0gbnVsbHB0cik7CiAgICAgdmlydHVhbCB2b2lkIHJlc2l6ZSgpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2NhbGVGYWN0b3IoZmxvYXQpID0gMDsKICAgICB2b2lkIGZsdXNo
UGVuZGluZ0dyYXBoaWNzTGF5ZXJDaGFuZ2VzU29vbigpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRT
aG91bGRJbnZlcnRDb2xvcnMoYm9vbCk7CiAjaWYgVVNFKEFWRk9VTkRBVElPTikKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVl
SG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmNwcAkocmV2aXNpb24gMjEyNjI4KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1dLQ0FDRlZpZXdMYXllclRy
ZWVIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDEyICsxMjQsNiBAQCB2b2lkIFdLQ0FD
RlZpZXdMYXllclRyZWVIb3N0Ojpjb250ZXh0RGlkCiAKIHZvaWQgV0tDQUNGVmlld0xheWVyVHJl
ZUhvc3Q6OmluaXRpYWxpemVDb250ZXh0KHZvaWQqIHVzZXJEYXRhLCBQbGF0Zm9ybUNBTGF5ZXIq
IGxheWVyKQogewotI2lmIEhBVkUoQ0FDRkxBWUVSX1NFVENPTlRFTlRTU0NBTEUpCi0gICAgZmxv
YXQgc2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZhY3RvckZvcldpbmRvdyhudWxscHRyKTsKLSAg
ICBDQUNGTGF5ZXJTZXRUcmFuc2Zvcm0obGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSwgQ0FUcmFuc2Zv
cm0zRE1ha2VTY2FsZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IsIDEpKTsKLSAgICBDQUNGTGF5
ZXJTZXRDb250ZW50c1NjYWxlKGxheWVyLT5wbGF0Zm9ybUxheWVyKCksIHNjYWxlRmFjdG9yKTsK
LSNlbmRpZgotCiAgICAgV0tDQUNGVmlld1NldENvbnRleHRVc2VyRGF0YShtX3ZpZXcuZ2V0KCks
IHVzZXJEYXRhKTsKICAgICBXS0NBQ0ZWaWV3U2V0TGF5ZXIobV92aWV3LmdldCgpLCBsYXllci0+
cGxhdGZvcm1MYXllcigpKTsKICAgICBXS0NBQ0ZWaWV3U2V0Q29udGV4dERpZENoYW5nZUNhbGxi
YWNrKG1fdmlldy5nZXQoKSwgY29udGV4dERpZENoYW5nZUNhbGxiYWNrLCB0aGlzKTsKQEAgLTE0
MCw2ICsxMzQsMTQgQEAgdm9pZCBXS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdDo6cmVzaXplKCkKICAg
ICBtX3ZpZXdOZWVkc1VwZGF0ZSA9IHRydWU7CiB9CiAKK3ZvaWQgV0tDQUNGVmlld0xheWVyVHJl
ZUhvc3Q6OnNldFNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yKQoreworI2lmIEhBVkUoQ0FD
RkxBWUVSX1NFVENPTlRFTlRTU0NBTEUpCisgICAgQ0FDRkxheWVyU2V0VHJhbnNmb3JtKHJvb3RM
YXllcigpLT5wbGF0Zm9ybUxheWVyKCksIENBVHJhbnNmb3JtM0RNYWtlU2NhbGUoc2NhbGVGYWN0
b3IsIHNjYWxlRmFjdG9yLCAxKSk7CisgICAgQ0FDRkxheWVyU2V0Q29udGVudHNTY2FsZShyb290
TGF5ZXIoKS0+cGxhdGZvcm1MYXllcigpLCBzY2FsZUZhY3Rvcik7CisjZW5kaWYKK30KKwogYm9v
bCBXS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdDo6Y3JlYXRlUmVuZGVyZXIoKQogewogICAgIHVwZGF0
ZVZpZXdJZk5lZWRlZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmgJ
KHJldmlzaW9uIDIxMjYyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0
Niw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNvbnRleHQodm9p
ZCogdXNlckRhdGEsIFBsYXRmb3JtQ0FMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCByZXNpemUo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2NhbGVGYWN0b3IoZmxvYXQpOwogICAgIHZpcnR1YWwg
dm9pZCBkZXN0cm95UmVuZGVyZXIoKTsKICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb250ZXh0KCk7
CiAgICAgdmlydHVhbCB2b2lkIGNvbnRleHREaWRDaGFuZ2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9HRElVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vR0RJVXRpbGl0aWVzLmgJKHJldmlzaW9uIDIxMjYyOCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9HRElVdGlsaXRpZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMjYsMTIgKzI2LDIxIEBACiAjaWZuZGVmIEdESVV0aWx0aWVzX2gKICNkZWZpbmUgR0RJVXRp
bHRpZXNfaAogCisjaW5jbHVkZSA8SW50UG9pbnQuaD4KKwogI2luY2x1ZGUgPHdpbmRvd3MuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXRUJDT1JFX0VYUE9SVCBmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3RvckZvcldpbmRvdyhIV05EKTsKIAoraW5saW5lIExQQVJBTSBtYWtlU2NhbGVkUG9pbnQo
SW50UG9pbnQgcG9pbnQsIGZsb2F0IHNjYWxlRmFjdG9yKQoreworICAgIGZsb2F0IGludmVyc2VT
Y2FsZUZhY3RvciA9IDEuMGYgLyBzY2FsZUZhY3RvcjsKKyAgICBwb2ludC5zY2FsZShpbnZlcnNl
U2NhbGVGYWN0b3IsIGludmVyc2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIE1BS0VMUEFSQU0o
cG9pbnQueCgpLCBwb2ludC55KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBHRElVdGlsdGllc19oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
UGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcAkocmV2aXNpb24gMjEyNjI4KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtTW91c2VFdmVudFdpbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQyLDggKzQyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3Rh
dGljIEludFBvaW50IHBvc2l0aW9uRm9yRXZlbnQoSFdORCBoV25kLCBMUEFSQU0gbFBhcmFtKQog
ewogICAgIEludFBvaW50IHBvaW50KEdFVF9YX0xQQVJBTShsUGFyYW0pLCBHRVRfWV9MUEFSQU0o
bFBhcmFtKSk7Ci0gICAgZmxvYXQgaW52ZXJzZVNjYWxlRmFjdG9yID0gMS4wZiAvIGRldmljZVNj
YWxlRmFjdG9yRm9yV2luZG93KGhXbmQpOwotICAgIHBvaW50LnNjYWxlKGludmVyc2VTY2FsZUZh
Y3RvciwgaW52ZXJzZVNjYWxlRmFjdG9yKTsKICAgICByZXR1cm4gcG9pbnQ7CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCShyZXZpc2lv
biAyMTI2MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZvbnRTZWxlY3Rv
ci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVk
ZSAiR0RJVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFduZERDLmgiCkBAIC0xMzEsNiArMTMyLDkgQEAg
dm9pZCBQb3B1cE1lbnVXaW46OnNob3coY29uc3QgSW50UmVjdCYgcgogICAgIGlmIChjbGllbnRS
ZWN0KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAodmlldyAmJiB2aWV3
LT5mcmFtZSgpLnBhZ2UoKSkKKyAgICAgICAgbV9zY2FsZUZhY3RvciA9IHZpZXctPmZyYW1lKCku
cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpOworCiAgICAgSFdORCBob3N0V2luZG93ID0gdmll
dy0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKIAogICAgIGlmICghbV9zY3Jv
bGxiYXIgJiYgdmlzaWJsZUl0ZW1zKCkgPCBjbGllbnQoKS0+bGlzdFNpemUoKSkgewpAQCAtOTU4
LDcgKzk2Miw3IEBAIExSRVNVTFQgUG9wdXBNZW51V2luOjp3bmRQcm9jKEhXTkQgaFduZCwKICAg
ICAgICAgICAgICAgICBpZiAoc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UoKSB8fCBzY3JvbGxCYXJS
ZWN0LmNvbnRhaW5zKG1vdXNlUG9pbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFB1dCB0
aGUgcG9pbnQgaW50byBjb29yZGluYXRlcyByZWxhdGl2ZSB0byB0aGUgc2Nyb2xsIGJhcgogICAg
ICAgICAgICAgICAgICAgICBtb3VzZVBvaW50Lm1vdmUoLXNjcm9sbEJhclJlY3QueCgpLCAtc2Ny
b2xsQmFyUmVjdC55KCkpOwotICAgICAgICAgICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBNQUtFTFBBUkFNKG1vdXNlUG9pbnQueCgpLCBt
b3VzZVBvaW50LnkoKSkpOworICAgICAgICAgICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBtYWtlU2NhbGVkUG9pbnQobW91c2VQb2ludCwg
bV9zY2FsZUZhY3RvcikpOwogICAgICAgICAgICAgICAgICAgICBzY3JvbGxiYXIoKS0+bW91c2VN
b3ZlZChldmVudCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KQEAgLTk5NSw3ICs5OTksNyBAQCBMUkVTVUxUIFBvcHVwTWVudVdpbjo6d25kUHJvYyhIV05E
IGhXbmQsCiAgICAgICAgICAgICAgICAgaWYgKHNjcm9sbEJhclJlY3QuY29udGFpbnMobW91c2VQ
b2ludCkpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gUHV0IHRoZSBwb2ludCBpbnRvIGNvb3Jk
aW5hdGVzIHJlbGF0aXZlIHRvIHRoZSBzY3JvbGwgYmFyCiAgICAgICAgICAgICAgICAgICAgIG1v
dXNlUG9pbnQubW92ZSgtc2Nyb2xsQmFyUmVjdC54KCksIC1zY3JvbGxCYXJSZWN0LnkoKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudChoV25kLCBtZXNzYWdl
LCB3UGFyYW0sIE1BS0VMUEFSQU0obW91c2VQb2ludC54KCksIG1vdXNlUG9pbnQueSgpKSk7Cisg
ICAgICAgICAgICAgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudChoV25kLCBtZXNzYWdl
LCB3UGFyYW0sIG1ha2VTY2FsZWRQb2ludChtb3VzZVBvaW50LCBtX3NjYWxlRmFjdG9yKSk7CiAg
ICAgICAgICAgICAgICAgICAgIHNjcm9sbGJhcigpLT5tb3VzZURvd24oZXZlbnQpOwogICAgICAg
ICAgICAgICAgICAgICBzZXRTY3JvbGxiYXJDYXB0dXJpbmdNb3VzZSh0cnVlKTsKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDIyLDcgKzEwMjYsNyBAQCBMUkVTVUxUIFBvcHVwTWVu
dVdpbjo6d25kUHJvYyhIV05EIGhXbmQsCiAgICAgICAgICAgICAgICAgICAgIHNldFNjcm9sbGJh
ckNhcHR1cmluZ01vdXNlKGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgLy8gUHV0IHRoZSBw
b2ludCBpbnRvIGNvb3JkaW5hdGVzIHJlbGF0aXZlIHRvIHRoZSBzY3JvbGwgYmFyCiAgICAgICAg
ICAgICAgICAgICAgIG1vdXNlUG9pbnQubW92ZSgtc2Nyb2xsQmFyUmVjdC54KCksIC1zY3JvbGxC
YXJSZWN0LnkoKSk7Ci0gICAgICAgICAgICAgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVu
dChoV25kLCBtZXNzYWdlLCB3UGFyYW0sIE1BS0VMUEFSQU0obW91c2VQb2ludC54KCksIG1vdXNl
UG9pbnQueSgpKSk7CisgICAgICAgICAgICAgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVu
dChoV25kLCBtZXNzYWdlLCB3UGFyYW0sIG1ha2VTY2FsZWRQb2ludChtb3VzZVBvaW50LCBtX3Nj
YWxlRmFjdG9yKSk7CiAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGJhcigpLT5tb3VzZVVwKGV2
ZW50KTsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSBoYWNrIHRvIHdv
cmsgYXJvdW5kIFNjcm9sbGJhciBub3QgaW52YWxpZGF0aW5nIGNvcnJlY3RseSB3aGVuIGl0IGRv
ZXNuJ3QgaGF2ZSBhIHBhcmVudCB3aWRnZXQKICAgICAgICAgICAgICAgICAgICAgUkVDVCByID0g
c2Nyb2xsQmFyUmVjdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBN
ZW51V2luLmgJKHJldmlzaW9uIDIxMjYyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9Qb3B1cE1lbnVXaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMTM0LDYgKzEzNCw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3dhc0NsaWNrZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zY3JvbGxi
YXJDYXB0dXJpbmdNb3VzZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3dQb3B1cCB7IGZhbHNl
IH07CisgICAgZmxvYXQgbV9zY2FsZUZhY3RvciB7IDEgfTsKIAogICAgIGZyaWVuZCBjbGFzcyBB
Y2Nlc3NpYmxlUG9wdXBNZW51OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIx
MjYyOCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDMwIEBACisyMDE3LTAyLTIwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBbV2luXSBDdXN0b20gc2NhbGUgZmFjdG9yIGlzIG5vdCBhcHBsaWVk
IGluIGFsbCBjYXNlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2ODExNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlIHNob3VsZCBub3QgY2FsbCB0aGUgZnVuY3Rpb24gZGV2aWNlU2NhbGVGYWN0b3JG
b3JXaW5kb3cgZGlyZWN0bHksIHNpbmNlIHRoaXMKKyAgICAgICAgd2lsbCByZXR1cm4gdGhlIHN5
c3RlbSBzY2FsZSBmYWN0b3IsIGFuZCBpZ25vcmUgdGhlIGN1c3RvbSBzY2FsZSBmYWN0b3IuCisK
KyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmhhbmRsZUNvbnRleHRN
ZW51RXZlbnQpOgorICAgICAgICAoV2ViVmlldzo6aGFuZGxlTW91c2VFdmVudCk6CisgICAgICAg
IChXZWJWaWV3OjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKToKKworMjAxNy0wMi0wMiAgUGVy
IEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dpbl1bSGlEUEld
IFNjYWxlIGZhY3RvciBpcyBhcHBsaWVkIHR3aWNlIGluIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
IG1vZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Njc3MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBC
YWNraW5nIGxheWVyIHNob3VsZCBub3QgYmUgc2NhbGVkIHdoZW4gQ0FDRkxheWVyU2V0Q29udGVu
dHNTY2FsZSBpcyB1c2VkIGZvciBzY2FsaW5nLgorCisgICAgICAgICogV2ViVmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3OjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKToKKwogMjAxNy0wMi0x
NiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIENo
cm9taXVtLXNwZWNpZmljIGNvZGUgdG8gY2FsbCBGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJlY3RE
YXRhVG9QbHVnaW4obnVsbHB0cikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCShyZXZpc2lvbiAy
MTI2MjgpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTY1OSw3ICsxNjU5LDcgQEAgYm9vbCBXZWJWaWV3OjpoYW5kbGVDb250ZXh0TWVudUV2ZW50
KFdQQQogICAgIEZyYW1lKiB0YXJnZXRGcmFtZSA9IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUo
KSA/IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKS0+ZG9jdW1lbnQoKS5mcmFtZSgpIDogJm1f
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAKICAgICB0YXJn
ZXRGcmFtZS0+dmlldygpLT5zZXRDdXJzb3IocG9pbnRlckN1cnNvcigpKTsKLSAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgbW91c2VFdmVudChtX3ZpZXdXaW5kb3csIFdNX1JCVVRUT05VUCwgd1BhcmFt
LCBsUGFyYW0pOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KG1fdmlld1dpbmRv
dywgV01fUkJVVFRPTlVQLCB3UGFyYW0sIG1ha2VTY2FsZWRQb2ludChJbnRQb2ludChHRVRfWF9M
UEFSQU0obFBhcmFtKSwgR0VUX1lfTFBBUkFNKGxQYXJhbSkpLCBkZXZpY2VTY2FsZUZhY3Rvcigp
KSk7CiAgICAgYm9vbCBoYW5kbGVkRXZlbnQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCku
c2VuZENvbnRleHRNZW51RXZlbnQobW91c2VFdmVudCk7CiAgICAgaWYgKCFoYW5kbGVkRXZlbnQp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE4MjcsNyArMTgyNyw3IEBAIGJvb2wgV2ViVmll
dzo6aGFuZGxlTW91c2VFdmVudChVSU5UIG1lc3MKICAgICAvLyBDcmVhdGUgb3VyIGV2ZW50Lgog
ICAgIC8vIE9uIFdNX01PVVNFTEVBVkUgd2UgbmVlZCB0byBjcmVhdGUgYSBtb3VzZW91dCBldmVu
dCwgc28gd2UgZm9yY2UgdGhlIHBvc2l0aW9uCiAgICAgLy8gb2YgdGhlIGV2ZW50IHRvIGJlIGF0
IChNSU5TSE9SVCwgTUlOU0hPUlQpLgotICAgIExQQVJBTSBwb3NpdGlvbiA9IChtZXNzYWdlID09
IFdNX01PVVNFTEVBVkUpID8gKChNSU5TSE9SVCA8PCAxNikgfCBNSU5TSE9SVCkgOiBsUGFyYW07
CisgICAgTFBBUkFNIHBvc2l0aW9uID0gKG1lc3NhZ2UgPT0gV01fTU9VU0VMRUFWRSkgPyAoKE1J
TlNIT1JUIDw8IDE2KSB8IE1JTlNIT1JUKSA6IG1ha2VTY2FsZWRQb2ludChJbnRQb2ludChHRVRf
WF9MUEFSQU0obFBhcmFtKSwgR0VUX1lfTFBBUkFNKGxQYXJhbSkpLCBkZXZpY2VTY2FsZUZhY3Rv
cigpKTsKICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChtX3ZpZXdXaW5kb3csIG1l
c3NhZ2UsIHdQYXJhbSwgcG9zaXRpb24sIG1fbW91c2VBY3RpdmF0ZWQpOwogCiAgICAgc2V0TW91
c2VBY3RpdmF0ZWQoZmFsc2UpOwpAQCAtNzE2MCw2ICs3MTYwLDcgQEAgdm9pZCBXZWJWaWV3Ojpz
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKAogICAgICAgICAgICAgQVNTRVJUKG1fdmlld1dpbmRv
dyk7CiAgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFdpbmRvdyhtX3ZpZXdXaW5kb3cp
OwogICAgICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRQYWdlKHBhZ2UoKSk7CisgICAgICAg
ICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFNjYWxlRmFjdG9yKGRldmljZVNjYWxlRmFjdG9yKCkp
OwogCiAgICAgICAgICAgICAvLyBGSVhNRTogV2UgY291bGQgcGVyaGFwcyBnZXQgYmV0dGVyIHBl
cmZvcm1hbmNlIGJ5IG5ldmVyIGFsbG93aW5nIHRoaXMgbGF5ZXIgdG8KICAgICAgICAgICAgIC8v
IGJlY29tZSB0aWxlZCAob3IgY2hvb3NpbmcgYSBoaWdoZXItdGhhbi1ub3JtYWwgdGlsaW5nIHRo
cmVzaG9sZCkuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302153</attachid>
            <date>2017-02-20 09:42:34 -0800</date>
            <delta_ts>2017-02-20 09:51:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168117-20170220184015.patch</filename>
            <type>text/plain</type>
            <size>11465</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMjY0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE3LTAyLTIwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2luXSBDdXN0b20gc2Nh
bGUgZmFjdG9yIGlzIG5vdCBhcHBsaWVkIGluIGFsbCBjYXNlcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODExNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBub3QgY2FsbCB0aGUgZnVu
Y3Rpb24gZGV2aWNlU2NhbGVGYWN0b3JGb3JXaW5kb3cgZGlyZWN0bHksIHNpbmNlIHRoaXMKKyAg
ICAgICAgd2lsbCByZXR1cm4gdGhlIHN5c3RlbSBzY2FsZSBmYWN0b3IsIGFuZCBpZ25vcmUgdGhl
IGN1c3RvbSBzY2FsZSBmYWN0b3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93
aW4vQ0FDRkxheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93
aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V0tDQUNG
Vmlld0xheWVyVHJlZUhvc3Q6OmluaXRpYWxpemVDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OldLQ0FDRlZpZXdMYXllclRyZWVIb3N0OjpyZXNpemUpOgorICAgICAgICAoV2ViQ29yZTo6V0tD
QUNGVmlld0xheWVyVHJlZUhvc3Q6OnNldFNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS93aW4vR0RJVXRpbGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlOjptYWtlU2NhbGVk
UG9pbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cG9zaXRpb25Gb3JFdmVudCk6CisgICAgICAgICogcGxhdGZv
cm0vd2luL1BvcHVwTWVudVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46
OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjp3bmRQcm9jKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmg6CisKIDIwMTctMDItMjAgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJSVENdIEZpeCBzb21lIG1l
bW9yeSBsZWFrcyBpbiBsaWJ3ZWJydGMgYmluZGluZyBjb2RlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vQ0FDRkxheWVyVHJlZUhvc3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vQ0FDRkxheWVyVHJl
ZUhvc3QuaAkocmV2aXNpb24gMjEyNjQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDYg
KzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGFnZShQYWdlKik7CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50KEhEQyA9IG51bGxwdHIpOwogICAgIHZpcnR1YWwgdm9pZCByZXNpemUoKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNldFNjYWxlRmFjdG9yKGZsb2F0KSA9IDA7CiAgICAgdm9pZCBm
bHVzaFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdlc1Nvb24oKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0U2hvdWxkSW52ZXJ0Q29sb3JzKGJvb2wpOwogI2lmIFVTRShBVkZPVU5EQVRJT04pCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVy
VHJlZUhvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5jcHAJKHJldmlzaW9uIDIxMjY0NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5
ZXJUcmVlSG9zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNCwxMiArMTI0LDYgQEAgdm9pZCBX
S0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdDo6Y29udGV4dERpZAogCiB2b2lkIFdLQ0FDRlZpZXdMYXll
clRyZWVIb3N0Ojppbml0aWFsaXplQ29udGV4dCh2b2lkKiB1c2VyRGF0YSwgUGxhdGZvcm1DQUxh
eWVyKiBsYXllcikKIHsKLSNpZiBIQVZFKENBQ0ZMQVlFUl9TRVRDT05URU5UU1NDQUxFKQotICAg
IGZsb2F0IHNjYWxlRmFjdG9yID0gZGV2aWNlU2NhbGVGYWN0b3JGb3JXaW5kb3cobnVsbHB0cik7
Ci0gICAgQ0FDRkxheWVyU2V0VHJhbnNmb3JtKGxheWVyLT5wbGF0Zm9ybUxheWVyKCksIENBVHJh
bnNmb3JtM0RNYWtlU2NhbGUoc2NhbGVGYWN0b3IsIHNjYWxlRmFjdG9yLCAxKSk7Ci0gICAgQ0FD
RkxheWVyU2V0Q29udGVudHNTY2FsZShsYXllci0+cGxhdGZvcm1MYXllcigpLCBzY2FsZUZhY3Rv
cik7Ci0jZW5kaWYKLQogICAgIFdLQ0FDRlZpZXdTZXRDb250ZXh0VXNlckRhdGEobV92aWV3Lmdl
dCgpLCB1c2VyRGF0YSk7CiAgICAgV0tDQUNGVmlld1NldExheWVyKG1fdmlldy5nZXQoKSwgbGF5
ZXItPnBsYXRmb3JtTGF5ZXIoKSk7CiAgICAgV0tDQUNGVmlld1NldENvbnRleHREaWRDaGFuZ2VD
YWxsYmFjayhtX3ZpZXcuZ2V0KCksIGNvbnRleHREaWRDaGFuZ2VDYWxsYmFjaywgdGhpcyk7CkBA
IC0xNDAsNiArMTM0LDE0IEBAIHZvaWQgV0tDQUNGVmlld0xheWVyVHJlZUhvc3Q6OnJlc2l6ZSgp
CiAgICAgbV92aWV3TmVlZHNVcGRhdGUgPSB0cnVlOwogfQogCit2b2lkIFdLQ0FDRlZpZXdMYXll
clRyZWVIb3N0OjpzZXRTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKK3sKKyNpZiBIQVZF
KENBQ0ZMQVlFUl9TRVRDT05URU5UU1NDQUxFKQorICAgIENBQ0ZMYXllclNldFRyYW5zZm9ybShy
b290TGF5ZXIoKS0+cGxhdGZvcm1MYXllcigpLCBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKHNjYWxl
RmFjdG9yLCBzY2FsZUZhY3RvciwgMSkpOworICAgIENBQ0ZMYXllclNldENvbnRlbnRzU2NhbGUo
cm9vdExheWVyKCktPnBsYXRmb3JtTGF5ZXIoKSwgc2NhbGVGYWN0b3IpOworI2VuZGlmCit9CisK
IGJvb2wgV0tDQUNGVmlld0xheWVyVHJlZUhvc3Q6OmNyZWF0ZVJlbmRlcmVyKCkKIHsKICAgICB1
cGRhdGVWaWV3SWZOZWVkZWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9z
dC5oCShyZXZpc2lvbiAyMTI2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDYs
NiArNDYsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVDb250ZXh0
KHZvaWQqIHVzZXJEYXRhLCBQbGF0Zm9ybUNBTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVz
aXplKCk7CisgICAgdmlydHVhbCB2b2lkIHNldFNjYWxlRmFjdG9yKGZsb2F0KTsKICAgICB2aXJ0
dWFsIHZvaWQgZGVzdHJveVJlbmRlcmVyKCk7CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoQ29udGV4
dCgpOwogICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGlkQ2hhbmdlKCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJVXRpbGl0aWVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESVV0aWxpdGllcy5oCShyZXZpc2lvbiAyMTI2NDcpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDEyICsyNiwyMSBAQAogI2lmbmRlZiBHRElVdGlsdGllc19oCiAjZGVmaW5lIEdE
SVV0aWx0aWVzX2gKIAorI2luY2x1ZGUgPEludFBvaW50Lmg+CisKICNpbmNsdWRlIDx3aW5kb3dz
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV0VCQ09SRV9FWFBPUlQgZmxvYXQgZGV2aWNl
U2NhbGVGYWN0b3JGb3JXaW5kb3coSFdORCk7CiAKK2lubGluZSBMUEFSQU0gbWFrZVNjYWxlZFBv
aW50KEludFBvaW50IHBvaW50LCBmbG9hdCBzY2FsZUZhY3RvcikKK3sKKyAgICBmbG9hdCBpbnZl
cnNlU2NhbGVGYWN0b3IgPSAxLjBmIC8gc2NhbGVGYWN0b3I7CisgICAgcG9pbnQuc2NhbGUoaW52
ZXJzZVNjYWxlRmFjdG9yLCBpbnZlcnNlU2NhbGVGYWN0b3IpOworICAgIHJldHVybiBNQUtFTFBB
UkFNKHBvaW50LngoKSwgcG9pbnQueSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gR0RJVXRpbHRpZXNfaApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1BsYXRmb3JtTW91c2VFdmVudFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtTW91c2VFdmVudFdpbi5jcHAJKHJldmlzaW9uIDIxMjY0
NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw4ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IHN0YXRpYyBJbnRQb2ludCBwb3NpdGlvbkZvckV2ZW50KEhXTkQgaFduZCwgTFBBUkFNIGxQYXJh
bSkKIHsKICAgICBJbnRQb2ludCBwb2ludChHRVRfWF9MUEFSQU0obFBhcmFtKSwgR0VUX1lfTFBB
UkFNKGxQYXJhbSkpOwotICAgIGZsb2F0IGludmVyc2VTY2FsZUZhY3RvciA9IDEuMGYgLyBkZXZp
Y2VTY2FsZUZhY3RvckZvcldpbmRvdyhoV25kKTsKLSAgICBwb2ludC5zY2FsZShpbnZlcnNlU2Nh
bGVGYWN0b3IsIGludmVyc2VTY2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIHBvaW50OwogfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAkocmV2
aXNpb24gMjEyNjQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJGb250U2Vs
ZWN0b3IuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2lu
Y2x1ZGUgIkdESVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhXbmREQy5oIgpAQCAtMTMxLDYgKzEzMiw5
IEBAIHZvaWQgUG9wdXBNZW51V2luOjpzaG93KGNvbnN0IEludFJlY3QmIHIKICAgICBpZiAoY2xp
ZW50UmVjdCgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKHZpZXcgJiYg
dmlldy0+ZnJhbWUoKS5wYWdlKCkpCisgICAgICAgIG1fc2NhbGVGYWN0b3IgPSB2aWV3LT5mcmFt
ZSgpLnBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKKwogICAgIEhXTkQgaG9zdFdpbmRvdyA9
IHZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7CiAKICAgICBpZiAoIW1f
c2Nyb2xsYmFyICYmIHZpc2libGVJdGVtcygpIDwgY2xpZW50KCktPmxpc3RTaXplKCkpIHsKQEAg
LTk1OCw3ICs5NjIsNyBAQCBMUkVTVUxUIFBvcHVwTWVudVdpbjo6d25kUHJvYyhIV05EIGhXbmQs
CiAgICAgICAgICAgICAgICAgaWYgKHNjcm9sbGJhckNhcHR1cmluZ01vdXNlKCkgfHwgc2Nyb2xs
QmFyUmVjdC5jb250YWlucyhtb3VzZVBvaW50KSkgewogICAgICAgICAgICAgICAgICAgICAvLyBQ
dXQgdGhlIHBvaW50IGludG8gY29vcmRpbmF0ZXMgcmVsYXRpdmUgdG8gdGhlIHNjcm9sbCBiYXIK
ICAgICAgICAgICAgICAgICAgICAgbW91c2VQb2ludC5tb3ZlKC1zY3JvbGxCYXJSZWN0LngoKSwg
LXNjcm9sbEJhclJlY3QueSgpKTsKLSAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IGV2ZW50KGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgTUFLRUxQQVJBTShtb3VzZVBvaW50Lngo
KSwgbW91c2VQb2ludC55KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IGV2ZW50KGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbWFrZVNjYWxlZFBvaW50KG1vdXNlUG9p
bnQsIG1fc2NhbGVGYWN0b3IpKTsKICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsYmFyKCktPm1v
dXNlTW92ZWQoZXZlbnQpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICB9CkBAIC05OTUsNyArOTk5LDcgQEAgTFJFU1VMVCBQb3B1cE1lbnVXaW46OnduZFByb2Mo
SFdORCBoV25kLAogICAgICAgICAgICAgICAgIGlmIChzY3JvbGxCYXJSZWN0LmNvbnRhaW5zKG1v
dXNlUG9pbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFB1dCB0aGUgcG9pbnQgaW50byBj
b29yZGluYXRlcyByZWxhdGl2ZSB0byB0aGUgc2Nyb2xsIGJhcgogICAgICAgICAgICAgICAgICAg
ICBtb3VzZVBvaW50Lm1vdmUoLXNjcm9sbEJhclJlY3QueCgpLCAtc2Nyb2xsQmFyUmVjdC55KCkp
OwotICAgICAgICAgICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoaFduZCwgbWVz
c2FnZSwgd1BhcmFtLCBNQUtFTFBBUkFNKG1vdXNlUG9pbnQueCgpLCBtb3VzZVBvaW50LnkoKSkp
OworICAgICAgICAgICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoaFduZCwgbWVz
c2FnZSwgd1BhcmFtLCBtYWtlU2NhbGVkUG9pbnQobW91c2VQb2ludCwgbV9zY2FsZUZhY3Rvcikp
OwogICAgICAgICAgICAgICAgICAgICBzY3JvbGxiYXIoKS0+bW91c2VEb3duKGV2ZW50KTsKICAg
ICAgICAgICAgICAgICAgICAgc2V0U2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UodHJ1ZSk7CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTAyMiw3ICsxMDI2LDcgQEAgTFJFU1VMVCBQb3B1
cE1lbnVXaW46OnduZFByb2MoSFdORCBoV25kLAogICAgICAgICAgICAgICAgICAgICBzZXRTY3Jv
bGxiYXJDYXB0dXJpbmdNb3VzZShmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgIC8vIFB1dCB0
aGUgcG9pbnQgaW50byBjb29yZGluYXRlcyByZWxhdGl2ZSB0byB0aGUgc2Nyb2xsIGJhcgogICAg
ICAgICAgICAgICAgICAgICBtb3VzZVBvaW50Lm1vdmUoLXNjcm9sbEJhclJlY3QueCgpLCAtc2Ny
b2xsQmFyUmVjdC55KCkpOwotICAgICAgICAgICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBNQUtFTFBBUkFNKG1vdXNlUG9pbnQueCgpLCBt
b3VzZVBvaW50LnkoKSkpOworICAgICAgICAgICAgICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBtYWtlU2NhbGVkUG9pbnQobW91c2VQb2ludCwg
bV9zY2FsZUZhY3RvcikpOwogICAgICAgICAgICAgICAgICAgICBzY3JvbGxiYXIoKS0+bW91c2VV
cChldmVudCk7CiAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgaGFjayB0
byB3b3JrIGFyb3VuZCBTY3JvbGxiYXIgbm90IGludmFsaWRhdGluZyBjb3JyZWN0bHkgd2hlbiBp
dCBkb2Vzbid0IGhhdmUgYSBwYXJlbnQgd2lkZ2V0CiAgICAgICAgICAgICAgICAgICAgIFJFQ1Qg
ciA9IHNjcm9sbEJhclJlY3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9w
dXBNZW51V2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bv
cHVwTWVudVdpbi5oCShyZXZpc2lvbiAyMTI2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUG9wdXBNZW51V2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNCw2ICsxMzQsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV93YXNDbGlja2VkIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2Ny
b2xsYmFyQ2FwdHVyaW5nTW91c2UgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG93UG9wdXAgeyBm
YWxzZSB9OworICAgIGZsb2F0IG1fc2NhbGVGYWN0b3IgeyAxIH07CiAKICAgICBmcmllbmQgY2xh
c3MgQWNjZXNzaWJsZVBvcHVwTWVudTsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lv
biAyMTI2NDcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxOCBAQAorMjAxNy0wMi0yMCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dpbl0gQ3VzdG9tIHNjYWxlIGZhY3RvciBpcyBub3QgYXBw
bGllZCBpbiBhbGwgY2FzZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjgxMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXZSBzaG91bGQgbm90IGNhbGwgdGhlIGZ1bmN0aW9uIGRldmljZVNjYWxlRmFj
dG9yRm9yV2luZG93IGRpcmVjdGx5LCBzaW5jZSB0aGlzCisgICAgICAgIHdpbGwgcmV0dXJuIHRo
ZSBzeXN0ZW0gc2NhbGUgZmFjdG9yLCBhbmQgaWdub3JlIHRoZSBjdXN0b20gc2NhbGUgZmFjdG9y
LgorCisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpoYW5kbGVDb250
ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKFdlYlZpZXc6OmhhbmRsZU1vdXNlRXZlbnQpOgorICAg
ICAgICAoV2ViVmlldzo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZyk6CisKIDIwMTctMDItMTYg
IERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBDaHJv
bWl1bS1zcGVjaWZpYyBjb2RlIHRvIGNhbGwgRnJhbWVMb2FkZXJDbGllbnQ6OnJlZGlyZWN0RGF0
YVRvUGx1Z2luKG51bGxwdHIpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24gMjEy
NjQ3KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE2NTksNyArMTY1OSw3IEBAIGJvb2wgV2ViVmlldzo6aGFuZGxlQ29udGV4dE1lbnVFdmVudChX
UEEKICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSByZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkg
PyByZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCktPmRvY3VtZW50KCkuZnJhbWUoKSA6ICZtX3Bh
Z2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwogCiAgICAgdGFyZ2V0
RnJhbWUtPnZpZXcoKS0+c2V0Q3Vyc29yKHBvaW50ZXJDdXJzb3IoKSk7Ci0gICAgUGxhdGZvcm1N
b3VzZUV2ZW50IG1vdXNlRXZlbnQobV92aWV3V2luZG93LCBXTV9SQlVUVE9OVVAsIHdQYXJhbSwg
bFBhcmFtKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChtX3ZpZXdXaW5kb3cs
IFdNX1JCVVRUT05VUCwgd1BhcmFtLCBtYWtlU2NhbGVkUG9pbnQoSW50UG9pbnQoR0VUX1hfTFBB
UkFNKGxQYXJhbSksIEdFVF9ZX0xQQVJBTShsUGFyYW0pKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSkp
OwogICAgIGJvb2wgaGFuZGxlZEV2ZW50ID0gdGFyZ2V0RnJhbWUtPmV2ZW50SGFuZGxlcigpLnNl
bmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOwogICAgIGlmICghaGFuZGxlZEV2ZW50KQog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xODI3LDcgKzE4MjcsNyBAQCBib29sIFdlYlZpZXc6
OmhhbmRsZU1vdXNlRXZlbnQoVUlOVCBtZXNzCiAgICAgLy8gQ3JlYXRlIG91ciBldmVudC4KICAg
ICAvLyBPbiBXTV9NT1VTRUxFQVZFIHdlIG5lZWQgdG8gY3JlYXRlIGEgbW91c2VvdXQgZXZlbnQs
IHNvIHdlIGZvcmNlIHRoZSBwb3NpdGlvbgogICAgIC8vIG9mIHRoZSBldmVudCB0byBiZSBhdCAo
TUlOU0hPUlQsIE1JTlNIT1JUKS4KLSAgICBMUEFSQU0gcG9zaXRpb24gPSAobWVzc2FnZSA9PSBX
TV9NT1VTRUxFQVZFKSA/ICgoTUlOU0hPUlQgPDwgMTYpIHwgTUlOU0hPUlQpIDogbFBhcmFtOwor
ICAgIExQQVJBTSBwb3NpdGlvbiA9IChtZXNzYWdlID09IFdNX01PVVNFTEVBVkUpID8gKChNSU5T
SE9SVCA8PCAxNikgfCBNSU5TSE9SVCkgOiBtYWtlU2NhbGVkUG9pbnQoSW50UG9pbnQoR0VUX1hf
TFBBUkFNKGxQYXJhbSksIEdFVF9ZX0xQQVJBTShsUGFyYW0pKSwgZGV2aWNlU2NhbGVGYWN0b3Io
KSk7CiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQobV92aWV3V2luZG93LCBtZXNz
YWdlLCB3UGFyYW0sIHBvc2l0aW9uLCBtX21vdXNlQWN0aXZhdGVkKTsKIAogICAgIHNldE1vdXNl
QWN0aXZhdGVkKGZhbHNlKTsKQEAgLTcxNjAsNiArNzE2MCw3IEBAIHZvaWQgV2ViVmlldzo6c2V0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZygKICAgICAgICAgICAgIEFTU0VSVChtX3ZpZXdXaW5kb3cp
OwogICAgICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRXaW5kb3cobV92aWV3V2luZG93KTsK
ICAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0UGFnZShwYWdlKCkpOworICAgICAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT5zZXRTY2FsZUZhY3RvcihkZXZpY2VTY2FsZUZhY3RvcigpKTsK
IAogICAgICAgICAgICAgLy8gRklYTUU6IFdlIGNvdWxkIHBlcmhhcHMgZ2V0IGJldHRlciBwZXJm
b3JtYW5jZSBieSBuZXZlciBhbGxvd2luZyB0aGlzIGxheWVyIHRvCiAgICAgICAgICAgICAvLyBi
ZWNvbWUgdGlsZWQgKG9yIGNob29zaW5nIGEgaGlnaGVyLXRoYW4tbm9ybWFsIHRpbGluZyB0aHJl
c2hvbGQpLgo=
</data>
<flag name="review"
          id="323881"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>