<?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>141439</bug_id>
          
          <creation_ts>2015-02-10 11:27:48 -0800</creation_ts>
          <short_desc>Scroll to make the video element visible when exiting fullscreen.</short_desc>
          <delta_ts>2015-05-04 11:14:23 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</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>1</everconfirmed>
          <reporter name="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1068104</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-02-10 11:27:48 -0800</bug_when>
    <thetext>Scroll element visible when exiting fullscreen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068106</commentid>
    <comment_count>1</comment_count>
      <attachid>246333</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-02-10 11:50:19 -0800</bug_when>
    <thetext>Created attachment 246333
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068107</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-10 11:52:25 -0800</bug_when>
    <thetext>Attachment 246333 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.h:94:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 1 in 22 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>1068111</commentid>
    <comment_count>3</comment_count>
      <attachid>246335</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-02-10 12:26:31 -0800</bug_when>
    <thetext>Created attachment 246335
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068113</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-10 12:28:44 -0800</bug_when>
    <thetext>Attachment 246335 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.h:94:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 1 in 22 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>1068428</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-11 11:56:05 -0800</bug_when>
    <thetext>&quot;Scroll element visible when exiting fullscreen.&quot; is so hard to parse.

Do you mean &quot;the scroll element is visible&quot; or &quot;scroll the element to be visible&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069533</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-02-16 12:47:02 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; &quot;Scroll element visible when exiting fullscreen.&quot; is so hard to parse.
&gt; 
&gt; Do you mean &quot;the scroll element is visible&quot; or &quot;scroll the element to be
&gt; visible&quot;?

Second one. Scroll is a verb. I&apos;ll make that less ambiguous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072856</commentid>
    <comment_count>7</comment_count>
      <attachid>247560</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-02-27 15:02:34 -0800</bug_when>
    <thetext>Created attachment 247560
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072857</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-27 15:04:43 -0800</bug_when>
    <thetext>Attachment 247560 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.h:94:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 1 in 21 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>1073498</commentid>
    <comment_count>9</comment_count>
      <attachid>247712</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-02 16:09:44 -0800</bug_when>
    <thetext>Created attachment 247712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073500</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-02 16:11:56 -0800</bug_when>
    <thetext>Attachment 247712 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.h:94:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 1 in 21 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>1074565</commentid>
    <comment_count>11</comment_count>
      <attachid>247964</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-05 10:20:07 -0800</bug_when>
    <thetext>Created attachment 247964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074573</commentid>
    <comment_count>12</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-05 10:37:08 -0800</bug_when>
    <thetext>UIDelegate::UIClient::isPageVisible no longer delegates to WKUIDelegatePrivate and instead implements it based on if the WKView is hidden and is in a window.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074579</commentid>
    <comment_count>13</comment_count>
      <attachid>247964</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-05 10:49:55 -0800</bug_when>
    <thetext>Comment on attachment 247964
Patch

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

&gt; Source/WebCore/dom/Element.h:194
&gt;      void scrollIntoView(bool alignToTop = true);
&gt;      void scrollIntoViewIfNeeded(bool centerIfNeeded = true);
&gt; +    WEBCORE_EXPORT void scrollIntoViewIfNotVisible(bool centerIfNotVisible = true);

Shame we have all these variants. Maybe one with some bit flags would be better long-term.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:1156
&gt; +void WebVideoFullscreenInterfaceAVKit::preparedToReturnToInline(bool visible, IntRect inlineRect)

const IntRect&amp;

&gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:260
&gt; +bool UIDelegate::UIClient::isPageVisible(WebKit::WebPageProxy*)
&gt; +{
&gt; +    return ![m_uiDelegate.m_webView isHidden] &amp;&amp; [m_uiDelegate.m_webView window] != nil;
&gt; +}

We already have PageClient which has isViewVisible() and isViewInWindow(). Not sure why we need new code here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074696</commentid>
    <comment_count>14</comment_count>
      <attachid>248004</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-05 14:58:07 -0800</bug_when>
    <thetext>Created attachment 248004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074697</commentid>
    <comment_count>15</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-05 14:59:08 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 247964 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=247964&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Element.h:194
&gt; &gt;      void scrollIntoView(bool alignToTop = true);
&gt; &gt;      void scrollIntoViewIfNeeded(bool centerIfNeeded = true);
&gt; &gt; +    WEBCORE_EXPORT void scrollIntoViewIfNotVisible(bool centerIfNotVisible = true);
&gt; 
&gt; Shame we have all these variants. Maybe one with some bit flags would be
&gt; better long-term.

I&apos;ll file a bug for this.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:1156
&gt; &gt; +void WebVideoFullscreenInterfaceAVKit::preparedToReturnToInline(bool visible, IntRect inlineRect)
&gt; 
&gt; const IntRect&amp;

Still need to fix this one....

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:260
&gt; &gt; +bool UIDelegate::UIClient::isPageVisible(WebKit::WebPageProxy*)
&gt; &gt; +{
&gt; &gt; +    return ![m_uiDelegate.m_webView isHidden] &amp;&amp; [m_uiDelegate.m_webView window] != nil;
&gt; &gt; +}
&gt; 
&gt; We already have PageClient which has isViewVisible() and isViewInWindow().
&gt; Not sure why we need new code here.

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074698</commentid>
    <comment_count>16</comment_count>
      <attachid>248004</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-05 15:02:56 -0800</bug_when>
    <thetext>Comment on attachment 248004
Patch

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

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:62
&gt; +    void preparedToReturnToInline(bool visible, WebCore::IntRect inlineRect) override;

const IntRect&amp;

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:126
&gt; +void WebVideoFullscreenManagerProxy::preparedToReturnToInline(bool visible, WebCore::IntRect inlineRect)

const IntRect&amp;

&gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm:265
&gt; +    m_page-&gt;send(Messages::WebVideoFullscreenManagerProxy::PreparedToReturnToInline(true, clientRectForElement(m_videoElement.get())), m_page-&gt;pageID());

Not clear what &apos;true&apos; means here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074757</commentid>
    <comment_count>17</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-05 16:53:25 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Comment on attachment 248004 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=248004&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:62
&gt; &gt; +    void preparedToReturnToInline(bool visible, WebCore::IntRect inlineRect) override;
&gt; 
&gt; const IntRect&amp;

Fixed.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:126
&gt; &gt; +void WebVideoFullscreenManagerProxy::preparedToReturnToInline(bool visible, WebCore::IntRect inlineRect)
&gt; 
&gt; const IntRect&amp;

Fixed. And several locations.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm:265
&gt; &gt; +    m_page-&gt;send(Messages::WebVideoFullscreenManagerProxy::PreparedToReturnToInline(true, clientRectForElement(m_videoElement.get())), m_page-&gt;pageID());
&gt; 
&gt; Not clear what &apos;true&apos; means here.

&apos;true&apos; will be replaced by something more meaningful in a later bug fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074758</commentid>
    <comment_count>18</comment_count>
      <attachid>248020</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-05 16:54:13 -0800</bug_when>
    <thetext>Created attachment 248020
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074776</commentid>
    <comment_count>19</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-03-05 17:41:51 -0800</bug_when>
    <thetext>Still breaking Windows:

ScrollBehavior.cpp(50): error C2370: &apos;alignToEdgeIfNotVisible&apos; : redefinition; different storage class (..\rendering\RenderingAllInOne.cpp)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074777</commentid>
    <comment_count>20</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-03-05 17:44:09 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; Still breaking Windows:
&gt; 
&gt; ScrollBehavior.cpp(50): error C2370: &apos;alignToEdgeIfNotVisible&apos; :
&gt; redefinition; different storage class (..\rendering\RenderingAllInOne.cpp)

If you declare it as WEBCORE_EXPORT in the implementation file, it needs to have the same declaration in the header file (or else Windows gets mad). I think it&apos;s usually sufficient to just add it in the header file and not do so in the implementation file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074784</commentid>
    <comment_count>21</comment_count>
      <attachid>248027</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-05 18:17:27 -0800</bug_when>
    <thetext>Created attachment 248027
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074988</commentid>
    <comment_count>22</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-06 10:09:06 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; Still breaking Windows:
&gt; &gt; 
&gt; &gt; ScrollBehavior.cpp(50): error C2370: &apos;alignToEdgeIfNotVisible&apos; :
&gt; &gt; redefinition; different storage class (..\rendering\RenderingAllInOne.cpp)
&gt; 
&gt; If you declare it as WEBCORE_EXPORT in the implementation file, it needs to
&gt; have the same declaration in the header file (or else Windows gets mad). I
&gt; think it&apos;s usually sufficient to just add it in the header file and not do
&gt; so in the implementation file.

I removed that WEBCORE_EXPORT as it was unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075030</commentid>
    <comment_count>23</comment_count>
      <attachid>248027</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-06 11:28:52 -0800</bug_when>
    <thetext>Comment on attachment 248027
Patch for landing.

Clearing flags on attachment: 248027

Committed r181173: &lt;http://trac.webkit.org/changeset/181173&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246333</attachid>
            <date>2015-02-10 11:50:19 -0800</date>
            <delta_ts>2015-02-10 12:26:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141439-20150210115021.patch</filename>
            <type>text/plain</type>
            <size>23547</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWEyODkwMzI1OGIwOTc0
ODc4N2ZiZTNiNDcxNmJhNTFjZTk1OTRkZi4uMzNjOTI2MGJkNmIwMWFhMWFmMDcwMDZhZjIwMWRh
Njk4YjgyMjNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAyLTEwICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgZWxlbWVudCB2
aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2NyZWVuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCB3aWxsIHNjcm9sbCB0aGUgZWxlbWVu
dCBzbyBpdCBpcyB2aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2NyZWVuLAorICAgICAgICBidXQg
b25seSBpZiB0aGUgZWxlbWVudCBpcyBjb21wbGV0ZWx5IHNjcm9sbGVkIG9mZiBzY3JlZW4uCisg
ICAgICAgIEFsc28gdXBkYXRlIHRoZSBlbGVtZW50IHNjcmVlbiByZWN0IHNvIGV4aXQgYW5pbWF0
aW9uIGdvZXMgdG8gdGhlIGNvcnJlY3QgbG9jYXRpb24uCisKKyAgICAgICAgKiBXZWJDb3JlLmV4
cC5pbjoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpzY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZSk6IEFkZGVkLgorICAgICAgICAqIGRvbS9F
bGVtZW50Lmg6IEFkZCBkZWNsYXJhdGlvbiBmb3Igc2Nyb2xsSW50b1ZpZXdJZk5vdFZpc2libGUu
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktp
dC5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBmdWxsc2NyZWVu
TWF5UmV0dXJuVG9JbmxpbmVdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW06CisgICAgICAgICgtW1dlYkFWUGxheWVyQ29udHJv
bGxlciBwbGF5ZXJWaWV3Q29udHJvbGxlcjpyZXN0b3JlVXNlckludGVyZmFjZUZvck9wdGltaXpl
ZEZ1bGxzY3JlZW5TdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6
CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb1Jl
dHVyblRvSW5saW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuY3BwOgor
ICAgICAgICAqIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oOgorCiAyMDE1LTAyLTEwICBKdWxp
ZW4gSXNvcmNlICA8ai5pc29yY2VAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmVuZGVyOiBwcm9w
ZXJseSB1cGRhdGUgYm9keSdzIGJhY2tncm91bmQgaW1hZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjYzE3MzY3
ZTExY2M0YzBhYjU2MTRmMTFmYmU3ZmMyYWM2NTVkZDQ1Li5iZTY3ZDJkYzk1YTc4ODJjMDEyMWFl
Y2RjMzhiMGI4MDkwMGY0YWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTUtMDIt
MTAgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9sbCBl
bGVtZW50IHZpc2libGUgd2hlbiBleGl0aW5nIGZ1bGxzY3JlZW4uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE0MzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHdpbGwgcmVzdG9yZSBp
bnRlcmZhY2Ugc3RhdGUgd2hlbiBleGl0aW5nIGZ1bGxzY3JlZW4uCisgICAgICAgIEFkZHMgaXNQ
YWdlVmlzaWJsZSBzbyBzY3JvbGxpbmcgb25seSBoYXBwZW5zIGlmIHRoZSBwYWdlIGlzIG5vdCB2
aXNpYmxlLgorICAgICAgICBBZGRzIHByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSB0byBjb250aW51
ZSBleGl0aW5nIG9uY2UgdGhlIGludGVyZmFjZSBpcyB1cGRhdGVkLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOiBBZGQgaXNQYWdlVmlzaWJsZQorICAgICAgICAoQVBJ
OjpVSUNsaWVudDo6aXNQYWdlVmlzaWJsZSk6IGRpdHRvCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6IGRpdHRvCisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUuaDogZGl0dG8KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVsZWdh
dGUpOiBkaXR0bworICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQYWdl
VmlzaWJsZSk6IGFkZGVkCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNQYWdlVmlzaWJsZSk6IGFkZGVkCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOiBkaXR0bworICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUpOiBhZGRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5UmV0
dXJuVG9JbmxpbmUpOgorCiAyMDE1LTAyLTEwICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBOU0RhdGEgb3ZlciByZXRhaW4gaW4gV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyIGxvYWREYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGMw
MDM3MzA2ODY0MDRhMTk3ZTlhNDkxNTU4MzlmMzI2MGEzZTgxZjMuLjYyODQ0ZTBmOThkZTc0OTMw
YTBhMjc1YjJiNjk3NDJlMWFlYjc5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xMzcwLDYg
KzEzNzAsNyBAQCBfX1pON1dlYkNvcmU3RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTjNXVEYxMkF0
b21pY1N0cmluZ0VTNF9SaQogX19aTjdXZWJDb3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS05T
XzEzUXVhbGlmaWVkTmFtZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU3RWxl
bWVudDE2Y3JlYXRlU2hhZG93Um9vdEVSaQogX19aTjdXZWJDb3JlN0VsZW1lbnQyMWJvdW5kc0lu
Um9vdFZpZXdTcGFjZUV2CitfX1pON1dlYkNvcmU3RWxlbWVudDI2c2Nyb2xsSW50b1ZpZXdJZk5v
dFZpc2libGVFYgogX19aTjdXZWJDb3JlN0VsZW1lbnQ5aW5uZXJUZXh0RXYKIF9fWk43V2ViQ29y
ZTdFbGVtZW50OXNldFBzZXVkb0VSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU3
SW50UmVjdDVzY2FsZUVmCkBAIC0zNDkwLDYgKzM0OTEsNyBAQCBfX1pON1dlYkNvcmUzMldlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTdzZXRTZWVrYWJsZVJhbmdlc0VSS05TXzEwVGlt
ZVJhbgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE4c2V0
VmlkZW9EaW1lbnNpb25zRWJmZgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDE5c2V0RXh0ZXJuYWxQbGF5YmFja0ViTlNfMjdXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2UyNkV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlRU4zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQyMXNldENhblBsYXlGYXN0
UmV2ZXJzZUViCitfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
MjRwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmVFYk5TXzdJbnRSZWN0RQogX19aTjdXZWJDb3JlMzJX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDI2c2V0V2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWxFUE5TXzIzV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxFCiBfX1pON1dlYkNvcmUzMldlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MjhyZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuRXYK
IF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQyOXNldEF1ZGlv
TWVkaWFTZWxlY3Rpb25PcHRpb25zRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVOUzFf
MTVDcmFzaE9uT3ZlcmZsb3dFRUV5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNjRmZDc5NTc4
NTZjNmI2ZTQ2MWRmZjI5NmIwYjU2M2NkZmQwNzZkZS4uZjQ2NWExNzgxMjhkOWI5N2RmNDE4Yzc1
NTViOTU2YmQyMjgzMDVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNjEzLDYgKzYxMywy
MCBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3SWZOZWVkZWQoYm9vbCBjZW50ZXJJZk5l
ZWRlZCkKICAgICAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShib3VuZHMsIFNj
cm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGln
blRvRWRnZUlmTmVlZGVkKTsKIH0KIAordm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTm90
VmlzaWJsZShib29sIGNlbnRlcklmTm90VmlzaWJsZSkKK3sKKyAgICBkb2N1bWVudCgpLnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIAorICAgIGlmICghcmVuZGVy
ZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIExheW91dFJlY3QgYm91bmRzID0gcmVu
ZGVyZXIoKS0+YW5jaG9yUmVjdCgpOworICAgIGlmIChjZW50ZXJJZk5vdFZpc2libGUpCisgICAg
ICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYm91bmRzLCBTY3JvbGxBbGlnbm1l
bnQ6OmFsaWduQ2VudGVySWZOb3RWaXNpYmxlLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVy
SWZOb3RWaXNpYmxlKTsKKyAgICBlbHNlCisgICAgICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RU
b1Zpc2libGUoYm91bmRzLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOb3RWaXNpYmxl
LCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOb3RWaXNpYmxlKTsKK30KKyAgICAKIHZv
aWQgRWxlbWVudDo6c2Nyb2xsQnlVbml0cyhpbnQgdW5pdHMsIFNjcm9sbEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5KQogewogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBmOTExNWJmZDQwMTIwNDc4ZTAzMDYy
YmExMGMwOWI2OTFjMzdiOTZjLi41MzcyMTE3NDVhZTRkYzlhMWQ4MzdkNmFkNGU3YmMxZDg2ZDEw
ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTE5MSw2ICsxOTEsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNjcm9sbEludG9WaWV3KGJvb2wgYWxpZ25Ub1RvcCA9IHRydWUpOwogICAgIHZvaWQg
c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChib29sIGNlbnRlcklmTmVlZGVkID0gdHJ1ZSk7CisgICAg
dm9pZCBzY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZShib29sIGNlbnRlcklmTm90VmlzaWJsZSA9
IHRydWUpOwogCiAgICAgdm9pZCBzY3JvbGxCeUxpbmVzKGludCBsaW5lcyk7CiAgICAgdm9pZCBz
Y3JvbGxCeVBhZ2VzKGludCBwYWdlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpp
bmRleCAxNTFhMWMwNjc5YTY1M2FhZGMyNTFkZDIwNGM4ODc5ODhjNzI2MTRmLi5hODY1MzgwNGE2
ODUyZmQwMWFmYWQ4ZmRhZDk0ZGQ2MzUxYWFkZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
QVZLaXQubW0KQEAgLTE4Myw2ICsxODMsNyBAQCBwdWJsaWM6CiAKIC0gKHZvaWQpZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lCiB7CisgICAgX2ludGVyZmFjZS0+cHJlcGFyZWRUb1JldHVyblRv
SW5saW5lKHRydWUsIF92aWRlb0VsZW1lbnQtPmNsaWVudFJlY3QoKSk7CiB9CiAKIEBlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggMDdhOWY5MDA2N2ZjN2QzZmRhNDUwMGYxYjM4
OWE4MzI0NGQwYjE0Ny4uOTkzNTM3N2Q1MzQzYWNjNjNiM2MzMzg0ZjAyODA2MGYyYzkwZGNjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTkwLDExICs5MCwxMiBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNsZWFudXBGdWxsc2NyZWVuKCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9v
bCB2aXNpYmxlLCBJbnRSZWN0IGlubGluZVJlY3QpOwogCiAgICAgSFRNTE1lZGlhRWxlbWVudDo6
VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CiAgICAg
dm9pZCBzZXRJc09wdGltaXplZChib29sKTsKICAgICBib29sIG1heUF1dG9tYXRpY2FsbHlTaG93
VmlkZW9PcHRpbWl6ZWQoKTsKLSAgICBib29sIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgp
OworICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7CiAKIHByb3RlY3RlZDoK
ICAgICB2b2lkIGJlZ2luU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCmlu
ZGV4IDUxNzRkZmJmMjM3ODE4OWYwNjFlYzdkYWE4YzZjNGQ2YmFiY2ViMWQuLjc4NDI5MTJmMGRi
MGI5MzQ2MmE5ZjdhMjM3YTM5MWY1ZGMzMmY5ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQubW0KQEAgLTEyOCw2ICsxMjgsOCBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlhLCBr
Q01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogQHByb3BlcnR5IEFWUGxheWVyQ29udHJvbGxlckV4
dGVybmFsUGxheWJhY2tUeXBlIGV4dGVybmFsUGxheWJhY2tUeXBlOwogQHByb3BlcnR5IChyZXRh
aW4pIE5TU3RyaW5nICpleHRlcm5hbFBsYXliYWNrQWlyUGxheURldmljZUxvY2FsaXplZE5hbWU7
CiAKK0Bwcm9wZXJ0eSAoY29weSkgdm9pZCAoXmV4aXRPcHRpbWl6ZWRDYWxsYmFjaykoQk9PTCBy
ZXN0b3JlZCk7CisKIC0gKEJPT0wpcGxheWVyVmlld0NvbnRyb2xsZXI6KEFWUGxheWVyVmlld0Nv
bnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxlciBzaG91bGRFeGl0RnVsbFNjcmVlbldpdGhS
ZWFzb246KEFWUGxheWVyVmlld0NvbnRyb2xsZXJFeGl0RnVsbFNjcmVlblJlYXNvbilyZWFzb247
CiBAZW5kCiAKQEAgLTIxNCw3ICsyMTYsOCBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlh
LCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogLSAodm9pZClwbGF5ZXJWaWV3Q29udHJvbGxl
cjooQVZQbGF5ZXJWaWV3Q29udHJvbGxlciAqKXBsYXllclZpZXdDb250cm9sbGVyIHJlc3RvcmVV
c2VySW50ZXJmYWNlRm9yT3B0aW1pemVkRnVsbHNjcmVlblN0b3BXaXRoQ29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKEJPT0wgcmVzdG9yZWQpKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgVU5V
U0VEX1BBUkFNKHBsYXllclZpZXdDb250cm9sbGVyKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihz
ZWxmLmZ1bGxzY3JlZW5JbnRlcmZhY2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpKTsK
KyAgICBzZWxmLmV4aXRPcHRpbWl6ZWRDYWxsYmFjayA9IGNvbXBsZXRpb25IYW5kbGVyOworICAg
IHNlbGYuZnVsbHNjcmVlbkludGVyZmFjZS0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7
CiB9CiAKIC0gKHZvaWQpcGxheWVyVmlld0NvbnRyb2xsZXJXaWxsQ2FuY2VsT3B0aW1pemVkRnVs
bHNjcmVlOihBVlBsYXllclZpZXdDb250cm9sbGVyICopcGxheWVyVmlld0NvbnRyb2xsZXIKQEAg
LTExNTIsNiArMTE1NSwyOCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpyZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCkKICAgICAgICAgbV92aWRlb0Z1bGxzY3Jl
ZW5Nb2RlbC0+cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCk7CiB9CiAKK3ZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpCit7Cisg
ICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQorICAgICAgICBtX2Z1bGxzY3JlZW5D
aGFuZ2VPYnNlcnZlci0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7Cit9CisKK3ZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGlu
ZShib29sIHZpc2libGUsIEludFJlY3QgaW5saW5lUmVjdCkKK3sKKyAgICBSZWZQdHI8V2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHN0cm9uZ1RoaXModGhpcyk7CisgICAgZGlzcGF0
Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3N0cm9uZ1RoaXMsIHZpc2libGUs
IGlubGluZVJlY3RdIHsKKyAgICAgICAgaWYgKHN0cm9uZ1RoaXMtPm1fcGxheWVyQ29udHJvbGxl
ci5nZXQoKS5leGl0T3B0aW1pemVkQ2FsbGJhY2spIHsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgaWYgKHN0cm9uZ1RoaXMtPm1fdmlld0NvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgW3N0
cm9uZ1RoaXMtPm1fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10uZnJhbWUgPSBbc3Ryb25nVGhp
cy0+bV9wYXJlbnRWaWV3IGNvbnZlcnRSZWN0OmlubGluZVJlY3QgdG9WaWV3Om5pbF07CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgW3N0cm9uZ1RoaXMtPm1fcGxheWVyVmlld0Nv
bnRyb2xsZXIgdmlld10uZnJhbWUgPSBpbmxpbmVSZWN0OworICAgICAgICAgICAgCisgICAgICAg
ICAgICBzdHJvbmdUaGlzLT5tX3BsYXllckNvbnRyb2xsZXIuZ2V0KCkuZXhpdE9wdGltaXplZENh
bGxiYWNrKHZpc2libGUpOworICAgICAgICB9CisgICAgfSk7Cit9CisKIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldElzT3B0aW1pemVkKGJvb2wgYWN0aXZlKQogewog
ICAgIGlmIChtX21vZGUgJiBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3Rh
bmRhcmQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhh
dmlvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuY3BwCmlu
ZGV4IGI1OGIzMzE4NGU2YWYyZGI0NTE3ZTRlM2Q2YWNmOTk4MjYwOGYwNmYuLmRhNjVkYWM1N2Qx
ODRjMGUzYzdlZWUyZTZkNDE3NzkxYzc1Y2RkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1Njcm9sbEJlaGF2aW9yLmNwcApAQCAtNDYsNiArNDYsOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NvbnN0IFNjcm9sbEFsaWdubWVudCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2Vu
dGVySWZOb3RWaXNpYmxlID0geyBub1Njcm9sbCwgYWxpZ25DZW50ZXIsIG5vU2Nyb2xsIH07CitX
RUJDT1JFX0VYUE9SVCBjb25zdCBTY3JvbGxBbGlnbm1lbnQgU2Nyb2xsQWxpZ25tZW50OjphbGln
blRvRWRnZUlmTm90VmlzaWJsZSA9IHsgbm9TY3JvbGwsIGFsaWduVG9DbG9zZXN0RWRnZSwgbm9T
Y3JvbGwgfTsKIGNvbnN0IFNjcm9sbEFsaWdubWVudCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2Vu
dGVySWZOZWVkZWQgPSB7IG5vU2Nyb2xsLCBhbGlnbkNlbnRlciwgYWxpZ25Ub0Nsb3Nlc3RFZGdl
IH07CiBXRUJDT1JFX0VYUE9SVCBjb25zdCBTY3JvbGxBbGlnbm1lbnQgU2Nyb2xsQWxpZ25tZW50
OjphbGlnblRvRWRnZUlmTmVlZGVkID0geyBub1Njcm9sbCwgYWxpZ25Ub0Nsb3Nlc3RFZGdlLCBh
bGlnblRvQ2xvc2VzdEVkZ2UgfTsKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFNjcm9sbEFsaWdubWVu
dCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVyQWx3YXlzID0geyBhbGlnbkNlbnRlciwgYWxp
Z25DZW50ZXIsIGFsaWduQ2VudGVyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvU2Nyb2xsQmVoYXZpb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxC
ZWhhdmlvci5oCmluZGV4IDI3MmJjZTNmYWEyMGFjZDNjYTUzOTRiNDU3N2Q4YTVjMzQyNTNkNzAu
LjY5NDIxYWNjNGY2MTI5ZWRiMDIxMmFmYjhhNzI2ZTQwNjBhMTkwNjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oCkBAIC02MSw2ICs2MSw4IEBAIHN0cnVjdCBT
Y3JvbGxBbGlnbm1lbnQgewogICAgIHN0YXRpYyBTY3JvbGxCZWhhdmlvciBnZXRQYXJ0aWFsQmVo
YXZpb3IoY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBzKSB7IHJldHVybiBzLm1fcmVjdFBhcnRpYWw7
IH0KICAgICBzdGF0aWMgU2Nyb2xsQmVoYXZpb3IgZ2V0SGlkZGVuQmVoYXZpb3IoY29uc3QgU2Ny
b2xsQWxpZ25tZW50JiBzKSB7IHJldHVybiBzLm1fcmVjdEhpZGRlbjsgfQogCisgICAgc3RhdGlj
IGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnbkNlbnRlcklmTm90VmlzaWJsZTsKKyAgICBzdGF0
aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWduVG9FZGdlSWZOb3RWaXNpYmxlOwogICAgIHN0
YXRpYyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25DZW50ZXJJZk5lZWRlZDsKICAgICBzdGF0
aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWduVG9FZGdlSWZOZWVkZWQ7CiAgICAgc3RhdGlj
IGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnbkNlbnRlckFsd2F5czsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCBjZjFlYWYyOWZiYWNlYTIwMmQzYzE2
ZWNiN2EyMmQ2ODRmMzNkMTBlLi5hN2U0OWM4N2Q4MjY4MDA5MmRmNjRkN2Y5Y2MyMjRiOGM5YmUw
ZGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC03
Miw2ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViS2l0OjpXZWJQ
YWdlUHJveHk+IGNyZWF0ZU5ld1BhZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6Oldl
YkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJD
b3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEm
KSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dQYWdlKFdlYktpdDo6
V2ViUGFnZVByb3h5KikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZShXZWJLaXQ6OldlYlBhZ2VQcm94eSopIHsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1Bh
Z2VWaXNpYmxlKFdlYktpdDo6V2ViUGFnZVByb3h5KikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQYWdlUHJveHkq
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVn
YXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVs
ZWdhdGVQcml2YXRlLmgKaW5kZXggYmZkY2VmZWI0MDQ1ZTliN2EzYjBhNTJlZmI4ZjZiNjc4NDZh
YTczYS4uY2UxOWM1ZDNjMjFkOWM3YmQ0ZDRmNjBhOTAxMzY0ZmQ4NTgyNzhlMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQ
cml2YXRlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAKIAogLSAodm9pZClfd2ViVmlld0Nsb3NlOihXS1dl
YlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClfd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lu
bGluZTooV0tXZWJWaWV3ICopd2ViVmlldzsKKy0gKEJPT0wpX3dlYlZpZXdJc1BhZ2VWaXNpYmxl
OihXS1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClfd2ViVmlld0RpZEVudGVyRnVsbHNjcmVl
bjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RC
QSk7CiAtICh2b2lkKV93ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZp
ZXcgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCA2MzdiYWYwMmMzMzQ1OGE1ODI5
NTIwMDBhMmYzNTc1NTJiYjE2MDMyLi5kMDcyMTViYTRjMzdhZGJkZWFlOGYwZGQwYmRkYjlkYTdm
ZWVjYmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgK
QEAgLTYxLDYgKzYxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdl
YktpdDo6V2ViUGFnZVByb3h5PiBjcmVhdGVOZXdQYWdlKFdlYktpdDo6V2ViUGFnZVByb3h5Kiwg
V2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJLaXQ6Ok5hdmlnYXRpb25B
Y3Rpb25EYXRhJikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjbG9zZShXZWJLaXQ6
OldlYlBhZ2VQcm94eSopIG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKFdlYktpdDo6V2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBpc1BhZ2VWaXNpYmxlKFdlYktpdDo6V2ViUGFnZVByb3h5Kikgb3Zl
cnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oV2ViS2l0OjpX
ZWJQYWdlUHJveHkqKSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxs
c2NyZWVuKFdlYktpdDo6V2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6
OlN0cmluZyYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4g
Y29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRlOwpAQCAtOTAsNiArOTEsNyBAQCBwcml2YXRlOgog
ICAgICAgICBib29sIHdlYlZpZXdQcmludEZyYW1lIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3
Q2xvc2UgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9Jbmxp
bmUgOiAxOworICAgICAgICBib29sIHdlYlZpZXdJc1BhZ2VWaXNpYmxlIDogMTsKICAgICAgICAg
Ym9vbCB3ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3
RGlkRXhpdEZ1bGxzY3JlZW4gOiAxOwogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggODE3NWE3ZWYwZWQxZTk2ZjQ2
ZDVmZjYzYjRmZjBkY2NlYWEwM2JhMy4uN2MwZTkxMDVmMjM0ZmMzNDM4MDc5ZjJhMTAwYzQzMTY3
YjFkMzg3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0KQEAgLTczLDYgKzczLDcgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tV
SURlbGVnYXRlPiBkZWxlZ2F0ZSkKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UHJpbnRG
cmFtZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnBy
aW50RnJhbWU6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Nsb3NlID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdDbG9zZTopXTsKICAgICBt
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdGdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmU6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0lzUGFnZVZp
c2libGUgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0lz
UGFnZVZpc2libGU6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVudGVyRnVs
bHNjcmVlbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3
RGlkRW50ZXJGdWxsc2NyZWVuOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRF
eGl0RnVsbHNjcmVlbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93
ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW46KV07CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMjU0LDYg
KzI1NSwxOCBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpmdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmUoV2ViS2l0OjpXZWJQYWdlUHJveHkqKQogICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVBy
aXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3RnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lOm1fdWlE
ZWxlZ2F0ZS5tX3dlYlZpZXddOwogfQogCitib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1Bh
Z2VWaXNpYmxlKFdlYktpdDo6V2ViUGFnZVByb3h5KikKK3sKKyAgICBpZiAoIW1fdWlEZWxlZ2F0
ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SXNQYWdlVmlzaWJsZSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgCisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRl
LmdldCgpOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIAor
ICAgIHJldHVybiBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlld0lz
UGFnZVZpc2libGU6bV91aURlbGVnYXRlLm1fd2ViVmlld107Cit9CisKIHZvaWQgVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OmRpZEVudGVyRnVsbHNjcmVlbihXZWJLaXQ6OldlYlBhZ2VQcm94eSopCiB7
CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVudGVy
RnVsbHNjcmVlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggYTg0YTNmYTIyMmVhYjg4MDBkMDMzYThkNzI0MTE4MTQ4NjkxZjM2Yy4uMWYyY2NkNjY3OGZj
YmNlNzc4MWRjMTgyNDc5MDVhOGU1ZTM0ODZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTMyNTQsNiArMzI1NCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkKICAgICBtX3VpQ2xpZW50LT5mdWxsc2Ny
ZWVuTWF5UmV0dXJuVG9JbmxpbmUodGhpcyk7CiB9CiAKK2Jvb2wgV2ViUGFnZVByb3h5Ojppc1Bh
Z2VWaXNpYmxlKCkKK3sKKyAgICByZXR1cm4gbV91aUNsaWVudC0+aXNQYWdlVmlzaWJsZSh0aGlz
KTsKK30KKyAgICAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRFbnRlckZ1bGxzY3JlZW4oKQogewog
ICAgIG1fdWlDbGllbnQtPmRpZEVudGVyRnVsbHNjcmVlbih0aGlzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyNGQ5ZTJmNzgyN2Q2N2Y2Mjk3NzkyMDI1YmIy
OGMwY2YyODBhMWI3Li4zNzQzMmQ4NjZhZGM1OTAzZjYwZDgzODY0MDRjOTA3MmFmYTAzNjViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yODYsNiArMjg2LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0QWRkc1Zpc2l0ZWRMaW5rcyhib29sIGFkZHNWaXNpdGVk
TGlua3MpIHsgbV9hZGRzVmlzaXRlZExpbmtzID0gYWRkc1Zpc2l0ZWRMaW5rczsgfQogCiAgICAg
dm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKKyAgICBib29sIGlzUGFnZVZpc2li
bGUoKTsKICAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpOwogICAgIHZvaWQgZGlkRXhpdEZ1
bGxzY3JlZW4oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggYTBjYWZjY2Q4OTE2
YjY4NWMwZDUxYzYyNGM0M2QwNGMzYzZmMWYxYy4uOGFjNmI0ODU1YjQxYmY4ZTM1OTFkMzFhNDhj
MDU5MThmNzVjMDQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC01OSw3ICs1OSw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRTZWVrYWJsZVJhbmdlc1ZlY3Rvcihjb25zdCBWZWN0
b3I8c3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4mKTsKICAgICB2b2lkIHNldEV4dGVybmFsUGxh
eWJhY2tQcm9wZXJ0aWVzKGJvb2wgZW5hYmxlZCwgdWludDMyX3QgdGFyZ2V0VHlwZSwgU3RyaW5n
IGxvY2FsaXplZERldmljZU5hbWUpOwogICAgIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92ZXJyaWRlOwot
ICAgIAorICAgIHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgV2Vi
Q29yZTo6SW50UmVjdCBpbmxpbmVSZWN0KSBvdmVycmlkZTsKKwogICAgIC8vIEZ1bGxzY3JlZW4g
T2JzZXJ2ZXIKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiNzYzYjAzODczOTg0
NjVlZTVjNTczNzc3NjZjZDYyNzg0OGZmNzMwLi5jNzI4YzBiYmM4YjZhMjIzZGNjNWU5ZjA0N2Iy
OGMwYTc1ZmZhNDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgpAQCAtMzYsNSArMzYsNiBAQCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkgewogICAgIEVudGVyRnVsbHNjcmVlbigpCiAgICAgRXhpdEZ1bGxzY3JlZW4oV2Vi
Q29yZTo6SW50UmVjdCBmaW5hbFJlY3QpCiAgICAgQ2xlYW51cEZ1bGxzY3JlZW4oKQorICAgIFBy
ZXBhcmVkVG9SZXR1cm5Ub0lubGluZShib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5s
aW5lUmVjdCkKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCAzY2Fm
YWMxYjU3NjA5ZTFjN2E4N2U0NDg0OGU2YWQ3ZDRmMzhmNDIwLi5lZTM3N2U5YTg0ODI5NjcyNThm
MTNiMTYwY2FlOGQ1ZTI5OTAxNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAt
MTE5LDcgKzExOSwxNCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0
RXh0ZXJuYWxQbGF5YmFja1Byb3BlcnRpZXMoYm9vbCBlbmFibGVkLAogICAgIAogdm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgp
CiB7CisgICAgYm9vbCBpc1BhZ2VWaXNpYmxlID0gbV9wYWdlLT5pc1BhZ2VWaXNpYmxlKCk7Cisg
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpGdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoaXNQYWdlVmlzaWJsZSksIG1fcGFnZS0+cGFnZUlEKCkp
OworfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVk
VG9SZXR1cm5Ub0lubGluZShib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVj
dCkKK3sKICAgICBtX3BhZ2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOworICAgIFdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUo
dmlzaWJsZSwgaW5saW5lUmVjdCk7CiB9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpyZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IDRm
NTM2YTY3NDkwYmJhN2NmMWU0YTA0MTRiNjhmYTE5NWQ3NDI1ODkuLjMzNGVhZWNjNzQ2YTY2NzEz
MWM1ODY5MGEwMWFiOTAxMGI3YWQxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTg2LDYgKzg2
LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odW5zaWduZWQpOworICAgIHZpcnR1YWwgdm9pZCBm
dWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoYm9vbCBpc1BhZ2VWaXNpYmxlKTsKICAgICB2b2lk
IHNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzLCBJUEM6
OkF0dGFjaG1lbnQgZmVuY2VQb3J0KTsKICAgICAKICAgICBXZWJQYWdlKiBtX3BhZ2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBhOTg4NmZiZDRlZDc1OWQyZGU3
ZjkyMjk3ODZmM2RmYjdiMGU1ZTg2Li5kM2M2OGEzNjZjZjgxNTRlZGRkYjE4NmRkMmU2YzkzNDdm
ZGE1MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTQyLDUg
KzQyLDYgQEAgbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciB7CiAgICAgU2Vs
ZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkKICAgICBTZWxlY3RMZWdpYmxlTWVk
aWFPcHRpb24odWludDY0X3QgaW5kZXgpCiAgICAgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVu
TW9kZSkKKyAgICBGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoYm9vbCBpc1BhZ2VWaXNpYmxl
KQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCAwNGE0NjA0MGE0Y2NlMGMxMTBk
NzE5YzI3OTBmNDUwZmUwY2QwZjZiLi45Y2VlYjhiZWNlZDM3ODIyYzhmNTFjOGJlZjEzMmU3ZGU2
YTZhOWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTI1OCw2ICsyNTgsMTMgQEAgdm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odW5zaWdu
ZWQgZ3Jhdml0eSkKICAgICBzZXRWaWRlb0xheWVyR3Jhdml0eSgoV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWw6OlZpZGVvR3Jhdml0eSlncmF2aXR5KTsKIH0KICAgICAKK3ZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKGJvb2wgaXNQYWdlVmlz
aWJsZSkKK3sKKyAgICBpZiAoIWlzUGFnZVZpc2libGUpCisgICAgICAgIG1fdmlkZW9FbGVtZW50
LT5zY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZShmYWxzZSk7CisgICAgbV9wYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlByZXBhcmVkVG9SZXR1cm5U
b0lubGluZSh0cnVlLCBjbGllbnRSZWN0Rm9yRWxlbWVudChtX3ZpZGVvRWxlbWVudC5nZXQoKSkp
LCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6c2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMs
IElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCiB7CiAgICAgaWYgKG1fbGF5ZXJIb3N0aW5nQ29u
dGV4dCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246335</attachid>
            <date>2015-02-10 12:26:31 -0800</date>
            <delta_ts>2015-02-27 15:02:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141439-20150210122634.patch</filename>
            <type>text/plain</type>
            <size>24118</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWEyODkwMzI1OGIwOTc0
