<?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>46580</bug_id>
          
          <creation_ts>2010-09-26 12:16:47 -0700</creation_ts>
          <short_desc>[Mac][DRT] Implement LayoutTestController::nodesFromRect</short_desc>
          <delta_ts>2010-11-12 12:28:15 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>44089</blocked>
    
    <blocked>46336</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antonio Gomes">tonikitoo</reporter>
          <assigned_to name="Antonio Gomes">tonikitoo</assigned_to>
          <cc>ademar</cc>
    
    <cc>eric</cc>
    
    <cc>kenneth</cc>
    
    <cc>manyoso</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>285145</commentid>
    <comment_count>0</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-26 12:16:47 -0700</bug_when>
    <thetext>document.nodesFromRect is not standard and should not be exposed to JS/Web content. Bug 46492 removed it from Document.idl and had to skip fast/dom/nodesFromRect-basic.html.

Each DRT has to implement LayoutTestController::nodesFromRect in order to test this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285157</commentid>
    <comment_count>1</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-26 13:40:00 -0700</bug_when>
    <thetext>Patch coming ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285177</commentid>
    <comment_count>2</comment_count>
      <attachid>68861</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-26 15:04:51 -0700</bug_when>
    <thetext>Created attachment 68861
patch v1

Patch implements LayoutTestController::nodesFromRect for Mac, and add stubs for Gtk, Win and Wx DRTs.

A few symbols had to be added to WebCore.exp.in, and JSNodeList.h and JSDocument had to be set as Private headers.

