<?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>67707</bug_id>
          
          <creation_ts>2011-09-07 07:53:30 -0700</creation_ts>
          <short_desc>[Qt] Add a way to have experimental features in WebKit2</short_desc>
          <delta_ts>2011-11-11 06:55:32 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexis Menard (darktears)">menard</reporter>
          <assigned_to name="Alexis Menard (darktears)">menard</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>noam</cc>
    
    <cc>ossy</cc>
    
    <cc>s.mathur</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>463347</commentid>
    <comment_count>0</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-09-07 07:53:30 -0700</bug_when>
    <thetext>Today we feel that API are not yet in a state that we can commit to them. Let&apos;s find a way to make them available as experimental APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463349</commentid>
    <comment_count>1</comment_count>
      <attachid>106584</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-09-07 07:56:02 -0700</bug_when>
    <thetext>Created attachment 106584
Work in progress on a proposal...

This patch propose a private property that you can access in C++ only by :

- including the private header
- calling view-&gt;property(&quot;experimental&quot;)-&gt;invokeMethod...

And in QML that way : webview.experimental.bar()

Jocelyn said it was too easy to get those features in QML so I propose we let the app doing the qmlRegister... imposing them to include a private header to do so.

Any thought?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463391</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-07 09:45:58 -0700</bug_when>
    <thetext>Attachment 106584 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/UIProcess/API/qt/qdesktopwe...&quot; exit_code: 1

Source/WebKit2/UIProcess/API/qt/qdesktopwebviewexperimental_p.h:28:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 7 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>465659</commentid>
    <comment_count>3</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-09-12 10:22:11 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 106584 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/UIProcess/API/qt/qdesktopwe...&quot; exit_code: 1
&gt; 
&gt; Source/WebKit2/UIProcess/API/qt/qdesktopwebviewexperimental_p.h:28:  This { should be at the end of the previous line  [whitespace/braces] [4]
&gt; Total errors found: 1 in 7 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Caio has a really good point. Let&apos;s say the experimental object has a signal you can&apos;t do easily :

onBlah {} you need to create connections in QML.

Other solution could be a subclass QDesktopBrowserWebView of QDWV that exposes everything. This class could be named _p.h so not part of any API making the QDWV a very simple class. This subclass has to sit here as you can&apos;t do anything useful without hacks if you don&apos;t have access to all the private classes but we can add/remove APIs there and promote them to QDWV when we feel they are good. Could be a playground.

Any thought? I could cook the patch as with the argument of Caio I feel that the new solution is better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466416</commentid>
    <comment_count>4</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2011-09-13 11:32:34 -0700</bug_when>
    <thetext>(In reply to comment #3)
Another option could be to just keep everything in the same class and add a &quot;experimental&quot; prefix or suffix to the properties, and still use Q_PROPERTY_PRIVATE to keep the ABI clean but directly instead of through a delegate. Like &quot;experimentalGetRawCookies(QString)&quot;. Those properties should be #ifdefed by default unless QtWebKit is compiled with a specific flag.

The rest of Qt5 is using this kind of convention that if you want to use private APIs, you add the &quot;-private&quot; suffix in you pro file for the module (e.g. &quot;QT += core webkit-private&quot;). This gives you access to _p.h headers in your include path, so this would then allow C++ apps to use the experimental methods on the private class directly.

If we get abstraction problems we can start using _p_p.h private-private headers like QtCore is using.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469438</commentid>
    <comment_count>5</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-09-19 09:13:23 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; Another option could be to just keep everything in the same class and add a &quot;experimental&quot; prefix or suffix to the properties, and still use Q_PROPERTY_PRIVATE to keep the ABI clean but directly instead of through a delegate. Like &quot;experimentalGetRawCookies(QString)&quot;. Those properties should be #ifdefed by default unless QtWebKit is compiled with a specific flag.

Which will force a rebuild of QtWebKit :(. It sucks I think. Also what about Q_INVOKABLE or slots? Protecting them in the ifdef is a bit barf...

&gt; 
&gt; The rest of Qt5 is using this kind of convention that if you want to use private APIs, you add the &quot;-private&quot; suffix in you pro file for the module (e.g. &quot;QT += core webkit-private&quot;). This gives you access to _p.h headers in your include path, so this would then allow C++ apps to use the experimental methods on the private class directly.
&gt; 
&gt; If we get abstraction problems we can start using _p_p.h private-private headers like QtCore is using.

We could import an additional module in QML import QtWebKit 5.0 for the normal views and import QtWebKit.experimental will actually drag some extra stuff but in that case it has to be a subclass of QDWV for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469557</commentid>
    <comment_count>6</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2011-09-19 11:27:46 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; We could import an additional module in QML import QtWebKit 5.0 for the normal views and import QtWebKit.experimental will actually drag some extra stuff but in that case it has to be a subclass of QDWV for example.

What about instead of having the experimental delegate created by the web view, we let the app create it and bind it to its parent if it&apos;s a web view and don&apos;t already have an experimental delegate. Else we throw a runtime error.

import QtWebKit 5.0
import QtWebKit.experimental 5.0

TouchWebView {
id: webView
onLoadFinished: { print(&quot;finished&quot;) }

WebViewExperimentalFeatures {
id: experimental
onBlah: { print(&quot;blah&quot;) }
}
}

WebViewExperimentalFeatures would be a type friend to QTouchWebView and QTouchWebViewPrivate that would expose private members through slots and properties.

The parent-binding part is hackish, but could be alright with proper obvious error messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478258</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-10-05 03:37:43 -0700</bug_when>
    <thetext>Let me try to summarize Tor Arne&apos;s idea on this, which is using attached properties (and signals if necessary):

import QtWebKit 3.0;

WebView {

    ...

    WebViewPrivate.settings.someSettingWeAreNotSureAboutYetEnabled: true;
    WebViewPrivate.onBlah: {
        ...
    }

}

We don&apos;t even have to version WebViewPrivate, but we must make it clear
that its properties and signals are subject to change.


The WebViewPrivate object would get instantiated and associated with the WebView
instances as the attached properties are used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478259</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-10-05 03:39:01 -0700</bug_when>
    <thetext>
&gt; We don&apos;t even have to version WebViewPrivate, but we must make it clear
&gt; that its properties and signals are subject to change.

Can&apos;t we just call it Experimental instead then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478261</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-10-05 03:53:11 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; We don&apos;t even have to version WebViewPrivate, but we must make it clear
&gt; &gt; that its properties and signals are subject to change.
&gt; 
&gt; Can&apos;t we just call it Experimental instead then?

Sure :)

Although I prefer the term &quot;private&quot; for its &quot;stronger&quot; meaning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478286</commentid>
    <comment_count>10</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-10-05 05:23:06 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Let me try to summarize Tor Arne&apos;s idea on this, which is using attached properties (and signals if necessary):
&gt; 
&gt; import QtWebKit 3.0;
&gt; 
&gt; WebView {
&gt; 
&gt;     ...
&gt; 
&gt;     WebViewPrivate.settings.someSettingWeAreNotSureAboutYetEnabled: true;
&gt;     WebViewPrivate.onBlah: {
&gt;         ...
&gt;     }
&gt; 
&gt; }
&gt; 
&gt; We don&apos;t even have to version WebViewPrivate, but we must make it clear
&gt; that its properties and signals are subject to change.
&gt; 
&gt; 
&gt; The WebViewPrivate object would get instantiated and associated with the WebView
&gt; instances as the attached properties are used.

That could work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478298</commentid>
    <comment_count>11</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-10-05 06:15:31 -0700</bug_when>
    <thetext>Actually, the best mapping in QML to what we want is extension objects:

http://doc.qt.nokia.com/4.7-snapshot/qml-extending.html#extension-objects

This allows us to provide a stand-alone module, with it&apos;s own import and versoning, that extends the WebView type. Any property that the extension object provides will be merged with the WebView, so we can have:

Rectangle {
    width: 800
    height: 600

    WebView {
        anchors.fill: parent

        experimental {
            webGLEnabled: false

            onSomeRandomThingChanged: console.log(&quot;yeah&quot;)
        }
    }
}

Here, the experimental property is a property of the extension object. It&apos;s in fact a grouped property, so that we can combine all the experimental stuff in one place. As you can see this grouped property can also have signals and methods.

Here&apos;s the code showing the example above:

https://gist.github.com/1264390

(Compared to attached properties this is preferable, as an attached property should in theory be able to attach to any type, not just a WebView, although we could certainly artificially limit it to only have any effect when attached to webviews)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478304</commentid>
    <comment_count>12</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2011-10-05 06:35:29 -0700</bug_when>
    <thetext>(In reply to comment #11)
Looks like a good solution to me.

Let&apos;s make sure that the properties are also accessible from C++.
i.e. I guess we could use QTouchWebViewPrivate from qtouchwebview_p.h instead of WebViewExperimental in the example.

I&apos;d really like if we could access them from C++ by having &quot;QT += webkit-private&quot; in the pro file just like other Qt modules.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478309</commentid>
    <comment_count>13</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-10-05 06:42:38 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; Looks like a good solution to me.
&gt; 
&gt; Let&apos;s make sure that the properties are also accessible from C++.
&gt; i.e. I guess we could use QTouchWebViewPrivate from qtouchwebview_p.h instead of WebViewExperimental in the example.
&gt; 
&gt; I&apos;d really like if we could access them from C++ by having &quot;QT += webkit-private&quot; in the pro file just like other Qt modules.

Right, that&apos;s a good point, and I think it would fit with this approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478436</commentid>
    <comment_count>14</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-10-05 09:40:37 -0700</bug_when>
    <thetext>Taking</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486195</commentid>
    <comment_count>15</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-10-18 11:36:08 -0700</bug_when>
    <thetext>Taking it again :D.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486968</commentid>
    <comment_count>16</comment_count>
      <attachid>111667</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-10-19 13:42:53 -0700</bug_when>
    <thetext>Created attachment 111667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486974</commentid>
    <comment_count>17</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-10-19 13:48:12 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Created an attachment (id=111667) [details]
&gt; Patch

Here is a proposal.

You can now do this in QML :

import QtWebkit 3.0
import QtWebKit.private 3.0

DesktopWebView {
    id: webView
    privateObject {
            fooProperty : false

            onFoo: { console.log(&quot;YAHOO&quot;); }
     }

}

given that QDesktopWebViewPrivate have a fooProperty and a foo signal of course.

It works well for the desktop case but shows a bug in QML for the TouchWebView.

TouchWebView {
     page {
         privateObject {
          ...
         } 
     }
}

triggers a weird error when parsing. I&apos;ll make a bug report.

I couldn&apos;t use private for the property name as it is a reserved (but unused) keyword in QML.

On a similar way we could extend the QWebPreferences with the same approach to add experimental preferences (WebGL, ...).

Any thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487047</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-19 15:20:55 -0700</bug_when>
    <thetext>Attachment 111667 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;Source/WebKit.pro&apos;, u&apos;Source...&quot; exit_code: 1

Source/WebKit2/UIProcess/API/qt/qdesktopwebviewprivateextension_p.cpp:21:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Source/WebKit/qt/declarative/private/plugin.cpp:24:  Found WebCore config.h after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Source/WebKit2/UIProcess/API/qt/qdesktopwebviewprivateextension_p.h:21:  #ifndef header guard has wrong style, please use: qdesktopwebviewprivateextension_p_h  [build/header_guard] [5]
Source/WebKit2/UIProcess/API/qt/qtouchwebpageprivateextension_p.cpp:21:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Source/WebKit2/UIProcess/API/qt/qtouchwebpageprivateextension_p.h:21:  #ifndef header guard has wrong style, please use: qtouchwebpageprivateextension_p_h  [build/header_guard] [5]
Total errors found: 5 in 17 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>495611</commentid>
    <comment_count>19</comment_count>
      <attachid>111667</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-03 10:32:07 -0700</bug_when>
    <thetext>Comment on attachment 111667
Patch

Taking this out of the review queue as Alexis is going to merge the views and the experimental features implementation will look different then :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500267</commentid>
    <comment_count>20</comment_count>
      <attachid>114568</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-11-10 14:11:54 -0800</bug_when>
    <thetext>Created attachment 114568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500268</commentid>
    <comment_count>21</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-11-10 14:13:16 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Created an attachment (id=114568) [details]
&gt; Patch

Regardless on the discussion on the ML the usage look like this :

diff --git a/src/qml/PageWidget.qml b/src/qml/PageWidget.qml
index e0e42fc..d8447b4 100644
--- a/src/qml/PageWidget.qml
+++ b/src/qml/PageWidget.qml
@@ -16,6 +16,7 @@
 
 import QtQuick 2.0
 import QtWebKit 3.0
+import QtWebKit.private 3.0
 import Snowshoe 1.0
 
 Item {
@@ -80,6 +81,8 @@ Item {
             }
             return WebView.UsePolicy
         }
+
+        Component.onCompleted: { privateObject.setUseTraditionalDesktopBehaviour(true) }
     }
 
     function loadUrl(url)

privateObject is the main access point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500270</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-10 14:14:39 -0800</bug_when>
    <thetext>Attachment 114568 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;Source/QtWebKit.pro&apos;, u&apos;Sour...&quot; exit_code: 1

Source/WebKit2/UIProcess/API/qt/qquickwebviewprivateextension.cpp:24:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/API/qt/qquickwebviewprivateextension.cpp:25:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 12 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>500283</commentid>
    <comment_count>23</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-11-10 14:24:36 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; Attachment 114568 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;Source/QtWebKit.pro&apos;, u&apos;Sour...&quot; exit_code: 1
&gt; 
&gt; Source/WebKit2/UIProcess/API/qt/qquickwebviewprivateextension.cpp:24:  Alphabetical sorting problem.  [build/include_order] [4]
&gt; Source/WebKit2/UIProcess/API/qt/qquickwebviewprivateextension.cpp:25:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
&gt; Total errors found: 2 in 12 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

it doesn&apos;t like the main header to be called foo_p.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500284</commentid>
    <comment_count>24</comment_count>
      <attachid>114568</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-11-10 14:24:39 -0800</bug_when>
    <thetext>Comment on attachment 114568
Patch

Code looks good, but better get someone else to take a look at the build stuff :-) especially with all the recent changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500286</commentid>
    <comment_count>25</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-11-10 14:26:09 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 114568 [details])