ODc4N2ZiZTNiNDcxNmJhNTFjZTk1OTRkZi4uMzNjOTI2MGJkNmIwMWFhMWFmMDcwMDZhZjIwMWRh
Njk4YjgyMjNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAyLTEwICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgZWxlbWVudCB2
aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2NyZWVuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCB3aWxsIHNjcm9sbCB0aGUgZWxlbWVu
dCBzbyBpdCBpcyB2aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2NyZWVuLAorICAgICAgICBidXQg
b25seSBpZiB0aGUgZWxlbWVudCBpcyBjb21wbGV0ZWx5IHNjcm9sbGVkIG9mZiBzY3JlZW4uCisg
ICAgICAgIEFsc28gdXBkYXRlIHRoZSBlbGVtZW50IHNjcmVlbiByZWN0IHNvIGV4aXQgYW5pbWF0
aW9uIGdvZXMgdG8gdGhlIGNvcnJlY3QgbG9jYXRpb24uCisKKyAgICAgICAgKiBXZWJDb3JlLmV4
cC5pbjoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpzY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZSk6IEFkZGVkLgorICAgICAgICAqIGRvbS9F
bGVtZW50Lmg6IEFkZCBkZWNsYXJhdGlvbiBmb3Igc2Nyb2xsSW50b1ZpZXdJZk5vdFZpc2libGUu
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktp
dC5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBmdWxsc2NyZWVu
TWF5UmV0dXJuVG9JbmxpbmVdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW06CisgICAgICAgICgtW1dlYkFWUGxheWVyQ29udHJv
bGxlciBwbGF5ZXJWaWV3Q29udHJvbGxlcjpyZXN0b3JlVXNlckludGVyZmFjZUZvck9wdGltaXpl
ZEZ1bGxzY3JlZW5TdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6
CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb1Jl
dHVyblRvSW5saW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuY3BwOgor
ICAgICAgICAqIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oOgorCiAyMDE1LTAyLTEwICBKdWxp
ZW4gSXNvcmNlICA8ai5pc29yY2VAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmVuZGVyOiBwcm9w
ZXJseSB1cGRhdGUgYm9keSdzIGJhY2tncm91bmQgaW1hZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjYzE3MzY3
ZTExY2M0YzBhYjU2MTRmMTFmYmU3ZmMyYWM2NTVkZDQ1Li5iZTY3ZDJkYzk1YTc4ODJjMDEyMWFl
Y2RjMzhiMGI4MDkwMGY0YWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTUtMDIt
MTAgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9sbCBl
bGVtZW50IHZpc2libGUgd2hlbiBleGl0aW5nIGZ1bGxzY3JlZW4uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE0MzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHdpbGwgcmVzdG9yZSBp
bnRlcmZhY2Ugc3RhdGUgd2hlbiBleGl0aW5nIGZ1bGxzY3JlZW4uCisgICAgICAgIEFkZHMgaXNQ
YWdlVmlzaWJsZSBzbyBzY3JvbGxpbmcgb25seSBoYXBwZW5zIGlmIHRoZSBwYWdlIGlzIG5vdCB2
aXNpYmxlLgorICAgICAgICBBZGRzIHByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSB0byBjb250aW51
ZSBleGl0aW5nIG9uY2UgdGhlIGludGVyZmFjZSBpcyB1cGRhdGVkLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOiBBZGQgaXNQYWdlVmlzaWJsZQorICAgICAgICAoQVBJ
OjpVSUNsaWVudDo6aXNQYWdlVmlzaWJsZSk6IGRpdHRvCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6IGRpdHRvCisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUuaDogZGl0dG8KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVsZWdh
dGUpOiBkaXR0bworICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQYWdl
VmlzaWJsZSk6IGFkZGVkCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNQYWdlVmlzaWJsZSk6IGFkZGVkCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOiBkaXR0bworICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUpOiBhZGRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5UmV0
dXJuVG9JbmxpbmUpOgorCiAyMDE1LTAyLTEwICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBOU0RhdGEgb3ZlciByZXRhaW4gaW4gV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyIGxvYWREYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGMw
MDM3MzA2ODY0MDRhMTk3ZTlhNDkxNTU4MzlmMzI2MGEzZTgxZjMuLjYyODQ0ZTBmOThkZTc0OTMw
YTBhMjc1YjJiNjk3NDJlMWFlYjc5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xMzcwLDYg
KzEzNzAsNyBAQCBfX1pON1dlYkNvcmU3RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTjNXVEYxMkF0
b21pY1N0cmluZ0VTNF9SaQogX19aTjdXZWJDb3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS05T
XzEzUXVhbGlmaWVkTmFtZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU3RWxl
bWVudDE2Y3JlYXRlU2hhZG93Um9vdEVSaQogX19aTjdXZWJDb3JlN0VsZW1lbnQyMWJvdW5kc0lu
Um9vdFZpZXdTcGFjZUV2CitfX1pON1dlYkNvcmU3RWxlbWVudDI2c2Nyb2xsSW50b1ZpZXdJZk5v
dFZpc2libGVFYgogX19aTjdXZWJDb3JlN0VsZW1lbnQ5aW5uZXJUZXh0RXYKIF9fWk43V2ViQ29y
ZTdFbGVtZW50OXNldFBzZXVkb0VSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU3
SW50UmVjdDVzY2FsZUVmCkBAIC0zNDkwLDYgKzM0OTEsNyBAQCBfX1pON1dlYkNvcmUzMldlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTdzZXRTZWVrYWJsZVJhbmdlc0VSS05TXzEwVGlt
ZVJhbgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE4c2V0
VmlkZW9EaW1lbnNpb25zRWJmZgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDE5c2V0RXh0ZXJuYWxQbGF5YmFja0ViTlNfMjdXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2UyNkV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlRU4zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQyMXNldENhblBsYXlGYXN0
UmV2ZXJzZUViCitfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
MjRwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmVFYk5TXzdJbnRSZWN0RQogX19aTjdXZWJDb3JlMzJX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDI2c2V0V2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWxFUE5TXzIzV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxFCiBfX1pON1dlYkNvcmUzMldlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MjhyZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuRXYK
IF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQyOXNldEF1ZGlv
TWVkaWFTZWxlY3Rpb25PcHRpb25zRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVOUzFf
MTVDcmFzaE9uT3ZlcmZsb3dFRUV5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNjRmZDc5NTc4
NTZjNmI2ZTQ2MWRmZjI5NmIwYjU2M2NkZmQwNzZkZS4uZjQ2NWExNzgxMjhkOWI5N2RmNDE4Yzc1
NTViOTU2YmQyMjgzMDVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNjEzLDYgKzYxMywy
MCBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3SWZOZWVkZWQoYm9vbCBjZW50ZXJJZk5l
ZWRlZCkKICAgICAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShib3VuZHMsIFNj
cm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGln
blRvRWRnZUlmTmVlZGVkKTsKIH0KIAordm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTm90
VmlzaWJsZShib29sIGNlbnRlcklmTm90VmlzaWJsZSkKK3sKKyAgICBkb2N1bWVudCgpLnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIAorICAgIGlmICghcmVuZGVy
ZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIExheW91dFJlY3QgYm91bmRzID0gcmVu
ZGVyZXIoKS0+YW5jaG9yUmVjdCgpOworICAgIGlmIChjZW50ZXJJZk5vdFZpc2libGUpCisgICAg
ICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYm91bmRzLCBTY3JvbGxBbGlnbm1l
bnQ6OmFsaWduQ2VudGVySWZOb3RWaXNpYmxlLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVy
SWZOb3RWaXNpYmxlKTsKKyAgICBlbHNlCisgICAgICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RU
b1Zpc2libGUoYm91bmRzLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOb3RWaXNpYmxl
LCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOb3RWaXNpYmxlKTsKK30KKyAgICAKIHZv
aWQgRWxlbWVudDo6c2Nyb2xsQnlVbml0cyhpbnQgdW5pdHMsIFNjcm9sbEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5KQogewogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBmOTExNWJmZDQwMTIwNDc4ZTAzMDYy
YmExMGMwOWI2OTFjMzdiOTZjLi41MzcyMTE3NDVhZTRkYzlhMWQ4MzdkNmFkNGU3YmMxZDg2ZDEw
ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTE5MSw2ICsxOTEsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNjcm9sbEludG9WaWV3KGJvb2wgYWxpZ25Ub1RvcCA9IHRydWUpOwogICAgIHZvaWQg
c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChib29sIGNlbnRlcklmTmVlZGVkID0gdHJ1ZSk7CisgICAg
dm9pZCBzY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZShib29sIGNlbnRlcklmTm90VmlzaWJsZSA9
IHRydWUpOwogCiAgICAgdm9pZCBzY3JvbGxCeUxpbmVzKGludCBsaW5lcyk7CiAgICAgdm9pZCBz
Y3JvbGxCeVBhZ2VzKGludCBwYWdlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpp
bmRleCAxNTFhMWMwNjc5YTY1M2FhZGMyNTFkZDIwNGM4ODc5ODhjNzI2MTRmLi5hODY1MzgwNGE2
ODUyZmQwMWFmYWQ4ZmRhZDk0ZGQ2MzUxYWFkZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
QVZLaXQubW0KQEAgLTE4Myw2ICsxODMsNyBAQCBwdWJsaWM6CiAKIC0gKHZvaWQpZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lCiB7CisgICAgX2ludGVyZmFjZS0+cHJlcGFyZWRUb1JldHVyblRv
SW5saW5lKHRydWUsIF92aWRlb0VsZW1lbnQtPmNsaWVudFJlY3QoKSk7CiB9CiAKIEBlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggMDdhOWY5MDA2N2ZjN2QzZmRhNDUwMGYxYjM4
OWE4MzI0NGQwYjE0Ny4uOTkzNTM3N2Q1MzQzYWNjNjNiM2MzMzg0ZjAyODA2MGYyYzkwZGNjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTkwLDExICs5MCwxMiBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNsZWFudXBGdWxsc2NyZWVuKCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9v
bCB2aXNpYmxlLCBJbnRSZWN0IGlubGluZVJlY3QpOwogCiAgICAgSFRNTE1lZGlhRWxlbWVudDo6
VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CiAgICAg
dm9pZCBzZXRJc09wdGltaXplZChib29sKTsKICAgICBib29sIG1heUF1dG9tYXRpY2FsbHlTaG93
VmlkZW9PcHRpbWl6ZWQoKTsKLSAgICBib29sIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgp
OworICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7CiAKIHByb3RlY3RlZDoK
ICAgICB2b2lkIGJlZ2luU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCmlu
ZGV4IDUxNzRkZmJmMjM3ODE4OWYwNjFlYzdkYWE4YzZjNGQ2YmFiY2ViMWQuLjY2ZjNiZjMzOTQ0
ODM5YTFmZGVjMzdjMGJiZWNmZDYwZTAwZjRkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQubW0KQEAgLTEyOCw2ICsxMjgsOCBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlhLCBr
Q01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogQHByb3BlcnR5IEFWUGxheWVyQ29udHJvbGxlckV4
dGVybmFsUGxheWJhY2tUeXBlIGV4dGVybmFsUGxheWJhY2tUeXBlOwogQHByb3BlcnR5IChyZXRh
aW4pIE5TU3RyaW5nICpleHRlcm5hbFBsYXliYWNrQWlyUGxheURldmljZUxvY2FsaXplZE5hbWU7
CiAKK0Bwcm9wZXJ0eSAoY29weSkgdm9pZCAoXmV4aXRPcHRpbWl6ZWRDYWxsYmFjaykoQk9PTCBy
ZXN0b3JlZCk7CisKIC0gKEJPT0wpcGxheWVyVmlld0NvbnRyb2xsZXI6KEFWUGxheWVyVmlld0Nv
bnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxlciBzaG91bGRFeGl0RnVsbFNjcmVlbldpdGhS
ZWFzb246KEFWUGxheWVyVmlld0NvbnRyb2xsZXJFeGl0RnVsbFNjcmVlblJlYXNvbilyZWFzb247
CiBAZW5kCiAKQEAgLTIxNCwxMyArMjE2LDE1IEBAIFNPRlRfTElOS19DT05TVEFOVChDb3JlTWVk
aWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAtICh2b2lkKXBsYXllclZpZXdDb250cm9s
bGVyOihBVlBsYXllclZpZXdDb250cm9sbGVyICopcGxheWVyVmlld0NvbnRyb2xsZXIgcmVzdG9y
ZVVzZXJJbnRlcmZhY2VGb3JPcHRpbWl6ZWRGdWxsc2NyZWVuU3RvcFdpdGhDb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCAoXikoQk9PTCByZXN0b3JlZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBV
TlVTRURfUEFSQU0ocGxheWVyVmlld0NvbnRyb2xsZXIpOwotICAgIGNvbXBsZXRpb25IYW5kbGVy
KHNlbGYuZnVsbHNjcmVlbkludGVyZmFjZS0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkp
OworICAgIHNlbGYuZXhpdE9wdGltaXplZENhbGxiYWNrID0gY29tcGxldGlvbkhhbmRsZXI7Cisg
ICAgc2VsZi5mdWxsc2NyZWVuSW50ZXJmYWNlLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUo
KTsKIH0KIAogLSAodm9pZClwbGF5ZXJWaWV3Q29udHJvbGxlcldpbGxDYW5jZWxPcHRpbWl6ZWRG
dWxsc2NyZWU6KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxlcgog
ewogICAgIFVOVVNFRF9QQVJBTShwbGF5ZXJWaWV3Q29udHJvbGxlcik7Ci0gICAgQVNTRVJUKHNl
bGYuZGVsZWdhdGUpOworICAgIGlmICghc2VsZi5kZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuCiAg
ICAgc2VsZi5kZWxlZ2F0ZS0+cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCk7CiB9CiAKQEAgLTExNTIs
NiArMTE1NiwyMiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpyZXF1
ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCkKICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2Rl
bC0+cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCk7CiB9CiAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShib29sIHZpc2libGUsIElu
dFJlY3QgaW5saW5lUmVjdCkKK3sKKyAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ+IHN0cm9uZ1RoaXModGhpcyk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSwgW3N0cm9uZ1RoaXMsIHZpc2libGUsIGlubGluZVJlY3RdIHsKKyAg
ICAgICAgaWYgKHN0cm9uZ1RoaXMtPm1fcGxheWVyQ29udHJvbGxlci5nZXQoKS5leGl0T3B0aW1p
emVkQ2FsbGJhY2spIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHN0cm9uZ1RoaXMt
Pm1fdmlld0NvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgW3N0cm9uZ1RoaXMtPm1fcGxheWVy
Vmlld0NvbnRyb2xsZXIgdmlld10uZnJhbWUgPSBbc3Ryb25nVGhpcy0+bV9wYXJlbnRWaWV3IGNv
bnZlcnRSZWN0OmlubGluZVJlY3QgdG9WaWV3Om5pbF07CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgW3N0cm9uZ1RoaXMtPm1fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10uZnJh
bWUgPSBpbmxpbmVSZWN0OworICAgICAgICAgICAgCisgICAgICAgICAgICBzdHJvbmdUaGlzLT5t
X3BsYXllckNvbnRyb2xsZXIuZ2V0KCkuZXhpdE9wdGltaXplZENhbGxiYWNrKHZpc2libGUpOwor
ICAgICAgICB9CisgICAgfSk7Cit9CisKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OnNldElzT3B0aW1pemVkKGJvb2wgYWN0aXZlKQogewogICAgIGlmIChtX21vZGUgJiBI
VE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpIHsKQEAgLTExOTAs
MTAgKzEyMTAsMTAgQEAgYm9vbCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6bWF5
QXV0b21hdGljYWxseVNob3dWaWRlb09wdGltaXplZCgpCiAgICAgcmV0dXJuIFttX3BsYXllckNv
bnRyb2xsZXIgaXNQbGF5aW5nXSAmJiBtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9G
dWxsc2NyZWVuTW9kZVN0YW5kYXJkICYmIHdrSXNPcHRpbWl6ZWRGdWxsc2NyZWVuU3VwcG9ydGVk
KCk7CiB9CiAKLWJvb2wgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSgpCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKQogewotICAgIG1fZnVsbHNjcmVlbkNo
YW5nZU9ic2VydmVyLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAgIG1fZnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVo
YXZpb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmNwcApp
bmRleCBiNThiMzMxODRlNmFmMmRiNDUxN2U0ZTNkNmFjZjk5ODI2MDhmMDZmLi5kYTY1ZGFjNTdk
MTg0YzBlM2M3ZWVlMmU2ZDQxNzc5MWM3NWNkZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9TY3JvbGxCZWhhdmlvci5jcHAKQEAgLTQ2LDYgKzQ2LDggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitjb25zdCBTY3JvbGxBbGlnbm1lbnQgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNl
bnRlcklmTm90VmlzaWJsZSA9IHsgbm9TY3JvbGwsIGFsaWduQ2VudGVyLCBub1Njcm9sbCB9Owor
V0VCQ09SRV9FWFBPUlQgY29uc3QgU2Nyb2xsQWxpZ25tZW50IFNjcm9sbEFsaWdubWVudDo6YWxp
Z25Ub0VkZ2VJZk5vdFZpc2libGUgPSB7IG5vU2Nyb2xsLCBhbGlnblRvQ2xvc2VzdEVkZ2UsIG5v
U2Nyb2xsIH07CiBjb25zdCBTY3JvbGxBbGlnbm1lbnQgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNl
bnRlcklmTmVlZGVkID0geyBub1Njcm9sbCwgYWxpZ25DZW50ZXIsIGFsaWduVG9DbG9zZXN0RWRn
ZSB9OwogV0VCQ09SRV9FWFBPUlQgY29uc3QgU2Nyb2xsQWxpZ25tZW50IFNjcm9sbEFsaWdubWVu
dDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCA9IHsgbm9TY3JvbGwsIGFsaWduVG9DbG9zZXN0RWRnZSwg
YWxpZ25Ub0Nsb3Nlc3RFZGdlIH07CiBXRUJDT1JFX0VYUE9SVCBjb25zdCBTY3JvbGxBbGlnbm1l
bnQgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlckFsd2F5cyA9IHsgYWxpZ25DZW50ZXIsIGFs
aWduQ2VudGVyLCBhbGlnbkNlbnRlciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xs
QmVoYXZpb3IuaAppbmRleCAyNzJiY2UzZmFhMjBhY2QzY2E1Mzk0YjQ1NzdkOGE1YzM0MjUzZDcw
Li42OTQyMWFjYzRmNjEyOWVkYjAyMTJhZmI4YTcyNmU0MDYwYTE5MDY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuaApAQCAtNjEsNiArNjEsOCBAQCBzdHJ1Y3Qg
U2Nyb2xsQWxpZ25tZW50IHsKICAgICBzdGF0aWMgU2Nyb2xsQmVoYXZpb3IgZ2V0UGFydGlhbEJl
aGF2aW9yKGNvbnN0IFNjcm9sbEFsaWdubWVudCYgcykgeyByZXR1cm4gcy5tX3JlY3RQYXJ0aWFs
OyB9CiAgICAgc3RhdGljIFNjcm9sbEJlaGF2aW9yIGdldEhpZGRlbkJlaGF2aW9yKGNvbnN0IFNj
cm9sbEFsaWdubWVudCYgcykgeyByZXR1cm4gcy5tX3JlY3RIaWRkZW47IH0KIAorICAgIHN0YXRp
YyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25DZW50ZXJJZk5vdFZpc2libGU7CisgICAgc3Rh
dGljIGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnblRvRWRnZUlmTm90VmlzaWJsZTsKICAgICBz
dGF0aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWduQ2VudGVySWZOZWVkZWQ7CiAgICAgc3Rh
dGljIGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnblRvRWRnZUlmTmVlZGVkOwogICAgIHN0YXRp
YyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25DZW50ZXJBbHdheXM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggY2YxZWFmMjlmYmFjZWEyMDJkM2Mx
NmVjYjdhMjJkNjg0ZjMzZDEwZS4uYTdlNDljODdkODI2ODAwOTJkZjY0ZDdmOWNjMjI0YjhjOWJl
MGRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAt
NzIsNiArNzIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYktpdDo6V2Vi
UGFnZVByb3h5PiBjcmVhdGVOZXdQYWdlKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpX
ZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2Vi
Q29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRh
JikgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBzaG93UGFnZShXZWJLaXQ6
OldlYlBhZ2VQcm94eSopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmUoV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNQ
YWdlVmlzaWJsZShXZWJLaXQ6OldlYlBhZ2VQcm94eSopIHsgcmV0dXJuIHRydWU7IH0KICAgICB2
aXJ0dWFsIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKFdlYktpdDo6V2ViUGFnZVByb3h5KikgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKFdlYktpdDo6V2ViUGFnZVByb3h5
KikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFdlYktpdDo6V2ViUGFnZVByb3h5KikgeyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURl
bGVnYXRlUHJpdmF0ZS5oCmluZGV4IGJmZGNlZmViNDA0NWU5YjdhM2IwYTUyZWZiOGY2YjY3ODQ2
YWE3M2EuLmNlMTljNWQzYzIxZDljN2JkNGQ0ZjYwYTkwMTM2NGZkODU4Mjc4ZTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oCkBAIC00Niw2ICs0Niw3IEBACiAKIC0gKHZvaWQpX3dlYlZpZXdDbG9zZTooV0tX
ZWJWaWV3ICopd2ViVmlldzsKIC0gKHZvaWQpX3dlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9J
bmxpbmU6KFdLV2ViVmlldyAqKXdlYlZpZXc7CistIChCT09MKV93ZWJWaWV3SXNQYWdlVmlzaWJs
ZTooV0tXZWJWaWV3ICopd2ViVmlldzsKIC0gKHZvaWQpX3dlYlZpZXdEaWRFbnRlckZ1bGxzY3Jl
ZW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOwogLSAodm9pZClfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3ZWJW
aWV3IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggNjM3YmFmMDJjMzM0NThhNTgy
OTUyMDAwYTJmMzU3NTUyYmIxNjAzMi4uZDA3MjE1YmE0YzM3YWRiZGVhZThmMGRkMGJkZGI5ZGE3
ZmVlY2JlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5o
CkBAIC02MSw2ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxX
ZWJLaXQ6OldlYlBhZ2VQcm94eT4gY3JlYXRlTmV3UGFnZShXZWJLaXQ6OldlYlBhZ2VQcm94eSos
IFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViS2l0OjpOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYpIG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoV2ViS2l0
OjpXZWJQYWdlUHJveHkqKSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIGZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZShXZWJLaXQ6OldlYlBhZ2VQcm94eSopIG92ZXJyaWRlOworICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNQYWdlVmlzaWJsZShXZWJLaXQ6OldlYlBhZ2VQcm94eSopIG92
ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKFdlYktpdDo6
V2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0RnVs
bHNjcmVlbihXZWJLaXQ6OldlYlBhZ2VQcm94eSopIG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RG
OjpTdHJpbmcmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+
IGNvbXBsZXRpb25IYW5kbGVyKSBvdmVycmlkZTsKQEAgLTkwLDYgKzkxLDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgYm9vbCB3ZWJWaWV3UHJpbnRGcmFtZSA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmll
d0Nsb3NlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RnVsbHNjcmVlbk1heVJldHVyblRvSW5s
aW5lIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3SXNQYWdlVmlzaWJsZSA6IDE7CiAgICAgICAg
IGJvb2wgd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbiA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmll
d0RpZEV4aXRGdWxsc2NyZWVuIDogMTsKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IDgxNzVhN2VmMGVkMWU5NmY0
NmQ1ZmY2M2I0ZmYwZGNjZWFhMDNiYTMuLjdjMGU5MTA1ZjIzNGZjMzQzODA3OWYyYTEwMGM0MzE2
N2IxZDM4N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
Lm1tCkBAIC03Myw2ICs3Myw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdL
VUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1ByaW50
RnJhbWUgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpw
cmludEZyYW1lOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDbG9zZSA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3Q2xvc2U6KV07CiAgICAg
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJc1BhZ2VW
aXNpYmxlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdJ
c1BhZ2VWaXNpYmxlOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFbnRlckZ1
bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmll
d0RpZEVudGVyRnVsbHNjcmVlbjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlk
RXhpdEZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOildOwogI2lmIFBMQVRGT1JNKElPUykKQEAgLTI1NCw2
ICsyNTUsMTggQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZnVsbHNjcmVlbk1heVJldHVy
blRvSW5saW5lKFdlYktpdDo6V2ViUGFnZVByb3h5KikKICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQ
cml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZTptX3Vp
RGVsZWdhdGUubV93ZWJWaWV3XTsKIH0KIAorYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQ
YWdlVmlzaWJsZShXZWJLaXQ6OldlYlBhZ2VQcm94eSopCit7CisgICAgaWYgKCFtX3VpRGVsZWdh
dGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0lzUGFnZVZpc2libGUpCisgICAgICAgIHJldHVy
biB0cnVlOworICAgIAorICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0
ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAK
KyAgICByZXR1cm4gWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXdJ
c1BhZ2VWaXNpYmxlOm1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXddOworfQorCiB2b2lkIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjpkaWRFbnRlckZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQYWdlUHJveHkqKQog
ewogICAgIGlmICghbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFbnRl
ckZ1bGxzY3JlZW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IGE4NGEzZmEyMjJlYWI4ODAwZDAzM2E4ZDcyNDExODE0ODY5MWYzNmMuLjFmMmNjZDY2Nzhm
Y2JjZTc3ODFkYzE4MjQ3OTA1YThlNWUzNDg2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zMjU0LDYgKzMyNTQsMTEgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpCiAgICAgbV91aUNsaWVudC0+ZnVsbHNj
cmVlbk1heVJldHVyblRvSW5saW5lKHRoaXMpOwogfQogCitib29sIFdlYlBhZ2VQcm94eTo6aXNQ
YWdlVmlzaWJsZSgpCit7CisgICAgcmV0dXJuIG1fdWlDbGllbnQtPmlzUGFnZVZpc2libGUodGhp
cyk7Cit9CisgICAgCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRW50ZXJGdWxsc2NyZWVuKCkKIHsK
ICAgICBtX3VpQ2xpZW50LT5kaWRFbnRlckZ1bGxzY3JlZW4odGhpcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjRkOWUyZjc4MjdkNjdmNjI5Nzc5MjAyNWJi
MjhjMGNmMjgwYTFiNy4uMzc0MzJkODY2YWRjNTkwM2Y2MGQ4Mzg2NDA0YzkwNzJhZmEwMzY1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjg2LDYgKzI4Niw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFkZHNWaXNpdGVkTGlua3MoYm9vbCBhZGRzVmlzaXRl
ZExpbmtzKSB7IG1fYWRkc1Zpc2l0ZWRMaW5rcyA9IGFkZHNWaXNpdGVkTGlua3M7IH0KIAogICAg
IHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7CisgICAgYm9vbCBpc1BhZ2VWaXNp
YmxlKCk7CiAgICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKTsKICAgICB2b2lkIGRpZEV4aXRG
dWxsc2NyZWVuKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IGEwY2FmY2NkODkx
NmI2ODVjMGQ1MWM2MjRjNDNkMDRjM2M2ZjFmMWMuLjhhYzZiNDg1NWI0MWJmOGUzNTkxZDMxYTQ4
YzA1OTE4Zjc1YzA0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtNTksNyArNTks
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0U2Vla2FibGVSYW5nZXNWZWN0b3IoY29uc3QgVmVj
dG9yPHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+Jik7CiAgICAgdm9pZCBzZXRFeHRlcm5hbFBs
YXliYWNrUHJvcGVydGllcyhib29sIGVuYWJsZWQsIHVpbnQzMl90IHRhcmdldFR5cGUsIFN0cmlu
ZyBsb2NhbGl6ZWREZXZpY2VOYW1lKTsKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBvdmVycmlkZTsK
LSAgICAKKyAgICB2b2lkIHByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShib29sIHZpc2libGUsIFdl
YkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCkgb3ZlcnJpZGU7CisKICAgICAvLyBGdWxsc2NyZWVu
IE9ic2VydmVyCiAgICAgdmlydHVhbCB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYjc2M2IwMzg3Mzk4
NDY1ZWU1YzU3Mzc3NzY2Y2Q2Mjc4NDhmZjczMC4uYzcyOGMwYmJjOGI2YTIyM2RjYzVlOWYwNDdi
MjhjMGE3NWZmYTQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTM2LDUgKzM2LDYgQEAgbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5IHsKICAgICBFbnRlckZ1bGxzY3JlZW4oKQogICAgIEV4aXRGdWxsc2NyZWVuKFdl
YkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQogICAgIENsZWFudXBGdWxsc2NyZWVuKCkKKyAgICBQ
cmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlu
bGluZVJlY3QpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KaW5kZXggM2Nh
ZmFjMWI1NzYwOWUxYzdhODdlNDQ4NDhlNmFkN2Q0ZjM4ZjQyMC4uZWUzNzdlOWE4NDgyOTY3MjU4
ZjEzYjE2MGNhZThkNWUyOTkwMTU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KQEAg
LTExOSw3ICsxMTksMTQgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNl
dEV4dGVybmFsUGxheWJhY2tQcm9wZXJ0aWVzKGJvb2wgZW5hYmxlZCwKICAgICAKIHZvaWQgV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUo
KQogeworICAgIGJvb2wgaXNQYWdlVmlzaWJsZSA9IG1fcGFnZS0+aXNQYWdlVmlzaWJsZSgpOwor
ICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6RnVs
bHNjcmVlbk1heVJldHVyblRvSW5saW5lKGlzUGFnZVZpc2libGUpLCBtX3BhZ2UtPnBhZ2VJRCgp
KTsKK30KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJl
ZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGluZVJl
Y3QpCit7CiAgICAgbV9wYWdlLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKKyAgICBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5l
KHZpc2libGUsIGlubGluZVJlY3QpOwogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCA0
ZjUzNmE2NzQ5MGJiYTdjZjFlNGEwNDE0YjY4ZmExOTVkNzQyNTg5Li4zMzRlYWVjYzc0NmE2Njcx
MzFjNTg2OTBhMDFhYjkwMTBiN2FkMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC04Niw2ICs4
Niw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVkKTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKGJvb2wgaXNQYWdlVmlzaWJsZSk7CiAgICAgdm9p
ZCBzZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgSVBD
OjpBdHRhY2htZW50IGZlbmNlUG9ydCk7CiAgICAgCiAgICAgV2ViUGFnZSogbV9wYWdlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYTk4ODZmYmQ0ZWQ3NTlkMmRl
N2Y5MjI5Nzg2ZjNkZmI3YjBlNWU4Ni4uZDNjNjhhMzY2Y2Y4MTU0ZWRkZGIxODZkZDJlNmM5MzQ3
ZmRhNTJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC00Miw1
ICs0Miw2IEBAIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAgIFNl
bGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCiAgICAgU2VsZWN0TGVnaWJsZU1l
ZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQogICAgIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVl
bk1vZGUpCisgICAgRnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKGJvb2wgaXNQYWdlVmlzaWJs
ZSkKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggMDRhNDYwNDBhNGNjZTBjMTEw
ZDcxOWMyNzkwZjQ1MGZlMGNkMGY2Yi4uOWNlZWI4YmVjZWQzNzgyMmM4ZjUxYzhiZWYxMzJlN2Rl
NmE2YTlhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0yNTgsNiArMjU4LDEzIEBAIHZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVuc2ln
bmVkIGdyYXZpdHkpCiAgICAgc2V0VmlkZW9MYXllckdyYXZpdHkoKFdlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsOjpWaWRlb0dyYXZpdHkpZ3Jhdml0eSk7CiB9CiAgICAgCit2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShib29sIGlzUGFnZVZp
c2libGUpCit7CisgICAgaWYgKCFpc1BhZ2VWaXNpYmxlKQorICAgICAgICBtX3ZpZGVvRWxlbWVu
dC0+c2Nyb2xsSW50b1ZpZXdJZk5vdFZpc2libGUoZmFsc2UpOworICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpQcmVwYXJlZFRvUmV0dXJu
VG9JbmxpbmUodHJ1ZSwgY2xpZW50UmVjdEZvckVsZW1lbnQobV92aWRlb0VsZW1lbnQuZ2V0KCkp
KSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisgICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OnNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRz
LCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KQogewogICAgIGlmIChtX2xheWVySG9zdGluZ0Nv
bnRleHQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247560</attachid>
            <date>2015-02-27 15:02:34 -0800</date>
            <delta_ts>2015-03-02 16:09:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141439-20150227150220.patch</filename>
            <type>text/plain</type>
            <size>22697</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjQ3ZTE1OWE4Zjg3ZjUy