Patch also changes fast/dom/nodesFromRect-basic.html accordingly, and unskips it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285178</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-26 15:06:19 -0700</bug_when>
    <thetext>Attachment 68861 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/mac/WebView/WebViewPrivate.h:633:  Extra space before ( in function call  [whitespace/parens] [4]
WebKitTools/DumpRenderTree/LayoutTestController.h:63:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
WebKitTools/DumpRenderTree/LayoutTestController.cpp:521:  Use 0 instead of NULL.  [readability/null] [5]
WebKitTools/DumpRenderTree/LayoutTestController.cpp:522:  Use 0 instead of NULL.  [readability/null] [5]
WebKitTools/DumpRenderTree/LayoutTestController.cpp:523:  Use 0 instead of NULL.  [readability/null] [5]
WebKitTools/DumpRenderTree/LayoutTestController.cpp:524:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 6 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285179</commentid>
    <comment_count>4</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-26 15:08:49 -0700</bug_when>
    <thetext>Fixed locally.

&gt; WebKit/mac/WebView/WebViewPrivate.h:633:  Extra space before ( in function call  [whitespace/parens] [4]
&gt; WebKitTools/DumpRenderTree/LayoutTestController.h:63:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
&gt; WebKitTools/DumpRenderTree/LayoutTestController.cpp:521:  Use 0 instead of NULL.  [readability/null] [5]
&gt; WebKitTools/DumpRenderTree/LayoutTestController.cpp:522:  Use 0 instead of NULL.  [readability/null] [5]
&gt; WebKitTools/DumpRenderTree/LayoutTestController.cpp:523:  Use 0 instead of NULL.  [readability/null] [5]
&gt; WebKitTools/DumpRenderTree/LayoutTestController.cpp:524:  Use 0 instead of NULL.  [readability/null] [5]
&gt; Total errors found: 6 in 15 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285181</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-26 15:14:40 -0700</bug_when>
    <thetext>Attachment 68861 did not build on mac:
Build output: http://queues.webkit.org/results/4130018</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285194</commentid>
    <comment_count>6</comment_count>
      <attachid>68865</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-26 16:23:03 -0700</bug_when>
    <thetext>Created attachment 68865
patch v2 (committed r68356, r=kenneth)

Same as patch v1 (attachment 68861), but not it builds and works.

See comment #2 for summary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285196</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-26 16:26:24 -0700</bug_when>
    <thetext>Attachment 68865 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/mac/WebView/WebViewPrivate.h:633:  Extra space before ( in function call  [whitespace/parens] [4]
WebKitTools/DumpRenderTree/LayoutTestController.cpp:521:  Use 0 instead of NULL.  [readability/null] [5]
WebKitTools/DumpRenderTree/LayoutTestController.cpp:522:  Use 0 instead of NULL.  [readability/null] [5]
WebKitTools/DumpRenderTree/LayoutTestController.cpp:523:  Use 0 instead of NULL.  [readability/null] [5]
WebKitTools/DumpRenderTree/LayoutTestController.cpp:524:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 5 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285197</commentid>
    <comment_count>8</comment_count>
      <attachid>68865</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-09-26 16:32:32 -0700</bug_when>
    <thetext>Comment on attachment 68865
patch v2 (committed r68356, r=kenneth)

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

&gt; WebKitTools/ChangeLog:11
&gt; +        adding stubs for Gtk and Windows.

I believe it is called GTK+

&gt; WebKitTools/DumpRenderTree/LayoutTestController.cpp:521
&gt; +    int x = JSValueToNumber(context, arguments[1], NULL);

Thought this is a C API call, we are calling it from C++, so I think we should use 0 instead of NULL.

&gt; WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:142
&gt; +    // FIXME: Implement this.

Better to add a notImplemented() call, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285199</commentid>
    <comment_count>9</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-26 16:38:42 -0700</bug_when>
    <thetext>
&gt; &gt; WebKitTools/ChangeLog:11
&gt; &gt; +        adding stubs for Gtk and Windows.
&gt; 
&gt; I believe it is called GTK+

Ok, can fix before landing.
 
&gt; &gt; WebKitTools/DumpRenderTree/LayoutTestController.cpp:521
&gt; &gt; +    int x = JSValueToNumber(context, arguments[1], NULL);
&gt; Thought this is a C API call, we are calling it from C++, so I think we should use 0 instead of NULL.

I saw that other callers of JSValueToXXX are using NULL, so I kept that for consistency, but I might change w/out a problem.
 
&gt; &gt; WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:142
&gt; &gt; +    // FIXME: Implement this.
&gt; Better to add a notImplemented() call, I think.

Again, I could had added a call for it, but no other methods are doing so, so I did not add for consistency.

All can be fixed before landed.

I want to land this before getting back to bug 46336, so we do not keep a feature/method untested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285202</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-09-26 16:47:12 -0700</bug_when>
    <thetext>
&gt; I saw that other callers of JSValueToXXX are using NULL, so I kept that for consistency, but I might change w/out a problem.

Ok, then NULL (for C functions) it is for consistency.
&gt; 
&gt; &gt; &gt; WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:142
&gt; &gt; &gt; +    // FIXME: Implement this.
&gt; &gt; Better to add a notImplemented() call, I think.
&gt; 
&gt; Again, I could had added a call for it, but no other methods are doing so, so I did not add for consistency.

OK then!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285205</commentid>
    <comment_count>11</comment_count>
      <attachid>68865</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-09-26 16:50:23 -0700</bug_when>
    <thetext>Comment on attachment 68865
patch v2 (committed r68356, r=kenneth)

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

I&apos;m not a master on the mac javascript stuff, but it seems quite sensible.

&gt; WebKitTools/DumpRenderTree/LayoutTestController.cpp:527
&gt; +    // Has mac implementation

Misses dot at the end. But what do you mean with this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285210</commentid>
    <comment_count>12</comment_count>
      <attachid>68865</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-26 17:26:05 -0700</bug_when>
    <thetext>Comment on attachment 68865
patch v2 (committed r68356, r=kenneth)

Clearing flags on attachment: 68865.

Committed r68356: &lt;http://trac.webkit.org/changeset/68356&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285211</commentid>
    <comment_count>13</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-26 17:27:05 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 68865 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=68865&amp;action=review
&gt; 
&gt; I&apos;m not a master on the mac javascript stuff, but it seems quite sensible.
&gt; 
&gt; &gt; WebKitTools/DumpRenderTree/LayoutTestController.cpp:527
&gt; &gt; +    // Has mac implementation
&gt; 
&gt; Misses dot at the end. But what do you mean with this?

Again consistency. This file it full of it. 

But &quot;.&quot; added :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308705</commentid>
    <comment_count>14</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2010-11-12 12:28:15 -0800</bug_when>
    <thetext>Revision r68356 cherry-picked into qtwebkit-2.1 with commit c49afb4 &lt;http://gitorious.org/webkit/qtwebkit/commit/c49afb4&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68861</attachid>
            <date>2010-09-26 15:04:51 -0700</date>
            <delta_ts>2010-09-26 16:23:03 -0700</delta_ts>
            <desc>patch v1</desc>
            <filename>0001-Mac-DRT-Implement-LayoutTestController-nodesFromRect.patch</filename>
            <type>text/plain</type>
            <size>21089</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSAzYzZmZTI4YjVmZGIxNGRiZjMyYTZkZDFlMmMyYWY4NGI1MmJiNmY1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogU3VuLCAyNiBTZXAgMjAxMCAxNzo1Mzo1NyAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIFtN
YWNdW0RSVF0gSW1wbGVtZW50IExheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0CiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY1ODAKClBhdGNoIGJ5IEFu
dG9uaW8gR29tZXMgPGFnb21lc0ByaW0uY29tZz4gb24gMjAxMC0wOS0yNgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpTeW1ib2wgZmlsZXMgdXBkYXRlZC4KCiogV2ViQ29y
ZS5leHAuaW46IEFkZGVkIHN5bWJvbHMgdG8gRG9jdW1lbnQ6Om5vZGVzRnJvbVJlY3QgYW5kIGJp
dHMgb2YgSlNEb2N1bWVudCBub3cKbmVlZGVkIGluIFdlYktpdC9tYWMuCiogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBTZXQgYm90aCBKU0RvY3VtZW50LmggYW5kIEpTTm9kZUxp
c3QgYXMgcHJpdmF0ZSBoZWFkZXJzCm5vdyB0aGF0IHRoZXkgYXJlIHJlZmVycmVkIGluIFdlYktp
dC9tYWMuCgpXZWJLaXQvbWFjOgoKSW1wbGVtZW50IG5vZGVzRnJvbVJlY3QgYXMgYSBwcml2YXRl
IG1ldGhvZCB0byBhY2Nlc3Mgbm9uLWV4cG9zZWQgRG9jdW1lbnQKbWV0aG9kcywgc2ltaWxhcmx5
IHRvIGNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mby4KCiogV2ViVmlldy9XZWJWaWV3
Lm1tOiBBZGRlZCBKU0RvY3VtZW50LmggYW5kIEpTTm9kZUxpc3QuaCB0byB0aGUgaW5jbHVkZSBs
aXN0LgpUaGVzZSBoZWFkZXJzIG1ha2VzIGl0IHBvc3NpYmxlIHRvOgoxKSBHZXQgYSBEb2N1bWVu
dCBvZmYgb2YgYSBKU0RvY3VtZW50OwoyKSBDYWxsIHRvSlMgZnVuY3Rpb24sIGRlZmluZWQgaW4g
SlNOb2RlTGlzdC5jcHB8aCBzbyB3ZSBjYW4gY29udmVydCBSZWZQdHI8Tm9kZUxpc3Q+CmdvdHRl
biBmcm9tIERvY3VtZW50Ojpub2Rlc0Zyb21SZWN0IHRvIEpTIGJpbmRpbmdzLgooLVtXZWJWaWV3
IF9ub2Rlc0Zyb21SZWN0OmZvckRvY3VtZW50Ong6eTpoUGFkZGluZzp2UGFkZGluZzppZ25vcmVD
bGlwcGluZzpdKToKKiBXZWJWaWV3L1dlYlZpZXdQcml2YXRlLmg6IEFkZGVkIG5vZGVzRnJvbVJl
Y3QgbWV0aG9kIHRvIGFjY2VzcyBtZXRob2RzIG9mIHRoZQpEb2N1bWVudCBjbGFzcyBub3QgZXhw
b3NlZCB0byBKYXZhU2NyaXB0LiBJdCB3b3JrcyBzaW1pbGFybHkgdG8gY29tcHV0ZWRTdHlsZUlu
Y2x1ZGluZ1Zpc2l0ZWRJbmZvLgoKV2ViS2l0VG9vbHM6CgpJbXBsZW1lbnRzIExheW91dFRlc3RD
b250cm9sbGVyOjpub2Rlc0Zyb21SZWN0IGZvciBNYWMgRFJULCBhbmQKYWRkaW5nIHN0dWJzIGZv
ciBHdGsgYW5kIFdpbmRvd3MuCgoqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcDoKKG5vZGVzRnJvbVJlY3RDYWxsYmFjayk6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3Rh
dGljRnVuY3Rpb25zKToKKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgoo
TGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0
KToKKiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW06CihMYXlv
dXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdCk6CgpMYXlvdXRUZXN0czoKClVuc2tpcHBp
bmcgZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1iYXNlZC5odG1sIG9uIE1hYywgYW5kIGNoYW5nZXMg
aXQKc28gdGhhdCBpdCBjYWxscyBsYXlvdXRUZXN0Q29udHJvbGxlci5ub2Rlc0Zyb21SZWN0KCkg
aW5zdGVhZCBvZgpkb2N1bWVudC5ub2Rlc0Zyb21SZWN0KCkuCgoqIGZhc3QvZG9tL3Jlc291cmNl
cy9ub2Rlc0Zyb21SZWN0LmpzOgooY2hlY2spOgoqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgotLS0K
IExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
NyArKysrKysrKysrKysrKysKIExheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNlcy9ub2Rlc0Zy
b21SZWN0LmpzICAgIHwgICAgNyArKysrKy0KIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkICAgICAgICAgICAgICAgICAgIHwgICAgMyAtLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrKysrKysrKysrKysrCiBXZWJDb3Jl
L1dlYkNvcmUuZXhwLmluICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKysKIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICAgNCAr
LQogV2ViS2l0L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDIxICsrKysrKysrKysrKysrKysrKysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tICAg
ICAgICAgICAgICAgICAgICAgIHwgICAyMiArKysrKysrKysrKysrKysrKysrKwogV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmggICAgICAgICAgICAgICAgfCAgICA0ICsrKwogV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIwICsr
KysrKysrKysrKysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcCAgICAgICAgfCAgIDE3ICsrKysrKysrKysrKysrKwogV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCAgfCAgICAxICsKIC4uLi9EdW1wUmVuZGVyVHJl
ZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIHwgICAgNiArKysrKwogLi4uL0R1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSAgfCAgICA1ICsrKysKIC4u
Li9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIHwgICAgNiAr
KysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwICAg
fCAgICA2ICsrKysrCiAxNiBmaWxlcyBjaGFuZ2VkLCAxNTIgaW5zZXJ0aW9ucygrKSwgNiBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYjIwYzdhYS4uMGJlYWUzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDEwLTA5LTI2ICBBbnRvbmlvIEdvbWVzICA8YWdvbWVzQHJpbS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRFJUL01hYyBub2Rlc0Zyb21S
ZWN0IHN1cHBvcnQKKworICAgICAgICBbTWFjXVtEUlRdIEltcGxlbWVudCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6bm9kZXNGcm9tUmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDY1ODAKKworICAgICAgICBVbnNraXBwaW5nIGZhc3QvZG9tL25vZGVz
RnJvbVJlY3QtYmFzZWQuaHRtbCBvbiBNYWMsIGFuZCBjaGFuZ2VzIGl0CisgICAgICAgIHNvIHRo
YXQgaXQgY2FsbHMgbGF5b3V0VGVzdENvbnRyb2xsZXIubm9kZXNGcm9tUmVjdCgpIGluc3RlYWQg
b2YKKyAgICAgICAgZG9jdW1lbnQubm9kZXNGcm9tUmVjdCgpLgorCisgICAgICAgICogZmFzdC9k
b20vcmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanM6CisgICAgICAgIChjaGVjayk6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisKIDIwMTAtMDktMjUgIEFudG9uaW8gR29tZXMgIDxh
Z29tZXNAcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIENocmlzdGlhbnNl
biBhbmQgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jl
c291cmNlcy9ub2Rlc0Zyb21SZWN0LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2Vz
L25vZGVzRnJvbVJlY3QuanMKaW5kZXggYmUwNmM2YS4uOTQ3YTVkYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanMKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanMKQEAgLTEyLDcgKzEyLDEy
IEBAIGZ1bmN0aW9uIGNoZWNrKHgsIHksIGhQYWRkaW5nLCB2UGFkZGluZywgbGlzdCkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgdlBhZGRpbmcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBib29sZWFuIGlnbm9yZUNsaXBwaW5nKTsKICAgKi8KLSAgdmFyIG5vZGVz
ID0gZG9jdW1lbnQubm9kZXNGcm9tUmVjdCh4LCB5LCBoUGFkZGluZywgdlBhZGRpbmcsIHRydWUg
LyogaWdub3JlQ2xpcHBpbmcgKi8pOworICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICByZXR1cm47CisKKyAgdmFyIG5vZGVzID0gbGF5b3V0VGVzdENvbnRyb2xsZXIubm9k
ZXNGcm9tUmVjdChkb2N1bWVudCwgeCwgeSwgaFBhZGRpbmcsIHZQYWRkaW5nLCB0cnVlIC8qIGln
bm9yZUNsaXBwaW5nICovKTsKKyAgaWYgKCFub2RlcykKKyAgICByZXR1cm47CiAKICAgaWYgKG5v
ZGVzLmxlbmd0aCAhPSBsaXN0Lmxlbmd0aCkgewogICAgIHRlc3RGYWlsZWQoIkRpZmZlcmVudCBu
dW1iZXIgb2Ygbm9kZXMgZm9yIHJlY3QiICsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXgg
ODVlY2U0Yy4uNDIwNzkwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTMxNyw2ICsz
MTcsMyBAQCBtZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCiAKICMgRmlsZVN5c3RlbSBB
UEkgaXMgbm90IHN1cHBvcnRlZC4KIGZhc3QvZmlsZXN5c3RlbQotCi0jIExheW91dFRlc3RDb250
cm9sbGVyOjpub2Rlc0Zyb21SZWN0IGlzIG5vdCBzdXBwb3J0ZWQuCi1mYXN0L2RvbS9ub2Rlc0Zy
b21SZWN0LWJhc2ljLmh0bWwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNmQ2NDI3Mi4uYTg1YzZiNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0w
OS0yNiAgQW50b25pbyBHb21lcyAgPGFnb21lc0ByaW0uY29tZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEUlQvTWFjIG5vZGVzRnJvbVJlY3Qgc3Vw
cG9ydAorCisgICAgICAgIFtNYWNdW0RSVF0gSW1wbGVtZW50IExheW91dFRlc3RDb250cm9sbGVy
Ojpub2Rlc0Zyb21SZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NjU4MAorCisgICAgICAgIFN5bWJvbCBmaWxlcyB1cGRhdGVkLgorCisgICAgICAg
ICogV2ViQ29yZS5leHAuaW46IEFkZGVkIHN5bWJvbHMgdG8gRG9jdW1lbnQ6Om5vZGVzRnJvbVJl
Y3QgYW5kIGJpdHMgb2YgSlNEb2N1bWVudCBub3cKKyAgICAgICAgbmVlZGVkIGluIFdlYktpdC9t
YWMuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBTZXQgYm90
aCBKU0RvY3VtZW50LmggYW5kIEpTTm9kZUxpc3QgYXMgcHJpdmF0ZSBoZWFkZXJzCisgICAgICAg
IG5vdyB0aGF0IHRoZXkgYXJlIHJlZmVycmVkIGluIFdlYktpdC9tYWMuCisKIDIwMTAtMDktMjUg
IEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBL
ZW5uZXRoIENocmlzdGlhbnNlbiBhbmQgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDI2ZTNiNjgu
LjUyMjQzYmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgpAQCAtNTgxLDYgKzU4MSw3IEBAIF9fWk43V2ViQ29yZTRQYWdlRDFF
dgogX19aTjdXZWJDb3JlNGNvcmVFUDIwTlNVUkxQcm90ZWN0aW9uU3BhY2UKIF9fWk43V2ViQ29y
ZTR0b0pTRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzE5Q1NT
U3R5bGVEZWNsYXJhdGlvbkUKIF9fWk43V2ViQ29yZTR0b0pTRVBOM0pTQzlFeGVjU3RhdGVFUE5T
XzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzVSYW5nZUUKK19fWk43V2ViQ29yZTR0b0pTRVBOM0pT
QzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzhOb2RlTGlzdEUKIF9fWk43
V2ViQ29yZTVDYWNoZTExc2V0RGlzYWJsZWRFYgogX19aTjdXZWJDb3JlNUNhY2hlMTNnZXRTdGF0
aXN0aWNzRXYKIF9fWk43V2ViQ29yZTVDYWNoZTEzc2V0Q2FwYWNpdGllc0VqamoKQEAgLTY4Nyw2
ICs2ODgsOCBAQCBfX1pON1dlYkNvcmU4RG9jdW1lbnQyNnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4
ZWxzRWlSTlNfN0ludFNpemVFUmlTM19TM19TM18KIF9fWk43V2ViQ29yZThEb2N1bWVudDI3cmVt
b3ZlTWVkaWFDYW5TdGFydExpc3RlbmVyRVBOU18yMU1lZGlhQ2FuU3RhcnRMaXN0ZW5lckUKIF9f
Wk43V2ViQ29yZThEb2N1bWVudDM2dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
RXYKIF9fWk43V2ViQ29yZThEb2N1bWVudDRoZWFkRXYKK19fWk5LN1dlYkNvcmU4RG9jdW1lbnQx
M25vZGVzRnJvbVJlY3RFaWlqampqYgorX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50NnNfaW5mb0UK
IF9fWk43V2ViQ29yZThGb3JtRGF0YTZjcmVhdGVFUEt2bQogX19aTjdXZWJDb3JlOEZvcm1EYXRh
RDFFdgogX19aTjdXZWJDb3JlOEludFBvaW50QzFFUks4X05TUG9pbnQKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGU1YjcwYS4uZGQ0YThiNiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMjcsNyArMTMyNyw3
IEBACiAJCTY1OTZGMkMxMEI4NzMyNUMwMDEzMjZCRCAvKiBET01IVE1MVGV4dEFyZWFFbGVtZW50
SW50ZXJuYWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1RTcxMTdGMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MVGV4dEFy
ZWFFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJNjU5QTdEMTMwQjZEQjREOTAwMTE1NUIzIC8q
IFN1YnN0aXR1dGVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2NTlBN0QxMjBCNkRCNEQ5MDAxMTU1QjMgLyogU3Vic3RpdHV0ZURhdGEuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NTlEREM4MjA5
RTE5OEJBMDAxQkYzQzYgLyogSlNEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTlEREM4MDA5RTE5OEJBMDAxQkYzQzYgLyogSlNEb2N1
bWVudC5jcHAgKi87IH07Ci0JCTY1OUREQzgzMDlFMTk4QkEwMDFCRjNDNiAvKiBKU0RvY3VtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTlEREM4
MTA5RTE5OEJBMDAxQkYzQzYgLyogSlNEb2N1bWVudC5oICovOyB9OworCQk2NTlEREM4MzA5RTE5
OEJBMDAxQkYzQzYgLyogSlNEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNjU5RERDODEwOUUxOThCQTAwMUJGM0M2IC8qIEpTRG9jdW1lbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NUEy
MTQ2ODA5N0EzMjkxMDBCOTA1MEEgLyogUGFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNjVBMjE0NjcwOTdBMzI5MTAwQjkwNTBBIC8qIFBhZ2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NUEyMTQ4
NDA5N0EzRjUzMDBCOTA1MEEgLyogRnJhbWVUcmVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1QTIxNDgyMDk3QTNGNTMwMEI5MDUwQSAvKiBGcmFt
ZVRyZWUuY3BwICovOyB9OwogCQk2NUEyMTQ4NTA5N0EzRjUzMDBCOTA1MEEgLyogRnJhbWVUcmVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUEyMTQ4
MzA5N0EzRjUzMDBCOTA1MEEgLyogRnJhbWVUcmVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ5NjMsNyArNDk2Myw3IEBACiAJCUJDRDlDMkMw
MEMxN0I2OUUwMDVDOTBBMiAvKiBKU05hbWVkTm9kZU1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Q5QzJCQzBDMTdCNjlFMDA1QzkwQTIgLyog
SlNOYW1lZE5vZGVNYXAuY3BwICovOyB9OwogCQlCQ0Q5QzJDMTBDMTdCNjlFMDA1QzkwQTIgLyog
SlNOYW1lZE5vZGVNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDRDlDMkJEMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05hbWVkTm9kZU1hcC5oICovOyB9
OwogCQlCQ0Q5QzJDMjBDMTdCNjlFMDA1QzkwQTIgLyogSlNOb2RlTGlzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Q5QzJCRTBDMTdCNjlFMDA1
QzkwQTIgLyogSlNOb2RlTGlzdC5jcHAgKi87IH07Ci0JCUJDRDlDMkMzMEMxN0I2OUUwMDVDOTBB
MiAvKiBKU05vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0Q5QzJCRjBDMTdCNjlFMDA1QzkwQTIgLyogSlNOb2RlTGlzdC5oICovOyB9Owor
CQlCQ0Q5QzJDMzBDMTdCNjlFMDA1QzkwQTIgLyogSlNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNEOUMyQkYwQzE3QjY5RTAwNUM5MEEy
IC8qIEpTTm9kZUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCQ0RENDU0RTEyMzZDOTVDMDA5QTc5ODUgLyogQ29sdW1uSW5mby5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNERDQ1NEQxMjM2Qzk1
QzAwOUE3OTg1IC8qIENvbHVtbkluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlCQ0RGMzE3QjExRjhENjgzMDAzQzVCRjggLyogVXNlclR5cGlu
Z0dlc3R1cmVJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNERjMxNzkxMUY4RDY4MzAwM0M1QkY4IC8qIFVzZXJUeXBpbmdHZXN0dXJl
SW5kaWNhdG9yLmNwcCAqLzsgfTsKIAkJQkNERjMxN0MxMUY4RDY4MzAwM0M1QkY4IC8qIFVzZXJU
eXBpbmdHZXN0dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0RGMzE3QTExRjhENjgzMDAzQzVCRjggLyogVXNlclR5cGluZ0dlc3R1
cmVJbmRpY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwppbmRleCBkMWNiYjJlLi42MDUwMjg1IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA5
LTI2ICBBbnRvbmlvIEdvbWVzICA8YWdvbWVzQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRFJUL01hYyBub2Rlc0Zyb21SZWN0IHN1cHBv
cnQKKworICAgICAgICBbTWFjXVtEUlRdIEltcGxlbWVudCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
bm9kZXNGcm9tUmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDY1ODAKKworICAgICAgIEltcGxlbWVudCBub2Rlc0Zyb21SZWN0IGFzIGEgcHJpdmF0
ZSBtZXRob2QgdG8gYWNjZXNzIG5vbi1leHBvc2VkIERvY3VtZW50CisgICAgICAgbWV0aG9kcywg
c2ltaWxhcmx5IHRvIGNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mby4KKworICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlldy5tbTogQWRkZWQgSlNEb2N1bWVudC5oIGFuZCBKU05vZGVMaXN0
LmggdG8gdGhlIGluY2x1ZGUgbGlzdC4KKyAgICAgICAgVGhlc2UgaGVhZGVycyBtYWtlcyBpdCBw
b3NzaWJsZSB0bzoKKyAgICAgICAgMSkgR2V0IGEgRG9jdW1lbnQgb2ZmIG9mIGEgSlNEb2N1bWVu
dDsKKyAgICAgICAgMikgQ2FsbCB0b0pTIGZ1bmN0aW9uLCBkZWZpbmVkIGluIEpTTm9kZUxpc3Qu
Y3BwfGggc28gd2UgY2FuIGNvbnZlcnQgUmVmUHRyPE5vZGVMaXN0PgorICAgICAgICBnb3R0ZW4g
ZnJvbSBEb2N1bWVudDo6bm9kZXNGcm9tUmVjdCB0byBKUyBiaW5kaW5ncy4KKyAgICAgICAgKC1b
V2ViVmlldyBfbm9kZXNGcm9tUmVjdDpmb3JEb2N1bWVudDp4Onk6aFBhZGRpbmc6dlBhZGRpbmc6
aWdub3JlQ2xpcHBpbmc6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOiBB
ZGRlZCBub2Rlc0Zyb21SZWN0IG1ldGhvZCB0byBhY2Nlc3MgbWV0aG9kcyBvZiB0aGUKKyAgICAg
ICAgRG9jdW1lbnQgY2xhc3Mgbm90IGV4cG9zZWQgdG8gSmF2YVNjcmlwdC4gSXQgd29ya3Mgc2lt
aWxhcmx5IHRvIGNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mby4KKwogMjAxMC0wOS0y
NCAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVy
bnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBhN2QyYmYyLi4xYTA0MzdhIDEwMDY0NAot
LS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQpAQCAtMTMzLDkgKzEzMywxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9IaXN0
b3J5SXRlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9JY29uRGF0YWJhc2UuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSlNDU1NTdHlsZURlY2xhcmF0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0pTRG9jdW1l
bnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNFbGVtZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0pT
Tm9kZUxpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9nZ2luZy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisjaW1wb3J0IDxXZWJDb3JlL05vZGVMaXN0Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1BhZ2VHcm91cC5oPgpAQCAtNjA1Miw2ICs2MDU1LDI1IEBAIHN0YXRpYyB2
b2lkIGdsaWJDb250ZXh0SXRlcmF0aW9uQ2FsbGJhY2soQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYsIENG
UnVuTG9vcEFjdGl2aXR5CiAKIEBlbmQKIAorQGltcGxlbWVudGF0aW9uIFdlYlZpZXcgKFdlYlZp
ZXdQcml2YXRlTm9kZXNGcm9tUmVjdCkKKworLSAoSlNWYWx1ZVJlZilfbm9kZXNGcm9tUmVjdDoo
SlNDb250ZXh0UmVmKWNvbnRleHQgZm9yRG9jdW1lbnQ6KEpTVmFsdWVSZWYpdmFsdWUgeDooaW50
KXggIHk6KGludCl5IGhQYWRkaW5nOih1bnNpZ25lZCloUGFkZGluZyB2UGFkZGluZzoodW5zaWdu
ZWQpdlBhZGRpbmcgaWdub3JlQ2xpcHBpbmc6KEJPT0wpaWdub3JlQ2xpcHBpbmcKK3sKKyAgICBK
U0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IHRvSlMoY29udGV4dCk7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOworICAgIEpTVmFsdWUganNWYWx1ZSA9IHRvSlMoZXhlYywg
dmFsdWUpOworICAgIGlmICghanNWYWx1ZS5pbmhlcml0cygmSlNEb2N1bWVudDo6c19pbmZvKSkK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworICAgIEpTRG9j
dW1lbnQqIGpzRG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxKU0RvY3VtZW50Kj4oYXNPYmplY3QoanNW
YWx1ZSkpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGpzRG9jdW1lbnQtPmltcGwoKTsKKyAg
ICBSZWZQdHI8Tm9kZUxpc3Q+IG5vZGVzID0gZG9jdW1lbnQtPm5vZGVzRnJvbVJlY3QoeCwgeSwg
aFBhZGRpbmcsIHZQYWRkaW5nLCBpZ25vcmVDbGlwcGluZyk7CisgICAgcmV0dXJuIHRvUmVmKGV4
ZWMsIHRvSlMoZXhlYywganNEb2N1bWVudC0+Z2xvYmFsT2JqZWN0KCksIG5vZGVzLmdldCgpKSk7
Cit9CisKK0BlbmQKKwogI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKIAogc3RhdGljIElNUCBv
cmlnaW5hbFJlY3Vyc2l2ZWx5UmVtb3ZlTWFpbEF0dHJpYnV0ZXNJbXA7CmRpZmYgLS1naXQgYS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGFlYjM2YzcuLjg3M2U4ZTEgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3UHJpdmF0ZS5oCkBAIC02MzAsNiArNjMwLDEwIEBAIENvdWxkIGJlIHdvcnRoIGFkZGlu
ZyB0byB0aGUgQVBJLgogLSAoSlNWYWx1ZVJlZilfY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0
ZWRJbmZvOihKU0NvbnRleHRSZWYpY29udGV4dCBmb3JFbGVtZW50OihKU1ZhbHVlUmVmKXZhbHVl
OwogQGVuZAogCitAaW50ZXJmYWNlIFdlYlZpZXcgKFdlYlZpZXdQcml2YXRlTm9kZXNGcm9tUmVj
dCkKKy0gKEpTVmFsdWVSZWYpX25vZGVzRnJvbVJlY3Q6KEpTQ29udGV4dFJlZiljb250ZXh0IGZv
ckRvY3VtZW50OihKU1ZhbHVlUmVmKXZhbHVlIHg6KGludCl4ICB5OihpbnQpeSBoUGFkZGluZzoo
dW5zaWduZWQpaFBhZGRpbmcgdlBhZGRpbmc6KHVuc2lnbmVkKXZQYWRkaW5nIGlnbm9yZUNsaXBw
aW5nOihCT09MKWlnbm9yZUNsaXBwaW5nOworQGVuZAorCiBAaW50ZXJmYWNlIE5TT2JqZWN0IChX
ZWJGcmFtZUxvYWREZWxlZ2F0ZVByaXZhdGUpCiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilz
ZW5kZXIgZGlkRmlyc3RMYXlvdXRJbkZyYW1lOihXZWJGcmFtZSAqKWZyYW1lOwogCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXgg
ZWM2NzFmNS4uMmI3M2UxZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA5LTI2ICBBbnRv
bmlvIEdvbWVzICA8YWdvbWVzQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRFJUL01hYyBub2Rlc0Zyb21SZWN0IHN1cHBvcnQKKworICAg
ICAgICBbTWFjXVtEUlRdIEltcGxlbWVudCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9t
UmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY1
ODAKKworICAgICAgICBJbXBsZW1lbnRzIExheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21S
ZWN0IGZvciBNYWMgRFJULCBhbmQKKyAgICAgICAgYWRkaW5nIHN0dWJzIGZvciBHdGsgYW5kIFdp
bmRvd3MuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChub2Rlc0Zyb21SZWN0Q2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpM
YXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdCk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6Om5vZGVzRnJvbVJlY3QpOgorCiAyMDEwLTA5LTI1ICBOaWNvbGFzIFdlYmVy
ICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRo
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCmluZGV4IDE2NDNiYTYuLmU2NGJhYWIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTUxMyw2ICs1MTMsMjIg
QEAgc3RhdGljIEpTVmFsdWVSZWYgY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQKICAgICByZXR1cm4gY29udHJvbGxlci0+Y29tcHV0
ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKGNvbnRleHQsIGFyZ3VtZW50c1swXSk7CiB9CiAK
K3N0YXRpYyBKU1ZhbHVlUmVmIG5vZGVzRnJvbVJlY3RDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCit7CisgICAgaWYgKGFyZ3VtZW50Q291bnQgIT0gNikKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgaW50IHggPSBKU1ZhbHVl
VG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzFdLCBOVUxMKTsKKyAgICBpbnQgeSA9IEpTVmFs
dWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMl0sIE5VTEwpOworICAgIGludCBoUGFkZGlu
ZyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1l
bnRzWzNdLCBOVUxMKSk7CisgICAgaW50IHZQYWRkaW5nID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbNF0sIE5VTEwpKTsKKyAgICBib29s
IGlnbm9yZUNsaXBwaW5nID0gSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbNl0p
OworCisgICAgLy8gSGFzIG1hYyBpbXBsZW1lbnRhdGlvbgorICAgIExheW91dFRlc3RDb250cm9s
bGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09i
amVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIHJldHVybiBjb250cm9sbGVyLT5ub2Rl
c0Zyb21SZWN0KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgeCwgeSwgaFBhZGRpbmcsIHZQYWRkaW5n
LCBpZ25vcmVDbGlwcGluZyk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIGxheWVyVHJlZUFzVGV4
dENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNP
YmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVS
ZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICAvLyBIYXMgbWFj
ICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgpAQCAtMTg0Myw2ICsxODU5LDcgQEAgSlNTdGF0aWNG
dW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAg
IHsgImNsZWFyUGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0IiwgY2xlYXJQZXJzaXN0ZW50VXNlclN0
eWxlU2hlZXRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJjbG9zZVdlYkluc3BlY3RvciIs
IGNsb3NlV2ViSW5zcGVjdG9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY29tcHV0ZWRT
dHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvIiwgY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJ
bmZvQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAibm9kZXNGcm9tUmVjdCIsIG5vZGVzRnJv
bVJlY3RDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkZWNvZGVIb3N0TmFtZSIsIGRlY29k
ZUhvc3ROYW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZGlzYWJsZUltYWdlTG9hZGlu
ZyIsIGRpc2FibGVJbWFnZUxvYWRpbmdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkaXNw
YXRjaFBlbmRpbmdMb2FkUmVxdWVzdHMiLCBkaXNwYXRjaFBlbmRpbmdMb2FkUmVxdWVzdHNDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmgKaW5kZXggMmJmN2E3NS4uNmUzZmM1MyAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC02MCw2ICs2MCw3
IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ29tbWFuZEVuYWJsZWQoSlNTdHJpbmdSZWYgbmFtZSk7
CiAgICAgdm9pZCBrZWVwV2ViSGlzdG9yeSgpOwogICAgIEpTVmFsdWVSZWYgY29tcHV0ZWRTdHls
ZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CisgICAgSlNW
YWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdChKU0NvbnRleHRSZWYs
IEpTVmFsdWVSZWYsIGludCB4LCBpbnQgeSwgdW5zaWduZWQgaFBhZGRpbmcsIHVuc2lnbmVkIHZQ
YWRkaW5nLCBib29sIGlnbm9yZUNsaXBwaW5nKSB7CiAgICAgdm9pZCBub3RpZnlEb25lKCk7CiAg
ICAgaW50IG51bWJlck9mUGFnZXMoZmxvYXQgcGFnZVdpZHRoSW5QaXhlbHMsIGZsb2F0IHBhZ2VI
ZWlnaHRJblBpeGVscyk7CiAgICAgdm9pZCBvdmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYg
a2V5LCBKU1N0cmluZ1JlZiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCBlZjg5MGNj
Li4yNDZiYmI0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5
b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTEzNyw2ICsxMzcsMTIgQEAgSlNW
YWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0
ZWRJbmZvKEpTQ29udGV4dFJlZgogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKIH0KIAorSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVj
dChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgaW50ICwgaW50LCB1bnNp
Z25lZCwgdW5zaWduZWQsIGJvb2wpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgor
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwogSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpsYXllclRyZWVBc1RleHQoKSBj
b25zdAogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCBm
NTUwOTNlLi5kNDQyM2QzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC0xOTgsNiArMTk4LDExIEBA
IEpTVmFsdWVSZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvbXB1dGVkU3R5bGVJbmNsdWRpbmdW
aXNpdGVkSW5mbyhKU0NvbnRleHRSZWYKICAgICByZXR1cm4gW1ttYWluRnJhbWUgd2ViVmlld10g
X2NvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbzpjb250ZXh0IGZvckVsZW1lbnQ6dmFs
dWVdOwogfQogCitKU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBpbnQgeCwgaW50IHksIHVu
c2lnbmVkIGhQYWRkaW5nLCB1bnNpZ25lZCB2UGFkZGluZywgYm9vbCBpZ25vcmVDbGlwcGluZykK
K3sKKyAgICByZXR1cm4gW1ttYWluRnJhbWUgd2ViVmlld10gX25vZGVzRnJvbVJlY3Q6Y29udGV4
dCBmb3JEb2N1bWVudDp2YWx1ZSB4OnggeTp5IGhQYWRkaW5nOmhQYWRkaW5nIHZQYWRkaW5nOnZQ
YWRkaW5nIGlnbm9yZUNsaXBwaW5nOmlnbm9yZUNsaXBwaW5nXTsKK30KKwogSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpsYXllclRyZWVBc1RleHQoKSBjb25z
dAogewogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBzdHJpbmcoQWRvcHQsIEpTU3RyaW5n
Q3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZilbbWFpbkZyYW1lIF9sYXllclRyZWVBc1Rl
eHRdKSk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0
VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xh
eW91dFRlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCA2OGY0YTZhLi4wN2IxMGZjIDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJX
aW4uY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29u
dHJvbGxlcldpbi5jcHAKQEAgLTE3OSw2ICsxNzksMTIgQEAgSlNWYWx1ZVJlZiBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6Y29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTQ29udGV4dFJl
ZgogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorSlNWYWx1
ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdChKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgaW50ICwgaW50LCB1bnNpZ25lZCwgdW5zaWduZWQsIGJv
b2wpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExh
eW91dFRlc3RDb250cm9sbGVyOjpsYXllclRyZWVBc1RleHQoKSBjb25zdAogewogICAgIENPTVB0
cjxJV2ViRnJhbWVQcml2YXRlPiBmcmFtZVByaXZhdGUoUXVlcnksIGZyYW1lKTsKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3gu
Y3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJX
eC5jcHAKaW5kZXggZjM2YzI5MC4uNmZhMzk2YSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKKysrIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKQEAgLTQ4Niw2
ICs0ODYsMTIgQEAgSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y29tcHV0ZWRTdHls
ZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTQ29udGV4dFJlZiwKICAgICByZXR1cm4gMDsKIH0KIAor
SlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdChKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgaW50ICwgaW50LCB1bnNpZ25lZCwgdW5zaWdu
ZWQsIGJvb2wpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIHJldHVybiAw
OworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphdXRoZW50aWNhdGVTZXNzaW9uKEpT
U3RyaW5nUmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCiB7CiB9Ci0tIAoxLjYuNC4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68865</attachid>
            <date>2010-09-26 16:23:03 -0700</date>
            <delta_ts>2010-09-26 17:26:05 -0700</delta_ts>
            <desc>patch v2 (committed r68356, r=kenneth)</desc>
            <filename>0001-Mac-DRT-Implement-LayoutTestController-nodesFromRect.patch</filename>
            <type>text/plain</type>
            <size>21644</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA0OWZjZjA2N2U3ZjNhNmU4ODI2NmYwN2I3MjdmMTNjZTc3NjRkMjNlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogU3VuLCAyNiBTZXAgMjAxMCAxNzo1Mzo1NyAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIFtN
YWNdW0RSVF0gSW1wbGVtZW50IExheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0CiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY1ODAKClBhdGNoIGJ5IEFu
dG9uaW8gR29tZXMgPGFnb21lc0ByaW0uY29tZz4gb24gMjAxMC0wOS0yNgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpTeW1ib2wgZmlsZXMgdXBkYXRlZC4KCiogV2ViQ29y
ZS5leHAuaW46IEFkZGVkIHN5bWJvbHMgdG8gRG9jdW1lbnQ6Om5vZGVzRnJvbVJlY3QgYW5kIGJp
dHMgb2YgSlNEb2N1bWVudCBub3cKbmVlZGVkIGluIFdlYktpdC9tYWMuCiogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBTZXQgYm90aCBKU0RvY3VtZW50LmggYW5kIEpTTm9kZUxp
c3QgYXMgcHJpdmF0ZSBoZWFkZXJzCm5vdyB0aGF0IHRoZXkgYXJlIHJlZmVycmVkIGluIFdlYktp
dC9tYWMuCgpXZWJLaXQvbWFjOgoKSW1wbGVtZW50IG5vZGVzRnJvbVJlY3QgYXMgYSBwcml2YXRl
IG1ldGhvZCB0byBhY2Nlc3Mgbm9uLWV4cG9zZWQgRG9jdW1lbnQKbWV0aG9kcywgc2ltaWxhcmx5
IHRvIGNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mby4KCiogV2ViVmlldy9XZWJWaWV3
Lm1tOiBBZGRlZCBKU0RvY3VtZW50LmggYW5kIEpTTm9kZUxpc3QuaCB0byB0aGUgaW5jbHVkZSBs
aXN0LgpUaGVzZSBoZWFkZXJzIG1ha2VzIGl0IHBvc3NpYmxlIHRvOgoxKSBHZXQgYSBEb2N1bWVu
dCBvZmYgb2YgYSBKU0RvY3VtZW50OwoyKSBDYWxsIHRvSlMgZnVuY3Rpb24sIGRlZmluZWQgaW4g
SlNOb2RlTGlzdC5jcHB8aCBzbyB3ZSBjYW4gY29udmVydCBSZWZQdHI8Tm9kZUxpc3Q+CmdvdHRl
biBmcm9tIERvY3VtZW50Ojpub2Rlc0Zyb21SZWN0IHRvIEpTIGJpbmRpbmdzLgooLVtXZWJWaWV3
IF9ub2Rlc0Zyb21SZWN0OmZvckRvY3VtZW50Ong6eTpoUGFkZGluZzp2UGFkZGluZzppZ25vcmVD
bGlwcGluZzpdKToKKiBXZWJWaWV3L1dlYlZpZXdQcml2YXRlLmg6IEFkZGVkIG5vZGVzRnJvbVJl
Y3QgbWV0aG9kIHRvIGFjY2VzcyBtZXRob2RzIG9mIHRoZQpEb2N1bWVudCBjbGFzcyBub3QgZXhw
b3NlZCB0byBKYXZhU2NyaXB0LiBJdCB3b3JrcyBzaW1pbGFybHkgdG8gY29tcHV0ZWRTdHlsZUlu
Y2x1ZGluZ1Zpc2l0ZWRJbmZvLgoKV2ViS2l0VG9vbHM6CgpJbXBsZW1lbnRzIExheW91dFRlc3RD
b250cm9sbGVyOjpub2Rlc0Zyb21SZWN0IGZvciBNYWMgRFJULCBhbmQKYWRkaW5nIHN0dWJzIGZv
ciBHdGsgYW5kIFdpbmRvd3MuCgoqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcDoKKG5vZGVzRnJvbVJlY3RDYWxsYmFjayk6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3Rh
dGljRnVuY3Rpb25zKToKKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgoo
TGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0
KToKKiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW06CihMYXlv
dXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdCk6CgpMYXlvdXRUZXN0czoKClVuc2tpcHBp
bmcgZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1iYXNlZC5odG1sIG9uIE1hYywgYW5kIGNoYW5nZXMg
aXQKc28gdGhhdCBpdCBjYWxscyBsYXlvdXRUZXN0Q29udHJvbGxlci5ub2Rlc0Zyb21SZWN0KCkg
aW5zdGVhZCBvZgpkb2N1bWVudC5ub2Rlc0Zyb21SZWN0KCkuCgoqIGZhc3QvZG9tL3Jlc291cmNl
cy9ub2Rlc0Zyb21SZWN0LmpzOgooY2hlY2spOgoqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgotLS0K
IExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
NyArKysrKysrKysrKysrKysKIExheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNlcy9ub2Rlc0Zy
b21SZWN0LmpzICAgIHwgICAxNCArKysrKy0tLS0tLS0KIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgMyAtLQogV2ViQ29yZS9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrKysrKysrKysrKysrCiBX
ZWJDb3JlL1dlYkNvcmUuZXhwLmluICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMg
KysKIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwg
ICAgNCArLQogV2ViS2l0L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDIxICsrKysrKysrKysrKysrKysrKysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tICAgICAgICAgICAgICAgICAgICAgIHwgICAyMiArKysrKysrKysrKysrKysrKysrKwogV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmggICAgICAgICAgICAgICAgfCAgICA0ICsr
KwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDIwICsrKysrKysrKysrKysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcCAgICAgICAgfCAgIDE3ICsrKysrKysrKysrKysrKwogV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCAgfCAgICAxICsKIC4uLi9EdW1wUmVu
ZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIHwgICAgNiArKysrKwogLi4u
L0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSAgfCAgICA1ICsr
KysKIC4uLi9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIHwg
ICAgNiArKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3gu
Y3BwICAgfCAgICA2ICsrKysrCiAxNiBmaWxlcyBjaGFuZ2VkLCAxNTIgaW5zZXJ0aW9ucygrKSwg
MTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIyMGM3YWEuLjBiZWFlM2IgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAxMC0wOS0yNiAgQW50b25pbyBHb21lcyAgPGFnb21lc0ByaW0uY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERSVC9NYWMgbm9k
ZXNGcm9tUmVjdCBzdXBwb3J0CisKKyAgICAgICAgW01hY11bRFJUXSBJbXBsZW1lbnQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6Om5vZGVzRnJvbVJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NTgwCisKKyAgICAgICAgVW5za2lwcGluZyBmYXN0L2Rv
bS9ub2Rlc0Zyb21SZWN0LWJhc2VkLmh0bWwgb24gTWFjLCBhbmQgY2hhbmdlcyBpdAorICAgICAg
ICBzbyB0aGF0IGl0IGNhbGxzIGxheW91dFRlc3RDb250cm9sbGVyLm5vZGVzRnJvbVJlY3QoKSBp
bnN0ZWFkIG9mCisgICAgICAgIGRvY3VtZW50Lm5vZGVzRnJvbVJlY3QoKS4KKworICAgICAgICAq
IGZhc3QvZG9tL3Jlc291cmNlcy9ub2Rlc0Zyb21SZWN0LmpzOgorICAgICAgICAoY2hlY2spOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorCiAyMDEwLTA5LTI1ICBBbnRvbmlvIEdv
bWVzICA8YWdvbWVzQHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBDaHJp
c3RpYW5zZW4gYW5kIEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jl
c291cmNlcy9ub2Rlc0Zyb21SZWN0LmpzCmluZGV4IGJlMDZjNmEuLjA2NzE2MzkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNlcy9ub2Rlc0Zyb21SZWN0LmpzCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNlcy9ub2Rlc0Zyb21SZWN0LmpzCkBAIC01LDE0
ICs1LDEyIEBACiAKIGZ1bmN0aW9uIGNoZWNrKHgsIHksIGhQYWRkaW5nLCB2UGFkZGluZywgbGlz
dCkKIHsKLSAgLyoKLSAgICBOb2RlTGlzdCBub2Rlc0Zyb21SZWN0KGluIGxvbmcgeCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgeSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIGxvbmcgaFBhZGRpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25n
IHZQYWRkaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBpZ25vcmVD
bGlwcGluZyk7Ci0gICovCi0gIHZhciBub2RlcyA9IGRvY3VtZW50Lm5vZGVzRnJvbVJlY3QoeCwg
eSwgaFBhZGRpbmcsIHZQYWRkaW5nLCB0cnVlIC8qIGlnbm9yZUNsaXBwaW5nICovKTsKKyAgaWYg
KCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgcmV0dXJuOworCisgIHZhciBub2Rl
cyA9IGxheW91dFRlc3RDb250cm9sbGVyLm5vZGVzRnJvbVJlY3QoZG9jdW1lbnQsIHgsIHksIGhQ
YWRkaW5nLCB2UGFkZGluZywgdHJ1ZSAvKiBpZ25vcmVDbGlwcGluZyAqLyk7CisgIGlmICghbm9k
ZXMpCisgICAgcmV0dXJuOwogCiAgIGlmIChub2Rlcy5sZW5ndGggIT0gbGlzdC5sZW5ndGgpIHsK
ICAgICB0ZXN0RmFpbGVkKCJEaWZmZXJlbnQgbnVtYmVyIG9mIG5vZGVzIGZvciByZWN0IiArCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDg1ZWNlNGMuLjQyMDc5MGMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCkBAIC0zMTcsNiArMzE3LDMgQEAgbWVkaWEvY29udGV4dC1tZW51LWFj
dGlvbnMuaHRtbAogCiAjIEZpbGVTeXN0ZW0gQVBJIGlzIG5vdCBzdXBwb3J0ZWQuCiBmYXN0L2Zp
bGVzeXN0ZW0KLQotIyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdCBpcyBub3Qg
c3VwcG9ydGVkLgotZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1iYXNpYy5odG1sCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZkNjQyNzIuLmE4
NWM2YjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDktMjYgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNA
cmltLmNvbWc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRFJUL01hYyBub2Rlc0Zyb21SZWN0IHN1cHBvcnQKKworICAgICAgICBbTWFjXVtEUlRdIElt
cGxlbWVudCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY1ODAKKworICAgICAgICBTeW1i
b2wgZmlsZXMgdXBkYXRlZC4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBBZGRlZCBzeW1i
b2xzIHRvIERvY3VtZW50Ojpub2Rlc0Zyb21SZWN0IGFuZCBiaXRzIG9mIEpTRG9jdW1lbnQgbm93
CisgICAgICAgIG5lZWRlZCBpbiBXZWJLaXQvbWFjLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajogU2V0IGJvdGggSlNEb2N1bWVudC5oIGFuZCBKU05vZGVMaXN0
IGFzIHByaXZhdGUgaGVhZGVycworICAgICAgICBub3cgdGhhdCB0aGV5IGFyZSByZWZlcnJlZCBp
biBXZWJLaXQvbWFjLgorCiAyMDEwLTA5LTI1ICBBbnRvbmlvIEdvbWVzICA8YWdvbWVzQHJpbS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBDaHJpc3RpYW5zZW4gYW5kIEFuZHJl
YXMgS2xpbmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgppbmRleCAyNmUzYjY4Li5lYmYxY2MzIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTQ5Miw2ICs0
OTIsNyBAQCBfX1pON1dlYkNvcmUyNmNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51RXYKIF9fWk43
V2ViQ29yZTI2Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtFdgogX19aTjdXZWJDb3JlMjZ1c2Vz
VGVzdE1vZGVGb2N1c1JpbmdDb2xvckV2CiBfX1pON1dlYkNvcmUyN0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbkMxRU4zV1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFYlJLTlMxXzZTdHJpbmdF
CitfX1pOSzdXZWJDb3JlOERvY3VtZW50MTNub2Rlc0Zyb21SZWN0RWlpampiCiBfX1pON1dlYkNv
cmUyN0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazE0c2V0T3JpZW50YXRpb25FTjNXVEYxMFBh
c3NSZWZQdHJJTlNfMTdEZXZpY2VPcmllbnRhdGlvbkVFRQogX19aTjdXZWJDb3JlMjdEZXZpY2VP
cmllbnRhdGlvbkNsaWVudE1vY2tDMUV2CiBfX1pON1dlYkNvcmUyN2FwcGxpY2F0aW9uSXNBZG9i
ZUluc3RhbGxlckV2CkBAIC01ODEsNiArNTgyLDcgQEAgX19aTjdXZWJDb3JlNFBhZ2VEMUV2CiBf
X1pON1dlYkNvcmU0Y29yZUVQMjBOU1VSTFByb3RlY3Rpb25TcGFjZQogX19aTjdXZWJDb3JlNHRv
SlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTlNfMTlDU1NTdHls
ZURlY2xhcmF0aW9uRQogX19aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdK
U0RPTUdsb2JhbE9iamVjdEVQTlNfNVJhbmdlRQorX19aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4
ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTlNfOE5vZGVMaXN0RQogX19aTjdXZWJD
b3JlNUNhY2hlMTFzZXREaXNhYmxlZEViCiBfX1pON1dlYkNvcmU1Q2FjaGUxM2dldFN0YXRpc3Rp
Y3NFdgogX19aTjdXZWJDb3JlNUNhY2hlMTNzZXRDYXBhY2l0aWVzRWpqagpAQCAtNjg3LDYgKzY4
OSw3IEBAIF9fWk43V2ViQ29yZThEb2N1bWVudDI2cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHNF
aVJOU183SW50U2l6ZUVSaVMzX1MzX1MzXwogX19aTjdXZWJDb3JlOERvY3VtZW50MjdyZW1vdmVN
ZWRpYUNhblN0YXJ0TGlzdGVuZXJFUE5TXzIxTWVkaWFDYW5TdGFydExpc3RlbmVyRQogX19aTjdX
ZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNFdgog
X19aTjdXZWJDb3JlOERvY3VtZW50NGhlYWRFdgorX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50NnNf
aW5mb0UKIF9fWk43V2ViQ29yZThGb3JtRGF0YTZjcmVhdGVFUEt2bQogX19aTjdXZWJDb3JlOEZv
cm1EYXRhRDFFdgogX19aTjdXZWJDb3JlOEludFBvaW50QzFFUks4X05TUG9pbnQKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGU1YjcwYS4uZGQ0YThiNiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMjcsNyAr
MTMyNyw3IEBACiAJCTY1OTZGMkMxMEI4NzMyNUMwMDEzMjZCRCAvKiBET01IVE1MVGV4dEFyZWFF
bGVtZW50SW50ZXJuYWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTdGMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1M
VGV4dEFyZWFFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJNjU5QTdEMTMwQjZEQjREOTAwMTE1
NUIzIC8qIFN1YnN0aXR1dGVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2NTlBN0QxMjBCNkRCNEQ5MDAxMTU1QjMgLyogU3Vic3RpdHV0ZURhdGEu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NTlE
REM4MjA5RTE5OEJBMDAxQkYzQzYgLyogSlNEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTlEREM4MDA5RTE5OEJBMDAxQkYzQzYgLyog
SlNEb2N1bWVudC5jcHAgKi87IH07Ci0JCTY1OUREQzgzMDlFMTk4QkEwMDFCRjNDNiAvKiBKU0Rv
Y3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
NTlEREM4MTA5RTE5OEJBMDAxQkYzQzYgLyogSlNEb2N1bWVudC5oICovOyB9OworCQk2NTlEREM4
MzA5RTE5OEJBMDAxQkYzQzYgLyogSlNEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU5RERDODEwOUUxOThCQTAwMUJGM0M2IC8qIEpTRG9j
dW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk2NUEyMTQ2ODA5N0EzMjkxMDBCOTA1MEEgLyogUGFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVBMjE0NjcwOTdBMzI5MTAwQjkwNTBBIC8qIFBh
Z2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2
NUEyMTQ4NDA5N0EzRjUzMDBCOTA1MEEgLyogRnJhbWVUcmVlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1QTIxNDgyMDk3QTNGNTMwMEI5MDUwQSAv
KiBGcmFtZVRyZWUuY3BwICovOyB9OwogCQk2NUEyMTQ4NTA5N0EzRjUzMDBCOTA1MEEgLyogRnJh
bWVUcmVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
NUEyMTQ4MzA5N0EzRjUzMDBCOTA1MEEgLyogRnJhbWVUcmVlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ5NjMsNyArNDk2Myw3IEBACiAJCUJD
RDlDMkMwMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05hbWVkTm9kZU1hcC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Q5QzJCQzBDMTdCNjlFMDA1Qzkw
QTIgLyogSlNOYW1lZE5vZGVNYXAuY3BwICovOyB9OwogCQlCQ0Q5QzJDMTBDMTdCNjlFMDA1Qzkw
QTIgLyogSlNOYW1lZE5vZGVNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDRDlDMkJEMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05hbWVkTm9kZU1hcC5o
ICovOyB9OwogCQlCQ0Q5QzJDMjBDMTdCNjlFMDA1QzkwQTIgLyogSlNOb2RlTGlzdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Q5QzJCRTBDMTdC
NjlFMDA1QzkwQTIgLyogSlNOb2RlTGlzdC5jcHAgKi87IH07Ci0JCUJDRDlDMkMzMEMxN0I2OUUw
MDVDOTBBMiAvKiBKU05vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0Q5QzJCRjBDMTdCNjlFMDA1QzkwQTIgLyogSlNOb2RlTGlzdC5oICov
OyB9OworCQlCQ0Q5QzJDMzBDMTdCNjlFMDA1QzkwQTIgLyogSlNOb2RlTGlzdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNEOUMyQkYwQzE3QjY5RTAw
NUM5MEEyIC8qIEpTTm9kZUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlCQ0RENDU0RTEyMzZDOTVDMDA5QTc5ODUgLyogQ29sdW1uSW5mby5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNERDQ1NEQx
MjM2Qzk1QzAwOUE3OTg1IC8qIENvbHVtbkluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0RGMzE3QjExRjhENjgzMDAzQzVCRjggLyogVXNl
clR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNERjMxNzkxMUY4RDY4MzAwM0M1QkY4IC8qIFVzZXJUeXBpbmdH
ZXN0dXJlSW5kaWNhdG9yLmNwcCAqLzsgfTsKIAkJQkNERjMxN0MxMUY4RDY4MzAwM0M1QkY4IC8q
IFVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0RGMzE3QTExRjhENjgzMDAzQzVCRjggLyogVXNlclR5cGlu
Z0dlc3R1cmVJbmRpY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCBkMWNiYjJlLi42ZjhiY2Q0IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisy
MDEwLTA5LTI2ICBBbnRvbmlvIEdvbWVzICA8YWdvbWVzQHJpbS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRFJUL01hYyBub2Rlc0Zyb21SZWN0
IHN1cHBvcnQKKworICAgICAgICBbTWFjXVtEUlRdIEltcGxlbWVudCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6bm9kZXNGcm9tUmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDY1ODAKKworICAgICAgICBJbXBsZW1lbnQgbm9kZXNGcm9tUmVjdCBhcyBh
IHByaXZhdGUgbWV0aG9kIHRvIGFjY2VzcyBub24tZXhwb3NlZCBEb2N1bWVudAorICAgICAgICBt
ZXRob2RzLCBzaW1pbGFybHkgdG8gY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvLgor
CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOiBBZGRlZCBKU0RvY3VtZW50LmggYW5kIEpT
Tm9kZUxpc3QuaCB0byB0aGUgaW5jbHVkZSBsaXN0LgorICAgICAgICBUaGVzZSBoZWFkZXJzIG1h
a2VzIGl0IHBvc3NpYmxlIHRvOgorICAgICAgICAxKSBHZXQgYSBEb2N1bWVudCBvZmYgb2YgYSBK
U0RvY3VtZW50OworICAgICAgICAyKSBDYWxsIHRvSlMgZnVuY3Rpb24sIGRlZmluZWQgaW4gSlNO
b2RlTGlzdC5jcHB8aCBzbyB3ZSBjYW4gY29udmVydCBSZWZQdHI8Tm9kZUxpc3Q+CisgICAgICAg
IGdvdHRlbiBmcm9tIERvY3VtZW50Ojpub2Rlc0Zyb21SZWN0IHRvIEpTIGJpbmRpbmdzLgorICAg
ICAgICAoLVtXZWJWaWV3IF9ub2Rlc0Zyb21SZWN0OmZvckRvY3VtZW50Ong6eTpoUGFkZGluZzp2
UGFkZGluZzppZ25vcmVDbGlwcGluZzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdQcml2
YXRlLmg6IEFkZGVkIG5vZGVzRnJvbVJlY3QgbWV0aG9kIHRvIGFjY2VzcyBtZXRob2RzIG9mIHRo
ZQorICAgICAgICBEb2N1bWVudCBjbGFzcyBub3QgZXhwb3NlZCB0byBKYXZhU2NyaXB0LiBJdCB3
b3JrcyBzaW1pbGFybHkgdG8gY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvLgorCiAy
MDEwLTA5LTI0ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGE3ZDJiZjIuLjFhMDQzN2Eg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xMzMsOSArMTMzLDEyIEBACiAjaW1wb3J0IDxXZWJD
b3JlL0hpc3RvcnlJdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ljb25EYXRhYmFzZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUv
SlNEb2N1bWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU0VsZW1lbnQuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvSlNOb2RlTGlzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTm9kZUxpc3Qu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ2FjaGUu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CkBAIC02MDUyLDYgKzYwNTUsMjUgQEAg
c3RhdGljIHZvaWQgZ2xpYkNvbnRleHRJdGVyYXRpb25DYWxsYmFjayhDRlJ1bkxvb3BPYnNlcnZl
clJlZiwgQ0ZSdW5Mb29wQWN0aXZpdHkKIAogQGVuZAogCitAaW1wbGVtZW50YXRpb24gV2ViVmll
dyAoV2ViVmlld1ByaXZhdGVOb2Rlc0Zyb21SZWN0KQorCistIChKU1ZhbHVlUmVmKV9ub2Rlc0Zy
b21SZWN0OihKU0NvbnRleHRSZWYpY29udGV4dCBmb3JEb2N1bWVudDooSlNWYWx1ZVJlZil2YWx1
ZSB4OihpbnQpeCAgeTooaW50KXkgaFBhZGRpbmc6KHVuc2lnbmVkKWhQYWRkaW5nIHZQYWRkaW5n
Oih1bnNpZ25lZCl2UGFkZGluZyBpZ25vcmVDbGlwcGluZzooQk9PTClpZ25vcmVDbGlwcGluZwor
eworICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7CisgICAgRXhlY1N0YXRl
KiBleGVjID0gdG9KUyhjb250ZXh0KTsKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisgICAgSlNWYWx1ZSBqc1ZhbHVlID0gdG9K
UyhleGVjLCB2YWx1ZSk7CisgICAgaWYgKCFqc1ZhbHVlLmluaGVyaXRzKCZKU0RvY3VtZW50Ojpz
X2luZm8pKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cisg
ICAgSlNEb2N1bWVudCoganNEb2N1bWVudCA9IHN0YXRpY19jYXN0PEpTRG9jdW1lbnQqPihhc09i
amVjdChqc1ZhbHVlKSk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0ganNEb2N1bWVudC0+aW1w
bCgpOworICAgIFJlZlB0cjxOb2RlTGlzdD4gbm9kZXMgPSBkb2N1bWVudC0+bm9kZXNGcm9tUmVj
dCh4LCB5LCBoUGFkZGluZywgdlBhZGRpbmcsIGlnbm9yZUNsaXBwaW5nKTsKKyAgICByZXR1cm4g
dG9SZWYoZXhlYywgdG9KUyhleGVjLCBqc0RvY3VtZW50LT5nbG9iYWxPYmplY3QoKSwgbm9kZXMu
Z2V0KCkpKTsKK30KKworQGVuZAorCiAjaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAogCiBzdGF0
aWMgSU1QIG9yaWdpbmFsUmVjdXJzaXZlbHlSZW1vdmVNYWlsQXR0cmlidXRlc0ltcDsKZGlmZiAt
LWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oIGIvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKaW5kZXggYWViMzZjNy4uODczZThlMSAxMDA2NDQKLS0t
IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKKysrIGIvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKQEAgLTYzMCw2ICs2MzAsMTAgQEAgQ291bGQgYmUgd29y
dGggYWRkaW5nIHRvIHRoZSBBUEkuCiAtIChKU1ZhbHVlUmVmKV9jb21wdXRlZFN0eWxlSW5jbHVk
aW5nVmlzaXRlZEluZm86KEpTQ29udGV4dFJlZiljb250ZXh0IGZvckVsZW1lbnQ6KEpTVmFsdWVS
ZWYpdmFsdWU7CiBAZW5kCiAKK0BpbnRlcmZhY2UgV2ViVmlldyAoV2ViVmlld1ByaXZhdGVOb2Rl
c0Zyb21SZWN0KQorLSAoSlNWYWx1ZVJlZilfbm9kZXNGcm9tUmVjdDooSlNDb250ZXh0UmVmKWNv
bnRleHQgZm9yRG9jdW1lbnQ6KEpTVmFsdWVSZWYpdmFsdWUgeDooaW50KXggIHk6KGludCl5IGhQ
YWRkaW5nOih1bnNpZ25lZCloUGFkZGluZyB2UGFkZGluZzoodW5zaWduZWQpdlBhZGRpbmcgaWdu
b3JlQ2xpcHBpbmc6KEJPT0wpaWdub3JlQ2xpcHBpbmc7CitAZW5kCisKIEBpbnRlcmZhY2UgTlNP
YmplY3QgKFdlYkZyYW1lTG9hZERlbGVnYXRlUHJpdmF0ZSkKIC0gKHZvaWQpd2ViVmlldzooV2Vi
VmlldyAqKXNlbmRlciBkaWRGaXJzdExheW91dEluRnJhbWU6KFdlYkZyYW1lICopZnJhbWU7CiAK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlYzY3MWY1Li4yYjczZTFmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDkt
MjYgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEUlQvTWFjIG5vZGVzRnJvbVJlY3Qgc3VwcG9y
dAorCisgICAgICAgIFtNYWNdW0RSVF0gSW1wbGVtZW50IExheW91dFRlc3RDb250cm9sbGVyOjpu
b2Rlc0Zyb21SZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NjU4MAorCisgICAgICAgIEltcGxlbWVudHMgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om5v
ZGVzRnJvbVJlY3QgZm9yIE1hYyBEUlQsIGFuZAorICAgICAgICBhZGRpbmcgc3R1YnMgZm9yIEd0
ayBhbmQgV2luZG93cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKG5vZGVzRnJvbVJlY3RDYWxsYmFjayk6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0KToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdCk6CisKIDIwMTAtMDktMjUgIE5pY29s
YXMgV2ViZXIgIDx0aGFraXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAKaW5kZXggMTY0M2JhNi4uNTVhYzAwNCAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtNTEzLDYg
KzUxMywyMiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRl
ZEluZm9DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dAogICAgIHJldHVybiBjb250cm9sbGVy
LT5jb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oY29udGV4dCwgYXJndW1lbnRzWzBd
KTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgbm9kZXNGcm9tUmVjdENhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVj
dCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpT
VmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCAhPSA2KQorICAg
ICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBpbnQgeCA9
IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMV0sIE5VTEwpOworICAgIGludCB5
ID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1syXSwgTlVMTCk7CisgICAgaW50
IGhQYWRkaW5nID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTVmFsdWVUb051bWJlcihjb250ZXh0
LCBhcmd1bWVudHNbM10sIE5VTEwpKTsKKyAgICBpbnQgdlBhZGRpbmcgPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1s0XSwgTlVMTCkpOwor
ICAgIGJvb2wgaWdub3JlQ2xpcHBpbmcgPSBKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3Vt
ZW50c1s1XSk7CisKKyAgICAvLyBIYXMgbWFjIGltcGxlbWVudGF0aW9uCisgICAgTGF5b3V0VGVz
dENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxl
cio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgcmV0dXJuIGNvbnRyb2xs
ZXItPm5vZGVzRnJvbVJlY3QoY29udGV4dCwgYXJndW1lbnRzWzBdLCB4LCB5LCBoUGFkZGluZywg
dlBhZGRpbmcsIGlnbm9yZUNsaXBwaW5nKTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgbGF5ZXJU
cmVlQXNUZXh0Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0
aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3Qg
SlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8v
IEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCkBAIC0xODQzLDYgKzE4NTksNyBAQCBK
U1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkK
ICAgICAgICAgeyAiY2xlYXJQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXQiLCBjbGVhclBlcnNpc3Rl
bnRVc2VyU3R5bGVTaGVldENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImNsb3NlV2ViSW5z
cGVjdG9yIiwgY2xvc2VXZWJJbnNwZWN0b3JDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJj
b21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8iLCBjb21wdXRlZFN0eWxlSW5jbHVkaW5n
VmlzaXRlZEluZm9DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJub2Rlc0Zyb21SZWN0Iiwg
bm9kZXNGcm9tUmVjdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImRlY29kZUhvc3ROYW1l
IiwgZGVjb2RlSG9zdE5hbWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkaXNhYmxlSW1h
Z2VMb2FkaW5nIiwgZGlzYWJsZUltYWdlTG9hZGluZ0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgImRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cyIsIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1
ZXN0c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAyYmY3YTc1Li40ZDIwMzAxIDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTYw
LDYgKzYwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNDb21tYW5kRW5hYmxlZChKU1N0cmluZ1Jl
ZiBuYW1lKTsKICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KCk7CiAgICAgSlNWYWx1ZVJlZiBjb21w
dXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsK
KyAgICBKU1ZhbHVlUmVmIG5vZGVzRnJvbVJlY3QoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmLCBp
bnQgeCwgaW50IHksIHVuc2lnbmVkIGhQYWRkaW5nLCB1bnNpZ25lZCB2UGFkZGluZywgYm9vbCBp
Z25vcmVDbGlwcGluZyk7CiAgICAgdm9pZCBub3RpZnlEb25lKCk7CiAgICAgaW50IG51bWJlck9m
UGFnZXMoZmxvYXQgcGFnZVdpZHRoSW5QaXhlbHMsIGZsb2F0IHBhZ2VIZWlnaHRJblBpeGVscyk7
CiAgICAgdm9pZCBvdmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYga2V5LCBKU1N0cmluZ1Jl
ZiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5
b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCBlZjg5MGNjLi4yNDZiYmI0IDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xs
ZXJHdGsuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHAKQEAgLTEzNyw2ICsxMzcsMTIgQEAgSlNWYWx1ZVJlZiBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6Y29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTQ29udGV4
dFJlZgogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorSlNW
YWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdChKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgaW50ICwgaW50LCB1bnNpZ25lZCwgdW5zaWduZWQs
IGJvb2wpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IExheW91dFRlc3RDb250cm9sbGVyOjpsYXllclRyZWVBc1RleHQoKSBjb25zdAogewogICAgIC8v
IEZJWE1FOiBpbXBsZW1lbnQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCBmNTUwOTNlLi5kNDQyM2Qz
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENv
bnRyb2xsZXJNYWMubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91
dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC0xOTgsNiArMTk4LDExIEBAIEpTVmFsdWVSZWYgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhKU0Nv
bnRleHRSZWYKICAgICByZXR1cm4gW1ttYWluRnJhbWUgd2ViVmlld10gX2NvbXB1dGVkU3R5bGVJ
bmNsdWRpbmdWaXNpdGVkSW5mbzpjb250ZXh0IGZvckVsZW1lbnQ6dmFsdWVdOwogfQogCitKU1Zh
bHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0KEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBpbnQgeCwgaW50IHksIHVuc2lnbmVkIGhQYWRkaW5n
LCB1bnNpZ25lZCB2UGFkZGluZywgYm9vbCBpZ25vcmVDbGlwcGluZykKK3sKKyAgICByZXR1cm4g
W1ttYWluRnJhbWUgd2ViVmlld10gX25vZGVzRnJvbVJlY3Q6Y29udGV4dCBmb3JEb2N1bWVudDp2
YWx1ZSB4OnggeTp5IGhQYWRkaW5nOmhQYWRkaW5nIHZQYWRkaW5nOnZQYWRkaW5nIGlnbm9yZUNs
aXBwaW5nOmlnbm9yZUNsaXBwaW5nXTsKK30KKwogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExh
eW91dFRlc3RDb250cm9sbGVyOjpsYXllclRyZWVBc1RleHQoKSBjb25zdAogewogICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBzdHJpbmcoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aENGU3Ry
aW5nKChDRlN0cmluZ1JlZilbbWFpbkZyYW1lIF9sYXllclRyZWVBc1RleHRdKSk7CmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJX
aW4uY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9s
bGVyV2luLmNwcAppbmRleCA2OGY0YTZhLi4wN2IxMGZjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAK
QEAgLTE3OSw2ICsxNzksMTIgQEAgSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y29t
cHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTQ29udGV4dFJlZgogICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorSlNWYWx1ZVJlZiBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJl
ZiB2YWx1ZSwgaW50ICwgaW50LCB1bnNpZ25lZCwgdW5zaWduZWQsIGJvb2wpCit7CisgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKK30KKwogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9s
bGVyOjpsYXllclRyZWVBc1RleHQoKSBjb25zdAogewogICAgIENPTVB0cjxJV2ViRnJhbWVQcml2
YXRlPiBmcmFtZVByaXZhdGUoUXVlcnksIGZyYW1lKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKaW5kZXggZjM2
YzI5MC4uNmZhMzk2YSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gv
TGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKQEAgLTQ4Niw2ICs0ODYsMTIgQEAgSlNW
YWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0
ZWRJbmZvKEpTQ29udGV4dFJlZiwKICAgICByZXR1cm4gMDsKIH0KIAorSlNWYWx1ZVJlZiBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNW
YWx1ZVJlZiB2YWx1ZSwgaW50ICwgaW50LCB1bnNpZ25lZCwgdW5zaWduZWQsIGJvb2wpCit7Cisg
ICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIHJldHVybiAwOworfQorCiB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjphdXRoZW50aWNhdGVTZXNzaW9uKEpTU3RyaW5nUmVmLCBKU1N0
cmluZ1JlZiwgSlNTdHJpbmdSZWYpCiB7CiB9Ci0tIAoxLjYuNC4yCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>