&gt; Code looks good, but better get someone else to take a look at the build stuff :-) especially with all the recent changes.

Who said God Tor Arne. I basically copy/pasted the main module declarative.pro and changed a bit regarding the name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500671</commentid>
    <comment_count>26</comment_count>
      <attachid>114568</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-11-11 04:36:50 -0800</bug_when>
    <thetext>Comment on attachment 114568
Patch

cq is sick I will land manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500700</commentid>
    <comment_count>27</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-11-11 05:19:55 -0800</bug_when>
    <thetext>Committed r99952: &lt;http://trac.webkit.org/changeset/99952&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500722</commentid>
    <comment_count>28</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-11 06:19:14 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; Committed r99952: &lt;http://trac.webkit.org/changeset/99952&gt;

It broke the Qt5-WK build with --no-webkit2 option:

In file included from /home/webkitbuildbot/slaves/release32bit-qt5/buildslave/qt-linux-32-release-qt5/build/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h:25,
                 from /home/webkitbuildbot/slaves/release32bit-qt5/buildslave/qt-linux-32-release-qt5/build/Source/WebKit/qt/declarative/private/plugin.cpp:24:
/home/webkitbuildbot/slaves/release32bit-qt5/buildslave/qt-linux-32-release-qt5/build/Source/WebKit2/UIProcess/qt/QtViewInterface.h:28:28: error: WebKit2/WKBase.h: No such file or directory

Could you fix it please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500743</commentid>
    <comment_count>29</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-11-11 06:55:32 -0800</bug_when>
    <thetext>Committed r99961: &lt;http://trac.webkit.org/changeset/99961&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106584</attachid>
            <date>2011-09-07 07:56:02 -0700</date>
            <delta_ts>2011-10-19 13:42:45 -0700</delta_ts>
            <desc>Work in progress on a proposal...</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>6794</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3