YjM1YzEzNDdlOGVkODNhYTY2ZTkyNzk3My4uM2E3ZDRhMjg4MzVhZWJmMGM3ZGQ2ZDEyODI4ZjUw
NzViY2NiODNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAyLTEwICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgdG8gbWFrZSB0
aGUgdmlkZW8gZWxlbWVudCB2aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2NyZWVuLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNDM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCB3aWxs
IHNjcm9sbCB0aGUgZWxlbWVudCBzbyBpdCBpcyB2aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2Ny
ZWVuLAorICAgICAgICBidXQgb25seSBpZiB0aGUgZWxlbWVudCBpcyBjb21wbGV0ZWx5IHNjcm9s
bGVkIG9mZiBzY3JlZW4uCisgICAgICAgIEFsc28gdXBkYXRlIHRoZSBlbGVtZW50IHNjcmVlbiBy
ZWN0IHNvIGV4aXQgYW5pbWF0aW9uIGdvZXMgdG8gdGhlIGNvcnJlY3QgbG9jYXRpb24uCisKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZSk6IEFkZGVk
LgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6IEFkZCBkZWNsYXJhdGlvbiBmb3Igc2Nyb2xsSW50
b1ZpZXdJZk5vdFZpc2libGUuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlciBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmVdKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW06CisgICAgICAgICgt
W1dlYkFWUGxheWVyQ29udHJvbGxlciBwbGF5ZXJWaWV3Q29udHJvbGxlcjpyZXN0b3JlVXNlcklu
dGVyZmFjZUZvck9wdGltaXplZEZ1bGxzY3JlZW5TdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyOl0p
OgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvU2Ny
b2xsQmVoYXZpb3IuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oOgor
CiAyMDE1LTAyLTI2ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBb
aU9TIE1lZGlhXSBpbmNvcnJlY3QgZnJvbnQgcGFkZGluZyBvbiB0aW1lIHZhbHVlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDliM2QzZjRhZmE0ODlmYWRjNDdlYjZlMDE3MTEzNDAzNzJkY2JiMzIuLjgyMzZlN2Fm
NzRlZDBmZjM4ZGU4NWMxZDQ1MzQ0OGI0Njc1YzBmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NCBAQAorMjAxNS0wMi0xMCAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAg
ICAgICAgU2Nyb2xsIHRvIG1ha2UgdGhlIHZpZGVvIGVsZW1lbnQgdmlzaWJsZSB3aGVuIGV4aXRp
bmcgZnVsbHNjcmVlbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MTQzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggd2lsbCByZXN0b3JlIGludGVyZmFjZSBzdGF0ZSB3aGVuIGV4aXRp
bmcgZnVsbHNjcmVlbi4KKyAgICAgICAgQWRkcyBpc1BhZ2VWaXNpYmxlIHNvIHNjcm9sbGluZyBv
bmx5IGhhcHBlbnMgaWYgdGhlIHBhZ2UgaXMgbm90IHZpc2libGUuCisgICAgICAgIEFkZHMgcHJl
cGFyZWRUb1JldHVyblRvSW5saW5lIHRvIGNvbnRpbnVlIGV4aXRpbmcgb25jZSB0aGUgaW50ZXJm
YWNlIGlzIHVwZGF0ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6
IEFkZCBpc1BhZ2VWaXNpYmxlCisgICAgICAgIChBUEk6OlVJQ2xpZW50Ojppc1BhZ2VWaXNpYmxl
KTogZGl0dG8KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZh
dGUuaDogZGl0dG8KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOiBkaXR0
bworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOiBkaXR0bworICAgICAg
ICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6IGRpdHRvCisgICAgICAgIChXZWJL
aXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1BhZ2VWaXNpYmxlKTogYWRkZWQKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5Ojppc1BhZ2VWaXNpYmxlKTogYWRkZWQKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6IGRpdHRvCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9S
ZXR1cm5Ub0lubGluZSk6IGFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6CisKIDIwMTUtMDIt
MjYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBb
TWFjXSBbaU9TXSBQYXJzaW5nIHN1cHBvcnQgZm9yIC1hcHBsZS10cmFpbGluZy13b3JkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKaW5kZXggMmEyODM5OGNiNGU2YWUxM2QyNjk4OWRjZjlkOTVkNzIwYmZj
Nzc0ZC4uMDc5ZjA0OTA5OWNjYzQ1NTgyMjU2ZjQ1MTc5M2RiYjBlNWU1ZGIzOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcApAQCAtNjE2LDYgKzYxNiwyMCBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbElu
dG9WaWV3SWZOZWVkZWQoYm9vbCBjZW50ZXJJZk5lZWRlZCkKICAgICAgICAgcmVuZGVyZXIoKS0+
c2Nyb2xsUmVjdFRvVmlzaWJsZShib3VuZHMsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJ
Zk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkKTsKIH0KIAordm9p
ZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZShib29sIGNlbnRlcklmTm90Vmlz
aWJsZSkKK3sKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOworICAgIAorICAgIGlmICghcmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IAorICAgIExheW91dFJlY3QgYm91bmRzID0gcmVuZGVyZXIoKS0+YW5jaG9yUmVjdCgpOworICAg
IGlmIChjZW50ZXJJZk5vdFZpc2libGUpCisgICAgICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RU
b1Zpc2libGUoYm91bmRzLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOb3RWaXNpYmxl
LCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOb3RWaXNpYmxlKTsKKyAgICBlbHNlCisg
ICAgICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYm91bmRzLCBTY3JvbGxBbGln
bm1lbnQ6OmFsaWduVG9FZGdlSWZOb3RWaXNpYmxlLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9F
ZGdlSWZOb3RWaXNpYmxlKTsKK30KKyAgICAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsQnlVbml0cyhp
bnQgdW5pdHMsIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGRvY3VtZW50
KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAppbmRleCBiOGZlZDliYWUyMzVlMTI2ZDFjMWM0Y2ZlNmEwZTA1NTkwYTQyNGE2Li4yMjM2Yjhh
MzFhNzFlMGI2YTM0NTc0NTU4MzVhNTFlMjZiYTkwNzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAg
LTE5MSw2ICsxOTEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNjcm9sbEludG9WaWV3KGJvb2wg
YWxpZ25Ub1RvcCA9IHRydWUpOwogICAgIHZvaWQgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChib29s
IGNlbnRlcklmTmVlZGVkID0gdHJ1ZSk7CisgICAgdm9pZCBzY3JvbGxJbnRvVmlld0lmTm90Vmlz
aWJsZShib29sIGNlbnRlcklmTm90VmlzaWJsZSA9IHRydWUpOwogCiAgICAgdm9pZCBzY3JvbGxC
eUxpbmVzKGludCBsaW5lcyk7CiAgICAgdm9pZCBzY3JvbGxCeVBhZ2VzKGludCBwYWdlcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQppbmRleCAxNTFhMWMwNjc5YTY1M2FhZGMyNTFk
ZDIwNGM4ODc5ODhjNzI2MTRmLi5hODY1MzgwNGE2ODUyZmQwMWFmYWQ4ZmRhZDk0ZGQ2MzUxYWFk
ZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KQEAgLTE4Myw2ICsxODMsNyBA
QCBwdWJsaWM6CiAKIC0gKHZvaWQpZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lCiB7CisgICAg
X2ludGVyZmFjZS0+cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKHRydWUsIF92aWRlb0VsZW1lbnQt
PmNsaWVudFJlY3QoKSk7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5k
ZXggM2Q4MjQxZThhZTc2NDFmMTIzODA0YzJhMGYxZmUyMTNjYzkxZTI4YS4uODU5ZDcwZjQ2M2Qz
YTM2NDk2ZWYxYjhmMmFhZTRmYjJmNDg2MDVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
LmgKQEAgLTkwLDExICs5MCwxMiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB2b2lkIGNsZWFudXBGdWxsc2NyZWVuKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2
b2lkIGludmFsaWRhdGUoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgcmVxdWVz
dEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9p
ZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBJbnRSZWN0IGlubGluZVJl
Y3QpOwogCiAgICAgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CiAgICAgdm9pZCBzZXRJc09wdGltaXplZChib29sKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBib29sIG1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9PcHRpbWl6
ZWQoKTsKLSAgICBib29sIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOworICAgIHZvaWQg
ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIGJl
Z2luU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IDg0MTRlM2M5
NzhkZDVmMWIzMWUxYmE5ZGJkOTQzMmNjZmUxNjc3MzMuLmJmZDcyNzQ1OWVmMDdiZjJhYjU5NmIz
YzYyZTMzMWY1YmI5YmJhYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KQEAgLTEy
NSw2ICsxMjUsOCBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZp
bml0ZSwgQ01UaW1lKQogQHByb3BlcnR5IEFWUGxheWVyQ29udHJvbGxlckV4dGVybmFsUGxheWJh
Y2tUeXBlIGV4dGVybmFsUGxheWJhY2tUeXBlOwogQHByb3BlcnR5IChyZXRhaW4pIE5TU3RyaW5n
ICpleHRlcm5hbFBsYXliYWNrQWlyUGxheURldmljZUxvY2FsaXplZE5hbWU7CiAKK0Bwcm9wZXJ0
eSAoY29weSkgdm9pZCAoXmV4aXRPcHRpbWl6ZWRDYWxsYmFjaykoQk9PTCByZXN0b3JlZCk7CisK
IC0gKEJPT0wpcGxheWVyVmlld0NvbnRyb2xsZXI6KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilw
bGF5ZXJWaWV3Q29udHJvbGxlciBzaG91bGRFeGl0RnVsbFNjcmVlbldpdGhSZWFzb246KEFWUGxh
eWVyVmlld0NvbnRyb2xsZXJFeGl0RnVsbFNjcmVlblJlYXNvbilyZWFzb247CiBAZW5kCiAKQEAg
LTIxMSwxMyArMjEzLDE1IEBAIFNPRlRfTElOS19DT05TVEFOVChDb3JlTWVkaWEsIGtDTVRpbWVJ
bmRlZmluaXRlLCBDTVRpbWUpCiAtICh2b2lkKXBsYXllclZpZXdDb250cm9sbGVyOihBVlBsYXll
clZpZXdDb250cm9sbGVyICopcGxheWVyVmlld0NvbnRyb2xsZXIgcmVzdG9yZVVzZXJJbnRlcmZh
Y2VGb3JPcHRpbWl6ZWRGdWxsc2NyZWVuU3RvcFdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoQk9PTCByZXN0b3JlZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBVTlVTRURfUEFSQU0o
cGxheWVyVmlld0NvbnRyb2xsZXIpOwotICAgIGNvbXBsZXRpb25IYW5kbGVyKHNlbGYuZnVsbHNj
cmVlbkludGVyZmFjZS0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkpOworICAgIHNlbGYu
ZXhpdE9wdGltaXplZENhbGxiYWNrID0gY29tcGxldGlvbkhhbmRsZXI7CisgICAgc2VsZi5mdWxs
c2NyZWVuSW50ZXJmYWNlLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKIH0KIAogLSAo
dm9pZClwbGF5ZXJWaWV3Q29udHJvbGxlcldpbGxDYW5jZWxPcHRpbWl6ZWRGdWxsc2NyZWU6KEFW
UGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxlcgogewogICAgIFVOVVNF
RF9QQVJBTShwbGF5ZXJWaWV3Q29udHJvbGxlcik7Ci0gICAgQVNTRVJUKHNlbGYuZGVsZWdhdGUp
OworICAgIGlmICghc2VsZi5kZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuCiAgICAgc2VsZi5kZWxl
Z2F0ZS0+cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCk7CiB9CiAKQEAgLTExNDksNiArMTE1MywyMiBA
QCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpyZXF1ZXN0SGlkZUFuZEV4
aXRGdWxsc2NyZWVuKCkKICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+cmVxdWVzdEV4
aXRGdWxsc2NyZWVuKCk7CiB9CiAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShib29sIHZpc2libGUsIEludFJlY3QgaW5saW5l
UmVjdCkKK3sKKyAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHN0
cm9uZ1RoaXModGhpcyk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSwgW3N0cm9uZ1RoaXMsIHZpc2libGUsIGlubGluZVJlY3RdIHsKKyAgICAgICAgaWYgKHN0
cm9uZ1RoaXMtPm1fcGxheWVyQ29udHJvbGxlci5nZXQoKS5leGl0T3B0aW1pemVkQ2FsbGJhY2sp
IHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHN0cm9uZ1RoaXMtPm1fdmlld0NvbnRy
b2xsZXIpCisgICAgICAgICAgICAgICAgW3N0cm9uZ1RoaXMtPm1fcGxheWVyVmlld0NvbnRyb2xs
ZXIgdmlld10uZnJhbWUgPSBbc3Ryb25nVGhpcy0+bV9wYXJlbnRWaWV3IGNvbnZlcnRSZWN0Omlu
bGluZVJlY3QgdG9WaWV3Om5pbF07CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
W3N0cm9uZ1RoaXMtPm1fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10uZnJhbWUgPSBpbmxpbmVS
ZWN0OworICAgICAgICAgICAgCisgICAgICAgICAgICBzdHJvbmdUaGlzLT5tX3BsYXllckNvbnRy
b2xsZXIuZ2V0KCkuZXhpdE9wdGltaXplZENhbGxiYWNrKHZpc2libGUpOworICAgICAgICB9Cisg
ICAgfSk7Cit9CisKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldElz
T3B0aW1pemVkKGJvb2wgYWN0aXZlKQogewogICAgIGlmIChtX21vZGUgJiBIVE1MTWVkaWFFbGVt
ZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpIHsKQEAgLTExODcsMTAgKzEyMDcsMTAg
QEAgYm9vbCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6bWF5QXV0b21hdGljYWxs
eVNob3dWaWRlb09wdGltaXplZCgpCiAgICAgcmV0dXJuIFttX3BsYXllckNvbnRyb2xsZXIgaXNQ
bGF5aW5nXSAmJiBtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9k
ZVN0YW5kYXJkICYmIHdrSXNPcHRpbWl6ZWRGdWxsc2NyZWVuU3VwcG9ydGVkKCk7CiB9CiAKLWJv
b2wgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZSgpCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpmdWxsc2Ny
ZWVuTWF5UmV0dXJuVG9JbmxpbmUoKQogewotICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBp
ZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5n
ZU9ic2VydmVyLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKIH0KIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmNwcAppbmRleCBiNThiMzMx
ODRlNmFmMmRiNDUxN2U0ZTNkNmFjZjk5ODI2MDhmMDZmLi5kYTY1ZGFjNTdkMTg0YzBlM2M3ZWVl
MmU2ZDQxNzc5MWM3NWNkZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
U2Nyb2xsQmVoYXZpb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxC
ZWhhdmlvci5jcHAKQEAgLTQ2LDYgKzQ2LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
b25zdCBTY3JvbGxBbGlnbm1lbnQgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTm90Vmlz
aWJsZSA9IHsgbm9TY3JvbGwsIGFsaWduQ2VudGVyLCBub1Njcm9sbCB9OworV0VCQ09SRV9FWFBP
UlQgY29uc3QgU2Nyb2xsQWxpZ25tZW50IFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5v
dFZpc2libGUgPSB7IG5vU2Nyb2xsLCBhbGlnblRvQ2xvc2VzdEVkZ2UsIG5vU2Nyb2xsIH07CiBj
b25zdCBTY3JvbGxBbGlnbm1lbnQgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVk
ID0geyBub1Njcm9sbCwgYWxpZ25DZW50ZXIsIGFsaWduVG9DbG9zZXN0RWRnZSB9OwogV0VCQ09S
RV9FWFBPUlQgY29uc3QgU2Nyb2xsQWxpZ25tZW50IFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0Vk
Z2VJZk5lZWRlZCA9IHsgbm9TY3JvbGwsIGFsaWduVG9DbG9zZXN0RWRnZSwgYWxpZ25Ub0Nsb3Nl
c3RFZGdlIH07CiBXRUJDT1JFX0VYUE9SVCBjb25zdCBTY3JvbGxBbGlnbm1lbnQgU2Nyb2xsQWxp
Z25tZW50OjphbGlnbkNlbnRlckFsd2F5cyA9IHsgYWxpZ25DZW50ZXIsIGFsaWduQ2VudGVyLCBh
bGlnbkNlbnRlciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Njcm9s
bEJlaGF2aW9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuaApp
bmRleCA5Y2U3NWFiZmM2NWU2M2RlMGZlZWZmMWYzNDVjNTAxNzEzYzgwZDc3Li5jOWUxZjA1YmRk
NWI1ZmEwYzIyODc4NTFiMmFmNTc1ZTc4ZTUyODBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvU2Nyb2xsQmVoYXZpb3IuaApAQCAtNjEsNiArNjEsOCBAQCBzdHJ1Y3QgU2Nyb2xsQWxpZ25t
ZW50IHsKICAgICBzdGF0aWMgU2Nyb2xsQmVoYXZpb3IgZ2V0UGFydGlhbEJlaGF2aW9yKGNvbnN0
IFNjcm9sbEFsaWdubWVudCYgcykgeyByZXR1cm4gcy5tX3JlY3RQYXJ0aWFsOyB9CiAgICAgc3Rh
dGljIFNjcm9sbEJlaGF2aW9yIGdldEhpZGRlbkJlaGF2aW9yKGNvbnN0IFNjcm9sbEFsaWdubWVu
dCYgcykgeyByZXR1cm4gcy5tX3JlY3RIaWRkZW47IH0KIAorICAgIHN0YXRpYyBjb25zdCBTY3Jv
bGxBbGlnbm1lbnQgYWxpZ25DZW50ZXJJZk5vdFZpc2libGU7CisgICAgc3RhdGljIGNvbnN0IFNj
cm9sbEFsaWdubWVudCBhbGlnblRvRWRnZUlmTm90VmlzaWJsZTsKICAgICBzdGF0aWMgY29uc3Qg
U2Nyb2xsQWxpZ25tZW50IGFsaWduQ2VudGVySWZOZWVkZWQ7CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnblRvRWRnZUlmTmVlZGVkOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25DZW50ZXJBbHdh
eXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggY2Yx
ZWFmMjlmYmFjZWEyMDJkM2MxNmVjYjdhMjJkNjg0ZjMzZDEwZS4uYTdlNDljODdkODI2ODAwOTJk
ZjY0ZDdmOWNjMjI0YjhjOWJlMGRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
QVBJVUlDbGllbnQuaApAQCAtNzIsNiArNzIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBjcmVhdGVOZXdQYWdlKFdlYktpdDo6V2ViUGFn
ZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJLaXQ6Ok5h
dmlnYXRpb25BY3Rpb25EYXRhJikgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9p
ZCBzaG93UGFnZShXZWJLaXQ6OldlYlBhZ2VQcm94eSopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBm
dWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNQYWdlVmlzaWJsZShXZWJLaXQ6OldlYlBhZ2VQcm94eSopIHsgcmV0
dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKFdlYktpdDo6
V2ViUGFnZVByb3h5KikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKFdl
YktpdDo6V2ViUGFnZVByb3h5KikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFdlYktpdDo6
V2ViUGFnZVByb3h5KikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDk1MWViOTdiMjZmZjc0OGI0
NDc3MTFlNDhmOTg3MDAzNDQwMjRiZDkuLjkzMjZlMTdiODU4OTJlNmRiNDE1YmZhMTNhMmJjMWRj
NWM1YWE5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC00Niw2ICs0Niw3IEBACiAKIC0gKHZvaWQp
X3dlYlZpZXdDbG9zZTooV0tXZWJWaWV3ICopd2ViVmlldzsKIC0gKHZvaWQpX3dlYlZpZXdGdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU6KFdLV2ViVmlldyAqKXdlYlZpZXc7CistIChCT09MKV93
ZWJWaWV3SXNQYWdlVmlzaWJsZTooV0tXZWJWaWV3ICopd2ViVmlldzsKIC0gKHZvaWQpX3dlYlZp
ZXdEaWRFbnRlckZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKFdL
X01BQ19UQkEsIDhfMyk7CiAtICh2b2lkKV93ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW46KFdLV2Vi
VmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIDhfMyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IDYzN2JhZjAyYzMzNDU4
YTU4Mjk1MjAwMGEyZjM1NzU1MmJiMTYwMzIuLmQwNzIxNWJhNGMzN2FkYmRlYWU4ZjBkZDBiZGRi
OWRhN2ZlZWNiZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaApAQCAtNjEsNiArNjEsNyBAQCBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IGNyZWF0ZU5ld1BhZ2UoV2ViS2l0OjpXZWJQYWdlUHJv
eHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYktpdDo6TmF2aWdh
dGlvbkFjdGlvbkRhdGEmKSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFdl
YktpdDo6V2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBmdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoV2ViS2l0OjpXZWJQYWdlUHJveHkqKSBvdmVycmlkZTsK
KyAgICAgICAgdmlydHVhbCBib29sIGlzUGFnZVZpc2libGUoV2ViS2l0OjpXZWJQYWdlUHJveHkq
KSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbihXZWJL
aXQ6OldlYlBhZ2VQcm94eSopIG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhp
dEZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQYWdlUHJveHkqKSBvdmVycmlkZTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0
IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5Kiwgc3RkOjpmdW5jdGlvbjx2b2lk
ICgpPiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGU7CkBAIC05MCw2ICs5MSw3IEBAIHByaXZh
dGU6CiAgICAgICAgIGJvb2wgd2ViVmlld1ByaW50RnJhbWUgOiAxOwogICAgICAgICBib29sIHdl
YlZpZXdDbG9zZSA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZSA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0lzUGFnZVZpc2libGUgOiAxOwogICAg
ICAgICBib29sIHdlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW4gOiAxOwogICAgICAgICBib29sIHdl
YlZpZXdEaWRFeGl0RnVsbHNjcmVlbiA6IDE7CiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCA4MTc1YTdlZjBlZDFl
OTZmNDZkNWZmNjNiNGZmMGRjY2VhYTAzYmEzLi43YzBlOTEwNWYyMzRmYzM0MzgwNzlmMmExMDBj
NDMxNjdiMWQzODdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5tbQpAQCAtNzMsNiArNzMsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlk
IDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdQ
cmludEZyYW1lID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXc6cHJpbnRGcmFtZTopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2xvc2UgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0Nsb3NlOildOwog
ICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0Z1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZTopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SXNQ
YWdlVmlzaWJsZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3SXNQYWdlVmlzaWJsZTopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRW50
ZXJGdWxsc2NyZWVuID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXdEaWRFbnRlckZ1bGxzY3JlZW46KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0RpZEV4aXRGdWxsc2NyZWVuID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjopXTsKICNpZiBQTEFURk9STShJT1MpCkBAIC0y
NTQsNiArMjU1LDE4IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmZ1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZShXZWJLaXQ6OldlYlBhZ2VQcm94eSopCiAgICAgWyhpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU6
bV91aURlbGVnYXRlLm1fd2ViVmlld107CiB9CiAKK2Jvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6
OmlzUGFnZVZpc2libGUoV2ViS2l0OjpXZWJQYWdlUHJveHkqKQoreworICAgIGlmICghbV91aURl
bGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJc1BhZ2VWaXNpYmxlKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAKKyAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVs
ZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgCisgICAgcmV0dXJuIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJW
aWV3SXNQYWdlVmlzaWJsZTptX3VpRGVsZWdhdGUubV93ZWJWaWV3XTsKK30KKwogdm9pZCBVSURl
bGVnYXRlOjpVSUNsaWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuKFdlYktpdDo6V2ViUGFnZVByb3h5
KikKIHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlk
RW50ZXJGdWxsc2NyZWVuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCA1OTY0NWYyYzlhYTZjOTNjNDhkMTdjMGM4NzkyNzkwZjc2OTk5N2YxLi44ZTNiODc1
MmI0Y2UzMWYzNjUxY2FmMTk0YWEzM2ZhNjEzZWU3OGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzI4Nyw2ICszMjg3LDExIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKQogICAgIG1fdWlDbGllbnQtPmZ1
bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSh0aGlzKTsKIH0KIAorYm9vbCBXZWJQYWdlUHJveHk6
OmlzUGFnZVZpc2libGUoKQoreworICAgIHJldHVybiBtX3VpQ2xpZW50LT5pc1BhZ2VWaXNpYmxl
KHRoaXMpOworfQorICAgIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZEVudGVyRnVsbHNjcmVlbigp
CiB7CiAgICAgbV91aUNsaWVudC0+ZGlkRW50ZXJGdWxsc2NyZWVuKHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDI5MjdhNmQ5MTVhNTE0ZDVjM2Q4ZDFi
M2I4MTE4OWM2NGUzMDZjYTguLjQ5YTJhYjdhMWFmMDczYWNhOTI4YTUyMTQwMTM3ZTExZjAyNWQ4
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI4Niw2ICsy
ODYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBZGRzVmlzaXRlZExpbmtzKGJvb2wgYWRkc1Zp
c2l0ZWRMaW5rcykgeyBtX2FkZHNWaXNpdGVkTGlua3MgPSBhZGRzVmlzaXRlZExpbmtzOyB9CiAK
ICAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOworICAgIGJvb2wgaXNQYWdl
VmlzaWJsZSgpOwogICAgIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKCk7CiAgICAgdm9pZCBkaWRF
eGl0RnVsbHNjcmVlbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCBhMGNhZmNj
ZDg5MTZiNjg1YzBkNTFjNjI0YzQzZDA0YzNjNmYxZjFjLi44YWM2YjQ4NTViNDFiZjhlMzU5MWQz
MWE0OGMwNTkxOGY3NWMwNDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTU5LDcg
KzU5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKGNvbnN0
IFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBkb3VibGU+PiYpOwogICAgIHZvaWQgc2V0RXh0ZXJu
YWxQbGF5YmFja1Byb3BlcnRpZXMoYm9vbCBlbmFibGVkLCB1aW50MzJfdCB0YXJnZXRUeXBlLCBT
dHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSk7CiAgICAgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5n
ZWQoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgb3ZlcnJp
ZGU7Ci0gICAgCisgICAgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxl
LCBXZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpIG92ZXJyaWRlOworCiAgICAgLy8gRnVsbHNj
cmVlbiBPYnNlcnZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4oKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGI3NjNiMDM4
NzM5ODQ2NWVlNWM1NzM3Nzc2NmNkNjI3ODQ4ZmY3MzAuLmM3MjhjMGJiYzhiNmEyMjNkY2M1ZTlm
MDQ3YjI4YzBhNzVmZmE0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCkBAIC0zNiw1ICszNiw2IEBAIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eSB7CiAgICAgRW50ZXJGdWxsc2NyZWVuKCkKICAgICBFeGl0RnVsbHNjcmVl
bihXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCkKICAgICBDbGVhbnVwRnVsbHNjcmVlbigpCisg
ICAgUHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgV2ViQ29yZTo6SW50UmVj
dCBpbmxpbmVSZWN0KQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4
IDNjYWZhYzFiNTc2MDllMWM3YTg3ZTQ0ODQ4ZTZhZDdkNGYzOGY0MjAuLmVlMzc3ZTlhODQ4Mjk2
NzI1OGYxM2IxNjBjYWU4ZDVlMjk5MDE1NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1t
CkBAIC0xMTksNyArMTE5LDE0IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpzZXRFeHRlcm5hbFBsYXliYWNrUHJvcGVydGllcyhib29sIGVuYWJsZWQsCiAgICAgCiB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5s
aW5lKCkKIHsKKyAgICBib29sIGlzUGFnZVZpc2libGUgPSBtX3BhZ2UtPmlzUGFnZVZpc2libGUo
KTsKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OkZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShpc1BhZ2VWaXNpYmxlKSwgbV9wYWdlLT5wYWdl
SUQoKSk7Cit9CisgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJl
cGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgV2ViQ29yZTo6SW50UmVjdCBpbmxp
bmVSZWN0KQorewogICAgIG1fcGFnZS0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7Cisg
ICAgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lu
bGluZSh2aXNpYmxlLCBpbmxpbmVSZWN0KTsKIH0KIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVsbHNjcmVlbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5k
ZXggNGY1MzZhNjc0OTBiYmE3Y2YxZTRhMDQxNGI2OGZhMTk1ZDc0MjU4OS4uMzM0ZWFlY2M3NDZh
NjY3MTMxYzU4NjkwYTAxYWI5MDEwYjdhZDEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtODYs
NiArODYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVu
KCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1bnNpZ25lZCk7CisgICAgdmlydHVhbCB2
b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShib29sIGlzUGFnZVZpc2libGUpOwogICAg
IHZvaWQgc2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMs
IElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpOwogICAgIAogICAgIFdlYlBhZ2UqIG1fcGFnZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IGE5ODg2ZmJkNGVkNzU5
ZDJkZTdmOTIyOTc4NmYzZGZiN2IwZTVlODYuLmQzYzY4YTM2NmNmODE1NGVkZGRiMTg2ZGQyZTZj
OTM0N2ZkYTUyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAt
NDIsNSArNDIsNiBAQCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIHsKICAg
ICBTZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQogICAgIFNlbGVjdExlZ2li
bGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkKICAgICBmdWxsc2NyZWVuTW9kZUNoYW5nZWQo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxz
Y3JlZW5Nb2RlKQorICAgIEZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShib29sIGlzUGFnZVZp
c2libGUpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IDA0YTQ2MDQwYTRjY2Uw
YzExMGQ3MTljMjc5MGY0NTBmZTBjZDBmNmIuLjljZWViOGJlY2VkMzc4MjJjOGY1MWM4YmVmMTMy
ZTdkZTZhNmE5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtMjU4LDYgKzI1OCwxMyBAQCB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1
bnNpZ25lZCBncmF2aXR5KQogICAgIHNldFZpZGVvTGF5ZXJHcmF2aXR5KChXZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbDo6VmlkZW9HcmF2aXR5KWdyYXZpdHkpOwogfQogICAgIAordm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoYm9vbCBpc1Bh
Z2VWaXNpYmxlKQoreworICAgIGlmICghaXNQYWdlVmlzaWJsZSkKKyAgICAgICAgbV92aWRlb0Vs
ZW1lbnQtPnNjcm9sbEludG9WaWV3SWZOb3RWaXNpYmxlKGZhbHNlKTsKKyAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6UHJlcGFyZWRUb1Jl
dHVyblRvSW5saW5lKHRydWUsIGNsaWVudFJlY3RGb3JFbGVtZW50KG1fdmlkZW9FbGVtZW50Lmdl
dCgpKSksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJv
dW5kcywgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCkKIHsKICAgICBpZiAobV9sYXllckhvc3Rp
bmdDb250ZXh0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247712</attachid>
            <date>2015-03-02 16:09:44 -0800</date>
            <delta_ts>2015-03-05 10:20:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141439-20150302160927.patch</filename>
            <type>text/plain</type>
            <size>22753</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI5ZDYwOTEzYjhmMTFj
