<?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>38220</bug_id>
          
          <creation_ts>2010-04-27 14:40:19 -0700</creation_ts>
          <short_desc>[chromium] Add API for querying whether a WebWidget is using GPU accelerated compositing</short_desc>
          <delta_ts>2010-05-09 13:49:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vangelis Kokkevis">vangelis</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>217954</commentid>
    <comment_count>0</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-04-27 14:40:19 -0700</bug_when>
    <thetext>This functionality is necessary to allow chromium to disable rendering from the browser process when the gpu process is actually responsible for doing all the drawing for the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217977</commentid>
    <comment_count>1</comment_count>
      <attachid>54458</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-04-27 15:01:39 -0700</bug_when>
    <thetext>Created attachment 54458
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219351</commentid>
    <comment_count>2</comment_count>
      <attachid>54458</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-29 20:41:29 -0700</bug_when>
    <thetext>Comment on attachment 54458
Proposed patch

WebKit/chromium/public/WebPopupMenu.h:44
 +      virtual bool isAcceleratedCompositing() const { return false; }
You should instead implement this method in WebPopupMenuImpl.{h,cpp} just as you have done in WebViewImpl.{h,cpp}.

WebKit/chromium/public/WebWidget.h:95
 +      virtual bool isAcceleratedCompositing() const = 0;
nit: isAcceleratedCompositingEnabled would be a better (more consistent with naming conventions) name for this.

WebKit/chromium/src/WebViewImpl.cpp:2041
 +      return m_isAcceleratedCompositing;
ditto.  this variable would be better named m_isAcceleratedCompositingEnabled

WebKit/chromium/src/WebViewImpl.h:363
 +      void setAcceleratedCompositing(bool);
This one should be named enableAcceleratedCompositing to be consistent with naming conventions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219522</commentid>
    <comment_count>3</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-04-30 10:34:43 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 54458 [details])
&gt; WebKit/chromium/public/WebPopupMenu.h:44
&gt;  +      virtual bool isAcceleratedCompositing() const { return false; }
&gt; You should instead implement this method in WebPopupMenuImpl.{h,cpp} just as
&gt; you have done in WebViewImpl.{h,cpp}.
&gt; 
&gt; WebKit/chromium/public/WebWidget.h:95
&gt;  +      virtual bool isAcceleratedCompositing() const = 0;
&gt; nit: isAcceleratedCompositingEnabled would be a better (more consistent with
&gt; naming conventions) name for this.
&gt; 

I agree that name is kind of ugly although I used it for consistency with Apple&apos;s Windows implementation (WebKit/WebKit/win/WebView.h). The original mac implementation seems to be using:  &quot;isUsingAcceleratedCompositing()&quot; which is more accurate as it&apos;s not about so much about it being enabled but rather about being active for the View. So, any objections to switching ours to isUsingAcceleratedCompositing() too? 

&gt; WebKit/chromium/src/WebViewImpl.cpp:2041
&gt;  +      return m_isAcceleratedCompositing;
&gt; ditto.  this variable would be better named m_isAcceleratedCompositingEnabled
&gt; 
&gt; WebKit/chromium/src/WebViewImpl.h:363
&gt;  +      void setAcceleratedCompositing(bool);
&gt; This one should be named enableAcceleratedCompositing to be consistent with
&gt; naming conventions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219578</commentid>
    <comment_count>4</comment_count>
      <attachid>54818</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-04-30 12:40:49 -0700</bug_when>
    <thetext>Created attachment 54818
Proposed patch

Renamed isAcceleratedCompositing to isUsingAcceleratedCompositing and moved WebPopupMenu implementation of the method to the Impl class per Darin&apos;s request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219581</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-30 12:58:55 -0700</bug_when>
    <thetext>I suggested is*Enabled because that is how we have been expressing things like this in the webkit api today:

WebKit/chromium/public&gt; grep &apos;is.*Enabled&apos; *
WebAccessibilityObject.h:    bool isEnabled() const;
WebContextMenuData.h:    bool isSpellCheckingEnabled;
WebFormControlElement.h:    WEBKIT_API bool isEnabled() const;
WebFrame.h:    virtual bool isViewSourceModeEnabled() const = 0;
WebFrame.h:    virtual bool isCommandEnabled(const WebString&amp;) const = 0;
WebFrame.h:    virtual bool isContinuousSpellCheckingEnabled() const = 0;
WebGraphicsContext3D.h:    virtual bool isEnabled(unsigned long cap) = 0;
WebInputElement.h:        WEBKIT_API bool isEnabledFormControl() const;
WebRuntimeFeatures.h:    WEBKIT_API static bool isDatabaseEnabled();
WebRuntimeFeatures.h:    WEBKIT_API static bool isLocalStorageEnabled();
WebRuntimeFeatures.h:    WEBKIT_API static bool isSessionStorageEnabled();
WebRuntimeFeatures.h:    WEBKIT_API static bool isMediaPlayerEnabled();
WebRuntimeFeatures.h:    WEBKIT_API static bool isSocketsEnabled();
WebRuntimeFeatures.h:    WEBKIT_API static bool isNotificationsEnabled();
WebRuntimeFeatures.h:    WEBKIT_API static bool isApplicationCacheEnabled();
WebRuntimeFeatures.h:    WEBKIT_API static bool isGeolocationEnabled();
WebRuntimeFeatures.h:    WEBKIT_API static bool isIndexedDatabaseEnabled();
WebRuntimeFeatures.h:    WEBKIT_API static bool isWebGLEnabled();
WebRuntimeFeatures.h:    WEBKIT_API static bool isPushStateEnabled(bool);
WebRuntimeFeatures.h:    WEBKIT_API static bool isTouchEnabled();
WebViewClient.h:    virtual bool isSmartInsertDeleteEnabled() { return true; }
WebViewClient.h:    virtual bool isSelectTrailingWhitespaceEnabled() { return true; }

I agree that isUsingAcceleratedCompositing is better than isAcceleratedCompositing, but since this is just bikeshed territory, I lean toward matching existing conventions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219624</commentid>
    <comment_count>6</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-04-30 15:10:09 -0700</bug_when>
    <thetext>There&apos;s a semantic difference that I&apos;m trying to capture here which I think it&apos;s important. What this API call is supposed to return is not whether the accelerated compositing feature is enabled by the user but whether it&apos;s actually active for that page. It seems that most (if not all) of the is*Enabled() calls currently reflect a mode entered into at the request of the user.

This is based on my little experience with existing code. I&apos;ll rely on judgement.



(In reply to comment #5)
&gt; I suggested is*Enabled because that is how we have been expressing things like
&gt; this in the webkit api today:
&gt; 
&gt; WebKit/chromium/public&gt; grep &apos;is.*Enabled&apos; *
&gt; WebAccessibilityObject.h:    bool isEnabled() const;
&gt; WebContextMenuData.h:    bool isSpellCheckingEnabled;
&gt; WebFormControlElement.h:    WEBKIT_API bool isEnabled() const;
&gt; WebFrame.h:    virtual bool isViewSourceModeEnabled() const = 0;
&gt; WebFrame.h:    virtual bool isCommandEnabled(const WebString&amp;) const = 0;
&gt; WebFrame.h:    virtual bool isContinuousSpellCheckingEnabled() const = 0;
&gt; WebGraphicsContext3D.h:    virtual bool isEnabled(unsigned long cap) = 0;
&gt; WebInputElement.h:        WEBKIT_API bool isEnabledFormControl() const;
&gt; WebRuntimeFeatures.h:    WEBKIT_API static bool isDatabaseEnabled();
&gt; WebRuntimeFeatures.h:    WEBKIT_API static bool isLocalStorageEnabled();
&gt; WebRuntimeFeatures.h:    WEBKIT_API static bool isSessionStorageEnabled();
&gt; WebRuntimeFeatures.h:    WEBKIT_API static bool isMediaPlayerEnabled();
&gt; WebRuntimeFeatures.h:    WEBKIT_API static bool isSocketsEnabled();
&gt; WebRuntimeFeatures.h:    WEBKIT_API static bool isNotificationsEnabled();
&gt; WebRuntimeFeatures.h:    WEBKIT_API static bool isApplicationCacheEnabled();
&gt; WebRuntimeFeatures.h:    WEBKIT_API static bool isGeolocationEnabled();
&gt; WebRuntimeFeatures.h:    WEBKIT_API static bool isIndexedDatabaseEnabled();
&gt; WebRuntimeFeatures.h:    WEBKIT_API static bool isWebGLEnabled();
&gt; WebRuntimeFeatures.h:    WEBKIT_API static bool isPushStateEnabled(bool);
&gt; WebRuntimeFeatures.h:    WEBKIT_API static bool isTouchEnabled();
&gt; WebViewClient.h:    virtual bool isSmartInsertDeleteEnabled() { return true; }
&gt; WebViewClient.h:    virtual bool isSelectTrailingWhitespaceEnabled() { return
&gt; true; }
&gt; 
&gt; I agree that isUsingAcceleratedCompositing is better than
&gt; isAcceleratedCompositing, but since this is just bikeshed territory, I lean
&gt; toward matching existing conventions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219638</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-30 16:01:58 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; There&apos;s a semantic difference that I&apos;m trying to capture here which I think
&gt; it&apos;s important. What this API call is supposed to return is not whether the
&gt; accelerated compositing feature is enabled by the user but whether it&apos;s
&gt; actually active for that page. It seems that most (if not all) of the
&gt; is*Enabled() calls currently reflect a mode entered into at the request of the
&gt; user.

That&apos;s an interesting observation.  It is true that many of the is*Enabled methods query user controlled settings.

I was just thinking in terms of whether or not accelerated compositing is enabled for the page.  In which case, asking the question &quot;is accelerated compositing enabled?&quot; seems natural to me.  I don&apos;t see &quot;enable&quot; as something necessarily connected to the user.  It seems like &quot;use&quot; could equally imply per request of the user.

Are there any examples in WebKit API or WebCore that match the semantic distinction you are going for?  It&apos;d be nice to copy some convention.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219682</commentid>
    <comment_count>8</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-04-30 18:53:10 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; I was just thinking in terms of whether or not accelerated compositing is
&gt; enabled for the page.  In which case, asking the question &quot;is accelerated
&gt; compositing enabled?&quot; seems natural to me.  I don&apos;t see &quot;enable&quot; as something
&gt; necessarily connected to the user.  It seems like &quot;use&quot; could equally imply per
&gt; request of the user.

You are right. &quot;use&quot; has the same issues.

&gt; 
&gt; Are there any examples in WebKit API or WebCore that match the semantic
&gt; distinction you are going for?  It&apos;d be nice to copy some convention.

I couldn&apos;t find any but what I did find, is WebCore&apos;s Settings class defined  in WebCore/page/Settings.h, acceleratedCompositingEnabled() and setAcceleratedCompositingEnabled() are both defined to mean whether the accelerated compositing feature is allowed or not.  I think it would be confusing if we were to use the exact same name with a different meaning. 

A couple of other possible options:
* isAcceleratedCompositingActive()
* isDoingAcceleratedCompositing()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219683</commentid>
    <comment_count>9</comment_count>
      <attachid>54844</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-04-30 18:59:45 -0700</bug_when>
    <thetext>Created attachment 54844
Proposed patch addressing review comments

Patch with isAcceleratedCompositing renamed to isAcceleratedCompositingEnabled per Darin&apos;s suggestion, in case we don&apos;t come up with a more suitable name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219696</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-30 23:30:42 -0700</bug_when>
    <thetext>&gt; I couldn&apos;t find any but what I did find, is WebCore&apos;s Settings class defined 
&gt; in WebCore/page/Settings.h, acceleratedCompositingEnabled() and
&gt; setAcceleratedCompositingEnabled() are both defined to mean whether the
&gt; accelerated compositing feature is allowed or not.  I think it would be
&gt; confusing if we were to use the exact same name with a different meaning. 

^^^ good observation


&gt; A couple of other possible options:
&gt; * isAcceleratedCompositingActive()
&gt; * isDoingAcceleratedCompositing()

+1 for isAcceleratedCompositingActive :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219697</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-30 23:31:30 -0700</bug_when>
    <thetext>We can then use the &quot;Active&quot; and &quot;DidActivate&quot; on the Chromium side to refer to the same concept.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220320</commentid>
    <comment_count>12</comment_count>
      <attachid>54966</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-05-03 15:14:48 -0700</bug_when>
    <thetext>Created attachment 54966
Proposed patch addressing review comments

Ok, the names have now be changed to isAcceleratedCompositingActive.  Please have another look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220321</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-03 15:18:20 -0700</bug_when>
    <thetext>Attachment 54966 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit/chromium/ChangeLog:5:  One or more unexpected \r (^M) found; better to use only a \n  [whitespace/carriage_return] [1]
Suppressing further [whitespace/carriage_return] reports for this file.
Total errors found: 2 in 6 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>220330</commentid>
    <comment_count>14</comment_count>
      <attachid>54969</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-05-03 15:30:51 -0700</bug_when>
    <thetext>Created attachment 54969
Patch - fixed style issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220670</commentid>
    <comment_count>15</comment_count>
      <attachid>54969</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-04 11:05:51 -0700</bug_when>
    <thetext>Comment on attachment 54969
Patch - fixed style issue

WebKit/chromium/public/WebPopupMenu.h:44
&gt; +      virtual bool isAcceleratedCompositingActive() const = 0;
You can delete this line as WebPopupMenu inherits from WebWidget.

WebKit/chromium/src/WebPopupMenuImpl.h:82
&gt; +      virtual bool isAcceleratedCompositingActive() const { return false; }
please create a separate section labelled WebPopupMenu and move this
method there.

the method declarations are grouped by interfaces being implemented.

otherwise, LGTM!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220682</commentid>
    <comment_count>16</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-05-04 11:32:38 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; WebKit/chromium/src/WebPopupMenuImpl.h:82
&gt; &gt; +      virtual bool isAcceleratedCompositingActive() const { return false; }
&gt; please create a separate section labelled WebPopupMenu and move this
&gt; method there.
&gt; 
&gt; the method declarations are grouped by interfaces being implemented.
&gt; 
Since this is a method inherited from WebWidget, shouldn&apos;t it go in the WebWidget section? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220698</commentid>
    <comment_count>17</comment_count>
      <attachid>55033</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-05-04 11:51:45 -0700</bug_when>
    <thetext>Created attachment 55033
patch. Modified to address review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220699</commentid>
    <comment_count>18</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-05-04 11:53:09 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 54969 [details])
&gt; WebKit/chromium/public/WebPopupMenu.h:44
&gt; &gt; +      virtual bool isAcceleratedCompositingActive() const = 0;
&gt; You can delete this line as WebPopupMenu inherits from WebWidget.

Done.

&gt; 
&gt; WebKit/chromium/src/WebPopupMenuImpl.h:82
&gt; &gt; +      virtual bool isAcceleratedCompositingActive() const { return false; }
&gt; please create a separate section labelled WebPopupMenu and move this
&gt; method there.
&gt; 
&gt; the method declarations are grouped by interfaces being implemented.

Moved with the other WebWidget methods.

&gt; 
&gt; otherwise, LGTM!

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220774</commentid>
    <comment_count>19</comment_count>
      <attachid>55033</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-04 14:16:08 -0700</bug_when>
    <thetext>Comment on attachment 55033
patch. Modified to address review comments

sorry, more of the same kind of issue:

WebKit/chromium/src/WebViewImpl.h:188
 +      virtual bool isAcceleratedCompositingActive() const;
this should be in the WebWidget section

WebKit/chromium/src/WebViewImpl.cpp:2054
 +  bool WebViewImpl::isAcceleratedCompositingActive() const
this should be inserted after setTextDirection so that method
implementations are listed in the same order that they are
declared in the header and grouped by interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220819</commentid>
    <comment_count>20</comment_count>
      <attachid>55055</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-05-04 15:29:53 -0700</bug_when>
    <thetext>Created attachment 55055
Path - fixing placement of isAcceleratedCompositingActive in the WebViewImpl files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220821</commentid>
    <comment_count>21</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-05-04 15:30:34 -0700</bug_when>
    <thetext>Ooops, yes, I should have fixed those too..