LmNwcAppbmRleCA1MWVjYmQ0Li4xYjdhY2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwCkBAIC0zNiwxMiArMzYsMzUgQEAK
ICNpbmNsdWRlIDxRdEd1aS9RVG91Y2hFdmVudD4KICNpbmNsdWRlIDxRdEd1aS9RV2hlZWxFdmVu
dD4KIAorCitRRGVza3RvcFdlYlZpZXdFeHBlcmltZW50YWw6OlFEZXNrdG9wV2ViVmlld0V4cGVy
aW1lbnRhbChRT2JqZWN0KiBwYXJlbnQpCisgICAgOiBRT2JqZWN0KHBhcmVudCkKK3sKK30KKwor
CitRU3RyaW5nIFFEZXNrdG9wV2ViVmlld0V4cGVyaW1lbnRhbDo6Zm9vKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gUUxhdGluMVN0cmluZygicGxvcCIpOworfQorCit2b2lkIFFEZXNrdG9wV2ViVmll
d0V4cGVyaW1lbnRhbDo6YmFyKCkKK3sKKworfQorCiBRRGVza3RvcFdlYlZpZXdQcml2YXRlOjpR
RGVza3RvcFdlYlZpZXdQcml2YXRlKFFEZXNrdG9wV2ViVmlldyogcSwgV0tDb250ZXh0UmVmIGNv
bnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKICAgICA6IHEocSkKICAgICAs
IHBhZ2UodGhpcywgY29udGV4dFJlZiwgcGFnZUdyb3VwUmVmKQogICAgICwgaXNDcmFzaGVkKGZh
bHNlKQogICAgICwgbmF2aWdhdGlvbkNvbnRyb2xsZXIoMCkKKyAgICAsIG1fZXhwZXJpbWVudGFs
KG5ldyBRRGVza3RvcFdlYlZpZXdFeHBlcmltZW50YWwocSkpCit7Cit9CisKK1FEZXNrdG9wV2Vi
Vmlld0V4cGVyaW1lbnRhbCogUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTo6ZXhwZXJpbWVudGFsKCkg
Y29uc3QKIHsKKyAgICByZXR1cm4gbV9leHBlcmltZW50YWw7CiB9CiAKIHZvaWQgUURlc2t0b3BX
ZWJWaWV3UHJpdmF0ZTo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBRUmVjdCYgaW52YWxpZGF0
ZWRBcmVhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVz
a3RvcHdlYnZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3
ZWJ2aWV3LmgKaW5kZXggMDM0YzIxNi4uY2E0NDA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlldy5oCkBAIC01NCw2ICs1NCw3IEBAIGNs
YXNzIFFXRUJLSVRfRVhQT1JUIFFEZXNrdG9wV2ViVmlldyA6IHB1YmxpYyBRU0dQYWludGVkSXRl
bSB7CiAgICAgUV9QUk9QRVJUWShRVXJsIHVybCBSRUFEIHVybCBOT1RJRlkgdXJsQ2hhbmdlZCkK
ICAgICBRX1BST1BFUlRZKGludCBsb2FkUHJvZ3Jlc3MgUkVBRCBsb2FkUHJvZ3Jlc3MgTk9USUZZ
IGxvYWRQcm9ncmVzc0NoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShRV2ViTmF2aWdhdGlvbkNvbnRy
b2xsZXIqIG5hdmlnYXRpb24gUkVBRCBuYXZpZ2F0aW9uQ29udHJvbGxlciBDT05TVEFOVCkKKyAg
ICBRX1BSSVZBVEVfUFJPUEVSVFkoZCwgUURlc2t0b3BXZWJWaWV3RXhwZXJpbWVudGFsKiBleHBl
cmltZW50YWwgUkVBRCBleHBlcmltZW50YWwgQ09OU1RBTlQgRklOQUwpCiAgICAgUV9FTlVNUyhO
YXZpZ2F0aW9uUG9saWN5KQogCiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlld19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlld19wLmgKaW5kZXggNGEwN2E1OC4uNTJiMWUzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZp
ZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2
aWV3X3AuaApAQCAtMjIsNiArMjIsNyBAQAogI2RlZmluZSBxZGVza3RvcHdlYnZpZXdfcF9oCiAK
ICNpbmNsdWRlICJxZGVza3RvcHdlYnBhZ2Vwcm94eS5oIgorI2luY2x1ZGUgInFkZXNrdG9wd2Vi
dmlld2V4cGVyaW1lbnRhbF9wLmgiCiAjaW5jbHVkZSAicXdlYm5hdmlnYXRpb25jb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiVmlld0ludGVyZmFjZS5oIgogCkBAIC0zMSw2ICszMiw3IEBAIGNsYXNz
IFFEZXNrdG9wV2ViVmlld1ByaXZhdGUgOiBwdWJsaWMgV2ViS2l0OjpWaWV3SW50ZXJmYWNlLCBw
dWJsaWMgV2ViS2l0OjpQb2xpCiB7CiBwdWJsaWM6CiAgICAgUURlc2t0b3BXZWJWaWV3UHJpdmF0
ZShRRGVza3RvcFdlYlZpZXcqLCBXS0NvbnRleHRSZWYgPSAwLCBXS1BhZ2VHcm91cFJlZiA9IDAp
OworICAgIFFEZXNrdG9wV2ViVmlld0V4cGVyaW1lbnRhbCogZXhwZXJpbWVudGFsKCkgY29uc3Q7
CiAKICAgICBzdGF0aWMgUURlc2t0b3BXZWJWaWV3KiBjcmVhdGVWaWV3V2l0aFBhZ2VHcm91cChX
S1BhZ2VHcm91cFJlZik7CiAKQEAgLTc2LDYgKzc4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IFBvbGljeUludGVyZmFjZTo6UG9saWN5QWN0aW9uIG5hdmlnYXRpb25Qb2xpY3lGb3JVUkwoY29u
c3QgUVVybCYsIFF0OjpNb3VzZUJ1dHRvbiwgUXQ6OktleWJvYXJkTW9kaWZpZXJzKTsKIAogICAg
IFFTaGFyZWRQb2ludGVyPFFNZW51PiBhY3RpdmVNZW51OworICAgIFFEZXNrdG9wV2ViVmlld0V4
cGVyaW1lbnRhbCogbV9leHBlcmltZW50YWw7CiB9OwogCiAjZW5kaWYgLyogcWRlc2t0b3B3ZWJ2
aWV3X3BfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
ZGVza3RvcHdlYnZpZXdleHBlcmltZW50YWxfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xZGVza3RvcHdlYnZpZXdleHBlcmltZW50YWxfcC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmUyZDQ2NzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlld2V4cGVyaW1lbnRhbF9wLmgKQEAg
LTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgcWRlc2t0b3B3ZWJ2aWV3
ZXhwZXJpbWVudGFsX3BfaAorI2RlZmluZSBxZGVza3RvcHdlYnZpZXdleHBlcmltZW50YWxfcF9o
CisKKyNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCisjaW5jbHVkZSA8UU9iamVjdD4KKworY2xh
c3MgUVdFQktJVF9FWFBPUlQgUURlc2t0b3BXZWJWaWV3RXhwZXJpbWVudGFsIDogcHVibGljIFFP
YmplY3QKK3sKKyAgICBRX09CSkVDVAorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBmb28gUkVBRCBm
b28pCisKK3B1YmxpYzoKKyAgICBRRGVza3RvcFdlYlZpZXdFeHBlcmltZW50YWwoUU9iamVjdCog
cGFyZW50KTsKKyAgICBRU3RyaW5nIGZvbygpIGNvbnN0OworCisgICAgUV9JTlZPS0FCTEUgdm9p
ZCBiYXIoKTsKK307CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xbWxwbHVnaW4vcGx1Z2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcW1scGx1Z2luL3BsdWdpbi5jcHAKaW5kZXggNGJkZjQyYy4uOTY2ODU2NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xbWxwbHVnaW4vcGx1Z2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FtbHBsdWdpbi9wbHVn
aW4uY3BwCkBAIC0xOCw2ICsxOCw3IEBACiAqLwogCiAjaW5jbHVkZSAicWRlc2t0b3B3ZWJ2aWV3
LmgiCisjaW5jbHVkZSAicWRlc2t0b3B3ZWJ2aWV3ZXhwZXJpbWVudGFsX3AuaCIKICNpbmNsdWRl
ICJxdG91Y2h3ZWJwYWdlLmgiCiAjaW5jbHVkZSAicXRvdWNod2Vidmlldy5oIgogI2luY2x1ZGUg
InF3ZWJuYXZpZ2F0aW9uY29udHJvbGxlci5oIgpAQCAtMzQsNiArMzUsNyBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICBRX0FTU0VSVChRTGF0aW4xU3RyaW5nKHVyaSkgPT0gUUxhdGluMVN0cmlu
ZygiUXRXZWJLaXQuZXhwZXJpbWVudGFsIikpOwogICAgICAgICBxbWxSZWdpc3RlclR5cGU8UURl
c2t0b3BXZWJWaWV3Pih1cmksIDUsIDAsICJEZXNrdG9wV2ViVmlldyIpOworICAgICAgICBxbWxS
ZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRRGVza3RvcFdlYlZpZXdFeHBlcmltZW50YWw+KHVyaSwg
NSwgMCwgIkRlc2t0b3BXZWJWaWV3RXhwZXJpbWVudGFsIiwgUU9iamVjdDo6dHIoIkNhbm5vdCBj
cmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgRGVza3RvcFdlYlZpZXdFeHBlcmltZW50YWwsIHVz
ZSB3aXRoIERlc2t0b3BXZWJWaWV3IikpOwogICAgICAgICBxbWxSZWdpc3RlclR5cGU8UVRvdWNo
V2ViVmlldz4odXJpLCA1LCAwLCAiVG91Y2hXZWJWaWV3Iik7CiAgICAgICAgIHFtbFJlZ2lzdGVy
VW5jcmVhdGFibGVUeXBlPFFXZWJOYXZpZ2F0aW9uQ29udHJvbGxlcj4odXJpLCA1LCAwLCAiTmF2
aWdhdGlvbkNvbnRyb2xsZXIiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBp
bnN0YW5jZSBvZiBOYXZpZ2F0aW9uQ29udHJvbGxlciIpKTsKICAgICAgICAgcW1sUmVnaXN0ZXJV
bmNyZWF0YWJsZVR5cGU8UVRvdWNoV2ViUGFnZT4odXJpLCA1LCAwLCAiVG91Y2hXZWJQYWdlIiwg
UU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgVG91Y2hXZWJQ
YWdlLCB1c2UgVG91Y2hXZWJWaWV3IikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xbWxwbHVnaW4vcW1scGx1Z2luLnBybyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcW1scGx1Z2luL3FtbHBsdWdpbi5wcm8KaW5kZXggYjQyNGY3My4uNmRh
Njk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xbWxwbHVn
aW4vcW1scGx1Z2luLnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Ft
bHBsdWdpbi9xbWxwbHVnaW4ucHJvCkBAIC04LDYgKzgsOCBAQCBTT1VSQ0VTICs9IHBsdWdpbi5j
cHAKIGluY2x1ZGUoLi4vLi4vLi4vLi4vLi4vV2ViS2l0LnByaSkKIFFUICs9IGRlY2xhcmF0aXZl
CiAKK0lOQ0xVREVQQVRIICs9IC4uLworCiBRTUFLRV9SUEFUSERJUiA9ICQkT1VUUFVUX0RJUi9s
aWIgJCRRTUFLRV9SUEFUSERJUgogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDJBUEkucHJpIGIvU291cmNlL1dlYktpdDIvV2ViS2l0MkFQSS5wcmkKaW5kZXggMjIxMTg4Yy4u
ZWI1NGJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0MkFQSS5wcmkKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0MkFQSS5wcmkKQEAgLTEyNyw2ICsxMjcsNyBAQCBXRUJLSVQy
X0FQSV9IRUFERVJTICs9IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2NwcC9xdC9XS1VSTFF0LmggXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmggXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3X3AuaCBcCisgICAgJCRTT1VSQ0VfRElSL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXdleHBlcmltZW50YWxfcC5oIFwKICAg
ICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBhZ2UuaCBc
CiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdl
X3AuaCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3
ZWJ2aWV3LmggXAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111667</attachid>
            <date>2011-10-19 13:42:53 -0700</date>
            <delta_ts>2011-11-10 14:11:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67707-20111019174238.patch</filename>
            <type>text/plain</type>
            <size>20618</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk3ODc0
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTAt
MTkgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAg
ICAgW1F0XSBBZGQgYSB3YXkgdG8gaGF2ZSBleHBlcmltZW50YWwgZmVhdHVyZXMgaW4gV2ViS2l0
MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3MDcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhl
IG5ldyBwcml2YXRlIFFNTCBtb2R1bGUgaW4gdGhlIGJ1aWxkLgorCisgICAgICAgICogU291cmNl
L1dlYktpdC5wcm86CisKIDIwMTEtMTAtMTggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShYUEFUSCkKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQucHJvCShyZXZpc2lvbiA5Nzg3
MikKKysrIFNvdXJjZS9XZWJLaXQucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBA
IHdlYmtpdDIgewogZXhpc3RzKCQkUFdEL1dlYktpdC9xdC9kZWNsYXJhdGl2ZSkgewogICAgIHF0
NSB7CiAgICAgICAgIGNvbnRhaW5zKFFUX0NPTkZJRywgcXRxdWljazEpOiBTVUJESVJTICs9IFdl
YktpdC9xdC9kZWNsYXJhdGl2ZQorICAgICAgICBjb250YWlucyhRVF9DT05GSUcsIGRlY2xhcmF0
aXZlKTogU1VCRElSUyArPSBXZWJLaXQvcXQvZGVjbGFyYXRpdmUvcHJpdmF0ZQogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGNvbnRhaW5zKFFUX0NPTkZJRywgZGVjbGFyYXRpdmUpOiBTVUJESVJTICs9
IFdlYktpdC9xdC9kZWNsYXJhdGl2ZQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3
ODc0KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMzAgQEAKKzIwMTEtMTAtMTkgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5i
b3NzYS5vcmc+CisKKyAgICAgICAgW1F0XSBBZGQgYSB3YXkgdG8gaGF2ZSBleHBlcmltZW50YWwg
ZmVhdHVyZXMgaW4gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njc3MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgbmV3IFFNTCBleHRlbnNpb25zIGZvciBvdXIgcHVibGljIHZpZXdzLiBU
aG9zZSBleHRlbnNpb25zCisgICAgICAgIHJldHVybnMgdGhlIHByaXZhdGUgb2JqZWN0IG9mIGVh
Y2ggdmlld3Mgc28gdGhhdCB0aGUgdXNlciBjb3VsZAorICAgICAgICB1c2UgdW5zdGFibGUvdW5y
ZWxlYXNlZCBBUElzLiBUaGlzIHJlcXVpcmVzIG91ciBwcml2YXRlIGNsYXNzZXMKKyAgICAgICAg
dG8gYmUgZXhwb3J0ZWQgYW5kIFFPYmplY3Qgc3ViY2xhc3Nlcy4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9x
dC9xZGVza3RvcHdlYnZpZXdfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0
b3B3ZWJ2aWV3cHJpdmF0ZWV4dGVuc2lvbl9wLmNwcDogQWRkZWQuCisgICAgICAgIChRRGVza3Rv
cFdlYlZpZXdQcml2YXRlRXh0ZW5zaW9uOjpRRGVza3RvcFdlYlZpZXdQcml2YXRlRXh0ZW5zaW9u
KToKKyAgICAgICAgKFFEZXNrdG9wV2ViVmlld1ByaXZhdGVFeHRlbnNpb246OnZpZXdQcml2YXRl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlld3ByaXZhdGVleHRl
bnNpb25fcC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBh
Z2UuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZV9wLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlcHJpdmF0ZWV4dGVuc2lvbl9wLmNwcDogQWRkZWQu
CisgICAgICAgIChRVG91Y2hXZWJQYWdlUHJpdmF0ZUV4dGVuc2lvbjo6UVRvdWNoV2ViUGFnZVBy
aXZhdGVFeHRlbnNpb24pOgorICAgICAgICAoUVRvdWNoV2ViUGFnZVByaXZhdGVFeHRlbnNpb246
OnZpZXdQcml2YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBhZ2Vw
cml2YXRlZXh0ZW5zaW9uX3AuaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0MkFQSS5wcmk6CisK
IDIwMTEtMTAtMTkgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVp
cmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdIFtXSzJdIFJlbmFtZSBmaWxlcyBhbmQg
Y2xhc3NlcyB0byBmb2xsb3cgY29udmVudGlvbnMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktp
dDJBUEkucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEkucHJpCShy
ZXZpc2lvbiA5Nzg3MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEkucHJpCSh3b3JraW5n
IGNvcHkpCkBAIC01Myw2ICs1Myw4IEBAIFdFQktJVDJfQVBJX1NPVVJDRVMgPSBcCiAgICAgJCRT
T1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJ2aWV3LmNwcCBcCiAg
ICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbmNv
bnRyb2xsZXIuY3BwIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3ZWJwcmVmZXJlbmNlcy5jcHAgXAorICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3cHJpdmF0ZWV4dGVuc2lvbl9wLmNwcCBcCisgICAgJCRT
T1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlcHJpdmF0ZWV4
dGVuc2lvbl9wLmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3Qu
Y3BwIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgXApAQCAtMTM4LDYgKzE0MCw4
IEBAIFdFQktJVDJfQVBJX0hFQURFUlMgKz0gXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXRvdWNod2Vidmlld19wLmggXAogICAgICQkU09VUkNFX0RJUi9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYmtpdHR5cGVzLmggXAogICAgICQkU09VUkNFX0RJUi9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25jb250cm9sbGVyLmggXAorICAg
ICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3cHJp
dmF0ZWV4dGVuc2lvbl9wLmggXAorICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXRvdWNod2VicGFnZXByaXZhdGVleHRlbnNpb25fcC5oIFwKICAgICAkJFNPVVJDRV9E
SVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0Zv
cndhcmRMaXN0LmggXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggXAogICAgICQkU09V
UkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVI
aXRUZXN0UmVzdWx0LmggXApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
ZGVza3RvcHdlYnZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FkZXNrdG9wd2Vidmlldy5oCShyZXZpc2lvbiA5Nzg3MikKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEyOCw2ICsxMjgsNyBAQCBwcml2YXRlOgogCiAgICAgZnJpZW5kIGNsYXNzIFdUUjo6UGxhdGZv
cm1XZWJWaWV3OwogICAgIGZyaWVuZCBjbGFzcyBRRGVza3RvcFdlYlZpZXdQcml2YXRlOworICAg
IGZyaWVuZCBjbGFzcyBRRGVza3RvcFdlYlZpZXdQcml2YXRlRXh0ZW5zaW9uOwogICAgIFFEZXNr
dG9wV2ViVmlld1ByaXZhdGUgKmQ7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlld19wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXdfcC5oCShyZXZpc2lvbiA5Nzg3MikK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3X3AuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsMjggKzMwLDIxIEBACiBjbGFzcyBRRGVza3RvcFdlYlZpZXc7
CiBjbGFzcyBRRmlsZURpYWxvZzsKIAotY2xhc3MgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZSA6IHB1
YmxpYyBRT2JqZWN0LCBwdWJsaWMgV2ViS2l0OjpRdFZpZXdJbnRlcmZhY2UsIHB1YmxpYyBXZWJL
aXQ6OlF0UG9saWN5SW50ZXJmYWNlCi17CitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRRGVza3RvcFdl
YlZpZXdQcml2YXRlIDogcHVibGljIFFPYmplY3QsIHB1YmxpYyBXZWJLaXQ6OlF0Vmlld0ludGVy
ZmFjZSwgcHVibGljIFdlYktpdDo6UXRQb2xpY3lJbnRlcmZhY2UgewogICAgIFFfT0JKRUNUCiBw
dWJsaWM6CiAgICAgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZShRRGVza3RvcFdlYlZpZXcqLCBXS0Nv
bnRleHRSZWYgPSAwLCBXS1BhZ2VHcm91cFJlZiA9IDApOwogCi0gICAgc3RhdGljIFFEZXNrdG9w
V2ViVmlldyogY3JlYXRlVmlld1dpdGhQYWdlR3JvdXAoV0tQYWdlR3JvdXBSZWYpOwotCi0gICAg
dm9pZCBlbmFibGVNb3VzZUV2ZW50cygpOwotICAgIHZvaWQgZGlzYWJsZU1vdXNlRXZlbnRzKCk7
Ci0KLSAgICBRRGVza3RvcFdlYlZpZXcqIHE7Ci0gICAgUXREZXNrdG9wV2ViUGFnZVByb3h5IHBh
Z2U7Ci0KLSAgICBib29sIGlzQ3Jhc2hlZDsKLSAgICBRV2ViTmF2aWdhdGlvbkNvbnRyb2xsZXIq
IG5hdmlnYXRpb25Db250cm9sbGVyOwotCiBwcml2YXRlIFFfU0xPVFM6CiAgICAgdm9pZCBvbk9w
ZW5QYW5lbEZpbGVzU2VsZWN0ZWQoKTsKICAgICB2b2lkIG9uT3BlblBhbmVsRmluaXNoZWQoaW50
IHJlc3VsdCk7CiAKIHByaXZhdGU6CisgICAgc3RhdGljIFFEZXNrdG9wV2ViVmlldyogY3JlYXRl
Vmlld1dpdGhQYWdlR3JvdXAoV0tQYWdlR3JvdXBSZWYpOworCisgICAgdm9pZCBlbmFibGVNb3Vz
ZUV2ZW50cygpOworICAgIHZvaWQgZGlzYWJsZU1vdXNlRXZlbnRzKCk7CisKICAgICAvLyBJbXBs
ZW1lbnRhdGlvbiBvZiBRdFZpZXdJbnRlcmZhY2UuCiAgICAgdmlydHVhbCB2b2lkIHNldFZpZXdO
ZWVkc0Rpc3BsYXkoY29uc3QgUVJlY3QmKTsKIApAQCAtMTAzLDYgKzk2LDE1IEBAIHByaXZhdGU6
CiAKICAgICBRVXJsIGxhc3RIb3ZlcmVkVVJMOwogICAgIFFTdHJpbmcgbGFzdEhvdmVyZWRUaXRs
ZTsKKworICAgIFFEZXNrdG9wV2ViVmlldyogcTsKKyAgICBRdERlc2t0b3BXZWJQYWdlUHJveHkg
cGFnZTsKKworICAgIGJvb2wgaXNDcmFzaGVkOworICAgIFFXZWJOYXZpZ2F0aW9uQ29udHJvbGxl
ciogbmF2aWdhdGlvbkNvbnRyb2xsZXI7CisKKyAgICBmcmllbmQgY2xhc3MgUXREZXNrdG9wV2Vi
UGFnZVByb3h5OworICAgIGZyaWVuZCBjbGFzcyBRRGVza3RvcFdlYlZpZXc7CiB9OwogCiAjZW5k
aWYgLyogcWRlc2t0b3B3ZWJ2aWV3X3BfaCAqLwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXdwcml2YXRlZXh0ZW5zaW9uX3AuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3cHJp
dmF0ZWV4dGVuc2lvbl9wLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3cHJpdmF0ZWV4dGVuc2lvbl9wLmNwcAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJxZGVz
a3RvcHdlYnZpZXdwcml2YXRlZXh0ZW5zaW9uX3AuaCIKKyNpbmNsdWRlICJxZGVza3RvcHdlYnZp
ZXcuaCIKKworUURlc2t0b3BXZWJWaWV3UHJpdmF0ZUV4dGVuc2lvbjo6UURlc2t0b3BXZWJWaWV3
UHJpdmF0ZUV4dGVuc2lvbihRT2JqZWN0KiBwYXJlbnQpCisgICAgOiBRT2JqZWN0KHBhcmVudCkK
K3sKK30KKworUURlc2t0b3BXZWJWaWV3UHJpdmF0ZSogUURlc2t0b3BXZWJWaWV3UHJpdmF0ZUV4
dGVuc2lvbjo6dmlld1ByaXZhdGUoKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxRRGVza3Rv
cFdlYlZpZXcqPihwYXJlbnQoKSktPmQ7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlld3ByaXZhdGVleHRlbnNpb25fcC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3cHJpdmF0
ZWV4dGVuc2lvbl9wLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FkZXNrdG9wd2Vidmlld3ByaXZhdGVleHRlbnNpb25fcC5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBxZGVza3RvcHdlYnZp
ZXdwcml2YXRlZXh0ZW5zaW9uX2gKKyNkZWZpbmUgcWRlc2t0b3B3ZWJ2aWV3cHJpdmF0ZWV4dGVu
c2lvbl9oCisKKyNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCisKKyNpbmNsdWRlIDxRT2JqZWN0
PgorY2xhc3MgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTsKKworY2xhc3MgUVdFQktJVF9FWFBPUlQg
UURlc2t0b3BXZWJWaWV3UHJpdmF0ZUV4dGVuc2lvbiA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBR
X09CSkVDVAorICAgIFFfUFJPUEVSVFkoUURlc2t0b3BXZWJWaWV3UHJpdmF0ZSogcHJpdmF0ZU9i
amVjdCBSRUFEIHZpZXdQcml2YXRlIENPTlNUQU5UIEZJTkFMKQorcHVibGljOgorICAgIFFEZXNr
dG9wV2ViVmlld1ByaXZhdGVFeHRlbnNpb24oUU9iamVjdCAqcGFyZW50ID0gMCk7CisgICAgUURl
c2t0b3BXZWJWaWV3UHJpdmF0ZSogdmlld1ByaXZhdGUoKTsKK307CisKKyNlbmRpZiAvLyBxZGVz
a3RvcHdlYnZpZXdwcml2YXRlZXh0ZW5zaW9uX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlLmNwcAkocmV2aXNpb24gOTc4NzIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBhZ2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjcsMyArMTY3LDQgQEAgdm9pZCBRVG91Y2hXZWJQYWdlOjpvblZpc2li
bGVDaGFuZ2VkKCkKIH0KIAogI2luY2x1ZGUgIm1vY19xdG91Y2h3ZWJwYWdlLmNwcCIKKyNpbmNs
dWRlICJtb2NfcXRvdWNod2VicGFnZV9wLmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZS5oCShyZXZpc2lvbiA5Nzg3MikKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC05MSw2ICs5MSw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgUVRvdWNoV2Vi
UGFnZVByaXZhdGUqIGQ7CiAgICAgZnJpZW5kIGNsYXNzIFFUb3VjaFdlYlZpZXdQcml2YXRlOwor
ICAgIGZyaWVuZCBjbGFzcyBRVG91Y2hXZWJQYWdlUHJpdmF0ZUV4dGVuc2lvbjsKICAgICBmcmll
bmQgY2xhc3MgV2ViS2l0OjpRdFRvdWNoVmlld0ludGVyZmFjZTsKIH07CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZV9wLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlX3AuaAkocmV2
aXNpb24gOTc4NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdl
YnBhZ2VfcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw4IEBACiAjaW5jbHVkZSAiUXRT
R1VwZGF0ZVF1ZXVlLmgiCiAjaW5jbHVkZSAicXRvdWNod2VicGFnZS5oIgogI2luY2x1ZGUgInF3
ZWJuYXZpZ2F0aW9uY29udHJvbGxlci5oIgotI2luY2x1ZGUgPFFNZW51PgorCisjaW5jbHVkZSA8
UXRDb3JlL1FPYmplY3Q+CiAKIGNsYXNzIFFSZWN0RjsKIGNsYXNzIFFTR05vZGU7CkBAIC0zMiwx
NiArMzMsMjAgQEAgY2xhc3MgUVN0cmluZzsKIGNsYXNzIFFUb3VjaFdlYlBhZ2U7CiBjbGFzcyBR
dFRvdWNoV2ViUGFnZVByb3h5OwogCi1jbGFzcyBRVG91Y2hXZWJQYWdlUHJpdmF0ZSB7CitjbGFz
cyBRV0VCS0lUX0VYUE9SVCBRVG91Y2hXZWJQYWdlUHJpdmF0ZSA6IHB1YmxpYyBRT2JqZWN0IHsK
KyAgICBRX09CSkVDVAogcHVibGljOgogICAgIFFUb3VjaFdlYlBhZ2VQcml2YXRlKFFUb3VjaFdl
YlBhZ2UqIHZpZXcpOwotCiAgICAgdm9pZCBzZXRQYWdlKFF0VG91Y2hXZWJQYWdlUHJveHkqKTsK
IAorcHJpdmF0ZToKICAgICBRVG91Y2hXZWJQYWdlKiBjb25zdCBxOwogICAgIFF0VG91Y2hXZWJQ
YWdlUHJveHkqIHBhZ2U7CiAgICAgUVdlYk5hdmlnYXRpb25Db250cm9sbGVyKiBuYXZpZ2F0aW9u
Q29udHJvbGxlcjsKICAgICBXZWJLaXQ6OlF0U0dVcGRhdGVRdWV1ZSBzZ1VwZGF0ZVF1ZXVlOwor
CisgICAgZnJpZW5kIGNsYXNzIFFUb3VjaFdlYlBhZ2U7CisgICAgZnJpZW5kIGNsYXNzIFdlYktp
dDo6UXRUb3VjaFZpZXdJbnRlcmZhY2U7CiB9OwogCiAjZW5kaWYgLyogcXRvdWNod2VicGFnZV9w
X2ggKi8KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFn
ZXByaXZhdGVleHRlbnNpb25fcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlcHJpdmF0ZWV4dGVuc2lvbl9wLmNwcAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZXBy
aXZhdGVleHRlbnNpb25fcC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICoKKyAqLworCisjaW5jbHVkZSAicXRvdWNod2VicGFnZXByaXZhdGVleHRlbnNpb25fcC5o
IgorCisjaW5jbHVkZSAicXRvdWNod2VicGFnZS5oIgorCitRVG91Y2hXZWJQYWdlUHJpdmF0ZUV4
dGVuc2lvbjo6UVRvdWNoV2ViUGFnZVByaXZhdGVFeHRlbnNpb24oUU9iamVjdCogcGFyZW50KQor
ICAgIDogUU9iamVjdChwYXJlbnQpCit7Cit9CisKK1FUb3VjaFdlYlBhZ2VQcml2YXRlKiBRVG91
Y2hXZWJQYWdlUHJpdmF0ZUV4dGVuc2lvbjo6dmlld1ByaXZhdGUoKQoreworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxRVG91Y2hXZWJQYWdlKj4ocGFyZW50KCkpLT5kOworfQpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlcHJpdmF0ZWV4dGVuc2lvbl9w
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3
ZWJwYWdlcHJpdmF0ZWV4dGVuc2lvbl9wLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBhZ2Vwcml2YXRlZXh0ZW5zaW9uX3AuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgcXRv
dWNod2VicGFnZXByaXZhdGVleHRlbnNpb25faAorI2RlZmluZSBxdG91Y2h3ZWJwYWdlcHJpdmF0
ZWV4dGVuc2lvbl9oCisKKyNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCisKKyNpbmNsdWRlIDxR
T2JqZWN0PgorCitjbGFzcyBRVG91Y2hXZWJQYWdlUHJpdmF0ZTsKKworY2xhc3MgUVdFQktJVF9F
WFBPUlQgUVRvdWNoV2ViUGFnZVByaXZhdGVFeHRlbnNpb24gOiBwdWJsaWMgUU9iamVjdCB7Cisg
ICAgUV9PQkpFQ1QKKyAgICBRX1BST1BFUlRZKFFUb3VjaFdlYlBhZ2VQcml2YXRlKiBwcml2YXRl
T2JqZWN0IFJFQUQgdmlld1ByaXZhdGUgQ09OU1RBTlQgRklOQUwpCitwdWJsaWM6CisgICAgUVRv
dWNoV2ViUGFnZVByaXZhdGVFeHRlbnNpb24oUU9iamVjdCAqcGFyZW50ID0gMCk7CisgICAgUVRv
dWNoV2ViUGFnZVByaXZhdGUqIHZpZXdQcml2YXRlKCk7Cit9OworCisjZW5kaWYgLy8gcXRvdWNo
d2VicGFnZXByaXZhdGVleHRlbnNpb25faApJbmRleDogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3
ODc0KQorKysgU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyMCBAQAorMjAxMS0xMC0xOSAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3Bl
bmJvc3NhLm9yZz4KKworICAgICAgICBbUXRdIEFkZCBhIHdheSB0byBoYXZlIGV4cGVyaW1lbnRh
bCBmZWF0dXJlcyBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NzcwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgYWRkaW5nIGEgbmV3IG1vZHVsZSBmb3IgYWNjZXNz
aW5nIHByaXZhdGUKKyAgICAgICAgbWV0aG9kIGFuZCBwcm9wZXJ0eSBmcm9tIHRoZSB2aWV3LiBJ
dCByZXF1aXJlcyBhbiBpbXBvcnQKKyAgICAgICAgUXRXZWJLaXQucHJpdmF0ZSBpbiBRTUwgdG8g
YmUgdXNlZC4KKworICAgICAgICAqIGRlY2xhcmF0aXZlL3ByaXZhdGU6IEFkZGVkLgorICAgICAg
ICAqIGRlY2xhcmF0aXZlL3ByaXZhdGUvcGx1Z2luLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXRRbWxQbHVnaW5Qcml2YXRlOjpyZWdpc3RlclR5cGVzKToKKyAgICAgICAgKiBkZWNsYXJhdGl2
ZS9wcml2YXRlL3ByaXZhdGUucHJvOiBBZGRlZC4KKyAgICAgICAgKiBkZWNsYXJhdGl2ZS9wcml2
YXRlL3FtbGRpcjogQWRkZWQuCisKIDIwMTEtMTAtMTggIFRvciBBcm5lIFZlc3Riw7ggIDx0b3Iu
YXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gTWVyZ2UgUU1MIHBsdWdpbiBm
b3IgV2ViS2l0MiB3aXRoIHRoZSBvcmlnaW5hbCBXZWJLaXQxIHBsdWdpbgpJbmRleDogU291cmNl
L1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wcml2YXRlL3BsdWdpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wcml2YXRlL3BsdWdpbi5jcHAJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3ByaXZhdGUvcGx1Z2luLmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1
ZGUgPFF0RGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZlLmg+CisjaW5jbHVkZSA8UXREZWNsYXJhdGl2
ZS9xZGVjbGFyYXRpdmVleHRlbnNpb25wbHVnaW4uaD4KKworI2lmIGRlZmluZWQoSEFWRV9XRUJL
SVQyKQorI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgInFkZXNrdG9wd2Vidmlldy5oIgor
I2luY2x1ZGUgInFkZXNrdG9wd2Vidmlld19wLmgiCisjaW5jbHVkZSAicWRlc2t0b3B3ZWJ2aWV3
cHJpdmF0ZWV4dGVuc2lvbl9wLmgiCisjaW5jbHVkZSAicXRvdWNod2VicGFnZS5oIgorI2luY2x1
ZGUgInF0b3VjaHdlYnBhZ2VfcC5oIgorI2luY2x1ZGUgInF0b3VjaHdlYnBhZ2Vwcml2YXRlZXh0
ZW5zaW9uX3AuaCIKKyNlbmRpZgorCitRVF9CRUdJTl9OQU1FU1BBQ0UKKworY2xhc3MgV2ViS2l0
UW1sUGx1Z2luUHJpdmF0ZSA6IHB1YmxpYyBRRGVjbGFyYXRpdmVFeHRlbnNpb25QbHVnaW4gewor
ICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVHlwZXMoY29u
c3QgY2hhciogdXJpKQorICAgIHsKKyAgICAgICAgUV9BU1NFUlQoUUxhdGluMVN0cmluZyh1cmkp
ID09IFFMYXRpbjFTdHJpbmcoIlF0V2ViS2l0LnByaXZhdGUiKSk7CisjaWYgZGVmaW5lZChIQVZF
X1dFQktJVDIpCisgICAgICAgIHFtbFJlZ2lzdGVyRXh0ZW5kZWRUeXBlPFFEZXNrdG9wV2ViVmll
dywgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZUV4dGVuc2lvbj4odXJpLCAzLCAwLCAiRGVza3RvcFdl
YlZpZXciKTsKKyAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UURlc2t0b3BXZWJW
aWV3UHJpdmF0ZT4odXJpLCAzLCAwLCAiRGVza3RvcFdlYlZpZXdQcml2YXRlIiwgUU9iamVjdDo6
dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgRGVza3RvcFdlYlZpZXdQcml2
YXRlIikpOworICAgICAgICBxbWxSZWdpc3RlckV4dGVuZGVkVHlwZTxRVG91Y2hXZWJQYWdlLCBR
VG91Y2hXZWJQYWdlUHJpdmF0ZUV4dGVuc2lvbj4odXJpLCAzLCAwLCAiVG91Y2hXZWJQYWdlIik7
CisgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFUb3VjaFdlYlBhZ2VQcml2YXRl
Pih1cmksIDMsIDAsICJUb3VjaFdlYlBhZ2VQcml2YXRlIiwgUU9iamVjdDo6dHIoIkNhbm5vdCBj
cmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgVG91Y2hXZWJQYWdlUHJpdmF0ZSIpKTsKKyNlbmRp
ZgorICAgIH0KK307CisKK1FUX0VORF9OQU1FU1BBQ0UKKworI2luY2x1ZGUgInBsdWdpbi5tb2Mi
CisKK1FfRVhQT1JUX1BMVUdJTjIocW1sd2Via2l0cHJpdmF0ZXBsdWdpbiwgUVRfUFJFUEVORF9O
QU1FU1BBQ0UoV2ViS2l0UW1sUGx1Z2luUHJpdmF0ZSkpOwpJbmRleDogU291cmNlL1dlYktpdC9x
dC9kZWNsYXJhdGl2ZS9wcml2YXRlL3ByaXZhdGUucHJvCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvcXQvZGVjbGFyYXRpdmUvcHJpdmF0ZS9wcml2YXRlLnBybwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcHJpdmF0ZS9wcml2YXRlLnBybwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw2NiBAQAorVEFSR0VUICA9IHFtbHdlYmtpdHByaXZhdGVwbHVnaW4K
K1RBUkdFVFBBVEggPSBRdFdlYktpdC9wcml2YXRlCisKK1RFTVBMQVRFID0gbGliCitDT05GSUcg
Kz0gcXQgcGx1Z2luCisKK3dpbjMyfG1hYzohd2luY2UqOiF3aW4zMi1tc3ZjOiFtYWN4LXhjb2Rl
OkNPTkZJRyArPSBkZWJ1Z19hbmRfcmVsZWFzZQorCitpc0VtcHR5KE9VVFBVVF9ESVIpOiBPVVRQ
VVRfRElSID0gLi4vLi4vLi4KKworUU1MRElSRklMRSA9ICQke19QUk9fRklMRV9QV0RffS9xbWxk
aXIKK2NvcHkyYnVpbGQuaW5wdXQgPSBRTUxESVJGSUxFCitjb3B5MmJ1aWxkLm91dHB1dCA9ICQk
T1VUUFVUX0RJUi9pbXBvcnRzLyQkVEFSR0VUUEFUSC9xbWxkaXIKKyFjb250YWlucyhURU1QTEFU
RV9QUkVGSVgsIHZjKTpjb3B5MmJ1aWxkLnZhcmlhYmxlX291dCA9IFBSRV9UQVJHRVRERVBTCitj
b3B5MmJ1aWxkLmNvbW1hbmRzID0gJCRRTUFLRV9DT1BZICR7UU1BS0VfRklMRV9JTn0gJHtRTUFL
RV9GSUxFX09VVH0KK2NvcHkyYnVpbGQubmFtZSA9IENPUFkgJHtRTUFLRV9GSUxFX0lOfQorY29w
eTJidWlsZC5DT05GSUcgKz0gbm9fbGluaworUU1BS0VfRVhUUkFfQ09NUElMRVJTICs9IGNvcHky
YnVpbGQKKworVEFSR0VUID0gJCRxdExpYnJhcnlUYXJnZXQoJCRUQVJHRVQpCitjb250YWlucyhR
VF9DT05GSUcsIHJlZHVjZV9leHBvcnRzKTpDT05GSUcgKz0gaGlkZV9zeW1ib2xzCisKK3dpbmNl
KjpMSUJTICs9ICQkUU1BS0VfTElCU19HVUkKKworaW5jbHVkZSguLi8uLi8uLi8uLi9XZWJLaXQu
cHJpKQoraW5jbHVkZSguLi8uLi8uLi8uLi9XZWJLaXQyL1dlYktpdDIucHJpKQoraW5jbHVkZSgu
Li8uLi8uLi8uLi9XZWJDb3JlL1dlYkNvcmUucHJpKQoraW5jbHVkZSguLi8uLi8uLi8uLi9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcmkpCisKKworUVQgKz0gZGVjbGFyYXRpdmUKK3F0
NTogUVQgKz0gd2lkZ2V0cworCitjb250YWlucyhRVF9DT05GSUcsIHF0cXVpY2sxKTogeworICAg
IFFUICs9IHF0cXVpY2sxCit9CisKK2xpbnV4LSogeworICAgICMgRnJvbSBDcmVhdG9yJ3Mgc3Jj
L3JwYXRoLnByaToKKyAgICAjIERvIHRoZSBycGF0aCBieSBoYW5kIHNpbmNlIGl0J3Mgbm90IHBv
c3NpYmxlIHRvIHVzZSBPUklHSU4gaW4gUU1BS0VfUlBBVEhESVIKKyAgICAjIHRoaXMgZXhwYW5k
cyB0byAkT1JJR0lOIChhZnRlciBxbWFrZSBhbmQgbWFrZSksIGl0IGRvZXMgTk9UIHJlYWQgYSBx
bWFrZSB2YXIuCisgICAgUU1BS0VfUlBBVEhESVIgPSAkJE9VVFBVVF9ESVIvbGliICQkUU1BS0Vf
UlBBVEhESVIKKyAgICBNWV9SUEFUSCA9ICQkam9pbihRTUFLRV9SUEFUSERJUiwgIjoiKQorCisg
ICAgUU1BS0VfTEZMQUdTICs9IC1XbCwteixvcmlnaW4gXCctV2wsLXJwYXRoLCQke01ZX1JQQVRI
fVwnCisgICAgUU1BS0VfUlBBVEhESVIgPQorfSBlbHNlIHsKKyAgICBRTUFLRV9SUEFUSERJUiA9
ICQkT1VUUFVUX0RJUi9saWIgJCRRTUFLRV9SUEFUSERJUgorfQorCitTT1VSQ0VTICs9IHBsdWdp
bi5jcHAKKword2Via2l0MjogeworICAgIERFRklORVMgKz0gSEFWRV9XRUJLSVQyCisgICAgSU5D
TFVERVBBVEggKz0gLi4vLi4vLi4vLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0Cit9CisKK0RF
U1RESVIgPSAkJE9VVFBVVF9ESVIvaW1wb3J0cy8kJFRBUkdFVFBBVEgKKwordGFyZ2V0LnBhdGgg
PSAkJFtRVF9JTlNUQUxMX0lNUE9SVFNdLyQkVEFSR0VUUEFUSAorCisKK3FtbGRpci5maWxlcyAr
PSAkJFBXRC9xbWxkaXIKK3FtbGRpci5wYXRoICs9ICAkJFtRVF9JTlNUQUxMX0lNUE9SVFNdLyQk
VEFSR0VUUEFUSAorCitJTlNUQUxMUyArPSB0YXJnZXQgcW1sZGlyCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L3F0L2RlY2xhcmF0aXZlL3ByaXZhdGUvcW1sZGlyCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvcXQvZGVjbGFyYXRpdmUvcHJpdmF0ZS9xbWxkaXIJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3ByaXZhdGUvcW1sZGlyCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxIEBACitwbHVnaW4gcW1sd2Via2l0cHJpdmF0ZXBsdWdpbgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114568</attachid>
            <date>2011-11-10 14:11:54 -0800</date>
            <delta_ts>2011-11-11 04:36:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67707-20111110191145.patch</filename>
            <type>text/plain</type>
            <size>13899</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk4NzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMTkyOTc3NzNjNjNl