YTM3NjIwNGQ4MWJlYmI1Yzk2NTI4NzU3NS4uYjY0Yjc2ZmY1OGI2MGI2ODBjMjY5OGQyNmEyNzcx
MzdjMDM3OTBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAyLTEwICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgdG8gbWFrZSB0
aGUgdmlkZW8gZWxlbWVudCB2aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2NyZWVuLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNDM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCB3aWxs
IHNjcm9sbCB0aGUgZWxlbWVudCBzbyBpdCBpcyB2aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2Ny
ZWVuLAorICAgICAgICBidXQgb25seSBpZiB0aGUgZWxlbWVudCBpcyBjb21wbGV0ZWx5IHNjcm9s
bGVkIG9mZiBzY3JlZW4uCisgICAgICAgIEFsc28gdXBkYXRlIHRoZSBlbGVtZW50IHNjcmVlbiBy
ZWN0IHNvIGV4aXQgYW5pbWF0aW9uIGdvZXMgdG8gdGhlIGNvcnJlY3QgbG9jYXRpb24uCisKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZSk6IEFkZGVk
LgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6IEFkZCBkZWNsYXJhdGlvbiBmb3Igc2Nyb2xsSW50
b1ZpZXdJZk5vdFZpc2libGUuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlciBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmVdKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW06CisgICAgICAgICgt
W1dlYkFWUGxheWVyQ29udHJvbGxlciBwbGF5ZXJWaWV3Q29udHJvbGxlcjpyZXN0b3JlVXNlcklu
dGVyZmFjZUZvck9wdGltaXplZEZ1bGxzY3JlZW5TdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyOl0p
OgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvU2Ny
b2xsQmVoYXZpb3IuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oOgor
CiAyMDE1LTAzLTAyICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjE4MDg4Mik6IEJ1aWxkIGZhaWx1cmU6IE1ldGhvZHMgbm90IG1hcmtl
ZCBvdmVycmlkZSBpbiBHcmFwaGljc0xheWVyQ0EuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDJhNmY5MmE3Mjhj
ZTlmYmU3NGQyMDUxNTkzZmFkY2EzNDA1YmFmYTguLmQ5MGRiNTZhOTJlNzViMDBhNmJiOWI4YWZm
Mjc2MTE2MjAwYjBlY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxNS0wMi0xMCAg
SmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAgICAgICAgU2Nyb2xsIHRvIG1h
a2UgdGhlIHZpZGVvIGVsZW1lbnQgdmlzaWJsZSB3aGVuIGV4aXRpbmcgZnVsbHNjcmVlbi4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTQzOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
d2lsbCByZXN0b3JlIGludGVyZmFjZSBzdGF0ZSB3aGVuIGV4aXRpbmcgZnVsbHNjcmVlbi4KKyAg
ICAgICAgQWRkcyBpc1BhZ2VWaXNpYmxlIHNvIHNjcm9sbGluZyBvbmx5IGhhcHBlbnMgaWYgdGhl
IHBhZ2UgaXMgbm90IHZpc2libGUuCisgICAgICAgIEFkZHMgcHJlcGFyZWRUb1JldHVyblRvSW5s
aW5lIHRvIGNvbnRpbnVlIGV4aXRpbmcgb25jZSB0aGUgaW50ZXJmYWNlIGlzIHVwZGF0ZWQuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6IEFkZCBpc1BhZ2VWaXNpYmxl
CisgICAgICAgIChBUEk6OlVJQ2xpZW50Ojppc1BhZ2VWaXNpYmxlKTogZGl0dG8KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDogZGl0dG8KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOiBkaXR0bworICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOiBkaXR0bworICAgICAgICAoV2ViS2l0OjpVSURlbGVn
YXRlOjpzZXREZWxlZ2F0ZSk6IGRpdHRvCisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJ
Q2xpZW50Ojppc1BhZ2VWaXNpYmxlKTogYWRkZWQKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppc1BhZ2VWaXNpYmxl
KTogYWRkZWQKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IGRpdHRvCisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6IGFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1
bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6CisKIDIwMTUtMDMtMDIgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJzaXRlRGF0YVN0b3JlIHNob3Vs
ZCBzdXBwb3J0IGdldHRpbmcgY29va2llIGhvc3QgbmFtZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApp
bmRleCA3ZGZlY2JkNWU1ZWE2MmM0MDdiYjVkOGQxN2EyNTMxNmZhMWIzNWFmLi5kOWIwNWU4OTdi
YjljNGMxYTgwZTNiMTkwNTM1ODZkNzg1OTY1MDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBA
IC02MTYsNiArNjE2LDIwIEBAIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChi
b29sIGNlbnRlcklmTmVlZGVkKQogICAgICAgICByZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNp
YmxlKGJvdW5kcywgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxB
bGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQpOwogfQogCit2b2lkIEVsZW1lbnQ6OnNjcm9s
bEludG9WaWV3SWZOb3RWaXNpYmxlKGJvb2wgY2VudGVySWZOb3RWaXNpYmxlKQoreworICAgIGRv
Y3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgCisg
ICAgaWYgKCFyZW5kZXJlcigpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgTGF5b3V0UmVj
dCBib3VuZHMgPSByZW5kZXJlcigpLT5hbmNob3JSZWN0KCk7CisgICAgaWYgKGNlbnRlcklmTm90
VmlzaWJsZSkKKyAgICAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShib3VuZHMs
IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5vdFZpc2libGUsIFNjcm9sbEFsaWdubWVu
dDo6YWxpZ25DZW50ZXJJZk5vdFZpc2libGUpOworICAgIGVsc2UKKyAgICAgICAgcmVuZGVyZXIo
KS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShib3VuZHMsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0Vk
Z2VJZk5vdFZpc2libGUsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5vdFZpc2libGUp
OworfQorICAgIAogdm9pZCBFbGVtZW50OjpzY3JvbGxCeVVuaXRzKGludCB1bml0cywgU2Nyb2xs
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IGI4ZmVkOWJh
ZTIzNWUxMjZkMWMxYzRjZmU2YTBlMDU1OTBhNDI0YTYuLjYxMmVjNDM3OWJlOTUwNTUxNjM0NjA1
NjhlMzc0YThiMWRkNDJiNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMTkxLDYgKzE5MSw3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc2Nyb2xsSW50b1ZpZXcoYm9vbCBhbGlnblRvVG9wID0gdHJ1
ZSk7CiAgICAgdm9pZCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkKGJvb2wgY2VudGVySWZOZWVkZWQg
PSB0cnVlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbEludG9WaWV3SWZOb3RWaXNp
YmxlKGJvb2wgY2VudGVySWZOb3RWaXNpYmxlID0gdHJ1ZSk7CiAKICAgICB2b2lkIHNjcm9sbEJ5
TGluZXMoaW50IGxpbmVzKTsKICAgICB2b2lkIHNjcm9sbEJ5UGFnZXMoaW50IHBhZ2VzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCmluZGV4IDE1MWExYzA2NzlhNjUzYWFkYzI1MWRk
MjA0Yzg4Nzk4OGM3MjYxNGYuLmE4NjUzODA0YTY4NTJmZDAxYWZhZDhmZGFkOTRkZDYzNTFhYWRk
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpAQCAtMTgzLDYgKzE4Myw3IEBA
IHB1YmxpYzoKIAogLSAodm9pZClmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUKIHsKKyAgICBf
aW50ZXJmYWNlLT5wcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodHJ1ZSwgX3ZpZGVvRWxlbWVudC0+
Y2xpZW50UmVjdCgpKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAppbmRl
eCAzZDgyNDFlOGFlNzY0MWYxMjM4MDRjMmEwZjFmZTIxM2NjOTFlMjhhLi44NTlkNzBmNDYzZDNh
MzY0OTZlZjFiOGYyYWFlNGZiMmY0ODYwNWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQu
aApAQCAtOTAsMTEgKzkwLDEyIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFs
IHZvaWQgY2xlYW51cEZ1bGxzY3JlZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZv
aWQgaW52YWxpZGF0ZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCByZXF1ZXN0
SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lk
IHByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShib29sIHZpc2libGUsIEludFJlY3QgaW5saW5lUmVj
dCk7CiAKICAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUoKSBj
b25zdCB7IHJldHVybiBtX21vZGU7IH0KICAgICB2b2lkIHNldElzT3B0aW1pemVkKGJvb2wpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbWF5QXV0b21hdGljYWxseVNob3dWaWRlb09wdGltaXpl
ZCgpOwotICAgIGJvb2wgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7CisgICAgdm9pZCBm
dWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgYmVn
aW5TZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggODQxNGUzYzk3
OGRkNWYxYjMxZTFiYTlkYmQ5NDMyY2NmZTE2NzczMy4uYmZkNzI3NDU5ZWYwN2JmMmFiNTk2YjNj
NjJlMzMxZjViYjliYmFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpAQCAtMTI1
LDYgKzEyNSw4IEBAIFNPRlRfTElOS19DT05TVEFOVChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmlu
aXRlLCBDTVRpbWUpCiBAcHJvcGVydHkgQVZQbGF5ZXJDb250cm9sbGVyRXh0ZXJuYWxQbGF5YmFj
a1R5cGUgZXh0ZXJuYWxQbGF5YmFja1R5cGU7CiBAcHJvcGVydHkgKHJldGFpbikgTlNTdHJpbmcg
KmV4dGVybmFsUGxheWJhY2tBaXJQbGF5RGV2aWNlTG9jYWxpemVkTmFtZTsKIAorQHByb3BlcnR5
IChjb3B5KSB2b2lkICheZXhpdE9wdGltaXplZENhbGxiYWNrKShCT09MIHJlc3RvcmVkKTsKKwog
LSAoQk9PTClwbGF5ZXJWaWV3Q29udHJvbGxlcjooQVZQbGF5ZXJWaWV3Q29udHJvbGxlciAqKXBs
YXllclZpZXdDb250cm9sbGVyIHNob3VsZEV4aXRGdWxsU2NyZWVuV2l0aFJlYXNvbjooQVZQbGF5
ZXJWaWV3Q29udHJvbGxlckV4aXRGdWxsU2NyZWVuUmVhc29uKXJlYXNvbjsKIEBlbmQKIApAQCAt
MjExLDEzICsyMTMsMTUgQEAgU09GVF9MSU5LX0NPTlNUQU5UKENvcmVNZWRpYSwga0NNVGltZUlu
ZGVmaW5pdGUsIENNVGltZSkKIC0gKHZvaWQpcGxheWVyVmlld0NvbnRyb2xsZXI6KEFWUGxheWVy
Vmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxlciByZXN0b3JlVXNlckludGVyZmFj
ZUZvck9wdGltaXplZEZ1bGxzY3JlZW5TdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShCT09MIHJlc3RvcmVkKSljb21wbGV0aW9uSGFuZGxlcgogewogICAgIFVOVVNFRF9QQVJBTShw
bGF5ZXJWaWV3Q29udHJvbGxlcik7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoc2VsZi5mdWxsc2Ny
ZWVuSW50ZXJmYWNlLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSk7CisgICAgc2VsZi5l
eGl0T3B0aW1pemVkQ2FsbGJhY2sgPSBjb21wbGV0aW9uSGFuZGxlcjsKKyAgICBzZWxmLmZ1bGxz
Y3JlZW5JbnRlcmZhY2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwogfQogCiAtICh2
b2lkKXBsYXllclZpZXdDb250cm9sbGVyV2lsbENhbmNlbE9wdGltaXplZEZ1bGxzY3JlZTooQVZQ
bGF5ZXJWaWV3Q29udHJvbGxlciAqKXBsYXllclZpZXdDb250cm9sbGVyCiB7CiAgICAgVU5VU0VE
X1BBUkFNKHBsYXllclZpZXdDb250cm9sbGVyKTsKLSAgICBBU1NFUlQoc2VsZi5kZWxlZ2F0ZSk7
CisgICAgaWYgKCFzZWxmLmRlbGVnYXRlKQorICAgICAgICByZXR1cm4KICAgICBzZWxmLmRlbGVn
YXRlLT5yZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKTsKIH0KIApAQCAtMTE0OSw2ICsxMTUzLDIyIEBA
IHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJlcXVlc3RIaWRlQW5kRXhp
dEZ1bGxzY3JlZW4oKQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5yZXF1ZXN0RXhp
dEZ1bGxzY3JlZW4oKTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgSW50UmVjdCBpbmxpbmVS
ZWN0KQoreworICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gc3Ry
b25nVGhpcyh0aGlzKTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpLCBbc3Ryb25nVGhpcywgdmlzaWJsZSwgaW5saW5lUmVjdF0geworICAgICAgICBpZiAoc3Ry
b25nVGhpcy0+bV9wbGF5ZXJDb250cm9sbGVyLmdldCgpLmV4aXRPcHRpbWl6ZWRDYWxsYmFjaykg
eworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc3Ryb25nVGhpcy0+bV92aWV3Q29udHJv
bGxlcikKKyAgICAgICAgICAgICAgICBbc3Ryb25nVGhpcy0+bV9wbGF5ZXJWaWV3Q29udHJvbGxl
ciB2aWV3XS5mcmFtZSA9IFtzdHJvbmdUaGlzLT5tX3BhcmVudFZpZXcgY29udmVydFJlY3Q6aW5s
aW5lUmVjdCB0b1ZpZXc6bmlsXTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBb
c3Ryb25nVGhpcy0+bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XS5mcmFtZSA9IGlubGluZVJl
Y3Q7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN0cm9uZ1RoaXMtPm1fcGxheWVyQ29udHJv
bGxlci5nZXQoKS5leGl0T3B0aW1pemVkQ2FsbGJhY2sodmlzaWJsZSk7CisgICAgICAgIH0KKyAg
ICB9KTsKK30KKwogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0SXNP
cHRpbWl6ZWQoYm9vbCBhY3RpdmUpCiB7CiAgICAgaWYgKG1fbW9kZSAmIEhUTUxNZWRpYUVsZW1l
bnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgewpAQCAtMTE4NywxMCArMTIwNywxMCBA
QCBib29sIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjptYXlBdXRvbWF0aWNhbGx5
U2hvd1ZpZGVvT3B0aW1pemVkKCkKICAgICByZXR1cm4gW21fcGxheWVyQ29udHJvbGxlciBpc1Bs
YXlpbmddICYmIG1fbW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
U3RhbmRhcmQgJiYgd2tJc09wdGltaXplZEZ1bGxzY3JlZW5TdXBwb3J0ZWQoKTsKIH0KIAotYm9v
bCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKCkKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSgpCiB7Ci0gICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIt
PmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwotICAgIHJldHVybiB0cnVlOworICAgIGlm
IChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXItPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwogfQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuY3BwCmluZGV4IGI1OGIzMzE4
NGU2YWYyZGI0NTE3ZTRlM2Q2YWNmOTk4MjYwOGYwNmYuLmRhNjVkYWM1N2QxODRjMGUzYzdlZWUy
ZTZkNDE3NzkxYzc1Y2RkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9T
Y3JvbGxCZWhhdmlvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Njcm9sbEJl
aGF2aW9yLmNwcApAQCAtNDYsNiArNDYsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Nv
bnN0IFNjcm9sbEFsaWdubWVudCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOb3RWaXNp
YmxlID0geyBub1Njcm9sbCwgYWxpZ25DZW50ZXIsIG5vU2Nyb2xsIH07CitXRUJDT1JFX0VYUE9S
VCBjb25zdCBTY3JvbGxBbGlnbm1lbnQgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTm90
VmlzaWJsZSA9IHsgbm9TY3JvbGwsIGFsaWduVG9DbG9zZXN0RWRnZSwgbm9TY3JvbGwgfTsKIGNv
bnN0IFNjcm9sbEFsaWdubWVudCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQg
PSB7IG5vU2Nyb2xsLCBhbGlnbkNlbnRlciwgYWxpZ25Ub0Nsb3Nlc3RFZGdlIH07CiBXRUJDT1JF
X0VYUE9SVCBjb25zdCBTY3JvbGxBbGlnbm1lbnQgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRn
ZUlmTmVlZGVkID0geyBub1Njcm9sbCwgYWxpZ25Ub0Nsb3Nlc3RFZGdlLCBhbGlnblRvQ2xvc2Vz
dEVkZ2UgfTsKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFNjcm9sbEFsaWdubWVudCBTY3JvbGxBbGln
bm1lbnQ6OmFsaWduQ2VudGVyQWx3YXlzID0geyBhbGlnbkNlbnRlciwgYWxpZ25DZW50ZXIsIGFs
aWduQ2VudGVyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xs
QmVoYXZpb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oCmlu
ZGV4IDljZTc1YWJmYzY1ZTYzZGUwZmVlZmYxZjM0NWM1MDE3MTNjODBkNzcuLmM5ZTFmMDViZGQ1
YjVmYTBjMjI4Nzg1MWIyYWY1NzVlNzhlNTI4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9TY3JvbGxCZWhhdmlvci5oCkBAIC02MSw2ICs2MSw4IEBAIHN0cnVjdCBTY3JvbGxBbGlnbm1l
bnQgewogICAgIHN0YXRpYyBTY3JvbGxCZWhhdmlvciBnZXRQYXJ0aWFsQmVoYXZpb3IoY29uc3Qg
U2Nyb2xsQWxpZ25tZW50JiBzKSB7IHJldHVybiBzLm1fcmVjdFBhcnRpYWw7IH0KICAgICBzdGF0
aWMgU2Nyb2xsQmVoYXZpb3IgZ2V0SGlkZGVuQmVoYXZpb3IoY29uc3QgU2Nyb2xsQWxpZ25tZW50
JiBzKSB7IHJldHVybiBzLm1fcmVjdEhpZGRlbjsgfQogCisgICAgc3RhdGljIGNvbnN0IFNjcm9s
bEFsaWdubWVudCBhbGlnbkNlbnRlcklmTm90VmlzaWJsZTsKKyAgICBzdGF0aWMgY29uc3QgU2Ny
b2xsQWxpZ25tZW50IGFsaWduVG9FZGdlSWZOb3RWaXNpYmxlOwogICAgIHN0YXRpYyBjb25zdCBT
Y3JvbGxBbGlnbm1lbnQgYWxpZ25DZW50ZXJJZk5lZWRlZDsKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWduVG9FZGdlSWZOZWVkZWQ7CiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnbkNlbnRlckFsd2F5
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCBjZjFl
YWYyOWZiYWNlYTIwMmQzYzE2ZWNiN2EyMmQ2ODRmMzNkMTBlLi5hN2U0OWM4N2Q4MjY4MDA5MmRm
NjRkN2Y5Y2MyMjRiOGM5YmUwZGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oCkBAIC03Miw2ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IGNyZWF0ZU5ld1BhZ2UoV2ViS2l0OjpXZWJQYWdl
UHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYktpdDo6TmF2
aWdhdGlvbkFjdGlvbkRhdGEmKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lk
IHNob3dQYWdlKFdlYktpdDo6V2ViUGFnZVByb3h5KikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGZ1
bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShXZWJLaXQ6OldlYlBhZ2VQcm94eSopIHsgfQorICAg
IHZpcnR1YWwgYm9vbCBpc1BhZ2VWaXNpYmxlKFdlYktpdDo6V2ViUGFnZVByb3h5KikgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oV2ViS2l0OjpX
ZWJQYWdlUHJveHkqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oV2Vi
S2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoV2ViS2l0OjpX
ZWJQYWdlUHJveHkqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggOTUxZWI5N2IyNmZmNzQ4YjQ0
NzcxMWU0OGY5ODcwMDM0NDAyNGJkOS4uOTMyNmUxN2I4NTg5MmU2ZGI0MTViZmExM2EyYmMxZGM1
YzVhYTkwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAKIAogLSAodm9pZClf
d2ViVmlld0Nsb3NlOihXS1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClfd2ViVmlld0Z1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZTooV0tXZWJWaWV3ICopd2ViVmlldzsKKy0gKEJPT0wpX3dl
YlZpZXdJc1BhZ2VWaXNpYmxlOihXS1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClfd2ViVmll
d0RpZEVudGVyRnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUoV0tf
TUFDX1RCQSwgOF8zKTsKIC0gKHZvaWQpX3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgOF8zKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggNjM3YmFmMDJjMzM0NThh
NTgyOTUyMDAwYTJmMzU3NTUyYmIxNjAzMi4uZDA3MjE1YmE0YzM3YWRiZGVhZThmMGRkMGJkZGI5
ZGE3ZmVlY2JlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5oCkBAIC02MSw2ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gY3JlYXRlTmV3UGFnZShXZWJLaXQ6OldlYlBhZ2VQcm94
eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViS2l0OjpOYXZpZ2F0
aW9uQWN0aW9uRGF0YSYpIG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoV2Vi
S2l0OjpXZWJQYWdlUHJveHkqKSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIGZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZShXZWJLaXQ6OldlYlBhZ2VQcm94eSopIG92ZXJyaWRlOwor
ICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQYWdlVmlzaWJsZShXZWJLaXQ6OldlYlBhZ2VQcm94eSop
IG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKFdlYktp
dDo6V2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0
RnVsbHNjcmVlbihXZWJLaXQ6OldlYlBhZ2VQcm94eSopIG92ZXJyaWRlOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3Qg
V1RGOjpTdHJpbmcmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KCk+IGNvbXBsZXRpb25IYW5kbGVyKSBvdmVycmlkZTsKQEAgLTkwLDYgKzkxLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3UHJpbnRGcmFtZSA6IDE7CiAgICAgICAgIGJvb2wgd2Vi
Vmlld0Nsb3NlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3SXNQYWdlVmlzaWJsZSA6IDE7CiAgICAg
ICAgIGJvb2wgd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbiA6IDE7CiAgICAgICAgIGJvb2wgd2Vi
Vmlld0RpZEV4aXRGdWxsc2NyZWVuIDogMTsKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IDgxNzVhN2VmMGVkMWU5
NmY0NmQ1ZmY2M2I0ZmYwZGNjZWFhMDNiYTMuLjdjMGU5MTA1ZjIzNGZjMzQzODA3OWYyYTEwMGM0
MzE2N2IxZDM4N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCkBAIC03Myw2ICs3Myw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQg
PFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1By
aW50RnJhbWUgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmll
dzpwcmludEZyYW1lOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDbG9zZSA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3Q2xvc2U6KV07CiAg
ICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJc1Bh
Z2VWaXNpYmxlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXdJc1BhZ2VWaXNpYmxlOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFbnRl
ckZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
Vmlld0RpZEVudGVyRnVsbHNjcmVlbjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGlkRXhpdEZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOildOwogI2lmIFBMQVRGT1JNKElPUykKQEAgLTI1
NCw2ICsyNTUsMTggQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKFdlYktpdDo6V2ViUGFnZVByb3h5KikKICAgICBbKGlkIDxXS1VJRGVsZWdh
dGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZTpt
X3VpRGVsZWdhdGUubV93ZWJWaWV3XTsKIH0KIAorYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6
aXNQYWdlVmlzaWJsZShXZWJLaXQ6OldlYlBhZ2VQcm94eSopCit7CisgICAgaWYgKCFtX3VpRGVs
ZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0lzUGFnZVZpc2libGUpCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIAorICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxl
Z2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAKKyAgICByZXR1cm4gWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZp
ZXdJc1BhZ2VWaXNpYmxlOm1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXddOworfQorCiB2b2lkIFVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpkaWRFbnRlckZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQYWdlUHJveHkq
KQogewogICAgIGlmICghbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRF
bnRlckZ1bGxzY3JlZW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IDQ0YzQwYzU1OTlmM2IyMGIyMTM2MTYwMzJiZjk3MDQyOTAwMmY5MTUuLjM4NTY4MzMz
NzM3MTcyZjdkZjcwNTA2NWUxZThjZTM3OTBmYWQ3NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zMzA1LDYgKzMzMDUsMTEgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpCiAgICAgbV91aUNsaWVudC0+ZnVs
bHNjcmVlbk1heVJldHVyblRvSW5saW5lKHRoaXMpOwogfQogCitib29sIFdlYlBhZ2VQcm94eTo6
aXNQYWdlVmlzaWJsZSgpCit7CisgICAgcmV0dXJuIG1fdWlDbGllbnQtPmlzUGFnZVZpc2libGUo
dGhpcyk7Cit9CisgICAgCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRW50ZXJGdWxsc2NyZWVuKCkK
IHsKICAgICBtX3VpQ2xpZW50LT5kaWRFbnRlckZ1bGxzY3JlZW4odGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDJiMTQ3MGUxODJmMjYxZWZjNzc3ZGE5
NDNkMTExMzllNDMzN2UyNC4uYTUwYjhjNWY4NDdmMjlkNDlmY2E3NjJlMTRmZTg1MzBiMWZmMWVl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjg3LDYgKzI4
Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFkZHNWaXNpdGVkTGlua3MoYm9vbCBhZGRzVmlz
aXRlZExpbmtzKSB7IG1fYWRkc1Zpc2l0ZWRMaW5rcyA9IGFkZHNWaXNpdGVkTGlua3M7IH0KIAog
ICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7CisgICAgYm9vbCBpc1BhZ2VW
aXNpYmxlKCk7CiAgICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKTsKICAgICB2b2lkIGRpZEV4
aXRGdWxsc2NyZWVuKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IGEwY2FmY2Nk
ODkxNmI2ODVjMGQ1MWM2MjRjNDNkMDRjM2M2ZjFmMWMuLjhhYzZiNDg1NWI0MWJmOGUzNTkxZDMx
YTQ4YzA1OTE4Zjc1YzA0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtNTksNyAr
NTksOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0U2Vla2FibGVSYW5nZXNWZWN0b3IoY29uc3Qg
VmVjdG9yPHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+Jik7CiAgICAgdm9pZCBzZXRFeHRlcm5h
bFBsYXliYWNrUHJvcGVydGllcyhib29sIGVuYWJsZWQsIHVpbnQzMl90IHRhcmdldFR5cGUsIFN0
cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKTsKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdl
ZChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBvdmVycmlk
ZTsKLSAgICAKKyAgICB2b2lkIHByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShib29sIHZpc2libGUs
IFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCkgb3ZlcnJpZGU7CisKICAgICAvLyBGdWxsc2Ny
ZWVuIE9ic2VydmVyCiAgICAgdmlydHVhbCB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYjc2M2IwMzg3
Mzk4NDY1ZWU1YzU3Mzc3NzY2Y2Q2Mjc4NDhmZjczMC4uYzcyOGMwYmJjOGI2YTIyM2RjYzVlOWYw
NDdiMjhjMGE3NWZmYTQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KQEAgLTM2LDUgKzM2LDYgQEAgbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5IHsKICAgICBFbnRlckZ1bGxzY3JlZW4oKQogICAgIEV4aXRGdWxsc2NyZWVu
KFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQogICAgIENsZWFudXBGdWxsc2NyZWVuKCkKKyAg
ICBQcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0
IGlubGluZVJlY3QpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KaW5kZXgg
M2NhZmFjMWI1NzYwOWUxYzdhODdlNDQ4NDhlNmFkN2Q0ZjM4ZjQyMC4uZWUzNzdlOWE4NDgyOTY3
MjU4ZjEzYjE2MGNhZThkNWUyOTkwMTU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0K
QEAgLTExOSw3ICsxMTksMTQgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OnNldEV4dGVybmFsUGxheWJhY2tQcm9wZXJ0aWVzKGJvb2wgZW5hYmxlZCwKICAgICAKIHZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9Jbmxp
bmUoKQogeworICAgIGJvb2wgaXNQYWdlVmlzaWJsZSA9IG1fcGFnZS0+aXNQYWdlVmlzaWJsZSgp
OworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
RnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKGlzUGFnZVZpc2libGUpLCBtX3BhZ2UtPnBhZ2VJ
RCgpKTsKK30KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVw
YXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGlu
ZVJlY3QpCit7CiAgICAgbV9wYWdlLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKKyAg
ICBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb1JldHVyblRvSW5s
aW5lKHZpc2libGUsIGlubGluZVJlY3QpOwogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRl
eCA0ZjUzNmE2NzQ5MGJiYTdjZjFlNGEwNDE0YjY4ZmExOTVkNzQyNTg5Li4zMzRlYWVjYzc0NmE2
NjcxMzFjNTg2OTBhMDFhYjkwMTBiN2FkMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC04Niw2
ICs4Niw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4o
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVkKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKGJvb2wgaXNQYWdlVmlzaWJsZSk7CiAgICAg
dm9pZCBzZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywg
SVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCk7CiAgICAgCiAgICAgV2ViUGFnZSogbV9wYWdlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYTk4ODZmYmQ0ZWQ3NTlk
MmRlN2Y5MjI5Nzg2ZjNkZmI3YjBlNWU4Ni4uZDNjNjhhMzY2Y2Y4MTU0ZWRkZGIxODZkZDJlNmM5
MzQ3ZmRhNTJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC00
Miw1ICs0Miw2IEBAIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAg
IFNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCiAgICAgU2VsZWN0TGVnaWJs
ZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQogICAgIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNj
cmVlbk1vZGUpCisgICAgRnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKGJvb2wgaXNQYWdlVmlz
aWJsZSkKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggMDRhNDYwNDBhNGNjZTBj
MTEwZDcxOWMyNzkwZjQ1MGZlMGNkMGY2Yi4uOWNlZWI4YmVjZWQzNzgyMmM4ZjUxYzhiZWYxMzJl
N2RlNmE2YTlhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0yNTgsNiArMjU4LDEzIEBAIHZv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVu
c2lnbmVkIGdyYXZpdHkpCiAgICAgc2V0VmlkZW9MYXllckdyYXZpdHkoKFdlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsOjpWaWRlb0dyYXZpdHkpZ3Jhdml0eSk7CiB9CiAgICAgCit2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShib29sIGlzUGFn
ZVZpc2libGUpCit7CisgICAgaWYgKCFpc1BhZ2VWaXNpYmxlKQorICAgICAgICBtX3ZpZGVvRWxl
bWVudC0+c2Nyb2xsSW50b1ZpZXdJZk5vdFZpc2libGUoZmFsc2UpOworICAgIG1fcGFnZS0+c2Vu
ZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpQcmVwYXJlZFRvUmV0
dXJuVG9JbmxpbmUodHJ1ZSwgY2xpZW50UmVjdEZvckVsZW1lbnQobV92aWRlb0VsZW1lbnQuZ2V0
KCkpKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisgICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OnNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChXZWJDb3JlOjpGbG9hdFJlY3QgYm91
bmRzLCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KQogewogICAgIGlmIChtX2xheWVySG9zdGlu
Z0NvbnRleHQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247964</attachid>
            <date>2015-03-05 10:20:07 -0800</date>
            <delta_ts>2015-03-05 14:58:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141439-20150305101947.patch</filename>
            <type>text/plain</type>
            <size>20701</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI5ZDYwOTEzYjhmMTFj