(In reply to comment #19)
&gt; (From update of attachment 55033 [details])
&gt; sorry, more of the same kind of issue:
&gt; 
&gt; WebKit/chromium/src/WebViewImpl.h:188
&gt;  +      virtual bool isAcceleratedCompositingActive() const;
&gt; this should be in the WebWidget section

Done

&gt; 
&gt; WebKit/chromium/src/WebViewImpl.cpp:2054
&gt;  +  bool WebViewImpl::isAcceleratedCompositingActive() const
&gt; this should be inserted after setTextDirection so that method
&gt; implementations are listed in the same order that they are
&gt; declared in the header and grouped by interface.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220918</commentid>
    <comment_count>22</comment_count>
      <attachid>55055</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-04 18:08:43 -0700</bug_when>
    <thetext>Comment on attachment 55055
Path - fixing placement of isAcceleratedCompositingActive in the WebViewImpl files

Clearing flags on attachment: 55055

Committed r58793: &lt;http://trac.webkit.org/changeset/58793&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220919</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-04 18:08:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223061</commentid>
    <comment_count>24</comment_count>
      <attachid>55507</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-05-09 13:45:09 -0700</bug_when>
    <thetext>Created attachment 55507
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223062</commentid>
    <comment_count>25</comment_count>
      <attachid>55507</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-05-09 13:46:39 -0700</bug_when>
    <thetext>Comment on attachment 55507
Patch

Wrong bug, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223064</commentid>
    <comment_count>26</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-09 13:49:17 -0700</bug_when>
    <thetext>Was this webkit-patch error, or human error?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54458</attachid>
            <date>2010-04-27 15:01:39 -0700</date>
            <delta_ts>2010-04-30 12:40:49 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>isAcceleratedCompositing.txt</filename>
            <type>text/plain</type>
            <size>3165</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTgzMzgpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDQtMjcgIFZhbmdl
bGlzIEtva2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYW4gQVBJIGZvciBxdWVyeWlu
ZyB3aGV0aGVyIGEgV2ViV2lkZ2V0IGlzIHVzaW5nIGdwdSBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MjIw
CisKKyAgICAgICAgKiBwdWJsaWMvV2ViUG9wdXBNZW51Lmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBvcHVwTWVudTo6aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKToKKyAgICAgICAgKiBwdWJsaWMv
V2ViV2lkZ2V0Lmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyk6CisgICAgICAgICog
c3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTAtMDQtMjcgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2Vx
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpJbmRl
eDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQb3B1cE1lbnUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBvcHVwTWVudS5oCShyZXZpc2lvbiA1ODMxMykKKysr
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUG9wdXBNZW51LmgJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDYgKzQxLDcgQEAgY2xhc3MgV2ViV2lkZ2V0Q2xpZW50OwogY2xhc3MgV2ViUG9wdXBNZW51
IDogcHVibGljIFdlYldpZGdldCB7CiBwdWJsaWM6CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgV2Vi
UG9wdXBNZW51KiBjcmVhdGUoV2ViV2lkZ2V0Q2xpZW50Kik7CisgICAgdmlydHVhbCBib29sIGlz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lk
Z2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAko
cmV2aXNpb24gNTgzMTMpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCSh3
b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCwxMCBAQCBwdWJsaWM6CiAgICAgLy8gQ2hhbmdlcyB0
aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIHNlbGVjdGVkIGlucHV0IG5vZGUuCiAgICAgdmlydHVh
bCB2b2lkIHNldFRleHREaXJlY3Rpb24oV2ViVGV4dERpcmVjdGlvbikgPSAwOwogCisgICAgLy8g
UmV0dXJucyB0cnVlIGlmIHRoZSBXZWJXaWRnZXQgdXNlcyBHUFUgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmcKKyAgICAvLyB0byByZW5kZXIgaXRzIGNvbnRlbnRzLgorICAgIHZpcnR1YWwgYm9vbCBp
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdCA9IDA7CisKIHByb3RlY3RlZDoKICAgICB+
V2ViV2lkZ2V0KCkgeyB9CiB9OwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJ
KHJldmlzaW9uIDU4MzEzKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIwMzUsNiArMjAzNSwxNSBAQCBib29sIFdlYlZpZXdJbXBsOjp0
YWJzVG9MaW5rcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fdGFic1RvTGlua3M7CiB9CiAKK2Jvb2wg
V2ViVmlld0ltcGw6OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0Cit7CisjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIHJldHVybiBtX2lzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZzsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRSb290R3JhcGhp
Y3NMYXllcihXZWJDb3JlOjpQbGF0Zm9ybUxheWVyKiBsYXllcikKIHsKSW5kZXg6IFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9uIDU4MzEzKQorKysgV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODQsNiArMTg0LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChjb25zdCBXZWJTdHJpbmcmIHNv
dXJjZUNvZGUpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxVc2VyQ29udGVudCgpOwogCisg
ICAgdmlydHVhbCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0OworCiAgICAg
Ly8gV2ViVmlld0ltcGwKIAogICAgIHZvaWQgc2V0SWdub3JlSW5wdXRFdmVudHMoYm9vbCBuZXdW
YWx1ZSk7CkBAIC0zNTksNyArMzYxLDYgQEAgcHJpdmF0ZToKIAogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoYm9vbCk7
Ci0gICAgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZzsgfQogICAgIHZvaWQgdXBkYXRlUm9vdExheWVyQ29udGVu
dHMoY29uc3QgV2ViUmVjdCYpOwogI2VuZGlmCiAK
</data>
<flag name="review"
          id="38451"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>54818</attachid>
            <date>2010-04-30 12:40:49 -0700</date>
            <delta_ts>2010-04-30 18:59:45 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>isAcceleratedCompositing_2.txt</filename>
            <type>text/plain</type>
            <size>5738</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTg1ODUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDQtMzAgIFZhbmdl
bGlzIEtva2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYW4gQVBJIGZvciBxdWVyeWlu
ZyB3aGV0aGVyIGEgV2ViV2lkZ2V0IGlzIHVzaW5nIGdwdSBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
Zy4KKyAgICAgICAgQWxzbyBjaGFuZ2VkOiBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgdG8gdGhl
IG1vcmUgZGVzY3JpcHRpdmU6IGlzVXNpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzgyMjAKKworICAgICAg
ICAqIHB1YmxpYy9XZWJQb3B1cE1lbnUuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Lmg6
CisgICAgICAgICogc3JjL1dlYlBvcHVwTWVudUltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UG9wdXBNZW51SW1wbDo6aXNVc2luZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpOgorICAgICAgICAq
IHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJW
aWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwYWludCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc1VzaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVJvb3RMYXllckNvbnRlbnRzKToK
KyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0wNC0yOSAgSmVyZW15IE9ybG93
ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNo
ZXIuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBvcHVwTWVudS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUG9wdXBNZW51LmgJKHJldmlzaW9uIDU4
NTg0KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQb3B1cE1lbnUuaAkod29ya2luZyBj
b3B5KQpAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBXZWJXaWRnZXRDbGllbnQ7CiBjbGFzcyBXZWJQ
b3B1cE1lbnUgOiBwdWJsaWMgV2ViV2lkZ2V0IHsKIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIHN0
YXRpYyBXZWJQb3B1cE1lbnUqIGNyZWF0ZShXZWJXaWRnZXRDbGllbnQqKTsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNVc2luZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdCA9IDA7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lk
Z2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAko
cmV2aXNpb24gNTg1ODQpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCSh3
b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCwxMCBAQCBwdWJsaWM6CiAgICAgLy8gQ2hhbmdlcyB0
aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIHNlbGVjdGVkIGlucHV0IG5vZGUuCiAgICAgdmlydHVh
bCB2b2lkIHNldFRleHREaXJlY3Rpb24oV2ViVGV4dERpcmVjdGlvbikgPSAwOwogCisgICAgLy8g
UmV0dXJucyB0cnVlIGlmIHRoZSBXZWJXaWRnZXQgdXNlcyBHUFUgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmcKKyAgICAvLyB0byByZW5kZXIgaXRzIGNvbnRlbnRzLgorICAgIHZpcnR1YWwgYm9vbCBp
c1VzaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0ID0gMDsKKwogcHJvdGVjdGVkOgog
ICAgIH5XZWJXaWRnZXQoKSB7IH0KIH07CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBv
cHVwTWVudUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVw
TWVudUltcGwuaAkocmV2aXNpb24gNTg1ODQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBv
cHVwTWVudUltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksNyBAQCBwdWJsaWM6CiAg
ICAgLy8gV2ViUG9wdXBNZW51SW1wbAogICAgIHZvaWQgSW5pdChXZWJDb3JlOjpGcmFtZWxlc3NT
Y3JvbGxWaWV3KiB3aWRnZXQsCiAgICAgICAgICAgICAgIGNvbnN0IFdlYlJlY3QmIGJvdW5kcyk7
CisgICAgdmlydHVhbCBib29sIGlzVXNpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAogICAgIFdlYldpZGdldENsaWVudCogY2xpZW50KCkgeyByZXR1
cm4gbV9jbGllbnQ7IH0KIApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJl
dmlzaW9uIDU4NTg0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI0Miw3ICsyNDIsNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwo
V2ViVmlld0NsaWVudCogCiAgICAgLCBtX2hhdmVNb3VzZUNhcHR1cmUoZmFsc2UpCiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICwgbV9sYXllclJlbmRlcmVyKDApCi0gICAg
LCBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyhmYWxzZSkKKyAgICAsIG1faXNVc2luZ0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmcoZmFsc2UpCiAjZW5kaWYKIHsKICAgICAvLyBXZWJLaXQvd2luL1dl
YlZpZXcuY3BwIGRvZXMgdGhlIHNhbWUgdGhpbmcsIGV4Y2VwdCB0aGV5IGNhbGwgdGhlCkBAIC05
NDEsNyArOTQxLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cGFpbnQoV2ViQ2FudmFzKiBjYW52YQog
ewogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmICghaXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nKCkpIHsKKyAgICBpZiAoIWlzVXNpbmdBY2NlbGVyYXRlZENvbXBvc2l0
aW5nKCkpIHsKICNlbmRpZgogICAgICAgICBXZWJGcmFtZUltcGwqIHdlYmZyYW1lID0gbWFpbkZy
YW1lSW1wbCgpOwogICAgICAgICBpZiAod2ViZnJhbWUpCkBAIC0yMDUxLDYgKzIwNTEsMTUgQEAg
Ym9vbCBXZWJWaWV3SW1wbDo6dGFic1RvTGlua3MoKSBjb25zdAogICAgIHJldHVybiBtX3RhYnNU
b0xpbmtzOwogfQogCitib29sIFdlYlZpZXdJbXBsOjppc1VzaW5nQWNjZWxlcmF0ZWRDb21wb3Np
dGluZygpIGNvbnN0Cit7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIHJl
dHVybiBtX2lzVXNpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nOworI2Vsc2UKKyAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKK30KKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZv
aWQgV2ViVmlld0ltcGw6OnNldFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OlBsYXRmb3JtTGF5
ZXIqIGxheWVyKQogewpAQCAtMjA2MSwyMiArMjA3MCwyMiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpz
ZXRSb290R3JhcGhpY3NMYXllcihXCiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmcoYm9vbCBhY2NlbGVyYXRlZCkKIHsKLSAgICBpZiAobV9pc0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmcgPT0gYWNjZWxlcmF0ZWQpCisgICAgaWYgKG1faXNVc2luZ0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmcgPT0gYWNjZWxlcmF0ZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChh
Y2NlbGVyYXRlZCkgewogICAgICAgICBtX2xheWVyUmVuZGVyZXIgPSBMYXllclJlbmRlcmVyQ2hy
b21pdW06OmNyZWF0ZSgpOwogICAgICAgICBpZiAobV9sYXllclJlbmRlcmVyKQotICAgICAgICAg
ICAgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPSB0cnVlOworICAgICAgICAgICAgbV9pc1Vz
aW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9IHRydWU7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
bV9sYXllclJlbmRlcmVyID0gMDsKLSAgICAgICAgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcg
PSBmYWxzZTsKKyAgICAgICAgbV9pc1VzaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9IGZhbHNl
OwogICAgIH0KIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlUm9vdExheWVyQ29udGVudHMo
Y29uc3QgV2ViUmVjdCYgcmVjdCkKIHsKLSAgICBpZiAoIWlzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
ZygpKQorICAgIGlmICghaXNVc2luZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgV2ViRnJhbWVJbXBsKiB3ZWJmcmFtZSA9IG1haW5GcmFtZUltcGwoKTsK
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9uIDU4NTg0KQorKysgV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNiAr
MTg1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChjb25z
dCBXZWJTdHJpbmcmIHNvdXJjZUNvZGUpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxVc2Vy
Q29udGVudCgpOwogCisgICAgdmlydHVhbCBib29sIGlzVXNpbmdBY2NlbGVyYXRlZENvbXBvc2l0
aW5nKCkgY29uc3Q7CisKICAgICAvLyBXZWJWaWV3SW1wbAogCiAgICAgdm9pZCBzZXRJZ25vcmVJ
bnB1dEV2ZW50cyhib29sIG5ld1ZhbHVlKTsKQEAgLTM2MCw3ICszNjIsNiBAQCBwcml2YXRlOgog
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZvaWQgc2V0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZyhib29sKTsKLSAgICBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygp
IGNvbnN0IHsgcmV0dXJuIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOyB9CiAgICAgdm9pZCB1
cGRhdGVSb290TGF5ZXJDb250ZW50cyhjb25zdCBXZWJSZWN0Jik7CiAjZW5kaWYKIApAQCAtNDk2
LDcgKzQ5Nyw3IEBAIHByaXZhdGU6CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgT3duUHRyPFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bT4gbV9sYXllclJlbmRl
cmVyOwotICAgIGJvb2wgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7CisgICAgYm9vbCBtX2lz
VXNpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nOwogI2VuZGlmCiAgICAgc3RhdGljIGNvbnN0IFdl
YklucHV0RXZlbnQqIG1fY3VycmVudElucHV0RXZlbnQ7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54844</attachid>
            <date>2010-04-30 18:59:45 -0700</date>
            <delta_ts>2010-05-03 15:14:48 -0700</delta_ts>
            <desc>Proposed patch addressing review comments</desc>
            <filename>isAcceleratedCompositing_4.txt</filename>
            <type>text/plain</type>
            <size>6102</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTg2MjYpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDQtMzAgIFZhbmdl
bGlzIEtva2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICBQcm92aWRlIGFuIEFQSSBmb3IgcXVlcnlp
bmcgd2hldGhlciBhIFdlYldpZGdldCBpcyB1c2luZyBncHUgYWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmcuDQorICAgICAgICAgQWxzbyBjaGFuZ2VkOiBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgdG86
IGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQuDQorICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MjIwCisKKyAgICAgICAgKiBwdWJsaWMvV2Vi
UG9wdXBNZW51Lmg6CisgICAgICAgICogcHVibGljL1dlYldpZGdldC5oOgorICAgICAgICAqIHNy
Yy9XZWJQb3B1cE1lbnVJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6
OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwYWludCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnNldFJvb3RHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OmVuYWJsZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlUm9vdExheWVyQ29udGVudHMpOgorICAgICAgICAq
IHNyYy9XZWJWaWV3SW1wbC5oOgorCiAyMDEwLTA0LTMwICBKaWFuIExpICA8amlhbmxpQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBXZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlBvcHVwTWVudS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUG9wdXBNZW51LmgJKHJldmlzaW9uIDU4NTg0KQorKysgV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJQb3B1cE1lbnUuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiAr
NDEsNyBAQCBjbGFzcyBXZWJXaWRnZXRDbGllbnQ7CiBjbGFzcyBXZWJQb3B1cE1lbnUgOiBwdWJs
aWMgV2ViV2lkZ2V0IHsKIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJQb3B1cE1l
bnUqIGNyZWF0ZShXZWJXaWRnZXRDbGllbnQqKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpIGNvbnN0ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCShyZXZpc2lvbiA1ODU4
NCkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTkwLDYgKzkwLDEwIEBAIHB1YmxpYzoKICAgICAvLyBDaGFuZ2VzIHRoZSB0ZXh0IGRpcmVj
dGlvbiBvZiB0aGUgc2VsZWN0ZWQgaW5wdXQgbm9kZS4KICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4
dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0aW9uKSA9IDA7CiAKKyAgICAvLyBSZXR1cm5zIHRydWUg
aWYgdGhlIFdlYldpZGdldCB1c2VzIEdQVSBhY2NlbGVyYXRlZCBjb21wb3NpdGluZworICAgIC8v
IHRvIHJlbmRlciBpdHMgY29udGVudHMuCisgICAgdmlydHVhbCBib29sIGlzQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0VuYWJsZWQoKSBjb25zdCA9IDA7CisKIHByb3RlY3RlZDoKICAgICB+V2ViV2lk
Z2V0KCkgeyB9CiB9OwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmgJ
KHJldmlzaW9uIDU4NTg0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBs
LmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDcgQEAgcHVibGljOgogICAgIC8vIFdlYlBv
cHVwTWVudUltcGwKICAgICB2b2lkIEluaXQoV2ViQ29yZTo6RnJhbWVsZXNzU2Nyb2xsVmlldyog
d2lkZ2V0LAogICAgICAgICAgICAgICBjb25zdCBXZWJSZWN0JiBib3VuZHMpOworICAgIHZpcnR1
YWwgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIFdlYldpZGdldENsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGll
bnQ7IH0KIApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDU4
NTg0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI0Miw3ICsyNDIsNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0Ns
aWVudCogCiAgICAgLCBtX2hhdmVNb3VzZUNhcHR1cmUoZmFsc2UpCiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgICwgbV9sYXllclJlbmRlcmVyKDApCi0gICAgLCBtX2lzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZyhmYWxzZSkKKyAgICAsIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZChmYWxzZSkKICNlbmRpZgogewogICAgIC8vIFdlYktpdC93aW4vV2ViVmlldy5j
cHAgZG9lcyB0aGUgc2FtZSB0aGluZywgZXhjZXB0IHRoZXkgY2FsbCB0aGUKQEAgLTk0MSw3ICs5
NDEsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpwYWludChXZWJDYW52YXMqIGNhbnZhCiB7CiAKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKCFpc0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmcoKSkgeworICAgIGlmICghaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgp
KSB7CiAjZW5kaWYKICAgICAgICAgV2ViRnJhbWVJbXBsKiB3ZWJmcmFtZSA9IG1haW5GcmFtZUlt
cGwoKTsKICAgICAgICAgaWYgKHdlYmZyYW1lKQpAQCAtMjA1MSwzMiArMjA1MSw0MSBAQCBib29s
IFdlYlZpZXdJbXBsOjp0YWJzVG9MaW5rcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fdGFic1RvTGlu
a3M7CiB9CiAKK2Jvb2wgV2ViVmlld0ltcGw6OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJs
ZWQoKSBjb25zdAoreworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICByZXR1
cm4gbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOworI2Vsc2UKKyAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKK30KKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZv
aWQgV2ViVmlld0ltcGw6OnNldFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OlBsYXRmb3JtTGF5
ZXIqIGxheWVyKQogewotICAgIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcobGF5ZXIgPyB0cnVl
IDogZmFsc2UpOworICAgIGVuYWJsZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmcobGF5ZXIgPyB0cnVl
IDogZmFsc2UpOwogICAgIGlmIChtX2xheWVyUmVuZGVyZXIpCiAgICAgICAgIG1fbGF5ZXJSZW5k
ZXJlci0+c2V0Um9vdExheWVyKGxheWVyKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6c2V0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZyhib29sIGFjY2VsZXJhdGVkKQordm9pZCBXZWJWaWV3SW1wbDo6
ZW5hYmxlQWNjZWxlcmF0ZWRDb21wb3NpdGluZyhib29sIGFjY2VsZXJhdGVkKQogewotICAgIGlm
IChtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9PSBhY2NlbGVyYXRlZCkKKyAgICBpZiAobV9p
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID09IGFjY2VsZXJhdGVkKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAoYWNjZWxlcmF0ZWQpIHsKICAgICAgICAgbV9sYXllclJlbmRlcmVy
ID0gTGF5ZXJSZW5kZXJlckNocm9taXVtOjpjcmVhdGUoKTsKICAgICAgICAgaWYgKG1fbGF5ZXJS
ZW5kZXJlcikKLSAgICAgICAgICAgIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nID0gdHJ1ZTsK
KyAgICAgICAgICAgIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9IHRydWU7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgbV9sYXllclJlbmRlcmVyID0gMDsKLSAgICAgICAgbV9pc0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmcgPSBmYWxzZTsKKyAgICAgICAgbV9pc0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkID0gZmFsc2U7CiAgICAgfQogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjp1
cGRhdGVSb290TGF5ZXJDb250ZW50cyhjb25zdCBXZWJSZWN0JiByZWN0KQogewotICAgIGlmICgh
aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCisgICAgaWYgKCFpc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lSW1wbCogd2Vi
ZnJhbWUgPSBtYWluRnJhbWVJbXBsKCk7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
CShyZXZpc2lvbiA1ODU4NCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAko
d29ya2luZyBjb3B5KQpAQCAtMTg1LDYgKzE4NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgYWRkVXNlclN0eWxlU2hlZXQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlKTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlQWxsVXNlckNvbnRlbnQoKTsKIAorICAgIHZpcnR1YWwgYm9vbCBp
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkgY29uc3Q7CisKICAgICAvLyBXZWJWaWV3
SW1wbAogCiAgICAgdm9pZCBzZXRJZ25vcmVJbnB1dEV2ZW50cyhib29sIG5ld1ZhbHVlKTsKQEAg
LTM1OSw4ICszNjEsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBEcmFnQWN0aW9uKTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLSAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoYm9vbCk7Ci0gICAg
Ym9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZzsgfQorICAgIHZvaWQgZW5hYmxlQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Zyhib29sKTsKICAgICB2b2lkIHVwZGF0ZVJvb3RMYXllckNvbnRlbnRzKGNvbnN0IFdlYlJlY3Qm
KTsKICNlbmRpZgogCkBAIC00OTYsNyArNDk3LDcgQEAgcHJpdmF0ZToKIAogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICBPd25QdHI8V2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNo
cm9taXVtPiBtX2xheWVyUmVuZGVyZXI7Ci0gICAgYm9vbCBtX2lzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZzsKKyAgICBib29sIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsKICNlbmRp
ZgogICAgIHN0YXRpYyBjb25zdCBXZWJJbnB1dEV2ZW50KiBtX2N1cnJlbnRJbnB1dEV2ZW50Owog
fTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54966</attachid>
            <date>2010-05-03 15:14:48 -0700</date>
            <delta_ts>2010-05-03 15:30:51 -0700</delta_ts>
            <desc>Proposed patch addressing review comments</desc>
            <filename>isAcceleratedCompositing_5.txt</filename>
            <type>text/plain</type>
            <size>6120</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTg2ODUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUtMDMgIFZhbmdl
bGlzIEtva2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYW4gQVBJIGZvciBxdWVyeWlu
ZyB3aGV0aGVyIGEgV2ViV2lkZ2V0IGlzIHVzaW5nIGdwdSBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
Zy4NCisgICAgICAgIEFsc28gY2hhbmdlZDogaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nIHRvOiBp
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUuDQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzgyMjAKKworICAgICAgICAqIHB1YmxpYy9XZWJQb3B1
cE1lbnUuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Lmg6CisgICAgICAgICogc3JjL1dl
YlBvcHVwTWVudUltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6aXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGFpbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldFJvb3RHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVSb290TGF5ZXJDb250ZW50cyk6CisgICAgICAgICog
c3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTAtMDUtMDIgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hh
ZWxuQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRG1pdHJ5IFRpdG92LgpJbmRl
eDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQb3B1cE1lbnUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBvcHVwTWVudS5oCShyZXZpc2lvbiA1ODU4NCkKKysr
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUG9wdXBNZW51LmgJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDYgKzQxLDcgQEAgY2xhc3MgV2ViV2lkZ2V0Q2xpZW50OwogY2xhc3MgV2ViUG9wdXBNZW51
IDogcHVibGljIFdlYldpZGdldCB7CiBwdWJsaWM6CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgV2Vi
UG9wdXBNZW51KiBjcmVhdGUoV2ViV2lkZ2V0Q2xpZW50Kik7CisgICAgdmlydHVhbCBib29sIGlz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGNvbnN0ID0gMDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCShyZXZpc2lv
biA1ODU4NCkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTkwLDYgKzkwLDEwIEBAIHB1YmxpYzoKICAgICAvLyBDaGFuZ2VzIHRoZSB0ZXh0
IGRpcmVjdGlvbiBvZiB0aGUgc2VsZWN0ZWQgaW5wdXQgbm9kZS4KICAgICB2aXJ0dWFsIHZvaWQg
c2V0VGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0aW9uKSA9IDA7CiAKKyAgICAvLyBSZXR1cm5z
IHRydWUgaWYgdGhlIFdlYldpZGdldCB1c2VzIEdQVSBhY2NlbGVyYXRlZCBjb21wb3NpdGluZwor
ICAgIC8vIHRvIHJlbmRlciBpdHMgY29udGVudHMuCisgICAgdmlydHVhbCBib29sIGlzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGNvbnN0ID0gMDsKKwogcHJvdGVjdGVkOgogICAgIH5X
ZWJXaWRnZXQoKSB7IH0KIH07CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVu
dUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUlt
cGwuaAkocmV2aXNpb24gNTg1ODQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVu
dUltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksNyBAQCBwdWJsaWM6CiAgICAgLy8g
V2ViUG9wdXBNZW51SW1wbAogICAgIHZvaWQgSW5pdChXZWJDb3JlOjpGcmFtZWxlc3NTY3JvbGxW
aWV3KiB3aWRnZXQsCiAgICAgICAgICAgICAgIGNvbnN0IFdlYlJlY3QmIGJvdW5kcyk7CisgICAg
dmlydHVhbCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICBXZWJXaWRnZXRDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1f
Y2xpZW50OyB9CiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lv
biA1ODU4NCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNDIsNyArMjQyLDcgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZp
ZXdDbGllbnQqIAogICAgICwgbV9oYXZlTW91c2VDYXB0dXJlKGZhbHNlKQogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICAsIG1fbGF5ZXJSZW5kZXJlcigwKQotICAgICwgbV9p
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoZmFsc2UpCisgICAgLCBtX2lzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0FjdGl2ZShmYWxzZSkKICNlbmRpZgogewogICAgIC8vIFdlYktpdC93aW4vV2ViVmll
dy5jcHAgZG9lcyB0aGUgc2FtZSB0aGluZywgZXhjZXB0IHRoZXkgY2FsbCB0aGUKQEAgLTk0MSw3
ICs5NDEsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpwYWludChXZWJDYW52YXMqIGNhbnZhCiB7CiAK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKCFpc0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmcoKSkgeworICAgIGlmICghaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZl
KCkpIHsKICNlbmRpZgogICAgICAgICBXZWJGcmFtZUltcGwqIHdlYmZyYW1lID0gbWFpbkZyYW1l
SW1wbCgpOwogICAgICAgICBpZiAod2ViZnJhbWUpCkBAIC0yMDUxLDMyICsyMDUxLDQxIEBAIGJv
b2wgV2ViVmlld0ltcGw6OnRhYnNUb0xpbmtzKCkgY29uc3QKICAgICByZXR1cm4gbV90YWJzVG9M
aW5rczsKIH0KIAorYm9vbCBXZWJWaWV3SW1wbDo6aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0
aXZlKCkgY29uc3QKK3sKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgcmV0
dXJuIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlOworI2Vsc2UKKyAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKK30KKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZv
aWQgV2ViVmlld0ltcGw6OnNldFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OlBsYXRmb3JtTGF5
ZXIqIGxheWVyKQogewotICAgIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcobGF5ZXIgPyB0cnVl
IDogZmFsc2UpOworICAgIHNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShsYXllciA/
IHRydWUgOiBmYWxzZSk7CiAgICAgaWYgKG1fbGF5ZXJSZW5kZXJlcikKICAgICAgICAgbV9sYXll
clJlbmRlcmVyLT5zZXRSb290TGF5ZXIobGF5ZXIpOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpz
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKGJvb2wgYWNjZWxlcmF0ZWQpCit2b2lkIFdlYlZpZXdJ
bXBsOjpzZXRJc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoYm9vbCBhY3RpdmUpCiB7Ci0g
ICAgaWYgKG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nID09IGFjY2VsZXJhdGVkKQorICAgIGlm
IChtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSA9PSBhY3RpdmUpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGlmIChhY2NlbGVyYXRlZCkgeworICAgIGlmIChhY3RpdmUpIHsKICAgICAg
ICAgbV9sYXllclJlbmRlcmVyID0gTGF5ZXJSZW5kZXJlckNocm9taXVtOjpjcmVhdGUoKTsKICAg
ICAgICAgaWYgKG1fbGF5ZXJSZW5kZXJlcikKLSAgICAgICAgICAgIG1faXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nID0gdHJ1ZTsKKyAgICAgICAgICAgIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5n
QWN0aXZlID0gdHJ1ZTsKICAgICB9IGVsc2UgewogICAgICAgICBtX2xheWVyUmVuZGVyZXIgPSAw
OwotICAgICAgICBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9IGZhbHNlOworICAgICAgICBt
X2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSA9IGZhbHNlOwogICAgIH0KIH0KIAogdm9p
ZCBXZWJWaWV3SW1wbDo6dXBkYXRlUm9vdExheWVyQ29udGVudHMoY29uc3QgV2ViUmVjdCYgcmVj
dCkKIHsKLSAgICBpZiAoIWlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQorICAgIGlmICghaXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdl
YkZyYW1lSW1wbCogd2ViZnJhbWUgPSBtYWluRnJhbWVJbXBsKCk7CkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5oCShyZXZpc2lvbiA1ODU4NCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTg1LDYgKzE4NSw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoY29uc3QgV2ViU3RyaW5nJiBzb3Vy
Y2VDb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQWxsVXNlckNvbnRlbnQoKTsKIAorICAg
IHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSBjb25zdDsKKwog
ICAgIC8vIFdlYlZpZXdJbXBsCiAKICAgICB2b2lkIHNldElnbm9yZUlucHV0RXZlbnRzKGJvb2wg
bmV3VmFsdWUpOwpAQCAtMzU5LDggKzM2MSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERyYWdBY3Rpb24pOwogCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Zyhib29sKTsKLSAgICBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0IHsgcmV0
dXJuIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOyB9CisgICAgdm9pZCBzZXRJc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdBY3RpdmUoYm9vbCk7CiAgICAgdm9pZCB1cGRhdGVSb290TGF5ZXJDb250
ZW50cyhjb25zdCBXZWJSZWN0Jik7CiAjZW5kaWYKIApAQCAtNDk2LDcgKzQ5Nyw3IEBAIHByaXZh
dGU6CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgT3duUHRyPFdlYkNv
cmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bT4gbV9sYXllclJlbmRlcmVyOwotICAgIGJvb2wgbV9p
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7CisgICAgYm9vbCBtX2lzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0FjdGl2ZTsKICNlbmRpZgogICAgIHN0YXRpYyBjb25zdCBXZWJJbnB1dEV2ZW50KiBtX2N1
cnJlbnRJbnB1dEV2ZW50OwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54969</attachid>
            <date>2010-05-03 15:30:51 -0700</date>
            <delta_ts>2010-05-04 11:51:45 -0700</delta_ts>
            <desc>Patch - fixed style issue</desc>
            <filename>isAcceleratedCompositing_6.txt</filename>
            <type>text/plain</type>
            <size>6118</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTg2ODUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUtMDMgIFZhbmdl
bGlzIEtva2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYW4gQVBJIGZvciBxdWVyeWlu
ZyB3aGV0aGVyIGEgV2ViV2lkZ2V0IGlzIHVzaW5nIGdwdSBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
Zy4KKyAgICAgICAgQWxzbyBjaGFuZ2VkOiBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgdG86IGlz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MjIwCisKKyAgICAgICAgKiBwdWJsaWMvV2ViUG9wdXBN
ZW51Lmg6CisgICAgICAgICogcHVibGljL1dlYldpZGdldC5oOgorICAgICAgICAqIHNyYy9XZWJQ
b3B1cE1lbnVJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OmlzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnBhaW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpzZXRSb290R3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpzZXRJc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlUm9vdExheWVyQ29udGVudHMpOgorICAgICAgICAqIHNy
Yy9XZWJWaWV3SW1wbC5oOgorCiAyMDEwLTA1LTAyICBNaWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVs
bkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUG9wdXBNZW51LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQb3B1cE1lbnUuaAkocmV2aXNpb24gNTg1ODQpCisrKyBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBvcHVwTWVudS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
MSw2ICs0MSw3IEBAIGNsYXNzIFdlYldpZGdldENsaWVudDsKIGNsYXNzIFdlYlBvcHVwTWVudSA6
IHB1YmxpYyBXZWJXaWRnZXQgewogcHVibGljOgogICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYlBv
cHVwTWVudSogY3JlYXRlKFdlYldpZGdldENsaWVudCopOworICAgIHZpcnR1YWwgYm9vbCBpc0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSBjb25zdCA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAkocmV2aXNpb24g
NTg1ODQpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCSh3b3JraW5nIGNv
cHkpCkBAIC05MCw2ICs5MCwxMCBAQCBwdWJsaWM6CiAgICAgLy8gQ2hhbmdlcyB0aGUgdGV4dCBk
aXJlY3Rpb24gb2YgdGhlIHNlbGVjdGVkIGlucHV0IG5vZGUuCiAgICAgdmlydHVhbCB2b2lkIHNl
dFRleHREaXJlY3Rpb24oV2ViVGV4dERpcmVjdGlvbikgPSAwOwogCisgICAgLy8gUmV0dXJucyB0
cnVlIGlmIHRoZSBXZWJXaWRnZXQgdXNlcyBHUFUgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAg
ICAvLyB0byByZW5kZXIgaXRzIGNvbnRlbnRzLgorICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdBY3RpdmUoKSBjb25zdCA9IDA7CisKIHByb3RlY3RlZDoKICAgICB+V2Vi
V2lkZ2V0KCkgeyB9CiB9OwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJ
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBs
LmgJKHJldmlzaW9uIDU4NTg0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJ
bXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDcgQEAgcHVibGljOgogICAgIC8vIFdl
YlBvcHVwTWVudUltcGwKICAgICB2b2lkIEluaXQoV2ViQ29yZTo6RnJhbWVsZXNzU2Nyb2xsVmll
dyogd2lkZ2V0LAogICAgICAgICAgICAgICBjb25zdCBXZWJSZWN0JiBib3VuZHMpOworICAgIHZp
cnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCiAgICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2Ns
aWVudDsgfQogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24g
NTg1ODQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQyLDcgKzI0Miw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3
Q2xpZW50KiAKICAgICAsIG1faGF2ZU1vdXNlQ2FwdHVyZShmYWxzZSkKICNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgLCBtX2xheWVyUmVuZGVyZXIoMCkKLSAgICAsIG1faXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nKGZhbHNlKQorICAgICwgbV9pc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdBY3RpdmUoZmFsc2UpCiAjZW5kaWYKIHsKICAgICAvLyBXZWJLaXQvd2luL1dlYlZpZXcu
Y3BwIGRvZXMgdGhlIHNhbWUgdGhpbmcsIGV4Y2VwdCB0aGV5IGNhbGwgdGhlCkBAIC05NDEsNyAr
OTQxLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cGFpbnQoV2ViQ2FudmFzKiBjYW52YQogewogCiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmICghaXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nKCkpIHsKKyAgICBpZiAoIWlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgp
KSB7CiAjZW5kaWYKICAgICAgICAgV2ViRnJhbWVJbXBsKiB3ZWJmcmFtZSA9IG1haW5GcmFtZUlt
cGwoKTsKICAgICAgICAgaWYgKHdlYmZyYW1lKQpAQCAtMjA1MSwzMiArMjA1MSw0MSBAQCBib29s
IFdlYlZpZXdJbXBsOjp0YWJzVG9MaW5rcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fdGFic1RvTGlu
a3M7CiB9CiAKK2Jvb2wgV2ViVmlld0ltcGw6OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2
ZSgpIGNvbnN0Cit7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIHJldHVy
biBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZTsKKyNlbHNlCisgICAgcmV0dXJuIGZh
bHNlOworI2VuZGlmCit9CisKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lk
IFdlYlZpZXdJbXBsOjpzZXRSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpQbGF0Zm9ybUxheWVy
KiBsYXllcikKIHsKLSAgICBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKGxheWVyID8gdHJ1ZSA6
IGZhbHNlKTsKKyAgICBzZXRJc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUobGF5ZXIgPyB0
cnVlIDogZmFsc2UpOwogICAgIGlmIChtX2xheWVyUmVuZGVyZXIpCiAgICAgICAgIG1fbGF5ZXJS
ZW5kZXJlci0+c2V0Um9vdExheWVyKGxheWVyKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6c2V0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZyhib29sIGFjY2VsZXJhdGVkKQordm9pZCBXZWJWaWV3SW1w
bDo6c2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGJvb2wgYWN0aXZlKQogewotICAg
IGlmIChtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9PSBhY2NlbGVyYXRlZCkKKyAgICBpZiAo
bV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUgPT0gYWN0aXZlKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAoYWNjZWxlcmF0ZWQpIHsKKyAgICBpZiAoYWN0aXZlKSB7CiAgICAgICAg
IG1fbGF5ZXJSZW5kZXJlciA9IExheWVyUmVuZGVyZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAg
ICAgIGlmIChtX2xheWVyUmVuZGVyZXIpCi0gICAgICAgICAgICBtX2lzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZyA9IHRydWU7CisgICAgICAgICAgICBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Fj
dGl2ZSA9IHRydWU7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9sYXllclJlbmRlcmVyID0gMDsK
LSAgICAgICAgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPSBmYWxzZTsKKyAgICAgICAgbV9p
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUgPSBmYWxzZTsKICAgICB9CiB9CiAKIHZvaWQg
V2ViVmlld0ltcGw6OnVwZGF0ZVJvb3RMYXllckNvbnRlbnRzKGNvbnN0IFdlYlJlY3QmIHJlY3Qp
CiB7Ci0gICAgaWYgKCFpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkKKyAgICBpZiAoIWlzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJG
cmFtZUltcGwqIHdlYmZyYW1lID0gbWFpbkZyYW1lSW1wbCgpOwpJbmRleDogV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaAkocmV2aXNpb24gNTg1ODQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4NSw2ICsxODUsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGFkZFVzZXJTdHlsZVNoZWV0KGNvbnN0IFdlYlN0cmluZyYgc291cmNl
Q29kZSk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFsbFVzZXJDb250ZW50KCk7CiAKKyAgICB2
aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkgY29uc3Q7CisKICAg
ICAvLyBXZWJWaWV3SW1wbAogCiAgICAgdm9pZCBzZXRJZ25vcmVJbnB1dEV2ZW50cyhib29sIG5l
d1ZhbHVlKTsKQEAgLTM1OSw4ICszNjEsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEcmFnQWN0aW9uKTsKIAogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKLSAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmco
Ym9vbCk7Ci0gICAgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdCB7IHJldHVy
biBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsgfQorICAgIHZvaWQgc2V0SXNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQWN0aXZlKGJvb2wpOwogICAgIHZvaWQgdXBkYXRlUm9vdExheWVyQ29udGVu
dHMoY29uc3QgV2ViUmVjdCYpOwogI2VuZGlmCiAKQEAgLTQ5Niw3ICs0OTcsNyBAQCBwcml2YXRl
OgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIE93blB0cjxXZWJDb3Jl
OjpMYXllclJlbmRlcmVyQ2hyb21pdW0+IG1fbGF5ZXJSZW5kZXJlcjsKLSAgICBib29sIG1faXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nOworICAgIGJvb2wgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdBY3RpdmU7CiAjZW5kaWYKICAgICBzdGF0aWMgY29uc3QgV2ViSW5wdXRFdmVudCogbV9jdXJy
ZW50SW5wdXRFdmVudDsKIH07Cg==
</data>
<flag name="review"
          id="39055"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55033</attachid>
            <date>2010-05-04 11:51:45 -0700</date>
            <delta_ts>2010-05-04 15:29:53 -0700</delta_ts>
            <desc>patch. Modified to address review comments</desc>
            <filename>isAcceleratedCompositing_7.txt</filename>
            <type>text/plain</type>
            <size>5723</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTg2ODUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDUtMDMgIFZhbmdl
bGlzIEtva2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYW4gQVBJIGZvciBxdWVyeWlu
ZyB3aGV0aGVyIGEgV2ViV2lkZ2V0IGlzIHVzaW5nIGdwdSBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
Zy4KKyAgICAgICAgQWxzbyBjaGFuZ2VkOiBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgdG86IGlz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MjIwCisKKyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0
Lmg6CisgICAgICAgICogc3JjL1dlYlBvcHVwTWVudUltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUG9wdXBNZW51SW1wbDo6aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKyAgICAg
ICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGFpbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFJvb3RHcmFwaGljc0xheWVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0FjdGl2ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVSb290TGF5ZXJD
b250ZW50cyk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTAtMDUtMDIgIE1p
Y2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRG1pdHJ5IFRpdG92LgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCShyZXZp
c2lvbiA1ODU4NCkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTkwLDYgKzkwLDEwIEBAIHB1YmxpYzoKICAgICAvLyBDaGFuZ2VzIHRoZSB0
ZXh0IGRpcmVjdGlvbiBvZiB0aGUgc2VsZWN0ZWQgaW5wdXQgbm9kZS4KICAgICB2aXJ0dWFsIHZv
aWQgc2V0VGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0aW9uKSA9IDA7CiAKKyAgICAvLyBSZXR1
cm5zIHRydWUgaWYgdGhlIFdlYldpZGdldCB1c2VzIEdQVSBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZworICAgIC8vIHRvIHJlbmRlciBpdHMgY29udGVudHMuCisgICAgdmlydHVhbCBib29sIGlzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGNvbnN0ID0gMDsKKwogcHJvdGVjdGVkOgogICAg
IH5XZWJXaWRnZXQoKSB7IH0KIH07CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVw
TWVudUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVu
dUltcGwuaAkocmV2aXNpb24gNTg1ODQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVw
TWVudUltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGludCB0YXJnZXRTdGFydCwgaW50IHRhcmdldEVuZCwgY29uc3QgV2ViU3RyaW5nJiB0ZXh0
KTsKICAgICB2aXJ0dWFsIGJvb2wgcXVlcnlDb21wb3NpdGlvblN0YXR1cyhib29sKiBlbmFibGVk
LCBXZWJSZWN0KiBjYXJldFJlY3QpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0RGlyZWN0aW9u
KFdlYlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8v
IFdlYlBvcHVwTWVudUltcGwKICAgICB2b2lkIEluaXQoV2ViQ29yZTo6RnJhbWVsZXNzU2Nyb2xs
Vmlldyogd2lkZ2V0LApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlz
aW9uIDU4NTg0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI0Miw3ICsyNDIsNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2Vi
Vmlld0NsaWVudCogCiAgICAgLCBtX2hhdmVNb3VzZUNhcHR1cmUoZmFsc2UpCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICwgbV9sYXllclJlbmRlcmVyKDApCi0gICAgLCBt
X2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyhmYWxzZSkKKyAgICAsIG1faXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nQWN0aXZlKGZhbHNlKQogI2VuZGlmCiB7CiAgICAgLy8gV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcCBkb2VzIHRoZSBzYW1lIHRoaW5nLCBleGNlcHQgdGhleSBjYWxsIHRoZQpAQCAtOTQx
LDcgKzk0MSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnBhaW50KFdlYkNhbnZhcyogY2FudmEKIHsK
IAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAoIWlzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZygpKSB7CisgICAgaWYgKCFpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3Rp
dmUoKSkgewogI2VuZGlmCiAgICAgICAgIFdlYkZyYW1lSW1wbCogd2ViZnJhbWUgPSBtYWluRnJh
bWVJbXBsKCk7CiAgICAgICAgIGlmICh3ZWJmcmFtZSkKQEAgLTIwNTEsMzIgKzIwNTEsNDEgQEAg
Ym9vbCBXZWJWaWV3SW1wbDo6dGFic1RvTGlua3MoKSBjb25zdAogICAgIHJldHVybiBtX3RhYnNU
b0xpbmtzOwogfQogCitib29sIFdlYlZpZXdJbXBsOjppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdB
Y3RpdmUoKSBjb25zdAoreworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBy
ZXR1cm4gbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmU7CisjZWxzZQorICAgIHJldHVy
biBmYWxzZTsKKyNlbmRpZgorfQorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
dm9pZCBXZWJWaWV3SW1wbDo6c2V0Um9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6UGxhdGZvcm1M
YXllciogbGF5ZXIpCiB7Ci0gICAgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZyhsYXllciA/IHRy
dWUgOiBmYWxzZSk7CisgICAgc2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGxheWVy
ID8gdHJ1ZSA6IGZhbHNlKTsKICAgICBpZiAobV9sYXllclJlbmRlcmVyKQogICAgICAgICBtX2xh
eWVyUmVuZGVyZXItPnNldFJvb3RMYXllcihsYXllcik7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6
OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoYm9vbCBhY2NlbGVyYXRlZCkKK3ZvaWQgV2ViVmll
d0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sIGFjdGl2ZSkKIHsK
LSAgICBpZiAobV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPT0gYWNjZWxlcmF0ZWQpCisgICAg
aWYgKG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlID09IGFjdGl2ZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgaWYgKGFjY2VsZXJhdGVkKSB7CisgICAgaWYgKGFjdGl2ZSkgewogICAg
ICAgICBtX2xheWVyUmVuZGVyZXIgPSBMYXllclJlbmRlcmVyQ2hyb21pdW06OmNyZWF0ZSgpOwog
ICAgICAgICBpZiAobV9sYXllclJlbmRlcmVyKQotICAgICAgICAgICAgbV9pc0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmcgPSB0cnVlOworICAgICAgICAgICAgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdBY3RpdmUgPSB0cnVlOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fbGF5ZXJSZW5kZXJlciA9
IDA7Ci0gICAgICAgIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nID0gZmFsc2U7CisgICAgICAg
IG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlID0gZmFsc2U7CiAgICAgfQogfQogCiB2
b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVSb290TGF5ZXJDb250ZW50cyhjb25zdCBXZWJSZWN0JiBy
ZWN0KQogewotICAgIGlmICghaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCisgICAgaWYgKCFp
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
V2ViRnJhbWVJbXBsKiB3ZWJmcmFtZSA9IG1haW5GcmFtZUltcGwoKTsKSW5kZXg6IFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9uIDU4NTg0KQorKysgV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNiArMTg1LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChjb25zdCBXZWJTdHJpbmcmIHNv
dXJjZUNvZGUpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxVc2VyQ29udGVudCgpOwogCisg
ICAgdmlydHVhbCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGNvbnN0Owor
CiAgICAgLy8gV2ViVmlld0ltcGwKIAogICAgIHZvaWQgc2V0SWdub3JlSW5wdXRFdmVudHMoYm9v
bCBuZXdWYWx1ZSk7CkBAIC0zNTksOCArMzYxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJhZ0FjdGlvbik7CiAKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nKGJvb2wpOwotICAgIGJvb2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7IH0KKyAgICB2b2lkIHNldElzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sKTsKICAgICB2b2lkIHVwZGF0ZVJvb3RMYXllckNv
bnRlbnRzKGNvbnN0IFdlYlJlY3QmKTsKICNlbmRpZgogCkBAIC00OTYsNyArNDk3LDcgQEAgcHJp
dmF0ZToKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBPd25QdHI8V2Vi
Q29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtPiBtX2xheWVyUmVuZGVyZXI7Ci0gICAgYm9vbCBt
X2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsKKyAgICBib29sIG1faXNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQWN0aXZlOwogI2VuZGlmCiAgICAgc3RhdGljIGNvbnN0IFdlYklucHV0RXZlbnQqIG1f
Y3VycmVudElucHV0RXZlbnQ7CiB9Owo=
</data>
<flag name="review"
          id="39133"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55055</attachid>
            <date>2010-05-04 15:29:53 -0700</date>
            <delta_ts>2010-05-09 13:45:00 -0700</delta_ts>
            <desc>Path - fixing placement of isAcceleratedCompositingActive in the WebViewImpl files</desc>
            <filename>isAcceleratedCompositing_8.txt</filename>
            <type>text/plain</type>
            <size>5972</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTg2ODUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDUtMDMgIFZhbmdl
bGlzIEtva2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYW4gQVBJIGZvciBxdWVyeWlu
ZyB3aGV0aGVyIGEgV2ViV2lkZ2V0IGlzIHVzaW5nIGdwdSBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
Zy4KKyAgICAgICAgQWxzbyBjaGFuZ2VkOiBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgdG86IGlz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MjIwCisKKyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0
Lmg6CisgICAgICAgICogc3JjL1dlYlBvcHVwTWVudUltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUG9wdXBNZW51SW1wbDo6aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKyAgICAg
ICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGFpbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFJvb3RHcmFwaGljc0xheWVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0FjdGl2ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVSb290TGF5ZXJD
b250ZW50cyk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTAtMDUtMDIgIE1p
Y2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRG1pdHJ5IFRpdG92LgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCShyZXZp
c2lvbiA1ODU4NCkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTkwLDYgKzkwLDEwIEBAIHB1YmxpYzoKICAgICAvLyBDaGFuZ2VzIHRoZSB0
ZXh0IGRpcmVjdGlvbiBvZiB0aGUgc2VsZWN0ZWQgaW5wdXQgbm9kZS4KICAgICB2aXJ0dWFsIHZv
aWQgc2V0VGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0aW9uKSA9IDA7CiAKKyAgICAvLyBSZXR1
cm5zIHRydWUgaWYgdGhlIFdlYldpZGdldCB1c2VzIEdQVSBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZworICAgIC8vIHRvIHJlbmRlciBpdHMgY29udGVudHMuCisgICAgdmlydHVhbCBib29sIGlzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGNvbnN0ID0gMDsKKwogcHJvdGVjdGVkOgogICAg
IH5XZWJXaWRnZXQoKSB7IH0KIH07CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVw
TWVudUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVu
dUltcGwuaAkocmV2aXNpb24gNTg1ODQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVw
TWVudUltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGludCB0YXJnZXRTdGFydCwgaW50IHRhcmdldEVuZCwgY29uc3QgV2ViU3RyaW5nJiB0ZXh0
KTsKICAgICB2aXJ0dWFsIGJvb2wgcXVlcnlDb21wb3NpdGlvblN0YXR1cyhib29sKiBlbmFibGVk
LCBXZWJSZWN0KiBjYXJldFJlY3QpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0RGlyZWN0aW9u
KFdlYlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8v
IFdlYlBvcHVwTWVudUltcGwKICAgICB2b2lkIEluaXQoV2ViQ29yZTo6RnJhbWVsZXNzU2Nyb2xs
Vmlldyogd2lkZ2V0LApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlz
aW9uIDU4NTg0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI0Miw3ICsyNDIsNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2Vi
Vmlld0NsaWVudCogCiAgICAgLCBtX2hhdmVNb3VzZUNhcHR1cmUoZmFsc2UpCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICwgbV9sYXllclJlbmRlcmVyKDApCi0gICAgLCBt
X2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyhmYWxzZSkKKyAgICAsIG1faXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nQWN0aXZlKGZhbHNlKQogI2VuZGlmCiB7CiAgICAgLy8gV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcCBkb2VzIHRoZSBzYW1lIHRoaW5nLCBleGNlcHQgdGhleSBjYWxsIHRoZQpAQCAtOTQx
LDcgKzk0MSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnBhaW50KFdlYkNhbnZhcyogY2FudmEKIHsK
IAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAoIWlzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZygpKSB7CisgICAgaWYgKCFpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3Rp
dmUoKSkgewogI2VuZGlmCiAgICAgICAgIFdlYkZyYW1lSW1wbCogd2ViZnJhbWUgPSBtYWluRnJh
bWVJbXBsKCk7CiAgICAgICAgIGlmICh3ZWJmcmFtZSkKQEAgLTEyNzcsNiArMTI3NywxNSBAQCB2
b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0RGlyZWN0aW9uKFdlYlRlCiAgICAgfQogfQogCitib29s
IFdlYlZpZXdJbXBsOjppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSBjb25zdAorewor
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICByZXR1cm4gbV9pc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdBY3RpdmU7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgor
fQorCiAvLyBXZWJWaWV3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFdlYlNldHRpbmdzKiBXZWJWaWV3SW1wbDo6
c2V0dGluZ3MoKQpAQCAtMjA1NCwyOSArMjA2MywyOSBAQCBib29sIFdlYlZpZXdJbXBsOjp0YWJz
VG9MaW5rcygpIGNvbnN0CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBX
ZWJWaWV3SW1wbDo6c2V0Um9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6UGxhdGZvcm1MYXllciog
bGF5ZXIpCiB7Ci0gICAgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZyhsYXllciA/IHRydWUgOiBm
YWxzZSk7CisgICAgc2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGxheWVyID8gdHJ1
ZSA6IGZhbHNlKTsKICAgICBpZiAobV9sYXllclJlbmRlcmVyKQogICAgICAgICBtX2xheWVyUmVu
ZGVyZXItPnNldFJvb3RMYXllcihsYXllcik7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OnNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmcoYm9vbCBhY2NlbGVyYXRlZCkKK3ZvaWQgV2ViVmlld0ltcGw6
OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sIGFjdGl2ZSkKIHsKLSAgICBp
ZiAobV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPT0gYWNjZWxlcmF0ZWQpCisgICAgaWYgKG1f
aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlID09IGFjdGl2ZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKGFjY2VsZXJhdGVkKSB7CisgICAgaWYgKGFjdGl2ZSkgewogICAgICAgICBt
X2xheWVyUmVuZGVyZXIgPSBMYXllclJlbmRlcmVyQ2hyb21pdW06OmNyZWF0ZSgpOwogICAgICAg
ICBpZiAobV9sYXllclJlbmRlcmVyKQotICAgICAgICAgICAgbV9pc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmcgPSB0cnVlOworICAgICAgICAgICAgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3Rp
dmUgPSB0cnVlOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fbGF5ZXJSZW5kZXJlciA9IDA7Ci0g
ICAgICAgIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nID0gZmFsc2U7CisgICAgICAgIG1faXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlID0gZmFsc2U7CiAgICAgfQogfQogCiB2b2lkIFdl
YlZpZXdJbXBsOjp1cGRhdGVSb290TGF5ZXJDb250ZW50cyhjb25zdCBXZWJSZWN0JiByZWN0KQog
ewotICAgIGlmICghaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCisgICAgaWYgKCFpc0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJh
bWVJbXBsKiB3ZWJmcmFtZSA9IG1haW5GcmFtZUltcGwoKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmgJKHJldmlzaW9uIDU4NTg0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNiArMTAwLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBxdWVyeUNvbXBvc2l0aW9uU3RhdHVzKGJvb2wqIGVuYWJsZWQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViUmVjdCogY2FyZXRSZWN0KTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0aW9uIGRpcmVj
dGlvbik7CisgICAgdmlydHVhbCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgp
IGNvbnN0OwogCiAgICAgLy8gV2ViVmlldyBtZXRob2RzOgogICAgIHZpcnR1YWwgdm9pZCBpbml0
aWFsaXplTWFpbkZyYW1lKFdlYkZyYW1lQ2xpZW50Kik7CkBAIC0zNTksOCArMzYwLDcgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJh
Z0FjdGlvbik7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgdm9pZCBz
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKGJvb2wpOwotICAgIGJvb2wgaXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7IH0K
KyAgICB2b2lkIHNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sKTsKICAgICB2
b2lkIHVwZGF0ZVJvb3RMYXllckNvbnRlbnRzKGNvbnN0IFdlYlJlY3QmKTsKICNlbmRpZgogCkBA
IC00OTYsNyArNDk2LDcgQEAgcHJpdmF0ZToKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBPd25QdHI8V2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtPiBtX2xheWVy
UmVuZGVyZXI7Ci0gICAgYm9vbCBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsKKyAgICBib29s
IG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlOwogI2VuZGlmCiAgICAgc3RhdGljIGNv
bnN0IFdlYklucHV0RXZlbnQqIG1fY3VycmVudElucHV0RXZlbnQ7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55507</attachid>
            <date>2010-05-09 13:45:09 -0700</date>
            <delta_ts>2010-05-09 13:46:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38220-20100509224506.patch</filename>
            <type>text/plain</type>
            <size>51220</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTA1NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMTAtMDUtMDkgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGdXJ0
aGVyIG9wdGltaXphdGlvbiBmb3IgU1ZHJ3MgcmVwYWludFJlY3QgY2FsY3VsYXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4ODIwCisgICAgICAg
IAorICAgICAgICBUaGlzIGlzIGEgZnVydGhlciBvcHRpbWl6YXRpb24gdG8gZ2V0IHNtYWxsZXIg
cmVwYWludFJlY3RzIG9uIFNWRyBvYmplY3RzCisgICAgICAgIGluIGNvbWJpbmF0aW9uIHdpdGgg
bWFza2VyIG9yIGNsaXBwZXIgcmVzb3VyY2VzLgorICAgICAgICBNYXNrZXIgdGFrZXMgdGhlIHVu
aXRlIG9mIGFsbCBzdHJva2UgYm91bmRhcmllcyBvZiBpdCdzIGNoaWxkcy4KKyAgICAgICAgQm90
aCwgY2xpcHBlciBhbmQgbWFza2VyLCBzdG9yZSB0aGlzIHVuaW9uIHRvIGF2b2lkIG11bHRpcGxl
IGNhbGxzIG9mIHRoZSBjaGlsZHMKKyAgICAgICAgYW5kIHRoZSB1bml0ZSBjYWxjdWxhdGlvbnMg
bm93LgorICAgICAgICBUaGUgdW5pdGUgcmVjdCBjYW4gYmUgdHJhbnNmb3JtZWQgdG8gYW55IHRh
cmdldHMgb2JqZWN0Qm91bmRpbmdCb3gsIGlmIHRoZSBjb250ZW50CisgICAgICAgIHVuaXQgb2Yg
dGhlIHJlc291cmNlIGlzIHNldCB0byBvYmplY3RCb3VuZGluZ0JveE1vZGUuCisgICAgICAgIFRo
aXMgc3BlZWRzIHVwIHRoZSB1c2Ugb2YgcmVzb3VyY2VzIHdpdGggbXVsdGlwbGUgdGFyZ2V0IG9i
amVjdHMuCisgICAgICAgIAorICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2VzLCB0aGUgc21hbGxl
ciByZXBhaW50UmVjdHMgY2F1c2UgdXBkYXRlcyBmb3IgRFJUIHJlc3VsdHMuCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jl
c291cmNlQ2xpcHBlcjo6aW52YWxpZGF0ZUNsaWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjpjYWxjdWxhdGVDbGlwQ29udGVudFJlcGFpbnRSZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6cmVzb3VyY2VCb3Vu
ZGluZ0JveCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6cmVzb3VyY2VCb3VuZGluZ0Jv
eCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclNWR1Jlc291cmNlR3JhZGllbnQ6OnJlc291cmNlQm91bmRpbmdCb3gpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZU1hcmtlci5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXI6OnJlc291cmNlQm91bmRpbmdCb3gpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcjo6aW52YWxpZGF0ZUNsaWVudHMpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmNyZWF0ZU1hc2tJbWFn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcjo6Y2FsY3VsYXRl
TWFza0NvbnRlbnRSZXBhaW50UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNv
dXJjZU1hc2tlcjo6cmVzb3VyY2VCb3VuZGluZ0JveCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNWR1Jlc291cmNlTWFza2VyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1Jl
c291cmNlUGF0dGVybi5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VQYXR0
ZXJuOjpyZXNvdXJjZUJvdW5kaW5nQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZH
UmVzb3VyY2VTb2xpZENvbG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJj
ZVNvbGlkQ29sb3I6OnJlc291cmNlQm91bmRpbmdCb3gpOgorCiAyMDEwLTA1LTA4ICBBbnRvbmlv
IEdvbWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBhdHRl
bXB0IHRvIGZpeCBXaW5kb3dzIGJ1aWxkLgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U1ZHUmVzb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdS
ZXNvdXJjZS5oCShyZXZpc2lvbiA1OTA1MCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNW
R1Jlc291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBib29sIGFwcGx5UmVzb3VyY2UoUmVuZGVyT2JqZWN0KiwgUmVuZGVyU3R5bGUq
LCBHcmFwaGljc0NvbnRleHQqJiwgdW5zaWduZWQgc2hvcnQgcmVzb3VyY2VNb2RlKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHBvc3RBcHBseVJlc291cmNlKFJlbmRlck9iamVjdCosIEdyYXBoaWNz
Q29udGV4dComLCB1bnNpZ25lZCBzaG9ydCkgeyB9Ci0gICAgdmlydHVhbCBGbG9hdFJlY3QgcmVz
b3VyY2VCb3VuZGluZ0JveChjb25zdCBGbG9hdFJlY3QmKSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCBGbG9hdFJlY3QgcmVzb3VyY2VCb3VuZGluZ0JveChjb25zdCBGbG9hdFJlY3QmKSA9IDA7CiAK
ICAgICB2aXJ0dWFsIFJlbmRlclNWR1Jlc291cmNlVHlwZSByZXNvdXJjZVR5cGUoKSBjb25zdCA9
IDA7CiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlw
cGVyLmNwcAkocmV2aXNpb24gNTkwNTApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdS
ZXNvdXJjZUNsaXBwZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw2ICs2NSw3IEBAIHZvaWQg
UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjppbnZhbGlkYXQKICAgICB9CiAgICAgZGVsZXRlQWxs
VmFsdWVzKG1fY2xpcHBlcik7CiAgICAgbV9jbGlwcGVyLmNsZWFyKCk7CisgICAgbV9jbGlwQm91
bmRhcmllcyA9IEZsb2F0UmVjdCgpOwogfQogCiB2b2lkIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBl
cjo6aW52YWxpZGF0ZUNsaWVudChSZW5kZXJPYmplY3QqIG9iamVjdCkKQEAgLTI1MCwyNyArMjUx
LDM1IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjpjcmVhdGVDbGkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotRmxvYXRSZWN0IFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6cmVzb3Vy
Y2VCb3VuZGluZ0JveChjb25zdCBGbG9hdFJlY3QmIG9iamVjdEJvdW5kaW5nQm94KSBjb25zdAor
dm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmNhbGN1bGF0ZUNsaXBDb250ZW50UmVwYWlu
dFJlY3QoKQogewogICAgIC8vIFRoaXMgaXMgYSByb3VnaCBoZXVyaXN0aWMgdG8gYXBwcmFpc2Ug
dGhlIGNsaXAgc2l6ZSBhbmQgZG9lc24ndCBjb25zaWRlciBjbGlwIG9uIGNsaXAuCi0gICAgRmxv
YXRSZWN0IGNsaXBSZWN0OwogICAgIGZvciAoTm9kZSogY2hpbGROb2RlID0gbm9kZSgpLT5maXJz
dENoaWxkKCk7IGNoaWxkTm9kZTsgY2hpbGROb2RlID0gY2hpbGROb2RlLT5uZXh0U2libGluZygp
KSB7CiAgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjaGlsZE5vZGUtPnJlbmRlcmVy
KCk7CiAgICAgICAgIGlmICghY2hpbGROb2RlLT5pc1NWR0VsZW1lbnQoKSB8fCAhc3RhdGljX2Nh
c3Q8U1ZHRWxlbWVudCo+KGNoaWxkTm9kZSktPmlzU3R5bGVkKCkgfHwgIXJlbmRlcmVyKQogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmICghcmVuZGVyZXItPmlzUmVuZGVyUGF0aCgp
ICYmICFyZW5kZXJlci0+aXNTVkdUZXh0KCkgJiYgIXJlbmRlcmVyLT5pc1NWR1NoYWRvd1RyZWVS
b290Q29udGFpbmVyKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgY2xpcFJlY3Qu
dW5pdGUocmVuZGVyZXItPmxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKS5tYXBSZWN0KHJlbmRlcmVy
LT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpKSk7CisgICAgICAgIFJlbmRlclN0eWxl
KiBzdHlsZSA9IHJlbmRlcmVyLT5zdHlsZSgpOworICAgICAgICBpZiAoIXN0eWxlIHx8IHN0eWxl
LT5kaXNwbGF5KCkgPT0gTk9ORSB8fCBzdHlsZS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpCisg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIG1fY2xpcEJvdW5kYXJpZXMudW5pdGUocmVu
ZGVyZXItPmxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKS5tYXBSZWN0KHJlbmRlcmVyLT5yZXBhaW50
UmVjdEluTG9jYWxDb29yZGluYXRlcygpKSk7CiAgICAgfQorfQorCitGbG9hdFJlY3QgUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyOjpyZXNvdXJjZUJvdW5kaW5nQm94KGNvbnN0IEZsb2F0UmVjdCYg
b2JqZWN0Qm91bmRpbmdCb3gpCit7CisgICAgaWYgKG1fY2xpcEJvdW5kYXJpZXMuaXNFbXB0eSgp
KQorICAgICAgICBjYWxjdWxhdGVDbGlwQ29udGVudFJlcGFpbnRSZWN0KCk7CiAKICAgICBpZiAo
c3RhdGljX2Nhc3Q8U1ZHQ2xpcFBhdGhFbGVtZW50Kj4obm9kZSgpKS0+Y2xpcFBhdGhVbml0cygp
ID09IFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCkgewogICAg
ICAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtOwogICAgICAgICB0cmFuc2Zvcm0udHJhbnNs
YXRlKG9iamVjdEJvdW5kaW5nQm94LngoKSwgb2JqZWN0Qm91bmRpbmdCb3gueSgpKTsKICAgICAg
ICAgdHJhbnNmb3JtLnNjYWxlTm9uVW5pZm9ybShvYmplY3RCb3VuZGluZ0JveC53aWR0aCgpLCBv
YmplY3RCb3VuZGluZ0JveC5oZWlnaHQoKSk7Ci0gICAgICAgIHJldHVybiB0cmFuc2Zvcm0ubWFw
UmVjdChjbGlwUmVjdCk7CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm0ubWFwUmVjdChtX2NsaXBC
b3VuZGFyaWVzKTsKICAgICB9CiAKLSAgICByZXR1cm4gY2xpcFJlY3Q7CisgICAgcmV0dXJuIG1f
Y2xpcEJvdW5kYXJpZXM7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNW
R1Jlc291cmNlQ2xpcHBlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNWR1Jlc291cmNlQ2xpcHBlci5oCShyZXZpc2lvbiA1OTA1MCkKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1
MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNsaWVudChSZW5kZXJP
YmplY3QqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBhcHBseVJlc291cmNlKFJlbmRlck9iamVjdCos
IFJlbmRlclN0eWxlKiwgR3JhcGhpY3NDb250ZXh0KiYsIHVuc2lnbmVkIHNob3J0IHJlc291cmNl
TW9kZSk7Ci0gICAgdmlydHVhbCBGbG9hdFJlY3QgcmVzb3VyY2VCb3VuZGluZ0JveChjb25zdCBG
bG9hdFJlY3QmKSBjb25zdDsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXNvdXJjZUJvdW5kaW5n
Qm94KGNvbnN0IEZsb2F0UmVjdCYpOwogCiAgICAgdmlydHVhbCBSZW5kZXJTVkdSZXNvdXJjZVR5
cGUgcmVzb3VyY2VUeXBlKCkgY29uc3QgeyByZXR1cm4gQ2xpcHBlclJlc291cmNlVHlwZTsgfQog
CkBAIC02NCw3ICs2NCw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBhcHBseUNsaXBwaW5nVG9Db250
ZXh0KFJlbmRlck9iamVjdCosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIEdy
YXBoaWNzQ29udGV4dCopOwogICAgIGJvb2wgcGF0aE9ubHlDbGlwcGluZyhHcmFwaGljc0NvbnRl
eHQqLCBjb25zdCBGbG9hdFJlY3QmKTsKICAgICBib29sIGNyZWF0ZUNsaXBEYXRhKENsaXBwZXJE
YXRhKiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0Jik7CisgICAgdm9pZCBjYWxj
dWxhdGVDbGlwQ29udGVudFJlcGFpbnRSZWN0KCk7CiAKKyAgICBGbG9hdFJlY3QgbV9jbGlwQm91
bmRhcmllczsKICAgICBIYXNoTWFwPFJlbmRlck9iamVjdCosIENsaXBwZXJEYXRhKj4gbV9jbGlw
cGVyOwogfTsKIApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNl
RmlsdGVyLmNwcAkocmV2aXNpb24gNTkwNTApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
VkdSZXNvdXJjZUZpbHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MSw3ICsyODEsNyBAQCB2
b2lkIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjpwb3N0QXBwbHlSCiAgICAgbV9zb3VyY2VHcmFw
aGljQnVmZmVyLmNsZWFyKCk7CiB9CiAKLUZsb2F0UmVjdCBSZW5kZXJTVkdSZXNvdXJjZUZpbHRl
cjo6cmVzb3VyY2VCb3VuZGluZ0JveChjb25zdCBGbG9hdFJlY3QmIG9iamVjdEJvdW5kaW5nQm94
KSBjb25zdAorRmxvYXRSZWN0IFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjpyZXNvdXJjZUJvdW5k
aW5nQm94KGNvbnN0IEZsb2F0UmVjdCYgb2JqZWN0Qm91bmRpbmdCb3gpCiB7CiAgICAgaWYgKFNW
R0ZpbHRlckVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdGaWx0ZXJFbGVtZW50Kj4o
bm9kZSgpKSkKICAgICAgICAgcmV0dXJuIGVsZW1lbnQtPmZpbHRlckJvdW5kaW5nQm94KG9iamVj
dEJvdW5kaW5nQm94KTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNl
RmlsdGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXIuaAkocmV2aXNpb24gNTkwNTApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
VkdSZXNvdXJjZUZpbHRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlSZXNvdXJjZShSZW5kZXJPYmplY3QqLCBSZW5kZXJT
dHlsZSosIEdyYXBoaWNzQ29udGV4dComLCB1bnNpZ25lZCBzaG9ydCByZXNvdXJjZU1vZGUpOwog
ICAgIHZpcnR1YWwgdm9pZCBwb3N0QXBwbHlSZXNvdXJjZShSZW5kZXJPYmplY3QqLCBHcmFwaGlj
c0NvbnRleHQqJiwgdW5zaWduZWQgc2hvcnQgcmVzb3VyY2VNb2RlKTsKIAotICAgIHZpcnR1YWwg
RmxvYXRSZWN0IHJlc291cmNlQm91bmRpbmdCb3goY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7Cisg
ICAgdmlydHVhbCBGbG9hdFJlY3QgcmVzb3VyY2VCb3VuZGluZ0JveChjb25zdCBGbG9hdFJlY3Qm
KTsKIAogICAgIFBhc3NPd25QdHI8U1ZHRmlsdGVyQnVpbGRlcj4gYnVpbGRQcmltaXRpdmVzKCk7
CiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50
LmgJKHJldmlzaW9uIDU5MDUwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VHcmFkaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgYm9vbCBhcHBseVJlc291cmNlKFJlbmRlck9iamVjdCosIFJlbmRlclN0eWxl
KiwgR3JhcGhpY3NDb250ZXh0KiYsIHVuc2lnbmVkIHNob3J0IHJlc291cmNlTW9kZSk7CiAgICAg
dmlydHVhbCB2b2lkIHBvc3RBcHBseVJlc291cmNlKFJlbmRlck9iamVjdCosIEdyYXBoaWNzQ29u
dGV4dComLCB1bnNpZ25lZCBzaG9ydCByZXNvdXJjZU1vZGUpOwotICAgIHZpcnR1YWwgRmxvYXRS
ZWN0IHJlc291cmNlQm91bmRpbmdCb3goY29uc3QgRmxvYXRSZWN0JikgY29uc3QgeyByZXR1cm4g
RmxvYXRSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXNvdXJjZUJvdW5kaW5nQm94
KGNvbnN0IEZsb2F0UmVjdCYpIHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CiAKIHByb3RlY3RlZDoK
ICAgICB2b2lkIGFkZFN0b3BzKEdyYWRpZW50RGF0YSosIGNvbnN0IFZlY3RvcjxHcmFkaWVudDo6
Q29sb3JTdG9wPiYpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVz
b3VyY2VNYXJrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdS
ZXNvdXJjZU1hcmtlci5oCShyZXZpc2lvbiA1OTA1MCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNWR1Jlc291cmNlTWFya2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAg
cHVibGljOgogICAgIEFmZmluZVRyYW5zZm9ybSBtYXJrZXJUcmFuc2Zvcm1hdGlvbihjb25zdCBG
bG9hdFBvaW50JiBvcmlnaW4sIGZsb2F0IGFuZ2xlLCBmbG9hdCBzdHJva2VXaWR0aCkgY29uc3Q7
CiAKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlSZXNvdXJjZShSZW5kZXJPYmplY3QqLCBSZW5kZXJT
dHlsZSosIEdyYXBoaWNzQ29udGV4dComLCB1bnNpZ25lZCBzaG9ydCkgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXNvdXJjZUJvdW5kaW5nQm94KGNvbnN0IEZsb2F0
UmVjdCYpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CisgICAgdmlydHVhbCBGbG9hdFJl
Y3QgcmVzb3VyY2VCb3VuZGluZ0JveChjb25zdCBGbG9hdFJlY3QmKSB7IHJldHVybiBGbG9hdFJl
Y3QoKTsgfQogCiAgICAgRmxvYXRQb2ludCByZWZlcmVuY2VQb2ludCgpIGNvbnN0OwogICAgIGZs
b2F0IGFuZ2xlKCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSZXNv
dXJjZU1hc2tlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZH
UmVzb3VyY2VNYXNrZXIuY3BwCShyZXZpc2lvbiA1OTA1MCkKKysrIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUs
NyBAQCB2b2lkIFJlbmRlclNWR1Jlc291cmNlTWFza2VyOjppbnZhbGlkYXRlCiAKICAgICBkZWxl
dGVBbGxWYWx1ZXMobV9tYXNrZXIpOwogICAgIG1fbWFza2VyLmNsZWFyKCk7CisgICAgbV9tYXNr
Qm91bmRhcmllcyA9IEZsb2F0UmVjdCgpOwogfQogCiB2b2lkIFJlbmRlclNWR1Jlc291cmNlTWFz
a2VyOjppbnZhbGlkYXRlQ2xpZW50KFJlbmRlck9iamVjdCogb2JqZWN0KQpAQCAtMTExLDE0ICsx
MTIsNiBAQCBib29sIFJlbmRlclNWR1Jlc291cmNlTWFza2VyOjphcHBseVJlc291CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLUZsb2F0UmVjdCBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcjo6cmVzb3Vy
Y2VCb3VuZGluZ0JveChjb25zdCBGbG9hdFJlY3QmIG9iamVjdEJvdW5kaW5nQm94KSBjb25zdAot
ewotICAgIGlmIChTVkdNYXNrRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR01hc2tF
bGVtZW50Kj4obm9kZSgpKSkKLSAgICAgICAgcmV0dXJuIGVsZW1lbnQtPm1hc2tCb3VuZGluZ0Jv
eChvYmplY3RCb3VuZGluZ0JveCk7Ci0KLSAgICByZXR1cm4gRmxvYXRSZWN0KCk7Ci19Ci0KIHZv
aWQgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmNyZWF0ZU1hc2tJbWFnZShNYXNrZXJEYXRhKiBt
YXNrZXJEYXRhLCBjb25zdCBTVkdNYXNrRWxlbWVudCogbWFza0VsZW1lbnQsIFJlbmRlck9iamVj
dCogb2JqZWN0KQogewogICAgIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCA9IG9iamVjdC0+
b2JqZWN0Qm91bmRpbmdCb3goKTsKQEAgLTEyOSwxOSArMTIyLDExIEBAIHZvaWQgUmVuZGVyU1ZH
UmVzb3VyY2VNYXNrZXI6OmNyZWF0ZU1hc2sKICAgICAgICAgbWFza2VyRGF0YS0+ZW1wdHlNYXNr
ID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAKKyAgICBpZiAobV9tYXNrQm91
bmRhcmllcy5pc0VtcHR5KCkpCisgICAgICAgIGNhbGN1bGF0ZU1hc2tDb250ZW50UmVwYWludFJl
Y3QoKTsKIAotICAgIC8vIENhbGN1bGF0ZSB0aGUgc21hbGxlc3QgcmVjdCBmb3IgdGhlIG1hc2sg
SW1hZ2VCdWZmZXIuCi0gICAgRmxvYXRSZWN0IHJlcGFpbnRSZWN0OwotICAgIFZlY3RvcjxSZW5k
ZXJPYmplY3QqPiByZW5kZXJlckxpc3Q7Ci0gICAgZm9yIChOb2RlKiBub2RlID0gbWFza0VsZW1l
bnQtPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKLSAg
ICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgICAg
IGlmICghbm9kZS0+aXNTVkdFbGVtZW50KCkgfHwgIXN0YXRpY19jYXN0PFNWR0VsZW1lbnQqPihu
b2RlKS0+aXNTdHlsZWQoKSB8fCAhcmVuZGVyZXIpCi0gICAgICAgICAgICBjb250aW51ZTsKLQot
ICAgICAgICByZW5kZXJlckxpc3QuYXBwZW5kKHJlbmRlcmVyKTsKLSAgICAgICAgcmVwYWludFJl
Y3QudW5pdGUocmVuZGVyZXItPmxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKS5tYXBSZWN0KHJlbmRl
cmVyLT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpKSk7Ci0gICAgfQotCisgICAgRmxv
YXRSZWN0IHJlcGFpbnRSZWN0ID0gbV9tYXNrQm91bmRhcmllczsKICAgICBBZmZpbmVUcmFuc2Zv
cm0gY29udGV4dFRyYW5zZm9ybTsKICAgICAvLyBXZSBuZWVkIHRvIHNjYWxlIHJlcGFpbnRSZWN0
IGZvciBvYmplY3RCb3VuZGluZ0JveCB0byBnZXQgdGhlIGRyYXdpbmcgYXJlYS4KICAgICBpZiAo
bWFza0VsZW1lbnQtPm1hc2tDb250ZW50VW5pdHMoKSA9PSBTVkdVbml0VHlwZXM6OlNWR19VTklU
X1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpIHsKQEAgLTE4MCw5ICsxNjUsMTUgQEAgdm9pZCBSZW5k
ZXJTVkdSZXNvdXJjZU1hc2tlcjo6Y3JlYXRlTWFzawogICAgIG1hc2tJbWFnZUNvbnRleHQtPmNv
bmNhdENUTShjb250ZXh0VHJhbnNmb3JtKTsKIAogICAgIC8vIGRyYXcgdGhlIGNvbnRlbnQgaW50
byB0aGUgSW1hZ2VCdWZmZXIKLSAgICBWZWN0b3I8UmVuZGVyT2JqZWN0Kj46Oml0ZXJhdG9yIGVu
ZCA9IHJlbmRlcmVyTGlzdC5lbmQoKTsKLSAgICBmb3IgKFZlY3RvcjxSZW5kZXJPYmplY3QqPjo6
aXRlcmF0b3IgaXQgPSByZW5kZXJlckxpc3QuYmVnaW4oKTsgaXQgIT0gZW5kOyBpdCsrKQotICAg
ICAgICByZW5kZXJTdWJ0cmVlVG9JbWFnZShtYXNrZXJEYXRhLT5tYXNrSW1hZ2UuZ2V0KCksICpp
dCk7CisgICAgZm9yIChOb2RlKiBub2RlID0gbWFza0VsZW1lbnQtPmZpcnN0Q2hpbGQoKTsgbm9k
ZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CisgICAgICAgIGlmICghbm9kZS0+aXNTVkdFbGVt
ZW50KCkgfHwgIXN0YXRpY19jYXN0PFNWR0VsZW1lbnQqPihub2RlKS0+aXNTdHlsZWQoKSB8fCAh
cmVuZGVyZXIpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgUmVuZGVyU3R5bGUqIHN0
eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7CisgICAgICAgIGlmICghc3R5bGUgfHwgc3R5bGUtPmRp
c3BsYXkoKSA9PSBOT05FIHx8IHN0eWxlLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICByZW5kZXJTdWJ0cmVlVG9JbWFnZShtYXNrZXJEYXRh
LT5tYXNrSW1hZ2UuZ2V0KCksIHJlbmRlcmVyKTsKKyAgICB9CiAKICAgICBtYXNrSW1hZ2VDb250
ZXh0LT5yZXN0b3JlKCk7CiAKQEAgLTIwNSw0ICsxOTYsMzggQEAgdm9pZCBSZW5kZXJTVkdSZXNv
dXJjZU1hc2tlcjo6Y3JlYXRlTWFzawogICAgIG1hc2tlckRhdGEtPm1hc2tJbWFnZS0+cHV0VW5t
dWx0aXBsaWVkSW1hZ2VEYXRhKGltYWdlRGF0YS5nZXQoKSwgbWFza0ltYWdlUmVjdCwgSW50UG9p
bnQoKSk7CiB9CiAKK3ZvaWQgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmNhbGN1bGF0ZU1hc2tD
b250ZW50UmVwYWludFJlY3QoKQoreworICAgIGZvciAoTm9kZSogY2hpbGROb2RlID0gbm9kZSgp
LT5maXJzdENoaWxkKCk7IGNoaWxkTm9kZTsgY2hpbGROb2RlID0gY2hpbGROb2RlLT5uZXh0U2li
bGluZygpKSB7CisgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjaGlsZE5vZGUtPnJl
bmRlcmVyKCk7CisgICAgICAgIGlmICghY2hpbGROb2RlLT5pc1NWR0VsZW1lbnQoKSB8fCAhc3Rh
dGljX2Nhc3Q8U1ZHRWxlbWVudCo+KGNoaWxkTm9kZSktPmlzU3R5bGVkKCkgfHwgIXJlbmRlcmVy
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IHJl
bmRlcmVyLT5zdHlsZSgpOworICAgICAgICBpZiAoIXN0eWxlIHx8IHN0eWxlLT5kaXNwbGF5KCkg
PT0gTk9ORSB8fCBzdHlsZS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpCisgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIG1fbWFza0JvdW5kYXJpZXMudW5pdGUocmVuZGVyZXItPmxvY2Fs
VG9QYXJlbnRUcmFuc2Zvcm0oKS5tYXBSZWN0KHJlbmRlcmVyLT5yZXBhaW50UmVjdEluTG9jYWxD
b29yZGluYXRlcygpKSk7CisgICAgfQorfQorCitGbG9hdFJlY3QgUmVuZGVyU1ZHUmVzb3VyY2VN
YXNrZXI6OnJlc291cmNlQm91bmRpbmdCb3goY29uc3QgRmxvYXRSZWN0JiBvYmplY3RCb3VuZGlu
Z0JveCkKK3sKKyAgICBpZiAobV9tYXNrQm91bmRhcmllcy5pc0VtcHR5KCkpCisgICAgICAgIGNh
bGN1bGF0ZU1hc2tDb250ZW50UmVwYWludFJlY3QoKTsKKworICAgIFNWR01hc2tFbGVtZW50KiBt
YXNrRWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR01hc2tFbGVtZW50Kj4obm9kZSgpKTsKKyAgICBp
ZiAoIW1hc2tFbGVtZW50KQorICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CisKKyAgICBGbG9h
dFJlY3QgbWFza1JlY3QgPSBtX21hc2tCb3VuZGFyaWVzOworICAgIGlmIChtYXNrRWxlbWVudC0+
bWFza0NvbnRlbnRVbml0cygpID09IFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9PQkpFQ1RC
T1VORElOR0JPWCkgeworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtOworICAgICAg
ICB0cmFuc2Zvcm0udHJhbnNsYXRlKG9iamVjdEJvdW5kaW5nQm94LngoKSwgb2JqZWN0Qm91bmRp
bmdCb3gueSgpKTsKKyAgICAgICAgdHJhbnNmb3JtLnNjYWxlTm9uVW5pZm9ybShvYmplY3RCb3Vu
ZGluZ0JveC53aWR0aCgpLCBvYmplY3RCb3VuZGluZ0JveC5oZWlnaHQoKSk7CisgICAgICAgIG1h
c2tSZWN0ID0gIHRyYW5zZm9ybS5tYXBSZWN0KG1hc2tSZWN0KTsKKyAgICB9CisKKyAgICBtYXNr
UmVjdC5pbnRlcnNlY3QobWFza0VsZW1lbnQtPm1hc2tCb3VuZGluZ0JveChvYmplY3RCb3VuZGlu
Z0JveCkpOworICAgIHJldHVybiBtYXNrUmVjdDsKK30KKwogfQpJbmRleDogV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5oCShyZXZpc2lvbiA1OTA1MCkKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ2xp
ZW50KFJlbmRlck9iamVjdCopOwogCiAgICAgdmlydHVhbCBib29sIGFwcGx5UmVzb3VyY2UoUmVu
ZGVyT2JqZWN0KiwgUmVuZGVyU3R5bGUqLCBHcmFwaGljc0NvbnRleHQqJiwgdW5zaWduZWQgc2hv
cnQgcmVzb3VyY2VNb2RlKTsKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXNvdXJjZUJvdW5kaW5n
Qm94KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OworICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlc291
cmNlQm91bmRpbmdCb3goY29uc3QgRmxvYXRSZWN0Jik7CiAKICAgICBTVkdVbml0VHlwZXM6OlNW
R1VuaXRUeXBlIG1hc2tVbml0cygpIGNvbnN0IHsgcmV0dXJuIHRvVW5pdFR5cGUoc3RhdGljX2Nh
c3Q8U1ZHTWFza0VsZW1lbnQqPihub2RlKCkpLT5tYXNrVW5pdHMoKSk7IH0KICAgICBTVkdVbml0
VHlwZXM6OlNWR1VuaXRUeXBlIG1hc2tDb250ZW50VW5pdHMoKSBjb25zdCB7IHJldHVybiB0b1Vu
aXRUeXBlKHN0YXRpY19jYXN0PFNWR01hc2tFbGVtZW50Kj4obm9kZSgpKS0+bWFza0NvbnRlbnRV
bml0cygpKTsgfQpAQCAtNjcsNyArNjcsOSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9p
ZCBjcmVhdGVNYXNrSW1hZ2UoTWFza2VyRGF0YSosIGNvbnN0IFNWR01hc2tFbGVtZW50KiwgUmVu
ZGVyT2JqZWN0Kik7CisgICAgdm9pZCBjYWxjdWxhdGVNYXNrQ29udGVudFJlcGFpbnRSZWN0KCk7
CiAKKyAgICBGbG9hdFJlY3QgbV9tYXNrQm91bmRhcmllczsKICAgICBIYXNoTWFwPFJlbmRlck9i
amVjdCosIE1hc2tlckRhdGEqPiBtX21hc2tlcjsKIH07CiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5oCShyZXZpc2lvbiA1OTA1MCkKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5oCSh3b3JraW5nIGNvcHkp
CkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBhcHBseVJlc291
cmNlKFJlbmRlck9iamVjdCosIFJlbmRlclN0eWxlKiwgR3JhcGhpY3NDb250ZXh0KiYsIHVuc2ln
bmVkIHNob3J0IHJlc291cmNlTW9kZSk7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RBcHBseVJlc291
cmNlKFJlbmRlck9iamVjdCosIEdyYXBoaWNzQ29udGV4dComLCB1bnNpZ25lZCBzaG9ydCByZXNv
dXJjZU1vZGUpOwotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlc291cmNlQm91bmRpbmdCb3goY29u
c3QgRmxvYXRSZWN0JikgY29uc3QgeyByZXR1cm4gRmxvYXRSZWN0KCk7IH0KKyAgICB2aXJ0dWFs
IEZsb2F0UmVjdCByZXNvdXJjZUJvdW5kaW5nQm94KGNvbnN0IEZsb2F0UmVjdCYpIHsgcmV0dXJu
IEZsb2F0UmVjdCgpOyB9CiAKICAgICB2aXJ0dWFsIFJlbmRlclNWR1Jlc291cmNlVHlwZSByZXNv
dXJjZVR5cGUoKSBjb25zdCB7IHJldHVybiBzX3Jlc291cmNlVHlwZTsgfQogICAgIHN0YXRpYyBS
ZW5kZXJTVkdSZXNvdXJjZVR5cGUgc19yZXNvdXJjZVR5cGU7CkluZGV4OiBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuaAkocmV2aXNpb24gNTkwNTAp
CisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wg
YXBwbHlSZXNvdXJjZShSZW5kZXJPYmplY3QqLCBSZW5kZXJTdHlsZSosIEdyYXBoaWNzQ29udGV4
dComLCB1bnNpZ25lZCBzaG9ydCByZXNvdXJjZU1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBwb3N0
QXBwbHlSZXNvdXJjZShSZW5kZXJPYmplY3QqLCBHcmFwaGljc0NvbnRleHQqJiwgdW5zaWduZWQg
c2hvcnQgcmVzb3VyY2VNb2RlKTsKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXNvdXJjZUJvdW5k
aW5nQm94KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9Cisg
ICAgdmlydHVhbCBGbG9hdFJlY3QgcmVzb3VyY2VCb3VuZGluZ0JveChjb25zdCBGbG9hdFJlY3Qm
KSB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQogCiAgICAgdmlydHVhbCBSZW5kZXJTVkdSZXNvdXJj
ZVR5cGUgcmVzb3VyY2VUeXBlKCkgY29uc3QgeyByZXR1cm4gc19yZXNvdXJjZVR5cGU7IH0KICAg
ICBzdGF0aWMgUmVuZGVyU1ZHUmVzb3VyY2VUeXBlIHNfcmVzb3VyY2VUeXBlOwpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gNTkwNTcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNyBAQAorMjAxMC0wNS0wOSAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZ1
cnRoZXIgb3B0aW1pemF0aW9uIGZvciBTVkcncyByZXBhaW50UmVjdCBjYWxjdWxhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg4MjAKKyAgICAg
ICAgCisgICAgICAgIFRoZSByZXBhaW50UmVjdCBvZiBTVkcgb2JqZWN0cyB3aXRoIG1hc2tzIGdv
dCBzbWFsbGVyLiBUaGlzIG1hZGUKKyAgICAgICAgdXBkYXRlcyBvZiBzb21lIHJlc3VsdHMgbmVj
ZXNzYXJ5LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9tYXNraW5n
LWludHJvLTAxLWYtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvYmF0
aWsvbWFza2luZy9tYXNrUmVnaW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0v
bWFjL3N2Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLXdpdGgtaW52aXNpYmlsZS1jaGlsZC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY2lyY2xlLWluLW1hc2std2l0
aC1zaGFkb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3NzL21h
c2std2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcv
Y3VzdG9tL2VtcHR5LW1hc2stZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9z
dmcvY3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1pbnNpZGUtZGVmcy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1pbnZhbGlkYXRpb24tZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21hc2std2l0aC1hbGwt
dW5pdHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3Jl
c291cmNlLWludmFsaWRhdGUtb24tdGFyZ2V0LXVwZGF0ZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdmlzaWJpbGl0eS1vdmVycmlkZS1tYXNrLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBzdmcvY3VzdG9tL3RyYW5zZm9ybWVkTWFza0ZhaWxzLWV4cGVj
dGVkLnR4dDoKKwogMjAxMC0wNS0wOSAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW1F0XSBVcGRhdGUgZXhwZWN0ZWQgcmVzdWx0cyBmb3IgdW5za2lwcGVkIGVk
aXRpbmcvaW5zZXJ0aW5nIHRlc3RzCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3Zn
L1czQy1TVkctMS4xL21hc2tpbmctaW50cm8tMDEtZi1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9tYXNraW5nLWludHJv
LTAxLWYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1OTA1MCkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvbWFza2luZy1pbnRyby0wMS1mLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMTgsOCArMTgsOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgz
NjAKICAgICAgIFJlbmRlclNWR1Jlc291cmNlTWFza2VyIHttYXNrfSBbaWQ9InR3byJdIFttYXNr
VW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFttYXNrQ29udGVudFVuaXRzPW9iamVjdEJvdW5kaW5n
Qm94XQogICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgwLDApIHNpemUgMXgxIFtzdHJv
a2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF0gW3N0cm9rZSB3aWR0aD0wLjE1XX1dIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik0wLjUwLDAuNTAgTDAu
NTAsMC41MSBMMC41MCwwLjUzIEwwLjUwLDAuNTQgTDAuNDksMC41NSBMMC40OSwwLjU2IEwwLjQ5
LDAuNTcgTDAuNDgsMC41OSBMMC40OCwwLjYwIEwwLjQ3LDAuNjEgTDAuNDYsMC42MiBMMC40NSww
LjYzIEwwLjQ1LDAuNjQgTDAuNDQsMC42NSBMMC40MywwLjY1IEwwLjQyLDAuNjYgTDAuNDEsMC42
NyBMMC40MCwwLjY4IEwwLjM5LDAuNjggTDAuMzcsMC42OSBMMC4zNiwwLjY5IEwwLjM1LDAuNjkg
TDAuMzQsMC43MCBMMC4zMywwLjcwIEwwLjMxLDAuNzAgTDAuMzAsMC43MCBMMC4yOSwwLjcwIEww
LjI3LDAuNzAgTDAuMjYsMC43MCBMMC4yNSwwLjY5IEwwLjI0LDAuNjkgTDAuMjMsMC42OSBMMC4y
MSwwLjY4IEwwLjIwLDAuNjggTDAuMTksMC42NyBMMC4xOCwwLjY2IEwwLjE3LDAuNjUgTDAuMTYs
MC42NSBMMC4xNSwwLjY0IEwwLjE1LDAuNjMgTDAuMTQsMC42MiBMMC4xMywwLjYxIEwwLjEyLDAu
NjAgTDAuMTIsMC41OSBMMC4xMSwwLjU3IEwwLjExLDAuNTYgTDAuMTEsMC41NSBMMC4xMCwwLjU0
IEwwLjEwLDAuNTMgTDAuMTAsMC41MSBMMC4xMCwwLjUwIEwwLjEwLDAuNDkgTDAuMTAsMC40NyBM
MC4xMCwwLjQ2IEwwLjExLDAuNDUgTDAuMTEsMC40NCBMMC4xMSwwLjQzIEwwLjEyLDAuNDEgTDAu
MTIsMC40MCBMMC4xMywwLjM5IEwwLjE0LDAuMzggTDAuMTUsMC4zNyBMMC4xNSwwLjM2IEwwLjE2
LDAuMzUgTDAuMTcsMC4zNSBMMC4xOCwwLjM0IEwwLjE5LDAuMzMgTDAuMjAsMC4zMiBMMC4yMSww
LjMyIEwwLjIzLDAuMzEgTDAuMjQsMC4zMSBMMC4yNSwwLjMxIEwwLjI2LDAuMzAgTDAuMjcsMC4z
MCBMMC4yOSwwLjMwIEwwLjMwLDAuMzAgTDAuMzEsMC4zMCBMMC4zMywwLjMwIEwwLjM0LDAuMzAg
TDAuMzUsMC4zMSBMMC4zNiwwLjMxIEwwLjM3LDAuMzEgTDAuMzksMC4zMiBMMC40MCwwLjMyIEww
LjQxLDAuMzMgTDAuNDIsMC4zNCBMMC40MywwLjM1IEwwLjQ0LDAuMzUgTDAuNDUsMC4zNiBMMC40
NSwwLjM3IEwwLjQ2LDAuMzggTDAuNDcsMC4zOSBMMC40OCwwLjQwIEwwLjQ4LDAuNDEgTDAuNDks
MC40MyBMMC40OSwwLjQ0IEwwLjQ5LDAuNDUgTDAuNTAsMC40NiBMMC41MCwwLjQ3IEwwLjUwLDAu
NDkgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDAsMCkgc2l6ZSAxeDEgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0iTTAuOTAsMC41MCBMMC45
MCwwLjUxIEwwLjkwLDAuNTMgTDAuOTAsMC41NCBMMC44OSwwLjU1IEwwLjg5LDAuNTYgTDAuODks
MC41NyBMMC44OCwwLjU5IEwwLjg4LDAuNjAgTDAuODcsMC42MSBMMC44NiwwLjYyIEwwLjg1LDAu
NjMgTDAuODUsMC42NCBMMC44NCwwLjY1IEwwLjgzLDAuNjUgTDAuODIsMC42NiBMMC44MSwwLjY3
IEwwLjgwLDAuNjggTDAuNzksMC42OCBMMC43NywwLjY5IEwwLjc2LDAuNjkgTDAuNzUsMC42OSBM
MC43NCwwLjcwIEwwLjczLDAuNzAgTDAuNzEsMC43MCBMMC43MCwwLjcwIEwwLjY5LDAuNzAgTDAu
NjcsMC43MCBMMC42NiwwLjcwIEwwLjY1LDAuNjkgTDAuNjQsMC42OSBMMC42MywwLjY5IEwwLjYx
LDAuNjggTDAuNjAsMC42OCBMMC41OSwwLjY3IEwwLjU4LDAuNjYgTDAuNTcsMC42NSBMMC41Niww
LjY1IEwwLjU1LDAuNjQgTDAuNTUsMC42MyBMMC41NCwwLjYyIEwwLjUzLDAuNjEgTDAuNTIsMC42
MCBMMC41MiwwLjU5IEwwLjUxLDAuNTcgTDAuNTEsMC41NiBMMC41MSwwLjU1IEwwLjUwLDAuNTQg
TDAuNTAsMC41MyBMMC41MCwwLjUxIEwwLjUwLDAuNTAgTDAuNTAsMC40OSBMMC41MCwwLjQ3IEww
LjUwLDAuNDYgTDAuNTEsMC40NSBMMC41MSwwLjQ0IEwwLjUxLDAuNDMgTDAuNTIsMC40MSBMMC41
MiwwLjQwIEwwLjUzLDAuMzkgTDAuNTQsMC4zOCBMMC41NSwwLjM3IEwwLjU1LDAuMzYgTDAuNTYs
MC4zNSBMMC41NywwLjM1IEwwLjU4LDAuMzQgTDAuNTksMC4zMyBMMC42MCwwLjMyIEwwLjYxLDAu
MzIgTDAuNjMsMC4zMSBMMC42NCwwLjMxIEwwLjY1LDAuMzEgTDAuNjYsMC4zMCBMMC42NywwLjMw
IEwwLjY5LDAuMzAgTDAuNzAsMC4zMCBMMC43MSwwLjMwIEwwLjczLDAuMzAgTDAuNzQsMC4zMCBM
MC43NSwwLjMxIEwwLjc2LDAuMzEgTDAuNzcsMC4zMSBMMC43OSwwLjMyIEwwLjgwLDAuMzIgTDAu
ODEsMC4zMyBMMC44MiwwLjM0IEwwLjgzLDAuMzUgTDAuODQsMC4zNSBMMC44NSwwLjM2IEwwLjg1
LDAuMzcgTDAuODYsMC4zOCBMMC44NywwLjM5IEwwLjg4LDAuNDAgTDAuODgsMC40MSBMMC44OSww
LjQzIEwwLjg5LDAuNDQgTDAuODksMC40NSBMMC45MCwwLjQ2IEwwLjkwLDAuNDcgTDAuOTAsMC40
OSBaIl0KLSAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTUwLDE1MCkgc2l6ZSAyMDB4MjAwIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwOEJdfV0gW2RhdGE9Ik0xNTAuMDAsMTUwLjAw
IEwzNTAuMDAsMTUwLjAwIEwzNTAuMDAsMzUwLjAwIEwxNTAuMDAsMzUwLjAwIFoiXQotICAgICAg
W21hc2tlcj0idHdvIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0ICgxMzAsMTMw
KSBzaXplIDI0MHgyNDAKKyAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTU1LDE5NSkgc2l6ZSAx
NzV4MTEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwOEJdfV0gW2RhdGE9Ik0xNTAu
MDAsMTUwLjAwIEwzNTAuMDAsMTUwLjAwIEwzNTAuMDAsMzUwLjAwIEwxNTAuMDAsMzUwLjAwIFoi
XQorICAgICAgW21hc2tlcj0idHdvIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0
ICgxNTUuMDEsMTk1LjAxKSBzaXplIDE3NC45OXgxMDkuOTkKICAgICBSZW5kZXJTVkdUZXh0IHt0
ZXh0fSBhdCAoNTAsMjYwKSBzaXplIDg5eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgIFJl
bmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTQpIHNpemUgODl4MTgKICAgICAgICAg
Y2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICg1MC4wMCwyNjAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zm
c2V0IDE0IHdpZHRoIDg5LjAwOiAiV2l0aCBhICdtYXNrJzoiCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2JhdGlrL21hc2tpbmcvbWFza1JlZ2lvbnMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvYmF0aWsvbWFza2luZy9t
YXNrUmVnaW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDU5MDUwKQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9iYXRpay9tYXNraW5nL21hc2tSZWdpb25zLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXpl
IDQ1MHg1MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMCwwKSBzaXplIDQ1MHg1MDAKLSAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg4NSwzNikgc2l6ZSAyNzV4Mzg0CisgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoOTAsMzYpIHNpemUgMjY1eDM2OAogICAgICAgUmVuZGVy
U1ZHVGV4dCB7dGV4dH0gYXQgKDE3NCw1MCkgc2l6ZSAxMDJ4MTcgY29udGFpbnMgMSBjaHVuayhz
KQogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE0KSBzaXplIDEw
MngxNwogICAgICAgICAgIGNodW5rIDEgKG1pZGRsZSBhbmNob3IpIHRleHQgcnVuIDEgYXQgKDE3
NC4wMCw1MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTIgd2lkdGggMTAyLjAwOiAiTWFz
ayBSZWdpb25zIgpAQCAtMzgsOSArMzgsOSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ1MHg1MDAK
ICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDIyLC0zKSBzaXplIDU2eDE3IGNvbnRh
aW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQg
KDAsLTE0KSBzaXplIDU2eDE3CiAgICAgICAgICAgICBjaHVuayAxIChtaWRkbGUgYW5jaG9yKSB0
ZXh0IHJ1biAxIGF0ICgyMi4wMCwtMy4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgNiB3aWR0
aCA1Ni4wMDogIk1hc2tlZCIKLSAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDg1LDIw
Mykgc2l6ZSAxMDB4OTcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0o
ODUuMDAsMjIwLjAwKX1dCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoODUs
MjIwKSBzaXplIDEwMHg4MAotICAgICAgICAgIFttYXNrZXI9Im1hc2tfMSJdIFJlbmRlclNWR1Jl
c291cmNlTWFza2VyIHttYXNrfSBhdCAoLTEwLC04KSBzaXplIDEyMHg5NgorICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoOTAsMjAzKSBzaXplIDkweDk3IFt0cmFuc2Zvcm09e209KCgx
LjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDg1LjAwLDIyMC4wMCl9XQorICAgICAgICBSZW5kZXJT
VkdDb250YWluZXIge3VzZX0gYXQgKDkwLDIyMCkgc2l6ZSA5MHg4MAorICAgICAgICAgIFttYXNr
ZXI9Im1hc2tfMSJdIFJlbmRlclNWR1Jlc291cmNlTWFza2VyIHttYXNrfSBhdCAoNSwwKSBzaXpl
IDkweDgwCiAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoODUsMjIwKSBzaXpl
IDEwMHg4MAogICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDg1LDIyMCkgc2l6ZSAx
MDB4ODAgW2ZpbGw9e1t0eXBlPUxJTkVBUi1HUkFESUVOVF0gW2lkPSJtYXNrZWRHcmFkaWVudCJd
fV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDEwMC4wMCwwLjAwIEwxMDAuMDAsODAuMDAgTDAuMDAsODAu
MDAgWiJdCiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgyNCwtMykgc2l6ZSA1Mngx
NyBjb250YWlucyAxIGNodW5rKHMpCkBAIC01NiwxNSArNTYsMTUgQEAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA0NTB4NTAwCiAgICAgICAgICAgICBjaHVuayAxIChtaWRkbGUgYW5jaG9yKSB0ZXh0IHJ1
biAxIGF0ICgyNC41MCwtMy4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgNiB3aWR0aCA1MS4w
MDogIk1hc2sgMiIKICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI4NCwyMDMpIHNp
emUgNTJ4NzcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjYwLjAw
LDIyMC4wMCl9XQogICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDI4NSwyNDAp
IHNpemUgNTB4NDAKLSAgICAgICAgICBbbWFza2VyPSJtYXNrXzMiXSBSZW5kZXJTVkdSZXNvdXJj
ZU1hc2tlciB7bWFza30gYXQgKDI1LDIwKSBzaXplIDUwLjAweDQwCisgICAgICAgICAgW21hc2tl
cj0ibWFza18zIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0ICgyNSwyMCkgc2l6
ZSA1MHg0MAogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI2MCwyMjApIHNp
emUgMTAweDgwCiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjYwLDIyMCkgc2l6
ZSAxMDB4ODAgW2ZpbGw9e1t0eXBlPUxJTkVBUi1HUkFESUVOVF0gW2lkPSJtYXNrZWRHcmFkaWVu
dCJdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDEwMC4wMCwwLjAwIEwxMDAuMDAsODAuMDAgTDAuMDAs
ODAuMDAgWiJdCiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgyNCwtMykgc2l6ZSA1
MngxNyBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7
I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA1MngxNwogICAgICAgICAgICAgY2h1bmsgMSAobWlkZGxl
IGFuY2hvcikgdGV4dCBydW4gMSBhdCAoMjQuNTAsLTMuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zm
c2V0IDYgd2lkdGggNTEuMDA6ICJNYXNrIDMiCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICgyNjAsMzIzKSBzaXplIDEwMHg5NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAw
LDEuMDApKSB0PSgyNjAuMDAsMzQwLjAwKX1dCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
dXNlfSBhdCAoMjYwLDM0MCkgc2l6ZSAxMDB4ODAKLSAgICAgICAgICBbbWFza2VyPSJtYXNrXzQi
XSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQgKDAsMCkgc2l6ZSAxMDB4ODAKKyAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI2NCwzMjMpIHNpemUgOTF4ODEgW3RyYW5z
Zm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjYwLjAwLDM0MC4wMCl9XQorICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDI2NCwzNDApIHNpemUgOTF4NjQKKyAg
ICAgICAgICBbbWFza2VyPSJtYXNrXzQiXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30g
YXQgKDUuMDAsMCkgc2l6ZSA5MHg2NAogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDI2MCwzNDApIHNpemUgMTAweDgwCiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBh
dCAoMjYwLDM0MCkgc2l6ZSAxMDB4ODAgW2ZpbGw9e1t0eXBlPUxJTkVBUi1HUkFESUVOVF0gW2lk
PSJtYXNrZWRHcmFkaWVudCJdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDEwMC4wMCwwLjAwIEwxMDAu
MDAsODAuMDAgTDAuMDAsODAuMDAgWiJdCiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0
ICgyNCwtMykgc2l6ZSA1MngxNyBjb250YWlucyAxIGNodW5rKHMpCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvc3ZnL2NsaXAtcGF0aC9jbGlwLXBhdGgtd2l0aC1pbnZpc2liaWxlLWNo
aWxkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL2NsaXAtcGF0aC9jbGlwLXBhdGgtd2l0aC1pbnZpc2liaWxlLWNoaWxkLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNTkwNTApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2NsaXAt
cGF0aC9jbGlwLXBhdGgtd2l0aC1pbnZpc2liaWxlLWNoaWxkLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtOCw1ICs4LDUgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoNzAsNDApIHNpemUgMjAweDE3MAogICAg
ICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDcwLDQwKSBzaXplIDIwMHgxNzAKICAg
ICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICg3MCw0MCkgc2l6ZSAyMDB4MTcwIFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDcwLjAwLDQwLjAwKX1dIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMDAuMDAsMC4wMCBMMTYw
LjAwLDE3MC4wMCBMMC4wMCw2MC4wMCBMMjAwLjAwLDYwLjAwIEwzMC4wMCwxNzAuMDAgWiJdCi0g
ICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDcwLDQwKSBzaXplIDIwMHgxNzAgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTQwLjAwLDQwLjAwIEwzNDAuMDAsNDAu
MDAgTDM0MC4wMCwzNDAuMDAgTDQwLjAwLDM0MC4wMCBaIl0KLSAgICAgIFtjbGlwUGF0aD0iY2xp
cCJdIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciB7Y2xpcFBhdGh9IGF0ICg3MCw0MCkgc2l6ZSAy
MDB4MTcwCisgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQwLDQwKSBzaXplIDMwMHgzMDAgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTQwLjAwLDQwLjAwIEwz
NDAuMDAsNDAuMDAgTDM0MC4wMCwzNDAuMDAgTDQwLjAwLDM0MC4wMCBaIl0KKyAgICAgIFtjbGlw
UGF0aD0iY2xpcCJdIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciB7Y2xpcFBhdGh9IGF0ICgwLDAp
IHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jaXJjbGUt
aW4tbWFzay13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY2lyY2xlLWluLW1hc2std2l0aC1zaGFkb3ctZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiA1OTA1MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcv
Y3NzL2NpcmNsZS1pbi1tYXNrLXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMiw3ICsyLDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDQ1MHg1MDAKICAg
UmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMCwwKSBzaXplIDQ1MHg1MDAKLSAgICBSZW5kZXJTVkdD
b250YWluZXIge2d9IGF0ICgwLDApIHNpemUgMzAweDMwMAorICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDUsNSkgc2l6ZSAyMjB4MjIwCiAgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWlu
ZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgIFJlbmRlclNWR1Jlc291cmNlTGlu
ZWFyR3JhZGllbnQge2xpbmVhckdyYWRpZW50fSBbaWQ9Im1hc2tlZEdyYWRpZW50Il0gW2dyYWRp
ZW50VW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtzdGFydD0oMCwwKV0gW2VuZD0oMSwxKV0KICAg
ICAgICAgICBSZW5kZXJTVkdHcmFkaWVudFN0b3Age3N0b3B9IFtvZmZzZXQ9MC4wMF0gW2NvbG9y
PSMwMDAwRkZdCkBAIC0xMyw4ICsxMyw4IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDUweDUwMAog
ICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDUsMTE1KSBzaXplIDEyMHgxMjAgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTTEwNS4wMCwxNjUuMDAg
TDEwNC45MCwxNjguMTQgTDEwNC42MSwxNzEuMjcgTDEwNC4xMSwxNzQuMzcgTDEwMy40MywxNzcu
NDMgTDEwMi41NSwxODAuNDUgTDEwMS40OSwxODMuNDEgTDEwMC4yNCwxODYuMjkgTDk4LjgyLDE4
OS4wOSBMOTcuMjIsMTkxLjc5IEw5NS40NSwxOTQuMzkgTDkzLjUzLDE5Ni44NyBMOTEuNDUsMTk5
LjIzIEw4OS4yMywyMDEuNDUgTDg2Ljg3LDIwMy41MyBMODQuMzksMjA1LjQ1IEw4MS43OSwyMDcu
MjIgTDc5LjA5LDIwOC44MiBMNzYuMjksMjEwLjI0IEw3My40MSwyMTEuNDkgTDcwLjQ1LDIxMi41
NSBMNjcuNDMsMjEzLjQzIEw2NC4zNywyMTQuMTEgTDYxLjI3LDIxNC42MSBMNTguMTQsMjE0Ljkw
IEw1NS4wMCwyMTUuMDAgTDUxLjg2LDIxNC45MCBMNDguNzMsMjE0LjYxIEw0NS42MywyMTQuMTEg
TDQyLjU3LDIxMy40MyBMMzkuNTUsMjEyLjU1IEwzNi41OSwyMTEuNDkgTDMzLjcxLDIxMC4yNCBM
MzAuOTEsMjA4LjgyIEwyOC4yMSwyMDcuMjIgTDI1LjYxLDIwNS40NSBMMjMuMTMsMjAzLjUzIEwy
MC43NywyMDEuNDUgTDE4LjU1LDE5OS4yMyBMMTYuNDcsMTk2Ljg3IEwxNC41NSwxOTQuMzkgTDEy
Ljc4LDE5MS43OSBMMTEuMTgsMTg5LjA5IEw5Ljc2LDE4Ni4yOSBMOC41MSwxODMuNDEgTDcuNDUs
MTgwLjQ1IEw2LjU3LDE3Ny40MyBMNS44OSwxNzQuMzcgTDUuMzksMTcxLjI3IEw1LjEwLDE2OC4x
NCBMNS4wMCwxNjUuMDAgTDUuMTAsMTYxLjg2IEw1LjM5LDE1OC43MyBMNS44OSwxNTUuNjMgTDYu
NTcsMTUyLjU3IEw3LjQ1LDE0OS41NSBMOC41MSwxNDYuNTkgTDkuNzYsMTQzLjcxIEwxMS4xOCwx
NDAuOTEgTDEyLjc4LDEzOC4yMSBMMTQuNTUsMTM1LjYxIEwxNi40NywxMzMuMTMgTDE4LjU1LDEz
MC43NyBMMjAuNzcsMTI4LjU1IEwyMy4xMywxMjYuNDcgTDI1LjYxLDEyNC41NSBMMjguMjEsMTIy
Ljc4IEwzMC45MSwxMjEuMTggTDMzLjcxLDExOS43NiBMMzYuNTksMTE4LjUxIEwzOS41NSwxMTcu
NDUgTDQyLjU3LDExNi41NyBMNDUuNjMsMTE1Ljg5IEw0OC43MywxMTUuMzkgTDUxLjg2LDExNS4x
MCBMNTUuMDAsMTE1LjAwIEw1OC4xNCwxMTUuMTAgTDYxLjI3LDExNS4zOSBMNjQuMzcsMTE1Ljg5
IEw2Ny40MywxMTYuNTcgTDcwLjQ1LDExNy40NSBMNzMuNDEsMTE4LjUxIEw3Ni4yOSwxMTkuNzYg
TDc5LjA5LDEyMS4xOCBMODEuNzksMTIyLjc4IEw4NC4zOSwxMjQuNTUgTDg2Ljg3LDEyNi40NyBM
ODkuMjMsMTI4LjU1IEw5MS40NSwxMzAuNzcgTDkzLjUzLDEzMy4xMyBMOTUuNDUsMTM1LjYxIEw5
Ny4yMiwxMzguMjEgTDk4LjgyLDE0MC45MSBMMTAwLjI0LDE0My43MSBMMTAxLjQ5LDE0Ni41OSBM
MTAyLjU1LDE0OS41NSBMMTAzLjQzLDE1Mi41NyBMMTA0LjExLDE1NS42MyBMMTA0LjYxLDE1OC43
MyBMMTA0LjkwLDE2MS44NiBaIl0KICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgx
MTUsNSkgc2l6ZSAxMjB4MTIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0g
W2RhdGE9Ik0yMTUuMDAsNTUuMDAgTDIxNC45MCw1OC4xNCBMMjE0LjYxLDYxLjI3IEwyMTQuMTEs
NjQuMzcgTDIxMy40Myw2Ny40MyBMMjEyLjU1LDcwLjQ1IEwyMTEuNDksNzMuNDEgTDIxMC4yNCw3
Ni4yOSBMMjA4LjgyLDc5LjA5IEwyMDcuMjIsODEuNzkgTDIwNS40NSw4NC4zOSBMMjAzLjUzLDg2
Ljg3IEwyMDEuNDUsODkuMjMgTDE5OS4yMyw5MS40NSBMMTk2Ljg3LDkzLjUzIEwxOTQuMzksOTUu
NDUgTDE5MS43OSw5Ny4yMiBMMTg5LjA5LDk4LjgyIEwxODYuMjksMTAwLjI0IEwxODMuNDEsMTAx
LjQ5IEwxODAuNDUsMTAyLjU1IEwxNzcuNDMsMTAzLjQzIEwxNzQuMzcsMTA0LjExIEwxNzEuMjcs
MTA0LjYxIEwxNjguMTQsMTA0LjkwIEwxNjUuMDAsMTA1LjAwIEwxNjEuODYsMTA0LjkwIEwxNTgu
NzMsMTA0LjYxIEwxNTUuNjMsMTA0LjExIEwxNTIuNTcsMTAzLjQzIEwxNDkuNTUsMTAyLjU1IEwx
NDYuNTksMTAxLjQ5IEwxNDMuNzEsMTAwLjI0IEwxNDAuOTEsOTguODIgTDEzOC4yMSw5Ny4yMiBM
MTM1LjYxLDk1LjQ1IEwxMzMuMTMsOTMuNTMgTDEzMC43Nyw5MS40NSBMMTI4LjU1LDg5LjIzIEwx
MjYuNDcsODYuODcgTDEyNC41NSw4NC4zOSBMMTIyLjc4LDgxLjc5IEwxMjEuMTgsNzkuMDkgTDEx
OS43Niw3Ni4yOSBMMTE4LjUxLDczLjQxIEwxMTcuNDUsNzAuNDUgTDExNi41Nyw2Ny40MyBMMTE1
Ljg5LDY0LjM3IEwxMTUuMzksNjEuMjcgTDExNS4xMCw1OC4xNCBMMTE1LjAwLDU1LjAwIEwxMTUu
MTAsNTEuODYgTDExNS4zOSw0OC43MyBMMTE1Ljg5LDQ1LjYzIEwxMTYuNTcsNDIuNTcgTDExNy40
NSwzOS41NSBMMTE4LjUxLDM2LjU5IEwxMTkuNzYsMzMuNzEgTDEyMS4xOCwzMC45MSBMMTIyLjc4
LDI4LjIxIEwxMjQuNTUsMjUuNjEgTDEyNi40NywyMy4xMyBMMTI4LjU1LDIwLjc3IEwxMzAuNzcs
MTguNTUgTDEzMy4xMywxNi40NyBMMTM1LjYxLDE0LjU1IEwxMzguMjEsMTIuNzggTDE0MC45MSwx
MS4xOCBMMTQzLjcxLDkuNzYgTDE0Ni41OSw4LjUxIEwxNDkuNTUsNy40NSBMMTUyLjU3LDYuNTcg
TDE1NS42Myw1Ljg5IEwxNTguNzMsNS4zOSBMMTYxLjg2LDUuMTAgTDE2NS4wMCw1LjAwIEwxNjgu
MTQsNS4xMCBMMTcxLjI3LDUuMzkgTDE3NC4zNyw1Ljg5IEwxNzcuNDMsNi41NyBMMTgwLjQ1LDcu
NDUgTDE4My40MSw4LjUxIEwxODYuMjksOS43NiBMMTg5LjA5LDExLjE4IEwxOTEuNzksMTIuNzgg
TDE5NC4zOSwxNC41NSBMMTk2Ljg3LDE2LjQ3IEwxOTkuMjMsMTguNTUgTDIwMS40NSwyMC43NyBM
MjAzLjUzLDIzLjEzIEwyMDUuNDUsMjUuNjEgTDIwNy4yMiwyOC4yMSBMMjA4LjgyLDMwLjkxIEwy
MTAuMjQsMzMuNzEgTDIxMS40OSwzNi41OSBMMjEyLjU1LDM5LjU1IEwyMTMuNDMsNDIuNTcgTDIx
NC4xMSw0NS42MyBMMjE0LjYxLDQ4LjczIEwyMTQuOTAsNTEuODYgWiJdCiAgICAgICAgICAgUmVu
ZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTE1LDExNSkgc2l6ZSAxMjB4MTIwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2RhdGE9Ik0yMTUuMDAsMTY1LjAwIEwyMTQuOTAsMTY4
LjE0IEwyMTQuNjEsMTcxLjI3IEwyMTQuMTEsMTc0LjM3IEwyMTMuNDMsMTc3LjQzIEwyMTIuNTUs
MTgwLjQ1IEwyMTEuNDksMTgzLjQxIEwyMTAuMjQsMTg2LjI5IEwyMDguODIsMTg5LjA5IEwyMDcu
MjIsMTkxLjc5IEwyMDUuNDUsMTk0LjM5IEwyMDMuNTMsMTk2Ljg3IEwyMDEuNDUsMTk5LjIzIEwx
OTkuMjMsMjAxLjQ1IEwxOTYuODcsMjAzLjUzIEwxOTQuMzksMjA1LjQ1IEwxOTEuNzksMjA3LjIy
IEwxODkuMDksMjA4LjgyIEwxODYuMjksMjEwLjI0IEwxODMuNDEsMjExLjQ5IEwxODAuNDUsMjEy
LjU1IEwxNzcuNDMsMjEzLjQzIEwxNzQuMzcsMjE0LjExIEwxNzEuMjcsMjE0LjYxIEwxNjguMTQs
MjE0LjkwIEwxNjUuMDAsMjE1LjAwIEwxNjEuODYsMjE0LjkwIEwxNTguNzMsMjE0LjYxIEwxNTUu
NjMsMjE0LjExIEwxNTIuNTcsMjEzLjQzIEwxNDkuNTUsMjEyLjU1IEwxNDYuNTksMjExLjQ5IEwx
NDMuNzEsMjEwLjI0IEwxNDAuOTEsMjA4LjgyIEwxMzguMjEsMjA3LjIyIEwxMzUuNjEsMjA1LjQ1
IEwxMzMuMTMsMjAzLjUzIEwxMzAuNzcsMjAxLjQ1IEwxMjguNTUsMTk5LjIzIEwxMjYuNDcsMTk2
Ljg3IEwxMjQuNTUsMTk0LjM5IEwxMjIuNzgsMTkxLjc5IEwxMjEuMTgsMTg5LjA5IEwxMTkuNzYs
MTg2LjI5IEwxMTguNTEsMTgzLjQxIEwxMTcuNDUsMTgwLjQ1IEwxMTYuNTcsMTc3LjQzIEwxMTUu
ODksMTc0LjM3IEwxMTUuMzksMTcxLjI3IEwxMTUuMTAsMTY4LjE0IEwxMTUuMDAsMTY1LjAwIEwx
MTUuMTAsMTYxLjg2IEwxMTUuMzksMTU4LjczIEwxMTUuODksMTU1LjYzIEwxMTYuNTcsMTUyLjU3
IEwxMTcuNDUsMTQ5LjU1IEwxMTguNTEsMTQ2LjU5IEwxMTkuNzYsMTQzLjcxIEwxMjEuMTgsMTQw
LjkxIEwxMjIuNzgsMTM4LjIxIEwxMjQuNTUsMTM1LjYxIEwxMjYuNDcsMTMzLjEzIEwxMjguNTUs
MTMwLjc3IEwxMzAuNzcsMTI4LjU1IEwxMzMuMTMsMTI2LjQ3IEwxMzUuNjEsMTI0LjU1IEwxMzgu
MjEsMTIyLjc4IEwxNDAuOTEsMTIxLjE4IEwxNDMuNzEsMTE5Ljc2IEwxNDYuNTksMTE4LjUxIEwx
NDkuNTUsMTE3LjQ1IEwxNTIuNTcsMTE2LjU3IEwxNTUuNjMsMTE1Ljg5IEwxNTguNzMsMTE1LjM5
IEwxNjEuODYsMTE1LjEwIEwxNjUuMDAsMTE1LjAwIEwxNjguMTQsMTE1LjEwIEwxNzEuMjcsMTE1
LjM5IEwxNzQuMzcsMTE1Ljg5IEwxNzcuNDMsMTE2LjU3IEwxODAuNDUsMTE3LjQ1IEwxODMuNDEs
MTE4LjUxIEwxODYuMjksMTE5Ljc2IEwxODkuMDksMTIxLjE4IEwxOTEuNzksMTIyLjc4IEwxOTQu
MzksMTI0LjU1IEwxOTYuODcsMTI2LjQ3IEwxOTkuMjMsMTI4LjU1IEwyMDEuNDUsMTMwLjc3IEwy
MDMuNTMsMTMzLjEzIEwyMDUuNDUsMTM1LjYxIEwyMDcuMjIsMTM4LjIxIEwyMDguODIsMTQwLjkx
IEwyMTAuMjQsMTQzLjcxIEwyMTEuNDksMTQ2LjU5IEwyMTIuNTUsMTQ5LjU1IEwyMTMuNDMsMTUy
LjU3IEwyMTQuMTEsMTU1LjYzIEwyMTQuNjEsMTU4LjczIEwyMTQuOTAsMTYxLjg2IFoiXQotICAg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDMwMHgzMDAKLSAgICAgICAg
UmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgwLDApIHNpemUgMzAweDMwMAotICAgICAgICAg
IFttYXNrZXI9Im1hc2tfMSJdIFJlbmRlclNWR1Jlc291cmNlTWFza2VyIHttYXNrfSBhdCAoLTMw
LC0zMCkgc2l6ZSAzNjB4MzYwCisgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1LDUp
IHNpemUgMjIweDIyMAorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDUsNSkg
c2l6ZSAyMjB4MjIwCisgICAgICAgICAgW21hc2tlcj0ibWFza18xIl0gUmVuZGVyU1ZHUmVzb3Vy
Y2VNYXNrZXIge21hc2t9IGF0ICg1LDUpIHNpemUgMjIweDIyMAogICAgICAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDAsMCkgc2l6ZSAzMDB4MzAwCiAgICAgICAgICAgICBSZW5kZXJQ
YXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDMwMHgzMDAgW2ZpbGw9e1t0eXBlPUxJTkVBUi1HUkFE
SUVOVF0gW2lkPSJtYXNrZWRHcmFkaWVudCJdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDMwMC4wMCww
LjAwIEwzMDAuMDAsMzAwLjAwIEwwLjAwLDMwMC4wMCBaIl0KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvY3NzL21hc2std2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL21hc2std2l0aC1zaGFkb3ct
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1OTA1MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3NzL21hc2std2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0yLDcgKzIsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgNDUweDUwMAogICBSZW5k
ZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgNDUweDUwMAotICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDAsMCkgc2l6ZSAzMDB4MzAwCisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoNSw1KSBzaXplIDIxMHgyMTAKICAgICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7
ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJH
cmFkaWVudCB7bGluZWFyR3JhZGllbnR9IFtpZD0ibWFza2VkR3JhZGllbnQiXSBbZ3JhZGllbnRV
bml0cz1vYmplY3RCb3VuZGluZ0JveF0gW3N0YXJ0PSgwLDApXSBbZW5kPSgxLDEpXQogICAgICAg
ICAgIFJlbmRlclNWR0dyYWRpZW50U3RvcCB7c3RvcH0gW29mZnNldD0wLjAwXSBbY29sb3I9IzAw
MDBGRl0KQEAgLTEzLDggKzEzLDggQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0NTB4NTAwCiAgICAg
ICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoNSwxMTUpIHNpemUgMTEweDExMCBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtkYXRhPSJNMTA1LjAwLDE2NS4wMCBMMTA0
LjkwLDE2OC4xNCBMMTA0LjYxLDE3MS4yNyBMMTA0LjExLDE3NC4zNyBMMTAzLjQzLDE3Ny40MyBM
MTAyLjU1LDE4MC40NSBMMTAxLjQ5LDE4My40MSBMMTAwLjI0LDE4Ni4yOSBMOTguODIsMTg5LjA5
IEw5Ny4yMiwxOTEuNzkgTDk1LjQ1LDE5NC4zOSBMOTMuNTMsMTk2Ljg3IEw5MS40NSwxOTkuMjMg
TDg5LjIzLDIwMS40NSBMODYuODcsMjAzLjUzIEw4NC4zOSwyMDUuNDUgTDgxLjc5LDIwNy4yMiBM
NzkuMDksMjA4LjgyIEw3Ni4yOSwyMTAuMjQgTDczLjQxLDIxMS40OSBMNzAuNDUsMjEyLjU1IEw2
Ny40MywyMTMuNDMgTDY0LjM3LDIxNC4xMSBMNjEuMjcsMjE0LjYxIEw1OC4xNCwyMTQuOTAgTDU1
LjAwLDIxNS4wMCBMNTEuODYsMjE0LjkwIEw0OC43MywyMTQuNjEgTDQ1LjYzLDIxNC4xMSBMNDIu
NTcsMjEzLjQzIEwzOS41NSwyMTIuNTUgTDM2LjU5LDIxMS40OSBMMzMuNzEsMjEwLjI0IEwzMC45
MSwyMDguODIgTDI4LjIxLDIwNy4yMiBMMjUuNjEsMjA1LjQ1IEwyMy4xMywyMDMuNTMgTDIwLjc3
LDIwMS40NSBMMTguNTUsMTk5LjIzIEwxNi40NywxOTYuODcgTDE0LjU1LDE5NC4zOSBMMTIuNzgs
MTkxLjc5IEwxMS4xOCwxODkuMDkgTDkuNzYsMTg2LjI5IEw4LjUxLDE4My40MSBMNy40NSwxODAu
NDUgTDYuNTcsMTc3LjQzIEw1Ljg5LDE3NC4zNyBMNS4zOSwxNzEuMjcgTDUuMTAsMTY4LjE0IEw1
LjAwLDE2NS4wMCBMNS4xMCwxNjEuODYgTDUuMzksMTU4LjczIEw1Ljg5LDE1NS42MyBMNi41Nywx
NTIuNTcgTDcuNDUsMTQ5LjU1IEw4LjUxLDE0Ni41OSBMOS43NiwxNDMuNzEgTDExLjE4LDE0MC45
MSBMMTIuNzgsMTM4LjIxIEwxNC41NSwxMzUuNjEgTDE2LjQ3LDEzMy4xMyBMMTguNTUsMTMwLjc3
IEwyMC43NywxMjguNTUgTDIzLjEzLDEyNi40NyBMMjUuNjEsMTI0LjU1IEwyOC4yMSwxMjIuNzgg
TDMwLjkxLDEyMS4xOCBMMzMuNzEsMTE5Ljc2IEwzNi41OSwxMTguNTEgTDM5LjU1LDExNy40NSBM
NDIuNTcsMTE2LjU3IEw0NS42MywxMTUuODkgTDQ4LjczLDExNS4zOSBMNTEuODYsMTE1LjEwIEw1
NS4wMCwxMTUuMDAgTDU4LjE0LDExNS4xMCBMNjEuMjcsMTE1LjM5IEw2NC4zNywxMTUuODkgTDY3
LjQzLDExNi41NyBMNzAuNDUsMTE3LjQ1IEw3My40MSwxMTguNTEgTDc2LjI5LDExOS43NiBMNzku
MDksMTIxLjE4IEw4MS43OSwxMjIuNzggTDg0LjM5LDEyNC41NSBMODYuODcsMTI2LjQ3IEw4OS4y
MywxMjguNTUgTDkxLjQ1LDEzMC43NyBMOTMuNTMsMTMzLjEzIEw5NS40NSwxMzUuNjEgTDk3LjIy
LDEzOC4yMSBMOTguODIsMTQwLjkxIEwxMDAuMjQsMTQzLjcxIEwxMDEuNDksMTQ2LjU5IEwxMDIu
NTUsMTQ5LjU1IEwxMDMuNDMsMTUyLjU3IEwxMDQuMTEsMTU1LjYzIEwxMDQuNjEsMTU4LjczIEwx
MDQuOTAsMTYxLjg2IFoiXQogICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDExNSw1
KSBzaXplIDExMHgxMTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0
YT0iTTIxNS4wMCw1NS4wMCBMMjE0LjkwLDU4LjE0IEwyMTQuNjEsNjEuMjcgTDIxNC4xMSw2NC4z
NyBMMjEzLjQzLDY3LjQzIEwyMTIuNTUsNzAuNDUgTDIxMS40OSw3My40MSBMMjEwLjI0LDc2LjI5
IEwyMDguODIsNzkuMDkgTDIwNy4yMiw4MS43OSBMMjA1LjQ1LDg0LjM5IEwyMDMuNTMsODYuODcg
TDIwMS40NSw4OS4yMyBMMTk5LjIzLDkxLjQ1IEwxOTYuODcsOTMuNTMgTDE5NC4zOSw5NS40NSBM
MTkxLjc5LDk3LjIyIEwxODkuMDksOTguODIgTDE4Ni4yOSwxMDAuMjQgTDE4My40MSwxMDEuNDkg
TDE4MC40NSwxMDIuNTUgTDE3Ny40MywxMDMuNDMgTDE3NC4zNywxMDQuMTEgTDE3MS4yNywxMDQu
NjEgTDE2OC4xNCwxMDQuOTAgTDE2NS4wMCwxMDUuMDAgTDE2MS44NiwxMDQuOTAgTDE1OC43Mywx
MDQuNjEgTDE1NS42MywxMDQuMTEgTDE1Mi41NywxMDMuNDMgTDE0OS41NSwxMDIuNTUgTDE0Ni41
OSwxMDEuNDkgTDE0My43MSwxMDAuMjQgTDE0MC45MSw5OC44MiBMMTM4LjIxLDk3LjIyIEwxMzUu
NjEsOTUuNDUgTDEzMy4xMyw5My41MyBMMTMwLjc3LDkxLjQ1IEwxMjguNTUsODkuMjMgTDEyNi40
Nyw4Ni44NyBMMTI0LjU1LDg0LjM5IEwxMjIuNzgsODEuNzkgTDEyMS4xOCw3OS4wOSBMMTE5Ljc2
LDc2LjI5IEwxMTguNTEsNzMuNDEgTDExNy40NSw3MC40NSBMMTE2LjU3LDY3LjQzIEwxMTUuODks
NjQuMzcgTDExNS4zOSw2MS4yNyBMMTE1LjEwLDU4LjE0IEwxMTUuMDAsNTUuMDAgTDExNS4xMCw1
MS44NiBMMTE1LjM5LDQ4LjczIEwxMTUuODksNDUuNjMgTDExNi41Nyw0Mi41NyBMMTE3LjQ1LDM5
LjU1IEwxMTguNTEsMzYuNTkgTDExOS43NiwzMy43MSBMMTIxLjE4LDMwLjkxIEwxMjIuNzgsMjgu
MjEgTDEyNC41NSwyNS42MSBMMTI2LjQ3LDIzLjEzIEwxMjguNTUsMjAuNzcgTDEzMC43NywxOC41
NSBMMTMzLjEzLDE2LjQ3IEwxMzUuNjEsMTQuNTUgTDEzOC4yMSwxMi43OCBMMTQwLjkxLDExLjE4
IEwxNDMuNzEsOS43NiBMMTQ2LjU5LDguNTEgTDE0OS41NSw3LjQ1IEwxNTIuNTcsNi41NyBMMTU1
LjYzLDUuODkgTDE1OC43Myw1LjM5IEwxNjEuODYsNS4xMCBMMTY1LjAwLDUuMDAgTDE2OC4xNCw1
LjEwIEwxNzEuMjcsNS4zOSBMMTc0LjM3LDUuODkgTDE3Ny40Myw2LjU3IEwxODAuNDUsNy40NSBM
MTgzLjQxLDguNTEgTDE4Ni4yOSw5Ljc2IEwxODkuMDksMTEuMTggTDE5MS43OSwxMi43OCBMMTk0
LjM5LDE0LjU1IEwxOTYuODcsMTYuNDcgTDE5OS4yMywxOC41NSBMMjAxLjQ1LDIwLjc3IEwyMDMu
NTMsMjMuMTMgTDIwNS40NSwyNS42MSBMMjA3LjIyLDI4LjIxIEwyMDguODIsMzAuOTEgTDIxMC4y
NCwzMy43MSBMMjExLjQ5LDM2LjU5IEwyMTIuNTUsMzkuNTUgTDIxMy40Myw0Mi41NyBMMjE0LjEx
LDQ1LjYzIEwyMTQuNjEsNDguNzMgTDIxNC45MCw1MS44NiBaIl0KICAgICAgICAgICBSZW5kZXJQ
YXRoIHtjaXJjbGV9IGF0ICgxMTUsMTE1KSBzaXplIDExMHgxMTAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTTIxNS4wMCwxNjUuMDAgTDIxNC45MCwxNjguMTQg
TDIxNC42MSwxNzEuMjcgTDIxNC4xMSwxNzQuMzcgTDIxMy40MywxNzcuNDMgTDIxMi41NSwxODAu
NDUgTDIxMS40OSwxODMuNDEgTDIxMC4yNCwxODYuMjkgTDIwOC44MiwxODkuMDkgTDIwNy4yMiwx
OTEuNzkgTDIwNS40NSwxOTQuMzkgTDIwMy41MywxOTYuODcgTDIwMS40NSwxOTkuMjMgTDE5OS4y
MywyMDEuNDUgTDE5Ni44NywyMDMuNTMgTDE5NC4zOSwyMDUuNDUgTDE5MS43OSwyMDcuMjIgTDE4
OS4wOSwyMDguODIgTDE4Ni4yOSwyMTAuMjQgTDE4My40MSwyMTEuNDkgTDE4MC40NSwyMTIuNTUg
TDE3Ny40MywyMTMuNDMgTDE3NC4zNywyMTQuMTEgTDE3MS4yNywyMTQuNjEgTDE2OC4xNCwyMTQu
OTAgTDE2NS4wMCwyMTUuMDAgTDE2MS44NiwyMTQuOTAgTDE1OC43MywyMTQuNjEgTDE1NS42Mywy
MTQuMTEgTDE1Mi41NywyMTMuNDMgTDE0OS41NSwyMTIuNTUgTDE0Ni41OSwyMTEuNDkgTDE0My43
MSwyMTAuMjQgTDE0MC45MSwyMDguODIgTDEzOC4yMSwyMDcuMjIgTDEzNS42MSwyMDUuNDUgTDEz
My4xMywyMDMuNTMgTDEzMC43NywyMDEuNDUgTDEyOC41NSwxOTkuMjMgTDEyNi40NywxOTYuODcg
TDEyNC41NSwxOTQuMzkgTDEyMi43OCwxOTEuNzkgTDEyMS4xOCwxODkuMDkgTDExOS43NiwxODYu
MjkgTDExOC41MSwxODMuNDEgTDExNy40NSwxODAuNDUgTDExNi41NywxNzcuNDMgTDExNS44OSwx
NzQuMzcgTDExNS4zOSwxNzEuMjcgTDExNS4xMCwxNjguMTQgTDExNS4wMCwxNjUuMDAgTDExNS4x
MCwxNjEuODYgTDExNS4zOSwxNTguNzMgTDExNS44OSwxNTUuNjMgTDExNi41NywxNTIuNTcgTDEx
Ny40NSwxNDkuNTUgTDExOC41MSwxNDYuNTkgTDExOS43NiwxNDMuNzEgTDEyMS4xOCwxNDAuOTEg
TDEyMi43OCwxMzguMjEgTDEyNC41NSwxMzUuNjEgTDEyNi40NywxMzMuMTMgTDEyOC41NSwxMzAu
NzcgTDEzMC43NywxMjguNTUgTDEzMy4xMywxMjYuNDcgTDEzNS42MSwxMjQuNTUgTDEzOC4yMSwx
MjIuNzggTDE0MC45MSwxMjEuMTggTDE0My43MSwxMTkuNzYgTDE0Ni41OSwxMTguNTEgTDE0OS41
NSwxMTcuNDUgTDE1Mi41NywxMTYuNTcgTDE1NS42MywxMTUuODkgTDE1OC43MywxMTUuMzkgTDE2
MS44NiwxMTUuMTAgTDE2NS4wMCwxMTUuMDAgTDE2OC4xNCwxMTUuMTAgTDE3MS4yNywxMTUuMzkg
TDE3NC4zNywxMTUuODkgTDE3Ny40MywxMTYuNTcgTDE4MC40NSwxMTcuNDUgTDE4My40MSwxMTgu
NTEgTDE4Ni4yOSwxMTkuNzYgTDE4OS4wOSwxMjEuMTggTDE5MS43OSwxMjIuNzggTDE5NC4zOSwx
MjQuNTUgTDE5Ni44NywxMjYuNDcgTDE5OS4yMywxMjguNTUgTDIwMS40NSwxMzAuNzcgTDIwMy41
MywxMzMuMTMgTDIwNS40NSwxMzUuNjEgTDIwNy4yMiwxMzguMjEgTDIwOC44MiwxNDAuOTEgTDIx
MC4yNCwxNDMuNzEgTDIxMS40OSwxNDYuNTkgTDIxMi41NSwxNDkuNTUgTDIxMy40MywxNTIuNTcg
TDIxNC4xMSwxNTUuNjMgTDIxNC42MSwxNTguNzMgTDIxNC45MCwxNjEuODYgWiJdCi0gICAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgwLDApIHNpemUgMzAweDMwMAotICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDAsMCkgc2l6ZSAzMDB4MzAwCi0gICAgICAgICAgW21h
c2tlcj0ibWFza18xIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0ICgtMzAsLTMw
KSBzaXplIDM2MHgzNjAKKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDUsNSkgc2l6
ZSAyMTB4MjEwCisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoNSw1KSBzaXpl
IDIxMHgyMTAKKyAgICAgICAgICBbbWFza2VyPSJtYXNrXzEiXSBSZW5kZXJTVkdSZXNvdXJjZU1h
c2tlciB7bWFza30gYXQgKDUsNSkgc2l6ZSAyMTB4MjEwCiAgICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDMwMHgzMDAKICAgICAgICAgICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICgwLDApIHNpemUgMzAweDMwMCBbZmlsbD17W3R5cGU9TElORUFSLUdSQURJRU5U
XSBbaWQ9Im1hc2tlZEdyYWRpZW50Il19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMzAwLjAwLDAuMDAg
TDMwMC4wMCwzMDAuMDAgTDAuMDAsMzAwLjAwIFoiXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy9jdXN0b20vZW1wdHktbWFzay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vZW1wdHktbWFzay1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDU5MDUwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vZW1wdHktbWFzay1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsOSArNiw5IEBA
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VNYXNr
ZXIge21hc2t9IFtpZD0ibWFzayJdIFttYXNrVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFttYXNr
Q29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBh
dCAoMCwwKSBzaXplIDB4MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtk
YXRhPSJNLTAuNTAsLTAuNTAgTC0wLjQwLC0wLjUwIEwtMC40MCwtMC40MCBMLTAuNTAsLTAuNDAg
WiJdCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDIwLDIwKSBzaXplIDEwMHgxMDAgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTIwLjAwLDIwLjAwIEwxMjAu
MDAsMjAuMDAgTDEyMC4wMCwxMjAuMDAgTDIwLjAwLDEyMC4wMCBaIl0KLSAgICAgIFttYXNrZXI9
Im1hc2siXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQgKDEwLDEwKSBzaXplIDEy
MHgxMjAKKyAgICAgIFttYXNrZXI9Im1hc2siXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFz
a30gYXQgKDAsMCkgc2l6ZSAweDAKICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoNjAsNjAp
IHNpemUgMjF4MTggY29udGFpbnMgMSBjaHVuayhzKQotICAgICAgW21hc2tlcj0ibWFzayJdIFJl
bmRlclNWR1Jlc291cmNlTWFza2VyIHttYXNrfSBhdCAoNTcuOTAsNDQuMjApIHNpemUgMjUuMjB4
MjEuNjAKKyAgICAgIFttYXNrZXI9Im1hc2siXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFz
a30gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgIFJlbmRlclNWR1RTcGFuIHt0c3Bhbn0gYXQgKDAs
MCkgc2l6ZSAyMXgxOAogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAs
LTE0KSBzaXplIDIxeDE4CiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICg2MC4wMCw2
MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgNCB3aWR0aCAyMS4wMDogInRlc3QiCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxs
b2MtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvY3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDU5
MDUwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1leGNlc3Np
dmUtbWFsbG9jLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSw0ICs1LDQgQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21h
c2t9IFtpZD0ibWFzayJdIFttYXNrVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFttYXNrQ29udGVu
dFVuaXRzPXVzZXJTcGFjZU9uVXNlXQogICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkg
c2l6ZSAweDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTTAu
MDAsMC4wMCBMMjE0NzQ4MzY0OC4wMCwwLjAwIEwyMTQ3NDgzNjQ4LjAwLDIxNDc0ODM2NDguMDAg
TDAuMDAsMjE0NzQ4MzY0OC4wMCBaIl0KICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjAwLDIw
MCkgc2l6ZSAxMDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2Rh
dGE9Ik0yMDAuMDAsMjAwLjAwIEwzMDAuMDAsMjAwLjAwIEwzMDAuMDAsNDAwLjAwIEwyMDAuMDAs
NDAwLjAwIFoiXQotICAgICAgW21hc2tlcj0ibWFzayJdIFJlbmRlclNWR1Jlc291cmNlTWFza2Vy
IHttYXNrfSBhdCAoMTkwLDE4MCkgc2l6ZSAyMTQ3NDgzNjQ4MDAuMDB4NDI5NDk2NzI5NjAwLjAw
CisgICAgICBbbWFza2VyPSJtYXNrIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0
ICgxOTAsMTgwKSBzaXplIDIxNDc0ODM1MjB4MjE0NzQ4MzUyMApJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1pbnNpZGUtZGVmcy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1pbnNp
ZGUtZGVmcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDU5MDUwKQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1pbnNpZGUtZGVmcy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTQsNyArNCw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBS
ZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgIFJlbmRlclNWR1Jl
c291cmNlTWFza2VyIHttYXNrfSBbaWQ9Im15bWFzayJdIFttYXNrVW5pdHM9b2JqZWN0Qm91bmRp
bmdCb3hdIFttYXNrQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQogICAgICAgUmVuZGVyUGF0
aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRkZGRkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDEwMC4wMCwwLjAwIEwxMDAuMDAsMTAwLjAw
IEwwLjAwLDEwMC4wMCBaIl0KLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgwLDApIHNp
emUgMjAweDIwMAotICAgICAgW21hc2tlcj0ibXltYXNrIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNr
ZXIge21hc2t9IGF0ICgtMjAsLTIwKSBzaXplIDI0MHgyNDAKKyAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICgwLDApIHNpemUgMTAweDEwMAorICAgICAgW21hc2tlcj0ibXltYXNrIl0gUmVu
ZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0ICgwLDApIHNpemUgMTAweDEwMAogICAgICAg
UmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDIwMC4wMCwwLjAwIEwyMDAu
MDAsMjAwLjAwIEwwLjAwLDIwMC4wMCBaIl0KICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgw
LDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFtk
YXRhPSJNMC4wMCwwLjAwIEwxMDAuMDAsMC4wMCBMMTAwLjAwLDEwMC4wMCBMMC4wMCwxMDAuMDAg
WiJdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWludmFs
aWRhdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy9jdXN0b20vbWFzay1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1
OTA1MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21hc2staW52YWxp
ZGF0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg1MCw1
MCkgc2l6ZSA0NjB4MzE2IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2Rh
dGE9Ik01MC4wMCw1MC4wMCBMNTEwLjAwLDUwLjAwIEw1MTAuMDAsMzY2LjAwIEw1MC4wMCwzNjYu
MDAgWiJdCiAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTAsNTApIHNpemUgNDUzeDI5
OQogICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDUwLDUwKSBzaXplIDQ1M3gyOTkgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTUwLjAwLDUwLjAwIEw1MDMu
MDAsNTAuMDAgTDUwMy4wMCwzNDkuMDAgTDUwLjAwLDM0OS4wMCBaIl0KLSAgICAgICAgW21hc2tl
cj0ibWFzayJdIFJlbmRlclNWR1Jlc291cmNlTWFza2VyIHttYXNrfSBhdCAoLTgwLC02MCkgc2l6
ZSA5NjB4NzIwCisgICAgICAgIFttYXNrZXI9Im1hc2siXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tl
ciB7bWFza30gYXQgKDUwLDUwKSBzaXplIDQ2MHgzMTYKICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0
fSBhdCAoMTQsMjApIHNpemUgODN4MTggY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgUmVuZGVy
U1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA4M3gxOAogICAgICAgICBjaHVu
ayAxIHRleHQgcnVuIDEgYXQgKDE0LjAwLDIwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAx
MSB3aWR0aCA4My4wMDogIk1vdmUgT2JqZWN0IgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy9jdXN0b20vbWFzay13aXRoLWFsbC11bml0cy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay13aXRoLWFsbC11
bml0cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDU5MDUwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy9jdXN0b20vbWFzay13aXRoLWFsbC11bml0cy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTExLDExICsxMSwxMSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDI1MHgyNTAK
ICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDYwLDE3MCkgc2l6ZSA1MHg1MCBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRkZGXSBbb3BhY2l0eT0wLjUwXX1dIFtkYXRhPSJNNjAu
MDAsMTcwLjAwIEwxMTAuMDAsMTcwLjAwIEwxMTAuMDAsMjIwLjAwIEw2MC4wMCwyMjAuMDAgWiJd
CiAgICAgICBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gW2lkPSJtYXNrNCJdIFttYXNr
VW5pdHM9dXNlclNwYWNlT25Vc2VdIFttYXNrQ29udGVudFVuaXRzPW9iamVjdEJvdW5kaW5nQm94
XQogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDF4MSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jRkZGRkZGXSBbb3BhY2l0eT0wLjUwXX1dIFtkYXRhPSJNMC41MCww
LjUwIEwxLjAwLDAuNTAgTDEuMDAsMS4wMCBMMC41MCwxLjAwIFoiXQotICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICgxMCwxMCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDgwMDBdfV0gW2RhdGE9Ik0xMC4wMCwxMC4wMCBMMTEwLjAwLDEwLjAwIEwxMTAuMDAsMTEw
LjAwIEwxMC4wMCwxMTAuMDAgWiJdCi0gICAgICBbbWFza2VyPSJtYXNrMSJdIFJlbmRlclNWR1Jl
c291cmNlTWFza2VyIHttYXNrfSBhdCAoMTAsMTApIHNpemUgMTAweDEwMAotICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICgxMjAsMTApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDA4MDAwXX1dIFtkYXRhPSJNMTIwLjAwLDEwLjAwIEwyMjAuMDAsMTAuMDAgTDIyMC4w
MCwxMTAuMDAgTDEyMC4wMCwxMTAuMDAgWiJdCi0gICAgICBbbWFza2VyPSJtYXNrMiJdIFJlbmRl
clNWR1Jlc291cmNlTWFza2VyIHttYXNrfSBhdCAoMTEwLDApIHNpemUgMTIweDEyMAotICAgIFJl
bmRlclBhdGgge3JlY3R9IGF0ICgxMCwxNzApIHNpemUgMTAweDUwIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSMwMDgwMDBdfV0gW2RhdGE9Ik0xMC4wMCwxMjAuMDAgTDExMC4wMCwxMjAuMDAg
TDExMC4wMCwyMjAuMDAgTDEwLjAwLDIyMC4wMCBaIl0KLSAgICAgIFttYXNrZXI9Im1hc2szIl0g
UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0ICgwLDE3MCkgc2l6ZSAxMjB4MTIwCi0g
ICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEyMCwxMjApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFtkYXRhPSJNMTIwLjAwLDEyMC4wMCBMMjIwLjAw
LDEyMC4wMCBMMjIwLjAwLDIyMC4wMCBMMTIwLjAwLDIyMC4wMCBaIl0KLSAgICAgIFttYXNrZXI9
Im1hc2s0Il0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0ICgxMjAsMTIwKSBzaXpl
IDEwMHgxMDAKKyAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjAsNjApIHNpemUgNTB4NTAgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTEwLjAwLDEwLjAwIEwx
MTAuMDAsMTAuMDAgTDExMC4wMCwxMTAuMDAgTDEwLjAwLDExMC4wMCBaIl0KKyAgICAgIFttYXNr
ZXI9Im1hc2sxIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0ICg2MCw2MCkgc2l6
ZSA1MHg1MAorICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxNzAsNjApIHNpemUgNTB4NTAgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTEyMC4wMCwxMC4wMCBM
MjIwLjAwLDEwLjAwIEwyMjAuMDAsMTEwLjAwIEwxMjAuMDAsMTEwLjAwIFoiXQorICAgICAgW21h
c2tlcj0ibWFzazIiXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQgKDE3MCw2MCkg
c2l6ZSA2MHg1MAorICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2MCwxNzApIHNpemUgNTB4NTAg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTEwLjAwLDEyMC4w
MCBMMTEwLjAwLDEyMC4wMCBMMTEwLjAwLDIyMC4wMCBMMTAuMDAsMjIwLjAwIFoiXQorICAgICAg
W21hc2tlcj0ibWFzazMiXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQgKDYwLDE3
MCkgc2l6ZSA1MHg1MAorICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxNzAsMTcwKSBzaXplIDUw
eDUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW2RhdGE9Ik0xMjAuMDAs
MTIwLjAwIEwyMjAuMDAsMTIwLjAwIEwyMjAuMDAsMjIwLjAwIEwxMjAuMDAsMjIwLjAwIFoiXQor
ICAgICAgW21hc2tlcj0ibWFzazQiXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQg
KDE3MCwxNzApIHNpemUgNTB4NTAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcv
Y3VzdG9tL3Jlc291cmNlLWludmFsaWRhdGUtb24tdGFyZ2V0LXVwZGF0ZS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcmVzb3Vy
Y2UtaW52YWxpZGF0ZS1vbi10YXJnZXQtdXBkYXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTkw
NTApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9yZXNvdXJjZS1pbnZh
bGlkYXRlLW9uLXRhcmdldC11cGRhdGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
Miw3ICsxMiw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5kZXJQ
YXRoIHtjaXJjbGV9IGF0ICgwLDApIHNpemUgMXgxIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRkZGRkZdfV0gW2RhdGE9Ik0xLjAwLDAuNTAgTDEuMDAsMC41MyBMMS4wMCwwLjU2IEwwLjk5
LDAuNTkgTDAuOTgsMC42MiBMMC45OCwwLjY1IEwwLjk2LDAuNjggTDAuOTUsMC43MSBMMC45NCww
Ljc0IEwwLjkyLDAuNzcgTDAuOTAsMC43OSBMMC44OSwwLjgyIEwwLjg2LDAuODQgTDAuODQsMC44
NiBMMC44MiwwLjg5IEwwLjc5LDAuOTAgTDAuNzcsMC45MiBMMC43NCwwLjk0IEwwLjcxLDAuOTUg
TDAuNjgsMC45NiBMMC42NSwwLjk4IEwwLjYyLDAuOTggTDAuNTksMC45OSBMMC41NiwxLjAwIEww
LjUzLDEuMDAgTDAuNTAsMS4wMCBMMC40NywxLjAwIEwwLjQ0LDEuMDAgTDAuNDEsMC45OSBMMC4z
OCwwLjk4IEwwLjM1LDAuOTggTDAuMzIsMC45NiBMMC4yOSwwLjk1IEwwLjI2LDAuOTQgTDAuMjMs
MC45MiBMMC4yMSwwLjkwIEwwLjE4LDAuODkgTDAuMTYsMC44NiBMMC4xNCwwLjg0IEwwLjExLDAu
ODIgTDAuMTAsMC43OSBMMC4wOCwwLjc3IEwwLjA2LDAuNzQgTDAuMDUsMC43MSBMMC4wNCwwLjY4
IEwwLjAyLDAuNjUgTDAuMDIsMC42MiBMMC4wMSwwLjU5IEwwLjAwLDAuNTYgTDAuMDAsMC41MyBM
MC4wMCwwLjUwIEwwLjAwLDAuNDcgTDAuMDAsMC40NCBMMC4wMSwwLjQxIEwwLjAyLDAuMzggTDAu
MDIsMC4zNSBMMC4wNCwwLjMyIEwwLjA1LDAuMjkgTDAuMDYsMC4yNiBMMC4wOCwwLjIzIEwwLjEw
LDAuMjEgTDAuMTEsMC4xOCBMMC4xNCwwLjE2IEwwLjE2LDAuMTQgTDAuMTgsMC4xMSBMMC4yMSww
LjEwIEwwLjIzLDAuMDggTDAuMjYsMC4wNiBMMC4yOSwwLjA1IEwwLjMyLDAuMDQgTDAuMzUsMC4w
MiBMMC4zOCwwLjAyIEwwLjQxLDAuMDEgTDAuNDQsMC4wMCBMMC40NywwLjAwIEwwLjUwLDAuMDAg
TDAuNTMsMC4wMCBMMC41NiwwLjAwIEwwLjU5LDAuMDEgTDAuNjIsMC4wMiBMMC42NSwwLjAyIEww
LjY4LDAuMDQgTDAuNzEsMC4wNSBMMC43NCwwLjA2IEwwLjc3LDAuMDggTDAuNzksMC4xMCBMMC44
MiwwLjExIEwwLjg0LDAuMTQgTDAuODYsMC4xNiBMMC44OSwwLjE4IEwwLjkwLDAuMjEgTDAuOTIs
MC4yMyBMMC45NCwwLjI2IEwwLjk1LDAuMjkgTDAuOTYsMC4zMiBMMC45OCwwLjM1IEwwLjk4LDAu
MzggTDAuOTksMC40MSBMMS4wMCwwLjQ0IEwxLjAwLDAuNDcgWiJdCiAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoMCwxMCkgc2l6ZSAxMjF4MzUwCiAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoMTAsMTApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4
MDAwXX1dIFtkYXRhPSJNMTAuMDAsMTAuMDAgTDExMC4wMCwxMC4wMCBMMTEwLjAwLDExMC4wMCBM
MTAuMDAsMTEwLjAwIFoiXQotICAgICAgICBbbWFza2VyPSJtYXNrIl0gUmVuZGVyU1ZHUmVzb3Vy
Y2VNYXNrZXIge21hc2t9IGF0ICgwLDApIHNpemUgMTIweDEyMAorICAgICAgICBbbWFza2VyPSJt
YXNrIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0ICgxMCwxMCkgc2l6ZSAxMDB4
MTAwCiAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTAsMTMwKSBzaXplIDEwMHgxMDAgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTEwLjAwLDEzMC4wMCBM
MTEwLjAwLDEzMC4wMCBMMTEwLjAwLDIzMC4wMCBMMTAuMDAsMjMwLjAwIFoiXQogICAgICAgICBb
Y2xpcFBhdGg9ImNsaXAiXSBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIge2NsaXBQYXRofSBhdCAo
MTAsMTMwKSBzaXplIDEwMHgxMDAKICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDI0MCkg
c2l6ZSAxMjF4MTIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW2RhdGE9
Ik0xMC4wMCwyNTAuMDAgTDExMC4wMCwyNTAuMDAgTDExMC4wMCwzNTAuMDAgTDEwLjAwLDM1MC4w
MCBaIl0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3Zpc2liaWxp
dHktb3ZlcnJpZGUtbWFzay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdmlzaWJpbGl0eS1vdmVycmlkZS1tYXNrLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gNTkwNTApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1
c3RvbS92aXNpYmlsaXR5LW92ZXJyaWRlLW1hc2stZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC02LDggKzYsOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRl
clNWR1Jlc291cmNlTWFza2VyIHttYXNrfSBbaWQ9Im15bWFzayJdIFttYXNrVW5pdHM9b2JqZWN0
Qm91bmRpbmdCb3hdIFttYXNrQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQogICAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMTAwLjAwLDAuMDAgTDEwMC4w
MCwxMDAuMDAgTDAuMDAsMTAwLjAwIFoiXQogICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDAp
IHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRh
PSJNMC4wMCwwLjAwIEwxMDAuMDAsMC4wMCBMMTAwLjAwLDEwMC4wMCBMMC4wMCwxMDAuMDAgWiJd
Ci0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDIwMHgyMDAKLSAgICAg
IFttYXNrZXI9Im15bWFzayJdIFJlbmRlclNWR1Jlc291cmNlTWFza2VyIHttYXNrfSBhdCAoLTIw
LC0yMCkgc2l6ZSAyNDB4MjQwCisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwwKSBz
aXplIDEwMHgxMDAKKyAgICAgIFttYXNrZXI9Im15bWFzayJdIFJlbmRlclNWR1Jlc291cmNlTWFz
a2VyIHttYXNrfSBhdCAoMCwwKSBzaXplIDEwMHgxMDAKICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICgwLDApIHNpemUgMjAweDIwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1d
IFtkYXRhPSJNMC4wMCwwLjAwIEwyMDAuMDAsMC4wMCBMMjAwLjAwLDIwMC4wMCBMMC4wMCwyMDAu
MDAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgMTAweDEwMCBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwx
MDAuMDAsMC4wMCBMMTAwLjAwLDEwMC4wMCBMMC4wMCwxMDAuMDAgWiJdCkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL3RyYW5zZm9ybWVkTWFza0ZhaWxzLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3RyYW5zZm9ybWVkTWFza0ZhaWxzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNTkwNTApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3RyYW5z
Zm9ybWVkTWFza0ZhaWxzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOCw0ICs4LDQg
QEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVj
dH0gYXQgKDEwMCwxMDApIHNpemUgMTUweDE1MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkZGRkZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwxNTAuMDAsMC4wMCBMMTUwLjAwLDE1MC4wMCBM
MC4wMCwxNTAuMDAgWiJdCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEwMCwxMDApIHNpemUg
MTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNMTAw
LjAwLDEwMC4wMCBMMjAwLjAwLDEwMC4wMCBMMjAwLjAwLDIwMC4wMCBMMTAwLjAwLDIwMC4wMCBa
Il0KICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTAwLDEwMCkgc2l6ZSAxMDB4MTAwIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW2RhdGE9Ik0xMDAuMDAsMTAwLjAwIEwy
MDAuMDAsMTAwLjAwIEwyMDAuMDAsMjAwLjAwIEwxMDAuMDAsMjAwLjAwIFoiXQotICAgICAgW21h
c2tlcj0ibWFzayJdIFJlbmRlclNWR1Jlc291cmNlTWFza2VyIHttYXNrfSBhdCAoOTAsOTApIHNp
emUgMTIweDEyMAorICAgICAgW21hc2tlcj0ibWFzayJdIFJlbmRlclNWR1Jlc291cmNlTWFza2Vy
IHttYXNrfSBhdCAoMTAwLDEwMCkgc2l6ZSAxMTB4MTEwCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>