<?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>23365</bug_id>
          
          <creation_ts>2009-01-15 15:22:27 -0800</creation_ts>
          <short_desc>Hook up accelerated compositing layers into WebHTMLView</short_desc>
          <delta_ts>2009-03-02 11:51:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>23359</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dino</cc>
    
    <cc>hyatt</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>105981</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-01-15 15:22:27 -0800</bug_when>
    <thetext>This bug tracks changes relate to hooking up GraphicsLayers into the native view system on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106007</commentid>
    <comment_count>1</comment_count>
      <attachid>26781</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-01-15 18:36:12 -0800</bug_when>
    <thetext>Created attachment 26781
Patch, changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107863</commentid>
    <comment_count>2</comment_count>
      <attachid>26781</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-01-31 16:35:06 -0800</bug_when>
    <thetext>Comment on attachment 26781
Patch, changelog

&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +    class GraphicsLayer;
&gt; +#endif
&gt;      class HitTestResult;

Conditional sections should be in separate paragraphs after the unconditional, not sorted in. If existing conditionals are not done in this style, please change them.

&gt;  #include &quot;Page.h&quot;
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +#include &quot;RenderLayerCompositor.h&quot;
&gt; +#endif
&gt;  #include &quot;RenderPart.h&quot;

Ditto.

&gt; +    RenderView* view = static_cast&lt;RenderView*&gt;(m_frame-&gt;contentRenderer());

No typecast needed here.

&gt; +        page-&gt;chrome()-&gt;client()-&gt;setNeedsSynchronizedGraphicsFlush(frame());

This client function should have &quot;frame&quot; in its name, and I also think the name needs to be clearer that it&apos;s setting a one-time state. Needs a single synchronized flush, not synchronized flushing forever. Also, I think it&apos;s not good for multiple independent frames to each think this is needed or not. Is this something that needs to be coordinated at a higher level, such as the WebView or the entire NSWindow?

&gt; +    void updateCompositingLayers(bool force = false);

Can we avoid adding this new function with a boolean? How about using two named functions? Or an enum instead of a boolean?

&gt; +    void wasAddedToWindow();
&gt; +    void willBeRemovedFromWindow();

Window is a confusing term in a web browser, and we normally avoid the term. Maybe HostWindow? Hyatt would have an opinion.

&gt; +    WebFrameView* frameView = [kit(frame) frameView];
&gt; +    WebHTMLView* docView = (WebHTMLView *)[frameView documentView];

Why did you choose to put frameView into a local variable, but not the frame? I suggest collapsing these into one line. I&apos;m not a fan of &quot;doc&quot; as an abbreviation for document. How about documentView?

&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +    NSView* layerHostingView;
&gt; +    BOOL needsSynchronizedFlush;
&gt; +#endif    

Trailing spaces on the #endif. For NSView we put a space before the *; it&apos;s a strange rule, but we&apos;ve mostly been consistent about it (it&apos;s in the style guide).

&gt; +        NSArray* newSubviews = [[NSArray alloc] initWithObjects:_private-&gt;layerHostingView, nil];
&gt; +        _subviews = newSubviews;

Whoah, really?

&gt; -    if (_private-&gt;enumeratingSubviews)
&gt; +    if (_private &amp;&amp; _private-&gt;enumeratingSubviews)

You need a comment explaining why this caller needs to null-check _private.

&gt; -    if (_private-&gt;enumeratingSubviews)
&gt; +    if (_private &amp;&amp; _private-&gt;enumeratingSubviews)

Ditto.

&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +    return (_private-&gt;layerHostingView != 0);

We don&apos;t use parentheses in a return statement like this. Also, you should be using &quot;nil&quot;, not &quot;0&quot;, since this is an Objective-C object pointer.

&gt; +        [_private-&gt;layerHostingView setLayer:0];

nil rather than 0.

&gt; +        _private-&gt;layerHostingView = 0;

Ditto.

&gt; +        _private-&gt;page-&gt;wasAddedToWindow();

Either the behavior or the function name here is wrong. We were not added to the window yet at this point (in viewWillMoveToWindow).

I&apos;m going to say review- for now since there were a lot of comments, but they were all minor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107912</commentid>
    <comment_count>3</comment_count>
      <attachid>27234</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-02-01 12:59:09 -0800</bug_when>
    <thetext>Created attachment 27234
Revised patch, changelogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108128</commentid>
    <comment_count>4</comment_count>
      <attachid>27234</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-02-03 10:55:06 -0800</bug_when>
    <thetext>Comment on attachment 27234
Revised patch, changelogs

Drop the &quot;E&quot; from ECompositingUpdate.  I prefer the enum style of including the type in the values to help make it more clear. How about

NormalCompositingUpdate, ForcedCompositingUpdate.

Change if (!parent-&gt;renderer()-&gt;view())

to

if (parent-&gt;renderer()-&gt;documentBeingDestroyed())

Obj-C style is NSView *layerHostingView.

Remember that all code you add to WebHTMLView is just a future headache, since we want to move to a viewless model in the future.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108141</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-02-03 12:14:51 -0800</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/WebCore.base.exp
	M	WebCore/page/ChromeClient.h
	M	WebCore/page/FrameView.cpp
	M	WebCore/page/FrameView.h
	M	WebCore/page/Page.cpp
	M	WebCore/page/Page.h
	M	WebCore/rendering/RenderLayerCompositor.cpp
	M	WebCore/rendering/RenderLayerCompositor.h
	M	WebCore/rendering/RenderView.cpp
	M	WebCore/rendering/RenderView.h
	M	WebKit/mac/ChangeLog
	M	WebKit/mac/WebCoreSupport/WebChromeClient.h
	M	WebKit/mac/WebCoreSupport/WebChromeClient.mm
	M	WebKit/mac/WebView/WebHTMLView.mm
	M	WebKit/mac/WebView/WebHTMLViewInternal.h
	M	WebKit/mac/WebView/WebHTMLViewPrivate.h
	M	WebKit/mac/WebView/WebView.mm
	M	WebKit/mac/WebView/WebViewInternal.h
Committed r40543
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26781</attachid>
            <date>2009-01-15 18:36:12 -0800</date>
            <delta_ts>2009-02-01 12:59:09 -0800</delta_ts>
            <desc>Patch, changelog</desc>
            <filename>23365_patch.txt</filename>
            <type>text/plain</type>
            <size>17649</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2UwZmU2ZC4uOWY2YzZmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAwOS0wMS0xNSAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMzNjUKKyAgICAgICAgCisgICAgICAgIEhvb2sgdXAgYWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmcgbGF5ZXJzIHRoZSBuYXRpdmUKKyAgICAgICAgdmlldyBzeXN0ZW0gb24gTWFjLgorCisgICAg
ICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50OjpzZXROZWVkc1N5bmNocm9uaXplZEdyYXBoaWNzRmx1c2gpOgorICAgICAgICBOZXcgbWV0
aG9kcyBmb3IgYXR0YWNoaW5nL2RldGFjaGluZyB0aGUgcm9vdCBHcmFwaGljc0xheWVyLCBhbmQK
KyAgICAgICAgc3luY2hyb25pemluZyBsYXllciBjaGFuZ2VzIHdpdGggd2luZG93IGRyYXdpbmcu
CisgICAgICAgIAorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3Ojp3YXNBZGRlZFRvV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6d2lsbEJlUmVtb3ZlZEZyb21XaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpzZXROZWVkc1N5bmNocm9uaXplZEdyYXBoaWNzRmx1c2gpOgorICAgICAgICBOZXcgbWV0
aG9kcyB0byB1cGRhdGUgdGhlIGNvbXBvc2l0aW5nIGxheWVyIGhpZXJhcmNoeSwKKyAgICAgICAg
YW5kIHBhc3MtdGhyb3VnaHMgdG8gdGhlIFJlbmRlckxheWVyQ29tcG9zaXRvci4KKworICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpsYXlvdXQpOgorICAgICAgICBVcGRhdGUgY29tcG9zaXRp
bmcgbGF5ZXJzIGFmdGVyIGxheW91dCgpIGFuZCB1cGRhdGVMYXllclBvc2l0aW9ucygpLgorCisg
ICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6d2FzQWRkZWRUb1dpbmRvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjp3aWxsQmVSZW1vdmVkRnJvbVdpbmRvdyk6CisgICAgICAgICogcGFnZS9QYWdlLmg6
CisgICAgICAgIE5ldyBtZXRob2RzLgorCiAyMDA5LTAxLTE1ICBEaW1pdHJpIEdsYXprb3YgIDxk
Z2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKaW5kZXggNWQ5MGIyZi4uMWE5OGViMyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApA
QCAtNDIsNiArNDIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRmlsZUNob29z
ZXI7CiAgICAgY2xhc3MgRmxvYXRSZWN0OwogICAgIGNsYXNzIEZyYW1lOworI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKKyAgICBjbGFzcyBHcmFwaGljc0xheWVyOworI2VuZGlmCiAg
ICAgY2xhc3MgSGl0VGVzdFJlc3VsdDsKICAgICBjbGFzcyBJbnRSZWN0OwogICAgIGNsYXNzIE5v
ZGU7CkBAIC0xNTQsNiArMTU3LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8g
d2lsbCBiZSBjYWxsZWQgZnJlcXVlbnRseSwgc28gaGFuZGxpbmcgc2hvdWxkIGJlIHZlcnkgZmFz
dC4KICAgICAgICAgdmlydHVhbCB2b2lkIGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBOb2RlKikg
PSAwOwogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICAgICAvLyBQYXNz
IDAgdG8gZGV0YXRjaCB0aGUgcm9vdCBsYXllcgorICAgICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
Um9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikgeyB9CisgICAgICAgIC8v
IENhbGxlZCB3aGVuIGNoYW5nZXMgdG8gdGhlIEdyYXBoaWNzTGF5ZXIgaGllcmFyY2h5IGhhdmUg
dG8gYmUgc3luY2hyb25pemVkIHdpdGgKKyAgICAgICAgLy8gY29udGVudCByZW5kZXJlZCB2aWEg
dGhlIG5vcm1hbCBwYWludGluZyBwYXRoLgorICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNT
eW5jaHJvbml6ZWRHcmFwaGljc0ZsdXNoKEZyYW1lKikgeyB9CisjZW5kaWYKKwogI2lmIFBMQVRG
T1JNKE1BQykKICAgICAgICAgdmlydHVhbCBLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgp
IHsgcmV0dXJuIEtleWJvYXJkQWNjZXNzRGVmYXVsdDsgfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGNi
OGJiZGYuLjdhM2FlMzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisr
KyBiL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC00Myw2ICs0Myw5IEBACiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiT3ZlcmZsb3dFdmVudC5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisjaW5jbHVkZSAiUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmgiCisjZW5kaWYKICNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCiAjaW5j
bHVkZSAiUmVuZGVyUGFydE9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgpA
QCAtNDE5LDYgKzQyMiw0NiBAQCBib29sIEZyYW1lVmlldzo6bmVlZHNGdWxsUmVwYWludCgpIGNv
bnN0CiAgICAgcmV0dXJuIGQtPm1fZG9GdWxsUmVwYWludDsKIH0KIAorI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKK3ZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVDb21wb3NpdGluZ0xheWVy
cyhib29sIGZvcmNlKQoreworICAgIFJlbmRlclZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxSZW5k
ZXJWaWV3Kj4obV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpOworICAgIGlmICghdmlldyB8fCAh
dmlldy0+dXNlc0NvbXBvc2l0aW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChmb3Jj
ZSkKKyAgICAgICAgdmlldy0+Y29tcG9zaXRvcigpLT5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRV
cGRhdGUoKTsKKyAgICAKKyAgICB2aWV3LT5jb21wb3NpdG9yKCktPnVwZGF0ZUNvbXBvc2l0aW5n
TGF5ZXJzKCk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3Ojp3YXNBZGRlZFRvV2luZG93KCkKK3sKKyAg
ICBSZW5kZXJWaWV3KiB2aWV3ID0gc3RhdGljX2Nhc3Q8UmVuZGVyVmlldyo+KG1fZnJhbWUtPmNv
bnRlbnRSZW5kZXJlcigpKTsKKyAgICBpZiAoIXZpZXcgfHwgIXZpZXctPnVzZXNDb21wb3NpdGlu
ZygpKQorICAgICAgICByZXR1cm47CisKKyAgICB2aWV3LT5jb21wb3NpdG9yKCktPndhc0F0dGFj
aGVkKCk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3Ojp3aWxsQmVSZW1vdmVkRnJvbVdpbmRvdygpCit7
CisgICAgUmVuZGVyVmlldyogdmlldyA9IHN0YXRpY19jYXN0PFJlbmRlclZpZXcqPihtX2ZyYW1l
LT5jb250ZW50UmVuZGVyZXIoKSk7CisgICAgaWYgKCF2aWV3IHx8ICF2aWV3LT51c2VzQ29tcG9z
aXRpbmcoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdmlldy0+Y29tcG9zaXRvcigpLT53aWxs
QmVEZXRhY2hlZCgpOworfQorCit2b2lkIEZyYW1lVmlldzo6c2V0TmVlZHNTeW5jaHJvbml6ZWRH
cmFwaGljc0ZsdXNoKCkKK3sKKyAgICBQYWdlKiBwYWdlID0gZnJhbWUoKSA/IGZyYW1lKCktPnBh
Z2UoKSA6IDA7CisgICAgaWYgKHBhZ2UpCisgICAgICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQo
KS0+c2V0TmVlZHNTeW5jaHJvbml6ZWRHcmFwaGljc0ZsdXNoKGZyYW1lKCkpOworfQorCisjZW5k
aWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCiBSZW5kZXJPYmplY3QqIEZyYW1l
Vmlldzo6bGF5b3V0Um9vdChib29sIG9ubHlEdXJpbmdMYXlvdXQpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG9ubHlEdXJpbmdMYXlvdXQgJiYgbGF5b3V0UGVuZGluZygpID8gMCA6IGQtPm1fbGF5b3V0
Um9vdDsKQEAgLTU5Myw2ICs2MzYsMTAgQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91dChib29sIGFs
bG93U3VidHJlZSkKICAgICBiZWdpbkRlZmVycmVkUmVwYWludHMoKTsKICAgICBsYXllci0+dXBk
YXRlTGF5ZXJQb3NpdGlvbnMoZC0+bV9kb0Z1bGxSZXBhaW50KTsKICAgICBlbmREZWZlcnJlZFJl
cGFpbnRzKCk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgdXBkYXRl
Q29tcG9zaXRpbmdMYXllcnMoKTsKKyNlbmRpZgogICAgIAogICAgIGQtPm1fbGF5b3V0Q291bnQr
KzsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oCmluZGV4IDAzZGUxNzQuLjc4MzlmNzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaAorKysgYi9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTk2LDYg
Kzk2LDE3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbmVlZHNGdWxsUmVwYWludCgpIGNvbnN0Owog
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIHZvaWQgdXBkYXRlQ29tcG9z
aXRpbmdMYXllcnMoYm9vbCBmb3JjZSA9IGZhbHNlKTsKKworICAgIHZvaWQgd2FzQWRkZWRUb1dp
bmRvdygpOworICAgIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21XaW5kb3coKTsKKworICAgIC8vIENh
bGxlZCB3aGVuIGNoYW5nZXMgdG8gdGhlIEdyYXBoaWNzTGF5ZXIgaGllcmFyY2h5IGhhdmUgdG8g
YmUgc3luY2hyb25pemVkIHdpdGgKKyAgICAvLyBjb250ZW50IHJlbmRlcmVkIHZpYSB0aGUgbm9y
bWFsIHBhaW50aW5nIHBhdGguCisgICAgdm9pZCBzZXROZWVkc1N5bmNocm9uaXplZEdyYXBoaWNz
Rmx1c2goKTsKKyNlbmRpZgorCiAgICAgdm9pZCByZXNldFNjcm9sbGJhcnMoKTsKIAogICAgIHZv
aWQgY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAppbmRleCA2N2YxMjY2Li5mYzQ1YTM0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC00MDcsNiArNDA3
LDI2IEBAIHZvaWQgUGFnZTo6c2V0TWVkaWFWb2x1bWUoZmxvYXQgdm9sdW1lKQogICAgIH0KIH0K
IAordm9pZCBQYWdlOjp3YXNBZGRlZFRvV2luZG93KCkKK3sKKyNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCisgICAgZm9yIChGcmFtZSogZnJhbWUgPSBtYWluRnJhbWUoKTsgZnJhbWU7
IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKKyAgICAgICAgaWYgKGZy
YW1lLT52aWV3KCkpCisgICAgICAgICAgICBmcmFtZS0+dmlldygpLT53YXNBZGRlZFRvV2luZG93
KCk7CisgICAgfQorI2VuZGlmCit9CisKK3ZvaWQgUGFnZTo6d2lsbEJlUmVtb3ZlZEZyb21XaW5k
b3coKQoreworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBmb3IgKEZyYW1l
KiBmcmFtZSA9IG1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2
ZXJzZU5leHQoKSkgeworICAgICAgICBpZiAoZnJhbWUtPnZpZXcoKSkKKyAgICAgICAgICAgIGZy
YW1lLT52aWV3KCktPndpbGxCZVJlbW92ZWRGcm9tV2luZG93KCk7CisgICAgfQorI2VuZGlmCit9
CisKIHZvaWQgUGFnZTo6dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQoKQogewogI2lmICFG
UkFNRV9MT0FEU19VU0VSX1NUWUxFU0hFRVQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdl
LmggYi9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGFlYTE2YTIuLmUwNWUzZDEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTUz
LDYgKzE1Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgbWVkaWFWb2x1
bWUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhVm9sdW1lOyB9CiAgICAgICAgIHZvaWQgc2V0TWVk
aWFWb2x1bWUoZmxvYXQgdm9sdW1lKTsKIAorICAgICAgICB2b2lkIHdhc0FkZGVkVG9XaW5kb3co
KTsKKyAgICAgICAgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbVdpbmRvdygpOworCiAgICAgICAgIHZv
aWQgdXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQoKTsKICAgICAgICAgY29uc3QgU3RyaW5n
JiB1c2VyU3R5bGVTaGVldCgpIGNvbnN0OwogICAgICAgICAKZGlmZiAtLWdpdCBhL1dlYktpdC9t
YWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMzIyMzhhZS4uMmQ0NDRm
OCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAwOS0wMS0xNSAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNjUK
KyAgICAgICAgCisgICAgICAgIEhvb2sgdXAgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbGF5ZXJz
IHRoZSBuYXRpdmUKKyAgICAgICAgdmlldyBzeXN0ZW0gb24gTWFjLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290
R3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRzU3luY2hy
b25pemVkR3JhcGhpY3NGbHVzaCk6CisgICAgICAgIE5ldyBtZXRob2RzIHRvIGhvb2sgdXAgdGhl
IHJvb3QgR3JhcGhpY3NMYXllciB0byB0aGUgbmF0aXZlCisgICAgICAgIHZpZXcgc3lzdGVtLCBh
bmQgdG8gc3luY2hyb25pemUgbGF5ZXIgY2hhbmdlcyB3aXRoIHZpZXctYmFzZWQKKyAgICAgICAg
ZHJhd2luZyB3aGVuIGxheWVycyBjb21lIGFuZCBnby4KKyAgICAgICAgCisgICAgICAgICogV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXdQcml2YXRlIGNsZWFy
XSk6CisgICAgICAgIENsZWFyIHRoZSBwb2ludGVyIHRvIGxheWVySG9zdGluZ1ZpZXcuCisKKyAg
ICAgICAgKC1bV2ViSFRNTFZpZXcgX3NldEFzaWRlU3Vidmlld3NdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgZGlkQWRkU3VidmlldzpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgd2lsbFJl
bW92ZVN1YnZpZXc6XSk6CisgICAgICAgIEtlZXAgdGhlIHNwZWNpYWwgbGF5ZXItaG9zdGluZyB2
aWV3IGluIHRoZSBzdWJ2aWV3cyBldmVuIAorICAgICAgICB3aGVuIHRoZSByZXN0IG9mIHRoZSBz
dWJ2aWV3cyBhcmUgcmlwcGVkIG91dCBmb3IKKyAgICAgICAgcGFpbnRpbmcuCisgICAgICAgIAor
ICAgICAgICAoLVtXZWJIVE1MVmlldyBfaXNVc2luZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmddKToK
KyAgICAgICAgTmV3IHV0aWxpdHkgbWV0aG9kIGZvciBEdW1wUmVuZGVyVHJlZSB0byBrbm93IGlm
IHdlJ3JlCisgICAgICAgIGhvc3RpbmcgbGF5ZXJzLgorICAgICAgICAKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgIENhbGwgLWRpc2FibGVTY3JlZW5VcGRhdGVz
VW50aWxGbHVzaCBpZiB3ZSBoYXZlIHRvCisgICAgICAgIHN5bmNocm9uaXplIGxheWVyIGNoYW5n
ZXMgd2l0aCBwYWludGluZy4KKyAgICAgICAgCisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0dGFj
aFJvb3RMYXllcjpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgZGV0YWNoUm9vdExheWVyXSk6
CisgICAgICAgIEF0dGFjaCBhbmQgZGV0YWNoIHRoZSByb290IEdyYXBoaWNzTGF5ZXIuCisgICAg
ICAgIAorICAgICAgICAoLVtXZWJIVE1MVmlldyBzZXROZWVkc1N5bmNocm9uaXplZEZsdXNoXSk6
CisgICAgICAgIFNldCB0aGUgZmxhZyB0byBzYXkgaWYgd2UgbmVlZCB0byBzeW5jaHJvbml6ZSBs
YXllcgorICAgICAgICBjaGFuZ2VzIGFuZCBwYWludGluZyBvbiB0aGUgbmV4dCAtZHJhd1JlY3Q6
IGNhbGwuCisgICAgICAgIAorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5o
OgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXdQcml2YXRlLmg6CisgICAgICAgIE5ldyBt
ZXRob2QgZGVjbGFyYXRpb25zLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXZWJWaWV3IHZpZXdXaWxsTW92ZVRvV2luZG93Ol0pOgorICAgICAgICBDYWxsIG5l
dyBub3RpZmljYXRpb25zIHRoYXQgdGhlIHZpZXcgd2FzIGFkZGVkIHRvIG9yIHJlbW92ZWQgZnJv
bQorICAgICAgICB0aGUgd2luZG93LCB3aGljaCBhcmUgcmVxdWlyZWQgYnkgdGhlIGxheWVyIGhv
c3RpbmcgbWVjaGFuaXNtLgorCiAyMDA5LTAxLTE1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluCmRpZmYgLS1naXQg
YS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAyOWE0YzI1Li4yMGZiYzNj
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEz
NSw2ICsxMzUsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlU3VkZGVuVGVy
bWluYXRpb24oKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IFdl
YkNvcmU6Ok5vZGUqKSB7IH0KIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAg
ICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzU3luY2hy
b25pemVkR3JhcGhpY3NGbHVzaChXZWJDb3JlOjpGcmFtZSopOworI2VuZGlmCisKIHByaXZhdGU6
CiAgICAgV2ViVmlldyAqbV93ZWJWaWV3OwogfTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggNmI1ZDEzOC4uZTA3YzU3OCAxMDA2NDQKLS0tIGEv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTQ5LDYgKzQ5LDkgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZFJlcXVlc3QuaD4KKyNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCisjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KKyNlbmRp
ZgogI2ltcG9ydCA8V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0lu
dFJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgpAQCAtNjQzLDYgKzY0NiwyNSBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6ZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKQogI2VuZGlmCiB9
CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBn
cmFwaGljc0xheWVyKQoreworICAgIFdlYkZyYW1lVmlldyogZnJhbWVWaWV3ID0gW2tpdChmcmFt
ZSkgZnJhbWVWaWV3XTsKKyAgICBXZWJIVE1MVmlldyogZG9jVmlldyA9IChXZWJIVE1MVmlldyAq
KVtmcmFtZVZpZXcgZG9jdW1lbnRWaWV3XTsKKyAgICBpZiAoZ3JhcGhpY3NMYXllcikKKyAgICAg
ICAgW2RvY1ZpZXcgYXR0YWNoUm9vdExheWVyOmdyYXBoaWNzTGF5ZXItPm5hdGl2ZUxheWVyKCld
OworICAgIGVsc2UKKyAgICAgICAgW2RvY1ZpZXcgZGV0YWNoUm9vdExheWVyXTsKK30KKwordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRzU3luY2hyb25pemVkR3JhcGhpY3NGbHVzaChGcmFt
ZSogZnJhbWUpCit7CisgICAgV2ViRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBba2l0KGZyYW1lKSBm
cmFtZVZpZXddOworICAgIFdlYkhUTUxWaWV3KiBkb2NWaWV3ID0gKFdlYkhUTUxWaWV3ICopW2Zy
YW1lVmlldyBkb2N1bWVudFZpZXddOworICAgIFtkb2NWaWV3IHNldE5lZWRzU3luY2hyb25pemVk
Rmx1c2hdOworfQorI2VuZGlmCisKIEBpbXBsZW1lbnRhdGlvbiBXZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lcgogCiAtIChpZClpbml0V2l0aENob29zZXI6KFBhc3NSZWZQdHI8RmlsZUNob29zZXI+
KWNob29zZXIKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBi
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCBiZTRkOGRiLi5mYWEyNzIy
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0xMTQsNiArMTE0LDEwIEBACiAjaW1w
b3J0IDxsaW1pdHM+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KIAor
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVh
cnR6Q29yZS5oPgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC0zNzUsNiArMzc5LDEx
IEBAIHN0cnVjdCBXZWJIVE1MVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAg
IAogICAgIGlkIHNhdmVkU3Vidmlld3M7CiAgICAgQk9PTCBzdWJ2aWV3c1NldEFzaWRlOworICAg
IAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBOU1ZpZXcqIGxheWVySG9z
dGluZ1ZpZXc7CisgICAgQk9PTCBuZWVkc1N5bmNocm9uaXplZEZsdXNoOworI2VuZGlmICAgIAog
CiAgICAgTlNFdmVudCAqbW91c2VEb3duRXZlbnQ7IC8vIEtlcHQgYWZ0ZXIgaGFuZGxpbmcgdGhl
IGV2ZW50LgogICAgIEJPT0wgaGFuZGxpbmdNb3VzZURvd25FdmVudDsKQEAgLTUyMyw2ICs1MzIs
MTAgQEAgc3RhdGljIE5TQ2VsbFN0YXRlVmFsdWUga2l0KFRyaVN0YXRlIHN0YXRlKQogICAgIGRh
dGFTb3VyY2UgPSBuaWw7CiAgICAgaGlnaGxpZ2h0ZXJzID0gbmlsOwogICAgIHByb21pc2VkRHJh
Z1RJRkZEYXRhU291cmNlID0gMDsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
KyAgICBsYXllckhvc3RpbmdWaWV3ID0gbmlsOworI2VuZGlmICAgIAogfQogCiBAZW5kCkBAIC0x
MDg4LDE1ICsxMTAxLDMzIEBAIHN0YXRpYyB2b2lkIF91cGRhdGVNb3VzZW92ZXJUaW1lckNhbGxi
YWNrKENGUnVuTG9vcFRpbWVyUmVmIHRpbWVyLCB2b2lkICppbmZvKQogICAgIEFTU0VSVCghX3By
aXZhdGUtPnN1YnZpZXdzU2V0QXNpZGUpOwogICAgIEFTU0VSVChfcHJpdmF0ZS0+c2F2ZWRTdWJ2
aWV3cyA9PSBuaWwpOwogICAgIF9wcml2YXRlLT5zYXZlZFN1YnZpZXdzID0gX3N1YnZpZXdzOwor
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpZiAoX3ByaXZhdGUtPmxheWVy
SG9zdGluZ1ZpZXcpIHsKKyAgICAgICAgTlNBcnJheSogbmV3U3Vidmlld3MgPSBbW05TQXJyYXkg
YWxsb2NdIGluaXRXaXRoT2JqZWN0czpfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldywgbmlsXTsK
KyAgICAgICAgX3N1YnZpZXdzID0gbmV3U3Vidmlld3M7CisgICAgfSBlbHNlCisgICAgICAgIF9z
dWJ2aWV3cyA9IG5pbDsKKyNlbHNlCiAgICAgX3N1YnZpZXdzID0gbmlsOworI2VuZGlmICAgIAog
ICAgIF9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRlID0gWUVTOwogIH0KICAKICAtICh2b2lkKV9y
ZXN0b3JlU3Vidmlld3MKICB7CiAgICAgQVNTRVJUKF9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRl
KTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKF9wcml2YXRlLT5s
YXllckhvc3RpbmdWaWV3KSB7CisgICAgICAgIFtfc3Vidmlld3MgcmVsZWFzZV07CisgICAgICAg
IF9zdWJ2aWV3cyA9IF9wcml2YXRlLT5zYXZlZFN1YnZpZXdzOworICAgIH0gZWxzZSB7CisgICAg
ICAgIEFTU0VSVChfc3Vidmlld3MgPT0gbmlsKTsKKyAgICAgICAgX3N1YnZpZXdzID0gX3ByaXZh
dGUtPnNhdmVkU3Vidmlld3M7CisgICAgfQorI2Vsc2UKICAgICBBU1NFUlQoX3N1YnZpZXdzID09
IG5pbCk7CiAgICAgX3N1YnZpZXdzID0gX3ByaXZhdGUtPnNhdmVkU3Vidmlld3M7CisjZW5kaWYg
ICAgCiAgICAgX3ByaXZhdGUtPnNhdmVkU3Vidmlld3MgPSBuaWw7CiAgICAgX3ByaXZhdGUtPnN1
YnZpZXdzU2V0QXNpZGUgPSBOTzsKIH0KQEAgLTExMDUsMTMgKzExMzYsMTMgQEAgc3RhdGljIHZv
aWQgX3VwZGF0ZU1vdXNlb3ZlclRpbWVyQ2FsbGJhY2soQ0ZSdW5Mb29wVGltZXJSZWYgdGltZXIs
IHZvaWQgKmluZm8pCiAKIC0gKHZvaWQpZGlkQWRkU3VidmlldzooTlNWaWV3ICopc3Vidmlldwog
ewotICAgIGlmIChfcHJpdmF0ZS0+ZW51bWVyYXRpbmdTdWJ2aWV3cykKKyAgICBpZiAoX3ByaXZh
dGUgJiYgX3ByaXZhdGUtPmVudW1lcmF0aW5nU3Vidmlld3MpCiAgICAgICAgIExPRyhWaWV3LCAi
QSB2aWV3IG9mIGNsYXNzICVzIHdhcyBhZGRlZCBkdXJpbmcgc3VidmlldyBlbnVtZXJhdGlvbiBm
b3IgbGF5b3V0IG9yIHByaW50aW5nIG1vZGUgY2hhbmdlLiBUaGlzIHZpZXcgbWlnaHQgcGFpbnQg
d2l0aG91dCBmaXJzdCByZWNlaXZpbmcgbGF5b3V0LiIsIG9iamVjdF9nZXRDbGFzc05hbWUoW3N1
YnZpZXcgY2xhc3NdKSk7CiB9CiAKIC0gKHZvaWQpd2lsbFJlbW92ZVN1YnZpZXc6KE5TVmlldyAq
KXN1YnZpZXcKIHsKLSAgICBpZiAoX3ByaXZhdGUtPmVudW1lcmF0aW5nU3Vidmlld3MpCisgICAg
aWYgKF9wcml2YXRlICYmIF9wcml2YXRlLT5lbnVtZXJhdGluZ1N1YnZpZXdzKQogICAgICAgICBM
T0coVmlldywgIkEgdmlldyBvZiBjbGFzcyAlcyB3YXMgcmVtb3ZlZCBkdXJpbmcgc3VidmlldyBl
bnVtZXJhdGlvbiBmb3IgbGF5b3V0IG9yIHByaW50aW5nIG1vZGUgY2hhbmdlLiBXZSB3aWxsIHN0
aWxsIGRvIGxheW91dCBvciB0aGUgcHJpbnRpbmcgbW9kZSBjaGFuZ2UgZXZlbiB0aG91Z2ggdGhp
cyB2aWV3IGlzIG5vIGxvbmdlciBpbiB0aGUgdmlldyBoaWVyYXJjaHkuIiwgb2JqZWN0X2dldENs
YXNzTmFtZShbc3VidmlldyBjbGFzc10pKTsKIH0KIApAQCAtMjAyMiw2ICsyMDUzLDE1IEBAIHN0
YXRpYyB2b2lkIF91cGRhdGVNb3VzZW92ZXJUaW1lckNhbGxiYWNrKENGUnVuTG9vcFRpbWVyUmVm
IHRpbWVyLCB2b2lkICppbmZvKQogfSAKICNlbmRpZiAKIAorLSAoQk9PTClfaXNVc2luZ0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmcKK3sKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisg
ICAgcmV0dXJuIChfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldyAhPSAwKTsKKyNlbHNlCisgICAg
cmV0dXJuIE5POworI2VuZGlmCit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIE5TVmlldyAo
V2ViSFRNTFZpZXdGaWxlSW50ZXJuYWwpCkBAIC0yOTkzLDYgKzMwMzMsMTYgQEAgc3RhdGljIHZv
aWQgX3VwZGF0ZUZvY3VzZWRBbmRBY3RpdmVTdGF0ZVRpbWVyQ2FsbGJhY2soQ0ZSdW5Mb29wVGlt
ZXJSZWYgdGltZXIsIHYKIAogICAgIGlmIChzdWJ2aWV3c1dlcmVTZXRBc2lkZSkKICAgICAgICAg
W3NlbGYgX3NldEFzaWRlU3Vidmlld3NdOworICAgICAgICAKKyNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCisgICAgaWYgKF9wcml2YXRlLT5uZWVkc1N5bmNocm9uaXplZEZsdXNoKSB7
CisgICAgICAgIC8vIERpc2FibGUgc2NyZWVuIHVwZGF0ZXMgc28gdGhhdCBkcmF3aW5nIGludG8g
dGhlIE5TVmlldyBhbmQKKyAgICAgICAgLy8gQ0FMYXllciB1cGRhdGVzIGFwcGVhciBvbiB0aGUg
c2NyZWVuIGF0IHRoZSBzYW1lIHRpbWUuCisgICAgICAgIFtbc2VsZiB3aW5kb3ddIGRpc2FibGVT
Y3JlZW5VcGRhdGVzVW50aWxGbHVzaF07CisgICAgICAgIFtDQVRyYW5zYWN0aW9uIGZsdXNoXTsK
KyAgICAgICAgX3ByaXZhdGUtPm5lZWRzU3luY2hyb25pemVkRmx1c2ggPSBOTzsKKyAgICB9Cisj
ZW5kaWYKIH0KIAogLy8gVHVybiBvZmYgdGhlIGFkZGl0aW9uYWwgY2xpcCB3aGlsZSBjb21wdXRp
bmcgb3VyIHZpc2libGVSZWN0LgpAQCAtNDk0NCw2ICs0OTk0LDQzIEBAIHN0YXRpYyBDR1BvaW50
IGNvcmVHcmFwaGljc1NjcmVlblBvaW50Rm9yQXBwS2l0U2NyZWVuUG9pbnQoTlNQb2ludCBwb2lu
dCkKICAgICBbW3NlbGYgX3BsdWdpbkNvbnRyb2xsZXJdIGRlc3Ryb3lBbGxQbHVnaW5zXTsKIH0K
IAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKy0gKHZvaWQpYXR0YWNoUm9vdExh
eWVyOihDQUxheWVyKilsYXllcgoreworICAgIGlmICghX3ByaXZhdGUtPmxheWVySG9zdGluZ1Zp
ZXcpIHsKKyAgICAgICAgTlNWaWV3KiBob3N0aW5nVmlldyA9IFtbTlNWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOltzZWxmIGJvdW5kc11dOworICAgICAgICBbaG9zdGluZ1ZpZXcgc2V0QXV0b3Jl
c2l6aW5nTWFzazooTlNWaWV3V2lkdGhTaXphYmxlIHwgTlNWaWV3SGVpZ2h0U2l6YWJsZSldOwor
ICAgICAgICBbc2VsZiBhZGRTdWJ2aWV3Omhvc3RpbmdWaWV3XTsKKyAgICAgICAgW2hvc3RpbmdW
aWV3IHJlbGVhc2VdOworICAgICAgICAvLyBob3N0aW5nVmlldyBpcyBvd25lZCBieSBiZWluZyBh
IHN1YnZpZXcgb2Ygc2VsZgorICAgICAgICBfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldyA9IGhv
c3RpbmdWaWV3OworICAgIH0KKworICAgIC8vIE1ha2UgYSBjb250YWluZXIgbGF5ZXIsIHdoaWNo
IHdpbGwgZ2V0IHNpemVkL3Bvc2l0aW9uZWQgYnkgQXBwS2l0IGFuZCBDQQorICAgIENBTGF5ZXIq
IHZpZXdMYXllciA9IFtDQUxheWVyIGxheWVyXTsKKyAgICBbX3ByaXZhdGUtPmxheWVySG9zdGlu
Z1ZpZXcgc2V0TGF5ZXI6dmlld0xheWVyXTsKKyAgICBbX3ByaXZhdGUtPmxheWVySG9zdGluZ1Zp
ZXcgc2V0V2FudHNMYXllcjpZRVNdOworICAgIAorICAgIC8vIFBhcmVudCBvdXIgcm9vdCBsYXll
ciBpbiB0aGUgY29udGFpbmVyIGxheWVyCisgICAgW3ZpZXdMYXllciBhZGRTdWJsYXllcjpsYXll
cl07Cit9CisKKy0gKHZvaWQpZGV0YWNoUm9vdExheWVyCit7CisgICAgaWYgKF9wcml2YXRlLT5s
YXllckhvc3RpbmdWaWV3KSB7CisgICAgICAgIFtfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldyBz
ZXRMYXllcjowXTsKKyAgICAgICAgW19wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3IHNldFdhbnRz
TGF5ZXI6Tk9dOworICAgICAgICBbX3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcgcmVtb3ZlRnJv
bVN1cGVydmlld107CisgICAgICAgIF9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3ID0gMDsKKyAg
ICB9Cit9CisKKy0gKHZvaWQpc2V0TmVlZHNTeW5jaHJvbml6ZWRGbHVzaAoreworICAgIF9wcml2
YXRlLT5uZWVkc1N5bmNocm9uaXplZEZsdXNoID0gWUVTOworfQorI2VuZGlmCisKIEBlbmQKIAog
QGltcGxlbWVudGF0aW9uIFdlYkhUTUxWaWV3IChXZWJOU1RleHRJbnB1dFN1cHBvcnQpCmRpZmYg
LS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oIGIvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3SW50ZXJuYWwuaAppbmRleCAwZmIwY2RjLi5iMTVkYmRl
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oCisr
KyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFsLmgKQEAgLTU4LDQgKzU4
LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC0gKHZvaWQpc2V0UHJvbWlzZWREcmFnVElGRkRh
dGFTb3VyY2U6KFdlYkNvcmU6OkNhY2hlZEltYWdlKilzb3VyY2U7CiAtICh2b2lkKV93ZWJfbGF5
b3V0SWZOZWVkZWRSZWN1cnNpdmU7CiAtICh2b2lkKV9kZXN0cm95QWxsV2ViUGx1Z2luczsKKwor
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKy0gKHZvaWQpYXR0YWNoUm9vdExheWVy
OihDQUxheWVyKilsYXllcjsKKy0gKHZvaWQpZGV0YWNoUm9vdExheWVyOworLSAodm9pZClzZXRO
ZWVkc1N5bmNocm9uaXplZEZsdXNoOyAvLyBPbmUgc2hvdCB1bnRpbCAtZHJhd1JlY3QgaGFzIGJl
ZW4gY2FsbGVkCisjZW5kaWYKKwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3UHJpdmF0ZS5oIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3UHJp
dmF0ZS5oCmluZGV4IDQwZGU5N2YuLjBkNzM4ODQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlld1ByaXZhdGUuaAorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXdQcml2YXRlLmgKQEAgLTExOSw2ICsxMTksNyBAQAogCiAvLyBTUEkgZm9yIER1bXBSZW5k
ZXJUcmVlCiAtICh2b2lkKV91cGRhdGVGb2N1c2VkQW5kQWN0aXZlU3RhdGU7CistIChCT09MKV9p
c1VzaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsKIAogLy8gU1BJIGZvciBwcmludGluZyAoc2hv
dWxkIGJlIGNvbnZlcnRlZCB0byBBUEkgc29tZWRheSkuIFdoZW4gdGhlIFdlYkhUTUxWaWV3IGlz
bid0IGJlaW5nIHByaW50ZWQKIC8vIGRpcmVjdGx5LCB0aGlzIG1ldGhvZCBtdXN0IGJlIGNhbGxl
ZCBiZWZvcmUgcGFnaW5hdGluZywgb3IgdGhlIGNvbXB1dGVkIGhlaWdodCBtaWdodCBiZSBpbmNv
cnJlY3QuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDEwNzg2YjkuLmJhOGQ1NmQgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCkBAIC0yNTExLDcgKzI1MTEsMTAgQEAgc3RhdGljIGJvb2wgbmVlZHNXZWJW
aWV3SW5pdFRocmVhZFdvcmthcm91bmQoKQogICAgICAgICAKICAgICAgICAgW3NlbGYgcmVtb3Zl
V2luZG93T2JzZXJ2ZXJzXTsKICAgICAgICAgW3NlbGYgcmVtb3ZlU2l6ZU9ic2VydmVyc107Ci0g
ICAgfQorCisgICAgICAgIF9wcml2YXRlLT5wYWdlLT53YXNBZGRlZFRvV2luZG93KCk7CisgICAg
fSBlbHNlCisgICAgICAgIF9wcml2YXRlLT5wYWdlLT53aWxsQmVSZW1vdmVkRnJvbVdpbmRvdygp
OwogfQogCiAtICh2b2lkKXZpZXdEaWRNb3ZlVG9XaW5kb3cK
</data>
<flag name="review"
          id="12780"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27234</attachid>
            <date>2009-02-01 12:59:09 -0800</date>
            <delta_ts>2009-02-03 10:55:06 -0800</delta_ts>
            <desc>Revised patch, changelogs</desc>
            <filename>23365_patch_2.txt</filename>
            <type>text/plain</type>
            <size>25673</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZGFmZmVlNy4uYzg1MTUxYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAwOS0wMi0wMSAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5H
RUQKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
NjUKKyAgICAgICAgCisgICAgICAgIEhvb2sgdXAgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbGF5
ZXJzIHRoZSBuYXRpdmUKKyAgICAgICAgdmlldyBzeXN0ZW0gb24gTWFjLgorCisgICAgICAgICog
V2ViQ29yZS5iYXNlLmV4cDoKKyAgICAgICAgRXhwb3J0IG5ldyBQYWdlIG1ldGhvZHMuCisKKyAg
ICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24pOgorICAgICAgICBO
ZXcgbWV0aG9kcyBmb3IgYXR0YWNoaW5nL2RldGFjaGluZyB0aGUgcm9vdCBHcmFwaGljc0xheWVy
LCBhbmQKKyAgICAgICAgc3luY2hyb25pemluZyBsYXllciBjaGFuZ2VzIHdpdGggd2luZG93IGRy
YXdpbmcuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvRnJh
bWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlQ29tcG9zaXRp
bmdMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXROZWVkc09uZVNob3RE
cmF3aW5nU3luY2hyb25pemF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlk
TW92ZU9uc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6d2lsbE1vdmVPZmZz
Y3JlZW4pOgorICAgICAgICBOZXcgbWV0aG9kcyB0byB1cGRhdGUgdGhlIGNvbXBvc2l0aW5nIGxh
eWVyIGhpZXJhcmNoeSwKKyAgICAgICAgYW5kIHBhc3MtdGhyb3VnaHMgdG8gdGhlIFJlbmRlckxh
eWVyQ29tcG9zaXRvci4KKworICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpsYXlvdXQpOgor
ICAgICAgICBVcGRhdGUgY29tcG9zaXRpbmcgbGF5ZXJzIGFmdGVyIGxheW91dCgpIGFuZCB1cGRh
dGVMYXllclBvc2l0aW9ucygpLgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OmRpZE1vdmVPbnNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
Ojp3aWxsTW92ZU9mZnNjcmVlbik6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIE5l
dyBtZXRob2RzIHRvIGFsbG93IHRoZSBuYXRpdmUgdmlldyBzeXN0ZW0gdG8gdGVsbCB0aGUgUGFn
ZSB3aGVuIGl0IAorICAgICAgICBzdGFydHMgdG8gYmUgcHJlc2VudGVkIG9uLXNjcmVlbiwgYW5k
IHdoZW4gaXQgd2lsbCBiZSBoaWRkZW4uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUxh
eWVyQ29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmRpZE1vdmVPbnNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OndpbGxNb3ZlT2Zmc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6ZW5zdXJlUm9vdFBsYXRmb3JtTGF5ZXIpOgorICAgICAgICBSZW5hbWUg
J2F0dGFjaGVkJyBtZXRob2RzIHRvICdtb3ZlT25zY3JlZW4vbW92ZU9mZnNjcmVlbicgdG8gbWF0
Y2gKKyAgICAgICAgdGhlIGNhbGxzIHRocm91Z2ggZnJvbSBQYWdlLCBGcmFtZVZpZXcuCisKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJXaWxsQmVSZW1vdmVk
KToKKyAgICAgICAgRG9udCcgdHJ5IHRvIHJlcGFpbnQgb3IgdXBkYXRlIGxheWVycyBpZiB0aGUg
ZG9jdW1lbnQgaXMgYmVpbmcgdG9ybgorICAgICAgICBkb3duLgorCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6ZGlkTW92
ZU9uc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OndpbGxNb3ZlT2Zmc2Ny
ZWVuKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5oOgorICAgICAgICBOZXcgbWV0
aG9kcy4KKwogMjAwOS0wMi0wMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEpvaG4gU3VsbGl2YW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuYmFzZS5leHAgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKaW5kZXggMGMxOTUzYS4u
MTM0YzI4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS5iYXNlLmV4cApAQCAtODEzLDYgKzgxMyw4IEBAIF9fWk5LN1dlYkNvcmU0Tm9k
ZTE4Z2V0U3VicmVzb3VyY2VVUkxzRVJOM1dURjExTGlzdEhhc2hTZXRJTlNfNEtVUkxFTlNfOEtV
UkxIYXNoCiBfX1pOSzdXZWJDb3JlNE5vZGU5bm9kZUluZGV4RXYKIF9fWk5LN1dlYkNvcmU0UGFn
ZTEwcGx1Z2luRGF0YUV2CiBfX1pOSzdXZWJDb3JlNFBhZ2UzNGluTG93UXVhbGl0eUltYWdlSW50
ZXJwb2xhdGlvbk1vZGVFdgorX19aTjdXZWJDb3JlNFBhZ2UxN3dpbGxNb3ZlT2Zmc2NyZWVuRXYK
K19fWk43V2ViQ29yZTRQYWdlMTVkaWRNb3ZlT25zY3JlZW5FdgogX19aTks3V2ViQ29yZTRQYWdl
OWdyb3VwTmFtZUV2CiBfX1pOSzdXZWJDb3JlNUZyYW1lMTFjdXJyZW50Rm9ybUV2CiBfX1pOSzdX
ZWJDb3JlNUZyYW1lMTF0eXBpbmdTdHlsZUV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNWQ5MGIyZi4u
YWE5YjMyOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNTIsNiArNTIsMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIHN0cnVjdCBGcmFtZUxvYWRSZXF1ZXN0OwogICAgIHN0cnVjdCBXaW5kb3dG
ZWF0dXJlczsKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBjbGFzcyBH
cmFwaGljc0xheWVyOworI2VuZGlmCisKICAgICBjbGFzcyBDaHJvbWVDbGllbnQgewogICAgIHB1
YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpID0gMDsKQEAgLTE1
NCw2ICsxNTgsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyB3aWxsIGJlIGNh
bGxlZCBmcmVxdWVudGx5LCBzbyBoYW5kbGluZyBzaG91bGQgYmUgdmVyeSBmYXN0LgogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IE5vZGUqKSA9IDA7CiAKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgICAgIC8vIFBhc3MgMCBhcyB0aGUg
R3JhcGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290IGxheWVyLgorICAgICAgICB2aXJ0dWFs
IHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikgeyB9
CisgICAgICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgbmV4dCB0aW1lIGNv
bnRlbnQgaXMgZHJhd24gdG8gdGhlIHdpbmRvdywKKyAgICAgICAgLy8gdGhlIGNoYW5nZXMgYXBw
ZWFyIG9uIHRoZSBzY3JlZW4gaW4gc3luY2hyb255IHdpdGggdXBkYXRlcyB0byBHcmFwaGljc0xh
eWVycy4KKyAgICAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJv
bml6YXRpb24oKSB7IH0KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICB2aXJ0
dWFsIEtleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgeyByZXR1cm4gS2V5Ym9hcmRBY2Nl
c3NEZWZhdWx0OyB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYzZlMTA2MC4uYzI5MmZjMSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKQEAgLTUxLDYgKzUxLDEwIEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKKyNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CkBAIC0zNjMsNiArMzY3
LDQxIEBAIHZvaWQgRnJhbWVWaWV3OjphcHBseU92ZXJmbG93VG9WaWV3cG9ydChSZW5kZXJPYmpl
Y3QqIG8sIFNjcm9sbGJhck1vZGUmIGhNb2RlLCBTCiAgICAgbV92aWV3cG9ydFJlbmRlcmVyID0g
bzsKIH0KIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKK3ZvaWQgRnJhbWVWaWV3
Ojp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhFQ29tcG9zaXRpbmdVcGRhdGUgdXBkYXRlVHlwZSkK
K3sKKyAgICBSZW5kZXJWaWV3KiB2aWV3ID0gbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCk7Cisg
ICAgaWYgKCF2aWV3IHx8ICF2aWV3LT51c2VzQ29tcG9zaXRpbmcoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKHVwZGF0ZVR5cGUgPT0gRm9yY2VkVXBkYXRlKQorICAgICAgICB2aWV3LT5j
b21wb3NpdG9yKCktPnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFVwZGF0ZSgpOworICAgIAorICAg
IHZpZXctPmNvbXBvc2l0b3IoKS0+dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoKTsKK30KKwordm9p
ZCBGcmFtZVZpZXc6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQorewor
ICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZSgpID8gZnJhbWUoKS0+cGFnZSgpIDogMDsKKyAgICBpZiAo
cGFnZSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5zZXROZWVkc09uZVNob3RE
cmF3aW5nU3luY2hyb25pemF0aW9uKCk7Cit9CisjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQorCit2b2lkIEZyYW1lVmlldzo6ZGlkTW92ZU9uc2NyZWVuKCkKK3sKKyAgICBS
ZW5kZXJWaWV3KiB2aWV3ID0gbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCk7CisgICAgaWYgKHZp
ZXcpCisgICAgICAgIHZpZXctPmRpZE1vdmVPbnNjcmVlbigpOworfQorCit2b2lkIEZyYW1lVmll
dzo6d2lsbE1vdmVPZmZzY3JlZW4oKQoreworICAgIFJlbmRlclZpZXcqIHZpZXcgPSBtX2ZyYW1l
LT5jb250ZW50UmVuZGVyZXIoKTsKKyAgICBpZiAodmlldykKKyAgICAgICAgdmlldy0+d2lsbE1v
dmVPZmZzY3JlZW4oKTsKK30KKwogUmVuZGVyT2JqZWN0KiBGcmFtZVZpZXc6OmxheW91dFJvb3Qo
Ym9vbCBvbmx5RHVyaW5nTGF5b3V0KSBjb25zdAogewogICAgIHJldHVybiBvbmx5RHVyaW5nTGF5
b3V0ICYmIGxheW91dFBlbmRpbmcoKSA/IDAgOiBtX2xheW91dFJvb3Q7CkBAIC01MzcsNiArNTc2
LDEwIEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgYmVn
aW5EZWZlcnJlZFJlcGFpbnRzKCk7CiAgICAgbGF5ZXItPnVwZGF0ZUxheWVyUG9zaXRpb25zKG1f
ZG9GdWxsUmVwYWludCk7CiAgICAgZW5kRGVmZXJyZWRSZXBhaW50cygpOworCisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKCk7Cisj
ZW5kaWYKICAgICAKICAgICBtX2xheW91dENvdW50Kys7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaCBiL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBhMWQ1MTRm
Li5hNjIzOTc0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC05Nyw2ICs5NywxOCBAQCBwdWJsaWM6CiAKICAgICBi
b29sIG5lZWRzRnVsbFJlcGFpbnQoKSBjb25zdCB7IHJldHVybiBtX2RvRnVsbFJlcGFpbnQ7IH0K
IAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBlbnVtIEVDb21wb3NpdGlu
Z1VwZGF0ZSB7IFVwZGF0ZUlmTmVlZGVkLCBGb3JjZWRVcGRhdGUgfTsKKyAgICB2b2lkIHVwZGF0
ZUNvbXBvc2l0aW5nTGF5ZXJzKEVDb21wb3NpdGluZ1VwZGF0ZSB1cGRhdGVUeXBlID0gVXBkYXRl
SWZOZWVkZWQpOworCisgICAgLy8gQ2FsbGVkIHdoZW4gY2hhbmdlcyB0byB0aGUgR3JhcGhpY3NM
YXllciBoaWVyYXJjaHkgaGF2ZSB0byBiZSBzeW5jaHJvbml6ZWQgd2l0aAorICAgIC8vIGNvbnRl
bnQgcmVuZGVyZWQgdmlhIHRoZSBub3JtYWwgcGFpbnRpbmcgcGF0aC4KKyAgICB2b2lkIHNldE5l
ZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKTsKKyNlbmRpZgorCisgICAgdm9pZCBk
aWRNb3ZlT25zY3JlZW4oKTsKKyAgICB2b2lkIHdpbGxNb3ZlT2Zmc2NyZWVuKCk7CisKICAgICB2
b2lkIHJlc2V0U2Nyb2xsYmFycygpOwogCiAgICAgdm9pZCBjbGVhcigpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDQ2MDE4
M2EuLjE5ZjhjMWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTQwOSw2ICs0MDksMjIgQEAgdm9pZCBQYWdlOjpzZXRNZWRp
YVZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgfQogfQogCit2b2lkIFBhZ2U6OmRpZE1vdmVPbnNj
cmVlbigpCit7CisgICAgZm9yIChGcmFtZSogZnJhbWUgPSBtYWluRnJhbWUoKTsgZnJhbWU7IGZy
YW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKKyAgICAgICAgaWYgKGZyYW1l
LT52aWV3KCkpCisgICAgICAgICAgICBmcmFtZS0+dmlldygpLT5kaWRNb3ZlT25zY3JlZW4oKTsK
KyAgICB9Cit9CisKK3ZvaWQgUGFnZTo6d2lsbE1vdmVPZmZzY3JlZW4oKQoreworICAgIGZvciAo
RnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkt
PnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmIChmcmFtZS0+dmlldygpKQorICAgICAgICAg
ICAgZnJhbWUtPnZpZXcoKS0+d2lsbE1vdmVPZmZzY3JlZW4oKTsKKyAgICB9Cit9CisKIHZvaWQg
UGFnZTo6dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQoKQogewogI2lmICFGUkFNRV9MT0FE
U19VU0VSX1NUWUxFU0hFRVQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IGFlYTE2YTIuLjU3YjE5MWEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9QYWdlLmgKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTUzLDYgKzE1Mywx
MCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGZsb2F0IG1lZGlhVm9sdW1lKCkgY29u
c3QgeyByZXR1cm4gbV9tZWRpYVZvbHVtZTsgfQogICAgICAgICB2b2lkIHNldE1lZGlhVm9sdW1l
KGZsb2F0IHZvbHVtZSk7CiAKKyAgICAgICAgLy8gTm90aWZpY2F0aW9ucyB3aGVuIHRoZSBQYWdl
IHN0YXJ0cyBhbmQgc3RvcHMgYmVpbmcgcHJlc2VudGVkIHZpYSBhIG5hdGl2ZSB3aW5kb3cuCisg
ICAgICAgIHZvaWQgZGlkTW92ZU9uc2NyZWVuKCk7CisgICAgICAgIHZvaWQgd2lsbE1vdmVPZmZz
Y3JlZW4oKTsKKwogICAgICAgICB2b2lkIHVzZXJTdHlsZVNoZWV0TG9jYXRpb25DaGFuZ2VkKCk7
CiAgICAgICAgIGNvbnN0IFN0cmluZyYgdXNlclN0eWxlU2hlZXQoKSBjb25zdDsKICAgICAgICAg
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA2ZTgy
MWM3Li42MDg1Zjg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKQEAgLTE3OSw3ICsxNzksNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBk
YXRlTGF5ZXJDb21wb3NpdGluZ1N0YXRlKFJlbmRlckxheWVyKiBsYXllciwgUmVuZAogICAgICAg
ICAgICAgLy8gVGhlIGNvbnRlbnRzIG9mIHRoaXMgbGF5ZXIgbWF5IGJlIG1vdmluZyBiZXR3ZWVu
IHRoZSB3aW5kb3cKICAgICAgICAgICAgIC8vIGFuZCBhIEdyYXBoaWNzTGF5ZXIsIHNvIHdlIG5l
ZWQgdG8gbWFrZSBzdXJlIHRoZSB3aW5kb3cgc3lzdGVtCiAgICAgICAgICAgICAvLyBzeW5jaHJv
bml6ZXMgdGhvc2UgY2hhbmdlcyBvbiB0aGUgc2NyZWVuLgotICAgICAgICAgICAgbV9yZW5kZXJW
aWV3LT5mcmFtZVZpZXcoKS0+c2V0TmVlZHNTeW5jaHJvbml6ZWRHcmFwaGljc0ZsdXNoKCk7Cisg
ICAgICAgICAgICBtX3JlbmRlclZpZXctPmZyYW1lVmlldygpLT5zZXROZWVkc09uZVNob3REcmF3
aW5nU3luY2hyb25pemF0aW9uKCk7CiAgICAgICAgIH0KIAogICAgICAgICBsYXllci0+cmVuZGVy
ZXIoKS0+Y29tcG9zaXRpbmdTdGF0ZUNoYW5nZWQoKTsKQEAgLTI2NywxMyArMjY3LDE4IEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllcldpbGxCZVJlbW92ZWQoUmVuZGVyTGF5ZXIq
IHBhcmVudCwgUmVuZGVyTGF5ZXIqCiAgICAgaWYgKGNoaWxkLT5pc0NvbXBvc2l0ZWQoKSkKICAg
ICAgICAgc2V0Q29tcG9zaXRpbmdQYXJlbnQoY2hpbGQsIDApOwogICAgIAorICAgIC8vIElmIHRo
ZSBkb2N1bWVudCBpcyBiZWluZyB0b3JuIGRvd24gKGRvY3VtZW50J3MgcmVuZGVyZXIoKSBpcyBu
dWxsKSwgdGhlbiB0aGVyZSdzCisgICAgLy8gbm8gbmVlZCB0byBkbyBhbnkgbGF5ZXIgdXBkYXRp
bmcuCisgICAgaWYgKCFwYXJlbnQtPnJlbmRlcmVyKCktPnZpZXcoKSkKKyAgICAgICAgcmV0dXJu
OworCiAgICAgUmVuZGVyTGF5ZXIqIGNvbXBMYXllciA9IGVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5
ZXIocGFyZW50LCBmYWxzZSk7CiAgICAgaWYgKGNvbXBMYXllcikgewogICAgICAgICBJbnRSZWN0
IGFuY2VzdG9yUmVjdCA9IGNhbGN1bGF0ZUNvbXBvc2l0ZWRCb3VuZHMoY2hpbGQsIGNvbXBMYXll
cik7CiAgICAgICAgIGNvbXBMYXllci0+c2V0QmFja2luZ05lZWRzUmVwYWludEluUmVjdChhbmNl
c3RvclJlY3QpOwogICAgICAgICAvLyBUaGUgY29udGVudHMgb2YgdGhpcyBsYXllciBtYXkgYmUg
bW92aW5nIGZyb20gYSBHcmFwaGljc0xheWVyIHRvIHRoZSB3aW5kb3csCiAgICAgICAgIC8vIHNv
IHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSB3aW5kb3cgc3lzdGVtIHN5bmNocm9uaXplcyB0aG9z
ZSBjaGFuZ2VzIG9uIHRoZSBzY3JlZW4uCi0gICAgICAgIG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3
KCktPnNldE5lZWRzU3luY2hyb25pemVkR3JhcGhpY3NGbHVzaCgpOworICAgICAgICBtX3JlbmRl
clZpZXctPmZyYW1lVmlldygpLT5zZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9u
KCk7CiAgICAgfQogCiAgICAgc2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkVXBkYXRlKCk7CkBAIC01
ODUsOSArNTkwLDkgQEAgR3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyb290
UGxhdGZvcm1MYXllcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcm9vdFBsYXRmb3JtTGF5ZXI7CiB9
CiAKLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp3aWxsQmVEZXRhY2hlZCgpCit2b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6ZGlkTW92ZU9uc2NyZWVuKCkKIHsKLSAgICBpZiAoIW1fcm9v
dFBsYXRmb3JtTGF5ZXIgfHwhIG1fcm9vdExheWVyQXR0YWNoZWQpCisgICAgaWYgKCFtX3Jvb3RQ
bGF0Zm9ybUxheWVyKQogICAgICAgICByZXR1cm47CiAKICAgICBGcmFtZSogZnJhbWUgPSBtX3Jl
bmRlclZpZXctPmZyYW1lVmlldygpLT5mcmFtZSgpOwpAQCAtNTk1LDEzICs2MDAsMTMgQEAgdm9p
ZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OndpbGxCZURldGFjaGVkKCkKICAgICBpZiAoIXBhZ2Up
CiAgICAgICAgIHJldHVybjsKIAotICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YXR0YWNo
Um9vdEdyYXBoaWNzTGF5ZXIoZnJhbWUsIDApOwotICAgIG1fcm9vdExheWVyQXR0YWNoZWQgPSBm
YWxzZTsKKyAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmF0dGFjaFJvb3RHcmFwaGljc0xh
eWVyKGZyYW1lLCBtX3Jvb3RQbGF0Zm9ybUxheWVyKTsKKyAgICBtX3Jvb3RMYXllckF0dGFjaGVk
ID0gdHJ1ZTsKIH0KIAotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Ondhc0F0dGFjaGVkKCkK
K3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp3aWxsTW92ZU9mZnNjcmVlbigpCiB7Ci0gICAg
aWYgKCFtX3Jvb3RQbGF0Zm9ybUxheWVyKQorICAgIGlmICghbV9yb290UGxhdGZvcm1MYXllciB8
fCAhbV9yb290TGF5ZXJBdHRhY2hlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgRnJhbWUqIGZy
YW1lID0gbV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKS0+ZnJhbWUoKTsKQEAgLTYwOSw4ICs2MTQs
OCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6d2FzQXR0YWNoZWQoKQogICAgIGlmICgh
cGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5h
dHRhY2hSb290R3JhcGhpY3NMYXllcihmcmFtZSwgbV9yb290UGxhdGZvcm1MYXllcik7Ci0gICAg
bV9yb290TGF5ZXJBdHRhY2hlZCA9IHRydWU7CisgICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgp
LT5hdHRhY2hSb290R3JhcGhpY3NMYXllcihmcmFtZSwgMCk7CisgICAgbV9yb290TGF5ZXJBdHRh
Y2hlZCA9IGZhbHNlOwogfQogCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlUm9v
dExheWVyUG9zaXRpb24oKQpAQCAtNzQyLDcgKzc0Nyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjplbnN1cmVSb290UGxhdGZvcm1MYXllcigpCiAgICAgLy8gTmVlZCB0byBjbGlwIHRv
IHByZXZlbnQgdHJhbnNmb3JtZWQgY29udGVudCBzaG93aW5nIG91dHNpZGUgdGhpcyBmcmFtZQog
ICAgIG1fcm9vdFBsYXRmb3JtTGF5ZXItPnNldE1hc2tzVG9Cb3VuZHModHJ1ZSk7CiAgICAgCi0g
ICAgd2FzQXR0YWNoZWQoKTsKKyAgICBkaWRNb3ZlT25zY3JlZW4oKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApp
bmRleCAwNjBmNDc4Li4xMmExNjA5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuaApAQCAtODMsOCArODMsOSBAQCBwdWJsaWM6CiAgICAgUmVuZGVyTGF5ZXIqIHJv
b3RSZW5kZXJMYXllcigpIGNvbnN0OwogICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3RQbGF0Zm9ybUxh
eWVyKCkgY29uc3Q7CiAKLSAgICB2b2lkIHdpbGxCZURldGFjaGVkKCk7Ci0gICAgdm9pZCB3YXNB
dHRhY2hlZCgpOworICAgIHZvaWQgZGlkTW92ZU9uc2NyZWVuKCk7CisgICAgdm9pZCB3aWxsTW92
ZU9mZnNjcmVlbigpOworCiAgICAgdm9pZCB1cGRhdGVSb290TGF5ZXJQb3NpdGlvbigpOwogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCA4ZTZmY2UyLi5lZmUzNjBkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtNjI2LDQgKzYyNiwxNCBAQCB2b2lkIFJlbmRl
clZpZXc6OnVwZGF0ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBJ
bnRQb2ludCYgcG9pbgogICAgIH0KIH0KIAordm9pZCBSZW5kZXJWaWV3OjpkaWRNb3ZlT25zY3Jl
ZW4oKQoreworICAgIC8vIEZJWE1FOiB3aWxsIGNhbGwgaW50byBSZW5kZXJMYXllckNvbXBvc2l0
b3IKK30KKwordm9pZCBSZW5kZXJWaWV3Ojp3aWxsTW92ZU9mZnNjcmVlbigpCit7CisgICAgLy8g
RklYTUU6IHdpbGwgY2FsbCBpbnRvIFJlbmRlckxheWVyQ29tcG9zaXRvcgorfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5kZXggZDljMmExNS4uNDZlYzRk
MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMTQ2LDYgKzE0Niw5IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVIaXRUZXN0UmVzdWx0KEhpdFRlc3RSZXN1bHQmLCBjb25z
dCBJbnRQb2ludCYpOwogCisgICAgdm9pZCBkaWRNb3ZlT25zY3JlZW4oKTsKKyAgICB2b2lkIHdp
bGxNb3ZlT2Zmc2NyZWVuKCk7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIEZsb2F0UXVhZCBs
b2NhbFRvQ29udGFpbmVyUXVhZChjb25zdCBGbG9hdFF1YWQmLCBSZW5kZXJCb3gqIHJlcGFpbnRD
b250YWluZXIsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggM2ZhYWQ3NS4uMGM0
NWMwNiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAwOS0wMi0wMSAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
NjUKKyAgICAgICAgCisgICAgICAgIEhvb2sgdXAgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbGF5
ZXJzIHRoZSBuYXRpdmUKKyAgICAgICAgdmlldyBzeXN0ZW0gb24gTWFjLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hS
b290R3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25l
U2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24pOgorICAgICAgICBOZXcgbWV0aG9kcyB0byBob29r
IHVwIHRoZSByb290IEdyYXBoaWNzTGF5ZXIgdG8gdGhlIG5hdGl2ZQorICAgICAgICB2aWV3IHN5
c3RlbSwgYW5kIHRvIHN5bmNocm9uaXplIGxheWVyIGNoYW5nZXMgd2l0aCB2aWV3LWJhc2VkCisg
ICAgICAgIGRyYXdpbmcgd2hlbiBsYXllcnMgY29tZSBhbmQgZ28uCisKKyAgICAgICAgKiBXZWJW
aWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlld1ByaXZhdGUgY2xlYXJd
KToKKyAgICAgICAgQ2xlYXIgdGhlIHBvaW50ZXIgdG8gbGF5ZXJIb3N0aW5nVmlldy4KKworICAg
ICAgICAoLVtXZWJIVE1MVmlldyBfc2V0QXNpZGVTdWJ2aWV3c10pOgorICAgICAgICAoLVtXZWJI
VE1MVmlldyB3aWxsUmVtb3ZlU3VidmlldzpdKToKKyAgICAgICAgS2VlcCB0aGUgc3BlY2lhbCBs
YXllci1ob3N0aW5nIHZpZXcgaW4gdGhlIHN1YnZpZXdzIGV2ZW4gCisgICAgICAgIHdoZW4gdGhl
IHJlc3Qgb2YgdGhlIHN1YnZpZXdzIGFyZSByaXBwZWQgb3V0IGZvcgorICAgICAgICBwYWludGlu
Zy4KKworICAgICAgICAoLVtXZWJIVE1MVmlldyBfaXNVc2luZ0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmddKToKKyAgICAgICAgTmV3IHV0aWxpdHkgbWV0aG9kIGZvciBEdW1wUmVuZGVyVHJlZSB0byBr
bm93IGlmIHdlJ3JlCisgICAgICAgIGhvc3RpbmcgbGF5ZXJzLgorCisgICAgICAgICgtW1dlYkhU
TUxWaWV3IGRyYXdSZWN0Ol0pOgorICAgICAgICBDYWxsIC1kaXNhYmxlU2NyZWVuVXBkYXRlc1Vu
dGlsRmx1c2ggaWYgd2UgaGF2ZSB0bworICAgICAgICBzeW5jaHJvbml6ZSBsYXllciBjaGFuZ2Vz
IHdpdGggcGFpbnRpbmcuCisKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgYXR0YWNoUm9vdExheWVy
Ol0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBkZXRhY2hSb290TGF5ZXJdKToKKyAgICAgICAg
QXR0YWNoIGFuZCBkZXRhY2ggdGhlIHJvb3QgR3JhcGhpY3NMYXllci4KKworICAgICAgICAqIFdl
YlZpZXcvV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlld0lu
dGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlld1ByaXZhdGUuaDoKKyAgICAg
ICAgTmV3IG1ldGhvZCBkZWNsYXJhdGlvbnMuCisgICAgICAgIAorICAgICAgICAqIFdlYlZpZXcv
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNPbmVTaG90RHJhd2luZ1N5bmNo
cm9uaXphdGlvbl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zZXROZWVkc09uZVNob3REcmF3aW5n
U3luY2hyb25pemF0aW9uOl0pOgorICAgICAgICBTZXQgdGhlIGZsYWcgdG8gc2F5IGlmIHdlIG5l
ZWQgdG8gc3luY2hyb25pemUgbGF5ZXIKKyAgICAgICAgY2hhbmdlcyBhbmQgcGFpbnRpbmcgb24g
dGhlIG5leHQgLWRyYXdSZWN0OiBjYWxsLgorCisgICAgICAgICgtW1dlYlZpZXcgdmlld1dpbGxN
b3ZlVG9XaW5kb3c6XSk6CisgICAgICAgICgtW1dlYlZpZXcgdmlld0RpZE1vdmVUb1dpbmRvd10p
OgorICAgICAgICBDYWxsIG5ldyBub3RpZmljYXRpb25zIHRoYXQgdGhlIHZpZXcgd2FzIGFkZGVk
IHRvIG9yIHJlbW92ZWQgZnJvbQorICAgICAgICB0aGUgd2luZG93LCB3aGljaCBhcmUgcmVxdWly
ZWQgYnkgdGhlIGxheWVyIGhvc3RpbmcgbWVjaGFuaXNtLgorCiAyMDA5LTAxLTMxICBKb2huIFN1
bGxpdmFuICA8c3VsbGl2YW5AYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2NQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMjlhNGMyNS4uMjFiNWE1OCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMzUsNiArMTM1LDExIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAgICAg
dmlydHVhbCB2b2lkIGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpOb2RlKikgeyB9
CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgdmlydHVhbCB2b2lkIGF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25p
emF0aW9uKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJWaWV3ICptX3dlYlZpZXc7CiB9
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA2
YjVkMTM4Li4yNTRlNTA4IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbQpAQCAtNDksNiArNDksOSBAQAogI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3Qu
aD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2Fk
UmVxdWVzdC5oPgorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpbXBvcnQgPFdl
YkNvcmUvR3JhcGhpY3NMYXllci5oPgorI2VuZGlmCiAjaW1wb3J0IDxXZWJDb3JlL0hpdFRlc3RS
ZXN1bHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW50UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
YWdlLmg+CkBAIC02NDMsNiArNjQ2LDIzIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbmFibGVT
dWRkZW5UZXJtaW5hdGlvbigpCiAjZW5kaWYKIH0KIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihG
cmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit7CisgICAgV2ViRnJh
bWVWaWV3KiBmcmFtZVZpZXcgPSBba2l0KGZyYW1lKSBmcmFtZVZpZXddOworICAgIFdlYkhUTUxW
aWV3KiBkb2NWaWV3ID0gKFdlYkhUTUxWaWV3ICopW2ZyYW1lVmlldyBkb2N1bWVudFZpZXddOwor
ICAgIGlmIChncmFwaGljc0xheWVyKQorICAgICAgICBbZG9jVmlldyBhdHRhY2hSb290TGF5ZXI6
Z3JhcGhpY3NMYXllci0+bmF0aXZlTGF5ZXIoKV07CisgICAgZWxzZQorICAgICAgICBbZG9jVmll
dyBkZXRhY2hSb290TGF5ZXJdOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TmVlZHNP
bmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpCit7CisgICAgW21fd2ViVmlldyBfc2V0TmVl
ZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbjpZRVNdOworfQorI2VuZGlmCisKIEBpbXBs
ZW1lbnRhdGlvbiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcgogCiAtIChpZClpbml0V2l0aENo
b29zZXI6KFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KWNob29zZXIKZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlldy5tbQppbmRleCA0Nzk1ZThmLi4yZmMyODNlIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3
Lm1tCkBAIC0xMTQsNiArMTE0LDEwIEBACiAjaW1wb3J0IDxsaW1pdHM+CiAjaW1wb3J0IDxydW50
aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgorI2VuZGlmCisKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5h
bWVzcGFjZSBXVEY7CkBAIC0zODEsNiArMzg1LDEwIEBAIHN0cnVjdCBXZWJIVE1MVmlld0ludGVy
cHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAgIAogICAgIGlkIHNhdmVkU3Vidmlld3M7CiAg
ICAgQk9PTCBzdWJ2aWV3c1NldEFzaWRlOworICAgIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKKyAgICBOU1ZpZXcqIGxheWVySG9zdGluZ1ZpZXc7CisjZW5kaWYKIAogICAgIE5T
RXZlbnQgKm1vdXNlRG93bkV2ZW50OyAvLyBLZXB0IGFmdGVyIGhhbmRsaW5nIHRoZSBldmVudC4K
ICAgICBCT09MIGhhbmRsaW5nTW91c2VEb3duRXZlbnQ7CkBAIC01MjksNiArNTM3LDEwIEBAIHN0
YXRpYyBOU0NlbGxTdGF0ZVZhbHVlIGtpdChUcmlTdGF0ZSBzdGF0ZSkKICAgICBkYXRhU291cmNl
ID0gbmlsOwogICAgIGhpZ2hsaWdodGVycyA9IG5pbDsKICAgICBwcm9taXNlZERyYWdUSUZGRGF0
YVNvdXJjZSA9IDA7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgbGF5
ZXJIb3N0aW5nVmlldyA9IG5pbDsKKyNlbmRpZiAgICAKIH0KIAogQGVuZApAQCAtMTEzNywxNSAr
MTE0OSwzNCBAQCBzdGF0aWMgdm9pZCBfdXBkYXRlTW91c2VvdmVyVGltZXJDYWxsYmFjayhDRlJ1
bkxvb3BUaW1lclJlZiB0aW1lciwgdm9pZCAqaW5mbykKICAgICBBU1NFUlQoIV9wcml2YXRlLT5z
dWJ2aWV3c1NldEFzaWRlKTsKICAgICBBU1NFUlQoX3ByaXZhdGUtPnNhdmVkU3Vidmlld3MgPT0g
bmlsKTsKICAgICBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3cyA9IF9zdWJ2aWV3czsKKyNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgLy8gV2UgbmVlZCB0byBrZWVwIHRoZSBsYXll
ci1ob3N0aW5nIHZpZXcgaW4gdGhlIHN1YnZpZXdzLCBvdGhlcndpc2UgdGhlIGxheWVycyBmbGFz
aC4KKyAgICBpZiAoX3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcpIHsKKyAgICAgICAgTlNBcnJh
eSogbmV3U3Vidmlld3MgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpfcHJpdmF0
ZS0+bGF5ZXJIb3N0aW5nVmlldywgbmlsXTsKKyAgICAgICAgX3N1YnZpZXdzID0gbmV3U3Vidmll
d3M7CisgICAgfSBlbHNlCisgICAgICAgIF9zdWJ2aWV3cyA9IG5pbDsKKyNlbHNlCiAgICAgX3N1
YnZpZXdzID0gbmlsOworI2VuZGlmICAgIAogICAgIF9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRl
ID0gWUVTOwogIH0KICAKICAtICh2b2lkKV9yZXN0b3JlU3Vidmlld3MKICB7CiAgICAgQVNTRVJU
KF9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRlKTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCisgICAgaWYgKF9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3KSB7CisgICAgICAgIFtf
c3Vidmlld3MgcmVsZWFzZV07CisgICAgICAgIF9zdWJ2aWV3cyA9IF9wcml2YXRlLT5zYXZlZFN1
YnZpZXdzOworICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChfc3Vidmlld3MgPT0gbmlsKTsK
KyAgICAgICAgX3N1YnZpZXdzID0gX3ByaXZhdGUtPnNhdmVkU3Vidmlld3M7CisgICAgfQorI2Vs
c2UKICAgICBBU1NFUlQoX3N1YnZpZXdzID09IG5pbCk7CiAgICAgX3N1YnZpZXdzID0gX3ByaXZh
dGUtPnNhdmVkU3Vidmlld3M7CisjZW5kaWYgICAgCiAgICAgX3ByaXZhdGUtPnNhdmVkU3Vidmll
d3MgPSBuaWw7CiAgICAgX3ByaXZhdGUtPnN1YnZpZXdzU2V0QXNpZGUgPSBOTzsKIH0KQEAgLTEx
NjAsNyArMTE5MSw5IEBAIHN0YXRpYyB2b2lkIF91cGRhdGVNb3VzZW92ZXJUaW1lckNhbGxiYWNr
KENGUnVuTG9vcFRpbWVyUmVmIHRpbWVyLCB2b2lkICppbmZvKQogCiAtICh2b2lkKXdpbGxSZW1v
dmVTdWJ2aWV3OihOU1ZpZXcgKilzdWJ2aWV3CiB7Ci0gICAgaWYgKF9wcml2YXRlLT5lbnVtZXJh
dGluZ1N1YnZpZXdzKQorICAgIC8vIEhhdmUgdG8gbnVsbC1jaGVjayBfcHJpdmF0ZSwgc2luY2Ug
dGhpcyBjYW4gYmUgY2FsbGVkIHZpYSAtZGVhbGxvYyB3aGVuCisgICAgLy8gY2xlYW5pbmcgdXAg
dGhlIHRoZSBsYXllckhvc3RpbmdWaWV3LgorICAgIGlmIChfcHJpdmF0ZSAmJiBfcHJpdmF0ZS0+
ZW51bWVyYXRpbmdTdWJ2aWV3cykKICAgICAgICAgTE9HKFZpZXcsICJBIHZpZXcgb2YgY2xhc3Mg
JXMgd2FzIHJlbW92ZWQgZHVyaW5nIHN1YnZpZXcgZW51bWVyYXRpb24gZm9yIGxheW91dCBvciBw
cmludGluZyBtb2RlIGNoYW5nZS4gV2Ugd2lsbCBzdGlsbCBkbyBsYXlvdXQgb3IgdGhlIHByaW50
aW5nIG1vZGUgY2hhbmdlIGV2ZW4gdGhvdWdoIHRoaXMgdmlldyBpcyBubyBsb25nZXIgaW4gdGhl
IHZpZXcgaGllcmFyY2h5LiIsIG9iamVjdF9nZXRDbGFzc05hbWUoW3N1YnZpZXcgY2xhc3NdKSk7
CiB9CiAKQEAgLTIwNzIsNiArMjEwNSwxNSBAQCBzdGF0aWMgdm9pZCBfdXBkYXRlTW91c2VvdmVy
VGltZXJDYWxsYmFjayhDRlJ1bkxvb3BUaW1lclJlZiB0aW1lciwgdm9pZCAqaW5mbykKIH0gCiAj
ZW5kaWYgCiAKKy0gKEJPT0wpX2lzVXNpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nCit7CisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIHJldHVybiBfcHJpdmF0ZS0+bGF5ZXJI
b3N0aW5nVmlldyAhPSBuaWw7CisjZWxzZQorICAgIHJldHVybiBOTzsKKyNlbmRpZgorfQorCiBA
ZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBOU1ZpZXcgKFdlYkhUTUxWaWV3RmlsZUludGVybmFsKQpA
QCAtMzAyMCw2ICszMDYyLDE2IEBAIHN0YXRpYyB2b2lkIF91cGRhdGVGb2N1c2VkQW5kQWN0aXZl
U3RhdGVUaW1lckNhbGxiYWNrKENGUnVuTG9vcFRpbWVyUmVmIHRpbWVyLCB2CiAKICAgICBpZiAo
c3Vidmlld3NXZXJlU2V0QXNpZGUpCiAgICAgICAgIFtzZWxmIF9zZXRBc2lkZVN1YnZpZXdzXTsK
KyAgICAgICAgCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmIChbW3Nl
bGYgX3dlYlZpZXddIF9uZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uXSkgeworICAg
ICAgICAvLyBEaXNhYmxlIHNjcmVlbiB1cGRhdGVzIHNvIHRoYXQgZHJhd2luZyBpbnRvIHRoZSBO
U1ZpZXcgYW5kCisgICAgICAgIC8vIENBTGF5ZXIgdXBkYXRlcyBhcHBlYXIgb24gdGhlIHNjcmVl
biBhdCB0aGUgc2FtZSB0aW1lLgorICAgICAgICBbW3NlbGYgd2luZG93XSBkaXNhYmxlU2NyZWVu
VXBkYXRlc1VudGlsRmx1c2hdOworICAgICAgICBbQ0FUcmFuc2FjdGlvbiBmbHVzaF07CisgICAg
ICAgIFtbc2VsZiBfd2ViVmlld10gX3NldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRp
b246Tk9dOworICAgIH0KKyNlbmRpZgogfQogCiAvLyBUdXJuIG9mZiB0aGUgYWRkaXRpb25hbCBj
bGlwIHdoaWxlIGNvbXB1dGluZyBvdXIgdmlzaWJsZVJlY3QuCkBAIC00OTcxLDYgKzUwMjMsMzgg
QEAgc3RhdGljIENHUG9pbnQgY29yZUdyYXBoaWNzU2NyZWVuUG9pbnRGb3JBcHBLaXRTY3JlZW5Q
b2ludChOU1BvaW50IHBvaW50KQogICAgIFtbc2VsZiBfcGx1Z2luQ29udHJvbGxlcl0gZGVzdHJv
eUFsbFBsdWdpbnNdOwogfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorLSAo
dm9pZClhdHRhY2hSb290TGF5ZXI6KENBTGF5ZXIqKWxheWVyCit7CisgICAgaWYgKCFfcHJpdmF0
ZS0+bGF5ZXJIb3N0aW5nVmlldykgeworICAgICAgICBOU1ZpZXcqIGhvc3RpbmdWaWV3ID0gW1tO
U1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6W3NlbGYgYm91bmRzXV07CisgICAgICAgIFtob3N0
aW5nVmlldyBzZXRBdXRvcmVzaXppbmdNYXNrOihOU1ZpZXdXaWR0aFNpemFibGUgfCBOU1ZpZXdI
ZWlnaHRTaXphYmxlKV07CisgICAgICAgIFtzZWxmIGFkZFN1YnZpZXc6aG9zdGluZ1ZpZXddOwor
ICAgICAgICBbaG9zdGluZ1ZpZXcgcmVsZWFzZV07CisgICAgICAgIC8vIGhvc3RpbmdWaWV3IGlz
IG93bmVkIGJ5IGJlaW5nIGEgc3VidmlldyBvZiBzZWxmCisgICAgICAgIF9wcml2YXRlLT5sYXll
ckhvc3RpbmdWaWV3ID0gaG9zdGluZ1ZpZXc7CisgICAgfQorCisgICAgLy8gTWFrZSBhIGNvbnRh
aW5lciBsYXllciwgd2hpY2ggd2lsbCBnZXQgc2l6ZWQvcG9zaXRpb25lZCBieSBBcHBLaXQgYW5k
IENBCisgICAgQ0FMYXllciogdmlld0xheWVyID0gW0NBTGF5ZXIgbGF5ZXJdOworICAgIFtfcHJp
dmF0ZS0+bGF5ZXJIb3N0aW5nVmlldyBzZXRMYXllcjp2aWV3TGF5ZXJdOworICAgIFtfcHJpdmF0
ZS0+bGF5ZXJIb3N0aW5nVmlldyBzZXRXYW50c0xheWVyOllFU107CisgICAgCisgICAgLy8gUGFy
ZW50IG91ciByb290IGxheWVyIGluIHRoZSBjb250YWluZXIgbGF5ZXIKKyAgICBbdmlld0xheWVy
IGFkZFN1YmxheWVyOmxheWVyXTsKK30KKworLSAodm9pZClkZXRhY2hSb290TGF5ZXIKK3sKKyAg
ICBpZiAoX3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcpIHsKKyAgICAgICAgW19wcml2YXRlLT5s
YXllckhvc3RpbmdWaWV3IHNldExheWVyOm5pbF07CisgICAgICAgIFtfcHJpdmF0ZS0+bGF5ZXJI
b3N0aW5nVmlldyBzZXRXYW50c0xheWVyOk5PXTsKKyAgICAgICAgW19wcml2YXRlLT5sYXllckhv
c3RpbmdWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOworICAgICAgICBfcHJpdmF0ZS0+bGF5ZXJI
b3N0aW5nVmlldyA9IG5pbDsKKyAgICB9Cit9CisjZW5kaWYKKwogQGVuZAogCiBAaW1wbGVtZW50
YXRpb24gV2ViSFRNTFZpZXcgKFdlYk5TVGV4dElucHV0U3VwcG9ydCkKZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFsLmggYi9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oCmluZGV4IDBmYjBjZGMuLmE5ODRhMmMgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFsLmgKKysrIGIvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3SW50ZXJuYWwuaApAQCAtNTgsNCArNTgsMTAgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogLSAodm9pZClzZXRQcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZToo
V2ViQ29yZTo6Q2FjaGVkSW1hZ2UqKXNvdXJjZTsKIC0gKHZvaWQpX3dlYl9sYXlvdXRJZk5lZWRl
ZFJlY3Vyc2l2ZTsKIC0gKHZvaWQpX2Rlc3Ryb3lBbGxXZWJQbHVnaW5zOworCisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorLSAodm9pZClhdHRhY2hSb290TGF5ZXI6KENBTGF5ZXIq
KWxheWVyOworLSAodm9pZClkZXRhY2hSb290TGF5ZXI7CisjZW5kaWYKKwogQGVuZApkaWZmIC0t
Z2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3UHJpdmF0ZS5oIGIvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3UHJpdmF0ZS5oCmluZGV4IDQwZGU5N2YuLjBkNzM4ODQgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlld1ByaXZhdGUuaAorKysgYi9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXdQcml2YXRlLmgKQEAgLTExOSw2ICsxMTksNyBA
QAogCiAvLyBTUEkgZm9yIER1bXBSZW5kZXJUcmVlCiAtICh2b2lkKV91cGRhdGVGb2N1c2VkQW5k
QWN0aXZlU3RhdGU7CistIChCT09MKV9pc1VzaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsKIAog
Ly8gU1BJIGZvciBwcmludGluZyAoc2hvdWxkIGJlIGNvbnZlcnRlZCB0byBBUEkgc29tZWRheSku
IFdoZW4gdGhlIFdlYkhUTUxWaWV3IGlzbid0IGJlaW5nIHByaW50ZWQKIC8vIGRpcmVjdGx5LCB0
aGlzIG1ldGhvZCBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgcGFnaW5hdGluZywgb3IgdGhlIGNvbXB1
dGVkIGhlaWdodCBtaWdodCBiZSBpbmNvcnJlY3QuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDQ0
YzUwMzQuLjM3M2JkN2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC00MDYsNiArNDA2LDEyIEBA
IHN0YXRpYyBjb25zdCBjaGFyIHdlYlZpZXdJc09wZW5bXSA9ICJBdCBsZWFzdCBvbmUgV2ViVmll
dyBpcyBzdGlsbCBvcGVuLiI7CiAgICAgCiAgICAgLy8gV2hlbiB0aGlzIGZsYWcgaXMgc2V0LCB3
ZSB3aWxsIG5vdCBtYWtlIGFueSBzdWJ2aWV3cyB1bmRlcm5lYXRoIHRoaXMgV2ViVmlldy4gIFRo
aXMgbWVhbnMgbm8gV2ViRnJhbWVWaWV3cyBhbmQgbm8gV2ViSFRNTFZpZXdzLgogICAgIEJPT0wg
dXNlRG9jdW1lbnRWaWV3czsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAg
ICAvLyBXaGVuIHRoaXMgZmxhZyBpcyBzZXQsIG5leHQgdGltZSBhIFdlYkhUTUxWaWV3IGRyYXdz
LCBpdCBuZWVkcyB0byB0ZW1wb3JhcmlseSBkaXNhYmxlIHNjcmVlbiB1cGRhdGVzCisgICAgLy8g
c28gdGhhdCB0aGUgTlNWaWV3IGRyYXdpbmcgaXMgdmlzdWFsbHkgc3luY2hyb25pemVkIHdpdGgg
Q0FMYXllciB1cGRhdGVzLgorICAgIEJPT0wgbmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXph
dGlvbjsKKyNlbmRpZiAgICAKIH0KIEBlbmQKIApAQCAtMjA2OSw2ICsyMDc1LDE4IEBAIFdlYkZy
YW1lTG9hZERlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoZSogV2ViVmlld0dldEZyYW1lTG9hZERl
bGVnYXRlSW1wbGVtZW50YXRpCiAgICAgcmV0dXJuIF9wcml2YXRlLT5wYWdlLT5hcmVNZW1vcnlD
YWNoZUNsaWVudENhbGxzRW5hYmxlZCgpOwogfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQorLSAoQk9PTClfbmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbgorewor
ICAgIHJldHVybiBfcHJpdmF0ZS0+bmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbjsK
K30KKworLSAodm9pZClfc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbjooQk9P
TCluZWVkc1N5bmNocm9uaXphdGlvbgoreworICAgIF9wcml2YXRlLT5uZWVkc09uZVNob3REcmF3
aW5nU3luY2hyb25pemF0aW9uID0gbmVlZHNTeW5jaHJvbml6YXRpb247Cit9CisjZW5kaWYgICAg
CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIF9XZWJTYWZlRm9yd2FyZGVyCkBAIC0yNDk4LDcg
KzI1MTYsOCBAQCBzdGF0aWMgYm9vbCBuZWVkc1dlYlZpZXdJbml0VGhyZWFkV29ya2Fyb3VuZCgp
CiAgICAgICAgIAogICAgICAgICBbc2VsZiByZW1vdmVXaW5kb3dPYnNlcnZlcnNdOwogICAgICAg
ICBbc2VsZiByZW1vdmVTaXplT2JzZXJ2ZXJzXTsKLSAgICB9CisgICAgfSBlbHNlCisgICAgICAg
IF9wcml2YXRlLT5wYWdlLT53aWxsTW92ZU9mZnNjcmVlbigpOwogfQogCiAtICh2b2lkKXZpZXdE
aWRNb3ZlVG9XaW5kb3cKQEAgLTI1MTMsNiArMjUzMiw3IEBAIHN0YXRpYyBib29sIG5lZWRzV2Vi
Vmlld0luaXRUaHJlYWRXb3JrYXJvdW5kKCkKICAgICBpZiAoW3NlbGYgd2luZG93XSkgewogICAg
ICAgICBbc2VsZiBhZGRXaW5kb3dPYnNlcnZlcnNdOwogICAgICAgICBbc2VsZiBhZGRTaXplT2Jz
ZXJ2ZXJzXTsKKyAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPmRpZE1vdmVPbnNjcmVlbigpOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5o
IGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDI1YWZiNjQuLmEy
ZDBmNzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAor
KysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTE0NSw2ICsxNDUs
MTEgQEAgdHlwZWRlZiBXZWJDb3JlOjpQYWdlIFdlYkNvcmVQYWdlOwogCiArIChCT09MKV9jYW5I
YW5kbGVSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IGZvck1haW5GcmFtZTooQk9PTClm
b3JNYWluRnJhbWU7CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCistIChCT09M
KV9uZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uOworLSAodm9pZClfc2V0TmVlZHNP
bmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbjooQk9PTCluZWVkc1N5bmNocm9uaXphdGlvbjsK
KyNlbmRpZiAgICAKKwogQGVuZAogCiB0eXBlZGVmIHN0cnVjdCBfV2ViUmVzb3VyY2VEZWxlZ2F0
ZUltcGxlbWVudGF0aW9uQ2FjaGUgewo=
</data>
<flag name="review"
          id="13113"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>