YTM3NjIwNGQ4MWJlYmI1Yzk2NTI4NzU3NS4uZTE0ZmUzZjNjM2E1N2RjYmJlNTkwMDViYWZmM2U3
MjkzZjQ5ZjEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAzLTA1ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgdG8gbWFrZSB0
aGUgdmlkZW8gZWxlbWVudCB2aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2NyZWVuLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNDM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCB3aWxs
IHNjcm9sbCB0aGUgZWxlbWVudCBzbyBpdCBpcyB2aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2Ny
ZWVuLAorICAgICAgICBidXQgb25seSBpZiB0aGUgZWxlbWVudCBpcyBjb21wbGV0ZWx5IHNjcm9s
bGVkIG9mZiBzY3JlZW4uCisgICAgICAgIEFsc28gdXBkYXRlIHRoZSBlbGVtZW50IHNjcmVlbiBy
ZWN0IHNvIGV4aXQgYW5pbWF0aW9uIGdvZXMgdG8gdGhlIGNvcnJlY3QgbG9jYXRpb24uCisKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZSk6IEFkZGVk
LgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6IEFkZCBkZWNsYXJhdGlvbiBmb3Igc2Nyb2xsSW50
b1ZpZXdJZk5vdFZpc2libGUuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlciBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmVdKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW06CisgICAgICAgICgt
W1dlYkFWUGxheWVyQ29udHJvbGxlciBwbGF5ZXJWaWV3Q29udHJvbGxlcjpyZXN0b3JlVXNlcklu
dGVyZmFjZUZvck9wdGltaXplZEZ1bGxzY3JlZW5TdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyOl0p
OgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvU2Ny
b2xsQmVoYXZpb3IuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oOgor
CiAyMDE1LTAzLTAyICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjE4MDg4Mik6IEJ1aWxkIGZhaWx1cmU6IE1ldGhvZHMgbm90IG1hcmtl
ZCBvdmVycmlkZSBpbiBHcmFwaGljc0xheWVyQ0EuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDJhNmY5MmE3Mjhj
ZTlmYmU3NGQyMDUxNTkzZmFkY2EzNDA1YmFmYTguLmU3NjkzNzU5OWVjY2IxMGJhYjg1YjA5NDZh
ZTJhZmFhZmFkMGRmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxNS0wMy0wNSAg
SmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAgICAgICAgU2Nyb2xsIHRvIG1h
a2UgdGhlIHZpZGVvIGVsZW1lbnQgdmlzaWJsZSB3aGVuIGV4aXRpbmcgZnVsbHNjcmVlbi4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTQzOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
d2lsbCByZXN0b3JlIGludGVyZmFjZSBzdGF0ZSB3aGVuIGV4aXRpbmcgZnVsbHNjcmVlbi4KKyAg
ICAgICAgQWRkcyBpc1BhZ2VWaXNpYmxlIHNvIHNjcm9sbGluZyBvbmx5IGhhcHBlbnMgaWYgdGhl
IHBhZ2UgaXMgbm90IHZpc2libGUuCisgICAgICAgIEFkZHMgcHJlcGFyZWRUb1JldHVyblRvSW5s
aW5lIHRvIGNvbnRpbnVlIGV4aXRpbmcgb25jZSB0aGUgaW50ZXJmYWNlIGlzIHVwZGF0ZWQuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6IEFkZCBpc1BhZ2VWaXNpYmxl
CisgICAgICAgIChBUEk6OlVJQ2xpZW50Ojppc1BhZ2VWaXNpYmxlKTogZGl0dG8KKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOiBkaXR0bworICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLm1tOiBkaXR0bworICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRl
OjpzZXREZWxlZ2F0ZSk6IGRpdHRvCisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xp
ZW50Ojppc1BhZ2VWaXNpYmxlKTogYWRkZWQKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppc1BhZ2VWaXNpYmxlKTog
YWRkZWQKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IGRpdHRvCisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6IGFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6CisKIDIwMTUtMDMtMDIgIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJzaXRlRGF0YVN0b3JlIHNob3VsZCBz
dXBwb3J0IGdldHRpbmcgY29va2llIGhvc3QgbmFtZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRl
eCA3ZGZlY2JkNWU1ZWE2MmM0MDdiYjVkOGQxN2EyNTMxNmZhMWIzNWFmLi5kOWIwNWU4OTdiYjlj
NGMxYTgwZTNiMTkwNTM1ODZkNzg1OTY1MDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC02
MTYsNiArNjE2LDIwIEBAIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChib29s
IGNlbnRlcklmTmVlZGVkKQogICAgICAgICByZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxl
KGJvdW5kcywgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGln
bm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQpOwogfQogCit2b2lkIEVsZW1lbnQ6OnNjcm9sbElu
dG9WaWV3SWZOb3RWaXNpYmxlKGJvb2wgY2VudGVySWZOb3RWaXNpYmxlKQoreworICAgIGRvY3Vt
ZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgCisgICAg
aWYgKCFyZW5kZXJlcigpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgTGF5b3V0UmVjdCBi
b3VuZHMgPSByZW5kZXJlcigpLT5hbmNob3JSZWN0KCk7CisgICAgaWYgKGNlbnRlcklmTm90Vmlz
aWJsZSkKKyAgICAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShib3VuZHMsIFNj
cm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5vdFZpc2libGUsIFNjcm9sbEFsaWdubWVudDo6
YWxpZ25DZW50ZXJJZk5vdFZpc2libGUpOworICAgIGVsc2UKKyAgICAgICAgcmVuZGVyZXIoKS0+
c2Nyb2xsUmVjdFRvVmlzaWJsZShib3VuZHMsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJ
Zk5vdFZpc2libGUsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5vdFZpc2libGUpOwor
fQorICAgIAogdm9pZCBFbGVtZW50OjpzY3JvbGxCeVVuaXRzKGludCB1bml0cywgU2Nyb2xsR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IGI4ZmVkOWJhZTIz
NWUxMjZkMWMxYzRjZmU2YTBlMDU1OTBhNDI0YTYuLjYxMmVjNDM3OWJlOTUwNTUxNjM0NjA1Njhl
Mzc0YThiMWRkNDJiNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMTkxLDYgKzE5MSw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2Nyb2xsSW50b1ZpZXcoYm9vbCBhbGlnblRvVG9wID0gdHJ1ZSk7
CiAgICAgdm9pZCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkKGJvb2wgY2VudGVySWZOZWVkZWQgPSB0
cnVlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbEludG9WaWV3SWZOb3RWaXNpYmxl
KGJvb2wgY2VudGVySWZOb3RWaXNpYmxlID0gdHJ1ZSk7CiAKICAgICB2b2lkIHNjcm9sbEJ5TGlu
ZXMoaW50IGxpbmVzKTsKICAgICB2b2lkIHNjcm9sbEJ5UGFnZXMoaW50IHBhZ2VzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCmluZGV4IDE1MWExYzA2NzlhNjUzYWFkYzI1MWRkMjA0
Yzg4Nzk4OGM3MjYxNGYuLmE4NjUzODA0YTY4NTJmZDAxYWZhZDhmZGFkOTRkZDYzNTFhYWRkYjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpAQCAtMTgzLDYgKzE4Myw3IEBAIHB1
YmxpYzoKIAogLSAodm9pZClmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUKIHsKKyAgICBfaW50
ZXJmYWNlLT5wcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodHJ1ZSwgX3ZpZGVvRWxlbWVudC0+Y2xp
ZW50UmVjdCgpKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAppbmRleCAz
ZDgyNDFlOGFlNzY0MWYxMjM4MDRjMmEwZjFmZTIxM2NjOTFlMjhhLi44NTlkNzBmNDYzZDNhMzY0
OTZlZjFiOGYyYWFlNGZiMmY0ODYwNWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaApA
QCAtOTAsMTEgKzkwLDEyIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZv
aWQgY2xlYW51cEZ1bGxzY3JlZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCByZXF1ZXN0SGlk
ZUFuZEV4aXRGdWxsc2NyZWVuKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHBy
ZXBhcmVkVG9SZXR1cm5Ub0lubGluZShib29sIHZpc2libGUsIEludFJlY3QgaW5saW5lUmVjdCk7
CiAKICAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25z
dCB7IHJldHVybiBtX21vZGU7IH0KICAgICB2b2lkIHNldElzT3B0aW1pemVkKGJvb2wpOwogICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgbWF5QXV0b21hdGljYWxseVNob3dWaWRlb09wdGltaXplZCgp
OwotICAgIGJvb2wgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7CisgICAgdm9pZCBmdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgYmVnaW5T
ZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggODQxNGUzYzk3OGRk
NWYxYjMxZTFiYTlkYmQ5NDMyY2NmZTE2NzczMy4uYmZkNzI3NDU5ZWYwN2JmMmFiNTk2YjNjNjJl
MzMxZjViYjliYmFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpAQCAtMTI1LDYg
KzEyNSw4IEBAIFNPRlRfTElOS19DT05TVEFOVChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRl
LCBDTVRpbWUpCiBAcHJvcGVydHkgQVZQbGF5ZXJDb250cm9sbGVyRXh0ZXJuYWxQbGF5YmFja1R5
cGUgZXh0ZXJuYWxQbGF5YmFja1R5cGU7CiBAcHJvcGVydHkgKHJldGFpbikgTlNTdHJpbmcgKmV4
dGVybmFsUGxheWJhY2tBaXJQbGF5RGV2aWNlTG9jYWxpemVkTmFtZTsKIAorQHByb3BlcnR5IChj
b3B5KSB2b2lkICheZXhpdE9wdGltaXplZENhbGxiYWNrKShCT09MIHJlc3RvcmVkKTsKKwogLSAo
Qk9PTClwbGF5ZXJWaWV3Q29udHJvbGxlcjooQVZQbGF5ZXJWaWV3Q29udHJvbGxlciAqKXBsYXll
clZpZXdDb250cm9sbGVyIHNob3VsZEV4aXRGdWxsU2NyZWVuV2l0aFJlYXNvbjooQVZQbGF5ZXJW
aWV3Q29udHJvbGxlckV4aXRGdWxsU2NyZWVuUmVhc29uKXJlYXNvbjsKIEBlbmQKIApAQCAtMjEx
LDEzICsyMTMsMTUgQEAgU09GVF9MSU5LX0NPTlNUQU5UKENvcmVNZWRpYSwga0NNVGltZUluZGVm
aW5pdGUsIENNVGltZSkKIC0gKHZvaWQpcGxheWVyVmlld0NvbnRyb2xsZXI6KEFWUGxheWVyVmll
d0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxlciByZXN0b3JlVXNlckludGVyZmFjZUZv
ck9wdGltaXplZEZ1bGxzY3JlZW5TdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShC
T09MIHJlc3RvcmVkKSljb21wbGV0aW9uSGFuZGxlcgogewogICAgIFVOVVNFRF9QQVJBTShwbGF5
ZXJWaWV3Q29udHJvbGxlcik7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoc2VsZi5mdWxsc2NyZWVu
SW50ZXJmYWNlLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSk7CisgICAgc2VsZi5leGl0
T3B0aW1pemVkQ2FsbGJhY2sgPSBjb21wbGV0aW9uSGFuZGxlcjsKKyAgICBzZWxmLmZ1bGxzY3Jl
ZW5JbnRlcmZhY2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwogfQogCiAtICh2b2lk
KXBsYXllclZpZXdDb250cm9sbGVyV2lsbENhbmNlbE9wdGltaXplZEZ1bGxzY3JlZTooQVZQbGF5
ZXJWaWV3Q29udHJvbGxlciAqKXBsYXllclZpZXdDb250cm9sbGVyCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHBsYXllclZpZXdDb250cm9sbGVyKTsKLSAgICBBU1NFUlQoc2VsZi5kZWxlZ2F0ZSk7Cisg
ICAgaWYgKCFzZWxmLmRlbGVnYXRlKQorICAgICAgICByZXR1cm4KICAgICBzZWxmLmRlbGVnYXRl
LT5yZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKTsKIH0KIApAQCAtMTE0OSw2ICsxMTUzLDIyIEBAIHZv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJlcXVlc3RIaWRlQW5kRXhpdEZ1
bGxzY3JlZW4oKQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5yZXF1ZXN0RXhpdEZ1
bGxzY3JlZW4oKTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgSW50UmVjdCBpbmxpbmVSZWN0
KQoreworICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gc3Ryb25n
VGhpcyh0aGlzKTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBbc3Ryb25nVGhpcywgdmlzaWJsZSwgaW5saW5lUmVjdF0geworICAgICAgICBpZiAoc3Ryb25n
VGhpcy0+bV9wbGF5ZXJDb250cm9sbGVyLmdldCgpLmV4aXRPcHRpbWl6ZWRDYWxsYmFjaykgewor
ICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc3Ryb25nVGhpcy0+bV92aWV3Q29udHJvbGxl
cikKKyAgICAgICAgICAgICAgICBbc3Ryb25nVGhpcy0+bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2
aWV3XS5mcmFtZSA9IFtzdHJvbmdUaGlzLT5tX3BhcmVudFZpZXcgY29udmVydFJlY3Q6aW5saW5l
UmVjdCB0b1ZpZXc6bmlsXTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBbc3Ry
b25nVGhpcy0+bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XS5mcmFtZSA9IGlubGluZVJlY3Q7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN0cm9uZ1RoaXMtPm1fcGxheWVyQ29udHJvbGxl
ci5nZXQoKS5leGl0T3B0aW1pemVkQ2FsbGJhY2sodmlzaWJsZSk7CisgICAgICAgIH0KKyAgICB9
KTsKK30KKwogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0SXNPcHRp
bWl6ZWQoYm9vbCBhY3RpdmUpCiB7CiAgICAgaWYgKG1fbW9kZSAmIEhUTUxNZWRpYUVsZW1lbnQ6
OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgewpAQCAtMTE4NywxMCArMTIwNywxMCBAQCBi
b29sIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjptYXlBdXRvbWF0aWNhbGx5U2hv
d1ZpZGVvT3B0aW1pemVkKCkKICAgICByZXR1cm4gW21fcGxheWVyQ29udHJvbGxlciBpc1BsYXlp
bmddICYmIG1fbW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3Rh
bmRhcmQgJiYgd2tJc09wdGltaXplZEZ1bGxzY3JlZW5TdXBwb3J0ZWQoKTsKIH0KIAotYm9vbCBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5s
aW5lKCkKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZSgpCiB7Ci0gICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmZ1
bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwotICAgIHJldHVybiB0cnVlOworICAgIGlmICht
X2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXItPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwogfQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuY3BwCmluZGV4IGI1OGIzMzE4NGU2
YWYyZGI0NTE3ZTRlM2Q2YWNmOTk4MjYwOGYwNmYuLmRhNjVkYWM1N2QxODRjMGUzYzdlZWUyZTZk
NDE3NzkxYzc1Y2RkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3Jv
bGxCZWhhdmlvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Njcm9sbEJlaGF2
aW9yLmNwcApAQCAtNDYsNiArNDYsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NvbnN0
IFNjcm9sbEFsaWdubWVudCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOb3RWaXNpYmxl
ID0geyBub1Njcm9sbCwgYWxpZ25DZW50ZXIsIG5vU2Nyb2xsIH07CitXRUJDT1JFX0VYUE9SVCBj
b25zdCBTY3JvbGxBbGlnbm1lbnQgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTm90Vmlz
aWJsZSA9IHsgbm9TY3JvbGwsIGFsaWduVG9DbG9zZXN0RWRnZSwgbm9TY3JvbGwgfTsKIGNvbnN0
IFNjcm9sbEFsaWdubWVudCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQgPSB7
IG5vU2Nyb2xsLCBhbGlnbkNlbnRlciwgYWxpZ25Ub0Nsb3Nlc3RFZGdlIH07CiBXRUJDT1JFX0VY
UE9SVCBjb25zdCBTY3JvbGxBbGlnbm1lbnQgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlm
TmVlZGVkID0geyBub1Njcm9sbCwgYWxpZ25Ub0Nsb3Nlc3RFZGdlLCBhbGlnblRvQ2xvc2VzdEVk
Z2UgfTsKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFNjcm9sbEFsaWdubWVudCBTY3JvbGxBbGlnbm1l
bnQ6OmFsaWduQ2VudGVyQWx3YXlzID0geyBhbGlnbkNlbnRlciwgYWxpZ25DZW50ZXIsIGFsaWdu
Q2VudGVyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVo
YXZpb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oCmluZGV4
IDljZTc1YWJmYzY1ZTYzZGUwZmVlZmYxZjM0NWM1MDE3MTNjODBkNzcuLmM5ZTFmMDViZGQ1YjVm
YTBjMjI4Nzg1MWIyYWY1NzVlNzhlNTI4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9TY3JvbGxCZWhhdmlvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9T
Y3JvbGxCZWhhdmlvci5oCkBAIC02MSw2ICs2MSw4IEBAIHN0cnVjdCBTY3JvbGxBbGlnbm1lbnQg
ewogICAgIHN0YXRpYyBTY3JvbGxCZWhhdmlvciBnZXRQYXJ0aWFsQmVoYXZpb3IoY29uc3QgU2Ny
b2xsQWxpZ25tZW50JiBzKSB7IHJldHVybiBzLm1fcmVjdFBhcnRpYWw7IH0KICAgICBzdGF0aWMg
U2Nyb2xsQmVoYXZpb3IgZ2V0SGlkZGVuQmVoYXZpb3IoY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBz
KSB7IHJldHVybiBzLm1fcmVjdEhpZGRlbjsgfQogCisgICAgc3RhdGljIGNvbnN0IFNjcm9sbEFs
aWdubWVudCBhbGlnbkNlbnRlcklmTm90VmlzaWJsZTsKKyAgICBzdGF0aWMgY29uc3QgU2Nyb2xs
QWxpZ25tZW50IGFsaWduVG9FZGdlSWZOb3RWaXNpYmxlOwogICAgIHN0YXRpYyBjb25zdCBTY3Jv
bGxBbGlnbm1lbnQgYWxpZ25DZW50ZXJJZk5lZWRlZDsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWduVG9FZGdlSWZOZWVkZWQ7CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnbkNlbnRlckFsd2F5czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCBjZjFlYWYy
OWZiYWNlYTIwMmQzYzE2ZWNiN2EyMmQ2ODRmMzNkMTBlLi5hN2U0OWM4N2Q4MjY4MDA5MmRmNjRk
N2Y5Y2MyMjRiOGM5YmUwZGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElV
SUNsaWVudC5oCkBAIC03Miw2ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IGNyZWF0ZU5ld1BhZ2UoV2ViS2l0OjpXZWJQYWdlUHJv
eHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYktpdDo6TmF2aWdh
dGlvbkFjdGlvbkRhdGEmKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIHNo
b3dQYWdlKFdlYktpdDo6V2ViUGFnZVByb3h5KikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZShXZWJLaXQ6OldlYlBhZ2VQcm94eSopIHsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1BhZ2VWaXNpYmxlKFdlYktpdDo6V2ViUGFnZVByb3h5KikgeyByZXR1cm4g
dHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQ
YWdlUHJveHkqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oV2ViS2l0
OjpXZWJQYWdlUHJveHkqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoV2ViS2l0OjpXZWJQ
YWdlUHJveHkqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5oCmluZGV4IDYzN2JhZjAyYzMzNDU4YTU4Mjk1MjAwMGEyZjM1NzU1MmJiMTYwMzIuLjc3OTk4
OTVkOWQ3NWYyMzgyZTgwZDQ0ZGU5ZGY4NGE2NTU5Y2ViMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtNjEsNiArNjEsNyBAQCBwcml2YXRlOgog
ICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IGNyZWF0ZU5l
d1BhZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJl
cyYsIGNvbnN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEmKSBvdmVycmlkZTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIGNsb3NlKFdlYktpdDo6V2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoV2ViS2l0OjpX
ZWJQYWdlUHJveHkqKSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCBib29sIGlzUGFnZVZpc2li
bGUoV2ViS2l0OjpXZWJQYWdlUHJveHkqKSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lk
IGRpZEVudGVyRnVsbHNjcmVlbihXZWJLaXQ6OldlYlBhZ2VQcm94eSopIG92ZXJyaWRlOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQYWdlUHJveHkq
KSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJL
aXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFtZVBy
b3h5Kiwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IDgx
NzVhN2VmMGVkMWU5NmY0NmQ1ZmY2M2I0ZmYwZGNjZWFhMDNiYTMuLjYxMjU4NWI1YzRhMGM1NjJh
YzZmYTI2NDc2NzQ5OTI2NGY2NTllOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tCkBAIC0yNTQsNiArMjU0LDExIEBAIHZvaWQgVUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShXZWJLaXQ6OldlYlBhZ2VQcm94
eSopCiAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXdGdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU6bV91aURlbGVnYXRlLm1fd2ViVmlld107CiB9CiAKK2Jv
b2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmlzUGFnZVZpc2libGUoV2ViS2l0OjpXZWJQYWdlUHJv
eHkqKQoreworICAgIHJldHVybiAhW21fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgaXNIaWRkZW5dICYm
IFttX3VpRGVsZWdhdGUubV93ZWJWaWV3IHdpbmRvd10gIT0gbmlsOworfQorCiB2b2lkIFVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpkaWRFbnRlckZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQYWdlUHJveHkq
KQogewogICAgIGlmICghbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRF
bnRlckZ1bGxzY3JlZW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IDQ0YzQwYzU1OTlmM2IyMGIyMTM2MTYwMzJiZjk3MDQyOTAwMmY5MTUuLjM4NTY4MzMz
NzM3MTcyZjdkZjcwNTA2NWUxZThjZTM3OTBmYWQ3NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zMzA1LDYgKzMzMDUsMTEgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpCiAgICAgbV91aUNsaWVudC0+ZnVs
bHNjcmVlbk1heVJldHVyblRvSW5saW5lKHRoaXMpOwogfQogCitib29sIFdlYlBhZ2VQcm94eTo6
aXNQYWdlVmlzaWJsZSgpCit7CisgICAgcmV0dXJuIG1fdWlDbGllbnQtPmlzUGFnZVZpc2libGUo
dGhpcyk7Cit9CisgICAgCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRW50ZXJGdWxsc2NyZWVuKCkK
IHsKICAgICBtX3VpQ2xpZW50LT5kaWRFbnRlckZ1bGxzY3JlZW4odGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDJiMTQ3MGUxODJmMjYxZWZjNzc3ZGE5
NDNkMTExMzllNDMzN2UyNC4uYTUwYjhjNWY4NDdmMjlkNDlmY2E3NjJlMTRmZTg1MzBiMWZmMWVl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjg3LDYgKzI4
Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFkZHNWaXNpdGVkTGlua3MoYm9vbCBhZGRzVmlz
aXRlZExpbmtzKSB7IG1fYWRkc1Zpc2l0ZWRMaW5rcyA9IGFkZHNWaXNpdGVkTGlua3M7IH0KIAog
ICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7CisgICAgYm9vbCBpc1BhZ2VW
aXNpYmxlKCk7CiAgICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKTsKICAgICB2b2lkIGRpZEV4
aXRGdWxsc2NyZWVuKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IGEwY2FmY2Nk
ODkxNmI2ODVjMGQ1MWM2MjRjNDNkMDRjM2M2ZjFmMWMuLjhhYzZiNDg1NWI0MWJmOGUzNTkxZDMx
YTQ4YzA1OTE4Zjc1YzA0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtNTksNyAr
NTksOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0U2Vla2FibGVSYW5nZXNWZWN0b3IoY29uc3Qg
VmVjdG9yPHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+Jik7CiAgICAgdm9pZCBzZXRFeHRlcm5h
bFBsYXliYWNrUHJvcGVydGllcyhib29sIGVuYWJsZWQsIHVpbnQzMl90IHRhcmdldFR5cGUsIFN0
cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKTsKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdl
ZChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBvdmVycmlk
ZTsKLSAgICAKKyAgICB2b2lkIHByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShib29sIHZpc2libGUs
IFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCkgb3ZlcnJpZGU7CisKICAgICAvLyBGdWxsc2Ny
ZWVuIE9ic2VydmVyCiAgICAgdmlydHVhbCB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYjc2M2IwMzg3
Mzk4NDY1ZWU1YzU3Mzc3NzY2Y2Q2Mjc4NDhmZjczMC4uYzcyOGMwYmJjOGI2YTIyM2RjYzVlOWYw
NDdiMjhjMGE3NWZmYTQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KQEAgLTM2LDUgKzM2LDYgQEAgbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5IHsKICAgICBFbnRlckZ1bGxzY3JlZW4oKQogICAgIEV4aXRGdWxsc2NyZWVu
KFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQogICAgIENsZWFudXBGdWxsc2NyZWVuKCkKKyAg
ICBQcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0
IGlubGluZVJlY3QpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KaW5kZXgg
M2NhZmFjMWI1NzYwOWUxYzdhODdlNDQ4NDhlNmFkN2Q0ZjM4ZjQyMC4uZWUzNzdlOWE4NDgyOTY3
MjU4ZjEzYjE2MGNhZThkNWUyOTkwMTU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0K
QEAgLTExOSw3ICsxMTksMTQgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OnNldEV4dGVybmFsUGxheWJhY2tQcm9wZXJ0aWVzKGJvb2wgZW5hYmxlZCwKICAgICAKIHZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9Jbmxp
bmUoKQogeworICAgIGJvb2wgaXNQYWdlVmlzaWJsZSA9IG1fcGFnZS0+aXNQYWdlVmlzaWJsZSgp
OworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
RnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKGlzUGFnZVZpc2libGUpLCBtX3BhZ2UtPnBhZ2VJ
RCgpKTsKK30KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVw
YXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGlu
ZVJlY3QpCit7CiAgICAgbV9wYWdlLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKKyAg
ICBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb1JldHVyblRvSW5s
aW5lKHZpc2libGUsIGlubGluZVJlY3QpOwogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRl
eCA0ZjUzNmE2NzQ5MGJiYTdjZjFlNGEwNDE0YjY4ZmExOTVkNzQyNTg5Li4zMzRlYWVjYzc0NmE2
NjcxMzFjNTg2OTBhMDFhYjkwMTBiN2FkMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC04Niw2
ICs4Niw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4o
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVkKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKGJvb2wgaXNQYWdlVmlzaWJsZSk7CiAgICAg
dm9pZCBzZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywg
SVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCk7CiAgICAgCiAgICAgV2ViUGFnZSogbV9wYWdlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYTk4ODZmYmQ0ZWQ3NTlk
MmRlN2Y5MjI5Nzg2ZjNkZmI3YjBlNWU4Ni4uZDNjNjhhMzY2Y2Y4MTU0ZWRkZGIxODZkZDJlNmM5
MzQ3ZmRhNTJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC00
Miw1ICs0Miw2IEBAIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAg
IFNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCiAgICAgU2VsZWN0TGVnaWJs
ZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQogICAgIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNj
cmVlbk1vZGUpCisgICAgRnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKGJvb2wgaXNQYWdlVmlz
aWJsZSkKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggMDRhNDYwNDBhNGNjZTBj
MTEwZDcxOWMyNzkwZjQ1MGZlMGNkMGY2Yi4uOWNlZWI4YmVjZWQzNzgyMmM4ZjUxYzhiZWYxMzJl
N2RlNmE2YTlhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0yNTgsNiArMjU4LDEzIEBAIHZv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVu
c2lnbmVkIGdyYXZpdHkpCiAgICAgc2V0VmlkZW9MYXllckdyYXZpdHkoKFdlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsOjpWaWRlb0dyYXZpdHkpZ3Jhdml0eSk7CiB9CiAgICAgCit2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShib29sIGlzUGFn
ZVZpc2libGUpCit7CisgICAgaWYgKCFpc1BhZ2VWaXNpYmxlKQorICAgICAgICBtX3ZpZGVvRWxl
bWVudC0+c2Nyb2xsSW50b1ZpZXdJZk5vdFZpc2libGUoZmFsc2UpOworICAgIG1fcGFnZS0+c2Vu
ZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpQcmVwYXJlZFRvUmV0
dXJuVG9JbmxpbmUodHJ1ZSwgY2xpZW50UmVjdEZvckVsZW1lbnQobV92aWRlb0VsZW1lbnQuZ2V0
KCkpKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisgICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OnNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChXZWJDb3JlOjpGbG9hdFJlY3QgYm91
bmRzLCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KQogewogICAgIGlmIChtX2xheWVySG9zdGlu
Z0NvbnRleHQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248004</attachid>
            <date>2015-03-05 14:58:07 -0800</date>
            <delta_ts>2015-03-05 15:02:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141439-20150305145747.patch</filename>
            <type>text/plain</type>
            <size>16220</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI5ZDYwOTEzYjhmMTFj
