<?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>130360</bug_id>
          
          <creation_ts>2014-03-17 14:11:01 -0700</creation_ts>
          <short_desc>[iOS] WebKit2 Quicklook.</short_desc>
          <delta_ts>2014-03-19 12:25:03 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</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="Yongjun Zhang">yongjun_zhang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>japhet</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>991386</commentid>
    <comment_count>0</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2014-03-17 14:11:01 -0700</bug_when>
    <thetext>Quicklook.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991425</commentid>
    <comment_count>1</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2014-03-17 15:38:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/15260214&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991426</commentid>
    <comment_count>2</comment_count>
      <attachid>226972</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2014-03-17 15:39:10 -0700</bug_when>
    <thetext>Created attachment 226972
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991440</commentid>
    <comment_count>3</comment_count>
      <attachid>226976</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2014-03-17 16:09:32 -0700</bug_when>
    <thetext>Created attachment 226976
Fixed a conflict in WebKit2.xcodeproj/project.pbxproj.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991862</commentid>
    <comment_count>4</comment_count>
      <attachid>226976</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-18 13:53:41 -0700</bug_when>
    <thetext>Comment on attachment 226976
Fixed a conflict in WebKit2.xcodeproj/project.pbxproj.

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

&gt; Source/WebCore/WebCore.exp.in:2689
&gt; +__ZN7WebCore15QuickLookHandleD1Ev

Did you run sort-export-file?

&gt; Source/WebCore/loader/ResourceLoader.h:39
&gt; +#include &quot;QuickLook.h&quot;

Perhaps we should put this guard around the header instead of around each include?

&gt; Source/WebCore/loader/ResourceLoader.h:162
&gt; +    QuickLookHandle *quickLookHandle() const { return m_quickLookHandle.get(); }

Star on the wrong side.

&gt; Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp:150
&gt; +    m_webResourceLoaders.set(identifier, WebResourceLoaderIOS::create(resourceLoader));

maybe WebResourceLoader::create should make the right thing on each platform?

