<?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>59200</bug_id>
          
          <creation_ts>2011-04-22 07:29:06 -0700</creation_ts>
          <short_desc>[Qt][WK2] Implement permission API for Qt port</short_desc>
          <delta_ts>2011-11-30 00:41:44 -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>WebKit2</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>55872</blocked>
    
    <blocked>73215</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mahesh Kulkarni">maheshk</reporter>
          <assigned_to name="Mahesh Kulkarni">maheshk</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>menard</cc>
    
    <cc>ossy</cc>
    
    <cc>savagobr</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yael</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>390771</commentid>
    <comment_count>0</comment_count>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-04-22 07:29:06 -0700</bug_when>
    <thetext>Implement common permission between UIProcess-WebProcess. Also implement Geolocation permission.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397859</commentid>
    <comment_count>1</comment_count>
      <attachid>92226</attachid>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-05-04 06:07:10 -0700</bug_when>
    <thetext>Created attachment 92226
patch

Original Author: kenneth.r.christiansen@nokia.com

Implements permission API for QtWebKit WK2 and hooked up with MiniBrowser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397862</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-04 06:08:38 -0700</bug_when>
    <thetext>Attachment 92226 did not pass style-queue:

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

Source/WebKit2/UIProcess/API/qt/qwkpermissionrequest.cpp:21:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
Total errors found: 1 in 18 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>397870</commentid>
    <comment_count>3</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-05-04 06:16:28 -0700</bug_when>
    <thetext>Attachment 92226 did not build on qt:
Build output: http://queues.webkit.org/results/8553498</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397882</commentid>
    <comment_count>4</comment_count>
      <attachid>92232</attachid>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-05-04 06:44:17 -0700</bug_when>
    <thetext>Created attachment 92232
patch

fixed trivial style issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397885</commentid>
    <comment_count>5</comment_count>
      <attachid>92232</attachid>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-05-04 06:46:43 -0700</bug_when>
    <thetext>Comment on attachment 92232
patch

My bad. Some unwanted stuff in this patch. Clearing flag for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397892</commentid>
    <comment_count>6</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-05-04 06:52:53 -0700</bug_when>
    <thetext>Attachment 92232 did not build on qt:
Build output: http://queues.webkit.org/results/8556531</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397903</commentid>
    <comment_count>7</comment_count>
      <attachid>92235</attachid>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-05-04 07:04:47 -0700</bug_when>
    <thetext>Created attachment 92235
patch

Cleaned up the mess from previous patch. Please review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397906</commentid>
    <comment_count>8</comment_count>
      <attachid>92235</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-05-04 07:11:27 -0700</bug_when>
    <thetext>Comment on attachment 92235
patch

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

&gt; Tools/MiniBrowser/qt/BrowserWindow.cpp:399
&gt; +void BrowserWindow::permissionRequested(QWKPermissionRequest&amp; request)
&gt; +{
&gt; +    request.setAccepted(true);
&gt; +}

We probably want some UI for this later

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Original Author: kenneth.r.christiansen@nokia.com

Please use kenneth@webkit.org that is what I most commonly use.

&gt; Source/WebKit2/UIProcess/API/qt/qwkpermissionrequest_p.h:43
&gt; +    }
&gt; +    ~QWKPermissionRequestPrivate()

newline needed here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398148</commentid>
    <comment_count>9</comment_count>
      <attachid>92235</attachid>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-05-04 12:04:59 -0700</bug_when>
    <thetext>Comment on attachment 92235
patch

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

Disclaimer: I am not a reviewer

&gt; Tools/MiniBrowser/qt/MiniBrowser.pro:51
&gt; +    TARGET.CAPABILITY = ReadUserData WriteUserData NetworkServices Location

Please remove this change as it&apos;s being modified via Bug 59462

&gt; Source/WebKit2/UIProcess/API/qt/qwksecurityorigin.cpp:3
&gt; +

Please change copyright year to 2011 in all files

&gt; Source/WebKit2/UIProcess/API/qt/qwksecurityorigin.cpp:31
&gt; +

: d(priv)

&gt; Source/WebKit2/UIProcess/API/qt/qwksecurityorigin.h:43
&gt; +};

Why use a QExplicitlySharedDataPointer ? Would a QScopedPointer not be sufficient here, assuming of course that a QWKSecurityOriginPrivate is owned by a QWKSecurityOrigin?

&gt; Source/WebKit2/UIProcess/API/qt/qwkpermissionrequest_p.h:50
&gt; +    WKRetainPtr&lt;WKGeolocationPermissionRequestRef&gt; m_request;

I need to read up on my smart pointers :)

&gt; Source/WebKit2/UIProcess/API/qt/qwkpermissionrequest.cpp:29
&gt; +    d = priv;

: d(priv)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398231</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-05-04 13:58:16 -0700</bug_when>
    <thetext>
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qwkpermissionrequest_p.h:50
&gt; &gt; +    WKRetainPtr&lt;WKGeolocationPermissionRequestRef&gt; m_request;
&gt; 
&gt; I need to read up on my smart pointers :)

Nothing special about that one. The WK2 C structs needs a call to &quot;retain&quot; and when not needed anymore a call to &quot;release&quot;. The WKRetainPtr takes care of that. When it goes out of scope it calls release. In that way it is quite similar to an auto pointer or a scoped pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416472</commentid>
    <comment_count>11</comment_count>
      <attachid>92235</attachid>
    <who name="Yael">yael</who>
    <bug_when>2011-06-07 06:48:48 -0700</bug_when>
    <thetext>Comment on attachment 92235
patch

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

This is an unofficial review as I am not a reviewer.

&gt; Source/WebKit2/UIProcess/API/qt/ClientImpl.cpp:189
&gt; +void qt_wk_decidePolicyForGeolocationPermissionRequest(WKPageRef page, WKFrameRef frame, WKSecurityOriginRef origin, WKGeolocationPermissionRequestRef request, const void* clientInfo)
&gt; +{
&gt; +    QWKPermissionRequest req = QWKPermissionRequestPrivate::create(origin, request);
&gt; +    emit toQWKPage(clientInfo)-&gt;permissionRequested(req);

This is going to be pretty ugly if the client application wants to display asynchronous UI.

&gt; Source/WebKit2/UIProcess/API/qt/qwkpermissionrequest.h:11
&gt; +class QWEBKIT_EXPORT QWKPermissionRequest {

The only purpose of this class is to wrap the origin and type of the request.
You are adding a lot of code just for that, and it makes the client side more complicated if they wish to have an asynchronous UI.
Do we really want that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436411</commentid>
    <comment_count>12</comment_count>
      <attachid>92235</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-07-13 07:01:19 -0700</bug_when>
    <thetext>Comment on attachment 92235
patch

r- as this won&apos;t merge after view refactoring. Also Yael had some good questions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441045</commentid>
    <comment_count>13</comment_count>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-07-22 11:25:17 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 92235 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=92235&amp;action=review
&gt; 
&gt; This is an unofficial review as I am not a reviewer.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/ClientImpl.cpp:189
&gt; &gt; +void qt_wk_decidePolicyForGeolocationPermissionRequest(WKPageRef page, WKFrameRef frame, WKSecurityOriginRef origin, WKGeolocationPermissionRequestRef request, const void* clientInfo)
&gt; &gt; +{
&gt; &gt; +    QWKPermissionRequest req = QWKPermissionRequestPrivate::create(origin, request);
&gt; &gt; +    emit toQWKPage(clientInfo)-&gt;permissionRequested(req);
&gt; 
&gt; This is going to be pretty ugly if the client application wants to display asynchronous UI.
&gt; 

Actually it is  already async. Client app has to just store QWKPermissionRequest instance and call setAccepted() when it obtains the permission. WebCore::GeolocationController waits for the permission and queues all the requests. 

&gt; &gt; Source/WebKit2/UIProcess/API/qt/qwkpermissionrequest.h:11
&gt; &gt; +class QWEBKIT_EXPORT QWKPermissionRequest {
&gt; 
&gt; The only purpose of this class is to wrap the origin and type of the request.
&gt; You are adding a lot of code just for that, and it makes the client side more complicated if they wish to have an asynchronous UI.
&gt; Do we really want that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486937</commentid>
    <comment_count>14</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-10-19 13:07:00 -0700</bug_when>
    <thetext>An update in this bug. I got most of the original patch to apply in current code, ATM studying the differences between the QWKPage X QTouchWebPage to finish it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486989</commentid>
    <comment_count>15</comment_count>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-10-19 14:05:24 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; An update in this bug. I got most of the original patch to apply in current code, ATM studying the differences between the QWKPage X QTouchWebPage to finish it.

Again this piece of implementation is is already in http://gitorious.org/+mob-team/webkit/mob-team-qtwebkit2 branch with new qtouchwebview code which I was planning to upstream eventually, if you are want to upstream the code asap you may wanna refer the code from branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487215</commentid>
    <comment_count>16</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-10-19 18:57:21 -0700</bug_when>
    <thetext>Mahesh

That is pretty cool, I will have a look on it.

Cheers


Adenilson</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493450</commentid>
    <comment_count>17</comment_count>
      <attachid>113073</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-10-31 13:01:34 -0700</bug_when>
    <thetext>Created attachment 113073
Implements geopermission api in Qt webkit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493797</commentid>
    <comment_count>18</comment_count>
      <attachid>113073</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-11-01 01:26:24 -0700</bug_when>
    <thetext>Comment on attachment 113073
Implements geopermission api in Qt webkit2

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

I think Simon had some API ideas, so cc&apos;ing him

&gt; Source/WebKit2/UIProcess/API/qt/qdesktopwebview.cpp:508
&gt; +    // For while set it to true by default.

not good English

&gt; Source/WebKit2/UIProcess/API/qt/qdesktopwebview_p.h:97
&gt;  
&gt; +    virtual void permissionRequested(QWKPermissionRequest&amp;);
&gt; +

Where is the public API? Also an API test would be great, and should be possible to do. It would also show how this API is supposed to be used, which is important to see if this kind of API makes sense.

&gt; Source/WebKit2/UIProcess/qt/QtViewInterface.h:99
&gt; +    virtual void permissionRequested(QWKPermissionRequest&amp;) = 0;

We don&apos;t use WK as naming for our classes anymore

&gt; Source/WebKit2/UIProcess/qt/qwkpermissionrequest.cpp:30
&gt; +{
&gt; +    d = priv;
&gt; +}

Why not use initializer lists?

&gt; Source/WebKit2/UIProcess/qt/qwkpermissionrequest.cpp:43
&gt; +{
&gt; +    d = other.d;

Here as well

&gt; Source/WebKit2/UIProcess/qt/qwkpermissionrequest.cpp:57
&gt; +void QWKPermissionRequest::setAccepted(bool accepted)

So what happens if the page is reloaded before this method is called?

&gt; Source/WebKit2/UIProcess/qt/qwksecurityorigin.cpp:31
&gt; +QWKSecurityOrigin::QWKSecurityOrigin(const QWKSecurityOrigin&amp; other) : d(other.d)

Weird coding style

&gt; Source/WebKit2/UIProcess/qt/qwksecurityorigin.h:33
&gt; +    unsigned short port() const;

Maybe int makes more sense for a Qt API? Simon?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493867</commentid>
    <comment_count>19</comment_count>
      <attachid>113073</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-01 06:16:08 -0700</bug_when>
    <thetext>Comment on attachment 113073
Implements geopermission api in Qt webkit2

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

So.... shouldn&apos;t this be private API only at this point? (i.e. only be accessible using QT += webkit-private?

&gt;&gt; Source/WebKit2/UIProcess/qt/qwksecurityorigin.h:33
&gt;&gt; +    unsigned short port() const;
&gt; 
&gt; Maybe int makes more sense for a Qt API? Simon?

Absolutely, the port should be an integer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494469</commentid>
    <comment_count>20</comment_count>
      <attachid>113282</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-02 00:25:57 -0700</bug_when>
    <thetext>Created attachment 113282
Fixed: initialization list, class/file names.

QAbstractSocket uses quint16 for port and WKSecurityOriginGetPort is a unsigned short.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494470</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-02 00:29:10 -0700</bug_when>
    <thetext>Attachment 113282 did not pass style-queue:

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

Source/WebKit2/UIProcess/qt/qsecurityorigin_p.h:20:  #ifndef header guard has wrong style, please use: qsecurityorigin_p_h  [build/header_guard] [5]
Source/WebKit2/UIProcess/qt/qsecurityorigin_p.h:40:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/qt/qsecurityorigin_p.cpp:22:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
Source/WebKit2/UIProcess/qt/qsecurityorigin_p.cpp:46:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebKit2/UIProcess/qt/qpermissionrequest_p.h:46:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/qt/qpermissionrequest_p.h:46:  The parameter name &quot;request&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 6 in 11 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>494475</commentid>
    <comment_count>22</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-02 00:39:18 -0700</bug_when>
    <thetext>About what happens if the page is reloaded before setAccepted() is called: my guess is that the parent object (Frame?) will be destroyed to avoid clients to popup dialogs unnecessarily  (IIRC, this scenario was thought when the new client based implementation design was devised).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494480</commentid>
    <comment_count>23</comment_count>
      <attachid>113285</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-02 00:47:58 -0700</bug_when>
    <thetext>Created attachment 113285
Fixed: initialization list, class/file names, coding style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494487</commentid>
    <comment_count>24</comment_count>
      <attachid>113285</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-02 01:09:52 -0700</bug_when>
    <thetext>Comment on attachment 113285
Fixed: initialization list, class/file names, coding style

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

Ok, so if this is an intermediate step, what do you envision as the way of dealing with this on the application side?

I&apos;d rather r+ when we have an idea where this is going.

What I&apos;d like to see is an API that can be dealt with on the QML side. Something along the lines of:

WebView {

    onPermissionRequested: {
        if (show a dialog)
            request.accepted = true;
        else
            request.accepted = false;

}

&gt; Source/WebKit2/ChangeLog:-612
&gt; -

Accidental removal of whitespace/newline?

&gt; Source/WebKit2/UIProcess/API/qt/qdesktopwebview.cpp:509
&gt; +    // For while, set it to true.
&gt; +    request.setAccepted(true);

(it&apos;s &quot;For a while&quot; btw :)

&gt; Source/WebKit2/UIProcess/qt/qsecurityorigin_p.cpp:32
&gt; +class QtSecurityOriginPrivate : public QSharedData {
&gt; +public:
&gt; +    WKRetainPtr&lt;WKSecurityOriginRef&gt; m_origin;
&gt; +    QtSecurityOriginPrivate() { };
&gt; +};

So this seems a bit overkill, doesn&apos;t it? We have a shared pointer to a data structure that contains another shared pointer :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498969</commentid>
    <comment_count>25</comment_count>
      <attachid>114282</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-09 08:05:52 -0800</bug_when>
    <thetext>Created attachment 114282
Fixed shared pointer, changelog, comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498970</commentid>
    <comment_count>26</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-09 08:08:50 -0800</bug_when>
    <thetext>Concerning the API for QML side, you are right, the idea is to let the user the option to display an authorization dialog and enable (or not) the retrieval of geolocation info.

Should I expose the QtPermissionRequest class now? Or maybe create a new issue for discussion of the QML API?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499207</commentid>
    <comment_count>27</comment_count>
      <attachid>114282</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-09 11:46:59 -0800</bug_when>
    <thetext>Comment on attachment 114282
Fixed shared pointer, changelog, comment

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

This is an improvement, but I think before we can land this the refcounting needs to be fixed as well as the setAccept(true) being replaced by an actual private C++ API.

Idea: Even if you add a signal to the class that is exposed in QML, then the signal cannot be used unless all of the argument types are available in QML. If we choose not to export them, then the signal
is only available to &quot;users&quot; who use QT += webkit-private and access the C++ types.

&gt; Source/WebKit2/UIProcess/API/qt/qdesktopwebview.cpp:503
&gt; +    // For a while, set it to true.
&gt; +    request.setAccepted(true);

I don&apos;t think we should land it like that. I&apos;d prefer to land a patch that provides a private C++ API (or alternatively a private QML one) in one shot.

&gt; Source/WebKit2/UIProcess/qt/qsecurityorigin_p.cpp:32
&gt; +class QtSecurityOriginPrivate : public QSharedData {
&gt; +public:
&gt; +    WKSecurityOriginRef m_origin;
&gt; +    QtSecurityOriginPrivate() { };
&gt; +};

My criticism from earlier remains: QtSecurityOrigin keeps a shared pointer to a WKSecurityOriginRef, which itself is a shared pointer.

On top of that WK*Ref types are not value based. They are reference counted and either need to be &quot;refcounted&quot; using WKRetain and WKRelease
or you need to use a WKRetainPtr.

I suggest to replace the QtSecurityOriginPrivate with a WKSecurityOriginRef and call Retain/Release accordingly from the constructore, copy constructor, assignment operator and destructor. This means that you can use the opaque forward declaration of WKSecurityOrigin in the _p.h &quot;semit public&quot; header file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500051</commentid>
    <comment_count>28</comment_count>
      <attachid>114527</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-10 10:58:34 -0800</bug_when>
    <thetext>Created attachment 114527
Solved shared pointer issue (hopefully!), file naming, no longer setting permission to true</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500053</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-10 11:01:31 -0800</bug_when>
    <thetext>Attachment 114527 did not pass style-queue:

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

Source/WebKit2/UIProcess/qt/qsecurityorigin.cpp:24:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 9 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>500192</commentid>
    <comment_count>30</comment_count>
      <attachid>114527</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-11-10 13:10:40 -0800</bug_when>
    <thetext>Comment on attachment 114527
Solved shared pointer issue (hopefully!), file naming, no longer setting permission to true

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

&gt; Source/WebKit2/UIProcess/qt/QtViewInterface.cpp:248
&gt; +void QtViewInterface::permissionRequested(QtPermissionRequest&amp; request)
&gt; +{
&gt; +    // Here it should call QtPermissionRequest::setAccepted().
&gt; +}

That comment doesnt make sense to me, the use can accept it at anytime (while still being valid). It is an explicitly shared data pointer

&gt; Source/WebKit2/UIProcess/qt/qpermissionrequest.cpp:44
&gt; +    QtSecurityOrigin m_origin;
&gt; +    QtPermissionRequest::Type m_type;
&gt; +
&gt; +    WKRetainPtr&lt;WKGeolocationPermissionRequestRef&gt; m_request;

we don&apos;t use m_ in privates are everything is publically accessible

&gt; Source/WebKit2/UIProcess/qt/qpermissionrequest.cpp:55
&gt; +QtPermissionRequest::QtPermissionRequest(QtPermissionRequestPrivate* priv)
&gt; +    : d(priv)
&gt; +{
&gt; +}

This would not be ok if this is to become public api class later

&gt; Source/WebKit2/UIProcess/qt/qpermissionrequest_p.h:46
&gt; +    static QtPermissionRequest create(WKSecurityOriginRef, WKGeolocationPermissionRequestRef);

Why isnt this in the private (which should be friend)? Any why is this exported class name starting with Qt*?

&gt; Source/WebKit2/UIProcess/qt/qsecurityorigin_p.h:46
&gt; +class QWEBKIT_EXPORT QtSecurityOrigin {
&gt; +public:
&gt; +    ~QtSecurityOrigin();
&gt; +
&gt; +    QString scheme() const;
&gt; +    QString host() const;
&gt; +    quint16 port() const;
&gt; +
&gt; +    QtSecurityOrigin(WKSecurityOriginRef);
&gt; +    QtSecurityOrigin(const QtSecurityOrigin&amp; other);
&gt; +    QtSecurityOrigin &amp;operator=(const QtSecurityOrigin&amp; other);
&gt; +    static QtSecurityOrigin create(WKSecurityOriginRef);
&gt; +
&gt; +private:
&gt; +    QtSecurityOrigin() { };
&gt; +    WKRetainPtr&lt;WKSecurityOriginRef&gt; m_origin;
&gt; +};

This is written like a public class, even exported, but the naming suggest it is private and so does the implementation (ctor, private section etc). The filename also suggests it is public, though not in the api directory... im confused</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505795</commentid>
    <comment_count>31</comment_count>
      <attachid>115809</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-18 08:08:15 -0800</bug_when>
    <thetext>Created attachment 115809
Simplified the patch, exposes it to QML side

ATM, it will fail to link (would love some ideas about what changed in buildsystem). Already added entries in qtwebkit-export.map to no avail.

+        *QWebPermissionRequest;
+        non-virtual?thunk?to?QWebPermissionRequest*;
+        QWebPermissionRequest::*;
+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505796</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-18 08:10:14 -0800</bug_when>
    <thetext>Attachment 115809 did not pass style-queue:

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

Source/WebKit2/UIProcess/qt/QtWebPageProxy.cpp:34:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 10 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>505996</commentid>
    <comment_count>33</comment_count>
      <attachid>115855</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-18 13:15:23 -0800</bug_when>
    <thetext>Created attachment 115855
Permission api hook for geolocation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506896</commentid>
    <comment_count>34</comment_count>
      <attachid>115855</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-21 05:32:29 -0800</bug_when>
    <thetext>Comment on attachment 115855
Permission api hook for geolocation

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

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp:93
&gt; +    return WKStringCopyQString(WKSecurityOriginCopyProtocol(d-&gt;origin.get()));

This will leak the WKStringRef returned by WKSecurityOriginCopyProtocol. You should use adoptWK on the return value.

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp:98
&gt; +    return WKStringCopyQString(WKSecurityOriginCopyHost(d-&gt;origin.get()));

Same here :)

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest_p.h:35
&gt; +    Q_PROPERTY(qint32 type READ type)

Why is this an qint32 instead of the real type?

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest_p.h:52
&gt; +    quint16 port() const;

In QUrl the port is just a plain &quot;int&quot;. It may be not &quot;mathematically strict enough&quot;, but it&apos;s perfectly consistent with the rest of the Qt API. I suggest to use int here, too :)

&gt; Source/WebKit2/UIProcess/qt/QtWebPageProxy.cpp:928
&gt; +
&gt; +    if (m_allow)
&gt; +        delete m_allow;
&gt; +
&gt; +    m_allow = request;
&gt; +    emit m_qmlWebView-&gt;permissionRequested(m_allow);

Is this correct? Won&apos;t this cancel any previous permission request? What if a page asks for gelocation _and_ notification permission? Won&apos;t the second permission request cancel the previous?

If you&apos;re worried about leaking &quot;unanswered&quot; permission requests, how about making them (here) children of the QtWebPageProxy?

&gt; Source/WebKit2/UIProcess/qt/QtWebPageProxy.h:293
&gt; +    QWebPermissionRequest *m_allow;

I don&apos;t think this is needed :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507225</commentid>
    <comment_count>35</comment_count>
      <attachid>116139</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-21 14:45:05 -0800</bug_when>
    <thetext>Created attachment 116139
Experimental api, changed port type, removed m_allow, etc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507343</commentid>
    <comment_count>36</comment_count>
      <attachid>116161</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-21 18:08:14 -0800</bug_when>
    <thetext>Created attachment 116161
Previous fixes, plus Changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507583</commentid>
    <comment_count>37</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-22 06:47:57 -0800</bug_when>
    <thetext>The QML API is looking like: 

WebView {

        experimental.onPermissionRequested: {
            console.log(&quot;######## Status: &quot; + permission.allow +
            &quot;\tscheme: &quot; + permission.scheme +
            &quot;\thost: &quot; + permission.host +
            &quot;\tport: &quot; + permission.port +
            &quot;\ttype: &quot; + permission.type)
            //I will fix this
            if (permission.type == 0) {
                console.log(&quot;########## geolocation: granting permission&quot;)
                permission.setAllow(true)
            }

        }

}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507619</commentid>
    <comment_count>38</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-22 08:23:08 -0800</bug_when>
    <thetext>Ah, this works fine too: permission.allow = true</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508711</commentid>
    <comment_count>39</comment_count>
      <attachid>116161</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-24 04:28:33 -0800</bug_when>
    <thetext>Comment on attachment 116161
Previous fixes, plus Changelog

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

This is getting there :). I&apos;d like to see the int32 type() thing to get fixed as well as the request object being scheduled for deletion _before_ the parent dies. (the parent thing is a last resort, in the common case we should clean up properly before that)

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp:70
&gt; +void QWebPermissionRequest::setAllow(bool accepted)

After calling setAllow, shouldn&apos;t the request object get deleted at some point? (and I mean before the parent QQuickWebView)

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest_p.h:48
&gt; +    qint32 type() const;

I think the return type should be &quot;Type&quot; and it should be exposed in QML.

&gt; Source/WebKit2/UIProcess/qt/QtWebPageProxy.h:293
&gt; +

Stray newline?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508714</commentid>
    <comment_count>40</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-11-24 04:37:19 -0800</bug_when>
    <thetext>I would like us to separate our the Security Origin. It is an integrated part of XHR, DOM and could even be used from QML etc.

Maybe somethign like this: http://pastebin.ubuntu.com/748139/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508741</commentid>
    <comment_count>41</comment_count>
      <attachid>116161</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-11-24 06:13:07 -0800</bug_when>
    <thetext>Comment on attachment 116161
Previous fixes, plus Changelog

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

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h:185
&gt; +    void permissionRequested(QWebPermissionRequest* permission);

I would leave out the permission... I wonder why the style bit didnt complain...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508849</commentid>
    <comment_count>42</comment_count>
      <attachid>116525</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-24 11:55:03 -0800</bug_when>
    <thetext>Created attachment 116525
Rebased with master, QENUM, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509048</commentid>
    <comment_count>43</comment_count>
      <attachid>116525</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-11-25 02:11:38 -0800</bug_when>
    <thetext>Comment on attachment 116525
Rebased with master, QENUM, etc.

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

Will you hook this up this in the mini browser?

&gt; Source/WebKit/qt/ChangeLog:6
&gt; +        Permission API hookup for Geolocation, it allows in WebView to receive

in? the?

&gt; Source/WebKit2/ChangeLog:6
&gt; +        Permission API hookup for Geolocation, it allows in WebView to receive

same thing

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp:32
&gt; +public:
&gt; +
&gt; +    QWebPermissionRequestPrivate(WKSecurityOriginRef securityOrigin, WKGeolocationPermissionRequestRef permissionRequest)

I would remove that newline, nitpick

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp:55
&gt; +QWebPermissionRequest::QWebPermissionRequest(WKSecurityOriginRef securityOrigin,
&gt; +                                             WKGeolocationPermissionRequestRef permissionRequest, QObject* parent)

We always keep the method declaration on one line

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp:103
&gt; +    return WKStringCopyQString(origin.get());
&gt; +

remove newline here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509145</commentid>
    <comment_count>44</comment_count>
      <attachid>116525</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-25 06:33:23 -0800</bug_when>
    <thetext>Comment on attachment 116525
Rebased with master, QENUM, etc.

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

r=me, with Kenneth&apos;s comments and my nitpick.

&gt; Source/WebKit2/UIProcess/qt/QtWebPageUIClient.cpp:85
&gt; +void QtWebPageUIClient::permissionRequest(QWebPermissionRequest *request)

Coding style nitpick: The * placement is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509781</commentid>
    <comment_count>45</comment_count>
      <attachid>116747</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-28 06:31:07 -0800</bug_when>
    <thetext>Created attachment 116747
Coding style fixes, plus qml test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509787</commentid>
    <comment_count>46</comment_count>
      <attachid>116750</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-28 06:37:15 -0800</bug_when>
    <thetext>Created attachment 116750
Coding style fixes, plus qml test, html cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509794</commentid>
    <comment_count>47</comment_count>
      <attachid>116751</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-28 06:42:31 -0800</bug_when>
    <thetext>Created attachment 116751
Coding style fixes, plus qml test, html cleanup, changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509799</commentid>
    <comment_count>48</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-28 06:46:35 -0800</bug_when>
    <thetext>Additional work to be done here:
https://bugs.webkit.org/show_bug.cgi?id=73215</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509823</commentid>
    <comment_count>49</comment_count>
      <attachid>116751</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-28 07:40:07 -0800</bug_when>
    <thetext>Comment on attachment 116751
Coding style fixes, plus qml test, html cleanup, changelog.

r=me but land with care (test might fail on the bot unless qtlocation is installed)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509829</commentid>
    <comment_count>50</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-28 07:49:53 -0800</bug_when>
    <thetext>(In reply to comment #49)
&gt; (From update of attachment 116751 [details])
&gt; r=me but land with care (test might fail on the bot unless qtlocation is installed)

Only one API test will fail on the bot:
FAIL!  : qmltests::WebViewGeopermission::test_permissionRequest() &apos;wait for signal permissionRequested&apos; returned FALSE. ()
   Loc: [/usr/local/Trolltech/Qt5/Qt-5.0.0-r13/imports/QtTest/TestCase.qml(473)]

I think it isn&apos;t a big problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509905</commentid>
    <comment_count>51</comment_count>
      <attachid>116751</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-11-28 09:57:53 -0800</bug_when>
    <thetext>Comment on attachment 116751
Coding style fixes, plus qml test, html cleanup, changelog.

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

&gt; Source/WebKit2/ChangeLog:32
&gt; +

I believe you forgot to &apos;git add&apos; some files before generating the Changelog, as I don&apos;t see either qmltests.pro or the new qml test listed here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509919</commentid>
    <comment_count>52</comment_count>
      <attachid>116776</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-28 10:12:34 -0800</bug_when>
    <thetext>Created attachment 116776
Previous fixes, plus Changelog.

For while, skip the test until the bot has qtlocation module.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509996</commentid>
    <comment_count>53</comment_count>
      <attachid>116776</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2011-11-28 11:20:12 -0800</bug_when>
    <thetext>Comment on attachment 116776
Previous fixes, plus Changelog.

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

I think it&apos;s really nice, just found some little style problems, not sure if you really need to fix them (do we follow the same webkit guidelines for qml files?).

&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_geopermission.qml:20
&gt; +        //Must be false by default

style nitpick: space after // and finishing with . in the end of sentence.

&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_geopermission.qml:21
&gt; +        if (!permission.allow) {

style: as you only have one line inside the if block, you don&apos;t need to use brackets.

&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_geopermission.qml:26
&gt; +        if (permission.type == PermissionRequest.Geolocation) {

style: same as before (brackets)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510703</commentid>
    <comment_count>54</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-29 05:18:32 -0800</bug_when>
    <thetext>Rafael

Thanks for the comments.

I&apos;m not sure if there is a convention concerning QML for webkit. But already exists a Qt convention for QML: http://doc.qt.nokia.com/latest/qml-coding-conventions.html

This one suggests brackets around conditionals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510716</commentid>
    <comment_count>55</comment_count>
      <attachid>116951</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-29 05:53:35 -0800</bug_when>
    <thetext>Created attachment 116951
Previous fixes, plus qml class register version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510744</commentid>
    <comment_count>56</comment_count>
      <attachid>116951</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-29 07:03:34 -0800</bug_when>
    <thetext>Comment on attachment 116951
Previous fixes, plus qml class register version

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511468</commentid>
    <comment_count>57</comment_count>
      <attachid>116951</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 00:41:35 -0800</bug_when>
    <thetext>Comment on attachment 116951
Previous fixes, plus qml class register version

Clearing flags on attachment: 116951

Committed r101456: &lt;http://trac.webkit.org/changeset/101456&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511469</commentid>
    <comment_count>58</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 00:41:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92226</attachid>
            <date>2011-05-04 06:07:10 -0700</date>
            <delta_ts>2011-05-04 06:44:17 -0700</delta_ts>
            <desc>patch</desc>
            <filename>59200.patch</filename>
            <type>text/plain</type>
            <size>22983</size>
            <attacher name="Mahesh Kulkarni">maheshk</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDg1NzE2KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTEtMDUtMDQgIE1haGVzaCBLdWxrYXJuaSAgPG1haGVzaC5rdWxrYXJuaUBu
b2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgW1F0XVtXSzJdIEltcGxlbWVudCBwZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAg
ICBIb29rdXAgcGVybWlzc2lvbiBBUEkgb2YgUVdLUGFnZSB0byBNaW5pQnJvd3Nlci4gQWRkIGNh
cHMgZm9yIHN5bWJpYW4uCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93
LmNwcDoKKyAgICAgICAgKEJyb3dzZXJXaW5kb3c6OkJyb3dzZXJXaW5kb3cpOgorICAgICAgICAo
QnJvd3NlcldpbmRvdzo6cGVybWlzc2lvblJlcXVlc3RlZCk6CisgICAgICAgICogTWluaUJyb3dz
ZXIvcXQvQnJvd3NlcldpbmRvdy5oOgorICAgICAgICAqIE1pbmlCcm93c2VyL3F0L01pbmlCcm93
c2VyLnBybzoKKwogMjAxMS0wNS0wMyAgTWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgpJbmRleDogVG9vbHMvTWlu
aUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL01pbmlCcm93
c2VyL3F0L01pbmlCcm93c2VyLnBybwkocmV2aXNpb24gODU3MTYpCisrKyBUb29scy9NaW5pQnJv
d3Nlci9xdC9NaW5pQnJvd3Nlci5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAK
IAogc3ltYmlhbiB7CiAgICAgVEFSR0VULlVJRDMgPSAweEEwMDBFNTQ1Ci0gICAgVEFSR0VULkNB
UEFCSUxJVFkgPSBSZWFkVXNlckRhdGEgV3JpdGVVc2VyRGF0YSBOZXR3b3JrU2VydmljZXMKKyAg
ICBUQVJHRVQuQ0FQQUJJTElUWSA9IFJlYWRVc2VyRGF0YSBXcml0ZVVzZXJEYXRhIE5ldHdvcmtT
ZXJ2aWNlcyBMb2NhdGlvbgogfQogCiBjb250YWlucyhRVF9DT05GSUcsIG9wZW5nbCkgewpJbmRl
eDogVG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaAkocmV2aXNpb24gODU3MTYpCisrKyBU
b29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxRdEd1aT4KIAogY2xhc3MgVXJsTG9hZGVyOworY2xhc3Mg
UVdLUGVybWlzc2lvblJlcXVlc3Q7CiAKIGNsYXNzIEJyb3dzZXJXaW5kb3cgOiBwdWJsaWMgUU1h
aW5XaW5kb3cgewogICAgIFFfT0JKRUNUCkBAIC03Nyw2ICs3OCw3IEBACiAKICAgICB2b2lkIHRv
Z2dsZUF1dG9Mb2FkSW1hZ2VzKGJvb2wpOwogICAgIHZvaWQgdG9nZ2xlRGlzYWJsZUphdmFTY3Jp
cHQoYm9vbCk7CisgICAgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdGVkKFFXS1Blcm1pc3Npb25SZXF1
ZXN0Jik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVVc2VyQWdlbnRMaXN0KCk7CkluZGV4
OiBUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcAkocmV2aXNpb24gODU3MTYpCisr
KyBUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkJyb3dzZXJXaW5kb3cuaCIKIAogI2luY2x1ZGUg
IlVybExvYWRlci5oIgorI2luY2x1ZGUgInF3a3Blcm1pc3Npb25yZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAicXdrcHJlZmVyZW5jZXMuaCIKIAogc3RhdGljIFFXS1BhZ2UqIG5ld1BhZ2VGdW5jdGlvbihR
V0tQYWdlKiBwYWdlKQpAQCAtMTM0LDYgKzEzNSw4IEBACiAKICAgICBwYWdlKCktPnNldENyZWF0
ZU5ld1BhZ2VGdW5jdGlvbihuZXdQYWdlRnVuY3Rpb24pOwogCisgICAgY29ubmVjdChwYWdlKCks
IFNJR05BTChwZXJtaXNzaW9uUmVxdWVzdGVkKFFXS1Blcm1pc3Npb25SZXF1ZXN0JikpLCB0aGlz
LCBTTE9UKHBlcm1pc3Npb25SZXF1ZXN0ZWQoUVdLUGVybWlzc2lvblJlcXVlc3QmKSkpOworCiAg
ICAgLy8gdGhlIHpvb20gdmFsdWVzIGFyZSBjaG9zZW4gdG8gYmUgbGlrZSBpbiBNb3ppbGxhIEZp
cmVmb3ggMwogICAgIGlmICghbV96b29tTGV2ZWxzLmNvdW50KCkpIHsKICAgICAgICAgbV96b29t
TGV2ZWxzIDw8IDAuMyA8PCAwLjUgPDwgMC42NyA8PCAwLjggPDwgMC45OwpAQCAtMzkwLDYgKzM5
MywxMSBAQAogICAgICAgICBtX3VzZXJBZ2VudExpc3QgPDwgd2tQYWdlLT5jdXN0b21Vc2VyQWdl
bnQoKTsKIH0KIAordm9pZCBCcm93c2VyV2luZG93OjpwZXJtaXNzaW9uUmVxdWVzdGVkKFFXS1Bl
cm1pc3Npb25SZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJlcXVlc3Quc2V0QWNjZXB0ZWQodHJ1
ZSk7Cit9CisKIHZvaWQgQnJvd3NlcldpbmRvdzo6YXBwbHlab29tKCkKIHsKICAgICBpZiAobV9p
c1pvb21UZXh0T25seSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1NzE2KQorKysgU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEt
MDUtMDQgIE1haGVzaCBLdWxrYXJuaSAgPG1haGVzaC5rdWxrYXJuaUBub2tpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XVtXSzJdIElt
cGxlbWVudCBwZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAgICBPcmlnaW5hbCBBdXRo
b3I6IGtlbm5ldGguci5jaHJpc3RpYW5zZW5Abm9raWEuY29tCisKKyAgICAgICAgSW1wbGVtZW50
cyBwZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydCBvZiBXZWJLaXQyOworICAgICAgICBhZGRlZCBz
dXBwb3J0IGZvciBnZW9sb2NhdGlvbiBwZXJtaXNzaW9uIHRvIHBhZ2UgY2xpZW50LgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC9DbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKHF0X3drX2Rl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
cXdrcGFnZS5jcHA6CisgICAgICAgIChRV0tQYWdlOjpRV0tQYWdlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3Bl
cm1pc3Npb25yZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVz
dDo6UVdLUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoUVdLUGVybWlzc2lvblJlcXVlc3Q6
On5RV0tQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdDo6
b3BlcmF0b3I9KToKKyAgICAgICAgKFFXS1Blcm1pc3Npb25SZXF1ZXN0Ojp0eXBlKToKKyAgICAg
ICAgKFFXS1Blcm1pc3Npb25SZXF1ZXN0OjpvcmlnaW4pOgorICAgICAgICAoUVdLUGVybWlzc2lv
blJlcXVlc3Q6OnNldEFjY2VwdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3Bl
cm1pc3Npb25yZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdr
cGVybWlzc2lvbnJlcXVlc3RfcC5oOiBBZGRlZC4KKyAgICAgICAgKFFXS1Blcm1pc3Npb25SZXF1
ZXN0UHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKFFXS1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZTo6UVdLUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKToKKyAgICAgICAgKFFXS1Blcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZTo6flFXS1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC9xd2tzZWN1cml0eW9yaWdpbi5jcHA6IEFkZGVkLgorICAgICAgICAo
UVdLU2VjdXJpdHlPcmlnaW46OlFXS1NlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFFXS1NlY3Vy
aXR5T3JpZ2luOjpvcGVyYXRvcj0pOgorICAgICAgICAoUVdLU2VjdXJpdHlPcmlnaW46OnNjaGVt
ZSk6CisgICAgICAgIChRV0tTZWN1cml0eU9yaWdpbjo6aG9zdCk6CisgICAgICAgIChRV0tTZWN1
cml0eU9yaWdpbjo6cG9ydCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2tzZWN1cml0
eW9yaWdpbi5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3NlY3VyaXR5
b3JpZ2luX3AuaDogQWRkZWQuCisgICAgICAgIChRV0tTZWN1cml0eU9yaWdpblByaXZhdGU6OmNy
ZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAg
ICAgICAqIFdlYktpdDIucHJvOgorICAgICAgICAqIFdlYktpdDJBUEkucHJpOgorCiAyMDExLTA1
LTAyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gUm9iZW4uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyQVBJLnByaQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyQVBJLnByaQkocmV2aXNpb24gODU3MTYp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyQVBJLnByaQkod29ya2luZyBjb3B5KQpAQCAtNDgs
NyArNDgsOSBAQAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdr
Y29udGV4dC5jcHAgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXdraGlzdG9yeS5jcHAgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdrcGFnZS5jcHAgXAorICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdrcGVybWlzc2lvbnJlcXVlc3QuY3BwIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3a3ByZWZlcmVuY2VzLmNwcCBcCisgICAgJCRTT1VSQ0VfRElSL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tzZWN1cml0eW9yaWdpbi5jcHAgXAogICAgICQkU09V
UkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUu
Y3BwIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJk
TGlzdEl0ZW0uY3BwIFwKQEAgLTEyOCw3ICsxMzAsMTEgQEAKICAgICAkJFNPVVJDRV9ESVIvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2hpc3RvcnlfcC5oIFwKICAgICAkJFNPVVJDRV9ESVIv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaCBcCiAgICAgJCRTT1VSQ0VfRElSL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaCBcCisgICAgJCRTT1VSQ0VfRElSL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twZXJtaXNzaW9ucmVxdWVzdC5oIFwKKyAgICAkJFNP
VVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Blcm1pc3Npb25yZXF1ZXN0X3Au
aCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twcmVmZXJl
bmNlcy5oIFwKKyAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Nl
Y3VyaXR5b3JpZ2luLmggXAorICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdrc2VjdXJpdHlvcmlnaW5fcC5oIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmggXAog
ICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0Lmgg
XApJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViS2l0Mi5wcm8JKHJldmlzaW9uIDg1NzE2KQorKysgU291cmNlL1dlYktpdDIv
V2ViS2l0Mi5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTIzNSw2ICsyMzUsNyBAQAogICAgIFVJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUxvYWRDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmggXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0TWVudVByb3h5UXQuaCBcCisgICAgVUlQ
cm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oIFwKICAgICBVSVByb2Nlc3MvcXQv
V2ViUG9wdXBNZW51UHJveHlRdC5oIFwKICAgICBXZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUv
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBcCkBAIC00NTEsNiArNDUyLDcgQEAKICAgICBV
SVByb2Nlc3MvcXQvVGV4dENoZWNrZXJRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJDb250
ZXh0TWVudVByb3h5UXQuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcCBc
CisgICAgVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9xdC9XZWJJbnNwZWN0b3JQcm94eVF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dl
YlBhZ2VQcm94eVF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXQu
Y3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQu
Y3BwCShyZXZpc2lvbiA4NTcxNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJD
b250ZXh0UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw5IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogCisjaW5jbHVkZSAiV0tTaGFyZWRB
UElDYXN0LmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKKyNpbmNsdWRl
ICJXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8UVByb2Nlc3M+CiAKQEAgLTQ1LDYgKzQ3LDEyIEBA
CiB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYpCiB7CiAgICAgcVJlZ2lzdGVyTWV0YVR5cGU8UVByb2Nlc3M6
OkV4aXRTdGF0dXM+KCJRUHJvY2Vzczo6RXhpdFN0YXR1cyIpOworCisjaWYgRU5BQkxFKEdFT0xP
Q0FUSU9OKQorICAgIC8vIEluaXRpYWxpemUgbG9jYXRpb24gcHJvdmlkZXIgZm9yIHF0CisgICAg
c3RhdGljIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCogbG9jYXRpb24gPSBXZWJHZW9sb2NhdGlv
blByb3ZpZGVyUXQ6OmNyZWF0ZSh0b0FQSShnZW9sb2NhdGlvbk1hbmFnZXJQcm94eSgpKSk7Cisg
ICAgUV9VTlVTRUQobG9jYXRpb24pOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViQ29udGV4dDo6cGxh
dGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3a3BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrcGFnZS5jcHAJKHJldmlzaW9uIDg1NzE2KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDkyLDcgKzQ5
Miw3IEBACiAgICAgICAgIDAsICAvKiBwYWdlRGlkU2Nyb2xsICovCiAgICAgICAgIDAsICAvKiBl
eGNlZWRlZERhdGFiYXNlUXVvdGEgKi8KICAgICAgICAgMCwgIC8qIHJ1bk9wZW5QYW5lbCAqLwot
ICAgICAgICAwLCAgLyogZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dCAqLworICAgICAgICBxdF93a19kZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LAogICAgICAgICAwLCAgLyogaGVhZGVySGVpZ2h0ICovCiAgICAgICAgIDAsICAvKiBm
b290ZXJIZWlnaHQgKi8KICAgICAgICAgMCwgIC8qIGRyYXdIZWFkZXIgKi8KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9DbGllbnRJbXBsLmNwcAkocmV2aXNpb24g
ODU3MTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L0NsaWVudEltcGwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxMiArMjIsMTUgQEAKIAogI2luY2x1ZGUgIldlYkZyYW1l
UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS0ZyYW1lLmgiCisj
aW5jbHVkZSAiV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV0tT
dHJpbmdRdC5oIgorI2luY2x1ZGUgIldLVHlwZS5oIgogI2luY2x1ZGUgIldLVVJMUXQuaCIKLSNp
bmNsdWRlIDxxd2twYWdlLmg+Ci0jaW5jbHVkZSA8cXdrcGFnZV9wLmg+Ci0jaW5jbHVkZSA8V0tG
cmFtZS5oPgotI2luY2x1ZGUgPFdLVHlwZS5oPgorI2luY2x1ZGUgInF3a3BhZ2UuaCIKKyNpbmNs
dWRlICJxd2twYWdlX3AuaCIKKyNpbmNsdWRlICJxd2twZXJtaXNzaW9ucmVxdWVzdC5oIgorI2lu
Y2x1ZGUgInF3a3Blcm1pc3Npb25yZXF1ZXN0X3AuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKIApAQCAtMTgwLDYgKzE4MywxMiBAQAogICAgIGVtaXQgdG9RV0tQYWdlKGNsaWVudEluZm8p
LT5zdGF0dXNCYXJNZXNzYWdlKHFUZXh0KTsKIH0KIAordm9pZCBxdF93a19kZWNpZGVQb2xpY3lG
b3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVm
IGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0UmVmIHJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgUVdL
UGVybWlzc2lvblJlcXVlc3QgcmVxID0gUVdLUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOjpjcmVh
dGUob3JpZ2luLCByZXF1ZXN0KTsKKyAgICBlbWl0IHRvUVdLUGFnZShjbGllbnRJbmZvKS0+cGVy
bWlzc2lvblJlcXVlc3RlZChyZXEpOworfQorCiB2b2lkIHF0X3drX2RpZFNhbWVEb2N1bWVudE5h
dmlnYXRpb25Gb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBlLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCiB7CiAgICAgV2ViRnJhbWVQcm94eSogd2tmcmFtZSA9IHRvSW1wbChm
cmFtZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3NlY3VyaXR5
b3JpZ2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3a3NlY3VyaXR5b3JpZ2luLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdrc2VjdXJpdHlvcmlnaW4uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDU1IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAicXdrc2VjdXJpdHlvcmlnaW4uaCIKKworI2luY2x1ZGUgIldLU3RyaW5nUXQuaCIKKyNp
bmNsdWRlICJxd2tzZWN1cml0eW9yaWdpbl9wLmgiCisKKworUVdLU2VjdXJpdHlPcmlnaW46OlFX
S1NlY3VyaXR5T3JpZ2luKFFXS1NlY3VyaXR5T3JpZ2luUHJpdmF0ZSogcHJpdikKK3sKKyAgICBk
ID0gcHJpdjsKK30KKworUVdLU2VjdXJpdHlPcmlnaW46OlFXS1NlY3VyaXR5T3JpZ2luKGNvbnN0
IFFXS1NlY3VyaXR5T3JpZ2luJiBvdGhlcikgOiBkKG90aGVyLmQpCit7Cit9CisKK1FXS1NlY3Vy
aXR5T3JpZ2luJiBRV0tTZWN1cml0eU9yaWdpbjo6b3BlcmF0b3I9KGNvbnN0IFFXS1NlY3VyaXR5
T3JpZ2luJiBvdGhlcikKK3sKKyAgICBkID0gb3RoZXIuZDsKKyAgICByZXR1cm4gKnRoaXM7Cit9
CisKK1FTdHJpbmcgUVdLU2VjdXJpdHlPcmlnaW46OnNjaGVtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tTZWN1cml0eU9yaWdpbkdldFByb3RvY29sKGQtPm1f
b3JpZ2luLmdldCgpKSk7Cit9CisKK1FTdHJpbmcgUVdLU2VjdXJpdHlPcmlnaW46Omhvc3QoKSBj
b25zdAoreworICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKFdLU2VjdXJpdHlPcmlnaW5H
ZXRIb3N0KGQtPm1fb3JpZ2luLmdldCgpKSk7Cit9CisKK3Vuc2lnbmVkIHNob3J0IFFXS1NlY3Vy
aXR5T3JpZ2luOjpwb3J0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV0tTZWN1cml0eU9yaWdpbkdl
dFBvcnQoZC0+bV9vcmlnaW4uZ2V0KCkpOworfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2twYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2twYWdlLmgJKHJldmlzaW9uIDg1NzE2KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2LDYgKzE2LDcg
QEAKIGNsYXNzIFFHcmFwaGljc0l0ZW07CiBjbGFzcyBRV0tDb250ZXh0OwogY2xhc3MgUVdLR3Jh
cGhpY3NXaWRnZXQ7CitjbGFzcyBRV0tQZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIFFXS1ByZWZl
cmVuY2VzOwogY2xhc3MgUVdLUGFnZVByaXZhdGU7CiBjbGFzcyBRdFZpZXdwb3J0QXR0cmlidXRl
c1ByaXZhdGU7CkBAIC0xMzgsNiArMTM5LDcgQEAKICAgICBRX1NJR05BTCB2b2lkIGZvY3VzTmV4
dFByZXZDaGlsZChib29sKTsKICAgICBRX1NJR05BTCB2b2lkIHNob3dDb250ZXh0TWVudShRU2hh
cmVkUG9pbnRlcjxRTWVudT4pOwogICAgIFFfU0lHTkFMIHZvaWQgZW5naW5lQ29ubmVjdGlvbkNo
YW5nZWQoYm9vbCBjb25uZWN0ZWQpOworICAgIFFfU0lHTkFMIHZvaWQgcGVybWlzc2lvblJlcXVl
c3RlZChRV0tQZXJtaXNzaW9uUmVxdWVzdCYpOwogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB0aW1l
ckV2ZW50KFFUaW1lckV2ZW50Kik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L0NsaWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L0NsaWVudEltcGwuaAkocmV2aXNpb24gODU3MTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L0NsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMs
NyBAQAogdm9pZCBxdF93a19kaWRGaW5pc2hQcm9ncmVzcyhXS1BhZ2VSZWYsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOwogdm9pZCBxdF93a19kaWRCZWNvbWVVbnJlc3BvbnNpdmUoV0tQYWdlUmVm
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHZvaWQgcXRfd2tfZGlkQmVjb21lUmVzcG9uc2l2
ZShXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordm9pZCBxdF93a19kZWNpZGVQ
b2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFtZVJl
ZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVm
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHZvaWQgcXRfd2tfZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uVHlwZSwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAogLy8gdWkg
Y2xpZW50CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3NlY3VyaXR5
b3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2tzZWN1cml0eW9yaWdpbi5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2tzZWN1cml0eW9yaWdpbi5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ1
IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIHF3a3NlY3VyaXR5b3JpZ2luX2gKKyNk
ZWZpbmUgcXdrc2VjdXJpdHlvcmlnaW5faAorCisjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgor
I2luY2x1ZGUgPFFTdHJpbmc+CisjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRkYXRhLmg+CisKK2Ns
YXNzIFFXS1NlY3VyaXR5T3JpZ2luUHJpdmF0ZTsKKworY2xhc3MgUVdFQktJVF9FWFBPUlQgUVdL
U2VjdXJpdHlPcmlnaW4geworcHVibGljOgorICAgIFFTdHJpbmcgc2NoZW1lKCkgY29uc3Q7Cisg
ICAgUVN0cmluZyBob3N0KCkgY29uc3Q7CisgICAgdW5zaWduZWQgc2hvcnQgcG9ydCgpIGNvbnN0
OworCisgICAgUVdLU2VjdXJpdHlPcmlnaW4oY29uc3QgUVdLU2VjdXJpdHlPcmlnaW4mIG90aGVy
KTsKKyAgICBRV0tTZWN1cml0eU9yaWdpbiAmb3BlcmF0b3I9KGNvbnN0IFFXS1NlY3VyaXR5T3Jp
Z2luJiBvdGhlcik7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFFXS1NlY3VyaXR5T3Jp
Z2luUHJpdmF0ZTsKKyAgICBRV0tTZWN1cml0eU9yaWdpbihRV0tTZWN1cml0eU9yaWdpblByaXZh
dGUqKTsKKworICAgIFFFeHBsaWNpdGx5U2hhcmVkRGF0YVBvaW50ZXI8UVdLU2VjdXJpdHlPcmln
aW5Qcml2YXRlPiBkOworfTsKKworI2VuZGlmIC8vIHF3a3NlY3VyaXR5b3JpZ2luX2gKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGVybWlzc2lvbnJlcXVlc3RfcC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGVybWlz
c2lvbnJlcXVlc3RfcC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2twZXJtaXNzaW9ucmVxdWVzdF9wLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NTMgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgcXdrcGVybWlzc2lvbnJlcXVlc3Rf
cF9oCisjZGVmaW5lIHF3a3Blcm1pc3Npb25yZXF1ZXN0X3BfaAorCisjaW5jbHVkZSAicXdrcGVy
bWlzc2lvbnJlcXVlc3QuaCIKKworI2luY2x1ZGUgInF3a3NlY3VyaXR5b3JpZ2luX3AuaCIKKyNp
bmNsdWRlIDxXZWJLaXQyL1dLUGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIu
aD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4uaD4KKworY2xhc3MgUVdLUGVy
bWlzc2lvblJlcXVlc3RQcml2YXRlIDogcHVibGljIFFTaGFyZWREYXRhIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUVdLUGVybWlzc2lvblJlcXVlc3QgY3JlYXRlKFdLU2VjdXJpdHlPcmlnaW5SZWYg
b3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCkKKyAgICB7
CisgICAgICAgIHJldHVybiBRV0tQZXJtaXNzaW9uUmVxdWVzdChuZXcgUVdLUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlKG9yaWdpbiwgcmVxdWVzdCkpOworICAgIH0KKworICAgIFFXS1Blcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QpCisgICAgICAgIDogbV9vcmlnaW4oUVdLU2Vj
dXJpdHlPcmlnaW5Qcml2YXRlOjpjcmVhdGUob3JpZ2luKSkKKyAgICAgICAgLCBtX3R5cGUoUVdL
UGVybWlzc2lvblJlcXVlc3Q6Okdlb2xvY2F0aW9uKQorICAgICAgICAsIG1fcmVxdWVzdChyZXF1
ZXN0KQorICAgIHsKKyAgICB9CisgICAgflFXS1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSgpCisg
ICAgeworICAgIH0KKworICAgIFFXS1NlY3VyaXR5T3JpZ2luIG1fb3JpZ2luOworICAgIFFXS1Bl
cm1pc3Npb25SZXF1ZXN0OjpUeXBlIG1fdHlwZTsKKworICAgIFdLUmV0YWluUHRyPFdLR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZj4gbV9yZXF1ZXN0OworfTsKKworI2VuZGlmIC8vIHF3
a3Blcm1pc3Npb25yZXF1ZXN0X3BfaApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2twZXJtaXNzaW9ucmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twZXJtaXNzaW9ucmVxdWVzdC5jcHAJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Blcm1pc3Npb25yZXF1ZXN0
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgInF3a3Blcm1pc3Npb25yZXF1ZXN0LmgiCisj
aW5jbHVkZSAicXdrcGVybWlzc2lvbnJlcXVlc3RfcC5oIgorCisjaW5jbHVkZSA8V2ViS2l0Mi9X
S0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5oPgorCitRV0tQZXJtaXNzaW9uUmVxdWVzdDo6UVdLUGVybWlzc2lvblJlcXVlc3QoUVdLUGVy
bWlzc2lvblJlcXVlc3RQcml2YXRlKiBwcml2KQoreworICAgIGQgPSBwcml2OworfQorCitRV0tQ
ZXJtaXNzaW9uUmVxdWVzdDo6flFXS1Blcm1pc3Npb25SZXF1ZXN0KCkKK3sKK30KKworUVdLUGVy
bWlzc2lvblJlcXVlc3Q6OlFXS1Blcm1pc3Npb25SZXF1ZXN0KGNvbnN0IFFXS1Blcm1pc3Npb25S
ZXF1ZXN0JiBvdGhlcikKKyAgICA6IGQob3RoZXIuZCkKK3sKK30KKworUVdLUGVybWlzc2lvblJl
cXVlc3QmIFFXS1Blcm1pc3Npb25SZXF1ZXN0OjpvcGVyYXRvcj0oY29uc3QgUVdLUGVybWlzc2lv
blJlcXVlc3QmIG90aGVyKQoreworICAgIGQgPSBvdGhlci5kOworICAgIHJldHVybiAqdGhpczsK
K30KKworUVdLUGVybWlzc2lvblJlcXVlc3Q6OlR5cGUgUVdLUGVybWlzc2lvblJlcXVlc3Q6OnR5
cGUoKSBjb25zdAoreworICAgIHJldHVybiBkLT5tX3R5cGU7Cit9CisKK1FXS1NlY3VyaXR5T3Jp
Z2luIFFXS1Blcm1pc3Npb25SZXF1ZXN0OjpvcmlnaW4oKSBjb25zdAoreworICAgIHJldHVybiBk
LT5tX29yaWdpbjsKK30KKwordm9pZCBRV0tQZXJtaXNzaW9uUmVxdWVzdDo6c2V0QWNjZXB0ZWQo
Ym9vbCBhY2NlcHRlZCkKK3sKKyAgICBzd2l0Y2ggKHR5cGUoKSkgeworICAgIGNhc2UgR2VvbG9j
YXRpb246IHsKKyAgICAgICAgaWYgKGFjY2VwdGVkKQorICAgICAgICAgICAgV0tHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0QWxsb3coZC0+bV9yZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueShkLT5tX3Jl
cXVlc3QuZ2V0KCkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDogCisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXdrc2VjdXJpdHlvcmlnaW5fcC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrc2VjdXJpdHlvcmlnaW5fcC5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tzZWN1cml0eW9y
aWdpbl9wLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgICAgQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
CisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyov
CisKKyNpZm5kZWYgcXdrc2VjdXJpdHlvcmlnaW5fcF9oCisjZGVmaW5lIHF3a3NlY3VyaXR5b3Jp
Z2luX3BfaAorCisjaW5jbHVkZSAicXdrc2VjdXJpdHlvcmlnaW4uaCIKKworI2luY2x1ZGUgPFdl
YktpdDIvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4u
aD4KKworY2xhc3MgUVdLU2VjdXJpdHlPcmlnaW5Qcml2YXRlIDogcHVibGljIFFTaGFyZWREYXRh
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUVdLU2VjdXJpdHlPcmlnaW4gY3JlYXRlKFdLU2VjdXJp
dHlPcmlnaW5SZWYgbykKKyAgICB7CisgICAgICAgIFFXS1NlY3VyaXR5T3JpZ2luUHJpdmF0ZSog
cHJpdiA9IG5ldyBRV0tTZWN1cml0eU9yaWdpblByaXZhdGU7CisgICAgICAgIHByaXYtPm1fb3Jp
Z2luID0gbzsKKyAgICAgICAgcmV0dXJuIFFXS1NlY3VyaXR5T3JpZ2luKHByaXYpOworICAgIH0K
KyAgICBXS1JldGFpblB0cjxXS1NlY3VyaXR5T3JpZ2luUmVmPiBtX29yaWdpbjsKK307CisKKyNl
bmRpZiAvLyBxd2tzZWN1cml0eW9yaWdpbl9wX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdrcGVybWlzc2lvbnJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Blcm1pc3Npb25yZXF1ZXN0LmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Blcm1pc3Npb25yZXF1
ZXN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzQgQEAKKyNpZm5kZWYgcXdrcGVybWlzc2lv
bnJlcXVlc3RfaAorI2RlZmluZSBxd2twZXJtaXNzaW9ucmVxdWVzdF9oCisKKyNpbmNsdWRlICJx
d2Via2l0Z2xvYmFsLmgiCisjaW5jbHVkZSAicXdrcGVybWlzc2lvbnJlcXVlc3QuaCIKKyNpbmNs
dWRlICJxd2tzZWN1cml0eW9yaWdpbi5oIgorI2luY2x1ZGUgPFF0Q29yZS9xc2hhcmVkZGF0YS5o
PgorCitjbGFzcyBRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CisKK2NsYXNzIFFXRUJLSVRf
RVhQT1JUIFFXS1Blcm1pc3Npb25SZXF1ZXN0IHsKK3B1YmxpYzoKKyAgICB+UVdLUGVybWlzc2lv
blJlcXVlc3QoKTsKKyAgICBlbnVtIFR5cGUgeworICAgICAgICBHZW9sb2NhdGlvbgorICAgIH07
CisKKyAgICBUeXBlIHR5cGUoKSBjb25zdDsKKyAgICBRV0tTZWN1cml0eU9yaWdpbiBvcmlnaW4o
KSBjb25zdDsKKworICAgIHZvaWQgc2V0QWNjZXB0ZWQoYm9vbCk7CisKKyAgICBRV0tQZXJtaXNz
aW9uUmVxdWVzdChjb25zdCBRV0tQZXJtaXNzaW9uUmVxdWVzdCYgb3RoZXIpOworICAgIFFXS1Bl
cm1pc3Npb25SZXF1ZXN0JiBvcGVyYXRvcj0oY29uc3QgUVdLUGVybWlzc2lvblJlcXVlc3QmIG90
aGVyKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUVdLUGVybWlzc2lvblJlcXVlc3RQ
cml2YXRlOworICAgIFFXS1Blcm1pc3Npb25SZXF1ZXN0KFFXS1Blcm1pc3Npb25SZXF1ZXN0UHJp
dmF0ZSopOworCitwcml2YXRlOgorICAgIFFFeHBsaWNpdGx5U2hhcmVkRGF0YVBvaW50ZXI8UVdL
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlPiBkOworfTsKKworI2VuZGlmIC8vIHF3a3Blcm1pc3Np
b25yZXF1ZXN0X2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92232</attachid>
            <date>2011-05-04 06:44:17 -0700</date>
            <delta_ts>2011-05-04 07:04:47 -0700</delta_ts>
            <desc>patch</desc>
            <filename>59200.patch</filename>
            <type>text/plain</type>
            <size>22991</size>
            <attacher name="Mahesh Kulkarni">maheshk</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDg1NzE2KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTEtMDUtMDQgIE1haGVzaCBLdWxrYXJuaSAgPG1haGVzaC5rdWxrYXJuaUBu
b2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgW1F0XVtXSzJdIEltcGxlbWVudCBwZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAg
ICBIb29rdXAgcGVybWlzc2lvbiBBUEkgb2YgUVdLUGFnZSB0byBNaW5pQnJvd3Nlci4gQWRkIGNh
cHMgZm9yIHN5bWJpYW4uCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93
LmNwcDoKKyAgICAgICAgKEJyb3dzZXJXaW5kb3c6OkJyb3dzZXJXaW5kb3cpOgorICAgICAgICAo
QnJvd3NlcldpbmRvdzo6cGVybWlzc2lvblJlcXVlc3RlZCk6CisgICAgICAgICogTWluaUJyb3dz
ZXIvcXQvQnJvd3NlcldpbmRvdy5oOgorICAgICAgICAqIE1pbmlCcm93c2VyL3F0L01pbmlCcm93
c2VyLnBybzoKKwogMjAxMS0wNS0wMyAgTWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgpJbmRleDogVG9vbHMvTWlu
aUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL01pbmlCcm93
c2VyL3F0L01pbmlCcm93c2VyLnBybwkocmV2aXNpb24gODU3MTYpCisrKyBUb29scy9NaW5pQnJv
d3Nlci9xdC9NaW5pQnJvd3Nlci5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAK
IAogc3ltYmlhbiB7CiAgICAgVEFSR0VULlVJRDMgPSAweEEwMDBFNTQ1Ci0gICAgVEFSR0VULkNB
UEFCSUxJVFkgPSBSZWFkVXNlckRhdGEgV3JpdGVVc2VyRGF0YSBOZXR3b3JrU2VydmljZXMKKyAg
ICBUQVJHRVQuQ0FQQUJJTElUWSA9IFJlYWRVc2VyRGF0YSBXcml0ZVVzZXJEYXRhIE5ldHdvcmtT
ZXJ2aWNlcyBMb2NhdGlvbgogfQogCiBjb250YWlucyhRVF9DT05GSUcsIG9wZW5nbCkgewpJbmRl
eDogVG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaAkocmV2aXNpb24gODU3MTYpCisrKyBU
b29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxRdEd1aT4KIAogY2xhc3MgVXJsTG9hZGVyOworY2xhc3Mg
UVdLUGVybWlzc2lvblJlcXVlc3Q7CiAKIGNsYXNzIEJyb3dzZXJXaW5kb3cgOiBwdWJsaWMgUU1h
aW5XaW5kb3cgewogICAgIFFfT0JKRUNUCkBAIC03Nyw2ICs3OCw3IEBACiAKICAgICB2b2lkIHRv
Z2dsZUF1dG9Mb2FkSW1hZ2VzKGJvb2wpOwogICAgIHZvaWQgdG9nZ2xlRGlzYWJsZUphdmFTY3Jp
cHQoYm9vbCk7CisgICAgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdGVkKFFXS1Blcm1pc3Npb25SZXF1
ZXN0Jik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVVc2VyQWdlbnRMaXN0KCk7CkluZGV4
OiBUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcAkocmV2aXNpb24gODU3MTYpCisr
KyBUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkJyb3dzZXJXaW5kb3cuaCIKIAogI2luY2x1ZGUg
IlVybExvYWRlci5oIgorI2luY2x1ZGUgInF3a3Blcm1pc3Npb25yZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAicXdrcHJlZmVyZW5jZXMuaCIKIAogc3RhdGljIFFXS1BhZ2UqIG5ld1BhZ2VGdW5jdGlvbihR
V0tQYWdlKiBwYWdlKQpAQCAtMTM0LDYgKzEzNSw4IEBACiAKICAgICBwYWdlKCktPnNldENyZWF0
ZU5ld1BhZ2VGdW5jdGlvbihuZXdQYWdlRnVuY3Rpb24pOwogCisgICAgY29ubmVjdChwYWdlKCks
IFNJR05BTChwZXJtaXNzaW9uUmVxdWVzdGVkKFFXS1Blcm1pc3Npb25SZXF1ZXN0JikpLCB0aGlz
LCBTTE9UKHBlcm1pc3Npb25SZXF1ZXN0ZWQoUVdLUGVybWlzc2lvblJlcXVlc3QmKSkpOworCiAg
ICAgLy8gdGhlIHpvb20gdmFsdWVzIGFyZSBjaG9zZW4gdG8gYmUgbGlrZSBpbiBNb3ppbGxhIEZp
cmVmb3ggMwogICAgIGlmICghbV96b29tTGV2ZWxzLmNvdW50KCkpIHsKICAgICAgICAgbV96b29t
TGV2ZWxzIDw8IDAuMyA8PCAwLjUgPDwgMC42NyA8PCAwLjggPDwgMC45OwpAQCAtMzkwLDYgKzM5
MywxMSBAQAogICAgICAgICBtX3VzZXJBZ2VudExpc3QgPDwgd2tQYWdlLT5jdXN0b21Vc2VyQWdl
bnQoKTsKIH0KIAordm9pZCBCcm93c2VyV2luZG93OjpwZXJtaXNzaW9uUmVxdWVzdGVkKFFXS1Bl
cm1pc3Npb25SZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJlcXVlc3Quc2V0QWNjZXB0ZWQodHJ1
ZSk7Cit9CisKIHZvaWQgQnJvd3NlcldpbmRvdzo6YXBwbHlab29tKCkKIHsKICAgICBpZiAobV9p
c1pvb21UZXh0T25seSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1NzQxKQorKysgU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEt
MDUtMDQgIE1haGVzaCBLdWxrYXJuaSAgPG1haGVzaC5rdWxrYXJuaUBub2tpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XVtXSzJdIElt
cGxlbWVudCBwZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAgICBPcmlnaW5hbCBBdXRo
b3I6IGtlbm5ldGguci5jaHJpc3RpYW5zZW5Abm9raWEuY29tCisKKyAgICAgICAgSW1wbGVtZW50
cyBwZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydCBvZiBXZWJLaXQyOworICAgICAgICBhZGRlZCBz
dXBwb3J0IGZvciBnZW9sb2NhdGlvbiBwZXJtaXNzaW9uIHRvIHBhZ2UgY2xpZW50LgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC9DbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKHF0X3drX2Rl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
cXdrcGFnZS5jcHA6CisgICAgICAgIChRV0tQYWdlOjpRV0tQYWdlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3Bl
cm1pc3Npb25yZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVz
dDo6UVdLUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoUVdLUGVybWlzc2lvblJlcXVlc3Q6
On5RV0tQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdDo6
b3BlcmF0b3I9KToKKyAgICAgICAgKFFXS1Blcm1pc3Npb25SZXF1ZXN0Ojp0eXBlKToKKyAgICAg
ICAgKFFXS1Blcm1pc3Npb25SZXF1ZXN0OjpvcmlnaW4pOgorICAgICAgICAoUVdLUGVybWlzc2lv
blJlcXVlc3Q6OnNldEFjY2VwdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3Bl
cm1pc3Npb25yZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdr
cGVybWlzc2lvbnJlcXVlc3RfcC5oOiBBZGRlZC4KKyAgICAgICAgKFFXS1Blcm1pc3Npb25SZXF1
ZXN0UHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKFFXS1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZTo6UVdLUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKToKKyAgICAgICAgKFFXS1Blcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZTo6flFXS1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC9xd2tzZWN1cml0eW9yaWdpbi5jcHA6IEFkZGVkLgorICAgICAgICAo
UVdLU2VjdXJpdHlPcmlnaW46OlFXS1NlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFFXS1NlY3Vy
aXR5T3JpZ2luOjpvcGVyYXRvcj0pOgorICAgICAgICAoUVdLU2VjdXJpdHlPcmlnaW46OnNjaGVt
ZSk6CisgICAgICAgIChRV0tTZWN1cml0eU9yaWdpbjo6aG9zdCk6CisgICAgICAgIChRV0tTZWN1
cml0eU9yaWdpbjo6cG9ydCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2tzZWN1cml0
eW9yaWdpbi5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3NlY3VyaXR5
b3JpZ2luX3AuaDogQWRkZWQuCisgICAgICAgIChRV0tTZWN1cml0eU9yaWdpblByaXZhdGU6OmNy
ZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAg
ICAgICAqIFdlYktpdDIucHJvOgorICAgICAgICAqIFdlYktpdDJBUEkucHJpOgorCiAyMDExLTA1
LTAzICBQcmF0aWsgU29sYW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEku
cHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEkucHJpCShyZXZpc2lv
biA4NTcxNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEkucHJpCSh3b3JraW5nIGNvcHkp
CkBAIC00OCw3ICs0OCw5IEBACiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2tjb250ZXh0LmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2toaXN0b3J5LmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2twYWdlLmNwcCBcCisgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2twZXJtaXNzaW9ucmVxdWVzdC5jcHAgXAogICAgICQkU09VUkNFX0RJUi9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcHJlZmVyZW5jZXMuY3BwIFwKKyAgICAkJFNPVVJD
RV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3NlY3VyaXR5b3JpZ2luLmNwcCBcCiAg
ICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZS5jcHAgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwIFwKICAgICAkJFNPVVJD
RV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbS5jcHAgXApAQCAtMTI4LDcgKzEzMCwxMSBAQAogICAgICQkU09VUkNF
X0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdraGlzdG9yeV9wLmggXAogICAgICQkU09V
UkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oIFwKICAgICAkJFNPVVJD
RV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oIFwKKyAgICAkJFNPVVJD
RV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Blcm1pc3Npb25yZXF1ZXN0LmggXAor
ICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGVybWlzc2lvbnJl
cXVlc3RfcC5oIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3
a3ByZWZlcmVuY2VzLmggXAorICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdrc2VjdXJpdHlvcmlnaW4uaCBcCisgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2tzZWN1cml0eW9yaWdpbl9wLmggXAogICAgICQkU09VUkNFX0RJUi9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExp
c3QuaCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCBcCiAgICAgJCRTT1VSQ0VfRElS
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RS
ZXN1bHQuaCBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkocmV2aXNpb24gODU3MTYpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjM1LDYgKzIzNSw3IEBACiAg
ICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZENsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2Vi
VUlDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5oIFwK
KyAgICBVSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmggXAogICAgIFVJUHJv
Y2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0LmggXAogICAgIFdlYlByb2Nlc3MvQXBwbGljYXRp
b25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0F1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIFwKQEAgLTQ1MSw2ICs0NTIsNyBA
QAogICAgIFVJUHJvY2Vzcy9xdC9UZXh0Q2hlY2tlclF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0
L1dlYkNvbnRleHRNZW51UHJveHlRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0
UXQuY3BwIFwKKyAgICBVSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmNwcCBc
CiAgICAgVUlQcm9jZXNzL3F0L1dlYkluc3BlY3RvclByb3h5UXQuY3BwIFwKICAgICBVSVByb2Nl
c3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51
UHJveHlRdC5jcHAgXApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRl
eHRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNv
bnRleHRRdC5jcHAJKHJldmlzaW9uIDg1NzE2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1dlYkNvbnRleHRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDkgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAKKyNpbmNsdWRlICJX
S1NoYXJlZEFQSUNhc3QuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgor
I2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxRUHJvY2Vzcz4KIApAQCAtNDUsNiAr
NDcsMTIgQEAKIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikKIHsKICAgICBxUmVnaXN0ZXJNZXRhVHlwZTxR
UHJvY2Vzczo6RXhpdFN0YXR1cz4oIlFQcm9jZXNzOjpFeGl0U3RhdHVzIik7CisKKyNpZiBFTkFC
TEUoR0VPTE9DQVRJT04pCisgICAgLy8gSW5pdGlhbGl6ZSBsb2NhdGlvbiBwcm92aWRlciBmb3Ig
cXQKKyAgICBzdGF0aWMgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KiBsb2NhdGlvbiA9IFdlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdDo6Y3JlYXRlKHRvQVBJKGdlb2xvY2F0aW9uTWFuYWdlclByb3h5
KCkpKTsKKyAgICBRX1VOVVNFRChsb2NhdGlvbik7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJDb250
ZXh0OjpwbGF0Zm9ybUludmFsaWRhdGVDb250ZXh0KCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAkocmV2aXNpb24gODU3MTYpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
OTIsNyArNDkyLDcgQEAKICAgICAgICAgMCwgIC8qIHBhZ2VEaWRTY3JvbGwgKi8KICAgICAgICAg
MCwgIC8qIGV4Y2VlZGVkRGF0YWJhc2VRdW90YSAqLwogICAgICAgICAwLCAgLyogcnVuT3BlblBh
bmVsICovCi0gICAgICAgIDAsICAvKiBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0ICovCisgICAgICAgIHF0X3drX2RlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QsCiAgICAgICAgIDAsICAvKiBoZWFkZXJIZWlnaHQgKi8KICAgICAgICAg
MCwgIC8qIGZvb3RlckhlaWdodCAqLwogICAgICAgICAwLCAgLyogZHJhd0hlYWRlciAqLwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9DbGllbnRJbXBsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L0NsaWVudEltcGwuY3BwCShy
ZXZpc2lvbiA4NTcxNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50
SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDEyICsyMiwxNSBAQAogCiAjaW5jbHVkZSAi
V2ViRnJhbWVQcm94eS5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLRnJh
bWUuaCIKKyNpbmNsdWRlICJXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKICNpbmNs
dWRlICJXS1N0cmluZ1F0LmgiCisjaW5jbHVkZSAiV0tUeXBlLmgiCiAjaW5jbHVkZSAiV0tVUkxR
dC5oIgotI2luY2x1ZGUgPHF3a3BhZ2UuaD4KLSNpbmNsdWRlIDxxd2twYWdlX3AuaD4KLSNpbmNs
dWRlIDxXS0ZyYW1lLmg+Ci0jaW5jbHVkZSA8V0tUeXBlLmg+CisjaW5jbHVkZSAicXdrcGFnZS5o
IgorI2luY2x1ZGUgInF3a3BhZ2VfcC5oIgorI2luY2x1ZGUgInF3a3Blcm1pc3Npb25yZXF1ZXN0
LmgiCisjaW5jbHVkZSAicXdrcGVybWlzc2lvbnJlcXVlc3RfcC5oIgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OwogCkBAIC0xODAsNiArMTgzLDEyIEBACiAgICAgZW1pdCB0b1FXS1BhZ2UoY2xp
ZW50SW5mbyktPnN0YXR1c0Jhck1lc3NhZ2UocVRleHQpOwogfQogCit2b2lkIHF0X3drX2RlY2lk
ZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmIHBhZ2UsIFdL
RnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sK
KyAgICBRV0tQZXJtaXNzaW9uUmVxdWVzdCByZXEgPSBRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGU6OmNyZWF0ZShvcmlnaW4sIHJlcXVlc3QpOworICAgIGVtaXQgdG9RV0tQYWdlKGNsaWVudElu
Zm8pLT5wZXJtaXNzaW9uUmVxdWVzdGVkKHJlcSk7Cit9CisKIHZvaWQgcXRfd2tfZGlkU2FtZURv
Y3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1l
LCBXS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIHR5cGUsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBXZWJGcmFtZVByb3h5KiB3a2ZyYW1lID0g
dG9JbXBsKGZyYW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdr
c2VjdXJpdHlvcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrc2VjdXJpdHlvcmlnaW4uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tzZWN1cml0eW9yaWdpbi5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJxd2tzZWN1cml0eW9yaWdpbi5oIgorCisjaW5jbHVkZSAiV0tTdHJpbmdR
dC5oIgorI2luY2x1ZGUgInF3a3NlY3VyaXR5b3JpZ2luX3AuaCIKKworCitRV0tTZWN1cml0eU9y
aWdpbjo6UVdLU2VjdXJpdHlPcmlnaW4oUVdLU2VjdXJpdHlPcmlnaW5Qcml2YXRlKiBwcml2KQor
eworICAgIGQgPSBwcml2OworfQorCitRV0tTZWN1cml0eU9yaWdpbjo6UVdLU2VjdXJpdHlPcmln
aW4oY29uc3QgUVdLU2VjdXJpdHlPcmlnaW4mIG90aGVyKSA6IGQob3RoZXIuZCkKK3sKK30KKwor
UVdLU2VjdXJpdHlPcmlnaW4mIFFXS1NlY3VyaXR5T3JpZ2luOjpvcGVyYXRvcj0oY29uc3QgUVdL
U2VjdXJpdHlPcmlnaW4mIG90aGVyKQoreworICAgIGQgPSBvdGhlci5kOworICAgIHJldHVybiAq
dGhpczsKK30KKworUVN0cmluZyBRV0tTZWN1cml0eU9yaWdpbjo6c2NoZW1lKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhXS1NlY3VyaXR5T3JpZ2luR2V0UHJvdG9j
b2woZC0+bV9vcmlnaW4uZ2V0KCkpKTsKK30KKworUVN0cmluZyBRV0tTZWN1cml0eU9yaWdpbjo6
aG9zdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tTZWN1cml0
eU9yaWdpbkdldEhvc3QoZC0+bV9vcmlnaW4uZ2V0KCkpKTsKK30KKwordW5zaWduZWQgc2hvcnQg
UVdLU2VjdXJpdHlPcmlnaW46OnBvcnQoKSBjb25zdAoreworICAgIHJldHVybiBXS1NlY3VyaXR5
T3JpZ2luR2V0UG9ydChkLT5tX29yaWdpbi5nZXQoKSk7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaAkocmV2aXNpb24gODU3MTYpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTYs
NiArMTYsNyBAQAogY2xhc3MgUUdyYXBoaWNzSXRlbTsKIGNsYXNzIFFXS0NvbnRleHQ7CiBjbGFz
cyBRV0tHcmFwaGljc1dpZGdldDsKK2NsYXNzIFFXS1Blcm1pc3Npb25SZXF1ZXN0OwogY2xhc3Mg
UVdLUHJlZmVyZW5jZXM7CiBjbGFzcyBRV0tQYWdlUHJpdmF0ZTsKIGNsYXNzIFF0Vmlld3BvcnRB
dHRyaWJ1dGVzUHJpdmF0ZTsKQEAgLTEzOCw2ICsxMzksNyBAQAogICAgIFFfU0lHTkFMIHZvaWQg
Zm9jdXNOZXh0UHJldkNoaWxkKGJvb2wpOwogICAgIFFfU0lHTkFMIHZvaWQgc2hvd0NvbnRleHRN
ZW51KFFTaGFyZWRQb2ludGVyPFFNZW51Pik7CiAgICAgUV9TSUdOQUwgdm9pZCBlbmdpbmVDb25u
ZWN0aW9uQ2hhbmdlZChib29sIGNvbm5lY3RlZCk7CisgICAgUV9TSUdOQUwgdm9pZCBwZXJtaXNz
aW9uUmVxdWVzdGVkKFFXS1Blcm1pc3Npb25SZXF1ZXN0Jik7CiAKIHByb3RlY3RlZDoKICAgICB2
b2lkIHRpbWVyRXZlbnQoUVRpbWVyRXZlbnQqKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5oCShyZXZpc2lvbiA4NTcxNikKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00
Myw2ICs0Myw3IEBACiB2b2lkIHF0X3drX2RpZEZpbmlzaFByb2dyZXNzKFdLUGFnZVJlZiwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CiB2b2lkIHF0X3drX2RpZEJlY29tZVVucmVzcG9uc2l2ZShX
S1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdm9pZCBxdF93a19kaWRCZWNvbWVS
ZXNwb25zaXZlKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit2b2lkIHF0X3dr
X2RlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBX
S0ZyYW1lUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdm9pZCBxdF93a19kaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NhbWVEb2N1
bWVudE5hdmlnYXRpb25UeXBlLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwog
CiAvLyB1aSBjbGllbnQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdr
c2VjdXJpdHlvcmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3a3NlY3VyaXR5b3JpZ2luLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3NlY3VyaXR5b3JpZ2luLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDUgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAg
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgcXdrc2VjdXJpdHlvcmln
aW5faAorI2RlZmluZSBxd2tzZWN1cml0eW9yaWdpbl9oCisKKyNpbmNsdWRlICJxd2Via2l0Z2xv
YmFsLmgiCisjaW5jbHVkZSA8UVN0cmluZz4KKyNpbmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEu
aD4KKworY2xhc3MgUVdLU2VjdXJpdHlPcmlnaW5Qcml2YXRlOworCitjbGFzcyBRV0VCS0lUX0VY
UE9SVCBRV0tTZWN1cml0eU9yaWdpbiB7CitwdWJsaWM6CisgICAgUVN0cmluZyBzY2hlbWUoKSBj
b25zdDsKKyAgICBRU3RyaW5nIGhvc3QoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBzaG9ydCBwb3J0
KCkgY29uc3Q7CisKKyAgICBRV0tTZWN1cml0eU9yaWdpbihjb25zdCBRV0tTZWN1cml0eU9yaWdp
biYgb3RoZXIpOworICAgIFFXS1NlY3VyaXR5T3JpZ2luICZvcGVyYXRvcj0oY29uc3QgUVdLU2Vj
dXJpdHlPcmlnaW4mIG90aGVyKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUVdLU2Vj
dXJpdHlPcmlnaW5Qcml2YXRlOworICAgIFFXS1NlY3VyaXR5T3JpZ2luKFFXS1NlY3VyaXR5T3Jp
Z2luUHJpdmF0ZSopOworCisgICAgUUV4cGxpY2l0bHlTaGFyZWREYXRhUG9pbnRlcjxRV0tTZWN1
cml0eU9yaWdpblByaXZhdGU+IGQ7Cit9OworCisjZW5kaWYgLy8gcXdrc2VjdXJpdHlvcmlnaW5f
aApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twZXJtaXNzaW9ucmVx
dWVzdF9wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2twZXJtaXNzaW9ucmVxdWVzdF9wLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3a3Blcm1pc3Npb25yZXF1ZXN0X3AuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1MyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
ICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAg
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAg
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBxd2twZXJtaXNzaW9u
cmVxdWVzdF9wX2gKKyNkZWZpbmUgcXdrcGVybWlzc2lvbnJlcXVlc3RfcF9oCisKKyNpbmNsdWRl
ICJxd2twZXJtaXNzaW9ucmVxdWVzdC5oIgorCisjaW5jbHVkZSAicXdrc2VjdXJpdHlvcmlnaW5f
cC5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1Jl
dGFpblB0ci5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tTZWN1cml0eU9yaWdpbi5oPgorCitjbGFz
cyBRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgOiBwdWJsaWMgUVNoYXJlZERhdGEgeworcHVi
bGljOgorICAgIHN0YXRpYyBRV0tQZXJtaXNzaW9uUmVxdWVzdCBjcmVhdGUoV0tTZWN1cml0eU9y
aWdpblJlZiBvcmlnaW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIFFXS1Blcm1pc3Npb25SZXF1ZXN0KG5ldyBRV0tQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUob3JpZ2luLCByZXF1ZXN0KSk7CisgICAgfQorCisgICAgUVdL
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS0dl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCkKKyAgICAgICAgOiBtX29yaWdp
bihRV0tTZWN1cml0eU9yaWdpblByaXZhdGU6OmNyZWF0ZShvcmlnaW4pKQorICAgICAgICAsIG1f
dHlwZShRV0tQZXJtaXNzaW9uUmVxdWVzdDo6R2VvbG9jYXRpb24pCisgICAgICAgICwgbV9yZXF1
ZXN0KHJlcXVlc3QpCisgICAgeworICAgIH0KKyAgICB+UVdLUGVybWlzc2lvblJlcXVlc3RQcml2
YXRlKCkKKyAgICB7CisgICAgfQorCisgICAgUVdLU2VjdXJpdHlPcmlnaW4gbV9vcmlnaW47Cisg
ICAgUVdLUGVybWlzc2lvblJlcXVlc3Q6OlR5cGUgbV90eXBlOworCisgICAgV0tSZXRhaW5QdHI8
V0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmPiBtX3JlcXVlc3Q7Cit9OworCisjZW5k
aWYgLy8gcXdrcGVybWlzc2lvbnJlcXVlc3RfcF9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3a3Blcm1pc3Npb25yZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Blcm1pc3Npb25yZXF1ZXN0LmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGVybWlzc2lv
bnJlcXVlc3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcwIEBACisvKgorICAgIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAicXdrcGVybWlzc2lvbnJlcXVl
c3QuaCIKKworI2luY2x1ZGUgInF3a3Blcm1pc3Npb25yZXF1ZXN0X3AuaCIKKyNpbmNsdWRlIDxX
ZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0Lmg+CisKK1FXS1Blcm1pc3Npb25SZXF1ZXN0OjpRV0tQZXJtaXNzaW9uUmVxdWVz
dChRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUqIHByaXYpCit7CisgICAgZCA9IHByaXY7Cit9
CisKK1FXS1Blcm1pc3Npb25SZXF1ZXN0Ojp+UVdLUGVybWlzc2lvblJlcXVlc3QoKQoreworfQor
CitRV0tQZXJtaXNzaW9uUmVxdWVzdDo6UVdLUGVybWlzc2lvblJlcXVlc3QoY29uc3QgUVdLUGVy
bWlzc2lvblJlcXVlc3QmIG90aGVyKQorICAgIDogZChvdGhlci5kKQoreworfQorCitRV0tQZXJt
aXNzaW9uUmVxdWVzdCYgUVdLUGVybWlzc2lvblJlcXVlc3Q6Om9wZXJhdG9yPShjb25zdCBRV0tQ
ZXJtaXNzaW9uUmVxdWVzdCYgb3RoZXIpCit7CisgICAgZCA9IG90aGVyLmQ7CisgICAgcmV0dXJu
ICp0aGlzOworfQorCitRV0tQZXJtaXNzaW9uUmVxdWVzdDo6VHlwZSBRV0tQZXJtaXNzaW9uUmVx
dWVzdDo6dHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPm1fdHlwZTsKK30KKworUVdLU2Vj
dXJpdHlPcmlnaW4gUVdLUGVybWlzc2lvblJlcXVlc3Q6Om9yaWdpbigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGQtPm1fb3JpZ2luOworfQorCit2b2lkIFFXS1Blcm1pc3Npb25SZXF1ZXN0OjpzZXRB
Y2NlcHRlZChib29sIGFjY2VwdGVkKQoreworICAgIHN3aXRjaCAodHlwZSgpKSB7CisgICAgY2Fz
ZSBHZW9sb2NhdGlvbjogeworICAgICAgICBpZiAoYWNjZXB0ZWQpCisgICAgICAgICAgICBXS0dl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyhkLT5tX3JlcXVlc3QuZ2V0KCkpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3REZW55
KGQtPm1fcmVxdWVzdC5nZXQoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0
OiAKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tzZWN1cml0eW9yaWdpbl9wLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tzZWN1cml0eW9yaWdpbl9w
LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Nl
Y3VyaXR5b3JpZ2luX3AuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAgICBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorKi8KKworI2lmbmRlZiBxd2tzZWN1cml0eW9yaWdpbl9wX2gKKyNkZWZpbmUgcXdrc2Vj
dXJpdHlvcmlnaW5fcF9oCisKKyNpbmNsdWRlICJxd2tzZWN1cml0eW9yaWdpbi5oIgorCisjaW5j
bHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tTZWN1cml0
eU9yaWdpbi5oPgorCitjbGFzcyBRV0tTZWN1cml0eU9yaWdpblByaXZhdGUgOiBwdWJsaWMgUVNo
YXJlZERhdGEgeworcHVibGljOgorICAgIHN0YXRpYyBRV0tTZWN1cml0eU9yaWdpbiBjcmVhdGUo
V0tTZWN1cml0eU9yaWdpblJlZiBvKQorICAgIHsKKyAgICAgICAgUVdLU2VjdXJpdHlPcmlnaW5Q
cml2YXRlKiBwcml2ID0gbmV3IFFXS1NlY3VyaXR5T3JpZ2luUHJpdmF0ZTsKKyAgICAgICAgcHJp
di0+bV9vcmlnaW4gPSBvOworICAgICAgICByZXR1cm4gUVdLU2VjdXJpdHlPcmlnaW4ocHJpdik7
CisgICAgfQorICAgIFdLUmV0YWluUHRyPFdLU2VjdXJpdHlPcmlnaW5SZWY+IG1fb3JpZ2luOwor
fTsKKworI2VuZGlmIC8vIHF3a3NlY3VyaXR5b3JpZ2luX3BfaApJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twZXJtaXNzaW9ucmVxdWVzdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGVybWlzc2lvbnJlcXVlc3QuaAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGVybWlz
c2lvbnJlcXVlc3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBAQAorI2lmbmRlZiBxd2tw
ZXJtaXNzaW9ucmVxdWVzdF9oCisjZGVmaW5lIHF3a3Blcm1pc3Npb25yZXF1ZXN0X2gKKworI2lu
Y2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKKyNpbmNsdWRlICJxd2twZXJtaXNzaW9ucmVxdWVzdC5o
IgorI2luY2x1ZGUgInF3a3NlY3VyaXR5b3JpZ2luLmgiCisjaW5jbHVkZSA8UXRDb3JlL3FzaGFy
ZWRkYXRhLmg+CisKK2NsYXNzIFFXS1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKKworY2xhc3Mg
UVdFQktJVF9FWFBPUlQgUVdLUGVybWlzc2lvblJlcXVlc3QgeworcHVibGljOgorICAgIH5RV0tQ
ZXJtaXNzaW9uUmVxdWVzdCgpOworICAgIGVudW0gVHlwZSB7CisgICAgICAgIEdlb2xvY2F0aW9u
CisgICAgfTsKKworICAgIFR5cGUgdHlwZSgpIGNvbnN0OworICAgIFFXS1NlY3VyaXR5T3JpZ2lu
IG9yaWdpbigpIGNvbnN0OworCisgICAgdm9pZCBzZXRBY2NlcHRlZChib29sKTsKKworICAgIFFX
S1Blcm1pc3Npb25SZXF1ZXN0KGNvbnN0IFFXS1Blcm1pc3Npb25SZXF1ZXN0JiBvdGhlcik7Cisg
ICAgUVdLUGVybWlzc2lvblJlcXVlc3QmIG9wZXJhdG9yPShjb25zdCBRV0tQZXJtaXNzaW9uUmVx
dWVzdCYgb3RoZXIpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBRV0tQZXJtaXNzaW9u
UmVxdWVzdFByaXZhdGU7CisgICAgUVdLUGVybWlzc2lvblJlcXVlc3QoUVdLUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlKik7CisKK3ByaXZhdGU6CisgICAgUUV4cGxpY2l0bHlTaGFyZWREYXRhUG9p
bnRlcjxRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU+IGQ7Cit9OworCisjZW5kaWYgLy8gcXdr
cGVybWlzc2lvbnJlcXVlc3RfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92235</attachid>
            <date>2011-05-04 07:04:47 -0700</date>
            <delta_ts>2011-07-13 07:01:19 -0700</delta_ts>
            <desc>patch</desc>
            <filename>59200.patch</filename>
            <type>text/plain</type>
            <size>21098</size>
            <attacher name="Mahesh Kulkarni">maheshk</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDg1NzQ0KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTEtMDUtMDQgIE1haGVzaCBLdWxrYXJuaSAgPG1haGVzaC5rdWxrYXJuaUBu
b2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgW1F0XVtXSzJdIEltcGxlbWVudCBwZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAg
ICBIb29rdXAgcGVybWlzc2lvbiBBUEkgb2YgUVdLUGFnZSB0byBNaW5pQnJvd3Nlci4gQWRkIGNh
cHMgZm9yIHN5bWJpYW4uCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93
LmNwcDoKKyAgICAgICAgKEJyb3dzZXJXaW5kb3c6OkJyb3dzZXJXaW5kb3cpOgorICAgICAgICAo
QnJvd3NlcldpbmRvdzo6cGVybWlzc2lvblJlcXVlc3RlZCk6CisgICAgICAgICogTWluaUJyb3dz
ZXIvcXQvQnJvd3NlcldpbmRvdy5oOgorICAgICAgICAqIE1pbmlCcm93c2VyL3F0L01pbmlCcm93
c2VyLnBybzoKKwogMjAxMS0wNS0wNCAgTWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgpJbmRleDogVG9vbHMvTWlu
aUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL01pbmlCcm93
c2VyL3F0L01pbmlCcm93c2VyLnBybwkocmV2aXNpb24gODU3MTYpCisrKyBUb29scy9NaW5pQnJv
d3Nlci9xdC9NaW5pQnJvd3Nlci5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAK
IAogc3ltYmlhbiB7CiAgICAgVEFSR0VULlVJRDMgPSAweEEwMDBFNTQ1Ci0gICAgVEFSR0VULkNB
UEFCSUxJVFkgPSBSZWFkVXNlckRhdGEgV3JpdGVVc2VyRGF0YSBOZXR3b3JrU2VydmljZXMKKyAg
ICBUQVJHRVQuQ0FQQUJJTElUWSA9IFJlYWRVc2VyRGF0YSBXcml0ZVVzZXJEYXRhIE5ldHdvcmtT
ZXJ2aWNlcyBMb2NhdGlvbgogfQogCiBjb250YWlucyhRVF9DT05GSUcsIG9wZW5nbCkgewpJbmRl
eDogVG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaAkocmV2aXNpb24gODU3MTYpCisrKyBU
b29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxRdEd1aT4KIAogY2xhc3MgVXJsTG9hZGVyOworY2xhc3Mg
UVdLUGVybWlzc2lvblJlcXVlc3Q7CiAKIGNsYXNzIEJyb3dzZXJXaW5kb3cgOiBwdWJsaWMgUU1h
aW5XaW5kb3cgewogICAgIFFfT0JKRUNUCkBAIC03Nyw2ICs3OCw3IEBACiAKICAgICB2b2lkIHRv
Z2dsZUF1dG9Mb2FkSW1hZ2VzKGJvb2wpOwogICAgIHZvaWQgdG9nZ2xlRGlzYWJsZUphdmFTY3Jp
cHQoYm9vbCk7CisgICAgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdGVkKFFXS1Blcm1pc3Npb25SZXF1
ZXN0Jik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVVc2VyQWdlbnRMaXN0KCk7CkluZGV4
OiBUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcAkocmV2aXNpb24gODU3MTYpCisr
KyBUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkJyb3dzZXJXaW5kb3cuaCIKIAogI2luY2x1ZGUg
IlVybExvYWRlci5oIgorI2luY2x1ZGUgInF3a3Blcm1pc3Npb25yZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAicXdrcHJlZmVyZW5jZXMuaCIKIAogc3RhdGljIFFXS1BhZ2UqIG5ld1BhZ2VGdW5jdGlvbihR
V0tQYWdlKiBwYWdlKQpAQCAtMTM0LDYgKzEzNSw4IEBACiAKICAgICBwYWdlKCktPnNldENyZWF0
ZU5ld1BhZ2VGdW5jdGlvbihuZXdQYWdlRnVuY3Rpb24pOwogCisgICAgY29ubmVjdChwYWdlKCks
IFNJR05BTChwZXJtaXNzaW9uUmVxdWVzdGVkKFFXS1Blcm1pc3Npb25SZXF1ZXN0JikpLCB0aGlz
LCBTTE9UKHBlcm1pc3Npb25SZXF1ZXN0ZWQoUVdLUGVybWlzc2lvblJlcXVlc3QmKSkpOworCiAg
ICAgLy8gdGhlIHpvb20gdmFsdWVzIGFyZSBjaG9zZW4gdG8gYmUgbGlrZSBpbiBNb3ppbGxhIEZp
cmVmb3ggMwogICAgIGlmICghbV96b29tTGV2ZWxzLmNvdW50KCkpIHsKICAgICAgICAgbV96b29t
TGV2ZWxzIDw8IDAuMyA8PCAwLjUgPDwgMC42NyA8PCAwLjggPDwgMC45OwpAQCAtMzkwLDYgKzM5
MywxMSBAQAogICAgICAgICBtX3VzZXJBZ2VudExpc3QgPDwgd2tQYWdlLT5jdXN0b21Vc2VyQWdl
bnQoKTsKIH0KIAordm9pZCBCcm93c2VyV2luZG93OjpwZXJtaXNzaW9uUmVxdWVzdGVkKFFXS1Bl
cm1pc3Npb25SZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJlcXVlc3Quc2V0QWNjZXB0ZWQodHJ1
ZSk7Cit9CisKIHZvaWQgQnJvd3NlcldpbmRvdzo6YXBwbHlab29tKCkKIHsKICAgICBpZiAobV9p
c1pvb21UZXh0T25seSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1NzQ1KQorKysgU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEt
MDUtMDQgIE1haGVzaCBLdWxrYXJuaSAgPG1haGVzaC5rdWxrYXJuaUBub2tpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XVtXSzJdIElt
cGxlbWVudCBwZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAgICBPcmlnaW5hbCBBdXRo
b3I6IGtlbm5ldGguci5jaHJpc3RpYW5zZW5Abm9raWEuY29tCisKKyAgICAgICAgSW1wbGVtZW50
cyBwZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydCBvZiBXZWJLaXQyOworICAgICAgICBhZGRlZCBz
dXBwb3J0IGZvciBnZW9sb2NhdGlvbiBwZXJtaXNzaW9uIHRvIHBhZ2UgY2xpZW50LgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC9DbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKHF0X3drX2Rl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
cXdrcGFnZS5jcHA6CisgICAgICAgIChRV0tQYWdlOjpRV0tQYWdlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3Bl
cm1pc3Npb25yZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVz
dDo6UVdLUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoUVdLUGVybWlzc2lvblJlcXVlc3Q6
On5RV0tQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdDo6
b3BlcmF0b3I9KToKKyAgICAgICAgKFFXS1Blcm1pc3Npb25SZXF1ZXN0Ojp0eXBlKToKKyAgICAg
ICAgKFFXS1Blcm1pc3Npb25SZXF1ZXN0OjpvcmlnaW4pOgorICAgICAgICAoUVdLUGVybWlzc2lv
blJlcXVlc3Q6OnNldEFjY2VwdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3Bl
cm1pc3Npb25yZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdr
cGVybWlzc2lvbnJlcXVlc3RfcC5oOiBBZGRlZC4KKyAgICAgICAgKFFXS1Blcm1pc3Npb25SZXF1
ZXN0UHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKFFXS1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZTo6UVdLUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKToKKyAgICAgICAgKFFXS1Blcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZTo6flFXS1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC9xd2tzZWN1cml0eW9yaWdpbi5jcHA6IEFkZGVkLgorICAgICAgICAo
UVdLU2VjdXJpdHlPcmlnaW46OlFXS1NlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFFXS1NlY3Vy
aXR5T3JpZ2luOjpvcGVyYXRvcj0pOgorICAgICAgICAoUVdLU2VjdXJpdHlPcmlnaW46OnNjaGVt
ZSk6CisgICAgICAgIChRV0tTZWN1cml0eU9yaWdpbjo6aG9zdCk6CisgICAgICAgIChRV0tTZWN1
cml0eU9yaWdpbjo6cG9ydCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2tzZWN1cml0
eW9yaWdpbi5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3NlY3VyaXR5
b3JpZ2luX3AuaDogQWRkZWQuCisgICAgICAgIChRV0tTZWN1cml0eU9yaWdpblByaXZhdGU6OmNy
ZWF0ZSk6CisgICAgICAgICogV2ViS2l0Mi5wcm86CisgICAgICAgICogV2ViS2l0MkFQSS5wcmk6
CisKIDIwMTEtMDUtMDMgIFByYXRpayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViS2l0MkFQSS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0MkFQSS5w
cmkJKHJldmlzaW9uIDg1NzE2KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0MkFQSS5wcmkJKHdv
cmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDkgQEAKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRleHQuY3BwIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2hpc3RvcnkuY3BwIFwKICAgICAkJFNPVVJDRV9ESVIvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwIFwKKyAgICAkJFNPVVJDRV9ESVIvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Blcm1pc3Npb25yZXF1ZXN0LmNwcCBcCiAgICAgJCRT
T1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twcmVmZXJlbmNlcy5jcHAgXAor
ICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrc2VjdXJpdHlvcmln
aW4uY3BwIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlLmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHAgXAog
ICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBcCkBAIC0xMjgsNyArMTMwLDExIEBACiAg
ICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2toaXN0b3J5X3AuaCBc
CiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmggXAog
ICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmggXAor
ICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGVybWlzc2lvbnJl
cXVlc3QuaCBcCisgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tw
ZXJtaXNzaW9ucmVxdWVzdF9wLmggXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrcHJlZmVyZW5jZXMuaCBcCisgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2tzZWN1cml0eW9yaWdpbi5oIFwKKyAgICAkJFNPVVJDRV9ESVIvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3NlY3VyaXR5b3JpZ2luX3AuaCBcCiAgICAgJCRTT1VS
Q0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdC5oIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oIFwKICAgICAk
JFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlSGl0VGVzdFJlc3VsdC5oIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdrcGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2twYWdlLmNwcAkocmV2aXNpb24gODU3MTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OTIsNyArNDkyLDcg
QEAKICAgICAgICAgMCwgIC8qIHBhZ2VEaWRTY3JvbGwgKi8KICAgICAgICAgMCwgIC8qIGV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YSAqLwogICAgICAgICAwLCAgLyogcnVuT3BlblBhbmVsICovCi0gICAg
ICAgIDAsICAvKiBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0ICov
CisgICAgICAgIHF0X3drX2RlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QsCiAgICAgICAgIDAsICAvKiBoZWFkZXJIZWlnaHQgKi8KICAgICAgICAgMCwgIC8qIGZvb3Rl
ckhlaWdodCAqLwogICAgICAgICAwLCAgLyogZHJhd0hlYWRlciAqLwpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9DbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L0NsaWVudEltcGwuY3BwCShyZXZpc2lvbiA4NTcx
NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIyLDEyICsyMiwxNSBAQAogCiAjaW5jbHVkZSAiV2ViRnJhbWVQcm94
eS5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLRnJhbWUuaCIKKyNpbmNs
dWRlICJXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJXS1N0cmlu
Z1F0LmgiCisjaW5jbHVkZSAiV0tUeXBlLmgiCiAjaW5jbHVkZSAiV0tVUkxRdC5oIgotI2luY2x1
ZGUgPHF3a3BhZ2UuaD4KLSNpbmNsdWRlIDxxd2twYWdlX3AuaD4KLSNpbmNsdWRlIDxXS0ZyYW1l
Lmg+Ci0jaW5jbHVkZSA8V0tUeXBlLmg+CisjaW5jbHVkZSAicXdrcGFnZS5oIgorI2luY2x1ZGUg
InF3a3BhZ2VfcC5oIgorI2luY2x1ZGUgInF3a3Blcm1pc3Npb25yZXF1ZXN0LmgiCisjaW5jbHVk
ZSAicXdrcGVybWlzc2lvbnJlcXVlc3RfcC5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owog
CkBAIC0xODAsNiArMTgzLDEyIEBACiAgICAgZW1pdCB0b1FXS1BhZ2UoY2xpZW50SW5mbyktPnN0
YXR1c0Jhck1lc3NhZ2UocVRleHQpOwogfQogCit2b2lkIHF0X3drX2RlY2lkZVBvbGljeUZvckdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJh
bWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RSZWYgcmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBRV0tQZXJt
aXNzaW9uUmVxdWVzdCByZXEgPSBRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU6OmNyZWF0ZShv
cmlnaW4sIHJlcXVlc3QpOworICAgIGVtaXQgdG9RV0tQYWdlKGNsaWVudEluZm8pLT5wZXJtaXNz
aW9uUmVxdWVzdGVkKHJlcSk7Cit9CisKIHZvaWQgcXRfd2tfZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbkZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1NhbWVEb2N1
bWVudE5hdmlnYXRpb25UeXBlIHR5cGUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKIHsKICAgICBXZWJGcmFtZVByb3h5KiB3a2ZyYW1lID0gdG9JbXBsKGZyYW1l
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrc2VjdXJpdHlvcmln
aW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdr
c2VjdXJpdHlvcmlnaW4uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2tzZWN1cml0eW9yaWdpbi5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NTUgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJxd2tzZWN1cml0eW9yaWdpbi5oIgorCisjaW5jbHVkZSAiV0tTdHJpbmdRdC5oIgorI2luY2x1
ZGUgInF3a3NlY3VyaXR5b3JpZ2luX3AuaCIKKworCitRV0tTZWN1cml0eU9yaWdpbjo6UVdLU2Vj
dXJpdHlPcmlnaW4oUVdLU2VjdXJpdHlPcmlnaW5Qcml2YXRlKiBwcml2KQoreworICAgIGQgPSBw
cml2OworfQorCitRV0tTZWN1cml0eU9yaWdpbjo6UVdLU2VjdXJpdHlPcmlnaW4oY29uc3QgUVdL
U2VjdXJpdHlPcmlnaW4mIG90aGVyKSA6IGQob3RoZXIuZCkKK3sKK30KKworUVdLU2VjdXJpdHlP
cmlnaW4mIFFXS1NlY3VyaXR5T3JpZ2luOjpvcGVyYXRvcj0oY29uc3QgUVdLU2VjdXJpdHlPcmln
aW4mIG90aGVyKQoreworICAgIGQgPSBvdGhlci5kOworICAgIHJldHVybiAqdGhpczsKK30KKwor
UVN0cmluZyBRV0tTZWN1cml0eU9yaWdpbjo6c2NoZW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
V0tTdHJpbmdDb3B5UVN0cmluZyhXS1NlY3VyaXR5T3JpZ2luR2V0UHJvdG9jb2woZC0+bV9vcmln
aW4uZ2V0KCkpKTsKK30KKworUVN0cmluZyBRV0tTZWN1cml0eU9yaWdpbjo6aG9zdCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tTZWN1cml0eU9yaWdpbkdldEhv
c3QoZC0+bV9vcmlnaW4uZ2V0KCkpKTsKK30KKwordW5zaWduZWQgc2hvcnQgUVdLU2VjdXJpdHlP
cmlnaW46OnBvcnQoKSBjb25zdAoreworICAgIHJldHVybiBXS1NlY3VyaXR5T3JpZ2luR2V0UG9y
dChkLT5tX29yaWdpbi5nZXQoKSk7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3a3BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3a3BhZ2UuaAkocmV2aXNpb24gODU3MTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTYsNiArMTYsNyBAQAog
Y2xhc3MgUUdyYXBoaWNzSXRlbTsKIGNsYXNzIFFXS0NvbnRleHQ7CiBjbGFzcyBRV0tHcmFwaGlj
c1dpZGdldDsKK2NsYXNzIFFXS1Blcm1pc3Npb25SZXF1ZXN0OwogY2xhc3MgUVdLUHJlZmVyZW5j
ZXM7CiBjbGFzcyBRV0tQYWdlUHJpdmF0ZTsKIGNsYXNzIFF0Vmlld3BvcnRBdHRyaWJ1dGVzUHJp
dmF0ZTsKQEAgLTEzOCw2ICsxMzksNyBAQAogICAgIFFfU0lHTkFMIHZvaWQgZm9jdXNOZXh0UHJl
dkNoaWxkKGJvb2wpOwogICAgIFFfU0lHTkFMIHZvaWQgc2hvd0NvbnRleHRNZW51KFFTaGFyZWRQ
b2ludGVyPFFNZW51Pik7CiAgICAgUV9TSUdOQUwgdm9pZCBlbmdpbmVDb25uZWN0aW9uQ2hhbmdl
ZChib29sIGNvbm5lY3RlZCk7CisgICAgUV9TSUdOQUwgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdGVk
KFFXS1Blcm1pc3Npb25SZXF1ZXN0Jik7CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIHRpbWVyRXZl
bnQoUVRpbWVyRXZlbnQqKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
Q2xpZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvQ2xpZW50SW1wbC5oCShyZXZpc2lvbiA4NTcxNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBA
CiB2b2lkIHF0X3drX2RpZEZpbmlzaFByb2dyZXNzKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7CiB2b2lkIHF0X3drX2RpZEJlY29tZVVucmVzcG9uc2l2ZShXS1BhZ2VSZWYsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwogdm9pZCBxdF93a19kaWRCZWNvbWVSZXNwb25zaXZlKFdL
UGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit2b2lkIHF0X3drX2RlY2lkZVBvbGlj
eUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBX
S1NlY3VyaXR5T3JpZ2luUmVmLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwogdm9pZCBxdF93a19kaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NhbWVEb2N1bWVudE5hdmlnYXRp
b25UeXBlLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiAvLyB1aSBjbGll
bnQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrc2VjdXJpdHlvcmln
aW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Nl
Y3VyaXR5b3JpZ2luLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3a3NlY3VyaXR5b3JpZ2luLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAK
Ky8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgcXdrc2VjdXJpdHlvcmlnaW5faAorI2RlZmlu
ZSBxd2tzZWN1cml0eW9yaWdpbl9oCisKKyNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCisjaW5j
bHVkZSA8UVN0cmluZz4KKyNpbmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KKworY2xhc3Mg
UVdLU2VjdXJpdHlPcmlnaW5Qcml2YXRlOworCitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRV0tTZWN1
cml0eU9yaWdpbiB7CitwdWJsaWM6CisgICAgUVN0cmluZyBzY2hlbWUoKSBjb25zdDsKKyAgICBR
U3RyaW5nIGhvc3QoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBzaG9ydCBwb3J0KCkgY29uc3Q7CisK
KyAgICBRV0tTZWN1cml0eU9yaWdpbihjb25zdCBRV0tTZWN1cml0eU9yaWdpbiYgb3RoZXIpOwor
ICAgIFFXS1NlY3VyaXR5T3JpZ2luICZvcGVyYXRvcj0oY29uc3QgUVdLU2VjdXJpdHlPcmlnaW4m
IG90aGVyKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUVdLU2VjdXJpdHlPcmlnaW5Q
cml2YXRlOworICAgIFFXS1NlY3VyaXR5T3JpZ2luKFFXS1NlY3VyaXR5T3JpZ2luUHJpdmF0ZSop
OworCisgICAgUUV4cGxpY2l0bHlTaGFyZWREYXRhUG9pbnRlcjxRV0tTZWN1cml0eU9yaWdpblBy
aXZhdGU+IGQ7Cit9OworCisjZW5kaWYgLy8gcXdrc2VjdXJpdHlvcmlnaW5faApJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twZXJtaXNzaW9ucmVxdWVzdF9wLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twZXJtaXNzaW9u
cmVxdWVzdF9wLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3a3Blcm1pc3Npb25yZXF1ZXN0X3AuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MyBA
QAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBxd2twZXJtaXNzaW9ucmVxdWVzdF9wX2gK
KyNkZWZpbmUgcXdrcGVybWlzc2lvbnJlcXVlc3RfcF9oCisKKyNpbmNsdWRlICJxd2twZXJtaXNz
aW9ucmVxdWVzdC5oIgorCisjaW5jbHVkZSAicXdrc2VjdXJpdHlvcmlnaW5fcC5oIgorI2luY2x1
ZGUgPFdlYktpdDIvV0tQYWdlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgor
I2luY2x1ZGUgPFdlYktpdDIvV0tTZWN1cml0eU9yaWdpbi5oPgorCitjbGFzcyBRV0tQZXJtaXNz
aW9uUmVxdWVzdFByaXZhdGUgOiBwdWJsaWMgUVNoYXJlZERhdGEgeworcHVibGljOgorICAgIHN0
YXRpYyBRV0tQZXJtaXNzaW9uUmVxdWVzdCBjcmVhdGUoV0tTZWN1cml0eU9yaWdpblJlZiBvcmln
aW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0KQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIFFXS1Blcm1pc3Npb25SZXF1ZXN0KG5ldyBRV0tQZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGUob3JpZ2luLCByZXF1ZXN0KSk7CisgICAgfQorCisgICAgUVdLUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCkKKyAgICAgICAgOiBtX29yaWdpbihRV0tTZWN1cml0
eU9yaWdpblByaXZhdGU6OmNyZWF0ZShvcmlnaW4pKQorICAgICAgICAsIG1fdHlwZShRV0tQZXJt
aXNzaW9uUmVxdWVzdDo6R2VvbG9jYXRpb24pCisgICAgICAgICwgbV9yZXF1ZXN0KHJlcXVlc3Qp
CisgICAgeworICAgIH0KKyAgICB+UVdLUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKCkKKyAgICB7
CisgICAgfQorCisgICAgUVdLU2VjdXJpdHlPcmlnaW4gbV9vcmlnaW47CisgICAgUVdLUGVybWlz
c2lvblJlcXVlc3Q6OlR5cGUgbV90eXBlOworCisgICAgV0tSZXRhaW5QdHI8V0tHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UmVmPiBtX3JlcXVlc3Q7Cit9OworCisjZW5kaWYgLy8gcXdrcGVy
bWlzc2lvbnJlcXVlc3RfcF9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3a3Blcm1pc3Npb25yZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3a3Blcm1pc3Npb25yZXF1ZXN0LmNwcAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGVybWlzc2lvbnJlcXVlc3QuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcwIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAg
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAicXdrcGVybWlzc2lvbnJlcXVlc3QuaCIKKworI2lu
Y2x1ZGUgInF3a3Blcm1pc3Npb25yZXF1ZXN0X3AuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFz
ZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg+
CisKK1FXS1Blcm1pc3Npb25SZXF1ZXN0OjpRV0tQZXJtaXNzaW9uUmVxdWVzdChRV0tQZXJtaXNz
aW9uUmVxdWVzdFByaXZhdGUqIHByaXYpCit7CisgICAgZCA9IHByaXY7Cit9CisKK1FXS1Blcm1p
c3Npb25SZXF1ZXN0Ojp+UVdLUGVybWlzc2lvblJlcXVlc3QoKQoreworfQorCitRV0tQZXJtaXNz
aW9uUmVxdWVzdDo6UVdLUGVybWlzc2lvblJlcXVlc3QoY29uc3QgUVdLUGVybWlzc2lvblJlcXVl
c3QmIG90aGVyKQorICAgIDogZChvdGhlci5kKQoreworfQorCitRV0tQZXJtaXNzaW9uUmVxdWVz
dCYgUVdLUGVybWlzc2lvblJlcXVlc3Q6Om9wZXJhdG9yPShjb25zdCBRV0tQZXJtaXNzaW9uUmVx
dWVzdCYgb3RoZXIpCit7CisgICAgZCA9IG90aGVyLmQ7CisgICAgcmV0dXJuICp0aGlzOworfQor
CitRV0tQZXJtaXNzaW9uUmVxdWVzdDo6VHlwZSBRV0tQZXJtaXNzaW9uUmVxdWVzdDo6dHlwZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPm1fdHlwZTsKK30KKworUVdLU2VjdXJpdHlPcmlnaW4g
UVdLUGVybWlzc2lvblJlcXVlc3Q6Om9yaWdpbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPm1f
b3JpZ2luOworfQorCit2b2lkIFFXS1Blcm1pc3Npb25SZXF1ZXN0OjpzZXRBY2NlcHRlZChib29s
IGFjY2VwdGVkKQoreworICAgIHN3aXRjaCAodHlwZSgpKSB7CisgICAgY2FzZSBHZW9sb2NhdGlv
bjogeworICAgICAgICBpZiAoYWNjZXB0ZWQpCisgICAgICAgICAgICBXS0dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RBbGxvdyhkLT5tX3JlcXVlc3QuZ2V0KCkpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3REZW55KGQtPm1fcmVxdWVz
dC5nZXQoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OiAKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2tzZWN1cml0eW9yaWdpbl9wLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tzZWN1cml0eW9yaWdpbl9wLmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3NlY3VyaXR5b3JpZ2lu
X3AuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKwor
I2lmbmRlZiBxd2tzZWN1cml0eW9yaWdpbl9wX2gKKyNkZWZpbmUgcXdrc2VjdXJpdHlvcmlnaW5f
cF9oCisKKyNpbmNsdWRlICJxd2tzZWN1cml0eW9yaWdpbi5oIgorCisjaW5jbHVkZSA8V2ViS2l0
Mi9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tTZWN1cml0eU9yaWdpbi5oPgor
CitjbGFzcyBRV0tTZWN1cml0eU9yaWdpblByaXZhdGUgOiBwdWJsaWMgUVNoYXJlZERhdGEgewor
cHVibGljOgorICAgIHN0YXRpYyBRV0tTZWN1cml0eU9yaWdpbiBjcmVhdGUoV0tTZWN1cml0eU9y
aWdpblJlZiBvKQorICAgIHsKKyAgICAgICAgUVdLU2VjdXJpdHlPcmlnaW5Qcml2YXRlKiBwcml2
ID0gbmV3IFFXS1NlY3VyaXR5T3JpZ2luUHJpdmF0ZTsKKyAgICAgICAgcHJpdi0+bV9vcmlnaW4g
PSBvOworICAgICAgICByZXR1cm4gUVdLU2VjdXJpdHlPcmlnaW4ocHJpdik7CisgICAgfQorICAg
IFdLUmV0YWluUHRyPFdLU2VjdXJpdHlPcmlnaW5SZWY+IG1fb3JpZ2luOworfTsKKworI2VuZGlm
IC8vIHF3a3NlY3VyaXR5b3JpZ2luX3BfaApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2twZXJtaXNzaW9ucmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGVybWlzc2lvbnJlcXVlc3QuaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGVybWlzc2lvbnJlcXVlc3Qu
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBAQAorI2lmbmRlZiBxd2twZXJtaXNzaW9ucmVx
dWVzdF9oCisjZGVmaW5lIHF3a3Blcm1pc3Npb25yZXF1ZXN0X2gKKworI2luY2x1ZGUgInF3ZWJr
aXRnbG9iYWwuaCIKKyNpbmNsdWRlICJxd2twZXJtaXNzaW9ucmVxdWVzdC5oIgorI2luY2x1ZGUg
InF3a3NlY3VyaXR5b3JpZ2luLmgiCisjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRkYXRhLmg+CisK
K2NsYXNzIFFXS1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKKworY2xhc3MgUVdFQktJVF9FWFBP
UlQgUVdLUGVybWlzc2lvblJlcXVlc3QgeworcHVibGljOgorICAgIH5RV0tQZXJtaXNzaW9uUmVx
dWVzdCgpOworICAgIGVudW0gVHlwZSB7CisgICAgICAgIEdlb2xvY2F0aW9uCisgICAgfTsKKwor
ICAgIFR5cGUgdHlwZSgpIGNvbnN0OworICAgIFFXS1NlY3VyaXR5T3JpZ2luIG9yaWdpbigpIGNv
bnN0OworCisgICAgdm9pZCBzZXRBY2NlcHRlZChib29sKTsKKworICAgIFFXS1Blcm1pc3Npb25S
ZXF1ZXN0KGNvbnN0IFFXS1Blcm1pc3Npb25SZXF1ZXN0JiBvdGhlcik7CisgICAgUVdLUGVybWlz
c2lvblJlcXVlc3QmIG9wZXJhdG9yPShjb25zdCBRV0tQZXJtaXNzaW9uUmVxdWVzdCYgb3RoZXIp
OworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGU7CisgICAgUVdLUGVybWlzc2lvblJlcXVlc3QoUVdLUGVybWlzc2lvblJlcXVlc3RQcml2YXRl
Kik7CisKK3ByaXZhdGU6CisgICAgUUV4cGxpY2l0bHlTaGFyZWREYXRhUG9pbnRlcjxRV0tQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGU+IGQ7Cit9OworCisjZW5kaWYgLy8gcXdrcGVybWlzc2lvbnJl
cXVlc3RfaAo=
</data>
<flag name="review"
          id="85182"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113073</attachid>
            <date>2011-10-31 13:01:34 -0700</date>
            <delta_ts>2011-11-02 00:25:57 -0700</delta_ts>
            <desc>Implements geopermission api in Qt webkit2</desc>
            <filename>geopermission.patch</filename>
            <type>text/plain</type>
            <size>19756</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBiMDNlZDhlNjNiZTQyZjdhYWU0NGRjZDk1NDE5Njk4MmUxYjE5N2VjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IFRodSwgMjcgT2N0IDIwMTEgMTE6MDE6MzkgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBJbXBsZW1lbnRpbmcgdGhlIHBlcm1pc3Npb24gQVBJIGZvciBnZW9sb2Nh
dGlvbi4KClNpZ25lZC1vZmYtYnk6IEFkZW5pbHNvbiBDYXZhbGNhbnRpIDxhZGVuaWxzb24uc2ls
dmFAb3BlbmJvc3NhLm9yZz4KLS0tCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMzYgKysrKysrKysrKy0KIC4uLi9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcCAgIHwgICAgNiArKwogLi4uL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXdfcC5oICAgfCAgICAyICsKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcCAgICAgICAgIHwgICAxMyArKysrLQogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0VG91Y2hWaWV3SW50ZXJmYWNlLmggfCAgICAyICsK
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdJbnRlcmZhY2UuaCAgICAgIHwgICAg
NCArCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXdrcGVybWlzc2lvbnJlcXVlc3QuY3BwICB8
ICAgNzAgKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9x
d2twZXJtaXNzaW9ucmVxdWVzdC5oIHwgICAzNCArKysrKysrKysrCiAuLi4vV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvcXdrcGVybWlzc2lvbnJlcXVlc3RfcC5oICB8ICAgNTMgKysrKysrKysrKysrKysr
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXdrc2VjdXJpdHlvcmlnaW4uY3BwICB8ICAg
NTQgKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXdrc2VjdXJp
dHlvcmlnaW4uaCAgICB8ICAgNDUgKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L3F3a3NlY3VyaXR5b3JpZ2luX3AuaCAgfCAgIDM5ICsrKysrKysrKysrCiBTb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnBybyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKysKIDEz
IGZpbGVzIGNoYW5nZWQsIDM2MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xd2twZXJtaXNzaW9ucmVx
dWVzdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
cXdrcGVybWlzc2lvbnJlcXVlc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9xd2twZXJtaXNzaW9ucmVxdWVzdF9wLmgKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXdrc2VjdXJpdHlvcmlnaW4uY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3F3a3NlY3VyaXR5b3Jp
Z2luLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXdr
c2VjdXJpdHlvcmlnaW5fcC5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGFhNjUwMTAuLmEzMzZmYjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMS0xMC0xOSAgQWRlbmlsc29uIENhdmFsY2FudGkg
IDxhZGVuaWxzb24uc2lsdmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbUXRdW1dLMl0gSW1w
bGVtZW50IHBlcm1pc3Npb24gQVBJIGZvciBRdCBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTIwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEhvb2t1cCBwZXJtaXNzaW9uIEFQSSBmb3IgZ2VvbG9j
YXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHA6CisgICAgICAg
IChxdF93a19kZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9x
dC9xd2twZXJtaXNzaW9ucmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoUVdLUGVybWlzc2lv
blJlcXVlc3Q6OlFXS1Blcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFFXS1Blcm1pc3Npb25S
ZXF1ZXN0Ojp+UVdLUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoUVdLUGVybWlzc2lvblJl
cXVlc3Q6Om9wZXJhdG9yPSk6CisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdDo6dHlwZSk6
CisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdDo6b3JpZ2luKToKKyAgICAgICAgKFFXS1Bl
cm1pc3Npb25SZXF1ZXN0OjpzZXRBY2NlcHRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L3F3
a3Blcm1pc3Npb25yZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9xd2tw
ZXJtaXNzaW9ucmVxdWVzdF9wLmg6IEFkZGVkLgorICAgICAgICAoUVdLUGVybWlzc2lvblJlcXVl
c3RQcml2YXRlOjpjcmVhdGUpOgorICAgICAgICAoUVdLUGVybWlzc2lvblJlcXVlc3RQcml2YXRl
OjpRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUpOgorICAgICAgICAoUVdLUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlOjp+UVdLUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvcXQvcXdrc2VjdXJpdHlvcmlnaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFFXS1Nl
Y3VyaXR5T3JpZ2luOjpRV0tTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChRV0tTZWN1cml0eU9y
aWdpbjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFFXS1NlY3VyaXR5T3JpZ2luOjpzY2hlbWUpOgor
ICAgICAgICAoUVdLU2VjdXJpdHlPcmlnaW46Omhvc3QpOgorICAgICAgICAoUVdLU2VjdXJpdHlP
cmlnaW46OnBvcnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9xd2tzZWN1cml0eW9yaWdpbi5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvcXdrc2VjdXJpdHlvcmlnaW5fcC5oOiBB
ZGRlZC4KKyAgICAgICAgKFFXS1NlY3VyaXR5T3JpZ2luUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAg
ICAgKiBXZWJLaXQyLnBybzoKKwogMjAxMS0xMC0zMSAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJh
IEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtRdF0gTWFr
ZSBRV2ViUHJlZmVyZW5jZXMgaG9sZCBhIFF0V2ViUGFnZVByb3h5CkBAIC02MDksNyArNjQ0LDYg
QEAKICAgICAgICAgKFF0V2ViUGFnZVByb3h5Ojppbml0KToKICAgICAgICAgKiBVSVByb2Nlc3Mv
cXQvUXRXZWJQYWdlUHJveHkuaDoKICAgICAgICAgKFF0V2ViUGFnZVByb3h5Ojp2aWV3SW50ZXJm
YWNlKToKLQogMjAxMS0xMC0yNyAgWmVubyBBbGJpc3NlciAgPHplbm8uYWxiaXNzZXJAbm9raWEu
Y29tPgogCiAgICAgICAgIFtRdF1bV0syXSBSZW1vdmUgUUFjdGlvbiBmcm9tIE1pbmlCcm93c2Vy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vi
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmll
dy5jcHAKaW5kZXggOGVmNDc5Mi4uOGNmNDQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcApAQCAtNTAzLDYgKzUwMywxMiBA
QCB2b2lkIFFEZXNrdG9wV2ViVmlld1ByaXZhdGU6OmRpZE1vdXNlTW92ZU92ZXJFbGVtZW50KGNv
bnN0IFFVcmwmIGxpbmtVUkwsIGNvbnN0CiAgICAgZW1pdCBxLT5saW5rSG92ZXJlZChsYXN0SG92
ZXJlZFVSTCwgbGFzdEhvdmVyZWRUaXRsZSk7CiB9CiAKK3ZvaWQgUURlc2t0b3BXZWJWaWV3UHJp
dmF0ZTo6cGVybWlzc2lvblJlcXVlc3RlZChRV0tQZXJtaXNzaW9uUmVxdWVzdCYgcmVxdWVzdCkK
K3sKKyAgICAvLyBGb3Igd2hpbGUgc2V0IGl0IHRvIHRydWUgYnkgZGVmYXVsdC4KKyAgICByZXF1
ZXN0LnNldEFjY2VwdGVkKHRydWUpOworfQorCiBzdGF0aWMgUXRQb2xpY3lJbnRlcmZhY2U6OlBv
bGljeUFjdGlvbiB0b1BvbGljeUFjdGlvbihRRGVza3RvcFdlYlZpZXc6Ok5hdmlnYXRpb25Qb2xp
Y3kgcG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlld19wLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlld19wLmgKaW5kZXggYzE1ZWVmMC4u
Njc4NWY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVz
a3RvcHdlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRl
c2t0b3B3ZWJ2aWV3X3AuaApAQCAtOTMsNiArOTMsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVh
bCB2b2lkIGRpZE1vdXNlTW92ZU92ZXJFbGVtZW50KGNvbnN0IFFVcmwmLCBjb25zdCBRU3RyaW5n
Jik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcGVybWlzc2lvblJlcXVlc3RlZChRV0tQZXJtaXNzaW9u
UmVxdWVzdCYpOworCiAgICAgLy8gUXRQb2xpY3lJbnRlcmZhY2UuCiAgICAgdmlydHVhbCBRdFBv
bGljeUludGVyZmFjZTo6UG9saWN5QWN0aW9uIG5hdmlnYXRpb25Qb2xpY3lGb3JVUkwoY29uc3Qg
UVVybCYsIFF0OjpNb3VzZUJ1dHRvbiwgUXQ6OktleWJvYXJkTW9kaWZpZXJzKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuY3BwCmluZGV4IGVhZTVmMjEuLjNiOWRk
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAKQEAgLTIx
LDEwICsyMSwxNCBAQAogI2luY2x1ZGUgIkNsaWVudEltcGwuaCIKIAogI2luY2x1ZGUgIlF0V2Vi
RXJyb3IuaCIKLSNpbmNsdWRlICJXZWJGcmFtZVByb3h5LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0
LmgiCisjaW5jbHVkZSAiV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAiV0tTdHJpbmdRdC5oIgogI2luY2x1ZGUgIldLVVJMUXQuaCIKKyNpbmNsdWRlICJXZWJGcmFt
ZVByb3h5LmgiCisjaW5jbHVkZSAicXdrcGVybWlzc2lvbnJlcXVlc3QuaCIKKyNpbmNsdWRlICJx
d2twZXJtaXNzaW9ucmVxdWVzdF9wLmgiCisKICNpbmNsdWRlIDxRdFBvbGljeUludGVyZmFjZS5o
PgogI2luY2x1ZGUgPFF0Vmlld0ludGVyZmFjZS5oPgogI2luY2x1ZGUgPFF0V2ViUGFnZVByb3h5
Lmg+CkBAIC0yNzksNiArMjgzLDEyIEBAIHN0YXRpYyB2b2lkIHF0X3drX2RlY2lkZVBvbGljeUZv
clJlc3BvbnNlKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1VSCiAgICAgV0tG
cmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsKIH0KIAorc3RhdGljIHZvaWQgcXRfd2tf
ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQoreworICAgIFFXS1Blcm1pc3Npb25SZXF1ZXN0IHJlcSA9IFFXS1Blcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZTo6Y3JlYXRlKG9yaWdpbiwgcmVxdWVzdCk7CisgICAgdG9RdFZpZXdJbnRlcmZhY2Uo
Y2xpZW50SW5mbyktPnBlcm1pc3Npb25SZXF1ZXN0ZWQocmVxKTsKK30KKwogdm9pZCBzZXR1cFBh
Z2VMb2FkZXJDbGllbnQoUXRXZWJQYWdlUHJveHkqIHF0V2ViUGFnZVByb3h5LCBXZWJQYWdlUHJv
eHkqIHdlYlBhZ2VQcm94eSkKIHsKICAgICBXS1BhZ2VMb2FkZXJDbGllbnQgbG9hZENsaWVudDsK
QEAgLTMxMCw2ICszMjAsNyBAQCB2b2lkIHNldHVwUGFnZVVpQ2xpZW50KFF0V2ViUGFnZVByb3h5
KiBxdFdlYlBhZ2VQcm94eSwgV2ViUGFnZVByb3h5KiB3ZWJQYWdlUHJveAogICAgIHVpQ2xpZW50
LnNldFN0YXR1c1RleHQgPSBxdF93a19zZXRTdGF0dXNUZXh0OwogICAgIHVpQ2xpZW50LnJ1bk9w
ZW5QYW5lbCA9IHF0X3drX3J1bk9wZW5QYW5lbDsKICAgICB1aUNsaWVudC5tb3VzZURpZE1vdmVP
dmVyRWxlbWVudCA9IHF0X3drX21vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIHVpQ2xpZW50
LmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QgPSBxdF93a19kZWNp
ZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwogICAgIFdLUGFnZVNldFBh
Z2VVSUNsaWVudCh0b0FQSSh3ZWJQYWdlUHJveHkpLCAmdWlDbGllbnQpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRUb3VjaFZpZXdJbnRlcmZhY2UuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFRvdWNoVmlld0ludGVyZmFjZS5oCmluZGV4
IDNhNDUzNDkuLjBhMzU1MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdFRvdWNoVmlld0ludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdFRvdWNoVmlld0ludGVyZmFjZS5oCkBAIC04NCw2ICs4NCw4IEBAIHByaXZhdGU6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkTW91c2VNb3ZlT3ZlckVsZW1lbnQoY29uc3QgUVVybCYsIGNvbnN0
IFFTdHJpbmcmKSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdGVkKFFX
S1Blcm1pc3Npb25SZXF1ZXN0JikgeyB9CisKIHByaXZhdGU6CiAgICAgUVRvdWNoV2ViVmlldyog
Y29uc3QgbV92aWV3cG9ydFZpZXc7CiAgICAgUVRvdWNoV2ViUGFnZSogY29uc3QgbV9wYWdlVmll
dzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdJbnRlcmZh
Y2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdJbnRlcmZhY2UuaAppbmRl
eCA1MjZhNDk1Li5lNjJkZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRWaWV3SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
Vmlld0ludGVyZmFjZS5oCkBAIC0yMSw2ICsyMSw4IEBACiAjaWZuZGVmIFF0Vmlld0ludGVyZmFj
ZV9oCiAjZGVmaW5lIFF0Vmlld0ludGVyZmFjZV9oCiAKKyNpbmNsdWRlICJxd2twZXJtaXNzaW9u
cmVxdWVzdC5oIgorCiAjaW5jbHVkZSA8UU1lbnU+CiAjaW5jbHVkZSA8UXRDb3JlL1FTaGFyZWRQ
b2ludGVyPgogI2luY2x1ZGUgPFF0Q29yZS9RU2l6ZT4KQEAgLTkzLDYgKzk1LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBjaG9vc2VGaWxlcyhXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVy
UmVmLCBjb25zdCBRU3RyaW5nTGlzdCYgc2VsZWN0ZWRGaWxlTmFtZXMsIEZpbGVDaG9vc2VyVHlw
ZSkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZE1vdXNlTW92ZU92ZXJFbGVtZW50KGNvbnN0
IFFVcmwmLCBjb25zdCBRU3RyaW5nJikgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHBlcm1pc3Np
b25SZXF1ZXN0ZWQoUVdLUGVybWlzc2lvblJlcXVlc3QmKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXdrcGVybWlzc2lvbnJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3F3a3Blcm1pc3Npb25yZXF1ZXN0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNGMyYzhlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3F3a3Blcm1pc3Npb25yZXF1ZXN0LmNw
cApAQCAtMCwwICsxLDcwIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAicXdrcGVybWlzc2lvbnJlcXVlc3QuaCIKKworI2luY2x1ZGUgInF3a3Bl
cm1pc3Npb25yZXF1ZXN0X3AuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1
ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg+CisKK1FXS1Blcm1p
c3Npb25SZXF1ZXN0OjpRV0tQZXJtaXNzaW9uUmVxdWVzdChRV0tQZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGUqIHByaXYpCit7CisgICAgZCA9IHByaXY7Cit9CisKK1FXS1Blcm1pc3Npb25SZXF1ZXN0
Ojp+UVdLUGVybWlzc2lvblJlcXVlc3QoKQoreworfQorCitRV0tQZXJtaXNzaW9uUmVxdWVzdDo6
UVdLUGVybWlzc2lvblJlcXVlc3QoY29uc3QgUVdLUGVybWlzc2lvblJlcXVlc3QmIG90aGVyKQor
ICAgIDogZChvdGhlci5kKQoreworfQorCitRV0tQZXJtaXNzaW9uUmVxdWVzdCYgUVdLUGVybWlz
c2lvblJlcXVlc3Q6Om9wZXJhdG9yPShjb25zdCBRV0tQZXJtaXNzaW9uUmVxdWVzdCYgb3RoZXIp
Cit7CisgICAgZCA9IG90aGVyLmQ7CisgICAgcmV0dXJuICp0aGlzOworfQorCitRV0tQZXJtaXNz
aW9uUmVxdWVzdDo6VHlwZSBRV0tQZXJtaXNzaW9uUmVxdWVzdDo6dHlwZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGQtPm1fdHlwZTsKK30KKworUVdLU2VjdXJpdHlPcmlnaW4gUVdLUGVybWlzc2lv
blJlcXVlc3Q6Om9yaWdpbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPm1fb3JpZ2luOworfQor
Cit2b2lkIFFXS1Blcm1pc3Npb25SZXF1ZXN0OjpzZXRBY2NlcHRlZChib29sIGFjY2VwdGVkKQor
eworICAgIHN3aXRjaCAodHlwZSgpKSB7CisgICAgY2FzZSBHZW9sb2NhdGlvbjogeworICAgICAg
ICBpZiAoYWNjZXB0ZWQpCisgICAgICAgICAgICBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RBbGxvdyhkLT5tX3JlcXVlc3QuZ2V0KCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBX
S0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3REZW55KGQtPm1fcmVxdWVzdC5nZXQoKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvcXdrcGVybWlzc2lvbnJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9x
d2twZXJtaXNzaW9ucmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjdjNDAwZDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
cXdrcGVybWlzc2lvbnJlcXVlc3QuaApAQCAtMCwwICsxLDM0IEBACisjaWZuZGVmIHF3a3Blcm1p
c3Npb25yZXF1ZXN0X2gKKyNkZWZpbmUgcXdrcGVybWlzc2lvbnJlcXVlc3RfaAorCisjaW5jbHVk
ZSAicXdlYmtpdGdsb2JhbC5oIgorI2luY2x1ZGUgInF3a3Blcm1pc3Npb25yZXF1ZXN0LmgiCisj
aW5jbHVkZSAicXdrc2VjdXJpdHlvcmlnaW4uaCIKKyNpbmNsdWRlIDxRdENvcmUvcXNoYXJlZGRh
dGEuaD4KKworY2xhc3MgUVdLUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOworCitjbGFzcyBRV0VC
S0lUX0VYUE9SVCBRV0tQZXJtaXNzaW9uUmVxdWVzdCB7CitwdWJsaWM6CisgICAgflFXS1Blcm1p
c3Npb25SZXF1ZXN0KCk7CisgICAgZW51bSBUeXBlIHsKKyAgICAgICAgR2VvbG9jYXRpb24KKyAg
ICB9OworCisgICAgVHlwZSB0eXBlKCkgY29uc3Q7CisgICAgUVdLU2VjdXJpdHlPcmlnaW4gb3Jp
Z2luKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldEFjY2VwdGVkKGJvb2wpOworCisgICAgUVdLUGVy
bWlzc2lvblJlcXVlc3QoY29uc3QgUVdLUGVybWlzc2lvblJlcXVlc3QmIG90aGVyKTsKKyAgICBR
V0tQZXJtaXNzaW9uUmVxdWVzdCYgb3BlcmF0b3I9KGNvbnN0IFFXS1Blcm1pc3Npb25SZXF1ZXN0
JiBvdGhlcik7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFFXS1Blcm1pc3Npb25SZXF1
ZXN0UHJpdmF0ZTsKKyAgICBRV0tQZXJtaXNzaW9uUmVxdWVzdChRV0tQZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGUqKTsKKworcHJpdmF0ZToKKyAgICBRRXhwbGljaXRseVNoYXJlZERhdGFQb2ludGVy
PFFXS1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZT4gZDsKK307CisKKyNlbmRpZiAvLyBxd2twZXJt
aXNzaW9ucmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
cXdrcGVybWlzc2lvbnJlcXVlc3RfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3F3
a3Blcm1pc3Npb25yZXF1ZXN0X3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mMjE0OWFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L3F3a3Blcm1pc3Npb25yZXF1ZXN0X3AuaApAQCAtMCwwICsxLDUzIEBACisvKgorICAgIENvcHly
aWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisqLworCisjaWZuZGVmIHF3a3Blcm1pc3Npb25yZXF1ZXN0X3BfaAorI2RlZmluZSBxd2twZXJt
aXNzaW9ucmVxdWVzdF9wX2gKKworI2luY2x1ZGUgInF3a3Blcm1pc3Npb25yZXF1ZXN0LmgiCisK
KyNpbmNsdWRlICJxd2tzZWN1cml0eW9yaWdpbl9wLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1Bh
Z2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8V2ViS2l0
Mi9XS1NlY3VyaXR5T3JpZ2luLmg+CisKK2NsYXNzIFFXS1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZSA6IHB1YmxpYyBRU2hhcmVkRGF0YSB7CitwdWJsaWM6CisgICAgc3RhdGljIFFXS1Blcm1pc3Np
b25SZXF1ZXN0IGNyZWF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QpCisgICAgeworICAgICAgICByZXR1cm4gUVdL
UGVybWlzc2lvblJlcXVlc3QobmV3IFFXS1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZShvcmlnaW4s
IHJlcXVlc3QpKTsKKyAgICB9CisKKyAgICBRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUoV0tT
ZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJl
ZiByZXF1ZXN0KQorICAgICAgICA6IG1fb3JpZ2luKFFXS1NlY3VyaXR5T3JpZ2luUHJpdmF0ZTo6
Y3JlYXRlKG9yaWdpbikpCisgICAgICAgICwgbV90eXBlKFFXS1Blcm1pc3Npb25SZXF1ZXN0OjpH
ZW9sb2NhdGlvbikKKyAgICAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKKyAgICB7CisgICAgfQor
ICAgIH5RV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUoKQorICAgIHsKKyAgICB9CisKKyAgICBR
V0tTZWN1cml0eU9yaWdpbiBtX29yaWdpbjsKKyAgICBRV0tQZXJtaXNzaW9uUmVxdWVzdDo6VHlw
ZSBtX3R5cGU7CisKKyAgICBXS1JldGFpblB0cjxXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RSZWY+IG1fcmVxdWVzdDsKK307CisKKyNlbmRpZiAvLyBxd2twZXJtaXNzaW9ucmVxdWVzdF9w
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xd2tzZWN1cml0eW9y
aWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXdrc2VjdXJpdHlvcmlnaW4u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkYzNmMzIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXdrc2VjdXJpdHlvcmlnaW4u
Y3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJxd2tzZWN1cml0eW9yaWdpbi5oIgorCisjaW5jbHVkZSAiV0tTdHJp
bmdRdC5oIgorI2luY2x1ZGUgInF3a3NlY3VyaXR5b3JpZ2luX3AuaCIKKworUVdLU2VjdXJpdHlP
cmlnaW46OlFXS1NlY3VyaXR5T3JpZ2luKFFXS1NlY3VyaXR5T3JpZ2luUHJpdmF0ZSogcHJpdikK
K3sKKyAgICBkID0gcHJpdjsKK30KKworUVdLU2VjdXJpdHlPcmlnaW46OlFXS1NlY3VyaXR5T3Jp
Z2luKGNvbnN0IFFXS1NlY3VyaXR5T3JpZ2luJiBvdGhlcikgOiBkKG90aGVyLmQpCit7Cit9CisK
K1FXS1NlY3VyaXR5T3JpZ2luJiBRV0tTZWN1cml0eU9yaWdpbjo6b3BlcmF0b3I9KGNvbnN0IFFX
S1NlY3VyaXR5T3JpZ2luJiBvdGhlcikKK3sKKyAgICBkID0gb3RoZXIuZDsKKyAgICByZXR1cm4g
KnRoaXM7Cit9CisKK1FTdHJpbmcgUVdLU2VjdXJpdHlPcmlnaW46OnNjaGVtZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tTZWN1cml0eU9yaWdpbkNvcHlQcm90
b2NvbChkLT5tX29yaWdpbi5nZXQoKSkpOworfQorCitRU3RyaW5nIFFXS1NlY3VyaXR5T3JpZ2lu
Ojpob3N0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhXS1NlY3Vy
aXR5T3JpZ2luQ29weUhvc3QoZC0+bV9vcmlnaW4uZ2V0KCkpKTsKK30KKwordW5zaWduZWQgc2hv
cnQgUVdLU2VjdXJpdHlPcmlnaW46OnBvcnQoKSBjb25zdAoreworICAgIHJldHVybiBXS1NlY3Vy
aXR5T3JpZ2luR2V0UG9ydChkLT5tX29yaWdpbi5nZXQoKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXdrc2VjdXJpdHlvcmlnaW4uaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9xd2tzZWN1cml0eW9yaWdpbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjYyYWNkN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvcXdrc2VjdXJpdHlvcmlnaW4uaApAQCAtMCwwICsxLDQ1IEBACisvKgor
ICAgIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor
ICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisqLworCisjaWZuZGVmIHF3a3NlY3VyaXR5b3JpZ2luX2gKKyNkZWZpbmUgcXdr
c2VjdXJpdHlvcmlnaW5faAorCisjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgorI2luY2x1ZGUg
PFFTdHJpbmc+CisjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRkYXRhLmg+CisKK2NsYXNzIFFXS1Nl
Y3VyaXR5T3JpZ2luUHJpdmF0ZTsKKworY2xhc3MgUVdFQktJVF9FWFBPUlQgUVdLU2VjdXJpdHlP
cmlnaW4geworcHVibGljOgorICAgIFFTdHJpbmcgc2NoZW1lKCkgY29uc3Q7CisgICAgUVN0cmlu
ZyBob3N0KCkgY29uc3Q7CisgICAgdW5zaWduZWQgc2hvcnQgcG9ydCgpIGNvbnN0OworCisgICAg
UVdLU2VjdXJpdHlPcmlnaW4oY29uc3QgUVdLU2VjdXJpdHlPcmlnaW4mIG90aGVyKTsKKyAgICBR
V0tTZWN1cml0eU9yaWdpbiAmb3BlcmF0b3I9KGNvbnN0IFFXS1NlY3VyaXR5T3JpZ2luJiBvdGhl
cik7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFFXS1NlY3VyaXR5T3JpZ2luUHJpdmF0
ZTsKKyAgICBRV0tTZWN1cml0eU9yaWdpbihRV0tTZWN1cml0eU9yaWdpblByaXZhdGUqKTsKKwor
ICAgIFFFeHBsaWNpdGx5U2hhcmVkRGF0YVBvaW50ZXI8UVdLU2VjdXJpdHlPcmlnaW5Qcml2YXRl
PiBkOworfTsKKworI2VuZGlmIC8vIHF3a3NlY3VyaXR5b3JpZ2luX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xd2tzZWN1cml0eW9yaWdpbl9wLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXdrc2VjdXJpdHlvcmlnaW5fcC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2OWQyN2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXdrc2VjdXJpdHlvcmlnaW5fcC5oCkBAIC0wLDAgKzEsMzkg
QEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgcXdrc2VjdXJpdHlvcmlnaW5fcF9oCisj
ZGVmaW5lIHF3a3NlY3VyaXR5b3JpZ2luX3BfaAorCisjaW5jbHVkZSAicXdrc2VjdXJpdHlvcmln
aW4uaCIKKworI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxXZWJL
aXQyL1dLU2VjdXJpdHlPcmlnaW4uaD4KKworY2xhc3MgUVdLU2VjdXJpdHlPcmlnaW5Qcml2YXRl
IDogcHVibGljIFFTaGFyZWREYXRhIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUVdLU2VjdXJpdHlP
cmlnaW4gY3JlYXRlKFdLU2VjdXJpdHlPcmlnaW5SZWYgbykKKyAgICB7CisgICAgICAgIFFXS1Nl
Y3VyaXR5T3JpZ2luUHJpdmF0ZSogcHJpdiA9IG5ldyBRV0tTZWN1cml0eU9yaWdpblByaXZhdGU7
CisgICAgICAgIHByaXYtPm1fb3JpZ2luID0gbzsKKyAgICAgICAgcmV0dXJuIFFXS1NlY3VyaXR5
T3JpZ2luKHByaXYpOworICAgIH0KKyAgICBXS1JldGFpblB0cjxXS1NlY3VyaXR5T3JpZ2luUmVm
PiBtX29yaWdpbjsKK307CisKKyNlbmRpZiAvLyBxd2tzZWN1cml0eW9yaWdpbl9wX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvIGIvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi5wcm8KaW5kZXggYTMxZTM1NC4uZWRmMjdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi5wcm8KKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KQEAgLTI2Myw2ICsy
NjMsMTAgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5Lmgg
XAogICAgIFVJUHJvY2Vzcy9xdC9xd2toaXN0b3J5LmggXAogICAgIFVJUHJvY2Vzcy9xdC9xd2to
aXN0b3J5X3AuaCBcCisgICAgVUlQcm9jZXNzL3F0L3F3a3Blcm1pc3Npb25yZXF1ZXN0LmggXAor
ICAgIFVJUHJvY2Vzcy9xdC9xd2twZXJtaXNzaW9ucmVxdWVzdF9wLmggXAorICAgIFVJUHJvY2Vz
cy9xdC9xd2tzZWN1cml0eW9yaWdpbi5oIFwKKyAgICBVSVByb2Nlc3MvcXQvcXdrc2VjdXJpdHlv
cmlnaW5fcC5oIFwKICAgICBVSVByb2Nlc3MvcXQvUXRTR1VwZGF0ZVF1ZXVlLmggXAogICAgIFVJ
UHJvY2Vzcy9xdC9RdFNHVGlsZU5vZGUuaCBcCiAgICAgVUlQcm9jZXNzL3F0L1F0Vmlld0ludGVy
ZmFjZS5oIFwKQEAgLTUwMyw2ICs1MDcsOCBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3Mv
cXQvUXRXZWJFcnJvci5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAg
XAogICAgIFVJUHJvY2Vzcy9xdC9xd2toaXN0b3J5LmNwcCBcCisgICAgVUlQcm9jZXNzL3F0L3F3
a3Blcm1pc3Npb25yZXF1ZXN0LmNwcCBcCisgICAgVUlQcm9jZXNzL3F0L3F3a3NlY3VyaXR5b3Jp
Z2luLmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1F0U0dVcGRhdGVRdWV1ZS5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9xdC9RdFNHVGlsZU5vZGUuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvVGlsZWREcmF3
aW5nQXJlYVByb3h5UXQuY3BwIFwKLS0gCjEuNy40LjEKCg==
</data>
<flag name="review"
          id="111309"
          type_id="1"
          status="-"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="111310"
          type_id="3"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113282</attachid>
            <date>2011-11-02 00:25:57 -0700</date>
            <delta_ts>2011-11-02 00:47:58 -0700</delta_ts>
            <desc>Fixed: initialization list, class/file names.</desc>
            <filename>geopermission_fix_names.patch</filename>
            <type>text/plain</type>
            <size>17696</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBmYzBmNzRjYmE5MTM2ZWNkMTFlYjlhYmM1NDM2OGZjZDRlNmY5NTlkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IFRodSwgMjcgT2N0IDIwMTEgMTE6MDE6MzkgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBJbXBsZW1lbnRpbmcgdGhlIHBlcm1pc3Npb24gQVBJIGZvciBnZW9sb2Nh
dGlvbi4KClNpZ25lZC1vZmYtYnk6IEFkZW5pbHNvbiBDYXZhbGNhbnRpIDxhZGVuaWxzb24uc2ls
dmFAb3BlbmJvc3NhLm9yZz4KLS0tCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMzYgKysrKysrKy0KIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcCAgIHwgICAgNiArKwogLi4uL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXdfcC5oICAgfCAgICAyICsKIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcCAgICAgICAgIHwgICAxMiArKystCiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRUb3VjaFZpZXdJbnRlcmZhY2UuaCB8ICAgIDIgKwogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld0ludGVyZmFjZS5oICAgICAgfCAgICA0ICsK
IC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xcGVybWlzc2lvbnJlcXVlc3RfcC5jcHAgIHwgICA5
NSArKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FwZXJt
aXNzaW9ucmVxdWVzdF9wLmggfCAgIDU3ICsrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L3FzZWN1cml0eW9yaWdpbl9wLmNwcCAgfCAgIDczICsrKysrKysrKysrKysrKwog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FzZWN1cml0eW9yaWdpbl9wLmggICAgfCAgIDQ5
ICsrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgNCArCiAxMSBmaWxlcyBjaGFuZ2VkLCAzMzggaW5zZXJ0aW9ucygrKSwgMiBk
ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvcXBlcm1pc3Npb25yZXF1ZXN0X3AuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L3FwZXJtaXNzaW9ucmVxdWVzdF9wLmgKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXNlY3VyaXR5b3JpZ2luX3AuY3BwCiBj
cmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FzZWN1cml0eW9y
aWdpbl9wLmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWE2NTAxMC4uYTMzNmZiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM4IEBACisyMDExLTEwLTE5ICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGFkZW5pbHNv
bi5zaWx2YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtRdF1bV0syXSBJbXBsZW1lbnQgcGVy
bWlzc2lvbiBBUEkgZm9yIFF0IHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU5MjAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSG9va3VwIHBlcm1pc3Npb24gQVBJIGZvciBnZW9sb2NhdGlvbi4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKHF0X3drX2Rl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9xdC9DbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL3F0L3F3a3Blcm1p
c3Npb25yZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdDo6
UVdLUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoUVdLUGVybWlzc2lvblJlcXVlc3Q6On5R
V0tQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdDo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKFFXS1Blcm1pc3Npb25SZXF1ZXN0Ojp0eXBlKToKKyAgICAgICAg
KFFXS1Blcm1pc3Npb25SZXF1ZXN0OjpvcmlnaW4pOgorICAgICAgICAoUVdLUGVybWlzc2lvblJl
cXVlc3Q6OnNldEFjY2VwdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvcXdrcGVybWlzc2lv
bnJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL3F0L3F3a3Blcm1pc3Npb25y
ZXF1ZXN0X3AuaDogQWRkZWQuCisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU6
OmNyZWF0ZSk6CisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU6OlFXS1Blcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZSk6CisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGU6On5RV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9x
dC9xd2tzZWN1cml0eW9yaWdpbi5jcHA6IEFkZGVkLgorICAgICAgICAoUVdLU2VjdXJpdHlPcmln
aW46OlFXS1NlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFFXS1NlY3VyaXR5T3JpZ2luOjpvcGVy
YXRvcj0pOgorICAgICAgICAoUVdLU2VjdXJpdHlPcmlnaW46OnNjaGVtZSk6CisgICAgICAgIChR
V0tTZWN1cml0eU9yaWdpbjo6aG9zdCk6CisgICAgICAgIChRV0tTZWN1cml0eU9yaWdpbjo6cG9y
dCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L3F3a3NlY3VyaXR5b3JpZ2luLmg6IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9xdC9xd2tzZWN1cml0eW9yaWdpbl9wLmg6IEFkZGVkLgorICAg
ICAgICAoUVdLU2VjdXJpdHlPcmlnaW5Qcml2YXRlOjpjcmVhdGUpOgorICAgICAgICAqIFdlYktp
dDIucHJvOgorCiAyMDExLTEwLTMxICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxj
YWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgW1F0XSBNYWtlIFFXZWJQcmVm
ZXJlbmNlcyBob2xkIGEgUXRXZWJQYWdlUHJveHkKQEAgLTYwOSw3ICs2NDQsNiBAQAogICAgICAg
ICAoUXRXZWJQYWdlUHJveHk6OmluaXQpOgogICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBh
Z2VQcm94eS5oOgogICAgICAgICAoUXRXZWJQYWdlUHJveHk6OnZpZXdJbnRlcmZhY2UpOgotCiAy
MDExLTEwLTI3ICBaZW5vIEFsYmlzc2VyICA8emVuby5hbGJpc3NlckBub2tpYS5jb20+CiAKICAg
ICAgICAgW1F0XVtXSzJdIFJlbW92ZSBRQWN0aW9uIGZyb20gTWluaUJyb3dzZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcAppbmRl
eCA4ZWY0NzkyLi43YjllNmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FkZXNrdG9wd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwCkBAIC01MDMsNiArNTAzLDEyIEBAIHZvaWQgUURl
c2t0b3BXZWJWaWV3UHJpdmF0ZTo6ZGlkTW91c2VNb3ZlT3ZlckVsZW1lbnQoY29uc3QgUVVybCYg
bGlua1VSTCwgY29uc3QKICAgICBlbWl0IHEtPmxpbmtIb3ZlcmVkKGxhc3RIb3ZlcmVkVVJMLCBs
YXN0SG92ZXJlZFRpdGxlKTsKIH0KIAordm9pZCBRRGVza3RvcFdlYlZpZXdQcml2YXRlOjpwZXJt
aXNzaW9uUmVxdWVzdGVkKFF0UGVybWlzc2lvblJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgLy8g
Rm9yIHdoaWxlLCBzZXQgaXQgdG8gdHJ1ZS4KKyAgICByZXF1ZXN0LnNldEFjY2VwdGVkKHRydWUp
OworfQorCiBzdGF0aWMgUXRQb2xpY3lJbnRlcmZhY2U6OlBvbGljeUFjdGlvbiB0b1BvbGljeUFj
dGlvbihRRGVza3RvcFdlYlZpZXc6Ok5hdmlnYXRpb25Qb2xpY3kgcG9saWN5KQogewogICAgIHN3
aXRjaCAocG9saWN5KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FkZXNrdG9wd2Vidmlld19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FkZXNrdG9wd2Vidmlld19wLmgKaW5kZXggYzE1ZWVmMC4uYzIwMTJjMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXdfcC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3X3AuaApAQCAt
OTMsNiArOTMsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZE1vdXNlTW92ZU92
ZXJFbGVtZW50KGNvbnN0IFFVcmwmLCBjb25zdCBRU3RyaW5nJik7CiAKKyAgICB2aXJ0dWFsIHZv
aWQgcGVybWlzc2lvblJlcXVlc3RlZChRdFBlcm1pc3Npb25SZXF1ZXN0Jik7CisKICAgICAvLyBR
dFBvbGljeUludGVyZmFjZS4KICAgICB2aXJ0dWFsIFF0UG9saWN5SW50ZXJmYWNlOjpQb2xpY3lB
Y3Rpb24gbmF2aWdhdGlvblBvbGljeUZvclVSTChjb25zdCBRVXJsJiwgUXQ6Ok1vdXNlQnV0dG9u
LCBRdDo6S2V5Ym9hcmRNb2RpZmllcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
Q2xpZW50SW1wbC5jcHAKaW5kZXggZWFlNWYyMS4uYzhhOGY0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcApAQCAtMjEsMTAgKzIxLDEzIEBACiAjaW5jbHVk
ZSAiQ2xpZW50SW1wbC5oIgogCiAjaW5jbHVkZSAiUXRXZWJFcnJvci5oIgotI2luY2x1ZGUgIldl
YkZyYW1lUHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJXS1N0cmluZ1F0LmgiCiAjaW5j
bHVkZSAiV0tVUkxRdC5oIgorI2luY2x1ZGUgIldlYkZyYW1lUHJveHkuaCIKKyNpbmNsdWRlICJx
cGVybWlzc2lvbnJlcXVlc3RfcC5oIgorCiAjaW5jbHVkZSA8UXRQb2xpY3lJbnRlcmZhY2UuaD4K
ICNpbmNsdWRlIDxRdFZpZXdJbnRlcmZhY2UuaD4KICNpbmNsdWRlIDxRdFdlYlBhZ2VQcm94eS5o
PgpAQCAtMjc5LDYgKzI4MiwxMiBAQCBzdGF0aWMgdm9pZCBxdF93a19kZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tVUgogICAgIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lcik7CiB9CiAKK3N0YXRpYyB2b2lkIHF0X3drX2Rl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3sKKyAgICBRdFBlcm1pc3Npb25SZXF1ZXN0IHJlcSA9IFF0UGVybWlzc2lvblJlcXVlc3Q6OmNy
ZWF0ZShvcmlnaW4sIHJlcXVlc3QpOworICAgIHRvUXRWaWV3SW50ZXJmYWNlKGNsaWVudEluZm8p
LT5wZXJtaXNzaW9uUmVxdWVzdGVkKHJlcSk7Cit9CisKIHZvaWQgc2V0dXBQYWdlTG9hZGVyQ2xp
ZW50KFF0V2ViUGFnZVByb3h5KiBxdFdlYlBhZ2VQcm94eSwgV2ViUGFnZVByb3h5KiB3ZWJQYWdl
UHJveHkpCiB7CiAgICAgV0tQYWdlTG9hZGVyQ2xpZW50IGxvYWRDbGllbnQ7CkBAIC0zMTAsNiAr
MzE5LDcgQEAgdm9pZCBzZXR1cFBhZ2VVaUNsaWVudChRdFdlYlBhZ2VQcm94eSogcXRXZWJQYWdl
UHJveHksIFdlYlBhZ2VQcm94eSogd2ViUGFnZVByb3gKICAgICB1aUNsaWVudC5zZXRTdGF0dXNU
ZXh0ID0gcXRfd2tfc2V0U3RhdHVzVGV4dDsKICAgICB1aUNsaWVudC5ydW5PcGVuUGFuZWwgPSBx
dF93a19ydW5PcGVuUGFuZWw7CiAgICAgdWlDbGllbnQubW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQg
PSBxdF93a19tb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKKyAgICB1aUNsaWVudC5kZWNpZGVQb2xp
Y3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0ID0gcXRfd2tfZGVjaWRlUG9saWN5Rm9y
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQo
dG9BUEkod2ViUGFnZVByb3h5KSwgJnVpQ2xpZW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0VG91Y2hWaWV3SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvUXRUb3VjaFZpZXdJbnRlcmZhY2UuaAppbmRleCAzYTQ1MzQ5Li41
ZWEyNGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRUb3VjaFZp
ZXdJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRUb3VjaFZp
ZXdJbnRlcmZhY2UuaApAQCAtODQsNiArODQsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2
b2lkIGRpZE1vdXNlTW92ZU92ZXJFbGVtZW50KGNvbnN0IFFVcmwmLCBjb25zdCBRU3RyaW5nJikg
eyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcGVybWlzc2lvblJlcXVlc3RlZChRdFBlcm1pc3Npb25S
ZXF1ZXN0JikgeyB9CisKIHByaXZhdGU6CiAgICAgUVRvdWNoV2ViVmlldyogY29uc3QgbV92aWV3
cG9ydFZpZXc7CiAgICAgUVRvdWNoV2ViUGFnZSogY29uc3QgbV9wYWdlVmlldzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdJbnRlcmZhY2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdJbnRlcmZhY2UuaAppbmRleCA1MjZhNDk1Li5j
OTA4NmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3SW50
ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld0ludGVyZmFj
ZS5oCkBAIC0yMSw2ICsyMSw4IEBACiAjaWZuZGVmIFF0Vmlld0ludGVyZmFjZV9oCiAjZGVmaW5l
IFF0Vmlld0ludGVyZmFjZV9oCiAKKyNpbmNsdWRlICJxcGVybWlzc2lvbnJlcXVlc3RfcC5oIgor
CiAjaW5jbHVkZSA8UU1lbnU+CiAjaW5jbHVkZSA8UXRDb3JlL1FTaGFyZWRQb2ludGVyPgogI2lu
Y2x1ZGUgPFF0Q29yZS9RU2l6ZT4KQEAgLTkzLDYgKzk1LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBjaG9vc2VGaWxlcyhXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmLCBjb25zdCBR
U3RyaW5nTGlzdCYgc2VsZWN0ZWRGaWxlTmFtZXMsIEZpbGVDaG9vc2VyVHlwZSkgPSAwOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRpZE1vdXNlTW92ZU92ZXJFbGVtZW50KGNvbnN0IFFVcmwmLCBjb25z
dCBRU3RyaW5nJikgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0ZWQo
UXRQZXJtaXNzaW9uUmVxdWVzdCYpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9xcGVybWlzc2lvbnJlcXVlc3RfcC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvcXBlcm1pc3Npb25yZXF1ZXN0X3AuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2OTA0NzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXBlcm1pc3Npb25yZXF1ZXN0X3AuY3BwCkBAIC0wLDAgKzEs
OTUgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1
ZGUgInFwZXJtaXNzaW9ucmVxdWVzdF9wLmgiCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5o
PgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKworCitjbGFzcyBRdFBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZSA6IHB1YmxpYyBRU2hhcmVkRGF0YSB7CitwdWJsaWM6CisKKyAgICBR
dFBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QpCisgICAgICAgIDogbV9vcmln
aW4oUXRTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbikpCisgICAgICAgICwgbV90eXBlKFF0
UGVybWlzc2lvblJlcXVlc3Q6Okdlb2xvY2F0aW9uKQorICAgICAgICAsIG1fcmVxdWVzdChyZXF1
ZXN0KQorICAgIHsKKyAgICB9CisgICAgflF0UGVybWlzc2lvblJlcXVlc3RQcml2YXRlKCkKKyAg
ICB7CisgICAgfQorCisgICAgUXRTZWN1cml0eU9yaWdpbiBtX29yaWdpbjsKKyAgICBRdFBlcm1p
c3Npb25SZXF1ZXN0OjpUeXBlIG1fdHlwZTsKKworICAgIFdLUmV0YWluUHRyPFdLR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdFJlZj4gbV9yZXF1ZXN0OworfTsKKworUXRQZXJtaXNzaW9uUmVx
dWVzdCBRdFBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUoV0tTZWN1cml0eU9yaWdpblJlZiBvcmln
aW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0KQoreworICAgIHJl
dHVybiBRdFBlcm1pc3Npb25SZXF1ZXN0KG5ldyBRdFBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZShv
cmlnaW4sIHJlcXVlc3QpKTsKK30KKworUXRQZXJtaXNzaW9uUmVxdWVzdDo6UXRQZXJtaXNzaW9u
UmVxdWVzdChRdFBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSogcHJpdikKKyAgICA6IGQocHJpdikK
K3sKK30KKworUXRQZXJtaXNzaW9uUmVxdWVzdDo6flF0UGVybWlzc2lvblJlcXVlc3QoKQorewor
fQorCitRdFBlcm1pc3Npb25SZXF1ZXN0OjpRdFBlcm1pc3Npb25SZXF1ZXN0KGNvbnN0IFF0UGVy
bWlzc2lvblJlcXVlc3QmIG90aGVyKQorICAgIDogZChvdGhlci5kKQoreworfQorCitRdFBlcm1p
c3Npb25SZXF1ZXN0JiBRdFBlcm1pc3Npb25SZXF1ZXN0OjpvcGVyYXRvcj0oY29uc3QgUXRQZXJt
aXNzaW9uUmVxdWVzdCYgb3RoZXIpCit7CisgICAgZCA9IG90aGVyLmQ7CisgICAgcmV0dXJuICp0
aGlzOworfQorCitRdFBlcm1pc3Npb25SZXF1ZXN0OjpUeXBlIFF0UGVybWlzc2lvblJlcXVlc3Q6
OnR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBkLT5tX3R5cGU7Cit9CisKK1F0U2VjdXJpdHlP
cmlnaW4gUXRQZXJtaXNzaW9uUmVxdWVzdDo6b3JpZ2luKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ZC0+bV9vcmlnaW47Cit9CisKK3ZvaWQgUXRQZXJtaXNzaW9uUmVxdWVzdDo6c2V0QWNjZXB0ZWQo
Ym9vbCBhY2NlcHRlZCkKK3sKKyAgICBzd2l0Y2ggKHR5cGUoKSkgeworICAgIGNhc2UgR2VvbG9j
YXRpb246IHsKKyAgICAgICAgaWYgKGFjY2VwdGVkKQorICAgICAgICAgICAgV0tHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0QWxsb3coZC0+bV9yZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueShkLT5tX3Jl
cXVlc3QuZ2V0KCkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L3FwZXJtaXNzaW9ucmVxdWVzdF9wLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvcXBlcm1pc3Npb25yZXF1ZXN0X3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kNWZmY2JlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L3FwZXJtaXNzaW9ucmVxdWVzdF9wLmgKQEAgLTAsMCArMSw1NyBAQAor
LyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBxcGVybWlzc2lvbnJlcXVlc3RfcF9oCisjZGVm
aW5lIHFwZXJtaXNzaW9ucmVxdWVzdF9wX2gKKworI2luY2x1ZGUgInFzZWN1cml0eW9yaWdpbl9w
LmgiCisjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgorCisjaW5jbHVkZSA8UXRDb3JlL3FzaGFy
ZWRkYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4uaD4KKworY2xhc3MgUXRQ
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CisKK2NsYXNzIFFXRUJLSVRfRVhQT1JUIFF0UGVybWlz
c2lvblJlcXVlc3QgeworcHVibGljOgorICAgIH5RdFBlcm1pc3Npb25SZXF1ZXN0KCk7CisgICAg
ZW51bSBUeXBlIHsKKyAgICAgICAgR2VvbG9jYXRpb24KKyAgICB9OworCisgICAgVHlwZSB0eXBl
KCkgY29uc3Q7CisgICAgUXRTZWN1cml0eU9yaWdpbiBvcmlnaW4oKSBjb25zdDsKKworICAgIHZv
aWQgc2V0QWNjZXB0ZWQoYm9vbCk7CisKKyAgICBRdFBlcm1pc3Npb25SZXF1ZXN0KGNvbnN0IFF0
UGVybWlzc2lvblJlcXVlc3QmIG90aGVyKTsKKyAgICBRdFBlcm1pc3Npb25SZXF1ZXN0JiBvcGVy
YXRvcj0oY29uc3QgUXRQZXJtaXNzaW9uUmVxdWVzdCYgb3RoZXIpOworICAgIHN0YXRpYyBRdFBl
cm1pc3Npb25SZXF1ZXN0IGNyZWF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QpOworCitwcml2YXRlOgorICAgIGZy
aWVuZCBjbGFzcyBRdFBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKKyAgICBRdFBlcm1pc3Npb25S
ZXF1ZXN0KFF0UGVybWlzc2lvblJlcXVlc3RQcml2YXRlKik7CisKK3ByaXZhdGU6CisgICAgUUV4
cGxpY2l0bHlTaGFyZWREYXRhUG9pbnRlcjxRdFBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZT4gZDsK
K307CisKKworI2VuZGlmIC8vIHFwZXJtaXNzaW9ucmVxdWVzdF9wX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xc2VjdXJpdHlvcmlnaW5fcC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXNlY3VyaXR5b3JpZ2luX3AuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiMGExMTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXNlY3VyaXR5b3JpZ2luX3AuY3BwCkBAIC0wLDAgKzEsNzMg
QEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUg
InFzZWN1cml0eW9yaWdpbl9wLmgiCisjaW5jbHVkZSAiV0tTdHJpbmdRdC5oIgorCisjaW5jbHVk
ZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorCitjbGFzcyBRdFNlY3VyaXR5T3JpZ2luUHJpdmF0
ZSA6IHB1YmxpYyBRU2hhcmVkRGF0YSB7CitwdWJsaWM6CisgICAgV0tSZXRhaW5QdHI8V0tTZWN1
cml0eU9yaWdpblJlZj4gbV9vcmlnaW47CisgICAgUXRTZWN1cml0eU9yaWdpblByaXZhdGUoKSB7
IH07Cit9OworCitRdFNlY3VyaXR5T3JpZ2luIFF0U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShXS1Nl
Y3VyaXR5T3JpZ2luUmVmIG9yaWdpbikKK3sKKyAgICBRdFNlY3VyaXR5T3JpZ2luUHJpdmF0ZSog
cHJpdiA9IG5ldyBRdFNlY3VyaXR5T3JpZ2luUHJpdmF0ZTsKKyAgICBwcml2LT5tX29yaWdpbiA9
IG9yaWdpbjsKKyAgICByZXR1cm4gUXRTZWN1cml0eU9yaWdpbihwcml2KTsKK30KKworUXRTZWN1
cml0eU9yaWdpbjo6UXRTZWN1cml0eU9yaWdpbihRdFNlY3VyaXR5T3JpZ2luUHJpdmF0ZSogcHJp
dikKKyAgICA6IGQocHJpdikKK3sKK30KKworUXRTZWN1cml0eU9yaWdpbjo6UXRTZWN1cml0eU9y
aWdpbihjb25zdCBRdFNlY3VyaXR5T3JpZ2luJiBvdGhlcikKKyAgOiBkKG90aGVyLmQpCit7Cit9
CisKK1F0U2VjdXJpdHlPcmlnaW46On5RdFNlY3VyaXR5T3JpZ2luKCkKK3sKK30KKworUXRTZWN1
cml0eU9yaWdpbiYgUXRTZWN1cml0eU9yaWdpbjo6b3BlcmF0b3I9KGNvbnN0IFF0U2VjdXJpdHlP
cmlnaW4mIG90aGVyKQoreworICAgIGQgPSBvdGhlci5kOworICAgIHJldHVybiAqdGhpczsKK30K
KworUVN0cmluZyBRdFNlY3VyaXR5T3JpZ2luOjpzY2hlbWUoKSBjb25zdAoreworICAgIHJldHVy
biBXS1N0cmluZ0NvcHlRU3RyaW5nKFdLU2VjdXJpdHlPcmlnaW5Db3B5UHJvdG9jb2woZC0+bV9v
cmlnaW4uZ2V0KCkpKTsKK30KKworUVN0cmluZyBRdFNlY3VyaXR5T3JpZ2luOjpob3N0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhXS1NlY3VyaXR5T3JpZ2luQ29w
eUhvc3QoZC0+bV9vcmlnaW4uZ2V0KCkpKTsKK30KKworcXVpbnQxNiBRdFNlY3VyaXR5T3JpZ2lu
Ojpwb3J0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV0tTZWN1cml0eU9yaWdpbkdldFBvcnQoZC0+
bV9vcmlnaW4uZ2V0KCkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L3FzZWN1cml0eW9yaWdpbl9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXNl
Y3VyaXR5b3JpZ2luX3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzAy
YTUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FzZWN1
cml0eW9yaWdpbl9wLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIw
MTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAg
ICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lm
bmRlZiBxc2VjdXJpdHlvcmlnaW5faAorI2RlZmluZSBxc2VjdXJpdHlvcmlnaW5faAorCisjaW5j
bHVkZSAicXdlYmtpdGdsb2JhbC5oIgorI2luY2x1ZGUgPFFTdHJpbmc+CisjaW5jbHVkZSA8UXRD
b3JlL3FzaGFyZWRkYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1NlY3VyaXR5T3JpZ2luLmg+
CisKK2NsYXNzIFF0U2VjdXJpdHlPcmlnaW5Qcml2YXRlOworCitjbGFzcyBRV0VCS0lUX0VYUE9S
VCBRdFNlY3VyaXR5T3JpZ2luIHsKK3B1YmxpYzoKKyAgICB+UXRTZWN1cml0eU9yaWdpbigpOwor
CisgICAgUVN0cmluZyBzY2hlbWUoKSBjb25zdDsKKyAgICBRU3RyaW5nIGhvc3QoKSBjb25zdDsK
KyAgICBxdWludDE2IHBvcnQoKSBjb25zdDsKKworICAgIFF0U2VjdXJpdHlPcmlnaW4oY29uc3Qg
UXRTZWN1cml0eU9yaWdpbiYgb3RoZXIpOworICAgIFF0U2VjdXJpdHlPcmlnaW4gJm9wZXJhdG9y
PShjb25zdCBRdFNlY3VyaXR5T3JpZ2luJiBvdGhlcik7CisgICAgc3RhdGljIFF0U2VjdXJpdHlP
cmlnaW4gY3JlYXRlKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKTsKKworcHJpdmF0ZToKKyAg
ICBmcmllbmQgY2xhc3MgUXRTZWN1cml0eU9yaWdpblByaXZhdGU7CisgICAgUXRTZWN1cml0eU9y
aWdpbihRdFNlY3VyaXR5T3JpZ2luUHJpdmF0ZSopOworCisgICAgUUV4cGxpY2l0bHlTaGFyZWRE
YXRhUG9pbnRlcjxRdFNlY3VyaXR5T3JpZ2luUHJpdmF0ZT4gZDsKK307CisKKyNlbmRpZiAvLyBx
c2VjdXJpdHlvcmlnaW5faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwppbmRleCBhMzFlMzU0Li5iODE1M2ZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnBybwpAQCAtMjYzLDYgKzI2Myw4IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vz
cy9xdC9RdFdlYlBhZ2VQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvcXQvcXdraGlzdG9yeS5oIFwK
ICAgICBVSVByb2Nlc3MvcXQvcXdraGlzdG9yeV9wLmggXAorICAgIFVJUHJvY2Vzcy9xdC9xcGVy
bWlzc2lvbnJlcXVlc3RfcC5oIFwKKyAgICBVSVByb2Nlc3MvcXQvcXNlY3VyaXR5b3JpZ2luX3Au
aCBcCiAgICAgVUlQcm9jZXNzL3F0L1F0U0dVcGRhdGVRdWV1ZS5oIFwKICAgICBVSVByb2Nlc3Mv
cXQvUXRTR1RpbGVOb2RlLmggXAogICAgIFVJUHJvY2Vzcy9xdC9RdFZpZXdJbnRlcmZhY2UuaCBc
CkBAIC01MDMsNiArNTA1LDggQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL3F0L1F0V2Vi
RXJyb3IuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwIFwKICAgICBV
SVByb2Nlc3MvcXQvcXdraGlzdG9yeS5jcHAgXAorICAgIFVJUHJvY2Vzcy9xdC9xcGVybWlzc2lv
bnJlcXVlc3RfcC5jcHAgXAorICAgIFVJUHJvY2Vzcy9xdC9xc2VjdXJpdHlvcmlnaW5fcC5jcHAg
XAogICAgIFVJUHJvY2Vzcy9xdC9RdFNHVXBkYXRlUXVldWUuY3BwIFwKICAgICBVSVByb2Nlc3Mv
cXQvUXRTR1RpbGVOb2RlLmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1RpbGVkRHJhd2luZ0FyZWFQ
cm94eVF0LmNwcCBcCi0tIAoxLjcuNC4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113285</attachid>
            <date>2011-11-02 00:47:58 -0700</date>
            <delta_ts>2011-11-09 08:05:52 -0800</delta_ts>
            <desc>Fixed: initialization list, class/file names, coding style</desc>
            <filename>geopermission_fix_names_style.patch</filename>
            <type>text/plain</type>
            <size>17682</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSA1NzFjY2UyYjk4ZjU5Zjk1YmZiMWZlNmIyZjVjOWI1MWJkYzZmYjA2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IFRodSwgMjcgT2N0IDIwMTEgMTE6MDE6MzkgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBJbXBsZW1lbnRpbmcgdGhlIHBlcm1pc3Npb24gQVBJIGZvciBnZW9sb2Nh
dGlvbi4KClNpZ25lZC1vZmYtYnk6IEFkZW5pbHNvbiBDYXZhbGNhbnRpIDxhZGVuaWxzb24uc2ls
dmFAb3BlbmJvc3NhLm9yZz4KLS0tCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMzYgKysrKysrKy0KIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcCAgIHwgICAgNiArKwogLi4uL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXdfcC5oICAgfCAgICAyICsKIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcCAgICAgICAgIHwgICAxMiArKystCiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRUb3VjaFZpZXdJbnRlcmZhY2UuaCB8ICAgIDIgKwogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld0ludGVyZmFjZS5oICAgICAgfCAgICA0ICsK
IC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xcGVybWlzc2lvbnJlcXVlc3RfcC5jcHAgIHwgICA5
NSArKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FwZXJt
aXNzaW9ucmVxdWVzdF9wLmggfCAgIDU3ICsrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L3FzZWN1cml0eW9yaWdpbl9wLmNwcCAgfCAgIDc0ICsrKysrKysrKysrKysrKwog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FzZWN1cml0eW9yaWdpbl9wLmggICAgfCAgIDQ5
ICsrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgNCArCiAxMSBmaWxlcyBjaGFuZ2VkLCAzMzkgaW5zZXJ0aW9ucygrKSwgMiBk
ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvcXBlcm1pc3Npb25yZXF1ZXN0X3AuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L3FwZXJtaXNzaW9ucmVxdWVzdF9wLmgKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXNlY3VyaXR5b3JpZ2luX3AuY3BwCiBj
cmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FzZWN1cml0eW9y
aWdpbl9wLmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWE2NTAxMC4uYTMzNmZiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM4IEBACisyMDExLTEwLTE5ICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGFkZW5pbHNv
bi5zaWx2YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtRdF1bV0syXSBJbXBsZW1lbnQgcGVy
bWlzc2lvbiBBUEkgZm9yIFF0IHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU5MjAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSG9va3VwIHBlcm1pc3Npb24gQVBJIGZvciBnZW9sb2NhdGlvbi4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKHF0X3drX2Rl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9xdC9DbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL3F0L3F3a3Blcm1p
c3Npb25yZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdDo6
UVdLUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoUVdLUGVybWlzc2lvblJlcXVlc3Q6On5R
V0tQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdDo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKFFXS1Blcm1pc3Npb25SZXF1ZXN0Ojp0eXBlKToKKyAgICAgICAg
KFFXS1Blcm1pc3Npb25SZXF1ZXN0OjpvcmlnaW4pOgorICAgICAgICAoUVdLUGVybWlzc2lvblJl
cXVlc3Q6OnNldEFjY2VwdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvcXdrcGVybWlzc2lv
bnJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL3F0L3F3a3Blcm1pc3Npb25y
ZXF1ZXN0X3AuaDogQWRkZWQuCisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU6
OmNyZWF0ZSk6CisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU6OlFXS1Blcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZSk6CisgICAgICAgIChRV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGU6On5RV0tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9x
dC9xd2tzZWN1cml0eW9yaWdpbi5jcHA6IEFkZGVkLgorICAgICAgICAoUVdLU2VjdXJpdHlPcmln
aW46OlFXS1NlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFFXS1NlY3VyaXR5T3JpZ2luOjpvcGVy
YXRvcj0pOgorICAgICAgICAoUVdLU2VjdXJpdHlPcmlnaW46OnNjaGVtZSk6CisgICAgICAgIChR
V0tTZWN1cml0eU9yaWdpbjo6aG9zdCk6CisgICAgICAgIChRV0tTZWN1cml0eU9yaWdpbjo6cG9y
dCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L3F3a3NlY3VyaXR5b3JpZ2luLmg6IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9xdC9xd2tzZWN1cml0eW9yaWdpbl9wLmg6IEFkZGVkLgorICAg
ICAgICAoUVdLU2VjdXJpdHlPcmlnaW5Qcml2YXRlOjpjcmVhdGUpOgorICAgICAgICAqIFdlYktp
dDIucHJvOgorCiAyMDExLTEwLTMxICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxj
YWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgW1F0XSBNYWtlIFFXZWJQcmVm
ZXJlbmNlcyBob2xkIGEgUXRXZWJQYWdlUHJveHkKQEAgLTYwOSw3ICs2NDQsNiBAQAogICAgICAg
ICAoUXRXZWJQYWdlUHJveHk6OmluaXQpOgogICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBh
Z2VQcm94eS5oOgogICAgICAgICAoUXRXZWJQYWdlUHJveHk6OnZpZXdJbnRlcmZhY2UpOgotCiAy
MDExLTEwLTI3ICBaZW5vIEFsYmlzc2VyICA8emVuby5hbGJpc3NlckBub2tpYS5jb20+CiAKICAg
ICAgICAgW1F0XVtXSzJdIFJlbW92ZSBRQWN0aW9uIGZyb20gTWluaUJyb3dzZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcAppbmRl
eCA4ZWY0NzkyLi43YjllNmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FkZXNrdG9wd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwCkBAIC01MDMsNiArNTAzLDEyIEBAIHZvaWQgUURl
c2t0b3BXZWJWaWV3UHJpdmF0ZTo6ZGlkTW91c2VNb3ZlT3ZlckVsZW1lbnQoY29uc3QgUVVybCYg
bGlua1VSTCwgY29uc3QKICAgICBlbWl0IHEtPmxpbmtIb3ZlcmVkKGxhc3RIb3ZlcmVkVVJMLCBs
YXN0SG92ZXJlZFRpdGxlKTsKIH0KIAordm9pZCBRRGVza3RvcFdlYlZpZXdQcml2YXRlOjpwZXJt
aXNzaW9uUmVxdWVzdGVkKFF0UGVybWlzc2lvblJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgLy8g
Rm9yIHdoaWxlLCBzZXQgaXQgdG8gdHJ1ZS4KKyAgICByZXF1ZXN0LnNldEFjY2VwdGVkKHRydWUp
OworfQorCiBzdGF0aWMgUXRQb2xpY3lJbnRlcmZhY2U6OlBvbGljeUFjdGlvbiB0b1BvbGljeUFj
dGlvbihRRGVza3RvcFdlYlZpZXc6Ok5hdmlnYXRpb25Qb2xpY3kgcG9saWN5KQogewogICAgIHN3
aXRjaCAocG9saWN5KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FkZXNrdG9wd2Vidmlld19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FkZXNrdG9wd2Vidmlld19wLmgKaW5kZXggYzE1ZWVmMC4uYzIwMTJjMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXdfcC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3X3AuaApAQCAt
OTMsNiArOTMsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZE1vdXNlTW92ZU92
ZXJFbGVtZW50KGNvbnN0IFFVcmwmLCBjb25zdCBRU3RyaW5nJik7CiAKKyAgICB2aXJ0dWFsIHZv
aWQgcGVybWlzc2lvblJlcXVlc3RlZChRdFBlcm1pc3Npb25SZXF1ZXN0Jik7CisKICAgICAvLyBR
dFBvbGljeUludGVyZmFjZS4KICAgICB2aXJ0dWFsIFF0UG9saWN5SW50ZXJmYWNlOjpQb2xpY3lB
Y3Rpb24gbmF2aWdhdGlvblBvbGljeUZvclVSTChjb25zdCBRVXJsJiwgUXQ6Ok1vdXNlQnV0dG9u
LCBRdDo6S2V5Ym9hcmRNb2RpZmllcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
Q2xpZW50SW1wbC5jcHAKaW5kZXggZWFlNWYyMS4uYzhhOGY0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcApAQCAtMjEsMTAgKzIxLDEzIEBACiAjaW5jbHVk
ZSAiQ2xpZW50SW1wbC5oIgogCiAjaW5jbHVkZSAiUXRXZWJFcnJvci5oIgotI2luY2x1ZGUgIldl
YkZyYW1lUHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJXS1N0cmluZ1F0LmgiCiAjaW5j
bHVkZSAiV0tVUkxRdC5oIgorI2luY2x1ZGUgIldlYkZyYW1lUHJveHkuaCIKKyNpbmNsdWRlICJx
cGVybWlzc2lvbnJlcXVlc3RfcC5oIgorCiAjaW5jbHVkZSA8UXRQb2xpY3lJbnRlcmZhY2UuaD4K
ICNpbmNsdWRlIDxRdFZpZXdJbnRlcmZhY2UuaD4KICNpbmNsdWRlIDxRdFdlYlBhZ2VQcm94eS5o
PgpAQCAtMjc5LDYgKzI4MiwxMiBAQCBzdGF0aWMgdm9pZCBxdF93a19kZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tVUgogICAgIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lcik7CiB9CiAKK3N0YXRpYyB2b2lkIHF0X3drX2Rl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3sKKyAgICBRdFBlcm1pc3Npb25SZXF1ZXN0IHJlcSA9IFF0UGVybWlzc2lvblJlcXVlc3Q6OmNy
ZWF0ZShvcmlnaW4sIHJlcXVlc3QpOworICAgIHRvUXRWaWV3SW50ZXJmYWNlKGNsaWVudEluZm8p
LT5wZXJtaXNzaW9uUmVxdWVzdGVkKHJlcSk7Cit9CisKIHZvaWQgc2V0dXBQYWdlTG9hZGVyQ2xp
ZW50KFF0V2ViUGFnZVByb3h5KiBxdFdlYlBhZ2VQcm94eSwgV2ViUGFnZVByb3h5KiB3ZWJQYWdl
UHJveHkpCiB7CiAgICAgV0tQYWdlTG9hZGVyQ2xpZW50IGxvYWRDbGllbnQ7CkBAIC0zMTAsNiAr
MzE5LDcgQEAgdm9pZCBzZXR1cFBhZ2VVaUNsaWVudChRdFdlYlBhZ2VQcm94eSogcXRXZWJQYWdl
UHJveHksIFdlYlBhZ2VQcm94eSogd2ViUGFnZVByb3gKICAgICB1aUNsaWVudC5zZXRTdGF0dXNU
ZXh0ID0gcXRfd2tfc2V0U3RhdHVzVGV4dDsKICAgICB1aUNsaWVudC5ydW5PcGVuUGFuZWwgPSBx
dF93a19ydW5PcGVuUGFuZWw7CiAgICAgdWlDbGllbnQubW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQg
PSBxdF93a19tb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKKyAgICB1aUNsaWVudC5kZWNpZGVQb2xp
Y3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0ID0gcXRfd2tfZGVjaWRlUG9saWN5Rm9y
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQo
dG9BUEkod2ViUGFnZVByb3h5KSwgJnVpQ2xpZW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0VG91Y2hWaWV3SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvUXRUb3VjaFZpZXdJbnRlcmZhY2UuaAppbmRleCAzYTQ1MzQ5Li41
ZWEyNGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRUb3VjaFZp
ZXdJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRUb3VjaFZp
ZXdJbnRlcmZhY2UuaApAQCAtODQsNiArODQsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2
b2lkIGRpZE1vdXNlTW92ZU92ZXJFbGVtZW50KGNvbnN0IFFVcmwmLCBjb25zdCBRU3RyaW5nJikg
eyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcGVybWlzc2lvblJlcXVlc3RlZChRdFBlcm1pc3Npb25S
ZXF1ZXN0JikgeyB9CisKIHByaXZhdGU6CiAgICAgUVRvdWNoV2ViVmlldyogY29uc3QgbV92aWV3
cG9ydFZpZXc7CiAgICAgUVRvdWNoV2ViUGFnZSogY29uc3QgbV9wYWdlVmlldzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdJbnRlcmZhY2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdJbnRlcmZhY2UuaAppbmRleCA1MjZhNDk1Li5j
OTA4NmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3SW50
ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld0ludGVyZmFj
ZS5oCkBAIC0yMSw2ICsyMSw4IEBACiAjaWZuZGVmIFF0Vmlld0ludGVyZmFjZV9oCiAjZGVmaW5l
IFF0Vmlld0ludGVyZmFjZV9oCiAKKyNpbmNsdWRlICJxcGVybWlzc2lvbnJlcXVlc3RfcC5oIgor
CiAjaW5jbHVkZSA8UU1lbnU+CiAjaW5jbHVkZSA8UXRDb3JlL1FTaGFyZWRQb2ludGVyPgogI2lu
Y2x1ZGUgPFF0Q29yZS9RU2l6ZT4KQEAgLTkzLDYgKzk1LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBjaG9vc2VGaWxlcyhXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmLCBjb25zdCBR
U3RyaW5nTGlzdCYgc2VsZWN0ZWRGaWxlTmFtZXMsIEZpbGVDaG9vc2VyVHlwZSkgPSAwOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRpZE1vdXNlTW92ZU92ZXJFbGVtZW50KGNvbnN0IFFVcmwmLCBjb25z
dCBRU3RyaW5nJikgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0ZWQo
UXRQZXJtaXNzaW9uUmVxdWVzdCYpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9xcGVybWlzc2lvbnJlcXVlc3RfcC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvcXBlcm1pc3Npb25yZXF1ZXN0X3AuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2OTA0NzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXBlcm1pc3Npb25yZXF1ZXN0X3AuY3BwCkBAIC0wLDAgKzEs
OTUgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1
ZGUgInFwZXJtaXNzaW9ucmVxdWVzdF9wLmgiCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5o
PgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKworCitjbGFzcyBRdFBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZSA6IHB1YmxpYyBRU2hhcmVkRGF0YSB7CitwdWJsaWM6CisKKyAgICBR
dFBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QpCisgICAgICAgIDogbV9vcmln
aW4oUXRTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbikpCisgICAgICAgICwgbV90eXBlKFF0
UGVybWlzc2lvblJlcXVlc3Q6Okdlb2xvY2F0aW9uKQorICAgICAgICAsIG1fcmVxdWVzdChyZXF1
ZXN0KQorICAgIHsKKyAgICB9CisgICAgflF0UGVybWlzc2lvblJlcXVlc3RQcml2YXRlKCkKKyAg
ICB7CisgICAgfQorCisgICAgUXRTZWN1cml0eU9yaWdpbiBtX29yaWdpbjsKKyAgICBRdFBlcm1p
c3Npb25SZXF1ZXN0OjpUeXBlIG1fdHlwZTsKKworICAgIFdLUmV0YWluUHRyPFdLR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdFJlZj4gbV9yZXF1ZXN0OworfTsKKworUXRQZXJtaXNzaW9uUmVx
dWVzdCBRdFBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUoV0tTZWN1cml0eU9yaWdpblJlZiBvcmln
aW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0KQoreworICAgIHJl
dHVybiBRdFBlcm1pc3Npb25SZXF1ZXN0KG5ldyBRdFBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZShv
cmlnaW4sIHJlcXVlc3QpKTsKK30KKworUXRQZXJtaXNzaW9uUmVxdWVzdDo6UXRQZXJtaXNzaW9u
UmVxdWVzdChRdFBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSogcHJpdikKKyAgICA6IGQocHJpdikK
K3sKK30KKworUXRQZXJtaXNzaW9uUmVxdWVzdDo6flF0UGVybWlzc2lvblJlcXVlc3QoKQorewor
fQorCitRdFBlcm1pc3Npb25SZXF1ZXN0OjpRdFBlcm1pc3Npb25SZXF1ZXN0KGNvbnN0IFF0UGVy
bWlzc2lvblJlcXVlc3QmIG90aGVyKQorICAgIDogZChvdGhlci5kKQoreworfQorCitRdFBlcm1p
c3Npb25SZXF1ZXN0JiBRdFBlcm1pc3Npb25SZXF1ZXN0OjpvcGVyYXRvcj0oY29uc3QgUXRQZXJt
aXNzaW9uUmVxdWVzdCYgb3RoZXIpCit7CisgICAgZCA9IG90aGVyLmQ7CisgICAgcmV0dXJuICp0
aGlzOworfQorCitRdFBlcm1pc3Npb25SZXF1ZXN0OjpUeXBlIFF0UGVybWlzc2lvblJlcXVlc3Q6
OnR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBkLT5tX3R5cGU7Cit9CisKK1F0U2VjdXJpdHlP
cmlnaW4gUXRQZXJtaXNzaW9uUmVxdWVzdDo6b3JpZ2luKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ZC0+bV9vcmlnaW47Cit9CisKK3ZvaWQgUXRQZXJtaXNzaW9uUmVxdWVzdDo6c2V0QWNjZXB0ZWQo
Ym9vbCBhY2NlcHRlZCkKK3sKKyAgICBzd2l0Y2ggKHR5cGUoKSkgeworICAgIGNhc2UgR2VvbG9j
YXRpb246IHsKKyAgICAgICAgaWYgKGFjY2VwdGVkKQorICAgICAgICAgICAgV0tHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0QWxsb3coZC0+bV9yZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueShkLT5tX3Jl
cXVlc3QuZ2V0KCkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L3FwZXJtaXNzaW9ucmVxdWVzdF9wLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvcXBlcm1pc3Npb25yZXF1ZXN0X3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi41NGMzYjhjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L3FwZXJtaXNzaW9ucmVxdWVzdF9wLmgKQEAgLTAsMCArMSw1NyBAQAor
LyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBxcGVybWlzc2lvbnJlcXVlc3RfcF9oCisjZGVm
aW5lIHFwZXJtaXNzaW9ucmVxdWVzdF9wX2gKKworI2luY2x1ZGUgInFzZWN1cml0eW9yaWdpbl9w
LmgiCisjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgorCisjaW5jbHVkZSA8UXRDb3JlL3FzaGFy
ZWRkYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4uaD4KKworY2xhc3MgUXRQ
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CisKK2NsYXNzIFFXRUJLSVRfRVhQT1JUIFF0UGVybWlz
c2lvblJlcXVlc3QgeworcHVibGljOgorICAgIH5RdFBlcm1pc3Npb25SZXF1ZXN0KCk7CisgICAg
ZW51bSBUeXBlIHsKKyAgICAgICAgR2VvbG9jYXRpb24KKyAgICB9OworCisgICAgVHlwZSB0eXBl
KCkgY29uc3Q7CisgICAgUXRTZWN1cml0eU9yaWdpbiBvcmlnaW4oKSBjb25zdDsKKworICAgIHZv
aWQgc2V0QWNjZXB0ZWQoYm9vbCk7CisKKyAgICBRdFBlcm1pc3Npb25SZXF1ZXN0KGNvbnN0IFF0
UGVybWlzc2lvblJlcXVlc3QmIG90aGVyKTsKKyAgICBRdFBlcm1pc3Npb25SZXF1ZXN0JiBvcGVy
YXRvcj0oY29uc3QgUXRQZXJtaXNzaW9uUmVxdWVzdCYgb3RoZXIpOworICAgIHN0YXRpYyBRdFBl
cm1pc3Npb25SZXF1ZXN0IGNyZWF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS0dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RSZWYpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBRdFBl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKKyAgICBRdFBlcm1pc3Npb25SZXF1ZXN0KFF0UGVybWlz
c2lvblJlcXVlc3RQcml2YXRlKik7CisKK3ByaXZhdGU6CisgICAgUUV4cGxpY2l0bHlTaGFyZWRE
YXRhUG9pbnRlcjxRdFBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZT4gZDsKK307CisKKworI2VuZGlm
IC8vIHFwZXJtaXNzaW9ucmVxdWVzdF9wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9xc2VjdXJpdHlvcmlnaW5fcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvcXNlY3VyaXR5b3JpZ2luX3AuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjg1MWM2YTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvcXNlY3VyaXR5b3JpZ2luX3AuY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgICAgQ29w
eXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgInFzZWN1cml0eW9yaWdp
bl9wLmgiCisKKyNpbmNsdWRlICJXS1N0cmluZ1F0LmgiCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dL
UmV0YWluUHRyLmg+CisKK2NsYXNzIFF0U2VjdXJpdHlPcmlnaW5Qcml2YXRlIDogcHVibGljIFFT
aGFyZWREYXRhIHsKK3B1YmxpYzoKKyAgICBXS1JldGFpblB0cjxXS1NlY3VyaXR5T3JpZ2luUmVm
PiBtX29yaWdpbjsKKyAgICBRdFNlY3VyaXR5T3JpZ2luUHJpdmF0ZSgpIHsgfTsKK307CisKK1F0
U2VjdXJpdHlPcmlnaW4gUXRTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFdLU2VjdXJpdHlPcmlnaW5S
ZWYgb3JpZ2luKQoreworICAgIFF0U2VjdXJpdHlPcmlnaW5Qcml2YXRlKiBwcml2ID0gbmV3IFF0
U2VjdXJpdHlPcmlnaW5Qcml2YXRlOworICAgIHByaXYtPm1fb3JpZ2luID0gb3JpZ2luOworICAg
IHJldHVybiBRdFNlY3VyaXR5T3JpZ2luKHByaXYpOworfQorCitRdFNlY3VyaXR5T3JpZ2luOjpR
dFNlY3VyaXR5T3JpZ2luKFF0U2VjdXJpdHlPcmlnaW5Qcml2YXRlKiBwcml2KQorICAgIDogZChw
cml2KQoreworfQorCitRdFNlY3VyaXR5T3JpZ2luOjpRdFNlY3VyaXR5T3JpZ2luKGNvbnN0IFF0
U2VjdXJpdHlPcmlnaW4mIG90aGVyKQorICAgIDogZChvdGhlci5kKQoreworfQorCitRdFNlY3Vy
aXR5T3JpZ2luOjp+UXRTZWN1cml0eU9yaWdpbigpCit7Cit9CisKK1F0U2VjdXJpdHlPcmlnaW4m
IFF0U2VjdXJpdHlPcmlnaW46Om9wZXJhdG9yPShjb25zdCBRdFNlY3VyaXR5T3JpZ2luJiBvdGhl
cikKK3sKKyAgICBkID0gb3RoZXIuZDsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK1FTdHJpbmcg
UXRTZWN1cml0eU9yaWdpbjo6c2NoZW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV0tTdHJpbmdD
b3B5UVN0cmluZyhXS1NlY3VyaXR5T3JpZ2luQ29weVByb3RvY29sKGQtPm1fb3JpZ2luLmdldCgp
KSk7Cit9CisKK1FTdHJpbmcgUXRTZWN1cml0eU9yaWdpbjo6aG9zdCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KGQtPm1f
b3JpZ2luLmdldCgpKSk7Cit9CisKK3F1aW50MTYgUXRTZWN1cml0eU9yaWdpbjo6cG9ydCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIFdLU2VjdXJpdHlPcmlnaW5HZXRQb3J0KGQtPm1fb3JpZ2luLmdl
dCgpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xc2VjdXJp
dHlvcmlnaW5fcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FzZWN1cml0eW9yaWdp
bl9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ2NGIyZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xc2VjdXJpdHlvcmlnaW5f
cC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgcXNlY3Vy
aXR5b3JpZ2luX3BfaAorI2RlZmluZSBxc2VjdXJpdHlvcmlnaW5fcF9oCisKKyNpbmNsdWRlICJx
d2Via2l0Z2xvYmFsLmgiCisjaW5jbHVkZSA8UVN0cmluZz4KKyNpbmNsdWRlIDxRdENvcmUvcXNo
YXJlZGRhdGEuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4uaD4KKworY2xh
c3MgUXRTZWN1cml0eU9yaWdpblByaXZhdGU7CisKK2NsYXNzIFFXRUJLSVRfRVhQT1JUIFF0U2Vj
dXJpdHlPcmlnaW4geworcHVibGljOgorICAgIH5RdFNlY3VyaXR5T3JpZ2luKCk7CisKKyAgICBR
U3RyaW5nIHNjaGVtZSgpIGNvbnN0OworICAgIFFTdHJpbmcgaG9zdCgpIGNvbnN0OworICAgIHF1
aW50MTYgcG9ydCgpIGNvbnN0OworCisgICAgUXRTZWN1cml0eU9yaWdpbihjb25zdCBRdFNlY3Vy
aXR5T3JpZ2luJiBvdGhlcik7CisgICAgUXRTZWN1cml0eU9yaWdpbiAmb3BlcmF0b3I9KGNvbnN0
IFF0U2VjdXJpdHlPcmlnaW4mIG90aGVyKTsKKyAgICBzdGF0aWMgUXRTZWN1cml0eU9yaWdpbiBj
cmVhdGUoV0tTZWN1cml0eU9yaWdpblJlZik7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNz
IFF0U2VjdXJpdHlPcmlnaW5Qcml2YXRlOworICAgIFF0U2VjdXJpdHlPcmlnaW4oUXRTZWN1cml0
eU9yaWdpblByaXZhdGUqKTsKKworICAgIFFFeHBsaWNpdGx5U2hhcmVkRGF0YVBvaW50ZXI8UXRT
ZWN1cml0eU9yaWdpblByaXZhdGU+IGQ7Cit9OworCisjZW5kaWYgLy8gcXNlY3VyaXR5b3JpZ2lu
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi5wcm8KaW5kZXggYTMxZTM1NC4uYjgxNTNmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi5wcm8KKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KQEAg
LTI2Myw2ICsyNjMsOCBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvcXQvUXRXZWJQYWdl
UHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL3F0L3F3a2hpc3RvcnkuaCBcCiAgICAgVUlQcm9jZXNz
L3F0L3F3a2hpc3RvcnlfcC5oIFwKKyAgICBVSVByb2Nlc3MvcXQvcXBlcm1pc3Npb25yZXF1ZXN0
X3AuaCBcCisgICAgVUlQcm9jZXNzL3F0L3FzZWN1cml0eW9yaWdpbl9wLmggXAogICAgIFVJUHJv
Y2Vzcy9xdC9RdFNHVXBkYXRlUXVldWUuaCBcCiAgICAgVUlQcm9jZXNzL3F0L1F0U0dUaWxlTm9k
ZS5oIFwKICAgICBVSVByb2Nlc3MvcXQvUXRWaWV3SW50ZXJmYWNlLmggXApAQCAtNTAzLDYgKzUw
NSw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9xdC9RdFdlYkVycm9yLmNwcCBcCiAg
ICAgVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L3F3
a2hpc3RvcnkuY3BwIFwKKyAgICBVSVByb2Nlc3MvcXQvcXBlcm1pc3Npb25yZXF1ZXN0X3AuY3Bw
IFwKKyAgICBVSVByb2Nlc3MvcXQvcXNlY3VyaXR5b3JpZ2luX3AuY3BwIFwKICAgICBVSVByb2Nl
c3MvcXQvUXRTR1VwZGF0ZVF1ZXVlLmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1F0U0dUaWxlTm9k
ZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9UaWxlZERyYXdpbmdBcmVhUHJveHlRdC5jcHAgXAot
LSAKMS43LjQuMQoK
</data>
<flag name="review"
          id="111598"
          type_id="1"
          status="-"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="111599"
          type_id="3"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114282</attachid>
            <date>2011-11-09 08:05:52 -0800</date>
            <delta_ts>2011-11-10 10:58:34 -0800</delta_ts>
            <desc>Fixed shared pointer, changelog, comment</desc>
            <filename>geoperm3.patch</filename>
            <type>text/plain</type>
            <size>17524</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSA3ZTI1YjdlYTE4Y2U4ZWFkNGFjMmY0NGUxMzI5ODViZTRjYTE1YjUzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IFdlZCwgOSBOb3YgMjAxMSAxMTo1OTo1NCAtMDQwMApTdWJq
ZWN0OiBbUEFUQ0hdIEltcGxlbWVudGluZyBob29rdXAgQVBJIGZvciBnZW9wZXJtaXNzaW9uLgoK
U2lnbmVkLW9mZi1ieTogQWRlbmlsc29uIENhdmFsY2FudGkgPGFkZW5pbHNvbi5zaWx2YUBvcGVu
Ym9zc2Eub3JnPgotLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICA0MSArKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FkZXNrdG9wd2Vidmlldy5jcHAgICB8ICAgIDYgKysKIC4uLi9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3X3AuaCAgIHwgICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAgICAgICAgICB8ICAgIDkgKysKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdFRvdWNoVmlld0ludGVyZmFjZS5oIHwgICAgMiArCiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3SW50ZXJmYWNlLmggICAgICB8ICAgIDQgKwogLi4u
L1dlYktpdDIvVUlQcm9jZXNzL3F0L3FwZXJtaXNzaW9ucmVxdWVzdF9wLmNwcCAgfCAgIDk1ICsr
KysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXBlcm1pc3Np
b25yZXF1ZXN0X3AuaCB8ICAgNTcgKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvcXNlY3VyaXR5b3JpZ2luX3AuY3BwICB8ICAgNzQgKysrKysrKysrKysrKysrCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXNlY3VyaXR5b3JpZ2luX3AuaCAgICB8ICAgNDkgKysr
KysrKysrKwogMTEgZmlsZXMgY2hhbmdlZCwgMzQzIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FwZXJt
aXNzaW9ucmVxdWVzdF9wLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9xcGVybWlzc2lvbnJlcXVlc3RfcC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FzZWN1cml0eW9yaWdpbl9wLmNwcAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xc2VjdXJpdHlvcmlnaW5fcC5o
CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDViYTM1OTMuLmYwNTdjY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
NCBAQAorMjAxMS0xMS0wOSAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxhZGVuaWxzb24uc2lsdmFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbUXRdW1dLMl0gSW1wbGVtZW50IHBlcm1pc3Npb24g
QVBJIGZvciBRdCBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01OTIwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEhvb2t1cCBwZXJtaXNzaW9uIEFQSSBmb3IgZ2VvbG9jYXRpb24gcGVybWlzc2lvbi4K
KworICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZGVz
a3RvcHdlYnZpZXcuY3BwOgorICAgICAgICAoUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTo6cGVybWlz
c2lvblJlcXVlc3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZp
ZXdfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcDoKKyAgICAgICAg
KHF0X3drX2RlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAg
ICAgICAoc2V0dXBQYWdlVWlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFRvdWNo
Vmlld0ludGVyZmFjZS5oOgorICAgICAgICAoV2ViS2l0OjpRdFRvdWNoVmlld0ludGVyZmFjZTo6
cGVybWlzc2lvblJlcXVlc3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0Vmlld0ludGVy
ZmFjZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9xcGVybWlzc2lvbnJlcXVlc3RfcC5jcHA6
IEFkZGVkLgorICAgICAgICAoUXRQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU6OlF0UGVybWlzc2lv
blJlcXVlc3RQcml2YXRlKToKKyAgICAgICAgKFF0UGVybWlzc2lvblJlcXVlc3RQcml2YXRlOjp+
UXRQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUpOgorICAgICAgICAoUXRQZXJtaXNzaW9uUmVxdWVz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFF0UGVybWlzc2lvblJlcXVlc3Q6OlF0UGVybWlzc2lvblJl
cXVlc3QpOgorICAgICAgICAoUXRQZXJtaXNzaW9uUmVxdWVzdDo6flF0UGVybWlzc2lvblJlcXVl
c3QpOgorICAgICAgICAoUXRQZXJtaXNzaW9uUmVxdWVzdDo6b3BlcmF0b3I9KToKKyAgICAgICAg
KFF0UGVybWlzc2lvblJlcXVlc3Q6OnR5cGUpOgorICAgICAgICAoUXRQZXJtaXNzaW9uUmVxdWVz
dDo6b3JpZ2luKToKKyAgICAgICAgKFF0UGVybWlzc2lvblJlcXVlc3Q6OnNldEFjY2VwdGVkKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvcXQvcXBlcm1pc3Npb25yZXF1ZXN0X3AuaDogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL3F0L3FzZWN1cml0eW9yaWdpbl9wLmNwcDogQWRkZWQuCisgICAg
ICAgIChRdFNlY3VyaXR5T3JpZ2luUHJpdmF0ZTo6UXRTZWN1cml0eU9yaWdpblByaXZhdGUpOgor
ICAgICAgICAoUXRTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKToKKyAgICAgICAgKFF0U2VjdXJpdHlP
cmlnaW46OlF0U2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoUXRTZWN1cml0eU9yaWdpbjo6flF0
U2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoUXRTZWN1cml0eU9yaWdpbjo6b3BlcmF0b3I9KToK
KyAgICAgICAgKFF0U2VjdXJpdHlPcmlnaW46OnNjaGVtZSk6CisgICAgICAgIChRdFNlY3VyaXR5
T3JpZ2luOjpob3N0KToKKyAgICAgICAgKFF0U2VjdXJpdHlPcmlnaW46OnBvcnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9xdC9xc2VjdXJpdHlvcmlnaW5fcC5oOiBBZGRlZC4KKwogMjAxMS0xMS0w
OSAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAg
W1F0XSBGaXggZ2VvbG9jYXRpb24gZW5hYmxlZCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IDJmYTlj
MjIuLjIwNWYwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIv
U291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMjUzLDYgKzI1Myw4IEBAIEhFQURFUlMgKz0g
XAogICAgIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvcXQv
cXdraGlzdG9yeS5oIFwKICAgICBVSVByb2Nlc3MvcXQvcXdraGlzdG9yeV9wLmggXAorICAgIFVJ
UHJvY2Vzcy9xdC9xcGVybWlzc2lvbnJlcXVlc3RfcC5oIFwKKyAgICBVSVByb2Nlc3MvcXQvcXNl
Y3VyaXR5b3JpZ2luX3AuaCBcCiAgICAgVUlQcm9jZXNzL3F0L1F0U0dVcGRhdGVRdWV1ZS5oIFwK
ICAgICBVSVByb2Nlc3MvcXQvUXRTR1RpbGVOb2RlLmggXAogICAgIFVJUHJvY2Vzcy9xdC9RdFZp
ZXdJbnRlcmZhY2UuaCBcCkBAIC00OTQsNiArNDk2LDggQEAgU09VUkNFUyArPSBcCiAgICAgVUlQ
cm9jZXNzL3F0L1F0RG93bmxvYWRNYW5hZ2VyLmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1F0V2Vi
UGFnZVByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L3F3a2hpc3RvcnkuY3BwIFwKKyAgICBV
SVByb2Nlc3MvcXQvcXBlcm1pc3Npb25yZXF1ZXN0X3AuY3BwIFwKKyAgICBVSVByb2Nlc3MvcXQv
cXNlY3VyaXR5b3JpZ2luX3AuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvUXRTR1VwZGF0ZVF1ZXVl
LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1F0U0dUaWxlTm9kZS5jcHAgXAogICAgIFVJUHJvY2Vz
cy9xdC9UaWxlZERyYXdpbmdBcmVhUHJveHlRdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwCmluZGV4IDA3MWRlY2UuLjlj
NzViMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0
b3B3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNr
dG9wd2Vidmlldy5jcHAKQEAgLTQ5Nyw2ICs0OTcsMTIgQEAgdm9pZCBRRGVza3RvcFdlYlZpZXdQ
cml2YXRlOjpkaWRNb3VzZU1vdmVPdmVyRWxlbWVudChjb25zdCBRVXJsJiBsaW5rVVJMLCBjb25z
dAogICAgIGVtaXQgcS0+bGlua0hvdmVyZWQobGFzdEhvdmVyZWRVUkwsIGxhc3RIb3ZlcmVkVGl0
bGUpOwogfQogCit2b2lkIFFEZXNrdG9wV2ViVmlld1ByaXZhdGU6OnBlcm1pc3Npb25SZXF1ZXN0
ZWQoUXRQZXJtaXNzaW9uUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICAvLyBGb3IgYSB3aGlsZSwg
c2V0IGl0IHRvIHRydWUuCisgICAgcmVxdWVzdC5zZXRBY2NlcHRlZCh0cnVlKTsKK30KKwogdm9p
ZCBRRGVza3RvcFdlYlZpZXdQcml2YXRlOjpkb3dubG9hZFJlcXVlc3RlZChRV2ViRG93bmxvYWRJ
dGVtKiBkb3dubG9hZEl0ZW0pCiB7CiAgICAgaWYgKCFkb3dubG9hZEl0ZW0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlld19wLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlld19wLmgKaW5kZXgg
OTMyNWUwYi4uOWJmOGE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xZGVza3RvcHdlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcWRlc2t0b3B3ZWJ2aWV3X3AuaApAQCAtODksNiArODksOCBAQCBwcml2YXRlOgogCiAg
ICAgdmlydHVhbCB2b2lkIGRpZE1vdXNlTW92ZU92ZXJFbGVtZW50KGNvbnN0IFFVcmwmLCBjb25z
dCBRU3RyaW5nJik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcGVybWlzc2lvblJlcXVlc3RlZChRdFBl
cm1pc3Npb25SZXF1ZXN0Jik7CisKICAgICAvLyBRdFBvbGljeUludGVyZmFjZS4KICAgICB2aXJ0
dWFsIFF0UG9saWN5SW50ZXJmYWNlOjpQb2xpY3lBY3Rpb24gbmF2aWdhdGlvblBvbGljeUZvclVS
TChjb25zdCBRVXJsJiwgUXQ6Ok1vdXNlQnV0dG9uLCBRdDo6S2V5Ym9hcmRNb2RpZmllcnMpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAKaW5kZXggODAyZWRl
Ni4uM2U5OTllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0NsaWVu
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNw
cApAQCAtMjMsOCArMjMsMTAgQEAKICNpbmNsdWRlICJRdFdlYkVycm9yLmgiCiAjaW5jbHVkZSAi
V2ViRnJhbWVQcm94eS5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIldLU3RyaW5nUXQuaCIKICNp
bmNsdWRlICJXS1VSTFF0LmgiCisjaW5jbHVkZSAicXBlcm1pc3Npb25yZXF1ZXN0X3AuaCIKICNp
bmNsdWRlIDxRdFBvbGljeUludGVyZmFjZS5oPgogI2luY2x1ZGUgPFF0Vmlld0ludGVyZmFjZS5o
PgogI2luY2x1ZGUgPFF0V2ViUGFnZVByb3h5Lmg+CkBAIC0yMDYsNiArMjA4LDEyIEBAIHN0YXRp
YyB2b2lkIHF0X3drX21vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdLUGFnZVJlZiBwYWdlLCBXS0hp
dFRlc3RSZXN1bHRSZWYgaGl0CiAgICAgdG9RdFZpZXdJbnRlcmZhY2UoY2xpZW50SW5mbyktPmRp
ZE1vdXNlTW92ZU92ZXJFbGVtZW50KGFic29sdXRlTGlua1VybCwgbGlua1RpdGxlKTsKIH0KIAor
c3RhdGljIHZvaWQgcXRfd2tfZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdChXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJl
ZiBvcmlnaW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0LCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFF0UGVybWlzc2lvblJlcXVlc3QgcmVxID0gUXRQ
ZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKG9yaWdpbiwgcmVxdWVzdCk7CisgICAgdG9RdFZpZXdJ
bnRlcmZhY2UoY2xpZW50SW5mbyktPnBlcm1pc3Npb25SZXF1ZXN0ZWQocmVxKTsKK30KKwogc3Rh
dGljIFF0OjpNb3VzZUJ1dHRvbiB0b1F0TW91c2VCdXR0b24oV0tFdmVudE1vdXNlQnV0dG9uIGJ1
dHRvbikKIHsKICAgICBzd2l0Y2ggKGJ1dHRvbikgewpAQCAtMzMxLDYgKzMzOSw3IEBAIHZvaWQg
c2V0dXBQYWdlVWlDbGllbnQoUXRXZWJQYWdlUHJveHkqIHF0V2ViUGFnZVByb3h5LCBXZWJQYWdl
UHJveHkqIHdlYlBhZ2VQcm94CiAgICAgdWlDbGllbnQuc2V0U3RhdHVzVGV4dCA9IHF0X3drX3Nl
dFN0YXR1c1RleHQ7CiAgICAgdWlDbGllbnQucnVuT3BlblBhbmVsID0gcXRfd2tfcnVuT3BlblBh
bmVsOwogICAgIHVpQ2xpZW50Lm1vdXNlRGlkTW92ZU92ZXJFbGVtZW50ID0gcXRfd2tfbW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgdWlDbGllbnQuZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdCA9IHF0X3drX2RlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3Q7CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHRvQVBJKHdlYlBhZ2VQ
cm94eSksICZ1aUNsaWVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFRvdWNoVmlld0ludGVyZmFjZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0VG91Y2hWaWV3SW50ZXJmYWNlLmgKaW5kZXggYjBkN2VjMS4uNzI4M2JiNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0VG91Y2hWaWV3SW50ZXJmYWNlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0VG91Y2hWaWV3SW50ZXJmYWNlLmgK
QEAgLTg2LDYgKzg2LDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRNb3VzZU1v
dmVPdmVyRWxlbWVudChjb25zdCBRVXJsJiwgY29uc3QgUVN0cmluZyYpIHsgfQogCisgICAgdmly
dHVhbCB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0ZWQoUXRQZXJtaXNzaW9uUmVxdWVzdCYpIHsgfQor
CiBwcml2YXRlOgogICAgIFFUb3VjaFdlYlZpZXcqIGNvbnN0IG1fdmlld3BvcnRWaWV3OwogICAg
IFFUb3VjaFdlYlBhZ2UqIGNvbnN0IG1fcGFnZVZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXRWaWV3SW50ZXJmYWNlLmgKaW5kZXggYjVmNWM0Yi4uZTU5N2IwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld0ludGVyZmFjZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdJbnRlcmZhY2UuaApAQCAtMjEsNiAr
MjEsOCBAQAogI2lmbmRlZiBRdFZpZXdJbnRlcmZhY2VfaAogI2RlZmluZSBRdFZpZXdJbnRlcmZh
Y2VfaAogCisjaW5jbHVkZSAicXBlcm1pc3Npb25yZXF1ZXN0X3AuaCIKKwogI2luY2x1ZGUgPFFN
ZW51PgogI2luY2x1ZGUgPFF0Q29yZS9RU2hhcmVkUG9pbnRlcj4KICNpbmNsdWRlIDxRdENvcmUv
UVNpemU+CkBAIC05Nyw2ICs5OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTW91
c2VNb3ZlT3ZlckVsZW1lbnQoY29uc3QgUVVybCYsIGNvbnN0IFFTdHJpbmcmKSA9IDA7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZG93bmxvYWRSZXF1ZXN0ZWQoUVdlYkRvd25sb2FkSXRlbSopID0gMDsK
KworICAgIHZpcnR1YWwgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdGVkKFF0UGVybWlzc2lvblJlcXVl
c3QmKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvcXBlcm1pc3Npb25yZXF1ZXN0X3AuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L3FwZXJtaXNzaW9ucmVxdWVzdF9wLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4wNjkwNDcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L3FwZXJtaXNzaW9ucmVxdWVzdF9wLmNwcApAQCAtMCwwICsxLDk1IEBACisvKgorICAgIENv
cHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJxcGVybWlzc2lvbnJl
cXVlc3RfcC5oIgorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJL
aXQyL1dLUmV0YWluUHRyLmg+CisKKworY2xhc3MgUXRQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUg
OiBwdWJsaWMgUVNoYXJlZERhdGEgeworcHVibGljOgorCisgICAgUXRQZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGUoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdFJlZiByZXF1ZXN0KQorICAgICAgICA6IG1fb3JpZ2luKFF0U2VjdXJpdHlPcmln
aW46OmNyZWF0ZShvcmlnaW4pKQorICAgICAgICAsIG1fdHlwZShRdFBlcm1pc3Npb25SZXF1ZXN0
OjpHZW9sb2NhdGlvbikKKyAgICAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKKyAgICB7CisgICAg
fQorICAgIH5RdFBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSgpCisgICAgeworICAgIH0KKworICAg
IFF0U2VjdXJpdHlPcmlnaW4gbV9vcmlnaW47CisgICAgUXRQZXJtaXNzaW9uUmVxdWVzdDo6VHlw
ZSBtX3R5cGU7CisKKyAgICBXS1JldGFpblB0cjxXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RSZWY+IG1fcmVxdWVzdDsKK307CisKK1F0UGVybWlzc2lvblJlcXVlc3QgUXRQZXJtaXNzaW9u
UmVxdWVzdDo6Y3JlYXRlKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUXRQZXJtaXNzaW9u
UmVxdWVzdChuZXcgUXRQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUob3JpZ2luLCByZXF1ZXN0KSk7
Cit9CisKK1F0UGVybWlzc2lvblJlcXVlc3Q6OlF0UGVybWlzc2lvblJlcXVlc3QoUXRQZXJtaXNz
aW9uUmVxdWVzdFByaXZhdGUqIHByaXYpCisgICAgOiBkKHByaXYpCit7Cit9CisKK1F0UGVybWlz
c2lvblJlcXVlc3Q6On5RdFBlcm1pc3Npb25SZXF1ZXN0KCkKK3sKK30KKworUXRQZXJtaXNzaW9u
UmVxdWVzdDo6UXRQZXJtaXNzaW9uUmVxdWVzdChjb25zdCBRdFBlcm1pc3Npb25SZXF1ZXN0JiBv
dGhlcikKKyAgICA6IGQob3RoZXIuZCkKK3sKK30KKworUXRQZXJtaXNzaW9uUmVxdWVzdCYgUXRQ
ZXJtaXNzaW9uUmVxdWVzdDo6b3BlcmF0b3I9KGNvbnN0IFF0UGVybWlzc2lvblJlcXVlc3QmIG90
aGVyKQoreworICAgIGQgPSBvdGhlci5kOworICAgIHJldHVybiAqdGhpczsKK30KKworUXRQZXJt
aXNzaW9uUmVxdWVzdDo6VHlwZSBRdFBlcm1pc3Npb25SZXF1ZXN0Ojp0eXBlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZC0+bV90eXBlOworfQorCitRdFNlY3VyaXR5T3JpZ2luIFF0UGVybWlzc2lv
blJlcXVlc3Q6Om9yaWdpbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPm1fb3JpZ2luOworfQor
Cit2b2lkIFF0UGVybWlzc2lvblJlcXVlc3Q6OnNldEFjY2VwdGVkKGJvb2wgYWNjZXB0ZWQpCit7
CisgICAgc3dpdGNoICh0eXBlKCkpIHsKKyAgICBjYXNlIEdlb2xvY2F0aW9uOiB7CisgICAgICAg
IGlmIChhY2NlcHRlZCkKKyAgICAgICAgICAgIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dEFsbG93KGQtPm1fcmVxdWVzdC5nZXQoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFdL
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdERlbnkoZC0+bV9yZXF1ZXN0LmdldCgpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9xcGVybWlzc2lvbnJlcXVlc3RfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3Fw
ZXJtaXNzaW9ucmVxdWVzdF9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NTRjM2I4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9x
cGVybWlzc2lvbnJlcXVlc3RfcC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgICAgQ29weXJpZ2h0
IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
CisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyov
CisKKyNpZm5kZWYgcXBlcm1pc3Npb25yZXF1ZXN0X3BfaAorI2RlZmluZSBxcGVybWlzc2lvbnJl
cXVlc3RfcF9oCisKKyNpbmNsdWRlICJxc2VjdXJpdHlvcmlnaW5fcC5oIgorI2luY2x1ZGUgInF3
ZWJraXRnbG9iYWwuaCIKKworI2luY2x1ZGUgPFF0Q29yZS9xc2hhcmVkZGF0YS5oPgorI2luY2x1
ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8
V2ViS2l0Mi9XS1NlY3VyaXR5T3JpZ2luLmg+CisKK2NsYXNzIFF0UGVybWlzc2lvblJlcXVlc3RQ
cml2YXRlOworCitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRdFBlcm1pc3Npb25SZXF1ZXN0IHsKK3B1
YmxpYzoKKyAgICB+UXRQZXJtaXNzaW9uUmVxdWVzdCgpOworICAgIGVudW0gVHlwZSB7CisgICAg
ICAgIEdlb2xvY2F0aW9uCisgICAgfTsKKworICAgIFR5cGUgdHlwZSgpIGNvbnN0OworICAgIFF0
U2VjdXJpdHlPcmlnaW4gb3JpZ2luKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldEFjY2VwdGVkKGJv
b2wpOworCisgICAgUXRQZXJtaXNzaW9uUmVxdWVzdChjb25zdCBRdFBlcm1pc3Npb25SZXF1ZXN0
JiBvdGhlcik7CisgICAgUXRQZXJtaXNzaW9uUmVxdWVzdCYgb3BlcmF0b3I9KGNvbnN0IFF0UGVy
bWlzc2lvblJlcXVlc3QmIG90aGVyKTsKKyAgICBzdGF0aWMgUXRQZXJtaXNzaW9uUmVxdWVzdCBj
cmVhdGUoV0tTZWN1cml0eU9yaWdpblJlZiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UmVmKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUXRQZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGU7CisgICAgUXRQZXJtaXNzaW9uUmVxdWVzdChRdFBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZSopOworCitwcml2YXRlOgorICAgIFFFeHBsaWNpdGx5U2hhcmVkRGF0YVBvaW50ZXI8UXRQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGU+IGQ7Cit9OworCisKKyNlbmRpZiAvLyBxcGVybWlzc2lvbnJl
cXVlc3RfcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXNlY3Vy
aXR5b3JpZ2luX3AuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FzZWN1cml0eW9y
aWdpbl9wLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODU4NzMxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FzZWN1cml0eW9y
aWdpbl9wLmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMSBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJxc2VjdXJpdHlvcmlnaW5fcC5oIgorCisjaW5jbHVk
ZSAiV0tTdHJpbmdRdC5oIgorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorCitj
bGFzcyBRdFNlY3VyaXR5T3JpZ2luUHJpdmF0ZSA6IHB1YmxpYyBRU2hhcmVkRGF0YSB7CitwdWJs
aWM6CisgICAgV0tTZWN1cml0eU9yaWdpblJlZiBtX29yaWdpbjsKKyAgICBRdFNlY3VyaXR5T3Jp
Z2luUHJpdmF0ZSgpIHsgfTsKK307CisKK1F0U2VjdXJpdHlPcmlnaW4gUXRTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKQoreworICAgIFF0U2VjdXJpdHlP
cmlnaW5Qcml2YXRlKiBwcml2ID0gbmV3IFF0U2VjdXJpdHlPcmlnaW5Qcml2YXRlOworICAgIHBy
aXYtPm1fb3JpZ2luID0gb3JpZ2luOworICAgIHJldHVybiBRdFNlY3VyaXR5T3JpZ2luKHByaXYp
OworfQorCitRdFNlY3VyaXR5T3JpZ2luOjpRdFNlY3VyaXR5T3JpZ2luKFF0U2VjdXJpdHlPcmln
aW5Qcml2YXRlKiBwcml2KQorICAgIDogZChwcml2KQoreworfQorCitRdFNlY3VyaXR5T3JpZ2lu
OjpRdFNlY3VyaXR5T3JpZ2luKGNvbnN0IFF0U2VjdXJpdHlPcmlnaW4mIG90aGVyKQorICAgIDog
ZChvdGhlci5kKQoreworfQorCitRdFNlY3VyaXR5T3JpZ2luOjp+UXRTZWN1cml0eU9yaWdpbigp
Cit7Cit9CisKK1F0U2VjdXJpdHlPcmlnaW4mIFF0U2VjdXJpdHlPcmlnaW46Om9wZXJhdG9yPShj
b25zdCBRdFNlY3VyaXR5T3JpZ2luJiBvdGhlcikKK3sKKyAgICBkID0gb3RoZXIuZDsKKyAgICBy
ZXR1cm4gKnRoaXM7Cit9CisKK1FTdHJpbmcgUXRTZWN1cml0eU9yaWdpbjo6c2NoZW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhXS1NlY3VyaXR5T3JpZ2luQ29w
eVByb3RvY29sKGQtPm1fb3JpZ2luKSk7Cit9CisKK1FTdHJpbmcgUXRTZWN1cml0eU9yaWdpbjo6
aG9zdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tTZWN1cml0
eU9yaWdpbkNvcHlIb3N0KGQtPm1fb3JpZ2luKSk7Cit9CisKK3F1aW50MTYgUXRTZWN1cml0eU9y
aWdpbjo6cG9ydCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdLU2VjdXJpdHlPcmlnaW5HZXRQb3J0
KGQtPm1fb3JpZ2luKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9xc2VjdXJpdHlvcmlnaW5fcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FzZWN1
cml0eW9yaWdpbl9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ2NGIy
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xc2VjdXJp
dHlvcmlnaW5fcC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEx
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5k
ZWYgcXNlY3VyaXR5b3JpZ2luX3BfaAorI2RlZmluZSBxc2VjdXJpdHlvcmlnaW5fcF9oCisKKyNp
bmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCisjaW5jbHVkZSA8UVN0cmluZz4KKyNpbmNsdWRlIDxR
dENvcmUvcXNoYXJlZGRhdGEuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4u
aD4KKworY2xhc3MgUXRTZWN1cml0eU9yaWdpblByaXZhdGU7CisKK2NsYXNzIFFXRUJLSVRfRVhQ
T1JUIFF0U2VjdXJpdHlPcmlnaW4geworcHVibGljOgorICAgIH5RdFNlY3VyaXR5T3JpZ2luKCk7
CisKKyAgICBRU3RyaW5nIHNjaGVtZSgpIGNvbnN0OworICAgIFFTdHJpbmcgaG9zdCgpIGNvbnN0
OworICAgIHF1aW50MTYgcG9ydCgpIGNvbnN0OworCisgICAgUXRTZWN1cml0eU9yaWdpbihjb25z
dCBRdFNlY3VyaXR5T3JpZ2luJiBvdGhlcik7CisgICAgUXRTZWN1cml0eU9yaWdpbiAmb3BlcmF0
b3I9KGNvbnN0IFF0U2VjdXJpdHlPcmlnaW4mIG90aGVyKTsKKyAgICBzdGF0aWMgUXRTZWN1cml0
eU9yaWdpbiBjcmVhdGUoV0tTZWN1cml0eU9yaWdpblJlZik7CisKK3ByaXZhdGU6CisgICAgZnJp
ZW5kIGNsYXNzIFF0U2VjdXJpdHlPcmlnaW5Qcml2YXRlOworICAgIFF0U2VjdXJpdHlPcmlnaW4o
UXRTZWN1cml0eU9yaWdpblByaXZhdGUqKTsKKworICAgIFFFeHBsaWNpdGx5U2hhcmVkRGF0YVBv
aW50ZXI8UXRTZWN1cml0eU9yaWdpblByaXZhdGU+IGQ7Cit9OworCisjZW5kaWYgLy8gcXNlY3Vy
aXR5b3JpZ2luX2gKLS0gCjEuNy40LjEKCg==
</data>
<flag name="review"
          id="112888"
          type_id="1"
          status="-"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="112889"
          type_id="3"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114527</attachid>
            <date>2011-11-10 10:58:34 -0800</date>
            <delta_ts>2011-11-18 13:15:23 -0800</delta_ts>
            <desc>Solved shared pointer issue (hopefully!), file naming, no longer setting permission to true</desc>
            <filename>geoperm4.patch</filename>
            <type>text/plain</type>
            <size>15883</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSA0YWY4YmM0ZmFmMjBjOGYwMzhjZmYwM2ZlNTZmNjE3MzM2MzhjOGQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IFRodSwgMTAgTm92IDIwMTEgMTQ6NDk6MjYgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBIb29rdXAgQVBJIGZvciBnZW9sb2NhdGlvbiBwZXJtaXNzaW9uLgoKU2ln
bmVkLW9mZi1ieTogQWRlbmlsc29uIENhdmFsY2FudGkgPGFkZW5pbHNvbi5zaWx2YUBvcGVuYm9z
c2Eub3JnPgotLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAzNyArKysrKysrKwogU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICA0ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9D
bGllbnRJbXBsLmNwcCAgICAgICAgIHwgICAgOSArKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0Vmlld0ludGVyZmFjZS5jcHAgICAgfCAgICA1ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFZpZXdJbnRlcmZhY2UuaCAgICAgIHwgICAgNCArCiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvcXBlcm1pc3Npb25yZXF1ZXN0LmNwcCB8ICAgOTUgKysrKysrKysrKysrKysr
KysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xcGVybWlzc2lvbnJlcXVlc3RfcC5o
IHwgICA1NyArKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xc2VjdXJp
dHlvcmlnaW4uY3BwICAgIHwgICA2NCArKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvcXNlY3VyaXR5b3JpZ2luX3AuaCAgICB8ICAgNDggKysrKysrKysrKwogOSBmaWxl
cyBjaGFuZ2VkLCAzMjMgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXBlcm1pc3Npb25yZXF1ZXN0LmNw
cAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xcGVybWlz
c2lvbnJlcXVlc3RfcC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L3FzZWN1cml0eW9yaWdpbi5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvcXNlY3VyaXR5b3JpZ2luX3AuaAoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5MmM3
MjFlLi4xODRiM2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTEtMTEtMTAgIEFk
ZW5pbHNvbiBDYXZhbGNhbnRpICA8YWRlbmlsc29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+CisKKyAg
ICAgICAgW1F0XVtXSzJdIEltcGxlbWVudCBwZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIb29rdXAgcGVybWlz
c2lvbiBBUEkgZm9yIGdlb2xvY2F0aW9uIHBlcm1pc3Npb24uCisKKyAgICAgICAgKiBUYXJnZXQu
cHJpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKHF0
X3drX2RlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAg
ICAoc2V0dXBQYWdlVWlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFZpZXdJbnRl
cmZhY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpRdFZpZXdJbnRlcmZhY2U6OnBlcm1pc3Npb25S
ZXF1ZXN0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFZpZXdJbnRlcmZhY2UuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvcXQvcXBlcm1pc3Npb25yZXF1ZXN0LmNwcDogQWRkZWQuCisgICAg
ICAgIChRdFBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTo6UXRQZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGUpOgorICAgICAgICAoUXRQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU6On5RdFBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZSk6CisgICAgICAgIChRdFBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgor
ICAgICAgICAoUXRQZXJtaXNzaW9uUmVxdWVzdDo6UXRQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAg
ICAgIChRdFBlcm1pc3Npb25SZXF1ZXN0Ojp+UXRQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAg
IChRdFBlcm1pc3Npb25SZXF1ZXN0OjpvcGVyYXRvcj0pOgorICAgICAgICAoUXRQZXJtaXNzaW9u
UmVxdWVzdDo6dHlwZSk6CisgICAgICAgIChRdFBlcm1pc3Npb25SZXF1ZXN0OjpvcmlnaW4pOgor
ICAgICAgICAoUXRQZXJtaXNzaW9uUmVxdWVzdDo6c2V0QWNjZXB0ZWQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9xdC9xcGVybWlzc2lvbnJlcXVlc3RfcC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvcXQvcXNlY3VyaXR5b3JpZ2luLmNwcDogQWRkZWQuCisgICAgICAgIChRdFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUpOgorICAgICAgICAoUXRTZWN1cml0eU9yaWdpbjo6UXRTZWN1cml0eU9y
aWdpbik6CisgICAgICAgIChRdFNlY3VyaXR5T3JpZ2luOjp+UXRTZWN1cml0eU9yaWdpbik6Cisg
ICAgICAgIChRdFNlY3VyaXR5T3JpZ2luOjpvcGVyYXRvcj0pOgorICAgICAgICAoUXRTZWN1cml0
eU9yaWdpbjo6c2NoZW1lKToKKyAgICAgICAgKFF0U2VjdXJpdHlPcmlnaW46Omhvc3QpOgorICAg
ICAgICAoUXRTZWN1cml0eU9yaWdpbjo6cG9ydCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L3Fz
ZWN1cml0eW9yaWdpbl9wLmg6IEFkZGVkLgorCiAyMDExLTExLTEwICBCYWxhenMgS2VsZW1lbiAg
PGtiYWxhenNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFgxMSBwbHVnaW5zIG5lZWQgdG8g
YmUgcmV3b3JrZWQgZm9yIFF0NQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggMDEwNmIxZS4uMjAwMzYzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9U
YXJnZXQucHJpCkBAIC0zMjAsNiArMzIwLDggQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNz
L3F0L1F0V2ViUGFnZVByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9xdC9xd2toaXN0b3J5LmggXAog
ICAgIFVJUHJvY2Vzcy9xdC9xd2toaXN0b3J5X3AuaCBcCisgICAgVUlQcm9jZXNzL3F0L3FwZXJt
aXNzaW9ucmVxdWVzdF9wLmggXAorICAgIFVJUHJvY2Vzcy9xdC9xc2VjdXJpdHlvcmlnaW5fcC5o
IFwKICAgICBVSVByb2Nlc3MvcXQvUXRTR1VwZGF0ZVF1ZXVlLmggXAogICAgIFVJUHJvY2Vzcy9x
dC9RdFNHVGlsZU5vZGUuaCBcCiAgICAgVUlQcm9jZXNzL3F0L1F0Vmlld0ludGVyZmFjZS5oIFwK
QEAgLTYyMyw2ICs2MjUsOCBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvcXQvUXREb3du
bG9hZE1hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwIFwK
ICAgICBVSVByb2Nlc3MvcXQvcXdraGlzdG9yeS5jcHAgXAorICAgIFVJUHJvY2Vzcy9xdC9xcGVy
bWlzc2lvbnJlcXVlc3QuY3BwIFwKKyAgICBVSVByb2Nlc3MvcXQvcXNlY3VyaXR5b3JpZ2luLmNw
cCBcCiAgICAgVUlQcm9jZXNzL3F0L1F0U0dVcGRhdGVRdWV1ZS5jcHAgXAogICAgIFVJUHJvY2Vz
cy9xdC9RdFNHVGlsZU5vZGUuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvVGlsZWREcmF3aW5nQXJl
YVByb3h5UXQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9D
bGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNw
cAppbmRleCA4MDJlZGU2Li4zZTk5OWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L0NsaWVudEltcGwuY3BwCkBAIC0yMyw4ICsyMywxMCBAQAogI2luY2x1ZGUgIlF0V2ViRXJyb3Iu
aCIKICNpbmNsdWRlICJXZWJGcmFtZVByb3h5LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisj
aW5jbHVkZSAiV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV0tT
dHJpbmdRdC5oIgogI2luY2x1ZGUgIldLVVJMUXQuaCIKKyNpbmNsdWRlICJxcGVybWlzc2lvbnJl
cXVlc3RfcC5oIgogI2luY2x1ZGUgPFF0UG9saWN5SW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8UXRW
aWV3SW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8UXRXZWJQYWdlUHJveHkuaD4KQEAgLTIwNiw2ICsy
MDgsMTIgQEAgc3RhdGljIHZvaWQgcXRfd2tfbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV0tQYWdl
UmVmIHBhZ2UsIFdLSGl0VGVzdFJlc3VsdFJlZiBoaXQKICAgICB0b1F0Vmlld0ludGVyZmFjZShj
bGllbnRJbmZvKS0+ZGlkTW91c2VNb3ZlT3ZlckVsZW1lbnQoYWJzb2x1dGVMaW5rVXJsLCBsaW5r
VGl0bGUpOwogfQogCitzdGF0aWMgdm9pZCBxdF93a19kZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1Nl
Y3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVm
IHJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgUXRQZXJtaXNzaW9uUmVx
dWVzdCByZXEgPSBRdFBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUob3JpZ2luLCByZXF1ZXN0KTsK
KyAgICB0b1F0Vmlld0ludGVyZmFjZShjbGllbnRJbmZvKS0+cGVybWlzc2lvblJlcXVlc3RlZChy
ZXEpOworfQorCiBzdGF0aWMgUXQ6Ok1vdXNlQnV0dG9uIHRvUXRNb3VzZUJ1dHRvbihXS0V2ZW50
TW91c2VCdXR0b24gYnV0dG9uKQogewogICAgIHN3aXRjaCAoYnV0dG9uKSB7CkBAIC0zMzEsNiAr
MzM5LDcgQEAgdm9pZCBzZXR1cFBhZ2VVaUNsaWVudChRdFdlYlBhZ2VQcm94eSogcXRXZWJQYWdl
UHJveHksIFdlYlBhZ2VQcm94eSogd2ViUGFnZVByb3gKICAgICB1aUNsaWVudC5zZXRTdGF0dXNU
ZXh0ID0gcXRfd2tfc2V0U3RhdHVzVGV4dDsKICAgICB1aUNsaWVudC5ydW5PcGVuUGFuZWwgPSBx
dF93a19ydW5PcGVuUGFuZWw7CiAgICAgdWlDbGllbnQubW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQg
PSBxdF93a19tb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKKyAgICB1aUNsaWVudC5kZWNpZGVQb2xp
Y3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0ID0gcXRfd2tfZGVjaWRlUG9saWN5Rm9y
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQo
dG9BUEkod2ViUGFnZVByb3h5KSwgJnVpQ2xpZW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld0ludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRWaWV3SW50ZXJmYWNlLmNwcAppbmRleCBmYzdjMjU2Li5iNjdkMjgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3SW50ZXJmYWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3SW50ZXJmYWNlLmNw
cApAQCAtMjQyLDYgKzI0MiwxMSBAQCB2b2lkIFF0Vmlld0ludGVyZmFjZTo6ZG93bmxvYWRSZXF1
ZXN0ZWQoUVdlYkRvd25sb2FkSXRlbSogZG93bmxvYWRJdGVtKQogICAgIGVtaXQgbV92aWV3cG9y
dFZpZXctPmRvd25sb2FkUmVxdWVzdGVkKGRvd25sb2FkSXRlbSk7CiB9CiAKK3ZvaWQgUXRWaWV3
SW50ZXJmYWNlOjpwZXJtaXNzaW9uUmVxdWVzdGVkKFF0UGVybWlzc2lvblJlcXVlc3QmIHJlcXVl
c3QpCit7CisgICAgLy8gSGVyZSBpdCBzaG91bGQgY2FsbCBRdFBlcm1pc3Npb25SZXF1ZXN0Ojpz
ZXRBY2NlcHRlZCgpLgorfQorCiB2b2lkIFF0Vmlld0ludGVyZmFjZTo6Y2hvb3NlRmlsZXMoV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lclJlZiwgY29uc3QgUVN0cmluZ0xpc3Qm
IHNlbGVjdGVkRmlsZU5hbWVzLCBRdFZpZXdJbnRlcmZhY2U6OkZpbGVDaG9vc2VyVHlwZSB0eXBl
KQogewogICAgIG1fdmlld3BvcnRWaWV3LT5kX2Z1bmMoKS0+Y2hvb3NlRmlsZXMobGlzdGVuZXJS
ZWYsIHNlbGVjdGVkRmlsZU5hbWVzLCB0eXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFZpZXdJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9RdFZpZXdJbnRlcmZhY2UuaAppbmRleCBiMDc4OTkwLi44NDFhYzJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3SW50ZXJmYWNlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld0ludGVyZmFjZS5oCkBAIC0yMSw2ICsyMSw4
IEBACiAjaWZuZGVmIFF0Vmlld0ludGVyZmFjZV9oCiAjZGVmaW5lIFF0Vmlld0ludGVyZmFjZV9o
CiAKKyNpbmNsdWRlICJxcGVybWlzc2lvbnJlcXVlc3RfcC5oIgorCiAjaW5jbHVkZSA8UU1lbnU+
CiAjaW5jbHVkZSA8UXRDb3JlL1FTaGFyZWRQb2ludGVyPgogI2luY2x1ZGUgPFF0Q29yZS9RU2l6
ZT4KQEAgLTEwNiw2ICsxMDgsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG93bmxv
YWRSZXF1ZXN0ZWQoUVdlYkRvd25sb2FkSXRlbSopOwogCisgICAgdmlydHVhbCB2b2lkIHBlcm1p
c3Npb25SZXF1ZXN0ZWQoUXRQZXJtaXNzaW9uUmVxdWVzdCYpOworCiBwcml2YXRlOgogICAgIFFR
dWlja1dlYlZpZXcqIGNvbnN0IG1fdmlld3BvcnRWaWV3OwogICAgIFFRdWlja1dlYlBhZ2UqIGNv
bnN0IG1fcGFnZVZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
cXBlcm1pc3Npb25yZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xcGVy
bWlzc2lvbnJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2
OTA0NzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXBl
cm1pc3Npb25yZXF1ZXN0LmNwcApAQCAtMCwwICsxLDk1IEBACisvKgorICAgIENvcHlyaWdodCAo
QykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKwor
ICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAg
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJxcGVybWlzc2lvbnJlcXVlc3RfcC5o
IgorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0
YWluUHRyLmg+CisKKworY2xhc3MgUXRQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgOiBwdWJsaWMg
UVNoYXJlZERhdGEgeworcHVibGljOgorCisgICAgUXRQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUo
V0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dFJlZiByZXF1ZXN0KQorICAgICAgICA6IG1fb3JpZ2luKFF0U2VjdXJpdHlPcmlnaW46OmNyZWF0
ZShvcmlnaW4pKQorICAgICAgICAsIG1fdHlwZShRdFBlcm1pc3Npb25SZXF1ZXN0OjpHZW9sb2Nh
dGlvbikKKyAgICAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKKyAgICB7CisgICAgfQorICAgIH5R
dFBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSgpCisgICAgeworICAgIH0KKworICAgIFF0U2VjdXJp
dHlPcmlnaW4gbV9vcmlnaW47CisgICAgUXRQZXJtaXNzaW9uUmVxdWVzdDo6VHlwZSBtX3R5cGU7
CisKKyAgICBXS1JldGFpblB0cjxXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWY+IG1f
cmVxdWVzdDsKK307CisKK1F0UGVybWlzc2lvblJlcXVlc3QgUXRQZXJtaXNzaW9uUmVxdWVzdDo6
Y3JlYXRlKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RSZWYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUXRQZXJtaXNzaW9uUmVxdWVzdChu
ZXcgUXRQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUob3JpZ2luLCByZXF1ZXN0KSk7Cit9CisKK1F0
UGVybWlzc2lvblJlcXVlc3Q6OlF0UGVybWlzc2lvblJlcXVlc3QoUXRQZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGUqIHByaXYpCisgICAgOiBkKHByaXYpCit7Cit9CisKK1F0UGVybWlzc2lvblJlcXVl
c3Q6On5RdFBlcm1pc3Npb25SZXF1ZXN0KCkKK3sKK30KKworUXRQZXJtaXNzaW9uUmVxdWVzdDo6
UXRQZXJtaXNzaW9uUmVxdWVzdChjb25zdCBRdFBlcm1pc3Npb25SZXF1ZXN0JiBvdGhlcikKKyAg
ICA6IGQob3RoZXIuZCkKK3sKK30KKworUXRQZXJtaXNzaW9uUmVxdWVzdCYgUXRQZXJtaXNzaW9u
UmVxdWVzdDo6b3BlcmF0b3I9KGNvbnN0IFF0UGVybWlzc2lvblJlcXVlc3QmIG90aGVyKQorewor
ICAgIGQgPSBvdGhlci5kOworICAgIHJldHVybiAqdGhpczsKK30KKworUXRQZXJtaXNzaW9uUmVx
dWVzdDo6VHlwZSBRdFBlcm1pc3Npb25SZXF1ZXN0Ojp0eXBlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZC0+bV90eXBlOworfQorCitRdFNlY3VyaXR5T3JpZ2luIFF0UGVybWlzc2lvblJlcXVlc3Q6
Om9yaWdpbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPm1fb3JpZ2luOworfQorCit2b2lkIFF0
UGVybWlzc2lvblJlcXVlc3Q6OnNldEFjY2VwdGVkKGJvb2wgYWNjZXB0ZWQpCit7CisgICAgc3dp
dGNoICh0eXBlKCkpIHsKKyAgICBjYXNlIEdlb2xvY2F0aW9uOiB7CisgICAgICAgIGlmIChhY2Nl
cHRlZCkKKyAgICAgICAgICAgIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEFsbG93KGQt
Pm1fcmVxdWVzdC5nZXQoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFdLR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdERlbnkoZC0+bV9yZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xcGVybWlz
c2lvbnJlcXVlc3RfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FwZXJtaXNzaW9u
cmVxdWVzdF9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRjM2I4Ywot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xcGVybWlzc2lv
bnJlcXVlc3RfcC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEx
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5k
ZWYgcXBlcm1pc3Npb25yZXF1ZXN0X3BfaAorI2RlZmluZSBxcGVybWlzc2lvbnJlcXVlc3RfcF9o
CisKKyNpbmNsdWRlICJxc2VjdXJpdHlvcmlnaW5fcC5oIgorI2luY2x1ZGUgInF3ZWJraXRnbG9i
YWwuaCIKKworI2luY2x1ZGUgPFF0Q29yZS9xc2hhcmVkZGF0YS5oPgorI2luY2x1ZGUgPFdlYktp
dDIvV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9X
S1NlY3VyaXR5T3JpZ2luLmg+CisKK2NsYXNzIFF0UGVybWlzc2lvblJlcXVlc3RQcml2YXRlOwor
CitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRdFBlcm1pc3Npb25SZXF1ZXN0IHsKK3B1YmxpYzoKKyAg
ICB+UXRQZXJtaXNzaW9uUmVxdWVzdCgpOworICAgIGVudW0gVHlwZSB7CisgICAgICAgIEdlb2xv
Y2F0aW9uCisgICAgfTsKKworICAgIFR5cGUgdHlwZSgpIGNvbnN0OworICAgIFF0U2VjdXJpdHlP
cmlnaW4gb3JpZ2luKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldEFjY2VwdGVkKGJvb2wpOworCisg
ICAgUXRQZXJtaXNzaW9uUmVxdWVzdChjb25zdCBRdFBlcm1pc3Npb25SZXF1ZXN0JiBvdGhlcik7
CisgICAgUXRQZXJtaXNzaW9uUmVxdWVzdCYgb3BlcmF0b3I9KGNvbnN0IFF0UGVybWlzc2lvblJl
cXVlc3QmIG90aGVyKTsKKyAgICBzdGF0aWMgUXRQZXJtaXNzaW9uUmVxdWVzdCBjcmVhdGUoV0tT
ZWN1cml0eU9yaWdpblJlZiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwor
cHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUXRQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7Cisg
ICAgUXRQZXJtaXNzaW9uUmVxdWVzdChRdFBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSopOworCitw
cml2YXRlOgorICAgIFFFeHBsaWNpdGx5U2hhcmVkRGF0YVBvaW50ZXI8UXRQZXJtaXNzaW9uUmVx
dWVzdFByaXZhdGU+IGQ7Cit9OworCisKKyNlbmRpZiAvLyBxcGVybWlzc2lvbnJlcXVlc3RfcF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXNlY3VyaXR5b3JpZ2lu
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xc2VjdXJpdHlvcmlnaW4uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2MmExZGQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXNlY3VyaXR5b3JpZ2luLmNwcApAQCAt
MCwwICsxLDY0IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAg
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAg
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisK
KyNpbmNsdWRlICJxc2VjdXJpdHlvcmlnaW5fcC5oIgorCisjaW5jbHVkZSAiV0tTdHJpbmdRdC5o
IgorCitRdFNlY3VyaXR5T3JpZ2luIFF0U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShXS1NlY3VyaXR5
T3JpZ2luUmVmIG9yaWdpbikKK3sKKyAgICByZXR1cm4gUXRTZWN1cml0eU9yaWdpbihvcmlnaW4p
OworfQorCitRdFNlY3VyaXR5T3JpZ2luOjpRdFNlY3VyaXR5T3JpZ2luKFdLU2VjdXJpdHlPcmln
aW5SZWYgb3JpZ2luKQorICAgIDogbV9vcmlnaW4ob3JpZ2luKQoreworfQorCitRdFNlY3VyaXR5
T3JpZ2luOjpRdFNlY3VyaXR5T3JpZ2luKGNvbnN0IFF0U2VjdXJpdHlPcmlnaW4mIG90aGVyKQor
ICAgIDogbV9vcmlnaW4ob3RoZXIubV9vcmlnaW4pCit7Cit9CisKK1F0U2VjdXJpdHlPcmlnaW46
On5RdFNlY3VyaXR5T3JpZ2luKCkKK3sKK30KKworUXRTZWN1cml0eU9yaWdpbiYgUXRTZWN1cml0
eU9yaWdpbjo6b3BlcmF0b3I9KGNvbnN0IFF0U2VjdXJpdHlPcmlnaW4mIG90aGVyKQoreworICAg
IG1fb3JpZ2luID0gb3RoZXIubV9vcmlnaW47CisgICAgcmV0dXJuICp0aGlzOworfQorCitRU3Ry
aW5nIFF0U2VjdXJpdHlPcmlnaW46OnNjaGVtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdLU3Ry
aW5nQ29weVFTdHJpbmcoV0tTZWN1cml0eU9yaWdpbkNvcHlQcm90b2NvbChtX29yaWdpbi5nZXQo
KSkpOworfQorCitRU3RyaW5nIFF0U2VjdXJpdHlPcmlnaW46Omhvc3QoKSBjb25zdAoreworICAg
IHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKFdLU2VjdXJpdHlPcmlnaW5Db3B5SG9zdChtX29y
aWdpbi5nZXQoKSkpOworfQorCitxdWludDE2IFF0U2VjdXJpdHlPcmlnaW46OnBvcnQoKSBjb25z
dAoreworICAgIHJldHVybiBXS1NlY3VyaXR5T3JpZ2luR2V0UG9ydChtX29yaWdpbi5nZXQoKSk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXNlY3VyaXR5b3Jp
Z2luX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xc2VjdXJpdHlvcmlnaW5fcC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0ZDYyZGEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcXNlY3VyaXR5b3JpZ2luX3AuaApA
QCAtMCwwICsxLDQ4IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKwor
ICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIHFzZWN1cml0eW9y
aWdpbl9wX2gKKyNkZWZpbmUgcXNlY3VyaXR5b3JpZ2luX3BfaAorCisjaW5jbHVkZSAicXdlYmtp
dGdsb2JhbC5oIgorI2luY2x1ZGUgPFFTdHJpbmc+CisjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRk
YXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUgPFdlYktp
dDIvV0tTZWN1cml0eU9yaWdpbi5oPgorCisKK2NsYXNzIFFXRUJLSVRfRVhQT1JUIFF0U2VjdXJp
dHlPcmlnaW4geworcHVibGljOgorICAgIH5RdFNlY3VyaXR5T3JpZ2luKCk7CisKKyAgICBRU3Ry
aW5nIHNjaGVtZSgpIGNvbnN0OworICAgIFFTdHJpbmcgaG9zdCgpIGNvbnN0OworICAgIHF1aW50
MTYgcG9ydCgpIGNvbnN0OworCisgICAgUXRTZWN1cml0eU9yaWdpbihXS1NlY3VyaXR5T3JpZ2lu
UmVmKTsKKyAgICBRdFNlY3VyaXR5T3JpZ2luKGNvbnN0IFF0U2VjdXJpdHlPcmlnaW4mIG90aGVy
KTsKKyAgICBRdFNlY3VyaXR5T3JpZ2luICZvcGVyYXRvcj0oY29uc3QgUXRTZWN1cml0eU9yaWdp
biYgb3RoZXIpOworICAgIHN0YXRpYyBRdFNlY3VyaXR5T3JpZ2luIGNyZWF0ZShXS1NlY3VyaXR5
T3JpZ2luUmVmKTsKKworcHJpdmF0ZToKKyAgICBRdFNlY3VyaXR5T3JpZ2luKCkgeyB9OworICAg
IFdLUmV0YWluUHRyPFdLU2VjdXJpdHlPcmlnaW5SZWY+IG1fb3JpZ2luOworfTsKKworI2VuZGlm
IC8vIHFzZWN1cml0eW9yaWdpbl9wX2gKLS0gCjEuNy40LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115809</attachid>
            <date>2011-11-18 08:08:15 -0800</date>
            <delta_ts>2011-11-18 13:15:23 -0800</delta_ts>
            <desc>Simplified the patch, exposes it to QML side</desc>
            <filename>geoperm8.patch</filename>
            <type>text/plain</type>
            <size>15006</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBlNmQ2ZGE3MTJlZjhmODMzYTk2MzRlNTdlYjk5ZDM1MTlkM2ZkYTM0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IEZyaSwgMTggTm92IDIwMTEgMTE6Mzc6MjAgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBSZWJhc2VkIHBhdGNoLgoKU2lnbmVkLW9mZi1ieTogQWRlbmlsc29uIENh
dmFsY2FudGkgPGFkZW5pbHNvbi5zaWx2YUBvcGVuYm9zc2Eub3JnPgotLS0KIFNvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysKIFNvdXJj
ZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcCAgICAgICAgICAgIHwgICAgMiArCiBT
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjgg
KysrKysrCiBTb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDEgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
X3AuaCAgfCAgICAyICsKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVz
dC5jcHAgICAgIHwgICA5MyArKysrKysrKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCAgICAgfCAgIDYwICsrKysrKysrKysrKysKIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcCAgICAgICAgIHwgICAgOSAr
KwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcCAgICAgfCAg
IDE1ICsrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmggICAg
ICAgfCAgICA1ICsKIDEwIGZpbGVzIGNoYW5nZWQsIDIyNyBpbnNlcnRpb25zKCspLCAwIGRlbGV0
aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaAoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKaW5kZXggNDRjMDQ3ZC4uYjFlZmJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMS0xMS0xOCAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxhZGVuaWxzb24uc2lsdmFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbUXRdW1dLMl0gSW1wbGVtZW50IHBlcm1pc3Npb24g
QVBJIGZvciBRdCBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01OTIwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEdlb2xvY2F0aW9uIHBlcm1pc3Npb24gaG9va3VwIEFQSS4KKworICAgICAgICAqIGRl
Y2xhcmF0aXZlL3BsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXRRbWxQbHVnaW46OnJlZ2lzdGVy
VHlwZXMpOgorCiAyMDExLTExLTE3ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5v
a2lhLmNvbT4KIAogICAgICAgICBbUXRdIExheWVyIHZpb2xhdGlvbjogVGhpcmRQYXJ0eUNvb2tp
ZXNRdC5jcHAgdXNlcyBRV2ViU2V0dGluZ3MgaW4gdHdvIHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9xdC9k
ZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCmluZGV4IDkxNjM0ZWUuLjI1MGYzNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRl
ICJxcXVpY2t3ZWJwYWdlX3AuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKICNpbmNs
dWRlICJxd2ViZG93bmxvYWRpdGVtX3AuaCIKKyNpbmNsdWRlICJxd2VicGVybWlzc2lvbnJlcXVl
c3RfcC5oIgogI2luY2x1ZGUgInF3ZWJwcmVmZXJlbmNlc19wLmgiCiAKICNpbmNsdWRlIDxRdE5l
dHdvcmsvcW5ldHdvcmtyZXBseS5oPgpAQCAtNTMsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFRdWlja1dlYlBhZ2U+KHVyaSwgMywgMCwgIldl
YlBhZ2UiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBX
ZWJQYWdlLCB1c2UgV2ViVmlldyIpKTsKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5
cGU8UU5ldHdvcmtSZXBseT4odXJpLCAzLCAwLCAiTmV0d29ya1JlcGx5IiwgUU9iamVjdDo6dHIo
IkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgTmV0d29ya1JlcGx5IikpOwogICAg
ICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRV2ViRG93bmxvYWRJdGVtPih1cmksIDUs
IDAsICJEb3dubG9hZEl0ZW0iLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBp
bnN0YW5jZSBvZiBEb3dubG9hZEl0ZW0iKSk7CisgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFi
bGVUeXBlPFFXZWJQZXJtaXNzaW9uUmVxdWVzdD4odXJpLCA1LCAwLCAiUGVybWlzc2lvblJlcXVl
c3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBQZXJt
aXNzaW9uUmVxdWVzdCIpKTsKICNlbmRpZgogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDY3NTBi
ZS4uZjk5MmY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDExLTExLTE4ICBBZGVu
aWxzb24gQ2F2YWxjYW50aSAgPGFkZW5pbHNvbi5zaWx2YUBvcGVuYm9zc2Eub3JnPgorCisgICAg
ICAgIFtRdF1bV0syXSBJbXBsZW1lbnQgcGVybWlzc2lvbiBBUEkgZm9yIFF0IHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MjAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU6OlFXZWJQZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGUpOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTo6flFXZWJQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUpOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpj
cmVhdGUpOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpRV2ViUGVybWlzc2lvblJl
cXVlc3QpOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojp+UVdlYlBlcm1pc3Npb25S
ZXF1ZXN0KToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6dHlwZSk6CisgICAgICAg
IChRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNldEFsbG93KToKKyAgICAgICAgKFFXZWJQZXJtaXNz
aW9uUmVxdWVzdDo6YWxsb3cpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1p
c3Npb25yZXF1ZXN0X3AuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL3F0L0NsaWVudElt
cGwuY3BwOgorICAgICAgICAocXRfd2tfZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdCk6CisgICAgICAgIChzZXR1cFBhZ2VVaUNsaWVudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFF0V2ViUGFnZVByb3h5OjpR
dFdlYlBhZ2VQcm94eSk6CisgICAgICAgIChRdFdlYlBhZ2VQcm94eTo6flF0V2ViUGFnZVByb3h5
KToKKyAgICAgICAgKFF0Vmlld0ludGVyZmFjZTo6cGVybWlzc2lvblJlcXVlc3RlZCk6CisgICAg
ICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5Lmg6CisKIDIwMTEtMTEtMTggIFNpbW9u
IEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gUmVt
b3ZhbCBvZiBRdFZpZXdJbnRlcmZhY2UgcGFydCAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCA2MzQwMTY1Li42
OGZiNTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTI0Niw2ICsyNDYsNyBAQCBIRUFERVJTICs9IFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3AuaCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
ZG93bmxvYWRpdGVtX3BfcC5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9u
cmVxdWVzdF9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9wLmggXAog
ICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9wX3AuaCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAppbmRleCA4YjQ4NjBiLi5mMDIxYzc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgK
QEAgLTI5LDYgKzI5LDcgQEAgY2xhc3MgUVF1aWNrV2ViVmlld1ByaXZhdGU7CiBjbGFzcyBRUXVp
Y2tXZWJWaWV3RXhwZXJpbWVudGFsOwogY2xhc3MgUVdlYkRvd25sb2FkSXRlbTsKIGNsYXNzIFFX
ZWJQcmVmZXJlbmNlczsKK2NsYXNzIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDsKIAogbmFtZXNwYWNl
IFdUUiB7CiBjbGFzcyBQbGF0Zm9ybVdlYlZpZXc7CkBAIC0xMDgsNiArMTA5LDcgQEAgUV9TSUdO
QUxTOgogICAgIHZvaWQgbGlua0hvdmVyZWQoY29uc3QgUVVybCYgdXJsLCBjb25zdCBRU3RyaW5n
JiB0aXRsZSk7CiAgICAgdm9pZCB2aWV3TW9kZUNoYW5nZWQoKTsKICAgICB2b2lkIG5hdmlnYXRp
b25TdGF0ZUNoYW5nZWQoKTsKKyAgICB2b2lkIGdlb2xvY2F0aW9uUGVybWlzc2lvbihRV2ViUGVy
bWlzc2lvblJlcXVlc3QqIGdlb1Blcm1pc3Npb24pOwogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCB2b2lkIGdlb21ldHJ5Q2hhbmdlZChjb25zdCBRUmVjdEYmLCBjb25zdCBRUmVjdEYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25y
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Np
b25yZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmEzZmJj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cGVybWlzc2lvbnJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgICAgQ29weXJpZ2h0
IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
CisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9ucmVxdWVz
dF9wLmgiCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdDIv
V0tSZXRhaW5QdHIuaD4KKworCitjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlIDog
cHVibGljIFFTaGFyZWREYXRhIHsKK3B1YmxpYzoKKworICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGUoV0tTZWN1cml0eU9yaWdpblJlZiBzZWN1cml0eU9yaWdpbiwgV0tHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICA6IG9yaWdp
bihzZWN1cml0eU9yaWdpbikKKyAgICAgICAgLCB0eXBlKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6
R2VvbG9jYXRpb24pCisgICAgICAgICwgcmVxdWVzdChwZXJtaXNzaW9uUmVxdWVzdCkKKyAgICAg
ICAgLCBhbGxvdyhmYWxzZSkKKyAgICB7CisgICAgfQorICAgIH5RV2ViUGVybWlzc2lvblJlcXVl
c3RQcml2YXRlKCkKKyAgICB7CisgICAgfQorCisgICAgV0tSZXRhaW5QdHI8V0tTZWN1cml0eU9y
aWdpblJlZj4gb3JpZ2luOworICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6VHlwZSB0eXBlOwor
ICAgIFdLUmV0YWluUHRyPFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZj4gcmVxdWVz
dDsKKyAgICBib29sIGFsbG93OworfTsKKworUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiBRV2ViUGVy
bWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIG5ldyBR
V2ViUGVybWlzc2lvblJlcXVlc3Qob3JpZ2luLCByZXF1ZXN0KTsKK30KKworUVdlYlBlcm1pc3Np
b25SZXF1ZXN0OjpRV2ViUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1cml0eU9yaWdpblJlZiBzZWN1
cml0eU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgUU9i
amVjdCogcGFyZW50KQorICAgIDogUU9iamVjdChwYXJlbnQpCisgICAgLCBkKG5ldyBRV2ViUGVy
bWlzc2lvblJlcXVlc3RQcml2YXRlKHNlY3VyaXR5T3JpZ2luLCBwZXJtaXNzaW9uUmVxdWVzdCkp
Cit7Cit9CisKK1FXZWJQZXJtaXNzaW9uUmVxdWVzdDo6UVdlYlBlcm1pc3Npb25SZXF1ZXN0KFFP
YmplY3QqIHBhcmVudCkKKyAgICA6IFFPYmplY3QocGFyZW50KQorICAgICwgZCgwKQoreyB9CisK
K1FXZWJQZXJtaXNzaW9uUmVxdWVzdDo6flFXZWJQZXJtaXNzaW9uUmVxdWVzdCgpCit7Cit9CisK
K1FXZWJQZXJtaXNzaW9uUmVxdWVzdDo6VHlwZSBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnR5cGUo
KSBjb25zdAoreworICAgIHJldHVybiBkLT50eXBlOworfQorCit2b2lkIFFXZWJQZXJtaXNzaW9u
UmVxdWVzdDo6c2V0QWxsb3coYm9vbCBhY2NlcHRlZCkKK3sKKyAgICBkLT5hbGxvdyA9IGFjY2Vw
dGVkOworICAgIHN3aXRjaCAodHlwZSgpKSB7CisgICAgY2FzZSBHZW9sb2NhdGlvbjogeworICAg
ICAgICBpZiAoYWNjZXB0ZWQpCisgICAgICAgICAgICBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RBbGxvdyhkLT5yZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
V0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueShkLT5yZXF1ZXN0LmdldCgpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIH0KK30KKworYm9vbCBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OmFsbG93KCkK
K3sKKyAgICByZXR1cm4gZC0+YWxsb3c7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTljMDM5MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaApAQCAt
MCwwICsxLDYwIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAg
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAg
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIHF3ZWJwZXJtaXNzaW9u
cmVxdWVzdF9wX2gKKyNkZWZpbmUgcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3BfaAorCisjaW5jbHVk
ZSAicXdlYmtpdGdsb2JhbC5oIgorCisjaW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+CisjaW5jbHVk
ZSA8UXRDb3JlL3FzaGFyZWRkYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4u
aD4KKworY2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKKworY2xhc3MgUVdFQktJ
VF9FWFBPUlQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFFPYmplY3QgeworICAgIFFf
T0JKRUNUCisgICAgUV9QUk9QRVJUWShib29sIGFsbG93IFJFQUQgYWxsb3cgV1JJVEUgc2V0QWxs
b3cpCisKK3B1YmxpYzoKKyAgICBlbnVtIFR5cGUgeworICAgICAgICBHZW9sb2NhdGlvbgorICAg
IH07CisKKyAgICBzdGF0aWMgUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiBjcmVhdGUoV0tTZWN1cml0
eU9yaWdpblJlZiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKyAgICB2aXJ0
dWFsIH5RV2ViUGVybWlzc2lvblJlcXVlc3QoKTsKKworICAgIFR5cGUgdHlwZSgpIGNvbnN0Owor
CitwdWJsaWMgUV9TTE9UUzoKKyAgICB2b2lkIHNldEFsbG93KGJvb2wpOworICAgIGJvb2wgYWxs
b3coKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZTsKKyAgICBRV2ViUGVybWlzc2lvblJlcXVlc3QoUU9iamVjdCogcGFyZW50ID0gMCk7
CisgICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlP
cmlnaW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVz
dCwgUU9iamVjdCogcGFyZW50ID0gMCk7CisKK3ByaXZhdGU6CisgICAgUUV4cGxpY2l0bHlTaGFy
ZWREYXRhUG9pbnRlcjxRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlPiBkOworfTsKKworCisj
ZW5kaWYgLy8gcXdlYnBlcm1pc3Npb25yZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9DbGllbnRJbXBsLmNwcAppbmRleCAxMDRkMzQyLi41ZWMyZTM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5j
bHVkZSAiUXRXZWJFcnJvci5oIgogI2luY2x1ZGUgIldlYkZyYW1lUHJveHkuaCIKICNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
aCIKICNpbmNsdWRlICJXS1N0cmluZ1F0LmgiCiAjaW5jbHVkZSAiV0tVUkxRdC5oIgogI2luY2x1
ZGUgPFF0UG9saWN5SW50ZXJmYWNlLmg+CkBAIC0zNyw2ICszOCw3IEBACiAjaW5jbHVkZSA8V0tT
dHJpbmcuaD4KICNpbmNsdWRlIDxXS1R5cGUuaD4KICNpbmNsdWRlIDxXS1VSTFJlcXVlc3QuaD4K
KyNpbmNsdWRlIDxxd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwogCkBAIC0yMDcsNiArMjA5LDEyIEBAIHN0YXRpYyB2b2lkIHF0X3drX21vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KFdLUGFnZVJlZiBwYWdlLCBXS0hpdFRlc3RSZXN1bHRSZWYgaGl0CiAg
ICAgdG9RdFdlYlBhZ2VQcm94eShjbGllbnRJbmZvKS0+ZGlkTW91c2VNb3ZlT3ZlckVsZW1lbnQo
YWJzb2x1dGVMaW5rVXJsLCBsaW5rVGl0bGUpOwogfQogCitzdGF0aWMgdm9pZCBxdF93a19kZWNp
ZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiBwYWdlLCBX
S0ZyYW1lUmVmIGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7
CisgICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiByZXEgPSBRV2ViUGVybWlzc2lvblJlcXVlc3Q6
OmNyZWF0ZShvcmlnaW4sIHJlcXVlc3QpOworICAgIHRvUXRXZWJQYWdlUHJveHkoY2xpZW50SW5m
byktPnBlcm1pc3Npb25SZXF1ZXN0ZWQocmVxKTsKK30KKwogc3RhdGljIFF0OjpNb3VzZUJ1dHRv
biB0b1F0TW91c2VCdXR0b24oV0tFdmVudE1vdXNlQnV0dG9uIGJ1dHRvbikKIHsKICAgICBzd2l0
Y2ggKGJ1dHRvbikgewpAQCAtMzMzLDYgKzM0MSw3IEBAIHZvaWQgc2V0dXBQYWdlVWlDbGllbnQo
UXRXZWJQYWdlUHJveHkqIHF0V2ViUGFnZVByb3h5LCBXZWJQYWdlUHJveHkqIHdlYlBhZ2VQcm94
CiAgICAgdWlDbGllbnQuc2V0U3RhdHVzVGV4dCA9IHF0X3drX3NldFN0YXR1c1RleHQ7CiAgICAg
dWlDbGllbnQucnVuT3BlblBhbmVsID0gcXRfd2tfcnVuT3BlblBhbmVsOwogICAgIHVpQ2xpZW50
Lm1vdXNlRGlkTW92ZU92ZXJFbGVtZW50ID0gcXRfd2tfbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7
CisgICAgdWlDbGllbnQuZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dCA9IHF0X3drX2RlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CiAg
ICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHRvQVBJKHdlYlBhZ2VQcm94eSksICZ1aUNsaWVudCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3Bw
CmluZGV4IGI5NjI1YjAuLjdlMzc5N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0V2ViUGFnZVByb3h5LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgInF3ZWJk
b3dubG9hZGl0ZW1fcF9wLmgiCiAjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3AuaCIKICNpbmNs
dWRlICJxd2VicHJlZmVyZW5jZXNfcF9wLmgiCisjaW5jbHVkZSAicXdlYnBlcm1pc3Npb25yZXF1
ZXN0X3AuaCIKIAogI2luY2x1ZGUgIkNsaWVudEltcGwuaCIKICNpbmNsdWRlICJEb3dubG9hZFBy
b3h5LmgiCkBAIC0xNDUsNiArMTQ2LDcgQEAgUXRXZWJQYWdlUHJveHk6OlF0V2ViUGFnZVByb3h5
KFFRdWlja1dlYlBhZ2UqIHFtbFdlYlBhZ2UsIFFRdWlja1dlYlZpZXcqIHFtbFdlYlYKICAgICAs
IG1fdW5kb1N0YWNrKGFkb3B0UHRyKG5ldyBRVW5kb1N0YWNrKHRoaXMpKSkKICAgICAsIG1fbG9h
ZFByb2dyZXNzKDApCiAgICAgLCBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChmYWxzZSkKKyAg
ICAsIG1fYWxsb3coMCkKIHsKICAgICBBU1NFUlQodmlld0ludGVyZmFjZSk7CiAgICAgbV93ZWJQ
YWdlUHJveHkgPSBtX2NvbnRleHQtPmNyZWF0ZVdlYlBhZ2UodGhpcywgdG9JbXBsKHBhZ2VHcm91
cFJlZikpOwpAQCAtMTc3LDYgKzE3OSw3IEBAIFF0V2ViUGFnZVByb3h5Ojp+UXRXZWJQYWdlUHJv
eHkoKQogICAgICAgICB9CiAgICAgfQogICAgIGRlbGV0ZSBtX2hpc3Rvcnk7CisgICAgZGVsZXRl
IG1fYWxsb3c7CiB9CiAKIGJvb2wgUXRXZWJQYWdlUHJveHk6OmhhbmRsZUV2ZW50KFFFdmVudCog
ZXYpCkBAIC05MDAsNiArOTAzLDE4IEBAIHZvaWQgUXRXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVE
b3dubG9hZFJlc3BvbnNlKFFXZWJEb3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSkKICAgICBlbWl0
IG1fcW1sV2ViVmlldy0+ZG93bmxvYWRSZXF1ZXN0ZWQoZG93bmxvYWRJdGVtKTsKIH0KIAordm9p
ZCBRdFdlYlBhZ2VQcm94eTo6cGVybWlzc2lvblJlcXVlc3RlZChRV2ViUGVybWlzc2lvblJlcXVl
c3QqIHJlcXVlc3QpCit7CisgICAgaWYgKCFyZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAobV9hbGxvdykKKyAgICAgICAgZGVsZXRlIG1fYWxsb3c7CisKKyAgICBtX2FsbG93ID0g
cmVxdWVzdDsKKyAgICBlbWl0IG1fcW1sV2ViVmlldy0+Z2VvbG9jYXRpb25QZXJtaXNzaW9uKG1f
YWxsb3cpOworfQorCiBQYXNzT3duUHRyPERyYXdpbmdBcmVhUHJveHk+IFF0V2ViUGFnZVByb3h5
OjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKIHsKICAgICByZXR1cm4gRHJhd2luZ0FyZWFQcm94
eUltcGw6OmNyZWF0ZShtX3dlYlBhZ2VQcm94eS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oCmluZGV4IGNkZmJmNGQuLmE2YjA2YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oCkBAIC01MCw2ICs1
MCw3IEBAIGNsYXNzIFFXZWJQcmVmZXJlbmNlczsKIGNsYXNzIFFXS0hpc3Rvcnk7CiBjbGFzcyBR
UXVpY2tXZWJQYWdlOwogY2xhc3MgUVF1aWNrV2ViVmlldzsKK2NsYXNzIFFXZWJQZXJtaXNzaW9u
UmVxdWVzdDsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIApAQCAtMjIyLDYgKzIyMyw4IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgZGlkTW91c2VNb3ZlT3ZlckVsZW1lbnQoY29uc3QgUVVybCYs
IGNvbnN0IFFTdHJpbmcmKTsKIAorICAgIHZvaWQgcGVybWlzc2lvblJlcXVlc3RlZChRV2ViUGVy
bWlzc2lvblJlcXVlc3QqKTsKKwogcHVibGljIFFfU0xPVFM6CiAgICAgdm9pZCBuYXZpZ2F0aW9u
U3RhdGVDaGFuZ2VkKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlRG93bmxvYWRSZXNwb25zZShRV2Vi
RG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0pOwpAQCAtMjg2LDYgKzI4OSw4IEBAIHByaXZhdGU6
CiAgICAgUVNoYXJlZFBvaW50ZXI8UU1lbnU+IGFjdGl2ZU1lbnU7CiAgICAgUVVybCBsYXN0SG92
ZXJlZFVSTDsKICAgICBRU3RyaW5nIGxhc3RIb3ZlcmVkVGl0bGU7CisKKyAgICBRV2ViUGVybWlz
c2lvblJlcXVlc3QgKm1fYWxsb3c7CiB9OwogCiAjZW5kaWYgLyogUXRXZWJQYWdlUHJveHlfaCAq
LwotLSAKMS43LjQuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115855</attachid>
            <date>2011-11-18 13:15:23 -0800</date>
            <delta_ts>2011-11-21 14:45:05 -0800</delta_ts>
            <desc>Permission api hook for geolocation</desc>
            <filename>geoperm10.patch</filename>
            <type>text/plain</type>
            <size>16658</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBhMWQ1NjA2ODNhOTJlMjI2ZTcxOGNjNzg4OGQzOGVkMTUzNzlmMWIzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IEZyaSwgMTggTm92IDIwMTEgMTc6MTE6MTggLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBSZWJhc2VkLCBjaGFuZ2VkIHNpZ25hbCBuYW1lLCBleHBvcnRpbmcgcHJv
cGVydGllcyBmb3IgYWNjZXNzaW5nCiBwb3J0L3NjaGVtZS9ldGMuCgpTaWduZWQtb2ZmLWJ5OiBB
ZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+Ci0tLQog
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEx
ICsrCiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTIgKysrCiBTb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAgICAgICAg
ICAgICB8ICAgIDIgKwogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDIwICsrKysKIFNvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXdfcC5oICB8ICAgIDIgKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBl
cm1pc3Npb25yZXF1ZXN0LmNwcCAgICAgfCAgMTA0ICsrKysrKysrKysrKysrKysrKysrCiAuLi4v
VUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oICAgICB8ICAgNjYgKysr
KysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAgICAg
ICAgICB8ICAgIDkgKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94
eS5jcHAgICAgIHwgICAxNSArKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBh
Z2VQcm94eS5oICAgICAgIHwgICAgNSArCiBTb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcCAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogMTIgZmlsZXMgY2hhbmdlZCwgMjUyIGluc2Vy
dGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJl
cXVlc3RfcC5oCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGFmYjk3
YWUuLmUxMTJmYzAgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxMS0xMS0xOCAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxhZGVuaWxzb24u
c2lsdmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbUXRdW1dLMl0gSW1wbGVtZW50IHBlcm1p
c3Npb24gQVBJIGZvciBRdCBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01OTIwMAorCisgICAgICAgIFBlcm1pc3Npb24gQVBJIGhvb2sgZm9yIGdl
b2xvY2F0aW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXA6CisKIDIwMTEtMTEtMTggIFBhdHJpY2sg
R2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0NNYWtlXSBBZGQgcG9z
c2liaWxpdHkgdG8gb3ZlcndyaXRlIFdFQktJVF9QT1JUX0RJUiBpbiBwbGF0Zm9ybSBzcGVjaWZp
YyBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBlZDgxODEzLi40ZTA0MGJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTExLTE4ICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGFk
ZW5pbHNvbi5zaWx2YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtRdF1bV0syXSBJbXBsZW1l
bnQgcGVybWlzc2lvbiBBUEkgZm9yIFF0IHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MjAwCisKKyAgICAgICAgUGVybWlzc2lvbiBBUEkgaG9v
ayBmb3IgZ2VvbG9jYXRpb24uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBkZWNsYXJhdGl2ZS9wbHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0UW1s
UGx1Z2luOjpyZWdpc3RlclR5cGVzKToKKwogMjAxMS0xMS0xOCAgWXV0YSBLaXRhbXVyYSAgPHl1
dGFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbUXRdIEVuYWJsZSBXZWJTb2NrZXQgaHliaSB0
ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3Bw
IGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCmluZGV4IDkxNjM0ZWUu
LjI1MGYzNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKICNpbmNsdWRlICJxcXVp
Y2t3ZWJ2aWV3X3AuaCIKICNpbmNsdWRlICJxd2ViZG93bmxvYWRpdGVtX3AuaCIKKyNpbmNsdWRl
ICJxd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIgogI2luY2x1ZGUgInF3ZWJwcmVmZXJlbmNlc19w
LmgiCiAKICNpbmNsdWRlIDxRdE5ldHdvcmsvcW5ldHdvcmtyZXBseS5oPgpAQCAtNTMsNiArNTQs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFRdWlja1dl
YlBhZ2U+KHVyaSwgMywgMCwgIldlYlBhZ2UiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBz
ZXBhcmF0ZSBpbnN0YW5jZSBvZiBXZWJQYWdlLCB1c2UgV2ViVmlldyIpKTsKICAgICAgICAgcW1s
UmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UU5ldHdvcmtSZXBseT4odXJpLCAzLCAwLCAiTmV0d29y
a1JlcGx5IiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2Yg
TmV0d29ya1JlcGx5IikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRV2Vi
RG93bmxvYWRJdGVtPih1cmksIDUsIDAsICJEb3dubG9hZEl0ZW0iLCBRT2JqZWN0Ojp0cigiQ2Fu
bm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBEb3dubG9hZEl0ZW0iKSk7CisgICAgICAg
IHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJQZXJtaXNzaW9uUmVxdWVzdD4odXJpLCA1
LCAwLCAiUGVybWlzc2lvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBh
cmF0ZSBpbnN0YW5jZSBvZiBQZXJtaXNzaW9uUmVxdWVzdCIpKTsKICNlbmRpZgogICAgIH0KIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggZTMyOTUyNy4uM2Y3Mjk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDExLTExLTE4ICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGFkZW5pbHNvbi5zaWx2YUBv
cGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtRdF1bV0syXSBJbXBsZW1lbnQgcGVybWlzc2lvbiBB
UEkgZm9yIFF0IHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU5MjAwCisKKyAgICAgICAgUGVybWlzc2lvbiBBUEkgaG9vayBmb3IgZ2VvbG9jYXRp
b24uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
YXJnZXQucHJpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmg6
CisgICAgICAgICogVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuY3BwOgorICAgICAgICAocXRfd2tf
ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChz
ZXR1cFBhZ2VVaUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFF0V2ViUGFnZVByb3h5OjpRdFdlYlBhZ2VQcm94eSk6CisgICAgICAg
IChRdFdlYlBhZ2VQcm94eTo6flF0V2ViUGFnZVByb3h5KToKKyAgICAgICAgKFF0V2ViUGFnZVBy
b3h5OjpwZXJtaXNzaW9uUmVxdWVzdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJQ
YWdlUHJveHkuaDoKKwogMjAxMS0xMS0xOCBObydhbSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhh
bEBub2tpYS5jb20+CiAKICAgICAgICAgV2ViS2l0MjogRW5hYmxlIHNlcmlhbGl6aW5nIG9mIGRh
dGEgdHlwZXMgbmVlZGVkIGZvciBjcm9zcy1wcm9jZXNzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIv
VGFyZ2V0LnByaQppbmRleCA3YjI2ZGE4Li41MDUyYmQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0yNDYs
NiArMjQ2LDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVy
ZW5jZXNfcF9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wLmgg
XAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wX3AuaCBcCisgICAgVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIFwKICAgICBVSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnBhZ2VfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnBhZ2VfcF9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggXApA
QCAtNTQ5LDYgKzU1MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0
L1dLU3RyaW5nUXQuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcCBc
CiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtLmNwcCBcCisgICAgVUlQcm9j
ZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnBhZ2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXcuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3Au
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKaW5k
ZXggMGViYjBhYS4uYjNkMDY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCkBAIC0zMCw2ICszMCw3IEBAIGNsYXNzIFFRdWlja1dl
YlZpZXdQcml2YXRlOwogY2xhc3MgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDsKIGNsYXNzIFFX
ZWJEb3dubG9hZEl0ZW07CiBjbGFzcyBRV2ViUHJlZmVyZW5jZXM7CitjbGFzcyBRV2ViUGVybWlz
c2lvblJlcXVlc3Q7CiAKIG5hbWVzcGFjZSBXVFIgewogY2xhc3MgUGxhdGZvcm1XZWJWaWV3OwpA
QCAtMTA5LDYgKzExMCw3IEBAIFFfU0lHTkFMUzoKICAgICB2b2lkIGxpbmtIb3ZlcmVkKGNvbnN0
IFFVcmwmIHVybCwgY29uc3QgUVN0cmluZyYgdGl0bGUpOwogICAgIHZvaWQgdmlld01vZGVDaGFu
Z2VkKCk7CiAgICAgdm9pZCBuYXZpZ2F0aW9uU3RhdGVDaGFuZ2VkKCk7CisgICAgdm9pZCBwZXJt
aXNzaW9uUmVxdWVzdGVkKFFXZWJQZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvbik7CiAKIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZ2VvbWV0cnlDaGFuZ2VkKGNvbnN0IFFSZWN0RiYs
IGNvbnN0IFFSZWN0RiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmI2OTc2YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKQEAgLTAsMCArMSwxMDQg
QEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUg
InF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgiCisKKyNpbmNsdWRlICJXS1N0cmluZ1F0LmgiCisj
aW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRy
Lmg+CisKKworY2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSA6IHB1YmxpYyBRU2hh
cmVkRGF0YSB7CitwdWJsaWM6CisKKyAgICBRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKFdL
U2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCkKKyAgICAgICAgOiBvcmlnaW4oc2VjdXJpdHlP
cmlnaW4pCisgICAgICAgICwgdHlwZShRV2ViUGVybWlzc2lvblJlcXVlc3Q6Okdlb2xvY2F0aW9u
KQorICAgICAgICAsIHJlcXVlc3QocGVybWlzc2lvblJlcXVlc3QpCisgICAgICAgICwgYWxsb3co
ZmFsc2UpCisgICAgeworICAgIH0KKyAgICB+UVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSgp
CisgICAgeworICAgIH0KKworICAgIFdLUmV0YWluUHRyPFdLU2VjdXJpdHlPcmlnaW5SZWY+IG9y
aWdpbjsKKyAgICBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OlR5cGUgdHlwZTsKKyAgICBXS1JldGFp
blB0cjxXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWY+IHJlcXVlc3Q7CisgICAgYm9v
bCBhbGxvdzsKK307CisKK1FXZWJQZXJtaXNzaW9uUmVxdWVzdCogUVdlYlBlcm1pc3Npb25SZXF1
ZXN0OjpjcmVhdGUoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0KQoreworICAgIHJldHVybiBuZXcgUVdlYlBlcm1pc3Np
b25SZXF1ZXN0KG9yaWdpbiwgcmVxdWVzdCk7Cit9CisKK1FXZWJQZXJtaXNzaW9uUmVxdWVzdDo6
UVdlYlBlcm1pc3Npb25SZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXS0dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIFFPYmplY3QqIHBhcmVu
dCkKKyAgICA6IFFPYmplY3QocGFyZW50KQorICAgICwgZChuZXcgUVdlYlBlcm1pc3Npb25SZXF1
ZXN0UHJpdmF0ZShzZWN1cml0eU9yaWdpbiwgcGVybWlzc2lvblJlcXVlc3QpKQoreworfQorCitR
V2ViUGVybWlzc2lvblJlcXVlc3Q6On5RV2ViUGVybWlzc2lvblJlcXVlc3QoKQoreworfQorCitx
aW50MzIgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojp0eXBlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8cWludDMyPihkLT50eXBlKTsKK30KKwordm9pZCBRV2ViUGVybWlzc2lvblJl
cXVlc3Q6OnNldEFsbG93KGJvb2wgYWNjZXB0ZWQpCit7CisgICAgZC0+YWxsb3cgPSBhY2NlcHRl
ZDsKKyAgICBzd2l0Y2ggKHR5cGUoKSkgeworICAgIGNhc2UgR2VvbG9jYXRpb246IHsKKyAgICAg
ICAgaWYgKGFjY2VwdGVkKQorICAgICAgICAgICAgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0QWxsb3coZC0+cmVxdWVzdC5nZXQoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFdL
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdERlbnkoZC0+cmVxdWVzdC5nZXQoKSk7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICB9Cit9CisKK2Jvb2wgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjphbGxvdygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGQtPmFsbG93OworfQorCitRU3RyaW5nIFFXZWJQZXJtaXNzaW9u
UmVxdWVzdDo6c2NoZW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmlu
ZyhXS1NlY3VyaXR5T3JpZ2luQ29weVByb3RvY29sKGQtPm9yaWdpbi5nZXQoKSkpOworfQorCitR
U3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6aG9zdCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IFdLU3RyaW5nQ29weVFTdHJpbmcoV0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KGQtPm9yaWdpbi5n
ZXQoKSkpOworfQorCitxdWludDE2IFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6cG9ydCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIFdLU2VjdXJpdHlPcmlnaW5HZXRQb3J0KGQtPm9yaWdpbi5nZXQoKSk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJt
aXNzaW9ucmVxdWVzdF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJw
ZXJtaXNzaW9ucmVxdWVzdF9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OTFhOWU2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaApAQCAtMCwwICsxLDY2IEBACisvKgorICAgIENv
cHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisqLworCisjaWZuZGVmIHF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wX2gKKyNkZWZpbmUgcXdl
YnBlcm1pc3Npb25yZXF1ZXN0X3BfaAorCisjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgorCisj
aW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+CisjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRkYXRhLmg+
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaD4KKyNp
bmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4uaD4KKworY2xhc3MgUVdlYlBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZTsKKworY2xhc3MgUVdFQktJVF9FWFBPUlQgUVdlYlBlcm1pc3Npb25S
ZXF1ZXN0IDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCisgICAgUV9QUk9QRVJUWShi
b29sIGFsbG93IFJFQUQgYWxsb3cgV1JJVEUgc2V0QWxsb3cpCisgICAgUV9QUk9QRVJUWShxaW50
MzIgdHlwZSBSRUFEIHR5cGUpCisgICAgUV9QUk9QRVJUWShRU3RyaW5nIHNjaGVtZSBSRUFEIHNj
aGVtZSkKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgaG9zdCBSRUFEIGhvc3QpCisgICAgUV9QUk9Q
RVJUWShxdWludDE2IHBvcnQgUkVBRCBwb3J0KQorCitwdWJsaWM6CisgICAgZW51bSBUeXBlIHsK
KyAgICAgICAgR2VvbG9jYXRpb24KKyAgICB9OworCisgICAgc3RhdGljIFFXZWJQZXJtaXNzaW9u
UmVxdWVzdCogY3JlYXRlKFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdFJlZik7CisgICAgdmlydHVhbCB+UVdlYlBlcm1pc3Npb25SZXF1ZXN0KCk7CisK
KyAgICBxaW50MzIgdHlwZSgpIGNvbnN0OworICAgIGJvb2wgYWxsb3coKSBjb25zdDsKKyAgICBR
U3RyaW5nIHNjaGVtZSgpIGNvbnN0OworICAgIFFTdHJpbmcgaG9zdCgpIGNvbnN0OworICAgIHF1
aW50MTYgcG9ydCgpIGNvbnN0OworCitwdWJsaWMgUV9TTE9UUzoKKyAgICB2b2lkIHNldEFsbG93
KGJvb2wpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVl
c3RQcml2YXRlOworICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVzdChXS1NlY3VyaXR5T3JpZ2luUmVm
IHNlY3VyaXR5T3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlz
c2lvblJlcXVlc3QsIFFPYmplY3QqIHBhcmVudCA9IDApOworCitwcml2YXRlOgorICAgIFFFeHBs
aWNpdGx5U2hhcmVkRGF0YVBvaW50ZXI8UVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZT4gZDsK
K307CisKKworI2VuZGlmIC8vIHF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAKaW5kZXggMTA0ZDM0Mi4uNWVjMmUzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcApAQCAtMjMsNiArMjMs
NyBAQAogI2luY2x1ZGUgIlF0V2ViRXJyb3IuaCIKICNpbmNsdWRlICJXZWJGcmFtZVByb3h5Lmgi
CiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV0tHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV0tTdHJpbmdRdC5oIgogI2luY2x1ZGUgIldLVVJMUXQu
aCIKICNpbmNsdWRlIDxRdFBvbGljeUludGVyZmFjZS5oPgpAQCAtMzcsNiArMzgsNyBAQAogI2lu
Y2x1ZGUgPFdLU3RyaW5nLmg+CiAjaW5jbHVkZSA8V0tUeXBlLmg+CiAjaW5jbHVkZSA8V0tVUkxS
ZXF1ZXN0Lmg+CisjaW5jbHVkZSA8cXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKIApAQCAtMjA3LDYgKzIwOSwxMiBAQCBzdGF0aWMgdm9pZCBxdF93
a19tb3VzZURpZE1vdmVPdmVyRWxlbWVudChXS1BhZ2VSZWYgcGFnZSwgV0tIaXRUZXN0UmVzdWx0
UmVmIGhpdAogICAgIHRvUXRXZWJQYWdlUHJveHkoY2xpZW50SW5mbyktPmRpZE1vdXNlTW92ZU92
ZXJFbGVtZW50KGFic29sdXRlTGlua1VybCwgbGlua1RpdGxlKTsKIH0KIAorc3RhdGljIHZvaWQg
cXRfd2tfZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdL
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQoreworICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVzdCogcmVxID0gUVdlYlBlcm1pc3Np
b25SZXF1ZXN0OjpjcmVhdGUob3JpZ2luLCByZXF1ZXN0KTsKKyAgICB0b1F0V2ViUGFnZVByb3h5
KGNsaWVudEluZm8pLT5wZXJtaXNzaW9uUmVxdWVzdGVkKHJlcSk7Cit9CisKIHN0YXRpYyBRdDo6
TW91c2VCdXR0b24gdG9RdE1vdXNlQnV0dG9uKFdLRXZlbnRNb3VzZUJ1dHRvbiBidXR0b24pCiB7
CiAgICAgc3dpdGNoIChidXR0b24pIHsKQEAgLTMzMyw2ICszNDEsNyBAQCB2b2lkIHNldHVwUGFn
ZVVpQ2xpZW50KFF0V2ViUGFnZVByb3h5KiBxdFdlYlBhZ2VQcm94eSwgV2ViUGFnZVByb3h5KiB3
ZWJQYWdlUHJveAogICAgIHVpQ2xpZW50LnNldFN0YXR1c1RleHQgPSBxdF93a19zZXRTdGF0dXNU
ZXh0OwogICAgIHVpQ2xpZW50LnJ1bk9wZW5QYW5lbCA9IHF0X3drX3J1bk9wZW5QYW5lbDsKICAg
ICB1aUNsaWVudC5tb3VzZURpZE1vdmVPdmVyRWxlbWVudCA9IHF0X3drX21vdXNlRGlkTW92ZU92
ZXJFbGVtZW50OworICAgIHVpQ2xpZW50LmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QgPSBxdF93a19kZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh0b0FQSSh3ZWJQYWdlUHJveHkpLCAm
dWlDbGllbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRXZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFn
ZVByb3h5LmNwcAppbmRleCBjMDdlYmQwLi42ZTJkNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlICJRdFdlYkVycm9yLmgiCiAjaW5jbHVkZSAicXdlYmRvd25sb2FkaXRlbV9wLmgiCiAjaW5j
bHVkZSAicXdlYmRvd25sb2FkaXRlbV9wX3AuaCIKKyNpbmNsdWRlICJxd2VicGVybWlzc2lvbnJl
cXVlc3RfcC5oIgogI2luY2x1ZGUgInF3ZWJwcmVmZXJlbmNlc19wLmgiCiAjaW5jbHVkZSAicXdl
YnByZWZlcmVuY2VzX3BfcC5oIgogCkBAIC0xNDUsNiArMTQ2LDcgQEAgUXRXZWJQYWdlUHJveHk6
OlF0V2ViUGFnZVByb3h5KFFRdWlja1dlYlBhZ2UqIHFtbFdlYlBhZ2UsIFFRdWlja1dlYlZpZXcq
IHFtbFdlYlYKICAgICAsIG1fdW5kb1N0YWNrKGFkb3B0UHRyKG5ldyBRVW5kb1N0YWNrKHRoaXMp
KSkKICAgICAsIG1fbG9hZFByb2dyZXNzKDApCiAgICAgLCBtX25hdmlnYXRvclF0T2JqZWN0RW5h
YmxlZChmYWxzZSkKKyAgICAsIG1fYWxsb3coMCkKIHsKICAgICBtX3dlYlBhZ2VQcm94eSA9IG1f
Y29udGV4dC0+Y3JlYXRlV2ViUGFnZSh0aGlzLCB0b0ltcGwocGFnZUdyb3VwUmVmKSk7CiAgICAg
bV9oaXN0b3J5ID0gUVdLSGlzdG9yeVByaXZhdGU6OmNyZWF0ZUhpc3RvcnkodGhpcywgbV93ZWJQ
YWdlUHJveHktPmJhY2tGb3J3YXJkTGlzdCgpKTsKQEAgLTE3Niw2ICsxNzgsNyBAQCBRdFdlYlBh
Z2VQcm94eTo6flF0V2ViUGFnZVByb3h5KCkKICAgICAgICAgfQogICAgIH0KICAgICBkZWxldGUg
bV9oaXN0b3J5OworICAgIGRlbGV0ZSBtX2FsbG93OwogfQogCiBib29sIFF0V2ViUGFnZVByb3h5
OjpoYW5kbGVFdmVudChRRXZlbnQqIGV2KQpAQCAtOTEzLDYgKzkxNiwxOCBAQCB2b2lkIFF0V2Vi
UGFnZVByb3h5OjpkaWRSZWNlaXZlRG93bmxvYWRSZXNwb25zZShRV2ViRG93bmxvYWRJdGVtKiBk
b3dubG9hZEl0ZW0pCiAgICAgZW1pdCBtX3FtbFdlYlZpZXctPmRvd25sb2FkUmVxdWVzdGVkKGRv
d25sb2FkSXRlbSk7CiB9CiAKK3ZvaWQgUXRXZWJQYWdlUHJveHk6OnBlcm1pc3Npb25SZXF1ZXN0
ZWQoUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIGlmICghcmVxdWVzdCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fYWxsb3cpCisgICAgICAgIGRlbGV0ZSBtX2Fs
bG93OworCisgICAgbV9hbGxvdyA9IHJlcXVlc3Q7CisgICAgZW1pdCBtX3FtbFdlYlZpZXctPnBl
cm1pc3Npb25SZXF1ZXN0ZWQobV9hbGxvdyk7Cit9CisKIFBhc3NPd25QdHI8RHJhd2luZ0FyZWFQ
cm94eT4gUXRXZWJQYWdlUHJveHk6OmNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKQogewogICAgIHJl
dHVybiBEcmF3aW5nQXJlYVByb3h5SW1wbDo6Y3JlYXRlKG1fd2ViUGFnZVByb3h5LmdldCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmgKaW5kZXggMjIz
NGFkNC4uM2Q2Y2U2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFn
ZVByb3h5LmgKQEAgLTUwLDYgKzUwLDcgQEAgY2xhc3MgUVdlYlByZWZlcmVuY2VzOwogY2xhc3Mg
UVdLSGlzdG9yeTsKIGNsYXNzIFFRdWlja1dlYlBhZ2U7CiBjbGFzcyBRUXVpY2tXZWJWaWV3Owor
Y2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OwogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owog
CkBAIC0yMjIsNiArMjIzLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRNb3VzZU1vdmVPdmVy
RWxlbWVudChjb25zdCBRVXJsJiwgY29uc3QgUVN0cmluZyYpOwogCisgICAgdm9pZCBwZXJtaXNz
aW9uUmVxdWVzdGVkKFFXZWJQZXJtaXNzaW9uUmVxdWVzdCopOworCiBwdWJsaWMgUV9TTE9UUzoK
ICAgICB2b2lkIG5hdmlnYXRpb25TdGF0ZUNoYW5nZWQoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVE
b3dubG9hZFJlc3BvbnNlKFFXZWJEb3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSk7CkBAIC0yODYs
NiArMjg5LDggQEAgcHJpdmF0ZToKICAgICBRU2hhcmVkUG9pbnRlcjxRTWVudT4gYWN0aXZlTWVu
dTsKICAgICBRVXJsIGxhc3RIb3ZlcmVkVVJMOwogICAgIFFTdHJpbmcgbGFzdEhvdmVyZWRUaXRs
ZTsKKworICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVzdCAqbV9hbGxvdzsKIH07CiAKICNlbmRpZiAv
KiBRdFdlYlBhZ2VQcm94eV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0
Lm1hcCBiL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCmluZGV4IGVjYTM2YmIuLmNjYTRlNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCisrKyBiL1NvdXJjZS9xdHdl
YmtpdC1leHBvcnQubWFwCkBAIC0xMjAsNiArMTIwLDEwIEBAIHF3a18xLjAgewogICAgICAgICAq
UVF1aWNrV2ViUGFnZTsKICAgICAgICAgbm9uLXZpcnR1YWw/dGh1bms/dG8/UVF1aWNrV2ViUGFn
ZSo7CiAgICAgICAgIFFRdWlja1dlYlBhZ2U6Oio7CisgICAgICAgICpRV2ViUGVybWlzc2lvblJl
cXVlc3Q7CisgICAgICAgIG5vbi12aXJ0dWFsP3RodW5rP3RvP1FXZWJQZXJtaXNzaW9uUmVxdWVz
dCo7CisgICAgICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6KjsKKwogCiAgICAgICAgICMgV2Vi
S2l0IDIgQyBBUEkgbWFuZ2xlZCBpbiBDKysKICAgICAgICAgV0tTdHJpbmdDb3B5UVN0cmluZyo7
Ci0tIAoxLjcuNC4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116139</attachid>
            <date>2011-11-21 14:45:05 -0800</date>
            <delta_ts>2011-11-21 18:08:14 -0800</delta_ts>
            <desc>Experimental api, changed port type, removed m_allow, etc</desc>
            <filename>geoperm11.patch</filename>
            <type>text/plain</type>
            <size>16302</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSAwMDM4YWMwOTdmYzZhMmE4M2FlMDIzZmVlMGQxNzZmZDNlNjk5YWY4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IEZyaSwgMTggTm92IDIwMTEgMTc6MTE6MTggLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBSZWJhc2VkLCBjaGFuZ2VkIHNpZ25hbCBuYW1lLCB1c2luZyBleHBlcmlt
ZW50YWwgaW50ZXJmYWNlLCBleHBvcnRpbmcgcHJvcGVydGllcwogZm9yIGFjY2Vzc2luZyBwb3J0
L3NjaGVtZS9ldGMsIHJlbW92ZWQgbV9hbGxvdywgY2hhbmdlZCBwb3J0IHR5cGUuCgpTaWduZWQt
b2ZmLWJ5OiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZhQG9wZW5ib3NzYS5v
cmc+Ci0tLQogQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDExICsrCiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTIgKysKIFNvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNw
cCAgICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMjAgKysrKwogU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggIHwgICAgNCArCiAuLi4vVUlQcm9jZXNzL0FQSS9x
dC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwICAgICB8ICAxMDcgKysrKysrKysrKysrKysrKysr
KysKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggICAgIHwg
ICA2NiArKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBs
LmNwcCAgICAgICAgIHwgICAgOSArKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2Vi
UGFnZVByb3h5LmNwcCAgICAgfCAgIDEwICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRXZWJQYWdlUHJveHkuaCAgICAgICB8ICAgIDQgKwogU291cmNlL3F0d2Via2l0LWV4cG9ydC5t
YXAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsKIDEyIGZpbGVzIGNoYW5nZWQsIDI1
MSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1p
c3Npb25yZXF1ZXN0X3AuaAoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRl
eCA4YWQ5M2QzLi40NDgzZjc2IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTEtMTggIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8YWRl
bmlsc29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XVtXSzJdIEltcGxlbWVu
dCBwZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAgICBQZXJtaXNzaW9uIEFQSSBob29r
IGZvciBnZW9sb2NhdGlvbi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwOgorCiAyMDExLTExLTIxICBB
ZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBHWVAtZ2VuZXJh
dGVkIFdURi54Y29kZXByb2ogdG8gLmdpdGlnbm9yZSBhZnRlciByMTAwODUxLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZwppbmRleCA3ZGIzOGFlLi40MjM5YzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDExLTExLTE4ICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGFkZW5pbHNvbi5zaWx2YUBvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFtRdF1bV0syXSBJbXBsZW1lbnQgcGVybWlzc2lvbiBBUEkg
Zm9yIFF0IHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU5MjAwCisKKyAgICAgICAgUGVybWlzc2lvbiBBUEkgaG9vayBmb3IgZ2VvbG9jYXRpb24u
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkZWNs
YXJhdGl2ZS9wbHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0UW1sUGx1Z2luOjpyZWdpc3RlclR5
cGVzKToKKwogMjAxMS0xMC0xNyAgQW50b25pbyBHb21lcyAgPGFnb21lc0ByaW0uY29tPgogCiAg
ICAgICAgIFBhc3MgYSBGcmFtZSogcGFyYW1ldGVyIGluIEVkaXRvckNsaWVudDo6cmVzcG9uZFRv
Q2hhbmdlZFNlbGVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2
ZS9wbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCmlu
ZGV4IDkxNjM0ZWUuLjI1MGYzNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFy
YXRpdmUvcGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdp
bi5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKICNp
bmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKICNpbmNsdWRlICJxd2ViZG93bmxvYWRpdGVtX3Au
aCIKKyNpbmNsdWRlICJxd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIgogI2luY2x1ZGUgInF3ZWJw
cmVmZXJlbmNlc19wLmgiCiAKICNpbmNsdWRlIDxRdE5ldHdvcmsvcW5ldHdvcmtyZXBseS5oPgpA
QCAtNTMsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVU
eXBlPFFRdWlja1dlYlBhZ2U+KHVyaSwgMywgMCwgIldlYlBhZ2UiLCBRT2JqZWN0Ojp0cigiQ2Fu
bm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBXZWJQYWdlLCB1c2UgV2ViVmlldyIpKTsK
ICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UU5ldHdvcmtSZXBseT4odXJpLCAz
LCAwLCAiTmV0d29ya1JlcGx5IiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUg
aW5zdGFuY2Ugb2YgTmV0d29ya1JlcGx5IikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRh
YmxlVHlwZTxRV2ViRG93bmxvYWRJdGVtPih1cmksIDUsIDAsICJEb3dubG9hZEl0ZW0iLCBRT2Jq
ZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBEb3dubG9hZEl0ZW0i
KSk7CisgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJQZXJtaXNzaW9uUmVx
dWVzdD4odXJpLCA1LCAwLCAiUGVybWlzc2lvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90
IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBQZXJtaXNzaW9uUmVxdWVzdCIpKTsKICNlbmRp
ZgogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTIzZGQ5My4uZWMwYjA1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIzIEBACisyMDExLTExLTE4ICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGFkZW5p
bHNvbi5zaWx2YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtRdF1bV0syXSBJbXBsZW1lbnQg
cGVybWlzc2lvbiBBUEkgZm9yIFF0IHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU5MjAwCisKKyAgICAgICAgUGVybWlzc2lvbiBBUEkgaG9vayBm
b3IgZ2VvbG9jYXRpb24uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlld19wLmg6CisgICAgICAgICogVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuY3BwOgorICAg
ICAgICAocXRfd2tfZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6
CisgICAgICAgIChzZXR1cFBhZ2VVaUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFF0V2ViUGFnZVByb3h5OjpRdFdlYlBhZ2VQcm94
eSk6CisgICAgICAgIChRdFdlYlBhZ2VQcm94eTo6flF0V2ViUGFnZVByb3h5KToKKyAgICAgICAg
KFF0V2ViUGFnZVByb3h5OjpwZXJtaXNzaW9uUmVxdWVzdGVkKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvcXQvUXRXZWJQYWdlUHJveHkuaDoKKwogMjAxMS0xMS0yMSAgQWxleGlzIE1lbmFyZCAgPGFs
ZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdIFJlbW92ZSB1bm5lY2Vz
c2FyeSBpbml0aWFsaXplIG1ldGhvZCBmcm9tIFFRdWlja1dlYlZpZXcuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRl
eCA3YjI2ZGE4Li41MDUyYmQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnBy
aQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0yNDYsNiArMjQ2LDcgQEAgSEVB
REVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmggXAog
ICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wLmggXAogICAgIFVJUHJvY2Vz
cy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wX3AuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9xdC9x
d2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnBhZ2VfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcF9wLmggXAog
ICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggXApAQCAtNTQ5LDYgKzU1MCw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3Bw
IFwKICAgICBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtLmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cGVybWlzc2lvbnJlcXVlc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBh
Z2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIFwKICAgICBV
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKaW5kZXggNWVhYjc1YS4uNmYx
N2M5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcC5oCkBAIC0zMSw2ICszMSw3IEBAIGNsYXNzIFFRdWlja1dlYlZpZXdQcml2YXRlOwog
Y2xhc3MgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDsKIGNsYXNzIFFXZWJEb3dubG9hZEl0ZW07
CiBjbGFzcyBRV2ViUHJlZmVyZW5jZXM7CitjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3Q7CiAK
IG5hbWVzcGFjZSBXVFIgewogY2xhc3MgUGxhdGZvcm1XZWJWaWV3OwpAQCAtMTgxLDYgKzE4Miw3
IEBAIFFfU0lHTkFMUzoKICAgICB2b2lkIGFsZXJ0RGlhbG9nQ2hhbmdlZCgpOwogICAgIHZvaWQg
Y29uZmlybURpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIHByb21wdERpYWxvZ0NoYW5nZWQoKTsK
KyAgICB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0ZWQoUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiBwZXJt
aXNzaW9uKTsKIAogcHJpdmF0ZToKICAgICBRUXVpY2tXZWJWaWV3KiBxX3B0cjsKQEAgLTE4OCw2
ICsxOTAsOCBAQCBwcml2YXRlOgogCiAgICAgUV9ERUNMQVJFX1BSSVZBVEUoUVF1aWNrV2ViVmll
dykKICAgICBRX0RFQ0xBUkVfUFVCTElDKFFRdWlja1dlYlZpZXcpCisKKyAgICBmcmllbmQgY2xh
c3MgUXRXZWJQYWdlUHJveHk7CiB9OwogCiAjZW5kaWYgLy8gcXF1aWNrd2Vidmlld19wX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25y
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Np
b25yZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTU3NjU4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cGVybWlzc2lvbnJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsMTA3IEBACisvKgorICAgIENvcHlyaWdo
dCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJxd2VicGVybWlzc2lvbnJlcXVl
c3RfcC5oIgorCisjaW5jbHVkZSAiV0tTdHJpbmdRdC5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tC
YXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorCisKK2NsYXNzIFFXZWJQ
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgOiBwdWJsaWMgUVNoYXJlZERhdGEgeworcHVibGljOgor
CisgICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmIHNl
Y3VyaXR5T3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lv
blJlcXVlc3QpCisgICAgICAgIDogb3JpZ2luKHNlY3VyaXR5T3JpZ2luKQorICAgICAgICAsIHR5
cGUoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpHZW9sb2NhdGlvbikKKyAgICAgICAgLCByZXF1ZXN0
KHBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICAsIGFsbG93KGZhbHNlKQorICAgIHsKKyAgICB9
CisgICAgflFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUoKQorICAgIHsKKyAgICB9CisKKyAg
ICBXS1JldGFpblB0cjxXS1NlY3VyaXR5T3JpZ2luUmVmPiBvcmlnaW47CisgICAgUVdlYlBlcm1p
c3Npb25SZXF1ZXN0OjpUeXBlIHR5cGU7CisgICAgV0tSZXRhaW5QdHI8V0tHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0UmVmPiByZXF1ZXN0OworICAgIGJvb2wgYWxsb3c7Cit9OworCitRV2Vi
UGVybWlzc2lvblJlcXVlc3QqIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKFdLU2VjdXJp
dHlPcmlnaW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcmVx
dWVzdCkKK3sKKyAgICByZXR1cm4gbmV3IFFXZWJQZXJtaXNzaW9uUmVxdWVzdChvcmlnaW4sIHJl
cXVlc3QpOworfQorCitRV2ViUGVybWlzc2lvblJlcXVlc3Q6OlFXZWJQZXJtaXNzaW9uUmVxdWVz
dChXS1NlY3VyaXR5T3JpZ2luUmVmIHNlY3VyaXR5T3JpZ2luLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBRT2JqZWN0KiBwYXJlbnQpCisgICAgOiBRT2JqZWN0KHBh
cmVudCkKKyAgICAsIGQobmV3IFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUoc2VjdXJpdHlP
cmlnaW4sIHBlcm1pc3Npb25SZXF1ZXN0KSkKK3sKK30KKworUVdlYlBlcm1pc3Npb25SZXF1ZXN0
Ojp+UVdlYlBlcm1pc3Npb25SZXF1ZXN0KCkKK3sKK30KKworcWludDMyIFFXZWJQZXJtaXNzaW9u
UmVxdWVzdDo6dHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHFpbnQzMj4o
ZC0+dHlwZSk7Cit9CisKK3ZvaWQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzZXRBbGxvdyhib29s
IGFjY2VwdGVkKQoreworICAgIGQtPmFsbG93ID0gYWNjZXB0ZWQ7CisgICAgc3dpdGNoICh0eXBl
KCkpIHsKKyAgICBjYXNlIEdlb2xvY2F0aW9uOiB7CisgICAgICAgIGlmIChhY2NlcHRlZCkKKyAg
ICAgICAgICAgIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEFsbG93KGQtPnJlcXVlc3Qu
Z2V0KCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBXS0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3REZW55KGQtPnJlcXVlc3QuZ2V0KCkpOworICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCiti
b29sIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6YWxsb3coKSBjb25zdAoreworICAgIHJldHVybiBk
LT5hbGxvdzsKK30KKworUVN0cmluZyBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNjaGVtZSgpIGNv
bnN0Cit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybCA9IGFkb3B0V0soV0tTZWN1
cml0eU9yaWdpbkNvcHlQcm90b2NvbChkLT5vcmlnaW4uZ2V0KCkpKTsKKyAgICByZXR1cm4gV0tT
dHJpbmdDb3B5UVN0cmluZyh1cmwuZ2V0KCkpOworfQorCitRU3RyaW5nIFFXZWJQZXJtaXNzaW9u
UmVxdWVzdDo6aG9zdCgpIGNvbnN0Cit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG9y
aWdpbiA9IGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KGQtPm9yaWdpbi5nZXQoKSkp
OworICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKG9yaWdpbi5nZXQoKSk7CisKK30KKwor
aW50IFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6cG9ydCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGludD4oV0tTZWN1cml0eU9yaWdpbkdldFBvcnQoZC0+b3JpZ2luLmdldCgpKSk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJt
aXNzaW9ucmVxdWVzdF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJw
ZXJtaXNzaW9ucmVxdWVzdF9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZmJjYTg1ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaApAQCAtMCwwICsxLDY2IEBACisvKgorICAgIENv
cHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisqLworCisjaWZuZGVmIHF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wX2gKKyNkZWZpbmUgcXdl
YnBlcm1pc3Npb25yZXF1ZXN0X3BfaAorCisjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgorCisj
aW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+CisjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRkYXRhLmg+
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaD4KKyNp
bmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4uaD4KKworY2xhc3MgUVdlYlBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZTsKKworY2xhc3MgUVdFQktJVF9FWFBPUlQgUVdlYlBlcm1pc3Npb25S
ZXF1ZXN0IDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCisgICAgUV9QUk9QRVJUWShi
b29sIGFsbG93IFJFQUQgYWxsb3cgV1JJVEUgc2V0QWxsb3cpCisgICAgUV9QUk9QRVJUWShxaW50
MzIgdHlwZSBSRUFEIHR5cGUpCisgICAgUV9QUk9QRVJUWShRU3RyaW5nIHNjaGVtZSBSRUFEIHNj
aGVtZSkKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgaG9zdCBSRUFEIGhvc3QpCisgICAgUV9QUk9Q
RVJUWShpbnQgcG9ydCBSRUFEIHBvcnQpCisKK3B1YmxpYzoKKyAgICBlbnVtIFR5cGUgeworICAg
ICAgICBHZW9sb2NhdGlvbgorICAgIH07CisKKyAgICBzdGF0aWMgUVdlYlBlcm1pc3Npb25SZXF1
ZXN0KiBjcmVhdGUoV0tTZWN1cml0eU9yaWdpblJlZiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0UmVmKTsKKyAgICB2aXJ0dWFsIH5RV2ViUGVybWlzc2lvblJlcXVlc3QoKTsKKworICAg
IHFpbnQzMiB0eXBlKCkgY29uc3Q7CisgICAgYm9vbCBhbGxvdygpIGNvbnN0OworICAgIFFTdHJp
bmcgc2NoZW1lKCkgY29uc3Q7CisgICAgUVN0cmluZyBob3N0KCkgY29uc3Q7CisgICAgaW50IHBv
cnQoKSBjb25zdDsKKworcHVibGljIFFfU0xPVFM6CisgICAgdm9pZCBzZXRBbGxvdyhib29sKTsK
KworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZTsKKyAgICBRV2ViUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1cml0eU9yaWdpblJlZiBzZWN1cml0
eU9yaWdpbiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1
ZXN0LCBRT2JqZWN0KiBwYXJlbnQgPSAwKTsKKworcHJpdmF0ZToKKyAgICBRRXhwbGljaXRseVNo
YXJlZERhdGFQb2ludGVyPFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU+IGQ7Cit9OworCisK
KyNlbmRpZiAvLyBxd2VicGVybWlzc2lvbnJlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L0NsaWVudEltcGwuY3BwCmluZGV4IDEwNGQzNDIuLjVlYzJlMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNp
bmNsdWRlICJRdFdlYkVycm9yLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcm94eS5oIgogI2luY2x1
ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5oIgogI2luY2x1ZGUgIldLU3RyaW5nUXQuaCIKICNpbmNsdWRlICJXS1VSTFF0LmgiCiAjaW5j
bHVkZSA8UXRQb2xpY3lJbnRlcmZhY2UuaD4KQEAgLTM3LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxX
S1N0cmluZy5oPgogI2luY2x1ZGUgPFdLVHlwZS5oPgogI2luY2x1ZGUgPFdLVVJMUmVxdWVzdC5o
PgorI2luY2x1ZGUgPHF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiAKQEAgLTIwNyw2ICsyMDksMTIgQEAgc3RhdGljIHZvaWQgcXRfd2tfbW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoV0tQYWdlUmVmIHBhZ2UsIFdLSGl0VGVzdFJlc3VsdFJlZiBoaXQK
ICAgICB0b1F0V2ViUGFnZVByb3h5KGNsaWVudEluZm8pLT5kaWRNb3VzZU1vdmVPdmVyRWxlbWVu
dChhYnNvbHV0ZUxpbmtVcmwsIGxpbmtUaXRsZSk7CiB9CiAKK3N0YXRpYyB2b2lkIHF0X3drX2Rl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3sKKyAgICBRV2ViUGVybWlzc2lvblJlcXVlc3QqIHJlcSA9IFFXZWJQZXJtaXNzaW9uUmVxdWVz
dDo6Y3JlYXRlKG9yaWdpbiwgcmVxdWVzdCk7CisgICAgdG9RdFdlYlBhZ2VQcm94eShjbGllbnRJ
bmZvKS0+cGVybWlzc2lvblJlcXVlc3RlZChyZXEpOworfQorCiBzdGF0aWMgUXQ6Ok1vdXNlQnV0
dG9uIHRvUXRNb3VzZUJ1dHRvbihXS0V2ZW50TW91c2VCdXR0b24gYnV0dG9uKQogewogICAgIHN3
aXRjaCAoYnV0dG9uKSB7CkBAIC0zMzMsNiArMzQxLDcgQEAgdm9pZCBzZXR1cFBhZ2VVaUNsaWVu
dChRdFdlYlBhZ2VQcm94eSogcXRXZWJQYWdlUHJveHksIFdlYlBhZ2VQcm94eSogd2ViUGFnZVBy
b3gKICAgICB1aUNsaWVudC5zZXRTdGF0dXNUZXh0ID0gcXRfd2tfc2V0U3RhdHVzVGV4dDsKICAg
ICB1aUNsaWVudC5ydW5PcGVuUGFuZWwgPSBxdF93a19ydW5PcGVuUGFuZWw7CiAgICAgdWlDbGll
bnQubW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQgPSBxdF93a19tb3VzZURpZE1vdmVPdmVyRWxlbWVu
dDsKKyAgICB1aUNsaWVudC5kZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0ID0gcXRfd2tfZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsK
ICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQodG9BUEkod2ViUGFnZVByb3h5KSwgJnVpQ2xpZW50
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5j
cHAKaW5kZXggNTM3YjVhNi4uYjljMTBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiUXRX
ZWJFcnJvci5oIgogI2luY2x1ZGUgInF3ZWJkb3dubG9hZGl0ZW1fcC5oIgogI2luY2x1ZGUgInF3
ZWJkb3dubG9hZGl0ZW1fcF9wLmgiCisjaW5jbHVkZSAicXdlYnBlcm1pc3Npb25yZXF1ZXN0X3Au
aCIKICNpbmNsdWRlICJxd2VicHJlZmVyZW5jZXNfcC5oIgogI2luY2x1ZGUgInF3ZWJwcmVmZXJl
bmNlc19wX3AuaCIKIApAQCAtOTIxLDYgKzkyMiwxNSBAQCB2b2lkIFF0V2ViUGFnZVByb3h5Ojpk
aWRSZWNlaXZlRG93bmxvYWRSZXNwb25zZShRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0p
CiAgICAgZW1pdCBtX3FtbFdlYlZpZXctPmRvd25sb2FkUmVxdWVzdGVkKGRvd25sb2FkSXRlbSk7
CiB9CiAKK3ZvaWQgUXRXZWJQYWdlUHJveHk6OnBlcm1pc3Npb25SZXF1ZXN0ZWQoUVdlYlBlcm1p
c3Npb25SZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgcmVxdWVzdC0+c2V0UGFyZW50KHRoaXMpOworICAgIGVtaXQgbV9xbWxXZWJW
aWV3LT5leHBlcmltZW50YWwoKS0+cGVybWlzc2lvblJlcXVlc3RlZChyZXF1ZXN0KTsKK30KKwog
UGFzc093blB0cjxEcmF3aW5nQXJlYVByb3h5PiBRdFdlYlBhZ2VQcm94eTo6Y3JlYXRlRHJhd2lu
Z0FyZWFQcm94eSgpCiB7CiAgICAgcmV0dXJuIERyYXdpbmdBcmVhUHJveHlJbXBsOjpjcmVhdGUo
bV93ZWJQYWdlUHJveHkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRX
ZWJQYWdlUHJveHkuaAppbmRleCA2N2NkMDU1Li5lY2Q4ZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuaApAQCAtNTAsNiArNTAsNyBAQCBjbGFzcyBR
V2ViUHJlZmVyZW5jZXM7CiBjbGFzcyBRV0tIaXN0b3J5OwogY2xhc3MgUVF1aWNrV2ViUGFnZTsK
IGNsYXNzIFFRdWlja1dlYlZpZXc7CitjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3Q7CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTIyMyw2ICsyMjQsOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGRpZE1vdXNlTW92ZU92ZXJFbGVtZW50KGNvbnN0IFFVcmwmLCBjb25zdCBRU3RyaW5n
Jik7CiAKKyAgICB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0ZWQoUVdlYlBlcm1pc3Npb25SZXF1ZXN0
Kik7CisKIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgbmF2aWdhdGlvblN0YXRlQ2hhbmdlZCgp
OwogICAgIHZvaWQgZGlkUmVjZWl2ZURvd25sb2FkUmVzcG9uc2UoUVdlYkRvd25sb2FkSXRlbSog
ZG93bmxvYWRJdGVtKTsKQEAgLTI4Nyw2ICsyOTAsNyBAQCBwcml2YXRlOgogICAgIFFTaGFyZWRQ
b2ludGVyPFFNZW51PiBhY3RpdmVNZW51OwogICAgIFFVcmwgbGFzdEhvdmVyZWRVUkw7CiAgICAg
UVN0cmluZyBsYXN0SG92ZXJlZFRpdGxlOworCiB9OwogCiAjZW5kaWYgLyogUXRXZWJQYWdlUHJv
eHlfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAgYi9Tb3VyY2Uv
cXR3ZWJraXQtZXhwb3J0Lm1hcAppbmRleCBhNDI2MjAzLi5hNTQ2Y2IyIDEwMDY0NAotLS0gYS9T
b3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAorKysgYi9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1h
cApAQCAtMTI3LDYgKzEyNywxMCBAQCBxd2tfMS4wIHsKICAgICAgICAgKlFRdWlja1dlYlBhZ2U7
CiAgICAgICAgIG5vbi12aXJ0dWFsP3RodW5rP3RvP1FRdWlja1dlYlBhZ2UqOwogICAgICAgICBR
UXVpY2tXZWJQYWdlOjoqOworICAgICAgICAqUVdlYlBlcm1pc3Npb25SZXF1ZXN0OworICAgICAg
ICBub24tdmlydHVhbD90aHVuaz90bz9RV2ViUGVybWlzc2lvblJlcXVlc3QqOworICAgICAgICBR
V2ViUGVybWlzc2lvblJlcXVlc3Q6Oio7CisKIAogICAgICAgICAjIFdlYktpdCAyIEMgQVBJIG1h
bmdsZWQgaW4gQysrCiAgICAgICAgIFdLU3RyaW5nQ29weVFTdHJpbmcqOwotLSAKMS43LjQuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116161</attachid>
            <date>2011-11-21 18:08:14 -0800</date>
            <delta_ts>2011-11-24 11:55:03 -0800</delta_ts>
            <desc>Previous fixes, plus Changelog</desc>
            <filename>geoperm12.patch</filename>
            <type>text/plain</type>
            <size>17351</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSA5MmFjZjAwNGI2MDkyOGUyZDc3OGI0MmE2NWVmNjcwZWM1Mzg0ZDFiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IE1vbiwgMjEgTm92IDIwMTEgMjI6MDM6MjUgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBQZXJtaXNzaW9uIEFQSSAodXNlZCBmb3IgZ3JhbnRpbmcgYWNjZXNzIHRv
IGdlb2xvY2F0aW9uKS4KClNpZ25lZC1vZmYtYnk6IEFkZW5pbHNvbiBDYXZhbGNhbnRpIDxhZGVu
aWxzb24uc2lsdmFAb3BlbmJvc3NhLm9yZz4KLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrCiBTb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKysrCiBTb3VyY2UvV2ViS2l0
L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAgICAgICAgICAgICB8ICAgIDIgKwogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMzICsrKysrKwog
U291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAy
ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggIHwg
ICAgNCArCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwICAg
ICB8ICAxMDcgKysrKysrKysrKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJw
ZXJtaXNzaW9ucmVxdWVzdF9wLmggICAgIHwgICA2NiArKysrKysrKysrKysKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcCAgICAgICAgIHwgICAgOSArKwogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcCAgICAgfCAgIDEwICsrCiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuaCAgICAgICB8ICAgIDQg
KwogU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
ICA0ICsKIDEyIGZpbGVzIGNoYW5nZWQsIDI2OCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygt
KQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdl
YnBlcm1pc3Npb25yZXF1ZXN0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaAoKZGlmZiAtLWdpdCBh
L0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4YWQ5M2QzLi4xYjQ2NDk5IDEwMDY0NAotLS0g
YS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEtMjEg
IEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8YWRlbmlsc29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+CisK
KyAgICAgICAgW1F0XVtXSzJdIEltcGxlbWVudCBwZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKwor
ICAgICAgICBQZXJtaXNzaW9uIEFQSSBob29rdXAgZm9yIEdlb2xvY2F0aW9uLCBpdCBhbGxvd3Mg
aW4gV2ViVmlldyB0byByZWNlaXZlCisgICAgICAgIGEgc2lnbmFsIHdoZW4gYSBwZXJtaXNzaW9u
IHJlcXVlc3QgaXMgZG9uZSAoZS5nLiB0byBncmFudCBwZXJtaXNzaW9uCisgICAgICAgIGZvciBh
Y2Nlc3NpbmcgZ2VvbG9jYXRpb24gaW5mb3JtYXRpb24pIGFuZCBzZXQgaXQgYWNjb3JkaW5nbHku
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3Vy
Y2UvcXR3ZWJraXQtZXhwb3J0Lm1hcDoKKwogMjAxMS0xMS0yMSAgQWRhbSBLbGVpbiAgPGFkYW1r
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgR1lQLWdlbmVyYXRlZCBXVEYueGNvZGVwcm9q
IHRvIC5naXRpZ25vcmUgYWZ0ZXIgcjEwMDg1MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggN2RiMzhhZS4u
NDFhM2MwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0xMS0yMSAgQWRl
bmlsc29uIENhdmFsY2FudGkgIDxhZGVuaWxzb24uc2lsdmFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBbUXRdW1dLMl0gSW1wbGVtZW50IHBlcm1pc3Npb24gQVBJIGZvciBRdCBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTIwMAorCisgICAg
ICAgIFBlcm1pc3Npb24gQVBJIGhvb2t1cCBmb3IgR2VvbG9jYXRpb24sIGl0IGFsbG93cyBpbiBX
ZWJWaWV3IHRvIHJlY2VpdmUKKyAgICAgICAgYSBzaWduYWwgd2hlbiBhIHBlcm1pc3Npb24gcmVx
dWVzdCBpcyBkb25lIChlLmcuIHRvIGdyYW50IHBlcm1pc3Npb24KKyAgICAgICAgZm9yIGFjY2Vz
c2luZyBnZW9sb2NhdGlvbiBpbmZvcm1hdGlvbikgYW5kIHNldCBpdCBhY2NvcmRpbmdseS4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRlY2xhcmF0
aXZlL3BsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXRRbWxQbHVnaW46OnJlZ2lzdGVyVHlwZXMp
OgorCiAyMDExLTEwLTE3ICBBbnRvbmlvIEdvbWVzICA8YWdvbWVzQHJpbS5jb20+CiAKICAgICAg
ICAgUGFzcyBhIEZyYW1lKiBwYXJhbWV0ZXIgaW4gRWRpdG9yQ2xpZW50OjpyZXNwb25kVG9DaGFu
Z2VkU2VsZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3Bs
dWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKaW5kZXgg
OTE2MzRlZS4uMjUwZjM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2
ZS9wbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNw
cApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgogI2luY2x1
ZGUgInFxdWlja3dlYnZpZXdfcC5oIgogI2luY2x1ZGUgInF3ZWJkb3dubG9hZGl0ZW1fcC5oIgor
I2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgiCiAjaW5jbHVkZSAicXdlYnByZWZl
cmVuY2VzX3AuaCIKIAogI2luY2x1ZGUgPFF0TmV0d29yay9xbmV0d29ya3JlcGx5Lmg+CkBAIC01
Myw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8
UVF1aWNrV2ViUGFnZT4odXJpLCAzLCAwLCAiV2ViUGFnZSIsIFFPYmplY3Q6OnRyKCJDYW5ub3Qg
Y3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFdlYlBhZ2UsIHVzZSBXZWJWaWV3IikpOwogICAg
ICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRTmV0d29ya1JlcGx5Pih1cmksIDMsIDAs
ICJOZXR3b3JrUmVwbHkiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0
YW5jZSBvZiBOZXR3b3JrUmVwbHkiKSk7CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVU
eXBlPFFXZWJEb3dubG9hZEl0ZW0+KHVyaSwgNSwgMCwgIkRvd25sb2FkSXRlbSIsIFFPYmplY3Q6
OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIERvd25sb2FkSXRlbSIpKTsK
KyAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVdlYlBlcm1pc3Npb25SZXF1ZXN0
Pih1cmksIDUsIDAsICJQZXJtaXNzaW9uUmVxdWVzdCIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3Jl
YXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFBlcm1pc3Npb25SZXF1ZXN0IikpOwogI2VuZGlmCiAg
ICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlMjNkZDkzLi4zOTFjZjMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzYgQEAKKzIwMTEtMTEtMjEgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8YWRlbmlsc29u
LnNpbHZhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XVtXSzJdIEltcGxlbWVudCBwZXJt
aXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAgICBQZXJtaXNzaW9uIEFQSSBob29rdXAgZm9y
IEdlb2xvY2F0aW9uLCBpdCBhbGxvd3MgaW4gV2ViVmlldyB0byByZWNlaXZlCisgICAgICAgIGEg
c2lnbmFsIHdoZW4gYSBwZXJtaXNzaW9uIHJlcXVlc3QgaXMgZG9uZSAoZS5nLiB0byBncmFudCBw
ZXJtaXNzaW9uCisgICAgICAgIGZvciBhY2Nlc3NpbmcgZ2VvbG9jYXRpb24gaW5mb3JtYXRpb24p
IGFuZCBzZXQgaXQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlld19wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVy
bWlzc2lvbnJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGU6OlFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUpOgorICAgICAgICAoUVdlYlBl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTo6flFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUpOgor
ICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoUVdlYlBl
cm1pc3Npb25SZXF1ZXN0OjpRV2ViUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoUVdlYlBl
cm1pc3Npb25SZXF1ZXN0Ojp+UVdlYlBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFFXZWJQ
ZXJtaXNzaW9uUmVxdWVzdDo6dHlwZSk6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3Q6
OnNldEFsbG93KToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6YWxsb3cpOgorICAg
ICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzY2hlbWUpOgorICAgICAgICAoUVdlYlBlcm1p
c3Npb25SZXF1ZXN0Ojpob3N0KToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6cG9y
dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHA6CisgICAgICAg
IChxdF93a19kZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KToKKyAg
ICAgICAgKHNldHVwUGFnZVVpQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoUXRXZWJQYWdlUHJveHk6OnBlcm1pc3Npb25SZXF1ZXN0
ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oOgorCiAyMDExLTEx
LTIxICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgogCiAgICAg
ICAgIFtRdF0gUmVtb3ZlIHVubmVjZXNzYXJ5IGluaXRpYWxpemUgbWV0aG9kIGZyb20gUVF1aWNr
V2ViVmlldy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IDdiMjZkYTguLjUwNTJiZDVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkK
QEAgLTI0Niw2ICsyNDYsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3
ZWJwcmVmZXJlbmNlc19wX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRp
dGVtX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3BfcC5oIFwK
KyAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggXAogICAgIFVJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2VicGFnZV9wX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
X3AuaCBcCkBAIC01NDksNiArNTUwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9jcHAvcXQvV0tTdHJpbmdRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLVVJM
UXQuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW0uY3BwIFwKKyAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlldy5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
X3AuaAppbmRleCA1ZWFiNzVhLi42ZjE3YzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKQEAgLTMxLDYgKzMxLDcgQEAgY2xhc3Mg
UVF1aWNrV2ViVmlld1ByaXZhdGU7CiBjbGFzcyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOwog
Y2xhc3MgUVdlYkRvd25sb2FkSXRlbTsKIGNsYXNzIFFXZWJQcmVmZXJlbmNlczsKK2NsYXNzIFFX
ZWJQZXJtaXNzaW9uUmVxdWVzdDsKIAogbmFtZXNwYWNlIFdUUiB7CiBjbGFzcyBQbGF0Zm9ybVdl
YlZpZXc7CkBAIC0xODEsNiArMTgyLDcgQEAgUV9TSUdOQUxTOgogICAgIHZvaWQgYWxlcnREaWFs
b2dDaGFuZ2VkKCk7CiAgICAgdm9pZCBjb25maXJtRGlhbG9nQ2hhbmdlZCgpOwogICAgIHZvaWQg
cHJvbXB0RGlhbG9nQ2hhbmdlZCgpOworICAgIHZvaWQgcGVybWlzc2lvblJlcXVlc3RlZChRV2Vi
UGVybWlzc2lvblJlcXVlc3QqIHBlcm1pc3Npb24pOwogCiBwcml2YXRlOgogICAgIFFRdWlja1dl
YlZpZXcqIHFfcHRyOwpAQCAtMTg4LDYgKzE5MCw4IEBAIHByaXZhdGU6CiAKICAgICBRX0RFQ0xB
UkVfUFJJVkFURShRUXVpY2tXZWJWaWV3KQogICAgIFFfREVDTEFSRV9QVUJMSUMoUVF1aWNrV2Vi
VmlldykKKworICAgIGZyaWVuZCBjbGFzcyBRdFdlYlBhZ2VQcm94eTsKIH07CiAKICNlbmRpZiAv
LyBxcXVpY2t3ZWJ2aWV3X3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjVlNTc2NTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKQEAgLTAsMCArMSwx
MDcgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1
ZGUgInF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgiCisKKyNpbmNsdWRlICJXS1N0cmluZ1F0Lmgi
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWlu
UHRyLmg+CisKKworY2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSA6IHB1YmxpYyBR
U2hhcmVkRGF0YSB7CitwdWJsaWM6CisKKyAgICBRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRl
KFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4sIFdLR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCkKKyAgICAgICAgOiBvcmlnaW4oc2VjdXJp
dHlPcmlnaW4pCisgICAgICAgICwgdHlwZShRV2ViUGVybWlzc2lvblJlcXVlc3Q6Okdlb2xvY2F0
aW9uKQorICAgICAgICAsIHJlcXVlc3QocGVybWlzc2lvblJlcXVlc3QpCisgICAgICAgICwgYWxs
b3coZmFsc2UpCisgICAgeworICAgIH0KKyAgICB+UVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZSgpCisgICAgeworICAgIH0KKworICAgIFdLUmV0YWluUHRyPFdLU2VjdXJpdHlPcmlnaW5SZWY+
IG9yaWdpbjsKKyAgICBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OlR5cGUgdHlwZTsKKyAgICBXS1Jl
dGFpblB0cjxXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWY+IHJlcXVlc3Q7CisgICAg
Ym9vbCBhbGxvdzsKK307CisKK1FXZWJQZXJtaXNzaW9uUmVxdWVzdCogUVdlYlBlcm1pc3Npb25S
ZXF1ZXN0OjpjcmVhdGUoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0KQoreworICAgIHJldHVybiBuZXcgUVdlYlBlcm1p
c3Npb25SZXF1ZXN0KG9yaWdpbiwgcmVxdWVzdCk7Cit9CisKK1FXZWJQZXJtaXNzaW9uUmVxdWVz
dDo6UVdlYlBlcm1pc3Npb25SZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmln
aW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXS0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIFFPYmplY3QqIHBh
cmVudCkKKyAgICA6IFFPYmplY3QocGFyZW50KQorICAgICwgZChuZXcgUVdlYlBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZShzZWN1cml0eU9yaWdpbiwgcGVybWlzc2lvblJlcXVlc3QpKQoreworfQor
CitRV2ViUGVybWlzc2lvblJlcXVlc3Q6On5RV2ViUGVybWlzc2lvblJlcXVlc3QoKQoreworfQor
CitxaW50MzIgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojp0eXBlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8cWludDMyPihkLT50eXBlKTsKK30KKwordm9pZCBRV2ViUGVybWlzc2lv
blJlcXVlc3Q6OnNldEFsbG93KGJvb2wgYWNjZXB0ZWQpCit7CisgICAgZC0+YWxsb3cgPSBhY2Nl
cHRlZDsKKyAgICBzd2l0Y2ggKHR5cGUoKSkgeworICAgIGNhc2UgR2VvbG9jYXRpb246IHsKKyAg
ICAgICAgaWYgKGFjY2VwdGVkKQorICAgICAgICAgICAgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0QWxsb3coZC0+cmVxdWVzdC5nZXQoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdERlbnkoZC0+cmVxdWVzdC5nZXQoKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9Cit9CisKK2Jvb2wgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjphbGxvdygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPmFsbG93OworfQorCitRU3RyaW5nIFFXZWJQZXJtaXNz
aW9uUmVxdWVzdDo6c2NoZW1lKCkgY29uc3QKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gdXJsID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weVByb3RvY29sKGQtPm9yaWdpbi5n
ZXQoKSkpOworICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKHVybC5nZXQoKSk7Cit9CisK
K1FTdHJpbmcgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpob3N0KCkgY29uc3QKK3sKKyAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gb3JpZ2luID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29w
eUhvc3QoZC0+b3JpZ2luLmdldCgpKSk7CisgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmco
b3JpZ2luLmdldCgpKTsKKworfQorCitpbnQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpwb3J0KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihXS1NlY3VyaXR5T3JpZ2luR2V0
UG9ydChkLT5vcmlnaW4uZ2V0KCkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYmNhODVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oCkBAIC0w
LDAgKzEsNjYgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAg
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgcXdlYnBlcm1pc3Npb25y
ZXF1ZXN0X3BfaAorI2RlZmluZSBxd2VicGVybWlzc2lvbnJlcXVlc3RfcF9oCisKKyNpbmNsdWRl
ICJxd2Via2l0Z2xvYmFsLmgiCisKKyNpbmNsdWRlIDxRdENvcmUvUU9iamVjdD4KKyNpbmNsdWRl
IDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tTZWN1cml0eU9yaWdpbi5o
PgorCitjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOworCitjbGFzcyBRV0VCS0lU
X0VYUE9SVCBRV2ViUGVybWlzc2lvblJlcXVlc3QgOiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9P
QkpFQ1QKKyAgICBRX1BST1BFUlRZKGJvb2wgYWxsb3cgUkVBRCBhbGxvdyBXUklURSBzZXRBbGxv
dykKKyAgICBRX1BST1BFUlRZKHFpbnQzMiB0eXBlIFJFQUQgdHlwZSkKKyAgICBRX1BST1BFUlRZ
KFFTdHJpbmcgc2NoZW1lIFJFQUQgc2NoZW1lKQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBob3N0
IFJFQUQgaG9zdCkKKyAgICBRX1BST1BFUlRZKGludCBwb3J0IFJFQUQgcG9ydCkKKworcHVibGlj
OgorICAgIGVudW0gVHlwZSB7CisgICAgICAgIEdlb2xvY2F0aW9uCisgICAgfTsKKworICAgIHN0
YXRpYyBRV2ViUGVybWlzc2lvblJlcXVlc3QqIGNyZWF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmLCBX
S0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYpOworICAgIHZpcnR1YWwgflFXZWJQZXJt
aXNzaW9uUmVxdWVzdCgpOworCisgICAgcWludDMyIHR5cGUoKSBjb25zdDsKKyAgICBib29sIGFs
bG93KCkgY29uc3Q7CisgICAgUVN0cmluZyBzY2hlbWUoKSBjb25zdDsKKyAgICBRU3RyaW5nIGhv
c3QoKSBjb25zdDsKKyAgICBpbnQgcG9ydCgpIGNvbnN0OworCitwdWJsaWMgUV9TTE9UUzoKKyAg
ICB2b2lkIHNldEFsbG93KGJvb2wpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBRV2Vi
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlOworICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVzdChXS1Nl
Y3VyaXR5T3JpZ2luUmVmIHNlY3VyaXR5T3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIFFPYmplY3QqIHBhcmVudCA9IDApOworCitwcml2
YXRlOgorICAgIFFFeHBsaWNpdGx5U2hhcmVkRGF0YVBvaW50ZXI8UVdlYlBlcm1pc3Npb25SZXF1
ZXN0UHJpdmF0ZT4gZDsKK307CisKKworI2VuZGlmIC8vIHF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAKaW5kZXggMTA0ZDM0
Mi4uNWVjMmUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0NsaWVu
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNw
cApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIlF0V2ViRXJyb3IuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZVByb3h5LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV0tHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV0tTdHJpbmdRdC5oIgogI2lu
Y2x1ZGUgIldLVVJMUXQuaCIKICNpbmNsdWRlIDxRdFBvbGljeUludGVyZmFjZS5oPgpAQCAtMzcs
NiArMzgsNyBAQAogI2luY2x1ZGUgPFdLU3RyaW5nLmg+CiAjaW5jbHVkZSA8V0tUeXBlLmg+CiAj
aW5jbHVkZSA8V0tVUkxSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8cXdlYnBlcm1pc3Npb25yZXF1ZXN0
X3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIApAQCAtMjA3LDYgKzIwOSwxMiBAQCBz
dGF0aWMgdm9pZCBxdF93a19tb3VzZURpZE1vdmVPdmVyRWxlbWVudChXS1BhZ2VSZWYgcGFnZSwg
V0tIaXRUZXN0UmVzdWx0UmVmIGhpdAogICAgIHRvUXRXZWJQYWdlUHJveHkoY2xpZW50SW5mbykt
PmRpZE1vdXNlTW92ZU92ZXJFbGVtZW50KGFic29sdXRlTGlua1VybCwgbGlua1RpdGxlKTsKIH0K
IAorc3RhdGljIHZvaWQgcXRfd2tfZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdChXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdp
blJlZiBvcmlnaW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0LCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVzdCogcmVx
ID0gUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUob3JpZ2luLCByZXF1ZXN0KTsKKyAgICB0
b1F0V2ViUGFnZVByb3h5KGNsaWVudEluZm8pLT5wZXJtaXNzaW9uUmVxdWVzdGVkKHJlcSk7Cit9
CisKIHN0YXRpYyBRdDo6TW91c2VCdXR0b24gdG9RdE1vdXNlQnV0dG9uKFdLRXZlbnRNb3VzZUJ1
dHRvbiBidXR0b24pCiB7CiAgICAgc3dpdGNoIChidXR0b24pIHsKQEAgLTMzMyw2ICszNDEsNyBA
QCB2b2lkIHNldHVwUGFnZVVpQ2xpZW50KFF0V2ViUGFnZVByb3h5KiBxdFdlYlBhZ2VQcm94eSwg
V2ViUGFnZVByb3h5KiB3ZWJQYWdlUHJveAogICAgIHVpQ2xpZW50LnNldFN0YXR1c1RleHQgPSBx
dF93a19zZXRTdGF0dXNUZXh0OwogICAgIHVpQ2xpZW50LnJ1bk9wZW5QYW5lbCA9IHF0X3drX3J1
bk9wZW5QYW5lbDsKICAgICB1aUNsaWVudC5tb3VzZURpZE1vdmVPdmVyRWxlbWVudCA9IHF0X3dr
X21vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIHVpQ2xpZW50LmRlY2lkZVBvbGljeUZvckdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QgPSBxdF93a19kZWNpZGVQb2xpY3lGb3JHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh0b0FQSSh3
ZWJQYWdlUHJveHkpLCAmdWlDbGllbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcAppbmRleCA1MzdiNWE2Li5iOWMxMGQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJRdFdlYkVycm9yLmgiCiAjaW5jbHVkZSAicXdlYmRvd25sb2Fk
aXRlbV9wLmgiCiAjaW5jbHVkZSAicXdlYmRvd25sb2FkaXRlbV9wX3AuaCIKKyNpbmNsdWRlICJx
d2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIgogI2luY2x1ZGUgInF3ZWJwcmVmZXJlbmNlc19wLmgi
CiAjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3BfcC5oIgogCkBAIC05MjEsNiArOTIyLDE1IEBA
IHZvaWQgUXRXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVEb3dubG9hZFJlc3BvbnNlKFFXZWJEb3du
bG9hZEl0ZW0qIGRvd25sb2FkSXRlbSkKICAgICBlbWl0IG1fcW1sV2ViVmlldy0+ZG93bmxvYWRS
ZXF1ZXN0ZWQoZG93bmxvYWRJdGVtKTsKIH0KIAordm9pZCBRdFdlYlBhZ2VQcm94eTo6cGVybWlz
c2lvblJlcXVlc3RlZChRV2ViUGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgaWYg
KCFyZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICByZXF1ZXN0LT5zZXRQYXJlbnQodGhp
cyk7CisgICAgZW1pdCBtX3FtbFdlYlZpZXctPmV4cGVyaW1lbnRhbCgpLT5wZXJtaXNzaW9uUmVx
dWVzdGVkKHJlcXVlc3QpOworfQorCiBQYXNzT3duUHRyPERyYXdpbmdBcmVhUHJveHk+IFF0V2Vi
UGFnZVByb3h5OjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKIHsKICAgICByZXR1cm4gRHJhd2lu
Z0FyZWFQcm94eUltcGw6OmNyZWF0ZShtX3dlYlBhZ2VQcm94eS5nZXQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oCmluZGV4IDY3Y2QwNTUuLmVjZDhk
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oCkBA
IC01MCw2ICs1MCw3IEBAIGNsYXNzIFFXZWJQcmVmZXJlbmNlczsKIGNsYXNzIFFXS0hpc3Rvcnk7
CiBjbGFzcyBRUXVpY2tXZWJQYWdlOwogY2xhc3MgUVF1aWNrV2ViVmlldzsKK2NsYXNzIFFXZWJQ
ZXJtaXNzaW9uUmVxdWVzdDsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIApAQCAtMjIzLDYg
KzIyNCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkTW91c2VNb3ZlT3ZlckVsZW1lbnQoY29u
c3QgUVVybCYsIGNvbnN0IFFTdHJpbmcmKTsKIAorICAgIHZvaWQgcGVybWlzc2lvblJlcXVlc3Rl
ZChRV2ViUGVybWlzc2lvblJlcXVlc3QqKTsKKwogcHVibGljIFFfU0xPVFM6CiAgICAgdm9pZCBu
YXZpZ2F0aW9uU3RhdGVDaGFuZ2VkKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlRG93bmxvYWRSZXNw
b25zZShRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0pOwpAQCAtMjg3LDYgKzI5MCw3IEBA
IHByaXZhdGU6CiAgICAgUVNoYXJlZFBvaW50ZXI8UU1lbnU+IGFjdGl2ZU1lbnU7CiAgICAgUVVy
bCBsYXN0SG92ZXJlZFVSTDsKICAgICBRU3RyaW5nIGxhc3RIb3ZlcmVkVGl0bGU7CisKIH07CiAK
ICNlbmRpZiAvKiBRdFdlYlBhZ2VQcm94eV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvcXR3ZWJr
aXQtZXhwb3J0Lm1hcCBiL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCmluZGV4IGE0MjYyMDMu
LmE1NDZjYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCisrKyBiL1Nv
dXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCkBAIC0xMjcsNiArMTI3LDEwIEBAIHF3a18xLjAgewog
ICAgICAgICAqUVF1aWNrV2ViUGFnZTsKICAgICAgICAgbm9uLXZpcnR1YWw/dGh1bms/dG8/UVF1
aWNrV2ViUGFnZSo7CiAgICAgICAgIFFRdWlja1dlYlBhZ2U6Oio7CisgICAgICAgICpRV2ViUGVy
bWlzc2lvblJlcXVlc3Q7CisgICAgICAgIG5vbi12aXJ0dWFsP3RodW5rP3RvP1FXZWJQZXJtaXNz
aW9uUmVxdWVzdCo7CisgICAgICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6KjsKKwogCiAgICAg
ICAgICMgV2ViS2l0IDIgQyBBUEkgbWFuZ2xlZCBpbiBDKysKICAgICAgICAgV0tTdHJpbmdDb3B5
UVN0cmluZyo7Ci0tIAoxLjcuNC4xCgo=
</data>
<flag name="review"
          id="115270"
          type_id="1"
          status="-"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="115271"
          type_id="3"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116525</attachid>
            <date>2011-11-24 11:55:03 -0800</date>
            <delta_ts>2011-11-28 06:31:07 -0800</delta_ts>
            <desc>Rebased with master, QENUM, etc.</desc>
            <filename>geoperm13.patch</filename>
            <type>text/plain</type>
            <size>17477</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSAzOGM4ODQ3MGNiYzI1YWI3YWY4ZGUwMTc3MDUxYzk1MDlmOTBiNGM2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IFRodSwgMjQgTm92IDIwMTEgMTQ6NDg6MTQgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBSZWJhc2UuCgpTaWduZWQtb2ZmLWJ5OiBBZGVuaWxzb24gQ2F2YWxjYW50
aSA8YWRlbmlsc29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+Ci0tLQogQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKwogU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKwogU291cmNl
L1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwICAgICAgICAgICAgfCAgICAyICsKIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzMiAr
KysrKysKIFNvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdf
cC5oICB8ICAgIDMgKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0
LmNwcCAgICAgfCAgMTA5ICsrKysrKysrKysrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9x
dC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oICAgICB8ICAgNjcgKysrKysrKysrKysrCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuY3BwICB8ICAgMTggKysr
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuaCAgICB8ICAg
IDYgKwogU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgICA0ICsKIDExIGZpbGVzIGNoYW5nZWQsIDI3MCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9u
cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaAoKZGlmZiAtLWdp
dCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAxM2U1ZGU5Li43ODFkOGY0IDEwMDY0NAot
LS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEt
MjQgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8YWRlbmlsc29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgW1F0XVtXSzJdIEltcGxlbWVudCBwZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAK
KworICAgICAgICBQZXJtaXNzaW9uIEFQSSBob29rdXAgZm9yIEdlb2xvY2F0aW9uLCBpdCBhbGxv
d3MgaW4gV2ViVmlldyB0byByZWNlaXZlCisgICAgICAgIGEgc2lnbmFsIHdoZW4gYSBwZXJtaXNz
aW9uIHJlcXVlc3QgaXMgZG9uZSAoZS5nLiB0byBncmFudCBwZXJtaXNzaW9uCisgICAgICAgIGZv
ciBhY2Nlc3NpbmcgZ2VvbG9jYXRpb24gaW5mb3JtYXRpb24pIGFuZCBzZXQgaXQgYWNjb3JkaW5n
bHkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
b3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcDoKKwogMjAxMS0xMS0yMyAgVG9yIEFybmUgVmVzdGLD
uCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBSZS1nZW5lcmF0
ZSBRdFdlYktpdCBBUEkgZm9yd2FyZGluZyBoZWFkZXJzIHdoZW4gQVBJIGNoYW5nZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKaW5kZXggNTg1ZGNkNi4uYTQ2YTRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxMS0xMS0yNCAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxhZGVuaWxzb24uc2lsdmFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbUXRdW1dLMl0gSW1wbGVtZW50IHBlcm1pc3Npb24g
QVBJIGZvciBRdCBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01OTIwMAorCisgICAgICAgIFBlcm1pc3Npb24gQVBJIGhvb2t1cCBmb3IgR2VvbG9j
YXRpb24sIGl0IGFsbG93cyBpbiBXZWJWaWV3IHRvIHJlY2VpdmUKKyAgICAgICAgYSBzaWduYWwg
d2hlbiBhIHBlcm1pc3Npb24gcmVxdWVzdCBpcyBkb25lIChlLmcuIHRvIGdyYW50IHBlcm1pc3Np
b24KKyAgICAgICAgZm9yIGFjY2Vzc2luZyBnZW9sb2NhdGlvbiBpbmZvcm1hdGlvbikgYW5kIHNl
dCBpdCBhY2NvcmRpbmdseS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGRlY2xhcmF0aXZlL3BsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXRRbWxQ
bHVnaW46OnJlZ2lzdGVyVHlwZXMpOgorCiAyMDExLTExLTIyICBQYXZlbCBGZWxkbWFuICA8cGZl
bGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZW1vdmUgSW5zcGVj
dG9yOjpicmluZ1RvRnJvbnQgZnJvbSB0aGUgcHJvdG9jb2wuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xh
cmF0aXZlL3BsdWdpbi5jcHAKaW5kZXggOTE2MzRlZS4uMjUwZjM1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
cXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgInFx
dWlja3dlYnBhZ2VfcC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgogI2luY2x1ZGUg
InF3ZWJkb3dubG9hZGl0ZW1fcC5oIgorI2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9w
LmgiCiAjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3AuaCIKIAogI2luY2x1ZGUgPFF0TmV0d29y
ay9xbmV0d29ya3JlcGx5Lmg+CkBAIC01Myw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgcW1s
UmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVF1aWNrV2ViUGFnZT4odXJpLCAzLCAwLCAiV2ViUGFn
ZSIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFdlYlBh
Z2UsIHVzZSBXZWJWaWV3IikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxR
TmV0d29ya1JlcGx5Pih1cmksIDMsIDAsICJOZXR3b3JrUmVwbHkiLCBRT2JqZWN0Ojp0cigiQ2Fu
bm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOZXR3b3JrUmVwbHkiKSk7CiAgICAgICAg
IHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJEb3dubG9hZEl0ZW0+KHVyaSwgNSwgMCwg
IkRvd25sb2FkSXRlbSIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3Rh
bmNlIG9mIERvd25sb2FkSXRlbSIpKTsKKyAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5
cGU8UVdlYlBlcm1pc3Npb25SZXF1ZXN0Pih1cmksIDUsIDAsICJQZXJtaXNzaW9uUmVxdWVzdCIs
IFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFBlcm1pc3Np
b25SZXF1ZXN0IikpOwogI2VuZGlmCiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5OTc1ODE2Li41
NTVlNjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMTEtMjQgIEFkZW5pbHNv
biBDYXZhbGNhbnRpICA8YWRlbmlsc29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAg
W1F0XVtXSzJdIEltcGxlbWVudCBwZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAgICBQ
ZXJtaXNzaW9uIEFQSSBob29rdXAgZm9yIEdlb2xvY2F0aW9uLCBpdCBhbGxvd3MgaW4gV2ViVmll
dyB0byByZWNlaXZlCisgICAgICAgIGEgc2lnbmFsIHdoZW4gYSBwZXJtaXNzaW9uIHJlcXVlc3Qg
aXMgZG9uZSAoZS5nLiB0byBncmFudCBwZXJtaXNzaW9uCisgICAgICAgIGZvciBhY2Nlc3Npbmcg
Z2VvbG9jYXRpb24gaW5mb3JtYXRpb24pIGFuZCBzZXQgaXQgYWNjb3JkaW5nbHkuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU6OlFXZWJQZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGUpOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTo6flFXZWJQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUpOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpj
cmVhdGUpOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpRV2ViUGVybWlzc2lvblJl
cXVlc3QpOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojp+UVdlYlBlcm1pc3Npb25S
ZXF1ZXN0KToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6dHlwZSk6CisgICAgICAg
IChRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNldEFsbG93KToKKyAgICAgICAgKFFXZWJQZXJtaXNz
aW9uUmVxdWVzdDo6YWxsb3cpOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzY2hl
bWUpOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpob3N0KToKKyAgICAgICAgKFFX
ZWJQZXJtaXNzaW9uUmVxdWVzdDo6cG9ydCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9x
d2VicGVybWlzc2lvbnJlcXVlc3RfcC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvcXQv
UXRXZWJQYWdlVUlDbGllbnQuY3BwOgorICAgICAgICAoUXRXZWJQYWdlVUlDbGllbnQ6OlF0V2Vi
UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKFF0V2ViUGFnZVVJQ2xpZW50OjpwZXJtaXNzaW9uUmVx
dWVzdCk6CisgICAgICAgIChRdFdlYlBhZ2VVSUNsaWVudDo6cG9saWN5Rm9yR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xp
ZW50Lmg6CisKIDIwMTEtMTEtMjQgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgW1F0XVdLMl1bTWFjXSBVc2UgTWFjIHBvcnQncyBJUEMgaW1wbGVtZW50YXRpb24g
aW5zdGVhZCBvZiBVbml4IHNvY2tldHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IDA0MTQ4ODguLjZmNmMzNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktp
dDIvVGFyZ2V0LnByaQpAQCAtMjQ4LDYgKzI0OCw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJv
Y2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0
L3F3ZWJkb3dubG9hZGl0ZW1fcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9h
ZGl0ZW1fcF9wLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0
X3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3AuaCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXdfcC5oIFwKQEAgLTU0OSw2ICs1NTAsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1N0cmluZ1F0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9jcHAvcXQvV0tVUkxRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2Fk
aXRlbS5jcHAgXAorICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNw
cCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcCBcCiAgICAgVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cHJlZmVyZW5jZXMuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IDMyOTFkZmYuLjhiYWQ0NDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtMzEsNiAr
MzEsNyBAQCBjbGFzcyBRUXVpY2tXZWJWaWV3UHJpdmF0ZTsKIGNsYXNzIFFRdWlja1dlYlZpZXdF
eHBlcmltZW50YWw7CiBjbGFzcyBRV2ViRG93bmxvYWRJdGVtOwogY2xhc3MgUVdlYlByZWZlcmVu
Y2VzOworY2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OwogCiBuYW1lc3BhY2UgV1RSIHsKIGNs
YXNzIFBsYXRmb3JtV2ViVmlldzsKQEAgLTE4OCwxMiArMTg5LDE0IEBAIFFfU0lHTkFMUzoKICAg
ICB2b2lkIGNvbmZpcm1EaWFsb2dDaGFuZ2VkKCk7CiAgICAgdm9pZCBwcm9tcHREaWFsb2dDaGFu
Z2VkKCk7CiAgICAgdm9pZCBkb3dubG9hZFJlcXVlc3RlZChRV2ViRG93bmxvYWRJdGVtKiBkb3du
bG9hZEl0ZW0pOworICAgIHZvaWQgcGVybWlzc2lvblJlcXVlc3RlZChRV2ViUGVybWlzc2lvblJl
cXVlc3QqIHBlcm1pc3Npb24pOwogCiBwcml2YXRlOgogICAgIFFRdWlja1dlYlZpZXcqIHFfcHRy
OwogICAgIFFRdWlja1dlYlZpZXdQcml2YXRlKiBkX3B0cjsKIAogICAgIGZyaWVuZCBjbGFzcyBR
dFdlYlBhZ2VQcm94eTsKKyAgICBmcmllbmQgY2xhc3MgUXRXZWJQYWdlVUlDbGllbnQ7CiAKICAg
ICBRX0RFQ0xBUkVfUFJJVkFURShRUXVpY2tXZWJWaWV3KQogICAgIFFfREVDTEFSRV9QVUJMSUMo
UVF1aWNrV2ViVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wNDdiMWRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsMTA5IEBA
CisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJx
d2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIgorCisjaW5jbHVkZSAiV0tTdHJpbmdRdC5oIgorI2lu
Y2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5o
PgorCisKK2NsYXNzIFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgOiBwdWJsaWMgUVNoYXJl
ZERhdGEgeworcHVibGljOgorCisgICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZShXS1Nl
Y3VyaXR5T3JpZ2luUmVmIHNlY3VyaXR5T3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QpCisgICAgICAgIDogb3JpZ2luKHNlY3VyaXR5T3Jp
Z2luKQorICAgICAgICAsIHR5cGUoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpHZW9sb2NhdGlvbikK
KyAgICAgICAgLCByZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICAsIGFsbG93KGZh
bHNlKQorICAgIHsKKyAgICB9CisgICAgflFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUoKQor
ICAgIHsKKyAgICB9CisKKyAgICBXS1JldGFpblB0cjxXS1NlY3VyaXR5T3JpZ2luUmVmPiBvcmln
aW47CisgICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpSZXF1ZXN0VHlwZSB0eXBlOworICAgIFdL
UmV0YWluUHRyPFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZj4gcmVxdWVzdDsKKyAg
ICBib29sIGFsbG93OworfTsKKworUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiBRV2ViUGVybWlzc2lv
blJlcXVlc3Q6OmNyZWF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIG5ldyBRV2ViUGVy
bWlzc2lvblJlcXVlc3Qob3JpZ2luLCByZXF1ZXN0KTsKK30KKworUVdlYlBlcm1pc3Npb25SZXF1
ZXN0OjpRV2ViUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1cml0eU9yaWdpblJlZiBzZWN1cml0eU9y
aWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdLR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgUU9iamVjdCog
cGFyZW50KQorICAgIDogUU9iamVjdChwYXJlbnQpCisgICAgLCBkKG5ldyBRV2ViUGVybWlzc2lv
blJlcXVlc3RQcml2YXRlKHNlY3VyaXR5T3JpZ2luLCBwZXJtaXNzaW9uUmVxdWVzdCkpCit7Cit9
CisKK1FXZWJQZXJtaXNzaW9uUmVxdWVzdDo6flFXZWJQZXJtaXNzaW9uUmVxdWVzdCgpCit7Cit9
CisKK1FXZWJQZXJtaXNzaW9uUmVxdWVzdDo6UmVxdWVzdFR5cGUgUVdlYlBlcm1pc3Npb25SZXF1
ZXN0Ojp0eXBlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+dHlwZTsKK30KKwordm9pZCBRV2Vi
UGVybWlzc2lvblJlcXVlc3Q6OnNldEFsbG93KGJvb2wgYWNjZXB0ZWQpCit7CisgICAgZC0+YWxs
b3cgPSBhY2NlcHRlZDsKKyAgICBzd2l0Y2ggKHR5cGUoKSkgeworICAgIGNhc2UgR2VvbG9jYXRp
b246IHsKKyAgICAgICAgaWYgKGFjY2VwdGVkKQorICAgICAgICAgICAgV0tHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0QWxsb3coZC0+cmVxdWVzdC5nZXQoKSk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdERlbnkoZC0+cmVxdWVzdC5n
ZXQoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBkZWxldGVMYXRlcigpOworfQorCitib29s
IFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6YWxsb3coKSBjb25zdAoreworICAgIHJldHVybiBkLT5h
bGxvdzsKK30KKworUVN0cmluZyBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNjaGVtZSgpIGNvbnN0
Cit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybCA9IGFkb3B0V0soV0tTZWN1cml0
eU9yaWdpbkNvcHlQcm90b2NvbChkLT5vcmlnaW4uZ2V0KCkpKTsKKyAgICByZXR1cm4gV0tTdHJp
bmdDb3B5UVN0cmluZyh1cmwuZ2V0KCkpOworfQorCitRU3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVx
dWVzdDo6aG9zdCgpIGNvbnN0Cit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG9yaWdp
biA9IGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KGQtPm9yaWdpbi5nZXQoKSkpOwor
ICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKG9yaWdpbi5nZXQoKSk7CisKK30KKworaW50
IFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6cG9ydCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGludD4oV0tTZWN1cml0eU9yaWdpbkdldFBvcnQoZC0+b3JpZ2luLmdldCgpKSk7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNz
aW9ucmVxdWVzdF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJt
aXNzaW9ucmVxdWVzdF9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTgy
NGM0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaApAQCAtMCwwICsxLDY3IEBACisvKgorICAgIENvcHly
aWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisqLworCisjaWZuZGVmIHF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wX2gKKyNkZWZpbmUgcXdlYnBl
cm1pc3Npb25yZXF1ZXN0X3BfaAorCisjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgorCisjaW5j
bHVkZSA8UXRDb3JlL1FPYmplY3Q+CisjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRkYXRhLmg+Cisj
aW5jbHVkZSA8V2ViS2l0Mi9XS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaD4KKyNpbmNs
dWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4uaD4KKworY2xhc3MgUVdlYlBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZTsKKworY2xhc3MgUVdFQktJVF9FWFBPUlQgUVdlYlBlcm1pc3Npb25SZXF1
ZXN0IDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCisgICAgUV9QUk9QRVJUWShib29s
IGFsbG93IFJFQUQgYWxsb3cgV1JJVEUgc2V0QWxsb3cpCisgICAgUV9QUk9QRVJUWShSZXF1ZXN0
VHlwZSB0eXBlIFJFQUQgdHlwZSkKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgc2NoZW1lIFJFQUQg
c2NoZW1lKQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBob3N0IFJFQUQgaG9zdCkKKyAgICBRX1BS
T1BFUlRZKGludCBwb3J0IFJFQUQgcG9ydCkKKyAgICBRX0VOVU1TKFJlcXVlc3RUeXBlKQorCitw
dWJsaWM6CisgICAgZW51bSBSZXF1ZXN0VHlwZSB7CisgICAgICAgIEdlb2xvY2F0aW9uCisgICAg
fTsKKworICAgIHN0YXRpYyBRV2ViUGVybWlzc2lvblJlcXVlc3QqIGNyZWF0ZShXS1NlY3VyaXR5
T3JpZ2luUmVmLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYpOworICAgIHZpcnR1
YWwgflFXZWJQZXJtaXNzaW9uUmVxdWVzdCgpOworCisgICAgUmVxdWVzdFR5cGUgdHlwZSgpIGNv
bnN0OworICAgIGJvb2wgYWxsb3coKSBjb25zdDsKKyAgICBRU3RyaW5nIHNjaGVtZSgpIGNvbnN0
OworICAgIFFTdHJpbmcgaG9zdCgpIGNvbnN0OworICAgIGludCBwb3J0KCkgY29uc3Q7CisKK3B1
YmxpYyBRX1NMT1RTOgorICAgIHZvaWQgc2V0QWxsb3coYm9vbCk7CisKK3ByaXZhdGU6CisgICAg
ZnJpZW5kIGNsYXNzIFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CisgICAgUVdlYlBlcm1p
c3Npb25SZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4sIFdLR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgUU9iamVjdCogcGFy
ZW50ID0gMCk7CisKK3ByaXZhdGU6CisgICAgUUV4cGxpY2l0bHlTaGFyZWREYXRhUG9pbnRlcjxR
V2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlPiBkOworfTsKKworCisjZW5kaWYgLy8gcXdlYnBl
cm1pc3Npb25yZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdFdlYlBhZ2VVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRX
ZWJQYWdlVUlDbGllbnQuY3BwCmluZGV4IDc2ZDdlMGMuLmZlNGI0YTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmNwcApAQCAtMjUsNiAr
MjUsNyBAQAogI2luY2x1ZGUgIldLVVJMUXQuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3Au
aCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3BfcC5oIgorI2luY2x1ZGUgInF3ZWJwZXJtaXNz
aW9ucmVxdWVzdF9wLmgiCiAjaW5jbHVkZSA8V0tBUElDYXN0Lmg+CiAjaW5jbHVkZSA8V0tIaXRU
ZXN0UmVzdWx0Lmg+CiAjaW5jbHVkZSA8V0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmg+CkBAIC00Myw2
ICs0NCw3IEBAIFF0V2ViUGFnZVVJQ2xpZW50OjpRdFdlYlBhZ2VVSUNsaWVudChXS1BhZ2VSZWYg
cGFnZVJlZiwgUVF1aWNrV2ViVmlldyogd2ViVmlldykKICAgICB1aUNsaWVudC5zZXRTdGF0dXNU
ZXh0ID0gc2V0U3RhdHVzVGV4dDsKICAgICB1aUNsaWVudC5ydW5PcGVuUGFuZWwgPSBydW5PcGVu
UGFuZWw7CiAgICAgdWlDbGllbnQubW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQgPSBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudDsKKyAgICB1aUNsaWVudC5kZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0ID0gcG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsK
ICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQocGFnZVJlZiwgJnVpQ2xpZW50KTsKIH0KIApAQCAt
ODAsNiArODIsMTIgQEAgdm9pZCBRdFdlYlBhZ2VVSUNsaWVudDo6bW91c2VEaWRNb3ZlT3ZlckVs
ZW1lbnQoY29uc3QgUVVybCYgbGlua1VSTCwgY29uc3QgUVN0cmkKICAgICBlbWl0IG1fd2ViVmll
dy0+bGlua0hvdmVyZWQobV9sYXN0SG92ZXJlZFVSTCwgbV9sYXN0SG92ZXJlZFRpdGxlKTsKIH0K
IAordm9pZCBRdFdlYlBhZ2VVSUNsaWVudDo6cGVybWlzc2lvblJlcXVlc3QoUVdlYlBlcm1pc3Np
b25SZXF1ZXN0ICpyZXF1ZXN0KQoreworICAgIHJlcXVlc3QtPnNldFBhcmVudChtX3dlYlZpZXcp
OworICAgIGVtaXQgbV93ZWJWaWV3LT5leHBlcmltZW50YWwoKS0+cGVybWlzc2lvblJlcXVlc3Rl
ZChyZXF1ZXN0KTsKK30KKwogc3RhdGljIFF0V2ViUGFnZVVJQ2xpZW50KiB0b1F0V2ViUGFnZVVJ
Q2xpZW50KGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgQVNTRVJUKGNsaWVudEluZm8p
OwpAQCAtMTM5LDMgKzE0NywxMyBAQCB2b2lkIFF0V2ViUGFnZVVJQ2xpZW50Ojptb3VzZURpZE1v
dmVPdmVyRWxlbWVudChXS1BhZ2VSZWYgcGFnZSwgV0tIaXRUZXN0UmVzdWx0UgogICAgIGNvbnN0
IFFTdHJpbmcgbGlua1RpdGxlID0gV0tTdHJpbmdDb3B5UVN0cmluZyhhZG9wdFdLKFdLSGl0VGVz
dFJlc3VsdENvcHlMaW5rVGl0bGUoaGl0VGVzdFJlc3VsdCkpLmdldCgpKTsKICAgICB0b1F0V2Vi
UGFnZVVJQ2xpZW50KGNsaWVudEluZm8pLT5tb3VzZURpZE1vdmVPdmVyRWxlbWVudChhYnNvbHV0
ZUxpbmtVcmwsIGxpbmtUaXRsZSk7CiB9CisKK3ZvaWQgUXRXZWJQYWdlVUlDbGllbnQ6OnBvbGlj
eUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVS
ZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RSZWYgcmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBp
ZiAoIXJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVz
dCogcmVxID0gUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUob3JpZ2luLCByZXF1ZXN0KTsK
KyAgICB0b1F0V2ViUGFnZVVJQ2xpZW50KGNsaWVudEluZm8pLT5wZXJtaXNzaW9uUmVxdWVzdChy
ZXEpOworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQ
YWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VVSUNs
aWVudC5oCmluZGV4IDQ3NGE0ZTEuLjIxZDFhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5oCkBAIC0yMyw5ICsyMywxMyBAQAogCiAjaW5j
bHVkZSA8UXRDb3JlL1FTdHJpbmc+CiAjaW5jbHVkZSA8UXRDb3JlL1FVcmw+CisjaW5jbHVkZSA8
V0tGcmFtZS5oPgorI2luY2x1ZGUgPFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oPgog
I2luY2x1ZGUgPFdLUGFnZS5oPgorI2luY2x1ZGUgPFdLU2VjdXJpdHlPcmlnaW4uaD4KIAogY2xh
c3MgUVF1aWNrV2ViVmlldzsKK2NsYXNzIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDsKIAogY2xhc3Mg
UXRXZWJQYWdlVUlDbGllbnQgewogcHVibGljOgpAQCAtNDMsNiArNDcsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc2V0U3RhdHVzVGV4dChjb25zdCBRU3RyaW5nJik7CiAgICAgdm9pZCBydW5PcGVu
UGFuZWwoV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiwgY29uc3QgUVN0cmluZ0xpc3QmIHNl
bGVjdGVkRmlsZU5hbWVzLCBGaWxlQ2hvb3NlclR5cGUpOwogICAgIHZvaWQgbW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoY29uc3QgUVVybCYgbGlua1VSTCwgY29uc3QgUVN0cmluZyYgbGlua1RpdGxl
KTsKKyAgICB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0KFFXZWJQZXJtaXNzaW9uUmVxdWVzdCopOwog
CiAgICAgLy8gV0tQYWdlVUlDbGllbnQgY2FsbGJhY2tzLgogICAgIHN0YXRpYyB2b2lkIHJ1bkph
dmFTY3JpcHRBbGVydChXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJl
ZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CkBAIC01MSw2ICs1Niw3IEBAIHByaXZhdGU6CiAg
ICAgc3RhdGljIHZvaWQgc2V0U3RhdHVzVGV4dChXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBydW5PcGVuUGFuZWwoV0tQYWdl
UmVmLCBXS0ZyYW1lUmVmLCBXS09wZW5QYW5lbFBhcmFtZXRlcnNSZWYsIFdLT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXJSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lk
IG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdLUGFnZVJlZiwgV0tIaXRUZXN0UmVzdWx0UmVmLCBX
S0V2ZW50TW9kaWZpZXJzLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pOworICAgIHN0YXRpYyB2b2lkIHBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS0dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RSZWYsIGNvbnN0IHZvaWQqKTsKIAogICAgIFFRdWlja1dlYlZp
ZXcqIG1fd2ViVmlldzsKICAgICBRVXJsIG1fbGFzdEhvdmVyZWRVUkw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcCBiL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCmlu
ZGV4IGE0MjYyMDMuLmE1NDZjYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQu
bWFwCisrKyBiL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCkBAIC0xMjcsNiArMTI3LDEwIEBA
IHF3a18xLjAgewogICAgICAgICAqUVF1aWNrV2ViUGFnZTsKICAgICAgICAgbm9uLXZpcnR1YWw/
dGh1bms/dG8/UVF1aWNrV2ViUGFnZSo7CiAgICAgICAgIFFRdWlja1dlYlBhZ2U6Oio7CisgICAg
ICAgICpRV2ViUGVybWlzc2lvblJlcXVlc3Q7CisgICAgICAgIG5vbi12aXJ0dWFsP3RodW5rP3Rv
P1FXZWJQZXJtaXNzaW9uUmVxdWVzdCo7CisgICAgICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6
KjsKKwogCiAgICAgICAgICMgV2ViS2l0IDIgQyBBUEkgbWFuZ2xlZCBpbiBDKysKICAgICAgICAg
V0tTdHJpbmdDb3B5UVN0cmluZyo7Ci0tIAoxLjcuNC4xCgo=
</data>
<flag name="review"
          id="115721"
          type_id="1"
          status="+"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="115722"
          type_id="3"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116747</attachid>
            <date>2011-11-28 06:31:07 -0800</date>
            <delta_ts>2011-11-28 06:37:15 -0800</delta_ts>
            <desc>Coding style fixes, plus qml test</desc>
            <filename>geoperm14.patch</filename>
            <type>text/plain</type>
            <size>21617</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSA5Njk5ZjE2MjVhMGU2ODczOTFhMWFlMzkxZDRiNTBjYmQ1NDQ1YmQ0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IFRodSwgMjQgTm92IDIwMTEgMTQ6NDg6MTQgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBSZWJhc2UsIHFtbCB0ZXN0LCBjb2Rpbmcgc3R5bGUuCgpTaWduZWQtb2Zm
LWJ5OiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+
Ci0tLQogQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDEzICsrKwogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDExICsrCiBTb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAg
ICAgICAgICAgICB8ICAgIDIgKwogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDMyICsrKysrKwogU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggIHwgICAgMyArCiAuLi4vVUlQcm9jZXNzL0FQSS9x
dC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwICAgICB8ICAxMDYgKysrKysrKysrKysrKysrKysr
KysKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggICAgIHwg
ICA2NyArKysrKysrKysrKysKIC4uLi90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9nZW9wZXJt
aXNzaW9uLnFtbCAgIHwgICA1NCArKysrKysrKysrCiAuLi4vQVBJL3F0L3Rlc3RzL3FtbHRlc3Rz
L2NvbW1vbi9nZW9sb2NhdGlvbi5odG1sICB8ICAgMzIgKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8gICB8ICAgIDEgKwogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmNwcCAgfCAgIDE4ICsrKysKIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5oICAgIHwgICAgNiArCiBT
b3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQg
KwogMTQgZmlsZXMgY2hhbmdlZCwgMzUxIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBj
cmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVy
bWlzc2lvbnJlcXVlc3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3
L3RzdF9nZW9wZXJtaXNzaW9uLnFtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL2dlb2xvY2F0aW9uLmh0bWwK
CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggNmUzZDFiNi4uZDM4ZDVk
ZiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDExLTExLTI0ICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGFkZW5pbHNvbi5zaWx2YUBvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFtRdF1bV0syXSBJbXBsZW1lbnQgcGVybWlzc2lvbiBBUEkg
Zm9yIFF0IHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU5MjAwCisKKyAgICAgICAgUGVybWlzc2lvbiBBUEkgaG9va3VwIGZvciBHZW9sb2NhdGlv
biwgaXQgYWxsb3dzIHRvIHJlY2VpdmUgaW4gV2ViVmlldworICAgICAgICBhIHNpZ25hbCB3aGVu
IGEgcGVybWlzc2lvbiByZXF1ZXN0IGlzIGRvbmUgKGUuZy4gdG8gZ3JhbnQgcGVybWlzc2lvbgor
ICAgICAgICBmb3IgYWNjZXNzaW5nIGdlb2xvY2F0aW9uIGluZm9ybWF0aW9uKSBhbmQgc2V0IGl0
IGFjY29yZGluZ2x5LgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgorCisg
ICAgICAgICogU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXA6CisKIDIwMTEtMTEtMjggIFNpbW9u
IEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gV1RG
IHNob3VsZCBiZSBidWlsdCBhcyBzZXBhcmF0ZSBzdGF0aWMgbGlicmFyeQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpp
bmRleCA0NTgwYzlhLi42MDY3MDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDExLTExLTI0ICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGFkZW5pbHNvbi5zaWx2YUBvcGVuYm9z
c2Eub3JnPgorCisgICAgICAgIFtRdF1bV0syXSBJbXBsZW1lbnQgcGVybWlzc2lvbiBBUEkgZm9y
IFF0IHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU5MjAwCisKKyAgICAgICAgUGVybWlzc2lvbiBBUEkgaG9va3VwIGZvciBHZW9sb2NhdGlvbiwg
aXQgYWxsb3dzIHRvIHJlY2VpdmUgaW4gV2ViVmlldworICAgICAgICBhIHNpZ25hbCB3aGVuIGEg
cGVybWlzc2lvbiByZXF1ZXN0IGlzIGRvbmUgKGUuZy4gdG8gZ3JhbnQgcGVybWlzc2lvbgorICAg
ICAgICBmb3IgYWNjZXNzaW5nIGdlb2xvY2F0aW9uIGluZm9ybWF0aW9uKSBhbmQgc2V0IGl0IGFj
Y29yZGluZ2x5LgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgorCiAyMDEx
LTExLTI2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiByZW1vdmUgZGlzY29ubmVjdEZyb21CYWNrZW5kIGZyb20gdGhlIHByb3Rv
Y29sLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3Bw
IGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCmluZGV4IGRjOWNiN2Uu
LmUwOWE5OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKQEAgLTI1
LDYgKzI1LDcgQEAKICNpZiBkZWZpbmVkKEhBVkVfV0VCS0lUMikKICNpbmNsdWRlICJxcXVpY2t3
ZWJwYWdlX3AuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKKyNpbmNsdWRlICJxd2Vi
cGVybWlzc2lvbnJlcXVlc3RfcC5oIgogI2luY2x1ZGUgInF3ZWJwcmVmZXJlbmNlc19wLmgiCiAK
ICNpbmNsdWRlIDxRdE5ldHdvcmsvcW5ldHdvcmtyZXBseS5oPgpAQCAtNTEsNiArNTIsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJQcmVmZXJlbmNl
cz4odXJpLCAzLCAwLCAiV2ViUHJlZmVyZW5jZXMiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0
ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBXZWJQcmVmZXJlbmNlcyIpKTsKICAgICAgICAgcW1sUmVn
aXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVF1aWNrV2ViUGFnZT4odXJpLCAzLCAwLCAiV2ViUGFnZSIs
IFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFdlYlBhZ2Us
IHVzZSBXZWJWaWV3IikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRTmV0
d29ya1JlcGx5Pih1cmksIDMsIDAsICJOZXR3b3JrUmVwbHkiLCBRT2JqZWN0Ojp0cigiQ2Fubm90
IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOZXR3b3JrUmVwbHkiKSk7CisgICAgICAgIHFt
bFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJQZXJtaXNzaW9uUmVxdWVzdD4odXJpLCA1LCAw
LCAiUGVybWlzc2lvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0
ZSBpbnN0YW5jZSBvZiBQZXJtaXNzaW9uUmVxdWVzdCIpKTsKICNlbmRpZgogICAgIH0KIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggN2JiZjUxMi4uZDJkMWU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBA
CisyMDExLTExLTI0ICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGFkZW5pbHNvbi5zaWx2YUBvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFtRdF1bV0syXSBJbXBsZW1lbnQgcGVybWlzc2lvbiBBUEkg
Zm9yIFF0IHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU5MjAwCisKKyAgICAgICAgUGVybWlzc2lvbiBBUEkgaG9va3VwIGZvciBHZW9sb2NhdGlv
biwgaXQgYWxsb3dzIHRvIHJlY2VpdmUgaW4gV2ViVmlldworICAgICAgICBhIHNpZ25hbCB3aGVu
IGEgcGVybWlzc2lvbiByZXF1ZXN0IGlzIGRvbmUgKGUuZy4gdG8gZ3JhbnQgcGVybWlzc2lvbgor
ICAgICAgICBmb3IgYWNjZXNzaW5nIGdlb2xvY2F0aW9uIGluZm9ybWF0aW9uKSBhbmQgc2V0IGl0
IGFjY29yZGluZ2x5LgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgorCisg
ICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1
ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOjpR
V2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVx
dWVzdFByaXZhdGU6On5RV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKToKKyAgICAgICAgKFFX
ZWJQZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVx
dWVzdDo6UVdlYlBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVx
dWVzdDo6flFXZWJQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJl
cXVlc3Q6OnR5cGUpOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzZXRBbGxvdyk6
CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3Q6OmFsbG93KToKKyAgICAgICAgKFFXZWJQ
ZXJtaXNzaW9uUmVxdWVzdDo6c2NoZW1lKToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVz
dDo6aG9zdCk6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnBvcnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaDogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmNwcDoKKyAgICAgICAgKFF0
V2ViUGFnZVVJQ2xpZW50OjpRdFdlYlBhZ2VVSUNsaWVudCk6CisgICAgICAgIChRdFdlYlBhZ2VV
SUNsaWVudDo6cGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoUXRXZWJQYWdlVUlDbGllbnQ6
OnBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5oOgorCiAyMDExLTExLTI4ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBSZW5hbWUgV2Vi
S2l0TmV0d29ya1JlcXVlc3QgdG8gV2ViS2l0VVJJUmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggZjY1
NTQ1OS4uYTg0ZjJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0yNDksNiArMjQ5LDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmggXAogICAgIFVJ
UHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkv
cXQvcXdlYmRvd25sb2FkaXRlbV9wX3AuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVy
bWlzc2lvbnJlcXVlc3RfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2Vf
cC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcF9wLmggXAogICAgIFVJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggXApAQCAtNTUxLDYgKzU1Miw3IEBAIFNP
VVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3BwIFwKICAg
ICBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9x
dC9xd2ViZG93bmxvYWRpdGVtLmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlz
c2lvbnJlcXVlc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3Bw
IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIFwKICAgICBVSVByb2Nl
c3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKaW5kZXggYThkMGNmZC4uODJhYzdkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdf
cC5oCkBAIC0zMSw2ICszMSw3IEBAIGNsYXNzIFFRdWlja1dlYlZpZXdQcml2YXRlOwogY2xhc3Mg
UVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDsKIGNsYXNzIFFXZWJEb3dubG9hZEl0ZW07CiBjbGFz
cyBRV2ViUHJlZmVyZW5jZXM7CitjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3Q7CiAKIG5hbWVz
cGFjZSBXVFIgewogY2xhc3MgUGxhdGZvcm1XZWJWaWV3OwpAQCAtMTkxLDEyICsxOTIsMTQgQEAg
UV9TSUdOQUxTOgogICAgIHZvaWQgY29uZmlybURpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIHBy
b21wdERpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdGVkKFFXZWJEb3du
bG9hZEl0ZW0qIGRvd25sb2FkSXRlbSk7CisgICAgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdGVkKFFX
ZWJQZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvbik7CiAKIHByaXZhdGU6CiAgICAgUVF1aWNr
V2ViVmlldyogcV9wdHI7CiAgICAgUVF1aWNrV2ViVmlld1ByaXZhdGUqIGRfcHRyOwogCiAgICAg
ZnJpZW5kIGNsYXNzIFF0V2ViUGFnZVByb3h5OworICAgIGZyaWVuZCBjbGFzcyBRdFdlYlBhZ2VV
SUNsaWVudDsKIAogICAgIFFfREVDTEFSRV9QUklWQVRFKFFRdWlja1dlYlZpZXcpCiAgICAgUV9E
RUNMQVJFX1BVQkxJQyhRUXVpY2tXZWJWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2YTQzODUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKQEAg
LTAsMCArMSwxMDYgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisg
ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgiCisKKyNpbmNsdWRlICJXS1N0
cmluZ1F0LmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQy
L1dLUmV0YWluUHRyLmg+CisKKworY2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSA6
IHB1YmxpYyBRU2hhcmVkRGF0YSB7CitwdWJsaWM6CisgICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmIHNlY3VyaXR5T3JpZ2luLCBXS0dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QpCisgICAgICAgIDogb3JpZ2lu
KHNlY3VyaXR5T3JpZ2luKQorICAgICAgICAsIHR5cGUoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpH
ZW9sb2NhdGlvbikKKyAgICAgICAgLCByZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAg
ICAsIGFsbG93KGZhbHNlKQorICAgIHsKKyAgICB9CisgICAgflFXZWJQZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGUoKQorICAgIHsKKyAgICB9CisKKyAgICBXS1JldGFpblB0cjxXS1NlY3VyaXR5T3Jp
Z2luUmVmPiBvcmlnaW47CisgICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpSZXF1ZXN0VHlwZSB0
eXBlOworICAgIFdLUmV0YWluUHRyPFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZj4g
cmVxdWVzdDsKKyAgICBib29sIGFsbG93OworfTsKKworUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiBR
V2ViUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwg
V0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QpCit7CisgICAgcmV0dXJu
IG5ldyBRV2ViUGVybWlzc2lvblJlcXVlc3Qob3JpZ2luLCByZXF1ZXN0KTsKK30KKworUVdlYlBl
cm1pc3Npb25SZXF1ZXN0OjpRV2ViUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1cml0eU9yaWdpblJl
ZiBzZWN1cml0eU9yaWdpbiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1p
c3Npb25SZXF1ZXN0LCBRT2JqZWN0KiBwYXJlbnQpCisgICAgOiBRT2JqZWN0KHBhcmVudCkKKyAg
ICAsIGQobmV3IFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUoc2VjdXJpdHlPcmlnaW4sIHBl
cm1pc3Npb25SZXF1ZXN0KSkKK3sKK30KKworUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojp+UVdlYlBl
cm1pc3Npb25SZXF1ZXN0KCkKK3sKK30KKworUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpSZXF1ZXN0
VHlwZSBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBk
LT50eXBlOworfQorCit2b2lkIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2V0QWxsb3coYm9vbCBh
Y2NlcHRlZCkKK3sKKyAgICBkLT5hbGxvdyA9IGFjY2VwdGVkOworICAgIHN3aXRjaCAodHlwZSgp
KSB7CisgICAgY2FzZSBHZW9sb2NhdGlvbjogeworICAgICAgICBpZiAoYWNjZXB0ZWQpCisgICAg
ICAgICAgICBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyhkLT5yZXF1ZXN0Lmdl
dCgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0RGVueShkLT5yZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGRl
bGV0ZUxhdGVyKCk7Cit9CisKK2Jvb2wgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjphbGxvdygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGQtPmFsbG93OworfQorCitRU3RyaW5nIFFXZWJQZXJtaXNzaW9u
UmVxdWVzdDo6c2NoZW1lKCkgY29uc3QKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
dXJsID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weVByb3RvY29sKGQtPm9yaWdpbi5nZXQo
KSkpOworICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKHVybC5nZXQoKSk7Cit9CisKK1FT
dHJpbmcgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpob3N0KCkgY29uc3QKK3sKKyAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gb3JpZ2luID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weUhv
c3QoZC0+b3JpZ2luLmdldCgpKSk7CisgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcob3Jp
Z2luLmdldCgpKTsKK30KKworaW50IFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6cG9ydCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oV0tTZWN1cml0eU9yaWdpbkdldFBvcnQo
ZC0+b3JpZ2luLmdldCgpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNTgyNGM0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaApAQCAtMCwwICsx
LDY3IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAg
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIHF3ZWJwZXJtaXNzaW9ucmVxdWVz
dF9wX2gKKyNkZWZpbmUgcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3BfaAorCisjaW5jbHVkZSAicXdl
YmtpdGdsb2JhbC5oIgorCisjaW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+CisjaW5jbHVkZSA8UXRD
b3JlL3FzaGFyZWRkYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4uaD4KKwor
Y2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKKworY2xhc3MgUVdFQktJVF9FWFBP
UlQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNU
CisgICAgUV9QUk9QRVJUWShib29sIGFsbG93IFJFQUQgYWxsb3cgV1JJVEUgc2V0QWxsb3cpCisg
ICAgUV9QUk9QRVJUWShSZXF1ZXN0VHlwZSB0eXBlIFJFQUQgdHlwZSkKKyAgICBRX1BST1BFUlRZ
KFFTdHJpbmcgc2NoZW1lIFJFQUQgc2NoZW1lKQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBob3N0
IFJFQUQgaG9zdCkKKyAgICBRX1BST1BFUlRZKGludCBwb3J0IFJFQUQgcG9ydCkKKyAgICBRX0VO
VU1TKFJlcXVlc3RUeXBlKQorCitwdWJsaWM6CisgICAgZW51bSBSZXF1ZXN0VHlwZSB7CisgICAg
ICAgIEdlb2xvY2F0aW9uCisgICAgfTsKKworICAgIHN0YXRpYyBRV2ViUGVybWlzc2lvblJlcXVl
c3QqIGNyZWF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RSZWYpOworICAgIHZpcnR1YWwgflFXZWJQZXJtaXNzaW9uUmVxdWVzdCgpOworCisgICAg
UmVxdWVzdFR5cGUgdHlwZSgpIGNvbnN0OworICAgIGJvb2wgYWxsb3coKSBjb25zdDsKKyAgICBR
U3RyaW5nIHNjaGVtZSgpIGNvbnN0OworICAgIFFTdHJpbmcgaG9zdCgpIGNvbnN0OworICAgIGlu
dCBwb3J0KCkgY29uc3Q7CisKK3B1YmxpYyBRX1NMT1RTOgorICAgIHZvaWQgc2V0QWxsb3coYm9v
bCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFFXZWJQZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGU7CisgICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYgc2Vj
dXJpdHlPcmlnaW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9u
UmVxdWVzdCwgUU9iamVjdCogcGFyZW50ID0gMCk7CisKK3ByaXZhdGU6CisgICAgUUV4cGxpY2l0
bHlTaGFyZWREYXRhUG9pbnRlcjxRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlPiBkOworfTsK
KworCisjZW5kaWYgLy8gcXdlYnBlcm1pc3Npb25yZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZ2Vv
cGVybWlzc2lvbi5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL1dlYlZpZXcvdHN0X2dlb3Blcm1pc3Npb24ucW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjY5N2FiMDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2dlb3Blcm1pc3Np
b24ucW1sCkBAIC0wLDAgKzEsNTQgQEAKK2ltcG9ydCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0VGVz
dCAxLjAKK2ltcG9ydCBRdFdlYktpdCAzLjAKK2ltcG9ydCBRdFdlYktpdC5leHBlcmltZW50YWwg
My4wCisKK1dlYlZpZXcgeworICAgIGlkOiB3ZWJWaWV3CisgICAgd2lkdGg6IDIwMAorICAgIGhl
aWdodDogMjAwCisKKyAgICBwcm9wZXJ0eSBib29sIGV4cGVjdGVkUGVybWlzc2lvbjogZmFsc2UK
KworICAgIFNpZ25hbFNweSB7CisgICAgICAgIGlkOiBzcHkKKyAgICAgICAgdGFyZ2V0OiBleHBl
cmltZW50YWwKKyAgICAgICAgc2lnbmFsTmFtZTogInBlcm1pc3Npb25SZXF1ZXN0ZWQiCisgICAg
fQorCisgICAgZXhwZXJpbWVudGFsLm9uUGVybWlzc2lvblJlcXVlc3RlZDogeworICAgICAgICAv
L011c3QgYmUgZmFsc2UgYnkgZGVmYXVsdAorICAgICAgICBpZiAoIXBlcm1pc3Npb24uYWxsb3cp
IHsKKyAgICAgICAgICAgcGVybWlzc2lvbi5hbGxvdyA9IHRydWUKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgIGNvbnNvbGUubG9nKCJGYWlsOiBwZXJtaXNzaW9uIG11c3QgYmUgc2V0IHRvIGZh
bHNlIikKKworICAgICAgICBpZiAocGVybWlzc2lvbi50eXBlID09IFBlcm1pc3Npb25SZXF1ZXN0
Lkdlb2xvY2F0aW9uKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZygiUGVybWlzc2lvbiBpcyBn
ZW90eXBlIikKKyAgICAgICAgfQorICAgIH0KKworICAgIFRlc3RDYXNlIHsKKyAgICAgICAgbmFt
ZTogIldlYlZpZXdHZW9wZXJtaXNzaW9uIgorCisgICAgICAgIC8vIERlbGF5ZWQgd2luZG93U2hv
d24gdG8gd29ya2Fyb3VuZCBwcm9ibGVtcyB3aXRoIFF0NSBpbiBkZWJ1ZyBtb2RlLgorICAgICAg
ICB3aGVuOiBmYWxzZQorICAgICAgICBUaW1lciB7CisgICAgICAgICAgICBydW5uaW5nOiBwYXJl
bnQud2luZG93U2hvd24KKyAgICAgICAgICAgIHJlcGVhdDogZmFsc2UKKyAgICAgICAgICAgIGlu
dGVydmFsOiAxCisgICAgICAgICAgICBvblRyaWdnZXJlZDogcGFyZW50LndoZW4gPSB0cnVlCisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICAgICAgc3B5LmNs
ZWFyKCkKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RfcGVybWlzc2lvblJlcXVl
c3QoKSB7CisgICAgICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMCkKKyAgICAgICAgICAgIHdl
YlZpZXcubG9hZChRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2dlb2xvY2F0aW9uLmh0bWwiKSkK
KyAgICAgICAgICAgIHNweS53YWl0KCkKKyAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAx
KQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vZ2VvbG9jYXRpb24uaHRtbCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL2dlb2xvY2F0
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc4N2ExOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvY29tbW9uL2dlb2xvY2F0aW9uLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPD94bWwgdmVy
c2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8v
V0FQRk9SVU0vL0RURCBYSFRNTCBNb2JpbGUgMS4wLy9FTiIgImh0dHA6Ly93d3cud2FwZm9ydW0u
b3JnL0RURC94aHRtbC1tb2JpbGUxMC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8dGl0bGU+R2VvbG9jYXRpb24gUGVybWlzc2lvbiBB
UEkgVGVzdDwvdGl0bGU+Cis8bWV0YSBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGg7IGluaXRp
YWwtc2NhbGU9MS4wOyBtYXhpbXVtLXNjYWxlPTEuMDsgdXNlci1zY2FsYWJsZT0wOyIgbmFtZT0i
dmlld3BvcnQiLz4KKzxzY3JpcHQ+Cit2YXIgd2F0Y2hJZCA9IDA7CisKK2Z1bmN0aW9uIHN1Y2Nl
c3NIYW5kbGVyKGxvY2F0aW9uKSB7CisgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgibWVzc2FnZSIpLCBodG1sID0gW107CisgICAgaHRtbC5wdXNoKCI8aW1nIHdpZHRo
PScyNTYnIGhlaWdodD0nMjU2JyBzcmM9J2h0dHA6Ly9tYXBzLmdvb2dsZS5jb20vbWFwcy9hcGkv
c3RhdGljbWFwP2NlbnRlcj0iLCBsb2NhdGlvbi5jb29yZHMubGF0aXR1ZGUsICIsIiwgbG9jYXRp
b24uY29vcmRzLmxvbmdpdHVkZSwgIiZtYXJrZXJzPXNpemU6c21hbGx8Y29sb3I6Ymx1ZXwiLCBs
b2NhdGlvbi5jb29yZHMubGF0aXR1ZGUsICIsIiwgbG9jYXRpb24uY29vcmRzLmxvbmdpdHVkZSwg
IiZ6b29tPTE0JnNpemU9MjU2eDI1NiZzZW5zb3I9ZmFsc2UnIC8+Iik7CisgICAgaHRtbC5wdXNo
KCI8cD5Mb25naXR1ZGU6ICIsIGxvY2F0aW9uLmNvb3Jkcy5sb25naXR1ZGUsICI8L3A+Iik7Cisg
ICAgaHRtbC5wdXNoKCI8cD5MYXRpdHVkZTogIiwgbG9jYXRpb24uY29vcmRzLmxhdGl0dWRlLCAi
PC9wPiIpOworICAgIGh0bWwucHVzaCgiPHA+QWNjdXJhY3k6ICIsIGxvY2F0aW9uLmNvb3Jkcy5h
Y2N1cmFjeSwgIiBtZXRlcnM8L3A+Iik7CisgICAgbWVzc2FnZS5pbm5lckhUTUwgPSBodG1sLmpv
aW4oIiIpOworfQorCitmdW5jdGlvbiBlcnJvckhhbmRsZXIoZXJyb3IpIHsKKyAgICBhbGVydCgn
QXR0ZW1wdCB0byBnZXQgbG9jYXRpb24gZmFpbGVkOiAnICsgZXJyb3IubWVzc2FnZSk7Cit9CisK
KzwhLS0gT25lIHNob3QgZXhhbXBsZSAtLT4KK25hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJy
ZW50UG9zaXRpb24oc3VjY2Vzc0hhbmRsZXIsIGVycm9ySGFuZGxlcik7CisKKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJtZXNzYWdlIj5Mb2NhdGlvbiB1bmtub3duPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8KaW5kZXggNjYwY2M2My4u
ZGE5M2YwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0
cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8KQEAgLTI1LDYgKzI1LDcgQEAgT1RIRVJf
RklMRVMgKz0gXAogICAgIFdlYlZpZXcvdHN0X3ByZWZlcmVuY2VzLnFtbCBcCiAgICAgV2ViVmll
dy90c3RfbG9hZEh0bWwucW1sIFwKICAgICBXZWJWaWV3L3RzdF9kb3dubG9hZC5xbWwgXAorICAg
IFdlYlZpZXcvdHN0X2dlb3Blcm1pc3Npb24ucW1sIFwKICAgICBEZXNrdG9wQmVoYXZpb3IvdHN0
X2xpbmtIb3ZlcmVkLnFtbCBcCiAgICAgRGVza3RvcEJlaGF2aW9yL3RzdF9tZXNzYWdpbmcucW1s
IFwKICAgICBEZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25SZXF1ZXN0ZWQucW1sIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuY3BwCmlu
ZGV4IDc2ZDdlMGMuLjFhNmYwNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0V2ViUGFnZVVJQ2xpZW50LmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIldL
VVJMUXQuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKICNpbmNsdWRlICJxcXVpY2t3
ZWJ2aWV3X3BfcC5oIgorI2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgiCiAjaW5j
bHVkZSA8V0tBUElDYXN0Lmg+CiAjaW5jbHVkZSA8V0tIaXRUZXN0UmVzdWx0Lmg+CiAjaW5jbHVk
ZSA8V0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmg+CkBAIC00Myw2ICs0NCw3IEBAIFF0V2ViUGFnZVVJ
Q2xpZW50OjpRdFdlYlBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgUVF1aWNrV2ViVmll
dyogd2ViVmlldykKICAgICB1aUNsaWVudC5zZXRTdGF0dXNUZXh0ID0gc2V0U3RhdHVzVGV4dDsK
ICAgICB1aUNsaWVudC5ydW5PcGVuUGFuZWwgPSBydW5PcGVuUGFuZWw7CiAgICAgdWlDbGllbnQu
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQgPSBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKKyAgICB1
aUNsaWVudC5kZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0ID0gcG9s
aWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKICAgICBXS1BhZ2VTZXRQYWdlVUlD
bGllbnQocGFnZVJlZiwgJnVpQ2xpZW50KTsKIH0KIApAQCAtODAsNiArODIsMTIgQEAgdm9pZCBR
dFdlYlBhZ2VVSUNsaWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgUVVybCYgbGlu
a1VSTCwgY29uc3QgUVN0cmkKICAgICBlbWl0IG1fd2ViVmlldy0+bGlua0hvdmVyZWQobV9sYXN0
SG92ZXJlZFVSTCwgbV9sYXN0SG92ZXJlZFRpdGxlKTsKIH0KIAordm9pZCBRdFdlYlBhZ2VVSUNs
aWVudDo6cGVybWlzc2lvblJlcXVlc3QoUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQor
eworICAgIHJlcXVlc3QtPnNldFBhcmVudChtX3dlYlZpZXcpOworICAgIGVtaXQgbV93ZWJWaWV3
LT5leHBlcmltZW50YWwoKS0+cGVybWlzc2lvblJlcXVlc3RlZChyZXF1ZXN0KTsKK30KKwogc3Rh
dGljIFF0V2ViUGFnZVVJQ2xpZW50KiB0b1F0V2ViUGFnZVVJQ2xpZW50KGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCiB7CiAgICAgQVNTRVJUKGNsaWVudEluZm8pOwpAQCAtMTM5LDMgKzE0NywxMyBA
QCB2b2lkIFF0V2ViUGFnZVVJQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChXS1BhZ2VS
ZWYgcGFnZSwgV0tIaXRUZXN0UmVzdWx0UgogICAgIGNvbnN0IFFTdHJpbmcgbGlua1RpdGxlID0g
V0tTdHJpbmdDb3B5UVN0cmluZyhhZG9wdFdLKFdLSGl0VGVzdFJlc3VsdENvcHlMaW5rVGl0bGUo
aGl0VGVzdFJlc3VsdCkpLmdldCgpKTsKICAgICB0b1F0V2ViUGFnZVVJQ2xpZW50KGNsaWVudElu
Zm8pLT5tb3VzZURpZE1vdmVPdmVyRWxlbWVudChhYnNvbHV0ZUxpbmtVcmwsIGxpbmtUaXRsZSk7
CiB9CisKK3ZvaWQgUXRXZWJQYWdlVUlDbGllbnQ6OnBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlP
cmlnaW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVz
dCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBpZiAoIXJlcXVlc3QpCisgICAgICAg
IHJldHVybjsKKworICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVzdCogcmVxID0gUVdlYlBlcm1pc3Np
b25SZXF1ZXN0OjpjcmVhdGUob3JpZ2luLCByZXF1ZXN0KTsKKyAgICB0b1F0V2ViUGFnZVVJQ2xp
ZW50KGNsaWVudEluZm8pLT5wZXJtaXNzaW9uUmVxdWVzdChyZXEpOworfQorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5oCmluZGV4IDQ3NGE0ZTEu
LjIxZDFhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBh
Z2VVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VV
SUNsaWVudC5oCkBAIC0yMyw5ICsyMywxMyBAQAogCiAjaW5jbHVkZSA8UXRDb3JlL1FTdHJpbmc+
CiAjaW5jbHVkZSA8UXRDb3JlL1FVcmw+CisjaW5jbHVkZSA8V0tGcmFtZS5oPgorI2luY2x1ZGUg
PFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdLUGFnZS5oPgor
I2luY2x1ZGUgPFdLU2VjdXJpdHlPcmlnaW4uaD4KIAogY2xhc3MgUVF1aWNrV2ViVmlldzsKK2Ns
YXNzIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDsKIAogY2xhc3MgUXRXZWJQYWdlVUlDbGllbnQgewog
cHVibGljOgpAQCAtNDMsNiArNDcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0U3RhdHVzVGV4
dChjb25zdCBRU3RyaW5nJik7CiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV0tPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lclJlZiwgY29uc3QgUVN0cmluZ0xpc3QmIHNlbGVjdGVkRmlsZU5hbWVzLCBGaWxl
Q2hvb3NlclR5cGUpOwogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgUVVy
bCYgbGlua1VSTCwgY29uc3QgUVN0cmluZyYgbGlua1RpdGxlKTsKKyAgICB2b2lkIHBlcm1pc3Np
b25SZXF1ZXN0KFFXZWJQZXJtaXNzaW9uUmVxdWVzdCopOwogCiAgICAgLy8gV0tQYWdlVUlDbGll
bnQgY2FsbGJhY2tzLgogICAgIHN0YXRpYyB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXS1BhZ2VS
ZWYsIFdLU3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CkBAIC01MSw2ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgc2V0U3Rh
dHVzVGV4dChXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsK
ICAgICBzdGF0aWMgdm9pZCBydW5PcGVuUGFuZWwoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS09w
ZW5QYW5lbFBhcmFtZXRlcnNSZWYsIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KFdLUGFnZVJlZiwgV0tIaXRUZXN0UmVzdWx0UmVmLCBXS0V2ZW50TW9kaWZpZXJzLCBXS1R5
cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHN0YXRpYyB2b2lk
IHBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1l
UmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RS
ZWYsIGNvbnN0IHZvaWQqKTsKIAogICAgIFFRdWlja1dlYlZpZXcqIG1fd2ViVmlldzsKICAgICBR
VXJsIG1fbGFzdEhvdmVyZWRVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0
Lm1hcCBiL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCmluZGV4IGE0MjYyMDMuLmE1NDZjYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCisrKyBiL1NvdXJjZS9xdHdl
YmtpdC1leHBvcnQubWFwCkBAIC0xMjcsNiArMTI3LDEwIEBAIHF3a18xLjAgewogICAgICAgICAq
UVF1aWNrV2ViUGFnZTsKICAgICAgICAgbm9uLXZpcnR1YWw/dGh1bms/dG8/UVF1aWNrV2ViUGFn
ZSo7CiAgICAgICAgIFFRdWlja1dlYlBhZ2U6Oio7CisgICAgICAgICpRV2ViUGVybWlzc2lvblJl
cXVlc3Q7CisgICAgICAgIG5vbi12aXJ0dWFsP3RodW5rP3RvP1FXZWJQZXJtaXNzaW9uUmVxdWVz
dCo7CisgICAgICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6KjsKKwogCiAgICAgICAgICMgV2Vi
S2l0IDIgQyBBUEkgbWFuZ2xlZCBpbiBDKysKICAgICAgICAgV0tTdHJpbmdDb3B5UVN0cmluZyo7
Ci0tIAoxLjcuNC4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116750</attachid>
            <date>2011-11-28 06:37:15 -0800</date>
            <delta_ts>2011-11-28 06:42:31 -0800</delta_ts>
            <desc>Coding style fixes, plus qml test, html cleanup</desc>
            <filename>geoperm14clean.patch</filename>
            <type>text/plain</type>
            <size>21433</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSAxZWYzODNiNTQ1NzBlNmYxNzUxM2I5NmY1ZWFmOTQ2N2M4ZDM4ZWFlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IFRodSwgMjQgTm92IDIwMTEgMTQ6NDg6MTQgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBSZWJhc2UsIHFtbCB0ZXN0LCBjb2Rpbmcgc3R5bGUsIGh0bWwgY2xlYW51
cC4KClNpZ25lZC1vZmYtYnk6IEFkZW5pbHNvbiBDYXZhbGNhbnRpIDxhZGVuaWxzb24uc2lsdmFA
b3BlbmJvc3NhLm9yZz4KLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTMgKysrCiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysKIFNvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRp
dmUvcGx1Z2luLmNwcCAgICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzIgKysrKysrCiBTb3VyY2UvV2ViS2l0
Mi9UYXJnZXQucHJpICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCAgfCAgICAzICsKIC4uLi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgICAgIHwgIDEwNiArKysr
KysrKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1
ZXN0X3AuaCAgICAgfCAgIDY3ICsrKysrKysrKysrKwogLi4uL3Rlc3RzL3FtbHRlc3RzL1dlYlZp
ZXcvdHN0X2dlb3Blcm1pc3Npb24ucW1sICAgfCAgIDU0ICsrKysrKysrKysKIC4uLi9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvY29tbW9uL2dlb2xvY2F0aW9uLmh0bWwgIHwgICAyOSArKysrKysKIC4u
Li9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybyAgIHwgICAgMSAr
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuY3BwICB8ICAg
MTggKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50Lmgg
ICAgfCAgICA2ICsKIFNvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgNCArCiAxNCBmaWxlcyBjaGFuZ2VkLCAzNDggaW5zZXJ0aW9ucygrKSwgMCBk
ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL1dlYlZpZXcvdHN0X2dlb3Blcm1pc3Npb24ucW1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vZ2Vv
bG9jYXRpb24uaHRtbAoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA2
ZTNkMWI2Li5kMzhkNWRmIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEtMjQgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8YWRlbmls
c29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XVtXSzJdIEltcGxlbWVudCBw
ZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAgICBQZXJtaXNzaW9uIEFQSSBob29rdXAg
Zm9yIEdlb2xvY2F0aW9uLCBpdCBhbGxvd3MgdG8gcmVjZWl2ZSBpbiBXZWJWaWV3CisgICAgICAg
IGEgc2lnbmFsIHdoZW4gYSBwZXJtaXNzaW9uIHJlcXVlc3QgaXMgZG9uZSAoZS5nLiB0byBncmFu
dCBwZXJtaXNzaW9uCisgICAgICAgIGZvciBhY2Nlc3NpbmcgZ2VvbG9jYXRpb24gaW5mb3JtYXRp
b24pIGFuZCBzZXQgaXQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
SGF1c21hbm4uCisKKyAgICAgICAgKiBTb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcDoKKwogMjAx
MS0xMS0yOCAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAg
ICAgICAgW1F0XSBXVEYgc2hvdWxkIGJlIGJ1aWx0IGFzIHNlcGFyYXRlIHN0YXRpYyBsaWJyYXJ5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCmluZGV4IDQ1ODBjOWEuLjYwNjcwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTEtMTEtMjQgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8YWRlbmlsc29u
LnNpbHZhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XVtXSzJdIEltcGxlbWVudCBwZXJt
aXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAgICBQZXJtaXNzaW9uIEFQSSBob29rdXAgZm9y
IEdlb2xvY2F0aW9uLCBpdCBhbGxvd3MgdG8gcmVjZWl2ZSBpbiBXZWJWaWV3CisgICAgICAgIGEg
c2lnbmFsIHdoZW4gYSBwZXJtaXNzaW9uIHJlcXVlc3QgaXMgZG9uZSAoZS5nLiB0byBncmFudCBw
ZXJtaXNzaW9uCisgICAgICAgIGZvciBhY2Nlc3NpbmcgZ2VvbG9jYXRpb24gaW5mb3JtYXRpb24p
IGFuZCBzZXQgaXQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1
c21hbm4uCisKIDIwMTEtMTEtMjYgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbW92ZSBkaXNjb25uZWN0RnJvbUJhY2tlbmQg
ZnJvbSB0aGUgcHJvdG9jb2wuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0
aXZlL3BsdWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAK
aW5kZXggZGM5Y2I3ZS4uZTA5YTk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9kZWNs
YXJhdGl2ZS9wbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1
Z2luLmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2lmIGRlZmluZWQoSEFWRV9XRUJLSVQyKQogI2lu
Y2x1ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgor
I2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgiCiAjaW5jbHVkZSAicXdlYnByZWZl
cmVuY2VzX3AuaCIKIAogI2luY2x1ZGUgPFF0TmV0d29yay9xbmV0d29ya3JlcGx5Lmg+CkBAIC01
MSw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8
UVdlYlByZWZlcmVuY2VzPih1cmksIDMsIDAsICJXZWJQcmVmZXJlbmNlcyIsIFFPYmplY3Q6OnRy
KCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFdlYlByZWZlcmVuY2VzIikpOwog
ICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRUXVpY2tXZWJQYWdlPih1cmksIDMs
IDAsICJXZWJQYWdlIiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFu
Y2Ugb2YgV2ViUGFnZSwgdXNlIFdlYlZpZXciKSk7CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVh
dGFibGVUeXBlPFFOZXR3b3JrUmVwbHk+KHVyaSwgMywgMCwgIk5ldHdvcmtSZXBseSIsIFFPYmpl
Y3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIE5ldHdvcmtSZXBseSIp
KTsKKyAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVdlYlBlcm1pc3Npb25SZXF1
ZXN0Pih1cmksIDUsIDAsICJQZXJtaXNzaW9uUmVxdWVzdCIsIFFPYmplY3Q6OnRyKCJDYW5ub3Qg
Y3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFBlcm1pc3Npb25SZXF1ZXN0IikpOwogI2VuZGlm
CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YmJmNTEyLi5kMmQxZThkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTEtMTEtMjQgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8YWRlbmls
c29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XVtXSzJdIEltcGxlbWVudCBw
ZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAgICBQZXJtaXNzaW9uIEFQSSBob29rdXAg
Zm9yIEdlb2xvY2F0aW9uLCBpdCBhbGxvd3MgdG8gcmVjZWl2ZSBpbiBXZWJWaWV3CisgICAgICAg
IGEgc2lnbmFsIHdoZW4gYSBwZXJtaXNzaW9uIHJlcXVlc3QgaXMgZG9uZSAoZS5nLiB0byBncmFu
dCBwZXJtaXNzaW9uCisgICAgICAgIGZvciBhY2Nlc3NpbmcgZ2VvbG9jYXRpb24gaW5mb3JtYXRp
b24pIGFuZCBzZXQgaXQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
SGF1c21hbm4uCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cGVybWlzc2lvbnJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVx
dWVzdFByaXZhdGU6OlFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUpOgorICAgICAgICAoUVdl
YlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTo6flFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUp
OgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoUVdl
YlBlcm1pc3Npb25SZXF1ZXN0OjpRV2ViUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoUVdl
YlBlcm1pc3Npb25SZXF1ZXN0Ojp+UVdlYlBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFFX
ZWJQZXJtaXNzaW9uUmVxdWVzdDo6dHlwZSk6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVl
c3Q6OnNldEFsbG93KToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6YWxsb3cpOgor
ICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzY2hlbWUpOgorICAgICAgICAoUVdlYlBl
cm1pc3Npb25SZXF1ZXN0Ojpob3N0KToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6
cG9ydCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Rf
cC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuY3Bw
OgorICAgICAgICAoUXRXZWJQYWdlVUlDbGllbnQ6OlF0V2ViUGFnZVVJQ2xpZW50KToKKyAgICAg
ICAgKFF0V2ViUGFnZVVJQ2xpZW50OjpwZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChRdFdl
YlBhZ2VVSUNsaWVudDo6cG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50Lmg6CisKIDIwMTEtMTEtMjgg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIFJlbmFtZSBXZWJLaXROZXR3b3JrUmVxdWVzdCB0byBXZWJLaXRVUklSZXF1ZXN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0
LnByaQppbmRleCBmNjU1NDU5Li5hODRmMmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9U
YXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTI0OSw2ICsyNDks
NyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19w
X3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3AuaCBcCiAgICAg
VUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3BfcC5oIFwKKyAgICBVSVByb2Nlc3Mv
QVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2VicGFnZV9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9w
X3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBcCkBAIC01NTEs
NiArNTUyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJp
bmdRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLVVJMUXQuY3BwIFwKICAgICBV
SVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW0uY3BwIFwKKyAgICBVSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2VicGFnZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAg
XAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAppbmRleCBhOGQw
Y2ZkLi44MmFjN2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlld19wLmgKQEAgLTMxLDYgKzMxLDcgQEAgY2xhc3MgUVF1aWNrV2ViVmlld1By
aXZhdGU7CiBjbGFzcyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOwogY2xhc3MgUVdlYkRvd25s
b2FkSXRlbTsKIGNsYXNzIFFXZWJQcmVmZXJlbmNlczsKK2NsYXNzIFFXZWJQZXJtaXNzaW9uUmVx
dWVzdDsKIAogbmFtZXNwYWNlIFdUUiB7CiBjbGFzcyBQbGF0Zm9ybVdlYlZpZXc7CkBAIC0xOTEs
MTIgKzE5MiwxNCBAQCBRX1NJR05BTFM6CiAgICAgdm9pZCBjb25maXJtRGlhbG9nQ2hhbmdlZCgp
OwogICAgIHZvaWQgcHJvbXB0RGlhbG9nQ2hhbmdlZCgpOwogICAgIHZvaWQgZG93bmxvYWRSZXF1
ZXN0ZWQoUVdlYkRvd25sb2FkSXRlbSogZG93bmxvYWRJdGVtKTsKKyAgICB2b2lkIHBlcm1pc3Np
b25SZXF1ZXN0ZWQoUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uKTsKIAogcHJpdmF0
ZToKICAgICBRUXVpY2tXZWJWaWV3KiBxX3B0cjsKICAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZSog
ZF9wdHI7CiAKICAgICBmcmllbmQgY2xhc3MgUXRXZWJQYWdlUHJveHk7CisgICAgZnJpZW5kIGNs
YXNzIFF0V2ViUGFnZVVJQ2xpZW50OwogCiAgICAgUV9ERUNMQVJFX1BSSVZBVEUoUVF1aWNrV2Vi
VmlldykKICAgICBRX0RFQ0xBUkVfUFVCTElDKFFRdWlja1dlYlZpZXcpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZhNDM4NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25y
ZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAicXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCIKKwor
I2luY2x1ZGUgIldLU3RyaW5nUXQuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKworCitjbGFzcyBRV2ViUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlIDogcHVibGljIFFTaGFyZWREYXRhIHsKK3B1YmxpYzoKKyAgICBRV2ViUGVy
bWlzc2lvblJlcXVlc3RQcml2YXRlKFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4s
IFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCkKKyAg
ICAgICAgOiBvcmlnaW4oc2VjdXJpdHlPcmlnaW4pCisgICAgICAgICwgdHlwZShRV2ViUGVybWlz
c2lvblJlcXVlc3Q6Okdlb2xvY2F0aW9uKQorICAgICAgICAsIHJlcXVlc3QocGVybWlzc2lvblJl
cXVlc3QpCisgICAgICAgICwgYWxsb3coZmFsc2UpCisgICAgeworICAgIH0KKyAgICB+UVdlYlBl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSgpCisgICAgeworICAgIH0KKworICAgIFdLUmV0YWluUHRy
PFdLU2VjdXJpdHlPcmlnaW5SZWY+IG9yaWdpbjsKKyAgICBRV2ViUGVybWlzc2lvblJlcXVlc3Q6
OlJlcXVlc3RUeXBlIHR5cGU7CisgICAgV0tSZXRhaW5QdHI8V0tHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0UmVmPiByZXF1ZXN0OworICAgIGJvb2wgYWxsb3c7Cit9OworCitRV2ViUGVybWlz
c2lvblJlcXVlc3QqIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKFdLU2VjdXJpdHlPcmln
aW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCkK
K3sKKyAgICByZXR1cm4gbmV3IFFXZWJQZXJtaXNzaW9uUmVxdWVzdChvcmlnaW4sIHJlcXVlc3Qp
OworfQorCitRV2ViUGVybWlzc2lvblJlcXVlc3Q6OlFXZWJQZXJtaXNzaW9uUmVxdWVzdChXS1Nl
Y3VyaXR5T3JpZ2luUmVmIHNlY3VyaXR5T3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIFFPYmplY3QqIHBhcmVudCkKKyAgICA6IFFPYmpl
Y3QocGFyZW50KQorICAgICwgZChuZXcgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZShzZWN1
cml0eU9yaWdpbiwgcGVybWlzc2lvblJlcXVlc3QpKQoreworfQorCitRV2ViUGVybWlzc2lvblJl
cXVlc3Q6On5RV2ViUGVybWlzc2lvblJlcXVlc3QoKQoreworfQorCitRV2ViUGVybWlzc2lvblJl
cXVlc3Q6OlJlcXVlc3RUeXBlIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6dHlwZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGQtPnR5cGU7Cit9CisKK3ZvaWQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpz
ZXRBbGxvdyhib29sIGFjY2VwdGVkKQoreworICAgIGQtPmFsbG93ID0gYWNjZXB0ZWQ7CisgICAg
c3dpdGNoICh0eXBlKCkpIHsKKyAgICBjYXNlIEdlb2xvY2F0aW9uOiB7CisgICAgICAgIGlmIChh
Y2NlcHRlZCkKKyAgICAgICAgICAgIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEFsbG93
KGQtPnJlcXVlc3QuZ2V0KCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBXS0dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3REZW55KGQtPnJlcXVlc3QuZ2V0KCkpOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgfQorCisgICAgZGVsZXRlTGF0ZXIoKTsKK30KKworYm9vbCBRV2ViUGVybWlzc2lvblJlcXVl
c3Q6OmFsbG93KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+YWxsb3c7Cit9CisKK1FTdHJpbmcg
UVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzY2hlbWUoKSBjb25zdAoreworICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiB1cmwgPSBhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5UHJvdG9jb2wo
ZC0+b3JpZ2luLmdldCgpKSk7CisgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcodXJsLmdl
dCgpKTsKK30KKworUVN0cmluZyBRV2ViUGVybWlzc2lvblJlcXVlc3Q6Omhvc3QoKSBjb25zdAor
eworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBvcmlnaW4gPSBhZG9wdFdLKFdLU2VjdXJp
dHlPcmlnaW5Db3B5SG9zdChkLT5vcmlnaW4uZ2V0KCkpKTsKKyAgICByZXR1cm4gV0tTdHJpbmdD
b3B5UVN0cmluZyhvcmlnaW4uZ2V0KCkpOworfQorCitpbnQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0
Ojpwb3J0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihXS1NlY3VyaXR5
T3JpZ2luR2V0UG9ydChkLT5vcmlnaW4uZ2V0KCkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODI0YzRjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Rf
cC5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgcXdlYnBl
cm1pc3Npb25yZXF1ZXN0X3BfaAorI2RlZmluZSBxd2VicGVybWlzc2lvbnJlcXVlc3RfcF9oCisK
KyNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCisKKyNpbmNsdWRlIDxRdENvcmUvUU9iamVjdD4K
KyNpbmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tTZWN1cml0
eU9yaWdpbi5oPgorCitjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOworCitjbGFz
cyBRV0VCS0lUX0VYUE9SVCBRV2ViUGVybWlzc2lvblJlcXVlc3QgOiBwdWJsaWMgUU9iamVjdCB7
CisgICAgUV9PQkpFQ1QKKyAgICBRX1BST1BFUlRZKGJvb2wgYWxsb3cgUkVBRCBhbGxvdyBXUklU
RSBzZXRBbGxvdykKKyAgICBRX1BST1BFUlRZKFJlcXVlc3RUeXBlIHR5cGUgUkVBRCB0eXBlKQor
ICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzY2hlbWUgUkVBRCBzY2hlbWUpCisgICAgUV9QUk9QRVJU
WShRU3RyaW5nIGhvc3QgUkVBRCBob3N0KQorICAgIFFfUFJPUEVSVFkoaW50IHBvcnQgUkVBRCBw
b3J0KQorICAgIFFfRU5VTVMoUmVxdWVzdFR5cGUpCisKK3B1YmxpYzoKKyAgICBlbnVtIFJlcXVl
c3RUeXBlIHsKKyAgICAgICAgR2VvbG9jYXRpb24KKyAgICB9OworCisgICAgc3RhdGljIFFXZWJQ
ZXJtaXNzaW9uUmVxdWVzdCogY3JlYXRlKFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdFJlZik7CisgICAgdmlydHVhbCB+UVdlYlBlcm1pc3Npb25SZXF1
ZXN0KCk7CisKKyAgICBSZXF1ZXN0VHlwZSB0eXBlKCkgY29uc3Q7CisgICAgYm9vbCBhbGxvdygp
IGNvbnN0OworICAgIFFTdHJpbmcgc2NoZW1lKCkgY29uc3Q7CisgICAgUVN0cmluZyBob3N0KCkg
Y29uc3Q7CisgICAgaW50IHBvcnQoKSBjb25zdDsKKworcHVibGljIFFfU0xPVFM6CisgICAgdm9p
ZCBzZXRBbGxvdyhib29sKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUVdlYlBlcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZTsKKyAgICBRV2ViUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1cml0
eU9yaWdpblJlZiBzZWN1cml0eU9yaWdpbiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBRT2JqZWN0KiBwYXJlbnQgPSAwKTsKKworcHJpdmF0ZToK
KyAgICBRRXhwbGljaXRseVNoYXJlZERhdGFQb2ludGVyPFFXZWJQZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGU+IGQ7Cit9OworCisKKyNlbmRpZiAvLyBxd2VicGVybWlzc2lvbnJlcXVlc3RfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9nZW9wZXJtaXNzaW9uLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZ2VvcGVybWlzc2lvbi5xbWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk3YWIwOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90
c3RfZ2VvcGVybWlzc2lvbi5xbWwKQEAgLTAsMCArMSw1NCBAQAoraW1wb3J0IFF0UXVpY2sgMi4w
CitpbXBvcnQgUXRUZXN0IDEuMAoraW1wb3J0IFF0V2ViS2l0IDMuMAoraW1wb3J0IFF0V2ViS2l0
LmV4cGVyaW1lbnRhbCAzLjAKKworV2ViVmlldyB7CisgICAgaWQ6IHdlYlZpZXcKKyAgICB3aWR0
aDogMjAwCisgICAgaGVpZ2h0OiAyMDAKKworICAgIHByb3BlcnR5IGJvb2wgZXhwZWN0ZWRQZXJt
aXNzaW9uOiBmYWxzZQorCisgICAgU2lnbmFsU3B5IHsKKyAgICAgICAgaWQ6IHNweQorICAgICAg
ICB0YXJnZXQ6IGV4cGVyaW1lbnRhbAorICAgICAgICBzaWduYWxOYW1lOiAicGVybWlzc2lvblJl
cXVlc3RlZCIKKyAgICB9CisKKyAgICBleHBlcmltZW50YWwub25QZXJtaXNzaW9uUmVxdWVzdGVk
OiB7CisgICAgICAgIC8vTXVzdCBiZSBmYWxzZSBieSBkZWZhdWx0CisgICAgICAgIGlmICghcGVy
bWlzc2lvbi5hbGxvdykgeworICAgICAgICAgICBwZXJtaXNzaW9uLmFsbG93ID0gdHJ1ZQorICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgY29uc29sZS5sb2coIkZhaWw6IHBlcm1pc3Npb24gbXVz
dCBiZSBzZXQgdG8gZmFsc2UiKQorCisgICAgICAgIGlmIChwZXJtaXNzaW9uLnR5cGUgPT0gUGVy
bWlzc2lvblJlcXVlc3QuR2VvbG9jYXRpb24pIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJQ
ZXJtaXNzaW9uIGlzIGdlb3R5cGUiKQorICAgICAgICB9CisgICAgfQorCisgICAgVGVzdENhc2Ug
eworICAgICAgICBuYW1lOiAiV2ViVmlld0dlb3Blcm1pc3Npb24iCisKKyAgICAgICAgLy8gRGVs
YXllZCB3aW5kb3dTaG93biB0byB3b3JrYXJvdW5kIHByb2JsZW1zIHdpdGggUXQ1IGluIGRlYnVn
IG1vZGUuCisgICAgICAgIHdoZW46IGZhbHNlCisgICAgICAgIFRpbWVyIHsKKyAgICAgICAgICAg
IHJ1bm5pbmc6IHBhcmVudC53aW5kb3dTaG93bgorICAgICAgICAgICAgcmVwZWF0OiBmYWxzZQor
ICAgICAgICAgICAgaW50ZXJ2YWw6IDEKKyAgICAgICAgICAgIG9uVHJpZ2dlcmVkOiBwYXJlbnQu
d2hlbiA9IHRydWUKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAg
ICAgICAgICBzcHkuY2xlYXIoKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9w
ZXJtaXNzaW9uUmVxdWVzdCgpIHsKKyAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAwKQor
ICAgICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vZ2VvbG9j
YXRpb24uaHRtbCIpKQorICAgICAgICAgICAgc3B5LndhaXQoKQorICAgICAgICAgICAgY29tcGFy
ZShzcHkuY291bnQsIDEpCisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9nZW9sb2NhdGlv
bi5odG1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9j
b21tb24vZ2VvbG9jYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yZDQxY2FiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vZ2VvbG9jYXRpb24uaHRtbApAQCAtMCwwICsxLDI5
IEBACis8aGVhZD4KKzx0aXRsZT5HZW9sb2NhdGlvbiBQZXJtaXNzaW9uIEFQSSBUZXN0PC90aXRs
ZT4KKzxtZXRhIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aDsgaW5pdGlhbC1zY2FsZT0xLjA7
IG1heGltdW0tc2NhbGU9MS4wOyB1c2VyLXNjYWxhYmxlPTA7IiBuYW1lPSJ2aWV3cG9ydCIvPgor
PHNjcmlwdD4KK3ZhciB3YXRjaElkID0gMDsKKworZnVuY3Rpb24gc3VjY2Vzc0hhbmRsZXIobG9j
YXRpb24pIHsKKyAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtZXNz
YWdlIiksIGh0bWwgPSBbXTsKKyAgICBodG1sLnB1c2goIjxpbWcgd2lkdGg9JzI1NicgaGVpZ2h0
PScyNTYnIHNyYz0naHR0cDovL21hcHMuZ29vZ2xlLmNvbS9tYXBzL2FwaS9zdGF0aWNtYXA/Y2Vu
dGVyPSIsIGxvY2F0aW9uLmNvb3Jkcy5sYXRpdHVkZSwgIiwiLCBsb2NhdGlvbi5jb29yZHMubG9u
Z2l0dWRlLCAiJm1hcmtlcnM9c2l6ZTpzbWFsbHxjb2xvcjpibHVlfCIsIGxvY2F0aW9uLmNvb3Jk
cy5sYXRpdHVkZSwgIiwiLCBsb2NhdGlvbi5jb29yZHMubG9uZ2l0dWRlLCAiJnpvb209MTQmc2l6
ZT0yNTZ4MjU2JnNlbnNvcj1mYWxzZScgLz4iKTsKKyAgICBodG1sLnB1c2goIjxwPkxvbmdpdHVk
ZTogIiwgbG9jYXRpb24uY29vcmRzLmxvbmdpdHVkZSwgIjwvcD4iKTsKKyAgICBodG1sLnB1c2go
IjxwPkxhdGl0dWRlOiAiLCBsb2NhdGlvbi5jb29yZHMubGF0aXR1ZGUsICI8L3A+Iik7CisgICAg
aHRtbC5wdXNoKCI8cD5BY2N1cmFjeTogIiwgbG9jYXRpb24uY29vcmRzLmFjY3VyYWN5LCAiIG1l
dGVyczwvcD4iKTsKKyAgICBtZXNzYWdlLmlubmVySFRNTCA9IGh0bWwuam9pbigiIik7Cit9CisK
K2Z1bmN0aW9uIGVycm9ySGFuZGxlcihlcnJvcikgeworICAgIGFsZXJ0KCdBdHRlbXB0IHRvIGdl
dCBsb2NhdGlvbiBmYWlsZWQ6ICcgKyBlcnJvci5tZXNzYWdlKTsKK30KKworPCEtLSBPbmUgc2hv
dCBleGFtcGxlIC0tPgorbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihz
dWNjZXNzSGFuZGxlciwgZXJyb3JIYW5kbGVyKTsKKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9Im1lc3NhZ2UiPkxvY2F0aW9uIHVua25vd248L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0
cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybwppbmRleCA2NjBjYzYzLi5kYTkzZjAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3Ft
bHRlc3RzLnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL3FtbHRlc3RzLnBybwpAQCAtMjUsNiArMjUsNyBAQCBPVEhFUl9GSUxFUyArPSBcCiAg
ICAgV2ViVmlldy90c3RfcHJlZmVyZW5jZXMucW1sIFwKICAgICBXZWJWaWV3L3RzdF9sb2FkSHRt
bC5xbWwgXAogICAgIFdlYlZpZXcvdHN0X2Rvd25sb2FkLnFtbCBcCisgICAgV2ViVmlldy90c3Rf
Z2VvcGVybWlzc2lvbi5xbWwgXAogICAgIERlc2t0b3BCZWhhdmlvci90c3RfbGlua0hvdmVyZWQu
cW1sIFwKICAgICBEZXNrdG9wQmVoYXZpb3IvdHN0X21lc3NhZ2luZy5xbWwgXAogICAgIERlc2t0
b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3RlZC5xbWwgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5jcHAKaW5kZXggNzZkN2UwYy4u
MWE2ZjA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFn
ZVVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdl
VUlDbGllbnQuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiV0tVUkxRdC5oIgogI2lu
Y2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcF9wLmgi
CisjaW5jbHVkZSAicXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCIKICNpbmNsdWRlIDxXS0FQSUNh
c3QuaD4KICNpbmNsdWRlIDxXS0hpdFRlc3RSZXN1bHQuaD4KICNpbmNsdWRlIDxXS09wZW5QYW5l
bFBhcmFtZXRlcnMuaD4KQEAgLTQzLDYgKzQ0LDcgQEAgUXRXZWJQYWdlVUlDbGllbnQ6OlF0V2Vi
UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBRUXVpY2tXZWJWaWV3KiB3ZWJWaWV3KQog
ICAgIHVpQ2xpZW50LnNldFN0YXR1c1RleHQgPSBzZXRTdGF0dXNUZXh0OwogICAgIHVpQ2xpZW50
LnJ1bk9wZW5QYW5lbCA9IHJ1bk9wZW5QYW5lbDsKICAgICB1aUNsaWVudC5tb3VzZURpZE1vdmVP
dmVyRWxlbWVudCA9IG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIHVpQ2xpZW50LmRlY2lk
ZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QgPSBwb2xpY3lGb3JHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChwYWdlUmVm
LCAmdWlDbGllbnQpOwogfQogCkBAIC04MCw2ICs4MiwxMiBAQCB2b2lkIFF0V2ViUGFnZVVJQ2xp
ZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBRVXJsJiBsaW5rVVJMLCBjb25zdCBR
U3RyaQogICAgIGVtaXQgbV93ZWJWaWV3LT5saW5rSG92ZXJlZChtX2xhc3RIb3ZlcmVkVVJMLCBt
X2xhc3RIb3ZlcmVkVGl0bGUpOwogfQogCit2b2lkIFF0V2ViUGFnZVVJQ2xpZW50OjpwZXJtaXNz
aW9uUmVxdWVzdChRV2ViUGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgcmVxdWVz
dC0+c2V0UGFyZW50KG1fd2ViVmlldyk7CisgICAgZW1pdCBtX3dlYlZpZXctPmV4cGVyaW1lbnRh
bCgpLT5wZXJtaXNzaW9uUmVxdWVzdGVkKHJlcXVlc3QpOworfQorCiBzdGF0aWMgUXRXZWJQYWdl
VUlDbGllbnQqIHRvUXRXZWJQYWdlVUlDbGllbnQoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsK
ICAgICBBU1NFUlQoY2xpZW50SW5mbyk7CkBAIC0xMzksMyArMTQ3LDEzIEBAIHZvaWQgUXRXZWJQ
YWdlVUlDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdLUGFnZVJlZiBwYWdlLCBXS0hp
dFRlc3RSZXN1bHRSCiAgICAgY29uc3QgUVN0cmluZyBsaW5rVGl0bGUgPSBXS1N0cmluZ0NvcHlR
U3RyaW5nKGFkb3B0V0soV0tIaXRUZXN0UmVzdWx0Q29weUxpbmtUaXRsZShoaXRUZXN0UmVzdWx0
KSkuZ2V0KCkpOwogICAgIHRvUXRXZWJQYWdlVUlDbGllbnQoY2xpZW50SW5mbyktPm1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KGFic29sdXRlTGlua1VybCwgbGlua1RpdGxlKTsKIH0KKwordm9pZCBR
dFdlYlBhZ2VVSUNsaWVudDo6cG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChX
S1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmln
aW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0LCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiByZXEgPSBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OmNy
ZWF0ZShvcmlnaW4sIHJlcXVlc3QpOworICAgIHRvUXRXZWJQYWdlVUlDbGllbnQoY2xpZW50SW5m
byktPnBlcm1pc3Npb25SZXF1ZXN0KHJlcSk7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmgKaW5kZXggNDc0YTRlMS4uMjFkMWE0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmgKQEAg
LTIzLDkgKzIzLDEzIEBACiAKICNpbmNsdWRlIDxRdENvcmUvUVN0cmluZz4KICNpbmNsdWRlIDxR
dENvcmUvUVVybD4KKyNpbmNsdWRlIDxXS0ZyYW1lLmg+CisjaW5jbHVkZSA8V0tHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V0tQYWdlLmg+CisjaW5jbHVkZSA8V0tT
ZWN1cml0eU9yaWdpbi5oPgogCiBjbGFzcyBRUXVpY2tXZWJWaWV3OworY2xhc3MgUVdlYlBlcm1p
c3Npb25SZXF1ZXN0OwogCiBjbGFzcyBRdFdlYlBhZ2VVSUNsaWVudCB7CiBwdWJsaWM6CkBAIC00
Myw2ICs0Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRTdGF0dXNUZXh0KGNvbnN0IFFTdHJp
bmcmKTsKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVm
LCBjb25zdCBRU3RyaW5nTGlzdCYgc2VsZWN0ZWRGaWxlTmFtZXMsIEZpbGVDaG9vc2VyVHlwZSk7
CiAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBRVXJsJiBsaW5rVVJMLCBj
b25zdCBRU3RyaW5nJiBsaW5rVGl0bGUpOworICAgIHZvaWQgcGVybWlzc2lvblJlcXVlc3QoUVdl
YlBlcm1pc3Npb25SZXF1ZXN0Kik7CiAKICAgICAvLyBXS1BhZ2VVSUNsaWVudCBjYWxsYmFja3Mu
CiAgICAgc3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdLUGFnZVJlZiwgV0tTdHJpbmdS
ZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKQEAgLTUx
LDYgKzU2LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBzZXRTdGF0dXNUZXh0KFdLUGFn
ZVJlZiwgV0tTdHJpbmdSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2
b2lkIHJ1bk9wZW5QYW5lbChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLT3BlblBhbmVsUGFyYW1l
dGVyc1JlZiwgV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV0tQYWdlUmVm
LCBXS0hpdFRlc3RSZXN1bHRSZWYsIFdLRXZlbnRNb2RpZmllcnMsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgcG9saWN5Rm9yR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLU2VjdXJp
dHlPcmlnaW5SZWYsIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiwgY29uc3Qgdm9p
ZCopOwogCiAgICAgUVF1aWNrV2ViVmlldyogbV93ZWJWaWV3OwogICAgIFFVcmwgbV9sYXN0SG92
ZXJlZFVSTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwIGIvU291cmNl
L3F0d2Via2l0LWV4cG9ydC5tYXAKaW5kZXggYTQyNjIwMy4uYTU0NmNiMiAxMDA2NDQKLS0tIGEv
U291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAKKysrIGIvU291cmNlL3F0d2Via2l0LWV4cG9ydC5t
YXAKQEAgLTEyNyw2ICsxMjcsMTAgQEAgcXdrXzEuMCB7CiAgICAgICAgICpRUXVpY2tXZWJQYWdl
OwogICAgICAgICBub24tdmlydHVhbD90aHVuaz90bz9RUXVpY2tXZWJQYWdlKjsKICAgICAgICAg
UVF1aWNrV2ViUGFnZTo6KjsKKyAgICAgICAgKlFXZWJQZXJtaXNzaW9uUmVxdWVzdDsKKyAgICAg
ICAgbm9uLXZpcnR1YWw/dGh1bms/dG8/UVdlYlBlcm1pc3Npb25SZXF1ZXN0KjsKKyAgICAgICAg
UVdlYlBlcm1pc3Npb25SZXF1ZXN0OjoqOworCiAKICAgICAgICAgIyBXZWJLaXQgMiBDIEFQSSBt
YW5nbGVkIGluIEMrKwogICAgICAgICBXS1N0cmluZ0NvcHlRU3RyaW5nKjsKLS0gCjEuNy40LjEK
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116751</attachid>
            <date>2011-11-28 06:42:31 -0800</date>
            <delta_ts>2011-11-28 10:12:34 -0800</delta_ts>
            <desc>Coding style fixes, plus qml test, html cleanup, changelog.</desc>
            <filename>geoperm14cl.patch</filename>
            <type>text/plain</type>
            <size>21433</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSA4MTk3NjdmNzE1ZmJiOGM1ZGQyOGZhYjZmZmQwNmY2MzI1MzJmZGJjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IFRodSwgMjQgTm92IDIwMTEgMTQ6NDg6MTQgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBSZWJhc2UsIHFtbCB0ZXN0LCBjb2Rpbmcgc3R5bGUsIGh0bWwgY2xlYW51
cC4KClNpZ25lZC1vZmYtYnk6IEFkZW5pbHNvbiBDYXZhbGNhbnRpIDxhZGVuaWxzb24uc2lsdmFA
b3BlbmJvc3NhLm9yZz4KLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTMgKysrCiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysKIFNvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRp
dmUvcGx1Z2luLmNwcCAgICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzIgKysrKysrCiBTb3VyY2UvV2ViS2l0
Mi9UYXJnZXQucHJpICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCAgfCAgICAzICsKIC4uLi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgICAgIHwgIDEwNiArKysr
KysrKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1
ZXN0X3AuaCAgICAgfCAgIDY3ICsrKysrKysrKysrKwogLi4uL3Rlc3RzL3FtbHRlc3RzL1dlYlZp
ZXcvdHN0X2dlb3Blcm1pc3Npb24ucW1sICAgfCAgIDU0ICsrKysrKysrKysKIC4uLi9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvY29tbW9uL2dlb2xvY2F0aW9uLmh0bWwgIHwgICAyOSArKysrKysKIC4u
Li9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybyAgIHwgICAgMSAr
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuY3BwICB8ICAg
MTggKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50Lmgg
ICAgfCAgICA2ICsKIFNvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgNCArCiAxNCBmaWxlcyBjaGFuZ2VkLCAzNDggaW5zZXJ0aW9ucygrKSwgMCBk
ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL1dlYlZpZXcvdHN0X2dlb3Blcm1pc3Npb24ucW1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vZ2Vv
bG9jYXRpb24uaHRtbAoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA2
ZTNkMWI2Li5jZDYwNmFiIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEtMjQgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8YWRlbmls
c29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XVtXSzJdIEltcGxlbWVudCBw
ZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAgICBQZXJtaXNzaW9uIEFQSSBob29rdXAg
Zm9yIEdlb2xvY2F0aW9uLCBpdCBhbGxvd3MgdG8gcmVjZWl2ZSBpbiBXZWJWaWV3CisgICAgICAg
IGEgc2lnbmFsIHdoZW4gYSBwZXJtaXNzaW9uIHJlcXVlc3QgaXMgZG9uZSAoZS5nLiB0byBncmFu
dCBwZXJtaXNzaW9uCisgICAgICAgIGZvciBhY2Nlc3NpbmcgZ2VvbG9jYXRpb24gaW5mb3JtYXRp
b24pIGFuZCBzZXQgaXQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcDoKKwogMjAx
MS0xMS0yOCAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAg
ICAgICAgW1F0XSBXVEYgc2hvdWxkIGJlIGJ1aWx0IGFzIHNlcGFyYXRlIHN0YXRpYyBsaWJyYXJ5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCmluZGV4IDQ1ODBjOWEuLmYyMzBjMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTEtMTEtMjQgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8YWRlbmlsc29u
LnNpbHZhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XVtXSzJdIEltcGxlbWVudCBwZXJt
aXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAgICBQZXJtaXNzaW9uIEFQSSBob29rdXAgZm9y
IEdlb2xvY2F0aW9uLCBpdCBhbGxvd3MgdG8gcmVjZWl2ZSBpbiBXZWJWaWV3CisgICAgICAgIGEg
c2lnbmFsIHdoZW4gYSBwZXJtaXNzaW9uIHJlcXVlc3QgaXMgZG9uZSAoZS5nLiB0byBncmFudCBw
ZXJtaXNzaW9uCisgICAgICAgIGZvciBhY2Nlc3NpbmcgZ2VvbG9jYXRpb24gaW5mb3JtYXRpb24p
IGFuZCBzZXQgaXQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKIDIwMTEtMTEtMjYgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbW92ZSBkaXNjb25uZWN0RnJvbUJhY2tlbmQg
ZnJvbSB0aGUgcHJvdG9jb2wuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0
aXZlL3BsdWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAK
aW5kZXggZGM5Y2I3ZS4uZTA5YTk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9kZWNs
YXJhdGl2ZS9wbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1
Z2luLmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2lmIGRlZmluZWQoSEFWRV9XRUJLSVQyKQogI2lu
Y2x1ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgor
I2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgiCiAjaW5jbHVkZSAicXdlYnByZWZl
cmVuY2VzX3AuaCIKIAogI2luY2x1ZGUgPFF0TmV0d29yay9xbmV0d29ya3JlcGx5Lmg+CkBAIC01
MSw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8
UVdlYlByZWZlcmVuY2VzPih1cmksIDMsIDAsICJXZWJQcmVmZXJlbmNlcyIsIFFPYmplY3Q6OnRy
KCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFdlYlByZWZlcmVuY2VzIikpOwog
ICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRUXVpY2tXZWJQYWdlPih1cmksIDMs
IDAsICJXZWJQYWdlIiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFu
Y2Ugb2YgV2ViUGFnZSwgdXNlIFdlYlZpZXciKSk7CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVh
dGFibGVUeXBlPFFOZXR3b3JrUmVwbHk+KHVyaSwgMywgMCwgIk5ldHdvcmtSZXBseSIsIFFPYmpl
Y3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIE5ldHdvcmtSZXBseSIp
KTsKKyAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVdlYlBlcm1pc3Npb25SZXF1
ZXN0Pih1cmksIDUsIDAsICJQZXJtaXNzaW9uUmVxdWVzdCIsIFFPYmplY3Q6OnRyKCJDYW5ub3Qg
Y3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFBlcm1pc3Npb25SZXF1ZXN0IikpOwogI2VuZGlm
CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YmJmNTEyLi5kNTkxMWNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTEtMTEtMjQgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8YWRlbmls
c29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XVtXSzJdIEltcGxlbWVudCBw
ZXJtaXNzaW9uIEFQSSBmb3IgUXQgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTkyMDAKKworICAgICAgICBQZXJtaXNzaW9uIEFQSSBob29rdXAg
Zm9yIEdlb2xvY2F0aW9uLCBpdCBhbGxvd3MgdG8gcmVjZWl2ZSBpbiBXZWJWaWV3CisgICAgICAg
IGEgc2lnbmFsIHdoZW4gYSBwZXJtaXNzaW9uIHJlcXVlc3QgaXMgZG9uZSAoZS5nLiB0byBncmFu
dCBwZXJtaXNzaW9uCisgICAgICAgIGZvciBhY2Nlc3NpbmcgZ2VvbG9jYXRpb24gaW5mb3JtYXRp
b24pIGFuZCBzZXQgaXQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cGVybWlzc2lvbnJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVx
dWVzdFByaXZhdGU6OlFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUpOgorICAgICAgICAoUVdl
YlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTo6flFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUp
OgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoUVdl
YlBlcm1pc3Npb25SZXF1ZXN0OjpRV2ViUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoUVdl
YlBlcm1pc3Npb25SZXF1ZXN0Ojp+UVdlYlBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFFX
ZWJQZXJtaXNzaW9uUmVxdWVzdDo6dHlwZSk6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVl
c3Q6OnNldEFsbG93KToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6YWxsb3cpOgor
ICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzY2hlbWUpOgorICAgICAgICAoUVdlYlBl
cm1pc3Npb25SZXF1ZXN0Ojpob3N0KToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6
cG9ydCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Rf
cC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuY3Bw
OgorICAgICAgICAoUXRXZWJQYWdlVUlDbGllbnQ6OlF0V2ViUGFnZVVJQ2xpZW50KToKKyAgICAg
ICAgKFF0V2ViUGFnZVVJQ2xpZW50OjpwZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChRdFdl
YlBhZ2VVSUNsaWVudDo6cG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50Lmg6CisKIDIwMTEtMTEtMjgg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIFJlbmFtZSBXZWJLaXROZXR3b3JrUmVxdWVzdCB0byBXZWJLaXRVUklSZXF1ZXN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0
LnByaQppbmRleCBmNjU1NDU5Li5hODRmMmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9U
YXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTI0OSw2ICsyNDks
NyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19w
X3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3AuaCBcCiAgICAg
VUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3BfcC5oIFwKKyAgICBVSVByb2Nlc3Mv
QVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2VicGFnZV9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9w
X3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBcCkBAIC01NTEs
NiArNTUyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJp
bmdRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLVVJMUXQuY3BwIFwKICAgICBV
SVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW0uY3BwIFwKKyAgICBVSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2VicGFnZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAg
XAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAppbmRleCBhOGQw
Y2ZkLi44MmFjN2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlld19wLmgKQEAgLTMxLDYgKzMxLDcgQEAgY2xhc3MgUVF1aWNrV2ViVmlld1By
aXZhdGU7CiBjbGFzcyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOwogY2xhc3MgUVdlYkRvd25s
b2FkSXRlbTsKIGNsYXNzIFFXZWJQcmVmZXJlbmNlczsKK2NsYXNzIFFXZWJQZXJtaXNzaW9uUmVx
dWVzdDsKIAogbmFtZXNwYWNlIFdUUiB7CiBjbGFzcyBQbGF0Zm9ybVdlYlZpZXc7CkBAIC0xOTEs
MTIgKzE5MiwxNCBAQCBRX1NJR05BTFM6CiAgICAgdm9pZCBjb25maXJtRGlhbG9nQ2hhbmdlZCgp
OwogICAgIHZvaWQgcHJvbXB0RGlhbG9nQ2hhbmdlZCgpOwogICAgIHZvaWQgZG93bmxvYWRSZXF1
ZXN0ZWQoUVdlYkRvd25sb2FkSXRlbSogZG93bmxvYWRJdGVtKTsKKyAgICB2b2lkIHBlcm1pc3Np
b25SZXF1ZXN0ZWQoUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uKTsKIAogcHJpdmF0
ZToKICAgICBRUXVpY2tXZWJWaWV3KiBxX3B0cjsKICAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZSog
ZF9wdHI7CiAKICAgICBmcmllbmQgY2xhc3MgUXRXZWJQYWdlUHJveHk7CisgICAgZnJpZW5kIGNs
YXNzIFF0V2ViUGFnZVVJQ2xpZW50OwogCiAgICAgUV9ERUNMQVJFX1BSSVZBVEUoUVF1aWNrV2Vi
VmlldykKICAgICBRX0RFQ0xBUkVfUFVCTElDKFFRdWlja1dlYlZpZXcpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZhNDM4NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25y
ZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAicXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCIKKwor
I2luY2x1ZGUgIldLU3RyaW5nUXQuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKworCitjbGFzcyBRV2ViUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlIDogcHVibGljIFFTaGFyZWREYXRhIHsKK3B1YmxpYzoKKyAgICBRV2ViUGVy
bWlzc2lvblJlcXVlc3RQcml2YXRlKFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4s
IFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCkKKyAg
ICAgICAgOiBvcmlnaW4oc2VjdXJpdHlPcmlnaW4pCisgICAgICAgICwgdHlwZShRV2ViUGVybWlz
c2lvblJlcXVlc3Q6Okdlb2xvY2F0aW9uKQorICAgICAgICAsIHJlcXVlc3QocGVybWlzc2lvblJl
cXVlc3QpCisgICAgICAgICwgYWxsb3coZmFsc2UpCisgICAgeworICAgIH0KKyAgICB+UVdlYlBl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSgpCisgICAgeworICAgIH0KKworICAgIFdLUmV0YWluUHRy
PFdLU2VjdXJpdHlPcmlnaW5SZWY+IG9yaWdpbjsKKyAgICBRV2ViUGVybWlzc2lvblJlcXVlc3Q6
OlJlcXVlc3RUeXBlIHR5cGU7CisgICAgV0tSZXRhaW5QdHI8V0tHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0UmVmPiByZXF1ZXN0OworICAgIGJvb2wgYWxsb3c7Cit9OworCitRV2ViUGVybWlz
c2lvblJlcXVlc3QqIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKFdLU2VjdXJpdHlPcmln
aW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCkK
K3sKKyAgICByZXR1cm4gbmV3IFFXZWJQZXJtaXNzaW9uUmVxdWVzdChvcmlnaW4sIHJlcXVlc3Qp
OworfQorCitRV2ViUGVybWlzc2lvblJlcXVlc3Q6OlFXZWJQZXJtaXNzaW9uUmVxdWVzdChXS1Nl
Y3VyaXR5T3JpZ2luUmVmIHNlY3VyaXR5T3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIFFPYmplY3QqIHBhcmVudCkKKyAgICA6IFFPYmpl
Y3QocGFyZW50KQorICAgICwgZChuZXcgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZShzZWN1
cml0eU9yaWdpbiwgcGVybWlzc2lvblJlcXVlc3QpKQoreworfQorCitRV2ViUGVybWlzc2lvblJl
cXVlc3Q6On5RV2ViUGVybWlzc2lvblJlcXVlc3QoKQoreworfQorCitRV2ViUGVybWlzc2lvblJl
cXVlc3Q6OlJlcXVlc3RUeXBlIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6dHlwZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGQtPnR5cGU7Cit9CisKK3ZvaWQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpz
ZXRBbGxvdyhib29sIGFjY2VwdGVkKQoreworICAgIGQtPmFsbG93ID0gYWNjZXB0ZWQ7CisgICAg
c3dpdGNoICh0eXBlKCkpIHsKKyAgICBjYXNlIEdlb2xvY2F0aW9uOiB7CisgICAgICAgIGlmIChh
Y2NlcHRlZCkKKyAgICAgICAgICAgIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEFsbG93
KGQtPnJlcXVlc3QuZ2V0KCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBXS0dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3REZW55KGQtPnJlcXVlc3QuZ2V0KCkpOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgfQorCisgICAgZGVsZXRlTGF0ZXIoKTsKK30KKworYm9vbCBRV2ViUGVybWlzc2lvblJlcXVl
c3Q6OmFsbG93KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+YWxsb3c7Cit9CisKK1FTdHJpbmcg
UVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzY2hlbWUoKSBjb25zdAoreworICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiB1cmwgPSBhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5UHJvdG9jb2wo
ZC0+b3JpZ2luLmdldCgpKSk7CisgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcodXJsLmdl
dCgpKTsKK30KKworUVN0cmluZyBRV2ViUGVybWlzc2lvblJlcXVlc3Q6Omhvc3QoKSBjb25zdAor
eworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBvcmlnaW4gPSBhZG9wdFdLKFdLU2VjdXJp
dHlPcmlnaW5Db3B5SG9zdChkLT5vcmlnaW4uZ2V0KCkpKTsKKyAgICByZXR1cm4gV0tTdHJpbmdD
b3B5UVN0cmluZyhvcmlnaW4uZ2V0KCkpOworfQorCitpbnQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0
Ojpwb3J0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihXS1NlY3VyaXR5
T3JpZ2luR2V0UG9ydChkLT5vcmlnaW4uZ2V0KCkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODI0YzRjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Rf
cC5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgcXdlYnBl
cm1pc3Npb25yZXF1ZXN0X3BfaAorI2RlZmluZSBxd2VicGVybWlzc2lvbnJlcXVlc3RfcF9oCisK
KyNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCisKKyNpbmNsdWRlIDxRdENvcmUvUU9iamVjdD4K
KyNpbmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tTZWN1cml0
eU9yaWdpbi5oPgorCitjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOworCitjbGFz
cyBRV0VCS0lUX0VYUE9SVCBRV2ViUGVybWlzc2lvblJlcXVlc3QgOiBwdWJsaWMgUU9iamVjdCB7
CisgICAgUV9PQkpFQ1QKKyAgICBRX1BST1BFUlRZKGJvb2wgYWxsb3cgUkVBRCBhbGxvdyBXUklU
RSBzZXRBbGxvdykKKyAgICBRX1BST1BFUlRZKFJlcXVlc3RUeXBlIHR5cGUgUkVBRCB0eXBlKQor
ICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzY2hlbWUgUkVBRCBzY2hlbWUpCisgICAgUV9QUk9QRVJU
WShRU3RyaW5nIGhvc3QgUkVBRCBob3N0KQorICAgIFFfUFJPUEVSVFkoaW50IHBvcnQgUkVBRCBw
b3J0KQorICAgIFFfRU5VTVMoUmVxdWVzdFR5cGUpCisKK3B1YmxpYzoKKyAgICBlbnVtIFJlcXVl
c3RUeXBlIHsKKyAgICAgICAgR2VvbG9jYXRpb24KKyAgICB9OworCisgICAgc3RhdGljIFFXZWJQ
ZXJtaXNzaW9uUmVxdWVzdCogY3JlYXRlKFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdFJlZik7CisgICAgdmlydHVhbCB+UVdlYlBlcm1pc3Npb25SZXF1
ZXN0KCk7CisKKyAgICBSZXF1ZXN0VHlwZSB0eXBlKCkgY29uc3Q7CisgICAgYm9vbCBhbGxvdygp
IGNvbnN0OworICAgIFFTdHJpbmcgc2NoZW1lKCkgY29uc3Q7CisgICAgUVN0cmluZyBob3N0KCkg
Y29uc3Q7CisgICAgaW50IHBvcnQoKSBjb25zdDsKKworcHVibGljIFFfU0xPVFM6CisgICAgdm9p
ZCBzZXRBbGxvdyhib29sKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUVdlYlBlcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZTsKKyAgICBRV2ViUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1cml0
eU9yaWdpblJlZiBzZWN1cml0eU9yaWdpbiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBRT2JqZWN0KiBwYXJlbnQgPSAwKTsKKworcHJpdmF0ZToK
KyAgICBRRXhwbGljaXRseVNoYXJlZERhdGFQb2ludGVyPFFXZWJQZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGU+IGQ7Cit9OworCisKKyNlbmRpZiAvLyBxd2VicGVybWlzc2lvbnJlcXVlc3RfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9nZW9wZXJtaXNzaW9uLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZ2VvcGVybWlzc2lvbi5xbWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk3YWIwOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90
c3RfZ2VvcGVybWlzc2lvbi5xbWwKQEAgLTAsMCArMSw1NCBAQAoraW1wb3J0IFF0UXVpY2sgMi4w
CitpbXBvcnQgUXRUZXN0IDEuMAoraW1wb3J0IFF0V2ViS2l0IDMuMAoraW1wb3J0IFF0V2ViS2l0
LmV4cGVyaW1lbnRhbCAzLjAKKworV2ViVmlldyB7CisgICAgaWQ6IHdlYlZpZXcKKyAgICB3aWR0
aDogMjAwCisgICAgaGVpZ2h0OiAyMDAKKworICAgIHByb3BlcnR5IGJvb2wgZXhwZWN0ZWRQZXJt
aXNzaW9uOiBmYWxzZQorCisgICAgU2lnbmFsU3B5IHsKKyAgICAgICAgaWQ6IHNweQorICAgICAg
ICB0YXJnZXQ6IGV4cGVyaW1lbnRhbAorICAgICAgICBzaWduYWxOYW1lOiAicGVybWlzc2lvblJl
cXVlc3RlZCIKKyAgICB9CisKKyAgICBleHBlcmltZW50YWwub25QZXJtaXNzaW9uUmVxdWVzdGVk
OiB7CisgICAgICAgIC8vTXVzdCBiZSBmYWxzZSBieSBkZWZhdWx0CisgICAgICAgIGlmICghcGVy
bWlzc2lvbi5hbGxvdykgeworICAgICAgICAgICBwZXJtaXNzaW9uLmFsbG93ID0gdHJ1ZQorICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgY29uc29sZS5sb2coIkZhaWw6IHBlcm1pc3Npb24gbXVz
dCBiZSBzZXQgdG8gZmFsc2UiKQorCisgICAgICAgIGlmIChwZXJtaXNzaW9uLnR5cGUgPT0gUGVy
bWlzc2lvblJlcXVlc3QuR2VvbG9jYXRpb24pIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJQ
ZXJtaXNzaW9uIGlzIGdlb3R5cGUiKQorICAgICAgICB9CisgICAgfQorCisgICAgVGVzdENhc2Ug
eworICAgICAgICBuYW1lOiAiV2ViVmlld0dlb3Blcm1pc3Npb24iCisKKyAgICAgICAgLy8gRGVs
YXllZCB3aW5kb3dTaG93biB0byB3b3JrYXJvdW5kIHByb2JsZW1zIHdpdGggUXQ1IGluIGRlYnVn
IG1vZGUuCisgICAgICAgIHdoZW46IGZhbHNlCisgICAgICAgIFRpbWVyIHsKKyAgICAgICAgICAg
IHJ1bm5pbmc6IHBhcmVudC53aW5kb3dTaG93bgorICAgICAgICAgICAgcmVwZWF0OiBmYWxzZQor
ICAgICAgICAgICAgaW50ZXJ2YWw6IDEKKyAgICAgICAgICAgIG9uVHJpZ2dlcmVkOiBwYXJlbnQu
d2hlbiA9IHRydWUKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAg
ICAgICAgICBzcHkuY2xlYXIoKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9w
ZXJtaXNzaW9uUmVxdWVzdCgpIHsKKyAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAwKQor
ICAgICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vZ2VvbG9j
YXRpb24uaHRtbCIpKQorICAgICAgICAgICAgc3B5LndhaXQoKQorICAgICAgICAgICAgY29tcGFy
ZShzcHkuY291bnQsIDEpCisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9nZW9sb2NhdGlv
bi5odG1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9j
b21tb24vZ2VvbG9jYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yZDQxY2FiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vZ2VvbG9jYXRpb24uaHRtbApAQCAtMCwwICsxLDI5
IEBACis8aGVhZD4KKzx0aXRsZT5HZW9sb2NhdGlvbiBQZXJtaXNzaW9uIEFQSSBUZXN0PC90aXRs
ZT4KKzxtZXRhIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aDsgaW5pdGlhbC1zY2FsZT0xLjA7
IG1heGltdW0tc2NhbGU9MS4wOyB1c2VyLXNjYWxhYmxlPTA7IiBuYW1lPSJ2aWV3cG9ydCIvPgor
PHNjcmlwdD4KK3ZhciB3YXRjaElkID0gMDsKKworZnVuY3Rpb24gc3VjY2Vzc0hhbmRsZXIobG9j
YXRpb24pIHsKKyAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtZXNz
YWdlIiksIGh0bWwgPSBbXTsKKyAgICBodG1sLnB1c2goIjxpbWcgd2lkdGg9JzI1NicgaGVpZ2h0
PScyNTYnIHNyYz0naHR0cDovL21hcHMuZ29vZ2xlLmNvbS9tYXBzL2FwaS9zdGF0aWNtYXA/Y2Vu
dGVyPSIsIGxvY2F0aW9uLmNvb3Jkcy5sYXRpdHVkZSwgIiwiLCBsb2NhdGlvbi5jb29yZHMubG9u
Z2l0dWRlLCAiJm1hcmtlcnM9c2l6ZTpzbWFsbHxjb2xvcjpibHVlfCIsIGxvY2F0aW9uLmNvb3Jk
cy5sYXRpdHVkZSwgIiwiLCBsb2NhdGlvbi5jb29yZHMubG9uZ2l0dWRlLCAiJnpvb209MTQmc2l6
ZT0yNTZ4MjU2JnNlbnNvcj1mYWxzZScgLz4iKTsKKyAgICBodG1sLnB1c2goIjxwPkxvbmdpdHVk
ZTogIiwgbG9jYXRpb24uY29vcmRzLmxvbmdpdHVkZSwgIjwvcD4iKTsKKyAgICBodG1sLnB1c2go
IjxwPkxhdGl0dWRlOiAiLCBsb2NhdGlvbi5jb29yZHMubGF0aXR1ZGUsICI8L3A+Iik7CisgICAg
aHRtbC5wdXNoKCI8cD5BY2N1cmFjeTogIiwgbG9jYXRpb24uY29vcmRzLmFjY3VyYWN5LCAiIG1l
dGVyczwvcD4iKTsKKyAgICBtZXNzYWdlLmlubmVySFRNTCA9IGh0bWwuam9pbigiIik7Cit9CisK
K2Z1bmN0aW9uIGVycm9ySGFuZGxlcihlcnJvcikgeworICAgIGFsZXJ0KCdBdHRlbXB0IHRvIGdl
dCBsb2NhdGlvbiBmYWlsZWQ6ICcgKyBlcnJvci5tZXNzYWdlKTsKK30KKworPCEtLSBPbmUgc2hv
dCBleGFtcGxlIC0tPgorbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihz
dWNjZXNzSGFuZGxlciwgZXJyb3JIYW5kbGVyKTsKKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9Im1lc3NhZ2UiPkxvY2F0aW9uIHVua25vd248L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0
cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybwppbmRleCA2NjBjYzYzLi5kYTkzZjAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3Ft
bHRlc3RzLnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL3FtbHRlc3RzLnBybwpAQCAtMjUsNiArMjUsNyBAQCBPVEhFUl9GSUxFUyArPSBcCiAg
ICAgV2ViVmlldy90c3RfcHJlZmVyZW5jZXMucW1sIFwKICAgICBXZWJWaWV3L3RzdF9sb2FkSHRt
bC5xbWwgXAogICAgIFdlYlZpZXcvdHN0X2Rvd25sb2FkLnFtbCBcCisgICAgV2ViVmlldy90c3Rf
Z2VvcGVybWlzc2lvbi5xbWwgXAogICAgIERlc2t0b3BCZWhhdmlvci90c3RfbGlua0hvdmVyZWQu
cW1sIFwKICAgICBEZXNrdG9wQmVoYXZpb3IvdHN0X21lc3NhZ2luZy5xbWwgXAogICAgIERlc2t0
b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3RlZC5xbWwgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5jcHAKaW5kZXggNzZkN2UwYy4u
MWE2ZjA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFn
ZVVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdl
VUlDbGllbnQuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiV0tVUkxRdC5oIgogI2lu
Y2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcF9wLmgi
CisjaW5jbHVkZSAicXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCIKICNpbmNsdWRlIDxXS0FQSUNh
c3QuaD4KICNpbmNsdWRlIDxXS0hpdFRlc3RSZXN1bHQuaD4KICNpbmNsdWRlIDxXS09wZW5QYW5l
bFBhcmFtZXRlcnMuaD4KQEAgLTQzLDYgKzQ0LDcgQEAgUXRXZWJQYWdlVUlDbGllbnQ6OlF0V2Vi
UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBRUXVpY2tXZWJWaWV3KiB3ZWJWaWV3KQog
ICAgIHVpQ2xpZW50LnNldFN0YXR1c1RleHQgPSBzZXRTdGF0dXNUZXh0OwogICAgIHVpQ2xpZW50
LnJ1bk9wZW5QYW5lbCA9IHJ1bk9wZW5QYW5lbDsKICAgICB1aUNsaWVudC5tb3VzZURpZE1vdmVP
dmVyRWxlbWVudCA9IG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIHVpQ2xpZW50LmRlY2lk
ZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QgPSBwb2xpY3lGb3JHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChwYWdlUmVm
LCAmdWlDbGllbnQpOwogfQogCkBAIC04MCw2ICs4MiwxMiBAQCB2b2lkIFF0V2ViUGFnZVVJQ2xp
ZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBRVXJsJiBsaW5rVVJMLCBjb25zdCBR
U3RyaQogICAgIGVtaXQgbV93ZWJWaWV3LT5saW5rSG92ZXJlZChtX2xhc3RIb3ZlcmVkVVJMLCBt
X2xhc3RIb3ZlcmVkVGl0bGUpOwogfQogCit2b2lkIFF0V2ViUGFnZVVJQ2xpZW50OjpwZXJtaXNz
aW9uUmVxdWVzdChRV2ViUGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgcmVxdWVz
dC0+c2V0UGFyZW50KG1fd2ViVmlldyk7CisgICAgZW1pdCBtX3dlYlZpZXctPmV4cGVyaW1lbnRh
bCgpLT5wZXJtaXNzaW9uUmVxdWVzdGVkKHJlcXVlc3QpOworfQorCiBzdGF0aWMgUXRXZWJQYWdl
VUlDbGllbnQqIHRvUXRXZWJQYWdlVUlDbGllbnQoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsK
ICAgICBBU1NFUlQoY2xpZW50SW5mbyk7CkBAIC0xMzksMyArMTQ3LDEzIEBAIHZvaWQgUXRXZWJQ
YWdlVUlDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdLUGFnZVJlZiBwYWdlLCBXS0hp
dFRlc3RSZXN1bHRSCiAgICAgY29uc3QgUVN0cmluZyBsaW5rVGl0bGUgPSBXS1N0cmluZ0NvcHlR
U3RyaW5nKGFkb3B0V0soV0tIaXRUZXN0UmVzdWx0Q29weUxpbmtUaXRsZShoaXRUZXN0UmVzdWx0
KSkuZ2V0KCkpOwogICAgIHRvUXRXZWJQYWdlVUlDbGllbnQoY2xpZW50SW5mbyktPm1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KGFic29sdXRlTGlua1VybCwgbGlua1RpdGxlKTsKIH0KKwordm9pZCBR
dFdlYlBhZ2VVSUNsaWVudDo6cG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChX
S1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmln
aW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0LCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiByZXEgPSBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OmNy
ZWF0ZShvcmlnaW4sIHJlcXVlc3QpOworICAgIHRvUXRXZWJQYWdlVUlDbGllbnQoY2xpZW50SW5m
byktPnBlcm1pc3Npb25SZXF1ZXN0KHJlcSk7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmgKaW5kZXggNDc0YTRlMS4uMjFkMWE0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmgKQEAg
LTIzLDkgKzIzLDEzIEBACiAKICNpbmNsdWRlIDxRdENvcmUvUVN0cmluZz4KICNpbmNsdWRlIDxR
dENvcmUvUVVybD4KKyNpbmNsdWRlIDxXS0ZyYW1lLmg+CisjaW5jbHVkZSA8V0tHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V0tQYWdlLmg+CisjaW5jbHVkZSA8V0tT
ZWN1cml0eU9yaWdpbi5oPgogCiBjbGFzcyBRUXVpY2tXZWJWaWV3OworY2xhc3MgUVdlYlBlcm1p
c3Npb25SZXF1ZXN0OwogCiBjbGFzcyBRdFdlYlBhZ2VVSUNsaWVudCB7CiBwdWJsaWM6CkBAIC00
Myw2ICs0Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRTdGF0dXNUZXh0KGNvbnN0IFFTdHJp
bmcmKTsKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVm
LCBjb25zdCBRU3RyaW5nTGlzdCYgc2VsZWN0ZWRGaWxlTmFtZXMsIEZpbGVDaG9vc2VyVHlwZSk7
CiAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBRVXJsJiBsaW5rVVJMLCBj
b25zdCBRU3RyaW5nJiBsaW5rVGl0bGUpOworICAgIHZvaWQgcGVybWlzc2lvblJlcXVlc3QoUVdl
YlBlcm1pc3Npb25SZXF1ZXN0Kik7CiAKICAgICAvLyBXS1BhZ2VVSUNsaWVudCBjYWxsYmFja3Mu
CiAgICAgc3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdLUGFnZVJlZiwgV0tTdHJpbmdS
ZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKQEAgLTUx
LDYgKzU2LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBzZXRTdGF0dXNUZXh0KFdLUGFn
ZVJlZiwgV0tTdHJpbmdSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2
b2lkIHJ1bk9wZW5QYW5lbChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLT3BlblBhbmVsUGFyYW1l
dGVyc1JlZiwgV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV0tQYWdlUmVm
LCBXS0hpdFRlc3RSZXN1bHRSZWYsIFdLRXZlbnRNb2RpZmllcnMsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgcG9saWN5Rm9yR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLU2VjdXJp
dHlPcmlnaW5SZWYsIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiwgY29uc3Qgdm9p
ZCopOwogCiAgICAgUVF1aWNrV2ViVmlldyogbV93ZWJWaWV3OwogICAgIFFVcmwgbV9sYXN0SG92
ZXJlZFVSTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwIGIvU291cmNl
L3F0d2Via2l0LWV4cG9ydC5tYXAKaW5kZXggYTQyNjIwMy4uYTU0NmNiMiAxMDA2NDQKLS0tIGEv
U291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAKKysrIGIvU291cmNlL3F0d2Via2l0LWV4cG9ydC5t
YXAKQEAgLTEyNyw2ICsxMjcsMTAgQEAgcXdrXzEuMCB7CiAgICAgICAgICpRUXVpY2tXZWJQYWdl
OwogICAgICAgICBub24tdmlydHVhbD90aHVuaz90bz9RUXVpY2tXZWJQYWdlKjsKICAgICAgICAg
UVF1aWNrV2ViUGFnZTo6KjsKKyAgICAgICAgKlFXZWJQZXJtaXNzaW9uUmVxdWVzdDsKKyAgICAg
ICAgbm9uLXZpcnR1YWw/dGh1bms/dG8/UVdlYlBlcm1pc3Npb25SZXF1ZXN0KjsKKyAgICAgICAg
UVdlYlBlcm1pc3Npb25SZXF1ZXN0OjoqOworCiAKICAgICAgICAgIyBXZWJLaXQgMiBDIEFQSSBt
YW5nbGVkIGluIEMrKwogICAgICAgICBXS1N0cmluZ0NvcHlRU3RyaW5nKjsKLS0gCjEuNy40LjEK
Cg==
</data>
<flag name="review"
          id="115999"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116776</attachid>
            <date>2011-11-28 10:12:34 -0800</date>
            <delta_ts>2011-11-29 05:53:35 -0800</delta_ts>
            <desc>Previous fixes, plus Changelog.</desc>
            <filename>geoperm15.patch</filename>
            <type>text/plain</type>
            <size>21846</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBiMzYyNzk2OTEzYjM1ZTgxMjY2NmMzNTE3MzQ1YjZjNDgyODNmOTc1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IE1vbiwgMjggTm92IDIwMTEgMTQ6MDg6MTAgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBSZWJhc2VkLCBjb2Rpbmcgc3R5bGUsIHFtbCB0ZXN0cywgaHRtbCB0ZXN0
IGNsZWFudXAsCiBza2lwIHRlc3Qgd2hpbGUgYm90IGhhcyBub3QgcXRsb2NhdGlvbi4KClNpZ25l
ZC1vZmYtYnk6IEFkZW5pbHNvbiBDYXZhbGNhbnRpIDxhZGVuaWxzb24uc2lsdmFAb3BlbmJvc3Nh
Lm9yZz4KLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTMgKysrCiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTQgKysrCiBTb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdp
bi5jcHAgICAgICAgICAgICB8ICAgIDIgKwogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDM1ICsrKysrKysKIFNvdXJjZS9XZWJLaXQyL1Rhcmdl
dC5wcmkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oICB8ICAgIDMgKwogLi4uL1VJUHJvY2Vz
cy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcCAgICAgfCAgMTA2ICsrKysrKysrKysr
KysrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5o
ICAgICB8ICAgNjcgKysrKysrKysrKysrCiAuLi4vdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rf
Z2VvcGVybWlzc2lvbi5xbWwgICB8ICAgNTUgKysrKysrKysrKwogLi4uL0FQSS9xdC90ZXN0cy9x
bWx0ZXN0cy9jb21tb24vZ2VvbG9jYXRpb24uaHRtbCAgfCAgIDI5ICsrKysrKwogLi4uL1VJUHJv
Y2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvICAgfCAgICAxICsKIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5jcHAgIHwgICAxOCArKysr
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuaCAgICB8ICAg
IDYgKwogU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgICA0ICsKIDE0IGZpbGVzIGNoYW5nZWQsIDM1NSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9u
cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMv
V2ViVmlldy90c3RfZ2VvcGVybWlzc2lvbi5xbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9nZW9sb2NhdGlv
bi5odG1sCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDZlM2QxYjYu
LjE2NzdlNWIgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMS0xMS0yOCAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxhZGVuaWxzb24uc2ls
dmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbUXRdW1dLMl0gSW1wbGVtZW50IHBlcm1pc3Np
b24gQVBJIGZvciBRdCBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01OTIwMAorCisgICAgICAgIFBlcm1pc3Npb24gQVBJIGhvb2t1cCBmb3IgR2Vv
bG9jYXRpb24sIGl0IGFsbG93cyB0byByZWNlaXZlIGluIFdlYlZpZXcKKyAgICAgICAgYSBzaWdu
YWwgd2hlbiBhIHBlcm1pc3Npb24gcmVxdWVzdCBpcyBkb25lIChlLmcuIHRvIGdyYW50IHBlcm1p
c3Npb24KKyAgICAgICAgZm9yIGFjY2Vzc2luZyBnZW9sb2NhdGlvbiBpbmZvcm1hdGlvbikgYW5k
IHNldCBpdCBhY2NvcmRpbmdseS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwOgorCiAyMDExLTExLTI4
ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBb
UXRdIFdURiBzaG91bGQgYmUgYnVpbHQgYXMgc2VwYXJhdGUgc3RhdGljIGxpYnJhcnkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKaW5kZXggNDU4MGM5YS4uMjM2N2I4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxMS0xMS0yOCAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxhZGVuaWxzb24uc2lsdmFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbUXRdW1dLMl0gSW1wbGVtZW50IHBlcm1pc3Npb24g
QVBJIGZvciBRdCBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01OTIwMAorCisgICAgICAgIFBlcm1pc3Npb24gQVBJIGhvb2t1cCBmb3IgR2VvbG9j
YXRpb24sIGl0IGFsbG93cyB0byByZWNlaXZlIGluIFdlYlZpZXcKKyAgICAgICAgYSBzaWduYWwg
d2hlbiBhIHBlcm1pc3Npb24gcmVxdWVzdCBpcyBkb25lIChlLmcuIHRvIGdyYW50IHBlcm1pc3Np
b24KKyAgICAgICAgZm9yIGFjY2Vzc2luZyBnZW9sb2NhdGlvbiBpbmZvcm1hdGlvbikgYW5kIHNl
dCBpdCBhY2NvcmRpbmdseS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGRlY2xhcmF0aXZlL3BsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXRRbWxQ
bHVnaW46OnJlZ2lzdGVyVHlwZXMpOgorCiAyMDExLTExLTI2ICBQYXZlbCBGZWxkbWFuICA8cGZl
bGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZW1vdmUgZGlzY29u
bmVjdEZyb21CYWNrZW5kIGZyb20gdGhlIHByb3RvY29sLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJh
dGl2ZS9wbHVnaW4uY3BwCmluZGV4IGRjOWNiN2UuLmUwOWE5OGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpZiBkZWZpbmVkKEhB
VkVfV0VCS0lUMikKICNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKICNpbmNsdWRlICJxcXVp
Y2t3ZWJ2aWV3X3AuaCIKKyNpbmNsdWRlICJxd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIgogI2lu
Y2x1ZGUgInF3ZWJwcmVmZXJlbmNlc19wLmgiCiAKICNpbmNsdWRlIDxRdE5ldHdvcmsvcW5ldHdv
cmtyZXBseS5oPgpAQCAtNTEsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHFtbFJlZ2lzdGVy
VW5jcmVhdGFibGVUeXBlPFFXZWJQcmVmZXJlbmNlcz4odXJpLCAzLCAwLCAiV2ViUHJlZmVyZW5j
ZXMiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBXZWJQ
cmVmZXJlbmNlcyIpKTsKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVF1aWNr
V2ViUGFnZT4odXJpLCAzLCAwLCAiV2ViUGFnZSIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRl
IHNlcGFyYXRlIGluc3RhbmNlIG9mIFdlYlBhZ2UsIHVzZSBXZWJWaWV3IikpOwogICAgICAgICBx
bWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRTmV0d29ya1JlcGx5Pih1cmksIDMsIDAsICJOZXR3
b3JrUmVwbHkiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBv
ZiBOZXR3b3JrUmVwbHkiKSk7CisgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFX
ZWJQZXJtaXNzaW9uUmVxdWVzdD4odXJpLCA1LCAwLCAiUGVybWlzc2lvblJlcXVlc3QiLCBRT2Jq
ZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBQZXJtaXNzaW9uUmVx
dWVzdCIpKTsKICNlbmRpZgogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2JiZjUxMi4uZGU1ZTI5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDExLTExLTI4ICBBZGVuaWxzb24gQ2F2
YWxjYW50aSAgPGFkZW5pbHNvbi5zaWx2YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtRdF1b
V0syXSBJbXBsZW1lbnQgcGVybWlzc2lvbiBBUEkgZm9yIFF0IHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MjAwCisKKyAgICAgICAgUGVybWlz
c2lvbiBBUEkgaG9va3VwIGZvciBHZW9sb2NhdGlvbiwgaXQgYWxsb3dzIHRvIHJlY2VpdmUgaW4g
V2ViVmlldworICAgICAgICBhIHNpZ25hbCB3aGVuIGEgcGVybWlzc2lvbiByZXF1ZXN0IGlzIGRv
bmUgKGUuZy4gdG8gZ3JhbnQgcGVybWlzc2lvbgorICAgICAgICBmb3IgYWNjZXNzaW5nIGdlb2xv
Y2F0aW9uIGluZm9ybWF0aW9uKSBhbmQgc2V0IGl0IGFjY29yZGluZ2x5LgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChR
V2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOjpRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRl
KToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU6On5RV2ViUGVybWlzc2lv
blJlcXVlc3RQcml2YXRlKToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRl
KToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6UVdlYlBlcm1pc3Npb25SZXF1ZXN0
KToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6flFXZWJQZXJtaXNzaW9uUmVxdWVz
dCk6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnR5cGUpOgorICAgICAgICAoUVdl
YlBlcm1pc3Npb25SZXF1ZXN0OjpzZXRBbGxvdyk6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJl
cXVlc3Q6OmFsbG93KToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2NoZW1lKToK
KyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6aG9zdCk6CisgICAgICAgIChRV2ViUGVy
bWlzc2lvblJlcXVlc3Q6OnBvcnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBl
cm1pc3Npb25yZXF1ZXN0X3AuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9nZW9wZXJtaXNzaW9uLnFtbDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vZ2VvbG9jYXRpb24u
aHRtbDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9x
bWx0ZXN0cy5wcm86CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmNw
cDoKKyAgICAgICAgKFF0V2ViUGFnZVVJQ2xpZW50OjpRdFdlYlBhZ2VVSUNsaWVudCk6CisgICAg
ICAgIChRdFdlYlBhZ2VVSUNsaWVudDo6cGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoUXRX
ZWJQYWdlVUlDbGllbnQ6OnBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5oOgorCiAyMDExLTExLTI4
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLXSBSZW5hbWUgV2ViS2l0TmV0d29ya1JlcXVlc3QgdG8gV2ViS2l0VVJJUmVxdWVzdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1Rhcmdl
dC5wcmkKaW5kZXggZjY1NTQ1OS4uYTg0ZjJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0yNDksNiArMjQ5
LDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNf
cF9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wLmggXAogICAg
IFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wX3AuaCBcCisgICAgVUlQcm9jZXNz
L0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnBhZ2VfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2Vf
cF9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggXApAQCAtNTUx
LDYgKzU1Miw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3Ry
aW5nUXQuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcCBcCiAgICAg
VUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtLmNwcCBcCisgICAgVUlQcm9jZXNzL0FQ
SS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnBhZ2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKaW5kZXggYThk
MGNmZC4uODJhYzdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXdfcC5oCkBAIC0zMSw2ICszMSw3IEBAIGNsYXNzIFFRdWlja1dlYlZpZXdQ
cml2YXRlOwogY2xhc3MgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDsKIGNsYXNzIFFXZWJEb3du
bG9hZEl0ZW07CiBjbGFzcyBRV2ViUHJlZmVyZW5jZXM7CitjbGFzcyBRV2ViUGVybWlzc2lvblJl
cXVlc3Q7CiAKIG5hbWVzcGFjZSBXVFIgewogY2xhc3MgUGxhdGZvcm1XZWJWaWV3OwpAQCAtMTkx
LDEyICsxOTIsMTQgQEAgUV9TSUdOQUxTOgogICAgIHZvaWQgY29uZmlybURpYWxvZ0NoYW5nZWQo
KTsKICAgICB2b2lkIHByb21wdERpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIGRvd25sb2FkUmVx
dWVzdGVkKFFXZWJEb3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSk7CisgICAgdm9pZCBwZXJtaXNz
aW9uUmVxdWVzdGVkKFFXZWJQZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvbik7CiAKIHByaXZh
dGU6CiAgICAgUVF1aWNrV2ViVmlldyogcV9wdHI7CiAgICAgUVF1aWNrV2ViVmlld1ByaXZhdGUq
IGRfcHRyOwogCiAgICAgZnJpZW5kIGNsYXNzIFF0V2ViUGFnZVByb3h5OworICAgIGZyaWVuZCBj
bGFzcyBRdFdlYlBhZ2VVSUNsaWVudDsKIAogICAgIFFfREVDTEFSRV9QUklWQVRFKFFRdWlja1dl
YlZpZXcpCiAgICAgUV9ERUNMQVJFX1BVQkxJQyhRUXVpY2tXZWJWaWV3KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Qu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2YTQzODUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9u
cmVxdWVzdC5jcHAKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEx
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgiCisK
KyNpbmNsdWRlICJXS1N0cmluZ1F0LmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNp
bmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisKKworY2xhc3MgUVdlYlBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZSA6IHB1YmxpYyBRU2hhcmVkRGF0YSB7CitwdWJsaWM6CisgICAgUVdlYlBl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmIHNlY3VyaXR5T3JpZ2lu
LCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QpCisg
ICAgICAgIDogb3JpZ2luKHNlY3VyaXR5T3JpZ2luKQorICAgICAgICAsIHR5cGUoUVdlYlBlcm1p
c3Npb25SZXF1ZXN0OjpHZW9sb2NhdGlvbikKKyAgICAgICAgLCByZXF1ZXN0KHBlcm1pc3Npb25S
ZXF1ZXN0KQorICAgICAgICAsIGFsbG93KGZhbHNlKQorICAgIHsKKyAgICB9CisgICAgflFXZWJQ
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUoKQorICAgIHsKKyAgICB9CisKKyAgICBXS1JldGFpblB0
cjxXS1NlY3VyaXR5T3JpZ2luUmVmPiBvcmlnaW47CisgICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0
OjpSZXF1ZXN0VHlwZSB0eXBlOworICAgIFdLUmV0YWluUHRyPFdLR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdFJlZj4gcmVxdWVzdDsKKyAgICBib29sIGFsbG93OworfTsKKworUVdlYlBlcm1p
c3Npb25SZXF1ZXN0KiBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShXS1NlY3VyaXR5T3Jp
Z2luUmVmIG9yaWdpbiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3Qp
Cit7CisgICAgcmV0dXJuIG5ldyBRV2ViUGVybWlzc2lvblJlcXVlc3Qob3JpZ2luLCByZXF1ZXN0
KTsKK30KKworUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpRV2ViUGVybWlzc2lvblJlcXVlc3QoV0tT
ZWN1cml0eU9yaWdpblJlZiBzZWN1cml0eU9yaWdpbiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBRT2JqZWN0KiBwYXJlbnQpCisgICAgOiBRT2Jq
ZWN0KHBhcmVudCkKKyAgICAsIGQobmV3IFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUoc2Vj
dXJpdHlPcmlnaW4sIHBlcm1pc3Npb25SZXF1ZXN0KSkKK3sKK30KKworUVdlYlBlcm1pc3Npb25S
ZXF1ZXN0Ojp+UVdlYlBlcm1pc3Npb25SZXF1ZXN0KCkKK3sKK30KKworUVdlYlBlcm1pc3Npb25S
ZXF1ZXN0OjpSZXF1ZXN0VHlwZSBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnR5cGUoKSBjb25zdAor
eworICAgIHJldHVybiBkLT50eXBlOworfQorCit2b2lkIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6
c2V0QWxsb3coYm9vbCBhY2NlcHRlZCkKK3sKKyAgICBkLT5hbGxvdyA9IGFjY2VwdGVkOworICAg
IHN3aXRjaCAodHlwZSgpKSB7CisgICAgY2FzZSBHZW9sb2NhdGlvbjogeworICAgICAgICBpZiAo
YWNjZXB0ZWQpCisgICAgICAgICAgICBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxv
dyhkLT5yZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgV0tHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueShkLT5yZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIH0KKworICAgIGRlbGV0ZUxhdGVyKCk7Cit9CisKK2Jvb2wgUVdlYlBlcm1pc3Npb25SZXF1
ZXN0OjphbGxvdygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPmFsbG93OworfQorCitRU3RyaW5n
IFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2NoZW1lKCkgY29uc3QKK3sKKyAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gdXJsID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weVByb3RvY29s
KGQtPm9yaWdpbi5nZXQoKSkpOworICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKHVybC5n
ZXQoKSk7Cit9CisKK1FTdHJpbmcgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpob3N0KCkgY29uc3QK
K3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gb3JpZ2luID0gYWRvcHRXSyhXS1NlY3Vy
aXR5T3JpZ2luQ29weUhvc3QoZC0+b3JpZ2luLmdldCgpKSk7CisgICAgcmV0dXJuIFdLU3RyaW5n
Q29weVFTdHJpbmcob3JpZ2luLmdldCgpKTsKK30KKworaW50IFFXZWJQZXJtaXNzaW9uUmVxdWVz
dDo6cG9ydCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oV0tTZWN1cml0
eU9yaWdpbkdldFBvcnQoZC0+b3JpZ2luLmdldCgpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTgyNGM0YwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0
X3AuaApAQCAtMCwwICsxLDY3IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIHF3ZWJw
ZXJtaXNzaW9ucmVxdWVzdF9wX2gKKyNkZWZpbmUgcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3BfaAor
CisjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgorCisjaW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+
CisjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRkYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0dl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJp
dHlPcmlnaW4uaD4KKworY2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKKworY2xh
c3MgUVdFQktJVF9FWFBPUlQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFFPYmplY3Qg
eworICAgIFFfT0JKRUNUCisgICAgUV9QUk9QRVJUWShib29sIGFsbG93IFJFQUQgYWxsb3cgV1JJ
VEUgc2V0QWxsb3cpCisgICAgUV9QUk9QRVJUWShSZXF1ZXN0VHlwZSB0eXBlIFJFQUQgdHlwZSkK
KyAgICBRX1BST1BFUlRZKFFTdHJpbmcgc2NoZW1lIFJFQUQgc2NoZW1lKQorICAgIFFfUFJPUEVS
VFkoUVN0cmluZyBob3N0IFJFQUQgaG9zdCkKKyAgICBRX1BST1BFUlRZKGludCBwb3J0IFJFQUQg
cG9ydCkKKyAgICBRX0VOVU1TKFJlcXVlc3RUeXBlKQorCitwdWJsaWM6CisgICAgZW51bSBSZXF1
ZXN0VHlwZSB7CisgICAgICAgIEdlb2xvY2F0aW9uCisgICAgfTsKKworICAgIHN0YXRpYyBRV2Vi
UGVybWlzc2lvblJlcXVlc3QqIGNyZWF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS0dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RSZWYpOworICAgIHZpcnR1YWwgflFXZWJQZXJtaXNzaW9uUmVx
dWVzdCgpOworCisgICAgUmVxdWVzdFR5cGUgdHlwZSgpIGNvbnN0OworICAgIGJvb2wgYWxsb3co
KSBjb25zdDsKKyAgICBRU3RyaW5nIHNjaGVtZSgpIGNvbnN0OworICAgIFFTdHJpbmcgaG9zdCgp
IGNvbnN0OworICAgIGludCBwb3J0KCkgY29uc3Q7CisKK3B1YmxpYyBRX1NMT1RTOgorICAgIHZv
aWQgc2V0QWxsb3coYm9vbCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFFXZWJQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGU7CisgICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0KFdLU2VjdXJp
dHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgUU9iamVjdCogcGFyZW50ID0gMCk7CisKK3ByaXZhdGU6
CisgICAgUUV4cGxpY2l0bHlTaGFyZWREYXRhUG9pbnRlcjxRV2ViUGVybWlzc2lvblJlcXVlc3RQ
cml2YXRlPiBkOworfTsKKworCisjZW5kaWYgLy8gcXdlYnBlcm1pc3Npb25yZXF1ZXN0X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMv
V2ViVmlldy90c3RfZ2VvcGVybWlzc2lvbi5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2dlb3Blcm1pc3Npb24ucW1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2NGM5NzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcv
dHN0X2dlb3Blcm1pc3Npb24ucW1sCkBAIC0wLDAgKzEsNTUgQEAKK2ltcG9ydCBRdFF1aWNrIDIu
MAoraW1wb3J0IFF0VGVzdCAxLjAKK2ltcG9ydCBRdFdlYktpdCAzLjAKK2ltcG9ydCBRdFdlYktp
dC5leHBlcmltZW50YWwgMy4wCisKK1dlYlZpZXcgeworICAgIGlkOiB3ZWJWaWV3CisgICAgd2lk
dGg6IDIwMAorICAgIGhlaWdodDogMjAwCisKKyAgICBwcm9wZXJ0eSBib29sIGV4cGVjdGVkUGVy
bWlzc2lvbjogZmFsc2UKKworICAgIFNpZ25hbFNweSB7CisgICAgICAgIGlkOiBzcHkKKyAgICAg
ICAgdGFyZ2V0OiBleHBlcmltZW50YWwKKyAgICAgICAgc2lnbmFsTmFtZTogInBlcm1pc3Npb25S
ZXF1ZXN0ZWQiCisgICAgfQorCisgICAgZXhwZXJpbWVudGFsLm9uUGVybWlzc2lvblJlcXVlc3Rl
ZDogeworICAgICAgICAvL011c3QgYmUgZmFsc2UgYnkgZGVmYXVsdAorICAgICAgICBpZiAoIXBl
cm1pc3Npb24uYWxsb3cpIHsKKyAgICAgICAgICAgcGVybWlzc2lvbi5hbGxvdyA9IHRydWUKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgIGNvbnNvbGUubG9nKCJGYWlsOiBwZXJtaXNzaW9uIG11
c3QgYmUgc2V0IHRvIGZhbHNlIikKKworICAgICAgICBpZiAocGVybWlzc2lvbi50eXBlID09IFBl
cm1pc3Npb25SZXF1ZXN0Lkdlb2xvY2F0aW9uKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZygi
UGVybWlzc2lvbiBpcyBnZW90eXBlIikKKyAgICAgICAgfQorICAgIH0KKworICAgIFRlc3RDYXNl
IHsKKyAgICAgICAgbmFtZTogIldlYlZpZXdHZW9wZXJtaXNzaW9uIgorCisgICAgICAgIC8vIERl
bGF5ZWQgd2luZG93U2hvd24gdG8gd29ya2Fyb3VuZCBwcm9ibGVtcyB3aXRoIFF0NSBpbiBkZWJ1
ZyBtb2RlLgorICAgICAgICB3aGVuOiBmYWxzZQorICAgICAgICBUaW1lciB7CisgICAgICAgICAg
ICBydW5uaW5nOiBwYXJlbnQud2luZG93U2hvd24KKyAgICAgICAgICAgIHJlcGVhdDogZmFsc2UK
KyAgICAgICAgICAgIGludGVydmFsOiAxCisgICAgICAgICAgICBvblRyaWdnZXJlZDogcGFyZW50
LndoZW4gPSB0cnVlCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBpbml0KCkgeworICAg
ICAgICAgICAgc3B5LmNsZWFyKCkKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRlc3Rf
cGVybWlzc2lvblJlcXVlc3QoKSB7CisgICAgICAgICAgICBza2lwKCJXYWl0aW5nIGZvciBxdGxv
Y2F0aW9uIGJlaW5nIGluY2x1ZGVkIGluIHRoZSBib3QiKQorICAgICAgICAgICAgY29tcGFyZShz
cHkuY291bnQsIDApCisgICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4u
L2NvbW1vbi9nZW9sb2NhdGlvbi5odG1sIikpCisgICAgICAgICAgICBzcHkud2FpdCgpCisgICAg
ICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMSkKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29t
bW9uL2dlb2xvY2F0aW9uLmh0bWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL2NvbW1vbi9nZW9sb2NhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjJkNDFjYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9nZW9sb2NhdGlvbi5odG1s
CkBAIC0wLDAgKzEsMjkgQEAKKzxoZWFkPgorPHRpdGxlPkdlb2xvY2F0aW9uIFBlcm1pc3Npb24g
QVBJIFRlc3Q8L3RpdGxlPgorPG1ldGEgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoOyBpbml0
aWFsLXNjYWxlPTEuMDsgbWF4aW11bS1zY2FsZT0xLjA7IHVzZXItc2NhbGFibGU9MDsiIG5hbWU9
InZpZXdwb3J0Ii8+Cis8c2NyaXB0PgordmFyIHdhdGNoSWQgPSAwOworCitmdW5jdGlvbiBzdWNj
ZXNzSGFuZGxlcihsb2NhdGlvbikgeworICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm1lc3NhZ2UiKSwgaHRtbCA9IFtdOworICAgIGh0bWwucHVzaCgiPGltZyB3aWR0
aD0nMjU2JyBoZWlnaHQ9JzI1Nicgc3JjPSdodHRwOi8vbWFwcy5nb29nbGUuY29tL21hcHMvYXBp
L3N0YXRpY21hcD9jZW50ZXI9IiwgbG9jYXRpb24uY29vcmRzLmxhdGl0dWRlLCAiLCIsIGxvY2F0
aW9uLmNvb3Jkcy5sb25naXR1ZGUsICImbWFya2Vycz1zaXplOnNtYWxsfGNvbG9yOmJsdWV8Iiwg
bG9jYXRpb24uY29vcmRzLmxhdGl0dWRlLCAiLCIsIGxvY2F0aW9uLmNvb3Jkcy5sb25naXR1ZGUs
ICImem9vbT0xNCZzaXplPTI1NngyNTYmc2Vuc29yPWZhbHNlJyAvPiIpOworICAgIGh0bWwucHVz
aCgiPHA+TG9uZ2l0dWRlOiAiLCBsb2NhdGlvbi5jb29yZHMubG9uZ2l0dWRlLCAiPC9wPiIpOwor
ICAgIGh0bWwucHVzaCgiPHA+TGF0aXR1ZGU6ICIsIGxvY2F0aW9uLmNvb3Jkcy5sYXRpdHVkZSwg
IjwvcD4iKTsKKyAgICBodG1sLnB1c2goIjxwPkFjY3VyYWN5OiAiLCBsb2NhdGlvbi5jb29yZHMu
YWNjdXJhY3ksICIgbWV0ZXJzPC9wPiIpOworICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gaHRtbC5q
b2luKCIiKTsKK30KKworZnVuY3Rpb24gZXJyb3JIYW5kbGVyKGVycm9yKSB7CisgICAgYWxlcnQo
J0F0dGVtcHQgdG8gZ2V0IGxvY2F0aW9uIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UpOworfQor
Cis8IS0tIE9uZSBzaG90IGV4YW1wbGUgLS0+CituYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3Vy
cmVudFBvc2l0aW9uKHN1Y2Nlc3NIYW5kbGVyLCBlcnJvckhhbmRsZXIpOworCis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibWVzc2FnZSI+TG9jYXRpb24gdW5rbm93bjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvCmluZGV4IDY2MGNjNjMu
LmRhOTNmMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVz
dHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvCkBAIC0yNSw2ICsyNSw3IEBAIE9USEVS
X0ZJTEVTICs9IFwKICAgICBXZWJWaWV3L3RzdF9wcmVmZXJlbmNlcy5xbWwgXAogICAgIFdlYlZp
ZXcvdHN0X2xvYWRIdG1sLnFtbCBcCiAgICAgV2ViVmlldy90c3RfZG93bmxvYWQucW1sIFwKKyAg
ICBXZWJWaWV3L3RzdF9nZW9wZXJtaXNzaW9uLnFtbCBcCiAgICAgRGVza3RvcEJlaGF2aW9yL3Rz
dF9saW5rSG92ZXJlZC5xbWwgXAogICAgIERlc2t0b3BCZWhhdmlvci90c3RfbWVzc2FnaW5nLnFt
bCBcCiAgICAgRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUmVxdWVzdGVkLnFtbCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmNwcApp
bmRleCA3NmQ3ZTBjLi4xYTZmMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJX
S1VSTFF0LmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCiAjaW5jbHVkZSAicXF1aWNr
d2Vidmlld19wX3AuaCIKKyNpbmNsdWRlICJxd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIgogI2lu
Y2x1ZGUgPFdLQVBJQ2FzdC5oPgogI2luY2x1ZGUgPFdLSGl0VGVzdFJlc3VsdC5oPgogI2luY2x1
ZGUgPFdLT3BlblBhbmVsUGFyYW1ldGVycy5oPgpAQCAtNDMsNiArNDQsNyBAQCBRdFdlYlBhZ2VV
SUNsaWVudDo6UXRXZWJQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIFFRdWlja1dlYlZp
ZXcqIHdlYlZpZXcpCiAgICAgdWlDbGllbnQuc2V0U3RhdHVzVGV4dCA9IHNldFN0YXR1c1RleHQ7
CiAgICAgdWlDbGllbnQucnVuT3BlblBhbmVsID0gcnVuT3BlblBhbmVsOwogICAgIHVpQ2xpZW50
Lm1vdXNlRGlkTW92ZU92ZXJFbGVtZW50ID0gbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAg
dWlDbGllbnQuZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCA9IHBv
bGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CiAgICAgV0tQYWdlU2V0UGFnZVVJ
Q2xpZW50KHBhZ2VSZWYsICZ1aUNsaWVudCk7CiB9CiAKQEAgLTgwLDYgKzgyLDEyIEBAIHZvaWQg
UXRXZWJQYWdlVUlDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFFVcmwmIGxp
bmtVUkwsIGNvbnN0IFFTdHJpCiAgICAgZW1pdCBtX3dlYlZpZXctPmxpbmtIb3ZlcmVkKG1fbGFz
dEhvdmVyZWRVUkwsIG1fbGFzdEhvdmVyZWRUaXRsZSk7CiB9CiAKK3ZvaWQgUXRXZWJQYWdlVUlD
bGllbnQ6OnBlcm1pc3Npb25SZXF1ZXN0KFFXZWJQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkK
K3sKKyAgICByZXF1ZXN0LT5zZXRQYXJlbnQobV93ZWJWaWV3KTsKKyAgICBlbWl0IG1fd2ViVmll
dy0+ZXhwZXJpbWVudGFsKCktPnBlcm1pc3Npb25SZXF1ZXN0ZWQocmVxdWVzdCk7Cit9CisKIHN0
YXRpYyBRdFdlYlBhZ2VVSUNsaWVudCogdG9RdFdlYlBhZ2VVSUNsaWVudChjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogewogICAgIEFTU0VSVChjbGllbnRJbmZvKTsKQEAgLTEzOSwzICsxNDcsMTMg
QEAgdm9pZCBRdFdlYlBhZ2VVSUNsaWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV0tQYWdl
UmVmIHBhZ2UsIFdLSGl0VGVzdFJlc3VsdFIKICAgICBjb25zdCBRU3RyaW5nIGxpbmtUaXRsZSA9
IFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS0hpdFRlc3RSZXN1bHRDb3B5TGlua1RpdGxl
KGhpdFRlc3RSZXN1bHQpKS5nZXQoKSk7CiAgICAgdG9RdFdlYlBhZ2VVSUNsaWVudChjbGllbnRJ
bmZvKS0+bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoYWJzb2x1dGVMaW5rVXJsLCBsaW5rVGl0bGUp
OwogfQorCit2b2lkIFF0V2ViUGFnZVVJQ2xpZW50Ojpwb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1NlY3VyaXR5
T3JpZ2luUmVmIG9yaWdpbiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVl
c3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgaWYgKCFyZXF1ZXN0KQorICAgICAg
ICByZXR1cm47CisKKyAgICBRV2ViUGVybWlzc2lvblJlcXVlc3QqIHJlcSA9IFFXZWJQZXJtaXNz
aW9uUmVxdWVzdDo6Y3JlYXRlKG9yaWdpbiwgcmVxdWVzdCk7CisgICAgdG9RdFdlYlBhZ2VVSUNs
aWVudChjbGllbnRJbmZvKS0+cGVybWlzc2lvblJlcXVlc3QocmVxKTsKK30KKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuaAppbmRleCA0NzRhNGUx
Li4yMWQxYTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQ
YWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdl
VUlDbGllbnQuaApAQCAtMjMsOSArMjMsMTMgQEAKIAogI2luY2x1ZGUgPFF0Q29yZS9RU3RyaW5n
PgogI2luY2x1ZGUgPFF0Q29yZS9RVXJsPgorI2luY2x1ZGUgPFdLRnJhbWUuaD4KKyNpbmNsdWRl
IDxXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaD4KICNpbmNsdWRlIDxXS1BhZ2UuaD4K
KyNpbmNsdWRlIDxXS1NlY3VyaXR5T3JpZ2luLmg+CiAKIGNsYXNzIFFRdWlja1dlYlZpZXc7Citj
bGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3Q7CiAKIGNsYXNzIFF0V2ViUGFnZVVJQ2xpZW50IHsK
IHB1YmxpYzoKQEAgLTQzLDYgKzQ3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFN0YXR1c1Rl
eHQoY29uc3QgUVN0cmluZyYpOwogICAgIHZvaWQgcnVuT3BlblBhbmVsKFdLT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXJSZWYsIGNvbnN0IFFTdHJpbmdMaXN0JiBzZWxlY3RlZEZpbGVOYW1lcywgRmls
ZUNob29zZXJUeXBlKTsKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFFV
cmwmIGxpbmtVUkwsIGNvbnN0IFFTdHJpbmcmIGxpbmtUaXRsZSk7CisgICAgdm9pZCBwZXJtaXNz
aW9uUmVxdWVzdChRV2ViUGVybWlzc2lvblJlcXVlc3QqKTsKIAogICAgIC8vIFdLUGFnZVVJQ2xp
ZW50IGNhbGxiYWNrcy4KICAgICBzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV0tQYWdl
UmVmLCBXS1N0cmluZ1JlZiBhbGVydFRleHQsIFdLRnJhbWVSZWYsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOwpAQCAtNTEsNiArNTYsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHNldFN0
YXR1c1RleHQoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7
CiAgICAgc3RhdGljIHZvaWQgcnVuT3BlblBhbmVsKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tP
cGVuUGFuZWxQYXJhbWV0ZXJzUmVmLCBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxl
bWVudChXS1BhZ2VSZWYsIFdLSGl0VGVzdFJlc3VsdFJlZiwgV0tFdmVudE1vZGlmaWVycywgV0tU
eXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9p
ZCBwb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFt
ZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UmVmLCBjb25zdCB2b2lkKik7CiAKICAgICBRUXVpY2tXZWJWaWV3KiBtX3dlYlZpZXc7CiAgICAg
UVVybCBtX2xhc3RIb3ZlcmVkVVJMOwpkaWZmIC0tZ2l0IGEvU291cmNlL3F0d2Via2l0LWV4cG9y
dC5tYXAgYi9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAppbmRleCBhNDI2MjAzLi5hNTQ2Y2Iy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAorKysgYi9Tb3VyY2UvcXR3
ZWJraXQtZXhwb3J0Lm1hcApAQCAtMTI3LDYgKzEyNywxMCBAQCBxd2tfMS4wIHsKICAgICAgICAg
KlFRdWlja1dlYlBhZ2U7CiAgICAgICAgIG5vbi12aXJ0dWFsP3RodW5rP3RvP1FRdWlja1dlYlBh
Z2UqOwogICAgICAgICBRUXVpY2tXZWJQYWdlOjoqOworICAgICAgICAqUVdlYlBlcm1pc3Npb25S
ZXF1ZXN0OworICAgICAgICBub24tdmlydHVhbD90aHVuaz90bz9RV2ViUGVybWlzc2lvblJlcXVl
c3QqOworICAgICAgICBRV2ViUGVybWlzc2lvblJlcXVlc3Q6Oio7CisKIAogICAgICAgICAjIFdl
YktpdCAyIEMgQVBJIG1hbmdsZWQgaW4gQysrCiAgICAgICAgIFdLU3RyaW5nQ29weVFTdHJpbmcq
OwotLSAKMS43LjQuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116951</attachid>
            <date>2011-11-29 05:53:35 -0800</date>
            <delta_ts>2011-11-30 00:41:35 -0800</delta_ts>
            <desc>Previous fixes, plus qml class register version</desc>
            <filename>geoperm15fix.patch</filename>
            <type>text/plain</type>
            <size>21888</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSAyNTcwZjg2YjdmNzRjNGI0MzQyMDQwMDc1MDg1ZTEwODNkZDQwMTViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IE1vbiwgMjggTm92IDIwMTEgMTQ6MDg6MTAgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBSZWJhc2VkLCBjb2Rpbmcgc3R5bGUsIHFtbCB0ZXN0cywgaHRtbCB0ZXN0
IGNsZWFudXAsCiBza2lwIHRlc3Qgd2hpbGUgYm90IGhhcyBub3QgcXRsb2NhdGlvbiwgY29ycmVj
dAogY2xhc3MgcmVnaXN0ZXIgdmVyc2lvbiAoaW4gcW1sKS4KClNpZ25lZC1vZmYtYnk6IEFkZW5p
bHNvbiBDYXZhbGNhbnRpIDxhZGVuaWxzb24uc2lsdmFAb3BlbmJvc3NhLm9yZz4KLS0tCiBDaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysr
CiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTQgKysrCiBTb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAgICAgICAgICAg
ICB8ICAgIDIgKwogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDM1ICsrKysrKysKIFNvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXdfcC5oICB8ICAgIDMgKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBl
cm1pc3Npb25yZXF1ZXN0LmNwcCAgICAgfCAgMTA2ICsrKysrKysrKysrKysrKysrKysrCiAuLi4v
VUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oICAgICB8ICAgNjcgKysr
KysrKysrKysrCiAuLi4vdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZ2VvcGVybWlzc2lvbi5x
bWwgICB8ICAgNTUgKysrKysrKysrKwogLi4uL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24v
Z2VvbG9jYXRpb24uaHRtbCAgfCAgIDI5ICsrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvdGVz
dHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvICAgfCAgICAxICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5jcHAgIHwgICAxOCArKysrCiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuaCAgICB8ICAgIDYgKwogU291cmNlL3F0
d2Via2l0LWV4cG9ydC5tYXAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsKIDE0IGZp
bGVzIGNoYW5nZWQsIDM1NSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25y
ZXF1ZXN0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZ2Vv
cGVybWlzc2lvbi5xbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9nZW9sb2NhdGlvbi5odG1sCgpkaWZmIC0t
Z2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDZlM2QxYjYuLjE2NzdlNWIgMTAwNjQ0
Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0x
MS0yOCAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxhZGVuaWxzb24uc2lsdmFAb3BlbmJvc3NhLm9y
Zz4KKworICAgICAgICBbUXRdW1dLMl0gSW1wbGVtZW50IHBlcm1pc3Npb24gQVBJIGZvciBRdCBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTIw
MAorCisgICAgICAgIFBlcm1pc3Npb24gQVBJIGhvb2t1cCBmb3IgR2VvbG9jYXRpb24sIGl0IGFs
bG93cyB0byByZWNlaXZlIGluIFdlYlZpZXcKKyAgICAgICAgYSBzaWduYWwgd2hlbiBhIHBlcm1p
c3Npb24gcmVxdWVzdCBpcyBkb25lIChlLmcuIHRvIGdyYW50IHBlcm1pc3Npb24KKyAgICAgICAg
Zm9yIGFjY2Vzc2luZyBnZW9sb2NhdGlvbiBpbmZvcm1hdGlvbikgYW5kIHNldCBpdCBhY2NvcmRp
bmdseS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwOgorCiAyMDExLTExLTI4ICBTaW1vbiBIYXVzbWFu
biAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFdURiBzaG91bGQg
YmUgYnVpbHQgYXMgc2VwYXJhdGUgc3RhdGljIGxpYnJhcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNDU4
MGM5YS4uMjM2N2I4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0xMS0y
OCAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxhZGVuaWxzb24uc2lsdmFAb3BlbmJvc3NhLm9yZz4K
KworICAgICAgICBbUXRdW1dLMl0gSW1wbGVtZW50IHBlcm1pc3Npb24gQVBJIGZvciBRdCBwb3J0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTIwMAor
CisgICAgICAgIFBlcm1pc3Npb24gQVBJIGhvb2t1cCBmb3IgR2VvbG9jYXRpb24sIGl0IGFsbG93
cyB0byByZWNlaXZlIGluIFdlYlZpZXcKKyAgICAgICAgYSBzaWduYWwgd2hlbiBhIHBlcm1pc3Np
b24gcmVxdWVzdCBpcyBkb25lIChlLmcuIHRvIGdyYW50IHBlcm1pc3Npb24KKyAgICAgICAgZm9y
IGFjY2Vzc2luZyBnZW9sb2NhdGlvbiBpbmZvcm1hdGlvbikgYW5kIHNldCBpdCBhY2NvcmRpbmds
eS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRl
Y2xhcmF0aXZlL3BsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXRRbWxQbHVnaW46OnJlZ2lzdGVy
VHlwZXMpOgorCiAyMDExLTExLTI2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZW1vdmUgZGlzY29ubmVjdEZyb21CYWNrZW5k
IGZyb20gdGhlIHByb3RvY29sLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJh
dGl2ZS9wbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3Bw
CmluZGV4IGRjOWNiN2UuLmQwMzliOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVj
bGFyYXRpdmUvcGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3Bs
dWdpbi5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpZiBkZWZpbmVkKEhBVkVfV0VCS0lUMikKICNp
bmNsdWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIK
KyNpbmNsdWRlICJxd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIgogI2luY2x1ZGUgInF3ZWJwcmVm
ZXJlbmNlc19wLmgiCiAKICNpbmNsdWRlIDxRdE5ldHdvcmsvcW5ldHdvcmtyZXBseS5oPgpAQCAt
NTEsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBl
PFFXZWJQcmVmZXJlbmNlcz4odXJpLCAzLCAwLCAiV2ViUHJlZmVyZW5jZXMiLCBRT2JqZWN0Ojp0
cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBXZWJQcmVmZXJlbmNlcyIpKTsK
ICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVF1aWNrV2ViUGFnZT4odXJpLCAz
LCAwLCAiV2ViUGFnZSIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3Rh
bmNlIG9mIFdlYlBhZ2UsIHVzZSBXZWJWaWV3IikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3Jl
YXRhYmxlVHlwZTxRTmV0d29ya1JlcGx5Pih1cmksIDMsIDAsICJOZXR3b3JrUmVwbHkiLCBRT2Jq
ZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOZXR3b3JrUmVwbHki
KSk7CisgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJQZXJtaXNzaW9uUmVx
dWVzdD4odXJpLCAzLCAwLCAiUGVybWlzc2lvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90
IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBQZXJtaXNzaW9uUmVxdWVzdCIpKTsKICNlbmRp
ZgogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2JiZjUxMi4uZGU1ZTI5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM4IEBACisyMDExLTExLTI4ICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGFkZW5p
bHNvbi5zaWx2YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtRdF1bV0syXSBJbXBsZW1lbnQg
cGVybWlzc2lvbiBBUEkgZm9yIFF0IHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU5MjAwCisKKyAgICAgICAgUGVybWlzc2lvbiBBUEkgaG9va3Vw
IGZvciBHZW9sb2NhdGlvbiwgaXQgYWxsb3dzIHRvIHJlY2VpdmUgaW4gV2ViVmlldworICAgICAg
ICBhIHNpZ25hbCB3aGVuIGEgcGVybWlzc2lvbiByZXF1ZXN0IGlzIGRvbmUgKGUuZy4gdG8gZ3Jh
bnQgcGVybWlzc2lvbgorICAgICAgICBmb3IgYWNjZXNzaW5nIGdlb2xvY2F0aW9uIGluZm9ybWF0
aW9uKSBhbmQgc2V0IGl0IGFjY29yZGluZ2x5LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdl
YnBlcm1pc3Npb25yZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChRV2ViUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlOjpRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKToKKyAgICAgICAgKFFX
ZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU6On5RV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRl
KToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFFX
ZWJQZXJtaXNzaW9uUmVxdWVzdDo6UVdlYlBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFFX
ZWJQZXJtaXNzaW9uUmVxdWVzdDo6flFXZWJQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChR
V2ViUGVybWlzc2lvblJlcXVlc3Q6OnR5cGUpOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1
ZXN0OjpzZXRBbGxvdyk6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3Q6OmFsbG93KToK
KyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2NoZW1lKToKKyAgICAgICAgKFFXZWJQ
ZXJtaXNzaW9uUmVxdWVzdDo6aG9zdCk6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3Q6
OnBvcnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0
X3AuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9nZW9wZXJtaXNzaW9uLnFtbDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vZ2VvbG9jYXRpb24uaHRtbDogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm86Cisg
ICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmNwcDoKKyAgICAgICAgKFF0
V2ViUGFnZVVJQ2xpZW50OjpRdFdlYlBhZ2VVSUNsaWVudCk6CisgICAgICAgIChRdFdlYlBhZ2VV
SUNsaWVudDo6cGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoUXRXZWJQYWdlVUlDbGllbnQ6
OnBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9xdC9RdFdlYlBhZ2VVSUNsaWVudC5oOgorCiAyMDExLTExLTI4ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBSZW5hbWUgV2Vi
S2l0TmV0d29ya1JlcXVlc3QgdG8gV2ViS2l0VVJJUmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggZjY1
NTQ1OS4uYTg0ZjJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0yNDksNiArMjQ5LDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmggXAogICAgIFVJ
UHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkv
cXQvcXdlYmRvd25sb2FkaXRlbV9wX3AuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVy
bWlzc2lvbnJlcXVlc3RfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2Vf
cC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcF9wLmggXAogICAgIFVJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggXApAQCAtNTUxLDYgKzU1Miw3IEBAIFNP
VVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3BwIFwKICAg
ICBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9x
dC9xd2ViZG93bmxvYWRpdGVtLmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlz
c2lvbnJlcXVlc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3Bw
IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIFwKICAgICBVSVByb2Nl
c3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKaW5kZXggYThkMGNmZC4uODJhYzdkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdf
cC5oCkBAIC0zMSw2ICszMSw3IEBAIGNsYXNzIFFRdWlja1dlYlZpZXdQcml2YXRlOwogY2xhc3Mg
UVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDsKIGNsYXNzIFFXZWJEb3dubG9hZEl0ZW07CiBjbGFz
cyBRV2ViUHJlZmVyZW5jZXM7CitjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3Q7CiAKIG5hbWVz
cGFjZSBXVFIgewogY2xhc3MgUGxhdGZvcm1XZWJWaWV3OwpAQCAtMTkxLDEyICsxOTIsMTQgQEAg
UV9TSUdOQUxTOgogICAgIHZvaWQgY29uZmlybURpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIHBy
b21wdERpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdGVkKFFXZWJEb3du
bG9hZEl0ZW0qIGRvd25sb2FkSXRlbSk7CisgICAgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdGVkKFFX
ZWJQZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvbik7CiAKIHByaXZhdGU6CiAgICAgUVF1aWNr
V2ViVmlldyogcV9wdHI7CiAgICAgUVF1aWNrV2ViVmlld1ByaXZhdGUqIGRfcHRyOwogCiAgICAg
ZnJpZW5kIGNsYXNzIFF0V2ViUGFnZVByb3h5OworICAgIGZyaWVuZCBjbGFzcyBRdFdlYlBhZ2VV
SUNsaWVudDsKIAogICAgIFFfREVDTEFSRV9QUklWQVRFKFFRdWlja1dlYlZpZXcpCiAgICAgUV9E
RUNMQVJFX1BVQkxJQyhRUXVpY2tXZWJWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2YTQzODUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKQEAg
LTAsMCArMSwxMDYgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisg
ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgiCisKKyNpbmNsdWRlICJXS1N0
cmluZ1F0LmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQy
L1dLUmV0YWluUHRyLmg+CisKKworY2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSA6
IHB1YmxpYyBRU2hhcmVkRGF0YSB7CitwdWJsaWM6CisgICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmIHNlY3VyaXR5T3JpZ2luLCBXS0dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QpCisgICAgICAgIDogb3JpZ2lu
KHNlY3VyaXR5T3JpZ2luKQorICAgICAgICAsIHR5cGUoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpH
ZW9sb2NhdGlvbikKKyAgICAgICAgLCByZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAg
ICAsIGFsbG93KGZhbHNlKQorICAgIHsKKyAgICB9CisgICAgflFXZWJQZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGUoKQorICAgIHsKKyAgICB9CisKKyAgICBXS1JldGFpblB0cjxXS1NlY3VyaXR5T3Jp
Z2luUmVmPiBvcmlnaW47CisgICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpSZXF1ZXN0VHlwZSB0
eXBlOworICAgIFdLUmV0YWluUHRyPFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZj4g
cmVxdWVzdDsKKyAgICBib29sIGFsbG93OworfTsKKworUVdlYlBlcm1pc3Npb25SZXF1ZXN0KiBR
V2ViUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwg
V0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QpCit7CisgICAgcmV0dXJu
IG5ldyBRV2ViUGVybWlzc2lvblJlcXVlc3Qob3JpZ2luLCByZXF1ZXN0KTsKK30KKworUVdlYlBl
cm1pc3Npb25SZXF1ZXN0OjpRV2ViUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1cml0eU9yaWdpblJl
ZiBzZWN1cml0eU9yaWdpbiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1p
c3Npb25SZXF1ZXN0LCBRT2JqZWN0KiBwYXJlbnQpCisgICAgOiBRT2JqZWN0KHBhcmVudCkKKyAg
ICAsIGQobmV3IFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUoc2VjdXJpdHlPcmlnaW4sIHBl
cm1pc3Npb25SZXF1ZXN0KSkKK3sKK30KKworUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojp+UVdlYlBl
cm1pc3Npb25SZXF1ZXN0KCkKK3sKK30KKworUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpSZXF1ZXN0
VHlwZSBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBk
LT50eXBlOworfQorCit2b2lkIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2V0QWxsb3coYm9vbCBh
Y2NlcHRlZCkKK3sKKyAgICBkLT5hbGxvdyA9IGFjY2VwdGVkOworICAgIHN3aXRjaCAodHlwZSgp
KSB7CisgICAgY2FzZSBHZW9sb2NhdGlvbjogeworICAgICAgICBpZiAoYWNjZXB0ZWQpCisgICAg
ICAgICAgICBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyhkLT5yZXF1ZXN0Lmdl
dCgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0RGVueShkLT5yZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGRl
bGV0ZUxhdGVyKCk7Cit9CisKK2Jvb2wgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjphbGxvdygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGQtPmFsbG93OworfQorCitRU3RyaW5nIFFXZWJQZXJtaXNzaW9u
UmVxdWVzdDo6c2NoZW1lKCkgY29uc3QKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
dXJsID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weVByb3RvY29sKGQtPm9yaWdpbi5nZXQo
KSkpOworICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKHVybC5nZXQoKSk7Cit9CisKK1FT
dHJpbmcgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpob3N0KCkgY29uc3QKK3sKKyAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gb3JpZ2luID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weUhv
c3QoZC0+b3JpZ2luLmdldCgpKSk7CisgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcob3Jp
Z2luLmdldCgpKTsKK30KKworaW50IFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6cG9ydCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oV0tTZWN1cml0eU9yaWdpbkdldFBvcnQo
ZC0+b3JpZ2luLmdldCgpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNTgyNGM0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaApAQCAtMCwwICsx
LDY3IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAg
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIHF3ZWJwZXJtaXNzaW9ucmVxdWVz
dF9wX2gKKyNkZWZpbmUgcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3BfaAorCisjaW5jbHVkZSAicXdl
YmtpdGdsb2JhbC5oIgorCisjaW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+CisjaW5jbHVkZSA8UXRD
b3JlL3FzaGFyZWRkYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4uaD4KKwor
Y2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKKworY2xhc3MgUVdFQktJVF9FWFBP
UlQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNU
CisgICAgUV9QUk9QRVJUWShib29sIGFsbG93IFJFQUQgYWxsb3cgV1JJVEUgc2V0QWxsb3cpCisg
ICAgUV9QUk9QRVJUWShSZXF1ZXN0VHlwZSB0eXBlIFJFQUQgdHlwZSkKKyAgICBRX1BST1BFUlRZ
KFFTdHJpbmcgc2NoZW1lIFJFQUQgc2NoZW1lKQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBob3N0
IFJFQUQgaG9zdCkKKyAgICBRX1BST1BFUlRZKGludCBwb3J0IFJFQUQgcG9ydCkKKyAgICBRX0VO
VU1TKFJlcXVlc3RUeXBlKQorCitwdWJsaWM6CisgICAgZW51bSBSZXF1ZXN0VHlwZSB7CisgICAg
ICAgIEdlb2xvY2F0aW9uCisgICAgfTsKKworICAgIHN0YXRpYyBRV2ViUGVybWlzc2lvblJlcXVl
c3QqIGNyZWF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RSZWYpOworICAgIHZpcnR1YWwgflFXZWJQZXJtaXNzaW9uUmVxdWVzdCgpOworCisgICAg
UmVxdWVzdFR5cGUgdHlwZSgpIGNvbnN0OworICAgIGJvb2wgYWxsb3coKSBjb25zdDsKKyAgICBR
U3RyaW5nIHNjaGVtZSgpIGNvbnN0OworICAgIFFTdHJpbmcgaG9zdCgpIGNvbnN0OworICAgIGlu
dCBwb3J0KCkgY29uc3Q7CisKK3B1YmxpYyBRX1NMT1RTOgorICAgIHZvaWQgc2V0QWxsb3coYm9v
bCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFFXZWJQZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGU7CisgICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYgc2Vj
dXJpdHlPcmlnaW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9u
UmVxdWVzdCwgUU9iamVjdCogcGFyZW50ID0gMCk7CisKK3ByaXZhdGU6CisgICAgUUV4cGxpY2l0
bHlTaGFyZWREYXRhUG9pbnRlcjxRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlPiBkOworfTsK
KworCisjZW5kaWYgLy8gcXdlYnBlcm1pc3Npb25yZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZ2Vv
cGVybWlzc2lvbi5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL1dlYlZpZXcvdHN0X2dlb3Blcm1pc3Npb24ucW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmM2NGM5NzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2dlb3Blcm1pc3Np
b24ucW1sCkBAIC0wLDAgKzEsNTUgQEAKK2ltcG9ydCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0VGVz
dCAxLjAKK2ltcG9ydCBRdFdlYktpdCAzLjAKK2ltcG9ydCBRdFdlYktpdC5leHBlcmltZW50YWwg
My4wCisKK1dlYlZpZXcgeworICAgIGlkOiB3ZWJWaWV3CisgICAgd2lkdGg6IDIwMAorICAgIGhl
aWdodDogMjAwCisKKyAgICBwcm9wZXJ0eSBib29sIGV4cGVjdGVkUGVybWlzc2lvbjogZmFsc2UK
KworICAgIFNpZ25hbFNweSB7CisgICAgICAgIGlkOiBzcHkKKyAgICAgICAgdGFyZ2V0OiBleHBl
cmltZW50YWwKKyAgICAgICAgc2lnbmFsTmFtZTogInBlcm1pc3Npb25SZXF1ZXN0ZWQiCisgICAg
fQorCisgICAgZXhwZXJpbWVudGFsLm9uUGVybWlzc2lvblJlcXVlc3RlZDogeworICAgICAgICAv
L011c3QgYmUgZmFsc2UgYnkgZGVmYXVsdAorICAgICAgICBpZiAoIXBlcm1pc3Npb24uYWxsb3cp
IHsKKyAgICAgICAgICAgcGVybWlzc2lvbi5hbGxvdyA9IHRydWUKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgIGNvbnNvbGUubG9nKCJGYWlsOiBwZXJtaXNzaW9uIG11c3QgYmUgc2V0IHRvIGZh
bHNlIikKKworICAgICAgICBpZiAocGVybWlzc2lvbi50eXBlID09IFBlcm1pc3Npb25SZXF1ZXN0
Lkdlb2xvY2F0aW9uKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZygiUGVybWlzc2lvbiBpcyBn
ZW90eXBlIikKKyAgICAgICAgfQorICAgIH0KKworICAgIFRlc3RDYXNlIHsKKyAgICAgICAgbmFt
ZTogIldlYlZpZXdHZW9wZXJtaXNzaW9uIgorCisgICAgICAgIC8vIERlbGF5ZWQgd2luZG93U2hv
d24gdG8gd29ya2Fyb3VuZCBwcm9ibGVtcyB3aXRoIFF0NSBpbiBkZWJ1ZyBtb2RlLgorICAgICAg
ICB3aGVuOiBmYWxzZQorICAgICAgICBUaW1lciB7CisgICAgICAgICAgICBydW5uaW5nOiBwYXJl
bnQud2luZG93U2hvd24KKyAgICAgICAgICAgIHJlcGVhdDogZmFsc2UKKyAgICAgICAgICAgIGlu
dGVydmFsOiAxCisgICAgICAgICAgICBvblRyaWdnZXJlZDogcGFyZW50LndoZW4gPSB0cnVlCisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICAgICAgc3B5LmNs
ZWFyKCkKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RfcGVybWlzc2lvblJlcXVl
c3QoKSB7CisgICAgICAgICAgICBza2lwKCJXYWl0aW5nIGZvciBxdGxvY2F0aW9uIGJlaW5nIGlu
Y2x1ZGVkIGluIHRoZSBib3QiKQorICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDApCisg
ICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9nZW9sb2Nh
dGlvbi5odG1sIikpCisgICAgICAgICAgICBzcHkud2FpdCgpCisgICAgICAgICAgICBjb21wYXJl
KHNweS5jb3VudCwgMSkKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL2dlb2xvY2F0aW9u
Lmh0bWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2Nv
bW1vbi9nZW9sb2NhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjJkNDFjYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9nZW9sb2NhdGlvbi5odG1sCkBAIC0wLDAgKzEsMjkg
QEAKKzxoZWFkPgorPHRpdGxlPkdlb2xvY2F0aW9uIFBlcm1pc3Npb24gQVBJIFRlc3Q8L3RpdGxl
PgorPG1ldGEgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoOyBpbml0aWFsLXNjYWxlPTEuMDsg
bWF4aW11bS1zY2FsZT0xLjA7IHVzZXItc2NhbGFibGU9MDsiIG5hbWU9InZpZXdwb3J0Ii8+Cis8
c2NyaXB0PgordmFyIHdhdGNoSWQgPSAwOworCitmdW5jdGlvbiBzdWNjZXNzSGFuZGxlcihsb2Nh
dGlvbikgeworICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lc3Nh
Z2UiKSwgaHRtbCA9IFtdOworICAgIGh0bWwucHVzaCgiPGltZyB3aWR0aD0nMjU2JyBoZWlnaHQ9
JzI1Nicgc3JjPSdodHRwOi8vbWFwcy5nb29nbGUuY29tL21hcHMvYXBpL3N0YXRpY21hcD9jZW50
ZXI9IiwgbG9jYXRpb24uY29vcmRzLmxhdGl0dWRlLCAiLCIsIGxvY2F0aW9uLmNvb3Jkcy5sb25n
aXR1ZGUsICImbWFya2Vycz1zaXplOnNtYWxsfGNvbG9yOmJsdWV8IiwgbG9jYXRpb24uY29vcmRz
LmxhdGl0dWRlLCAiLCIsIGxvY2F0aW9uLmNvb3Jkcy5sb25naXR1ZGUsICImem9vbT0xNCZzaXpl
PTI1NngyNTYmc2Vuc29yPWZhbHNlJyAvPiIpOworICAgIGh0bWwucHVzaCgiPHA+TG9uZ2l0dWRl
OiAiLCBsb2NhdGlvbi5jb29yZHMubG9uZ2l0dWRlLCAiPC9wPiIpOworICAgIGh0bWwucHVzaCgi
PHA+TGF0aXR1ZGU6ICIsIGxvY2F0aW9uLmNvb3Jkcy5sYXRpdHVkZSwgIjwvcD4iKTsKKyAgICBo
dG1sLnB1c2goIjxwPkFjY3VyYWN5OiAiLCBsb2NhdGlvbi5jb29yZHMuYWNjdXJhY3ksICIgbWV0
ZXJzPC9wPiIpOworICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gaHRtbC5qb2luKCIiKTsKK30KKwor
ZnVuY3Rpb24gZXJyb3JIYW5kbGVyKGVycm9yKSB7CisgICAgYWxlcnQoJ0F0dGVtcHQgdG8gZ2V0
IGxvY2F0aW9uIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UpOworfQorCis8IS0tIE9uZSBzaG90
IGV4YW1wbGUgLS0+CituYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKHN1
Y2Nlc3NIYW5kbGVyLCBlcnJvckhhbmRsZXIpOworCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBpZD0ibWVzc2FnZSI+TG9jYXRpb24gdW5rbm93bjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3FtbHRlc3RzL3FtbHRlc3RzLnBybyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvCmluZGV4IDY2MGNjNjMuLmRhOTNmMDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1s
dGVzdHMucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvcW1sdGVzdHMucHJvCkBAIC0yNSw2ICsyNSw3IEBAIE9USEVSX0ZJTEVTICs9IFwKICAg
ICBXZWJWaWV3L3RzdF9wcmVmZXJlbmNlcy5xbWwgXAogICAgIFdlYlZpZXcvdHN0X2xvYWRIdG1s
LnFtbCBcCiAgICAgV2ViVmlldy90c3RfZG93bmxvYWQucW1sIFwKKyAgICBXZWJWaWV3L3RzdF9n
ZW9wZXJtaXNzaW9uLnFtbCBcCiAgICAgRGVza3RvcEJlaGF2aW9yL3RzdF9saW5rSG92ZXJlZC5x
bWwgXAogICAgIERlc2t0b3BCZWhhdmlvci90c3RfbWVzc2FnaW5nLnFtbCBcCiAgICAgRGVza3Rv
cEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUmVxdWVzdGVkLnFtbCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmNwcAppbmRleCA3NmQ3ZTBjLi4x
YTZmMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdl
VUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VV
SUNsaWVudC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJXS1VSTFF0LmgiCiAjaW5j
bHVkZSAicXF1aWNrd2Vidmlld19wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wX3AuaCIK
KyNpbmNsdWRlICJxd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIgogI2luY2x1ZGUgPFdLQVBJQ2Fz
dC5oPgogI2luY2x1ZGUgPFdLSGl0VGVzdFJlc3VsdC5oPgogI2luY2x1ZGUgPFdLT3BlblBhbmVs
UGFyYW1ldGVycy5oPgpAQCAtNDMsNiArNDQsNyBAQCBRdFdlYlBhZ2VVSUNsaWVudDo6UXRXZWJQ
YWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIFFRdWlja1dlYlZpZXcqIHdlYlZpZXcpCiAg
ICAgdWlDbGllbnQuc2V0U3RhdHVzVGV4dCA9IHNldFN0YXR1c1RleHQ7CiAgICAgdWlDbGllbnQu
cnVuT3BlblBhbmVsID0gcnVuT3BlblBhbmVsOwogICAgIHVpQ2xpZW50Lm1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50ID0gbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgdWlDbGllbnQuZGVjaWRl
UG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCA9IHBvbGljeUZvckdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3Q7CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHBhZ2VSZWYs
ICZ1aUNsaWVudCk7CiB9CiAKQEAgLTgwLDYgKzgyLDEyIEBAIHZvaWQgUXRXZWJQYWdlVUlDbGll
bnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFFVcmwmIGxpbmtVUkwsIGNvbnN0IFFT
dHJpCiAgICAgZW1pdCBtX3dlYlZpZXctPmxpbmtIb3ZlcmVkKG1fbGFzdEhvdmVyZWRVUkwsIG1f
bGFzdEhvdmVyZWRUaXRsZSk7CiB9CiAKK3ZvaWQgUXRXZWJQYWdlVUlDbGllbnQ6OnBlcm1pc3Np
b25SZXF1ZXN0KFFXZWJQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICByZXF1ZXN0
LT5zZXRQYXJlbnQobV93ZWJWaWV3KTsKKyAgICBlbWl0IG1fd2ViVmlldy0+ZXhwZXJpbWVudGFs
KCktPnBlcm1pc3Npb25SZXF1ZXN0ZWQocmVxdWVzdCk7Cit9CisKIHN0YXRpYyBRdFdlYlBhZ2VV
SUNsaWVudCogdG9RdFdlYlBhZ2VVSUNsaWVudChjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewog
ICAgIEFTU0VSVChjbGllbnRJbmZvKTsKQEAgLTEzOSwzICsxNDcsMTMgQEAgdm9pZCBRdFdlYlBh
Z2VVSUNsaWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV0tQYWdlUmVmIHBhZ2UsIFdLSGl0
VGVzdFJlc3VsdFIKICAgICBjb25zdCBRU3RyaW5nIGxpbmtUaXRsZSA9IFdLU3RyaW5nQ29weVFT
dHJpbmcoYWRvcHRXSyhXS0hpdFRlc3RSZXN1bHRDb3B5TGlua1RpdGxlKGhpdFRlc3RSZXN1bHQp
KS5nZXQoKSk7CiAgICAgdG9RdFdlYlBhZ2VVSUNsaWVudChjbGllbnRJbmZvKS0+bW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQoYWJzb2x1dGVMaW5rVXJsLCBsaW5rVGl0bGUpOwogfQorCit2b2lkIFF0
V2ViUGFnZVVJQ2xpZW50Ojpwb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdL
UGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdp
biwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCit7CisgICAgaWYgKCFyZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAg
ICBRV2ViUGVybWlzc2lvblJlcXVlc3QqIHJlcSA9IFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6Y3Jl
YXRlKG9yaWdpbiwgcmVxdWVzdCk7CisgICAgdG9RdFdlYlBhZ2VVSUNsaWVudChjbGllbnRJbmZv
KS0+cGVybWlzc2lvblJlcXVlc3QocmVxKTsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuaAppbmRleCA0NzRhNGUxLi4yMWQxYTQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlVUlDbGllbnQuaApAQCAt
MjMsOSArMjMsMTMgQEAKIAogI2luY2x1ZGUgPFF0Q29yZS9RU3RyaW5nPgogI2luY2x1ZGUgPFF0
Q29yZS9RVXJsPgorI2luY2x1ZGUgPFdLRnJhbWUuaD4KKyNpbmNsdWRlIDxXS0dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuaD4KICNpbmNsdWRlIDxXS1BhZ2UuaD4KKyNpbmNsdWRlIDxXS1Nl
Y3VyaXR5T3JpZ2luLmg+CiAKIGNsYXNzIFFRdWlja1dlYlZpZXc7CitjbGFzcyBRV2ViUGVybWlz
c2lvblJlcXVlc3Q7CiAKIGNsYXNzIFF0V2ViUGFnZVVJQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTQz
LDYgKzQ3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFN0YXR1c1RleHQoY29uc3QgUVN0cmlu
ZyYpOwogICAgIHZvaWQgcnVuT3BlblBhbmVsKFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYs
IGNvbnN0IFFTdHJpbmdMaXN0JiBzZWxlY3RlZEZpbGVOYW1lcywgRmlsZUNob29zZXJUeXBlKTsK
ICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFFVcmwmIGxpbmtVUkwsIGNv
bnN0IFFTdHJpbmcmIGxpbmtUaXRsZSk7CisgICAgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdChRV2Vi
UGVybWlzc2lvblJlcXVlc3QqKTsKIAogICAgIC8vIFdLUGFnZVVJQ2xpZW50IGNhbGxiYWNrcy4K
ICAgICBzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV0tQYWdlUmVmLCBXS1N0cmluZ1Jl
ZiBhbGVydFRleHQsIFdLRnJhbWVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpAQCAtNTEs
NiArNTYsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHNldFN0YXR1c1RleHQoV0tQYWdl
UmVmLCBXS1N0cmluZ1JlZiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZv
aWQgcnVuT3BlblBhbmVsKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tPcGVuUGFuZWxQYXJhbWV0
ZXJzUmVmLCBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKICAgICBzdGF0aWMgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChXS1BhZ2VSZWYs
IFdLSGl0VGVzdFJlc3VsdFJlZiwgV0tFdmVudE1vZGlmaWVycywgV0tUeXBlUmVmIHVzZXJEYXRh
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBwb2xpY3lGb3JHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0
eU9yaWdpblJlZiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmLCBjb25zdCB2b2lk
Kik7CiAKICAgICBRUXVpY2tXZWJWaWV3KiBtX3dlYlZpZXc7CiAgICAgUVVybCBtX2xhc3RIb3Zl
cmVkVVJMOwpkaWZmIC0tZ2l0IGEvU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAgYi9Tb3VyY2Uv
cXR3ZWJraXQtZXhwb3J0Lm1hcAppbmRleCBhNDI2MjAzLi5hNTQ2Y2IyIDEwMDY0NAotLS0gYS9T
b3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAorKysgYi9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1h
cApAQCAtMTI3LDYgKzEyNywxMCBAQCBxd2tfMS4wIHsKICAgICAgICAgKlFRdWlja1dlYlBhZ2U7
CiAgICAgICAgIG5vbi12aXJ0dWFsP3RodW5rP3RvP1FRdWlja1dlYlBhZ2UqOwogICAgICAgICBR
UXVpY2tXZWJQYWdlOjoqOworICAgICAgICAqUVdlYlBlcm1pc3Npb25SZXF1ZXN0OworICAgICAg
ICBub24tdmlydHVhbD90aHVuaz90bz9RV2ViUGVybWlzc2lvblJlcXVlc3QqOworICAgICAgICBR
V2ViUGVybWlzc2lvblJlcXVlc3Q6Oio7CisKIAogICAgICAgICAjIFdlYktpdCAyIEMgQVBJIG1h
bmdsZWQgaW4gQysrCiAgICAgICAgIFdLU3RyaW5nQ29weVFTdHJpbmcqOwotLSAKMS43LjQuMQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>