YTM3NjIwNGQ4MWJlYmI1Yzk2NTI4NzU3NS4uZTE0ZmUzZjNjM2E1N2RjYmJlNTkwMDViYWZmM2U3
MjkzZjQ5ZjEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAzLTA1ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgdG8gbWFrZSB0
aGUgdmlkZW8gZWxlbWVudCB2aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2NyZWVuLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNDM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCB3aWxs
IHNjcm9sbCB0aGUgZWxlbWVudCBzbyBpdCBpcyB2aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2Ny
ZWVuLAorICAgICAgICBidXQgb25seSBpZiB0aGUgZWxlbWVudCBpcyBjb21wbGV0ZWx5IHNjcm9s
bGVkIG9mZiBzY3JlZW4uCisgICAgICAgIEFsc28gdXBkYXRlIHRoZSBlbGVtZW50IHNjcmVlbiBy
ZWN0IHNvIGV4aXQgYW5pbWF0aW9uIGdvZXMgdG8gdGhlIGNvcnJlY3QgbG9jYXRpb24uCisKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZSk6IEFkZGVk
LgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6IEFkZCBkZWNsYXJhdGlvbiBmb3Igc2Nyb2xsSW50
b1ZpZXdJZk5vdFZpc2libGUuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlciBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmVdKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW06CisgICAgICAgICgt
W1dlYkFWUGxheWVyQ29udHJvbGxlciBwbGF5ZXJWaWV3Q29udHJvbGxlcjpyZXN0b3JlVXNlcklu
dGVyZmFjZUZvck9wdGltaXplZEZ1bGxzY3JlZW5TdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyOl0p
OgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvU2Ny
b2xsQmVoYXZpb3IuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oOgor
CiAyMDE1LTAzLTAyICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjE4MDg4Mik6IEJ1aWxkIGZhaWx1cmU6IE1ldGhvZHMgbm90IG1hcmtl
ZCBvdmVycmlkZSBpbiBHcmFwaGljc0xheWVyQ0EuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDJhNmY5MmE3Mjhj
ZTlmYmU3NGQyMDUxNTkzZmFkY2EzNDA1YmFmYTguLjBjOGQzOGExZThlMTNhN2VjOWVkZTBlZmI4
MDYyZmIwMTAzMjI5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNS0wMy0wNSAg
SmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAgICAgICAgU2Nyb2xsIHRvIG1h
a2UgdGhlIHZpZGVvIGVsZW1lbnQgdmlzaWJsZSB3aGVuIGV4aXRpbmcgZnVsbHNjcmVlbi4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTQzOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
d2lsbCByZXN0b3JlIGludGVyZmFjZSBzdGF0ZSB3aGVuIGV4aXRpbmcgZnVsbHNjcmVlbi4KKyAg
ICAgICAgQWRkcyBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUgdG8gY29udGludWUgZXhpdGluZyBv
bmNlIHRoZSBpbnRlcmZhY2UgaXMgdXBkYXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUpOiBhZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9J
bmxpbmUpOgorCiAyMDE1LTAzLTAyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5j
b20+CiAKICAgICAgICAgV2Vic2l0ZURhdGFTdG9yZSBzaG91bGQgc3VwcG9ydCBnZXR0aW5nIGNv
b2tpZSBob3N0IG5hbWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggN2RmZWNiZDVlNWVhNjJj
NDA3YmI1ZDhkMTdhMjUzMTZmYTFiMzVhZi4uZDliMDVlODk3YmI5YzRjMWE4MGUzYjE5MDUzNTg2
ZDc4NTk2NTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNjE2LDYgKzYxNiwyMCBAQCB2
b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3SWZOZWVkZWQoYm9vbCBjZW50ZXJJZk5lZWRlZCkK
ICAgICAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShib3VuZHMsIFNjcm9sbEFs
aWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRn
ZUlmTmVlZGVkKTsKIH0KIAordm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTm90VmlzaWJs
ZShib29sIGNlbnRlcklmTm90VmlzaWJsZSkKK3sKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIAorICAgIGlmICghcmVuZGVyZXIoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIAorICAgIExheW91dFJlY3QgYm91bmRzID0gcmVuZGVyZXIo
KS0+YW5jaG9yUmVjdCgpOworICAgIGlmIChjZW50ZXJJZk5vdFZpc2libGUpCisgICAgICAgIHJl
bmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYm91bmRzLCBTY3JvbGxBbGlnbm1lbnQ6OmFs
aWduQ2VudGVySWZOb3RWaXNpYmxlLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOb3RW
aXNpYmxlKTsKKyAgICBlbHNlCisgICAgICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2li
bGUoYm91bmRzLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOb3RWaXNpYmxlLCBTY3Jv
bGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOb3RWaXNpYmxlKTsKK30KKyAgICAKIHZvaWQgRWxl
bWVudDo6c2Nyb2xsQnlVbml0cyhpbnQgdW5pdHMsIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5KQogewogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBiOGZlZDliYWUyMzVlMTI2ZDFjMWM0Y2ZlNmEw
ZTA1NTkwYTQyNGE2Li42MTJlYzQzNzliZTk1MDU1MTYzNDYwNTY4ZTM3NGE4YjFkZDQyYjYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKQEAgLTE5MSw2ICsxOTEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNjcm9sbEludG9WaWV3KGJvb2wgYWxpZ25Ub1RvcCA9IHRydWUpOwogICAgIHZvaWQgc2Nyb2xs
SW50b1ZpZXdJZk5lZWRlZChib29sIGNlbnRlcklmTmVlZGVkID0gdHJ1ZSk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZShib29sIGNlbnRlcklmTm90
VmlzaWJsZSA9IHRydWUpOwogCiAgICAgdm9pZCBzY3JvbGxCeUxpbmVzKGludCBsaW5lcyk7CiAg
ICAgdm9pZCBzY3JvbGxCeVBhZ2VzKGludCBwYWdlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJB
VktpdC5tbQppbmRleCAxNTFhMWMwNjc5YTY1M2FhZGMyNTFkZDIwNGM4ODc5ODhjNzI2MTRmLi5h
ODY1MzgwNGE2ODUyZmQwMWFmYWQ4ZmRhZDk0ZGQ2MzUxYWFkZGI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyQVZLaXQubW0KQEAgLTE4Myw2ICsxODMsNyBAQCBwdWJsaWM6CiAKIC0gKHZvaWQp
ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lCiB7CisgICAgX2ludGVyZmFjZS0+cHJlcGFyZWRU
b1JldHVyblRvSW5saW5lKHRydWUsIF92aWRlb0VsZW1lbnQtPmNsaWVudFJlY3QoKSk7CiB9CiAK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggM2Q4MjQxZThhZTc2NDFmMTIz
ODA0YzJhMGYxZmUyMTNjYzkxZTI4YS4uODU5ZDcwZjQ2M2QzYTM2NDk2ZWYxYjhmMmFhZTRmYjJm
NDg2MDVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTkwLDExICs5MCwxMiBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNsZWFudXBGdWxsc2Ny
ZWVuKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVl
bigpOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9J
bmxpbmUoYm9vbCB2aXNpYmxlLCBJbnRSZWN0IGlubGluZVJlY3QpOwogCiAgICAgSFRNTE1lZGlh
RWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2Rl
OyB9CiAgICAgdm9pZCBzZXRJc09wdGltaXplZChib29sKTsKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIG1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9PcHRpbWl6ZWQoKTsKLSAgICBib29sIGZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOworICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKCk7CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIGJlZ2luU2Vzc2lvbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IDg0MTRlM2M5NzhkZDVmMWIzMWUxYmE5ZGJkOTQz
MmNjZmUxNjc3MzMuLmJmZDcyNzQ1OWVmMDdiZjJhYjU5NmIzYzYyZTMzMWY1YmI5YmJhYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KQEAgLTEyNSw2ICsxMjUsOCBAQCBTT0ZUX0xJ
TktfQ09OU1RBTlQoQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogQHByb3Bl
cnR5IEFWUGxheWVyQ29udHJvbGxlckV4dGVybmFsUGxheWJhY2tUeXBlIGV4dGVybmFsUGxheWJh
Y2tUeXBlOwogQHByb3BlcnR5IChyZXRhaW4pIE5TU3RyaW5nICpleHRlcm5hbFBsYXliYWNrQWly
UGxheURldmljZUxvY2FsaXplZE5hbWU7CiAKK0Bwcm9wZXJ0eSAoY29weSkgdm9pZCAoXmV4aXRP
cHRpbWl6ZWRDYWxsYmFjaykoQk9PTCByZXN0b3JlZCk7CisKIC0gKEJPT0wpcGxheWVyVmlld0Nv
bnRyb2xsZXI6KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxlciBz
aG91bGRFeGl0RnVsbFNjcmVlbldpdGhSZWFzb246KEFWUGxheWVyVmlld0NvbnRyb2xsZXJFeGl0
RnVsbFNjcmVlblJlYXNvbilyZWFzb247CiBAZW5kCiAKQEAgLTIxMSwxMyArMjEzLDE1IEBAIFNP
RlRfTElOS19DT05TVEFOVChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAt
ICh2b2lkKXBsYXllclZpZXdDb250cm9sbGVyOihBVlBsYXllclZpZXdDb250cm9sbGVyICopcGxh
eWVyVmlld0NvbnRyb2xsZXIgcmVzdG9yZVVzZXJJbnRlcmZhY2VGb3JPcHRpbWl6ZWRGdWxsc2Ny
ZWVuU3RvcFdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCByZXN0b3JlZCkpY29t
cGxldGlvbkhhbmRsZXIKIHsKICAgICBVTlVTRURfUEFSQU0ocGxheWVyVmlld0NvbnRyb2xsZXIp
OwotICAgIGNvbXBsZXRpb25IYW5kbGVyKHNlbGYuZnVsbHNjcmVlbkludGVyZmFjZS0+ZnVsbHNj
cmVlbk1heVJldHVyblRvSW5saW5lKCkpOworICAgIHNlbGYuZXhpdE9wdGltaXplZENhbGxiYWNr
ID0gY29tcGxldGlvbkhhbmRsZXI7CisgICAgc2VsZi5mdWxsc2NyZWVuSW50ZXJmYWNlLT5mdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKIH0KIAogLSAodm9pZClwbGF5ZXJWaWV3Q29udHJv
bGxlcldpbGxDYW5jZWxPcHRpbWl6ZWRGdWxsc2NyZWU6KEFWUGxheWVyVmlld0NvbnRyb2xsZXIg
KilwbGF5ZXJWaWV3Q29udHJvbGxlcgogewogICAgIFVOVVNFRF9QQVJBTShwbGF5ZXJWaWV3Q29u
dHJvbGxlcik7Ci0gICAgQVNTRVJUKHNlbGYuZGVsZWdhdGUpOworICAgIGlmICghc2VsZi5kZWxl
Z2F0ZSkKKyAgICAgICAgcmV0dXJuCiAgICAgc2VsZi5kZWxlZ2F0ZS0+cmVxdWVzdEV4aXRGdWxs
c2NyZWVuKCk7CiB9CiAKQEAgLTExNDksNiArMTE1MywyMiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjpyZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCkKICAgICAg
ICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCk7CiB9CiAK
K3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVkVG9SZXR1cm5U
b0lubGluZShib29sIHZpc2libGUsIEludFJlY3QgaW5saW5lUmVjdCkKK3sKKyAgICBSZWZQdHI8
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHN0cm9uZ1RoaXModGhpcyk7CisgICAg
ZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3N0cm9uZ1RoaXMsIHZp
c2libGUsIGlubGluZVJlY3RdIHsKKyAgICAgICAgaWYgKHN0cm9uZ1RoaXMtPm1fcGxheWVyQ29u
dHJvbGxlci5nZXQoKS5leGl0T3B0aW1pemVkQ2FsbGJhY2spIHsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgaWYgKHN0cm9uZ1RoaXMtPm1fdmlld0NvbnRyb2xsZXIpCisgICAgICAgICAgICAg
ICAgW3N0cm9uZ1RoaXMtPm1fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10uZnJhbWUgPSBbc3Ry
b25nVGhpcy0+bV9wYXJlbnRWaWV3IGNvbnZlcnRSZWN0OmlubGluZVJlY3QgdG9WaWV3Om5pbF07
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgW3N0cm9uZ1RoaXMtPm1fcGxheWVy
Vmlld0NvbnRyb2xsZXIgdmlld10uZnJhbWUgPSBpbmxpbmVSZWN0OworICAgICAgICAgICAgCisg
ICAgICAgICAgICBzdHJvbmdUaGlzLT5tX3BsYXllckNvbnRyb2xsZXIuZ2V0KCkuZXhpdE9wdGlt
aXplZENhbGxiYWNrKHZpc2libGUpOworICAgICAgICB9CisgICAgfSk7Cit9CisKIHZvaWQgV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldElzT3B0aW1pemVkKGJvb2wgYWN0aXZl
KQogewogICAgIGlmIChtX21vZGUgJiBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5N
b2RlU3RhbmRhcmQpIHsKQEAgLTExODcsMTAgKzEyMDcsMTAgQEAgYm9vbCBXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6bWF5QXV0b21hdGljYWxseVNob3dWaWRlb09wdGltaXplZCgp
CiAgICAgcmV0dXJuIFttX3BsYXllckNvbnRyb2xsZXIgaXNQbGF5aW5nXSAmJiBtX21vZGUgPT0g
SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkICYmIHdrSXNPcHRp
bWl6ZWRGdWxsc2NyZWVuU3VwcG9ydGVkKCk7CiB9CiAKLWJvb2wgV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpCit2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUo
KQogewotICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5mdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmUoKTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIpCisgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5mdWxsc2NyZWVu
TWF5UmV0dXJuVG9JbmxpbmUoKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1Njcm9sbEJlaGF2aW9yLmNwcAppbmRleCBiNThiMzMxODRlNmFmMmRiNDUxN2U0ZTNkNmFj
Zjk5ODI2MDhmMDZmLi5kYTY1ZGFjNTdkMTg0YzBlM2M3ZWVlMmU2ZDQxNzc5MWM3NWNkZDAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5jcHAKQEAgLTQ2LDYg
KzQ2LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjb25zdCBTY3JvbGxBbGlnbm1lbnQg
U2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTm90VmlzaWJsZSA9IHsgbm9TY3JvbGwsIGFs
aWduQ2VudGVyLCBub1Njcm9sbCB9OworV0VCQ09SRV9FWFBPUlQgY29uc3QgU2Nyb2xsQWxpZ25t
ZW50IFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5vdFZpc2libGUgPSB7IG5vU2Nyb2xs
LCBhbGlnblRvQ2xvc2VzdEVkZ2UsIG5vU2Nyb2xsIH07CiBjb25zdCBTY3JvbGxBbGlnbm1lbnQg
U2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkID0geyBub1Njcm9sbCwgYWxpZ25D
ZW50ZXIsIGFsaWduVG9DbG9zZXN0RWRnZSB9OwogV0VCQ09SRV9FWFBPUlQgY29uc3QgU2Nyb2xs
QWxpZ25tZW50IFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCA9IHsgbm9TY3Jv
bGwsIGFsaWduVG9DbG9zZXN0RWRnZSwgYWxpZ25Ub0Nsb3Nlc3RFZGdlIH07CiBXRUJDT1JFX0VY
UE9SVCBjb25zdCBTY3JvbGxBbGlnbm1lbnQgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlckFs
d2F5cyA9IHsgYWxpZ25DZW50ZXIsIGFsaWduQ2VudGVyLCBhbGlnbkNlbnRlciB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuaAppbmRleCA5Y2U3NWFiZmM2NWU2M2Rl
MGZlZWZmMWYzNDVjNTAxNzEzYzgwZDc3Li5jOWUxZjA1YmRkNWI1ZmEwYzIyODc4NTFiMmFmNTc1
ZTc4ZTUyODBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVo
YXZpb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuaApA
QCAtNjEsNiArNjEsOCBAQCBzdHJ1Y3QgU2Nyb2xsQWxpZ25tZW50IHsKICAgICBzdGF0aWMgU2Ny
b2xsQmVoYXZpb3IgZ2V0UGFydGlhbEJlaGF2aW9yKGNvbnN0IFNjcm9sbEFsaWdubWVudCYgcykg
eyByZXR1cm4gcy5tX3JlY3RQYXJ0aWFsOyB9CiAgICAgc3RhdGljIFNjcm9sbEJlaGF2aW9yIGdl
dEhpZGRlbkJlaGF2aW9yKGNvbnN0IFNjcm9sbEFsaWdubWVudCYgcykgeyByZXR1cm4gcy5tX3Jl
Y3RIaWRkZW47IH0KIAorICAgIHN0YXRpYyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25DZW50
ZXJJZk5vdFZpc2libGU7CisgICAgc3RhdGljIGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnblRv
RWRnZUlmTm90VmlzaWJsZTsKICAgICBzdGF0aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWdu
Q2VudGVySWZOZWVkZWQ7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFNjcm9sbEFs
aWdubWVudCBhbGlnblRvRWRnZUlmTmVlZGVkOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBj
b25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25DZW50ZXJBbHdheXM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkuaAppbmRleCBhMGNhZmNjZDg5MTZiNjg1YzBkNTFjNjI0YzQzZDA0YzNjNmYxZjFjLi44
YWM2YjQ4NTViNDFiZjhlMzU5MWQzMWE0OGMwNTkxOGY3NWMwNDVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5LmgKQEAgLTU5LDcgKzU5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFNlZWth
YmxlUmFuZ2VzVmVjdG9yKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBkb3VibGU+PiYp
OwogICAgIHZvaWQgc2V0RXh0ZXJuYWxQbGF5YmFja1Byb3BlcnRpZXMoYm9vbCBlbmFibGVkLCB1
aW50MzJfdCB0YXJnZXRUeXBlLCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSk7CiAgICAgdm9p
ZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9G
dWxsc2NyZWVuTW9kZSkgb3ZlcnJpZGU7Ci0gICAgCisgICAgdm9pZCBwcmVwYXJlZFRvUmV0dXJu
VG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpIG92ZXJy
aWRlOworCiAgICAgLy8gRnVsbHNjcmVlbiBPYnNlcnZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRT
ZXR1cEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRW50ZXJGdWxs
c2NyZWVuKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IGI3NjNiMDM4NzM5ODQ2NWVlNWM1NzM3Nzc2NmNkNjI3ODQ4ZmY3MzAuLmM3
MjhjMGJiYzhiNmEyMjNkY2M1ZTlmMDQ3YjI4YzBhNzVmZmE0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNiw1ICszNiw2IEBAIG1lc3NhZ2Vz
IC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSB7CiAgICAgRW50ZXJGdWxsc2NyZWVu
KCkKICAgICBFeGl0RnVsbHNjcmVlbihXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCkKICAgICBD
bGVhbnVwRnVsbHNjcmVlbigpCisgICAgUHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wgdmlz
aWJsZSwgV2ViQ29yZTo6SW50UmVjdCBpbmxpbmVSZWN0KQogfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1tCmluZGV4IDNjYWZhYzFiNTc2MDllMWM3YTg3ZTQ0ODQ4ZTZhZDdkNGYz
OGY0MjAuLmRmYmRiNWQ2ODcyOTAzNjUwMzczNzQ4ZDIxZmFlNGExMzQxYjJhYmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0xMTksNyArMTE5LDE0IEBAIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRFeHRlcm5hbFBsYXliYWNrUHJvcGVydGllcyhib29s
IGVuYWJsZWQsCiAgICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZnVs
bHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkKIHsKKyAgICBib29sIGlzVmlld1Zpc2libGUgPSBt
X3BhZ2UtPmlzVmlld1Zpc2libGUoKTsKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShpc1ZpZXdW
aXNpYmxlKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwg
V2ViQ29yZTo6SW50UmVjdCBpbmxpbmVSZWN0KQorewogICAgIG1fcGFnZS0+ZnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lKCk7CisgICAgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSh2aXNpYmxlLCBpbmxpbmVSZWN0KTsKIH0KIAogdm9p
ZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVsbHNjcmVlbigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXggNGY1MzZhNjc0OTBiYmE3Y2YxZTRhMDQxNGI2OGZhMTk1
ZDc0MjU4OS4uMzM0ZWFlY2M3NDZhNjY3MTMxYzU4NjkwYTAxYWI5MDEwYjdhZDEzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaApAQCAtODYsNiArODYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2
b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsZWFudXBGdWxs
c2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1bnNp
Z25lZCk7CisgICAgdmlydHVhbCB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShib29s
IGlzUGFnZVZpc2libGUpOwogICAgIHZvaWQgc2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNv
cmU6OkZsb2F0UmVjdCBib3VuZHMsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpOwogICAgIAog
ICAgIFdlYlBhZ2UqIG1fcGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmlu
CmluZGV4IGE5ODg2ZmJkNGVkNzU5ZDJkZTdmOTIyOTc4NmYzZGZiN2IwZTVlODYuLmQzYzY4YTM2
NmNmODE1NGVkZGRiMTg2ZGQyZTZjOTM0N2ZkYTUyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5tZXNzYWdlcy5pbgpAQCAtNDIsNSArNDIsNiBAQCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyIHsKICAgICBTZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGlu
ZGV4KQogICAgIFNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkKICAgICBm
dWxsc2NyZWVuTW9kZUNoYW5nZWQoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxs
c2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQorICAgIEZ1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZShib29sIGlzUGFnZVZpc2libGUpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
CmluZGV4IDA0YTQ2MDQwYTRjY2UwYzExMGQ3MTljMjc5MGY0NTBmZTBjZDBmNmIuLjljZWViOGJl
Y2VkMzc4MjJjOGY1MWM4YmVmMTMyZTdkZTZhNmE5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpA
QCAtMjU4LDYgKzI1OCwxMyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZp
ZGVvTGF5ZXJHcmF2aXR5RW51bSh1bnNpZ25lZCBncmF2aXR5KQogICAgIHNldFZpZGVvTGF5ZXJH
cmF2aXR5KChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9HcmF2aXR5KWdyYXZpdHkpOwog
fQogICAgIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5UmV0
dXJuVG9JbmxpbmUoYm9vbCBpc1BhZ2VWaXNpYmxlKQoreworICAgIGlmICghaXNQYWdlVmlzaWJs
ZSkKKyAgICAgICAgbV92aWRlb0VsZW1lbnQtPnNjcm9sbEludG9WaWV3SWZOb3RWaXNpYmxlKGZh
bHNlKTsKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6UHJlcGFyZWRUb1JldHVyblRvSW5saW5lKHRydWUsIGNsaWVudFJlY3RGb3JFbGVt
ZW50KG1fdmlkZW9FbGVtZW50LmdldCgpKSksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAog
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQo
V2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCkKIHsK
ICAgICBpZiAobV9sYXllckhvc3RpbmdDb250ZXh0KQo=
</data>
<flag name="review"
          id="272922"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248020</attachid>
            <date>2015-03-05 16:54:13 -0800</date>
            <delta_ts>2015-03-05 16:54:13 -0800</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-141439-20150305165353.patch</filename>
            <type>text/plain</type>
            <size>21174</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI5ZDYwOTEzYjhmMTFj