Y2RjNTM2NDA3ZGQxMjljNGQxMGEzZDQ0OGM5NS4uZjhmODcyM2VkZmY3ZWNiNDBlMmJmNzViY2Yw
MDAwMmUyNzkxM2FjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMSBAQAogMjAxMS0xMS0x
MCAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAorICAgICAg
ICBbUXRdIEFkZCBhIHdheSB0byBoYXZlIGV4cGVyaW1lbnRhbCBmZWF0dXJlcyBpbiBXZWJLaXQy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzcwNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaXMgYWRkaW5nIGEgbmV3IG1vZHVsZSBmb3IgYWNjZXNzaW5nIHByaXZhdGUKKyAgICAgICAg
bWV0aG9kIGFuZCBwcm9wZXJ0eSBmcm9tIHRoZSB2aWV3LiBJdCByZXF1aXJlcyBhbiBpbXBvcnQK
KyAgICAgICAgUXRXZWJLaXQucHJpdmF0ZSBpbiBRTUwgdG8gYmUgdXNlZC4KKworICAgICAgICAq
IGRlY2xhcmF0aXZlL3ByaXZhdGUvcGx1Z2luLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXRR
bWxQbHVnaW5Qcml2YXRlOjpyZWdpc3RlclR5cGVzKToKKyAgICAgICAgKiBkZWNsYXJhdGl2ZS9w
cml2YXRlL3ByaXZhdGUucHJvOiBBZGRlZC4KKyAgICAgICAgKiBkZWNsYXJhdGl2ZS9wcml2YXRl
L3FtbGRpcjogQWRkZWQuCisKKzIwMTEtMTEtMTAgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVu
YXJkQG9wZW5ib3NzYS5vcmc+CisKICAgICAgICAgW1F0XSBNZXJnZSBRVG91Y2hXZWJWaWV3IGFu
ZCBRRGVza3RvcFdlYlZpZXcgaW50byBvbmUgY2xhc3MKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzU1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1ZWZiY2IwNDY1
MTAzN2NiYzQyNDQxYzlmODUwNThmZWZlZTk2MmU2Li43ZTE0OWNkMjExNjY2NGQyZTg4NTNlM2Yz
OWRhNTJkNzU0ZmM0YTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMTEtMTAg
IEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAg
W1F0XSBBZGQgYSB3YXkgdG8gaGF2ZSBleHBlcmltZW50YWwgZmVhdHVyZXMgaW4gV2ViS2l0Mgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3MDcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IFFN
TCBleHRlbnNpb25zIGZvciBvdXIgcHVibGljIHZpZXcuIFRoaXMgZXh0ZW5zaW9uCisgICAgICAg
IHJldHVybnMgdGhlIHByaXZhdGUgb2JqZWN0IG9mIHRoZSB2aWV3IHNvIHRoYXQgdGhlIHVzZXIg
Y291bGQKKyAgICAgICAgdXNlIHVuc3RhYmxlL3VucmVsZWFzZWQgQVBJcy4gVGhpcyByZXF1aXJl
cyBvdXIgcHJpdmF0ZSBjbGFzcworICAgICAgICB0byBiZSBleHBvcnRlZCBhbmQgUU9iamVjdCBz
dWJjbGFzcy4KKworICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld3By
aXZhdGVleHRlbnNpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRl
RXh0ZW5zaW9uOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZUV4dGVuc2lvbik6CisgICAgICAgIChRUXVp
Y2tXZWJWaWV3UHJpdmF0ZUV4dGVuc2lvbjo6dmlld1ByaXZhdGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld3ByaXZhdGVleHRlbnNpb25fcC5oOiBBZGRlZC4KKwog
MjAxMS0xMS0xMCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gW1dlYktpdDJdIEZpeCByZW1haW5pbmcgZ3RrZG9jIGVycm9ycwpkaWZmIC0t
Z2l0IGEvU291cmNlL1F0V2ViS2l0LnBybyBiL1NvdXJjZS9RdFdlYktpdC5wcm8KaW5kZXggY2Yx
Mjc4NTlhNzg4MmViNTQ0ODUwMzUyMTQ2NDM3NTEwMjE5OGFkNy4uNzEwY2ZkM2FkNjgyYmRlZmIx
OTU2YjZiMzkzY2NiZjQxMTQwMTg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1F0V2ViS2l0LnBybwor
KysgYi9Tb3VyY2UvUXRXZWJLaXQucHJvCkBAIC0xOCw2ICsxOCw5IEBAIFNVQkRJUlMgKz0gYXBp
CiBpbmNsdWRlKFdlYktpdC9xdC9kb2NzL2RvY3MucHJpKQogCiBTVUJESVJTICs9IFdlYktpdC9x
dC9kZWNsYXJhdGl2ZQoraGF2ZVF0KDUpIHsKKyAgICBTVUJESVJTICs9IFdlYktpdC9xdC9kZWNs
YXJhdGl2ZS9wcml2YXRlCit9CiAKIHRlc3RzLmZpbGUgPSB0ZXN0cy5wcmkKIFNVQkRJUlMgKz0g
dGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcHJpdmF0ZS9w
bHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wcml2YXRlL3BsdWdpbi5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmIxMTM0NDkxNjQwMjZlYTA3MjM1YTgxNTMwNjU2NThkZmU0YjFmZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcHJpdmF0ZS9w
bHVnaW4uY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAg
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2luY2x1ZGUgInFxdWlja3dlYnBhZ2UuaCIKKyNpbmNsdWRlICJxcXVp
Y2t3ZWJ2aWV3LmgiCisjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCisjaW5jbHVkZSAicXF1
aWNrd2Vidmlld3ByaXZhdGVleHRlbnNpb25fcC5oIgorCisjaW5jbHVkZSA8UXREZWNsYXJhdGl2
ZS9xZGVjbGFyYXRpdmUuaD4KKyNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZWV4
dGVuc2lvbnBsdWdpbi5oPgorCitRVF9CRUdJTl9OQU1FU1BBQ0UKKworY2xhc3MgV2ViS2l0UW1s
UGx1Z2luUHJpdmF0ZSA6IHB1YmxpYyBRRGVjbGFyYXRpdmVFeHRlbnNpb25QbHVnaW4geworICAg
IFFfT0JKRUNUCitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVHlwZXMoY29uc3Qg
Y2hhciogdXJpKQorICAgIHsKKyAgICAgICAgUV9BU1NFUlQoUUxhdGluMVN0cmluZyh1cmkpID09
IFFMYXRpbjFTdHJpbmcoIlF0V2ViS2l0LnByaXZhdGUiKSk7CisgICAgICAgIHFtbFJlZ2lzdGVy
RXh0ZW5kZWRUeXBlPFFRdWlja1dlYlZpZXcsIFFRdWlja1dlYlZpZXdQcml2YXRlRXh0ZW5zaW9u
Pih1cmksIDMsIDAsICJXZWJWaWV3Iik7CisgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVU
eXBlPFFRdWlja1dlYlZpZXdQcml2YXRlPih1cmksIDMsIDAsICJXZWJWaWV3UHJpdmF0ZSIsIFFP
YmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFdlYlZpZXdQcml2
YXRlIikpOworICAgIH0KK307CisKK1FUX0VORF9OQU1FU1BBQ0UKKworI2luY2x1ZGUgInBsdWdp
bi5tb2MiCisKK1FfRVhQT1JUX1BMVUdJTjIocW1sd2Via2l0cGx1Z2lucHJpdmF0ZSwgUVRfUFJF
UEVORF9OQU1FU1BBQ0UoV2ViS2l0UW1sUGx1Z2luUHJpdmF0ZSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wcml2YXRlL3ByaXZhdGUucHJvIGIvU291cmNlL1dl
YktpdC9xdC9kZWNsYXJhdGl2ZS9wcml2YXRlL3ByaXZhdGUucHJvCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4NmI3
M2I4N2Y4MjFmMGFhNzQxMWJkYzA3MTIxYzhmNDk5YmI2ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3ByaXZhdGUvcHJpdmF0ZS5wcm8KQEAgLTAsMCAr
MSw1NCBAQAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFByb2plY3QgZmlsZSBmb3IgdGhlIFF0V2ViS2l0IFFN
TCBwcml2YXRlIHBsdWdpbgorIworIyBTZWUgJ1Rvb2xzL3FtYWtlL1JFQURNRScgZm9yIGFuIG92
ZXJ2aWV3IG9mIHRoZSBidWlsZCBzeXN0ZW0KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitURU1QTEFURSA9IGxp
YgorVEFSR0VUICA9IHFtbHdlYmtpdHByaXZhdGVwbHVnaW4KKworVEFSR0VULm1vZHVsZV9uYW1l
ID0gUXRXZWJLaXQvcHJpdmF0ZQorCitDT05GSUcgKz0gcXQgcGx1Z2luCisKK3dpbjMyfG1hYzoh
d2luY2UqOiF3aW4zMi1tc3ZjOiFtYWN4LXhjb2RlOkNPTkZJRyArPSBkZWJ1Z19hbmRfcmVsZWFz
ZQorCitRTUxESVJGSUxFID0gJCR7X1BST19GSUxFX1BXRF99L3FtbGRpcgorY29weTJidWlsZC5p
bnB1dCA9IFFNTERJUkZJTEUKK2NvcHkyYnVpbGQub3V0cHV0ID0gJCR7Uk9PVF9CVUlMRF9ESVJ9
L2ltcG9ydHMvJCR7VEFSR0VULm1vZHVsZV9uYW1lfS9xbWxkaXIKKyFjb250YWlucyhURU1QTEFU
RV9QUkVGSVgsIHZjKTpjb3B5MmJ1aWxkLnZhcmlhYmxlX291dCA9IFBSRV9UQVJHRVRERVBTCitj
b3B5MmJ1aWxkLmNvbW1hbmRzID0gJCRRTUFLRV9DT1BZICR7UU1BS0VfRklMRV9JTn0gJHtRTUFL
RV9GSUxFX09VVH0KK2NvcHkyYnVpbGQubmFtZSA9IENPUFkgJHtRTUFLRV9GSUxFX0lOfQorY29w
eTJidWlsZC5DT05GSUcgKz0gbm9fbGluaworUU1BS0VfRVhUUkFfQ09NUElMRVJTICs9IGNvcHky
YnVpbGQKKworVEFSR0VUID0gJCRxdExpYnJhcnlUYXJnZXQoJCRUQVJHRVQpCitjb250YWlucyhR
VF9DT05GSUcsIHJlZHVjZV9leHBvcnRzKTpDT05GSUcgKz0gaGlkZV9zeW1ib2xzCisKK3dpbmNl
KjpMSUJTICs9ICQkUU1BS0VfTElCU19HVUkKKworbG9hZChqYXZhc2NyaXB0Y29yZSkKK2xvYWQo
d2ViY29yZSkKK2xvYWQod2Via2l0MikKK0NPTkZJRyArPSBxdHdlYmtpdAorCitRVCArPSBkZWNs
YXJhdGl2ZSB3aWRnZXRzIG5ldHdvcmsKKworREVTVERJUiA9ICQke1JPT1RfQlVJTERfRElSfS9p
bXBvcnRzLyQke1RBUkdFVC5tb2R1bGVfbmFtZX0KKworQ09ORklHICs9IHJwYXRoCitSUEFUSERJ
Ul9SRUxBVElWRV9UT19ERVNURElSID0gLi4vLi4vbGliCisKK1NPVVJDRVMgKz0gcGx1Z2luLmNw
cAorCitERUZJTkVTICs9IEhBVkVfV0VCS0lUMgorSU5DTFVERVBBVEggKz0gLi4vLi4vLi4vLi4v
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0CisKK3RhcmdldC5wYXRoID0gJCRbUVRfSU5TVEFMTF9J
TVBPUlRTXS8kJHtUQVJHRVQubW9kdWxlX25hbWV9CisKKworcW1sZGlyLmZpbGVzICs9ICQkUFdE
L3FtbGRpcgorcW1sZGlyLnBhdGggKz0gICQkW1FUX0lOU1RBTExfSU1QT1JUU10vJCR7VEFSR0VU
Lm1vZHVsZV9uYW1lfQorCitJTlNUQUxMUyArPSB0YXJnZXQgcW1sZGlyCisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcHJpdmF0ZS9xbWxkaXIgYi9Tb3VyY2UvV2Vi
S2l0L3F0L2RlY2xhcmF0aXZlL3ByaXZhdGUvcW1sZGlyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkYzhiMGVkMDYx
MDM0ZGY4OGUzMmRmNGE0MDNhNWU2YzM3M2M4MjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L2RlY2xhcmF0aXZlL3ByaXZhdGUvcW1sZGlyCkBAIC0wLDAgKzEgQEAKK3BsdWdp
biBxbWx3ZWJraXRwcml2YXRlcGx1Z2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJn
ZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCA5YTdjYzQxZmE3ZDEzOWVj
MDFiYjk4Njc3NzljMTE5ZThjMmMyZTZlLi41MDc4MWFiMzhmNmQyMDBkZjQ5YjAwMGMzMTVlOTUw
OTFhMTdmNzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTI0Nyw2ICsyNDcsNyBAQCBIRUFERVJTICs9IFwK
ICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcC5oIFwKICAgICBVSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXcuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3X3AuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3cHJpdmF0ZWV4dGVu
c2lvbl9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25jb250cm9sbGVy
LmggXAogICAgIFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXIuaCBcCkBAIC01NDYsNiArNTQ3LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
VUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJwYWdlLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3LmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3cHJpdmF0ZWV4dGVu
c2lvbi5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25jb250cm9sbGVy
LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwIFwKICAgICBV
SVByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5j
cHAKaW5kZXggZWMyOTdmMTQzMjA1M2FhNmFiYTgyOGYwYzJlMjIwMjU1NTM4Y2ZmNy4uYTJjZTA5
OGJkMzRiMWEyYjdmYTdkZThhMDgxMzBkNWFhZDExMjVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC00NTQsMyArNDU0LDQg
QEAgV0tQYWdlUmVmIFFRdWlja1dlYlZpZXc6OnBhZ2VSZWYoKSBjb25zdAogfQogCiAjaW5jbHVk
ZSAibW9jX3FxdWlja3dlYnZpZXcuY3BwIgorI2luY2x1ZGUgIm1vY19xcXVpY2t3ZWJ2aWV3X3Au
Y3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
d19wLmgKaW5kZXggZGVmYjM2YTAwNGQ5YjQwMWIzMGJkODViZjdjMTk4NzAwNmY3YjQ3Mi4uYTMz
ZmM2ODkyZDJmMWFlYzQ0MjA5OGU4ZTgyYjY0NDMwMTFhZTVlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3LmgiCiAKKyNpbmNsdWRlIDxRdENvcmUvUU9i
amVjdD4KICNpbmNsdWRlIDxRdENvcmUvUVNjb3BlZFBvaW50ZXI+CiAKIGNsYXNzIFFXZWJOYXZp
Z2F0aW9uQ29udHJvbGxlcjsKQEAgLTM3LDcgKzM4LDggQEAgUVRfQkVHSU5fTkFNRVNQQUNFCiBj
bGFzcyBRRmlsZURpYWxvZzsKIFFUX0VORF9OQU1FU1BBQ0UKIAotY2xhc3MgUVdFQktJVF9FWFBP
UlQgUVF1aWNrV2ViVmlld1ByaXZhdGUgOiBwdWJsaWMgV2ViS2l0OjpRdFBvbGljeUludGVyZmFj
ZSB7CitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJWaWV3UHJpdmF0ZSA6IHB1YmxpYyBR
T2JqZWN0LCBwdWJsaWMgV2ViS2l0OjpRdFBvbGljeUludGVyZmFjZSB7CisgICAgUV9PQkpFQ1QK
ICAgICBRX0RFQ0xBUkVfUFVCTElDKFFRdWlja1dlYlZpZXcpCiBwdWJsaWM6CiAgICAgUVF1aWNr
V2ViVmlld1ByaXZhdGUoKTsKQEAgLTU0LDcgKzU2LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2Ny
b2xsUG9zaXRpb25SZXF1ZXN0ZWQoY29uc3QgUVBvaW50JiBwb3MpOwogICAgIHZvaWQgdXBkYXRl
Vmlld3BvcnRTaXplKCk7CiAgICAgdm9pZCB1cGRhdGVWaWV3cG9ydENvbnN0cmFpbnRzKCk7Ci0g
ICAgdm9pZCBzZXRVc2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXIoYm9vbCBlbmFibGUpOwog
CiAgICAgc3RhdGljIFFRdWlja1dlYlZpZXdQcml2YXRlKiBnZXQoUVF1aWNrV2ViVmlldyogdmll
dykKICAgICB7CkBAIC03Niw2ICs3NywxMCBAQCBwdWJsaWM6CiAgICAgUVN0cmluZyBydW5KYXZh
U2NyaXB0UHJvbXB0KGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nJiBkZWZhdWx0VmFsdWUs
IGJvb2wmIG9rKTsKICAgICB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBX
ZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYgYXJncyk7CiAKK3B1YmxpYyBzbG90czoKKyAgICB2
b2lkIHNldFVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cihib29sIGVuYWJsZSk7CisKK3By
aXZhdGU6CiAgICAgUVNjb3BlZFBvaW50ZXI8UVF1aWNrV2ViUGFnZT4gcGFnZVZpZXc7CiAgICAg
UVNjb3BlZFBvaW50ZXI8V2ViS2l0OjpRdFZpZXdJbnRlcmZhY2U+IHZpZXdJbnRlcmZhY2U7CiAg
ICAgUVNjb3BlZFBvaW50ZXI8UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lPiBpbnRlcmFjdGlv
bkVuZ2luZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlld3ByaXZhdGVleHRlbnNpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJ2aWV3cHJpdmF0ZWV4dGVuc2lvbi5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Fj
NDM5NTQ5MTRiODI1MjFmYTg5MjUwNTY1ZjUxOGY3NTFiOGUxMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld3ByaXZhdGVleHRl
bnNpb24uY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAicXF1aWNrd2Vidmlld3ByaXZhdGVleHRlbnNpb25fcC5oIgor
CisjaW5jbHVkZSAicXF1aWNrd2VicGFnZS5oIgorI2luY2x1ZGUgInFxdWlja3dlYnZpZXcuaCIK
KyNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKKworUVF1aWNrV2ViVmlld1ByaXZhdGVFeHRl
bnNpb246OlFRdWlja1dlYlZpZXdQcml2YXRlRXh0ZW5zaW9uKFFPYmplY3QqIHBhcmVudCkKKyAg
ICA6IFFPYmplY3QocGFyZW50KQoreworfQorCitRUXVpY2tXZWJWaWV3UHJpdmF0ZSogUVF1aWNr
V2ViVmlld1ByaXZhdGVFeHRlbnNpb246OnZpZXdQcml2YXRlKCkKK3sKKyAgICByZXR1cm4gUVF1
aWNrV2ViVmlld1ByaXZhdGU6OmdldChzdGF0aWNfY2FzdDxRUXVpY2tXZWJWaWV3Kj4ocGFyZW50
KCkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlld3ByaXZhdGVleHRlbnNpb25fcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJ2aWV3cHJpdmF0ZWV4dGVuc2lvbl9wLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA2
NjU1MjE2NTY3Mzc1MzViN2FjNmUzMDhkOWY4MWMxM2ExNGRlZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld3ByaXZhdGVleHRl
bnNpb25fcC5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIHFx
dWlja3dlYnZpZXdwcml2YXRlZXh0ZW5zaW9uX3BfaAorI2RlZmluZSBxcXVpY2t3ZWJ2aWV3cHJp
dmF0ZWV4dGVuc2lvbl9wX2gKKworI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKKworI2luY2x1
ZGUgPFFPYmplY3Q+CisKK2NsYXNzIFFRdWlja1dlYlZpZXdQcml2YXRlOworCitjbGFzcyBRV0VC
S0lUX0VYUE9SVCBRUXVpY2tXZWJWaWV3UHJpdmF0ZUV4dGVuc2lvbiA6IHB1YmxpYyBRT2JqZWN0
IHsKKyAgICBRX09CSkVDVAorICAgIFFfUFJPUEVSVFkoUVF1aWNrV2ViVmlld1ByaXZhdGUqIHBy
aXZhdGVPYmplY3QgUkVBRCB2aWV3UHJpdmF0ZSBDT05TVEFOVCBGSU5BTCkKK3B1YmxpYzoKKyAg
ICBRUXVpY2tXZWJWaWV3UHJpdmF0ZUV4dGVuc2lvbihRT2JqZWN0ICpwYXJlbnQgPSAwKTsKKyAg
ICBRUXVpY2tXZWJWaWV3UHJpdmF0ZSogdmlld1ByaXZhdGUoKTsKK307CisKKyNlbmRpZiAvLyBx
cXVpY2t3ZWJ2aWV3cHJpdmF0ZWV4dGVuc2lvbl9wX2gKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBi
L0NoYW5nZUxvZwppbmRleCAxZTQ5ZmVlNDA0OGMyNTZjZWYwMDYyN2IyNDc0ZTg4OGFhM2Y0OWVi
Li4yYmE4Zjk2YzRkNDZiNWZjNWIzMjYyODYyOWQ4MjFhMTAyY2I3YTc3IDEwMDY0NAotLS0gYS9D
aGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTEtMTAgIEFs
ZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0
XSBBZGQgYSB3YXkgdG8gaGF2ZSBleHBlcmltZW50YWwgZmVhdHVyZXMgaW4gV2ViS2l0MgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3MDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIG5ldyBw
cml2YXRlIFFNTCBtb2R1bGUgaW4gdGhlIGJ1aWxkLgorCisgICAgICAgICogU291cmNlL1F0V2Vi
S2l0LnBybzoKKwogMjAxMS0xMS0xMCAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBu
b2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBDbGVhbiB1cCBidWlsZCBzeXN0ZW0K
</data>
<flag name="review"
          id="113255"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
      

    </bug>

</bugzilla>