<?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>62931</bug_id>
          
          <creation_ts>2011-06-18 10:45:03 -0700</creation_ts>
          <short_desc>Separate concerns of loading file icons and choosing files.</short_desc>
          <delta_ts>2011-06-19 10:00:37 -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>New Bugs</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>
          
          <blocked>62069</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>423129</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-18 10:45:03 -0700</bug_when>
    <thetext>Separate concerns of loading file icons from choosing files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423130</commentid>
    <comment_count>1</comment_count>
      <attachid>97702</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-18 10:45:24 -0700</bug_when>
    <thetext>Created attachment 97702
WIP: Cook on bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423262</commentid>
    <comment_count>2</comment_count>
      <attachid>97706</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-18 14:19:10 -0700</bug_when>
    <thetext>Created attachment 97706
Fix Win build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423271</commentid>
    <comment_count>3</comment_count>
      <attachid>97708</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-18 16:24:14 -0700</bug_when>
    <thetext>Created attachment 97708
Energize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423272</commentid>
    <comment_count>4</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-18 16:27:28 -0700</bug_when>
    <thetext>This patch also resolves nicely the conundrum from bug 36723, which was fixed by introducing &quot;am I a real boy yet?&quot; boolean. It&apos;s brittle, and I am happy to report we no longer need this workaround.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423286</commentid>
    <comment_count>5</comment_count>
      <attachid>97708</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-18 17:36:43 -0700</bug_when>
    <thetext>Comment on attachment 97708
Energize.

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

Seems like a nice improvement.

&gt; Source/WebCore/page/ChromeClient.h:230
&gt; -        virtual void chooseIconForFiles(const Vector&lt;String&gt;&amp;, FileChooser*) = 0;
&gt; +        virtual void loadIconForFiles(const Vector&lt;String&gt;&amp;, PassRefPtr&lt;FileIconLoader&gt;) = 0;

I think that FileIconLoader should be a raw pointer, not a PassRefPtr. The caller is giving an icon loader for use, not handing off ownership. Even if the recipient might choose to take a reference to it.

&gt; Source/WebCore/rendering/RenderFileUploadControl.cpp:82
&gt; +    if (Chrome* chromePointer = chrome())
&gt; +        chromePointer-&gt;loadIconForFiles(filenames, m_iconLoader);

Our style for this is normally:

    if (Chrome* chrome = this-&gt;chrome())

That way you can use the word “chrome” and not have to say “chromePointer”.

&gt; Source/WebCore/rendering/RenderFileUploadControl.h:70
&gt; +    // FileIconLoaderClient methods.
&gt; +    void updateRendering(PassRefPtr&lt;Icon&gt;);

I know the other comment uses the word “methods”, but that is not a C++ term. The C++ term is virtual member functions or just virtual functions.

These should be explicitly marked virtual too. Again, FileChooserClient functions above are not done that way, but that’s a mistake.

At some point we need to add a feature to clang so we can use something explicitly for overriding, like virtual but a compile error or warning if you are not overriding something inherited from a base class. In other compilers we’d just use “virtual”. I wonder if someone has already designed that and whether the clang folks would be open to it or not.

&gt; Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm:791
&gt; -void WebChromeClient::chooseIconForFiles(const Vector&lt;String&gt;&amp; filenames, FileChooser* chooser)
&gt; +void WebChromeClient::loadIconForFiles(const Vector&lt;String&gt;&amp; filenames, PassRefPtr&lt;FileIconLoader&gt; iconLoader)
&gt;  {
&gt; -    chooser-&gt;iconLoaded(Icon::createIconForFiles(filenames));
&gt; +    iconLoader-&gt;notifyFinished(Icon::createIconForFiles(filenames));
&gt;  }

I’d just use the name loader here instead of iconLoader; in this local scope the extra word doesn’t add clarity, so brevity is better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423290</commentid>
    <comment_count>6</comment_count>
      <attachid>97708</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-18 17:48:53 -0700</bug_when>
    <thetext>Comment on attachment 97708
Energize.

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

Thanks for your review! I will address the feedback and land.

&gt;&gt; Source/WebCore/page/ChromeClient.h:230
&gt;&gt; +        virtual void loadIconForFiles(const Vector&lt;String&gt;&amp;, PassRefPtr&lt;FileIconLoader&gt;) = 0;
&gt; 
&gt; I think that FileIconLoader should be a raw pointer, not a PassRefPtr. The caller is giving an icon loader for use, not handing off ownership. Even if the recipient might choose to take a reference to it.

I could&apos;ve sworn you&apos;ve given me a nearly opposite feedback once... Here it is: https://bugs.webkit.org/show_bug.cgi?id=46015#c15</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423292</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-18 17:53:33 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I could&apos;ve sworn you&apos;ve given me a nearly opposite feedback once... Here it is: https://bugs.webkit.org/show_bug.cgi?id=46015#c15

I’m not sure whether I was wrong that time or wrong this time. I just wrote a message to webkit-dev about this subject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423293</commentid>
    <comment_count>8</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-18 17:54:26 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; I could&apos;ve sworn you&apos;ve given me a nearly opposite feedback once... Here it is: https://bugs.webkit.org/show_bug.cgi?id=46015#c15
&gt; 
&gt; I’m not sure whether I was wrong that time or wrong this time. I just wrote a message to webkit-dev about this subject.

It&apos;s the ghost of the past battling the ghost of the future!!! :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423370</commentid>
    <comment_count>9</comment_count>
      <attachid>97725</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-19 08:55:52 -0700</bug_when>
    <thetext>Created attachment 97725
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423371</commentid>
    <comment_count>10</comment_count>
      <attachid>97725</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-19 09:01:58 -0700</bug_when>
    <thetext>Comment on attachment 97725
Patch for landing.

Attachment 97725 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/8914144</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423372</commentid>
    <comment_count>11</comment_count>
      <attachid>97725</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-19 09:23:18 -0700</bug_when>
    <thetext>Comment on attachment 97725
Patch for landing.

Attachment 97725 did not pass cr-mac-ews (chromium):
Output: http://queues.webkit.org/results/8909160</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423373</commentid>
    <comment_count>12</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-19 10:00:37 -0700</bug_when>
    <thetext>Committed r89216: &lt;http://trac.webkit.org/changeset/89216&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97702</attachid>
            <date>2011-06-18 10:45:24 -0700</date>
            <delta_ts>2011-06-18 14:19:07 -0700</delta_ts>
            <desc>WIP: Cook on bots.</desc>
            <filename>bug-62931-20110618104522.patch</filename>
            <type>text/plain</type>
            <size>59203</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkxODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjFmYjM2
MmNiZWU1MjgzNGE3ZjJjYmEzYWVkYWVkMzQ5Y2ZmN2M5ZS4uYzRiZDI2OWZmMmRhMWQ0MzEyZDQ0
ZDg1YTc0Mjc0M2Y1MzdlMmVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwMjQsNiArMTAy
NCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5jcHAKICAg
ICBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCisg
ICAgcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3BwCiAgICAgcGxhdGZvcm0vRmlsZVN5c3RlbS5j
cHAKICAgICBwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwCiAgICAgcGxhdGZvcm0vS1VS
TC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA5NTc5YmViZDAyMmYzM2ExY2NlNmU2ZGY5ZmE3NjdiNmNhNzgx
MTgyLi41ZmJmY2QzMzcyMGI2YWZlMGEzOTg0MzFjZmM2NzExZTZkMzVmNmY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMDYtMTggIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTZXBhcmF0ZSBjb25jZXJucyBvZiBsb2FkaW5nIGZpbGUgaWNvbnMgZnJvbSBjaG9v
c2luZyBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYyOTMxCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6Omxv
YWRJY29uRm9yRmlsZXMpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZTo6bG9hZEljb25Gb3JGaWxlcyk6CisgICAgICAgICogcGFnZS9DaHJvbWUu
aDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL0Zp
bGVDaG9vc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVDaG9vc2VyOjpGaWxlQ2hvb3Nl
cik6CisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVDaG9vc2VyOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nl
cjo6Y2hvb3NlRmlsZXMpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSWNv
bkxvYWRlckNsaWVudDo6fkZpbGVJY29uTG9hZGVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVJY29uTG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUljb25Mb2Fk
ZXI6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUljb25Mb2FkZXI6
Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyOjpGaWxl
SWNvbkxvYWRlcik6CisgICAgICAgICogcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2wpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6On5SZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cmVx
dWVzdEljb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnZh
bHVlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6
dXBkYXRlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250
cm9sOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBs
b2FkQ29udHJvbDo6bWF4RmlsZW5hbWVXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
aWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RmlsZVVwbG9hZENvbnRyb2w6OmZpbGVUZXh0VmFsdWUpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oOgorCiAyMDExLTA2LTE3ICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwMTM2Yzg5NmJkMDI3N2VhNzNhNGRi
NmU0ZDIzYTU2NDUwOWVlM2ZjLi44ZWZhZGY2YzBkMGY4NmZkMDQxOTk1Mjg5ZWEyNjU4MDFhYjA2
NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTIzNjcsNiArMjM2Nyw4IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRMb29w
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZUljb25Mb2FkZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlSWNv
bkxvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlTWV0YWRhdGEuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN0cmVhbUNsaWVudC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDI5
OWQ3MTkxNjJmMGNmZmM4MTU5YWFlNDczN2NlZWJjMTIzYWU5YzEuLjk2MjY5M2M0MjBmOTc1M2Rm
YzQzZjY5ZjYyZmFlNGQ1NDEyYTM0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNTYsNyAr
MTU2LDYgQEAgX19aTjdXZWJDb3JlMTFDYWNoZWRGcmFtZTI2c2V0Q2FjaGVkRnJhbWVQbGF0Zm9y
bURhdGFFTjNXVEYxMFBhc3NPd25QdHJJTlNfMjNDYWMKIF9fWk43V2ViQ29yZTExRWRpdENvbW1h
bmQ3cmVhcHBseUV2CiBfX1pON1dlYkNvcmUxMUVkaXRDb21tYW5kN3VuYXBwbHlFdgogX19aTjdX
ZWJDb3JlMTFGaWxlQ2hvb3NlcjEwY2hvb3NlRmlsZUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2Vi
Q29yZTExRmlsZUNob29zZXIxMGljb25Mb2FkZWRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNEljb25F
RUUKIF9fWk43V2ViQ29yZTExRmlsZUNob29zZXIxMWNob29zZUZpbGVzRVJLTjNXVEY2VmVjdG9y
SU5TMV82U3RyaW5nRUxtMEVFRQogX19aTjdXZWJDb3JlMTFGaWxlQ2hvb3NlckQxRXYKIF9fWk43
V2ViQ29yZTExRnJhbWVMb2FkZXIxMWxvYWRBcmNoaXZlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzdB
cmNoaXZlRUVFCkBAIC0zNDYsNiArMzQ1LDcgQEAgX19aTjdXZWJDb3JlMTREb2N1bWVudExvYWRl
ckMxRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUktOU18xNFN1YnN0aXR1dGVEYXRhRQogX19aTjdX
ZWJDb3JlMTREb2N1bWVudExvYWRlckMyRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUktOU18xNFN1
YnN0aXR1dGVEYXRhRQogX19aTjdXZWJDb3JlMTREb2N1bWVudExvYWRlckQyRXYKIF9fWk43V2Vi
Q29yZTE0RG9jdW1lbnRXcml0ZXIxMXNldEVuY29kaW5nRVJLTjNXVEY2U3RyaW5nRWIKK19fWk43
V2ViQ29yZTE0RmlsZUljb25Mb2FkZXIxNG5vdGlmeUZpbmlzaGVkRU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzRJY29uRUVFCiBfX1pON1dlYkNvcmUxNEZyYW1lU2VsZWN0aW9uMTBzZXRGb2N1c2VkRWIK
IF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb24xMnNldFNlbGVjdGlvbkVSS05TXzE2VmlzaWJs
ZVNlbGVjdGlvbkVqTlMwXzE5Q3Vyc29yQWxpZ25PblNjcm9sbEVOU18xNVRleHRHcmFudWxhcml0
eUVOU18yMERpcmVjdGlvbmFsaXR5UG9saWN5RQogX19aTjdXZWJDb3JlMTRGcmFtZVNlbGVjdGlv
bjE1cmV2ZWFsU2VsZWN0aW9uRVJLTlNfMTVTY3JvbGxBbGlnbm1lbnRFYgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IGNjYmYyNzE1ODgwMDhmYWJkNGFiZmI4YjFhOTI3MGI0MjU1OTU1ZDMuLjgxMDNjZjA2
YjgzNzc2NDczMjM3YjQ5MDk3NjZmZDlkZGFjZmNiNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTM2
MDYsNiArMzYwNiw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vRXZlbnRMb29wLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L0ZpbGVDaG9vc2VyLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vRmlsZUljb25Mb2FkZXIu
Y3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlSWNvbkxvYWRlci5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9GaWxlTWV0YWRhdGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRmls
ZVN0cmVhbS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggZTA1Yjc1YzRjNDMyMGJlNGM0MGVjNzBjNTgzZDRhMDRmN2FiYzY5Ny4u
M2FiYzIxZTY3ZjFmMjM4YTU0MDdmZGE0YWU2OTJiYzhjMTQ0MDE3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTk3MCw2ICs5NzAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5j
cHAgXAogICAgIHBsYXRmb3JtL0RyYWdJbWFnZS5jcHAgXAogICAgIHBsYXRmb3JtL0ZpbGVDaG9v
c2VyLmNwcCBcCisgICAgcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3BwIFwKICAgICBwbGF0Zm9y
bS9GaWxlU3RyZWFtLmNwcCBcCiAgICAgcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAgXAogICAgIHBs
YXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxZGQ3YzNhNWIxMGEzMmE4NmJmMmNkZTc0YTUz
OTg3MzI2ODFkNTBhLi4wMzY5NDg3NjZiYTU1YjdlZDhlNWRiNDBmYjE0MjJhNWM1M2E3NTBjIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjYz
OTAsNiArMjYzOTAsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGxhdGZvcm1cRmlsZUljb25Mb2FkZXIuY3BwIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxGaWxlSWNvbkxvYWRl
ci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
bGF0Zm9ybVxGaWxlTWV0YWRhdGEuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzY4M2RmNjYz
NmNkZTE1YWNlMzVjMjZkYTNiYjg5N2I4OTFkYjcxOS4uNDg3NDJiNmQ3OTFkNGMwMGQ2Y2ZiYmY4
YmY0YjMyYjVmODE1NWE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODYwLDYgKzg2MCw4IEBACiAJCTQxMjdENTM3MEY4QUFC
MUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI3RDUzNjBGOEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3Rh
dGUuY3BwICovOyB9OwogCQk0MTM4RDMzNTEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250ZXh0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTM4RDMz
MzEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250ZXh0LmggKi87IH07CiAJCTQxMzhEMzM2MTI0
NDA1NDgwMDMyM0QzMyAvKiBFdmVudENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzOEQzMzQxMjQ0MDU0ODAwMzIzRDMzIC8qIEV2ZW50
Q29udGV4dC5jcHAgKi87IH07CisJCTQxNEI4NjczMTNBRDA3NEUwMEI0QjM3MyAvKiBGaWxlSWNv
bkxvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTRCODY3MTEzQUQwNzRFMDBCNEIzNzMgLyogRmlsZUljb25Mb2FkZXIuY3BwICovOyB9Owor
CQk0MTRCODY3NDEzQUQwNzRFMDBCNEIzNzMgLyogRmlsZUljb25Mb2FkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNEI4NjcyMTNBRDA3NEUwMEI0
QjM3MyAvKiBGaWxlSWNvbkxvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTQxNTBGOUYxMTJCNkUwRTcwMDA4Qzg2MCAvKiBTbGlkZXJUaHVt
YkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxNTBGOUVGMTJCNkUwRTcwMDA4Qzg2MCAvKiBTbGlkZXJUaHVtYkVsZW1lbnQuaCAqLzsgfTsK
IAkJNDE1MEY5RjIxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUwRjlGMDEyQjZF
MEU3MDAwOEM4NjAgLyogU2xpZGVyVGh1bWJFbGVtZW50LmNwcCAqLzsgfTsKIAkJNDE1N0FGODAx
MkYxRkIwNDAwQThDNkY1IC8qIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTU3QUY3RTEyRjFGQjA0MDBBOEM2
RjUgLyogTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaCAqLzsgfTsKQEAgLTcyNjQsNiArNzI2Niw4
IEBACiAJCTQxMjdENTM2MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRTdGF0ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzhEMzMzMTI0NDA1NDgwMDMyM0QzMyAvKiBFdmVudENv
bnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRDb250ZXh0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzhEMzM0MTI0NDA1NDgwMDMyM0QzMyAv
KiBFdmVudENvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RXZlbnRDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE0Qjg2NzEx
M0FEMDc0RTAwQjRCMzczIC8qIEZpbGVJY29uTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVJY29uTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDE0Qjg2NzIxM0FEMDc0RTAwQjRCMzczIC8qIEZpbGVJY29uTG9hZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVJY29uTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTBGOUVGMTJCNkUwRTcwMDA4Qzg2MCAvKiBTbGlk
ZXJUaHVtYkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2xpZGVy
VGh1bWJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTBGOUYwMTJC
NkUwRTcwMDA4Qzg2MCAvKiBTbGlkZXJUaHVtYkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2xpZGVyVGh1bWJFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE1N0FGN0UxMkYxRkIwNDAwQThDNkY1IC8qIE1lZGlhQ29udHJv
bFJvb3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODY4Myw2
ICsxODY4Nyw4IEBACiAJCQkJMUNBMTlFMTUwREMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50TG9vcC5o
ICovLAogCQkJCTkzNEZFOUU0MEI1Q0E1MzkwMDNFNEE3MyAvKiBGaWxlQ2hvb3Nlci5jcHAgKi8s
CiAJCQkJMDY2Qzc3MkEwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyLmggKi8sCisJCQkJ
NDE0Qjg2NzExM0FEMDc0RTAwQjRCMzczIC8qIEZpbGVJY29uTG9hZGVyLmNwcCAqLywKKwkJCQk0
MTRCODY3MjEzQUQwNzRFMDBCNEIzNzMgLyogRmlsZUljb25Mb2FkZXIuaCAqLywKIAkJCQkyRUYx
QkZFODEyMUM5RjQyMDBDMjc2MjcgLyogRmlsZVN0cmVhbS5jcHAgKi8sCiAJCQkJMkVGMUJGRTkx
MjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVTdHJlYW0uaCAqLywKIAkJCQkyRUYxQkZGODEyMUNCMENF
MDBDMjc2MjcgLyogRmlsZVN0cmVhbUNsaWVudC5oICovLApAQCAtMjA5ODEsNiArMjA5ODcsNyBA
QAogCQkJCTg5M0M0ODBGMTI0OEJEM0EwMDJCM0Q4NiAvKiBGaWxlRW50cnlTeW5jLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5NzZENkM4MzEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZUVycm9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRURGMzY5RjEyMkM5NEM4MDAyRjdENEUgLyogRmlsZUV4Y2VwdGlv
bi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE0Qjg2NzQxM0FEMDc0RTAwQjRCMzczIC8qIEZpbGVJ
Y29uTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RCRTEyNTFGMTJEMDAzRUYyNjkg
LyogRmlsZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc2RDZDODYxMjJCOEEzRDAw
MUZEMUY3IC8qIEZpbGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0Njg5RjFBRjEyNjdCQUUx
MDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTIzODgxLDYgKzIz
ODg4LDcgQEAKIAkJCQk5MzRGRTlFNTBCNUNBNTM5MDAzRTRBNzMgLyogRmlsZUNob29zZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJODk4Nzg1NjExMjJDQTA2NDAwM0FBQkRBIC8qIEZpbGVFbnRy
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTNDNDgwRTEyNDhCRDNBMDAyQjNEODYgLyogRmls
ZUVudHJ5U3luYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTRCODY3MzEzQUQwNzRFMDBCNEIz
NzMgLyogRmlsZUljb25Mb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQkQxMjUx
RjEyRDAwM0VGMjY5IC8qIEZpbGVJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc2
RDZDODUxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk3NkQ2Qzg4MTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlUmVhZGVyLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDMzYzI2YmNkN2Q3NTkzNzY0
ZGZiOWMzNTgxNjA5Y2Q0NGI3MjBlYzUuLmRlNmNiNTgzYWIyMGNlZTcxNjg5OTQ2N2I3N2Q3OGRk
MTk0N2M3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE5Nyw3ICsx
OTcsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwo
RnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNo
b29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVDaG9vc2VyKikgeyB9
CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBQYXNzUmVmUHRyPEZpbGVJY29uTG9hZGVyPikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9y
bVN0YXRlRGlkQ2hhbmdlKGNvbnN0IE5vZGUqKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmlu
ZGV4IDA0ZjllNGI5Y2MyODlkMDE4MDI1OWM0ODI0ZTY4ZWUwNTJjYmY5MzEuLmJlNDY3MmRiNTkx
YTlhZDc4MDlmOWE5Y2JiZWI4Yjc1NDQ2OTIyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAg
LTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJETlMu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZpbGVJY29uTG9hZGVyLmgiCiAj
aW5jbHVkZSAiRmlsZUNob29zZXIuaCIKICNpbmNsdWRlICJGaWxlTGlzdC5oIgogI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgpAQCAtMzQsNiArMzUsNyBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0Lmgi
CisjaW5jbHVkZSAiSWNvbi5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCIK
QEAgLTQ2Miw5ICs0NjQsOSBAQCB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFt
ZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiAgICAgbV9jbGllbnQtPnJ1
bk9wZW5QYW5lbChmcmFtZSwgZmlsZUNob29zZXIpOwogfQogCi12b2lkIENocm9tZTo6Y2hvb3Nl
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVDaG9vc2Vy
KiBmaWxlQ2hvb3NlcikKK3ZvaWQgQ2hyb21lOjpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBmaWxlbmFtZXMsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+IGljb25Mb2Fk
ZXIpCiB7Ci0gICAgbV9jbGllbnQtPmNob29zZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIGZpbGVD
aG9vc2VyKTsKKyAgICBtX2NsaWVudC0+bG9hZEljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIGljb25M
b2FkZXIpOwogfQogCiB2b2lkIENocm9tZTo6ZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2Uo
Y29uc3QgVmlld3BvcnRBcmd1bWVudHMmIGFyZ3VtZW50cykgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5o
CmluZGV4IGJhYjdlZTNmYmZmZjAyOTI2NzU0NDYxNjIyYTViMzk4YTNiMjdjZTAuLjAwMjZlMDI0
MGQyN2ExZWNlZGI1MWEwNmQ0NjA5ZTgwNmQwZjJlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAt
MzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBDaHJvbWVDbGll
bnQ7CiAgICAgY2xhc3MgRmlsZUNob29zZXI7CisgICAgY2xhc3MgRmlsZUljb25Mb2FkZXI7CiAg
ICAgY2xhc3MgRmxvYXRSZWN0OwogICAgIGNsYXNzIEZyYW1lOwogICAgIGNsYXNzIEdlb2xvY2F0
aW9uOwpAQCAtMTUyLDcgKzE1Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9s
b2NhdGlvbiopOwogCiAgICAgICAgIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0
cjxGaWxlQ2hvb3Nlcj4pOwotICAgICAgICB2b2lkIGNob29zZUljb25Gb3JGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYsIEZpbGVDaG9vc2VyKik7CisgICAgICAgIHZvaWQgbG9hZEljb25Gb3JG
aWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+KTsK
ICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9BRCkKICAgICAgICAgdm9pZCBlbnVtZXJhdGVDaG9z
ZW5EaXJlY3RvcnkoY29uc3QgU3RyaW5nJiwgRmlsZUNob29zZXIqKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZjZjYTJmNTJhZGM1YWE2ODBmMzkwNjcyYWJhYjE5
MDM3MmIxMDJiZi4uZDBjZDFhYTFlNDA1ZGZjNzk2ZWI2Y2U0NGNjZDIyNzE3MGRiMTJhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0OwogICAgIGNsYXNzIEVsZW1l
bnQ7CiAgICAgY2xhc3MgRmlsZUNob29zZXI7CisgICAgY2xhc3MgRmlsZUljb25Mb2FkZXI7CiAg
ICAgY2xhc3MgRmxvYXRSZWN0OwogICAgIGNsYXNzIEZyYW1lOwogICAgIGNsYXNzIEdlb2xvY2F0
aW9uOwpAQCAtMjI2LDcgKzIyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2
aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4p
ID0gMDsKICAgICAgICAgLy8gQXN5bmNocm9ub3VzIHJlcXVlc3QgdG8gbG9hZCBhbiBpY29uIGZv
ciBzcGVjaWZpZWQgZmlsZW5hbWVzLgotICAgICAgICB2aXJ0dWFsIHZvaWQgY2hvb3NlSWNvbkZv
ckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUNob29zZXIqKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgUGFz
c1JlZlB0cjxGaWxlSWNvbkxvYWRlcj4pID0gMDsKIAogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBM
T0FEKQogICAgICAgICAvLyBBc3ljaHJvbm91cyByZXF1ZXN0IHRvIGVudW1lcmF0ZSBhbGwgZmls
ZXMgaW4gYSBkaXJlY3RvcnkgY2hvc2VuIGJ5IHRoZSB1c2VyLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZUNob29zZXIuY3BwCmluZGV4IDg4MTM5NWRjODQwNTAwNTBmZmVlYjg1NjM4MTlmM2Iz
ODMxNTc2YjYuLjBmNDUyYmI4NjcwMWFkZmIzMjBlMmJjNjIzNDVlZWU3NzViNzdiMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKQEAgLTI5LDI3ICsyOSwyMSBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCiAKLSNpbmNsdWRl
ICJJY29uLmgiCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICAKKwogRmlsZUNob29zZXJDbGll
bnQ6On5GaWxlQ2hvb3NlckNsaWVudCgpCiB7CiB9CiAKIGlubGluZSBGaWxlQ2hvb3Nlcjo6Rmls
ZUNob29zZXIoRmlsZUNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IGluaXRpYWxGaWxlbmFtZXMpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCi0gICAgLCBtX2lzSW5p
dGlhbGl6aW5nKHRydWUpCiB7CiAgICAgbV9maWxlbmFtZXMgPSBpbml0aWFsRmlsZW5hbWVzOwog
fQogCiBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBGaWxlQ2hvb3Nlcjo6Y3JlYXRlKEZpbGVDaG9v
c2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBpbml0aWFsRmlsZW5hbWVz
KQogewotICAgIFJlZlB0cjxGaWxlQ2hvb3Nlcj4gY2hvb3NlcihhZG9wdFJlZihuZXcgRmlsZUNo
b29zZXIoY2xpZW50LCBpbml0aWFsRmlsZW5hbWVzKSkpOwotICAgIGNob29zZXItPmxvYWRJY29u
KCk7Ci0gICAgY2hvb3Nlci0+bV9pc0luaXRpYWxpemluZyA9IGZhbHNlOwotICAgIHJldHVybiBj
aG9vc2VyOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgRmlsZUNob29zZXIoY2xpZW50LCBpbml0
aWFsRmlsZW5hbWVzKSk7CiB9CiAKIEZpbGVDaG9vc2VyOjp+RmlsZUNob29zZXIoKQpAQCAtNTks
NyArNTMsNiBAQCBGaWxlQ2hvb3Nlcjo6fkZpbGVDaG9vc2VyKCkKIHZvaWQgRmlsZUNob29zZXI6
OmNsZWFyKCkKIHsKICAgICBtX2ZpbGVuYW1lcy5jbGVhcigpOwotICAgIG1faWNvbiA9IDA7CiB9
CiAKIHZvaWQgRmlsZUNob29zZXI6OmNob29zZUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSkK
QEAgLTc0LDIyICs2Nyw4IEBAIHZvaWQgRmlsZUNob29zZXI6OmNob29zZUZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCiAgICAgaWYgKG1fZmlsZW5hbWVzID09IGZpbGVuYW1l
cykKICAgICAgICAgcmV0dXJuOwogICAgIG1fZmlsZW5hbWVzID0gZmlsZW5hbWVzOwotICAgIGxv
YWRJY29uKCk7CiAgICAgaWYgKG1fY2xpZW50KQogICAgICAgICBtX2NsaWVudC0+dmFsdWVDaGFu
Z2VkKCk7CiB9CiAKLXZvaWQgRmlsZUNob29zZXI6OmxvYWRJY29uKCkKLXsKLSAgICBpZiAobV9m
aWxlbmFtZXMuc2l6ZSgpICYmIG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+Y2hvb3NlSWNv
bkZvckZpbGVzKHRoaXMsIG1fZmlsZW5hbWVzKTsKLX0KLQotdm9pZCBGaWxlQ2hvb3Nlcjo6aWNv
bkxvYWRlZChQYXNzUmVmUHRyPEljb24+IGljb24pCi17Ci0gICAgbV9pY29uID0gaWNvbjsKLSAg
ICBpZiAoIW1faXNJbml0aWFsaXppbmcgJiYgbV9pY29uICYmIG1fY2xpZW50KQotICAgICAgICBt
X2NsaWVudC0+cmVwYWludCgpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9GaWxlQ2hvb3Nlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29z
ZXIuaAppbmRleCBlZDNiNDMwMGEzZWQzMGJmZGJmZmFkMDEzYjM0MTkxZDlkMjc4MjE5Li5iY2My
OWEyYzk0OTJhMzZlNDYyNGVhYWRiNTkzMjdlZDNiZmZiNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZpbGVDaG9vc2VyLmgKQEAgLTM2LDE5ICszNiwxNSBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBGaWxlQ2hvb3NlcjsKLWNsYXNzIEZvbnQ7Ci1jbGFzcyBJY29uOwogCiBjbGFz
cyBGaWxlQ2hvb3NlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHZhbHVlQ2hh
bmdlZCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVwYWludCgpID0gMDsKICAgICB2aXJ0dWFs
IGJvb2wgYWxsb3dzTXVsdGlwbGVGaWxlcygpID0gMDsKICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQ
TE9BRCkKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dzRGlyZWN0b3J5VXBsb2FkKCkgPSAwOwogI2Vu
ZGlmCiAgICAgdmlydHVhbCBTdHJpbmcgYWNjZXB0VHlwZXMoKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGNob29zZUljb25Gb3JGaWxlcyhGaWxlQ2hvb3NlciosIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JikgPSAwOwogICAgIHZpcnR1YWwgfkZpbGVDaG9vc2VyQ2xpZW50KCk7CiB9OwogCkBAIC02Miwx
NCArNTgsMTAgQEAgcHVibGljOgogCiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1l
cygpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZW5hbWVzOyB9CiAKLSAgICBJY29uKiBpY29uKCkgY29u
c3QgeyByZXR1cm4gbV9pY29uLmdldCgpOyB9Ci0KICAgICB2b2lkIGNsZWFyKCk7IC8vIGZvciB1
c2UgYnkgY2xpZW50OyBkb2VzIG5vdCBjYWxsIHZhbHVlQ2hhbmdlZAogCiAgICAgdm9pZCBjaG9v
c2VGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCk7CiAgICAgdm9pZCBjaG9vc2VGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgcGF0aHMpOwotICAgIC8vIENhbGxlZCB3aGVuIEZpbGVDaG9vc2VyQ2xp
ZW50IGZpbmlzaGVzIHRvIGxvYWQgYW4gaWNvbiByZXF1ZXN0ZWQgYnkgaWNvbkZvckZpbGVzKCku
Ci0gICAgdm9pZCBpY29uTG9hZGVkKFBhc3NSZWZQdHI8SWNvbj4pOwogCiAgICAgYm9vbCBhbGxv
d3NNdWx0aXBsZUZpbGVzKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+YWxs
b3dzTXVsdGlwbGVGaWxlcygpIDogZmFsc2U7IH0KICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9B
RCkKQEAgLTgwLDEyICs3Miw5IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBGaWxlQ2hvb3Nl
cihGaWxlQ2hvb3NlckNsaWVudCosIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBpbml0aWFsRmlsZW5h
bWVzKTsKLSAgICB2b2lkIGxvYWRJY29uKCk7CiAKICAgICBGaWxlQ2hvb3NlckNsaWVudCogbV9j
bGllbnQ7CiAgICAgVmVjdG9yPFN0cmluZz4gbV9maWxlbmFtZXM7Ci0gICAgUmVmUHRyPEljb24+
IG1faWNvbjsKLSAgICBib29sIG1faXNJbml0aWFsaXppbmc7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlSWNvbkxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlSWNvbkxvYWRlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzRkZThhNWYzOWFiMGQ3NDM3MGJiMTBhY2FkZjlmNmNjZDdlM2Y1ZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVJY29uTG9hZGVyLmNwcApA
QCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhl
ciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1l
cyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJG
aWxlSWNvbkxvYWRlci5oIgorCisjaW5jbHVkZSAiSWNvbi5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0ZpbGVJY29uTG9hZGVyQ2xpZW50Ojp+RmlsZUljb25Mb2FkZXJDbGllbnQoKQorewor
fQorCitQYXNzUmVmUHRyPEZpbGVJY29uTG9hZGVyPiBGaWxlSWNvbkxvYWRlcjo6Y3JlYXRlKEZp
bGVJY29uTG9hZGVyQ2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBG
aWxlSWNvbkxvYWRlcihjbGllbnQpKTsKK30KKwordm9pZCBGaWxlSWNvbkxvYWRlcjo6ZGlzY29u
bmVjdENsaWVudCgpCit7CisgICAgbV9jbGllbnQgPSAwOworfQorCit2b2lkIEZpbGVJY29uTG9h
ZGVyOjpub3RpZnlGaW5pc2hlZChQYXNzUmVmUHRyPEljb24+IGljb24pCit7CisgICAgaWYgKG1f
Y2xpZW50KQorICAgICAgICBtX2NsaWVudC0+dXBkYXRlUmVuZGVyaW5nKGljb24pOworfQorCitG
aWxlSWNvbkxvYWRlcjo6RmlsZUljb25Mb2FkZXIoRmlsZUljb25Mb2FkZXJDbGllbnQqIGNsaWVu
dCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZpbGVJY29uTG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMzOTRkMWRlYTQ3NGMxNWQ0MjYyMGQw
ZDNiMmNjMTA0ZTI1N2I2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZpbGVJY29uTG9hZGVyLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKwor
I2lmbmRlZiBGaWxlSWNvbkxvYWRlcl9oCisjZGVmaW5lIEZpbGVJY29uTG9hZGVyX2gKKworI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJY29uOworCitjbGFzcyBGaWxlSWNvbkxvYWRl
ckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlbmRlcmluZyhQYXNz
UmVmUHRyPEljb24+KSA9IDA7CisgICAgdmlydHVhbCB+RmlsZUljb25Mb2FkZXJDbGllbnQoKTsK
K307CisKK2NsYXNzIEZpbGVJY29uTG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZUljb25M
b2FkZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGaWxlSWNvbkxvYWRlcj4g
Y3JlYXRlKEZpbGVJY29uTG9hZGVyQ2xpZW50Kik7CisKKyAgICB2b2lkIGRpc2Nvbm5lY3RDbGll
bnQoKTsKKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKFBhc3NSZWZQdHI8SWNvbj4pOworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IEZpbGVJY29uTG9hZGVyKEZpbGVJY29uTG9hZGVyQ2xpZW50Kik7
CisKKyAgICBGaWxlSWNvbkxvYWRlckNsaWVudCogbV9jbGllbnQ7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKaW5kZXggZGQ3MzA2ZTU4NmZkMmU3MDUzZjQ1
NTQxNmJiNDFkMDFjYjI5MjFkNy4uNThlM2E2NThhMmJiYTI4M2NiYjQ2NWI3OThjNzhmZDgxYjZl
MjRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxv
YWRDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wuY3BwCkBAIC01Niw2ICs1Niw3IEBAIGNvbnN0IGludCBidXR0b25TaGFkb3dI
ZWlnaHQgPSAyOwogCiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6UmVuZGVyRmlsZVVwbG9hZENv
bnRyb2woSFRNTElucHV0RWxlbWVudCogaW5wdXQpCiAgICAgOiBSZW5kZXJCbG9jayhpbnB1dCkK
KyAgICAsIG1faWNvbkxvYWRlcihGaWxlSWNvbkxvYWRlcjo6Y3JlYXRlKHRoaXMpKQogewogICAg
IEZpbGVMaXN0KiBsaXN0ID0gaW5wdXQtPmZpbGVzKCk7CiAgICAgVmVjdG9yPFN0cmluZz4gZmls
ZW5hbWVzOwpAQCAtNjMsMTMgKzY0LDI0IEBAIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpSZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCkKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCiAgICAgICAgIGZpbGVuYW1lcy5hcHBlbmQo
bGlzdC0+aXRlbShpKS0+cGF0aCgpKTsKICAgICBtX2ZpbGVDaG9vc2VyID0gRmlsZUNob29zZXI6
OmNyZWF0ZSh0aGlzLCBmaWxlbmFtZXMpOworICAgIHJlcXVlc3RJY29uKGZpbGVuYW1lcyk7CiB9
CiAKIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp+UmVuZGVyRmlsZVVwbG9hZENvbnRyb2woKQog
eworICAgIG1faWNvbkxvYWRlci0+ZGlzY29ubmVjdENsaWVudCgpOwogICAgIG1fZmlsZUNob29z
ZXItPmRpc2Nvbm5lY3RDbGllbnQoKTsKIH0KIAordm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bDo6cmVxdWVzdEljb24oY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcykgY29uc3QKK3sK
KyAgICBpZiAoIWZpbGVuYW1lcy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChD
aHJvbWUqIGNocm9tZVBvaW50ZXIgPSBjaHJvbWUoKSkKKyAgICAgICAgY2hyb21lUG9pbnRlci0+
bG9hZEljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIG1faWNvbkxvYWRlcik7Cit9CisKIHZvaWQgUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2w6OnZhbHVlQ2hhbmdlZCgpCiB7CiAgICAgLy8gZGlzcGF0Y2hG
b3JtQ29udHJvbENoYW5nZUV2ZW50IG1heSBkZXN0cm95IHRoaXMgcmVuZGVyZXIKQEAgLTc4LDEw
ICs5MCwxMSBAQCB2b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp2YWx1ZUNoYW5nZWQoKQog
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1
dEVsZW1lbnQqPihub2RlKCkpOwogICAgIGlucHV0RWxlbWVudC0+c2V0RmlsZUxpc3RGcm9tUmVu
ZGVyZXIoZmlsZUNob29zZXItPmZpbGVuYW1lcygpKTsKICAgICBpbnB1dEVsZW1lbnQtPmRpc3Bh
dGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwotIAotICAgIC8vIG9ubHkgcmVwYWludCBpZiBp
dCBkb2Vzbid0IHNlZW0gd2UgaGF2ZSBiZWVuIGRlc3Ryb3llZAotICAgIGlmICghZmlsZUNob29z
ZXItPmRpc2Nvbm5lY3RlZCgpKQotICAgICAgICByZXBhaW50KCk7CisgICAgaWYgKGZpbGVDaG9v
c2VyLT5kaXNjb25uZWN0ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVxdWVzdEljb24o
ZmlsZUNob29zZXItPmZpbGVuYW1lcygpKTsKKyAgICByZXBhaW50KCk7CiB9CiAKIGJvb2wgUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2w6OmFsbG93c011bHRpcGxlRmlsZXMoKQpAQCAtMTE0LDEwICsx
MjcsMTMgQEAgU3RyaW5nIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjphY2NlcHRUeXBlcygpCiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpLT5hY2NlcHQo
KTsKIH0KIAotdm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6Y2hvb3NlSWNvbkZvckZpbGVz
KEZpbGVDaG9vc2VyKiBjaG9vc2VyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzKQor
dm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQdHI8
SWNvbj4gaWNvbikKIHsKLSAgICBpZiAoQ2hyb21lKiBjaHJvbWVQb2ludGVyID0gY2hyb21lKCkp
Ci0gICAgICAgIGNocm9tZVBvaW50ZXItPmNob29zZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIGNo
b29zZXIpOworICAgIGlmIChtX2ljb24gPT0gaWNvbikKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9pY29uID0gaWNvbjsKKyAgICByZXBhaW50KCk7CiB9CiAKIHZvaWQgUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2w6OmNsaWNrKCkKQEAgLTE1NCw2ICsxNzAsNyBAQCB2b2lkIFJlbmRlckZpbGVVcGxv
YWRDb250cm9sOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgQVNTRVJUKGZpbGVzKTsKICAgICBp
ZiAoZmlsZXMgJiYgZmlsZXMtPmlzRW1wdHkoKSAmJiAhbV9maWxlQ2hvb3Nlci0+ZmlsZW5hbWVz
KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fZmlsZUNob29zZXItPmNsZWFyKCk7CisgICAgICAg
IG1faWNvbiA9IDA7CiAgICAgICAgIHJlcGFpbnQoKTsKICAgICB9CiB9CkBAIC0xNjYsMTQgKzE4
MywxMyBAQCBzdGF0aWMgaW50IG5vZGVXaWR0aChOb2RlKiBub2RlKQogaW50IFJlbmRlckZpbGVV
cGxvYWRDb250cm9sOjptYXhGaWxlbmFtZVdpZHRoKCkgY29uc3QKIHsKICAgICByZXR1cm4gbWF4
KDAsIGNvbnRlbnRXaWR0aCgpIC0gbm9kZVdpZHRoKHVwbG9hZEJ1dHRvbigpKSAtIGFmdGVyQnV0
dG9uU3BhY2luZwotICAgICAgICAtIChtX2ZpbGVDaG9vc2VyLT5pY29uKCkgPyBpY29uV2lkdGgg
KyBpY29uRmlsZW5hbWVTcGFjaW5nIDogMCkpOworICAgICAgICAtIChtX2ljb24gPyBpY29uV2lk
dGggKyBpY29uRmlsZW5hbWVTcGFjaW5nIDogMCkpOwogfQogCiB2b2lkIFJlbmRlckZpbGVVcGxv
YWRDb250cm9sOjpwYWludE9iamVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UG9p
bnQmIHBhaW50T2Zmc2V0KQogewogICAgIGlmIChzdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklT
SUJMRSkKICAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChtX2ZpbGVDaG9vc2VyKTsKICAgICAK
ICAgICAvLyBQdXNoIGEgY2xpcC4KICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRl
U2F2ZXIoKnBhaW50SW5mby5jb250ZXh0LCBmYWxzZSk7CkBAIC0xOTksNyArMjE1LDcgQEAgdm9p
ZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IEludFBvaW50JgogCiAgICAgICAgIGludCBidXR0b25XaWR0aCA9IG5vZGVXaWR0
aChidXR0b24pOwogICAgICAgICBpbnQgYnV0dG9uQW5kSWNvbldpZHRoID0gYnV0dG9uV2lkdGgg
KyBhZnRlckJ1dHRvblNwYWNpbmcKLSAgICAgICAgICAgICsgKG1fZmlsZUNob29zZXItPmljb24o
KSA/IGljb25XaWR0aCArIGljb25GaWxlbmFtZVNwYWNpbmcgOiAwKTsKKyAgICAgICAgICAgICsg
KG1faWNvbiA/IGljb25XaWR0aCArIGljb25GaWxlbmFtZVNwYWNpbmcgOiAwKTsKICAgICAgICAg
aW50IHRleHRYOwogICAgICAgICBpZiAoc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigp
KQogICAgICAgICAgICAgdGV4dFggPSBjb250ZW50TGVmdCArIGJ1dHRvbkFuZEljb25XaWR0aDsK
QEAgLTIxNiw3ICsyMzIsNyBAQCB2b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpwYWludE9i
amVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UG9pbnQmCiAgICAgICAgIC8vIERy
YXcgdGhlIGZpbGVuYW1lCiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5kcmF3QmlkaVRleHQo
Zm9udCwgdGV4dFJ1biwgSW50UG9pbnQodGV4dFgsIHRleHRZKSk7CiAgICAgICAgIAotICAgICAg
ICBpZiAobV9maWxlQ2hvb3Nlci0+aWNvbigpKSB7CisgICAgICAgIGlmIChtX2ljb24pIHsKICAg
ICAgICAgICAgIC8vIERldGVybWluZSB3aGVyZSB0aGUgaWNvbiBzaG91bGQgYmUgcGxhY2VkCiAg
ICAgICAgICAgICBpbnQgaWNvblkgPSBwYWludE9mZnNldC55KCkgKyBib3JkZXJUb3AoKSArIHBh
ZGRpbmdUb3AoKSArIChjb250ZW50SGVpZ2h0KCkgLSBpY29uSGVpZ2h0KSAvIDI7CiAgICAgICAg
ICAgICBpbnQgaWNvblg7CkBAIC0yMjYsNyArMjQyLDcgQEAgdm9pZCBSZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbDo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFBvaW50
JgogICAgICAgICAgICAgICAgIGljb25YID0gY29udGVudExlZnQgKyBjb250ZW50V2lkdGgoKSAt
IGJ1dHRvbldpZHRoIC0gYWZ0ZXJCdXR0b25TcGFjaW5nIC0gaWNvbldpZHRoOwogCiAgICAgICAg
ICAgICAvLyBEcmF3IHRoZSBmaWxlIGljb24KLSAgICAgICAgICAgIG1fZmlsZUNob29zZXItPmlj
b24oKS0+cGFpbnQocGFpbnRJbmZvLmNvbnRleHQsIEludFJlY3QoaWNvblgsIGljb25ZLCBpY29u
V2lkdGgsIGljb25IZWlnaHQpKTsKKyAgICAgICAgICAgIG1faWNvbi0+cGFpbnQocGFpbnRJbmZv
LmNvbnRleHQsIEludFJlY3QoaWNvblgsIGljb25ZLCBpY29uV2lkdGgsIGljb25IZWlnaHQpKTsK
ICAgICAgICAgfQogICAgIH0KIApAQCAtMzE1LDYgKzMzMSw3IEBAIFN0cmluZyBSZW5kZXJGaWxl
VXBsb2FkQ29udHJvbDo6YnV0dG9uVmFsdWUoKQogCiBTdHJpbmcgUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2w6OmZpbGVUZXh0VmFsdWUoKSBjb25zdAogeworICAgIEFTU0VSVChtX2ZpbGVDaG9vc2Vy
KTsKICAgICByZXR1cm4gdGhlbWUoKS0+ZmlsZUxpc3ROYW1lRm9yV2lkdGgobV9maWxlQ2hvb3Nl
ci0+ZmlsZW5hbWVzKCksIHN0eWxlKCktPmZvbnQoKSwgbWF4RmlsZW5hbWVXaWR0aCgpKTsKIH0K
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBs
b2FkQ29udHJvbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRD
b250cm9sLmgKaW5kZXggYmM1YWE1YmI4NzU4YTZkOTA0MmVjMDQ4Y2YxNjgyZWNmNjFmNzlhZi4u
YjZkNGMwZDNkNzM0NzhiOWZhYmY5NTYyMWY0ZTRmYTE0ZWJjNjdkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmgKQEAgLTIyLDYg
KzIyLDcgQEAKICNkZWZpbmUgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2xfaAogCiAjaW5jbHVkZSAi
RmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJGaWxlSWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIlJl
bmRlckJsb2NrLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMzLDcgKzM0LDcgQEAgY2xh
c3MgSFRNTElucHV0RWxlbWVudDsKIC8vIHN1ZmZpY2llbnQgc3BhY2UgdG8gZHJhdyBhIGZpbGUg
aWNvbiBhbmQgZmlsZW5hbWUuIFRoZSBSZW5kZXJCdXR0b24gaGFzIGEgc2hhZG93IG5vZGUKIC8v
IGFzc29jaWF0ZWQgd2l0aCBpdCB0byByZWNlaXZlIGNsaWNrL2hvdmVyIGV2ZW50cy4KIAotY2xh
c3MgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wgOiBwdWJsaWMgUmVuZGVyQmxvY2ssIHByaXZhdGUg
RmlsZUNob29zZXJDbGllbnQgeworY2xhc3MgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wgOiBwdWJs
aWMgUmVuZGVyQmxvY2ssIHByaXZhdGUgRmlsZUNob29zZXJDbGllbnQsIHByaXZhdGUgRmlsZUlj
b25Mb2FkZXJDbGllbnQgewogcHVibGljOgogICAgIFJlbmRlckZpbGVVcGxvYWRDb250cm9sKEhU
TUxJbnB1dEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJGaWxlVXBsb2FkQ29udHJvbCgp
OwpAQCAtNTgsMjQgKzU5LDI3IEBAIHByaXZhdGU6CiAKICAgICAvLyBGaWxlQ2hvb3NlckNsaWVu
dCBtZXRob2RzLgogICAgIHZvaWQgdmFsdWVDaGFuZ2VkKCk7Ci0gICAgdm9pZCByZXBhaW50KCkg
eyBSZW5kZXJCbG9jazo6cmVwYWludCgpOyB9CiAgICAgYm9vbCBhbGxvd3NNdWx0aXBsZUZpbGVz
KCk7CiAjaWYgRU5BQkxFKERJUkVDVE9SWV9VUExPQUQpCiAgICAgYm9vbCBhbGxvd3NEaXJlY3Rv
cnlVcGxvYWQoKTsKICAgICB2b2lkIHJlY2VpdmVEcm9wRm9yRGlyZWN0b3J5VXBsb2FkKGNvbnN0
IFZlY3RvcjxTdHJpbmc+Jik7CiAjZW5kaWYKICAgICBTdHJpbmcgYWNjZXB0VHlwZXMoKTsKLSAg
ICB2b2lkIGNob29zZUljb25Gb3JGaWxlcyhGaWxlQ2hvb3NlciosIGNvbnN0IFZlY3RvcjxTdHJp
bmc+Jik7CisKKyAgICAvLyBGaWxlSWNvbkxvYWRlckNsaWVudCBtZXRob2RzLgorICAgIHZvaWQg
dXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQdHI8SWNvbj4pOwogCiAgICAgQ2hyb21lKiBjaHJvbWUo
KSBjb25zdDsKICAgICBpbnQgbWF4RmlsZW5hbWVXaWR0aCgpIGNvbnN0OwotICAgIFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IGNyZWF0ZUJ1dHRvblN0eWxlKGNvbnN0IFJlbmRlclN0eWxlKiBwYXJl
bnRTdHlsZSkgY29uc3Q7CiAgICAgCiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRp
b25Gb3JQb2ludChjb25zdCBJbnRQb2ludCYpOwogCiAgICAgSFRNTElucHV0RWxlbWVudCogdXBs
b2FkQnV0dG9uKCkgY29uc3Q7CisgICAgdm9pZCByZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpIGNvbnN0OwogCiAgICAgUmVmUHRyPEZpbGVDaG9vc2VyPiBtX2ZpbGVDaG9vc2VyOwor
ICAgIFJlZlB0cjxGaWxlSWNvbkxvYWRlcj4gbV9pY29uTG9hZGVyOworICAgIFJlZlB0cjxJY29u
PiBtX2ljb247CiB9OwogCiBpbmxpbmUgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wqIHRvUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2woUmVuZGVyT2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDJiOWYwNGMxYjAxMmIzNTBjMjAyM2Q4ZDZmYzMyZWIyMGIzYTFhMGIuLmYy
YmNlZDYwNTZiNmNjYjY5ZWE1OTkzZmJlNDczMjY0Yjk0MjIzNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDYtMTggIERpbWl0cmkgR2xhemtvdiAg
PGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTZXBhcmF0ZSBjb25jZXJucyBvZiBsb2FkaW5nIGZpbGUgaWNvbnMg
ZnJvbSBjaG9vc2luZyBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYyOTMxCisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmxvYWRJY29uRm9yRmlsZXMpOgor
ICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYkljb25M
b2FkaW5nQ29tcGxldGlvbkltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uTG9hZGlu
Z0NvbXBsZXRpb25JbXBsOjpXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6ZGlkTG9hZEljb24pOgorICAg
ICAgICAqIHNyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmg6CisKIDIwMTEtMDYtMTcg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUm9sbCBDaHJvbWl1
bSBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcAppbmRleCBmNzE1Y2NjMDA1NGNiYzZjNmY4ODdlMGM3MmE0NzcxMDhmMmRiYWUyLi5hMzE5
ZGQyMjI5NmZhNzUzYzQ4MmYzYTY5MTI5ODk2OWZkNzQzYmZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNDEsNiArNDEsNyBAQAog
I2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXh0ZXJuYWxQb3B1cE1lbnUu
aCIKICNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgorI2luY2x1ZGUgIkZpbGVJY29uTG9hZGVyLmgi
CiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtNDksNiArNTAsNyBAQAogI2luY2x1ZGUgIkdyYXBo
aWNzTGF5ZXIuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVz
dWx0LmgiCisjaW5jbHVkZSAiSWNvbi5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRl
ICJOYXZpZ2F0aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgpAQCAtNjg2LDExICs2ODgs
MTEgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQ
YXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBmaWxlQ2gKICAgICBjaG9vc2VyQ29tcGxldGlvbi0+ZGlk
Q2hvb3NlRmlsZShXZWJWZWN0b3I8V2ViU3RyaW5nPigpKTsKIH0KIAotdm9pZCBDaHJvbWVDbGll
bnRJbXBsOjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1l
cywgRmlsZUNob29zZXIqIGZpbGVDaG9vc2VyKQordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpsb2Fk
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIFBhc3NSZWZQdHI8
RmlsZUljb25Mb2FkZXI+IGZpbGVJY29uTG9hZGVyKQogewogICAgIGlmICghbV93ZWJWaWV3LT5j
bGllbnQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbklt
cGwqIGljb25Db21wbGV0aW9uID0gbmV3IFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwoZmls
ZUNob29zZXIpOworICAgIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwqIGljb25Db21wbGV0
aW9uID0gbmV3IFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwoZmlsZUljb25Mb2FkZXIpOwog
ICAgIGlmICghbV93ZWJWaWV3LT5jbGllbnQoKS0+cXVlcnlJY29uRm9yRmlsZXMoZmlsZW5hbWVz
LCBpY29uQ29tcGxldGlvbikpCiAgICAgICAgIGljb25Db21wbGV0aW9uLT5kaWRMb2FkSWNvbihX
ZWJEYXRhKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5oCmluZGV4IDhkNzI1MmM1Nzk2YzI5ZTcwMjM4MjhlMzFkN2NhYjNmYzRlOTM3NWUuLjBj
NGYwYzcyNTcxY2E0YTVmNTUyZTdkNjM3NzllOTgzYzAzOWQxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKQEAgLTEzOSw3ICsxMzksNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JG
cmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgdmlydHVh
bCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIHJ1bk9w
ZW5QYW5lbChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+
KTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6
OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciopOworICAgIHZpcnR1YWwgdm9pZCBsb2Fk
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBQYXNzUmVmUHRyPFdlYkNv
cmU6OkZpbGVJY29uTG9hZGVyPik7CiAjaWYgRU5BQkxFKERJUkVDVE9SWV9VUExPQUQpCiAgICAg
dmlydHVhbCB2b2lkIGVudW1lcmF0ZUNob3NlbkRpcmVjdG9yeShjb25zdCBXVEY6OlN0cmluZyYs
IFdlYkNvcmU6OkZpbGVDaG9vc2VyKik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5jcHAKaW5k
ZXggYzFkZDMyMTdiODIxNWY2OWUyZTk2YWJiNTU4ZmRhNGVlY2VhZmYyMy4uNDY4NzU5OTA4NmNi
Y2YyOGZmNWI0MjRjZmViZjkyNDdhNjBmOTFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5jcHAKQEAg
LTM5LDggKzM5LDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsOjpXZWJJY29uTG9hZGluZ0NvbXBs
ZXRpb25JbXBsKEZpbGVDaG9vc2VyKiBjaG9vc2VyKQotICAgIDogbV9maWxlQ2hvb3NlcihjaG9v
c2VyKQorV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0
aW9uSW1wbChQYXNzUmVmUHRyPEZpbGVJY29uTG9hZGVyPiBmaWxlSWNvbkxvYWRlcikKKyAgICA6
IG1fZmlsZUljb25Mb2FkZXIoZmlsZUljb25Mb2FkZXIpCiB7CiB9CiAKQEAgLTUzLDcgKzUzLDcg
QEAgdm9pZCBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsOjpkaWRMb2FkSWNvbihjb25zdCBX
ZWJEYXRhJiBpY29uRGF0YSkKICAgICBpZiAoIWljb25EYXRhLmlzRW1wdHkoKSkgewogICAgICAg
ICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gQml0bWFwSW1hZ2U6OmNyZWF0ZSgpOwogICAgICAgICBp
bWFnZS0+c2V0RGF0YShpY29uRGF0YSwgdHJ1ZSk7Ci0gICAgICAgIG1fZmlsZUNob29zZXItPmlj
b25Mb2FkZWQoSWNvbjo6Y3JlYXRlKGltYWdlKSk7CisgICAgICAgIG1fZmlsZUljb25Mb2FkZXIt
Pm5vdGlmeUZpbmlzaGVkKEljb246OmNyZWF0ZShpbWFnZSkpOwogICAgIH0KICAgICAvLyBUaGlz
IG9iamVjdCBpcyBubyBsb25nZXIgbmVlZGVkLgogICAgIGRlbGV0ZSB0aGlzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1w
bC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9u
SW1wbC5oCmluZGV4IDZlNmYzYThmY2NhNGYzZTg2NjVjMDE5OWJmYzBhYjUzYmJlNTY1NzYuLmM2
NDEwODgzNDI3YTQwNmUyNTIwZTU5YTFhMGM2NDNlZGEyNjlhN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBs
LmgKQEAgLTMxLDEwICszMSwxMSBAQAogI2lmbmRlZiBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25J
bXBsX2gKICNkZWZpbmUgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbF9oCiAKLSNpbmNsdWRl
ICJGaWxlQ2hvb3Nlci5oIgorI2luY2x1ZGUgIkZpbGVJY29uTG9hZGVyLmgiCiAjaW5jbHVkZSAi
V2ViRGF0YS5oIgogI2luY2x1ZGUgIldlYkljb25Mb2FkaW5nQ29tcGxldGlvbi5oIgogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiB1c2luZyBX
ZWJLaXQ6OldlYkljb25Mb2FkaW5nQ29tcGxldGlvbjsKIHVzaW5nIFdlYktpdDo6V2ViRGF0YTsK
QEAgLTQzLDEzICs0NCwxMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSWNvbkxv
YWRpbmdDb21wbGV0aW9uSW1wbCA6IHB1YmxpYyBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb24gewog
cHVibGljOgotICAgIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwoV2ViQ29yZTo6RmlsZUNo
b29zZXIqKTsKKyAgICBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKFBhc3NSZWZQdHI8V2Vi
Q29yZTo6RmlsZUljb25Mb2FkZXI+KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9hZEljb24oY29u
c3QgV2ViRGF0YSYpOwogCiBwcml2YXRlOgogICAgIH5XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25J
bXBsKCk7CiAKLSAgICBSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+IG1fZmlsZUNob29zZXI7
CisgICAgUmVmUHRyPFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyPiBtX2ZpbGVJY29uTG9hZGVyOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggMWVlMTQ1M2Y3
Y2UxOWYzMDkxNzgxZTYyZmI5MDU0NWVhOTUxN2NmZC4uOTE5NTU4NTU1NzhmZTJjNTk2ZDI4ZDYx
NWE5NTM1OWViZmYyNjdlNCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEx
LTA2LTE4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VwYXJhdGUgY29uY2Vy
bnMgb2YgbG9hZGluZyBmaWxlIGljb25zIGZyb20gY2hvb3NpbmcgZmlsZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzMQorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudEVmbDo6bG9hZEljb25Gb3JGaWxlcyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50RWZsLmg6CisKIDIwMTEtMDYtMTUgIEdyemVnb3J6IEN6YWprb3dza2kg
IDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25p
byBHb21lcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuY3BwCmluZGV4IGMxNmU1OTA2ZTM2Yzk2MzE4MjA0MDJlOTFmYmQ1NmZkODYw
YTczMTEuLmQxYmEyZTM0NmQ5NTExMTcxZDFiYzg0MjY0ZDk0MDY5ODhmZGY3MTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNw
cApAQCAtNDAsNiArNDAsNyBAQAogI2VuZGlmCiAjaW5jbHVkZSAiRVdlYktpdC5oIgogI2luY2x1
ZGUgIkZpbGVDaG9vc2VyLmgiCisjaW5jbHVkZSAiRmlsZUljb25Mb2FkZXIuaCIKICNpbmNsdWRl
ICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyQ2xpZW50RWZsLmgiCkBAIC01MjcsNyArNTI4LDcgQEAgdm9pZCBDaHJvbWVDbGllbnRF
Zmw6Omljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nLCAwdT4mLCBQYXNzUmVmUHRyPEZp
bGVDaG8KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudEVmbDo6
Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUNob29zZXIqKQor
dm9pZCBDaHJvbWVDbGllbnRFZmw6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mLCBQYXNzUmVmUHRyPEZpbGVJY29uTG9hZGVyPikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRFZmwuaAppbmRleCA2ZWQ5NTA3MDgyMzYwOTM2MzE1ZDQ1ZTJjNjY1ZDdjNzgyY2Q2OWMyLi5m
NmJjN2E5MWQzNWZmYmM4NGE0YjdlNzM1NWVlYTBjNDlhMzg2MTAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaApAQCAtMTMzLDcg
KzEzMyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5l
bChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hv
b3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUNob29zZXIqKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFBh
c3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+KTsKICAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlk
Q2hhbmdlKGNvbnN0IE5vZGUqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29uc3Qg
Q3Vyc29yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZmU1MmRhNzNhNWU1ODllNjE2NzM3ZTRiMmRm
NTM3YjdiYWViNmQwMy4uNmJiZDJhNTMyNzBmYzc4M2E3ZmRkMmM1YTViY2YxYTdjZjZjZDg5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA2LTE4ICBEaW1pdHJpIEds
YXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2VwYXJhdGUgY29uY2VybnMgb2YgbG9hZGluZyBmaWxl
IGljb25zIGZyb20gY2hvb3NpbmcgZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzMQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpsb2FkSWNv
bkZvckZpbGVzKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoK
KwogMjAxMS0wNi0xNyAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5jby51az4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRleCA3OWI5NThk
ODM3YzM3YjFlYmUyMTliZmQyNTc2N2E0MThjZjBiOTMzLi5hNjcxNzNmYzFjMjI1MGM2M2FjNjgy
ODUzMzAyYmRkNjA2ZmYyMTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRl
ICJEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiRmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJGaWxlSWNvbkxvYWRlci5oIgogI2luY2x1
ZGUgIkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRSZXF1ZXN0LmgiCkBAIC02NDIsOSArNjQzLDkgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OnJ1
bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGVDaG9vc2Vy
KQogICAgIGd0a193aWRnZXRfZGVzdHJveShkaWFsb2cpOwogfQogCi12b2lkIENocm9tZUNsaWVu
dDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIGZpbGVuYW1l
cywgV2ViQ29yZTo6RmlsZUNob29zZXIqIGNob29zZXIpCit2b2lkIENocm9tZUNsaWVudDo6bG9h
ZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBmaWxlbmFtZXMsIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6RmlsZUljb25Mb2FkZXI+IGZpbGVJY29uTG9hZGVyKQogewotICAgIGNo
b29zZXItPmljb25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOwor
ICAgIGZpbGVJY29uTG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmls
ZXMoZmlsZW5hbWVzKSk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpkaXNwYXRjaFZpZXdwb3J0
RGF0YURpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
aAppbmRleCA3MTYzMjdjYzFiMDI3YjFiNDFkODIxZDA5Y2U4YzZmNGE0YjIzYTM5Li40YzFhN2I3
ZGJkMGNmYjY3OGJhOGE4MTgzYTVhYmNkOTE4MGMyODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApAQCAtMTI4LDcgKzEyOCw3
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRN
ZW51KCkgeyB9CiAjZW5kaWYKICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChXZWJD
b3JlOjpGcmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KTsKLSAgICAgICAg
dmlydHVhbCB2b2lkIGNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+
JiwgV2ViQ29yZTo6RmlsZUNob29zZXIqKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
RmlsZUljb25Mb2FkZXI+KTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hh
bmdlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9oYWlrdS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCAy
NDBlNTExZDM0ZDYzNjFhOWRmYTdjOTBhYzUxNTQ0YWZhMjYyYjRiLi40ZTJlZTBlMGE2Nzk2MWVk
OTMyNWFlZDdlYTMyZWJlMmE3NGI3OGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2hhaWt1
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDExLTA2LTE4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2Vw
YXJhdGUgY29uY2VybnMgb2YgbG9hZGluZyBmaWxlIGljb25zIGZyb20gY2hvb3NpbmcgZmlsZXMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzMQor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OmxvYWRJY29uRm9yRmlsZXMpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1Lmg6CisKIDIwMTEtMDYtMTIgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4
ZXkgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcAppbmRleCBiMTZlMDhjODk0OTE4OWM0MGZh
MTViMDFjNTBjM2EwZDNmNjZlZWI0Li45OGJjNzM5ODM1ZTM3OWVmNTEyZWU5MGM3ZWMwNzY0ZDk1
MmQ4NzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEhhaWt1LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudEhhaWt1LmgiCiAKKyNpbmNsdWRlICJGaWxl
SWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVx
dWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMzcxLDkgKzM3Miw5IEBAIHZvaWQg
Q2hyb21lQ2xpZW50SGFpa3U6OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNo
b29zZXI+KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50SGFp
a3U6OmNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBG
aWxlQ2hvb3NlciogY2hvb3NlcikKK3ZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OmxvYWRJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgUGFzc1JlZlB0cjxGaWxlSWNv
bkxvYWRlcj4gZmlsZUljb25Mb2FkZXIpCiB7Ci0gICAgY2hvb3Nlci0+aWNvbkxvYWRlZChJY29u
OjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CisgICAgZmlsZUljb25Mb2FkZXItPm5v
dGlmeUZpbmlzaGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAog
dm9pZCBDaHJvbWVDbGllbnRIYWlrdTo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1
LmggYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1
LmgKaW5kZXggMzIyZDBiMjI0NTgwMTYxOTdlMjZlYWI1MmJlYmIxMDMwNmRhNTQ0MC4uZmNhMjkw
ZmMzMDcyNGY0NzJlYzk1OGNlYjYxOWIzNzZkNWZkMTBiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaApAQCAtMTUy
LDcgKzE1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGNh
bmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0
aW9uKikgeyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBh
c3NSZWZQdHI8RmlsZUNob29zZXI+KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNob29zZUljb25G
b3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVDaG9vc2VyKik7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgUGFzc1Jl
ZlB0cjxGaWxlSWNvbkxvYWRlcj4pOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3Io
Y29uc3QgQ3Vyc29yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAwMDE3MzY1ODk3YjU5MzE3Y2M4
ODBkM2FjYzkwMTU1NTBiNmY4NGMxLi5kMTVhZTUxOWQ2ODcxYWMzNzA0MzdlMjg3N2M1NjJkN2E1
NzEyM2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDYtMTggIERp
bWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZXBhcmF0ZSBjb25jZXJucyBvZiBsb2Fk
aW5nIGZpbGUgaWNvbnMgZnJvbSBjaG9vc2luZyBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTMxCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMp
OgorCiAyMDExLTA2LTE2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByODkwMjYuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDZm
OWYwOWM5YjlkM2EwYjM2ZWRiYjE4N2JiNmI4MGYwY2Q0NzBhNGIuLmYyMzI3MThiYzg4MDZjOTU4
YTdjZTg3MWNhMjIzZDE4ZTAwYWFiZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGlj
OgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1l
KiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pOwotICAgIHZpcnR1YWwgdm9pZCBj
aG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZp
bGVDaG9vc2VyKik7CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFdURjo6U3RyaW5nPiYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUljb25Mb2FkZXI+KTsK
IAogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbQppbmRleCA1YjUyOTkwNGU5NTBlNzVjMDk4MTJmYTQ1YTAyOTU0M2Q2ZDRkOGNhLi4xMjIw
OTU3Zjc1OTkwZGFiZDBhZjM3MjA0ZjZjODY4MDBkMmYzN2MwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC01NSw2ICs1
NSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0NvbnRleHRNZW51Q29udHJvbGxlci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9FbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0ZpbGVJY29uTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0
UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFt
ZUxvYWRSZXF1ZXN0Lmg+CkBAIC03ODQsOSArNzg1LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IGNob29zZXIpCiAg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxl
Q2hvb3NlciogY2hvb3NlcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2Fk
ZXI+IGljb25Mb2FkZXIpCiB7Ci0gICAgY2hvb3Nlci0+aWNvbkxvYWRlZChJY29uOjpjcmVhdGVJ
Y29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CisgICAgaWNvbkxvYWRlci0+bm90aWZ5RmluaXNoZWQo
SWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOwogfQogCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6c2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYgY3Vyc29yKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZwppbmRleCBiMDk3Y2QwYmNmZGJmM2IwMTlhYTA1MmI3YWY4YjIyNGFkN2IzYzk3Li5mYjc0
ZjM1MDdiYzM3M2I0NjNjNDc2YzliZWQ5ZjY2N2VkYmZhMzVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDExLTA2LTE4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU2VwYXJhdGUgY29uY2VybnMgb2YgbG9hZGluZyBmaWxlIGljb25zIGZyb20gY2hvb3Npbmcg
ZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
MjkzMQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmxvYWRJY29uRm9yRmlsZXMpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisKIDIwMTEtMDYtMTcgIEFsZXhp
cyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggNjU1ZTg3Mjg2NmQyN2FjYWVhM2I5MzdiNjJj
ZTlkMzE3MzUxOTA3Yi4uN2UwZmMzZWMzZDI2NjlmZDY4MWRiMTNkNzVhZjJkYTFjY2Q3NjRiZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCisjaW5jbHVkZSAi
RmlsZUljb25Mb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtNjA4LDkgKzYwOSw5IEBA
IHZvaWQgQ2hyb21lQ2xpZW50UXQ6OnJ1bk9wZW5QYW5lbChGcmFtZSogZnJhbWUsIFBhc3NSZWZQ
dHI8RmlsZUNob29zZXI+IHBycEZpbGVDCiAgICAgfQogfQogCi12b2lkIENocm9tZUNsaWVudFF0
OjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmls
ZUNob29zZXIqIGNob29zZXIpCit2b2lkIENocm9tZUNsaWVudFF0Ojpsb2FkSWNvbkZvckZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2Fk
ZXI+IGZpbGVJY29uTG9hZGVyKQogewotICAgIGNob29zZXItPmljb25Mb2FkZWQoSWNvbjo6Y3Jl
YXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGZpbGVJY29uTG9hZGVyLT5ub3RpZnlG
aW5pc2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CiB9CiAKIHZvaWQg
Q2hyb21lQ2xpZW50UXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCA4OGU2
NDJjODgwZTQ5NDM1YmZhOGMxMTYxOGNlNzM1ZmIwZjE5OTQ0Li5iYTA5MTk5YTkyNjBiYTU2NzZk
OWI1ZmYwMWQ0MThkY2Q3NDc0YTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC00Niw2ICs0Niw3IEBAIGNsYXNzIFFXZWJQYWdl
OwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGaWxlQ2hvb3NlcjsKK2NsYXNzIEZpbGVJ
Y29uTG9hZGVyOwogY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgUGFnZTsKIHN0cnVjdCBGcmFtZUxv
YWRSZXF1ZXN0OwpAQCAtMTc0LDcgKzE3NSw3IEBAIHB1YmxpYzoKICAgICBGdWxsU2NyZWVuVmlk
ZW9RdCogZnVsbFNjcmVlblZpZGVvKCk7CiAjZW5kaWYKICAgICAgdmlydHVhbCB2b2lkIHJ1bk9w
ZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKLSAgICAgdmlydHVhbCB2
b2lkIGNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVDaG9vc2Vy
Kik7CisgICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgUGFzc1JlZlB0cjxGaWxlSWNvbkxvYWRlcj4pOwogCiAgICAgdmlydHVhbCB2b2lkIGZv
cm1TdGF0ZURpZENoYW5nZShjb25zdCBOb2RlKikgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCA5
ZDhmNzllMGYxZTY5YmNiOTljOTM1NmY0M2I5NDhiMGMzNDk3MjM0Li5hNGM1MTRmZGUzNGY0NmIx
YjRlZGFjZmI4MzM3MzdiYTgyOWFhNzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTEtMDYtMTggIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZXBhcmF0
ZSBjb25jZXJucyBvZiBsb2FkaW5nIGZpbGUgaWNvbnMgZnJvbSBjaG9vc2luZyBmaWxlcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTMxCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
Q2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAxMS0wNi0xNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjg5MDI2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKaW5kZXggMmEyMzc0ODE3ODk4Yzk1OGJhNzUzZmVjZWI3MjE3OTljYzRl
NzNjZS4uMGJlMGZmOWYxMDZiZDU1YmQ1MWFjNjNmYTFkZDY1ZTQzMGJiMmUwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZXh0TWVudS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ3Vyc29yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlQ2hvb3Nlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZUljb25Mb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lTG9hZFJlcXVlc3QuaD4KQEAgLTc4OSw5ICs3OTAsOSBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJw
RmlsZUNob29zZQogICAgIC8vIEZJWE1FOiBTaG93IHNvbWUgc29ydCBvZiBlcnJvciBpZiB0b28g
bWFueSBmaWxlcyBhcmUgc2VsZWN0ZWQgYW5kIHRoZSBidWZmZXIgaXMgdG9vIHNtYWxsLiAgRm9y
IG5vdywgdGhpcyB3aWxsIGZhaWwgc2lsZW50bHkuCiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgZmlsZW5hbWVz
LCBXZWJDb3JlOjpGaWxlQ2hvb3NlciogY2hvb3NlcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojps
b2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIGZpbGVuYW1lcywgUGFz
c1JlZlB0cjxXZWJDb3JlOjpGaWxlSWNvbkxvYWRlcj4gZmlsZUljb25Mb2FkZXIpCiB7Ci0gICAg
Y2hvb3Nlci0+aWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7
CisgICAgZmlsZUljb25Mb2FkZXItPm5vdGlmeUZpbmlzaGVkKEljb246OmNyZWF0ZUljb25Gb3JG
aWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldEN1cnNvcihj
b25zdCBDdXJzb3ImIGN1cnNvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMTUyOWUxYzRjOWM5NThjNTJmODlkYWM0M2Nj
M2E5NTZhMTA5ZGVmOS4uNGNlNzA5OGM2ODAwNTgxZTI5NWQ2YzFlOGNiNGNjYmM2OWY0MzQ1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKQEAgLTEzNiw3ICsxMzYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHBhaW50
Q3VzdG9tU2Nyb2xsQ29ybmVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYpOwogCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3Jl
OjpGcmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KTsKLSAgICB2aXJ0dWFs
IHZvaWQgY2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJD
b3JlOjpGaWxlQ2hvb3NlciopOworICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNv
bnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVJY29uTG9h
ZGVyPik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNv
ciYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDE5Nzk5NmZhYjEyODg3NzZkMDBmNjYzYTgxYzAwZTg4
NTk5N2I0ZmQuLmZmZjIzM2NkYWQ5YzI3NjNmYzM5ZjE2ZDNiNDllYjcwM2NkNTdlYmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDYtMTggIERpbWl0cmkgR2xh
emtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTZXBhcmF0ZSBjb25jZXJucyBvZiBsb2FkaW5nIGZpbGUg
aWNvbnMgZnJvbSBjaG9vc2luZyBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYyOTMxCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjps
b2FkSWNvbkZvckZpbGVzKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRX
aW5DRS5oOgorCiAyMDExLTA2LTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwIGIv
U291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAK
aW5kZXggNDQyNGMwMTUxMmQzMDAxNjU4YjIzNWQ5NjU3MzIyMjdmYjQwODNhNi4uNjViNWU4Zjc2
OWUyMWFkY2QwYjVkMWJmN2M1NmM0N2I2YzFhMTNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnRXaW5DRS5oIgogCiAjaW5jbHVkZSAi
RmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJGaWxlSWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIklj
b24uaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25B
Y3Rpb24uaCIKQEAgLTM1MCw5ICszNTEsOSBAQCB2b2lkIENocm9tZUNsaWVudFdpbkNFOjpydW5P
cGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBwcnBGaWxlQ2hvbwogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OmNob29zZUlj
b25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlQ2hvb3Nlciog
Y2hvb3NlcikKK3ZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OmxvYWRJY29uRm9yRmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgUGFzc1JlZlB0cjxGaWxlSWNvbkxvYWRlcj4gZmls
ZUljb25Mb2FkZXIpCiB7Ci0gICAgY2hvb3Nlci0+aWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29u
Rm9yRmlsZXMoZmlsZW5hbWVzKSk7CisgICAgZmlsZUljb25Mb2FkZXItPm5vdGlmeUZpbmlzaGVk
KEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogdm9pZCBDaHJvbWVD
bGllbnRXaW5DRTo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmggYi9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKaW5kZXggMTNj
OWVjMGExMDM1Zjg5NjZmMmY2NDA1Yzk5OTU2YjFlZWJlOGU5My4uZDI0NWZhNzJmZjIwZTI5NTk0
ZjI0ODgwYzAyMmJhM2YyNjFiMmNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaApAQCAtMTQ5LDcgKzE0OSw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUq
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPik7CiAgICAgLy8gQXN5bmNocm9ub3Vz
IHJlcXVlc3QgdG8gbG9hZCBhbiBpY29uIGZvciBzcGVjaWZpZWQgZmlsZW5hbWVzLgotICAgIHZp
cnR1YWwgdm9pZCBjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYs
IFdlYkNvcmU6OkZpbGVDaG9vc2VyKik7CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmls
ZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUlj
b25Mb2FkZXI+KTsKIAogICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IHRoZSBnaXZlbiBmb3JtIGVs
ZW1lbnQgaGFzIGNoYW5nZWQuIFRoaXMgZnVuY3Rpb24KICAgICAvLyB3aWxsIGJlIGNhbGxlZCBm
cmVxdWVudGx5LCBzbyBoYW5kbGluZyBzaG91bGQgYmUgdmVyeSBmYXN0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwpp
bmRleCA0NWMxODQ2MWI4NGQ0NTY4MjRmNWVkMmU0ODEyNGEyZGM3ZWIzNzk2Li5hOGVhNDFhNDU1
ODUzNWE1MGZmNDEwYjYwMzcxNWE0MzhmNWNiMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3d4L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDExLTA2LTE4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2Vw
YXJhdGUgY29uY2VybnMgb2YgbG9hZGluZyBmaWxlIGljb25zIGZyb20gY2hvb3NpbmcgZmlsZXMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzMQor
CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6Y2hvb3NlSWNvbkZvckZpbGVzKToKKyAgICAgICAgKiBX
ZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4Lmg6CisKIDIwMTEtMDYtMTIgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1
cnlha292LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9t
ZUNsaWVudFd4LmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGll
bnRXeC5jcHAKaW5kZXggMTkwOTZkZTg3NWJjYTQzNmUxZGVmNTBkYTkyNjEzZmY1YmQzY2U2Yy4u
MWYyNGFhZTY0MTFmNjFiYzE4ZThlNDc0OWQ5OTc2YzI1YTYxZjdmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VUcmFja2VyLmgiCiAjZW5kaWYKICNpbmNsdWRlICJG
aWxlQ2hvb3Nlci5oIgorI2luY2x1ZGUgIkZpbGVJY29uTG9hZGVyLmgiCiAjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0
LmgiCkBAIC00NTUsOSArNDU2LDkgQEAgdm9pZCBDaHJvbWVDbGllbnRXeDo6cnVuT3BlblBhbmVs
KEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pCiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBDaHJvbWVDbGllbnRXeDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVDaG9vc2VyKiBjaG9vc2VyKQordm9pZCBDaHJvbWVD
bGllbnRXeDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFt
ZXMsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+IGZpbGVJY29uTG9hZGVyKQogewotICAgIGNo
b29zZXItPmljb25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOwor
ICAgIGZpbGVJY29uTG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmls
ZXMoZmlsZW5hbWVzKSk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50V3g6OnNldEN1cnNvcihjb25z
dCBDdXJzb3ImIGN1cnNvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9DaHJvbWVDbGllbnRXeC5oIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmgKaW5kZXggODIwYzhhYmU5Yjg5ODdlYzY4MWM0M2UzNjgyYjRmNzRlNmY0
ZjM0Zi4uM2VlNzgwNWQ2ZGMyOGM4NjlkYzlhZjI3YjdjNzNhYWJjN2VhYTY0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKKysrIGIv
U291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKQEAgLTEzNiw3
ICsxMzYsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFu
ZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPik7Ci0gICAgdmlydHVhbCB2b2lkIGNo
b29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVDaG9vc2VyKik7Cisg
ICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBQ
YXNzUmVmUHRyPEZpbGVJY29uTG9hZGVyPik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRl
RGlkQ2hhbmdlKGNvbnN0IE5vZGUqKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDg3YTVjMGViNTNjYzYy
ZGU1ZmIzMWU2YzY4OTIzNjIyMGY2MTc0NTAuLjMxYTE4YTJkYjI4YzIwMWNmOWE2ZDc3MGY3MjQy
NDgyZmZhZjM2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNi0xOCAgRGlt
aXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlcGFyYXRlIGNvbmNlcm5zIG9mIGxvYWRp
bmcgZmlsZSBpY29ucyBmcm9tIGNob29zaW5nIGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MzEKKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDExLTA2LTE3ICBCcmVudCBGdWxn
aGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbV2luQ2Fpcm9dIFVucmV2aWV3
ZWQgYnVpbGQgZml4IGFmdGVyIHI4OTA2MCBhbmQgcjg5MTYxLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCmluZGV4IGVhMDA0ZmMyOGU1Njg5MzBlYjQwNWE3ODc3ZTMwOTc5MjZkNjI2MDYuLmM3NmVm
ODI2MTVhMTc0Y2E1MjJhMGU0MzM0MDVlYzUzZTZlNzBmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJXZWJTZWFyY2hQb3B1cE1lbnUuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFiYXNlVHJhY2tlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RmlsZUNob29zZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVJY29uTG9hZGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgpAQCAtNjM2LDkgKzYzNyw5IEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZp
bGVDaG9vc2VyPiBwcnBGaWxlCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bk9wZW5QYW5lbChzdGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KGZyYW1l
LT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpLT5mcmFtZUlEKCksIHBhcmFtZXRlcnMp
KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNob29zZUljb25Gb3JGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlQ2hvb3NlciogY2hvb3NlcikKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxl
bmFtZXMsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+IGljb25Mb2FkZXIpCiB7Ci0gICAgY2hv
b3Nlci0+aWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7Cisg
ICAgaWNvbkxvYWRlci0+bm90aWZ5RmluaXNoZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZp
bGVuYW1lcykpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0Q3Vyc29yKGNvbnN0IFdl
YkNvcmU6OkN1cnNvciYgY3Vyc29yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNzNhMTIyZjA1
M2Q1ZGMxZmUzNWZmNDUyOWJjYTNlOTkxMmIwMDEzYi4uODQxOTliMDQ1ZjVhYjI4OTkwZTQzMGZh
MzQ1MmJiYTY5ODJmZWQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNjksNyArMTY5LDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsK
IAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVm
UHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPik7Ci0gICAgdmlydHVhbCB2b2lkIGNob29zZUljb25G
b3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyKik7Cisg
ICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyPik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97706</attachid>
            <date>2011-06-18 14:19:10 -0700</date>
            <delta_ts>2011-06-18 16:24:10 -0700</delta_ts>
            <desc>Fix Win build.</desc>
            <filename>bug-62931-20110618141909.patch</filename>
            <type>text/plain</type>
            <size>59687</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkxODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjFmYjM2
MmNiZWU1MjgzNGE3ZjJjYmEzYWVkYWVkMzQ5Y2ZmN2M5ZS4uYzRiZDI2OWZmMmRhMWQ0MzEyZDQ0
ZDg1YTc0Mjc0M2Y1MzdlMmVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwMjQsNiArMTAy
NCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5jcHAKICAg
ICBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCisg
ICAgcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3BwCiAgICAgcGxhdGZvcm0vRmlsZVN5c3RlbS5j
cHAKICAgICBwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwCiAgICAgcGxhdGZvcm0vS1VS
TC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA5NTc5YmViZDAyMmYzM2ExY2NlNmU2ZGY5ZmE3NjdiNmNhNzgx
MTgyLi41ZmJmY2QzMzcyMGI2YWZlMGEzOTg0MzFjZmM2NzExZTZkMzVmNmY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMDYtMTggIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTZXBhcmF0ZSBjb25jZXJucyBvZiBsb2FkaW5nIGZpbGUgaWNvbnMgZnJvbSBjaG9v
c2luZyBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYyOTMxCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6Omxv
YWRJY29uRm9yRmlsZXMpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZTo6bG9hZEljb25Gb3JGaWxlcyk6CisgICAgICAgICogcGFnZS9DaHJvbWUu
aDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL0Zp
bGVDaG9vc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVDaG9vc2VyOjpGaWxlQ2hvb3Nl
cik6CisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVDaG9vc2VyOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nl
cjo6Y2hvb3NlRmlsZXMpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSWNv
bkxvYWRlckNsaWVudDo6fkZpbGVJY29uTG9hZGVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVJY29uTG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUljb25Mb2Fk
ZXI6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUljb25Mb2FkZXI6
Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyOjpGaWxl
SWNvbkxvYWRlcik6CisgICAgICAgICogcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2wpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6On5SZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cmVx
dWVzdEljb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnZh
bHVlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6
dXBkYXRlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250
cm9sOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBs
b2FkQ29udHJvbDo6bWF4RmlsZW5hbWVXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
aWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RmlsZVVwbG9hZENvbnRyb2w6OmZpbGVUZXh0VmFsdWUpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oOgorCiAyMDExLTA2LTE3ICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwMTM2Yzg5NmJkMDI3N2VhNzNhNGRi
NmU0ZDIzYTU2NDUwOWVlM2ZjLi44ZWZhZGY2YzBkMGY4NmZkMDQxOTk1Mjg5ZWEyNjU4MDFhYjA2
NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTIzNjcsNiArMjM2Nyw4IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRMb29w
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZUljb25Mb2FkZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlSWNv
bkxvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlTWV0YWRhdGEuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN0cmVhbUNsaWVudC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDI5
OWQ3MTkxNjJmMGNmZmM4MTU5YWFlNDczN2NlZWJjMTIzYWU5YzEuLjk2MjY5M2M0MjBmOTc1M2Rm
YzQzZjY5ZjYyZmFlNGQ1NDEyYTM0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNTYsNyAr
MTU2LDYgQEAgX19aTjdXZWJDb3JlMTFDYWNoZWRGcmFtZTI2c2V0Q2FjaGVkRnJhbWVQbGF0Zm9y
bURhdGFFTjNXVEYxMFBhc3NPd25QdHJJTlNfMjNDYWMKIF9fWk43V2ViQ29yZTExRWRpdENvbW1h
bmQ3cmVhcHBseUV2CiBfX1pON1dlYkNvcmUxMUVkaXRDb21tYW5kN3VuYXBwbHlFdgogX19aTjdX
ZWJDb3JlMTFGaWxlQ2hvb3NlcjEwY2hvb3NlRmlsZUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2Vi
Q29yZTExRmlsZUNob29zZXIxMGljb25Mb2FkZWRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNEljb25F
RUUKIF9fWk43V2ViQ29yZTExRmlsZUNob29zZXIxMWNob29zZUZpbGVzRVJLTjNXVEY2VmVjdG9y
SU5TMV82U3RyaW5nRUxtMEVFRQogX19aTjdXZWJDb3JlMTFGaWxlQ2hvb3NlckQxRXYKIF9fWk43
V2ViQ29yZTExRnJhbWVMb2FkZXIxMWxvYWRBcmNoaXZlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzdB
cmNoaXZlRUVFCkBAIC0zNDYsNiArMzQ1LDcgQEAgX19aTjdXZWJDb3JlMTREb2N1bWVudExvYWRl
ckMxRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUktOU18xNFN1YnN0aXR1dGVEYXRhRQogX19aTjdX
ZWJDb3JlMTREb2N1bWVudExvYWRlckMyRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUktOU18xNFN1
YnN0aXR1dGVEYXRhRQogX19aTjdXZWJDb3JlMTREb2N1bWVudExvYWRlckQyRXYKIF9fWk43V2Vi
Q29yZTE0RG9jdW1lbnRXcml0ZXIxMXNldEVuY29kaW5nRVJLTjNXVEY2U3RyaW5nRWIKK19fWk43
V2ViQ29yZTE0RmlsZUljb25Mb2FkZXIxNG5vdGlmeUZpbmlzaGVkRU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzRJY29uRUVFCiBfX1pON1dlYkNvcmUxNEZyYW1lU2VsZWN0aW9uMTBzZXRGb2N1c2VkRWIK
IF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb24xMnNldFNlbGVjdGlvbkVSS05TXzE2VmlzaWJs
ZVNlbGVjdGlvbkVqTlMwXzE5Q3Vyc29yQWxpZ25PblNjcm9sbEVOU18xNVRleHRHcmFudWxhcml0
eUVOU18yMERpcmVjdGlvbmFsaXR5UG9saWN5RQogX19aTjdXZWJDb3JlMTRGcmFtZVNlbGVjdGlv
bjE1cmV2ZWFsU2VsZWN0aW9uRVJLTlNfMTVTY3JvbGxBbGlnbm1lbnRFYgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IGNjYmYyNzE1ODgwMDhmYWJkNGFiZmI4YjFhOTI3MGI0MjU1OTU1ZDMuLjgxMDNjZjA2
YjgzNzc2NDczMjM3YjQ5MDk3NjZmZDlkZGFjZmNiNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTM2
MDYsNiArMzYwNiw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vRXZlbnRMb29wLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L0ZpbGVDaG9vc2VyLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vRmlsZUljb25Mb2FkZXIu
Y3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlSWNvbkxvYWRlci5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9GaWxlTWV0YWRhdGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRmls
ZVN0cmVhbS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggZTA1Yjc1YzRjNDMyMGJlNGM0MGVjNzBjNTgzZDRhMDRmN2FiYzY5Ny4u
M2FiYzIxZTY3ZjFmMjM4YTU0MDdmZGE0YWU2OTJiYzhjMTQ0MDE3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTk3MCw2ICs5NzAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5j
cHAgXAogICAgIHBsYXRmb3JtL0RyYWdJbWFnZS5jcHAgXAogICAgIHBsYXRmb3JtL0ZpbGVDaG9v
c2VyLmNwcCBcCisgICAgcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3BwIFwKICAgICBwbGF0Zm9y
bS9GaWxlU3RyZWFtLmNwcCBcCiAgICAgcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAgXAogICAgIHBs
YXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxZGQ3YzNhNWIxMGEzMmE4NmJmMmNkZTc0YTUz
OTg3MzI2ODFkNTBhLi4wMzY5NDg3NjZiYTU1YjdlZDhlNWRiNDBmYjE0MjJhNWM1M2E3NTBjIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjYz
OTAsNiArMjYzOTAsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGxhdGZvcm1cRmlsZUljb25Mb2FkZXIuY3BwIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxGaWxlSWNvbkxvYWRl
ci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
bGF0Zm9ybVxGaWxlTWV0YWRhdGEuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzY4M2RmNjYz
NmNkZTE1YWNlMzVjMjZkYTNiYjg5N2I4OTFkYjcxOS4uNDg3NDJiNmQ3OTFkNGMwMGQ2Y2ZiYmY4
YmY0YjMyYjVmODE1NWE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODYwLDYgKzg2MCw4IEBACiAJCTQxMjdENTM3MEY4QUFC
MUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI3RDUzNjBGOEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3Rh
dGUuY3BwICovOyB9OwogCQk0MTM4RDMzNTEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250ZXh0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTM4RDMz
MzEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250ZXh0LmggKi87IH07CiAJCTQxMzhEMzM2MTI0
NDA1NDgwMDMyM0QzMyAvKiBFdmVudENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzOEQzMzQxMjQ0MDU0ODAwMzIzRDMzIC8qIEV2ZW50
Q29udGV4dC5jcHAgKi87IH07CisJCTQxNEI4NjczMTNBRDA3NEUwMEI0QjM3MyAvKiBGaWxlSWNv
bkxvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTRCODY3MTEzQUQwNzRFMDBCNEIzNzMgLyogRmlsZUljb25Mb2FkZXIuY3BwICovOyB9Owor
CQk0MTRCODY3NDEzQUQwNzRFMDBCNEIzNzMgLyogRmlsZUljb25Mb2FkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNEI4NjcyMTNBRDA3NEUwMEI0
QjM3MyAvKiBGaWxlSWNvbkxvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTQxNTBGOUYxMTJCNkUwRTcwMDA4Qzg2MCAvKiBTbGlkZXJUaHVt
YkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxNTBGOUVGMTJCNkUwRTcwMDA4Qzg2MCAvKiBTbGlkZXJUaHVtYkVsZW1lbnQuaCAqLzsgfTsK
IAkJNDE1MEY5RjIxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUwRjlGMDEyQjZF
MEU3MDAwOEM4NjAgLyogU2xpZGVyVGh1bWJFbGVtZW50LmNwcCAqLzsgfTsKIAkJNDE1N0FGODAx
MkYxRkIwNDAwQThDNkY1IC8qIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTU3QUY3RTEyRjFGQjA0MDBBOEM2
RjUgLyogTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaCAqLzsgfTsKQEAgLTcyNjQsNiArNzI2Niw4
IEBACiAJCTQxMjdENTM2MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRTdGF0ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzhEMzMzMTI0NDA1NDgwMDMyM0QzMyAvKiBFdmVudENv
bnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRDb250ZXh0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzhEMzM0MTI0NDA1NDgwMDMyM0QzMyAv
KiBFdmVudENvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RXZlbnRDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE0Qjg2NzEx
M0FEMDc0RTAwQjRCMzczIC8qIEZpbGVJY29uTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVJY29uTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDE0Qjg2NzIxM0FEMDc0RTAwQjRCMzczIC8qIEZpbGVJY29uTG9hZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVJY29uTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTBGOUVGMTJCNkUwRTcwMDA4Qzg2MCAvKiBTbGlk
ZXJUaHVtYkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2xpZGVy
VGh1bWJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTBGOUYwMTJC
NkUwRTcwMDA4Qzg2MCAvKiBTbGlkZXJUaHVtYkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2xpZGVyVGh1bWJFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE1N0FGN0UxMkYxRkIwNDAwQThDNkY1IC8qIE1lZGlhQ29udHJv
bFJvb3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODY4Myw2
ICsxODY4Nyw4IEBACiAJCQkJMUNBMTlFMTUwREMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50TG9vcC5o
ICovLAogCQkJCTkzNEZFOUU0MEI1Q0E1MzkwMDNFNEE3MyAvKiBGaWxlQ2hvb3Nlci5jcHAgKi8s
CiAJCQkJMDY2Qzc3MkEwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyLmggKi8sCisJCQkJ
NDE0Qjg2NzExM0FEMDc0RTAwQjRCMzczIC8qIEZpbGVJY29uTG9hZGVyLmNwcCAqLywKKwkJCQk0
MTRCODY3MjEzQUQwNzRFMDBCNEIzNzMgLyogRmlsZUljb25Mb2FkZXIuaCAqLywKIAkJCQkyRUYx
QkZFODEyMUM5RjQyMDBDMjc2MjcgLyogRmlsZVN0cmVhbS5jcHAgKi8sCiAJCQkJMkVGMUJGRTkx
MjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVTdHJlYW0uaCAqLywKIAkJCQkyRUYxQkZGODEyMUNCMENF
MDBDMjc2MjcgLyogRmlsZVN0cmVhbUNsaWVudC5oICovLApAQCAtMjA5ODEsNiArMjA5ODcsNyBA
QAogCQkJCTg5M0M0ODBGMTI0OEJEM0EwMDJCM0Q4NiAvKiBGaWxlRW50cnlTeW5jLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5NzZENkM4MzEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZUVycm9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRURGMzY5RjEyMkM5NEM4MDAyRjdENEUgLyogRmlsZUV4Y2VwdGlv
bi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE0Qjg2NzQxM0FEMDc0RTAwQjRCMzczIC8qIEZpbGVJ
Y29uTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RCRTEyNTFGMTJEMDAzRUYyNjkg
LyogRmlsZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc2RDZDODYxMjJCOEEzRDAw
MUZEMUY3IC8qIEZpbGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0Njg5RjFBRjEyNjdCQUUx
MDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTIzODgxLDYgKzIz
ODg4LDcgQEAKIAkJCQk5MzRGRTlFNTBCNUNBNTM5MDAzRTRBNzMgLyogRmlsZUNob29zZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJODk4Nzg1NjExMjJDQTA2NDAwM0FBQkRBIC8qIEZpbGVFbnRy
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTNDNDgwRTEyNDhCRDNBMDAyQjNEODYgLyogRmls
ZUVudHJ5U3luYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTRCODY3MzEzQUQwNzRFMDBCNEIz
NzMgLyogRmlsZUljb25Mb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQkQxMjUx
RjEyRDAwM0VGMjY5IC8qIEZpbGVJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc2
RDZDODUxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk3NkQ2Qzg4MTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlUmVhZGVyLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDMzYzI2YmNkN2Q3NTkzNzY0
ZGZiOWMzNTgxNjA5Y2Q0NGI3MjBlYzUuLmRlNmNiNTgzYWIyMGNlZTcxNjg5OTQ2N2I3N2Q3OGRk
MTk0N2M3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE5Nyw3ICsx
OTcsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwo
RnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNo
b29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVDaG9vc2VyKikgeyB9
CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBQYXNzUmVmUHRyPEZpbGVJY29uTG9hZGVyPikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9y
bVN0YXRlRGlkQ2hhbmdlKGNvbnN0IE5vZGUqKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmlu
ZGV4IDA0ZjllNGI5Y2MyODlkMDE4MDI1OWM0ODI0ZTY4ZWUwNTJjYmY5MzEuLmJlNDY3MmRiNTkx
YTlhZDc4MDlmOWE5Y2JiZWI4Yjc1NDQ2OTIyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAg
LTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJETlMu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZpbGVJY29uTG9hZGVyLmgiCiAj
aW5jbHVkZSAiRmlsZUNob29zZXIuaCIKICNpbmNsdWRlICJGaWxlTGlzdC5oIgogI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgpAQCAtMzQsNiArMzUsNyBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0Lmgi
CisjaW5jbHVkZSAiSWNvbi5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCIK
QEAgLTQ2Miw5ICs0NjQsOSBAQCB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFt
ZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiAgICAgbV9jbGllbnQtPnJ1
bk9wZW5QYW5lbChmcmFtZSwgZmlsZUNob29zZXIpOwogfQogCi12b2lkIENocm9tZTo6Y2hvb3Nl
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVDaG9vc2Vy
KiBmaWxlQ2hvb3NlcikKK3ZvaWQgQ2hyb21lOjpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBmaWxlbmFtZXMsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+IGljb25Mb2Fk
ZXIpCiB7Ci0gICAgbV9jbGllbnQtPmNob29zZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIGZpbGVD
aG9vc2VyKTsKKyAgICBtX2NsaWVudC0+bG9hZEljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIGljb25M
b2FkZXIpOwogfQogCiB2b2lkIENocm9tZTo6ZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2Uo
Y29uc3QgVmlld3BvcnRBcmd1bWVudHMmIGFyZ3VtZW50cykgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5o
CmluZGV4IGJhYjdlZTNmYmZmZjAyOTI2NzU0NDYxNjIyYTViMzk4YTNiMjdjZTAuLjAwMjZlMDI0
MGQyN2ExZWNlZGI1MWEwNmQ0NjA5ZTgwNmQwZjJlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAt
MzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBDaHJvbWVDbGll
bnQ7CiAgICAgY2xhc3MgRmlsZUNob29zZXI7CisgICAgY2xhc3MgRmlsZUljb25Mb2FkZXI7CiAg
ICAgY2xhc3MgRmxvYXRSZWN0OwogICAgIGNsYXNzIEZyYW1lOwogICAgIGNsYXNzIEdlb2xvY2F0
aW9uOwpAQCAtMTUyLDcgKzE1Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9s
b2NhdGlvbiopOwogCiAgICAgICAgIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0
cjxGaWxlQ2hvb3Nlcj4pOwotICAgICAgICB2b2lkIGNob29zZUljb25Gb3JGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYsIEZpbGVDaG9vc2VyKik7CisgICAgICAgIHZvaWQgbG9hZEljb25Gb3JG
aWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+KTsK
ICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9BRCkKICAgICAgICAgdm9pZCBlbnVtZXJhdGVDaG9z
ZW5EaXJlY3RvcnkoY29uc3QgU3RyaW5nJiwgRmlsZUNob29zZXIqKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZjZjYTJmNTJhZGM1YWE2ODBmMzkwNjcyYWJhYjE5
MDM3MmIxMDJiZi4uZDBjZDFhYTFlNDA1ZGZjNzk2ZWI2Y2U0NGNjZDIyNzE3MGRiMTJhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0OwogICAgIGNsYXNzIEVsZW1l
bnQ7CiAgICAgY2xhc3MgRmlsZUNob29zZXI7CisgICAgY2xhc3MgRmlsZUljb25Mb2FkZXI7CiAg
ICAgY2xhc3MgRmxvYXRSZWN0OwogICAgIGNsYXNzIEZyYW1lOwogICAgIGNsYXNzIEdlb2xvY2F0
aW9uOwpAQCAtMjI2LDcgKzIyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2
aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4p
ID0gMDsKICAgICAgICAgLy8gQXN5bmNocm9ub3VzIHJlcXVlc3QgdG8gbG9hZCBhbiBpY29uIGZv
ciBzcGVjaWZpZWQgZmlsZW5hbWVzLgotICAgICAgICB2aXJ0dWFsIHZvaWQgY2hvb3NlSWNvbkZv
ckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUNob29zZXIqKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgUGFz
c1JlZlB0cjxGaWxlSWNvbkxvYWRlcj4pID0gMDsKIAogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBM
T0FEKQogICAgICAgICAvLyBBc3ljaHJvbm91cyByZXF1ZXN0IHRvIGVudW1lcmF0ZSBhbGwgZmls
ZXMgaW4gYSBkaXJlY3RvcnkgY2hvc2VuIGJ5IHRoZSB1c2VyLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZUNob29zZXIuY3BwCmluZGV4IDg4MTM5NWRjODQwNTAwNTBmZmVlYjg1NjM4MTlmM2Iz
ODMxNTc2YjYuLjBmNDUyYmI4NjcwMWFkZmIzMjBlMmJjNjIzNDVlZWU3NzViNzdiMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKQEAgLTI5LDI3ICsyOSwyMSBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCiAKLSNpbmNsdWRl
ICJJY29uLmgiCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICAKKwogRmlsZUNob29zZXJDbGll
bnQ6On5GaWxlQ2hvb3NlckNsaWVudCgpCiB7CiB9CiAKIGlubGluZSBGaWxlQ2hvb3Nlcjo6Rmls
ZUNob29zZXIoRmlsZUNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IGluaXRpYWxGaWxlbmFtZXMpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCi0gICAgLCBtX2lzSW5p
dGlhbGl6aW5nKHRydWUpCiB7CiAgICAgbV9maWxlbmFtZXMgPSBpbml0aWFsRmlsZW5hbWVzOwog
fQogCiBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBGaWxlQ2hvb3Nlcjo6Y3JlYXRlKEZpbGVDaG9v
c2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBpbml0aWFsRmlsZW5hbWVz
KQogewotICAgIFJlZlB0cjxGaWxlQ2hvb3Nlcj4gY2hvb3NlcihhZG9wdFJlZihuZXcgRmlsZUNo
b29zZXIoY2xpZW50LCBpbml0aWFsRmlsZW5hbWVzKSkpOwotICAgIGNob29zZXItPmxvYWRJY29u
KCk7Ci0gICAgY2hvb3Nlci0+bV9pc0luaXRpYWxpemluZyA9IGZhbHNlOwotICAgIHJldHVybiBj
aG9vc2VyOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgRmlsZUNob29zZXIoY2xpZW50LCBpbml0
aWFsRmlsZW5hbWVzKSk7CiB9CiAKIEZpbGVDaG9vc2VyOjp+RmlsZUNob29zZXIoKQpAQCAtNTks
NyArNTMsNiBAQCBGaWxlQ2hvb3Nlcjo6fkZpbGVDaG9vc2VyKCkKIHZvaWQgRmlsZUNob29zZXI6
OmNsZWFyKCkKIHsKICAgICBtX2ZpbGVuYW1lcy5jbGVhcigpOwotICAgIG1faWNvbiA9IDA7CiB9
CiAKIHZvaWQgRmlsZUNob29zZXI6OmNob29zZUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSkK
QEAgLTc0LDIyICs2Nyw4IEBAIHZvaWQgRmlsZUNob29zZXI6OmNob29zZUZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCiAgICAgaWYgKG1fZmlsZW5hbWVzID09IGZpbGVuYW1l
cykKICAgICAgICAgcmV0dXJuOwogICAgIG1fZmlsZW5hbWVzID0gZmlsZW5hbWVzOwotICAgIGxv
YWRJY29uKCk7CiAgICAgaWYgKG1fY2xpZW50KQogICAgICAgICBtX2NsaWVudC0+dmFsdWVDaGFu
Z2VkKCk7CiB9CiAKLXZvaWQgRmlsZUNob29zZXI6OmxvYWRJY29uKCkKLXsKLSAgICBpZiAobV9m
aWxlbmFtZXMuc2l6ZSgpICYmIG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+Y2hvb3NlSWNv
bkZvckZpbGVzKHRoaXMsIG1fZmlsZW5hbWVzKTsKLX0KLQotdm9pZCBGaWxlQ2hvb3Nlcjo6aWNv
bkxvYWRlZChQYXNzUmVmUHRyPEljb24+IGljb24pCi17Ci0gICAgbV9pY29uID0gaWNvbjsKLSAg
ICBpZiAoIW1faXNJbml0aWFsaXppbmcgJiYgbV9pY29uICYmIG1fY2xpZW50KQotICAgICAgICBt
X2NsaWVudC0+cmVwYWludCgpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9GaWxlQ2hvb3Nlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29z
ZXIuaAppbmRleCBlZDNiNDMwMGEzZWQzMGJmZGJmZmFkMDEzYjM0MTkxZDlkMjc4MjE5Li5iY2My
OWEyYzk0OTJhMzZlNDYyNGVhYWRiNTkzMjdlZDNiZmZiNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZpbGVDaG9vc2VyLmgKQEAgLTM2LDE5ICszNiwxNSBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBGaWxlQ2hvb3NlcjsKLWNsYXNzIEZvbnQ7Ci1jbGFzcyBJY29uOwogCiBjbGFz
cyBGaWxlQ2hvb3NlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHZhbHVlQ2hh
bmdlZCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVwYWludCgpID0gMDsKICAgICB2aXJ0dWFs
IGJvb2wgYWxsb3dzTXVsdGlwbGVGaWxlcygpID0gMDsKICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQ
TE9BRCkKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dzRGlyZWN0b3J5VXBsb2FkKCkgPSAwOwogI2Vu
ZGlmCiAgICAgdmlydHVhbCBTdHJpbmcgYWNjZXB0VHlwZXMoKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGNob29zZUljb25Gb3JGaWxlcyhGaWxlQ2hvb3NlciosIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JikgPSAwOwogICAgIHZpcnR1YWwgfkZpbGVDaG9vc2VyQ2xpZW50KCk7CiB9OwogCkBAIC02Miwx
NCArNTgsMTAgQEAgcHVibGljOgogCiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1l
cygpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZW5hbWVzOyB9CiAKLSAgICBJY29uKiBpY29uKCkgY29u
c3QgeyByZXR1cm4gbV9pY29uLmdldCgpOyB9Ci0KICAgICB2b2lkIGNsZWFyKCk7IC8vIGZvciB1
c2UgYnkgY2xpZW50OyBkb2VzIG5vdCBjYWxsIHZhbHVlQ2hhbmdlZAogCiAgICAgdm9pZCBjaG9v
c2VGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCk7CiAgICAgdm9pZCBjaG9vc2VGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgcGF0aHMpOwotICAgIC8vIENhbGxlZCB3aGVuIEZpbGVDaG9vc2VyQ2xp
ZW50IGZpbmlzaGVzIHRvIGxvYWQgYW4gaWNvbiByZXF1ZXN0ZWQgYnkgaWNvbkZvckZpbGVzKCku
Ci0gICAgdm9pZCBpY29uTG9hZGVkKFBhc3NSZWZQdHI8SWNvbj4pOwogCiAgICAgYm9vbCBhbGxv
d3NNdWx0aXBsZUZpbGVzKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+YWxs
b3dzTXVsdGlwbGVGaWxlcygpIDogZmFsc2U7IH0KICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9B
RCkKQEAgLTgwLDEyICs3Miw5IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBGaWxlQ2hvb3Nl
cihGaWxlQ2hvb3NlckNsaWVudCosIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBpbml0aWFsRmlsZW5h
bWVzKTsKLSAgICB2b2lkIGxvYWRJY29uKCk7CiAKICAgICBGaWxlQ2hvb3NlckNsaWVudCogbV9j
bGllbnQ7CiAgICAgVmVjdG9yPFN0cmluZz4gbV9maWxlbmFtZXM7Ci0gICAgUmVmUHRyPEljb24+
IG1faWNvbjsKLSAgICBib29sIG1faXNJbml0aWFsaXppbmc7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlSWNvbkxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlSWNvbkxvYWRlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzRkZThhNWYzOWFiMGQ3NDM3MGJiMTBhY2FkZjlmNmNjZDdlM2Y1ZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVJY29uTG9hZGVyLmNwcApA
QCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhl
ciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1l
cyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJG
aWxlSWNvbkxvYWRlci5oIgorCisjaW5jbHVkZSAiSWNvbi5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0ZpbGVJY29uTG9hZGVyQ2xpZW50Ojp+RmlsZUljb25Mb2FkZXJDbGllbnQoKQorewor
fQorCitQYXNzUmVmUHRyPEZpbGVJY29uTG9hZGVyPiBGaWxlSWNvbkxvYWRlcjo6Y3JlYXRlKEZp
bGVJY29uTG9hZGVyQ2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBG
aWxlSWNvbkxvYWRlcihjbGllbnQpKTsKK30KKwordm9pZCBGaWxlSWNvbkxvYWRlcjo6ZGlzY29u
bmVjdENsaWVudCgpCit7CisgICAgbV9jbGllbnQgPSAwOworfQorCit2b2lkIEZpbGVJY29uTG9h
ZGVyOjpub3RpZnlGaW5pc2hlZChQYXNzUmVmUHRyPEljb24+IGljb24pCit7CisgICAgaWYgKG1f
Y2xpZW50KQorICAgICAgICBtX2NsaWVudC0+dXBkYXRlUmVuZGVyaW5nKGljb24pOworfQorCitG
aWxlSWNvbkxvYWRlcjo6RmlsZUljb25Mb2FkZXIoRmlsZUljb25Mb2FkZXJDbGllbnQqIGNsaWVu
dCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZpbGVJY29uTG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMzOTRkMWRlYTQ3NGMxNWQ0MjYyMGQw
ZDNiMmNjMTA0ZTI1N2I2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZpbGVJY29uTG9hZGVyLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKwor
I2lmbmRlZiBGaWxlSWNvbkxvYWRlcl9oCisjZGVmaW5lIEZpbGVJY29uTG9hZGVyX2gKKworI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJY29uOworCitjbGFzcyBGaWxlSWNvbkxvYWRl
ckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlbmRlcmluZyhQYXNz
UmVmUHRyPEljb24+KSA9IDA7CisgICAgdmlydHVhbCB+RmlsZUljb25Mb2FkZXJDbGllbnQoKTsK
K307CisKK2NsYXNzIEZpbGVJY29uTG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZUljb25M
b2FkZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGaWxlSWNvbkxvYWRlcj4g
Y3JlYXRlKEZpbGVJY29uTG9hZGVyQ2xpZW50Kik7CisKKyAgICB2b2lkIGRpc2Nvbm5lY3RDbGll
bnQoKTsKKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKFBhc3NSZWZQdHI8SWNvbj4pOworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IEZpbGVJY29uTG9hZGVyKEZpbGVJY29uTG9hZGVyQ2xpZW50Kik7
CisKKyAgICBGaWxlSWNvbkxvYWRlckNsaWVudCogbV9jbGllbnQ7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKaW5kZXggZGQ3MzA2ZTU4NmZkMmU3MDUzZjQ1
NTQxNmJiNDFkMDFjYjI5MjFkNy4uNThlM2E2NThhMmJiYTI4M2NiYjQ2NWI3OThjNzhmZDgxYjZl
MjRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxv
YWRDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wuY3BwCkBAIC01Niw2ICs1Niw3IEBAIGNvbnN0IGludCBidXR0b25TaGFkb3dI
ZWlnaHQgPSAyOwogCiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6UmVuZGVyRmlsZVVwbG9hZENv
bnRyb2woSFRNTElucHV0RWxlbWVudCogaW5wdXQpCiAgICAgOiBSZW5kZXJCbG9jayhpbnB1dCkK
KyAgICAsIG1faWNvbkxvYWRlcihGaWxlSWNvbkxvYWRlcjo6Y3JlYXRlKHRoaXMpKQogewogICAg
IEZpbGVMaXN0KiBsaXN0ID0gaW5wdXQtPmZpbGVzKCk7CiAgICAgVmVjdG9yPFN0cmluZz4gZmls
ZW5hbWVzOwpAQCAtNjMsMTMgKzY0LDI0IEBAIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpSZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCkKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCiAgICAgICAgIGZpbGVuYW1lcy5hcHBlbmQo
bGlzdC0+aXRlbShpKS0+cGF0aCgpKTsKICAgICBtX2ZpbGVDaG9vc2VyID0gRmlsZUNob29zZXI6
OmNyZWF0ZSh0aGlzLCBmaWxlbmFtZXMpOworICAgIHJlcXVlc3RJY29uKGZpbGVuYW1lcyk7CiB9
CiAKIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp+UmVuZGVyRmlsZVVwbG9hZENvbnRyb2woKQog
eworICAgIG1faWNvbkxvYWRlci0+ZGlzY29ubmVjdENsaWVudCgpOwogICAgIG1fZmlsZUNob29z
ZXItPmRpc2Nvbm5lY3RDbGllbnQoKTsKIH0KIAordm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bDo6cmVxdWVzdEljb24oY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcykgY29uc3QKK3sK
KyAgICBpZiAoIWZpbGVuYW1lcy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChD
aHJvbWUqIGNocm9tZVBvaW50ZXIgPSBjaHJvbWUoKSkKKyAgICAgICAgY2hyb21lUG9pbnRlci0+
bG9hZEljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIG1faWNvbkxvYWRlcik7Cit9CisKIHZvaWQgUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2w6OnZhbHVlQ2hhbmdlZCgpCiB7CiAgICAgLy8gZGlzcGF0Y2hG
b3JtQ29udHJvbENoYW5nZUV2ZW50IG1heSBkZXN0cm95IHRoaXMgcmVuZGVyZXIKQEAgLTc4LDEw
ICs5MCwxMSBAQCB2b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp2YWx1ZUNoYW5nZWQoKQog
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1
dEVsZW1lbnQqPihub2RlKCkpOwogICAgIGlucHV0RWxlbWVudC0+c2V0RmlsZUxpc3RGcm9tUmVu
ZGVyZXIoZmlsZUNob29zZXItPmZpbGVuYW1lcygpKTsKICAgICBpbnB1dEVsZW1lbnQtPmRpc3Bh
dGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwotIAotICAgIC8vIG9ubHkgcmVwYWludCBpZiBp
dCBkb2Vzbid0IHNlZW0gd2UgaGF2ZSBiZWVuIGRlc3Ryb3llZAotICAgIGlmICghZmlsZUNob29z
ZXItPmRpc2Nvbm5lY3RlZCgpKQotICAgICAgICByZXBhaW50KCk7CisgICAgaWYgKGZpbGVDaG9v
c2VyLT5kaXNjb25uZWN0ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVxdWVzdEljb24o
ZmlsZUNob29zZXItPmZpbGVuYW1lcygpKTsKKyAgICByZXBhaW50KCk7CiB9CiAKIGJvb2wgUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2w6OmFsbG93c011bHRpcGxlRmlsZXMoKQpAQCAtMTE0LDEwICsx
MjcsMTMgQEAgU3RyaW5nIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjphY2NlcHRUeXBlcygpCiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpLT5hY2NlcHQo
KTsKIH0KIAotdm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6Y2hvb3NlSWNvbkZvckZpbGVz
KEZpbGVDaG9vc2VyKiBjaG9vc2VyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzKQor
dm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQdHI8
SWNvbj4gaWNvbikKIHsKLSAgICBpZiAoQ2hyb21lKiBjaHJvbWVQb2ludGVyID0gY2hyb21lKCkp
Ci0gICAgICAgIGNocm9tZVBvaW50ZXItPmNob29zZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIGNo
b29zZXIpOworICAgIGlmIChtX2ljb24gPT0gaWNvbikKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9pY29uID0gaWNvbjsKKyAgICByZXBhaW50KCk7CiB9CiAKIHZvaWQgUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2w6OmNsaWNrKCkKQEAgLTE1NCw2ICsxNzAsNyBAQCB2b2lkIFJlbmRlckZpbGVVcGxv
YWRDb250cm9sOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgQVNTRVJUKGZpbGVzKTsKICAgICBp
ZiAoZmlsZXMgJiYgZmlsZXMtPmlzRW1wdHkoKSAmJiAhbV9maWxlQ2hvb3Nlci0+ZmlsZW5hbWVz
KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fZmlsZUNob29zZXItPmNsZWFyKCk7CisgICAgICAg
IG1faWNvbiA9IDA7CiAgICAgICAgIHJlcGFpbnQoKTsKICAgICB9CiB9CkBAIC0xNjYsMTQgKzE4
MywxMyBAQCBzdGF0aWMgaW50IG5vZGVXaWR0aChOb2RlKiBub2RlKQogaW50IFJlbmRlckZpbGVV
cGxvYWRDb250cm9sOjptYXhGaWxlbmFtZVdpZHRoKCkgY29uc3QKIHsKICAgICByZXR1cm4gbWF4
KDAsIGNvbnRlbnRXaWR0aCgpIC0gbm9kZVdpZHRoKHVwbG9hZEJ1dHRvbigpKSAtIGFmdGVyQnV0
dG9uU3BhY2luZwotICAgICAgICAtIChtX2ZpbGVDaG9vc2VyLT5pY29uKCkgPyBpY29uV2lkdGgg
KyBpY29uRmlsZW5hbWVTcGFjaW5nIDogMCkpOworICAgICAgICAtIChtX2ljb24gPyBpY29uV2lk
dGggKyBpY29uRmlsZW5hbWVTcGFjaW5nIDogMCkpOwogfQogCiB2b2lkIFJlbmRlckZpbGVVcGxv
YWRDb250cm9sOjpwYWludE9iamVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UG9p
bnQmIHBhaW50T2Zmc2V0KQogewogICAgIGlmIChzdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklT
SUJMRSkKICAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChtX2ZpbGVDaG9vc2VyKTsKICAgICAK
ICAgICAvLyBQdXNoIGEgY2xpcC4KICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRl
U2F2ZXIoKnBhaW50SW5mby5jb250ZXh0LCBmYWxzZSk7CkBAIC0xOTksNyArMjE1LDcgQEAgdm9p
ZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IEludFBvaW50JgogCiAgICAgICAgIGludCBidXR0b25XaWR0aCA9IG5vZGVXaWR0
aChidXR0b24pOwogICAgICAgICBpbnQgYnV0dG9uQW5kSWNvbldpZHRoID0gYnV0dG9uV2lkdGgg
KyBhZnRlckJ1dHRvblNwYWNpbmcKLSAgICAgICAgICAgICsgKG1fZmlsZUNob29zZXItPmljb24o
KSA/IGljb25XaWR0aCArIGljb25GaWxlbmFtZVNwYWNpbmcgOiAwKTsKKyAgICAgICAgICAgICsg
KG1faWNvbiA/IGljb25XaWR0aCArIGljb25GaWxlbmFtZVNwYWNpbmcgOiAwKTsKICAgICAgICAg
aW50IHRleHRYOwogICAgICAgICBpZiAoc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigp
KQogICAgICAgICAgICAgdGV4dFggPSBjb250ZW50TGVmdCArIGJ1dHRvbkFuZEljb25XaWR0aDsK
QEAgLTIxNiw3ICsyMzIsNyBAQCB2b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpwYWludE9i
amVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UG9pbnQmCiAgICAgICAgIC8vIERy
YXcgdGhlIGZpbGVuYW1lCiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5kcmF3QmlkaVRleHQo
Zm9udCwgdGV4dFJ1biwgSW50UG9pbnQodGV4dFgsIHRleHRZKSk7CiAgICAgICAgIAotICAgICAg
ICBpZiAobV9maWxlQ2hvb3Nlci0+aWNvbigpKSB7CisgICAgICAgIGlmIChtX2ljb24pIHsKICAg
ICAgICAgICAgIC8vIERldGVybWluZSB3aGVyZSB0aGUgaWNvbiBzaG91bGQgYmUgcGxhY2VkCiAg
ICAgICAgICAgICBpbnQgaWNvblkgPSBwYWludE9mZnNldC55KCkgKyBib3JkZXJUb3AoKSArIHBh
ZGRpbmdUb3AoKSArIChjb250ZW50SGVpZ2h0KCkgLSBpY29uSGVpZ2h0KSAvIDI7CiAgICAgICAg
ICAgICBpbnQgaWNvblg7CkBAIC0yMjYsNyArMjQyLDcgQEAgdm9pZCBSZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbDo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFBvaW50
JgogICAgICAgICAgICAgICAgIGljb25YID0gY29udGVudExlZnQgKyBjb250ZW50V2lkdGgoKSAt
IGJ1dHRvbldpZHRoIC0gYWZ0ZXJCdXR0b25TcGFjaW5nIC0gaWNvbldpZHRoOwogCiAgICAgICAg
ICAgICAvLyBEcmF3IHRoZSBmaWxlIGljb24KLSAgICAgICAgICAgIG1fZmlsZUNob29zZXItPmlj
b24oKS0+cGFpbnQocGFpbnRJbmZvLmNvbnRleHQsIEludFJlY3QoaWNvblgsIGljb25ZLCBpY29u
V2lkdGgsIGljb25IZWlnaHQpKTsKKyAgICAgICAgICAgIG1faWNvbi0+cGFpbnQocGFpbnRJbmZv
LmNvbnRleHQsIEludFJlY3QoaWNvblgsIGljb25ZLCBpY29uV2lkdGgsIGljb25IZWlnaHQpKTsK
ICAgICAgICAgfQogICAgIH0KIApAQCAtMzE1LDYgKzMzMSw3IEBAIFN0cmluZyBSZW5kZXJGaWxl
VXBsb2FkQ29udHJvbDo6YnV0dG9uVmFsdWUoKQogCiBTdHJpbmcgUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2w6OmZpbGVUZXh0VmFsdWUoKSBjb25zdAogeworICAgIEFTU0VSVChtX2ZpbGVDaG9vc2Vy
KTsKICAgICByZXR1cm4gdGhlbWUoKS0+ZmlsZUxpc3ROYW1lRm9yV2lkdGgobV9maWxlQ2hvb3Nl
ci0+ZmlsZW5hbWVzKCksIHN0eWxlKCktPmZvbnQoKSwgbWF4RmlsZW5hbWVXaWR0aCgpKTsKIH0K
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBs
b2FkQ29udHJvbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRD
b250cm9sLmgKaW5kZXggYmM1YWE1YmI4NzU4YTZkOTA0MmVjMDQ4Y2YxNjgyZWNmNjFmNzlhZi4u
YjZkNGMwZDNkNzM0NzhiOWZhYmY5NTYyMWY0ZTRmYTE0ZWJjNjdkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmgKQEAgLTIyLDYg
KzIyLDcgQEAKICNkZWZpbmUgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2xfaAogCiAjaW5jbHVkZSAi
RmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJGaWxlSWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIlJl
bmRlckJsb2NrLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMzLDcgKzM0LDcgQEAgY2xh
c3MgSFRNTElucHV0RWxlbWVudDsKIC8vIHN1ZmZpY2llbnQgc3BhY2UgdG8gZHJhdyBhIGZpbGUg
aWNvbiBhbmQgZmlsZW5hbWUuIFRoZSBSZW5kZXJCdXR0b24gaGFzIGEgc2hhZG93IG5vZGUKIC8v
IGFzc29jaWF0ZWQgd2l0aCBpdCB0byByZWNlaXZlIGNsaWNrL2hvdmVyIGV2ZW50cy4KIAotY2xh
c3MgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wgOiBwdWJsaWMgUmVuZGVyQmxvY2ssIHByaXZhdGUg
RmlsZUNob29zZXJDbGllbnQgeworY2xhc3MgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wgOiBwdWJs
aWMgUmVuZGVyQmxvY2ssIHByaXZhdGUgRmlsZUNob29zZXJDbGllbnQsIHByaXZhdGUgRmlsZUlj
b25Mb2FkZXJDbGllbnQgewogcHVibGljOgogICAgIFJlbmRlckZpbGVVcGxvYWRDb250cm9sKEhU
TUxJbnB1dEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJGaWxlVXBsb2FkQ29udHJvbCgp
OwpAQCAtNTgsMjQgKzU5LDI3IEBAIHByaXZhdGU6CiAKICAgICAvLyBGaWxlQ2hvb3NlckNsaWVu
dCBtZXRob2RzLgogICAgIHZvaWQgdmFsdWVDaGFuZ2VkKCk7Ci0gICAgdm9pZCByZXBhaW50KCkg
eyBSZW5kZXJCbG9jazo6cmVwYWludCgpOyB9CiAgICAgYm9vbCBhbGxvd3NNdWx0aXBsZUZpbGVz
KCk7CiAjaWYgRU5BQkxFKERJUkVDVE9SWV9VUExPQUQpCiAgICAgYm9vbCBhbGxvd3NEaXJlY3Rv
cnlVcGxvYWQoKTsKICAgICB2b2lkIHJlY2VpdmVEcm9wRm9yRGlyZWN0b3J5VXBsb2FkKGNvbnN0
IFZlY3RvcjxTdHJpbmc+Jik7CiAjZW5kaWYKICAgICBTdHJpbmcgYWNjZXB0VHlwZXMoKTsKLSAg
ICB2b2lkIGNob29zZUljb25Gb3JGaWxlcyhGaWxlQ2hvb3NlciosIGNvbnN0IFZlY3RvcjxTdHJp
bmc+Jik7CisKKyAgICAvLyBGaWxlSWNvbkxvYWRlckNsaWVudCBtZXRob2RzLgorICAgIHZvaWQg
dXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQdHI8SWNvbj4pOwogCiAgICAgQ2hyb21lKiBjaHJvbWUo
KSBjb25zdDsKICAgICBpbnQgbWF4RmlsZW5hbWVXaWR0aCgpIGNvbnN0OwotICAgIFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IGNyZWF0ZUJ1dHRvblN0eWxlKGNvbnN0IFJlbmRlclN0eWxlKiBwYXJl
bnRTdHlsZSkgY29uc3Q7CiAgICAgCiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRp
b25Gb3JQb2ludChjb25zdCBJbnRQb2ludCYpOwogCiAgICAgSFRNTElucHV0RWxlbWVudCogdXBs
b2FkQnV0dG9uKCkgY29uc3Q7CisgICAgdm9pZCByZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpIGNvbnN0OwogCiAgICAgUmVmUHRyPEZpbGVDaG9vc2VyPiBtX2ZpbGVDaG9vc2VyOwor
ICAgIFJlZlB0cjxGaWxlSWNvbkxvYWRlcj4gbV9pY29uTG9hZGVyOworICAgIFJlZlB0cjxJY29u
PiBtX2ljb247CiB9OwogCiBpbmxpbmUgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wqIHRvUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2woUmVuZGVyT2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL1NWR0ltYWdlLmNwcAppbmRleCBlN2ZhZjI1YmEwNzQyNmY4NmQ2YzYzMzMzMmUx
OTBkMDNmNzc0YjJmLi4yOTFhMWM3MmE4MzJmNDIwZTI0NjdmYTFlOGNlMTc3MmI3ODJhZmM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
ICNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgorI2luY2x1ZGUgIkZpbGVJY29uTG9hZGVyLmgiCiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAyYjlmMDRjMWIwMTJiMzUw
YzIwMjNkOGQ2ZmMzMmViMjBiM2ExYTBiLi5mMmJjZWQ2MDU2YjZjY2I2OWVhNTk5M2ZiZTQ3MzI2
NGI5NDIyMzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDExLTA2LTE4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VwYXJhdGUgY29u
Y2VybnMgb2YgbG9hZGluZyBmaWxlIGljb25zIGZyb20gY2hvb3NpbmcgZmlsZXMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzMQorCisgICAgICAg
ICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGll
bnRJbXBsOjpsb2FkSWNvbkZvckZpbGVzKToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1w
bC5oOgorICAgICAgICAqIHNyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6V2ViSWNvbkxvYWRp
bmdDb21wbGV0aW9uSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkljb25Mb2FkaW5nQ29tcGxl
dGlvbkltcGw6OmRpZExvYWRJY29uKToKKyAgICAgICAgKiBzcmMvV2ViSWNvbkxvYWRpbmdDb21w
bGV0aW9uSW1wbC5oOgorCiAyMDExLTA2LTE3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJvbGwgQ2hyb21pdW0gREVQUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggZjcxNWNjYzAwNTRjYmM2YzZm
ODg3ZTBjNzJhNDc3MTA4ZjJkYmFlMi4uYTMxOWRkMjIyOTZmYTc1M2M0ODJmM2E2OTEyOTg5Njlm
ZDc0M2JmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgog
I2luY2x1ZGUgIkV4dGVybmFsUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIK
KyNpbmNsdWRlICJGaWxlSWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2lu
Y2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTQ5
LDYgKzUwLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUgIkljb24uaCIKICNp
bmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTmF2aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1
ZGUgIk5vZGUuaCIKQEAgLTY4NiwxMSArNjg4LDExIEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6
cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNo
CiAgICAgY2hvb3NlckNvbXBsZXRpb24tPmRpZENob29zZUZpbGUoV2ViVmVjdG9yPFdlYlN0cmlu
Zz4oKSk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVDaG9vc2VyKiBmaWxlQ2hvb3NlcikK
K3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZmlsZW5hbWVzLCBQYXNzUmVmUHRyPEZpbGVJY29uTG9hZGVyPiBmaWxlSWNvbkxvYWRl
cikKIHsKICAgICBpZiAoIW1fd2ViVmlldy0+Y2xpZW50KCkpCiAgICAgICAgIHJldHVybjsKLSAg
ICBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKiBpY29uQ29tcGxldGlvbiA9IG5ldyBXZWJJ
Y29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKGZpbGVDaG9vc2VyKTsKKyAgICBXZWJJY29uTG9hZGlu
Z0NvbXBsZXRpb25JbXBsKiBpY29uQ29tcGxldGlvbiA9IG5ldyBXZWJJY29uTG9hZGluZ0NvbXBs
ZXRpb25JbXBsKGZpbGVJY29uTG9hZGVyKTsKICAgICBpZiAoIW1fd2ViVmlldy0+Y2xpZW50KCkt
PnF1ZXJ5SWNvbkZvckZpbGVzKGZpbGVuYW1lcywgaWNvbkNvbXBsZXRpb24pKQogICAgICAgICBp
Y29uQ29tcGxldGlvbi0+ZGlkTG9hZEljb24oV2ViRGF0YSgpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCA4ZDcyNTJjNTc5NmMyOWU3
MDIzODI4ZTMxZDdjYWIzZmM0ZTkzNzVlLi4wYzRmMGM3MjU3MWNhNGE1ZjU1MmU3ZDYzNzc5ZTk4
M2MwMzlkMTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5oCkBAIC0xMzksNyArMTM5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3Jl
OjpHZW9sb2NhdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlv
biopOwogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNz
UmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPik7Ci0gICAgdmlydHVhbCB2b2lkIGNob29zZUlj
b25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUNob29z
ZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RG
OjpTdHJpbmc+JiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlSWNvbkxvYWRlcj4pOwogI2lmIEVO
QUJMRShESVJFQ1RPUllfVVBMT0FEKQogICAgIHZpcnR1YWwgdm9pZCBlbnVtZXJhdGVDaG9zZW5E
aXJlY3RvcnkoY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciopOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGlu
Z0NvbXBsZXRpb25JbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkljb25M
b2FkaW5nQ29tcGxldGlvbkltcGwuY3BwCmluZGV4IGMxZGQzMjE3YjgyMTVmNjllMmU5NmFiYjU1
OGZkYTRlZWNlYWZmMjMuLjQ2ODc1OTkwODZjYmNmMjhmZjViNDI0Y2ZlYmY5MjQ3YTYwZjkxZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkljb25Mb2FkaW5nQ29t
cGxldGlvbkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkljb25M
b2FkaW5nQ29tcGxldGlvbkltcGwuY3BwCkBAIC0zOSw4ICszOSw4IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViSWNvbkxvYWRpbmdDb21wbGV0
aW9uSW1wbDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbChGaWxlQ2hvb3NlciogY2hvb3Nl
cikKLSAgICA6IG1fZmlsZUNob29zZXIoY2hvb3NlcikKK1dlYkljb25Mb2FkaW5nQ29tcGxldGlv
bkltcGw6OldlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwoUGFzc1JlZlB0cjxGaWxlSWNvbkxv
YWRlcj4gZmlsZUljb25Mb2FkZXIpCisgICAgOiBtX2ZpbGVJY29uTG9hZGVyKGZpbGVJY29uTG9h
ZGVyKQogewogfQogCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgV2ViSWNvbkxvYWRpbmdDb21wbGV0
aW9uSW1wbDo6ZGlkTG9hZEljb24oY29uc3QgV2ViRGF0YSYgaWNvbkRhdGEpCiAgICAgaWYgKCFp
Y29uRGF0YS5pc0VtcHR5KCkpIHsKICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IEJpdG1h
cEltYWdlOjpjcmVhdGUoKTsKICAgICAgICAgaW1hZ2UtPnNldERhdGEoaWNvbkRhdGEsIHRydWUp
OwotICAgICAgICBtX2ZpbGVDaG9vc2VyLT5pY29uTG9hZGVkKEljb246OmNyZWF0ZShpbWFnZSkp
OworICAgICAgICBtX2ZpbGVJY29uTG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGUo
aW1hZ2UpKTsKICAgICB9CiAgICAgLy8gVGhpcyBvYmplY3QgaXMgbm8gbG9uZ2VyIG5lZWRlZC4K
ICAgICBkZWxldGUgdGhpczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuaAppbmRleCA2ZTZmM2E4ZmNjYTRmM2U4
NjY1YzAxOTliZmMwYWI1M2JiZTU2NTc2Li5jNjQxMDg4MzQyN2E0MDZlMjUyMGU1OWExYTBjNjQz
ZWRhMjY5YTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29u
TG9hZGluZ0NvbXBsZXRpb25JbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5oCkBAIC0zMSwxMCArMzEsMTEgQEAKICNpZm5k
ZWYgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbF9oCiAjZGVmaW5lIFdlYkljb25Mb2FkaW5n
Q29tcGxldGlvbkltcGxfaAogCi0jaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJG
aWxlSWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIldlYkRhdGEuaCIKICNpbmNsdWRlICJXZWJJY29u
TG9hZGluZ0NvbXBsZXRpb24uaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAogdXNpbmcgV2ViS2l0OjpXZWJJY29uTG9hZGluZ0NvbXBsZXRp
b247CiB1c2luZyBXZWJLaXQ6OldlYkRhdGE7CkBAIC00MywxMyArNDQsMTMgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwgOiBwdWJsaWMg
V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uIHsKIHB1YmxpYzoKLSAgICBXZWJJY29uTG9hZGluZ0Nv
bXBsZXRpb25JbXBsKFdlYkNvcmU6OkZpbGVDaG9vc2VyKik7CisgICAgV2ViSWNvbkxvYWRpbmdD
b21wbGV0aW9uSW1wbChQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyPik7CiAgICAg
dmlydHVhbCB2b2lkIGRpZExvYWRJY29uKGNvbnN0IFdlYkRhdGEmKTsKIAogcHJpdmF0ZToKICAg
ICB+V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbCgpOwogCi0gICAgUmVmUHRyPFdlYkNvcmU6
OkZpbGVDaG9vc2VyPiBtX2ZpbGVDaG9vc2VyOworICAgIFJlZlB0cjxXZWJDb3JlOjpGaWxlSWNv
bkxvYWRlcj4gbV9maWxlSWNvbkxvYWRlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCmluZGV4IDFlZTE0NTNmN2NlMTlmMzA5MTc4MWU2MmZiOTA1NDVlYTk1MTdj
ZmQuLjkxOTU1ODU1NTc4ZmUyYzU5NmQyOGQ2MTVhOTUzNTllYmZmMjY3ZTQgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNi0xOCAgRGltaXRyaSBHbGF6a292ICA8ZGds
YXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFNlcGFyYXRlIGNvbmNlcm5zIG9mIGxvYWRpbmcgZmlsZSBpY29ucyBmcm9t
IGNob29zaW5nIGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjI5MzEKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVm
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmxvYWRJY29uRm9yRmls
ZXMpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgorCiAyMDEx
LTA2LTE1ICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCBjMTZlNTkw
NmUzNmM5NjMxODIwNDAyZTkxZmJkNTZmZDg2MGE3MzExLi5kMWJhMmUzNDZkOTUxMTE3MWQxYmM4
NDI2NGQ5NDA2OTg4ZmRmNzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNlbmRpZgog
I2luY2x1ZGUgIkVXZWJLaXQuaCIKICNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgorI2luY2x1ZGUg
IkZpbGVJY29uTG9hZGVyLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudEVmbC5oIgpAQCAtNTI3LDcg
KzUyOCw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjppY29uRm9yRmlsZXMoY29uc3QgVmVjdG9y
PFN0cmluZywgMHU+JiwgUGFzc1JlZlB0cjxGaWxlQ2hvCiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYsIEZpbGVDaG9vc2VyKikKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjpsb2FkSWNv
bkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgUGFzc1JlZlB0cjxGaWxlSWNvbkxvYWRl
cj4pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKaW5kZXggNmVkOTUwNzA4MjM2MDkz
NjMxNWQ0NWUyYzY2NWQ3Yzc4MmNkNjljMi4uZjZiYzdhOTFkMzVmZmJjODRhNGI3ZTczNTVlZWEw
YzQ5YTM4NjEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmgKQEAgLTEzMyw3ICsxMzMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
ICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9v
c2VyPik7Ci0gICAgdmlydHVhbCB2b2lkIGNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYsIEZpbGVDaG9vc2VyKik7CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmls
ZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBQYXNzUmVmUHRyPEZpbGVJY29uTG9hZGVyPik7CiAg
ICAgdmlydHVhbCB2b2lkIGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBOb2RlKik7CiAKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4
IGZlNTJkYTczYTVlNTg5ZTYxNjczN2U0YjJkZjUzN2I3YmFlYjZkMDMuLjZiYmQyYTUzMjcwZmM3
ODNhN2ZkZDJjNWE1YmNmMWE3Y2Y2Y2Q4OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxMS0wNi0xOCAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlcGFy
YXRlIGNvbmNlcm5zIG9mIGxvYWRpbmcgZmlsZSBpY29ucyBmcm9tIGNob29zaW5nIGZpbGVzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MzEKKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisKIDIwMTEtMDYtMTcgIEpvb25lIEh1ciAgPGpv
b25lLmh1ckBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJv
Ymluc29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHAKaW5kZXggNzliOTU4ZDgzN2MzN2IxZWJlMjE5YmZkMjU3NjdhNDE4Y2Yw
YjkzMy4uYTY3MTczZmMxYzIyNTBjNjNhYzY4Mjg1MzMwMmJkZDYwNmZmMjE5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgi
CiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCisjaW5jbHVk
ZSAiRmlsZUljb25Mb2FkZXIuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgpAQCAtNjQyLDkgKzY0
Myw5IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRy
PEZpbGVDaG9vc2VyPiBwcnBGaWxlQ2hvb3NlcikKICAgICBndGtfd2lkZ2V0X2Rlc3Ryb3koZGlh
bG9nKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnQ6OmNob29zZUljb25Gb3JGaWxlcyhjb25zdCBW
ZWN0b3I8V1RGOjpTdHJpbmc+JiBmaWxlbmFtZXMsIFdlYkNvcmU6OkZpbGVDaG9vc2VyKiBjaG9v
c2VyKQordm9pZCBDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdU
Rjo6U3RyaW5nPiYgZmlsZW5hbWVzLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVJY29uTG9hZGVy
PiBmaWxlSWNvbkxvYWRlcikKIHsKLSAgICBjaG9vc2VyLT5pY29uTG9hZGVkKEljb246OmNyZWF0
ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKKyAgICBmaWxlSWNvbkxvYWRlci0+bm90aWZ5Rmlu
aXNoZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOwogfQogCiB2b2lkIENo
cm9tZUNsaWVudDo6ZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2UoY29uc3QgVmlld3BvcnRB
cmd1bWVudHMmIGFyZ3VtZW50cykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKaW5kZXggNzE2MzI3Y2MxYjAyN2IxYjQxZDgy
MWQwOWNlOGM2ZjRhNGIyM2EzOS4uNGMxYTdiN2RiZDBjZmI2NzhiYThhODE4M2E1YWJjZDkxODBj
MjgxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmgKQEAgLTEyOCw3ICsxMjgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudSgpIHsgfQogI2VuZGlmCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNv
cmU6OkZpbGVDaG9vc2VyPik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjaG9vc2VJY29uRm9yRmls
ZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyKik7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0
cmluZz4mLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyPik7CiAKICAgICAgICAg
dmlydHVhbCB2b2lkIGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpOb2RlKikgeyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggMjQwZTUxMWQzNGQ2MzYxYTlkZmE3YzkwYWM1MTU0
NGFmYTI2MmI0Yi4uNGUyZWUwZTBhNjc5NjFlZDkzMjVhZWQ3ZWEzMmViZTJhNzRiNzhkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9oYWlrdS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNi0xOCAgRGltaXRyaSBH
bGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlcGFyYXRlIGNvbmNlcm5zIG9mIGxvYWRpbmcgZmls
ZSBpY29ucyBmcm9tIGNob29zaW5nIGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MzEKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEhhaWt1
Ojpsb2FkSWNvbkZvckZpbGVzKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRIYWlrdS5oOgorCiAyMDExLTA2LTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3Bw
IGIvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5j
cHAKaW5kZXggYjE2ZTA4Yzg5NDkxODljNDBmYTE1YjAxYzUwYzNhMGQzZjY2ZWViNC4uOThiYzcz
OTgzNWUzNzllZjUxMmVlOTBjN2VjMDc2NGQ5NTJkODc1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDaHJvbWVDbGll
bnRIYWlrdS5oIgogCisjaW5jbHVkZSAiRmlsZUljb25Mb2FkZXIuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKQEAgLTM3MSw5ICszNzIsOSBAQCB2b2lkIENocm9tZUNsaWVudEhhaWt1OjpydW5PcGVuUGFu
ZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCi12b2lkIENocm9tZUNsaWVudEhhaWt1OjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUNob29zZXIqIGNob29zZXIpCit2b2lkIENo
cm9tZUNsaWVudEhhaWt1Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBm
aWxlbmFtZXMsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+IGZpbGVJY29uTG9hZGVyKQogewot
ICAgIGNob29zZXItPmljb25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1l
cykpOworICAgIGZpbGVJY29uTG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGVJY29u
Rm9yRmlsZXMoZmlsZW5hbWVzKSk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OnNldEN1
cnNvcihjb25zdCBDdXJzb3ImKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9oYWlrdS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oIGIvU291cmNlL1dlYktpdC9oYWlrdS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oCmluZGV4IDMyMmQwYjIyNDU4MDE2MTk3ZTI2
ZWFiNTJiZWJiMTAzMDZkYTU0NDAuLmZjYTI5MGZjMzA3MjRmNDcyZWM5NThjZWI2MTliMzc2ZDVm
ZDEwYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50SGFpa3UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEhhaWt1LmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHsgfQogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPik7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBGaWxlQ2hvb3NlciopOworICAgICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+KTsKIAogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggMDAxNzM2NTg5N2I1OTMxN2NjODgwZDNhY2M5MDE1NTUwYjZmODRjMS4uZDE1YWU1
MTlkNjg3MWFjMzcwNDM3ZTI4NzdjNTYyZDdhNTcxMjNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDExLTA2LTE4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU2VwYXJhdGUgY29uY2VybnMgb2YgbG9hZGluZyBmaWxlIGljb25zIGZyb20gY2hvb3Npbmcg
ZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
MjkzMQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKToKKwogMjAxMS0wNi0xNiAgU2hlcmlmZiBCb3Qg
IDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjg5MDI2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA2ZjlmMDljOWI5ZDNhMGIzNmVkYmIxODdiYjZiODBm
MGNkNDcwYTRiLi5mMjMyNzE4YmM4ODA2Yzk1OGE3Y2U4NzFjYTIyM2QxOGUwMGFhYmY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aApAQCAtMTI1LDcgKzEyNSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lk
IHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNo
b29zZXI+KTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciopOworICAgIHZpcnR1YWwgdm9p
ZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBQYXNzUmVmUHRy
PFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyPik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29y
KGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggNWI1Mjk5MDRlOTUwZTc1YzA5
ODEyZmE0NWEwMjk1NDNkNmQ0ZDhjYS4uMTIyMDk1N2Y3NTk5MGRhYmQwYWYzNzIwNGY2Yzg2ODAw
ZDJmMzdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbQpAQCAtNTUsNiArNTUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRWxlbWVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9GaWxlSWNvbkxvYWRl
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJh
bWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkUmVxdWVzdC5oPgpAQCAtNzg0LDkgKzc4
NSw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVm
UHRyPEZpbGVDaG9vc2VyPiBjaG9vc2VyKQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUNob29zZXIqIGNob29zZXIpCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5h
bWVzLCBQYXNzUmVmUHRyPEZpbGVJY29uTG9hZGVyPiBpY29uTG9hZGVyKQogewotICAgIGNob29z
ZXItPmljb25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAg
IGljb25Mb2FkZXItPm5vdGlmeUZpbmlzaGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxl
bmFtZXMpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldEN1cnNvcihjb25zdCBXZWJD
b3JlOjpDdXJzb3ImIGN1cnNvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggYjA5N2NkMGJjZmRiZjNiMDE5
YWEwNTJiN2FmOGIyMjRhZDdiM2M5Ny4uZmI3NGYzNTA3YmMzNzNiNDYzYzQ3NmM5YmVkOWY2Njdl
ZGJmYTM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNi0xOCAgRGlt
aXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlcGFyYXRlIGNvbmNlcm5zIG9mIGxvYWRp
bmcgZmlsZSBpY29ucyBmcm9tIGNob29zaW5nIGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MzEKKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0
Ojpsb2FkSWNvbkZvckZpbGVzKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5oOgorCiAyMDExLTA2LTE3ICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVu
Ym9zc2Eub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCmluZGV4
IDY1NWU4NzI4NjZkMjdhY2FlYTNiOTM3YjYyY2U5ZDMxNzM1MTkwN2IuLjdlMGZjM2VjM2QyNjY5
ZmQ2ODFkYjEzZDc1YWYyZGExY2NkNzY0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5j
bHVkZSAiRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJGaWxlQ2hvb3Nlci5oIgorI2luY2x1ZGUgIkZpbGVJY29uTG9hZGVyLmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXIuaCIKQEAgLTYwOCw5ICs2MDksOSBAQCB2b2lkIENocm9tZUNsaWVudFF0OjpydW5PcGVu
UGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBwcnBGaWxlQwogICAg
IH0KIH0KIAotdm9pZCBDaHJvbWVDbGllbnRRdDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVDaG9vc2VyKiBjaG9vc2VyKQordm9pZCBDaHJv
bWVDbGllbnRRdDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5h
bWVzLCBQYXNzUmVmUHRyPEZpbGVJY29uTG9hZGVyPiBmaWxlSWNvbkxvYWRlcikKIHsKLSAgICBj
aG9vc2VyLT5pY29uTG9hZGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsK
KyAgICBmaWxlSWNvbkxvYWRlci0+bm90aWZ5RmluaXNoZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZp
bGVzKGZpbGVuYW1lcykpOwogfQogCiB2b2lkIENocm9tZUNsaWVudFF0OjpzZXRDdXJzb3IoY29u
c3QgQ3Vyc29yJiBjdXJzb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmgKaW5kZXggODhlNjQyYzg4MGU0OTQzNWJmYThjMTE2MThjZTczNWZi
MGYxOTk0NC4uYmEwOTE5OWE5MjYwYmE1Njc2ZDliNWZmMDFkNDE4ZGNkNzQ3NGE3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaApAQCAt
NDYsNiArNDYsNyBAQCBjbGFzcyBRV2ViUGFnZTsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRmlsZUNob29zZXI7CitjbGFzcyBGaWxlSWNvbkxvYWRlcjsKIGNsYXNzIEZsb2F0UmVjdDsK
IGNsYXNzIFBhZ2U7CiBzdHJ1Y3QgRnJhbWVMb2FkUmVxdWVzdDsKQEAgLTE3NCw3ICsxNzUsNyBA
QCBwdWJsaWM6CiAgICAgRnVsbFNjcmVlblZpZGVvUXQqIGZ1bGxTY3JlZW5WaWRlbygpOwogI2Vu
ZGlmCiAgICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZp
bGVDaG9vc2VyPik7Ci0gICAgIHZpcnR1YWwgdm9pZCBjaG9vc2VJY29uRm9yRmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mLCBGaWxlQ2hvb3NlciopOworICAgICB2aXJ0dWFsIHZvaWQgbG9hZElj
b25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2Fk
ZXI+KTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb3JtU3RhdGVEaWRDaGFuZ2UoY29uc3QgTm9kZSop
IHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggOWQ4Zjc5ZTBmMWU2OWJjYjk5YzkzNTZmNDNiOTQ4
YjBjMzQ5NzIzNC4uYTRjNTE0ZmRlMzRmNDZiMWI0ZWRhY2ZiODMzNzM3YmE4MjlhYTc1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA2LTE4ICBEaW1pdHJpIEdsYXpr
b3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU2VwYXJhdGUgY29uY2VybnMgb2YgbG9hZGluZyBmaWxlIGlj
b25zIGZyb20gY2hvb3NpbmcgZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MjkzMQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxl
cyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTEt
MDYtMTYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4OTAyNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDJhMjM3NDgx
Nzg5OGM5NThiYTc1M2ZlY2ViNzIxNzk5Y2M0ZTczY2UuLjBiZTBmZjlmMTA2YmQ1NWJkNTFhYzYz
ZmExZGQ2NWU0MzBiYjJlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvQ29udGV4dE1lbnUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0N1cnNvci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVJY29u
TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CkBAIC03
ODksOSArNzkwLDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSos
IFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGVDaG9vc2UKICAgICAvLyBGSVhNRTogU2hv
dyBzb21lIHNvcnQgb2YgZXJyb3IgaWYgdG9vIG1hbnkgZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0
aGUgYnVmZmVyIGlzIHRvbyBzbWFsbC4gIEZvciBub3csIHRoaXMgd2lsbCBmYWlsIHNpbGVudGx5
LgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxXVEY6OlN0cmluZz4mIGZpbGVuYW1lcywgV2ViQ29yZTo6RmlsZUNob29zZXIqIGNob29z
ZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
V1RGOjpTdHJpbmc+JiBmaWxlbmFtZXMsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUljb25Mb2Fk
ZXI+IGZpbGVJY29uTG9hZGVyKQogewotICAgIGNob29zZXItPmljb25Mb2FkZWQoSWNvbjo6Y3Jl
YXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGZpbGVJY29uTG9hZGVyLT5ub3RpZnlG
aW5pc2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CiB9CiAKIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4
IDE1MjllMWM0YzljOTU4YzUyZjg5ZGFjNDNjYzNhOTU2YTEwOWRlZjkuLjRjZTcwOThjNjgwMDU4
MWUyOTVkNmMxZThjYjRjY2JjNjlmNDM0NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMzYsNyArMTM2LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBwYWludEN1c3RvbVNjcm9sbENvcm5lcihXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6
OkZpbGVDaG9vc2VyPik7Ci0gICAgdmlydHVhbCB2b2lkIGNob29zZUljb25Gb3JGaWxlcyhjb25z
dCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUNob29zZXIqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpGaWxlSWNvbkxvYWRlcj4pOwogCiAgICAgdmlydHVhbCB2b2lkIHNl
dEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGFz
dFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCAxOTc5
OTZmYWIxMjg4Nzc2ZDAwZjY2M2E4MWMwMGU4ODU5OTdiNGZkLi5mZmYyMzNjZGFkOWMyNzYzZmMz
OWYxNmQzYjQ5ZWI3MDNjZDU3ZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDExLTA2LTE4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VwYXJh
dGUgY29uY2VybnMgb2YgbG9hZGluZyBmaWxlIGljb25zIGZyb20gY2hvb3NpbmcgZmlsZXMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzMQorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6bG9hZEljb25Gb3JGaWxlcyk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaDoKKwogMjAxMS0wNi0xMiAgQWRhbSBC
YXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQ
cm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCmluZGV4IDQ0MjRjMDE1MTJkMzAwMTY1OGIyMzVk
OTY1NzMyMjI3ZmI0MDgzYTYuLjY1YjVlOGY3NjllMjFhZGNkMGI1ZDFiZjdjNTZjNDdiNmMxYTEz
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50V2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50V2luQ0UuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQ2hyb21l
Q2xpZW50V2luQ0UuaCIKIAogI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCisjaW5jbHVkZSAiRmls
ZUljb25Mb2FkZXIuaCIKICNpbmNsdWRlICJJY29uLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uQWN0aW9uLmgiCkBAIC0zNTAsOSArMzUxLDkgQEAg
dm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxG
aWxlQ2hvb3Nlcj4gcHJwRmlsZUNob28KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lk
IENocm9tZUNsaWVudFdpbkNFOjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGZpbGVuYW1lcywgRmlsZUNob29zZXIqIGNob29zZXIpCit2b2lkIENocm9tZUNsaWVudFdp
bkNFOjpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIFBh
c3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+IGZpbGVJY29uTG9hZGVyKQogewotICAgIGNob29zZXIt
Pmljb25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGZp
bGVJY29uTG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmls
ZW5hbWVzKSk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OnNldEN1cnNvcihjb25zdCBD
dXJzb3ImKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRXaW5DRS5oCmluZGV4IDEzYzllYzBhMTAzNWY4OTY2ZjJmNjQwNWM5OTk1NmIx
ZWViZThlOTMuLmQyNDVmYTcyZmYyMGUyOTU5NGYyNDg4MGMwMjJiYTNmMjYxYjJjZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2lu
Q0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFdpbkNFLmgKQEAgLTE0OSw3ICsxNDksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
cnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hv
b3Nlcj4pOwogICAgIC8vIEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Ig
c3BlY2lmaWVkIGZpbGVuYW1lcy4KLSAgICB2aXJ0dWFsIHZvaWQgY2hvb3NlSWNvbkZvckZpbGVz
KGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciopOworICAg
IHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4m
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyPik7CiAKICAgICAvLyBOb3RpZmlj
YXRpb24gdGhhdCB0aGUgZ2l2ZW4gZm9ybSBlbGVtZW50IGhhcyBjaGFuZ2VkLiBUaGlzIGZ1bmN0
aW9uCiAgICAgLy8gd2lsbCBiZSBjYWxsZWQgZnJlcXVlbnRseSwgc28gaGFuZGxpbmcgc2hvdWxk
IGJlIHZlcnkgZmFzdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggNDVjMTg0NjFiODRkNDU2ODI0ZjVlZDJl
NDgxMjRhMmRjN2ViMzc5Ni4uYThlYTQxYTQ1NTg1MzVhNTBmZjQxMGI2MDM3MTVhNDM4ZjVjYjI2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNi0xOCAgRGltaXRyaSBH
bGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlcGFyYXRlIGNvbmNlcm5zIG9mIGxvYWRpbmcgZmls
ZSBpY29ucyBmcm9tIGNob29zaW5nIGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MzEKKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hy
b21lQ2xpZW50V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OmNob29z
ZUljb25Gb3JGaWxlcyk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5o
OgorCiAyMDExLTA2LTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCmluZGV4IDE5MDk2ZGU4NzViY2E0
MzZlMWRlZjUwZGE5MjYxM2ZmNWJkM2NlNmMuLjFmMjRhYWU2NDExZjYxYmMxOGU4ZTQ3NDlkOTk3
NmMyNWE2MWY3ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlVHJh
Y2tlci5oIgogI2VuZGlmCiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJGaWxl
SWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgpAQCAtNDU1LDkgKzQ1Niw5IEBAIHZvaWQg
Q2hyb21lQ2xpZW50V3g6OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29z
ZXI+KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V3g6OmNo
b29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlQ2hv
b3NlciogY2hvb3NlcikKK3ZvaWQgQ2hyb21lQ2xpZW50V3g6OmNob29zZUljb25Gb3JGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBQYXNzUmVmUHRyPEZpbGVJY29uTG9hZGVy
PiBmaWxlSWNvbkxvYWRlcikKIHsKLSAgICBjaG9vc2VyLT5pY29uTG9hZGVkKEljb246OmNyZWF0
ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKKyAgICBmaWxlSWNvbkxvYWRlci0+bm90aWZ5Rmlu
aXNoZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOwogfQogCiB2b2lkIENo
cm9tZUNsaWVudFd4OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaCBiL1NvdXJj
ZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCmluZGV4IDgyMGM4YWJl
OWI4OTg3ZWM2ODFjNDNlMzY4MmI0Zjc0ZTZmNGYzNGYuLjNlZTc4MDVkNmRjMjhjODY5ZGM5YWYy
N2I3YzczYWFiYzdlYWE2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9DaHJvbWVDbGllbnRXeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5oCkBAIC0xMzYsNyArMTM2LDcgQEAgcHVibGljOgogI2VuZGlmCiAK
ICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hv
b3Nlcj4pOwotICAgIHZpcnR1YWwgdm9pZCBjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBGaWxlQ2hvb3NlciopOworICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgUGFzc1JlZlB0cjxGaWxlSWNvbkxvYWRlcj4pOwog
CiAgICAgdmlydHVhbCB2b2lkIGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBOb2RlKikgeyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA4N2E1YzBlYjUzY2M2MmRlNWZiMzFlNmM2ODkyMzYyMjBmNjE3NDUwLi4z
MWExOGEyZGIyOGMyMDFjZjlhNmQ3NzBmNzI0MjQ4MmZmYWYzNmQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTEtMDYtMTggIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTZXBhcmF0ZSBjb25jZXJucyBvZiBsb2FkaW5nIGZpbGUgaWNvbnMgZnJvbSBjaG9vc2luZyBm
aWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYy
OTMxCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxl
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aDoKKwogMjAxMS0wNi0xNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgW1dpbkNhaXJvXSBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByODkwNjAgYW5k
IHI4OTE2MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBlYTAwNGZjMjhlNTY4OTMwZWI0
MDVhNzg3N2UzMDk3OTI2ZDYyNjA2Li5jNzZlZjgyNjE1YTE3NGNhNTIyYTBlNDMzNDA1ZWM1M2U2
ZTcwZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5j
bHVkZSAiV2ViU2VhcmNoUG9wdXBNZW51LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZVRy
YWNrZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9GaWxlSWNvbkxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcu
aD4KQEAgLTYzNiw5ICs2MzcsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVs
KEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZQogICAgIG1fcGFn
ZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5PcGVuUGFuZWwoc3RhdGljX2Nhc3Q8
V2ViRnJhbWVMb2FkZXJDbGllbnQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJh
bWUoKS0+ZnJhbWVJRCgpLCBwYXJhbWV0ZXJzKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmls
ZUNob29zZXIqIGNob29zZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBQYXNzUmVmUHRyPEZpbGVJY29uTG9h
ZGVyPiBpY29uTG9hZGVyKQogewotICAgIGNob29zZXItPmljb25Mb2FkZWQoSWNvbjo6Y3JlYXRl
SWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGljb25Mb2FkZXItPm5vdGlmeUZpbmlzaGVk
KEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNvcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCmluZGV4IDczYTEyMmYwNTNkNWRjMWZlMzVmZjQ1MjliY2EzZTk5MTJiMDAx
M2IuLjg0MTk5YjA0NWY1YWIyODk5MGU0MzBmYTM0NTJiYmE2OTgyZmVkOWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaApAQCAtMTY5LDcgKzE2OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pOwot
ICAgIHZpcnR1YWwgdm9pZCBjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBXZWJDb3JlOjpGaWxlQ2hvb3NlciopOworICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlSWNvbkxv
YWRlcj4pOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJz
b3ImKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97708</attachid>
            <date>2011-06-18 16:24:14 -0700</date>
            <delta_ts>2011-06-18 17:48:53 -0700</delta_ts>
            <desc>Energize.</desc>
            <filename>bug-62931-20110618162413.patch</filename>
            <type>text/plain</type>
            <size>60983</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkxODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjFmYjM2
MmNiZWU1MjgzNGE3ZjJjYmEzYWVkYWVkMzQ5Y2ZmN2M5ZS4uYzRiZDI2OWZmMmRhMWQ0MzEyZDQ0
ZDg1YTc0Mjc0M2Y1MzdlMmVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwMjQsNiArMTAy
NCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5jcHAKICAg
ICBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCisg
ICAgcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3BwCiAgICAgcGxhdGZvcm0vRmlsZVN5c3RlbS5j
cHAKICAgICBwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwCiAgICAgcGxhdGZvcm0vS1VS
TC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA5NTc5YmViZDAyMmYzM2ExY2NlNmU2ZGY5ZmE3NjdiNmNhNzgx
MTgyLi4yYjE4YWQyZGFhYmZmNWM2NWRjMDlhYTIwMDhjNGE4ODI2MzNlNDEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNjAgQEAKKzIwMTEtMDYtMTggIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTZXBhcmF0ZSBjb25jZXJucyBvZiBsb2FkaW5nIGZpbGUgaWNvbnMgYW5kIGNob29z
aW5nIGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjI5MzEKKworICAgICAgICBMb2FkaW5nIGFuIGljb24gYW5kIGNob29zaW5nIGZpbGVzIGhh
dmUgc2ltaWxhciBhc3luYyBuYXR1cmUsIGJ1dCBjb21wbGV0ZWx5IGRpZmZlcmVudAorICAgICAg
ICBsaWZldGltZXM6IEZpbGVDaG9vc2VyIHNob3VsZCBvbmx5IGV4aXN0IHdoZW4gd2UgYXJlIGFj
dHVhbGx5IGF0dGVtcHRpbmcgdG8gY2hvb3NlIGEgZmlsZSwKKyAgICAgICAgbm90IGFueXRpbWUg
d2UgbmVlZCB0byByZW5kZXIgYW4gaW5wdXQgd2l0aCBhIHByb3BlciBpY29uLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBGaWxlSWNvbkxvYWRlciwgYSBzZXBhcmF0ZSBhYnN0cmFj
dGlvbiBmb3IgbG9hZGluZyBhbiBpY29uLCBhbmQgcmVtb3ZlcworICAgICAgICBhbnkgbm90aW9u
IG9mIGFuIGljb24gZnJvbSB0aGUgRmlsZUNob29zZXIuCisKKyAgICAgICAgQWxzbywgdGhlIGxv
YWRlZCBpY29uIGlzIG5vdyBzdG9yZWQgb24gdGhlIFJlbmRlckZpbGVVcGxvYWRDb250cm9sLCB3
aGljaCBiZXR0ZXIgbWF0Y2hlcyBpdHMKKyAgICAgICAgcHVycG9zZS4KKworICAgICAgICBSZWZh
Y3RvcmluZywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OiBBZGRlZCBGaWxlSWNvbkxvYWRlciB0byBidWlsZCBzeXN0ZW0uCisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IFVw
ZGF0ZWQuCisgICAgICAgICogV2ViQ29yZS5neXBpOiBBZGRlZCBGaWxlSWNvbkxvYWRlciB0byBi
dWlsZCBzeXN0ZW0uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9FbXB0eUNs
aWVudHMuaDogVXBkYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50Ojps
b2FkSWNvbkZvckZpbGVzKTogUmVuYW1lZCBmdW5jdGlvbiB0byBiZXR0ZXIgcmVmbGVjdCB3aGF0
IGl0IGRvZXMuCisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lOjpsb2FkSWNvbkZvckZpbGVzKTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUu
aDogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogRGl0dG8uCisgICAgICAg
ICogcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUNob29z
ZXI6OkZpbGVDaG9vc2VyKTogUmVtb3ZlZCBub3ctdW5uZWNlc3NhcnkgYm9vbC4KKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVDaG9vc2VyOjpjcmVhdGUpOiBSZW1vdmVkIHRoZSB0YW5nbGVkIHdlYi4K
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVDaG9vc2VyOjpjbGVhcik6IFJlbW92ZWQgaWNvbi1yZWxh
dGVkIGNvZGUuCisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6Y2hvb3NlRmlsZXMpOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL0ZpbGVJY29uTG9hZGVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZUNob29zZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6RmlsZUljb25Mb2FkZXJDbGll
bnQ6On5GaWxlSWNvbkxvYWRlckNsaWVudCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUljb25Mb2FkZXI6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RmlsZUljb25M
b2FkZXI6OmRpc2Nvbm5lY3RDbGllbnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJ
Y29uTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUljb25Mb2FkZXI6OkZpbGVJY29uTG9hZGVyKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
RmlsZUljb25Mb2FkZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmls
ZUNob29zZXIuY3BwLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6UmVuZGVy
RmlsZVVwbG9hZENvbnRyb2wpOiBBZGRlZCBuZXcgbWVtYmVyIGluaXRpYWxpemF0aW9ucy4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp+UmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wpOiBBZGRlZCBGaWxlSWNvbkxvYWRlciBkaXNjb25uZWN0LnMKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpyZXF1ZXN0SWNvbik6IEFkZGVkIGEgaGVs
cGVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnZhbHVlQ2hh
bmdlZCk6IENoYW5nZWQgdG8gcmVxdWVzdCBhbiBpY29uIGxvYWQuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBkYXRlUmVuZGVyaW5nKTogQWRkZWQgaW1wbGVt
ZW50YXRpb24gb2YgRmlsZUljb25Mb2FkZXJDbGllbnQgZnVuYy4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp1cGRhdGVGcm9tRWxlbWVudCk6IEFkZGVkIGNsZWFy
aW5nIG9mIGljb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6
bWF4RmlsZW5hbWVXaWR0aCk6IENoYW5nZWQgdG8gdXNlIG5ldyBtZW1iZXIgZGlyZWN0bHkuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpmaWxlVGV4
dFZhbHVlKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250
cm9sLmg6IFVwZGF0ZWQgZGVjbHMuCisKIDIwMTEtMDYtMTcgIEFsZXhleSBQcm9za3VyeWFrb3Yg
IDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDAxMzZjODk2YmQwMjc3ZWE3M2E0ZGI2ZTRk
MjNhNTY0NTA5ZWUzZmMuLjhlZmFkZjZjMGQwZjg2ZmQwNDE5OTUyODllYTI2NTgwMWFiMDY2ZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjM2Nyw2ICsyMzY3LDggQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudExvb3AuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlSWNvbkxvYWRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVJY29uTG9h
ZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVNZXRhZGF0YS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3RyZWFtQ2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0ZpbGVTdHJlYW0uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMjk5ZDcx
OTE2MmYwY2ZmYzgxNTlhYWU0NzM3Y2VlYmMxMjNhZTljMS4uOTYyNjkzYzQyMGY5NzUzZGZjNDNm
NjlmNjJmYWU0ZDU0MTJhMzQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE1Niw3ICsxNTYs
NiBAQCBfX1pON1dlYkNvcmUxMUNhY2hlZEZyYW1lMjZzZXRDYWNoZWRGcmFtZVBsYXRmb3JtRGF0
YUVOM1dURjEwUGFzc093blB0cklOU18yM0NhYwogX19aTjdXZWJDb3JlMTFFZGl0Q29tbWFuZDdy
ZWFwcGx5RXYKIF9fWk43V2ViQ29yZTExRWRpdENvbW1hbmQ3dW5hcHBseUV2CiBfX1pON1dlYkNv
cmUxMUZpbGVDaG9vc2VyMTBjaG9vc2VGaWxlRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3Jl
MTFGaWxlQ2hvb3NlcjEwaWNvbkxvYWRlZEVOM1dURjEwUGFzc1JlZlB0cklOU180SWNvbkVFRQog
X19aTjdXZWJDb3JlMTFGaWxlQ2hvb3NlcjExY2hvb3NlRmlsZXNFUktOM1dURjZWZWN0b3JJTlMx
XzZTdHJpbmdFTG0wRUVFCiBfX1pON1dlYkNvcmUxMUZpbGVDaG9vc2VyRDFFdgogX19aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjExbG9hZEFyY2hpdmVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfN0FyY2hp
dmVFRUUKQEAgLTM0Niw2ICszNDUsNyBAQCBfX1pON1dlYkNvcmUxNERvY3VtZW50TG9hZGVyQzFF
UktOU18xNVJlc291cmNlUmVxdWVzdEVSS05TXzE0U3Vic3RpdHV0ZURhdGFFCiBfX1pON1dlYkNv
cmUxNERvY3VtZW50TG9hZGVyQzJFUktOU18xNVJlc291cmNlUmVxdWVzdEVSS05TXzE0U3Vic3Rp
dHV0ZURhdGFFCiBfX1pON1dlYkNvcmUxNERvY3VtZW50TG9hZGVyRDJFdgogX19aTjdXZWJDb3Jl
MTREb2N1bWVudFdyaXRlcjExc2V0RW5jb2RpbmdFUktOM1dURjZTdHJpbmdFYgorX19aTjdXZWJD
b3JlMTRGaWxlSWNvbkxvYWRlcjE0bm90aWZ5RmluaXNoZWRFTjNXVEYxMFBhc3NSZWZQdHJJTlNf
NEljb25FRUUKIF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb24xMHNldEZvY3VzZWRFYgogX19a
TjdXZWJDb3JlMTRGcmFtZVNlbGVjdGlvbjEyc2V0U2VsZWN0aW9uRVJLTlNfMTZWaXNpYmxlU2Vs
ZWN0aW9uRWpOUzBfMTlDdXJzb3JBbGlnbk9uU2Nyb2xsRU5TXzE1VGV4dEdyYW51bGFyaXR5RU5T
XzIwRGlyZWN0aW9uYWxpdHlQb2xpY3lFCiBfX1pON1dlYkNvcmUxNEZyYW1lU2VsZWN0aW9uMTVy
ZXZlYWxTZWxlY3Rpb25FUktOU18xNVNjcm9sbEFsaWdubWVudEViCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggY2NiZjI3MTU4ODAwOGZhYmQ0YWJmYjhiMWE5MjcwYjQyNTU5NTVkMy4uODEwM2NmMDZiODM3
NzY0NzMyMzdiNDkwOTc2NmZkOWRkYWNmY2I1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzYwNiw2
ICszNjA2LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9FdmVudExvb3AuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRmls
ZUNob29zZXIuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlSWNvbkxvYWRlci5jcHAn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVJY29uTG9hZGVyLmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL0ZpbGVNZXRhZGF0YS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlU3Ry
ZWFtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybwppbmRleCBlMDViNzVjNGM0MzIwYmU0YzQwZWM3MGM1ODNkNGEwNGY3YWJjNjk3Li4zYWJj
MjFlNjdmMWYyMzhhNTQwN2ZkYTRhZTY5MmJjOGMxNDQwMTdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAt
OTcwLDYgKzk3MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL0RyYWdEYXRhLmNwcCBc
CiAgICAgcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIu
Y3BwIFwKKyAgICBwbGF0Zm9ybS9GaWxlSWNvbkxvYWRlci5jcHAgXAogICAgIHBsYXRmb3JtL0Zp
bGVTdHJlYW0uY3BwIFwKICAgICBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcCBcCiAgICAgcGxhdGZv
cm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDFkZDdjM2E1YjEwYTMyYTg2YmYyY2RlNzRhNTM5ODcz
MjY4MWQ1MGEuLjAzNjk0ODc2NmJhNTViN2VkOGU1ZGI0MGZiMTQyMmE1YzUzYTc1MGMgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNjM5MCw2
ICsyNjM5MCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxGaWxlSWNvbkxvYWRlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEZpbGVJY29uTG9hZGVyLmgi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXEZpbGVNZXRhZGF0YS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzNjgzZGY2NjM2Y2Rl
MTVhY2UzNWMyNmRhM2JiODk3Yjg5MWRiNzE5Li40ODc0MmI2ZDc5MWQ0YzAwZDZjZmJiZjhiZjRi
MzJiNWY4MTU1YTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC04NjAsNiArODYwLDggQEAKIAkJNDEyN0Q1MzcwRjhBQUIxRDAw
RTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxMjdENTM2MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5j
cHAgKi87IH07CiAJCTQxMzhEMzM1MTI0NDA1NDgwMDMyM0QzMyAvKiBFdmVudENvbnRleHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzhEMzMzMTI0
NDA1NDgwMDMyM0QzMyAvKiBFdmVudENvbnRleHQuaCAqLzsgfTsKIAkJNDEzOEQzMzYxMjQ0MDU0
ODAwMzIzRDMzIC8qIEV2ZW50Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTM4RDMzNDEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250
ZXh0LmNwcCAqLzsgfTsKKwkJNDE0Qjg2NzMxM0FEMDc0RTAwQjRCMzczIC8qIEZpbGVJY29uTG9h
ZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
NEI4NjcxMTNBRDA3NEUwMEI0QjM3MyAvKiBGaWxlSWNvbkxvYWRlci5jcHAgKi87IH07CisJCTQx
NEI4Njc0MTNBRDA3NEUwMEI0QjM3MyAvKiBGaWxlSWNvbkxvYWRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0Qjg2NzIxM0FEMDc0RTAwQjRCMzcz
IC8qIEZpbGVJY29uTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNDE1MEY5RjExMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1
MEY5RUYxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5oICovOyB9OwogCQk0
MTUwRjlGMjEyQjZFMEU3MDAwOEM4NjAgLyogU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTBGOUYwMTJCNkUwRTcw
MDA4Qzg2MCAvKiBTbGlkZXJUaHVtYkVsZW1lbnQuY3BwICovOyB9OwogCQk0MTU3QUY4MDEyRjFG
QjA0MDBBOEM2RjUgLyogTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTdBRjdFMTJGMUZCMDQwMEE4QzZGNSAv
KiBNZWRpYUNvbnRyb2xSb290RWxlbWVudC5oICovOyB9OwpAQCAtNzI2NCw2ICs3MjY2LDggQEAK
IAkJNDEyN0Q1MzYwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdFN0YXRlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDEzOEQzMzMxMjQ0MDU0ODAwMzIzRDMzIC8qIEV2ZW50Q29udGV4
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudENvbnRleHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzOEQzMzQxMjQ0MDU0ODAwMzIzRDMzIC8qIEV2
ZW50Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVu
dENvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTRCODY3MTEzQUQw
NzRFMDBCNEIzNzMgLyogRmlsZUljb25Mb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRmlsZUljb25Mb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTRCODY3MjEzQUQwNzRFMDBCNEIzNzMgLyogRmlsZUljb25Mb2FkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZUljb25Mb2FkZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1MEY5RUYxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRo
dW1iRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbGlkZXJUaHVt
YkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1MEY5RjAxMkI2RTBF
NzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTbGlkZXJUaHVtYkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTU3QUY3RTEyRjFGQjA0MDBBOEM2RjUgLyogTWVkaWFDb250cm9sUm9v
dEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9s
Um9vdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NjgzLDYgKzE4
Njg3LDggQEAKIAkJCQkxQ0ExOUUxNTBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRMb29wLmggKi8s
CiAJCQkJOTM0RkU5RTQwQjVDQTUzOTAwM0U0QTczIC8qIEZpbGVDaG9vc2VyLmNwcCAqLywKIAkJ
CQkwNjZDNzcyQTBBQjYwM0I3MDAyMzhDQzQgLyogRmlsZUNob29zZXIuaCAqLywKKwkJCQk0MTRC
ODY3MTEzQUQwNzRFMDBCNEIzNzMgLyogRmlsZUljb25Mb2FkZXIuY3BwICovLAorCQkJCTQxNEI4
NjcyMTNBRDA3NEUwMEI0QjM3MyAvKiBGaWxlSWNvbkxvYWRlci5oICovLAogCQkJCTJFRjFCRkU4
MTIxQzlGNDIwMEMyNzYyNyAvKiBGaWxlU3RyZWFtLmNwcCAqLywKIAkJCQkyRUYxQkZFOTEyMUM5
RjQyMDBDMjc2MjcgLyogRmlsZVN0cmVhbS5oICovLAogCQkJCTJFRjFCRkY4MTIxQ0IwQ0UwMEMy
NzYyNyAvKiBGaWxlU3RyZWFtQ2xpZW50LmggKi8sCkBAIC0yMDk4MSw2ICsyMDk4Nyw3IEBACiAJ
CQkJODkzQzQ4MEYxMjQ4QkQzQTAwMkIzRDg2IC8qIEZpbGVFbnRyeVN5bmMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3NkQ2QzgzMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlRXJyb3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJFREYzNjlGMTIyQzk0QzgwMDJGN0Q0RSAvKiBGaWxlRXhjZXB0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTRCODY3NDEzQUQwNzRFMDBCNEIzNzMgLyogRmlsZUljb25M
b2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREJFMTI1MUYxMkQwMDNFRjI2OSAvKiBG
aWxlSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzZENkM4NjEyMkI4QTNEMDAxRkQx
RjcgLyogRmlsZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2ODlGMUFGMTI2N0JBRTEwMEU4
RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjM4ODEsNiArMjM4ODgs
NyBAQAogCQkJCTkzNEZFOUU1MEI1Q0E1MzkwMDNFNEE3MyAvKiBGaWxlQ2hvb3Nlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk4OTg3ODU2MTEyMkNBMDY0MDAzQUFCREEgLyogRmlsZUVudHJ5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTg5M0M0ODBFMTI0OEJEM0EwMDJCM0Q4NiAvKiBGaWxlRW50
cnlTeW5jLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxNEI4NjczMTNBRDA3NEUwMEI0QjM3MyAv
KiBGaWxlSWNvbkxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RCRDEyNTFGMTJE
MDAzRUYyNjkgLyogRmlsZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzZENkM4
NTEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc2
RDZDODgxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggMzNjMjZiY2Q3ZDc1OTM3NjRkZmI5
YzM1ODE2MDljZDQ0YjcyMGVjNS4uZGU2Y2I1ODNhYjIwY2VlNzE2ODk5NDY3Yjc3ZDc4ZGQxOTQ3
YzcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTk3LDcgKzE5Nyw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFt
ZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY2hvb3Nl
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUNob29zZXIqKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFBh
c3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+KSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBmb3JtU3Rh
dGVEaWRDaGFuZ2UoY29uc3QgTm9kZSopIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXgg
MDRmOWU0YjljYzI4OWQwMTgwMjU5YzQ4MjRlNjhlZTA1MmNiZjkzMS4uYmU0NjcyZGI1OTFhOWFk
NzgwOWY5YTljYmJlYjhiNzU0NDY5MjJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtMjQs
NiArMjQsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkROUy5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRmlsZUljb25Mb2FkZXIuaCIKICNpbmNs
dWRlICJGaWxlQ2hvb3Nlci5oIgogI2luY2x1ZGUgIkZpbGVMaXN0LmgiCiAjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCkBAIC0zNCw2ICszNSw3IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKKyNp
bmNsdWRlICJJY29uLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cExvYWREZWZlcnJlci5oIgpAQCAt
NDYyLDkgKzQ2NCw5IEBAIHZvaWQgQ2hyb21lOjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQ
YXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBmaWxlQ2hvb3NlcikKICAgICBtX2NsaWVudC0+cnVuT3Bl
blBhbmVsKGZyYW1lLCBmaWxlQ2hvb3Nlcik7CiB9CiAKLXZvaWQgQ2hyb21lOjpjaG9vc2VJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUNob29zZXIqIGZp
bGVDaG9vc2VyKQordm9pZCBDaHJvbWU6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mIGZpbGVuYW1lcywgUGFzc1JlZlB0cjxGaWxlSWNvbkxvYWRlcj4gaWNvbkxvYWRlcikK
IHsKLSAgICBtX2NsaWVudC0+Y2hvb3NlSWNvbkZvckZpbGVzKGZpbGVuYW1lcywgZmlsZUNob29z
ZXIpOworICAgIG1fY2xpZW50LT5sb2FkSWNvbkZvckZpbGVzKGZpbGVuYW1lcywgaWNvbkxvYWRl
cik7CiB9CiAKIHZvaWQgQ2hyb21lOjpkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZShjb25z
dCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5k
ZXggYmFiN2VlM2ZiZmZmMDI5MjY3NTQ0NjE2MjJhNWIzOThhM2IyN2NlMC4uMDAyNmUwMjQwZDI3
YTFlY2VkYjUxYTA2ZDQ2MDllODA2ZDBmMmVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0zNyw2
ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENocm9tZUNsaWVudDsK
ICAgICBjbGFzcyBGaWxlQ2hvb3NlcjsKKyAgICBjbGFzcyBGaWxlSWNvbkxvYWRlcjsKICAgICBj
bGFzcyBGbG9hdFJlY3Q7CiAgICAgY2xhc3MgRnJhbWU7CiAgICAgY2xhc3MgR2VvbG9jYXRpb247
CkBAIC0xNTIsNyArMTUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGNh
bmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0
aW9uKik7CiAKICAgICAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZp
bGVDaG9vc2VyPik7Ci0gICAgICAgIHZvaWQgY2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiwgRmlsZUNob29zZXIqKTsKKyAgICAgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgUGFzc1JlZlB0cjxGaWxlSWNvbkxvYWRlcj4pOwogI2lm
IEVOQUJMRShESVJFQ1RPUllfVVBMT0FEKQogICAgICAgICB2b2lkIGVudW1lcmF0ZUNob3NlbkRp
cmVjdG9yeShjb25zdCBTdHJpbmcmLCBGaWxlQ2hvb3NlciopOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaAppbmRleCBmNmNhMmY1MmFkYzVhYTY4MGYzOTA2NzJhYmFiMTkwMzcy
YjEwMmJmLi5kMGNkMWFhMWU0MDVkZmM3OTZlYjZjZTQ0Y2NkMjI3MTcwZGIxMmE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIGNsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3Q7CiAgICAgY2xhc3MgRWxlbWVudDsK
ICAgICBjbGFzcyBGaWxlQ2hvb3NlcjsKKyAgICBjbGFzcyBGaWxlSWNvbkxvYWRlcjsKICAgICBj
bGFzcyBGbG9hdFJlY3Q7CiAgICAgY2xhc3MgRnJhbWU7CiAgICAgY2xhc3MgR2VvbG9jYXRpb247
CkBAIC0yMjYsNyArMjI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1
YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgPSAw
OwogICAgICAgICAvLyBBc3luY2hyb25vdXMgcmVxdWVzdCB0byBsb2FkIGFuIGljb24gZm9yIHNw
ZWNpZmllZCBmaWxlbmFtZXMuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjaG9vc2VJY29uRm9yRmls
ZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlQ2hvb3NlciopID0gMDsKKyAgICAgICAgdmly
dHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBQYXNzUmVm
UHRyPEZpbGVJY29uTG9hZGVyPikgPSAwOwogCiAjaWYgRU5BQkxFKERJUkVDVE9SWV9VUExPQUQp
CiAgICAgICAgIC8vIEFzeWNocm9ub3VzIHJlcXVlc3QgdG8gZW51bWVyYXRlIGFsbCBmaWxlcyBp
biBhIGRpcmVjdG9yeSBjaG9zZW4gYnkgdGhlIHVzZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlQ2hvb3Nlci5jcHAKaW5kZXggODgxMzk1ZGM4NDA1MDA1MGZmZWViODU2MzgxOWYzYjM4MzE1
NzZiNi4uMGY0NTJiYjg2NzAxYWRmYjMyMGUyYmM2MjM0NWVlZTc3NWI3N2IyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcApAQCAtMjksMjcgKzI5LDIxIEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKIAotI2luY2x1ZGUgIklj
b24uaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAorCiBGaWxlQ2hvb3NlckNsaWVudDo6
fkZpbGVDaG9vc2VyQ2xpZW50KCkKIHsKIH0KIAogaW5saW5lIEZpbGVDaG9vc2VyOjpGaWxlQ2hv
b3NlcihGaWxlQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgaW5p
dGlhbEZpbGVuYW1lcykKICAgICA6IG1fY2xpZW50KGNsaWVudCkKLSAgICAsIG1faXNJbml0aWFs
aXppbmcodHJ1ZSkKIHsKICAgICBtX2ZpbGVuYW1lcyA9IGluaXRpYWxGaWxlbmFtZXM7CiB9CiAK
IFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IEZpbGVDaG9vc2VyOjpjcmVhdGUoRmlsZUNob29zZXJD
bGllbnQqIGNsaWVudCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGluaXRpYWxGaWxlbmFtZXMpCiB7
Ci0gICAgUmVmUHRyPEZpbGVDaG9vc2VyPiBjaG9vc2VyKGFkb3B0UmVmKG5ldyBGaWxlQ2hvb3Nl
cihjbGllbnQsIGluaXRpYWxGaWxlbmFtZXMpKSk7Ci0gICAgY2hvb3Nlci0+bG9hZEljb24oKTsK
LSAgICBjaG9vc2VyLT5tX2lzSW5pdGlhbGl6aW5nID0gZmFsc2U7Ci0gICAgcmV0dXJuIGNob29z
ZXI7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxlQ2hvb3NlcihjbGllbnQsIGluaXRpYWxG
aWxlbmFtZXMpKTsKIH0KIAogRmlsZUNob29zZXI6On5GaWxlQ2hvb3NlcigpCkBAIC01OSw3ICs1
Myw2IEBAIEZpbGVDaG9vc2VyOjp+RmlsZUNob29zZXIoKQogdm9pZCBGaWxlQ2hvb3Nlcjo6Y2xl
YXIoKQogewogICAgIG1fZmlsZW5hbWVzLmNsZWFyKCk7Ci0gICAgbV9pY29uID0gMDsKIH0KIAog
dm9pZCBGaWxlQ2hvb3Nlcjo6Y2hvb3NlRmlsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lKQpAQCAt
NzQsMjIgKzY3LDggQEAgdm9pZCBGaWxlQ2hvb3Nlcjo6Y2hvb3NlRmlsZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mIGZpbGVuYW1lcykKICAgICBpZiAobV9maWxlbmFtZXMgPT0gZmlsZW5hbWVzKQog
ICAgICAgICByZXR1cm47CiAgICAgbV9maWxlbmFtZXMgPSBmaWxlbmFtZXM7Ci0gICAgbG9hZElj
b24oKTsKICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50LT52YWx1ZUNoYW5nZWQo
KTsKIH0KIAotdm9pZCBGaWxlQ2hvb3Nlcjo6bG9hZEljb24oKQotewotICAgIGlmIChtX2ZpbGVu
YW1lcy5zaXplKCkgJiYgbV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5jaG9vc2VJY29uRm9y
RmlsZXModGhpcywgbV9maWxlbmFtZXMpOwotfQotCi12b2lkIEZpbGVDaG9vc2VyOjppY29uTG9h
ZGVkKFBhc3NSZWZQdHI8SWNvbj4gaWNvbikKLXsKLSAgICBtX2ljb24gPSBpY29uOwotICAgIGlm
ICghbV9pc0luaXRpYWxpemluZyAmJiBtX2ljb24gJiYgbV9jbGllbnQpCi0gICAgICAgIG1fY2xp
ZW50LT5yZXBhaW50KCk7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZpbGVDaG9vc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5o
CmluZGV4IGVkM2I0MzAwYTNlZDMwYmZkYmZmYWQwMTNiMzQxOTFkOWQyNzgyMTkuLmJjYzI5YTJj
OTQ5MmEzNmU0NjI0ZWFhZGI1OTMyN2VkM2JmZmI3ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RmlsZUNob29zZXIuaApAQCAtMzYsMTkgKzM2LDE1IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEZpbGVDaG9vc2VyOwotY2xhc3MgRm9udDsKLWNsYXNzIEljb247CiAKIGNsYXNzIEZp
bGVDaG9vc2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdmFsdWVDaGFuZ2Vk
KCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KCkgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBhbGxvd3NNdWx0aXBsZUZpbGVzKCkgPSAwOwogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBMT0FE
KQogICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NEaXJlY3RvcnlVcGxvYWQoKSA9IDA7CiAjZW5kaWYK
ICAgICB2aXJ0dWFsIFN0cmluZyBhY2NlcHRUeXBlcygpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
Y2hvb3NlSWNvbkZvckZpbGVzKEZpbGVDaG9vc2VyKiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKSA9
IDA7CiAgICAgdmlydHVhbCB+RmlsZUNob29zZXJDbGllbnQoKTsKIH07CiAKQEAgLTYyLDE0ICs1
OCwxMCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzKCkg
Y29uc3QgeyByZXR1cm4gbV9maWxlbmFtZXM7IH0KIAotICAgIEljb24qIGljb24oKSBjb25zdCB7
IHJldHVybiBtX2ljb24uZ2V0KCk7IH0KLQogICAgIHZvaWQgY2xlYXIoKTsgLy8gZm9yIHVzZSBi
eSBjbGllbnQ7IGRvZXMgbm90IGNhbGwgdmFsdWVDaGFuZ2VkCiAKICAgICB2b2lkIGNob29zZUZp
bGUoY29uc3QgU3RyaW5nJiBwYXRoKTsKICAgICB2b2lkIGNob29zZUZpbGVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwYXRocyk7Ci0gICAgLy8gQ2FsbGVkIHdoZW4gRmlsZUNob29zZXJDbGllbnQg
ZmluaXNoZXMgdG8gbG9hZCBhbiBpY29uIHJlcXVlc3RlZCBieSBpY29uRm9yRmlsZXMoKS4KLSAg
ICB2b2lkIGljb25Mb2FkZWQoUGFzc1JlZlB0cjxJY29uPik7CiAKICAgICBib29sIGFsbG93c011
bHRpcGxlRmlsZXMoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5hbGxvd3NN
dWx0aXBsZUZpbGVzKCkgOiBmYWxzZTsgfQogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBMT0FEKQpA
QCAtODAsMTIgKzcyLDkgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEZpbGVDaG9vc2VyKEZp
bGVDaG9vc2VyQ2xpZW50KiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGluaXRpYWxGaWxlbmFtZXMp
OwotICAgIHZvaWQgbG9hZEljb24oKTsKIAogICAgIEZpbGVDaG9vc2VyQ2xpZW50KiBtX2NsaWVu
dDsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2ZpbGVuYW1lczsKLSAgICBSZWZQdHI8SWNvbj4gbV9p
Y29uOwotICAgIGJvb2wgbV9pc0luaXRpYWxpemluZzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVJY29uTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVJY29uTG9hZGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNGRlOGE1ZjM5YWIwZDc0MzcwYmIxMGFjYWRmOWY2Y2NkN2UzZjVkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3BwCkBAIC0w
LDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZpbGVJ
Y29uTG9hZGVyLmgiCisKKyNpbmNsdWRlICJJY29uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworRmlsZUljb25Mb2FkZXJDbGllbnQ6On5GaWxlSWNvbkxvYWRlckNsaWVudCgpCit7Cit9CisK
K1Bhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+IEZpbGVJY29uTG9hZGVyOjpjcmVhdGUoRmlsZUlj
b25Mb2FkZXJDbGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZpbGVJ
Y29uTG9hZGVyKGNsaWVudCkpOworfQorCit2b2lkIEZpbGVJY29uTG9hZGVyOjpkaXNjb25uZWN0
Q2xpZW50KCkKK3sKKyAgICBtX2NsaWVudCA9IDA7Cit9CisKK3ZvaWQgRmlsZUljb25Mb2FkZXI6
Om5vdGlmeUZpbmlzaGVkKFBhc3NSZWZQdHI8SWNvbj4gaWNvbikKK3sKKyAgICBpZiAobV9jbGll
bnQpCisgICAgICAgIG1fY2xpZW50LT51cGRhdGVSZW5kZXJpbmcoaWNvbik7Cit9CisKK0ZpbGVJ
Y29uTG9hZGVyOjpGaWxlSWNvbkxvYWRlcihGaWxlSWNvbkxvYWRlckNsaWVudCogY2xpZW50KQor
ICAgIDogbV9jbGllbnQoY2xpZW50KQoreworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlSWNvbkxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RmlsZUljb25Mb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzM5NGQxZGVhNDc0YzE1ZDQyNjIwZDBkM2Iy
Y2MxMDRlMjU3YjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RmlsZUljb25Mb2FkZXIuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWZu
ZGVmIEZpbGVJY29uTG9hZGVyX2gKKyNkZWZpbmUgRmlsZUljb25Mb2FkZXJfaAorCisjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEljb247CisKK2NsYXNzIEZpbGVJY29uTG9hZGVyQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQ
dHI8SWNvbj4pID0gMDsKKyAgICB2aXJ0dWFsIH5GaWxlSWNvbkxvYWRlckNsaWVudCgpOworfTsK
KworY2xhc3MgRmlsZUljb25Mb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlSWNvbkxvYWRl
cj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZpbGVJY29uTG9hZGVyPiBjcmVh
dGUoRmlsZUljb25Mb2FkZXJDbGllbnQqKTsKKworICAgIHZvaWQgZGlzY29ubmVjdENsaWVudCgp
OworICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoUGFzc1JlZlB0cjxJY29uPik7CisKK3ByaXZhdGU6
CisgICAgZXhwbGljaXQgRmlsZUljb25Mb2FkZXIoRmlsZUljb25Mb2FkZXJDbGllbnQqKTsKKwor
ICAgIEZpbGVJY29uTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAppbmRleCBkZDczMDZlNTg2ZmQyZTcwNTNmNDU1NDE2
YmI0MWQwMWNiMjkyMWQ3Li41OGUzYTY1OGEyYmJhMjgzY2JiNDY1Yjc5OGM3OGZkODFiNmUyNGNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbC5jcHAKQEAgLTU2LDYgKzU2LDcgQEAgY29uc3QgaW50IGJ1dHRvblNoYWRvd0hlaWdo
dCA9IDI7CiAKIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCkKICAgICA6IFJlbmRlckJsb2NrKGlucHV0KQorICAg
ICwgbV9pY29uTG9hZGVyKEZpbGVJY29uTG9hZGVyOjpjcmVhdGUodGhpcykpCiB7CiAgICAgRmls
ZUxpc3QqIGxpc3QgPSBpbnB1dC0+ZmlsZXMoKTsKICAgICBWZWN0b3I8U3RyaW5nPiBmaWxlbmFt
ZXM7CkBAIC02MywxMyArNjQsMjQgQEAgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OlJlbmRlckZp
bGVVcGxvYWRDb250cm9sKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0KQogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKICAgICAgICAgZmlsZW5hbWVzLmFwcGVuZChsaXN0
LT5pdGVtKGkpLT5wYXRoKCkpOwogICAgIG1fZmlsZUNob29zZXIgPSBGaWxlQ2hvb3Nlcjo6Y3Jl
YXRlKHRoaXMsIGZpbGVuYW1lcyk7CisgICAgcmVxdWVzdEljb24oZmlsZW5hbWVzKTsKIH0KIAog
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6On5SZW5kZXJGaWxlVXBsb2FkQ29udHJvbCgpCiB7Cisg
ICAgbV9pY29uTG9hZGVyLT5kaXNjb25uZWN0Q2xpZW50KCk7CiAgICAgbV9maWxlQ2hvb3Nlci0+
ZGlzY29ubmVjdENsaWVudCgpOwogfQogCit2b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpy
ZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzKSBjb25zdAoreworICAg
IGlmICghZmlsZW5hbWVzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKENocm9t
ZSogY2hyb21lUG9pbnRlciA9IGNocm9tZSgpKQorICAgICAgICBjaHJvbWVQb2ludGVyLT5sb2Fk
SWNvbkZvckZpbGVzKGZpbGVuYW1lcywgbV9pY29uTG9hZGVyKTsKK30KKwogdm9pZCBSZW5kZXJG
aWxlVXBsb2FkQ29udHJvbDo6dmFsdWVDaGFuZ2VkKCkKIHsKICAgICAvLyBkaXNwYXRjaEZvcm1D
b250cm9sQ2hhbmdlRXZlbnQgbWF5IGRlc3Ryb3kgdGhpcyByZW5kZXJlcgpAQCAtNzgsMTAgKzkw
LDExIEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnZhbHVlQ2hhbmdlZCgpCiAgICAg
SFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxl
bWVudCo+KG5vZGUoKSk7CiAgICAgaW5wdXRFbGVtZW50LT5zZXRGaWxlTGlzdEZyb21SZW5kZXJl
cihmaWxlQ2hvb3Nlci0+ZmlsZW5hbWVzKCkpOwogICAgIGlucHV0RWxlbWVudC0+ZGlzcGF0Y2hG
b3JtQ29udHJvbENoYW5nZUV2ZW50KCk7Ci0gCi0gICAgLy8gb25seSByZXBhaW50IGlmIGl0IGRv
ZXNuJ3Qgc2VlbSB3ZSBoYXZlIGJlZW4gZGVzdHJveWVkCi0gICAgaWYgKCFmaWxlQ2hvb3Nlci0+
ZGlzY29ubmVjdGVkKCkpCi0gICAgICAgIHJlcGFpbnQoKTsKKyAgICBpZiAoZmlsZUNob29zZXIt
PmRpc2Nvbm5lY3RlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICByZXF1ZXN0SWNvbihmaWxl
Q2hvb3Nlci0+ZmlsZW5hbWVzKCkpOworICAgIHJlcGFpbnQoKTsKIH0KIAogYm9vbCBSZW5kZXJG
aWxlVXBsb2FkQ29udHJvbDo6YWxsb3dzTXVsdGlwbGVGaWxlcygpCkBAIC0xMTQsMTAgKzEyNywx
MyBAQCBTdHJpbmcgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmFjY2VwdFR5cGVzKCkKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSktPmFjY2VwdCgpOwog
fQogCi12b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpjaG9vc2VJY29uRm9yRmlsZXMoRmls
ZUNob29zZXIqIGNob29zZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCit2b2lk
IFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp1cGRhdGVSZW5kZXJpbmcoUGFzc1JlZlB0cjxJY29u
PiBpY29uKQogewotICAgIGlmIChDaHJvbWUqIGNocm9tZVBvaW50ZXIgPSBjaHJvbWUoKSkKLSAg
ICAgICAgY2hyb21lUG9pbnRlci0+Y2hvb3NlSWNvbkZvckZpbGVzKGZpbGVuYW1lcywgY2hvb3Nl
cik7CisgICAgaWYgKG1faWNvbiA9PSBpY29uKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2lj
b24gPSBpY29uOworICAgIHJlcGFpbnQoKTsKIH0KIAogdm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbDo6Y2xpY2soKQpAQCAtMTU0LDYgKzE3MCw3IEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2w6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICBBU1NFUlQoZmlsZXMpOwogICAgIGlmIChm
aWxlcyAmJiBmaWxlcy0+aXNFbXB0eSgpICYmICFtX2ZpbGVDaG9vc2VyLT5maWxlbmFtZXMoKS5p
c0VtcHR5KCkpIHsKICAgICAgICAgbV9maWxlQ2hvb3Nlci0+Y2xlYXIoKTsKKyAgICAgICAgbV9p
Y29uID0gMDsKICAgICAgICAgcmVwYWludCgpOwogICAgIH0KIH0KQEAgLTE2NiwxNCArMTgzLDEz
IEBAIHN0YXRpYyBpbnQgbm9kZVdpZHRoKE5vZGUqIG5vZGUpCiBpbnQgUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2w6Om1heEZpbGVuYW1lV2lkdGgoKSBjb25zdAogewogICAgIHJldHVybiBtYXgoMCwg
Y29udGVudFdpZHRoKCkgLSBub2RlV2lkdGgodXBsb2FkQnV0dG9uKCkpIC0gYWZ0ZXJCdXR0b25T
cGFjaW5nCi0gICAgICAgIC0gKG1fZmlsZUNob29zZXItPmljb24oKSA/IGljb25XaWR0aCArIGlj
b25GaWxlbmFtZVNwYWNpbmcgOiAwKSk7CisgICAgICAgIC0gKG1faWNvbiA/IGljb25XaWR0aCAr
IGljb25GaWxlbmFtZVNwYWNpbmcgOiAwKSk7CiB9CiAKIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2w6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2ludCYg
cGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxF
KQogICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKG1fZmlsZUNob29zZXIpOwogICAgIAogICAg
IC8vIFB1c2ggYSBjbGlwLgogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZl
cigqcGFpbnRJbmZvLmNvbnRleHQsIGZhbHNlKTsKQEAgLTE5OSw3ICsyMTUsNyBAQCB2b2lkIFJl
bmRlckZpbGVVcGxvYWRDb250cm9sOjpwYWludE9iamVjdChQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgSW50UG9pbnQmCiAKICAgICAgICAgaW50IGJ1dHRvbldpZHRoID0gbm9kZVdpZHRoKGJ1
dHRvbik7CiAgICAgICAgIGludCBidXR0b25BbmRJY29uV2lkdGggPSBidXR0b25XaWR0aCArIGFm
dGVyQnV0dG9uU3BhY2luZwotICAgICAgICAgICAgKyAobV9maWxlQ2hvb3Nlci0+aWNvbigpID8g
aWNvbldpZHRoICsgaWNvbkZpbGVuYW1lU3BhY2luZyA6IDApOworICAgICAgICAgICAgKyAobV9p
Y29uID8gaWNvbldpZHRoICsgaWNvbkZpbGVuYW1lU3BhY2luZyA6IDApOwogICAgICAgICBpbnQg
dGV4dFg7CiAgICAgICAgIGlmIChzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAg
ICAgICAgICAgICB0ZXh0WCA9IGNvbnRlbnRMZWZ0ICsgYnV0dG9uQW5kSWNvbldpZHRoOwpAQCAt
MjE2LDcgKzIzMiw3IEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50T2JqZWN0
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2ludCYKICAgICAgICAgLy8gRHJhdyB0
aGUgZmlsZW5hbWUKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmRyYXdCaWRpVGV4dChmb250
LCB0ZXh0UnVuLCBJbnRQb2ludCh0ZXh0WCwgdGV4dFkpKTsKICAgICAgICAgCi0gICAgICAgIGlm
IChtX2ZpbGVDaG9vc2VyLT5pY29uKCkpIHsKKyAgICAgICAgaWYgKG1faWNvbikgewogICAgICAg
ICAgICAgLy8gRGV0ZXJtaW5lIHdoZXJlIHRoZSBpY29uIHNob3VsZCBiZSBwbGFjZWQKICAgICAg
ICAgICAgIGludCBpY29uWSA9IHBhaW50T2Zmc2V0LnkoKSArIGJvcmRlclRvcCgpICsgcGFkZGlu
Z1RvcCgpICsgKGNvbnRlbnRIZWlnaHQoKSAtIGljb25IZWlnaHQpIC8gMjsKICAgICAgICAgICAg
IGludCBpY29uWDsKQEAgLTIyNiw3ICsyNDIsNyBAQCB2b2lkIFJlbmRlckZpbGVVcGxvYWRDb250
cm9sOjpwYWludE9iamVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UG9pbnQmCiAg
ICAgICAgICAgICAgICAgaWNvblggPSBjb250ZW50TGVmdCArIGNvbnRlbnRXaWR0aCgpIC0gYnV0
dG9uV2lkdGggLSBhZnRlckJ1dHRvblNwYWNpbmcgLSBpY29uV2lkdGg7CiAKICAgICAgICAgICAg
IC8vIERyYXcgdGhlIGZpbGUgaWNvbgotICAgICAgICAgICAgbV9maWxlQ2hvb3Nlci0+aWNvbigp
LT5wYWludChwYWludEluZm8uY29udGV4dCwgSW50UmVjdChpY29uWCwgaWNvblksIGljb25XaWR0
aCwgaWNvbkhlaWdodCkpOworICAgICAgICAgICAgbV9pY29uLT5wYWludChwYWludEluZm8uY29u
dGV4dCwgSW50UmVjdChpY29uWCwgaWNvblksIGljb25XaWR0aCwgaWNvbkhlaWdodCkpOwogICAg
ICAgICB9CiAgICAgfQogCkBAIC0zMTUsNiArMzMxLDcgQEAgU3RyaW5nIFJlbmRlckZpbGVVcGxv
YWRDb250cm9sOjpidXR0b25WYWx1ZSgpCiAKIFN0cmluZyBSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bDo6ZmlsZVRleHRWYWx1ZSgpIGNvbnN0CiB7CisgICAgQVNTRVJUKG1fZmlsZUNob29zZXIpOwog
ICAgIHJldHVybiB0aGVtZSgpLT5maWxlTGlzdE5hbWVGb3JXaWR0aChtX2ZpbGVDaG9vc2VyLT5m
aWxlbmFtZXMoKSwgc3R5bGUoKS0+Zm9udCgpLCBtYXhGaWxlbmFtZVdpZHRoKCkpOwogfQogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRD
b250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2wuaAppbmRleCBiYzVhYTViYjg3NThhNmQ5MDQyZWMwNDhjZjE2ODJlY2Y2MWY3OWFmLi5iNmQ0
YzBkM2Q3MzQ3OGI5ZmFiZjk1NjIxZjRlNGZhMTRlYmM2N2RhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaApAQCAtMjIsNiArMjIs
NyBAQAogI2RlZmluZSBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbF9oCiAKICNpbmNsdWRlICJGaWxl
Q2hvb3Nlci5oIgorI2luY2x1ZGUgIkZpbGVJY29uTG9hZGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
QmxvY2suaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzMsNyArMzQsNyBAQCBjbGFzcyBI
VE1MSW5wdXRFbGVtZW50OwogLy8gc3VmZmljaWVudCBzcGFjZSB0byBkcmF3IGEgZmlsZSBpY29u
IGFuZCBmaWxlbmFtZS4gVGhlIFJlbmRlckJ1dHRvbiBoYXMgYSBzaGFkb3cgbm9kZQogLy8gYXNz
b2NpYXRlZCB3aXRoIGl0IHRvIHJlY2VpdmUgY2xpY2svaG92ZXIgZXZlbnRzLgogCi1jbGFzcyBS
ZW5kZXJGaWxlVXBsb2FkQ29udHJvbCA6IHB1YmxpYyBSZW5kZXJCbG9jaywgcHJpdmF0ZSBGaWxl
Q2hvb3NlckNsaWVudCB7CitjbGFzcyBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbCA6IHB1YmxpYyBS
ZW5kZXJCbG9jaywgcHJpdmF0ZSBGaWxlQ2hvb3NlckNsaWVudCwgcHJpdmF0ZSBGaWxlSWNvbkxv
YWRlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2woSFRNTElu
cHV0RWxlbWVudCopOwogICAgIHZpcnR1YWwgflJlbmRlckZpbGVVcGxvYWRDb250cm9sKCk7CkBA
IC01OCwyNCArNTksMjcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEZpbGVDaG9vc2VyQ2xpZW50IG1l
dGhvZHMuCiAgICAgdm9pZCB2YWx1ZUNoYW5nZWQoKTsKLSAgICB2b2lkIHJlcGFpbnQoKSB7IFJl
bmRlckJsb2NrOjpyZXBhaW50KCk7IH0KICAgICBib29sIGFsbG93c011bHRpcGxlRmlsZXMoKTsK
ICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9BRCkKICAgICBib29sIGFsbG93c0RpcmVjdG9yeVVw
bG9hZCgpOwogICAgIHZvaWQgcmVjZWl2ZURyb3BGb3JEaXJlY3RvcnlVcGxvYWQoY29uc3QgVmVj
dG9yPFN0cmluZz4mKTsKICNlbmRpZgogICAgIFN0cmluZyBhY2NlcHRUeXBlcygpOwotICAgIHZv
aWQgY2hvb3NlSWNvbkZvckZpbGVzKEZpbGVDaG9vc2VyKiwgY29uc3QgVmVjdG9yPFN0cmluZz4m
KTsKKworICAgIC8vIEZpbGVJY29uTG9hZGVyQ2xpZW50IG1ldGhvZHMuCisgICAgdm9pZCB1cGRh
dGVSZW5kZXJpbmcoUGFzc1JlZlB0cjxJY29uPik7CiAKICAgICBDaHJvbWUqIGNocm9tZSgpIGNv
bnN0OwogICAgIGludCBtYXhGaWxlbmFtZVdpZHRoKCkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxS
ZW5kZXJTdHlsZT4gY3JlYXRlQnV0dG9uU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudFN0
eWxlKSBjb25zdDsKICAgICAKICAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZv
clBvaW50KGNvbnN0IEludFBvaW50Jik7CiAKICAgICBIVE1MSW5wdXRFbGVtZW50KiB1cGxvYWRC
dXR0b24oKSBjb25zdDsKKyAgICB2b2lkIHJlcXVlc3RJY29uKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JikgY29uc3Q7CiAKICAgICBSZWZQdHI8RmlsZUNob29zZXI+IG1fZmlsZUNob29zZXI7CisgICAg
UmVmUHRyPEZpbGVJY29uTG9hZGVyPiBtX2ljb25Mb2FkZXI7CisgICAgUmVmUHRyPEljb24+IG1f
aWNvbjsKIH07CiAKIGlubGluZSBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbCogdG9SZW5kZXJGaWxl
VXBsb2FkQ29udHJvbChSZW5kZXJPYmplY3QqIG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IGU3ZmFmMjViYTA3NDI2Zjg2ZDZjNjMzMzMyZTE5MGQw
M2Y3NzRiMmYuLjI5MWExYzcyYTgzMmY0MjBlMjQ2N2ZhMWU4Y2UxNzcyYjc4MmFmYzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcApAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgIkNhY2hlZFBhZ2UuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2lu
Y2x1ZGUgIkZpbGVDaG9vc2VyLmgiCisjaW5jbHVkZSAiRmlsZUljb25Mb2FkZXIuaCIKICNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDJiOWYwNGMxYjAxMmIzNTBjMjAy
M2Q4ZDZmYzMyZWIyMGIzYTFhMGIuLjZkOGI5MzlhN2NiNTU2YTkwMjQ5NTZiNzhkMzE5MWE0ZmM2
NjhkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEt
MDYtMTggIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZXBhcmF0ZSBjb25jZXJu
cyBvZiBsb2FkaW5nIGZpbGUgaWNvbnMgYW5kIGNob29zaW5nIGZpbGVzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MzEKKworICAgICAgICAqIHNy
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1w
bDo6bG9hZEljb25Gb3JGaWxlcyk6IFJlbmFtZWQgdG8gYmV0dGVyIHJlZmxlY3QgdGhlIGludGVu
dC4KKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOiBEaXR0by4KKyAgICAgICAgKiBz
cmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykljb25Mb2FkaW5nQ29tcGxldGlvbkltcGw6OldlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwp
OiBDaGFuZ2VkIHRvIHVzZSBGaWxlSWNvbkxvYWRlci4KKyAgICAgICAgKFdlYktpdDo6V2ViSWNv
bkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6ZGlkTG9hZEljb24pOiBEaXR0by4KKyAgICAgICAgKiBz
cmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5oOiBEaXRvLgorCiAyMDExLTA2LTE3ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJvbGwgQ2hyb21pdW0g
REVQUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHAKaW5kZXggZjcxNWNjYzAwNTRjYmM2YzZmODg3ZTBjNzJhNDc3MTA4ZjJkYmFlMi4uYTMxOWRk
MjIyOTZmYTc1M2M0ODJmM2E2OTEyOTg5NjlmZDc0M2JmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNp
bmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkV4dGVybmFsUG9wdXBNZW51Lmgi
CiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJGaWxlSWNvbkxvYWRlci5oIgog
I2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNp
bmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTQ5LDYgKzUwLDcgQEAKICNpbmNsdWRlICJHcmFwaGlj
c0xheWVyLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3Vs
dC5oIgorI2luY2x1ZGUgIkljb24uaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAi
TmF2aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1ZGUgIk5vZGUuaCIKQEAgLTY4NiwxMSArNjg4LDEx
IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFz
c1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNoCiAgICAgY2hvb3NlckNvbXBsZXRpb24tPmRpZENo
b29zZUZpbGUoV2ViVmVjdG9yPFdlYlN0cmluZz4oKSk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50
SW1wbDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMs
IEZpbGVDaG9vc2VyKiBmaWxlQ2hvb3NlcikKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6bG9hZElj
b25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBQYXNzUmVmUHRyPEZp
bGVJY29uTG9hZGVyPiBmaWxlSWNvbkxvYWRlcikKIHsKICAgICBpZiAoIW1fd2ViVmlldy0+Y2xp
ZW50KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBs
KiBpY29uQ29tcGxldGlvbiA9IG5ldyBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKGZpbGVD
aG9vc2VyKTsKKyAgICBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKiBpY29uQ29tcGxldGlv
biA9IG5ldyBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKGZpbGVJY29uTG9hZGVyKTsKICAg
ICBpZiAoIW1fd2ViVmlldy0+Y2xpZW50KCktPnF1ZXJ5SWNvbkZvckZpbGVzKGZpbGVuYW1lcywg
aWNvbkNvbXBsZXRpb24pKQogICAgICAgICBpY29uQ29tcGxldGlvbi0+ZGlkTG9hZEljb24oV2Vi
RGF0YSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuaAppbmRleCA4ZDcyNTJjNTc5NmMyOWU3MDIzODI4ZTMxZDdjYWIzZmM0ZTkzNzVlLi4wYzRm
MGM3MjU3MWNhNGE1ZjU1MmU3ZDYzNzc5ZTk4M2MwMzlkMTczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0xMzksNyArMTM5LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopOwogICAgIHZpcnR1YWwg
dm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVu
UGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPik7
Ci0gICAgdmlydHVhbCB2b2lkIGNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpT
dHJpbmc+JiwgV2ViQ29yZTo6RmlsZUNob29zZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZElj
b25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpGaWxlSWNvbkxvYWRlcj4pOwogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBMT0FEKQogICAgIHZp
cnR1YWwgdm9pZCBlbnVtZXJhdGVDaG9zZW5EaXJlY3RvcnkoY29uc3QgV1RGOjpTdHJpbmcmLCBX
ZWJDb3JlOjpGaWxlQ2hvb3NlciopOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuY3BwCmluZGV4
IGMxZGQzMjE3YjgyMTVmNjllMmU5NmFiYjU1OGZkYTRlZWNlYWZmMjMuLjQ2ODc1OTkwODZjYmNm
MjhmZjViNDI0Y2ZlYmY5MjQ3YTYwZjkxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuY3BwCkBAIC0z
OSw4ICszOSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0
aW9uSW1wbChGaWxlQ2hvb3NlciogY2hvb3NlcikKLSAgICA6IG1fZmlsZUNob29zZXIoY2hvb3Nl
cikKK1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGw6OldlYkljb25Mb2FkaW5nQ29tcGxldGlv
bkltcGwoUGFzc1JlZlB0cjxGaWxlSWNvbkxvYWRlcj4gZmlsZUljb25Mb2FkZXIpCisgICAgOiBt
X2ZpbGVJY29uTG9hZGVyKGZpbGVJY29uTG9hZGVyKQogewogfQogCkBAIC01Myw3ICs1Myw3IEBA
IHZvaWQgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6ZGlkTG9hZEljb24oY29uc3QgV2Vi
RGF0YSYgaWNvbkRhdGEpCiAgICAgaWYgKCFpY29uRGF0YS5pc0VtcHR5KCkpIHsKICAgICAgICAg
UmVmUHRyPEltYWdlPiBpbWFnZSA9IEJpdG1hcEltYWdlOjpjcmVhdGUoKTsKICAgICAgICAgaW1h
Z2UtPnNldERhdGEoaWNvbkRhdGEsIHRydWUpOwotICAgICAgICBtX2ZpbGVDaG9vc2VyLT5pY29u
TG9hZGVkKEljb246OmNyZWF0ZShpbWFnZSkpOworICAgICAgICBtX2ZpbGVJY29uTG9hZGVyLT5u
b3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGUoaW1hZ2UpKTsKICAgICB9CiAgICAgLy8gVGhpcyBv
YmplY3QgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KICAgICBkZWxldGUgdGhpczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbklt
cGwuaAppbmRleCA2ZTZmM2E4ZmNjYTRmM2U4NjY1YzAxOTliZmMwYWI1M2JiZTU2NTc2Li5jNjQx
MDg4MzQyN2E0MDZlMjUyMGU1OWExYTBjNjQzZWRhMjY5YTdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5o
CkBAIC0zMSwxMCArMzEsMTEgQEAKICNpZm5kZWYgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1w
bF9oCiAjZGVmaW5lIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGxfaAogCi0jaW5jbHVkZSAi
RmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJGaWxlSWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIldl
YkRhdGEuaCIKICNpbmNsdWRlICJXZWJJY29uTG9hZGluZ0NvbXBsZXRpb24uaCIKICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogdXNpbmcgV2Vi
S2l0OjpXZWJJY29uTG9hZGluZ0NvbXBsZXRpb247CiB1c2luZyBXZWJLaXQ6OldlYkRhdGE7CkBA
IC00MywxMyArNDQsMTMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkljb25Mb2Fk
aW5nQ29tcGxldGlvbkltcGwgOiBwdWJsaWMgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uIHsKIHB1
YmxpYzoKLSAgICBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKFdlYkNvcmU6OkZpbGVDaG9v
c2VyKik7CisgICAgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbChQYXNzUmVmUHRyPFdlYkNv
cmU6OkZpbGVJY29uTG9hZGVyPik7CiAgICAgdmlydHVhbCB2b2lkIGRpZExvYWRJY29uKGNvbnN0
IFdlYkRhdGEmKTsKIAogcHJpdmF0ZToKICAgICB+V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1w
bCgpOwogCi0gICAgUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPiBtX2ZpbGVDaG9vc2VyOwor
ICAgIFJlZlB0cjxXZWJDb3JlOjpGaWxlSWNvbkxvYWRlcj4gbV9maWxlSWNvbkxvYWRlcjsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDFlZTE0NTNmN2Nl
MTlmMzA5MTc4MWU2MmZiOTA1NDVlYTk1MTdjZmQuLjU0ODdkODVjNmI5MDRkNTNlZWViMTYzNjU4
OTdiMTJjNjdkOGFkZjEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0w
Ni0xOCAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlcGFyYXRlIGNvbmNlcm5z
IG9mIGxvYWRpbmcgZmlsZSBpY29ucyBhbmQgY2hvb3NpbmcgZmlsZXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzMQorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudEVmbDo6bG9hZEljb25Gb3JGaWxlcyk6IFJlbmFtZWQuCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmg6CisKIDIwMTEtMDYtMTUgIEdyemVnb3J6IEN6YWpr
b3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRFZmwuY3BwCmluZGV4IGMxNmU1OTA2ZTM2Yzk2MzE4MjA0MDJlOTFmYmQ1
NmZkODYwYTczMTEuLmQxYmEyZTM0NmQ5NTExMTcxZDFiYzg0MjY0ZDk0MDY5ODhmZGY3MTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
RWZsLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2VuZGlmCiAjaW5jbHVkZSAiRVdlYktpdC5oIgog
I2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCisjaW5jbHVkZSAiRmlsZUljb25Mb2FkZXIuaCIKICNp
bmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyQ2xpZW50RWZsLmgiCkBAIC01MjcsNyArNTI4LDcgQEAgdm9pZCBDaHJvbWVD
bGllbnRFZmw6Omljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nLCAwdT4mLCBQYXNzUmVm
UHRyPEZpbGVDaG8KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVu
dEVmbDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUNob29z
ZXIqKQordm9pZCBDaHJvbWVDbGllbnRFZmw6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBQYXNzUmVmUHRyPEZpbGVJY29uTG9hZGVyPikKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuaAppbmRleCA2ZWQ5NTA3MDgyMzYwOTM2MzE1ZDQ1ZTJjNjY1ZDdjNzgyY2Q2
OWMyLi5mNmJjN2E5MWQzNWZmYmM4NGE0YjdlNzM1NWVlYTBjNDlhMzg2MTAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaApAQCAt
MTMzLDcgKzEzMyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9w
ZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKLSAgICB2aXJ0dWFsIHZv
aWQgY2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUNob29zZXIq
KTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+KTsKICAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0
YXRlRGlkQ2hhbmdlKGNvbnN0IE5vZGUqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3Io
Y29uc3QgQ3Vyc29yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZmU1MmRhNzNhNWU1ODllNjE2NzM3
ZTRiMmRmNTM3YjdiYWViNmQwMy4uNmVhODAxMTQ0ZTUwNTliYWQyNDczN2NkYjg2NTI1ZTUxMjQ4
OGUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA2LTE4ICBEaW1p
dHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VwYXJhdGUgY29uY2VybnMgb2YgbG9hZGlu
ZyBmaWxlIGljb25zIGFuZCBjaG9vc2luZyBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTMxCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6Omxv
YWRJY29uRm9yRmlsZXMpOiBSZW5hbWVkLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5oOgorCiAyMDExLTA2LTE3ICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFi
b3JhLmNvLnVrPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
CmluZGV4IDc5Yjk1OGQ4MzdjMzdiMWViZTIxOWJmZDI1NzY3YTQxOGNmMGI5MzMuLmE2NzE3M2Zj
MWMyMjUwYzYzYWM2ODI4NTMzMDJiZGQ2MDZmZjIxOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAtMjksNiArMjks
NyBAQAogI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIgogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgorI2luY2x1ZGUgIkZpbGVJY29uTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKQEAgLTY0Miw5ICs2NDMsOSBAQCB2b2lkIENo
cm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4g
cHJwRmlsZUNob29zZXIpCiAgICAgZ3RrX3dpZGdldF9kZXN0cm95KGRpYWxvZyk7CiB9CiAKLXZv
aWQgQ2hyb21lQ2xpZW50OjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3Ry
aW5nPiYgZmlsZW5hbWVzLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciogY2hvb3NlcikKK3ZvaWQgQ2hy
b21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIGZp
bGVuYW1lcywgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlSWNvbkxvYWRlcj4gZmlsZUljb25Mb2Fk
ZXIpCiB7Ci0gICAgY2hvb3Nlci0+aWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMo
ZmlsZW5hbWVzKSk7CisgICAgZmlsZUljb25Mb2FkZXItPm5vdGlmeUZpbmlzaGVkKEljb246OmNy
ZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnQ6OmRp
c3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiBhcmd1
bWVudHMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5oCmluZGV4IDcxNjMyN2NjMWIwMjdiMWI0MWQ4MjFkMDljZThjNmY0YTRi
MjNhMzkuLjRjMWE3YjdkYmQwY2ZiNjc4YmE4YTgxODNhNWFiY2Q5MTgwYzI4MTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCkBA
IC0xMjgsNyArMTI4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBzaG93Q29udGV4dE1lbnUoKSB7IH0KICNlbmRpZgogICAgICAgICB2aXJ0dWFsIHZvaWQgcnVu
T3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nl
cj4pOwotICAgICAgICB2aXJ0dWFsIHZvaWQgY2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciopOworICAgICAgICB2aXJ0dWFs
IHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpGaWxlSWNvbkxvYWRlcj4pOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBm
b3JtU3RhdGVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Tm9kZSopIHsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvaGFpa3UvQ2hh
bmdlTG9nCmluZGV4IDI0MGU1MTFkMzRkNjM2MWE5ZGZhN2M5MGFjNTE1NDRhZmEyNjJiNGIuLjhl
OWU3ZmRlOTkxOGVlNjZhN2I3YTY4MjEyYmU4ZjZkYWJmNWI5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDYtMTggIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6
a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTZXBhcmF0ZSBjb25jZXJucyBvZiBsb2FkaW5nIGZpbGUgaWNvbnMgYW5kIGNo
b29zaW5nIGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjI5MzEKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEhhaWt1Ojpsb2FkSWNvbkZvckZp
bGVzKTogUmVuYW1lZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlr
dS5oOgorCiAyMDExLTA2LTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwIGIvU291
cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAKaW5k
ZXggYjE2ZTA4Yzg5NDkxODljNDBmYTE1YjAxYzUwYzNhMGQzZjY2ZWViNC4uOThiYzczOTgzNWUz
NzllZjUxMmVlOTBjN2VjMDc2NGQ5NTJkODc1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9o
YWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnRIYWlr
dS5oIgogCisjaW5jbHVkZSAiRmlsZUljb25Mb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAg
LTM3MSw5ICszNzIsOSBAQCB2b2lkIENocm9tZUNsaWVudEhhaWt1OjpydW5PcGVuUGFuZWwoRnJh
bWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQog
Ci12b2lkIENocm9tZUNsaWVudEhhaWt1OjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUNob29zZXIqIGNob29zZXIpCit2b2lkIENocm9tZUNs
aWVudEhhaWt1Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFt
ZXMsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+IGZpbGVJY29uTG9hZGVyKQogewotICAgIGNo
b29zZXItPmljb25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOwor
ICAgIGZpbGVJY29uTG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmls
ZXMoZmlsZW5hbWVzKSk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OnNldEN1cnNvcihj
b25zdCBDdXJzb3ImKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oIGIvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oCmluZGV4IDMyMmQwYjIyNDU4MDE2MTk3ZTI2ZWFiNTJi
ZWJiMTAzMDZkYTU0NDAuLmZjYTI5MGZjMzA3MjRmNDcyZWM5NThjZWI2MTliMzc2ZDVmZDEwYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50SGFpa3UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEhhaWt1LmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9y
RnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHsgfQogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBy
dW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPik7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxl
Q2hvb3NlciopOworICAgICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+KTsKIAogICAgICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggMDAxNzM2NTg5N2I1OTMxN2NjODgwZDNhY2M5MDE1NTUwYjZmODRjMS4uZGQwMjdlYjlhMmI4
NGEwZjc3OWM4OTNlMzEzZDYwNTNmZjY0MTdiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDExLTA2LTE4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2Vw
YXJhdGUgY29uY2VybnMgb2YgbG9hZGluZyBmaWxlIGljb25zIGFuZCBjaG9vc2luZyBmaWxlcy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTMxCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OmxvYWRJY29uRm9yRmlsZXMpOiBSZW5hbWVkLgorCiAyMDExLTA2LTE2ICBTaGVyaWZmIEJv
dCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByODkwMjYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDZmOWYwOWM5YjlkM2EwYjM2ZWRiYjE4N2JiNmI4
MGYwY2Q0NzBhNGIuLmYyMzI3MThiYzg4MDZjOTU4YTdjZTg3MWNhMjIzZDE4ZTAwYWFiZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZv
aWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxl
Q2hvb3Nlcj4pOwotICAgIHZpcnR1YWwgdm9pZCBjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyKik7CisgICAgdmlydHVhbCB2
b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6RmlsZUljb25Mb2FkZXI+KTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJz
b3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA1YjUyOTkwNGU5NTBlNzVj
MDk4MTJmYTQ1YTAyOTU0M2Q2ZDRkOGNhLi4xMjIwOTU3Zjc1OTkwZGFiZDBhZjM3MjA0ZjZjODY4
MDBkMmYzN2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC01NSw2ICs1NSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FbGVtZW50Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ZpbGVJY29uTG9h
ZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9G
cmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CkBAIC03ODQsOSAr
Nzg1LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NS
ZWZQdHI8RmlsZUNob29zZXI+IGNob29zZXIpCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNob29zZUljb25Gb3JGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlQ2hvb3NlciogY2hvb3NlcikKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxl
bmFtZXMsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+IGljb25Mb2FkZXIpCiB7Ci0gICAgY2hv
b3Nlci0+aWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7Cisg
ICAgaWNvbkxvYWRlci0+bm90aWZ5RmluaXNoZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZp
bGVuYW1lcykpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0Q3Vyc29yKGNvbnN0IFdl
YkNvcmU6OkN1cnNvciYgY3Vyc29yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBiMDk3Y2QwYmNmZGJmM2Iw
MTlhYTA1MmI3YWY4YjIyNGFkN2IzYzk3Li4wMzI0MWRhMDE4MGNhNWQ0NmNiM2JhNzJjMmViNTMz
ZTUxZmZkYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA2LTE4ICBE
aW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VwYXJhdGUgY29uY2VybnMgb2YgbG9h
ZGluZyBmaWxlIGljb25zIGFuZCBjaG9vc2luZyBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTMxCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRR
dDo6bG9hZEljb25Gb3JGaWxlcyk6IFJlbmFtZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuaDoKKwogMjAxMS0wNi0xNyAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5t
ZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5n
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmNwcAppbmRleCA2NTVlODcyODY2ZDI3YWNhZWEzYjkzN2I2MmNlOWQzMTczNTE5MDdiLi43ZTBm
YzNlYzNkMjY2OWZkNjgxZGIxM2Q3NWFmMmRhMWNjZDc2NGJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcApAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlVHJhY2tlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJGaWxlSWNvbkxvYWRlci5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC02MDgsOSArNjA5LDkgQEAgdm9pZCBDaHJvbWVDbGllbnRR
dDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJw
RmlsZUMKICAgICB9CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50UXQ6OmNob29zZUljb25Gb3JGaWxl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlQ2hvb3NlciogY2hvb3NlcikK
K3ZvaWQgQ2hyb21lQ2xpZW50UXQ6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGZpbGVuYW1lcywgUGFzc1JlZlB0cjxGaWxlSWNvbkxvYWRlcj4gZmlsZUljb25Mb2FkZXIp
CiB7Ci0gICAgY2hvb3Nlci0+aWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmls
ZW5hbWVzKSk7CisgICAgZmlsZUljb25Mb2FkZXItPm5vdGlmeUZpbmlzaGVkKEljb246OmNyZWF0
ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRRdDo6c2V0
Q3Vyc29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IDg4ZTY0MmM4ODBlNDk0MzViZmE4YzEx
NjE4Y2U3MzVmYjBmMTk5NDQuLmJhMDkxOTlhOTI2MGJhNTY3NmQ5YjVmZjAxZDQxOGRjZDc0NzRh
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmgKQEAgLTQ2LDYgKzQ2LDcgQEAgY2xhc3MgUVdlYlBhZ2U7CiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEZpbGVDaG9vc2VyOworY2xhc3MgRmlsZUljb25Mb2FkZXI7CiBjbGFzcyBG
bG9hdFJlY3Q7CiBjbGFzcyBQYWdlOwogc3RydWN0IEZyYW1lTG9hZFJlcXVlc3Q7CkBAIC0xNzQs
NyArMTc1LDcgQEAgcHVibGljOgogICAgIEZ1bGxTY3JlZW5WaWRlb1F0KiBmdWxsU2NyZWVuVmlk
ZW8oKTsKICNlbmRpZgogICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFz
c1JlZlB0cjxGaWxlQ2hvb3Nlcj4pOwotICAgICB2aXJ0dWFsIHZvaWQgY2hvb3NlSWNvbkZvckZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUNob29zZXIqKTsKKyAgICAgdmlydHVhbCB2
b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBQYXNzUmVmUHRyPEZp
bGVJY29uTG9hZGVyPik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNv
bnN0IE5vZGUqKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDlkOGY3OWUwZjFlNjliY2I5OWM5
MzU2ZjQzYjk0OGIwYzM0OTcyMzQuLjlmMDIzYWZkYzBiOTRmMjUwMDU1ZjAzOWFhNTZiNThhODgz
MGE0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNi0xOCAgRGlt
aXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlcGFyYXRlIGNvbmNlcm5zIG9mIGxvYWRp
bmcgZmlsZSBpY29ucyBhbmQgY2hvb3NpbmcgZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzMQorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6bG9hZElj
b25Gb3JGaWxlcyk6IFJlbmFtZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lmg6CisKIDIwMTEtMDYtMTYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4OTAyNi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCmluZGV4IDJhMjM3NDgxNzg5OGM5NThiYTc1M2ZlY2ViNzIxNzk5Y2M0ZTczY2UuLjBiZTBm
ZjlmMTA2YmQ1NWJkNTFhYzYzZmExZGQ2NWU0MzBiYjJlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNDIsNiAr
NDIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0N1cnNvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0ZpbGVJY29uTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxv
YWRSZXF1ZXN0Lmg+CkBAIC03ODksOSArNzkwLDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1
bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGVDaG9vc2UK
ICAgICAvLyBGSVhNRTogU2hvdyBzb21lIHNvcnQgb2YgZXJyb3IgaWYgdG9vIG1hbnkgZmlsZXMg
YXJlIHNlbGVjdGVkIGFuZCB0aGUgYnVmZmVyIGlzIHRvbyBzbWFsbC4gIEZvciBub3csIHRoaXMg
d2lsbCBmYWlsIHNpbGVudGx5LgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6Y2hvb3NlSWNv
bkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIGZpbGVuYW1lcywgV2ViQ29yZTo6
RmlsZUNob29zZXIqIGNob29zZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JG
aWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBmaWxlbmFtZXMsIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6RmlsZUljb25Mb2FkZXI+IGZpbGVJY29uTG9hZGVyKQogewotICAgIGNob29zZXItPmlj
b25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGZpbGVJ
Y29uTG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5h
bWVzKSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29y
JiBjdXJzb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCmluZGV4IDE1MjllMWM0YzljOTU4YzUyZjg5ZGFjNDNjYzNhOTU2YTEwOWRl
ZjkuLjRjZTcwOThjNjgwMDU4MWUyOTVkNmMxZThjYjRjY2JjNjlmNDM0NTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0x
MzYsNyArMTM2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBwYWludEN1c3RvbVNjcm9s
bENvcm5lcihXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPik7Ci0gICAgdmlydHVhbCB2b2lkIGNob29z
ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUNo
b29zZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
V1RGOjpTdHJpbmc+JiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlSWNvbkxvYWRlcj4pOwogCiAg
ICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0No
YW5nZUxvZwppbmRleCAxOTc5OTZmYWIxMjg4Nzc2ZDAwZjY2M2E4MWMwMGU4ODU5OTdiNGZkLi5h
NjI1YmFjZGIzZGUzNGNlMDk0Nzc2ZjkyYjRjZTFiODVhZjlhYmY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA2LTE4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xh
emtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU2VwYXJhdGUgY29uY2VybnMgb2YgbG9hZGluZyBmaWxlIGljb25zIGFuZCBj
aG9vc2luZyBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYyOTMxCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5D
RS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjpsb2FkSWNvbkZvckZp
bGVzKTogUmVuYW1lZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5D
RS5oOgorCiAyMDExLTA2LTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwIGIvU291
cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKaW5k
ZXggNDQyNGMwMTUxMmQzMDAxNjU4YjIzNWQ5NjU3MzIyMjdmYjQwODNhNi4uNjViNWU4Zjc2OWUy
MWFkY2QwYjVkMWJmN2M1NmM0N2I2YzFhMTNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnRXaW5DRS5oIgogCiAjaW5jbHVkZSAiRmls
ZUNob29zZXIuaCIKKyNpbmNsdWRlICJGaWxlSWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIkljb24u
aCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25BY3Rp
b24uaCIKQEAgLTM1MCw5ICszNTEsOSBAQCB2b2lkIENocm9tZUNsaWVudFdpbkNFOjpydW5PcGVu
UGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBwcnBGaWxlQ2hvbwogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OmNob29zZUljb25G
b3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlQ2hvb3NlciogY2hv
b3NlcikKK3ZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIGZpbGVuYW1lcywgUGFzc1JlZlB0cjxGaWxlSWNvbkxvYWRlcj4gZmlsZUlj
b25Mb2FkZXIpCiB7Ci0gICAgY2hvb3Nlci0+aWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9y
RmlsZXMoZmlsZW5hbWVzKSk7CisgICAgZmlsZUljb25Mb2FkZXItPm5vdGlmeUZpbmlzaGVkKElj
b246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogdm9pZCBDaHJvbWVDbGll
bnRXaW5DRTo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKaW5kZXggMTNjOWVj
MGExMDM1Zjg5NjZmMmY2NDA1Yzk5OTU2YjFlZWJlOGU5My4uZDI0NWZhNzJmZjIwZTI5NTk0ZjI0
ODgwYzAyMmJhM2YyNjFiMmNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaApAQCAtMTQ5LDcgKzE0OSw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPik7CiAgICAgLy8gQXN5bmNocm9ub3VzIHJl
cXVlc3QgdG8gbG9hZCBhbiBpY29uIGZvciBzcGVjaWZpZWQgZmlsZW5hbWVzLgotICAgIHZpcnR1
YWwgdm9pZCBjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdl
YkNvcmU6OkZpbGVDaG9vc2VyKik7CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUljb25M
b2FkZXI+KTsKIAogICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IHRoZSBnaXZlbiBmb3JtIGVsZW1l
bnQgaGFzIGNoYW5nZWQuIFRoaXMgZnVuY3Rpb24KICAgICAvLyB3aWxsIGJlIGNhbGxlZCBmcmVx
dWVudGx5LCBzbyBoYW5kbGluZyBzaG91bGQgYmUgdmVyeSBmYXN0LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRl
eCA0NWMxODQ2MWI4NGQ0NTY4MjRmNWVkMmU0ODEyNGEyZGM3ZWIzNzk2Li4yOGMxZWJkZjcxYTZj
NGE4M2IwYWRjOGQyYTM2MmIxYzU0ZDY1MjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDExLTA2LTE4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VwYXJh
dGUgY29uY2VybnMgb2YgbG9hZGluZyBmaWxlIGljb25zIGFuZCBjaG9vc2luZyBmaWxlcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTMxCisKKyAg
ICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudFd4OjpjaG9vc2VJY29uRm9yRmlsZXMpOiBSZW5hbWVkLgorICAgICAg
ICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKwogMjAxMS0wNi0xMiAgQWRhbSBC
YXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQ
cm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
Q2hyb21lQ2xpZW50V3guY3BwIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9t
ZUNsaWVudFd4LmNwcAppbmRleCAxOTA5NmRlODc1YmNhNDM2ZTFkZWY1MGRhOTI2MTNmZjViZDNj
ZTZjLi4xZjI0YWFlNjQxMWY2MWJjMThlOGU0NzQ5ZDk5NzZjMjVhNjFmN2Y2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKICNlbmRpZgogI2luY2x1
ZGUgIkZpbGVDaG9vc2VyLmgiCisjaW5jbHVkZSAiRmlsZUljb25Mb2FkZXIuaCIKICNpbmNsdWRl
ICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZFJl
cXVlc3QuaCIKQEAgLTQ1NSw5ICs0NTYsOSBAQCB2b2lkIENocm9tZUNsaWVudFd4OjpydW5PcGVu
UGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudFd4OjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUNob29zZXIqIGNob29zZXIpCit2b2lkIENo
cm9tZUNsaWVudFd4OjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZp
bGVuYW1lcywgUGFzc1JlZlB0cjxGaWxlSWNvbkxvYWRlcj4gZmlsZUljb25Mb2FkZXIpCiB7Ci0g
ICAgY2hvb3Nlci0+aWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVz
KSk7CisgICAgZmlsZUljb25Mb2FkZXItPm5vdGlmeUZpbmlzaGVkKEljb246OmNyZWF0ZUljb25G
b3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRXeDo6c2V0Q3Vyc29y
KGNvbnN0IEN1cnNvciYgY3Vyc29yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJL
aXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmggYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guaAppbmRleCA4MjBjOGFiZTliODk4N2VjNjgxYzQzZTM2ODJiNGY3
NGU2ZjRmMzRmLi4zZWU3ODA1ZDZkYzI4Yzg2OWRjOWFmMjdiN2M3M2FhYmM3ZWFhNjQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAor
KysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaApAQCAt
MTM2LDcgKzEzNiw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9w
ZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKLSAgICB2aXJ0dWFsIHZv
aWQgY2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUNob29zZXIq
KTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYsIFBhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+KTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb3Jt
U3RhdGVEaWRDaGFuZ2UoY29uc3QgTm9kZSopIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODdhNWMwZWI1
M2NjNjJkZTVmYjMxZTZjNjg5MjM2MjIwZjYxNzQ1MC4uY2QzMDllNGIwMDdiMzVkMjIyYTE2ZWVi
YmRkYTQzMGZiMTM1ZDMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA2LTE4
ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VwYXJhdGUgY29uY2VybnMgb2Yg
bG9hZGluZyBmaWxlIGljb25zIGFuZCBjaG9vc2luZyBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTMxCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6IFJlbmFtZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAxMS0wNi0x
NyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbkNh
aXJvXSBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByODkwNjAgYW5kIHI4OTE2MS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAppbmRleCBlYTAwNGZjMjhlNTY4OTMwZWI0MDVhNzg3N2UzMDk3OTI2
ZDYyNjA2Li5jNzZlZjgyNjE1YTE3NGNhNTIyYTBlNDMzNDA1ZWM1M2U2ZTcwZjlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiV2ViU2VhcmNo
UG9wdXBNZW51LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZVRyYWNrZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlSWNvbkxv
YWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zy
YW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KQEAgLTYzNiw5ICs2
MzcsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwg
UGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSdW5PcGVuUGFuZWwoc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJD
bGllbnQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKS0+ZnJhbWVJRCgp
LCBwYXJhbWV0ZXJzKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjaG9vc2VJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUNob29zZXIqIGNob29z
ZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZmlsZW5hbWVzLCBQYXNzUmVmUHRyPEZpbGVJY29uTG9hZGVyPiBpY29uTG9hZGVy
KQogewotICAgIGNob29zZXItPmljb25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZp
bGVuYW1lcykpOworICAgIGljb25Mb2FkZXItPm5vdGlmeUZpbmlzaGVkKEljb246OmNyZWF0ZUlj
b25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldEN1
cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmlu
ZGV4IDczYTEyMmYwNTNkNWRjMWZlMzVmZjQ1MjliY2EzZTk5MTJiMDAxM2IuLjg0MTk5YjA0NWY1
YWIyODk5MGU0MzBmYTM0NTJiYmE2OTgyZmVkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAt
MTY5LDcgKzE2OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdl
b2xvY2F0aW9uKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZy
YW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pOwotICAgIHZpcnR1YWwgdm9p
ZCBjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBXZWJDb3JlOjpGaWxl
Q2hvb3NlciopOworICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlSWNvbkxvYWRlcj4pOwogCiAgICAg
dmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKIAo=
</data>
<flag name="review"
          id="91745"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97725</attachid>
            <date>2011-06-19 08:55:52 -0700</date>
            <delta_ts>2011-06-19 09:23:18 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-62931-20110619085551.patch</filename>
            <type>text/plain</type>
            <size>61337</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkxODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjFmYjM2
MmNiZWU1MjgzNGE3ZjJjYmEzYWVkYWVkMzQ5Y2ZmN2M5ZS4uYzRiZDI2OWZmMmRhMWQ0MzEyZDQ0
ZDg1YTc0Mjc0M2Y1MzdlMmVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwMjQsNiArMTAy
NCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5jcHAKICAg
ICBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCisg
ICAgcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3BwCiAgICAgcGxhdGZvcm0vRmlsZVN5c3RlbS5j
cHAKICAgICBwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwCiAgICAgcGxhdGZvcm0vS1VS
TC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA5NTc5YmViZDAyMmYzM2ExY2NlNmU2ZGY5ZmE3NjdiNmNhNzgx
MTgyLi4yYjE4YWQyZGFhYmZmNWM2NWRjMDlhYTIwMDhjNGE4ODI2MzNlNDEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNjAgQEAKKzIwMTEtMDYtMTggIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTZXBhcmF0ZSBjb25jZXJucyBvZiBsb2FkaW5nIGZpbGUgaWNvbnMgYW5kIGNob29z
aW5nIGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjI5MzEKKworICAgICAgICBMb2FkaW5nIGFuIGljb24gYW5kIGNob29zaW5nIGZpbGVzIGhh
dmUgc2ltaWxhciBhc3luYyBuYXR1cmUsIGJ1dCBjb21wbGV0ZWx5IGRpZmZlcmVudAorICAgICAg
ICBsaWZldGltZXM6IEZpbGVDaG9vc2VyIHNob3VsZCBvbmx5IGV4aXN0IHdoZW4gd2UgYXJlIGFj
dHVhbGx5IGF0dGVtcHRpbmcgdG8gY2hvb3NlIGEgZmlsZSwKKyAgICAgICAgbm90IGFueXRpbWUg
d2UgbmVlZCB0byByZW5kZXIgYW4gaW5wdXQgd2l0aCBhIHByb3BlciBpY29uLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBGaWxlSWNvbkxvYWRlciwgYSBzZXBhcmF0ZSBhYnN0cmFj
dGlvbiBmb3IgbG9hZGluZyBhbiBpY29uLCBhbmQgcmVtb3ZlcworICAgICAgICBhbnkgbm90aW9u
IG9mIGFuIGljb24gZnJvbSB0aGUgRmlsZUNob29zZXIuCisKKyAgICAgICAgQWxzbywgdGhlIGxv
YWRlZCBpY29uIGlzIG5vdyBzdG9yZWQgb24gdGhlIFJlbmRlckZpbGVVcGxvYWRDb250cm9sLCB3
aGljaCBiZXR0ZXIgbWF0Y2hlcyBpdHMKKyAgICAgICAgcHVycG9zZS4KKworICAgICAgICBSZWZh
Y3RvcmluZywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OiBBZGRlZCBGaWxlSWNvbkxvYWRlciB0byBidWlsZCBzeXN0ZW0uCisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IFVw
ZGF0ZWQuCisgICAgICAgICogV2ViQ29yZS5neXBpOiBBZGRlZCBGaWxlSWNvbkxvYWRlciB0byBi
dWlsZCBzeXN0ZW0uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9FbXB0eUNs
aWVudHMuaDogVXBkYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50Ojps
b2FkSWNvbkZvckZpbGVzKTogUmVuYW1lZCBmdW5jdGlvbiB0byBiZXR0ZXIgcmVmbGVjdCB3aGF0
IGl0IGRvZXMuCisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lOjpsb2FkSWNvbkZvckZpbGVzKTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUu
aDogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogRGl0dG8uCisgICAgICAg
ICogcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUNob29z
ZXI6OkZpbGVDaG9vc2VyKTogUmVtb3ZlZCBub3ctdW5uZWNlc3NhcnkgYm9vbC4KKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVDaG9vc2VyOjpjcmVhdGUpOiBSZW1vdmVkIHRoZSB0YW5nbGVkIHdlYi4K
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVDaG9vc2VyOjpjbGVhcik6IFJlbW92ZWQgaWNvbi1yZWxh
dGVkIGNvZGUuCisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6Y2hvb3NlRmlsZXMpOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL0ZpbGVJY29uTG9hZGVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZUNob29zZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6RmlsZUljb25Mb2FkZXJDbGll
bnQ6On5GaWxlSWNvbkxvYWRlckNsaWVudCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUljb25Mb2FkZXI6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RmlsZUljb25M
b2FkZXI6OmRpc2Nvbm5lY3RDbGllbnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJ
Y29uTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUljb25Mb2FkZXI6OkZpbGVJY29uTG9hZGVyKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
RmlsZUljb25Mb2FkZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmls
ZUNob29zZXIuY3BwLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6UmVuZGVy
RmlsZVVwbG9hZENvbnRyb2wpOiBBZGRlZCBuZXcgbWVtYmVyIGluaXRpYWxpemF0aW9ucy4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp+UmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wpOiBBZGRlZCBGaWxlSWNvbkxvYWRlciBkaXNjb25uZWN0LnMKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpyZXF1ZXN0SWNvbik6IEFkZGVkIGEgaGVs
cGVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnZhbHVlQ2hh
bmdlZCk6IENoYW5nZWQgdG8gcmVxdWVzdCBhbiBpY29uIGxvYWQuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBkYXRlUmVuZGVyaW5nKTogQWRkZWQgaW1wbGVt
ZW50YXRpb24gb2YgRmlsZUljb25Mb2FkZXJDbGllbnQgZnVuYy4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp1cGRhdGVGcm9tRWxlbWVudCk6IEFkZGVkIGNsZWFy
aW5nIG9mIGljb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6
bWF4RmlsZW5hbWVXaWR0aCk6IENoYW5nZWQgdG8gdXNlIG5ldyBtZW1iZXIgZGlyZWN0bHkuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpmaWxlVGV4
dFZhbHVlKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250
cm9sLmg6IFVwZGF0ZWQgZGVjbHMuCisKIDIwMTEtMDYtMTcgIEFsZXhleSBQcm9za3VyeWFrb3Yg
IDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDAxMzZjODk2YmQwMjc3ZWE3M2E0ZGI2ZTRk
MjNhNTY0NTA5ZWUzZmMuLjhlZmFkZjZjMGQwZjg2ZmQwNDE5OTUyODllYTI2NTgwMWFiMDY2ZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjM2Nyw2ICsyMzY3LDggQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudExvb3AuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlSWNvbkxvYWRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVJY29uTG9h
ZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVNZXRhZGF0YS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3RyZWFtQ2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0ZpbGVTdHJlYW0uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMjk5ZDcx
OTE2MmYwY2ZmYzgxNTlhYWU0NzM3Y2VlYmMxMjNhZTljMS4uOTYyNjkzYzQyMGY5NzUzZGZjNDNm
NjlmNjJmYWU0ZDU0MTJhMzQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE1Niw3ICsxNTYs
NiBAQCBfX1pON1dlYkNvcmUxMUNhY2hlZEZyYW1lMjZzZXRDYWNoZWRGcmFtZVBsYXRmb3JtRGF0
YUVOM1dURjEwUGFzc093blB0cklOU18yM0NhYwogX19aTjdXZWJDb3JlMTFFZGl0Q29tbWFuZDdy
ZWFwcGx5RXYKIF9fWk43V2ViQ29yZTExRWRpdENvbW1hbmQ3dW5hcHBseUV2CiBfX1pON1dlYkNv
cmUxMUZpbGVDaG9vc2VyMTBjaG9vc2VGaWxlRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3Jl
MTFGaWxlQ2hvb3NlcjEwaWNvbkxvYWRlZEVOM1dURjEwUGFzc1JlZlB0cklOU180SWNvbkVFRQog
X19aTjdXZWJDb3JlMTFGaWxlQ2hvb3NlcjExY2hvb3NlRmlsZXNFUktOM1dURjZWZWN0b3JJTlMx
XzZTdHJpbmdFTG0wRUVFCiBfX1pON1dlYkNvcmUxMUZpbGVDaG9vc2VyRDFFdgogX19aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjExbG9hZEFyY2hpdmVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfN0FyY2hp
dmVFRUUKQEAgLTM0Niw2ICszNDUsNyBAQCBfX1pON1dlYkNvcmUxNERvY3VtZW50TG9hZGVyQzFF
UktOU18xNVJlc291cmNlUmVxdWVzdEVSS05TXzE0U3Vic3RpdHV0ZURhdGFFCiBfX1pON1dlYkNv
cmUxNERvY3VtZW50TG9hZGVyQzJFUktOU18xNVJlc291cmNlUmVxdWVzdEVSS05TXzE0U3Vic3Rp
dHV0ZURhdGFFCiBfX1pON1dlYkNvcmUxNERvY3VtZW50TG9hZGVyRDJFdgogX19aTjdXZWJDb3Jl
MTREb2N1bWVudFdyaXRlcjExc2V0RW5jb2RpbmdFUktOM1dURjZTdHJpbmdFYgorX19aTjdXZWJD
b3JlMTRGaWxlSWNvbkxvYWRlcjE0bm90aWZ5RmluaXNoZWRFTjNXVEYxMFBhc3NSZWZQdHJJTlNf
NEljb25FRUUKIF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb24xMHNldEZvY3VzZWRFYgogX19a
TjdXZWJDb3JlMTRGcmFtZVNlbGVjdGlvbjEyc2V0U2VsZWN0aW9uRVJLTlNfMTZWaXNpYmxlU2Vs
ZWN0aW9uRWpOUzBfMTlDdXJzb3JBbGlnbk9uU2Nyb2xsRU5TXzE1VGV4dEdyYW51bGFyaXR5RU5T
XzIwRGlyZWN0aW9uYWxpdHlQb2xpY3lFCiBfX1pON1dlYkNvcmUxNEZyYW1lU2VsZWN0aW9uMTVy
ZXZlYWxTZWxlY3Rpb25FUktOU18xNVNjcm9sbEFsaWdubWVudEViCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggY2NiZjI3MTU4ODAwOGZhYmQ0YWJmYjhiMWE5MjcwYjQyNTU5NTVkMy4uODEwM2NmMDZiODM3
NzY0NzMyMzdiNDkwOTc2NmZkOWRkYWNmY2I1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzYwNiw2
ICszNjA2LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9FdmVudExvb3AuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRmls
ZUNob29zZXIuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlSWNvbkxvYWRlci5jcHAn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVJY29uTG9hZGVyLmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL0ZpbGVNZXRhZGF0YS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlU3Ry
ZWFtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybwppbmRleCBlMDViNzVjNGM0MzIwYmU0YzQwZWM3MGM1ODNkNGEwNGY3YWJjNjk3Li4zYWJj
MjFlNjdmMWYyMzhhNTQwN2ZkYTRhZTY5MmJjOGMxNDQwMTdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAt
OTcwLDYgKzk3MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL0RyYWdEYXRhLmNwcCBc
CiAgICAgcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIu
Y3BwIFwKKyAgICBwbGF0Zm9ybS9GaWxlSWNvbkxvYWRlci5jcHAgXAogICAgIHBsYXRmb3JtL0Zp
bGVTdHJlYW0uY3BwIFwKICAgICBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcCBcCiAgICAgcGxhdGZv
cm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDFkZDdjM2E1YjEwYTMyYTg2YmYyY2RlNzRhNTM5ODcz
MjY4MWQ1MGEuLjAzNjk0ODc2NmJhNTViN2VkOGU1ZGI0MGZiMTQyMmE1YzUzYTc1MGMgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNjM5MCw2
ICsyNjM5MCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxGaWxlSWNvbkxvYWRlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEZpbGVJY29uTG9hZGVyLmgi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXEZpbGVNZXRhZGF0YS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzNjgzZGY2NjM2Y2Rl
MTVhY2UzNWMyNmRhM2JiODk3Yjg5MWRiNzE5Li40ODc0MmI2ZDc5MWQ0YzAwZDZjZmJiZjhiZjRi
MzJiNWY4MTU1YTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC04NjAsNiArODYwLDggQEAKIAkJNDEyN0Q1MzcwRjhBQUIxRDAw
RTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxMjdENTM2MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5j
cHAgKi87IH07CiAJCTQxMzhEMzM1MTI0NDA1NDgwMDMyM0QzMyAvKiBFdmVudENvbnRleHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzhEMzMzMTI0
NDA1NDgwMDMyM0QzMyAvKiBFdmVudENvbnRleHQuaCAqLzsgfTsKIAkJNDEzOEQzMzYxMjQ0MDU0
ODAwMzIzRDMzIC8qIEV2ZW50Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTM4RDMzNDEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250
ZXh0LmNwcCAqLzsgfTsKKwkJNDE0Qjg2NzMxM0FEMDc0RTAwQjRCMzczIC8qIEZpbGVJY29uTG9h
ZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
NEI4NjcxMTNBRDA3NEUwMEI0QjM3MyAvKiBGaWxlSWNvbkxvYWRlci5jcHAgKi87IH07CisJCTQx
NEI4Njc0MTNBRDA3NEUwMEI0QjM3MyAvKiBGaWxlSWNvbkxvYWRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0Qjg2NzIxM0FEMDc0RTAwQjRCMzcz
IC8qIEZpbGVJY29uTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNDE1MEY5RjExMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1
MEY5RUYxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5oICovOyB9OwogCQk0
MTUwRjlGMjEyQjZFMEU3MDAwOEM4NjAgLyogU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTBGOUYwMTJCNkUwRTcw
MDA4Qzg2MCAvKiBTbGlkZXJUaHVtYkVsZW1lbnQuY3BwICovOyB9OwogCQk0MTU3QUY4MDEyRjFG
QjA0MDBBOEM2RjUgLyogTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTdBRjdFMTJGMUZCMDQwMEE4QzZGNSAv
KiBNZWRpYUNvbnRyb2xSb290RWxlbWVudC5oICovOyB9OwpAQCAtNzI2NCw2ICs3MjY2LDggQEAK
IAkJNDEyN0Q1MzYwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdFN0YXRlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDEzOEQzMzMxMjQ0MDU0ODAwMzIzRDMzIC8qIEV2ZW50Q29udGV4
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudENvbnRleHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzOEQzMzQxMjQ0MDU0ODAwMzIzRDMzIC8qIEV2
ZW50Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVu
dENvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTRCODY3MTEzQUQw
NzRFMDBCNEIzNzMgLyogRmlsZUljb25Mb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRmlsZUljb25Mb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTRCODY3MjEzQUQwNzRFMDBCNEIzNzMgLyogRmlsZUljb25Mb2FkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZUljb25Mb2FkZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1MEY5RUYxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRo
dW1iRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbGlkZXJUaHVt
YkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1MEY5RjAxMkI2RTBF
NzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTbGlkZXJUaHVtYkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTU3QUY3RTEyRjFGQjA0MDBBOEM2RjUgLyogTWVkaWFDb250cm9sUm9v
dEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9s
Um9vdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NjgzLDYgKzE4
Njg3LDggQEAKIAkJCQkxQ0ExOUUxNTBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRMb29wLmggKi8s
CiAJCQkJOTM0RkU5RTQwQjVDQTUzOTAwM0U0QTczIC8qIEZpbGVDaG9vc2VyLmNwcCAqLywKIAkJ
CQkwNjZDNzcyQTBBQjYwM0I3MDAyMzhDQzQgLyogRmlsZUNob29zZXIuaCAqLywKKwkJCQk0MTRC
ODY3MTEzQUQwNzRFMDBCNEIzNzMgLyogRmlsZUljb25Mb2FkZXIuY3BwICovLAorCQkJCTQxNEI4
NjcyMTNBRDA3NEUwMEI0QjM3MyAvKiBGaWxlSWNvbkxvYWRlci5oICovLAogCQkJCTJFRjFCRkU4
MTIxQzlGNDIwMEMyNzYyNyAvKiBGaWxlU3RyZWFtLmNwcCAqLywKIAkJCQkyRUYxQkZFOTEyMUM5
RjQyMDBDMjc2MjcgLyogRmlsZVN0cmVhbS5oICovLAogCQkJCTJFRjFCRkY4MTIxQ0IwQ0UwMEMy
NzYyNyAvKiBGaWxlU3RyZWFtQ2xpZW50LmggKi8sCkBAIC0yMDk4MSw2ICsyMDk4Nyw3IEBACiAJ
CQkJODkzQzQ4MEYxMjQ4QkQzQTAwMkIzRDg2IC8qIEZpbGVFbnRyeVN5bmMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3NkQ2QzgzMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlRXJyb3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJFREYzNjlGMTIyQzk0QzgwMDJGN0Q0RSAvKiBGaWxlRXhjZXB0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTRCODY3NDEzQUQwNzRFMDBCNEIzNzMgLyogRmlsZUljb25M
b2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREJFMTI1MUYxMkQwMDNFRjI2OSAvKiBG
aWxlSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzZENkM4NjEyMkI4QTNEMDAxRkQx
RjcgLyogRmlsZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2ODlGMUFGMTI2N0JBRTEwMEU4
RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjM4ODEsNiArMjM4ODgs
NyBAQAogCQkJCTkzNEZFOUU1MEI1Q0E1MzkwMDNFNEE3MyAvKiBGaWxlQ2hvb3Nlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk4OTg3ODU2MTEyMkNBMDY0MDAzQUFCREEgLyogRmlsZUVudHJ5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTg5M0M0ODBFMTI0OEJEM0EwMDJCM0Q4NiAvKiBGaWxlRW50
cnlTeW5jLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxNEI4NjczMTNBRDA3NEUwMEI0QjM3MyAv
KiBGaWxlSWNvbkxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RCRDEyNTFGMTJE
MDAzRUYyNjkgLyogRmlsZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzZENkM4
NTEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc2
RDZDODgxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggMzNjMjZiY2Q3ZDc1OTM3NjRkZmI5
YzM1ODE2MDljZDQ0YjcyMGVjNS4uYmE4ODVjNGJkMGRiMzkwYTRlZjYxNTI4ZjZiMTEwMDUyMGVm
MzBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTk3LDcgKzE5Nyw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFt
ZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY2hvb3Nl
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUNob29zZXIqKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZp
bGVJY29uTG9hZGVyKikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdl
KGNvbnN0IE5vZGUqKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDA0ZjllNGI5Y2My
ODlkMDE4MDI1OWM0ODI0ZTY4ZWUwNTJjYmY5MzEuLmMwYWJhOTRlZGY2ZjljZjhhZjExODc0OGFi
ZDk2OWYyYTIyN2MwY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTI0LDYgKzI0LDcgQEAK
ICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJETlMuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgorI2luY2x1ZGUgIkZpbGVJY29uTG9hZGVyLmgiCiAjaW5jbHVkZSAiRmlsZUNo
b29zZXIuaCIKICNpbmNsdWRlICJGaWxlTGlzdC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgpA
QCAtMzQsNiArMzUsNyBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaW5jbHVkZSAiSWNv
bi5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCIKQEAgLTQ2Miw5ICs0NjQs
OSBAQCB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxG
aWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiAgICAgbV9jbGllbnQtPnJ1bk9wZW5QYW5lbChmcmFt
ZSwgZmlsZUNob29zZXIpOwogfQogCi12b2lkIENocm9tZTo6Y2hvb3NlSWNvbkZvckZpbGVzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVDaG9vc2VyKiBmaWxlQ2hvb3NlcikK
K3ZvaWQgQ2hyb21lOjpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxl
bmFtZXMsIEZpbGVJY29uTG9hZGVyKiBsb2FkZXIpCiB7Ci0gICAgbV9jbGllbnQtPmNob29zZUlj
b25Gb3JGaWxlcyhmaWxlbmFtZXMsIGZpbGVDaG9vc2VyKTsKKyAgICBtX2NsaWVudC0+bG9hZElj
b25Gb3JGaWxlcyhmaWxlbmFtZXMsIGxvYWRlcik7CiB9CiAKIHZvaWQgQ2hyb21lOjpkaXNwYXRj
aFZpZXdwb3J0RGF0YURpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRz
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggYmFiN2VlM2ZiZmZmMDI5MjY3NTQ0NjE2MjJh
NWIzOThhM2IyN2NlMC4uZGI0NTg4Yjc4ODFiYzFlY2YxODNhMzc5Mzk5Njk0OGI4YjU3MGRmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgIGNsYXNzIENocm9tZUNsaWVudDsKICAgICBjbGFzcyBGaWxlQ2hvb3NlcjsKKyAgICBj
bGFzcyBGaWxlSWNvbkxvYWRlcjsKICAgICBjbGFzcyBGbG9hdFJlY3Q7CiAgICAgY2xhc3MgRnJh
bWU7CiAgICAgY2xhc3MgR2VvbG9jYXRpb247CkBAIC0xNTIsNyArMTUzLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAKICAgICAgICAgdm9pZCBydW5PcGVu
UGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPik7Ci0gICAgICAgIHZvaWQgY2hv
b3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUNob29zZXIqKTsKKyAg
ICAgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUlj
b25Mb2FkZXIqKTsKICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9BRCkKICAgICAgICAgdm9pZCBl
bnVtZXJhdGVDaG9zZW5EaXJlY3RvcnkoY29uc3QgU3RyaW5nJiwgRmlsZUNob29zZXIqKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZjZjYTJmNTJhZGM1YWE2ODBm
MzkwNjcyYWJhYjE5MDM3MmIxMDJiZi4uMWJiNWVkMmY0YzA2MDlhMjIyMWMzZDVjNWJmY2Y4Yjgx
YTU0ODAxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC00Niw2ICs0Niw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0OwogICAg
IGNsYXNzIEVsZW1lbnQ7CiAgICAgY2xhc3MgRmlsZUNob29zZXI7CisgICAgY2xhc3MgRmlsZUlj
b25Mb2FkZXI7CiAgICAgY2xhc3MgRmxvYXRSZWN0OwogICAgIGNsYXNzIEZyYW1lOwogICAgIGNs
YXNzIEdlb2xvY2F0aW9uOwpAQCAtMjI2LDcgKzIyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxG
aWxlQ2hvb3Nlcj4pID0gMDsKICAgICAgICAgLy8gQXN5bmNocm9ub3VzIHJlcXVlc3QgdG8gbG9h
ZCBhbiBpY29uIGZvciBzcGVjaWZpZWQgZmlsZW5hbWVzLgotICAgICAgICB2aXJ0dWFsIHZvaWQg
Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUNob29zZXIqKSA9
IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKSA9IDA7CiAKICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQ
TE9BRCkKICAgICAgICAgLy8gQXN5Y2hyb25vdXMgcmVxdWVzdCB0byBlbnVtZXJhdGUgYWxsIGZp
bGVzIGluIGEgZGlyZWN0b3J5IGNob3NlbiBieSB0aGUgdXNlci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZpbGVDaG9vc2VyLmNwcAppbmRleCA4ODEzOTVkYzg0MDUwMDUwZmZlZWI4NTYzODE5ZjNi
MzgzMTU3NmI2Li4wZjQ1MmJiODY3MDFhZGZiMzIwZTJiYzYyMzQ1ZWVlNzc1Yjc3YjJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCkBAIC0yOSwyNyArMjksMjEgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgogCi0jaW5jbHVk
ZSAiSWNvbi5oIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCisKIEZpbGVDaG9vc2VyQ2xp
ZW50Ojp+RmlsZUNob29zZXJDbGllbnQoKQogewogfQogCiBpbmxpbmUgRmlsZUNob29zZXI6OkZp
bGVDaG9vc2VyKEZpbGVDaG9vc2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBpbml0aWFsRmlsZW5hbWVzKQogICAgIDogbV9jbGllbnQoY2xpZW50KQotICAgICwgbV9pc0lu
aXRpYWxpemluZyh0cnVlKQogewogICAgIG1fZmlsZW5hbWVzID0gaW5pdGlhbEZpbGVuYW1lczsK
IH0KIAogUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gRmlsZUNob29zZXI6OmNyZWF0ZShGaWxlQ2hv
b3NlckNsaWVudCogY2xpZW50LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgaW5pdGlhbEZpbGVuYW1l
cykKIHsKLSAgICBSZWZQdHI8RmlsZUNob29zZXI+IGNob29zZXIoYWRvcHRSZWYobmV3IEZpbGVD
aG9vc2VyKGNsaWVudCwgaW5pdGlhbEZpbGVuYW1lcykpKTsKLSAgICBjaG9vc2VyLT5sb2FkSWNv
bigpOwotICAgIGNob29zZXItPm1faXNJbml0aWFsaXppbmcgPSBmYWxzZTsKLSAgICByZXR1cm4g
Y2hvb3NlcjsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZpbGVDaG9vc2VyKGNsaWVudCwgaW5p
dGlhbEZpbGVuYW1lcykpOwogfQogCiBGaWxlQ2hvb3Nlcjo6fkZpbGVDaG9vc2VyKCkKQEAgLTU5
LDcgKzUzLDYgQEAgRmlsZUNob29zZXI6On5GaWxlQ2hvb3NlcigpCiB2b2lkIEZpbGVDaG9vc2Vy
OjpjbGVhcigpCiB7CiAgICAgbV9maWxlbmFtZXMuY2xlYXIoKTsKLSAgICBtX2ljb24gPSAwOwog
fQogCiB2b2lkIEZpbGVDaG9vc2VyOjpjaG9vc2VGaWxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUp
CkBAIC03NCwyMiArNjcsOCBAQCB2b2lkIEZpbGVDaG9vc2VyOjpjaG9vc2VGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzKQogICAgIGlmIChtX2ZpbGVuYW1lcyA9PSBmaWxlbmFt
ZXMpCiAgICAgICAgIHJldHVybjsKICAgICBtX2ZpbGVuYW1lcyA9IGZpbGVuYW1lczsKLSAgICBs
b2FkSWNvbigpOwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPnZhbHVlQ2hh
bmdlZCgpOwogfQogCi12b2lkIEZpbGVDaG9vc2VyOjpsb2FkSWNvbigpCi17Ci0gICAgaWYgKG1f
ZmlsZW5hbWVzLnNpemUoKSAmJiBtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmNob29zZUlj
b25Gb3JGaWxlcyh0aGlzLCBtX2ZpbGVuYW1lcyk7Ci19Ci0KLXZvaWQgRmlsZUNob29zZXI6Omlj
b25Mb2FkZWQoUGFzc1JlZlB0cjxJY29uPiBpY29uKQotewotICAgIG1faWNvbiA9IGljb247Ci0g
ICAgaWYgKCFtX2lzSW5pdGlhbGl6aW5nICYmIG1faWNvbiAmJiBtX2NsaWVudCkKLSAgICAgICAg
bV9jbGllbnQtPnJlcGFpbnQoKTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZUNob29zZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9v
c2VyLmgKaW5kZXggZWQzYjQzMDBhM2VkMzBiZmRiZmZhZDAxM2IzNDE5MWQ5ZDI3ODIxOS4uYmNj
MjlhMmM5NDkyYTM2ZTQ2MjRlYWFkYjU5MzI3ZWQzYmZmYjc4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlQ2hvb3Nlci5oCkBAIC0zNiwxOSArMzYsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgRmlsZUNob29zZXI7Ci1jbGFzcyBGb250OwotY2xhc3MgSWNvbjsKIAogY2xh
c3MgRmlsZUNob29zZXJDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB2YWx1ZUNo
YW5nZWQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoKSA9IDA7CiAgICAgdmlydHVh
bCBib29sIGFsbG93c011bHRpcGxlRmlsZXMoKSA9IDA7CiAjaWYgRU5BQkxFKERJUkVDVE9SWV9V
UExPQUQpCiAgICAgdmlydHVhbCBib29sIGFsbG93c0RpcmVjdG9yeVVwbG9hZCgpID0gMDsKICNl
bmRpZgogICAgIHZpcnR1YWwgU3RyaW5nIGFjY2VwdFR5cGVzKCkgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBjaG9vc2VJY29uRm9yRmlsZXMoRmlsZUNob29zZXIqLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYpID0gMDsKICAgICB2aXJ0dWFsIH5GaWxlQ2hvb3NlckNsaWVudCgpOwogfTsKIApAQCAtNjIs
MTQgKzU4LDEwIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFt
ZXMoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVuYW1lczsgfQogCi0gICAgSWNvbiogaWNvbigpIGNv
bnN0IHsgcmV0dXJuIG1faWNvbi5nZXQoKTsgfQotCiAgICAgdm9pZCBjbGVhcigpOyAvLyBmb3Ig
dXNlIGJ5IGNsaWVudDsgZG9lcyBub3QgY2FsbCB2YWx1ZUNoYW5nZWQKIAogICAgIHZvaWQgY2hv
b3NlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpOwogICAgIHZvaWQgY2hvb3NlRmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhdGhzKTsKLSAgICAvLyBDYWxsZWQgd2hlbiBGaWxlQ2hvb3NlckNs
aWVudCBmaW5pc2hlcyB0byBsb2FkIGFuIGljb24gcmVxdWVzdGVkIGJ5IGljb25Gb3JGaWxlcygp
LgotICAgIHZvaWQgaWNvbkxvYWRlZChQYXNzUmVmUHRyPEljb24+KTsKIAogICAgIGJvb2wgYWxs
b3dzTXVsdGlwbGVGaWxlcygpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPmFs
bG93c011bHRpcGxlRmlsZXMoKSA6IGZhbHNlOyB9CiAjaWYgRU5BQkxFKERJUkVDVE9SWV9VUExP
QUQpCkBAIC04MCwxMiArNzIsOSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgRmlsZUNob29z
ZXIoRmlsZUNob29zZXJDbGllbnQqLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgaW5pdGlhbEZpbGVu
YW1lcyk7Ci0gICAgdm9pZCBsb2FkSWNvbigpOwogCiAgICAgRmlsZUNob29zZXJDbGllbnQqIG1f
Y2xpZW50OwogICAgIFZlY3RvcjxTdHJpbmc+IG1fZmlsZW5hbWVzOwotICAgIFJlZlB0cjxJY29u
PiBtX2ljb247Ci0gICAgYm9vbCBtX2lzSW5pdGlhbGl6aW5nOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUljb25M
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM0ZGU4YTVmMzlhYjBkNzQzNzBiYjEwYWNhZGY5ZjZjY2Q3ZTNmNWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlSWNvbkxvYWRlci5jcHAK
QEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RmlsZUljb25Mb2FkZXIuaCIKKworI2luY2x1ZGUgIkljb24uaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitGaWxlSWNvbkxvYWRlckNsaWVudDo6fkZpbGVJY29uTG9hZGVyQ2xpZW50KCkKK3sK
K30KKworUGFzc1JlZlB0cjxGaWxlSWNvbkxvYWRlcj4gRmlsZUljb25Mb2FkZXI6OmNyZWF0ZShG
aWxlSWNvbkxvYWRlckNsaWVudCogY2xpZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RmlsZUljb25Mb2FkZXIoY2xpZW50KSk7Cit9CisKK3ZvaWQgRmlsZUljb25Mb2FkZXI6OmRpc2Nv
bm5lY3RDbGllbnQoKQoreworICAgIG1fY2xpZW50ID0gMDsKK30KKwordm9pZCBGaWxlSWNvbkxv
YWRlcjo6bm90aWZ5RmluaXNoZWQoUGFzc1JlZlB0cjxJY29uPiBpY29uKQoreworICAgIGlmICht
X2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPnVwZGF0ZVJlbmRlcmluZyhpY29uKTsKK30KKwor
RmlsZUljb25Mb2FkZXI6OkZpbGVJY29uTG9hZGVyKEZpbGVJY29uTG9hZGVyQ2xpZW50KiBjbGll
bnQpCisgICAgOiBtX2NsaWVudChjbGllbnQpCit7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVJY29uTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlSWNvbkxvYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjMzk0ZDFkZWE0NzRjMTVkNDI2MjBk
MGQzYjJjYzEwNGUyNTdiNjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlSWNvbkxvYWRlci5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVy
LCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisK
KyNpZm5kZWYgRmlsZUljb25Mb2FkZXJfaAorI2RlZmluZSBGaWxlSWNvbkxvYWRlcl9oCisKKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSWNvbjsKKworY2xhc3MgRmlsZUljb25Mb2Fk
ZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZW5kZXJpbmcoUGFz
c1JlZlB0cjxJY29uPikgPSAwOworICAgIHZpcnR1YWwgfkZpbGVJY29uTG9hZGVyQ2xpZW50KCk7
Cit9OworCitjbGFzcyBGaWxlSWNvbkxvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVJY29u
TG9hZGVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RmlsZUljb25Mb2FkZXI+
IGNyZWF0ZShGaWxlSWNvbkxvYWRlckNsaWVudCopOworCisgICAgdm9pZCBkaXNjb25uZWN0Q2xp
ZW50KCk7CisgICAgdm9pZCBub3RpZnlGaW5pc2hlZChQYXNzUmVmUHRyPEljb24+KTsKKworcHJp
dmF0ZToKKyAgICBleHBsaWNpdCBGaWxlSWNvbkxvYWRlcihGaWxlSWNvbkxvYWRlckNsaWVudCop
OworCisgICAgRmlsZUljb25Mb2FkZXJDbGllbnQqIG1fY2xpZW50OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCmluZGV4IGRkNzMwNmU1ODZmZDJlNzA1M2Y0
NTU0MTZiYjQxZDAxY2IyOTIxZDcuLjlmOWY2NzlhMmE3MTUzNTBhOGI5NmM2MTY2MDMwNmE5NTdk
MzQzYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBs
b2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVV
cGxvYWRDb250cm9sLmNwcApAQCAtNTYsNiArNTYsNyBAQCBjb25zdCBpbnQgYnV0dG9uU2hhZG93
SGVpZ2h0ID0gMjsKIAogUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OlJlbmRlckZpbGVVcGxvYWRD
b250cm9sKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0KQogICAgIDogUmVuZGVyQmxvY2soaW5wdXQp
CisgICAgLCBtX2ljb25Mb2FkZXIoRmlsZUljb25Mb2FkZXI6OmNyZWF0ZSh0aGlzKSkKIHsKICAg
ICBGaWxlTGlzdCogbGlzdCA9IGlucHV0LT5maWxlcygpOwogICAgIFZlY3RvcjxTdHJpbmc+IGZp
bGVuYW1lczsKQEAgLTYzLDEzICs2NCwyNCBAQCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6UmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2woSFRNTElucHV0RWxlbWVudCogaW5wdXQpCiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAgICAgICBmaWxlbmFtZXMuYXBwZW5k
KGxpc3QtPml0ZW0oaSktPnBhdGgoKSk7CiAgICAgbV9maWxlQ2hvb3NlciA9IEZpbGVDaG9vc2Vy
OjpjcmVhdGUodGhpcywgZmlsZW5hbWVzKTsKKyAgICByZXF1ZXN0SWNvbihmaWxlbmFtZXMpOwog
fQogCiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6flJlbmRlckZpbGVVcGxvYWRDb250cm9sKCkK
IHsKKyAgICBtX2ljb25Mb2FkZXItPmRpc2Nvbm5lY3RDbGllbnQoKTsKICAgICBtX2ZpbGVDaG9v
c2VyLT5kaXNjb25uZWN0Q2xpZW50KCk7CiB9CiAKK3ZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2w6OnJlcXVlc3RJY29uKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpIGNvbnN0Cit7
CisgICAgaWYgKCFmaWxlbmFtZXMuc2l6ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
Q2hyb21lKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKSkKKyAgICAgICAgY2hyb21lLT5sb2FkSWNv
bkZvckZpbGVzKGZpbGVuYW1lcywgbV9pY29uTG9hZGVyLmdldCgpKTsKK30KKwogdm9pZCBSZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbDo6dmFsdWVDaGFuZ2VkKCkKIHsKICAgICAvLyBkaXNwYXRjaEZv
cm1Db250cm9sQ2hhbmdlRXZlbnQgbWF5IGRlc3Ryb3kgdGhpcyByZW5kZXJlcgpAQCAtNzgsMTAg
KzkwLDExIEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnZhbHVlQ2hhbmdlZCgpCiAg
ICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0
RWxlbWVudCo+KG5vZGUoKSk7CiAgICAgaW5wdXRFbGVtZW50LT5zZXRGaWxlTGlzdEZyb21SZW5k
ZXJlcihmaWxlQ2hvb3Nlci0+ZmlsZW5hbWVzKCkpOwogICAgIGlucHV0RWxlbWVudC0+ZGlzcGF0
Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7Ci0gCi0gICAgLy8gb25seSByZXBhaW50IGlmIGl0
IGRvZXNuJ3Qgc2VlbSB3ZSBoYXZlIGJlZW4gZGVzdHJveWVkCi0gICAgaWYgKCFmaWxlQ2hvb3Nl
ci0+ZGlzY29ubmVjdGVkKCkpCi0gICAgICAgIHJlcGFpbnQoKTsKKyAgICBpZiAoZmlsZUNob29z
ZXItPmRpc2Nvbm5lY3RlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICByZXF1ZXN0SWNvbihm
aWxlQ2hvb3Nlci0+ZmlsZW5hbWVzKCkpOworICAgIHJlcGFpbnQoKTsKIH0KIAogYm9vbCBSZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbDo6YWxsb3dzTXVsdGlwbGVGaWxlcygpCkBAIC0xMDQsOCArMTE3
LDggQEAgYm9vbCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6YWxsb3dzRGlyZWN0b3J5VXBsb2Fk
KCkKIAogdm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cmVjZWl2ZURyb3BGb3JEaXJlY3Rv
cnlVcGxvYWQoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogewotICAgIGlmIChDaHJvbWUq
IGNocm9tZVBvaW50ZXIgPSBjaHJvbWUoKSkKLSAgICAgICAgY2hyb21lUG9pbnRlci0+ZW51bWVy
YXRlQ2hvc2VuRGlyZWN0b3J5KHBhdGhzWzBdLCBtX2ZpbGVDaG9vc2VyLmdldCgpKTsKKyAgICBp
ZiAoQ2hyb21lKiBjaHJvbWUgPSBjaHJvbWUoKSkKKyAgICAgICAgY2hyb21lLT5lbnVtZXJhdGVD
aG9zZW5EaXJlY3RvcnkocGF0aHNbMF0sIG1fZmlsZUNob29zZXIuZ2V0KCkpOwogfQogI2VuZGlm
CiAKQEAgLTExNCwxMCArMTI3LDEzIEBAIFN0cmluZyBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6
YWNjZXB0VHlwZXMoKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4o
bm9kZSgpKS0+YWNjZXB0KCk7CiB9CiAKLXZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmNo
b29zZUljb25Gb3JGaWxlcyhGaWxlQ2hvb3NlciogY2hvb3NlciwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGZpbGVuYW1lcykKK3ZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnVwZGF0ZVJlbmRl
cmluZyhQYXNzUmVmUHRyPEljb24+IGljb24pCiB7Ci0gICAgaWYgKENocm9tZSogY2hyb21lUG9p
bnRlciA9IGNocm9tZSgpKQotICAgICAgICBjaHJvbWVQb2ludGVyLT5jaG9vc2VJY29uRm9yRmls
ZXMoZmlsZW5hbWVzLCBjaG9vc2VyKTsKKyAgICBpZiAobV9pY29uID09IGljb24pCisgICAgICAg
IHJldHVybjsKKworICAgIG1faWNvbiA9IGljb247CisgICAgcmVwYWludCgpOwogfQogCiB2b2lk
IFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpjbGljaygpCkBAIC0xNTQsNiArMTcwLDcgQEAgdm9p
ZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgIEFTU0VS
VChmaWxlcyk7CiAgICAgaWYgKGZpbGVzICYmIGZpbGVzLT5pc0VtcHR5KCkgJiYgIW1fZmlsZUNo
b29zZXItPmZpbGVuYW1lcygpLmlzRW1wdHkoKSkgewogICAgICAgICBtX2ZpbGVDaG9vc2VyLT5j
bGVhcigpOworICAgICAgICBtX2ljb24gPSAwOwogICAgICAgICByZXBhaW50KCk7CiAgICAgfQog
fQpAQCAtMTY2LDE0ICsxODMsMTMgQEAgc3RhdGljIGludCBub2RlV2lkdGgoTm9kZSogbm9kZSkK
IGludCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6bWF4RmlsZW5hbWVXaWR0aCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1heCgwLCBjb250ZW50V2lkdGgoKSAtIG5vZGVXaWR0aCh1cGxvYWRCdXR0
b24oKSkgLSBhZnRlckJ1dHRvblNwYWNpbmcKLSAgICAgICAgLSAobV9maWxlQ2hvb3Nlci0+aWNv
bigpID8gaWNvbldpZHRoICsgaWNvbkZpbGVuYW1lU3BhY2luZyA6IDApKTsKKyAgICAgICAgLSAo
bV9pY29uID8gaWNvbldpZHRoICsgaWNvbkZpbGVuYW1lU3BhY2luZyA6IDApKTsKIH0KIAogdm9p
ZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IEludFBvaW50JiBwYWludE9mZnNldCkKIHsKICAgICBpZiAoc3R5bGUoKS0+dmlz
aWJpbGl0eSgpICE9IFZJU0lCTEUpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQobV9maWxl
Q2hvb3Nlcik7CiAgICAgCiAgICAgLy8gUHVzaCBhIGNsaXAuCiAgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpwYWludEluZm8uY29udGV4dCwgZmFsc2UpOwpAQCAtMTk5
LDcgKzIxNSw3IEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50T2JqZWN0KFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2ludCYKIAogICAgICAgICBpbnQgYnV0dG9u
V2lkdGggPSBub2RlV2lkdGgoYnV0dG9uKTsKICAgICAgICAgaW50IGJ1dHRvbkFuZEljb25XaWR0
aCA9IGJ1dHRvbldpZHRoICsgYWZ0ZXJCdXR0b25TcGFjaW5nCi0gICAgICAgICAgICArIChtX2Zp
bGVDaG9vc2VyLT5pY29uKCkgPyBpY29uV2lkdGggKyBpY29uRmlsZW5hbWVTcGFjaW5nIDogMCk7
CisgICAgICAgICAgICArIChtX2ljb24gPyBpY29uV2lkdGggKyBpY29uRmlsZW5hbWVTcGFjaW5n
IDogMCk7CiAgICAgICAgIGludCB0ZXh0WDsKICAgICAgICAgaWYgKHN0eWxlKCktPmlzTGVmdFRv
UmlnaHREaXJlY3Rpb24oKSkKICAgICAgICAgICAgIHRleHRYID0gY29udGVudExlZnQgKyBidXR0
b25BbmRJY29uV2lkdGg7CkBAIC0yMTYsNyArMjMyLDcgQEAgdm9pZCBSZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbDo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFBvaW50
JgogICAgICAgICAvLyBEcmF3IHRoZSBmaWxlbmFtZQogICAgICAgICBwYWludEluZm8uY29udGV4
dC0+ZHJhd0JpZGlUZXh0KGZvbnQsIHRleHRSdW4sIEludFBvaW50KHRleHRYLCB0ZXh0WSkpOwog
ICAgICAgICAKLSAgICAgICAgaWYgKG1fZmlsZUNob29zZXItPmljb24oKSkgeworICAgICAgICBp
ZiAobV9pY29uKSB7CiAgICAgICAgICAgICAvLyBEZXRlcm1pbmUgd2hlcmUgdGhlIGljb24gc2hv
dWxkIGJlIHBsYWNlZAogICAgICAgICAgICAgaW50IGljb25ZID0gcGFpbnRPZmZzZXQueSgpICsg
Ym9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkgKyAoY29udGVudEhlaWdodCgpIC0gaWNvbkhlaWdo
dCkgLyAyOwogICAgICAgICAgICAgaW50IGljb25YOwpAQCAtMjI2LDcgKzI0Miw3IEBAIHZvaWQg
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBJbnRQb2ludCYKICAgICAgICAgICAgICAgICBpY29uWCA9IGNvbnRlbnRMZWZ0ICsg
Y29udGVudFdpZHRoKCkgLSBidXR0b25XaWR0aCAtIGFmdGVyQnV0dG9uU3BhY2luZyAtIGljb25X
aWR0aDsKIAogICAgICAgICAgICAgLy8gRHJhdyB0aGUgZmlsZSBpY29uCi0gICAgICAgICAgICBt
X2ZpbGVDaG9vc2VyLT5pY29uKCktPnBhaW50KHBhaW50SW5mby5jb250ZXh0LCBJbnRSZWN0KGlj
b25YLCBpY29uWSwgaWNvbldpZHRoLCBpY29uSGVpZ2h0KSk7CisgICAgICAgICAgICBtX2ljb24t
PnBhaW50KHBhaW50SW5mby5jb250ZXh0LCBJbnRSZWN0KGljb25YLCBpY29uWSwgaWNvbldpZHRo
LCBpY29uSGVpZ2h0KSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTMxNSw2ICszMzEsNyBAQCBT
dHJpbmcgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmJ1dHRvblZhbHVlKCkKIAogU3RyaW5nIFJl
bmRlckZpbGVVcGxvYWRDb250cm9sOjpmaWxlVGV4dFZhbHVlKCkgY29uc3QKIHsKKyAgICBBU1NF
UlQobV9maWxlQ2hvb3Nlcik7CiAgICAgcmV0dXJuIHRoZW1lKCktPmZpbGVMaXN0TmFtZUZvcldp
ZHRoKG1fZmlsZUNob29zZXItPmZpbGVuYW1lcygpLCBzdHlsZSgpLT5mb250KCksIG1heEZpbGVu
YW1lV2lkdGgoKSk7CiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oCmluZGV4IGJjNWFhNWJiODc1OGE2ZDkwNDJlYzA0OGNm
MTY4MmVjZjYxZjc5YWYuLjgzNGFlODU4N2FmMmUxMzM0Y2RhNTE1NDg4YmU3ZmRjZjc2ZTkwNzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbC5oCkBAIC0yMiw2ICsyMiw3IEBACiAjZGVmaW5lIFJlbmRlckZpbGVVcGxvYWRDb250cm9s
X2gKIAogI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCisjaW5jbHVkZSAiRmlsZUljb25Mb2FkZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0z
Myw3ICszNCw3IEBAIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiAvLyBzdWZmaWNpZW50IHNwYWNl
IHRvIGRyYXcgYSBmaWxlIGljb24gYW5kIGZpbGVuYW1lLiBUaGUgUmVuZGVyQnV0dG9uIGhhcyBh
IHNoYWRvdyBub2RlCiAvLyBhc3NvY2lhdGVkIHdpdGggaXQgdG8gcmVjZWl2ZSBjbGljay9ob3Zl
ciBldmVudHMuCiAKLWNsYXNzIFJlbmRlckZpbGVVcGxvYWRDb250cm9sIDogcHVibGljIFJlbmRl
ckJsb2NrLCBwcml2YXRlIEZpbGVDaG9vc2VyQ2xpZW50IHsKK2NsYXNzIFJlbmRlckZpbGVVcGxv
YWRDb250cm9sIDogcHVibGljIFJlbmRlckJsb2NrLCBwcml2YXRlIEZpbGVDaG9vc2VyQ2xpZW50
LCBwcml2YXRlIEZpbGVJY29uTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBSZW5kZXJGaWxl
VXBsb2FkQ29udHJvbChIVE1MSW5wdXRFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyRmls
ZVVwbG9hZENvbnRyb2woKTsKQEAgLTU2LDI2ICs1NywyOSBAQCBwcml2YXRlOgogCiAgICAgdmly
dHVhbCBib29sIHJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KIAotICAgIC8vIEZpbGVDaG9vc2VyQ2xpZW50IG1ldGhvZHMuCi0gICAg
dm9pZCB2YWx1ZUNoYW5nZWQoKTsKLSAgICB2b2lkIHJlcGFpbnQoKSB7IFJlbmRlckJsb2NrOjpy
ZXBhaW50KCk7IH0KLSAgICBib29sIGFsbG93c011bHRpcGxlRmlsZXMoKTsKKyAgICAvLyBGaWxl
Q2hvb3NlckNsaWVudCBmdW5jdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIHZhbHVlQ2hhbmdlZCgp
OworICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NNdWx0aXBsZUZpbGVzKCk7CiAjaWYgRU5BQkxFKERJ
UkVDVE9SWV9VUExPQUQpCi0gICAgYm9vbCBhbGxvd3NEaXJlY3RvcnlVcGxvYWQoKTsKLSAgICB2
b2lkIHJlY2VpdmVEcm9wRm9yRGlyZWN0b3J5VXBsb2FkKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7
CisgICAgdmlydHVhbCBib29sIGFsbG93c0RpcmVjdG9yeVVwbG9hZCgpOworICAgIHZpcnR1YWwg
dm9pZCByZWNlaXZlRHJvcEZvckRpcmVjdG9yeVVwbG9hZChjb25zdCBWZWN0b3I8U3RyaW5nPiYp
OwogI2VuZGlmCi0gICAgU3RyaW5nIGFjY2VwdFR5cGVzKCk7Ci0gICAgdm9pZCBjaG9vc2VJY29u
Rm9yRmlsZXMoRmlsZUNob29zZXIqLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOworICAgIHZpcnR1
YWwgU3RyaW5nIGFjY2VwdFR5cGVzKCk7CisKKyAgICAvLyBGaWxlSWNvbkxvYWRlckNsaWVudCBm
dW5jdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlbmRlcmluZyhQYXNzUmVmUHRyPElj
b24+KTsKIAogICAgIENocm9tZSogY2hyb21lKCkgY29uc3Q7CiAgICAgaW50IG1heEZpbGVuYW1l
V2lkdGgoKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjcmVhdGVCdXR0b25T
dHlsZShjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUpIGNvbnN0OwogICAgIAogICAgIHZp
cnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKTsK
IAogICAgIEhUTUxJbnB1dEVsZW1lbnQqIHVwbG9hZEJ1dHRvbigpIGNvbnN0OworICAgIHZvaWQg
cmVxdWVzdEljb24oY29uc3QgVmVjdG9yPFN0cmluZz4mKSBjb25zdDsKIAogICAgIFJlZlB0cjxG
aWxlQ2hvb3Nlcj4gbV9maWxlQ2hvb3NlcjsKKyAgICBSZWZQdHI8RmlsZUljb25Mb2FkZXI+IG1f
aWNvbkxvYWRlcjsKKyAgICBSZWZQdHI8SWNvbj4gbV9pY29uOwogfTsKIAogaW5saW5lIFJlbmRl
ckZpbGVVcGxvYWRDb250cm9sKiB0b1JlbmRlckZpbGVVcGxvYWRDb250cm9sKFJlbmRlck9iamVj
dCogb2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0lt
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKaW5kZXgg
ZTdmYWYyNWJhMDc0MjZmODZkNmM2MzMzMzJlMTkwZDAzZjc3NGIyZi4uMjkxYTFjNzJhODMyZjQy
MGUyNDY3ZmExZThjZTE3NzJiNzgyYWZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL1NWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
U1ZHSW1hZ2UuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUGFnZS5oIgog
I2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKKyNp
bmNsdWRlICJGaWxlSWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggMmI5ZjA0YzFiMDEyYjM1MGMyMDIzZDhkNmZjMzJlYjIwYjNhMWEwYi4uNmQ4
YjkzOWE3Y2I1NTZhOTAyNDk1NmI3OGQzMTkxYTRmYzY2OGRlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0wNi0xOCAgRGltaXRyaSBHbGF6a292ICA8
ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNlcGFyYXRlIGNvbmNlcm5zIG9mIGxvYWRpbmcgZmlsZSBpY29ucyBh
bmQgY2hvb3NpbmcgZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MjkzMQorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpsb2FkSWNvbkZvckZpbGVzKTogUmVu
YW1lZCB0byBiZXR0ZXIgcmVmbGVjdCB0aGUgaW50ZW50LgorICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmg6IERpdHRvLgorICAgICAgICAqIHNyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRp
b25JbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1w
bDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbCk6IENoYW5nZWQgdG8gdXNlIEZpbGVJY29u
TG9hZGVyLgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsOjpk
aWRMb2FkSWNvbik6IERpdHRvLgorICAgICAgICAqIHNyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRp
b25JbXBsLmg6IERpdG8uCisKIDIwMTEtMDYtMTcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUm9sbCBDaHJvbWl1bSBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCBmNzE1Y2NjMDA1NGNiYzZj
NmY4ODdlMGM3MmE0NzcxMDhmMmRiYWUyLi4zYjBhZGEzZTQxYTk0MzVlMzJlZjY2ODYxMDM1YWRl
ZDU1M2VmZmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgi
CiAjaW5jbHVkZSAiRXh0ZXJuYWxQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJGaWxlQ2hvb3Nlci5o
IgorI2luY2x1ZGUgIkZpbGVJY29uTG9hZGVyLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAt
NDksNiArNTAsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJIVE1M
TmFtZXMuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaW5jbHVkZSAiSWNvbi5oIgog
I2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uQWN0aW9uLmgiCiAjaW5j
bHVkZSAiTm9kZS5oIgpAQCAtNjg2LDExICs2ODgsMTEgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBs
OjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBmaWxl
Q2gKICAgICBjaG9vc2VyQ29tcGxldGlvbi0+ZGlkQ2hvb3NlRmlsZShXZWJWZWN0b3I8V2ViU3Ry
aW5nPigpKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjaG9vc2VJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUNob29zZXIqIGZpbGVDaG9vc2Vy
KQordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyKiBsb2FkZXIpCiB7CiAgICAgaWYgKCFt
X3dlYlZpZXctPmNsaWVudCgpKQogICAgICAgICByZXR1cm47Ci0gICAgV2ViSWNvbkxvYWRpbmdD
b21wbGV0aW9uSW1wbCogaWNvbkNvbXBsZXRpb24gPSBuZXcgV2ViSWNvbkxvYWRpbmdDb21wbGV0
aW9uSW1wbChmaWxlQ2hvb3Nlcik7CisgICAgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbCog
aWNvbkNvbXBsZXRpb24gPSBuZXcgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbChsb2FkZXIp
OwogICAgIGlmICghbV93ZWJWaWV3LT5jbGllbnQoKS0+cXVlcnlJY29uRm9yRmlsZXMoZmlsZW5h
bWVzLCBpY29uQ29tcGxldGlvbikpCiAgICAgICAgIGljb25Db21wbGV0aW9uLT5kaWRMb2FkSWNv
bihXZWJEYXRhKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q2hyb21lQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oCmluZGV4IDhkNzI1MmM1Nzk2YzI5ZTcwMjM4MjhlMzFkN2NhYjNmYzRlOTM3NWUu
LjA3NzM2M2M5NDJlNzdmZjAzMjNjOTc1YTgxMzY0ZmE4YjllNTNkZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKQEAgLTEzOSw3ICsxMzksNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgdmly
dHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIHJ1
bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29z
ZXI+KTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxX
VEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciopOworICAgIHZpcnR1YWwgdm9pZCBs
b2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxl
SWNvbkxvYWRlciopOwogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBMT0FEKQogICAgIHZpcnR1YWwg
dm9pZCBlbnVtZXJhdGVDaG9zZW5EaXJlY3RvcnkoY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3Jl
OjpGaWxlQ2hvb3NlciopOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuY3BwCmluZGV4IGMxZGQz
MjE3YjgyMTVmNjllMmU5NmFiYjU1OGZkYTRlZWNlYWZmMjMuLjQ4NjgyYjQ5NTVlZmVmOTc5NDAz
YWRlYjdmNjIzZGQ4NTI2OGNjYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuY3BwCkBAIC0zOSw4ICsz
OSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1w
bChGaWxlQ2hvb3NlciogY2hvb3NlcikKLSAgICA6IG1fZmlsZUNob29zZXIoY2hvb3NlcikKK1dl
Ykljb25Mb2FkaW5nQ29tcGxldGlvbkltcGw6OldlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwo
RmlsZUljb25Mb2FkZXIqIGZpbGVJY29uTG9hZGVyKQorICAgIDogbV9maWxlSWNvbkxvYWRlcihm
aWxlSWNvbkxvYWRlcikKIHsKIH0KIApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFdlYkljb25Mb2Fk
aW5nQ29tcGxldGlvbkltcGw6OmRpZExvYWRJY29uKGNvbnN0IFdlYkRhdGEmIGljb25EYXRhKQog
ICAgIGlmICghaWNvbkRhdGEuaXNFbXB0eSgpKSB7CiAgICAgICAgIFJlZlB0cjxJbWFnZT4gaW1h
Z2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKCk7CiAgICAgICAgIGltYWdlLT5zZXREYXRhKGljb25E
YXRhLCB0cnVlKTsKLSAgICAgICAgbV9maWxlQ2hvb3Nlci0+aWNvbkxvYWRlZChJY29uOjpjcmVh
dGUoaW1hZ2UpKTsKKyAgICAgICAgbV9maWxlSWNvbkxvYWRlci0+bm90aWZ5RmluaXNoZWQoSWNv
bjo6Y3JlYXRlKGltYWdlKSk7CiAgICAgfQogICAgIC8vIFRoaXMgb2JqZWN0IGlzIG5vIGxvbmdl
ciBuZWVkZWQuCiAgICAgZGVsZXRlIHRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmgKaW5kZXggNmU2ZjNh
OGZjY2E0ZjNlODY2NWMwMTk5YmZjMGFiNTNiYmU1NjU3Ni4uMThjYWRkMzI0NzM2MGU5NWIwNjlk
ZmYwN2Q4NWQ4OGZhYzBhMThiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuaApAQCAtMzEsMTAgKzMxLDEx
IEBACiAjaWZuZGVmIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGxfaAogI2RlZmluZSBXZWJJ
Y29uTG9hZGluZ0NvbXBsZXRpb25JbXBsX2gKIAotI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCisj
aW5jbHVkZSAiRmlsZUljb25Mb2FkZXIuaCIKICNpbmNsdWRlICJXZWJEYXRhLmgiCiAjaW5jbHVk
ZSAiV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIHVzaW5nIFdlYktpdDo6V2ViSWNvbkxvYWRp
bmdDb21wbGV0aW9uOwogdXNpbmcgV2ViS2l0OjpXZWJEYXRhOwpAQCAtNDMsMTMgKzQ0LDEzIEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBs
IDogcHVibGljIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbiB7CiBwdWJsaWM6Ci0gICAgV2ViSWNv
bkxvYWRpbmdDb21wbGV0aW9uSW1wbChXZWJDb3JlOjpGaWxlQ2hvb3NlciopOworICAgIFdlYklj
b25Mb2FkaW5nQ29tcGxldGlvbkltcGwoV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkTG9hZEljb24oY29uc3QgV2ViRGF0YSYpOwogCiBwcml2YXRlOgogICAg
IH5XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKCk7CiAKLSAgICBSZWZQdHI8V2ViQ29yZTo6
RmlsZUNob29zZXI+IG1fZmlsZUNob29zZXI7CisgICAgUmVmUHRyPFdlYkNvcmU6OkZpbGVJY29u
TG9hZGVyPiBtX2ZpbGVJY29uTG9hZGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cKaW5kZXggMWVlMTQ1M2Y3Y2UxOWYzMDkxNzgxZTYyZmI5MDU0NWVhOTUxN2Nm
ZC4uNTQ4N2Q4NWM2YjkwNGQ1M2VlZWIxNjM2NTg5N2IxMmM2N2Q4YWRmMSAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA2LTE4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xh
emtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU2VwYXJhdGUgY29uY2VybnMgb2YgbG9hZGluZyBmaWxlIGljb25zIGFuZCBj
aG9vc2luZyBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYyOTMxCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpsb2FkSWNvbkZvckZpbGVz
KTogUmVuYW1lZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaDoK
KwogMjAxMS0wNi0xNSAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5n
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKaW5kZXgg
YzE2ZTU5MDZlMzZjOTYzMTgyMDQwMmU5MWZiZDU2ZmQ4NjBhNzMxMS4uNmY0ZDgxNDc2MGY5ZWM4
MzVmZmQyMjc5NDkwOWQ5ZTk2OTJlYTY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAj
ZW5kaWYKICNpbmNsdWRlICJFV2ViS2l0LmgiCiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKKyNp
bmNsdWRlICJGaWxlSWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRFZmwuaCIKQEAg
LTUyNyw3ICs1MjgsNyBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6aWNvbkZvckZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmcsIDB1PiYsIFBhc3NSZWZQdHI8RmlsZUNobwogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjpjaG9vc2VJY29uRm9yRmlsZXMoY29u
c3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlQ2hvb3NlciopCit2b2lkIENocm9tZUNsaWVudEVmbDo6
bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyKikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAppbmRleCA2ZWQ5NTA3MDgyMzYwOTM2MzE1
ZDQ1ZTJjNjY1ZDdjNzgyY2Q2OWMyLi45YTQ5ZWQ5N2VkMjdmODZlMGExNDZjNjBjZTQwYTVmOTlk
NjMyMDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuaApAQCAtMTMzLDcgKzEzMyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAg
dmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+
KTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgRmlsZUNob29zZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyKik7CiAgICAgdmlydHVhbCB2b2lk
IGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBOb2RlKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Q3Vyc29yKGNvbnN0IEN1cnNvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGZlNTJkYTczYTVlNTg5
ZTYxNjczN2U0YjJkZjUzN2I3YmFlYjZkMDMuLjZlYTgwMTE0NGU1MDU5YmFkMjQ3MzdjZGI4NjUy
NWU1MTI0ODhlMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNi0x
OCAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlcGFyYXRlIGNvbmNlcm5zIG9m
IGxvYWRpbmcgZmlsZSBpY29ucyBhbmQgY2hvb3NpbmcgZmlsZXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzMQorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50Ojpsb2FkSWNvbkZvckZpbGVzKTogUmVuYW1lZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuaDoKKwogMjAxMS0wNi0xNyAgSm9vbmUgSHVyICA8am9vbmUuaHVy
QGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmNwcAppbmRleCA3OWI5NThkODM3YzM3YjFlYmUyMTliZmQyNTc2N2E0MThjZjBiOTMzLi4y
NWE2YTI1NTA1NzJjMmVjYmFkZmQ3ZGRiYThjNzU2YWNhZjQyNTkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaCIKICNpbmNs
dWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJGaWxl
SWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJGbG9hdFJl
Y3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCkBAIC02NDIsOSArNjQzLDkgQEAg
dm9pZCBDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNo
b29zZXI+IHBycEZpbGVDaG9vc2VyKQogICAgIGd0a193aWRnZXRfZGVzdHJveShkaWFsb2cpOwog
fQogCi12b2lkIENocm9tZUNsaWVudDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxX
VEY6OlN0cmluZz4mIGZpbGVuYW1lcywgV2ViQ29yZTo6RmlsZUNob29zZXIqIGNob29zZXIpCit2
b2lkIENocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJp
bmc+JiBmaWxlbmFtZXMsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKiBsb2FkZXIpCiB7Ci0gICAg
Y2hvb3Nlci0+aWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7
CisgICAgbG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmls
ZW5hbWVzKSk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpkaXNwYXRjaFZpZXdwb3J0RGF0YURp
ZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAppbmRl
eCA3MTYzMjdjYzFiMDI3YjFiNDFkODIxZDA5Y2U4YzZmNGE0YjIzYTM5Li44NTNiMTMyYzQyYTMx
MjdlZDU3NTkyZmNmZTdhZDUyZWNjOGZjOGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApAQCAtMTI4LDcgKzEyOCw3IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51KCkg
eyB9CiAjZW5kaWYKICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpG
cmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KTsKLSAgICAgICAgdmlydHVh
bCB2b2lkIGNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2Vi
Q29yZTo6RmlsZUNob29zZXIqKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmls
ZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKik7
CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBXZWJDb3Jl
OjpOb2RlKikgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggMjQwZTUxMWQzNGQ2MzYxYTlk
ZmE3YzkwYWM1MTU0NGFmYTI2MmI0Yi4uOGU5ZTdmZGU5OTE4ZWU2NmE3YjdhNjgyMTJiZThmNmRh
YmY1Yjk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNi0x
OCAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlcGFyYXRlIGNvbmNlcm5zIG9m
IGxvYWRpbmcgZmlsZSBpY29ucyBhbmQgY2hvb3NpbmcgZmlsZXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzMQorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50SGFpa3U6OmxvYWRJY29uRm9yRmlsZXMpOiBSZW5hbWVkLgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1Lmg6CisKIDIwMTEtMDYtMTIgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1
cnlha292LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRIYWlrdS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEhhaWt1LmNwcAppbmRleCBiMTZlMDhjODk0OTE4OWM0MGZhMTViMDFjNTBj
M2EwZDNmNjZlZWI0Li45MTU4MWQ0NjNlZDA4YjhhZDkyNjIwYzMwMGM0MDU1NDRlYzFiZTM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEhhaWt1LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEhhaWt1LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkNocm9tZUNsaWVudEhhaWt1LmgiCiAKKyNpbmNsdWRlICJGaWxlSWNvbkxvYWRl
ci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMzcxLDkgKzM3Miw5IEBAIHZvaWQgQ2hyb21lQ2xp
ZW50SGFpa3U6OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OmNob29z
ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlQ2hvb3Nl
ciogY2hvb3NlcikKK3ZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OmxvYWRJY29uRm9yRmlsZXMoY29u
c3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUljb25Mb2FkZXIqIGxvYWRlcikKIHsK
LSAgICBjaG9vc2VyLT5pY29uTG9hZGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFt
ZXMpKTsKKyAgICBsb2FkZXItPm5vdGlmeUZpbmlzaGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxl
cyhmaWxlbmFtZXMpKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRIYWlrdTo6c2V0Q3Vyc29yKGNv
bnN0IEN1cnNvciYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEhhaWt1LmggYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKaW5kZXggMzIyZDBiMjI0NTgwMTYxOTdlMjZlYWI1MmJl
YmIxMDMwNmRhNTQ0MC4uZGE5NjNiMDk0OWVlMDZlM2ZjOWU3YmRhNDNhY2E0NGZjMDk3ODMxYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRIYWlrdS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50SGFpa3UuaApAQCAtMTUyLDcgKzE1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JG
cmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikgeyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHJ1
bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVD
aG9vc2VyKik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMDAxNzM2NTg5
N2I1OTMxN2NjODgwZDNhY2M5MDE1NTUwYjZmODRjMS4uZGQwMjdlYjlhMmI4NGEwZjc3OWM4OTNl
MzEzZDYwNTNmZjY0MTdiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEx
LTA2LTE4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VwYXJhdGUgY29uY2Vy
bnMgb2YgbG9hZGluZyBmaWxlIGljb25zIGFuZCBjaG9vc2luZyBmaWxlcy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTMxCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29u
Rm9yRmlsZXMpOiBSZW5hbWVkLgorCiAyMDExLTA2LTE2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5y
ZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
ODkwMjYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCmluZGV4IDZmOWYwOWM5YjlkM2EwYjM2ZWRiYjE4N2JiNmI4MGYwY2Q0NzBhNGIu
LmQ0ZDZlYjY5MGQyNzQwZTk5NjU2YTQzOWIxNGRmYzY0MDk3YmM3NjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMjUs
NyArMTI1LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pOwot
ICAgIHZpcnR1YWwgdm9pZCBjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3Ry
aW5nPiYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyKik7CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9h
ZGVyKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNv
ciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0KaW5kZXggNWI1Mjk5MDRlOTUwZTc1YzA5ODEyZmE0NWEwMjk1NDNkNmQ0ZDhj
YS4uZjA3ZGQ0NzI5Mzg1ZTExMzBhNTVlZGYxNzU5ZjExOTcyNjcyYTM0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAt
NTUsNiArNTUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9GaWxlQ2hvb3Nl
ci5oPgorI2ltcG9ydCA8V2ViQ29yZS9GaWxlSWNvbkxvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9GbG9hdFJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRnJhbWVMb2FkUmVxdWVzdC5oPgpAQCAtNzg0LDkgKzc4NSw5IEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBjaG9v
c2VyKQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLXZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1l
cywgRmlsZUNob29zZXIqIGNob29zZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25G
b3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciog
aWNvbkxvYWRlcikKIHsKLSAgICBjaG9vc2VyLT5pY29uTG9hZGVkKEljb246OmNyZWF0ZUljb25G
b3JGaWxlcyhmaWxlbmFtZXMpKTsKKyAgICBpY29uTG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29u
OjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJiBjdXJzb3IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CmluZGV4IGIwOTdjZDBiY2ZkYmYzYjAxOWFhMDUyYjdhZjhiMjI0YWQ3YjNjOTcuLjAzMjQxZGEw
MTgwY2E1ZDQ2Y2IzYmE3MmMyZWI1MzNlNTFmZmRjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTEtMDYtMTggIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
ZXBhcmF0ZSBjb25jZXJucyBvZiBsb2FkaW5nIGZpbGUgaWNvbnMgYW5kIGNob29zaW5nIGZpbGVz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MzEK
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudFF0Ojpsb2FkSWNvbkZvckZpbGVzKTogUmVuYW1lZC4KKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorCiAyMDExLTA2LTE3ICBB
bGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCmluZGV4IDY1NWU4NzI4NjZkMjdhY2FlYTNiOTM3
YjYyY2U5ZDMxNzM1MTkwN2IuLmVmNTJlZmE2ZWUyMDU2MDYwZDcxNWI4ZjQ0Y2EwMDg4ZmFhZDFj
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VUcmFja2VyLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgorI2luY2x1
ZGUgIkZpbGVJY29uTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTYwOCw5ICs2MDks
OSBAQCB2b2lkIENocm9tZUNsaWVudFF0OjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNz
UmVmUHRyPEZpbGVDaG9vc2VyPiBwcnBGaWxlQwogICAgIH0KIH0KIAotdm9pZCBDaHJvbWVDbGll
bnRRdDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMs
IEZpbGVDaG9vc2VyKiBjaG9vc2VyKQordm9pZCBDaHJvbWVDbGllbnRRdDo6bG9hZEljb25Gb3JG
aWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciogbG9h
ZGVyKQogewotICAgIGNob29zZXItPmljb25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVz
KGZpbGVuYW1lcykpOworICAgIGxvYWRlci0+bm90aWZ5RmluaXNoZWQoSWNvbjo6Y3JlYXRlSWNv
bkZvckZpbGVzKGZpbGVuYW1lcykpOwogfQogCiB2b2lkIENocm9tZUNsaWVudFF0OjpzZXRDdXJz
b3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKaW5kZXggODhlNjQyYzg4MGU0OTQzNWJmYThjMTE2MThj
ZTczNWZiMGYxOTk0NC4uNjQ3NjM1YWZiNjhiMTZmMzg3OTZmODU0YjE2MjEwNWJmNjhhY2E0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
aApAQCAtNDYsNiArNDYsNyBAQCBjbGFzcyBRV2ViUGFnZTsKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgRmlsZUNob29zZXI7CitjbGFzcyBGaWxlSWNvbkxvYWRlcjsKIGNsYXNzIEZsb2F0
UmVjdDsKIGNsYXNzIFBhZ2U7CiBzdHJ1Y3QgRnJhbWVMb2FkUmVxdWVzdDsKQEAgLTE3NCw3ICsx
NzUsNyBAQCBwdWJsaWM6CiAgICAgRnVsbFNjcmVlblZpZGVvUXQqIGZ1bGxTY3JlZW5WaWRlbygp
OwogI2VuZGlmCiAgICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVm
UHRyPEZpbGVDaG9vc2VyPik7Ci0gICAgIHZpcnR1YWwgdm9pZCBjaG9vc2VJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlQ2hvb3NlciopOworICAgICB2aXJ0dWFsIHZvaWQg
bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyKik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IE5vZGUqKSB7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCmluZGV4IDlkOGY3OWUwZjFlNjliY2I5OWM5MzU2ZjQzYjk0OGIwYzM0
OTcyMzQuLjlmMDIzYWZkYzBiOTRmMjUwMDU1ZjAzOWFhNTZiNThhODgzMGE0NmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNi0xOCAgRGltaXRyaSBHbGF6a292ICA8
ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNlcGFyYXRlIGNvbmNlcm5zIG9mIGxvYWRpbmcgZmlsZSBpY29ucyBh
bmQgY2hvb3NpbmcgZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MjkzMQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6IFJl
bmFtZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIw
MTEtMDYtMTYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4OTAyNi4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDJhMjM3
NDgxNzg5OGM5NThiYTc1M2ZlY2ViNzIxNzk5Y2M0ZTczY2UuLmY3OTM4YjNjNjY2MDdhZDU1MzQy
YTM0ZjNlY2RhNDBiNTIyMDIzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0N1cnNvci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVJ
Y29uTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CkBA
IC03ODksOSArNzkwLDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFt
ZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGVDaG9vc2UKICAgICAvLyBGSVhNRTog
U2hvdyBzb21lIHNvcnQgb2YgZXJyb3IgaWYgdG9vIG1hbnkgZmlsZXMgYXJlIHNlbGVjdGVkIGFu
ZCB0aGUgYnVmZmVyIGlzIHRvbyBzbWFsbC4gIEZvciBub3csIHRoaXMgd2lsbCBmYWlsIHNpbGVu
dGx5LgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0
IFZlY3RvcjxXVEY6OlN0cmluZz4mIGZpbGVuYW1lcywgV2ViQ29yZTo6RmlsZUNob29zZXIqIGNo
b29zZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0
b3I8V1RGOjpTdHJpbmc+JiBmaWxlbmFtZXMsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKiBsb2Fk
ZXIpCiB7Ci0gICAgY2hvb3Nlci0+aWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMo
ZmlsZW5hbWVzKSk7CisgICAgbG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGVJY29u
Rm9yRmlsZXMoZmlsZW5hbWVzKSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRDdXJz
b3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDE1MjllMWM0YzljOTU4YzUyZjg5ZGFj
NDNjYzNhOTU2YTEwOWRlZjkuLjE4Y2JiNmI0M2YwZjkyY2FmM2Y2YTE1MDBkMjM2MzA5ZDdjMWNj
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCkBAIC0xMzYsNyArMTM2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBw
YWludEN1c3RvbVNjcm9sbENvcm5lcihXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2Vi
Q29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPik7Ci0gICAgdmly
dHVhbCB2b2lkIGNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+Jiwg
V2ViQ29yZTo6RmlsZUNob29zZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxl
cyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKTsK
IAogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJik7CiAg
ICAgdmlydHVhbCB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKaW5kZXggMTk3OTk2ZmFiMTI4ODc3NmQwMGY2NjNhODFjMDBlODg1OTk3YjRm
ZC4uYTYyNWJhY2RiM2RlMzRjZTA5NDc3NmY5MmI0Y2UxYjg1YWY5YWJmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNi0xOCAgRGltaXRyaSBHbGF6a292ICA8
ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNlcGFyYXRlIGNvbmNlcm5zIG9mIGxvYWRpbmcgZmlsZSBpY29ucyBh
bmQgY2hvb3NpbmcgZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MjkzMQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
V2luQ0UuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6bG9hZEljb25G
b3JGaWxlcyk6IFJlbmFtZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
V2luQ0UuaDoKKwogMjAxMS0wNi0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcCBi
L1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3Bw
CmluZGV4IDQ0MjRjMDE1MTJkMzAwMTY1OGIyMzVkOTY1NzMyMjI3ZmI0MDgzYTYuLjljOWQ1NjQw
MmE4MGFjYWE5ZDI4M2M0NWJjOTVkMDFjOTU3YThlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50V2luQ0UuaCIKIAogI2luY2x1ZGUg
IkZpbGVDaG9vc2VyLmgiCisjaW5jbHVkZSAiRmlsZUljb25Mb2FkZXIuaCIKICNpbmNsdWRlICJJ
Y29uLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9u
QWN0aW9uLmgiCkBAIC0zNTAsOSArMzUxLDkgQEAgdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6cnVu
T3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob28KICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudFdpbkNFOjpjaG9vc2VJ
Y29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUNob29zZXIq
IGNob29zZXIpCit2b2lkIENocm9tZUNsaWVudFdpbkNFOjpsb2FkSWNvbkZvckZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyKiBsb2FkZXIpCiB7Ci0g
ICAgY2hvb3Nlci0+aWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVz
KSk7CisgICAgbG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMo
ZmlsZW5hbWVzKSk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OnNldEN1cnNvcihjb25z
dCBDdXJzb3ImKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRXaW5DRS5oCmluZGV4IDEzYzllYzBhMTAzNWY4OTY2ZjJmNjQwNWM5OTk1
NmIxZWViZThlOTMuLjQxZGI3Y2Q2MTEyYmQ0YjY4Y2Y3OGUxYjM4Y2VmOGZjY2Q1NmI4ZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFdpbkNFLmgKQEAgLTE0OSw3ICsxNDksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZv
aWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxl
Q2hvb3Nlcj4pOwogICAgIC8vIEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBm
b3Igc3BlY2lmaWVkIGZpbGVuYW1lcy4KLSAgICB2aXJ0dWFsIHZvaWQgY2hvb3NlSWNvbkZvckZp
bGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciopOwor
ICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmlu
Zz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopOwogCiAgICAgLy8gTm90aWZpY2F0aW9uIHRo
YXQgdGhlIGdpdmVuIGZvcm0gZWxlbWVudCBoYXMgY2hhbmdlZC4gVGhpcyBmdW5jdGlvbgogICAg
IC8vIHdpbGwgYmUgY2FsbGVkIGZyZXF1ZW50bHksIHNvIGhhbmRsaW5nIHNob3VsZCBiZSB2ZXJ5
IGZhc3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IDQ1YzE4NDYxYjg0ZDQ1NjgyNGY1ZWQyZTQ4MTI0YTJk
YzdlYjM3OTYuLjI4YzFlYmRmNzFhNmM0YTgzYjBhZGM4ZDJhMzYyYjFjNTRkNjUyNTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDYtMTggIERpbWl0cmkgR2xhemtvdiAg
PGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTZXBhcmF0ZSBjb25jZXJucyBvZiBsb2FkaW5nIGZpbGUgaWNvbnMg
YW5kIGNob29zaW5nIGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjI5MzEKKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50
V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OmNob29zZUljb25Gb3JG
aWxlcyk6IFJlbmFtZWQuCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5o
OgorCiAyMDExLTA2LTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCmluZGV4IDE5MDk2ZGU4NzViY2E0
MzZlMWRlZjUwZGE5MjYxM2ZmNWJkM2NlNmMuLjEyZTEyNTFhZWFmMjgzNjI0MmNjZjg5NDEzZDk2
NTNkOTI2NzA0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlVHJh
Y2tlci5oIgogI2VuZGlmCiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJGaWxl
SWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgpAQCAtNDU1LDkgKzQ1Niw5IEBAIHZvaWQg
Q2hyb21lQ2xpZW50V3g6OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29z
ZXI+KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V3g6OmNo
b29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlQ2hv
b3NlciogY2hvb3NlcikKK3ZvaWQgQ2hyb21lQ2xpZW50V3g6OmNob29zZUljb25Gb3JGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciogbG9hZGVyKQog
ewotICAgIGNob29zZXItPmljb25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVu
YW1lcykpOworICAgIGxvYWRlci0+bm90aWZ5RmluaXNoZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZp
bGVzKGZpbGVuYW1lcykpOwogfQogCiB2b2lkIENocm9tZUNsaWVudFd4OjpzZXRDdXJzb3IoY29u
c3QgQ3Vyc29yJiBjdXJzb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1
cHBvcnQvQ2hyb21lQ2xpZW50V3guaCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5oCmluZGV4IDgyMGM4YWJlOWI4OTg3ZWM2ODFjNDNlMzY4MmI0Zjc0ZTZm
NGYzNGYuLjY1NTg3Yzc1YWIzZGZmZGRiNmU5NzAxMjVhMTU3YmRiNmE5ZDRkMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCkBAIC0xMzYs
NyArMTM2LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pOwotICAgIHZpcnR1YWwgdm9pZCBj
aG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlQ2hvb3NlciopOwor
ICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jiwg
RmlsZUljb25Mb2FkZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb3JtU3RhdGVEaWRDaGFuZ2Uo
Y29uc3QgTm9kZSopIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODdhNWMwZWI1M2NjNjJkZTVmYjMxZTZj
Njg5MjM2MjIwZjYxNzQ1MC4uY2QzMDllNGIwMDdiMzVkMjIyYTE2ZWViYmRkYTQzMGZiMTM1ZDMx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA2LTE4ICBEaW1pdHJpIEdsYXpr
b3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU2VwYXJhdGUgY29uY2VybnMgb2YgbG9hZGluZyBmaWxlIGlj
b25zIGFuZCBjaG9vc2luZyBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYyOTMxCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6bG9hZEljb25Gb3JGaWxlcyk6IFJlbmFtZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAxMS0wNi0xNyAgQnJlbnQgRnVsZ2hh
bSAgPGJmdWxnaGFtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbkNhaXJvXSBVbnJldmlld2Vk
IGJ1aWxkIGZpeCBhZnRlciByODkwNjAgYW5kIHI4OTE2MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAppbmRleCBlYTAwNGZjMjhlNTY4OTMwZWI0MDVhNzg3N2UzMDk3OTI2ZDYyNjA2Li5hNmYwY2Rl
NzA5ZWU5ZDNjZWExMzhjOWQ0NzhjOGQ5ZmY2OWRmYjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiV2ViU2VhcmNoUG9wdXBNZW51LmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZVRyYWNrZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zp
bGVDaG9vc2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlSWNvbkxvYWRlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KQEAgLTYzNiw5ICs2MzcsOSBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxl
Q2hvb3Nlcj4gcHJwRmlsZQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSdW5PcGVuUGFuZWwoc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGllbnQqPihmcmFtZS0+
bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKS0+ZnJhbWVJRCgpLCBwYXJhbWV0ZXJzKSk7
CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUNob29zZXIqIGNob29zZXIpCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5h
bWVzLCBGaWxlSWNvbkxvYWRlciogbG9hZGVyKQogewotICAgIGNob29zZXItPmljb25Mb2FkZWQo
SWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGxvYWRlci0+bm90aWZ5
RmluaXNoZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOwogfQogCiB2b2lk
IFdlYkNocm9tZUNsaWVudDo6c2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYgY3Vyc29y
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNzNhMTIyZjA1M2Q1ZGMxZmUzNWZmNDUyOWJjYTNl
OTkxMmIwMDEzYi4uZDI4NjcxZjBmNzk5MDg3NDdhZThhZTViYzA5YWY1NGNiNWIyNmY4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNjksNyArMTY5LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKIAogICAgIHZpcnR1YWwgdm9pZCBy
dW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9v
c2VyPik7Ci0gICAgdmlydHVhbCB2b2lkIGNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyKik7CisgICAgdmlydHVhbCB2b2lkIGxvYWRJ
Y29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRl
ciopOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3Im
KTsKIAo=
</data>
<flag name="commit-queue"
          id="91760"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>