YTM3NjIwNGQ4MWJlYmI1Yzk2NTI4NzU3NS4uZjZkZDg3YWJlYTUwM2JlMDUyMTZkZThlYWU2YzRj
MzBhZTU2MWYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTAzLTA1ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgdG8gbWFrZSB0
aGUgdmlkZW8gZWxlbWVudCB2aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2NyZWVuLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNDM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFRoaXMgcGF0Y2ggd2lsbCBz
Y3JvbGwgdGhlIGVsZW1lbnQgc28gaXQgaXMgdmlzaWJsZSB3aGVuIGV4aXRpbmcgZnVsbHNjcmVl
biwKKyAgICAgICAgYnV0IG9ubHkgaWYgdGhlIGVsZW1lbnQgaXMgY29tcGxldGVseSBzY3JvbGxl
ZCBvZmYgc2NyZWVuLgorICAgICAgICBBbHNvIHVwZGF0ZSB0aGUgZWxlbWVudCBzY3JlZW4gcmVj
dCBzbyBleGl0IGFuaW1hdGlvbiBnb2VzIHRvIHRoZSBjb3JyZWN0IGxvY2F0aW9uLgorCisgICAg
ICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xs
SW50b1ZpZXdJZk5vdFZpc2libGUpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOiBB
ZGQgZGVjbGFyYXRpb24gZm9yIHNjcm9sbEludG9WaWV3SWZOb3RWaXNpYmxlLgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW06CisgICAg
ICAgICgtW1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIgZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lXSk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgcGxheWVy
Vmlld0NvbnRyb2xsZXI6cmVzdG9yZVVzZXJJbnRlcmZhY2VGb3JPcHRpbWl6ZWRGdWxsc2NyZWVu
U3RvcFdpdGhDb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250
cm9sbGVyIHBsYXllclZpZXdDb250cm9sbGVyV2lsbENhbmNlbE9wdGltaXplZEZ1bGxzY3JlZTpd
KToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxz
Y3JlZW4pOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVw
RnVsbHNjcmVlbkludGVybmFsKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpleGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW5JbnRlcm5hbCk6CisgICAgICAgIChXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKToKKyAgICAg
ICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpmdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5jcHA6CisgICAg
ICAgICogcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmg6CisKIDIwMTUtMDMtMDIgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTgwODgy
KTogQnVpbGQgZmFpbHVyZTogTWV0aG9kcyBub3QgbWFya2VkIG92ZXJyaWRlIGluIEdyYXBoaWNz
TGF5ZXJDQS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmE2ZjkyYTcyOGNlOWZiZTc0ZDIwNTE1OTNmYWRjYTM0
MDViYWZhOC4uYTI0OTJjOTBlNTZhMmJjM2JmMmQ3YjRkYzIxNTFlMWM2OGFlZTNjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE1LTAzLTA1ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlq
QGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgdG8gbWFrZSB0aGUgdmlkZW8gZWxlbWVudCB2
aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2NyZWVuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gRnJhc2VyLgorCisgICAgICAgIFRoaXMgcGF0Y2ggd2lsbCByZXN0b3JlIGludGVyZmFjZSBz
dGF0ZSB3aGVuIGV4aXRpbmcgZnVsbHNjcmVlbi4KKyAgICAgICAgQWRkcyBwcmVwYXJlZFRvUmV0
dXJuVG9JbmxpbmUgdG8gY29udGludWUgZXhpdGluZyBvbmNlIHRoZSBpbnRlcmZhY2UgaXMgdXBk
YXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9J
bmxpbmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6IGFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6
CisKIDIwMTUtMDMtMDIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWJzaXRlRGF0YVN0b3JlIHNob3VsZCBzdXBwb3J0IGdldHRpbmcgY29va2llIGhv
c3QgbmFtZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA3ZGZlY2JkNWU1ZWE2MmM0MDdiYjVk
OGQxN2EyNTMxNmZhMWIzNWFmLi5kOWIwNWU4OTdiYjljNGMxYTgwZTNiMTkwNTM1ODZkNzg1OTY1
MDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC02MTYsNiArNjE2LDIwIEBAIHZvaWQgRWxl
bWVudDo6c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChib29sIGNlbnRlcklmTmVlZGVkKQogICAgICAg
ICByZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKGJvdW5kcywgU2Nyb2xsQWxpZ25tZW50
OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVk
ZWQpOwogfQogCit2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3SWZOb3RWaXNpYmxlKGJvb2wg
Y2VudGVySWZOb3RWaXNpYmxlKQoreworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgCisgICAgaWYgKCFyZW5kZXJlcigpKQorICAgICAg
ICByZXR1cm47CisgICAgCisgICAgTGF5b3V0UmVjdCBib3VuZHMgPSByZW5kZXJlcigpLT5hbmNo
b3JSZWN0KCk7CisgICAgaWYgKGNlbnRlcklmTm90VmlzaWJsZSkKKyAgICAgICAgcmVuZGVyZXIo
KS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShib3VuZHMsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50
ZXJJZk5vdFZpc2libGUsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5vdFZpc2libGUp
OworICAgIGVsc2UKKyAgICAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShib3Vu
ZHMsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5vdFZpc2libGUsIFNjcm9sbEFsaWdu
bWVudDo6YWxpZ25Ub0VkZ2VJZk5vdFZpc2libGUpOworfQorICAgIAogdm9pZCBFbGVtZW50Ojpz
Y3JvbGxCeVVuaXRzKGludCB1bml0cywgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7
CiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCmluZGV4IGI4ZmVkOWJhZTIzNWUxMjZkMWMxYzRjZmU2YTBlMDU1OTBh
NDI0YTYuLjYxMmVjNDM3OWJlOTUwNTUxNjM0NjA1NjhlMzc0YThiMWRkNDJiNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaApAQCAtMTkxLDYgKzE5MSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2Nyb2xs
SW50b1ZpZXcoYm9vbCBhbGlnblRvVG9wID0gdHJ1ZSk7CiAgICAgdm9pZCBzY3JvbGxJbnRvVmll
d0lmTmVlZGVkKGJvb2wgY2VudGVySWZOZWVkZWQgPSB0cnVlKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNjcm9sbEludG9WaWV3SWZOb3RWaXNpYmxlKGJvb2wgY2VudGVySWZOb3RWaXNpYmxl
ID0gdHJ1ZSk7CiAKICAgICB2b2lkIHNjcm9sbEJ5TGluZXMoaW50IGxpbmVzKTsKICAgICB2b2lk
IHNjcm9sbEJ5UGFnZXMoaW50IHBhZ2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1t
CmluZGV4IDE1MWExYzA2NzlhNjUzYWFkYzI1MWRkMjA0Yzg4Nzk4OGM3MjYxNGYuLmE4NjUzODA0
YTY4NTJmZDAxYWZhZDhmZGFkOTRkZDYzNTFhYWRkYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJBVktpdC5tbQpAQCAtMTgzLDYgKzE4Myw3IEBAIHB1YmxpYzoKIAogLSAodm9pZClmdWxsc2Ny
ZWVuTWF5UmV0dXJuVG9JbmxpbmUKIHsKKyAgICBfaW50ZXJmYWNlLT5wcmVwYXJlZFRvUmV0dXJu
VG9JbmxpbmUodHJ1ZSwgX3ZpZGVvRWxlbWVudC0+Y2xpZW50UmVjdCgpKTsKIH0KIAogQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAppbmRleCAzZDgyNDFlOGFlNzY0MWYxMjM4MDRjMmEw
ZjFmZTIxM2NjOTFlMjhhLi5jOTVlOTBiOWI1N2I2YjEwMTU2YTM5NTc2NjFjZDQxYWRjNTE5MzA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaApAQCAtODQsMjQgKzg0LDI1IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0
aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBz
ZWxlY3RlZEluZGV4KSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQg
c2V0RXh0ZXJuYWxQbGF5YmFjayhib29sIGVuYWJsZWQsIEV4dGVybmFsUGxheWJhY2tUYXJnZXRU
eXBlLCBXVEY6OlN0cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKSBvdmVycmlkZTsKICAgICAKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0dXBGdWxsc2NyZWVuKFBsYXRmb3JtTGF5
ZXImLCBJbnRSZWN0IGluaXRpYWxSZWN0LCBVSVZpZXcgKiwgSFRNTE1lZGlhRWxlbWVudDo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pOworICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYs
IGNvbnN0IEludFJlY3QmIGluaXRpYWxSZWN0LCBVSVZpZXcgKiwgSFRNTE1lZGlhRWxlbWVudDo6
VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW4oSW50UmVjdCBmaW5hbFJlY3Qp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbihjb25zdCBJ
bnRSZWN0JiBmaW5hbFJlY3QpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBjbGVh
bnVwRnVsbHNjcmVlbigpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBpbnZhbGlk
YXRlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHJlcXVlc3RIaWRlQW5kRXhp
dEZ1bGxzY3JlZW4oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgcHJlcGFyZWRU
b1JldHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgY29uc3QgSW50UmVjdCYgaW5saW5lUmVjdCk7
CiAKICAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25z
dCB7IHJldHVybiBtX21vZGU7IH0KICAgICB2b2lkIHNldElzT3B0aW1pemVkKGJvb2wpOwogICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgbWF5QXV0b21hdGljYWxseVNob3dWaWRlb09wdGltaXplZCgp
OwotICAgIGJvb2wgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7CisgICAgdm9pZCBmdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgYmVnaW5T
ZXNzaW9uKCk7Ci0gICAgdm9pZCBzZXR1cEZ1bGxzY3JlZW5JbnRlcm5hbChQbGF0Zm9ybUxheWVy
JiwgSW50UmVjdCBpbml0aWFsUmVjdCwgVUlWaWV3ICosIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVv
RnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVuKTsKKyAgICB2b2lk
IHNldHVwRnVsbHNjcmVlbkludGVybmFsKFBsYXRmb3JtTGF5ZXImLCBjb25zdCBJbnRSZWN0JiBp
bml0aWFsUmVjdCwgVUlWaWV3ICosIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUsIGJvb2wgYWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVuKTsKICAgICB2b2lkIGVudGVyRnVsbHNj
cmVlbk9wdGltaXplZCgpOwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuU3RhbmRhcmQoKTsKLSAg
ICB2b2lkIGV4aXRGdWxsc2NyZWVuSW50ZXJuYWwoSW50UmVjdCBmaW5hbFJlY3QpOworICAgIHZv
aWQgZXhpdEZ1bGxzY3JlZW5JbnRlcm5hbChjb25zdCBJbnRSZWN0JiBmaW5hbFJlY3QpOwogICAg
IHZvaWQgY2xlYW51cEZ1bGxzY3JlZW5JbnRlcm5hbCgpOwogCiAgICAgUmV0YWluUHRyPFdlYkFW
UGxheWVyQ29udHJvbGxlcj4gbV9wbGF5ZXJDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0Lm1tCmluZGV4IDg0MTRlM2M5NzhkZDVmMWIzMWUxYmE5ZGJkOTQzMmNjZmUxNjc3MzMu
LjUzZDk3ODlkZDQwNWY0ZDdkYzNkOTMzZDhlMGFiNGFlYThiZDA1ZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQubW0KQEAgLTEyNSw2ICsxMjUsOCBAQCBTT0ZUX0xJTktfQ09OU1RBTlQo
Q29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogQHByb3BlcnR5IEFWUGxheWVy
Q29udHJvbGxlckV4dGVybmFsUGxheWJhY2tUeXBlIGV4dGVybmFsUGxheWJhY2tUeXBlOwogQHBy
b3BlcnR5IChyZXRhaW4pIE5TU3RyaW5nICpleHRlcm5hbFBsYXliYWNrQWlyUGxheURldmljZUxv
Y2FsaXplZE5hbWU7CiAKK0Bwcm9wZXJ0eSAoY29weSkgdm9pZCAoXmV4aXRPcHRpbWl6ZWRDYWxs
YmFjaykoQk9PTCByZXN0b3JlZCk7CisKIC0gKEJPT0wpcGxheWVyVmlld0NvbnRyb2xsZXI6KEFW
UGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxlciBzaG91bGRFeGl0RnVs
bFNjcmVlbldpdGhSZWFzb246KEFWUGxheWVyVmlld0NvbnRyb2xsZXJFeGl0RnVsbFNjcmVlblJl
YXNvbilyZWFzb247CiBAZW5kCiAKQEAgLTIxMSwxMyArMjEzLDE1IEBAIFNPRlRfTElOS19DT05T
VEFOVChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAtICh2b2lkKXBsYXll
clZpZXdDb250cm9sbGVyOihBVlBsYXllclZpZXdDb250cm9sbGVyICopcGxheWVyVmlld0NvbnRy
b2xsZXIgcmVzdG9yZVVzZXJJbnRlcmZhY2VGb3JPcHRpbWl6ZWRGdWxsc2NyZWVuU3RvcFdpdGhD
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCByZXN0b3JlZCkpY29tcGxldGlvbkhhbmRs
ZXIKIHsKICAgICBVTlVTRURfUEFSQU0ocGxheWVyVmlld0NvbnRyb2xsZXIpOwotICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHNlbGYuZnVsbHNjcmVlbkludGVyZmFjZS0+ZnVsbHNjcmVlbk1heVJldHVy
blRvSW5saW5lKCkpOworICAgIHNlbGYuZXhpdE9wdGltaXplZENhbGxiYWNrID0gY29tcGxldGlv
bkhhbmRsZXI7CisgICAgc2VsZi5mdWxsc2NyZWVuSW50ZXJmYWNlLT5mdWxsc2NyZWVuTWF5UmV0
dXJuVG9JbmxpbmUoKTsKIH0KIAogLSAodm9pZClwbGF5ZXJWaWV3Q29udHJvbGxlcldpbGxDYW5j
ZWxPcHRpbWl6ZWRGdWxsc2NyZWU6KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3
Q29udHJvbGxlcgogewogICAgIFVOVVNFRF9QQVJBTShwbGF5ZXJWaWV3Q29udHJvbGxlcik7Ci0g
ICAgQVNTRVJUKHNlbGYuZGVsZWdhdGUpOworICAgIGlmICghc2VsZi5kZWxlZ2F0ZSkKKyAgICAg
ICAgcmV0dXJuCiAgICAgc2VsZi5kZWxlZ2F0ZS0+cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCk7CiB9
CiAKQEAgLTg1NCw3ICs4NTgsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXJuYQogICAgIH0pOwog
fQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3Jl
ZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXllciwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVj
dCwgVUlWaWV3KiBwYXJlbnRWaWV3LCBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5N
b2RlIG1vZGUsIGJvb2wgYWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVuKQordm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZp
ZGVvTGF5ZXIsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluaXRpYWxSZWN0LCBVSVZpZXcqIHBh
cmVudFZpZXcsIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9v
bCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pCiB7CiAgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlzKHRoaXMpOwogCkBAIC04NjgsNyArODcyLDcg
QEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVu
KFBsYXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIKICAgICB9KTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuSW50ZXJuYWwoUGxhdGZvcm1M
YXllciYgdmlkZW9MYXllciwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgVUlWaWV3KiBw
YXJlbnRWaWV3LCBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUsIGJv
b2wgYWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVuKQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuSW50ZXJuYWwoUGxhdGZvcm1MYXllciYgdmlkZW9M
YXllciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5pdGlhbFJlY3QsIFVJVmlldyogcGFyZW50
VmlldywgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlLCBib29sIGFs
bG93T3B0aW1pemVkRnVsbHNjcmVlbikKIHsKICAgICBVTlVTRURfUEFSQU0odmlkZW9MYXllcik7
CiAgICAgVU5VU0VEX1BBUkFNKG1vZGUpOwpAQCAtOTk4LDcgKzEwMDIsNyBAQCB2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW5TdGFuZGFyZCgpCiAg
ICAgfV07CiB9CiAKLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRG
dWxsc2NyZWVuKFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQordm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgZmluYWxSZWN0KQogewogICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdD4gc3Ryb25nVGhpcyh0aGlzKTsKIApAQCAtMTAxOCw3ICsxMDIyLDcgQEAgdm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oV2ViQ29yZTo6SW50
UmVjdCBmaW5hbFJlY3QKICAgICB9KTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW5JbnRlcm5hbChXZWJDb3JlOjpJbnRSZWN0IGZpbmFs
UmVjdCkKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2Ny
ZWVuSW50ZXJuYWwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZmluYWxSZWN0KQogewogICAgIFtt
X3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJhY2tDb250cm9sczpOT107CiAgICAg
aWYgKG1fdmlld0NvbnRyb2xsZXIpCkBAIC0xMTQ5LDYgKzExNTMsMjIgQEAgdm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigp
CiAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPnJlcXVlc3RFeGl0RnVsbHNjcmVlbigp
OwogfQogCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRv
UmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBjb25zdCBJbnRSZWN0JiBpbmxpbmVSZWN0KQor
eworICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gc3Ryb25nVGhp
cyh0aGlzKTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBb
c3Ryb25nVGhpcywgdmlzaWJsZSwgaW5saW5lUmVjdF0geworICAgICAgICBpZiAoc3Ryb25nVGhp
cy0+bV9wbGF5ZXJDb250cm9sbGVyLmdldCgpLmV4aXRPcHRpbWl6ZWRDYWxsYmFjaykgeworICAg
ICAgICAgICAgCisgICAgICAgICAgICBpZiAoc3Ryb25nVGhpcy0+bV92aWV3Q29udHJvbGxlcikK
KyAgICAgICAgICAgICAgICBbc3Ryb25nVGhpcy0+bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3
XS5mcmFtZSA9IFtzdHJvbmdUaGlzLT5tX3BhcmVudFZpZXcgY29udmVydFJlY3Q6aW5saW5lUmVj
dCB0b1ZpZXc6bmlsXTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBbc3Ryb25n
VGhpcy0+bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XS5mcmFtZSA9IGlubGluZVJlY3Q7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIHN0cm9uZ1RoaXMtPm1fcGxheWVyQ29udHJvbGxlci5n
ZXQoKS5leGl0T3B0aW1pemVkQ2FsbGJhY2sodmlzaWJsZSk7CisgICAgICAgIH0KKyAgICB9KTsK
K30KKwogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0SXNPcHRpbWl6
ZWQoYm9vbCBhY3RpdmUpCiB7CiAgICAgaWYgKG1fbW9kZSAmIEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgewpAQCAtMTE4NywxMCArMTIwNywxMCBAQCBib29s
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjptYXlBdXRvbWF0aWNhbGx5U2hvd1Zp
ZGVvT3B0aW1pemVkKCkKICAgICByZXR1cm4gW21fcGxheWVyQ29udHJvbGxlciBpc1BsYXlpbmdd
ICYmIG1fbW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRh
cmQgJiYgd2tJc09wdGltaXplZEZ1bGxzY3JlZW5TdXBwb3J0ZWQoKTsKIH0KIAotYm9vbCBXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5l
KCkKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZSgpCiB7Ci0gICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwotICAgIHJldHVybiB0cnVlOworICAgIGlmIChtX2Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2
ZXItPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuY3BwCmluZGV4IGI1OGIzMzE4NGU2YWYy
ZGI0NTE3ZTRlM2Q2YWNmOTk4MjYwOGYwNmYuLmRhNjVkYWM1N2QxODRjMGUzYzdlZWUyZTZkNDE3
NzkxYzc1Y2RkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxC
ZWhhdmlvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9y
LmNwcApAQCAtNDYsNiArNDYsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NvbnN0IFNj
cm9sbEFsaWdubWVudCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOb3RWaXNpYmxlID0g
eyBub1Njcm9sbCwgYWxpZ25DZW50ZXIsIG5vU2Nyb2xsIH07CitXRUJDT1JFX0VYUE9SVCBjb25z
dCBTY3JvbGxBbGlnbm1lbnQgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTm90VmlzaWJs
ZSA9IHsgbm9TY3JvbGwsIGFsaWduVG9DbG9zZXN0RWRnZSwgbm9TY3JvbGwgfTsKIGNvbnN0IFNj
cm9sbEFsaWdubWVudCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQgPSB7IG5v
U2Nyb2xsLCBhbGlnbkNlbnRlciwgYWxpZ25Ub0Nsb3Nlc3RFZGdlIH07CiBXRUJDT1JFX0VYUE9S
VCBjb25zdCBTY3JvbGxBbGlnbm1lbnQgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVl
ZGVkID0geyBub1Njcm9sbCwgYWxpZ25Ub0Nsb3Nlc3RFZGdlLCBhbGlnblRvQ2xvc2VzdEVkZ2Ug
fTsKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFNjcm9sbEFsaWdubWVudCBTY3JvbGxBbGlnbm1lbnQ6
OmFsaWduQ2VudGVyQWx3YXlzID0geyBhbGlnbkNlbnRlciwgYWxpZ25DZW50ZXIsIGFsaWduQ2Vu
dGVyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZp
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oCmluZGV4IDlj
ZTc1YWJmYzY1ZTYzZGUwZmVlZmYxZjM0NWM1MDE3MTNjODBkNzcuLmM5ZTFmMDViZGQ1YjVmYTBj
MjI4Nzg1MWIyYWY1NzVlNzhlNTI4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9TY3JvbGxCZWhhdmlvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3Jv
bGxCZWhhdmlvci5oCkBAIC02MSw2ICs2MSw4IEBAIHN0cnVjdCBTY3JvbGxBbGlnbm1lbnQgewog
ICAgIHN0YXRpYyBTY3JvbGxCZWhhdmlvciBnZXRQYXJ0aWFsQmVoYXZpb3IoY29uc3QgU2Nyb2xs
QWxpZ25tZW50JiBzKSB7IHJldHVybiBzLm1fcmVjdFBhcnRpYWw7IH0KICAgICBzdGF0aWMgU2Ny
b2xsQmVoYXZpb3IgZ2V0SGlkZGVuQmVoYXZpb3IoY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBzKSB7
IHJldHVybiBzLm1fcmVjdEhpZGRlbjsgfQogCisgICAgc3RhdGljIGNvbnN0IFNjcm9sbEFsaWdu
bWVudCBhbGlnbkNlbnRlcklmTm90VmlzaWJsZTsKKyAgICBzdGF0aWMgY29uc3QgU2Nyb2xsQWxp
Z25tZW50IGFsaWduVG9FZGdlSWZOb3RWaXNpYmxlOwogICAgIHN0YXRpYyBjb25zdCBTY3JvbGxB
bGlnbm1lbnQgYWxpZ25DZW50ZXJJZk5lZWRlZDsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Y29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWduVG9FZGdlSWZOZWVkZWQ7CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnbkNlbnRlckFsd2F5czsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IGEwY2FmY2NkODkxNmI2ODVjMGQ1MWM2MjRjNDNk
MDRjM2M2ZjFmMWMuLjFkMDExZjhhYzRlNjVhOTMyZTllNTM1ZTVlOTcxYjdhMGNiYTExZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtNTUsMTEgKzU1LDEyIEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKIAogICAgIC8vIFRyYW5zbGF0ZSB0byBGdWxsc2Ny
ZWVuSW50ZXJmYWNlCi0gICAgdm9pZCBzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QsIFdl
YkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3Rv
ciwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBh
bGxvd09wdGltaXplZEZ1bGxzY3JlZW4pOworICAgIHZvaWQgc2V0dXBGdWxsc2NyZWVuV2l0aElE
KHVpbnQzMl90LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbml0aWFsUmVjdCwgZmxvYXQgaG9z
dGluZ0RldmljZVNjYWxlRmFjdG9yLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93T3B0aW1pemVkRnVsbHNjcmVlbik7CiAgICAgdm9pZCBz
ZXRTZWVrYWJsZVJhbmdlc1ZlY3Rvcihjb25zdCBWZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwgZG91
YmxlPj4mKTsKICAgICB2b2lkIHNldEV4dGVybmFsUGxheWJhY2tQcm9wZXJ0aWVzKGJvb2wgZW5h
YmxlZCwgdWludDMyX3QgdGFyZ2V0VHlwZSwgU3RyaW5nIGxvY2FsaXplZERldmljZU5hbWUpOwog
ICAgIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92ZXJyaWRlOwotICAgIAorICAgIHZvaWQgcHJlcGFyZWRU
b1JldHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5s
aW5lUmVjdCkgb3ZlcnJpZGU7CisKICAgICAvLyBGdWxsc2NyZWVuIE9ic2VydmVyCiAgICAgdmly
dHVhbCB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRFbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYjc2M2IwMzg3Mzk4NDY1ZWU1YzU3Mzc3NzY2Y2Q2
Mjc4NDhmZjczMC4uYzcyOGMwYmJjOGI2YTIyM2RjYzVlOWYwNDdiMjhjMGE3NWZmYTQ5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTM2LDUgKzM2
LDYgQEAgbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5IHsKICAgICBF
bnRlckZ1bGxzY3JlZW4oKQogICAgIEV4aXRGdWxsc2NyZWVuKFdlYkNvcmU6OkludFJlY3QgZmlu
YWxSZWN0KQogICAgIENsZWFudXBGdWxsc2NyZWVuKCkKKyAgICBQcmVwYXJlZFRvUmV0dXJuVG9J
bmxpbmUoYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpCiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KaW5kZXggM2NhZmFjMWI1NzYwOWUxYzdhODdl
NDQ4NDhlNmFkN2Q0ZjM4ZjQyMC4uMzY3N2VhMWVjYTE4MGY4MDQ5Y2Q5NjNiYTQzYzBiZjkyY2Fl
OGNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KQEAgLTc1LDcgKzc1LDcgQEAgdm9p
ZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQogICAgIG1fbGF5
ZXJIb3N0LmNsZWFyKCk7CiB9CiAKLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJ
bnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nRGV2aWNlU2NhbGVGYWN0b3IsIEhUTUxN
ZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9v
bCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2Fs
ZUZhY3RvciwgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxz
Y3JlZW5Nb2RlLCBib29sIGFsbG93T3B0aW1pemVkRnVsbHNjcmVlbikKIHsKICAgICBBU1NFUlQo
dmlkZW9MYXllcklEKTsKICAgICBtX2xheWVySG9zdCA9IFdLTWFrZVJlbmRlckxheWVyKHZpZGVv
TGF5ZXJJRCk7CkBAIC0xMTksNyArMTE5LDE0IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpzZXRFeHRlcm5hbFBsYXliYWNrUHJvcGVydGllcyhib29sIGVuYWJsZWQsCiAg
ICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKCkKIHsKKyAgICBib29sIGlzVmlld1Zpc2libGUgPSBtX3BhZ2UtPmlzVmll
d1Zpc2libGUoKTsKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OkZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShpc1ZpZXdWaXNpYmxlKSwgbV9w
YWdlLT5wYWdlSUQoKSk7Cit9CisgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgaW5saW5lUmVjdCkKK3sKICAgICBtX3BhZ2UtPmZ1bGxzY3JlZW5NYXlSZXR1
cm5Ub0lubGluZSgpOworICAgIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVw
YXJlZFRvUmV0dXJuVG9JbmxpbmUodmlzaWJsZSwgaW5saW5lUmVjdCk7CiB9CiAKIHZvaWQgV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpyZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5oCmluZGV4IDRmNTM2YTY3NDkwYmJhN2NmMWU0YTA0MTRiNjhmYTE5NWQ3NDI1
ODkuLjMzNGVhZWNjNzQ2YTY2NzEzMWM1ODY5MGEwMWFiOTAxMGI3YWQxM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmgKQEAgLTg2LDYgKzg2LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBk
aWRFeGl0RnVsbHNjcmVlbigpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVl
bigpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odW5zaWduZWQp
OworICAgIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoYm9vbCBpc1Bh
Z2VWaXNpYmxlKTsKICAgICB2b2lkIHNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChXZWJDb3JlOjpG
bG9hdFJlY3QgYm91bmRzLCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KTsKICAgICAKICAgICBX
ZWJQYWdlKiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgppbmRl
eCBhOTg4NmZiZDRlZDc1OWQyZGU3ZjkyMjk3ODZmM2RmYjdiMGU1ZTg2Li5kM2M2OGEzNjZjZjgx
NTRlZGRkYjE4NmRkMmU2YzkzNDdmZGE1MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bWVzc2FnZXMuaW4KQEAgLTQyLDUgKzQyLDYgQEAgbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlciB7CiAgICAgU2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkK
ICAgICBTZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCiAgICAgZnVsbHNj
cmVlbk1vZGVDaGFuZ2VkKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVl
bk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkKKyAgICBGdWxsc2NyZWVuTWF5UmV0dXJuVG9Jbmxp
bmUoYm9vbCBpc1BhZ2VWaXNpYmxlKQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRl
eCAwNGE0NjA0MGE0Y2NlMGMxMTBkNzE5YzI3OTBmNDUwZmUwY2QwZjZiLi45Y2VlYjhiZWNlZDM3
ODIyYzhmNTFjOGJlZjEzMmU3ZGU2YTZhOWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTI1
OCw2ICsyNTgsMTMgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xh
eWVyR3Jhdml0eUVudW0odW5zaWduZWQgZ3Jhdml0eSkKICAgICBzZXRWaWRlb0xheWVyR3Jhdml0
eSgoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6OlZpZGVvR3Jhdml0eSlncmF2aXR5KTsKIH0KICAg
ICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKGJvb2wgaXNQYWdlVmlzaWJsZSkKK3sKKyAgICBpZiAoIWlzUGFnZVZpc2libGUpCisg
ICAgICAgIG1fdmlkZW9FbGVtZW50LT5zY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZShmYWxzZSk7
CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OlByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSh0cnVlLCBjbGllbnRSZWN0Rm9yRWxlbWVudCht
X3ZpZGVvRWxlbWVudC5nZXQoKSkpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKIHZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNv
cmU6OkZsb2F0UmVjdCBib3VuZHMsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCiB7CiAgICAg
aWYgKG1fbGF5ZXJIb3N0aW5nQ29udGV4dCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248027</attachid>
            <date>2015-03-05 18:17:27 -0800</date>
            <delta_ts>2015-03-06 11:28:52 -0800</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-141439-20150305181707.patch</filename>
            <type>text/plain</type>
            <size>21159</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI5ZDYwOTEzYjhmMTFj