&gt; Source/WebKit2/WebProcess/ios/WebResourceLoaderIOS.h:35
&gt; +class WebResourceLoaderIOS : public WebResourceLoader {

this class can be &apos;final&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991993</commentid>
    <comment_count>5</comment_count>
      <attachid>226976</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-03-18 19:26:29 -0700</bug_when>
    <thetext>Comment on attachment 226976
Fixed a conflict in WebKit2.xcodeproj/project.pbxproj.

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

&gt;&gt; Source/WebKit2/WebProcess/ios/WebResourceLoaderIOS.h:35
&gt;&gt; +class WebResourceLoaderIOS : public WebResourceLoader {
&gt; 
&gt; this class can be &apos;final&apos;

I am not sure it is worth subclassing here.  I would just throw the QuickLook stuff right into WebResourceLoader.  I assume you didn&apos;t do that because the QuickLook stuff uses Objective-C. To get around that, I would add an C++ wrapper class (like we do for the content filtering stuff with the WebCore::ContentFilter class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992027</commentid>
    <comment_count>6</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2014-03-18 23:20:38 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 226976 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226976&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/WebProcess/ios/WebResourceLoaderIOS.h:35
&gt; &gt;&gt; +class WebResourceLoaderIOS : public WebResourceLoader {
&gt; &gt; 
&gt; &gt; this class can be &apos;final&apos;
&gt; 
&gt; I am not sure it is worth subclassing here.  I would just throw the QuickLook stuff right into WebResourceLoader.  I assume you didn&apos;t do that because the QuickLook stuff uses Objective-C. To get around that, I would add an C++ wrapper class (like we do for the content filtering stuff with the WebCore::ContentFilter class.

I was trying to avoid sprinkling USE(QUICK_LOOK) in WebResourceLoader.cpp.  I agree there is not real need for subclassing if we just add QL stuff in WebResourceLoader.  We don&apos;t even need a new wrapper for ObjC stuff since QuickLookHandle in WebCore already wraps qlConverter.  I will submit a new patch for this.  thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992029</commentid>
    <comment_count>7</comment_count>
      <attachid>227157</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2014-03-18 23:39:54 -0700</bug_when>
    <thetext>Created attachment 227157
Patch; add QuickLook stuff into WebResourceLoader instead of sub-classing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992030</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-18 23:40:59 -0700</bug_when>
    <thetext>Attachment 227157 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp:139:  Use 0 instead of NULL.  [readability/null] [5]
ERROR: Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp:152:  Declaration has space between type name and * in QuickLookHandle *quickLookHandle  [whitespace/declaration] [3]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992034</commentid>
    <comment_count>9</comment_count>
      <attachid>227162</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2014-03-18 23:46:08 -0700</bug_when>
    <thetext>Created attachment 227162
Fix style issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992043</commentid>
    <comment_count>10</comment_count>
      <attachid>227165</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2014-03-19 00:25:48 -0700</bug_when>
    <thetext>Created attachment 227165
Build fix for gtk port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992180</commentid>
    <comment_count>11</comment_count>
      <attachid>227165</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-19 11:03:24 -0700</bug_when>
    <thetext>Comment on attachment 227165
Build fix for gtk port.

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

Sam gives his blessing as well, but bugzilla is not cooperating for him.

&gt; Source/WebCore/platform/network/ios/QuickLook.mm:399
&gt; +        return adoptPtr(new QuickLookHandle(NULL, nil, response, delegate));

nullptr for the first arg, which is a C++ type?

&gt; Source/WebKit2/WebProcess/ios/WebResourceLoaderIOS.mm:45
&gt; +- (id)initWithWebResourceLoader:(PassRefPtr&lt;WebKit::WebResourceLoader&gt;)loader

instancetype for the return value?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992193</commentid>
    <comment_count>12</comment_count>
      <attachid>227205</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2014-03-19 11:45:44 -0700</bug_when>
    <thetext>Created attachment 227205
Address review comments before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992204</commentid>
    <comment_count>13</comment_count>
      <attachid>227205</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-19 12:24:58 -0700</bug_when>
    <thetext>Comment on attachment 227205
Address review comments before landing.

Clearing flags on attachment: 227205

Committed r165908: &lt;http://trac.webkit.org/changeset/165908&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992205</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-19 12:25:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226972</attachid>
            <date>2014-03-17 15:39:10 -0700</date>
            <delta_ts>2014-03-17 15:40:55 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>quicklook_wk2.patch</filename>
            <type>text/plain</type>
            <size>25135</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IGMyOWYyZjJjZDhiZjk0YmEyYTQ3MzBlMTcyNmRlYzE3YzZlNGQ4NzMKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBNb24gTWFyIDE3
IDE0OjExOjExIDIwMTQgLTA3MDAKCiAgICBbaU9TXSBXZWJLaXQyIFF1aWNrbG9vay4KICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAzNjAKICAgIAogICAgRm9y
IFdlYktpdDIgcmVzb3VyY2UgbG9hZHMsIGlmIHdlIGRldGVjdCBhIHF1aWNrbG9vayBjb250ZW50
IHRoYXQgUUxDb252ZXJ0ZXIgaXMgYWJsZSB0bwogICAgY29udmVydCwgaGFuZGxlIHRoZSByZXNw
b25zZSBkYXRhIHRvIFFMQ29udmVydGVyIGFuZCB1c2UgaXRzIGRlbGVnYXRlIFdLV2ViUmVzb3Vy
Y2VRdWlja0xvb2tEZWxlZ2F0ZQogICAgdG8gcm91bnRlIHRoZSBjb252ZXJ0ZWQgcmVzdWx0cyAo
SFRNTCkgYmFjayBpbnRvIFdlYkNvcmUuICBUaGllIHNpbWlsaWFyIGxvZ2ljIGhhcyBiZWVuIGlu
IHBsYWNlCiAgICBmb3IgV2ViS2l0MS4KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFmMzc0ZC4uYzQyNGJhZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTAzLTE3ICBZb25nanVuIFpoYW5nICA8
eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gV2ViS2l0MiBRdWlja2xv
b2suCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAz
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5j
ZSBSZXNvdXJjZUxvYWRlcnMgdXNpbmcgV2ViS2l0MiBuZXR3b3JrIHByb2Nlc3MgZG9uJ3QgaGF2
ZSBSZXNvdXJjZUhhbmRsZSBhbnkgbW9yZSwgd2UKKyAgICAgICAgbmVlZCB0byBtYWtlIGl0IHBv
c3NpYmxlIHRvIGNyZWF0ZSBRdWlja0xvb2tIYW5kbGUgZnJvbSBSZXNvdXJjZUxvYWRlci4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBNYWtlIHNvbWUgUXVpY2tMb29rSGFuZGxlIG1ldGhv
ZHMgdmlzaWJsZSBmcm9tIFdlYktpdDIuCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVy
Lmg6IEFkZCBtX3F1aWNrTG9va0hhbmRsZSBkYXRhIG1lbWJlciB0byBSZXNvdXJjZUxvYWRlci4K
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpxdWlja0xvb2tIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnNldFF1aWNrTG9va0hhbmRsZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLmg6IEFkZCBhIG5ldyBtZXRob2Qg
dG8gY3JlYXRlIFF1aWNrTG9va0hhbmRsZSBmcm9tIFJlc291cmNlTG9hZGVyLgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1
aWNrTG9va0hhbmRsZTo6Y3JlYXRlKToKKwogMjAxNC0wMy0xNiAgQnJlbnQgRnVsZ2hhbSAgPGJm
dWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm92aWRlIHByZWZlcmVuY2UgdG8gZW5hYmxl
IGFkZGl0aW9uYWwgQVZGb3VuZGF0aW9uIG9wdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXgg
NzBlMDI4Mi4uZThlYzFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTI2ODYsNiArMjY4Niwx
MiBAQCBfd2tHZXRWZXJ0aWNhbEdseXBoc0ZvckNoYXJhY3RlcnMKIF93a0dldFZpZXdwb3J0U2Ny
ZWVuU2l6ZQogX3drSXNHQjE4MDMwQ29tcGxpYW5jZVJlcXVpcmVkCiBfd2tTZXRMYXllckNvbnRl
bnRzU2NhbGUKK19fWk43V2ViQ29yZTE1UXVpY2tMb29rSGFuZGxlRDFFdgorX19aTjdXZWJDb3Jl
MTVRdWlja0xvb2tIYW5kbGU3ZGlkRmFpbEV2CitfX1pON1dlYkNvcmUxNVF1aWNrTG9va0hhbmRs
ZTE2ZGlkRmluaXNoTG9hZGluZ0V2CitfX1pON1dlYkNvcmUxNVF1aWNrTG9va0hhbmRsZTE0ZGlk
UmVjZWl2ZURhdGFFUEs4X19DRkRhdGEKK19fWk43V2ViQ29yZTE1UXVpY2tMb29rSGFuZGxlNmNy
ZWF0ZUVQTlNfMTRSZXNvdXJjZUxvYWRlckVQMTNOU1VSTFJlc3BvbnNlUDExb2JqY19vYmplY3QK
K19fWk43V2ViQ29yZTE1UXVpY2tMb29rSGFuZGxlMTBuc1Jlc3BvbnNlRXYKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oSU9TKSAmJiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX0xQNjRfXwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRleCAyOGYwMjQ1Li40YWI5MjNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaApAQCAtMzUsNiArMzUsMTAgQEAKICNp
bmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgi
CiAKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyNpbmNsdWRlICJRdWlja0xvb2suaCIKKyNlbmRpZgor
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
CkBAIC0xNTQsNiArMTU4LDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGF0YUJ1ZmZlcmlu
Z1BvbGljeShEYXRhQnVmZmVyaW5nUG9saWN5KTsKIAorI2lmIFVTRShRVUlDS19MT09LKQorICAg
IFF1aWNrTG9va0hhbmRsZSAqcXVpY2tMb29rSGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9xdWlj
a0xvb2tIYW5kbGUuZ2V0KCk7IH0KKyAgICB2b2lkIHNldFF1aWNrTG9va0hhbmRsZShQYXNzT3du
UHRyPFF1aWNrTG9va0hhbmRsZT4gaGFuZGxlKSB7IG1fcXVpY2tMb29rSGFuZGxlID0gaGFuZGxl
OyB9CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFJlc291cmNlTG9hZGVyKEZyYW1lKiwgUmVz
b3VyY2VMb2FkZXJPcHRpb25zKTsKIApAQCAtMjAyLDYgKzIxMSw5IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2RlZmVyc0xvYWRpbmc7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fZGVmZXJyZWRSZXF1
ZXN0OwogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBtX29wdGlvbnM7CisjaWYgVVNFKFFVSUNL
X0xPT0spCisgICAgT3duUHRyPFF1aWNrTG9va0hhbmRsZT4gbV9xdWlja0xvb2tIYW5kbGU7Cisj
ZW5kaWYKIH07CiAKIGlubGluZSBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBSZXNvdXJjZUxvYWRl
cjo6cmVzcG9uc2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9pb3MvUXVpY2tMb29rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2lvcy9RdWlja0xvb2suaAppbmRleCBiZTI3NTZkLi40YzNmOTA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaApAQCAtNjAsNiArNjAsNyBA
QCB0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxDb25uZWN0aW9uKiBDRlVSTENvbm5lY3Rpb25SZWY7CiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlOworY2xhc3MgUmVzb3Vy
Y2VMb2FkZXI7CiBjbGFzcyBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9u
RGVsZWdhdGU7CiAKIENsYXNzIFFMUHJldmlld0NvbnZlcnRlckNsYXNzKCk7CkBAIC05MSw2ICs5
Miw3IEBAIHB1YmxpYzoKICNpZiBVU0UoQ0ZORVRXT1JLKQogICAgIHN0YXRpYyBQYXNzT3duUHRy
PFF1aWNrTG9va0hhbmRsZT4gY3JlYXRlKFJlc291cmNlSGFuZGxlKiwgU3luY2hyb25vdXNSZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlKiwgQ0ZVUkxSZXNwb25zZVJlZik7CiAj
ZW5kaWYKKyAgICBzdGF0aWMgUGFzc093blB0cjxRdWlja0xvb2tIYW5kbGU+IGNyZWF0ZShSZXNv
dXJjZUxvYWRlciosIE5TVVJMUmVzcG9uc2UgKiwgaWQgZGVsZWdhdGUpOwogICAgIH5RdWlja0xv
b2tIYW5kbGUoKTsKIAogICAgIGJvb2wgZGlkUmVjZWl2ZURhdGFBcnJheShDRkFycmF5UmVmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9v
ay5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQpp
bmRleCBkMGFiNDNiLi40ZDRhYjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9pb3MvUXVpY2tMb29rLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJGaWxl
U3lzdGVtSU9TLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUhhbmRs
ZS5oIgorI2ltcG9ydCAiUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrc0lPUy5oIgogI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKICNpbXBvcnQgIlN5bmNo
cm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oIgpAQCAtMzkyLDYg
KzM5MywxNCBAQCBDRlVSTFJlc3BvbnNlUmVmIFF1aWNrTG9va0hhbmRsZTo6Y2ZSZXNwb25zZSgp
CiB9CiAjZW5kaWYKIAorUGFzc093blB0cjxRdWlja0xvb2tIYW5kbGU+IFF1aWNrTG9va0hhbmRs
ZTo6Y3JlYXRlKFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNl
LCBpZCBkZWxlZ2F0ZSkKK3sKKyAgICBpZiAobG9hZGVyLT5yZXF1ZXN0KCkuaXNNYWluUmVzb3Vy
Y2VSZXF1ZXN0KCkgJiYgW1dlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1Nl
dCgpIGNvbnRhaW5zT2JqZWN0OltyZXNwb25zZSBNSU1FVHlwZV1dKQorICAgICAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFF1aWNrTG9va0hhbmRsZShOVUxMLCBuaWwsIHJlc3BvbnNlLCBkZWxlZ2F0
ZSkpOworCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIE5TVVJMUmVzcG9uc2UgKlF1aWNrTG9v
a0hhbmRsZTo6bnNSZXNwb25zZSgpCiB7CiAgICAgcmV0dXJuIG1fbnNSZXNwb25zZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCA4YWE4ZmIwLi5hZmZkOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIw
MTQtMDMtMTcgIFlvbmdqdW4gWmhhbmcgIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KKworICAg
ICAgICBbaU9TXSBXZWJLaXQyIFF1aWNrbG9vay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDM2MAorCisgICAgICAgIEZvciBXZWJLaXQyIHJlc291
cmNlIGxvYWRzLCBpZiB3ZSBkZXRlY3QgYSBxdWlja2xvb2sgY29udGVudCB0aGF0IFFMQ29udmVy
dGVyIGlzIGFibGUgdG8KKyAgICAgICAgY29udmVydCwgaGFuZGxlIHRoZSByZXNwb25zZSBkYXRh
IHRvIFFMQ29udmVydGVyIGFuZCB1c2UgaXRzIGRlbGVnYXRlIFdLV2ViUmVzb3VyY2VRdWlja0xv
b2tEZWxlZ2F0ZQorICAgICAgICB0byByb3VudGUgdGhlIGNvbnZlcnRlZCByZXN1bHRzIChIVE1M
KSBiYWNrIGludG8gV2ViQ29yZS4gIFRoaWUgc2ltaWxpYXIgbG9naWMgaGFzIGJlZW4gaW4gcGxh
Y2UKKyAgICAgICAgZm9yIFdlYktpdDEuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFk
ZCBXZWJSZXNvdXJjZUxvYWRlcklPUyBjbGFzcyB0byB0aGUgcHJvamVjdC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQpOiBGb3IgaU9T
LCB1c2UgV2ViUmVzb3VyY2VMb2FkZXJJT1MgZm9yIHJlc291cmNlTG9hZGVyLgorICAgICAgICAq
IFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oOiBNYWtlIHNvbWUgbWV0aG9k
cyBpbiBXZWJSZXNvdXJjZUxvYWRlciB2aXJ0dWFsIHNvIHRoYXQgdGhleQorICAgICAgICAgICAg
Y291bGQgYmUgb3ZlcnJpZGRlbiBieSBXZWJSZXNvdXJjZUxvYWRlcklPUy4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2lvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5oOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2lvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5tbTogQWRkZWQuCisgICAgICAgICgt
W1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBpbml0V2l0aFdlYlJlc291cmNlTG9hZGVy
OldlYktpdDo6XSk6IFdLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBob2xkcworICAgICAg
ICAgICAgdGhlIG9yaWdpbmFsIFdlYlJlc291cmNlTG9hZGVyIHNvIHRoYXQgd2UgY291bGQgc2Vu
ZCBjb252ZXJ0ZWQgcmVzdWx0IHRvIFdlYkNvcmUuCisgICAgICAgICgtW1dLV2ViUmVzb3VyY2VR
dWlja0xvb2tEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhQXJyYXk6XSk6CisgICAg
ICAgICgtW1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2Vp
dmVEYXRhOmxlbmd0aFJlY2VpdmVkOl0pOgorICAgICAgICAoLVtXS1dlYlJlc291cmNlUXVpY2tM
b29rRGVsZWdhdGUgY29ubmVjdGlvbkRpZEZpbmlzaExvYWRpbmc6XSk6CisgICAgICAgICgtW1dL
V2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZEZhaWxXaXRoRXJyb3I6
XSk6CisgICAgICAgICgtW1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBjbGVhckhhbmRs
ZV0pOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcklPUzo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXJJT1M6OldlYlJlc291cmNlTG9hZGVySU9T
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXJJT1M6OmRpZFJlY2VpdmVSZXNw
b25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8pOiBGb3IgYSBuZXcgcmVzcG9uc2UsIGNoZWNrIGlmIFFM
Q29udmVydGVyCisgICAgICAgICAgICBpcyBhYmxlIHRvIGNvbnZlcnQgdGhpcyBjb250ZW50LCBh
bmQgc2V0IHVwIFF1aWNrTG9va0hhbmRsZSBmb3IgdGhlIFJlc291cmNlTG9hZGVyIGZvciBjb252
ZXJzaW9uLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcklPUzo6ZGlkUmVjZWl2
ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcklPUzo6ZGlkRmluaXNo
UmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXJJT1M6OmRp
ZEZhaWxSZXNvdXJjZUxvYWQpOgorCiAyMDE0LTAyLTI1ICBZb25nanVuIFpoYW5nICA8eW9uZ2p1
bl96aGFuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gRG93bmxvYWQgc3VwcG9ydCBieSBD
RlVSTERvd25sb2FkUmVmIHVuZGVyIFVTRShDRk5FVFdPUkspCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDUxMmI3YS4uODg5NmRh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNDU0LDYgKzQ1NCw4IEBACiAJCTFGN0RDQjFFMThCRDI4MzUwMEU4MjMwNyAvKiBX
S1dlYkRvd25sb2FkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUY3RENCMTkxOEJEMjZFNTAwRTgyMzA3IC8qIFdLV2ViRG93bmxvYWQubW0gKi87IH07
CiAJCTFGN0RDQjFGMThCRDI4M0EwMEU4MjMwNyAvKiBXS1dlYkRvd25sb2FkLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjdEQ0IxODE4QkQyNkU1MDBF
ODIzMDcgLyogV0tXZWJEb3dubG9hZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTFGN0RDQjIwMThCRDI4NDkwMEU4MjMwNyAvKiBXS1dlYkRvd25s
b2FkSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFGN0RDQjFBMThCRDI2RTUwMEU4MjMwNyAvKiBXS1dlYkRvd25sb2FkSW50ZXJuYWwuaCAq
LzsgfTsKKwkJMUY4NzI0QjYxOEQ3NjMyNTAwNzZENEI0IC8qIFdlYlJlc291cmNlTG9hZGVySU9T
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjg3MjRC
NDE4RDc2MzFEMDA3NkQ0QjQgLyogV2ViUmVzb3VyY2VMb2FkZXJJT1MuaCAqLzsgfTsKKwkJMUY4
NzI0QjcxOEQ3NjMyQjAwNzZENEI0IC8qIFdlYlJlc291cmNlTG9hZGVySU9TLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUY4NzI0QjMxOEQ3NjMxRDAw
NzZENEI0IC8qIFdlYlJlc291cmNlTG9hZGVySU9TLm1tICovOyB9OwogCQkxRkIwMEFDNzE4NUY3
NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRkIwMEFDNDE4NUY3NjQ2MDAxOTE0
MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUZCMDBBQzgxODVGNzY0NjAwMTkxNDJFIC8q
IFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGQjAwQUM1MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlBy
b2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0gKi87IH07CiAJCTFGQjAwQUM5MTg1Rjc2NDYwMDE5MTQy
RSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUZCMDBBQzYxODVGNzY0NjAwMTkxNDJF
IC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmggKi87IH07CkBAIC0yMjE1
LDYgKzIyMTcsOCBAQAogCQkxRjdEQ0IxODE4QkQyNkU1MDBFODIzMDcgLyogV0tXZWJEb3dubG9h
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYkRvd25sb2FkLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGN0RDQjE5MThCRDI2RTUwMEU4MjMwNyAvKiBX
S1dlYkRvd25sb2FkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V0tXZWJEb3dubG9hZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUY3RENCMUEx
OEJEMjZFNTAwRTgyMzA3IC8qIFdLV2ViRG93bmxvYWRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYkRvd25sb2FkSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUY4NzI0QjMxOEQ3NjMxRDAwNzZENEI0IC8qIFdlYlJlc291cmNl
TG9hZGVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2Vi
UmVzb3VyY2VMb2FkZXJJT1MubW07IHBhdGggPSBpb3MvV2ViUmVzb3VyY2VMb2FkZXJJT1MubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFGODcyNEI0MThENzYzMUQwMDc2RDRCNCAv
KiBXZWJSZXNvdXJjZUxvYWRlcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXZWJSZXNvdXJjZUxvYWRlcklPUy5oOyBwYXRoID0gaW9zL1dlYlJlc291cmNlTG9hZGVySU9T
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQjAwQUM0MTg1Rjc2NDYwMDE5MTQy
RSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFGQjAwQUM1MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQ
bHVnSW5QYWdlR3JvdXAubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFGQjAwQUM2MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdl
R3JvdXBJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlBy
b2Nlc3NQbHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNDI5Niw2ICs0MzAwLDE1IEBACiAJCQlwYXRoID0gQ29jb2E7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwogCQl9OworCQkxRjg3MjRCMjE4RDc2MzA0MDA3NkQ0QjQgLyogaW9zICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxRjg3MjRCMzE4
RDc2MzFEMDA3NkQ0QjQgLyogV2ViUmVzb3VyY2VMb2FkZXJJT1MubW0gKi8sCisJCQkJMUY4NzI0
QjQxOEQ3NjMxRDAwNzZENEI0IC8qIFdlYlJlc291cmNlTG9hZGVySU9TLmggKi8sCisJCQkpOwor
CQkJbmFtZSA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTI5ODlB
NDBFMTY3RDE4MTMwMDRGOTZEMiAvKiBDdXN0b21Qcm90b2NvbHMgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNDY1Miw2ICs0NjY1LDcgQEAKIAkJNTEwNUIw
RDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTFGODcyNEIyMThENzYzMDQwMDc2RDRCNCAvKiBpb3MgKi8s
CiAJCQkJNTEwNUIwRDQxNjJGN0E3QTAwRTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi5jcHAgKi8sCiAJCQkJNTEwNUIwRDUxNjJGN0E3QTAwRTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5oICovLAogCQkJCTUxRkIwOTAyMTYzQTNCMUMwMEVDMzI0QSAvKiBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCkBAIC02OTA4LDYgKzY5MjIsNyBAQAog
CQkJCUJDMDMyRDgyMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJJbnNwZWN0b3JDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBOUVBMzE3MThCQkRFMTMwMDRGN0M5NSAvKiBXS1Byb2Nlc3NDbGFz
c0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFDOEUyNUE5MTI3MEUzQkMwMEJD
N0JEMCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MUY4NzI0QjYxOEQ3NjMyNTAwNzZENEI0IC8qIFdlYlJlc291cmNlTG9hZGVySU9TLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQzhFMkEzNjEyNzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDOEUyODM0MTI3NUQ3MzgwMEJDN0JEMCAvKiBX
ZWJJbnNwZWN0b3JQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUNBOEI5NDYxMjdDODgyQTAw
NTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApAQCAt
ODQxOCw2ICs4NDMzLDcgQEAKIAkJCQkzNzk0ODQwMzE1MEMzNTA2MDBFNTJDRTkgLyogV2ViUmVu
ZGVyTGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQyOEYzRTYxODg1Q0NDMTAwNEI5RUFF
IC8qIFdlYkVkaXRvckNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3NjA4ODFFMTUw
NDEzRTkwMEZDODJDNyAvKiBXZWJSZW5kZXJPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MUY4NzI0QjcxOEQ3NjMyQjAwNzZENEI0IC8qIFdlYlJlc291cmNlTG9hZGVySU9TLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTEyMTc0NjQxNjRDMjEzNzAwMzdBNUMxIC8qIFdlYlJlc291cmNlQnVm
ZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMzY3NjJGMTMwQzk5OTgwMDZDOURFMiAvKiBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzM0Y5RDVCOTEz
MTJGMUVFMDAwRDY4M0YgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJDRk5ldC5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggYTVmY2Y3NC4uZDMwMGJk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTUyLDYgKzUyLDEwIEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9TdWJyZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIAorI2lmIFBMQVRGT1JNKElPUykKKyNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRl
cklPUy5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKQEAgLTk4LDcgKzEwMiwxMSBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciwg
Q2FjaAogICAgIC8vIHRoZW4gd2Ugc2hvdWxkIHJlbWVtYmVyIHRoZSBSZXNvdXJjZUxvYWRlciBp
biBvdXIgcmVjb3JkcyBidXQgbm90IHNjaGVkdWxlIGl0IGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4K
ICAgICBpZiAocmVzb3VyY2VMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPnNjaGVkdWxlQXJjaGl2
ZUxvYWQocmVzb3VyY2VMb2FkZXIsIHJlc291cmNlTG9hZGVyLT5yZXF1ZXN0KCkpKSB7CiAgICAg
ICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXI6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBoYW5kbGVkIGFzIGFuIGFy
Y2hpdmUgcmVzb3VyY2UuIiwgcmVzb3VyY2VMb2FkZXItPnVybCgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgbV93ZWJSZXNvdXJjZUxvYWRlcnMu
c2V0KGlkZW50aWZpZXIsIFdlYlJlc291cmNlTG9hZGVySU9TOjpjcmVhdGUocmVzb3VyY2VMb2Fk
ZXIpKTsKKyNlbHNlCiAgICAgICAgIG1fd2ViUmVzb3VyY2VMb2FkZXJzLnNldChpZGVudGlmaWVy
LCBXZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKHJlc291cmNlTG9hZGVyKSk7CisjZW5kaWYKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtMTM3LDkgKzE0NSwxMyBAQCB2b2lkIFdl
YlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyKiByZXNv
dXJjZUxvYWRlciwgQ2FjaAogICAgICAgICBzY2hlZHVsZUludGVybmFsbHlGYWlsZWRMb2FkKHJl
c291cmNlTG9hZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAKKworI2lmIFBMQVRG
T1JNKElPUykKKyAgICBtX3dlYlJlc291cmNlTG9hZGVycy5zZXQoaWRlbnRpZmllciwgV2ViUmVz
b3VyY2VMb2FkZXJJT1M6OmNyZWF0ZShyZXNvdXJjZUxvYWRlcikpOworI2Vsc2UKICAgICBtX3dl
YlJlc291cmNlTG9hZGVycy5zZXQoaWRlbnRpZmllciwgV2ViUmVzb3VyY2VMb2FkZXI6OmNyZWF0
ZShyZXNvdXJjZUxvYWRlcikpOwotICAgIAorI2VuZGlmCisKICAgICBub3RpZnlEaWRTY2hlZHVs
ZVJlc291cmNlUmVxdWVzdChyZXNvdXJjZUxvYWRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKaW5kZXggOWM4
YWU0OC4uYzRlMWUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKQEAgLTY1LDkgKzY1LDE1IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgZGV0YWNoRnJvbUNvcmVMb2FkZXIoKTsKIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoK
ICAgICBXZWJSZXNvdXJjZUxvYWRlcihQYXNzUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
Pik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmljYXRl
SW5mbyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6Q2Vy
dGlmaWNhdGVJbmZvJiwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2Fn
ZSk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRG
aW5pc2hSZXNvdXJjZUxvYWQoZG91YmxlIGZpbmlzaFRpbWUpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKworcHJp
dmF0ZToKICAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKICAgICB2aXJ0dWFsIElQQzo6Q29ubmVj
dGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHVp
bnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGU7CkBAIC03NiwxMCAr
ODIsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVk
aXJlY3RSZXNwb25zZSk7CiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCBieXRlc1NlbnQs
IHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2VudCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2VXaXRoQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBj
b25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2VNZXNzYWdlKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOwotICAgIHZvaWQgZGlk
RmluaXNoUmVzb3VyY2VMb2FkKGRvdWJsZSBmaW5pc2hUaW1lKTsKLSAgICB2b2lkIGRpZEZhaWxS
ZXNvdXJjZUxvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwogI2lmIEVOQUJMRShT
SEFSRUFCTEVfUkVTT1VSQ0UpCiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2UoY29uc3QgU2hh
cmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYsIGRvdWJsZSBmaW5pc2hUaW1lKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViUmVzb3VyY2VMb2FkZXJJ
T1MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlJlc291cmNlTG9hZGVySU9T
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJhNGIxMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlJlc291cmNlTG9hZGVy
SU9TLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUmVzb3VyY2VM
b2FkZXJJT1NfaAorI2RlZmluZSBXZWJSZXNvdXJjZUxvYWRlcklPU19oCisKKyNpZiBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkZXIuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlJlc291cmNlTG9hZGVySU9TIDogcHVibGljIFdl
YlJlc291cmNlTG9hZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJSZXNv
dXJjZUxvYWRlcklPUz4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+
KTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENl
cnRpZmljYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlTWVzc2FnZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hSZXNvdXJjZUxvYWQoZG91YmxlIGZpbmlz
aFRpbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsUmVzb3VyY2VMb2FkKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKKworICAgIFdlYlJlc291cmNl
TG9hZGVySU9TKFBhc3NSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+KTsKK307CisKK30K
KyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisjZW5kaWYgLy8gV2ViUmVzb3Vy
Y2VMb2FkZXJJT1NfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3Mv
V2ViUmVzb3VyY2VMb2FkZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJSZXNvdXJjZUxvYWRlcklPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5jNDM0Y2I1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9p
b3MvV2ViUmVzb3VyY2VMb2FkZXJJT1MubW0KQEAgLTAsMCArMSwxNjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYlJlc291cmNlTG9hZGVySU9TLmgiCisK
KyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlTG9hZGVyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCisjaWYgVVNFKFFV
SUNLX0xPT0spCisKK0BpbnRlcmZhY2UgV0tXZWJSZXNvdXJjZVF1aWNrTG9va0RlbGVnYXRlIDog
TlNPYmplY3QgPE5TVVJMQ29ubmVjdGlvbkRlbGVnYXRlPiB7CisgICAgUmVmUHRyPFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXJJT1M+IF93ZWJSZXNvdXJjZUxvYWRlcjsKK30KK0BlbmQKKworQGlt
cGxlbWVudGF0aW9uIFdLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZQorCistIChpZClpbml0
V2l0aFdlYlJlc291cmNlTG9hZGVyOihXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVySU9TICopbG9h
ZGVyCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAg
IHJldHVybiBuaWw7CisKKyAgICBfd2ViUmVzb3VyY2VMb2FkZXIgPSBsb2FkZXI7CisgICAgcmV0
dXJuIHNlbGY7Cit9CisKKyNpZiBVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0spCist
ICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2
ZURhdGFBcnJheTooTlNBcnJheSAqKWRhdGFBcnJheQoreworICAgIFVOVVNFRF9QQVJBTShjb25u
ZWN0aW9uKTsKKyAgICBpZiAoIV93ZWJSZXNvdXJjZUxvYWRlcikKKyAgICAgICAgcmV0dXJuOwor
ICAgIF93ZWJSZXNvdXJjZUxvYWRlci0+cmVzb3VyY2VMb2FkZXIoKS0+ZGlkUmVjZWl2ZURhdGFB
cnJheShyZWludGVycHJldF9jYXN0PENGQXJyYXlSZWY+KGRhdGFBcnJheSkpOworfQorI2VuZGlm
CisKKy0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRS
ZWNlaXZlRGF0YTooTlNEYXRhICopZGF0YSBsZW5ndGhSZWNlaXZlZDoobG9uZyBsb25nKWxlbmd0
aFJlY2VpdmVkCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworICAgIGlmICghX3dl
YlJlc291cmNlTG9hZGVyKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBRdWlja0xvb2sgY29k
ZSBzZW5kcyB1cyBhIG5pbCBkYXRhIGF0IHRpbWVzLiBUaGUgY2hlY2sgYmVsb3cgaXMgdGhlIHNh
bWUgYXMgdGhlIG9uZSBpbgorICAgIC8vIFJlc291cmNlSGFuZGxlTWFjLmNwcCBhZGRlZCBmb3Ig
YSBkaWZmZXJlbnQgYnVnLgorICAgIGlmICghW2RhdGEgbGVuZ3RoXSkKKyAgICAgICAgcmV0dXJu
OworICAgIF93ZWJSZXNvdXJjZUxvYWRlci0+cmVzb3VyY2VMb2FkZXIoKS0+ZGlkUmVjZWl2ZURh
dGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2RhdGEgYnl0ZXNdKSwgW2RhdGEgbGVu
Z3RoXSwgbGVuZ3RoUmVjZWl2ZWQsIERhdGFQYXlsb2FkQnl0ZXMpOworfQorCistICh2b2lkKWNv
bm5lY3Rpb25EaWRGaW5pc2hMb2FkaW5nOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uCit7
CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworICAgIGlmICghX3dlYlJlc291cmNlTG9h
ZGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBfd2ViUmVzb3VyY2VMb2FkZXItPnJlc291cmNl
TG9hZGVyKCktPmRpZEZpbmlzaExvYWRpbmcoMCk7Cit9CisKKy0gKHZvaWQpY29ubmVjdGlvbjoo
TlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICop
ZXJyb3IKK3sKKyAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisKKyAgICBfd2ViUmVzb3Vy
Y2VMb2FkZXItPnJlc291cmNlTG9hZGVyKCktPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihlcnJvcikp
OworfQorCistICh2b2lkKWNsZWFySGFuZGxlCit7CisgICAgX3dlYlJlc291cmNlTG9hZGVyID0g
bnVsbHB0cjsKK30KKworQGVuZAorCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bh
c3NSZWZQdHI8V2ViUmVzb3VyY2VMb2FkZXJJT1M+IFdlYlJlc291cmNlTG9hZGVySU9TOjpjcmVh
dGUoUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRlcj4gY29yZUxvYWRlcikKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYlJlc291cmNlTG9hZGVySU9TKGNvcmVMb2FkZXIpKTsKK30KKworV2Vi
UmVzb3VyY2VMb2FkZXJJT1M6OldlYlJlc291cmNlTG9hZGVySU9TKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6UmVzb3VyY2VMb2FkZXI+IGNvcmVMb2FkZXIpCisgICAgOiBXZWJSZXNvdXJjZUxvYWRlcihj
b3JlTG9hZGVyKQoreworfQorCit2b2lkIFdlYlJlc291cmNlTG9hZGVySU9TOjpkaWRSZWNlaXZl
UmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRl
SW5mbywgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKK3sKKyNp
ZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBSZXNvdXJjZUxvYWRlciAqY29yZUxvYWRlciA9IHJlc291
cmNlTG9hZGVyKCk7CisgICAgUmV0YWluUHRyPFdLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0
ZT4gZGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tXZWJSZXNvdXJjZVF1aWNrTG9va0RlbGVnYXRlIGFs
bG9jXSBpbml0V2l0aFdlYlJlc291cmNlTG9hZGVyOnRoaXNdKTsKKyAgICBPd25QdHI8UXVpY2tM
b29rSGFuZGxlPiBxdWlja0xvb2tIYW5kbGUgPSBRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShjb3Jl
TG9hZGVyLCByZXNwb25zZS5uc1VSTFJlc3BvbnNlKCksIGRlbGVnYXRlLmdldCgpKTsKKyAgICBp
ZiAocXVpY2tMb29rSGFuZGxlKSB7CisgICAgICAgIGNvcmVMb2FkZXItPnNldFF1aWNrTG9va0hh
bmRsZShxdWlja0xvb2tIYW5kbGUucmVsZWFzZSgpKTsKKyAgICAgICAgUmVzb3VyY2VSZXNwb25z
ZSBjb3JlUmVzcG9uc2UoY29yZUxvYWRlci0+cXVpY2tMb29rSGFuZGxlKCktPm5zUmVzcG9uc2Uo
KSk7CisgICAgICAgIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2VXaXRoQ2Vy
dGlmaWNhdGVJbmZvKGNvcmVSZXNwb25zZSwgY2VydGlmaWNhdGVJbmZvLCBuZWVkc0NvbnRpbnVl
RGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5k
aWYKKworICAgIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2VXaXRoQ2VydGlm
aWNhdGVJbmZvKHJlc3BvbnNlLCBjZXJ0aWZpY2F0ZUluZm8sIG5lZWRzQ29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2VNZXNzYWdlKTsKK30KKwordm9pZCBXZWJSZXNvdXJjZUxvYWRlcklPUzo6ZGlk
UmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGVuY29k
ZWREYXRhTGVuZ3RoKQoreworI2lmIFVTRShRVUlDS19MT09LKQorICAgIFF1aWNrTG9va0hhbmRs
ZSAqcWwgPSByZXNvdXJjZUxvYWRlcigpLT5xdWlja0xvb2tIYW5kbGUoKTsKKyAgICBpZiAocWwp
IHsKKyAgICAgICAgTlNEYXRhICpuc0RhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6cmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpIGxlbmd0aDpkYXRhLnNpemUoKV07
CisgICAgICAgIGlmIChxbC0+ZGlkUmVjZWl2ZURhdGEoKENGRGF0YVJlZiluc0RhdGEpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorICAgIFdlYlJlc291cmNlTG9hZGVyOjpk
aWRSZWNlaXZlRGF0YShkYXRhLCBlbmNvZGVkRGF0YUxlbmd0aCk7Cit9CisKK3ZvaWQgV2ViUmVz
b3VyY2VMb2FkZXJJT1M6OmRpZEZpbmlzaFJlc291cmNlTG9hZChkb3VibGUgZmluaXNoVGltZSkK
K3sKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICAvLyBGSVhNRTogSXMgZmluaXNoVGltZSByZWFs
bHkgaW1wb3J0YW50IGZvciBRdWlja0xvb2sgZG9jdW1lbnQ/CisgICAgUXVpY2tMb29rSGFuZGxl
ICpxbCA9IHJlc291cmNlTG9hZGVyKCktPnF1aWNrTG9va0hhbmRsZSgpOworICAgIGlmIChxbCAm
JiBxbC0+ZGlkRmluaXNoTG9hZGluZygpKQorICAgICAgICByZXR1cm47CisjZW5kaWYKKyAgICBX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGZpbmlzaFRpbWUpOworfQor
Cit2b2lkIFdlYlJlc291cmNlTG9hZGVySU9TOjpkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yKQoreworI2lmIFVTRShRVUlDS19MT09LKQorICAg
IFF1aWNrTG9va0hhbmRsZSAqcWwgPSByZXNvdXJjZUxvYWRlcigpLT5xdWlja0xvb2tIYW5kbGUo
KTsKKyAgICBpZiAocWwpCisgICAgICAgIHFsLT5kaWRGYWlsKCk7CisjZW5kaWYKKyAgICBXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZChlcnJvcik7Cit9CisgICAgCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226976</attachid>
            <date>2014-03-17 16:09:32 -0700</date>
            <delta_ts>2014-03-18 23:46:08 -0700</delta_ts>
            <desc>Fixed a conflict in WebKit2.xcodeproj/project.pbxproj.</desc>
            <filename>wk2_quicklook.patch</filename>
            <type>text/plain</type>
            <size>25280</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IDI2N2Y4N2VhZTNkZGY1ZDU1MTBiODUxODU4ODMwZGQwMDYyMjMzYjkKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBNb24gTWFyIDE3
IDE0OjExOjExIDIwMTQgLTA3MDAKCiAgICBbaU9TXSBXZWJLaXQyIFF1aWNrbG9vay4KICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAzNjAKICAgIAogICAgRm9y
IFdlYktpdDIgcmVzb3VyY2UgbG9hZHMsIGlmIHdlIGRldGVjdCBhIHF1aWNrbG9vayBjb250ZW50
IHRoYXQgUUxDb252ZXJ0ZXIgaXMgYWJsZSB0bwogICAgY29udmVydCwgaGFuZGxlIHRoZSByZXNw
b25zZSBkYXRhIHRvIFFMQ29udmVydGVyIGFuZCB1c2UgaXRzIGRlbGVnYXRlIFdLV2ViUmVzb3Vy
Y2VRdWlja0xvb2tEZWxlZ2F0ZQogICAgdG8gcm91bnRlIHRoZSBjb252ZXJ0ZWQgcmVzdWx0cyAo
SFRNTCkgYmFjayBpbnRvIFdlYkNvcmUuICBUaGllIHNpbWlsaWFyIGxvZ2ljIGhhcyBiZWVuIGlu
IHBsYWNlCiAgICBmb3IgV2ViS2l0MS4KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM1MjIwZi4uN2Q0NzczYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTAzLTE3ICBZb25nanVuIFpoYW5nICA8
eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gV2ViS2l0MiBRdWlja2xv
b2suCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAz
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5j
ZSBSZXNvdXJjZUxvYWRlcnMgdXNpbmcgV2ViS2l0MiBuZXR3b3JrIHByb2Nlc3MgZG9uJ3QgaGF2
ZSBSZXNvdXJjZUhhbmRsZSBhbnkgbW9yZSwgd2UKKyAgICAgICAgbmVlZCB0byBtYWtlIGl0IHBv
c3NpYmxlIHRvIGNyZWF0ZSBRdWlja0xvb2tIYW5kbGUgZnJvbSBSZXNvdXJjZUxvYWRlci4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBNYWtlIHNvbWUgUXVpY2tMb29rSGFuZGxlIG1ldGhv
ZHMgdmlzaWJsZSBmcm9tIFdlYktpdDIuCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVy
Lmg6IEFkZCBtX3F1aWNrTG9va0hhbmRsZSBkYXRhIG1lbWJlciB0byBSZXNvdXJjZUxvYWRlci4K
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpxdWlja0xvb2tIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnNldFF1aWNrTG9va0hhbmRsZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLmg6IEFkZCBhIG5ldyBtZXRob2Qg
dG8gY3JlYXRlIFF1aWNrTG9va0hhbmRsZSBmcm9tIFJlc291cmNlTG9hZGVyLgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1
aWNrTG9va0hhbmRsZTo6Y3JlYXRlKToKKwogMjAxNC0wMy0xNyAgQnJlbnQgRnVsZ2hhbSAgPGJm
dWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViVlRUXSBFeHRlbmRpbmcgV2ViVlRUIFJl
bmRlcmluZyB3aXRoIFJlZ2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNzBlMDI4Mi4uZThl
YzFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTI2ODYsNiArMjY4NiwxMiBAQCBfd2tHZXRW
ZXJ0aWNhbEdseXBoc0ZvckNoYXJhY3RlcnMKIF93a0dldFZpZXdwb3J0U2NyZWVuU2l6ZQogX3dr
SXNHQjE4MDMwQ29tcGxpYW5jZVJlcXVpcmVkCiBfd2tTZXRMYXllckNvbnRlbnRzU2NhbGUKK19f
Wk43V2ViQ29yZTE1UXVpY2tMb29rSGFuZGxlRDFFdgorX19aTjdXZWJDb3JlMTVRdWlja0xvb2tI
YW5kbGU3ZGlkRmFpbEV2CitfX1pON1dlYkNvcmUxNVF1aWNrTG9va0hhbmRsZTE2ZGlkRmluaXNo
TG9hZGluZ0V2CitfX1pON1dlYkNvcmUxNVF1aWNrTG9va0hhbmRsZTE0ZGlkUmVjZWl2ZURhdGFF
UEs4X19DRkRhdGEKK19fWk43V2ViQ29yZTE1UXVpY2tMb29rSGFuZGxlNmNyZWF0ZUVQTlNfMTRS
ZXNvdXJjZUxvYWRlckVQMTNOU1VSTFJlc3BvbnNlUDExb2JqY19vYmplY3QKK19fWk43V2ViQ29y
ZTE1UXVpY2tMb29rSGFuZGxlMTBuc1Jlc3BvbnNlRXYKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
SU9TKSAmJiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX0xQNjRfXwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkZXIuaAppbmRleCAyOGYwMjQ1Li40YWI5MjNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaApAQCAtMzUsNiArMzUsMTAgQEAKICNpbmNsdWRlICJSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAKKyNpZiBVU0Uo
UVVJQ0tfTE9PSykKKyNpbmNsdWRlICJRdWlja0xvb2suaCIKKyNlbmRpZgorCiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC0xNTQsNiAr
MTU4LDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGF0YUJ1ZmZlcmluZ1BvbGljeShEYXRh
QnVmZmVyaW5nUG9saWN5KTsKIAorI2lmIFVTRShRVUlDS19MT09LKQorICAgIFF1aWNrTG9va0hh
bmRsZSAqcXVpY2tMb29rSGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9xdWlja0xvb2tIYW5kbGUu
Z2V0KCk7IH0KKyAgICB2b2lkIHNldFF1aWNrTG9va0hhbmRsZShQYXNzT3duUHRyPFF1aWNrTG9v
a0hhbmRsZT4gaGFuZGxlKSB7IG1fcXVpY2tMb29rSGFuZGxlID0gaGFuZGxlOyB9CisjZW5kaWYK
KwogcHJvdGVjdGVkOgogICAgIFJlc291cmNlTG9hZGVyKEZyYW1lKiwgUmVzb3VyY2VMb2FkZXJP
cHRpb25zKTsKIApAQCAtMjAyLDYgKzIxMSw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RlZmVy
c0xvYWRpbmc7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fZGVmZXJyZWRSZXF1ZXN0OwogICAgIFJl
c291cmNlTG9hZGVyT3B0aW9ucyBtX29wdGlvbnM7CisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAg
T3duUHRyPFF1aWNrTG9va0hhbmRsZT4gbV9xdWlja0xvb2tIYW5kbGU7CisjZW5kaWYKIH07CiAK
IGlubGluZSBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBSZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2Uo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3Mv
UXVpY2tMb29rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xv
b2suaAppbmRleCBiZTI3NTZkLi40YzNmOTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaApAQCAtNjAsNiArNjAsNyBAQCB0eXBlZGVmIHN0
cnVjdCBfQ0ZVUkxDb25uZWN0aW9uKiBDRlVSTENvbm5lY3Rpb25SZWY7CiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlOworY2xhc3MgUmVzb3VyY2VMb2FkZXI7CiBj
bGFzcyBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU7CiAK
IENsYXNzIFFMUHJldmlld0NvbnZlcnRlckNsYXNzKCk7CkBAIC05MSw2ICs5Miw3IEBAIHB1Ymxp
YzoKICNpZiBVU0UoQ0ZORVRXT1JLKQogICAgIHN0YXRpYyBQYXNzT3duUHRyPFF1aWNrTG9va0hh
bmRsZT4gY3JlYXRlKFJlc291cmNlSGFuZGxlKiwgU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNG
VVJMQ29ubmVjdGlvbkRlbGVnYXRlKiwgQ0ZVUkxSZXNwb25zZVJlZik7CiAjZW5kaWYKKyAgICBz
dGF0aWMgUGFzc093blB0cjxRdWlja0xvb2tIYW5kbGU+IGNyZWF0ZShSZXNvdXJjZUxvYWRlcios
IE5TVVJMUmVzcG9uc2UgKiwgaWQgZGVsZWdhdGUpOwogICAgIH5RdWlja0xvb2tIYW5kbGUoKTsK
IAogICAgIGJvb2wgZGlkUmVjZWl2ZURhdGFBcnJheShDRkFycmF5UmVmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQppbmRleCBkMGFiNDNi
Li40ZDRhYjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lv
cy9RdWlja0xvb2subW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3Mv
UXVpY2tMb29rLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJGaWxlU3lzdGVtSU9TLmgi
CiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUhhbmRsZS5oIgorI2ltcG9y
dCAiUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lP
Uy5oIgogI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKICNpbXBvcnQgIlN5bmNocm9ub3VzUmVzb3Vy
Y2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oIgpAQCAtMzkyLDYgKzM5MywxNCBAQCBD
RlVSTFJlc3BvbnNlUmVmIFF1aWNrTG9va0hhbmRsZTo6Y2ZSZXNwb25zZSgpCiB9CiAjZW5kaWYK
IAorUGFzc093blB0cjxRdWlja0xvb2tIYW5kbGU+IFF1aWNrTG9va0hhbmRsZTo6Y3JlYXRlKFJl
c291cmNlTG9hZGVyKiBsb2FkZXIsIE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlLCBpZCBkZWxlZ2F0
ZSkKK3sKKyAgICBpZiAobG9hZGVyLT5yZXF1ZXN0KCkuaXNNYWluUmVzb3VyY2VSZXF1ZXN0KCkg
JiYgW1dlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpIGNvbnRhaW5z
T2JqZWN0OltyZXNwb25zZSBNSU1FVHlwZV1dKQorICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IFF1aWNrTG9va0hhbmRsZShOVUxMLCBuaWwsIHJlc3BvbnNlLCBkZWxlZ2F0ZSkpOworCisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKIE5TVVJMUmVzcG9uc2UgKlF1aWNrTG9va0hhbmRsZTo6bnNS
ZXNwb25zZSgpCiB7CiAgICAgcmV0dXJuIG1fbnNSZXNwb25zZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4MmI5
N2U1Li4yNzEyYjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTQtMDMtMTcgIFlv
bmdqdW4gWmhhbmcgIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBX
ZWJLaXQyIFF1aWNrbG9vay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzMDM2MAorCisgICAgICAgIEZvciBXZWJLaXQyIHJlc291cmNlIGxvYWRzLCBp
ZiB3ZSBkZXRlY3QgYSBxdWlja2xvb2sgY29udGVudCB0aGF0IFFMQ29udmVydGVyIGlzIGFibGUg
dG8KKyAgICAgICAgY29udmVydCwgaGFuZGxlIHRoZSByZXNwb25zZSBkYXRhIHRvIFFMQ29udmVy
dGVyIGFuZCB1c2UgaXRzIGRlbGVnYXRlIFdLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZQor
ICAgICAgICB0byByb3VudGUgdGhlIGNvbnZlcnRlZCByZXN1bHRzIChIVE1MKSBiYWNrIGludG8g
V2ViQ29yZS4gIFRoaWUgc2ltaWxpYXIgbG9naWMgaGFzIGJlZW4gaW4gcGxhY2UKKyAgICAgICAg
Zm9yIFdlYktpdDEuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBXZWJSZXNvdXJj
ZUxvYWRlcklPUyBjbGFzcyB0byB0aGUgcHJvamVjdC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQpOiBGb3IgaU9TLCB1c2UgV2ViUmVz
b3VyY2VMb2FkZXJJT1MgZm9yIHJlc291cmNlTG9hZGVyLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oOiBNYWtlIHNvbWUgbWV0aG9kcyBpbiBXZWJSZXNv
dXJjZUxvYWRlciB2aXJ0dWFsIHNvIHRoYXQgdGhleQorICAgICAgICAgICAgY291bGQgYmUgb3Zl
cnJpZGRlbiBieSBXZWJSZXNvdXJjZUxvYWRlcklPUy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2lv
cy9XZWJSZXNvdXJjZUxvYWRlcklPUy5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2lv
cy9XZWJSZXNvdXJjZUxvYWRlcklPUy5tbTogQWRkZWQuCisgICAgICAgICgtW1dLV2ViUmVzb3Vy
Y2VRdWlja0xvb2tEZWxlZ2F0ZSBpbml0V2l0aFdlYlJlc291cmNlTG9hZGVyOldlYktpdDo6XSk6
IFdLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBob2xkcworICAgICAgICAgICAgdGhlIG9y
aWdpbmFsIFdlYlJlc291cmNlTG9hZGVyIHNvIHRoYXQgd2UgY291bGQgc2VuZCBjb252ZXJ0ZWQg
cmVzdWx0IHRvIFdlYkNvcmUuCisgICAgICAgICgtW1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxl
Z2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhQXJyYXk6XSk6CisgICAgICAgICgtW1dLV2Vi
UmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhOmxlbmd0
aFJlY2VpdmVkOl0pOgorICAgICAgICAoLVtXS1dlYlJlc291cmNlUXVpY2tMb29rRGVsZWdhdGUg
Y29ubmVjdGlvbkRpZEZpbmlzaExvYWRpbmc6XSk6CisgICAgICAgICgtW1dLV2ViUmVzb3VyY2VR
dWlja0xvb2tEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZEZhaWxXaXRoRXJyb3I6XSk6CisgICAgICAg
ICgtW1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBjbGVhckhhbmRsZV0pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcklPUzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkZXJJT1M6OldlYlJlc291cmNlTG9hZGVySU9TKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXJJT1M6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0
aWZpY2F0ZUluZm8pOiBGb3IgYSBuZXcgcmVzcG9uc2UsIGNoZWNrIGlmIFFMQ29udmVydGVyCisg
ICAgICAgICAgICBpcyBhYmxlIHRvIGNvbnZlcnQgdGhpcyBjb250ZW50LCBhbmQgc2V0IHVwIFF1
aWNrTG9va0hhbmRsZSBmb3IgdGhlIFJlc291cmNlTG9hZGVyIGZvciBjb252ZXJzaW9uLgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcklPUzo6ZGlkUmVjZWl2ZURhdGEpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcklPUzo6ZGlkRmluaXNoUmVzb3VyY2VMb2Fk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXJJT1M6OmRpZEZhaWxSZXNvdXJj
ZUxvYWQpOgorCiAyMDE0LTAzLTE3ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgogCiAgICAgICAgIFVuZG8gc29tZSBhY2NpZGVudGFsIEd0ayBjaGFuZ2VzIGZyb20gaHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTY1NzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGQyNGJkNy4uMTI3MDYwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDUxLDYgKzQ1MSw4IEBACiAJCTFGNzUwNkI2MTg1OTE2NTcwMEVDMEZGNyAvKiBXS1dl
YlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGMDE4MTcxMTg1OERDMTYwMEY5Mjg4NCAvKiBXS1dl
YlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlSW50ZXJuYWwuaCAqLzsgfTsKIAkJMUY3NTA2QjcxODU5
MTY1QTAwRUMwRkY3IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYwMTgxNkUx
ODU4REMxNjAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHRJbnRlcm5h
bC5oICovOyB9OwogCQkxRjc1MDZCODE4NTkxNjVEMDBFQzBGRjcgLyogV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUYwMTgxNkIxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZy
YW1lSW50ZXJuYWwuaCAqLzsgfTsKKwkJMUY4NzI0QjYxOEQ3NjMyNTAwNzZENEI0IC8qIFdlYlJl
c291cmNlTG9hZGVySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxRjg3MjRCNDE4RDc2MzFEMDA3NkQ0QjQgLyogV2ViUmVzb3VyY2VMb2FkZXJJT1Mu
aCAqLzsgfTsKKwkJMUY4NzI0QjcxOEQ3NjMyQjAwNzZENEI0IC8qIFdlYlJlc291cmNlTG9hZGVy
SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUY4
NzI0QjMxOEQ3NjMxRDAwNzZENEI0IC8qIFdlYlJlc291cmNlTG9hZGVySU9TLm1tICovOyB9Owog
CQkxRkIwMEFDNzE4NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3Vw
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRkIwMEFD
NDE4NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUZCMDBBQzgxODVG
NzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGQjAwQUM1MTg1Rjc2NDYwMDE5
MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0gKi87IH07CiAJCTFGQjAwQUM5
MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUZCMDBBQzYx
ODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmgg
Ki87IH07CkBAIC0yMjA5LDYgKzIyMTEsOCBAQAogCQkxRjMzNUJCRjE4NUI4NEQ4MDAxQTIwMUEg
LyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxRjYwNEJBNjE4ODlGQTc0MDBFRTAzOTUgLyogV0tSZW5kZXJp
bmdQcm9ncmVzc0V2ZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Jl
bmRlcmluZ1Byb2dyZXNzRXZlbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFG
NjA0QkE3MTg4OUZBNzQwMEVFMDM5NSAvKiBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJu
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tSZW5kZXJpbmdQcm9ncmVz
c0V2ZW50c0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFGODcyNEIz
MThENzYzMUQwMDc2RDRCNCAvKiBXZWJSZXNvdXJjZUxvYWRlcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYlJlc291cmNlTG9hZGVySU9TLm1tOyBwYXRo
ID0gaW9zL1dlYlJlc291cmNlTG9hZGVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxRjg3MjRCNDE4RDc2MzFEMDA3NkQ0QjQgLyogV2ViUmVzb3VyY2VMb2FkZXJJT1MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViUmVzb3VyY2VMb2FkZXJJT1MuaDsg
cGF0aCA9IGlvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxRkIwMEFDNDE4NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFn
ZUdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1Bs
dWdJblBhZ2VHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkIwMEFDNTE4
NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdy
b3VwLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkIwMEFDNjE4NUY3NjQ2MDAx
OTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJu
YWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQyODcsNiArNDI5MSwxNSBAQAog
CQkJcGF0aCA9IENvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUY4
NzI0QjIxOEQ3NjMwNDAwNzZENEI0IC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJMUY4NzI0QjMxOEQ3NjMxRDAwNzZENEI0IC8qIFdlYlJlc291
cmNlTG9hZGVySU9TLm1tICovLAorCQkJCTFGODcyNEI0MThENzYzMUQwMDc2RDRCNCAvKiBXZWJS
ZXNvdXJjZUxvYWRlcklPUy5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBpb3M7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQkyOTg5QTQwRTE2N0QxODEzMDA0Rjk2RDIgLyogQ3Vz
dG9tUHJvdG9jb2xzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTQ2NDMsNiArNDY1Niw3IEBACiAJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3
b3JrICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxRjg3
MjRCMjE4RDc2MzA0MDA3NkQ0QjQgLyogaW9zICovLAogCQkJCTUxMDVCMEQ0MTYyRjdBN0EwMEUy
NzcwOSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAogCQkJCTUxMDVCMEQ1MTYy
RjdBN0EwMEUyNzcwOSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKIAkJCQk1MUZC
MDkwMjE2M0EzQjFDMDBFQzMyNEEgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluICovLApAQCAtNjg5Nyw2ICs2OTExLDcgQEAKIAkJCQlCQzAzMkQ4MjEwRjQzNzhEMDA1OEMx
NUEgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTlFQTMxNzE4
QkJERTEzMDA0RjdDOTUgLyogV0tQcm9jZXNzQ2xhc3NDb25maWd1cmF0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQzhFMjVBOTEyNzBFM0JDMDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTFGODcyNEI2MThENzYzMjUwMDc2RDRCNCAv
KiBXZWJSZXNvdXJjZUxvYWRlcklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4RTJBMzYxMjc3
ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQzhFMjgzNDEyNzVENzM4MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yUHJveHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFDQThCOTQ2MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94
eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAgLTg0MDYsNiArODQyMSw3IEBACiAJCQkJMzc5
NDg0MDMxNTBDMzUwNjAwRTUyQ0U5IC8qIFdlYlJlbmRlckxheWVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTJEMjhGM0U2MTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJFZGl0b3JDbGllbnRJT1MubW0g
aW4gU291cmNlcyAqLywKIAkJCQkzNzYwODgxRTE1MDQxM0U5MDBGQzgyQzcgLyogV2ViUmVuZGVy
T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFGODcyNEI3MThENzYzMkIwMDc2RDRCNCAv
KiBXZWJSZXNvdXJjZUxvYWRlcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMjE3NDY0MTY0
QzIxMzcwMDM3QTVDMSAvKiBXZWJSZXNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzMzM2NzYyRjEzMEM5OTk4MDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzNGOUQ1QjkxMzEyRjFFRTAwMEQ2ODNGIC8qIFdlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwCmluZGV4IGE1ZmNmNzQuLmQzMDBiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuY3BwCkBAIC01Miw2ICs1MiwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU3VicmVzb3VyY2VM
b2FkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBQTEFURk9STShJ
T1MpCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkZXJJT1MuaCIKKyNlbmRpZgorCiAjaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05OCw3
ICsxMDIsMTEgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChS
ZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIENhY2gKICAgICAvLyB0aGVuIHdlIHNob3Vs
ZCByZW1lbWJlciB0aGUgUmVzb3VyY2VMb2FkZXIgaW4gb3VyIHJlY29yZHMgYnV0IG5vdCBzY2hl
ZHVsZSBpdCBpbiB0aGUgTmV0d29ya1Byb2Nlc3MuCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLT5k
b2N1bWVudExvYWRlcigpLT5zY2hlZHVsZUFyY2hpdmVMb2FkKHJlc291cmNlTG9hZGVyLCByZXNv
dXJjZUxvYWRlci0+cmVxdWVzdCgpKSkgewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcs
ICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQsIHVy
bCAnJXMnIHdpbGwgYmUgaGFuZGxlZCBhcyBhbiBhcmNoaXZlIHJlc291cmNlLiIsIHJlc291cmNl
TG9hZGVyLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyNpZiBQTEFURk9STShJT1Mp
CisgICAgICAgIG1fd2ViUmVzb3VyY2VMb2FkZXJzLnNldChpZGVudGlmaWVyLCBXZWJSZXNvdXJj
ZUxvYWRlcklPUzo6Y3JlYXRlKHJlc291cmNlTG9hZGVyKSk7CisjZWxzZQogICAgICAgICBtX3dl
YlJlc291cmNlTG9hZGVycy5zZXQoaWRlbnRpZmllciwgV2ViUmVzb3VyY2VMb2FkZXI6OmNyZWF0
ZShyZXNvdXJjZUxvYWRlcikpOworI2VuZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5k
aWYKQEAgLTEzNyw5ICsxNDUsMTMgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNj
aGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIENhY2gKICAgICAgICAg
c2NoZWR1bGVJbnRlcm5hbGx5RmFpbGVkTG9hZChyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgCisKKyNpZiBQTEFURk9STShJT1MpCisgICAgbV93ZWJSZXNvdXJj
ZUxvYWRlcnMuc2V0KGlkZW50aWZpZXIsIFdlYlJlc291cmNlTG9hZGVySU9TOjpjcmVhdGUocmVz
b3VyY2VMb2FkZXIpKTsKKyNlbHNlCiAgICAgbV93ZWJSZXNvdXJjZUxvYWRlcnMuc2V0KGlkZW50
aWZpZXIsIFdlYlJlc291cmNlTG9hZGVyOjpjcmVhdGUocmVzb3VyY2VMb2FkZXIpKTsKLSAgICAK
KyNlbmRpZgorCiAgICAgbm90aWZ5RGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VM
b2FkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5oCmluZGV4IDljOGFlNDguLmM0ZTFlM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5o
CkBAIC02NSw5ICs2NSwxNSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRldGFjaEZyb21Db3JlTG9h
ZGVyKCk7CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgV2ViUmVzb3VyY2VMb2FkZXIoUGFz
c1JlZlB0cjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcj4pOwogCisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8oY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgbmVlZHND
b250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRh
TGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoUmVzb3VyY2VMb2FkKGRvdWJsZSBm
aW5pc2hUaW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisKK3ByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdl
U2VuZGVyCiAgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0
aW9uKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGlu
YXRpb25JRCgpIG92ZXJyaWRlOwpAQCAtNzYsMTAgKzgyLDYgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgd2lsbFNlbmRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQg
ZGlkU2VuZERhdGEodWludDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNl
bnQpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyhjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvJiwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7Ci0gICAg
dm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVu
Y29kZWREYXRhTGVuZ3RoKTsKLSAgICB2b2lkIGRpZEZpbmlzaFJlc291cmNlTG9hZChkb3VibGUg
ZmluaXNoVGltZSk7Ci0gICAgdm9pZCBkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImKTsKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQogICAgIHZv
aWQgZGlkUmVjZWl2ZVJlc291cmNlKGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmLCBk
b3VibGUgZmluaXNoVGltZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvaW9zL1dlYlJlc291cmNlTG9hZGVySU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2lvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmJiYTRiMTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2lvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5oCkBAIC0wLDAgKzEsNTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYlJlc291cmNlTG9hZGVySU9TX2gKKyNkZWZpbmUgV2ViUmVz
b3VyY2VMb2FkZXJJT1NfaAorCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2luY2x1
ZGUgIldlYlJlc291cmNlTG9hZGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJSZXNvdXJjZUxvYWRlcklPUyA6IHB1YmxpYyBXZWJSZXNvdXJjZUxvYWRlciB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUmVzb3VyY2VMb2FkZXJJT1M+IGNyZWF0ZShQYXNz
UmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPik7CisKK3ByaXZhdGU6CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8oY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJv
b2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBp
bnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoUmVzb3VyY2VMb2FkKGRvdWJsZSBmaW5pc2hUaW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
Jikgb3ZlcnJpZGU7CisKKyAgICBXZWJSZXNvdXJjZUxvYWRlcklPUyhQYXNzUmVmUHRyPFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyPik7Cit9OworCit9CisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKKworI2VuZGlmIC8vIFdlYlJlc291cmNlTG9hZGVySU9TX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlJlc291cmNlTG9hZGVySU9TLm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViUmVzb3VyY2VMb2FkZXJJT1MubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQzNGNiNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlJlc291cmNlTG9hZGVySU9TLm1t
CkBAIC0wLDAgKzEsMTY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJXZWJSZXNvdXJjZUxvYWRlcklPUy5oIgorCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUVycm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworI2lmIFVTRShRVUlDS19MT09LKQorCitAaW50ZXJmYWNlIFdL
V2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxOU1VSTENvbm5lY3Rpb25E
ZWxlZ2F0ZT4geworICAgIFJlZlB0cjxXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVySU9TPiBfd2Vi
UmVzb3VyY2VMb2FkZXI7Cit9CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS1dlYlJlc291cmNl
UXVpY2tMb29rRGVsZWdhdGUKKworLSAoaWQpaW5pdFdpdGhXZWJSZXNvdXJjZUxvYWRlcjooV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRlcklPUyAqKWxvYWRlcgoreworICAgIHNlbGYgPSBbc3VwZXIg
aW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3dlYlJl
c291cmNlTG9hZGVyID0gbG9hZGVyOworICAgIHJldHVybiBzZWxmOworfQorCisjaWYgVVNFKE5F
VFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQorLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENv
bm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZFJlY2VpdmVEYXRhQXJyYXk6KE5TQXJyYXkgKilkYXRh
QXJyYXkKK3sKKyAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisgICAgaWYgKCFfd2ViUmVz
b3VyY2VMb2FkZXIpCisgICAgICAgIHJldHVybjsKKyAgICBfd2ViUmVzb3VyY2VMb2FkZXItPnJl
c291cmNlTG9hZGVyKCktPmRpZFJlY2VpdmVEYXRhQXJyYXkocmVpbnRlcnByZXRfY2FzdDxDRkFy
cmF5UmVmPihkYXRhQXJyYXkpKTsKK30KKyNlbmRpZgorCistICh2b2lkKWNvbm5lY3Rpb246KE5T
VVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZURhdGE6KE5TRGF0YSAqKWRhdGEg
bGVuZ3RoUmVjZWl2ZWQ6KGxvbmcgbG9uZylsZW5ndGhSZWNlaXZlZAoreworICAgIFVOVVNFRF9Q
QVJBTShjb25uZWN0aW9uKTsKKyAgICBpZiAoIV93ZWJSZXNvdXJjZUxvYWRlcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gUXVpY2tMb29rIGNvZGUgc2VuZHMgdXMgYSBuaWwgZGF0YSBhdCB0
aW1lcy4gVGhlIGNoZWNrIGJlbG93IGlzIHRoZSBzYW1lIGFzIHRoZSBvbmUgaW4KKyAgICAvLyBS
ZXNvdXJjZUhhbmRsZU1hYy5jcHAgYWRkZWQgZm9yIGEgZGlmZmVyZW50IGJ1Zy4KKyAgICBpZiAo
IVtkYXRhIGxlbmd0aF0pCisgICAgICAgIHJldHVybjsKKyAgICBfd2ViUmVzb3VyY2VMb2FkZXIt
PnJlc291cmNlTG9hZGVyKCktPmRpZFJlY2VpdmVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KFtkYXRhIGJ5dGVzXSksIFtkYXRhIGxlbmd0aF0sIGxlbmd0aFJlY2VpdmVkLCBEYXRh
UGF5bG9hZEJ5dGVzKTsKK30KKworLSAodm9pZCljb25uZWN0aW9uRGlkRmluaXNoTG9hZGluZzoo
TlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbgoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0
aW9uKTsKKyAgICBpZiAoIV93ZWJSZXNvdXJjZUxvYWRlcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgX3dlYlJlc291cmNlTG9hZGVyLT5yZXNvdXJjZUxvYWRlcigpLT5kaWRGaW5pc2hMb2FkaW5n
KDApOworfQorCistICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rp
b24gZGlkRmFpbFdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yCit7CisgICAgVU5VU0VEX1BBUkFN
KGNvbm5lY3Rpb24pOworCisgICAgX3dlYlJlc291cmNlTG9hZGVyLT5yZXNvdXJjZUxvYWRlcigp
LT5kaWRGYWlsKFJlc291cmNlRXJyb3IoZXJyb3IpKTsKK30KKworLSAodm9pZCljbGVhckhhbmRs
ZQoreworICAgIF93ZWJSZXNvdXJjZUxvYWRlciA9IG51bGxwdHI7Cit9CisKK0BlbmQKKworI2Vu
ZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYlJlc291cmNlTG9hZGVy
SU9TPiBXZWJSZXNvdXJjZUxvYWRlcklPUzo6Y3JlYXRlKFBhc3NSZWZQdHI8UmVzb3VyY2VMb2Fk
ZXI+IGNvcmVMb2FkZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJSZXNvdXJjZUxv
YWRlcklPUyhjb3JlTG9hZGVyKSk7Cit9CisKK1dlYlJlc291cmNlTG9hZGVySU9TOjpXZWJSZXNv
dXJjZUxvYWRlcklPUyhQYXNzUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPiBjb3JlTG9h
ZGVyKQorICAgIDogV2ViUmVzb3VyY2VMb2FkZXIoY29yZUxvYWRlcikKK3sKK30KKwordm9pZCBX
ZWJSZXNvdXJjZUxvYWRlcklPUzo6ZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmljYXRlSW5m
byhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgbmVlZHNDb250aW51ZURp
ZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCit7CisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAgUmVz
b3VyY2VMb2FkZXIgKmNvcmVMb2FkZXIgPSByZXNvdXJjZUxvYWRlcigpOworICAgIFJldGFpblB0
cjxXS1dlYlJlc291cmNlUXVpY2tMb29rRGVsZWdhdGU+IGRlbGVnYXRlID0gYWRvcHROUyhbW1dL
V2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhXZWJSZXNvdXJjZUxv
YWRlcjp0aGlzXSk7CisgICAgT3duUHRyPFF1aWNrTG9va0hhbmRsZT4gcXVpY2tMb29rSGFuZGxl
ID0gUXVpY2tMb29rSGFuZGxlOjpjcmVhdGUoY29yZUxvYWRlciwgcmVzcG9uc2UubnNVUkxSZXNw
b25zZSgpLCBkZWxlZ2F0ZS5nZXQoKSk7CisgICAgaWYgKHF1aWNrTG9va0hhbmRsZSkgeworICAg
ICAgICBjb3JlTG9hZGVyLT5zZXRRdWlja0xvb2tIYW5kbGUocXVpY2tMb29rSGFuZGxlLnJlbGVh
c2UoKSk7CisgICAgICAgIFJlc291cmNlUmVzcG9uc2UgY29yZVJlc3BvbnNlKGNvcmVMb2FkZXIt
PnF1aWNrTG9va0hhbmRsZSgpLT5uc1Jlc3BvbnNlKCkpOworICAgICAgICBXZWJSZXNvdXJjZUxv
YWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyhjb3JlUmVzcG9uc2Us
IGNlcnRpZmljYXRlSW5mbywgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2Up
OworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBXZWJSZXNvdXJjZUxvYWRl
cjo6ZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyhyZXNwb25zZSwgY2VydGlm
aWNhdGVJbmZvLCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7Cit9CisK
K3ZvaWQgV2ViUmVzb3VyY2VMb2FkZXJJT1M6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKK3sKKyNpZiBVU0Uo
UVVJQ0tfTE9PSykKKyAgICBRdWlja0xvb2tIYW5kbGUgKnFsID0gcmVzb3VyY2VMb2FkZXIoKS0+
cXVpY2tMb29rSGFuZGxlKCk7CisgICAgaWYgKHFsKSB7CisgICAgICAgIE5TRGF0YSAqbnNEYXRh
ID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRh
dGEuZGF0YSgpKSBsZW5ndGg6ZGF0YS5zaXplKCldOworICAgICAgICBpZiAocWwtPmRpZFJlY2Vp
dmVEYXRhKChDRkRhdGFSZWYpbnNEYXRhKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9Cisj
ZW5kaWYKKyAgICBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoZGF0YSwgZW5jb2Rl
ZERhdGFMZW5ndGgpOworfQorCit2b2lkIFdlYlJlc291cmNlTG9hZGVySU9TOjpkaWRGaW5pc2hS
ZXNvdXJjZUxvYWQoZG91YmxlIGZpbmlzaFRpbWUpCit7CisjaWYgVVNFKFFVSUNLX0xPT0spCisg
ICAgLy8gRklYTUU6IElzIGZpbmlzaFRpbWUgcmVhbGx5IGltcG9ydGFudCBmb3IgUXVpY2tMb29r
IGRvY3VtZW50PworICAgIFF1aWNrTG9va0hhbmRsZSAqcWwgPSByZXNvdXJjZUxvYWRlcigpLT5x
dWlja0xvb2tIYW5kbGUoKTsKKyAgICBpZiAocWwgJiYgcWwtPmRpZEZpbmlzaExvYWRpbmcoKSkK
KyAgICAgICAgcmV0dXJuOworI2VuZGlmCisgICAgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlz
aFJlc291cmNlTG9hZChmaW5pc2hUaW1lKTsKK30KKwordm9pZCBXZWJSZXNvdXJjZUxvYWRlcklP
Uzo6ZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJv
cikKK3sKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBRdWlja0xvb2tIYW5kbGUgKnFsID0gcmVz
b3VyY2VMb2FkZXIoKS0+cXVpY2tMb29rSGFuZGxlKCk7CisgICAgaWYgKHFsKQorICAgICAgICBx
bC0+ZGlkRmFpbCgpOworI2VuZGlmCisgICAgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNv
dXJjZUxvYWQoZXJyb3IpOworfQorICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQo=
</data>
<flag name="review"
          id="251209"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227157</attachid>
            <date>2014-03-18 23:39:54 -0700</date>
            <delta_ts>2014-03-18 23:44:20 -0700</delta_ts>
            <desc>Patch; add QuickLook stuff into WebResourceLoader instead of sub-classing.</desc>
            <filename>wk2_quicklook.patch</filename>
            <type>text/plain</type>
            <size>19234</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IDE3M2U4MGZlNWIwNGRjMjBiZmFmMWQ3NzUxOTU2MmQ5ZDhkMzQyYjEKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBUdWUgTWFyIDE4
IDIzOjEzOjIwIDIwMTQgLTA3MDAKCiAgICBbaU9TXSBXZWJLaXQyIFF1aWNrbG9vay4KICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAzNjAKICAgIAogICAgRm9y
IFdlYktpdDIgcmVzb3VyY2UgbG9hZHMsIGlmIHdlIGRldGVjdCBhIHF1aWNrbG9vayBjb250ZW50
IHRoYXQgUUxDb252ZXJ0ZXIgaXMgYWJsZSB0bwogICAgY29udmVydCwgaGFuZGxlIHRoZSByZXNw
b25zZSBkYXRhIHRvIFFMQ29udmVydGVyIGFuZCB1c2UgaXRzIGRlbGVnYXRlIFdLV2ViUmVzb3Vy
Y2VRdWlja0xvb2tEZWxlZ2F0ZQogICAgdG8gcm91bnRlIHRoZSBjb252ZXJ0ZWQgcmVzdWx0cyAo
SFRNTCkgYmFjayBpbnRvIFdlYkNvcmUuICBUaGllIHNpbWlsaWFyIGxvZ2ljIGhhcyBiZWVuIGlu
IHBsYWNlCiAgICBmb3IgV2ViS2l0MS4KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDcxZDJhMC4uZTU2YWZmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTAzLTE3ICBZb25nanVuIFpoYW5nICA8
eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gV2ViS2l0MiBRdWlja2xv
b2suCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAz
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5j
ZSBSZXNvdXJjZUxvYWRlcnMgdXNpbmcgV2ViS2l0MiBuZXR3b3JrIHByb2Nlc3MgZG9uJ3QgaGF2
ZSBSZXNvdXJjZUhhbmRsZSBhbnkgbW9yZSwgd2UKKyAgICAgICAgbmVlZCB0byBtYWtlIGl0IHBv
c3NpYmxlIHRvIGNyZWF0ZSBRdWlja0xvb2tIYW5kbGUgZnJvbSBSZXNvdXJjZUxvYWRlci4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBNYWtlIHNvbWUgUXVpY2tMb29rSGFuZGxlIG1ldGhv
ZHMgdmlzaWJsZSBmcm9tIFdlYktpdDIuCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVy
Lmg6IEFkZCBtX3F1aWNrTG9va0hhbmRsZSBkYXRhIG1lbWJlciB0byBSZXNvdXJjZUxvYWRlci4K
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpxdWlja0xvb2tIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnNldFF1aWNrTG9va0hhbmRsZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLmg6IEFkZCBhIG5ldyBtZXRob2Qg
dG8gY3JlYXRlIFF1aWNrTG9va0hhbmRsZSBmcm9tIFJlc291cmNlTG9hZGVyLgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1
aWNrTG9va0hhbmRsZTo6Y3JlYXRlKToKKwogMjAxNC0wMy0xOCAgU2FtdWVsIFdoaXRlICA8c2Ft
dWVsX3doaXRlQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogTm90IGFibGUgdG8gdXNlIGFycm93
IGtleXMgdG8gcmVhZCB0ZXh0IHdpdGggVm9pY2VPdmVyIGJlZm9yZSBzZWxlY3Rpb24gaXMgc2V0
IHNvbWVwbGFjZSAoYW55cGxhY2UpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA3MGUwMjgyLi4y
ZTczZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjQ3MSw2ICsyNDcxLDEyIEBAIF9fWk43
V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0MTVkcmF3TmF0aXZlSW1hZ2VFUDdDR0ltYWdlUktOU185
RmxvYXRTaXplRU5TXzEwQ29sCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDIyc2V0RW1v
amlEcmF3aW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDIzc2V0SXNB
Y2NlbGVyYXRlZENvbnRleHRFYgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHRDMUVQOUNH
Q29udGV4dGIKK19fWk43V2ViQ29yZTE1UXVpY2tMb29rSGFuZGxlMTBuc1Jlc3BvbnNlRXYKK19f
Wk43V2ViQ29yZTE1UXVpY2tMb29rSGFuZGxlMTRkaWRSZWNlaXZlRGF0YUVQSzhfX0NGRGF0YQor
X19aTjdXZWJDb3JlMTVRdWlja0xvb2tIYW5kbGUxNmRpZEZpbmlzaExvYWRpbmdFdgorX19aTjdX
ZWJDb3JlMTVRdWlja0xvb2tIYW5kbGU2Y3JlYXRlRVBOU18xNFJlc291cmNlTG9hZGVyRVAxM05T
VVJMUmVzcG9uc2VQMTFvYmpjX29iamVjdAorX19aTjdXZWJDb3JlMTVRdWlja0xvb2tIYW5kbGU3
ZGlkRmFpbEV2CitfX1pON1dlYkNvcmUxNVF1aWNrTG9va0hhbmRsZUQxRXYKIF9fWk43V2ViQ29y
ZTE1UmVzb3VyY2VSZXF1ZXN0Mzl1cGRhdGVGcm9tRGVsZWdhdGVQcmVzZXJ2aW5nT2xkSFRUUEJv
ZHlFUktTMF8KIF9fWk43V2ViQ29yZTE1U3RyaW5nVHJ1bmNhdG9yMTJsZWZ0VHJ1bmNhdGVFUktO
M1dURjZTdHJpbmdFZlJLTlNfNEZvbnRFTlMwXzI0RW5hYmxlUm91bmRpbmdIYWNrc09yTm90RVJm
YmYKIF9fWk43V2ViQ29yZTE1U3RyaW5nVHJ1bmNhdG9yMTNyaWdodFRydW5jYXRlRVJLTjNXVEY2
U3RyaW5nRWZSS05TXzRGb250RU5TMF8yNEVuYWJsZVJvdW5kaW5nSGFja3NPck5vdEVSZmJmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IDI4ZjAyNDUuLjRkMGMwNjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWZuZGVmIFJlc291cmNlTG9hZGVyX2gKICNkZWZpbmUgUmVzb3VyY2VMb2FkZXJfaAogCisj
aW5jbHVkZSAiUXVpY2tMb29rLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxv
YWRlclR5cGVzLmgiCkBAIC0xNTQsNiArMTU1LDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0
RGF0YUJ1ZmZlcmluZ1BvbGljeShEYXRhQnVmZmVyaW5nUG9saWN5KTsKIAorI2lmIFVTRShRVUlD
S19MT09LKQorICAgIFF1aWNrTG9va0hhbmRsZSogcXVpY2tMb29rSGFuZGxlKCkgY29uc3QgeyBy
ZXR1cm4gbV9xdWlja0xvb2tIYW5kbGUuZ2V0KCk7IH0KKyAgICB2b2lkIHNldFF1aWNrTG9va0hh
bmRsZShQYXNzT3duUHRyPFF1aWNrTG9va0hhbmRsZT4gaGFuZGxlKSB7IG1fcXVpY2tMb29rSGFu
ZGxlID0gaGFuZGxlOyB9CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFJlc291cmNlTG9hZGVy
KEZyYW1lKiwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKTsKIApAQCAtMjAyLDYgKzIwOCw5IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2RlZmVyc0xvYWRpbmc7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1f
ZGVmZXJyZWRSZXF1ZXN0OwogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBtX29wdGlvbnM7Cisj
aWYgVVNFKFFVSUNLX0xPT0spCisgICAgT3duUHRyPFF1aWNrTG9va0hhbmRsZT4gbV9xdWlja0xv
b2tIYW5kbGU7CisjZW5kaWYKIH07CiAKIGlubGluZSBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBS
ZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaAppbmRleCBiZTI3NTZkLi40YzNmOTA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaApAQCAt
NjAsNiArNjAsNyBAQCB0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxDb25uZWN0aW9uKiBDRlVSTENvbm5l
Y3Rpb25SZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlOwor
Y2xhc3MgUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGU7CiAKIENsYXNzIFFMUHJldmlld0NvbnZlcnRlckNsYXNzKCk7
CkBAIC05MSw2ICs5Miw3IEBAIHB1YmxpYzoKICNpZiBVU0UoQ0ZORVRXT1JLKQogICAgIHN0YXRp
YyBQYXNzT3duUHRyPFF1aWNrTG9va0hhbmRsZT4gY3JlYXRlKFJlc291cmNlSGFuZGxlKiwgU3lu
Y2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlKiwgQ0ZVUkxSZXNw
b25zZVJlZik7CiAjZW5kaWYKKyAgICBzdGF0aWMgUGFzc093blB0cjxRdWlja0xvb2tIYW5kbGU+
IGNyZWF0ZShSZXNvdXJjZUxvYWRlciosIE5TVVJMUmVzcG9uc2UgKiwgaWQgZGVsZWdhdGUpOwog
ICAgIH5RdWlja0xvb2tIYW5kbGUoKTsKIAogICAgIGJvb2wgZGlkUmVjZWl2ZURhdGFBcnJheShD
RkFycmF5UmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
aW9zL1F1aWNrTG9vay5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1
aWNrTG9vay5tbQppbmRleCBkMGFiNDNiLi40ZDRhYjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tCkBAIC0zMSw2ICszMSw3IEBACiAj
aW1wb3J0ICJGaWxlU3lzdGVtSU9TLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJS
ZXNvdXJjZUhhbmRsZS5oIgorI2ltcG9ydCAiUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIlJ1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5oIgogI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKICNp
bXBvcnQgIlN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5o
IgpAQCAtMzkyLDYgKzM5MywxNCBAQCBDRlVSTFJlc3BvbnNlUmVmIFF1aWNrTG9va0hhbmRsZTo6
Y2ZSZXNwb25zZSgpCiB9CiAjZW5kaWYKIAorUGFzc093blB0cjxRdWlja0xvb2tIYW5kbGU+IFF1
aWNrTG9va0hhbmRsZTo6Y3JlYXRlKFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIE5TVVJMUmVzcG9u
c2UgKnJlc3BvbnNlLCBpZCBkZWxlZ2F0ZSkKK3sKKyAgICBpZiAobG9hZGVyLT5yZXF1ZXN0KCku
aXNNYWluUmVzb3VyY2VSZXF1ZXN0KCkgJiYgW1dlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRl
ZE1JTUVUeXBlc1NldCgpIGNvbnRhaW5zT2JqZWN0OltyZXNwb25zZSBNSU1FVHlwZV1dKQorICAg
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFF1aWNrTG9va0hhbmRsZShOVUxMLCBuaWwsIHJlc3Bv
bnNlLCBkZWxlZ2F0ZSkpOworCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIE5TVVJMUmVzcG9u
c2UgKlF1aWNrTG9va0hhbmRsZTo6bnNSZXNwb25zZSgpCiB7CiAgICAgcmV0dXJuIG1fbnNSZXNw
b25zZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCBkMDc5MThmLi5kMjBmOTc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjcgQEAKKzIwMTQtMDMtMTcgIFlvbmdqdW4gWmhhbmcgIDx5b25nanVuX3poYW5nQGFwcGxl
LmNvbT4KKworICAgICAgICBbaU9TXSBXZWJLaXQyIFF1aWNrbG9vay4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDM2MAorCisgICAgICAgIEZvciBX
ZWJLaXQyIHJlc291cmNlIGxvYWRzLCBpZiB3ZSBkZXRlY3QgYSBxdWlja2xvb2sgY29udGVudCB0
aGF0IFFMQ29udmVydGVyIGlzIGFibGUgdG8KKyAgICAgICAgY29udmVydCwgaGFuZGxlIHRoZSBy
ZXNwb25zZSBkYXRhIHRvIFFMQ29udmVydGVyIGFuZCB1c2UgaXRzIGRlbGVnYXRlIFdLV2ViUmVz
b3VyY2VRdWlja0xvb2tEZWxlZ2F0ZQorICAgICAgICB0byByb3VudGUgdGhlIGNvbnZlcnRlZCBy
ZXN1bHRzIChIVE1MKSBiYWNrIGludG8gV2ViQ29yZS4gIFRoaWUgc2ltaWxpYXIgbG9naWMgaGFz
IGJlZW4gaW4gcGxhY2UKKyAgICAgICAgZm9yIFdlYktpdDEuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6IEFkZCBXZWJSZXNvdXJjZUxvYWRlcklPUy5tbSB0byB0aGUgcHJvamVjdC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5tbTogQWRkZWQu
CisgICAgICAgICgtW1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBpbml0V2l0aFdlYlJl
c291cmNlTG9hZGVyOldlYktpdDo6XSk6IFdLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBo
b2xkcworICAgICAgICAgICAgdGhlIG9yaWdpbmFsIFdlYlJlc291cmNlTG9hZGVyIHNvIHRoYXQg
d2UgY291bGQgc2VuZCBjb252ZXJ0ZWQgcmVzdWx0IHRvIFdlYkNvcmUuCisgICAgICAgICgtW1dL
V2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhQXJy
YXk6XSk6CisgICAgICAgICgtW1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBjb25uZWN0
aW9uOmRpZFJlY2VpdmVEYXRhOmxlbmd0aFJlY2VpdmVkOl0pOgorICAgICAgICAoLVtXS1dlYlJl
c291cmNlUXVpY2tMb29rRGVsZWdhdGUgY29ubmVjdGlvbkRpZEZpbmlzaExvYWRpbmc6XSk6Cisg
ICAgICAgICgtW1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZEZh
aWxXaXRoRXJyb3I6XSk6CisgICAgICAgICgtW1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0
ZSBjbGVhckhhbmRsZV0pOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6c2V0
VXBRdWlja0xvb2tIYW5kbGVJZk5lZWRlZCk6CisKIDIwMTQtMDMtMTggIFNhbXVlbCBXaGl0ZSAg
PHNhbXVlbF93aGl0ZUBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IE5vdCBhYmxlIHRvIHVzZSBh
cnJvdyBrZXlzIHRvIHJlYWQgdGV4dCB3aXRoIFZvaWNlT3ZlciBiZWZvcmUgc2VsZWN0aW9uIGlz
IHNldCBzb21lcGxhY2UgKGFueXBsYWNlKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5MWU2ZWNjLi42YTg1NzhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00
NTEsNiArNDUxLDcgQEAKIAkJMUY3NTA2QjYxODU5MTY1NzAwRUMwRkY3IC8qIFdLV2ViUHJvY2Vz
c1BsdWdJbk5vZGVIYW5kbGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUYwMTgxNzExODU4REMxNjAwRjkyODg0IC8qIFdLV2ViUHJvY2Vz
c1BsdWdJbk5vZGVIYW5kbGVJbnRlcm5hbC5oICovOyB9OwogCQkxRjc1MDZCNzE4NTkxNjVBMDBF
QzBGRjcgLyogV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdEludGVybmFsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjAxODE2RTE4NThEQzE2
MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdEludGVybmFsLmggKi87
IH07CiAJCTFGNzUwNkI4MTg1OTE2NUQwMEVDMEZGNyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFt
ZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxRjAxODE2QjE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRl
cm5hbC5oICovOyB9OworCQkxRjg3MjRCNzE4RDc2MzJCMDA3NkQ0QjQgLyogV2ViUmVzb3VyY2VM
b2FkZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxRjg3MjRCMzE4RDc2MzFEMDA3NkQ0QjQgLyogV2ViUmVzb3VyY2VMb2FkZXJJT1MubW0gKi87
IH07CiAJCTFGQjAwQUM3MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdl
R3JvdXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFG
QjAwQUM0MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRkIwMEFD
ODE4NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUZCMDBBQzUxODVGNzY0
NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5tbSAqLzsgfTsKIAkJMUZC
MDBBQzkxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRkIw
MEFDNjE4NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJu
YWwuaCAqLzsgfTsKQEAgLTIyMTAsNiArMjIxMSw3IEBACiAJCTFGMzM1QkJGMTg1Qjg0RDgwMDFB
MjAxQSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGNjA0QkE2MTg4OUZBNzQwMEVFMDM5NSAvKiBXS1Jl
bmRlcmluZ1Byb2dyZXNzRXZlbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUY2MDRCQTcxODg5RkE3NDAwRUUwMzk1IC8qIFdLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJ
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1JlbmRlcmluZ1By
b2dyZXNzRXZlbnRzSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUY4
NzI0QjMxOEQ3NjMxRDAwNzZENEI0IC8qIFdlYlJlc291cmNlTG9hZGVySU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViUmVzb3VyY2VMb2FkZXJJT1MubW07
IHBhdGggPSBpb3MvV2ViUmVzb3VyY2VMb2FkZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFGQjAwQUM0MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Q
YWdlR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNz
UGx1Z0luUGFnZUdyb3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQjAwQUM1
MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdl
R3JvdXAubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQjAwQUM2MTg1Rjc2NDYw
MDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXBJbnRl
cm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDI5MCw2ICs0MjkyLDE0IEBA
CiAJCQlwYXRoID0gQ29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkx
Rjg3MjRCMjE4RDc2MzA0MDA3NkQ0QjQgLyogaW9zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxRjg3MjRCMzE4RDc2MzFEMDA3NkQ0QjQgLyogV2ViUmVz
b3VyY2VMb2FkZXJJT1MubW0gKi8sCisJCQkpOworCQkJbmFtZSA9IGlvczsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTI5ODlBNDBFMTY3RDE4MTMwMDRGOTZEMiAvKiBDdXN0
b21Qcm90b2NvbHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApA
QCAtNDY0Niw2ICs0NjU2LDcgQEAKIAkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdv
cmsgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFGODcy
NEIyMThENzYzMDQwMDc2RDRCNCAvKiBpb3MgKi8sCiAJCQkJNTEwNUIwRDQxNjJGN0E3QTAwRTI3
NzA5IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJNTEwNUIwRDUxNjJG
N0E3QTAwRTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oICovLAogCQkJCTUxRkIw
OTAyMTYzQTNCMUMwMEVDMzI0QSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gKi8sCkBAIC04NDEwLDYgKzg0MjEsNyBAQAogCQkJCTM3OTQ4NDAzMTUwQzM1MDYwMEU1MkNF
OSAvKiBXZWJSZW5kZXJMYXllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDI4RjNFNjE4ODVD
Q0MxMDA0QjlFQUUgLyogV2ViRWRpdG9yQ2xpZW50SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Mzc2MDg4MUUxNTA0MTNFOTAwRkM4MkM3IC8qIFdlYlJlbmRlck9iamVjdC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkxRjg3MjRCNzE4RDc2MzJCMDA3NkQ0QjQgLyogV2ViUmVzb3VyY2VMb2FkZXJJ
T1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTIxNzQ2NDE2NEMyMTM3MDAzN0E1QzEgLyogV2Vi
UmVzb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzMzNjc2MkYxMzBDOTk5ODAw
NkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTMzRjlENUI5MTMxMkYxRUUwMDBENjgzRiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlckNGTmV0
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTU4ZDg3ZC4uNDk1OTg4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0xMDYsNiArMTA2LDEzIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVzb3VyY2VS
ZXNwCiAgICAgUmVmPFdlYlJlc291cmNlTG9hZGVyPiBwcm90ZWN0KCp0aGlzKTsKIAogICAgIFJl
c291cmNlUmVzcG9uc2UgcmVzcG9uc2VDb3B5KHJlc3BvbnNlKTsKKworI2lmIFVTRShRVUlDS19M
T09LKQorICAgIHNldFVwUXVpY2tMb29rSGFuZGxlSWZOZWVkZWQocmVzcG9uc2UpOworICAgIGlm
IChRdWlja0xvb2tIYW5kbGUqIHF1aWNrTG9va0hhbmRsZSA9IG1fY29yZUxvYWRlci0+cXVpY2tM
b29rSGFuZGxlKCkpCisgICAgICAgIHJlc3BvbnNlQ29weSA9IFJlc291cmNlUmVzcG9uc2UocXVp
Y2tMb29rSGFuZGxlLT5uc1Jlc3BvbnNlKCkpOworI2VuZGlmCisKICAgICAvLyBGSVhNRTogVGhp
cyBzaG91bGQgdXNlIENlcnRpZmljYXRlSW5mbyB0byBhdm9pZCB0aGUgcGxhdGZvcm0gaWZkZWZz
LiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDcyNC4KICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICByZXNwb25zZUNvcHkuc2V0Q2VydGlmaWNhdGVDaGFpbihj
ZXJ0aWZpY2F0ZUluZm8uY2VydGlmaWNhdGVDaGFpbigpKTsKQEAgLTEyNiwxMiArMTMzLDI2IEBA
IHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0
ZUluZm8oY29uc3QgUmVzb3VyY2VSZXNwCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERh
dGFMZW5ndGgpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVEYXRhIG9mIHNpemUgJWkgZm9yICclcyciLCAoaW50KWRhdGEuc2l6
ZSgpLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCisjaWYg
VVNFKFFVSUNLX0xPT0spCisgICAgaWYgKFF1aWNrTG9va0hhbmRsZSogcXVpY2tMb29rSGFuZGxl
ID0gbV9jb3JlTG9hZGVyLT5xdWlja0xvb2tIYW5kbGUoKSkgeworICAgICAgICBSZXRhaW5QdHI8
Q0ZEYXRhUmVmPiByYXdEYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGVXaXRoQnl0ZXNOb0NvcHko
TlVMTCwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpLCBrQ0ZBbGxvY2F0b3JOdWxsKSk7CisgICAg
ICAgIGlmIChxdWlja0xvb2tIYW5kbGUtPmRpZFJlY2VpdmVEYXRhKHJhd0RhdGEuZ2V0KCkpKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIG1fY29yZUxvYWRlci0+ZGlk
UmVjZWl2ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBk
YXRhLnNpemUoKSwgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkQnl0ZXMpOwogfQogCiB2
b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoZG91YmxlIGZpbmlz
aFRpbWUpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2Fk
ZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBRdWlj
a0xvb2tIYW5kbGUgKnF1aWNrTG9va0hhbmRsZSA9IHJlc291cmNlTG9hZGVyKCktPnF1aWNrTG9v
a0hhbmRsZSgpOworICAgIGlmIChxdWlja0xvb2tIYW5kbGUgJiYgcXVpY2tMb29rSGFuZGxlLT5k
aWRGaW5pc2hMb2FkaW5nKCkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgIG1fY29yZUxv
YWRlci0+ZGlkRmluaXNoTG9hZGluZyhmaW5pc2hUaW1lKTsKIH0KIApAQCAtMTM5LDYgKzE2MCwx
MCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdl
YlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkIGZvciAnJXMnIiwgbV9jb3JlTG9h
ZGVyLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAKKyNpZiBVU0UoUVVJQ0tf
TE9PSykKKyAgICBpZiAoUXVpY2tMb29rSGFuZGxlICpxdWlja0xvb2tIYW5kbGUgPSByZXNvdXJj
ZUxvYWRlcigpLT5xdWlja0xvb2tIYW5kbGUoKSkKKyAgICAgICAgcXVpY2tMb29rSGFuZGxlLT5k
aWRGYWlsKCk7CisjZW5kaWYKICAgICBtX2NvcmVMb2FkZXItPmRpZEZhaWwoZXJyb3IpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRlci5oCmluZGV4IDljOGFlNDguLjhkMTk5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCkBAIC04OCw2ICs4
OCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rp
b25TcGFjZShjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKTsKICNlbmRpZgogCisjaWYg
VVNFKFFVSUNLX0xPT0spCisgICAgdm9pZCBzZXRVcFF1aWNrTG9va0hhbmRsZUlmTmVlZGVkKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyNlbmRpZgorCiAgICAgUmVmUHRyPFdl
YkNvcmU6OlJlc291cmNlTG9hZGVyPiBtX2NvcmVMb2FkZXI7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlJlc291cmNlTG9hZGVySU9TLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMGI1MTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5tbQpA
QCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCAiV2ViUmVzb3VyY2VMb2FkZXIuaCIKKworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisj
aW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJv
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKworQGludGVyZmFjZSBXS1dlYlJl
c291cmNlUXVpY2tMb29rRGVsZWdhdGUgOiBOU09iamVjdCA8TlNVUkxDb25uZWN0aW9uRGVsZWdh
dGU+IHsKKyAgICBSZWZQdHI8V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcj4gX3dlYlJlc291cmNl
TG9hZGVyOworfQorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tXZWJSZXNvdXJjZVF1aWNrTG9v
a0RlbGVnYXRlCisKKy0gKGlkKWluaXRXaXRoV2ViUmVzb3VyY2VMb2FkZXI6KFBhc3NSZWZQdHI8
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcj4pbG9hZGVyCit7CisgICAgc2VsZiA9IFtzdXBlciBp
bml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfd2ViUmVz
b3VyY2VMb2FkZXIgPSBsb2FkZXI7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKyNpZiBVU0UoTkVU
V09SS19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0spCistICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29u
bmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZURhdGFBcnJheTooTlNBcnJheSAqKWRhdGFB
cnJheQoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBpZiAoIV93ZWJSZXNv
dXJjZUxvYWRlcikKKyAgICAgICAgcmV0dXJuOworICAgIF93ZWJSZXNvdXJjZUxvYWRlci0+cmVz
b3VyY2VMb2FkZXIoKS0+ZGlkUmVjZWl2ZURhdGFBcnJheShyZWludGVycHJldF9jYXN0PENGQXJy
YXlSZWY+KGRhdGFBcnJheSkpOworfQorI2VuZGlmCisKKy0gKHZvaWQpY29ubmVjdGlvbjooTlNV
UkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlRGF0YTooTlNEYXRhICopZGF0YSBs
ZW5ndGhSZWNlaXZlZDoobG9uZyBsb25nKWxlbmd0aFJlY2VpdmVkCit7CisgICAgVU5VU0VEX1BB
UkFNKGNvbm5lY3Rpb24pOworICAgIGlmICghX3dlYlJlc291cmNlTG9hZGVyKQorICAgICAgICBy
ZXR1cm47CisKKyAgICAvLyBRdWlja0xvb2sgY29kZSBzZW5kcyB1cyBhIG5pbCBkYXRhIGF0IHRp
bWVzLiBUaGUgY2hlY2sgYmVsb3cgaXMgdGhlIHNhbWUgYXMgdGhlIG9uZSBpbgorICAgIC8vIFJl
c291cmNlSGFuZGxlTWFjLmNwcCBhZGRlZCBmb3IgYSBkaWZmZXJlbnQgYnVnLgorICAgIGlmICgh
W2RhdGEgbGVuZ3RoXSkKKyAgICAgICAgcmV0dXJuOworICAgIF93ZWJSZXNvdXJjZUxvYWRlci0+
cmVzb3VyY2VMb2FkZXIoKS0+ZGlkUmVjZWl2ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oW2RhdGEgYnl0ZXNdKSwgW2RhdGEgbGVuZ3RoXSwgbGVuZ3RoUmVjZWl2ZWQsIERhdGFQ
YXlsb2FkQnl0ZXMpOworfQorCistICh2b2lkKWNvbm5lY3Rpb25EaWRGaW5pc2hMb2FkaW5nOihO
U1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rp
b24pOworICAgIGlmICghX3dlYlJlc291cmNlTG9hZGVyKQorICAgICAgICByZXR1cm47CisKKyAg
ICBfd2ViUmVzb3VyY2VMb2FkZXItPnJlc291cmNlTG9hZGVyKCktPmRpZEZpbmlzaExvYWRpbmco
MCk7Cit9CisKKy0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlv
biBkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKK3sKKyAgICBVTlVTRURfUEFSQU0o
Y29ubmVjdGlvbik7CisKKyAgICBfd2ViUmVzb3VyY2VMb2FkZXItPnJlc291cmNlTG9hZGVyKCkt
PmRpZEZhaWwoUmVzb3VyY2VFcnJvcihlcnJvcikpOworfQorCistICh2b2lkKWNsZWFySGFuZGxl
Cit7CisgICAgX3dlYlJlc291cmNlTG9hZGVyID0gbnVsbHB0cjsKK30KKworQGVuZAorCituYW1l
c3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6c2V0VXBRdWlja0xvb2tI
YW5kbGVJZk5lZWRlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBS
ZXNvdXJjZUxvYWRlciAqY29yZUxvYWRlciA9IHJlc291cmNlTG9hZGVyKCk7CisgICAgUmV0YWlu
UHRyPFdLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZT4gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
V0tXZWJSZXNvdXJjZVF1aWNrTG9va0RlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFdlYlJlc291cmNl
TG9hZGVyOnRoaXNdKTsKKyAgICBPd25QdHI8UXVpY2tMb29rSGFuZGxlPiBxdWlja0xvb2tIYW5k
bGUgPSBRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShjb3JlTG9hZGVyLCByZXNwb25zZS5uc1VSTFJl
c3BvbnNlKCksIGRlbGVnYXRlLmdldCgpKTsKKyAgICBpZiAocXVpY2tMb29rSGFuZGxlKQorICAg
ICAgICBjb3JlTG9hZGVyLT5zZXRRdWlja0xvb2tIYW5kbGUocXVpY2tMb29rSGFuZGxlLnJlbGVh
c2UoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKworI2VuZGlmIC8v
IEVOQUJMRShORVRXT1JLX1BST0NFU1MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227162</attachid>
            <date>2014-03-18 23:46:08 -0700</date>
            <delta_ts>2014-03-19 00:22:26 -0700</delta_ts>
            <desc>Fix style issues.</desc>
            <filename>wk2_quicklook.patch</filename>
            <type>text/plain</type>
            <size>19231</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IDdjZTNjMTVhMGZmYTM0YzVjOGIxZTFkMDQ1NTdlNTJmNDAzOTYxNGYKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBUdWUgTWFyIDE4
IDIzOjEzOjIwIDIwMTQgLTA3MDAKCiAgICBbaU9TXSBXZWJLaXQyIFF1aWNrbG9vay4KICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAzNjAKICAgIAogICAgRm9y
IFdlYktpdDIgcmVzb3VyY2UgbG9hZHMsIGlmIHdlIGRldGVjdCBhIHF1aWNrbG9vayBjb250ZW50
IHRoYXQgUUxDb252ZXJ0ZXIgaXMgYWJsZSB0bwogICAgY29udmVydCwgaGFuZGxlIHRoZSByZXNw
b25zZSBkYXRhIHRvIFFMQ29udmVydGVyIGFuZCB1c2UgaXRzIGRlbGVnYXRlIFdLV2ViUmVzb3Vy
Y2VRdWlja0xvb2tEZWxlZ2F0ZQogICAgdG8gcm91bnRlIHRoZSBjb252ZXJ0ZWQgcmVzdWx0cyAo
SFRNTCkgYmFjayBpbnRvIFdlYkNvcmUuICBUaGllIHNpbWlsaWFyIGxvZ2ljIGhhcyBiZWVuIGlu
IHBsYWNlCiAgICBmb3IgV2ViS2l0MS4KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDcxZDJhMC4uZTU2YWZmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTAzLTE3ICBZb25nanVuIFpoYW5nICA8
eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gV2ViS2l0MiBRdWlja2xv
b2suCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAz
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5j
ZSBSZXNvdXJjZUxvYWRlcnMgdXNpbmcgV2ViS2l0MiBuZXR3b3JrIHByb2Nlc3MgZG9uJ3QgaGF2
ZSBSZXNvdXJjZUhhbmRsZSBhbnkgbW9yZSwgd2UKKyAgICAgICAgbmVlZCB0byBtYWtlIGl0IHBv
c3NpYmxlIHRvIGNyZWF0ZSBRdWlja0xvb2tIYW5kbGUgZnJvbSBSZXNvdXJjZUxvYWRlci4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBNYWtlIHNvbWUgUXVpY2tMb29rSGFuZGxlIG1ldGhv
ZHMgdmlzaWJsZSBmcm9tIFdlYktpdDIuCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVy
Lmg6IEFkZCBtX3F1aWNrTG9va0hhbmRsZSBkYXRhIG1lbWJlciB0byBSZXNvdXJjZUxvYWRlci4K
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpxdWlja0xvb2tIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnNldFF1aWNrTG9va0hhbmRsZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLmg6IEFkZCBhIG5ldyBtZXRob2Qg
dG8gY3JlYXRlIFF1aWNrTG9va0hhbmRsZSBmcm9tIFJlc291cmNlTG9hZGVyLgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1
aWNrTG9va0hhbmRsZTo6Y3JlYXRlKToKKwogMjAxNC0wMy0xOCAgU2FtdWVsIFdoaXRlICA8c2Ft
dWVsX3doaXRlQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogTm90IGFibGUgdG8gdXNlIGFycm93
IGtleXMgdG8gcmVhZCB0ZXh0IHdpdGggVm9pY2VPdmVyIGJlZm9yZSBzZWxlY3Rpb24gaXMgc2V0
IHNvbWVwbGFjZSAoYW55cGxhY2UpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA3MGUwMjgyLi4y
ZTczZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjQ3MSw2ICsyNDcxLDEyIEBAIF9fWk43
V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0MTVkcmF3TmF0aXZlSW1hZ2VFUDdDR0ltYWdlUktOU185
RmxvYXRTaXplRU5TXzEwQ29sCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDIyc2V0RW1v
amlEcmF3aW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDIzc2V0SXNB
Y2NlbGVyYXRlZENvbnRleHRFYgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHRDMUVQOUNH
Q29udGV4dGIKK19fWk43V2ViQ29yZTE1UXVpY2tMb29rSGFuZGxlMTBuc1Jlc3BvbnNlRXYKK19f
Wk43V2ViQ29yZTE1UXVpY2tMb29rSGFuZGxlMTRkaWRSZWNlaXZlRGF0YUVQSzhfX0NGRGF0YQor
X19aTjdXZWJDb3JlMTVRdWlja0xvb2tIYW5kbGUxNmRpZEZpbmlzaExvYWRpbmdFdgorX19aTjdX
ZWJDb3JlMTVRdWlja0xvb2tIYW5kbGU2Y3JlYXRlRVBOU18xNFJlc291cmNlTG9hZGVyRVAxM05T
VVJMUmVzcG9uc2VQMTFvYmpjX29iamVjdAorX19aTjdXZWJDb3JlMTVRdWlja0xvb2tIYW5kbGU3
ZGlkRmFpbEV2CitfX1pON1dlYkNvcmUxNVF1aWNrTG9va0hhbmRsZUQxRXYKIF9fWk43V2ViQ29y
ZTE1UmVzb3VyY2VSZXF1ZXN0Mzl1cGRhdGVGcm9tRGVsZWdhdGVQcmVzZXJ2aW5nT2xkSFRUUEJv
ZHlFUktTMF8KIF9fWk43V2ViQ29yZTE1U3RyaW5nVHJ1bmNhdG9yMTJsZWZ0VHJ1bmNhdGVFUktO
M1dURjZTdHJpbmdFZlJLTlNfNEZvbnRFTlMwXzI0RW5hYmxlUm91bmRpbmdIYWNrc09yTm90RVJm
YmYKIF9fWk43V2ViQ29yZTE1U3RyaW5nVHJ1bmNhdG9yMTNyaWdodFRydW5jYXRlRVJLTjNXVEY2
U3RyaW5nRWZSS05TXzRGb250RU5TMF8yNEVuYWJsZVJvdW5kaW5nSGFja3NPck5vdEVSZmJmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IDI4ZjAyNDUuLjRkMGMwNjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWZuZGVmIFJlc291cmNlTG9hZGVyX2gKICNkZWZpbmUgUmVzb3VyY2VMb2FkZXJfaAogCisj
aW5jbHVkZSAiUXVpY2tMb29rLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxv
YWRlclR5cGVzLmgiCkBAIC0xNTQsNiArMTU1LDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0
RGF0YUJ1ZmZlcmluZ1BvbGljeShEYXRhQnVmZmVyaW5nUG9saWN5KTsKIAorI2lmIFVTRShRVUlD
S19MT09LKQorICAgIFF1aWNrTG9va0hhbmRsZSogcXVpY2tMb29rSGFuZGxlKCkgY29uc3QgeyBy
ZXR1cm4gbV9xdWlja0xvb2tIYW5kbGUuZ2V0KCk7IH0KKyAgICB2b2lkIHNldFF1aWNrTG9va0hh
bmRsZShQYXNzT3duUHRyPFF1aWNrTG9va0hhbmRsZT4gaGFuZGxlKSB7IG1fcXVpY2tMb29rSGFu
ZGxlID0gaGFuZGxlOyB9CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFJlc291cmNlTG9hZGVy
KEZyYW1lKiwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKTsKIApAQCAtMjAyLDYgKzIwOCw5IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2RlZmVyc0xvYWRpbmc7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1f
ZGVmZXJyZWRSZXF1ZXN0OwogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBtX29wdGlvbnM7Cisj
aWYgVVNFKFFVSUNLX0xPT0spCisgICAgT3duUHRyPFF1aWNrTG9va0hhbmRsZT4gbV9xdWlja0xv
b2tIYW5kbGU7CisjZW5kaWYKIH07CiAKIGlubGluZSBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBS
ZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaAppbmRleCBiZTI3NTZkLi40YzNmOTA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaApAQCAt
NjAsNiArNjAsNyBAQCB0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxDb25uZWN0aW9uKiBDRlVSTENvbm5l
Y3Rpb25SZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlOwor
Y2xhc3MgUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGU7CiAKIENsYXNzIFFMUHJldmlld0NvbnZlcnRlckNsYXNzKCk7
CkBAIC05MSw2ICs5Miw3IEBAIHB1YmxpYzoKICNpZiBVU0UoQ0ZORVRXT1JLKQogICAgIHN0YXRp
YyBQYXNzT3duUHRyPFF1aWNrTG9va0hhbmRsZT4gY3JlYXRlKFJlc291cmNlSGFuZGxlKiwgU3lu
Y2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlKiwgQ0ZVUkxSZXNw
b25zZVJlZik7CiAjZW5kaWYKKyAgICBzdGF0aWMgUGFzc093blB0cjxRdWlja0xvb2tIYW5kbGU+
IGNyZWF0ZShSZXNvdXJjZUxvYWRlciosIE5TVVJMUmVzcG9uc2UgKiwgaWQgZGVsZWdhdGUpOwog
ICAgIH5RdWlja0xvb2tIYW5kbGUoKTsKIAogICAgIGJvb2wgZGlkUmVjZWl2ZURhdGFBcnJheShD
RkFycmF5UmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
aW9zL1F1aWNrTG9vay5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1
aWNrTG9vay5tbQppbmRleCBkMGFiNDNiLi40ZDRhYjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tCkBAIC0zMSw2ICszMSw3IEBACiAj
aW1wb3J0ICJGaWxlU3lzdGVtSU9TLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJS
ZXNvdXJjZUhhbmRsZS5oIgorI2ltcG9ydCAiUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIlJ1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5oIgogI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKICNp
bXBvcnQgIlN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5o
IgpAQCAtMzkyLDYgKzM5MywxNCBAQCBDRlVSTFJlc3BvbnNlUmVmIFF1aWNrTG9va0hhbmRsZTo6
Y2ZSZXNwb25zZSgpCiB9CiAjZW5kaWYKIAorUGFzc093blB0cjxRdWlja0xvb2tIYW5kbGU+IFF1
aWNrTG9va0hhbmRsZTo6Y3JlYXRlKFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIE5TVVJMUmVzcG9u
c2UgKnJlc3BvbnNlLCBpZCBkZWxlZ2F0ZSkKK3sKKyAgICBpZiAobG9hZGVyLT5yZXF1ZXN0KCku
aXNNYWluUmVzb3VyY2VSZXF1ZXN0KCkgJiYgW1dlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRl
ZE1JTUVUeXBlc1NldCgpIGNvbnRhaW5zT2JqZWN0OltyZXNwb25zZSBNSU1FVHlwZV1dKQorICAg
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFF1aWNrTG9va0hhbmRsZShOVUxMLCBuaWwsIHJlc3Bv
bnNlLCBkZWxlZ2F0ZSkpOworCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIE5TVVJMUmVzcG9u
c2UgKlF1aWNrTG9va0hhbmRsZTo6bnNSZXNwb25zZSgpCiB7CiAgICAgcmV0dXJuIG1fbnNSZXNw
b25zZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCBkMDc5MThmLi5kMjBmOTc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjcgQEAKKzIwMTQtMDMtMTcgIFlvbmdqdW4gWmhhbmcgIDx5b25nanVuX3poYW5nQGFwcGxl
LmNvbT4KKworICAgICAgICBbaU9TXSBXZWJLaXQyIFF1aWNrbG9vay4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDM2MAorCisgICAgICAgIEZvciBX
ZWJLaXQyIHJlc291cmNlIGxvYWRzLCBpZiB3ZSBkZXRlY3QgYSBxdWlja2xvb2sgY29udGVudCB0
aGF0IFFMQ29udmVydGVyIGlzIGFibGUgdG8KKyAgICAgICAgY29udmVydCwgaGFuZGxlIHRoZSBy
ZXNwb25zZSBkYXRhIHRvIFFMQ29udmVydGVyIGFuZCB1c2UgaXRzIGRlbGVnYXRlIFdLV2ViUmVz
b3VyY2VRdWlja0xvb2tEZWxlZ2F0ZQorICAgICAgICB0byByb3VudGUgdGhlIGNvbnZlcnRlZCBy
ZXN1bHRzIChIVE1MKSBiYWNrIGludG8gV2ViQ29yZS4gIFRoaWUgc2ltaWxpYXIgbG9naWMgaGFz
IGJlZW4gaW4gcGxhY2UKKyAgICAgICAgZm9yIFdlYktpdDEuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6IEFkZCBXZWJSZXNvdXJjZUxvYWRlcklPUy5tbSB0byB0aGUgcHJvamVjdC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5tbTogQWRkZWQu
CisgICAgICAgICgtW1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBpbml0V2l0aFdlYlJl
c291cmNlTG9hZGVyOldlYktpdDo6XSk6IFdLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBo
b2xkcworICAgICAgICAgICAgdGhlIG9yaWdpbmFsIFdlYlJlc291cmNlTG9hZGVyIHNvIHRoYXQg
d2UgY291bGQgc2VuZCBjb252ZXJ0ZWQgcmVzdWx0IHRvIFdlYkNvcmUuCisgICAgICAgICgtW1dL
V2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhQXJy
YXk6XSk6CisgICAgICAgICgtW1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBjb25uZWN0
aW9uOmRpZFJlY2VpdmVEYXRhOmxlbmd0aFJlY2VpdmVkOl0pOgorICAgICAgICAoLVtXS1dlYlJl
c291cmNlUXVpY2tMb29rRGVsZWdhdGUgY29ubmVjdGlvbkRpZEZpbmlzaExvYWRpbmc6XSk6Cisg
ICAgICAgICgtW1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZEZh
aWxXaXRoRXJyb3I6XSk6CisgICAgICAgICgtW1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0
ZSBjbGVhckhhbmRsZV0pOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6c2V0
VXBRdWlja0xvb2tIYW5kbGVJZk5lZWRlZCk6CisKIDIwMTQtMDMtMTggIFNhbXVlbCBXaGl0ZSAg
PHNhbXVlbF93aGl0ZUBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IE5vdCBhYmxlIHRvIHVzZSBh
cnJvdyBrZXlzIHRvIHJlYWQgdGV4dCB3aXRoIFZvaWNlT3ZlciBiZWZvcmUgc2VsZWN0aW9uIGlz
IHNldCBzb21lcGxhY2UgKGFueXBsYWNlKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5MWU2ZWNjLi42YTg1NzhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00
NTEsNiArNDUxLDcgQEAKIAkJMUY3NTA2QjYxODU5MTY1NzAwRUMwRkY3IC8qIFdLV2ViUHJvY2Vz
c1BsdWdJbk5vZGVIYW5kbGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUYwMTgxNzExODU4REMxNjAwRjkyODg0IC8qIFdLV2ViUHJvY2Vz
c1BsdWdJbk5vZGVIYW5kbGVJbnRlcm5hbC5oICovOyB9OwogCQkxRjc1MDZCNzE4NTkxNjVBMDBF
QzBGRjcgLyogV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdEludGVybmFsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjAxODE2RTE4NThEQzE2
MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdEludGVybmFsLmggKi87
IH07CiAJCTFGNzUwNkI4MTg1OTE2NUQwMEVDMEZGNyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFt
ZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxRjAxODE2QjE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRl
cm5hbC5oICovOyB9OworCQkxRjg3MjRCNzE4RDc2MzJCMDA3NkQ0QjQgLyogV2ViUmVzb3VyY2VM
b2FkZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxRjg3MjRCMzE4RDc2MzFEMDA3NkQ0QjQgLyogV2ViUmVzb3VyY2VMb2FkZXJJT1MubW0gKi87
IH07CiAJCTFGQjAwQUM3MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdl
R3JvdXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFG
QjAwQUM0MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRkIwMEFD
ODE4NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUZCMDBBQzUxODVGNzY0
NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5tbSAqLzsgfTsKIAkJMUZC
MDBBQzkxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRkIw
MEFDNjE4NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJu
YWwuaCAqLzsgfTsKQEAgLTIyMTAsNiArMjIxMSw3IEBACiAJCTFGMzM1QkJGMTg1Qjg0RDgwMDFB
MjAxQSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGNjA0QkE2MTg4OUZBNzQwMEVFMDM5NSAvKiBXS1Jl
bmRlcmluZ1Byb2dyZXNzRXZlbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUY2MDRCQTcxODg5RkE3NDAwRUUwMzk1IC8qIFdLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJ
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1JlbmRlcmluZ1By
b2dyZXNzRXZlbnRzSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUY4
NzI0QjMxOEQ3NjMxRDAwNzZENEI0IC8qIFdlYlJlc291cmNlTG9hZGVySU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViUmVzb3VyY2VMb2FkZXJJT1MubW07
IHBhdGggPSBpb3MvV2ViUmVzb3VyY2VMb2FkZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFGQjAwQUM0MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Q
YWdlR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNz
UGx1Z0luUGFnZUdyb3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQjAwQUM1
MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdl
R3JvdXAubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQjAwQUM2MTg1Rjc2NDYw
MDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXBJbnRl
cm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDI5MCw2ICs0MjkyLDE0IEBA
CiAJCQlwYXRoID0gQ29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkx
Rjg3MjRCMjE4RDc2MzA0MDA3NkQ0QjQgLyogaW9zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxRjg3MjRCMzE4RDc2MzFEMDA3NkQ0QjQgLyogV2ViUmVz
b3VyY2VMb2FkZXJJT1MubW0gKi8sCisJCQkpOworCQkJbmFtZSA9IGlvczsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTI5ODlBNDBFMTY3RDE4MTMwMDRGOTZEMiAvKiBDdXN0
b21Qcm90b2NvbHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApA
QCAtNDY0Niw2ICs0NjU2LDcgQEAKIAkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdv
cmsgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFGODcy
NEIyMThENzYzMDQwMDc2RDRCNCAvKiBpb3MgKi8sCiAJCQkJNTEwNUIwRDQxNjJGN0E3QTAwRTI3
NzA5IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJNTEwNUIwRDUxNjJG
N0E3QTAwRTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oICovLAogCQkJCTUxRkIw
OTAyMTYzQTNCMUMwMEVDMzI0QSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gKi8sCkBAIC04NDEwLDYgKzg0MjEsNyBAQAogCQkJCTM3OTQ4NDAzMTUwQzM1MDYwMEU1MkNF
OSAvKiBXZWJSZW5kZXJMYXllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDI4RjNFNjE4ODVD
Q0MxMDA0QjlFQUUgLyogV2ViRWRpdG9yQ2xpZW50SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Mzc2MDg4MUUxNTA0MTNFOTAwRkM4MkM3IC8qIFdlYlJlbmRlck9iamVjdC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkxRjg3MjRCNzE4RDc2MzJCMDA3NkQ0QjQgLyogV2ViUmVzb3VyY2VMb2FkZXJJ
T1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTIxNzQ2NDE2NEMyMTM3MDAzN0E1QzEgLyogV2Vi
UmVzb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzMzNjc2MkYxMzBDOTk5ODAw
NkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTMzRjlENUI5MTMxMkYxRUUwMDBENjgzRiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlckNGTmV0
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTU4ZDg3ZC4uMGE1YmFhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0xMDYsNiArMTA2LDEzIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVzb3VyY2VS
ZXNwCiAgICAgUmVmPFdlYlJlc291cmNlTG9hZGVyPiBwcm90ZWN0KCp0aGlzKTsKIAogICAgIFJl
c291cmNlUmVzcG9uc2UgcmVzcG9uc2VDb3B5KHJlc3BvbnNlKTsKKworI2lmIFVTRShRVUlDS19M
T09LKQorICAgIHNldFVwUXVpY2tMb29rSGFuZGxlSWZOZWVkZWQocmVzcG9uc2UpOworICAgIGlm
IChRdWlja0xvb2tIYW5kbGUqIHF1aWNrTG9va0hhbmRsZSA9IG1fY29yZUxvYWRlci0+cXVpY2tM
b29rSGFuZGxlKCkpCisgICAgICAgIHJlc3BvbnNlQ29weSA9IFJlc291cmNlUmVzcG9uc2UocXVp
Y2tMb29rSGFuZGxlLT5uc1Jlc3BvbnNlKCkpOworI2VuZGlmCisKICAgICAvLyBGSVhNRTogVGhp
cyBzaG91bGQgdXNlIENlcnRpZmljYXRlSW5mbyB0byBhdm9pZCB0aGUgcGxhdGZvcm0gaWZkZWZz
LiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDcyNC4KICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICByZXNwb25zZUNvcHkuc2V0Q2VydGlmaWNhdGVDaGFpbihj
ZXJ0aWZpY2F0ZUluZm8uY2VydGlmaWNhdGVDaGFpbigpKTsKQEAgLTEyNiwxMiArMTMzLDI2IEBA
IHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0
ZUluZm8oY29uc3QgUmVzb3VyY2VSZXNwCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERh
dGFMZW5ndGgpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVEYXRhIG9mIHNpemUgJWkgZm9yICclcyciLCAoaW50KWRhdGEuc2l6
ZSgpLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCisjaWYg
VVNFKFFVSUNLX0xPT0spCisgICAgaWYgKFF1aWNrTG9va0hhbmRsZSogcXVpY2tMb29rSGFuZGxl
ID0gbV9jb3JlTG9hZGVyLT5xdWlja0xvb2tIYW5kbGUoKSkgeworICAgICAgICBSZXRhaW5QdHI8
Q0ZEYXRhUmVmPiByYXdEYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGVXaXRoQnl0ZXNOb0NvcHko
MCwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpLCBrQ0ZBbGxvY2F0b3JOdWxsKSk7CisgICAgICAg
IGlmIChxdWlja0xvb2tIYW5kbGUtPmRpZFJlY2VpdmVEYXRhKHJhd0RhdGEuZ2V0KCkpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIG1fY29yZUxvYWRlci0+ZGlkUmVj
ZWl2ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRh
LnNpemUoKSwgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkQnl0ZXMpOwogfQogCiB2b2lk
IFdlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoZG91YmxlIGZpbmlzaFRp
bWUpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6
OmRpZEZpbmlzaFJlc291cmNlTG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7CisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBRdWlja0xv
b2tIYW5kbGUqIHF1aWNrTG9va0hhbmRsZSA9IHJlc291cmNlTG9hZGVyKCktPnF1aWNrTG9va0hh
bmRsZSgpOworICAgIGlmIChxdWlja0xvb2tIYW5kbGUgJiYgcXVpY2tMb29rSGFuZGxlLT5kaWRG
aW5pc2hMb2FkaW5nKCkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgIG1fY29yZUxvYWRl
ci0+ZGlkRmluaXNoTG9hZGluZyhmaW5pc2hUaW1lKTsKIH0KIApAQCAtMTM5LDYgKzE2MCwxMCBA
QCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFJlc291
cmNlRXJyb3ImIGVycm9yKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJl
c291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVy
LT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAKKyNpZiBVU0UoUVVJQ0tfTE9P
SykKKyAgICBpZiAoUXVpY2tMb29rSGFuZGxlICpxdWlja0xvb2tIYW5kbGUgPSByZXNvdXJjZUxv
YWRlcigpLT5xdWlja0xvb2tIYW5kbGUoKSkKKyAgICAgICAgcXVpY2tMb29rSGFuZGxlLT5kaWRG
YWlsKCk7CisjZW5kaWYKICAgICBtX2NvcmVMb2FkZXItPmRpZEZhaWwoZXJyb3IpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5oCmluZGV4IDljOGFlNDguLjhkMTk5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCkBAIC04OCw2ICs4OCwx
MCBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25T
cGFjZShjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKTsKICNlbmRpZgogCisjaWYgVVNF
KFFVSUNLX0xPT0spCisgICAgdm9pZCBzZXRVcFF1aWNrTG9va0hhbmRsZUlmTmVlZGVkKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyNlbmRpZgorCiAgICAgUmVmUHRyPFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyPiBtX2NvcmVMb2FkZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlJlc291cmNlTG9hZGVySU9TLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMGI1MTgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5tbQpAQCAt
MCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
V2ViUmVzb3VyY2VMb2FkZXIuaCIKKworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisjaW5j
bHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKworQGludGVyZmFjZSBXS1dlYlJlc291
cmNlUXVpY2tMb29rRGVsZWdhdGUgOiBOU09iamVjdCA8TlNVUkxDb25uZWN0aW9uRGVsZWdhdGU+
IHsKKyAgICBSZWZQdHI8V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcj4gX3dlYlJlc291cmNlTG9h
ZGVyOworfQorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tXZWJSZXNvdXJjZVF1aWNrTG9va0Rl
bGVnYXRlCisKKy0gKGlkKWluaXRXaXRoV2ViUmVzb3VyY2VMb2FkZXI6KFBhc3NSZWZQdHI8V2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRlcj4pbG9hZGVyCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0
XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfd2ViUmVzb3Vy
Y2VMb2FkZXIgPSBsb2FkZXI7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKyNpZiBVU0UoTkVUV09S
S19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0spCistICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVj
dGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZURhdGFBcnJheTooTlNBcnJheSAqKWRhdGFBcnJh
eQoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBpZiAoIV93ZWJSZXNvdXJj
ZUxvYWRlcikKKyAgICAgICAgcmV0dXJuOworICAgIF93ZWJSZXNvdXJjZUxvYWRlci0+cmVzb3Vy
Y2VMb2FkZXIoKS0+ZGlkUmVjZWl2ZURhdGFBcnJheShyZWludGVycHJldF9jYXN0PENGQXJyYXlS
ZWY+KGRhdGFBcnJheSkpOworfQorI2VuZGlmCisKKy0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxD
b25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlRGF0YTooTlNEYXRhICopZGF0YSBsZW5n
dGhSZWNlaXZlZDoobG9uZyBsb25nKWxlbmd0aFJlY2VpdmVkCit7CisgICAgVU5VU0VEX1BBUkFN
KGNvbm5lY3Rpb24pOworICAgIGlmICghX3dlYlJlc291cmNlTG9hZGVyKQorICAgICAgICByZXR1
cm47CisKKyAgICAvLyBRdWlja0xvb2sgY29kZSBzZW5kcyB1cyBhIG5pbCBkYXRhIGF0IHRpbWVz
LiBUaGUgY2hlY2sgYmVsb3cgaXMgdGhlIHNhbWUgYXMgdGhlIG9uZSBpbgorICAgIC8vIFJlc291
cmNlSGFuZGxlTWFjLmNwcCBhZGRlZCBmb3IgYSBkaWZmZXJlbnQgYnVnLgorICAgIGlmICghW2Rh
dGEgbGVuZ3RoXSkKKyAgICAgICAgcmV0dXJuOworICAgIF93ZWJSZXNvdXJjZUxvYWRlci0+cmVz
b3VyY2VMb2FkZXIoKS0+ZGlkUmVjZWl2ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oW2RhdGEgYnl0ZXNdKSwgW2RhdGEgbGVuZ3RoXSwgbGVuZ3RoUmVjZWl2ZWQsIERhdGFQYXls
b2FkQnl0ZXMpOworfQorCistICh2b2lkKWNvbm5lY3Rpb25EaWRGaW5pc2hMb2FkaW5nOihOU1VS
TENvbm5lY3Rpb24gKiljb25uZWN0aW9uCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24p
OworICAgIGlmICghX3dlYlJlc291cmNlTG9hZGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBf
d2ViUmVzb3VyY2VMb2FkZXItPnJlc291cmNlTG9hZGVyKCktPmRpZEZpbmlzaExvYWRpbmcoMCk7
Cit9CisKKy0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBk
aWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKK3sKKyAgICBVTlVTRURfUEFSQU0oY29u
bmVjdGlvbik7CisKKyAgICBfd2ViUmVzb3VyY2VMb2FkZXItPnJlc291cmNlTG9hZGVyKCktPmRp
ZEZhaWwoUmVzb3VyY2VFcnJvcihlcnJvcikpOworfQorCistICh2b2lkKWNsZWFySGFuZGxlCit7
CisgICAgX3dlYlJlc291cmNlTG9hZGVyID0gbnVsbHB0cjsKK30KKworQGVuZAorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6c2V0VXBRdWlja0xvb2tIYW5k
bGVJZk5lZWRlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBSZXNv
dXJjZUxvYWRlciAqY29yZUxvYWRlciA9IHJlc291cmNlTG9hZGVyKCk7CisgICAgUmV0YWluUHRy
PFdLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZT4gZGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tX
ZWJSZXNvdXJjZVF1aWNrTG9va0RlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFdlYlJlc291cmNlTG9h
ZGVyOnRoaXNdKTsKKyAgICBPd25QdHI8UXVpY2tMb29rSGFuZGxlPiBxdWlja0xvb2tIYW5kbGUg
PSBRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShjb3JlTG9hZGVyLCByZXNwb25zZS5uc1VSTFJlc3Bv
bnNlKCksIGRlbGVnYXRlLmdldCgpKTsKKyAgICBpZiAocXVpY2tMb29rSGFuZGxlKQorICAgICAg
ICBjb3JlTG9hZGVyLT5zZXRRdWlja0xvb2tIYW5kbGUocXVpY2tMb29rSGFuZGxlLnJlbGVhc2Uo
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKworI2VuZGlmIC8vIEVO
QUJMRShORVRXT1JLX1BST0NFU1MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227165</attachid>
            <date>2014-03-19 00:25:48 -0700</date>
            <delta_ts>2014-03-19 11:45:44 -0700</delta_ts>
            <desc>Build fix for gtk port.</desc>
            <filename>wk2_quicklook.patch</filename>
            <type>text/plain</type>
            <size>19216</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IDFjMWUyZTQ2MWQwYzYxZWVmOGZmNTQ0OTVhYzcyZTA0ODAwNGRkN2QKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBUdWUgTWFyIDE4
IDIzOjEzOjIwIDIwMTQgLTA3MDAKCiAgICBbaU9TXSBXZWJLaXQyIFF1aWNrbG9vay4KICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAzNjAKICAgIAogICAgRm9y
IFdlYktpdDIgcmVzb3VyY2UgbG9hZHMsIGlmIHdlIGRldGVjdCBhIHF1aWNrbG9vayBjb250ZW50
IHRoYXQgUUxDb252ZXJ0ZXIgaXMgYWJsZSB0bwogICAgY29udmVydCwgaGFuZGxlIHRoZSByZXNw
b25zZSBkYXRhIHRvIFFMQ29udmVydGVyIGFuZCB1c2UgaXRzIGRlbGVnYXRlIFdLV2ViUmVzb3Vy
Y2VRdWlja0xvb2tEZWxlZ2F0ZQogICAgdG8gcm91bnRlIHRoZSBjb252ZXJ0ZWQgcmVzdWx0cyAo
SFRNTCkgYmFjayBpbnRvIFdlYkNvcmUuICBUaGllIHNpbWlsaWFyIGxvZ2ljIGhhcyBiZWVuIGlu
IHBsYWNlCiAgICBmb3IgV2ViS2l0MS4KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDcxZDJhMC4uZTU2YWZmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTAzLTE3ICBZb25nanVuIFpoYW5nICA8
eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gV2ViS2l0MiBRdWlja2xv
b2suCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAz
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5j
ZSBSZXNvdXJjZUxvYWRlcnMgdXNpbmcgV2ViS2l0MiBuZXR3b3JrIHByb2Nlc3MgZG9uJ3QgaGF2
ZSBSZXNvdXJjZUhhbmRsZSBhbnkgbW9yZSwgd2UKKyAgICAgICAgbmVlZCB0byBtYWtlIGl0IHBv
c3NpYmxlIHRvIGNyZWF0ZSBRdWlja0xvb2tIYW5kbGUgZnJvbSBSZXNvdXJjZUxvYWRlci4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBNYWtlIHNvbWUgUXVpY2tMb29rSGFuZGxlIG1ldGhv
ZHMgdmlzaWJsZSBmcm9tIFdlYktpdDIuCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVy
Lmg6IEFkZCBtX3F1aWNrTG9va0hhbmRsZSBkYXRhIG1lbWJlciB0byBSZXNvdXJjZUxvYWRlci4K
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpxdWlja0xvb2tIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnNldFF1aWNrTG9va0hhbmRsZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLmg6IEFkZCBhIG5ldyBtZXRob2Qg
dG8gY3JlYXRlIFF1aWNrTG9va0hhbmRsZSBmcm9tIFJlc291cmNlTG9hZGVyLgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1
aWNrTG9va0hhbmRsZTo6Y3JlYXRlKToKKwogMjAxNC0wMy0xOCAgU2FtdWVsIFdoaXRlICA8c2Ft
dWVsX3doaXRlQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogTm90IGFibGUgdG8gdXNlIGFycm93
IGtleXMgdG8gcmVhZCB0ZXh0IHdpdGggVm9pY2VPdmVyIGJlZm9yZSBzZWxlY3Rpb24gaXMgc2V0
IHNvbWVwbGFjZSAoYW55cGxhY2UpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA3MGUwMjgyLi4y
ZTczZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjQ3MSw2ICsyNDcxLDEyIEBAIF9fWk43
V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0MTVkcmF3TmF0aXZlSW1hZ2VFUDdDR0ltYWdlUktOU185
RmxvYXRTaXplRU5TXzEwQ29sCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDIyc2V0RW1v
amlEcmF3aW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDIzc2V0SXNB
Y2NlbGVyYXRlZENvbnRleHRFYgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHRDMUVQOUNH
Q29udGV4dGIKK19fWk43V2ViQ29yZTE1UXVpY2tMb29rSGFuZGxlMTBuc1Jlc3BvbnNlRXYKK19f
Wk43V2ViQ29yZTE1UXVpY2tMb29rSGFuZGxlMTRkaWRSZWNlaXZlRGF0YUVQSzhfX0NGRGF0YQor
X19aTjdXZWJDb3JlMTVRdWlja0xvb2tIYW5kbGUxNmRpZEZpbmlzaExvYWRpbmdFdgorX19aTjdX
ZWJDb3JlMTVRdWlja0xvb2tIYW5kbGU2Y3JlYXRlRVBOU18xNFJlc291cmNlTG9hZGVyRVAxM05T
VVJMUmVzcG9uc2VQMTFvYmpjX29iamVjdAorX19aTjdXZWJDb3JlMTVRdWlja0xvb2tIYW5kbGU3
ZGlkRmFpbEV2CitfX1pON1dlYkNvcmUxNVF1aWNrTG9va0hhbmRsZUQxRXYKIF9fWk43V2ViQ29y
ZTE1UmVzb3VyY2VSZXF1ZXN0Mzl1cGRhdGVGcm9tRGVsZWdhdGVQcmVzZXJ2aW5nT2xkSFRUUEJv
ZHlFUktTMF8KIF9fWk43V2ViQ29yZTE1U3RyaW5nVHJ1bmNhdG9yMTJsZWZ0VHJ1bmNhdGVFUktO
M1dURjZTdHJpbmdFZlJLTlNfNEZvbnRFTlMwXzI0RW5hYmxlUm91bmRpbmdIYWNrc09yTm90RVJm
YmYKIF9fWk43V2ViQ29yZTE1U3RyaW5nVHJ1bmNhdG9yMTNyaWdodFRydW5jYXRlRVJLTjNXVEY2
U3RyaW5nRWZSS05TXzRGb250RU5TMF8yNEVuYWJsZVJvdW5kaW5nSGFja3NPck5vdEVSZmJmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IDI4ZjAyNDUuLjZlYjE2ZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC0zOCw2ICszOCwxMCBA
QAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
IAorI2lmIFVTRShRVUlDS19MT09LKQorI2luY2x1ZGUgIlF1aWNrTG9vay5oIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CkBA
IC0xNTQsNiArMTU4LDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGF0YUJ1ZmZlcmluZ1Bv
bGljeShEYXRhQnVmZmVyaW5nUG9saWN5KTsKIAorI2lmIFVTRShRVUlDS19MT09LKQorICAgIFF1
aWNrTG9va0hhbmRsZSogcXVpY2tMb29rSGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9xdWlja0xv
b2tIYW5kbGUuZ2V0KCk7IH0KKyAgICB2b2lkIHNldFF1aWNrTG9va0hhbmRsZShQYXNzT3duUHRy
PFF1aWNrTG9va0hhbmRsZT4gaGFuZGxlKSB7IG1fcXVpY2tMb29rSGFuZGxlID0gaGFuZGxlOyB9
CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFJlc291cmNlTG9hZGVyKEZyYW1lKiwgUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zKTsKIApAQCAtMjAyLDYgKzIxMSw5IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2RlZmVyc0xvYWRpbmc7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fZGVmZXJyZWRSZXF1ZXN0
OwogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBtX29wdGlvbnM7CisjaWYgVVNFKFFVSUNLX0xP
T0spCisgICAgT3duUHRyPFF1aWNrTG9va0hhbmRsZT4gbV9xdWlja0xvb2tIYW5kbGU7CisjZW5k
aWYKIH07CiAKIGlubGluZSBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBSZXNvdXJjZUxvYWRlcjo6
cmVzcG9uc2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9pb3MvUXVpY2tMb29rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lv
cy9RdWlja0xvb2suaAppbmRleCBiZTI3NTZkLi40YzNmOTA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaApAQCAtNjAsNiArNjAsNyBAQCB0
eXBlZGVmIHN0cnVjdCBfQ0ZVUkxDb25uZWN0aW9uKiBDRlVSTENvbm5lY3Rpb25SZWY7CiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlOworY2xhc3MgUmVzb3VyY2VM
b2FkZXI7CiBjbGFzcyBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGU7CiAKIENsYXNzIFFMUHJldmlld0NvbnZlcnRlckNsYXNzKCk7CkBAIC05MSw2ICs5Miw3
IEBAIHB1YmxpYzoKICNpZiBVU0UoQ0ZORVRXT1JLKQogICAgIHN0YXRpYyBQYXNzT3duUHRyPFF1
aWNrTG9va0hhbmRsZT4gY3JlYXRlKFJlc291cmNlSGFuZGxlKiwgU3luY2hyb25vdXNSZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlKiwgQ0ZVUkxSZXNwb25zZVJlZik7CiAjZW5k
aWYKKyAgICBzdGF0aWMgUGFzc093blB0cjxRdWlja0xvb2tIYW5kbGU+IGNyZWF0ZShSZXNvdXJj
ZUxvYWRlciosIE5TVVJMUmVzcG9uc2UgKiwgaWQgZGVsZWdhdGUpOwogICAgIH5RdWlja0xvb2tI
YW5kbGUoKTsKIAogICAgIGJvb2wgZGlkUmVjZWl2ZURhdGFBcnJheShDRkFycmF5UmVmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQppbmRl
eCBkMGFiNDNiLi40ZDRhYjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2lvcy9RdWlja0xvb2subW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9pb3MvUXVpY2tMb29rLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJGaWxlU3lz
dGVtSU9TLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUhhbmRsZS5o
IgorI2ltcG9ydCAiUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrc0lPUy5oIgogI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKICNpbXBvcnQgIlN5bmNocm9u
b3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oIgpAQCAtMzkyLDYgKzM5
MywxNCBAQCBDRlVSTFJlc3BvbnNlUmVmIFF1aWNrTG9va0hhbmRsZTo6Y2ZSZXNwb25zZSgpCiB9
CiAjZW5kaWYKIAorUGFzc093blB0cjxRdWlja0xvb2tIYW5kbGU+IFF1aWNrTG9va0hhbmRsZTo6
Y3JlYXRlKFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlLCBp
ZCBkZWxlZ2F0ZSkKK3sKKyAgICBpZiAobG9hZGVyLT5yZXF1ZXN0KCkuaXNNYWluUmVzb3VyY2VS
ZXF1ZXN0KCkgJiYgW1dlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgp
IGNvbnRhaW5zT2JqZWN0OltyZXNwb25zZSBNSU1FVHlwZV1dKQorICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IFF1aWNrTG9va0hhbmRsZShOVUxMLCBuaWwsIHJlc3BvbnNlLCBkZWxlZ2F0ZSkp
OworCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIE5TVVJMUmVzcG9uc2UgKlF1aWNrTG9va0hh
bmRsZTo6bnNSZXNwb25zZSgpCiB7CiAgICAgcmV0dXJuIG1fbnNSZXNwb25zZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBkMDc5MThmLi5kMjBmOTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTQt
MDMtMTcgIFlvbmdqdW4gWmhhbmcgIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KKworICAgICAg
ICBbaU9TXSBXZWJLaXQyIFF1aWNrbG9vay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMDM2MAorCisgICAgICAgIEZvciBXZWJLaXQyIHJlc291cmNl
IGxvYWRzLCBpZiB3ZSBkZXRlY3QgYSBxdWlja2xvb2sgY29udGVudCB0aGF0IFFMQ29udmVydGVy
IGlzIGFibGUgdG8KKyAgICAgICAgY29udmVydCwgaGFuZGxlIHRoZSByZXNwb25zZSBkYXRhIHRv
IFFMQ29udmVydGVyIGFuZCB1c2UgaXRzIGRlbGVnYXRlIFdLV2ViUmVzb3VyY2VRdWlja0xvb2tE
ZWxlZ2F0ZQorICAgICAgICB0byByb3VudGUgdGhlIGNvbnZlcnRlZCByZXN1bHRzIChIVE1MKSBi
YWNrIGludG8gV2ViQ29yZS4gIFRoaWUgc2ltaWxpYXIgbG9naWMgaGFzIGJlZW4gaW4gcGxhY2UK
KyAgICAgICAgZm9yIFdlYktpdDEuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBX
ZWJSZXNvdXJjZUxvYWRlcklPUy5tbSB0byB0aGUgcHJvamVjdC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2lvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5tbTogQWRkZWQuCisgICAgICAgICgtW1dL
V2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBpbml0V2l0aFdlYlJlc291cmNlTG9hZGVyOldl
YktpdDo6XSk6IFdLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBob2xkcworICAgICAgICAg
ICAgdGhlIG9yaWdpbmFsIFdlYlJlc291cmNlTG9hZGVyIHNvIHRoYXQgd2UgY291bGQgc2VuZCBj
b252ZXJ0ZWQgcmVzdWx0IHRvIFdlYkNvcmUuCisgICAgICAgICgtW1dLV2ViUmVzb3VyY2VRdWlj
a0xvb2tEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhQXJyYXk6XSk6CisgICAgICAg
ICgtW1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVE
YXRhOmxlbmd0aFJlY2VpdmVkOl0pOgorICAgICAgICAoLVtXS1dlYlJlc291cmNlUXVpY2tMb29r
RGVsZWdhdGUgY29ubmVjdGlvbkRpZEZpbmlzaExvYWRpbmc6XSk6CisgICAgICAgICgtW1dLV2Vi
UmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZEZhaWxXaXRoRXJyb3I6XSk6
CisgICAgICAgICgtW1dLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZSBjbGVhckhhbmRsZV0p
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6c2V0VXBRdWlja0xvb2tIYW5k
bGVJZk5lZWRlZCk6CisKIDIwMTQtMDMtMTggIFNhbXVlbCBXaGl0ZSAgPHNhbXVlbF93aGl0ZUBh
cHBsZS5jb20+CiAKICAgICAgICAgQVg6IE5vdCBhYmxlIHRvIHVzZSBhcnJvdyBrZXlzIHRvIHJl
YWQgdGV4dCB3aXRoIFZvaWNlT3ZlciBiZWZvcmUgc2VsZWN0aW9uIGlzIHNldCBzb21lcGxhY2Ug
KGFueXBsYWNlKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA5MWU2ZWNjLi42YTg1NzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTEsNiArNDUxLDcgQEAK
IAkJMUY3NTA2QjYxODU5MTY1NzAwRUMwRkY3IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5k
bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUYwMTgxNzExODU4REMxNjAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5k
bGVJbnRlcm5hbC5oICovOyB9OwogCQkxRjc1MDZCNzE4NTkxNjVBMDBFQzBGRjcgLyogV0tXZWJQ
cm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjAxODE2RTE4NThEQzE2MDBGOTI4ODQgLyogV0tX
ZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdEludGVybmFsLmggKi87IH07CiAJCTFGNzUwNkI4
MTg1OTE2NUQwMEVDMEZGNyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjAxODE2QjE4NThE
QzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oICovOyB9Owor
CQkxRjg3MjRCNzE4RDc2MzJCMDA3NkQ0QjQgLyogV2ViUmVzb3VyY2VMb2FkZXJJT1MubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjg3MjRCMzE4RDc2
MzFEMDA3NkQ0QjQgLyogV2ViUmVzb3VyY2VMb2FkZXJJT1MubW0gKi87IH07CiAJCTFGQjAwQUM3
MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGQjAwQUM0MTg1Rjc2NDYw
MDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRkIwMEFDODE4NUY3NjQ2MDAxOTE0
MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUZCMDBBQzUxODVGNzY0NjAwMTkxNDJFIC8qIFdL
V2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5tbSAqLzsgfTsKIAkJMUZCMDBBQzkxODVGNzY0NjAw
MTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRkIwMEFDNjE4NUY3NjQ2MDAx
OTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJuYWwuaCAqLzsgfTsKQEAg
LTIyMTAsNiArMjIxMSw3IEBACiAJCTFGMzM1QkJGMTg1Qjg0RDgwMDFBMjAxQSAvKiBXS1dlYlBy
b2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFGNjA0QkE2MTg4OUZBNzQwMEVFMDM5NSAvKiBXS1JlbmRlcmluZ1Byb2dyZXNz
RXZlbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUmVuZGVyaW5nUHJv
Z3Jlc3NFdmVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUY2MDRCQTcxODg5
RkE3NDAwRUUwMzk1IC8qIFdLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUY4NzI0QjMxOEQ3NjMxRDAw
NzZENEI0IC8qIFdlYlJlc291cmNlTG9hZGVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gV2ViUmVzb3VyY2VMb2FkZXJJT1MubW07IHBhdGggPSBpb3MvV2Vi
UmVzb3VyY2VMb2FkZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQjAw
QUM0MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3Vw
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQjAwQUM1MTg1Rjc2NDYwMDE5MTQy
RSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQjAwQUM2MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dl
YlByb2Nlc3NQbHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDI5MCw2ICs0MjkyLDE0IEBACiAJCQlwYXRoID0gQ29j
b2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkxRjg3MjRCMjE4RDc2MzA0
MDA3NkQ0QjQgLyogaW9zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQkxRjg3MjRCMzE4RDc2MzFEMDA3NkQ0QjQgLyogV2ViUmVzb3VyY2VMb2FkZXJJT1Mu
bW0gKi8sCisJCQkpOworCQkJbmFtZSA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CisJCX07CiAJCTI5ODlBNDBFMTY3RDE4MTMwMDRGOTZEMiAvKiBDdXN0b21Qcm90b2NvbHMgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNDY0Niw2ICs0NjU2
LDcgQEAKIAkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFGODcyNEIyMThENzYzMDQwMDc2
RDRCNCAvKiBpb3MgKi8sCiAJCQkJNTEwNUIwRDQxNjJGN0E3QTAwRTI3NzA5IC8qIE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJNTEwNUIwRDUxNjJGN0E3QTAwRTI3NzA5IC8q
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oICovLAogCQkJCTUxRkIwOTAyMTYzQTNCMUMwMEVD
MzI0QSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCkBAIC04NDEw
LDYgKzg0MjEsNyBAQAogCQkJCTM3OTQ4NDAzMTUwQzM1MDYwMEU1MkNFOSAvKiBXZWJSZW5kZXJM
YXllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDI4RjNFNjE4ODVDQ0MxMDA0QjlFQUUgLyog
V2ViRWRpdG9yQ2xpZW50SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc2MDg4MUUxNTA0MTNF
OTAwRkM4MkM3IC8qIFdlYlJlbmRlck9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRjg3
MjRCNzE4RDc2MzJCMDA3NkQ0QjQgLyogV2ViUmVzb3VyY2VMb2FkZXJJT1MubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1MTIxNzQ2NDE2NEMyMTM3MDAzN0E1QzEgLyogV2ViUmVzb3VyY2VCdWZmZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzMzNjc2MkYxMzBDOTk5ODAwNkM5REUyIC8qIFdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzRjlENUI5MTMxMkYx
RUUwMDBENjgzRiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlckNGTmV0LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTU4ZDg3ZC4uMGE1YmFhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3Bw
CkBAIC0xMDYsNiArMTA2LDEzIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVS
ZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVzb3VyY2VSZXNwCiAgICAgUmVmPFdl
YlJlc291cmNlTG9hZGVyPiBwcm90ZWN0KCp0aGlzKTsKIAogICAgIFJlc291cmNlUmVzcG9uc2Ug
cmVzcG9uc2VDb3B5KHJlc3BvbnNlKTsKKworI2lmIFVTRShRVUlDS19MT09LKQorICAgIHNldFVw
UXVpY2tMb29rSGFuZGxlSWZOZWVkZWQocmVzcG9uc2UpOworICAgIGlmIChRdWlja0xvb2tIYW5k
bGUqIHF1aWNrTG9va0hhbmRsZSA9IG1fY29yZUxvYWRlci0+cXVpY2tMb29rSGFuZGxlKCkpCisg
ICAgICAgIHJlc3BvbnNlQ29weSA9IFJlc291cmNlUmVzcG9uc2UocXVpY2tMb29rSGFuZGxlLT5u
c1Jlc3BvbnNlKCkpOworI2VuZGlmCisKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdXNlIENl
cnRpZmljYXRlSW5mbyB0byBhdm9pZCB0aGUgcGxhdGZvcm0gaWZkZWZzLiBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDcyNC4KICNpZiBQTEFURk9STShDT0NP
QSkKICAgICByZXNwb25zZUNvcHkuc2V0Q2VydGlmaWNhdGVDaGFpbihjZXJ0aWZpY2F0ZUluZm8u
Y2VydGlmaWNhdGVDaGFpbigpKTsKQEAgLTEyNiwxMiArMTMzLDI2IEBAIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVz
b3VyY2VSZXNwCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCiB7CiAg
ICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVEYXRhIG9mIHNpemUgJWkgZm9yICclcyciLCAoaW50KWRhdGEuc2l6ZSgpLCBtX2NvcmVMb2Fk
ZXItPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCisjaWYgVVNFKFFVSUNLX0xPT0sp
CisgICAgaWYgKFF1aWNrTG9va0hhbmRsZSogcXVpY2tMb29rSGFuZGxlID0gbV9jb3JlTG9hZGVy
LT5xdWlja0xvb2tIYW5kbGUoKSkgeworICAgICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiByYXdE
YXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGVXaXRoQnl0ZXNOb0NvcHkoMCwgZGF0YS5kYXRhKCks
IGRhdGEuc2l6ZSgpLCBrQ0ZBbGxvY2F0b3JOdWxsKSk7CisgICAgICAgIGlmIChxdWlja0xvb2tI
YW5kbGUtPmRpZFJlY2VpdmVEYXRhKHJhd0RhdGEuZ2V0KCkpKQorICAgICAgICAgICAgcmV0dXJu
OworICAgIH0KKyNlbmRpZgogICAgIG1fY29yZUxvYWRlci0+ZGlkUmVjZWl2ZURhdGEocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSwgZW5jb2Rl
ZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkQnl0ZXMpOwogfQogCiB2b2lkIFdlYlJlc291cmNlTG9h
ZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAgICAgTE9H
KE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291
cmNlTG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBRdWlja0xvb2tIYW5kbGUqIHF1aWNr
TG9va0hhbmRsZSA9IHJlc291cmNlTG9hZGVyKCktPnF1aWNrTG9va0hhbmRsZSgpOworICAgIGlm
IChxdWlja0xvb2tIYW5kbGUgJiYgcXVpY2tMb29rSGFuZGxlLT5kaWRGaW5pc2hMb2FkaW5nKCkp
CisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgIG1fY29yZUxvYWRlci0+ZGlkRmluaXNoTG9h
ZGluZyhmaW5pc2hUaW1lKTsKIH0KIApAQCAtMTM5LDYgKzE2MCwxMCBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9y
KQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpk
aWRGYWlsUmVzb3VyY2VMb2FkIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKICAgICAKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBpZiAoUXVp
Y2tMb29rSGFuZGxlICpxdWlja0xvb2tIYW5kbGUgPSByZXNvdXJjZUxvYWRlcigpLT5xdWlja0xv
b2tIYW5kbGUoKSkKKyAgICAgICAgcXVpY2tMb29rSGFuZGxlLT5kaWRGYWlsKCk7CisjZW5kaWYK
ICAgICBtX2NvcmVMb2FkZXItPmRpZEZhaWwoZXJyb3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCmluZGV4IDlj
OGFlNDguLjhkMTk5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCkBAIC04OCw2ICs4OCwxMCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShjb25zdCBXZWJD
b3JlOjpQcm90ZWN0aW9uU3BhY2UmKTsKICNlbmRpZgogCisjaWYgVVNFKFFVSUNLX0xPT0spCisg
ICAgdm9pZCBzZXRVcFF1aWNrTG9va0hhbmRsZUlmTmVlZGVkKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKTsKKyNlbmRpZgorCiAgICAgUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyPiBtX2NvcmVMb2FkZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2lvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvaW9zL1dlYlJlc291cmNlTG9hZGVySU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjZlMGI1MTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2lvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5tbQpAQCAtMCwwICsxLDExNiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViUmVzb3VyY2VMb2Fk
ZXIuaCIKKworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisjaW5jbHVkZSAiRGF0YVJlZmVy
ZW5jZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKKyNp
ZiBVU0UoUVVJQ0tfTE9PSykKKworQGludGVyZmFjZSBXS1dlYlJlc291cmNlUXVpY2tMb29rRGVs
ZWdhdGUgOiBOU09iamVjdCA8TlNVUkxDb25uZWN0aW9uRGVsZWdhdGU+IHsKKyAgICBSZWZQdHI8
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcj4gX3dlYlJlc291cmNlTG9hZGVyOworfQorQGVuZAor
CitAaW1wbGVtZW50YXRpb24gV0tXZWJSZXNvdXJjZVF1aWNrTG9va0RlbGVnYXRlCisKKy0gKGlk
KWluaXRXaXRoV2ViUmVzb3VyY2VMb2FkZXI6KFBhc3NSZWZQdHI8V2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRlcj4pbG9hZGVyCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNl
bGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfd2ViUmVzb3VyY2VMb2FkZXIgPSBsb2Fk
ZXI7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKyNpZiBVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlf
Q0FMTEJBQ0spCistICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rp
b24gZGlkUmVjZWl2ZURhdGFBcnJheTooTlNBcnJheSAqKWRhdGFBcnJheQoreworICAgIFVOVVNF
RF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBpZiAoIV93ZWJSZXNvdXJjZUxvYWRlcikKKyAgICAg
ICAgcmV0dXJuOworICAgIF93ZWJSZXNvdXJjZUxvYWRlci0+cmVzb3VyY2VMb2FkZXIoKS0+ZGlk
UmVjZWl2ZURhdGFBcnJheShyZWludGVycHJldF9jYXN0PENGQXJyYXlSZWY+KGRhdGFBcnJheSkp
OworfQorI2VuZGlmCisKKy0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29u
bmVjdGlvbiBkaWRSZWNlaXZlRGF0YTooTlNEYXRhICopZGF0YSBsZW5ndGhSZWNlaXZlZDoobG9u
ZyBsb25nKWxlbmd0aFJlY2VpdmVkCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwor
ICAgIGlmICghX3dlYlJlc291cmNlTG9hZGVyKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBR
dWlja0xvb2sgY29kZSBzZW5kcyB1cyBhIG5pbCBkYXRhIGF0IHRpbWVzLiBUaGUgY2hlY2sgYmVs
b3cgaXMgdGhlIHNhbWUgYXMgdGhlIG9uZSBpbgorICAgIC8vIFJlc291cmNlSGFuZGxlTWFjLmNw
cCBhZGRlZCBmb3IgYSBkaWZmZXJlbnQgYnVnLgorICAgIGlmICghW2RhdGEgbGVuZ3RoXSkKKyAg
ICAgICAgcmV0dXJuOworICAgIF93ZWJSZXNvdXJjZUxvYWRlci0+cmVzb3VyY2VMb2FkZXIoKS0+
ZGlkUmVjZWl2ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2RhdGEgYnl0ZXNd
KSwgW2RhdGEgbGVuZ3RoXSwgbGVuZ3RoUmVjZWl2ZWQsIERhdGFQYXlsb2FkQnl0ZXMpOworfQor
CistICh2b2lkKWNvbm5lY3Rpb25EaWRGaW5pc2hMb2FkaW5nOihOU1VSTENvbm5lY3Rpb24gKilj
b25uZWN0aW9uCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworICAgIGlmICghX3dl
YlJlc291cmNlTG9hZGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBfd2ViUmVzb3VyY2VMb2Fk
ZXItPnJlc291cmNlTG9hZGVyKCktPmRpZEZpbmlzaExvYWRpbmcoMCk7Cit9CisKKy0gKHZvaWQp
Y29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRGYWlsV2l0aEVycm9y
OihOU0Vycm9yICopZXJyb3IKK3sKKyAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisKKyAg
ICBfd2ViUmVzb3VyY2VMb2FkZXItPnJlc291cmNlTG9hZGVyKCktPmRpZEZhaWwoUmVzb3VyY2VF
cnJvcihlcnJvcikpOworfQorCistICh2b2lkKWNsZWFySGFuZGxlCit7CisgICAgX3dlYlJlc291
cmNlTG9hZGVyID0gbnVsbHB0cjsKK30KKworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6c2V0VXBRdWlja0xvb2tIYW5kbGVJZk5lZWRlZChjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBSZXNvdXJjZUxvYWRlciAqY29y
ZUxvYWRlciA9IHJlc291cmNlTG9hZGVyKCk7CisgICAgUmV0YWluUHRyPFdLV2ViUmVzb3VyY2VR
dWlja0xvb2tEZWxlZ2F0ZT4gZGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tXZWJSZXNvdXJjZVF1aWNr
TG9va0RlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFdlYlJlc291cmNlTG9hZGVyOnRoaXNdKTsKKyAg
ICBPd25QdHI8UXVpY2tMb29rSGFuZGxlPiBxdWlja0xvb2tIYW5kbGUgPSBRdWlja0xvb2tIYW5k
bGU6OmNyZWF0ZShjb3JlTG9hZGVyLCByZXNwb25zZS5uc1VSTFJlc3BvbnNlKCksIGRlbGVnYXRl
LmdldCgpKTsKKyAgICBpZiAocXVpY2tMb29rSGFuZGxlKQorICAgICAgICBjb3JlTG9hZGVyLT5z
ZXRRdWlja0xvb2tIYW5kbGUocXVpY2tMb29rSGFuZGxlLnJlbGVhc2UoKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCg==
</data>
<flag name="review"
          id="251399"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227205</attachid>
            <date>2014-03-19 11:45:44 -0700</date>
            <delta_ts>2014-03-19 12:24:58 -0700</delta_ts>
            <desc>Address review comments before landing.</desc>
            <filename>wk2_quicklook.patch</filename>
            <type>text/plain</type>
            <size>19166</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IDNlOTgxMWU3ZGNjY2ZiYmYzMDUxYmNmZjc1NzhhOWQwNjNmZTQ4MjkKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBUdWUgTWFyIDE4
IDIzOjEzOjIwIDIwMTQgLTA3MDAKCiAgICBbaU9TXSBXZWJLaXQyIFF1aWNrbG9vay4KICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAzNjAKICAgIAogICAgRm9y
IFdlYktpdDIgcmVzb3VyY2UgbG9hZHMsIGlmIHdlIGRldGVjdCBhIHF1aWNrbG9vayBjb250ZW50
IHRoYXQgUUxDb252ZXJ0ZXIgaXMgYWJsZSB0bwogICAgY29udmVydCwgaGFuZGxlIHRoZSByZXNw
b25zZSBkYXRhIHRvIFFMQ29udmVydGVyIGFuZCB1c2UgaXRzIGRlbGVnYXRlIFdLV2ViUmVzb3Vy
Y2VRdWlja0xvb2tEZWxlZ2F0ZQogICAgdG8gcm91bnRlIHRoZSBjb252ZXJ0ZWQgcmVzdWx0cyAo
SFRNTCkgYmFjayBpbnRvIFdlYkNvcmUuICBUaGllIHNpbWlsaWFyIGxvZ2ljIGhhcyBiZWVuIGlu
IHBsYWNlCiAgICBmb3IgV2ViS2l0MS4KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWU5NGM3MC4uNDMzNDZmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTAzLTE3ICBZb25nanVuIFpoYW5nICA8
eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gV2ViS2l0MiBRdWlja2xv
b2suCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAz
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFNpbmNlIFJl
c291cmNlTG9hZGVycyB1c2luZyBXZWJLaXQyIG5ldHdvcmsgcHJvY2VzcyBkb24ndCBoYXZlIFJl
c291cmNlSGFuZGxlIGFueSBtb3JlLCB3ZQorICAgICAgICBuZWVkIHRvIG1ha2UgaXQgcG9zc2li
bGUgdG8gY3JlYXRlIFF1aWNrTG9va0hhbmRsZSBmcm9tIFJlc291cmNlTG9hZGVyLgorCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46IE1ha2Ugc29tZSBRdWlja0xvb2tIYW5kbGUgbWV0aG9kcyB2
aXNpYmxlIGZyb20gV2ViS2l0Mi4KKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDog
QWRkIG1fcXVpY2tMb29rSGFuZGxlIGRhdGEgbWVtYmVyIHRvIFJlc291cmNlTG9hZGVyLgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnF1aWNrTG9va0hhbmRsZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6c2V0UXVpY2tMb29rSGFuZGxlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaDogQWRkIGEgbmV3IG1ldGhvZCB0byBj
cmVhdGUgUXVpY2tMb29rSGFuZGxlIGZyb20gUmVzb3VyY2VMb2FkZXIuCisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tOgorICAgICAgICAoV2ViQ29yZTo6UXVpY2tM
b29rSGFuZGxlOjpjcmVhdGUpOgorCiAyMDE0LTAzLTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIG5ldyBmdW5jdGlvbmFsaXR5IHRoYXQgd2ls
bCBiZSByZXF1aXJlZCBieSB0aGUgaGlzdG9yeSBpdGVtIGRlY29kaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCmluZGV4IDcwZTAyODIuLjJlNzNlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yNDcx
LDYgKzI0NzEsMTIgQEAgX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQxNWRyYXdOYXRpdmVJ
bWFnZUVQN0NHSW1hZ2VSS05TXzlGbG9hdFNpemVFTlNfMTBDb2wKIF9fWk43V2ViQ29yZTE1R3Jh
cGhpY3NDb250ZXh0MjJzZXRFbW9qaURyYXdpbmdFbmFibGVkRWIKIF9fWk43V2ViQ29yZTE1R3Jh
cGhpY3NDb250ZXh0MjNzZXRJc0FjY2VsZXJhdGVkQ29udGV4dEViCiBfX1pON1dlYkNvcmUxNUdy
YXBoaWNzQ29udGV4dEMxRVA5Q0dDb250ZXh0YgorX19aTjdXZWJDb3JlMTVRdWlja0xvb2tIYW5k
bGUxMG5zUmVzcG9uc2VFdgorX19aTjdXZWJDb3JlMTVRdWlja0xvb2tIYW5kbGUxNGRpZFJlY2Vp
dmVEYXRhRVBLOF9fQ0ZEYXRhCitfX1pON1dlYkNvcmUxNVF1aWNrTG9va0hhbmRsZTE2ZGlkRmlu
aXNoTG9hZGluZ0V2CitfX1pON1dlYkNvcmUxNVF1aWNrTG9va0hhbmRsZTZjcmVhdGVFUE5TXzE0
UmVzb3VyY2VMb2FkZXJFUDEzTlNVUkxSZXNwb25zZVAxMW9iamNfb2JqZWN0CitfX1pON1dlYkNv
cmUxNVF1aWNrTG9va0hhbmRsZTdkaWRGYWlsRXYKK19fWk43V2ViQ29yZTE1UXVpY2tMb29rSGFu
ZGxlRDFFdgogX19aTjdXZWJDb3JlMTVSZXNvdXJjZVJlcXVlc3QzOXVwZGF0ZUZyb21EZWxlZ2F0
ZVByZXNlcnZpbmdPbGRIVFRQQm9keUVSS1MwXwogX19aTjdXZWJDb3JlMTVTdHJpbmdUcnVuY2F0
b3IxMmxlZnRUcnVuY2F0ZUVSS04zV1RGNlN0cmluZ0VmUktOU180Rm9udEVOUzBfMjRFbmFibGVS
b3VuZGluZ0hhY2tzT3JOb3RFUmZiZgogX19aTjdXZWJDb3JlMTVTdHJpbmdUcnVuY2F0b3IxM3Jp
Z2h0VHJ1bmNhdGVFUktOM1dURjZTdHJpbmdFZlJLTlNfNEZvbnRFTlMwXzI0RW5hYmxlUm91bmRp
bmdIYWNrc09yTm90RVJmYmYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKaW5k
ZXggMjhmMDI0NS4uNmViMTZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmgKQEAgLTM4LDYgKzM4LDEwIEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogCisjaWYgVVNFKFFVSUNLX0xPT0spCisjaW5jbHVkZSAiUXVp
Y2tMb29rLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZTsKQEAgLTE1NCw2ICsxNTgsMTEgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBzZXREYXRhQnVmZmVyaW5nUG9saWN5KERhdGFCdWZmZXJpbmdQb2xpY3kpOwogCisjaWYgVVNF
KFFVSUNLX0xPT0spCisgICAgUXVpY2tMb29rSGFuZGxlKiBxdWlja0xvb2tIYW5kbGUoKSBjb25z
dCB7IHJldHVybiBtX3F1aWNrTG9va0hhbmRsZS5nZXQoKTsgfQorICAgIHZvaWQgc2V0UXVpY2tM
b29rSGFuZGxlKFBhc3NPd25QdHI8UXVpY2tMb29rSGFuZGxlPiBoYW5kbGUpIHsgbV9xdWlja0xv
b2tIYW5kbGUgPSBoYW5kbGU7IH0KKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgUmVzb3VyY2VM
b2FkZXIoRnJhbWUqLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMpOwogCkBAIC0yMDIsNiArMjExLDkg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fZGVmZXJzTG9hZGluZzsKICAgICBSZXNvdXJjZVJlcXVl
c3QgbV9kZWZlcnJlZFJlcXVlc3Q7CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9u
czsKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBPd25QdHI8UXVpY2tMb29rSGFuZGxlPiBtX3F1
aWNrTG9va0hhbmRsZTsKKyNlbmRpZgogfTsKIAogaW5saW5lIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIFJlc291cmNlTG9hZGVyOjpyZXNwb25zZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5oCmluZGV4IGJlMjc1NmQuLjRjM2Y5MDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9v
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5o
CkBAIC02MCw2ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9DRlVSTENvbm5lY3Rpb24qIENGVVJM
Q29ubmVjdGlvblJlZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVzb3VyY2VIYW5k
bGU7CitjbGFzcyBSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTsKIAogQ2xhc3MgUUxQcmV2aWV3Q29udmVydGVyQ2xh
c3MoKTsKQEAgLTkxLDYgKzkyLDcgQEAgcHVibGljOgogI2lmIFVTRShDRk5FVFdPUkspCiAgICAg
c3RhdGljIFBhc3NPd25QdHI8UXVpY2tMb29rSGFuZGxlPiBjcmVhdGUoUmVzb3VyY2VIYW5kbGUq
LCBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUqLCBDRlVS
TFJlc3BvbnNlUmVmKTsKICNlbmRpZgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFF1aWNrTG9va0hh
bmRsZT4gY3JlYXRlKFJlc291cmNlTG9hZGVyKiwgTlNVUkxSZXNwb25zZSAqLCBpZCBkZWxlZ2F0
ZSk7CiAgICAgflF1aWNrTG9va0hhbmRsZSgpOwogCiAgICAgYm9vbCBkaWRSZWNlaXZlRGF0YUFy
cmF5KENGQXJyYXlSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9pb3MvUXVpY2tMb29rLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9p
b3MvUXVpY2tMb29rLm1tCmluZGV4IGQwYWI0M2IuLjRkNGFiNzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KQEAgLTMxLDYgKzMxLDcg
QEAKICNpbXBvcnQgIkZpbGVTeXN0ZW1JT1MuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBv
cnQgIlJlc291cmNlSGFuZGxlLmgiCisjaW1wb3J0ICJSZXNvdXJjZUxvYWRlci5oIgogI2ltcG9y
dCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLmgiCiAjaW1wb3J0ICJTb2Z0TGlua2luZy5o
IgogI2ltcG9ydCAiU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlLmgiCkBAIC0zOTIsNiArMzkzLDE0IEBAIENGVVJMUmVzcG9uc2VSZWYgUXVpY2tMb29rSGFu
ZGxlOjpjZlJlc3BvbnNlKCkKIH0KICNlbmRpZgogCitQYXNzT3duUHRyPFF1aWNrTG9va0hhbmRs
ZT4gUXVpY2tMb29rSGFuZGxlOjpjcmVhdGUoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgTlNVUkxS
ZXNwb25zZSAqcmVzcG9uc2UsIGlkIGRlbGVnYXRlKQoreworICAgIGlmIChsb2FkZXItPnJlcXVl
c3QoKS5pc01haW5SZXNvdXJjZVJlcXVlc3QoKSAmJiBbV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3Vw
cG9ydGVkTUlNRVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6W3Jlc3BvbnNlIE1JTUVUeXBlXV0p
CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgUXVpY2tMb29rSGFuZGxlKE5VTEwsIG5pbCwg
cmVzcG9uc2UsIGRlbGVnYXRlKSk7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogTlNVUkxS
ZXNwb25zZSAqUXVpY2tMb29rSGFuZGxlOjpuc1Jlc3BvbnNlKCkKIHsKICAgICByZXR1cm4gbV9u
c1Jlc3BvbnNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI2YzU3ZTYuLjA4MTFjZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNyBAQAorMjAxNC0wMy0xNyAgWW9uZ2p1biBaaGFuZyAgPHlvbmdqdW5femhhbmdA
YXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFdlYktpdDIgUXVpY2tsb29rLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMzYwCisKKyAgICAgICAg
Rm9yIFdlYktpdDIgcmVzb3VyY2UgbG9hZHMsIGlmIHdlIGRldGVjdCBhIHF1aWNrbG9vayBjb250
ZW50IHRoYXQgUUxDb252ZXJ0ZXIgaXMgYWJsZSB0bworICAgICAgICBjb252ZXJ0LCBoYW5kbGUg
dGhlIHJlc3BvbnNlIGRhdGEgdG8gUUxDb252ZXJ0ZXIgYW5kIHVzZSBpdHMgZGVsZWdhdGUgV0tX
ZWJSZXNvdXJjZVF1aWNrTG9va0RlbGVnYXRlCisgICAgICAgIHRvIHJvdW50ZSB0aGUgY29udmVy
dGVkIHJlc3VsdHMgKEhUTUwpIGJhY2sgaW50byBXZWJDb3JlLiAgVGhpZSBzaW1pbGlhciBsb2dp
YyBoYXMgYmVlbiBpbiBwbGFjZQorICAgICAgICBmb3IgV2ViS2l0MS4KKworICAgICAgICBSZXZp
ZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOiBBZGQgV2ViUmVzb3VyY2VMb2FkZXJJT1MubW0gdG8gdGhlIHByb2plY3QuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViUmVzb3VyY2VMb2FkZXJJT1MubW06IEFkZGVk
LgorICAgICAgICAoLVtXS1dlYlJlc291cmNlUXVpY2tMb29rRGVsZWdhdGUgaW5pdFdpdGhXZWJS
ZXNvdXJjZUxvYWRlcjpXZWJLaXQ6Ol0pOiBXS1dlYlJlc291cmNlUXVpY2tMb29rRGVsZWdhdGUg
aG9sZHMKKyAgICAgICAgICAgIHRoZSBvcmlnaW5hbCBXZWJSZXNvdXJjZUxvYWRlciBzbyB0aGF0
IHdlIGNvdWxkIHNlbmQgY29udmVydGVkIHJlc3VsdCB0byBXZWJDb3JlLgorICAgICAgICAoLVtX
S1dlYlJlc291cmNlUXVpY2tMb29rRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlRGF0YUFy
cmF5Ol0pOgorICAgICAgICAoLVtXS1dlYlJlc291cmNlUXVpY2tMb29rRGVsZWdhdGUgY29ubmVj
dGlvbjpkaWRSZWNlaXZlRGF0YTpsZW5ndGhSZWNlaXZlZDpdKToKKyAgICAgICAgKC1bV0tXZWJS
ZXNvdXJjZVF1aWNrTG9va0RlbGVnYXRlIGNvbm5lY3Rpb25EaWRGaW5pc2hMb2FkaW5nOl0pOgor
ICAgICAgICAoLVtXS1dlYlJlc291cmNlUXVpY2tMb29rRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRG
YWlsV2l0aEVycm9yOl0pOgorICAgICAgICAoLVtXS1dlYlJlc291cmNlUXVpY2tMb29rRGVsZWdh
dGUgY2xlYXJIYW5kbGVdKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OnNl
dFVwUXVpY2tMb29rSGFuZGxlSWZOZWVkZWQpOgorCiAyMDE0LTAzLTE5ICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYktpdDIgVmlldyBHZXN0dXJl
czogU3dpcGUgZ2VzdHVyZSBjYW4gdHJhY2sgdmVydGljYWwgbW92ZW1lbnQgaW5zdGVhZCBvZiBo
b3Jpem9udGFsIG1vdmVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTFlNmVjYy4uNmE4NTc4ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDUxLDYgKzQ1
MSw3IEBACiAJCTFGNzUwNkI2MTg1OTE2NTcwMEVDMEZGNyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5O
b2RlSGFuZGxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFGMDE4MTcxMTg1OERDMTYwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5O
b2RlSGFuZGxlSW50ZXJuYWwuaCAqLzsgfTsKIAkJMUY3NTA2QjcxODU5MTY1QTAwRUMwRkY3IC8q
IFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYwMTgxNkUxODU4REMxNjAwRjkyODg0
IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHRJbnRlcm5hbC5oICovOyB9OwogCQkx
Rjc1MDZCODE4NTkxNjVEMDBFQzBGRjcgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYwMTgx
NkIxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lSW50ZXJuYWwuaCAq
LzsgfTsKKwkJMUY4NzI0QjcxOEQ3NjMyQjAwNzZENEI0IC8qIFdlYlJlc291cmNlTG9hZGVySU9T
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUY4NzI0
QjMxOEQ3NjMxRDAwNzZENEI0IC8qIFdlYlJlc291cmNlTG9hZGVySU9TLm1tICovOyB9OwogCQkx
RkIwMEFDNzE4NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRkIwMEFDNDE4
NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUZCMDBBQzgxODVGNzY0
NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGQjAwQUM1MTg1Rjc2NDYwMDE5MTQy
RSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0gKi87IH07CiAJCTFGQjAwQUM5MTg1
Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUZCMDBBQzYxODVG
NzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmggKi87
IH07CkBAIC0yMjEwLDYgKzIyMTEsNyBAQAogCQkxRjMzNUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyog
V0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRjYwNEJBNjE4ODlGQTc0MDBFRTAzOTUgLyogV0tSZW5kZXJpbmdQ
cm9ncmVzc0V2ZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1JlbmRl
cmluZ1Byb2dyZXNzRXZlbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGNjA0
QkE3MTg4OUZBNzQwMEVFMDM5NSAvKiBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tSZW5kZXJpbmdQcm9ncmVzc0V2
ZW50c0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFGODcyNEIzMThE
NzYzMUQwMDc2RDRCNCAvKiBXZWJSZXNvdXJjZUxvYWRlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYlJlc291cmNlTG9hZGVySU9TLm1tOyBwYXRoID0g
aW9zL1dlYlJlc291cmNlTG9hZGVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxRkIwMEFDNDE4NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3Vw
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJblBh
Z2VHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkIwMEFDNTE4NUY3NjQ2
MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkIwMEFDNjE4NUY3NjQ2MDAxOTE0MkUg
LyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJuYWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQyOTAsNiArNDI5MiwxNCBAQAogCQkJcGF0
aCA9IENvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUY4NzI0QjIx
OEQ3NjMwNDAwNzZENEI0IC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hp
bGRyZW4gPSAoCisJCQkJMUY4NzI0QjMxOEQ3NjMxRDAwNzZENEI0IC8qIFdlYlJlc291cmNlTG9h
ZGVySU9TLm1tICovLAorCQkJKTsKKwkJCW5hbWUgPSBpb3M7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQkyOTg5QTQwRTE2N0QxODEzMDA0Rjk2RDIgLyogQ3VzdG9tUHJvdG9j
b2xzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTQ2NDYs
NiArNDY1Niw3IEBACiAJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxRjg3MjRCMjE4RDc2
MzA0MDA3NkQ0QjQgLyogaW9zICovLAogCQkJCTUxMDVCMEQ0MTYyRjdBN0EwMEUyNzcwOSAvKiBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAogCQkJCTUxMDVCMEQ1MTYyRjdBN0EwMEUy
NzcwOSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKIAkJCQk1MUZCMDkwMjE2M0Ez
QjFDMDBFQzMyNEEgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLApA
QCAtODQxMCw2ICs4NDIxLDcgQEAKIAkJCQkzNzk0ODQwMzE1MEMzNTA2MDBFNTJDRTkgLyogV2Vi
UmVuZGVyTGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQyOEYzRTYxODg1Q0NDMTAwNEI5
RUFFIC8qIFdlYkVkaXRvckNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3NjA4ODFF
MTUwNDEzRTkwMEZDODJDNyAvKiBXZWJSZW5kZXJPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMUY4NzI0QjcxOEQ3NjMyQjAwNzZENEI0IC8qIFdlYlJlc291cmNlTG9hZGVySU9TLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTEyMTc0NjQxNjRDMjEzNzAwMzdBNUMxIC8qIFdlYlJlc291cmNl
QnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMzY3NjJGMTMwQzk5OTgwMDZDOURFMiAv
KiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzM0Y5RDVC
OTEzMTJGMUVFMDAwRDY4M0YgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJDRk5ldC5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGU1OGQ4N2QuLjBhNWJhYWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLmNwcApAQCAtMTA2LDYgKzEwNiwxMyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFJlc291cmNlUmVzcAogICAg
IFJlZjxXZWJSZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCgqdGhpcyk7CiAKICAgICBSZXNvdXJjZVJl
c3BvbnNlIHJlc3BvbnNlQ29weShyZXNwb25zZSk7CisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAg
ICBzZXRVcFF1aWNrTG9va0hhbmRsZUlmTmVlZGVkKHJlc3BvbnNlKTsKKyAgICBpZiAoUXVpY2tM
b29rSGFuZGxlKiBxdWlja0xvb2tIYW5kbGUgPSBtX2NvcmVMb2FkZXItPnF1aWNrTG9va0hhbmRs
ZSgpKQorICAgICAgICByZXNwb25zZUNvcHkgPSBSZXNvdXJjZVJlc3BvbnNlKHF1aWNrTG9va0hh
bmRsZS0+bnNSZXNwb25zZSgpKTsKKyNlbmRpZgorCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxk
IHVzZSBDZXJ0aWZpY2F0ZUluZm8gdG8gYXZvaWQgdGhlIHBsYXRmb3JtIGlmZGVmcy4gU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ3MjQuCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgcmVzcG9uc2VDb3B5LnNldENlcnRpZmljYXRlQ2hhaW4oY2VydGlmaWNh
dGVJbmZvLmNlcnRpZmljYXRlQ2hhaW4oKSk7CkBAIC0xMjYsMTIgKzEzMywyNiBAQCB2b2lkIFdl
YlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvKGNv
bnN0IFJlc291cmNlUmVzcAogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEo
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3Ro
KQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpk
aWRSZWNlaXZlRGF0YSBvZiBzaXplICVpIGZvciAnJXMnIiwgKGludClkYXRhLnNpemUoKSwgbV9j
b3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKworI2lmIFVTRShRVUlD
S19MT09LKQorICAgIGlmIChRdWlja0xvb2tIYW5kbGUqIHF1aWNrTG9va0hhbmRsZSA9IG1fY29y
ZUxvYWRlci0+cXVpY2tMb29rSGFuZGxlKCkpIHsKKyAgICAgICAgUmV0YWluUHRyPENGRGF0YVJl
Zj4gcmF3RGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlV2l0aEJ5dGVzTm9Db3B5KDAsIGRhdGEu
ZGF0YSgpLCBkYXRhLnNpemUoKSwga0NGQWxsb2NhdG9yTnVsbCkpOworICAgICAgICBpZiAocXVp
Y2tMb29rSGFuZGxlLT5kaWRSZWNlaXZlRGF0YShyYXdEYXRhLmdldCgpKSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVEYXRh
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCks
IGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZEJ5dGVzKTsKIH0KIAogdm9pZCBXZWJSZXNv
dXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGRvdWJsZSBmaW5pc2hUaW1lKQogewog
ICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5p
c2hSZXNvdXJjZUxvYWQgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOworCisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAgUXVpY2tMb29rSGFuZGxl
KiBxdWlja0xvb2tIYW5kbGUgPSByZXNvdXJjZUxvYWRlcigpLT5xdWlja0xvb2tIYW5kbGUoKTsK
KyAgICBpZiAocXVpY2tMb29rSGFuZGxlICYmIHF1aWNrTG9va0hhbmRsZS0+ZGlkRmluaXNoTG9h
ZGluZygpKQorICAgICAgICByZXR1cm47CisjZW5kaWYKICAgICBtX2NvcmVMb2FkZXItPmRpZEZp
bmlzaExvYWRpbmcoZmluaXNoVGltZSk7CiB9CiAKQEAgLTEzOSw2ICsxNjAsMTAgQEAgdm9pZCBX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxv
YWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgCisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAg
aWYgKFF1aWNrTG9va0hhbmRsZSAqcXVpY2tMb29rSGFuZGxlID0gcmVzb3VyY2VMb2FkZXIoKS0+
cXVpY2tMb29rSGFuZGxlKCkpCisgICAgICAgIHF1aWNrTG9va0hhbmRsZS0+ZGlkRmFpbCgpOwor
I2VuZGlmCiAgICAgbV9jb3JlTG9hZGVyLT5kaWRGYWlsKGVycm9yKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaApp
bmRleCA5YzhhZTQ4Li44ZDE5OTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaApAQCAtODgsNiArODgsMTAgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoY29u
c3QgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJik7CiAjZW5kaWYKIAorI2lmIFVTRShRVUlDS19M
T09LKQorICAgIHZvaWQgc2V0VXBRdWlja0xvb2tIYW5kbGVJZk5lZWRlZChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJik7CisjZW5kaWYKKwogICAgIFJlZlB0cjxXZWJDb3JlOjpSZXNv
dXJjZUxvYWRlcj4gbV9jb3JlTG9hZGVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViUmVzb3VyY2VMb2FkZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2lvcy9XZWJSZXNvdXJjZUxvYWRlcklPUy5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42ZTBiNTE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViUmVzb3VyY2VMb2FkZXJJT1MubW0KQEAgLTAsMCArMSwx
MTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYlJlc291
cmNlTG9hZGVyLmgiCisKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCisjaWYgVVNFKFFVSUNLX0xPT0spCisKK0BpbnRlcmZhY2UgV0tXZWJSZXNvdXJjZVF1aWNr
TG9va0RlbGVnYXRlIDogTlNPYmplY3QgPE5TVVJMQ29ubmVjdGlvbkRlbGVnYXRlPiB7CisgICAg
UmVmUHRyPFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI+IF93ZWJSZXNvdXJjZUxvYWRlcjsKK30K
K0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLV2ViUmVzb3VyY2VRdWlja0xvb2tEZWxlZ2F0ZQor
CistIChpZClpbml0V2l0aFdlYlJlc291cmNlTG9hZGVyOihQYXNzUmVmUHRyPFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkZXI+KWxvYWRlcgoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAg
aWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3dlYlJlc291cmNlTG9hZGVy
ID0gbG9hZGVyOworICAgIHJldHVybiBzZWxmOworfQorCisjaWYgVVNFKE5FVFdPUktfQ0ZEQVRB
X0FSUkFZX0NBTExCQUNLKQorLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKilj
b25uZWN0aW9uIGRpZFJlY2VpdmVEYXRhQXJyYXk6KE5TQXJyYXkgKilkYXRhQXJyYXkKK3sKKyAg
ICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisgICAgaWYgKCFfd2ViUmVzb3VyY2VMb2FkZXIp
CisgICAgICAgIHJldHVybjsKKyAgICBfd2ViUmVzb3VyY2VMb2FkZXItPnJlc291cmNlTG9hZGVy
KCktPmRpZFJlY2VpdmVEYXRhQXJyYXkocmVpbnRlcnByZXRfY2FzdDxDRkFycmF5UmVmPihkYXRh
QXJyYXkpKTsKK30KKyNlbmRpZgorCistICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlv
biAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZURhdGE6KE5TRGF0YSAqKWRhdGEgbGVuZ3RoUmVjZWl2
ZWQ6KGxvbmcgbG9uZylsZW5ndGhSZWNlaXZlZAoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0
aW9uKTsKKyAgICBpZiAoIV93ZWJSZXNvdXJjZUxvYWRlcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gUXVpY2tMb29rIGNvZGUgc2VuZHMgdXMgYSBuaWwgZGF0YSBhdCB0aW1lcy4gVGhlIGNo
ZWNrIGJlbG93IGlzIHRoZSBzYW1lIGFzIHRoZSBvbmUgaW4KKyAgICAvLyBSZXNvdXJjZUhhbmRs
ZU1hYy5jcHAgYWRkZWQgZm9yIGEgZGlmZmVyZW50IGJ1Zy4KKyAgICBpZiAoIVtkYXRhIGxlbmd0
aF0pCisgICAgICAgIHJldHVybjsKKyAgICBfd2ViUmVzb3VyY2VMb2FkZXItPnJlc291cmNlTG9h
ZGVyKCktPmRpZFJlY2VpdmVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFtkYXRh
IGJ5dGVzXSksIFtkYXRhIGxlbmd0aF0sIGxlbmd0aFJlY2VpdmVkLCBEYXRhUGF5bG9hZEJ5dGVz
KTsKK30KKworLSAodm9pZCljb25uZWN0aW9uRGlkRmluaXNoTG9hZGluZzooTlNVUkxDb25uZWN0
aW9uICopY29ubmVjdGlvbgoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBp
ZiAoIV93ZWJSZXNvdXJjZUxvYWRlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgX3dlYlJlc291
cmNlTG9hZGVyLT5yZXNvdXJjZUxvYWRlcigpLT5kaWRGaW5pc2hMb2FkaW5nKDApOworfQorCist
ICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkRmFpbFdp
dGhFcnJvcjooTlNFcnJvciAqKWVycm9yCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24p
OworCisgICAgX3dlYlJlc291cmNlTG9hZGVyLT5yZXNvdXJjZUxvYWRlcigpLT5kaWRGYWlsKFJl
c291cmNlRXJyb3IoZXJyb3IpKTsKK30KKworLSAodm9pZCljbGVhckhhbmRsZQoreworICAgIF93
ZWJSZXNvdXJjZUxvYWRlciA9IG51bGxwdHI7Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OnNldFVwUXVpY2tMb29rSGFuZGxlSWZOZWVk
ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgUmVzb3VyY2VMb2Fk
ZXIgKmNvcmVMb2FkZXIgPSByZXNvdXJjZUxvYWRlcigpOworICAgIFJldGFpblB0cjxXS1dlYlJl
c291cmNlUXVpY2tMb29rRGVsZWdhdGU+IGRlbGVnYXRlID0gYWRvcHROUyhbW1dLV2ViUmVzb3Vy
Y2VRdWlja0xvb2tEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhXZWJSZXNvdXJjZUxvYWRlcjp0aGlz
XSk7CisgICAgT3duUHRyPFF1aWNrTG9va0hhbmRsZT4gcXVpY2tMb29rSGFuZGxlID0gUXVpY2tM
b29rSGFuZGxlOjpjcmVhdGUoY29yZUxvYWRlciwgcmVzcG9uc2UubnNVUkxSZXNwb25zZSgpLCBk
ZWxlZ2F0ZS5nZXQoKSk7CisgICAgaWYgKHF1aWNrTG9va0hhbmRsZSkKKyAgICAgICAgY29yZUxv
YWRlci0+c2V0UXVpY2tMb29rSGFuZGxlKHF1aWNrTG9va0hhbmRsZS5yZWxlYXNlKCkpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKKyNlbmRpZiAvLyBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>