YTM3NjIwNGQ4MWJlYmI1Yzk2NTI4NzU3NS4uZjZkZDg3YWJlYTUwM2JlMDUyMTZkZThlYWU2YzRj
MzBhZTU2MWYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTAzLTA1ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgdG8gbWFrZSB0
aGUgdmlkZW8gZWxlbWVudCB2aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2NyZWVuLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNDM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFRoaXMgcGF0Y2ggd2lsbCBz
Y3JvbGwgdGhlIGVsZW1lbnQgc28gaXQgaXMgdmlzaWJsZSB3aGVuIGV4aXRpbmcgZnVsbHNjcmVl
biwKKyAgICAgICAgYnV0IG9ubHkgaWYgdGhlIGVsZW1lbnQgaXMgY29tcGxldGVseSBzY3JvbGxl
ZCBvZmYgc2NyZWVuLgorICAgICAgICBBbHNvIHVwZGF0ZSB0aGUgZWxlbWVudCBzY3JlZW4gcmVj
dCBzbyBleGl0IGFuaW1hdGlvbiBnb2VzIHRvIHRoZSBjb3JyZWN0IGxvY2F0aW9uLgorCisgICAg
ICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xs
SW50b1ZpZXdJZk5vdFZpc2libGUpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOiBB
ZGQgZGVjbGFyYXRpb24gZm9yIHNjcm9sbEludG9WaWV3SWZOb3RWaXNpYmxlLgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW06CisgICAg
ICAgICgtW1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIgZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lXSk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgcGxheWVy
Vmlld0NvbnRyb2xsZXI6cmVzdG9yZVVzZXJJbnRlcmZhY2VGb3JPcHRpbWl6ZWRGdWxsc2NyZWVu
U3RvcFdpdGhDb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250
cm9sbGVyIHBsYXllclZpZXdDb250cm9sbGVyV2lsbENhbmNlbE9wdGltaXplZEZ1bGxzY3JlZTpd
KToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxz
Y3JlZW4pOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVw
RnVsbHNjcmVlbkludGVybmFsKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpleGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW5JbnRlcm5hbCk6CisgICAgICAgIChXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKToKKyAgICAg
ICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpmdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5jcHA6CisgICAg
ICAgICogcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmg6CisKIDIwMTUtMDMtMDIgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTgwODgy
KTogQnVpbGQgZmFpbHVyZTogTWV0aG9kcyBub3QgbWFya2VkIG92ZXJyaWRlIGluIEdyYXBoaWNz
TGF5ZXJDQS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmE2ZjkyYTcyOGNlOWZiZTc0ZDIwNTE1OTNmYWRjYTM0
MDViYWZhOC4uYTI0OTJjOTBlNTZhMmJjM2JmMmQ3YjRkYzIxNTFlMWM2OGFlZTNjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE1LTAzLTA1ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlq
QGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgdG8gbWFrZSB0aGUgdmlkZW8gZWxlbWVudCB2
aXNpYmxlIHdoZW4gZXhpdGluZyBmdWxsc2NyZWVuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gRnJhc2VyLgorCisgICAgICAgIFRoaXMgcGF0Y2ggd2lsbCByZXN0b3JlIGludGVyZmFjZSBz
dGF0ZSB3aGVuIGV4aXRpbmcgZnVsbHNjcmVlbi4KKyAgICAgICAgQWRkcyBwcmVwYXJlZFRvUmV0
dXJuVG9JbmxpbmUgdG8gY29udGludWUgZXhpdGluZyBvbmNlIHRoZSBpbnRlcmZhY2UgaXMgdXBk
YXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9J
bmxpbmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6IGFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6
CisKIDIwMTUtMDMtMDIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWJzaXRlRGF0YVN0b3JlIHNob3VsZCBzdXBwb3J0IGdldHRpbmcgY29va2llIGhv
c3QgbmFtZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA3ZGZlY2JkNWU1ZWE2MmM0MDdiYjVk
OGQxN2EyNTMxNmZhMWIzNWFmLi5kOWIwNWU4OTdiYjljNGMxYTgwZTNiMTkwNTM1ODZkNzg1OTY1
MDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC02MTYsNiArNjE2LDIwIEBAIHZvaWQgRWxl
bWVudDo6c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChib29sIGNlbnRlcklmTmVlZGVkKQogICAgICAg
ICByZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKGJvdW5kcywgU2Nyb2xsQWxpZ25tZW50
OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVk
ZWQpOwogfQogCit2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3SWZOb3RWaXNpYmxlKGJvb2wg
Y2VudGVySWZOb3RWaXNpYmxlKQoreworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgCisgICAgaWYgKCFyZW5kZXJlcigpKQorICAgICAg
ICByZXR1cm47CisgICAgCisgICAgTGF5b3V0UmVjdCBib3VuZHMgPSByZW5kZXJlcigpLT5hbmNo
b3JSZWN0KCk7CisgICAgaWYgKGNlbnRlcklmTm90VmlzaWJsZSkKKyAgICAgICAgcmVuZGVyZXIo
KS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShib3VuZHMsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50
ZXJJZk5vdFZpc2libGUsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5vdFZpc2libGUp
OworICAgIGVsc2UKKyAgICAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShib3Vu
ZHMsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5vdFZpc2libGUsIFNjcm9sbEFsaWdu
bWVudDo6YWxpZ25Ub0VkZ2VJZk5vdFZpc2libGUpOworfQorICAgIAogdm9pZCBFbGVtZW50Ojpz
Y3JvbGxCeVVuaXRzKGludCB1bml0cywgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7
CiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCmluZGV4IGI4ZmVkOWJhZTIzNWUxMjZkMWMxYzRjZmU2YTBlMDU1OTBh
NDI0YTYuLjYxMmVjNDM3OWJlOTUwNTUxNjM0NjA1NjhlMzc0YThiMWRkNDJiNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaApAQCAtMTkxLDYgKzE5MSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2Nyb2xs
SW50b1ZpZXcoYm9vbCBhbGlnblRvVG9wID0gdHJ1ZSk7CiAgICAgdm9pZCBzY3JvbGxJbnRvVmll
d0lmTmVlZGVkKGJvb2wgY2VudGVySWZOZWVkZWQgPSB0cnVlKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNjcm9sbEludG9WaWV3SWZOb3RWaXNpYmxlKGJvb2wgY2VudGVySWZOb3RWaXNpYmxl
ID0gdHJ1ZSk7CiAKICAgICB2b2lkIHNjcm9sbEJ5TGluZXMoaW50IGxpbmVzKTsKICAgICB2b2lk
IHNjcm9sbEJ5UGFnZXMoaW50IHBhZ2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1t
CmluZGV4IDE1MWExYzA2NzlhNjUzYWFkYzI1MWRkMjA0Yzg4Nzk4OGM3MjYxNGYuLmE4NjUzODA0
YTY4NTJmZDAxYWZhZDhmZGFkOTRkZDYzNTFhYWRkYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJBVktpdC5tbQpAQCAtMTgzLDYgKzE4Myw3IEBAIHB1YmxpYzoKIAogLSAodm9pZClmdWxsc2Ny
ZWVuTWF5UmV0dXJuVG9JbmxpbmUKIHsKKyAgICBfaW50ZXJmYWNlLT5wcmVwYXJlZFRvUmV0dXJu
VG9JbmxpbmUodHJ1ZSwgX3ZpZGVvRWxlbWVudC0+Y2xpZW50UmVjdCgpKTsKIH0KIAogQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAppbmRleCAzZDgyNDFlOGFlNzY0MWYxMjM4MDRjMmEw
ZjFmZTIxM2NjOTFlMjhhLi5jOTVlOTBiOWI1N2I2YjEwMTU2YTM5NTc2NjFjZDQxYWRjNTE5MzA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaApAQCAtODQsMjQgKzg0LDI1IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0
aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBz
ZWxlY3RlZEluZGV4KSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQg
c2V0RXh0ZXJuYWxQbGF5YmFjayhib29sIGVuYWJsZWQsIEV4dGVybmFsUGxheWJhY2tUYXJnZXRU
eXBlLCBXVEY6OlN0cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKSBvdmVycmlkZTsKICAgICAKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0dXBGdWxsc2NyZWVuKFBsYXRmb3JtTGF5
ZXImLCBJbnRSZWN0IGluaXRpYWxSZWN0LCBVSVZpZXcgKiwgSFRNTE1lZGlhRWxlbWVudDo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pOworICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYs
IGNvbnN0IEludFJlY3QmIGluaXRpYWxSZWN0LCBVSVZpZXcgKiwgSFRNTE1lZGlhRWxlbWVudDo6
VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW4oSW50UmVjdCBmaW5hbFJlY3Qp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbihjb25zdCBJ
bnRSZWN0JiBmaW5hbFJlY3QpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBjbGVh
bnVwRnVsbHNjcmVlbigpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBpbnZhbGlk
YXRlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHJlcXVlc3RIaWRlQW5kRXhp
dEZ1bGxzY3JlZW4oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgcHJlcGFyZWRU
b1JldHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgY29uc3QgSW50UmVjdCYgaW5saW5lUmVjdCk7
CiAKICAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25z
dCB7IHJldHVybiBtX21vZGU7IH0KICAgICB2b2lkIHNldElzT3B0aW1pemVkKGJvb2wpOwogICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgbWF5QXV0b21hdGljYWxseVNob3dWaWRlb09wdGltaXplZCgp
OwotICAgIGJvb2wgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7CisgICAgdm9pZCBmdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgYmVnaW5T
ZXNzaW9uKCk7Ci0gICAgdm9pZCBzZXR1cEZ1bGxzY3JlZW5JbnRlcm5hbChQbGF0Zm9ybUxheWVy
JiwgSW50UmVjdCBpbml0aWFsUmVjdCwgVUlWaWV3ICosIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVv
RnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVuKTsKKyAgICB2b2lk
IHNldHVwRnVsbHNjcmVlbkludGVybmFsKFBsYXRmb3JtTGF5ZXImLCBjb25zdCBJbnRSZWN0JiBp
bml0aWFsUmVjdCwgVUlWaWV3ICosIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUsIGJvb2wgYWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVuKTsKICAgICB2b2lkIGVudGVyRnVsbHNj
cmVlbk9wdGltaXplZCgpOwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuU3RhbmRhcmQoKTsKLSAg
ICB2b2lkIGV4aXRGdWxsc2NyZWVuSW50ZXJuYWwoSW50UmVjdCBmaW5hbFJlY3QpOworICAgIHZv
aWQgZXhpdEZ1bGxzY3JlZW5JbnRlcm5hbChjb25zdCBJbnRSZWN0JiBmaW5hbFJlY3QpOwogICAg
IHZvaWQgY2xlYW51cEZ1bGxzY3JlZW5JbnRlcm5hbCgpOwogCiAgICAgUmV0YWluUHRyPFdlYkFW
UGxheWVyQ29udHJvbGxlcj4gbV9wbGF5ZXJDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0Lm1tCmluZGV4IDg0MTRlM2M5NzhkZDVmMWIzMWUxYmE5ZGJkOTQzMmNjZmUxNjc3MzMu
LjUzZDk3ODlkZDQwNWY0ZDdkYzNkOTMzZDhlMGFiNGFlYThiZDA1ZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQubW0KQEAgLTEyNSw2ICsxMjUsOCBAQCBTT0ZUX0xJTktfQ09OU1RBTlQo
Q29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogQHByb3BlcnR5IEFWUGxheWVy
Q29udHJvbGxlckV4dGVybmFsUGxheWJhY2tUeXBlIGV4dGVybmFsUGxheWJhY2tUeXBlOwogQHBy
b3BlcnR5IChyZXRhaW4pIE5TU3RyaW5nICpleHRlcm5hbFBsYXliYWNrQWlyUGxheURldmljZUxv
Y2FsaXplZE5hbWU7CiAKK0Bwcm9wZXJ0eSAoY29weSkgdm9pZCAoXmV4aXRPcHRpbWl6ZWRDYWxs
YmFjaykoQk9PTCByZXN0b3JlZCk7CisKIC0gKEJPT0wpcGxheWVyVmlld0NvbnRyb2xsZXI6KEFW
UGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxlciBzaG91bGRFeGl0RnVs
bFNjcmVlbldpdGhSZWFzb246KEFWUGxheWVyVmlld0NvbnRyb2xsZXJFeGl0RnVsbFNjcmVlblJl
YXNvbilyZWFzb247CiBAZW5kCiAKQEAgLTIxMSwxMyArMjEzLDE1IEBAIFNPRlRfTElOS19DT05T
VEFOVChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAtICh2b2lkKXBsYXll
clZpZXdDb250cm9sbGVyOihBVlBsYXllclZpZXdDb250cm9sbGVyICopcGxheWVyVmlld0NvbnRy
b2xsZXIgcmVzdG9yZVVzZXJJbnRlcmZhY2VGb3JPcHRpbWl6ZWRGdWxsc2NyZWVuU3RvcFdpdGhD
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCByZXN0b3JlZCkpY29tcGxldGlvbkhhbmRs
ZXIKIHsKICAgICBVTlVTRURfUEFSQU0ocGxheWVyVmlld0NvbnRyb2xsZXIpOwotICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHNlbGYuZnVsbHNjcmVlbkludGVyZmFjZS0+ZnVsbHNjcmVlbk1heVJldHVy
blRvSW5saW5lKCkpOworICAgIHNlbGYuZXhpdE9wdGltaXplZENhbGxiYWNrID0gY29tcGxldGlv
bkhhbmRsZXI7CisgICAgc2VsZi5mdWxsc2NyZWVuSW50ZXJmYWNlLT5mdWxsc2NyZWVuTWF5UmV0
dXJuVG9JbmxpbmUoKTsKIH0KIAogLSAodm9pZClwbGF5ZXJWaWV3Q29udHJvbGxlcldpbGxDYW5j
ZWxPcHRpbWl6ZWRGdWxsc2NyZWU6KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3
Q29udHJvbGxlcgogewogICAgIFVOVVNFRF9QQVJBTShwbGF5ZXJWaWV3Q29udHJvbGxlcik7Ci0g
ICAgQVNTRVJUKHNlbGYuZGVsZWdhdGUpOworICAgIGlmICghc2VsZi5kZWxlZ2F0ZSkKKyAgICAg
ICAgcmV0dXJuCiAgICAgc2VsZi5kZWxlZ2F0ZS0+cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCk7CiB9
CiAKQEAgLTg1NCw3ICs4NTgsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXJuYQogICAgIH0pOwog
fQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3Jl
ZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXllciwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVj
dCwgVUlWaWV3KiBwYXJlbnRWaWV3LCBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5N
b2RlIG1vZGUsIGJvb2wgYWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVuKQordm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZp
ZGVvTGF5ZXIsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluaXRpYWxSZWN0LCBVSVZpZXcqIHBh
cmVudFZpZXcsIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9v
bCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pCiB7CiAgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlzKHRoaXMpOwogCkBAIC04NjgsNyArODcyLDcg
QEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVu
KFBsYXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIKICAgICB9KTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuSW50ZXJuYWwoUGxhdGZvcm1M
YXllciYgdmlkZW9MYXllciwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgVUlWaWV3KiBw
YXJlbnRWaWV3LCBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUsIGJv
b2wgYWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVuKQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuSW50ZXJuYWwoUGxhdGZvcm1MYXllciYgdmlkZW9M
YXllciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5pdGlhbFJlY3QsIFVJVmlldyogcGFyZW50
VmlldywgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlLCBib29sIGFs
bG93T3B0aW1pemVkRnVsbHNjcmVlbikKIHsKICAgICBVTlVTRURfUEFSQU0odmlkZW9MYXllcik7
CiAgICAgVU5VU0VEX1BBUkFNKG1vZGUpOwpAQCAtOTk4LDcgKzEwMDIsNyBAQCB2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW5TdGFuZGFyZCgpCiAg
ICAgfV07CiB9CiAKLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRG
dWxsc2NyZWVuKFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQordm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgZmluYWxSZWN0KQogewogICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdD4gc3Ryb25nVGhpcyh0aGlzKTsKIApAQCAtMTAxOCw3ICsxMDIyLDcgQEAgdm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oV2ViQ29yZTo6SW50
UmVjdCBmaW5hbFJlY3QKICAgICB9KTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW5JbnRlcm5hbChXZWJDb3JlOjpJbnRSZWN0IGZpbmFs
UmVjdCkKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2Ny
ZWVuSW50ZXJuYWwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZmluYWxSZWN0KQogewogICAgIFtt
X3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJhY2tDb250cm9sczpOT107CiAgICAg
aWYgKG1fdmlld0NvbnRyb2xsZXIpCkBAIC0xMTQ5LDYgKzExNTMsMjIgQEAgdm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigp
CiAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPnJlcXVlc3RFeGl0RnVsbHNjcmVlbigp
OwogfQogCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRv
UmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBjb25zdCBJbnRSZWN0JiBpbmxpbmVSZWN0KQor
eworICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gc3Ryb25nVGhp
cyh0aGlzKTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBb
c3Ryb25nVGhpcywgdmlzaWJsZSwgaW5saW5lUmVjdF0geworICAgICAgICBpZiAoc3Ryb25nVGhp
cy0+bV9wbGF5ZXJDb250cm9sbGVyLmdldCgpLmV4aXRPcHRpbWl6ZWRDYWxsYmFjaykgeworICAg
ICAgICAgICAgCisgICAgICAgICAgICBpZiAoc3Ryb25nVGhpcy0+bV92aWV3Q29udHJvbGxlcikK
KyAgICAgICAgICAgICAgICBbc3Ryb25nVGhpcy0+bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3
XS5mcmFtZSA9IFtzdHJvbmdUaGlzLT5tX3BhcmVudFZpZXcgY29udmVydFJlY3Q6aW5saW5lUmVj
dCB0b1ZpZXc6bmlsXTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBbc3Ryb25n
VGhpcy0+bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XS5mcmFtZSA9IGlubGluZVJlY3Q7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIHN0cm9uZ1RoaXMtPm1fcGxheWVyQ29udHJvbGxlci5n
ZXQoKS5leGl0T3B0aW1pemVkQ2FsbGJhY2sodmlzaWJsZSk7CisgICAgICAgIH0KKyAgICB9KTsK
K30KKwogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0SXNPcHRpbWl6
ZWQoYm9vbCBhY3RpdmUpCiB7CiAgICAgaWYgKG1fbW9kZSAmIEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgewpAQCAtMTE4NywxMCArMTIwNywxMCBAQCBib29s
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjptYXlBdXRvbWF0aWNhbGx5U2hvd1Zp
ZGVvT3B0aW1pemVkKCkKICAgICByZXR1cm4gW21fcGxheWVyQ29udHJvbGxlciBpc1BsYXlpbmdd
ICYmIG1fbW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRh
cmQgJiYgd2tJc09wdGltaXplZEZ1bGxzY3JlZW5TdXBwb3J0ZWQoKTsKIH0KIAotYm9vbCBXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5l
KCkKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZSgpCiB7Ci0gICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwotICAgIHJldHVybiB0cnVlOworICAgIGlmIChtX2Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2
ZXItPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuY3BwCmluZGV4IGI1OGIzMzE4NGU2YWYy
ZGI0NTE3ZTRlM2Q2YWNmOTk4MjYwOGYwNmYuLmZkNWRmNDQ3MDc2NjAxMTkxMTk4ZDRlOWNiNGI2
YmFjYTU1ODc0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxC
ZWhhdmlvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9y
LmNwcApAQCAtNDYsNiArNDYsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NvbnN0IFNj
cm9sbEFsaWdubWVudCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOb3RWaXNpYmxlID0g
eyBub1Njcm9sbCwgYWxpZ25DZW50ZXIsIG5vU2Nyb2xsIH07Citjb25zdCBTY3JvbGxBbGlnbm1l
bnQgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTm90VmlzaWJsZSA9IHsgbm9TY3JvbGws
IGFsaWduVG9DbG9zZXN0RWRnZSwgbm9TY3JvbGwgfTsKIGNvbnN0IFNjcm9sbEFsaWdubWVudCBT
Y3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQgPSB7IG5vU2Nyb2xsLCBhbGlnbkNl
bnRlciwgYWxpZ25Ub0Nsb3Nlc3RFZGdlIH07CiBXRUJDT1JFX0VYUE9SVCBjb25zdCBTY3JvbGxB
bGlnbm1lbnQgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkID0geyBub1Njcm9s
bCwgYWxpZ25Ub0Nsb3Nlc3RFZGdlLCBhbGlnblRvQ2xvc2VzdEVkZ2UgfTsKIFdFQkNPUkVfRVhQ
T1JUIGNvbnN0IFNjcm9sbEFsaWdubWVudCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVyQWx3
YXlzID0geyBhbGlnbkNlbnRlciwgYWxpZ25DZW50ZXIsIGFsaWduQ2VudGVyIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oCmluZGV4IDljZTc1YWJmYzY1ZTYzZGUw
ZmVlZmYxZjM0NWM1MDE3MTNjODBkNzcuLmM5ZTFmMDViZGQ1YjVmYTBjMjI4Nzg1MWIyYWY1NzVl
NzhlNTI4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhh
dmlvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5oCkBA
IC02MSw2ICs2MSw4IEBAIHN0cnVjdCBTY3JvbGxBbGlnbm1lbnQgewogICAgIHN0YXRpYyBTY3Jv
bGxCZWhhdmlvciBnZXRQYXJ0aWFsQmVoYXZpb3IoY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBzKSB7
IHJldHVybiBzLm1fcmVjdFBhcnRpYWw7IH0KICAgICBzdGF0aWMgU2Nyb2xsQmVoYXZpb3IgZ2V0
SGlkZGVuQmVoYXZpb3IoY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBzKSB7IHJldHVybiBzLm1fcmVj
dEhpZGRlbjsgfQogCisgICAgc3RhdGljIGNvbnN0IFNjcm9sbEFsaWdubWVudCBhbGlnbkNlbnRl
cklmTm90VmlzaWJsZTsKKyAgICBzdGF0aWMgY29uc3QgU2Nyb2xsQWxpZ25tZW50IGFsaWduVG9F
ZGdlSWZOb3RWaXNpYmxlOwogICAgIHN0YXRpYyBjb25zdCBTY3JvbGxBbGlnbm1lbnQgYWxpZ25D
ZW50ZXJJZk5lZWRlZDsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgY29uc3QgU2Nyb2xsQWxp
Z25tZW50IGFsaWduVG9FZGdlSWZOZWVkZWQ7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNv
bnN0IFNjcm9sbEFsaWdubWVudCBhbGlnbkNlbnRlckFsd2F5czsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5oCmluZGV4IGEwY2FmY2NkODkxNmI2ODVjMGQ1MWM2MjRjNDNkMDRjM2M2ZjFmMWMuLjFk
MDExZjhhYzRlNjVhOTMyZTllNTM1ZTVlOTcxYjdhMGNiYTExZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkuaApAQCAtNTUsMTEgKzU1LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXIm
KSBvdmVycmlkZTsKIAogICAgIC8vIFRyYW5zbGF0ZSB0byBGdWxsc2NyZWVuSW50ZXJmYWNlCi0g
ICAgdm9pZCBzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QsIFdlYkNvcmU6OkludFJlY3Qg
aW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvciwgV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd09wdGltaXplZEZ1
bGxzY3JlZW4pOworICAgIHZvaWQgc2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90LCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ0RldmljZVNjYWxl
RmFjdG9yLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBi
b29sIGFsbG93T3B0aW1pemVkRnVsbHNjcmVlbik7CiAgICAgdm9pZCBzZXRTZWVrYWJsZVJhbmdl
c1ZlY3Rvcihjb25zdCBWZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4mKTsKICAgICB2
b2lkIHNldEV4dGVybmFsUGxheWJhY2tQcm9wZXJ0aWVzKGJvb2wgZW5hYmxlZCwgdWludDMyX3Qg
dGFyZ2V0VHlwZSwgU3RyaW5nIGxvY2FsaXplZERldmljZU5hbWUpOwogICAgIHZvaWQgZnVsbHNj
cmVlbk1vZGVDaGFuZ2VkKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVl
bk1vZGUpIG92ZXJyaWRlOwotICAgIAorICAgIHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5l
KGJvb2wgdmlzaWJsZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5saW5lUmVjdCkgb3ZlcnJp
ZGU7CisKICAgICAvLyBGdWxsc2NyZWVuIE9ic2VydmVyCiAgICAgdmlydHVhbCB2b2lkIGRpZFNl
dHVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxz
Y3JlZW4oKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggYjc2M2IwMzg3Mzk4NDY1ZWU1YzU3Mzc3NzY2Y2Q2Mjc4NDhmZjczMC4uYzcy
OGMwYmJjOGI2YTIyM2RjYzVlOWYwNDdiMjhjMGE3NWZmYTQ5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTM2LDUgKzM2LDYgQEAgbWVzc2FnZXMg
LT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5IHsKICAgICBFbnRlckZ1bGxzY3JlZW4o
KQogICAgIEV4aXRGdWxsc2NyZWVuKFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQogICAgIENs
ZWFudXBGdWxsc2NyZWVuKCkKKyAgICBQcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNp
YmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkubW0KaW5kZXggM2NhZmFjMWI1NzYwOWUxYzdhODdlNDQ4NDhlNmFkN2Q0ZjM4
ZjQyMC4uMzY3N2VhMWVjYTE4MGY4MDQ5Y2Q5NjNiYTQzYzBiZjkyY2FlOGNmOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubW0KQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQogICAgIG1fbGF5ZXJIb3N0LmNsZWFyKCk7
CiB9CiAKLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3Jl
ZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxS
ZWN0LCBmbG9hdCBob3N0aW5nRGV2aWNlU2NhbGVGYWN0b3IsIEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd09wdGltaXpl
ZEZ1bGxzY3JlZW4pCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0dXBG
dWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvciwgSFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29s
IGFsbG93T3B0aW1pemVkRnVsbHNjcmVlbikKIHsKICAgICBBU1NFUlQodmlkZW9MYXllcklEKTsK
ICAgICBtX2xheWVySG9zdCA9IFdLTWFrZVJlbmRlckxheWVyKHZpZGVvTGF5ZXJJRCk7CkBAIC0x
MTksNyArMTE5LDE0IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRF
eHRlcm5hbFBsYXliYWNrUHJvcGVydGllcyhib29sIGVuYWJsZWQsCiAgICAgCiB2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkK
IHsKKyAgICBib29sIGlzVmlld1Zpc2libGUgPSBtX3BhZ2UtPmlzVmlld1Zpc2libGUoKTsKKyAg
ICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZShpc1ZpZXdWaXNpYmxlKSwgbV9wYWdlLT5wYWdlSUQoKSk7
Cit9CisgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRU
b1JldHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5s
aW5lUmVjdCkKK3sKICAgICBtX3BhZ2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwor
ICAgIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRvUmV0dXJuVG9J
bmxpbmUodmlzaWJsZSwgaW5saW5lUmVjdCk7CiB9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpyZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmlu
ZGV4IDRmNTM2YTY3NDkwYmJhN2NmMWU0YTA0MTRiNjhmYTE5NWQ3NDI1ODkuLjMzNGVhZWNjNzQ2
YTY2NzEzMWM1ODY5MGEwMWFiOTAxMGI3YWQxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTg2
LDYgKzg2LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0RnVsbHNjcmVl
bigpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odW5zaWduZWQpOworICAgIHZpcnR1YWwg
dm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoYm9vbCBpc1BhZ2VWaXNpYmxlKTsKICAg
ICB2b2lkIHNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRz
LCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KTsKICAgICAKICAgICBXZWJQYWdlKiBtX3BhZ2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBhOTg4NmZiZDRlZDc1
OWQyZGU3ZjkyMjk3ODZmM2RmYjdiMGU1ZTg2Li5kM2M2OGEzNjZjZjgxNTRlZGRkYjE4NmRkMmU2
YzkzNDdmZGE1MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAg
LTQyLDUgKzQyLDYgQEAgbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciB7CiAg
ICAgU2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkKICAgICBTZWxlY3RMZWdp
YmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCiAgICAgZnVsbHNjcmVlbk1vZGVDaGFuZ2Vk
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxs
c2NyZWVuTW9kZSkKKyAgICBGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoYm9vbCBpc1BhZ2VW
aXNpYmxlKQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCAwNGE0NjA0MGE0Y2Nl
MGMxMTBkNzE5YzI3OTBmNDUwZmUwY2QwZjZiLi45Y2VlYjhiZWNlZDM3ODIyYzhmNTFjOGJlZjEz
MmU3ZGU2YTZhOWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTI1OCw2ICsyNTgsMTMgQEAg
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0o
dW5zaWduZWQgZ3Jhdml0eSkKICAgICBzZXRWaWRlb0xheWVyR3Jhdml0eSgoV2ViVmlkZW9GdWxs
c2NyZWVuTW9kZWw6OlZpZGVvR3Jhdml0eSlncmF2aXR5KTsKIH0KICAgICAKK3ZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKGJvb2wgaXNQ
YWdlVmlzaWJsZSkKK3sKKyAgICBpZiAoIWlzUGFnZVZpc2libGUpCisgICAgICAgIG1fdmlkZW9F
bGVtZW50LT5zY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZShmYWxzZSk7CisgICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlByZXBhcmVkVG9S
ZXR1cm5Ub0lubGluZSh0cnVlLCBjbGllbnRSZWN0Rm9yRWxlbWVudChtX3ZpZGVvRWxlbWVudC5n
ZXQoKSkpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKIHZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBi
b3VuZHMsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCiB7CiAgICAgaWYgKG1fbGF5ZXJIb3N0
aW5nQ29udGV4dCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>