<?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>44433</bug_id>
          
          <creation_ts>2010-08-23 09:36:35 -0700</creation_ts>
          <short_desc>Add AsyncFileSystem interface for platform-dependent FileSystem API implementation</short_desc>
          <delta_ts>2010-08-27 14:15:56 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>42903</blocked>
    
    <blocked>44434</blocked>
    
    <blocked>44732</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kinuko Yasuda">kinuko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dumi</cc>
    
    <cc>ericu</cc>
    
    <cc>fishd</cc>
    
    <cc>levin</cc>
    
    <cc>michaeln</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>267956</commentid>
    <comment_count>0</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-23 09:36:35 -0700</bug_when>
    <thetext>Add AsyncFileSystem interface that provides an async interface to platform-dependent DOMFileSystem implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267959</commentid>
    <comment_count>1</comment_count>
      <attachid>65132</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-23 09:40:28 -0700</bug_when>
    <thetext>Created attachment 65132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267960</commentid>
    <comment_count>2</comment_count>
      <attachid>65133</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-23 09:44:45 -0700</bug_when>
    <thetext>Created attachment 65133
Patch

Removed unnecessary line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268037</commentid>
    <comment_count>3</comment_count>
      <attachid>65146</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-23 12:00:39 -0700</bug_when>
    <thetext>Created attachment 65146
Patch

Patch (rebased)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268086</commentid>
    <comment_count>4</comment_count>
      <attachid>65146</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-23 13:37:04 -0700</bug_when>
    <thetext>Comment on attachment 65146
Patch

Some drive by comments.

WebCore/platform/AsyncFileSystemCallbacks.h:48
 +      virtual void didOpenFileSystem(const String&amp; name, const String&amp; rootPath) = 0;
If this callback was void didOpenFileSystem(PassOwnPtr&lt;AsyncFileSystem&gt; result) could we avoid the need for the AsyncFileSystemFactory class? Effectively the openFileSystem() method is a factory method that returns asyncly.

WebCore/storage/DOMFileSystem.h:69
 +      DOMFileSystem(ScriptExecutionContext*, const String&amp; name, AsyncFileSystem*);
Should this be PassOwnPtr&lt;AFS&gt; ?

WebCore/storage/DOMFileSystem.h:50
 +      static PassRefPtr&lt;DOMFileSystem&gt; create(ScriptExecutionContext* context, const String&amp; name, AsyncFileSystem* asyncFileSystem)
PassOwnPtr&lt;AFS&gt; here too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268170</commentid>
    <comment_count>5</comment_count>
      <attachid>65178</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-23 16:37:19 -0700</bug_when>
    <thetext>Created attachment 65178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268188</commentid>
    <comment_count>6</comment_count>
      <attachid>65183</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-23 16:48:59 -0700</bug_when>
    <thetext>Created attachment 65183
Patch

Patch (rebased)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268192</commentid>
    <comment_count>7</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-23 16:50:24 -0700</bug_when>
    <thetext>Thanks for your comments.

(In reply to comment #4)
&gt; (From update of attachment 65146 [details])
&gt; WebCore/platform/AsyncFileSystemCallbacks.h:48
&gt;  +      virtual void didOpenFileSystem(const String&amp; name, const String&amp; rootPath) = 0;
&gt; If this callback was void didOpenFileSystem(PassOwnPtr&lt;AsyncFileSystem&gt; result) could we avoid the need for the AsyncFileSystemFactory class? Effectively the openFileSystem() method is a factory method that returns asyncly.

Well, because I wanted to put AsyncFileSystem under platform there&apos;re some layering issues around it.  For non-chromium version I&apos;m planning to add a thread version of AsyncFileSystem implementation but it reguires high-level classes (e.g. ScriptExecutionContext) and thus needs to be created (or set via factory) at higher level.

I removed the factory class and changed the code to create AsyncFileSystem before calling openFileSystem.  I also included LocalFileSystem class in the patch to give some idea how AsyncFileSystem is going to be created in non-chromium cases.  (I tried to make this layering look prettier but haven&apos;t succeeded yet...)

&gt; WebCore/storage/DOMFileSystem.h:69
&gt;  +      DOMFileSystem(ScriptExecutionContext*, const String&amp; name, AsyncFileSystem*);
&gt; Should this be PassOwnPtr&lt;AFS&gt; ?

Fixed.

&gt; WebCore/storage/DOMFileSystem.h:50
&gt;  +      static PassRefPtr&lt;DOMFileSystem&gt; create(ScriptExecutionContext* context, const String&amp; name, AsyncFileSystem* asyncFileSystem)
&gt; PassOwnPtr&lt;AFS&gt; here too?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269424</commentid>
    <comment_count>8</comment_count>
      <attachid>65460</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-25 11:59:20 -0700</bug_when>
    <thetext>Created attachment 65460
=Patch (rebased; did some cleanup)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269467</commentid>
    <comment_count>9</comment_count>
      <attachid>65460</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-25 13:25:15 -0700</bug_when>
    <thetext>Comment on attachment 65460
=Patch (rebased; did some cleanup)

This looks pretty good to me.

WebCore/platform/AsyncFileSystem.h:65
 +      virtual void move(const String&amp; srcPath, const String&amp; destPath, PassOwnPtr&lt;AsyncFileSystemCallbacks&gt;) = 0;
Should we add comments to indicate which of the callbacks is invoked on success and on error? I guess its usually didSucceed() or didFail(int error), maybe a general comment to that affect and than call out those that deviate from that.

WebCore/platform/AsyncFileSystemCallbacks.h:54
 +      virtual void didReadDirectoryEntry(const String&amp; name, bool isDirectory) = 0;
What calls is didReadDirectoryEntry(...) and didReadDirectoryChunkDone(...) in response to?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269482</commentid>
    <comment_count>10</comment_count>
      <attachid>65460</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-08-25 13:47:02 -0700</bug_when>
    <thetext>Comment on attachment 65460
=Patch (rebased; did some cleanup)

WebCore/storage/LocalFileSystem.cpp:72
 +      AsyncFileSystem::openFileSystem(m_basePath, context-&gt;securityOrigin()-&gt;databaseIdentifier(), type, new FileSystemCallbacks(successCallback, errorCallback, context, asyncFileSystem.release()));
it seems a bit awkward that openFileSystem is a static method and not an instance
method on AsyncFileSystem.  you have an instance of AsyncFileSystem here.

WebCore/storage/LocalFileSystem.h:52
 +      void requestFileSystem(ScriptExecutionContext*, AsyncFileSystem::Type type, long long size, PassRefPtr&lt;FileSystemCallback&gt;, PassRefPtr&lt;ErrorCallback&gt;);
nit: leave off the &quot;type&quot; parameter name here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269541</commentid>
    <comment_count>11</comment_count>
      <attachid>65482</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-25 15:18:40 -0700</bug_when>
    <thetext>Created attachment 65482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269543</commentid>
    <comment_count>12</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-25 15:21:56 -0700</bug_when>
    <thetext>Thanks,

(In reply to comment #9)
&gt; (From update of attachment 65460 [details])
&gt; This looks pretty good to me.
&gt; 
&gt; WebCore/platform/AsyncFileSystem.h:65
&gt;  +      virtual void move(const String&amp; srcPath, const String&amp; destPath, PassOwnPtr&lt;AsyncFileSystemCallbacks&gt;) = 0;
&gt; Should we add comments to indicate which of the callbacks is invoked on success and on error? I guess its usually didSucceed() or didFail(int error), maybe a general comment to that affect and than call out those that deviate from that.

Added comments.

&gt; WebCore/platform/AsyncFileSystemCallbacks.h:54
&gt;  +      virtual void didReadDirectoryEntry(const String&amp; name, bool isDirectory) = 0;
&gt; What calls is didReadDirectoryEntry(...) and didReadDirectoryChunkDone(...) in response to?

Added AsyncFileSystem::readDirectory()... it was missing in the previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269548</commentid>
    <comment_count>13</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-25 15:26:36 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 65460 [details])
&gt; WebCore/storage/LocalFileSystem.cpp:72
&gt;  +      AsyncFileSystem::openFileSystem(m_basePath, context-&gt;securityOrigin()-&gt;databaseIdentifier(), type, new FileSystemCallbacks(successCallback, errorCallback, context, asyncFileSystem.release()));
&gt; it seems a bit awkward that openFileSystem is a static method and not an instance
&gt; method on AsyncFileSystem.  you have an instance of AsyncFileSystem here.

That&apos;s true... I was afraid it might complicate the ownership of AsyncFileSystem.
Changed the method to virtual method.

&gt; WebCore/storage/LocalFileSystem.h:52
&gt;  +      void requestFileSystem(ScriptExecutionContext*, AsyncFileSystem::Type type, long long size, PassRefPtr&lt;FileSystemCallback&gt;, PassRefPtr&lt;ErrorCallback&gt;);
&gt; nit: leave off the &quot;type&quot; parameter name here

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269663</commentid>
    <comment_count>14</comment_count>
      <attachid>65513</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-25 18:30:04 -0700</bug_when>
    <thetext>Created attachment 65513
Patch

Another attempt.  It\&apos;s hard to avoid all the violations but how about something like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269711</commentid>
    <comment_count>15</comment_count>
      <attachid>65523</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-25 21:40:55 -0700</bug_when>
    <thetext>Created attachment 65523
Patch

Removed all the layering hacks.  For now we would just want to let this in for chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269721</commentid>
    <comment_count>16</comment_count>
      <attachid>65524</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-25 22:40:30 -0700</bug_when>
    <thetext>Created attachment 65524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270332</commentid>
    <comment_count>17</comment_count>
      <attachid>65524</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-08-26 23:25:33 -0700</bug_when>
    <thetext>Comment on attachment 65524
Patch

WebCore/platform/AsyncFileSystem.h:62
 +      static void openFileSystem(const String&amp; basePath, const String&amp; storageIdentifier, Type, PassOwnPtr&lt;AsyncFileSystemCallbacks&gt;);
I don&apos;t understand the comment about passing ownership of &apos;this&apos; since this method is static.  There is no &apos;this&apos; pointer.

WebCore/platform/AsyncFileSystemCallbacks.h:57
 +      virtual void didReadDirectoryChunkDone(bool hasMore) = 0;
The name of this method is a bit awkward sounding.  Perhaps didReadDirectoryEntries would be a better name?  Pluralizing Entry suggests a &quot;chunk of entries&quot;, which seems similar to what you were trying to get at with using Chunk in the name.  Also, the Done bit may be redundant with the hasMore parameter, so leaving it as didReadDirectoryEntries seems reasonable to me.  It just informs the callbacks that entries were read and more may be read soon.  Works for me!


R=me w/ these two changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270740</commentid>
    <comment_count>18</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-27 14:15:56 -0700</bug_when>
    <thetext>Committed r66255: &lt;http://trac.webkit.org/changeset/66255&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65132</attachid>
            <date>2010-08-23 09:40:28 -0700</date>
            <delta_ts>2010-08-23 09:44:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44433-20100823094027.patch</filename>
            <type>text/plain</type>
            <size>26416</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IGViNDJjNWNhYmVmNjE4ODJhZGZkMjJlYjFlMDQ5NTY2OWRjYTJiMmYuLjY5N2Vh
NjAzYjY3ZDBjMWNhYmU2YjlkZTc4OTk1ZmQ4NjAwNjE4YjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIxMCw2ICsx
MjEwLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1l
QW5pbWF0aW9uLmNwcAogCiAgICAgcGxhdGZvcm0vQXJlbmEuY3BwCisgICAgcGxhdGZvcm0vQXN5
bmNGaWxlU3lzdGVtLmNwcAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmNwcAogICAgIHBsYXRmb3Jt
L0NvbnRlbnRUeXBlLmNwcAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmNwcApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YWQ2NzQ5NzVi
MWEyZmY4NzcyMDJmMGJhN2ZhMmI3NDQ0MmI2NTFjLi5jMDFiNGExNGJjMzg5ZjliYzc2MjcyZmFi
MTRiZGFmNjVmOGY2NzQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEwLTA4LTIzICBLaW51a28gWWFzdWRh
ICA8a2ludWtvQGtpbnVrbzItbWFjcHJvLm10di5jb3JwLmdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFzeW5jRmlsZVN5c3Rl
bSBpbnRlcmZhY2UgZm9yIHBsYXRmb3JtLWRlcGVuZGVudCBGaWxlU3lzdGVtIEFQSSBpbXBsZW1l
bnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDQ0MzMKKworICAgICAgICBObyBuZXcgdGVzdHM7IHRlc3RzIHdpbGwgYmUgYWRkZWQgbGF0ZXIu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vQXN5bmNGaWxl
U3lzdGVtLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmg6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgICogc3RvcmFn
ZS9ET01GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06OkRP
TUZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6fkRPTUZpbGVT
eXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6Y29udGV4dERlc3Ryb3llZCk6CisgICAgICAgICogc3Rv
cmFnZS9ET01GaWxlU3lzdGVtLmg6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpj
cmVhdGUpOgorICAgICAgICAqIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZTo6ZGlkRmFpbCk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlU3lzdGVtQ2FsbGJhY2tzOjpGaWxlU3lzdGVtQ2FsbGJhY2tzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZE9wZW5GaWxlU3lzdGVtKToK
KyAgICAgICAgKiBzdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuaDoKKyAgICAgICAgKiBzdG9y
YWdlL0ZsYWdzLmg6CisKIDIwMTAtMDgtMjIgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5n
QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUu
cHJvCmluZGV4IDEzYWEwNzMzNTljMWY0ZDUyM2EwZGVhOGEwZjRmMTcxMDQ0ZmE3MDcuLmEwMTIw
NmNiMTAyYzM1NDNmNjUwZjg5ODRjZDY2ZThlNWEwNTMxNDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODczLDYgKzg3Myw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwIFwKICAg
ICBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAgXAogICAgIHBsYXRmb3JtL0Fy
ZW5hLmNwcCBcCisgICAgcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcCBcCiAgICAgcGxhdGZv
cm0vQmxvYkl0ZW0uY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAgXAogICAgIHBs
YXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3BwIFwKQEAgLTE2NTcsNiArMTY1OCw4IEBAIEhFQURF
UlMgKz0gXAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmggXAogICAgIHBs
YXRmb3JtL0FyZW5hLmggXAogICAgIHBsYXRmb3JtL0FzeW5jRmlsZVN0cmVhbS5oIFwKKyAgICBw
bGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaCBcCisgICAgcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzLmggXAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmggXAogICAgIHBsYXRmb3JtL0Nv
bnRlbnRUeXBlLmggXAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmggXApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNzQ4NjAzMzQzOGJmMTMwNGNkMjE3MjA0NWJlOGIx
YjNlMDJhMWM0Yy4uYzE4YzlkMjU5ZTIzNmRiMzM1ZDRmNDRiN2M2MDY4YzE0ZDU5MjYxZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMzk4MSw2ICsyMzk4MSwxOCBA
QAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
bGF0Zm9ybVxBc3luY0ZpbGVTeXN0ZW0uY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxG
aWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cQXN5bmNGaWxlU3lzdGVtLmgiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0
Zm9ybVxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEF1dG9kcmFpbmVkUG9vbC5o
Ig0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggODA1OWFhMmUyN2FhYTNlNzZmODVmNWQ2NDY0MGU3MDY4NWU2ZmM5ZC4u
ZDQ3MGZjMWMwYzlmYWU5MWRlNGE4MTVhNWRkMjk2MjU5NzRlOTY5OCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI0MzQsNiArMjQzNCw5IEBACiAJCTg5
QzBERDdCMTIxRjBDNjkwMDlFMTdDQSAvKiBGaWxlU3lzdGVtQ2FsbGJhY2tzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUMwREQ3OTEyMUYwQzY5MDA5
RTE3Q0EgLyogRmlsZVN5c3RlbUNhbGxiYWNrcy5oICovOyB9OwogCQk4OUNEMDI5MzExQzg1Qjg3
MDA3MEI3OTEgLyogSlNCbG9iQnVpbGRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4OUNEMDI5MTExQzg1Qjg3MDA3MEI3OTEgLyogSlNCbG9iQnVp
bGRlci5jcHAgKi87IH07CiAJCTg5Q0QwMjk0MTFDODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JCdWls
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUNE
MDI5MjExQzg1Qjg3MDA3MEI3OTEgLyogSlNCbG9iQnVpbGRlci5oICovOyB9OworCQk4OUQwOEQ5
RjEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5RDA4RDlDMTIyMjg0NTEwMDEyNDFERiAv
KiBBc3luY0ZpbGVTeXN0ZW0uY3BwICovOyB9OworCQk4OUQwOERBMDEyMjI4NDUxMDAxMjQxREYg
LyogQXN5bmNGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4OUQwOEQ5RDEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmgg
Ki87IH07CisJCTg5RDA4REExMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5
RDA4RDlFMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLzsg
fTsKIAkJOEExMkUzNUQxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEExMkUzNUMxMUZB
MzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAv
KiBBc3luY1NjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEE0
MTNBRTExMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURGMTIwN0JCQTUwMDgy
MDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgKi87IH07CkBAIC04MzA2LDYgKzgzMDksOSBA
QAogCQk4OUNEMDI3OTExQzg1OUE4MDA3MEI3OTEgLyogQmxvYkJ1aWxkZXIuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEJsb2JCdWlsZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODlDRDAyOTExMUM4NUI4NzAwNzBCNzkxIC8qIEpTQmxvYkJ1aWxkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNCbG9iQnVpbGRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5Q0QwMjkyMTFDODVCODcwMDcwQjc5MSAvKiBKU0Js
b2JCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmxvYkJ1aWxk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODlEMDhEOUMxMjIyODQ1MTAwMTI0
MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBBc3luY0ZpbGVTeXN0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4OUQwOEQ5RDEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk4OUQwOEQ5RTEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jRmls
ZVN5c3RlbUNhbGxiYWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTEyRTM1
QzExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50TG9hZFRpbWluZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5u
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXN5bmNTY3JpcHRSdW5uZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE0MTNBREYxMjA3QkJBNTAwODIwMTZF
IC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEFzeW5jU2NyaXB0UnVubmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE2NTczLDYgKzE2NTc5LDkgQEAKIAkJQkNGMUE1QkEwOTc4MzIwOTAwNjFBMTIzIC8qIHBs
YXRmb3JtICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk4
OUQwOEQ5QzEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCAqLywKKwkJCQk4
OUQwOEQ5RDEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmggKi8sCisJCQkJODlE
MDhEOUUxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oICovLAog
CQkJCTQ5RTkxMkE0MEVGQUM4RTYwMDlEMENBRiAvKiBhbmltYXRpb24gKi8sCiAJCQkJMUFFNDJG
NjcwQUE0QjhDQjAwQzg2MTJEIC8qIGNmICovLAogCQkJCUE1Qzk3NENFMTE0ODVGREEwMDY2RjJB
QiAvKiBjb2NvYSAqLywKQEAgLTIwMzQ3LDYgKzIwMzU2LDggQEAKIAkJCQkyRUYxQkZGOTEyMUNC
MENFMDBDMjc2MjcgLyogRmlsZVN0cmVhbUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODlD
MEREN0IxMjFGMEM2OTAwOUUxN0NBIC8qIEZpbGVTeXN0ZW1DYWxsYmFja3MuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNFMDU3RkE2MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTg5RDA4REEwMTIyMjg0NTEwMDEyNDFERiAvKiBB
c3luY0ZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTg5RDA4REExMTIyMjg0NTEwMDEy
NDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjI4
MDAsNiArMjI4MTEsNyBAQAogCQkJCTQ2QTI2OTA1MTIxQjZCNDMwMEM0MUYzQSAvKiBGaWxlV3Jp
dGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5QzBERDdBMTIxRjBDNjkwMDlFMTdDQSAvKiBG
aWxlU3lzdGVtQ2FsbGJhY2tzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNFMDU3RkE1MTIyMDcz
MTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJODlEMDhEOUYxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVt
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NTdjNjhiZTVhODU0MDgyMmRmZTFlYTNhMDQ5M2YxNjhlY2Y0YzM2Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwCkBAIC0wLDAgKzEsNzAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisKKyNpZiBF
TkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3Mu
aCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lm
ICFQTEFURk9STShDSFJPTUlVTSkKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3Rl
bShjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZGVudGlmaWVy
LCBUeXBlIHR5cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFj
a3MpCit7CisgICAgU3RyaW5nIHR5cGVTdHJpbmcgPSAodHlwZSA9PSBQZXJzaXN0ZW50KSA/ICJQ
ZXJzaXN0ZW50IiA6ICJUZW1wb3JhcnkiOworCisgICAgU3RyaW5nIG5hbWUgPSBzdG9yYWdlSWRl
bnRpZmllcjsKKyAgICBuYW1lICs9ICI6IjsKKyAgICBuYW1lICs9IHR5cGVTdHJpbmc7CisKKyAg
ICBTdHJpbmcgcm9vdFBhdGggPSBiYXNlUGF0aDsKKyAgICByb290UGF0aC5hcHBlbmQoUGxhdGZv
cm1GaWxlUGF0aFNlcGFyYXRvcik7CisgICAgcm9vdFBhdGggKz0gc3RvcmFnZUlkZW50aWZpZXI7
CisgICAgcm9vdFBhdGguYXBwZW5kKFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IpOworICAgIHJv
b3RQYXRoICs9IHR5cGVTdHJpbmc7CisgICAgcm9vdFBhdGguYXBwZW5kKFBsYXRmb3JtRmlsZVBh
dGhTZXBhcmF0b3IpOworCisgICAgY2FsbGJhY2tzLT5kaWRPcGVuRmlsZVN5c3RlbShuYW1lLCBy
b290UGF0aCk7Cit9CisjZW5kaWYKKworLy8gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KK1N0cmlu
ZyBBc3luY0ZpbGVTeXN0ZW06OnZpcnR1YWxUb1BsYXRmb3JtUGF0aChjb25zdCBTdHJpbmcmIHBh
dGgpIGNvbnN0Cit7CisgICAgU3RyaW5nIHZpcnR1YWxQYXRoID0gcGF0aDsKKyAgICByZXR1cm4g
bV9wbGF0Zm9ybVJvb3RQYXRoICsgdmlydHVhbFBhdGgucmVwbGFjZSgnLycsIFBsYXRmb3JtRmls
ZVBhdGhTZXBhcmF0b3IpOworfQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxF
KEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0
ZW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTk5
ZjhjMjhiNjdjZjZiOTFkYTIwY2Q3M2UzZWJhN2U0YTZhZjE3ZAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmgKQEAgLTAsMCArMSw5MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgQXN5bmNGaWxlU3lzdGVtX2gKKyNkZWZpbmUgQXN5bmNGaWxlU3lzdGVtX2gKKworI2lmIEVO
QUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBc3lu
Y0ZpbGVTeXN0ZW07CitjbGFzcyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M7CisKKy8vIEEgZmFj
dG9yeSBjbGFzcyBpbnRlcmZhY2UuCitjbGFzcyBBc3luY0ZpbGVTeXN0ZW1GYWN0b3J5IHsKK3B1
YmxpYzoKKyAgICAvLyBNdXN0IHJldHVybiBub24tbnVsbC4KKyAgICB2aXJ0dWFsIEFzeW5jRmls
ZVN5c3RlbSogY3JlYXRlQXN5bmNGaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgcGxhdGZvcm1Sb290
UGF0aCkgPSAwOworICAgIHZpcnR1YWwgfkFzeW5jRmlsZVN5c3RlbUZhY3RvcnkoKSB7IH0KK307
CisKKy8vIFRoaXMgY2xhc3MgcHJvdmlkZXMgYW4gYXN5bmMgaW50ZXJmYWNlIGZvciBwbGF0Zm9y
bSBkZXBlbmRlbnQgRE9NRmlsZVN5c3RlbSBpbXBsZW1lbnRhdGlvbi4gTm90ZSB0aGF0IGFsbCB0
aGUgbWV0aG9kcyB0YWtlIGNhbm9uaWNhbGl6ZWQgdmlydHVhbCBwYXRocy4KK2NsYXNzIEFzeW5j
RmlsZVN5c3RlbSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
QXN5bmNGaWxlU3lzdGVtKCkgeyB9CisKKyAgICAvLyBGaWxlU3lzdGVtIHR5cGUKKyAgICBlbnVt
IFR5cGUgeworICAgICAgICBUZW1wb3JhcnksCisgICAgICAgIFBlcnNpc3RlbnQsCisgICAgfTsK
KworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgeyB9CisgICAgdmlydHVhbCBib29sIGhhc1BlbmRp
bmdBY3Rpdml0eSgpIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICBzdGF0aWMgdm9pZCBvcGVuRmls
ZVN5c3RlbShjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZGVu
dGlmaWVyLCBUeXBlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOworCisg
ICAgdmlydHVhbCB2b2lkIG1vdmUoY29uc3QgU3RyaW5nJiBzcmNQYXRoLCBjb25zdCBTdHJpbmcm
IGRlc3RQYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgY29weShjb25zdCBTdHJpbmcmIHNyY1BhdGgsIGNvbnN0IFN0cmluZyYg
ZGVzdFBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCByZW1vdmUoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhZE1ldGFkYXRh
KGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBi
b29sIGV4Y2x1c2l2ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIGJv
b2wgZXhjbHVzaXZlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25Q
dHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXJl
Y3RvcnlFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrcz4pID0gMDsKKworICAgIC8vIENvbnZlcnRzIGEgZ2l2ZW4gYWJzb2x1dGUgdmly
dHVhbCBwYXRoIHRvIGEgcGxhdGZvcm0gcGF0aCB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBwbGF0Zm9y
bSByb290IHBhdGggb2YgdGhpcyBmaWxlIHN5c3RlbS4KKyAgICB2aXJ0dWFsIFN0cmluZyB2aXJ0
dWFsVG9QbGF0Zm9ybVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKSBjb25zdDsKKworcHJvdGVjdGVk
OgorICAgIEFzeW5jRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIHBsYXRmb3JtUm9vdFBhdGgpCisg
ICAgICAgIDogbV9wbGF0Zm9ybVJvb3RQYXRoKHBsYXRmb3JtUm9vdFBhdGgpCisgICAgeworICAg
IH0KKworICAgIFN0cmluZyBtX3BsYXRmb3JtUm9vdFBhdGg7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNlbmRpZiAvLyBB
c3luY0ZpbGVTeXN0ZW1faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVT
eXN0ZW1DYWxsYmFja3MuaCBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWYzOTk5OTU5YWYxODU0NzYxNzI5YzRmY2RmNWYyZTc2NjhiYWRh
NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2Fs
bGJhY2tzLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
X2gKKyNkZWZpbmUgQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzX2gKKworI2lmIEVOQUJMRShGSUxF
X1NZU1RFTSkKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgQXN5bmNGaWxlU3lzdGVtOworCitjbGFzcyBBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3MgOiBwdWJsaWMgTm9uY29weWFibGUgeworcHVibGljOgorICAgIC8vIENhbGxlZCB3
aGVuIGEgcmVxdWVzdGVkIG9wZXJhdGlvbiBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LgorICAg
IHZpcnR1YWwgdm9pZCBkaWRTdWNjZWVkKCkgPSAwOworCisgICAgLy8gQ2FsbGVkIHdoZW4gYSBy
ZXF1ZXN0ZWQgZmlsZSBzeXN0ZW0gaXMgb3BlbmVkLgorICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVu
RmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpID0g
MDsKKworICAgIC8vIENhbGxlZCB3aGVuIGEgZmlsZSBtZXRhZGF0YSBpcyByZWFkIHN1Y2Nlc3Nm
dWxseS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVhZE1ldGFkYXRhKGRvdWJsZSBtb2RpZmljYXRp
b25UaW1lKSA9IDA7CisKKyAgICAvLyBDYWxsZWQgd2hlbiBhIGRpcmVjdG9yeSBlbnRyeSBpcyBy
ZWFkLgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWFkRGlyZWN0b3J5RW50cnkoY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIGlzRGlyZWN0b3J5KSA9IDA7CisKKyAgICAvLyBDYWxsZWQgYWZ0ZXIgYSBj
aHVuayBvZiBkaXJlY3RvcnkgZW50cmllcyBoYXZlIGJlZW4gcmVhZCAoaS5lLiBpbmRpY2F0ZXMg
aXQncyBnb29kIHRpbWUgdG8gY2FsbCBiYWNrIHRvIHRoZSBhcHBsaWNhdGlvbikuICBJZiBoYXNN
b3JlIGlzIHRydWUgdGhlcmUgY2FuIGJlIG1vcmUgY2h1bmtzLgorICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWFkRGlyZWN0b3J5Q2h1bmtEb25lKGJvb2wgaGFzTW9yZSkgPSAwOworCisgICAgLy8gQ2Fs
bGVkIHdoZW4gdGhlcmUgd2FzIGFuIGVycm9yLgorICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGlu
dCBjb2RlKSA9IDA7CisKKyAgICB2aXJ0dWFsIH5Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MoKSB7
IH0KK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0p
CisKKyNlbmRpZiAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3NfaApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0u
aAppbmRleCBlYzc1YTIxMDNhNTUwODczYzU3ZTQxN2U2ZjMzMmUwOGI2OGQ3YWRmLi5kZWQyZDky
MjNiMmQ2MDI2ZTkyZDRjNjU4MzI3MTA3ZjczYzE4NzE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL0ZpbGVTeXN0ZW0uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApA
QCAtMTM4LDYgKzEzOCwxMiBAQCBlbnVtIEZpbGVTZWVrT3JpZ2luIHsKICAgICBTZWVrRnJvbUVu
ZAogfTsKIAorI2lmIE9TKFdJTkRPV1MpCitzdGF0aWMgY29uc3QgY2hhciBQbGF0Zm9ybUZpbGVQ
YXRoU2VwYXJhdG9yID0gJ1xcJzsKKyNlbHNlCitzdGF0aWMgY29uc3QgY2hhciBQbGF0Zm9ybUZp
bGVQYXRoU2VwYXJhdG9yID0gJy8nOworI2VuZGlmCisKIGJvb2wgZmlsZUV4aXN0cyhjb25zdCBT
dHJpbmcmKTsKIGJvb2wgZGVsZXRlRmlsZShjb25zdCBTdHJpbmcmKTsKIGJvb2wgZGVsZXRlRW1w
dHlEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7CkBAIC0xNDksNiArMTU1LDggQEAgU3RyaW5nIGhv
bWVEaXJlY3RvcnlQYXRoKCk7CiBTdHJpbmcgcGF0aEdldEZpbGVOYW1lKGNvbnN0IFN0cmluZyYp
OwogU3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJik7CiAKK2Jvb2wgbW92ZUZpbGUo
Y29uc3QgU3RyaW5nJiBzcmNQYXRoLCBjb25zdCBTdHJpbmcmIGRlc3RQYXRoKTsKKwogVmVjdG9y
PFN0cmluZz4gbGlzdERpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYg
ZmlsdGVyID0gU3RyaW5nKCkpOwogCiBDU3RyaW5nIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihj
b25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVt
LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcAppbmRleCBjM2RiZDM0MDE0
ZWEyMGVjZWZkOGFhZGQ3YzZiZGM5ZGJkMGVlOTYyLi42YmU0MDlkMzA2NDY0YjBmZjFmZWNjZDk1
ODJmOGRhZTUwZmM1NTZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3Rl
bS5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC0zMywxMyAr
MzMsMjAgQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKIAorI2luY2x1ZGUgIkFzeW5jRmls
ZVN5c3RlbS5oIgogI2luY2x1ZGUgIkRpcmVjdG9yeUVudHJ5LmgiCisjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLURPTUZpbGVTeXN0
ZW06OkRPTUZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQ
YXRoKQotICAgIDogbV9yb290UGF0aChyb290UGF0aCkKK0RPTUZpbGVTeXN0ZW06OkRPTUZpbGVT
eXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBBc3luY0ZpbGVTeXN0ZW0qIGFzeW5jRmlsZVN5c3RlbSkKKyAgICA6IEFjdGl2ZURPTU9iamVj
dChjb250ZXh0LCB0aGlzKQogICAgICwgbV9uYW1lKG5hbWUpCisgICAgLCBtX2FzeW5jRmlsZVN5
c3RlbShhc3luY0ZpbGVTeXN0ZW0pCit7Cit9CisKK0RPTUZpbGVTeXN0ZW06On5ET01GaWxlU3lz
dGVtKCkKIHsKIH0KIApAQCAtNDgsNiArNTUsMjEgQEAgUGFzc1JlZlB0cjxEaXJlY3RvcnlFbnRy
eT4gRE9NRmlsZVN5c3RlbTo6cm9vdCgpCiAgICAgcmV0dXJuIERpcmVjdG9yeUVudHJ5OjpjcmVh
dGUodGhpcywgIi8iKTsKIH0KIAordm9pZCBET01GaWxlU3lzdGVtOjpzdG9wKCkKK3sKKyAgICBt
X2FzeW5jRmlsZVN5c3RlbS0+c3RvcCgpOworfQorCitib29sIERPTUZpbGVTeXN0ZW06Omhhc1Bl
bmRpbmdBY3Rpdml0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXN5bmNGaWxlU3lzdGVtLT5o
YXNQZW5kaW5nQWN0aXZpdHkoKTsKK30KKwordm9pZCBET01GaWxlU3lzdGVtOjpjb250ZXh0RGVz
dHJveWVkKCkKK3sKKyAgICBtX2FzeW5jRmlsZVN5c3RlbS0+c3RvcCgpOworfQorCiB9IC8vIG5h
bWVzcGFjZQogCiAjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaCBiL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lz
dGVtLmgKaW5kZXggYjg3YWFhZjMyY2Q5ZWFjMGYyMmM0OWVlMTc2NzJkZDVhMmU3NzY3My4uMGM3
ODZjYjQ4MjMzNWEzNzgwZjExMDFlNzlmN2E3M2E2NzRjNDg5NCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5
c3RlbS5oCkBAIC0zMywyOSArMzMsNDMgQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKIAor
I2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkZsYWdzLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQXN5
bmNGaWxlU3lzdGVtOwogY2xhc3MgRGlyZWN0b3J5RW50cnk7CitjbGFzcyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OwogCi1jbGFzcyBET01GaWxlU3lzdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8RE9N
RmlsZVN5c3RlbT4geworY2xhc3MgRE9NRmlsZVN5c3RlbSA6IHB1YmxpYyBSZWZDb3VudGVkPERP
TUZpbGVTeXN0ZW0+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHJvb3RQYXRoKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUZpbGVTeXN0
ZW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcm
IG5hbWUsIEFzeW5jRmlsZVN5c3RlbSogYXN5bmNGaWxlU3lzdGVtKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBET01GaWxlU3lzdGVtKG5hbWUsIHJvb3RQYXRoKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRE9NRmlsZVN5c3RlbShjb250ZXh0LCBuYW1lLCBhc3lu
Y0ZpbGVTeXN0ZW0pKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIH5ET01GaWxlU3lzdGVtKCk7CisK
ICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICBQ
YXNzUmVmUHRyPERpcmVjdG9yeUVudHJ5PiByb290KCk7CiAKKyAgICAvLyBBY3RpdmVET01PYmpl
Y3QgbWV0aG9kcy4KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpOworICAgIHZpcnR1YWwgYm9vbCBo
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ry
b3llZCgpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIgZmlsZVBhdGhTZXBhcmF0b3I7CisgICAg
c3RhdGljIGNvbnN0IGNoYXIqIHJvb3RQYXRoOworCiBwcml2YXRlOgotICAgIERPTUZpbGVTeXN0
ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoKTsKKyAgICBET01G
aWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEFz
eW5jRmlsZVN5c3RlbSopOwogCi0gICAgU3RyaW5nIG1fcm9vdFBhdGg7CiAgICAgU3RyaW5nIG1f
bmFtZTsKKyAgICBtdXRhYmxlIE93blB0cjxBc3luY0ZpbGVTeXN0ZW0+IG1fYXN5bmNGaWxlU3lz
dGVtOwogfTsKIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9G
aWxlU3lzdGVtQ2FsbGJhY2tzLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJh
Y2tzLmNwcAppbmRleCBlYzM1MmRkN2Q2ZTkyYzdjODdhMzgwNGIzY2QzOGNjM2RkYTFlODE4Li5i
YTQzZDhhNTdlZjBmMWQ2NmI4Yjg4NmZlNjg5M2JlYmRhNjEzMGNmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdl
L0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBFTkFCTEUo
RklMRV9TWVNURU0pCiAKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJE
T01GaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiRGlyZWN0b3J5RW50cnkuaCIKICNpbmNsdWRlICJF
bnRyaWVzQ2FsbGJhY2suaCIKQEAgLTg5LDcgKzkwLDcgQEAgdm9pZCBGaWxlU3lzdGVtQ2FsbGJh
Y2tzQmFzZTo6ZGlkUmVhZERpcmVjdG9yeUVudHJ5KGNvbnN0IFN0cmluZyYsIGJvb2wpCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2U6
OmRpZEZhaWwoRXhjZXB0aW9uQ29kZSBjb2RlKQordm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFz
ZTo6ZGlkRmFpbChpbnQgY29kZSkKIHsKICAgICBpZiAobV9lcnJvckNhbGxiYWNrKSB7CiAgICAg
ICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRmlsZUVycm9yOjpjcmVhdGUoY29kZSku
Z2V0KCkpOwpAQCAtMTUyLDE2ICsxNTMsMTggQEAgdm9pZCBFbnRyaWVzQ2FsbGJhY2tzOjpkaWRS
ZWFkRGlyZWN0b3J5Q2h1bmtEb25lKGJvb2wgaGFzTW9yZSkKIAogLy8gRmlsZVN5c3RlbUNhbGxi
YWNrcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi1GaWxlU3lzdGVtQ2FsbGJhY2tzOjpGaWxlU3lzdGVtQ2FsbGJhY2tzKFBhc3NSZWZQ
dHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JD
YWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK0ZpbGVTeXN0ZW1DYWxsYmFja3M6OkZpbGVTeXN0ZW1D
YWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywg
UGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUZhY3Rvcnk+IGZhY3Rv
cnkpCiAgICAgOiBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZShlcnJvckNhbGxiYWNrKQogICAgICwg
bV9zdWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKQorICAgICwgbV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0KGNvbnRleHQpCisgICAgLCBtX2FzeW5jRmlsZVN5c3RlbUZhY3RvcnkoZmFjdG9y
eSkKIHsKIH0KIAogdm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRPcGVuRmlsZVN5c3RlbShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpCiB7CiAgICAgaWYgKG1f
c3VjY2Vzc0NhbGxiYWNrKQotICAgICAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQo
RE9NRmlsZVN5c3RlbTo6Y3JlYXRlKG5hbWUsIHJvb3RQYXRoKS5nZXQoKSk7CisgICAgICAgIG1f
c3VjY2Vzc0NhbGxiYWNrLT5oYW5kbGVFdmVudChET01GaWxlU3lzdGVtOjpjcmVhdGUobV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCBuYW1lLCBtX2FzeW5jRmlsZVN5c3RlbUZhY3RvcnktPmNyZWF0
ZUFzeW5jRmlsZVN5c3RlbShyb290UGF0aCkpLmdldCgpKTsKICAgICBtX3N1Y2Nlc3NDYWxsYmFj
ay5jbGVhcigpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNh
bGxiYWNrcy5oIGIvV2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuaAppbmRleCBl
MGU3OGQzNzBjMjFlMzM3YjI0OGQzOGFjODk2ZDFhN2UwZWNiMTMwLi5kOWE5NGIzOTQ1OGIwMzhm
ODNmNjUxNTZhYmE4MGZjOTQ4MmEwZTJkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRmls
ZVN5c3RlbUNhbGxiYWNrcy5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJh
Y2tzLmgKQEAgLTMzLDEyICszMywxNCBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCisj
aW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBc3luY0ZpbGVTeXN0ZW1GYWN0
b3J5OwogY2xhc3MgRE9NRmlsZVN5c3RlbTsKIGNsYXNzIEVycm9yQ2FsbGJhY2s7CiBjbGFzcyBF
bnRyaWVzQ2FsbGJhY2s7CkBAIC00OSwxMCArNTEsOCBAQCBjbGFzcyBNZXRhZGF0YUNhbGxiYWNr
OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFZvaWRDYWxsYmFjazsKIAot
dHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQogLy8gQSBiYXNlIGNsYXNzIGZvciBGaWxlU3lz
dGVtIGNhbGxiYWNrcyB0aGF0IGJ1bmRsZXMgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNr
IGFuZCBzb21lIGNsb3N1cmUgZGF0YSBmb3IgdGhlIGNhbGxiYWNrcy4KLWNsYXNzIEZpbGVTeXN0
ZW1DYWxsYmFja3NCYXNlIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK2NsYXNzIEZpbGVTeXN0ZW1D
YWxsYmFja3NCYXNlIDogcHVibGljIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcyB7CiBwdWJsaWM6
CiAgICAgdmlydHVhbCB+RmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UoKTsKIApAQCAtNzAsNyArNzAs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlYWREaXJlY3RvcnlDaHVua0RvbmUo
Ym9vbCBoYXNNb3JlKTsKIAogICAgIC8vIEZvciBFcnJvckNhbGxiYWNrLgotICAgIHZpcnR1YWwg
dm9pZCBkaWRGYWlsKEV4Y2VwdGlvbkNvZGUgY29kZSk7CisgICAgdmlydHVhbCB2b2lkIGRpZEZh
aWwoaW50IGNvZGUpOwogCiBwcm90ZWN0ZWQ6CiAgICAgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2Uo
UGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKTsKQEAgLTEwNiwxMSArMTA2
LDEzIEBAIHByaXZhdGU6CiAKIGNsYXNzIEZpbGVTeXN0ZW1DYWxsYmFja3MgOiBwdWJsaWMgRmls
ZVN5c3RlbUNhbGxiYWNrc0Jhc2UgewogcHVibGljOgotICAgIEZpbGVTeXN0ZW1DYWxsYmFja3Mo
UGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+
KTsKKyAgICBGaWxlU3lzdGVtQ2FsbGJhY2tzKFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNr
PiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBh
c3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtRmFjdG9yeT4pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRP
cGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgp
OwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+IG1fc3VjY2Vzc0Nh
bGxiYWNrOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKKyAgICBPd25QdHI8QXN5bmNGaWxlU3lzdGVtRmFjdG9yeT4gbV9hc3luY0ZpbGVTeXN0
ZW1GYWN0b3J5OwogfTsKIAogY2xhc3MgTWV0YWRhdGFDYWxsYmFja3MgOiBwdWJsaWMgRmlsZVN5
c3RlbUNhbGxiYWNrc0Jhc2UgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0ZsYWdzLmgg
Yi9XZWJDb3JlL3N0b3JhZ2UvRmxhZ3MuaAppbmRleCBmZmUzNDAzOGEwNGM0MGNlOWUzYTg3NTgz
MGIxYmI4MDVjZjY2ZWJiLi4zMDg4NGZjYzQzZmRmMmEzYTA2NDVmOWQ1OWFkOWE4ZWI3ZWQ2MDRk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRmxhZ3MuaAorKysgYi9XZWJDb3JlL3N0b3Jh
Z2UvRmxhZ3MuaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQog
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65133</attachid>
            <date>2010-08-23 09:44:45 -0700</date>
            <delta_ts>2010-08-23 12:00:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44433-20100823094443.patch</filename>
            <type>text/plain</type>
            <size>26137</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IGViNDJjNWNhYmVmNjE4ODJhZGZkMjJlYjFlMDQ5NTY2OWRjYTJiMmYuLjY5N2Vh
NjAzYjY3ZDBjMWNhYmU2YjlkZTc4OTk1ZmQ4NjAwNjE4YjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIxMCw2ICsx
MjEwLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1l
QW5pbWF0aW9uLmNwcAogCiAgICAgcGxhdGZvcm0vQXJlbmEuY3BwCisgICAgcGxhdGZvcm0vQXN5
bmNGaWxlU3lzdGVtLmNwcAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmNwcAogICAgIHBsYXRmb3Jt
L0NvbnRlbnRUeXBlLmNwcAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmNwcApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YWQ2NzQ5NzVi
MWEyZmY4NzcyMDJmMGJhN2ZhMmI3NDQ0MmI2NTFjLi4zNWIyMTFmM2EyYmJiMzEwMDAzNzVmNmQy
MWYxN2RjYWE5NTY4Yzg4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEwLTA4LTIzICBLaW51a28gWWFzdWRh
ICA8a2ludWtvQGtpbnVrbzItbWFjcHJvLm10di5jb3JwLmdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFzeW5jRmlsZVN5c3Rl
bSBpbnRlcmZhY2UgZm9yIHBsYXRmb3JtLWRlcGVuZGVudCBGaWxlU3lzdGVtIEFQSSBpbXBsZW1l
bnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDQ0MzMKKworICAgICAgICBObyBuZXcgdGVzdHM7IHRlc3RzIHdpbGwgYmUgYWRkZWQgbGF0ZXIu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vQXN5bmNGaWxl
U3lzdGVtLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmg6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgICogc3RvcmFn
ZS9ET01GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06OkRP
TUZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6fkRPTUZpbGVT
eXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6Y29udGV4dERlc3Ryb3llZCk6CisgICAgICAgICogc3Rv
cmFnZS9ET01GaWxlU3lzdGVtLmg6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpj
cmVhdGUpOgorICAgICAgICAqIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZTo6ZGlkRmFpbCk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlU3lzdGVtQ2FsbGJhY2tzOjpGaWxlU3lzdGVtQ2FsbGJhY2tzKTogRXh0
ZW5kZWQgdG8gdGFrZSBBc3luY0ZpbGVTeXN0ZW1GYWN0b3J5IGFyZ3VtZW50LgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkT3BlbkZpbGVTeXN0ZW0pOgorICAgICAg
ICAqIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oOgorICAgICAgICAqIHN0b3JhZ2UvRmxh
Z3MuaDoKKwogMjAxMC0wOC0yMiAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMua2xpbmdAbm9raWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5k
ZXggMTNhYTA3MzM1OWMxZjRkNTIzYTBkZWE4YTBmNGYxNzEwNDRmYTcwNy4uYTAxMjA2Y2IxMDJj
MzU0M2Y2NTBmODk4NGNkNjZlOGU1YTA1MzE0MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC04NzMsNiArODczLDcgQEAgU09VUkNF
UyArPSBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHAgXAogICAgIHBsYXRm
b3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcCBcCiAgICAgcGxhdGZvcm0vQXJlbmEuY3Bw
IFwKKyAgICBwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwIFwKICAgICBwbGF0Zm9ybS9CbG9i
SXRlbS5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvQmFzZTY0LmNwcCBcCiAgICAgcGxhdGZvcm0v
dGV4dC9CaWRpQ29udGV4dC5jcHAgXApAQCAtMTY1Nyw2ICsxNjU4LDggQEAgSEVBREVSUyArPSBc
CiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxpc3QuaCBcCiAgICAgcGxhdGZvcm0v
QXJlbmEuaCBcCiAgICAgcGxhdGZvcm0vQXN5bmNGaWxlU3RyZWFtLmggXAorICAgIHBsYXRmb3Jt
L0FzeW5jRmlsZVN5c3RlbS5oIFwKKyAgICBwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFj
a3MuaCBcCiAgICAgcGxhdGZvcm0vQmxvYkl0ZW0uaCBcCiAgICAgcGxhdGZvcm0vQ29udGVudFR5
cGUuaCBcCiAgICAgcGxhdGZvcm0vQ29udGV4dE1lbnUuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagppbmRleCA3NDg2MDMzNDM4YmYxMzA0Y2QyMTcyMDQ1YmU4YjFiM2UwMmEx
YzRjLi5jMThjOWQyNTllMjM2ZGIzMzVkNGY0NGI3YzYwNjhjMTRkNTkyNjFlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIzOTgxLDYgKzIzOTgxLDE4IEBACiAJCQkJ
Pg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3Jt
XEFzeW5jRmlsZVN5c3RlbS5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxBc3luY0ZpbGVTeXN0ZW0uaCINCisJCQkJPg0K
KwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEFz
eW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cQXV0b2RyYWluZWRQb29sLmgiDQogCQkJ
CT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA4MDU5YWEyZTI3YWFhM2U3NmY4NWY1ZDY0NjQwZTcwNjg1ZTZmYzlkLi5kNDcwZmMx
YzBjOWZhZTkxZGU0YTgxNWE1ZGQyOTYyNTk3NGU5Njk4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQzNCw2ICsyNDM0LDkgQEAKIAkJODlDMEREN0Ix
MjFGMEM2OTAwOUUxN0NBIC8qIEZpbGVTeXN0ZW1DYWxsYmFja3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5QzBERDc5MTIxRjBDNjkwMDlFMTdDQSAv
KiBGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi87IH07CiAJCTg5Q0QwMjkzMTFDODVCODcwMDcwQjc5
MSAvKiBKU0Jsb2JCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg5Q0QwMjkxMTFDODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JCdWlsZGVyLmNw
cCAqLzsgfTsKIAkJODlDRDAyOTQxMUM4NUI4NzAwNzBCNzkxIC8qIEpTQmxvYkJ1aWxkZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5Q0QwMjkyMTFD
ODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JCdWlsZGVyLmggKi87IH07CisJCTg5RDA4RDlGMTIyMjg0
NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODlEMDhEOUMxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5j
RmlsZVN5c3RlbS5jcHAgKi87IH07CisJCTg5RDA4REEwMTIyMjg0NTEwMDEyNDFERiAvKiBBc3lu
Y0ZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg5RDA4RDlEMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uaCAqLzsgfTsK
KwkJODlEMDhEQTExMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODlEMDhEOUUx
MjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oICovOyB9OwogCQk4
QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTEyRTM1QzExRkEzMzI4MDAy
NTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEE0MTNBRTAxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5j
U2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4QTQxM0FFMTEy
MDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREYxMjA3QkJBNTAwODIwMTZFIC8q
IEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLzsgfTsKQEAgLTgzMDYsNiArODMwOSw5IEBACiAJCTg5
Q0QwMjc5MTFDODU5QTgwMDcwQjc5MSAvKiBCbG9iQnVpbGRlci5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQmxvYkJ1aWxkZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
OUNEMDI5MTExQzg1Qjg3MDA3MEI3OTEgLyogSlNCbG9iQnVpbGRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Jsb2JCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODlDRDAyOTIxMUM4NUI4NzAwNzBCNzkxIC8qIEpTQmxvYkJ1aWxk
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCbG9iQnVpbGRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OUQwOEQ5QzEyMjI4NDUxMDAxMjQxREYgLyog
QXN5bmNGaWxlU3lzdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEFzeW5jRmlsZVN5c3RlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5RDA4
RDlEMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXN5bmNGaWxlU3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTg5RDA4RDlFMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBMTJFMzVDMTFGQTMz
MjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRG9jdW1lbnRMb2FkVGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY1NjcmlwdFJ1bm5lci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogQXN5
bmNTY3JpcHRSdW5uZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QXN5bmNTY3JpcHRSdW5uZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY1
NzMsNiArMTY1NzksOSBAQAogCQlCQ0YxQTVCQTA5NzgzMjA5MDA2MUExMjMgLyogcGxhdGZvcm0g
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTg5RDA4RDlD
MTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwICovLAorCQkJCTg5RDA4RDlE
MTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uaCAqLywKKwkJCQk4OUQwOEQ5RTEy
MjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi8sCiAJCQkJNDlF
OTEyQTQwRUZBQzhFNjAwOUQwQ0FGIC8qIGFuaW1hdGlvbiAqLywKIAkJCQkxQUU0MkY2NzBBQTRC
OENCMDBDODYxMkQgLyogY2YgKi8sCiAJCQkJQTVDOTc0Q0UxMTQ4NUZEQTAwNjZGMkFCIC8qIGNv
Y29hICovLApAQCAtMjAzNDcsNiArMjAzNTYsOCBAQAogCQkJCTJFRjFCRkY5MTIxQ0IwQ0UwMEMy
NzYyNyAvKiBGaWxlU3RyZWFtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4OUMwREQ3QjEy
MUYwQzY5MDA5RTE3Q0EgLyogRmlsZVN5c3RlbUNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0UwNTdGQTYxMjIwNzMxMTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJODlEMDhEQTAxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmls
ZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODlEMDhEQTExMjIyODQ1MTAwMTI0MURGIC8q
IEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMjgwMCw2ICsy
MjgxMSw3IEBACiAJCQkJNDZBMjY5MDUxMjFCNkI0MzAwQzQxRjNBIC8qIEZpbGVXcml0ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJODlDMEREN0ExMjFGMEM2OTAwOUUxN0NBIC8qIEZpbGVTeXN0
ZW1DYWxsYmFja3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0UwNTdGQTUxMjIwNzMxMTAwQTQ3
NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4
OUQwOEQ5RjEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1N2M2OGJl
NWE4NTQwODIyZGZlMWVhM2EwNDkzZjE2OGVjZjRjMzYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0uaCIKKworI2lmIEVOQUJMRShG
SUxFX1NZU1RFTSkKKworI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIgorI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIVBMQVRG
T1JNKENIUk9NSVVNKQordm9pZCBBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtKGNvbnN0
IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkZW50aWZpZXIsIFR5cGUg
dHlwZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3sK
KyAgICBTdHJpbmcgdHlwZVN0cmluZyA9ICh0eXBlID09IFBlcnNpc3RlbnQpID8gIlBlcnNpc3Rl
bnQiIDogIlRlbXBvcmFyeSI7CisKKyAgICBTdHJpbmcgbmFtZSA9IHN0b3JhZ2VJZGVudGlmaWVy
OworICAgIG5hbWUgKz0gIjoiOworICAgIG5hbWUgKz0gdHlwZVN0cmluZzsKKworICAgIFN0cmlu
ZyByb290UGF0aCA9IGJhc2VQYXRoOworICAgIHJvb3RQYXRoLmFwcGVuZChQbGF0Zm9ybUZpbGVQ
YXRoU2VwYXJhdG9yKTsKKyAgICByb290UGF0aCArPSBzdG9yYWdlSWRlbnRpZmllcjsKKyAgICBy
b290UGF0aC5hcHBlbmQoUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvcik7CisgICAgcm9vdFBhdGgg
Kz0gdHlwZVN0cmluZzsKKyAgICByb290UGF0aC5hcHBlbmQoUGxhdGZvcm1GaWxlUGF0aFNlcGFy
YXRvcik7CisKKyAgICBjYWxsYmFja3MtPmRpZE9wZW5GaWxlU3lzdGVtKG5hbWUsIHJvb3RQYXRo
KTsKK30KKyNlbmRpZgorCisvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uLgorU3RyaW5nIEFzeW5j
RmlsZVN5c3RlbTo6dmlydHVhbFRvUGxhdGZvcm1QYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkgY29u
c3QKK3sKKyAgICBTdHJpbmcgdmlydHVhbFBhdGggPSBwYXRoOworICAgIHJldHVybiBtX3BsYXRm
b3JtUm9vdFBhdGggKyB2aXJ0dWFsUGF0aC5yZXBsYWNlKCcvJywgUGxhdGZvcm1GaWxlUGF0aFNl
cGFyYXRvcik7Cit9CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9T
WVNURU0pCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oIGIv
V2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTlmOGMyOGI2
N2NmNmI5MWRhMjBjZDczZTNlYmE3ZTRhNmFmMTdkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBc3lu
Y0ZpbGVTeXN0ZW1faAorI2RlZmluZSBBc3luY0ZpbGVTeXN0ZW1faAorCisjaWYgRU5BQkxFKEZJ
TEVfU1lTVEVNKQorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFzeW5jRmlsZVN5
c3RlbTsKK2NsYXNzIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczsKKworLy8gQSBmYWN0b3J5IGNs
YXNzIGludGVyZmFjZS4KK2NsYXNzIEFzeW5jRmlsZVN5c3RlbUZhY3RvcnkgeworcHVibGljOgor
ICAgIC8vIE11c3QgcmV0dXJuIG5vbi1udWxsLgorICAgIHZpcnR1YWwgQXN5bmNGaWxlU3lzdGVt
KiBjcmVhdGVBc3luY0ZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBwbGF0Zm9ybVJvb3RQYXRoKSA9
IDA7CisgICAgdmlydHVhbCB+QXN5bmNGaWxlU3lzdGVtRmFjdG9yeSgpIHsgfQorfTsKKworLy8g
VGhpcyBjbGFzcyBwcm92aWRlcyBhbiBhc3luYyBpbnRlcmZhY2UgZm9yIHBsYXRmb3JtIGRlcGVu
ZGVudCBET01GaWxlU3lzdGVtIGltcGxlbWVudGF0aW9uLiBOb3RlIHRoYXQgYWxsIHRoZSBtZXRo
b2RzIHRha2UgY2Fub25pY2FsaXplZCB2aXJ0dWFsIHBhdGhzLgorY2xhc3MgQXN5bmNGaWxlU3lz
dGVtIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Bc3luY0Zp
bGVTeXN0ZW0oKSB7IH0KKworICAgIC8vIEZpbGVTeXN0ZW0gdHlwZQorICAgIGVudW0gVHlwZSB7
CisgICAgICAgIFRlbXBvcmFyeSwKKyAgICAgICAgUGVyc2lzdGVudCwKKyAgICB9OworCisgICAg
dmlydHVhbCB2b2lkIHN0b3AoKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2
aXR5KCkgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHN0YXRpYyB2b2lkIG9wZW5GaWxlU3lzdGVt
KGNvbnN0IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkZW50aWZpZXIs
IFR5cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisKKyAgICB2aXJ0
dWFsIHZvaWQgbW92ZShjb25zdCBTdHJpbmcmIHNyY1BhdGgsIGNvbnN0IFN0cmluZyYgZGVzdFBh
dGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBjb3B5KGNvbnN0IFN0cmluZyYgc3JjUGF0aCwgY29uc3QgU3RyaW5nJiBkZXN0UGF0
aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHJlbW92ZShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWFkTWV0YWRhdGEoY29uc3Qg
U3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIGJvb2wgZXhj
bHVzaXZlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCBleGNs
dXNpdmUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3lu
Y0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpcmVjdG9yeUV4
aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzPikgPSAwOworCisgICAgLy8gQ29udmVydHMgYSBnaXZlbiBhYnNvbHV0ZSB2aXJ0dWFsIHBh
dGggdG8gYSBwbGF0Zm9ybSBwYXRoIHRoYXQgc3RhcnRzIHdpdGggdGhlIHBsYXRmb3JtIHJvb3Qg
cGF0aCBvZiB0aGlzIGZpbGUgc3lzdGVtLgorICAgIHZpcnR1YWwgU3RyaW5nIHZpcnR1YWxUb1Bs
YXRmb3JtUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgICAg
QXN5bmNGaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgcGxhdGZvcm1Sb290UGF0aCkKKyAgICAgICAg
OiBtX3BsYXRmb3JtUm9vdFBhdGgocGxhdGZvcm1Sb290UGF0aCkKKyAgICB7CisgICAgfQorCisg
ICAgU3RyaW5nIG1fcGxhdGZvcm1Sb290UGF0aDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2VuZGlmIC8vIEFzeW5jRmls
ZVN5c3RlbV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrcy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lZjM5OTk5NTlhZjE4NTQ3NjE3MjljNGZjZGY1ZjJlNzY2OGJhZGE1Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3Mu
aApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3NfaAorI2Rl
ZmluZSBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3NfaAorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVN
KQorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBBc3luY0ZpbGVTeXN0ZW07CisKK2NsYXNzIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
cyA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgLy8gQ2FsbGVkIHdoZW4gYSBy
ZXF1ZXN0ZWQgb3BlcmF0aW9uIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuCisgICAgdmlydHVh
bCB2b2lkIGRpZFN1Y2NlZWQoKSA9IDA7CisKKyAgICAvLyBDYWxsZWQgd2hlbiBhIHJlcXVlc3Rl
ZCBmaWxlIHN5c3RlbSBpcyBvcGVuZWQuCisgICAgdmlydHVhbCB2b2lkIGRpZE9wZW5GaWxlU3lz
dGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiByb290UGF0aCkgPSAwOworCisg
ICAgLy8gQ2FsbGVkIHdoZW4gYSBmaWxlIG1ldGFkYXRhIGlzIHJlYWQgc3VjY2Vzc2Z1bGx5Lgor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWFkTWV0YWRhdGEoZG91YmxlIG1vZGlmaWNhdGlvblRpbWUp
ID0gMDsKKworICAgIC8vIENhbGxlZCB3aGVuIGEgZGlyZWN0b3J5IGVudHJ5IGlzIHJlYWQuCisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlYWREaXJlY3RvcnlFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUs
IGJvb2wgaXNEaXJlY3RvcnkpID0gMDsKKworICAgIC8vIENhbGxlZCBhZnRlciBhIGNodW5rIG9m
IGRpcmVjdG9yeSBlbnRyaWVzIGhhdmUgYmVlbiByZWFkIChpLmUuIGluZGljYXRlcyBpdCdzIGdv
b2QgdGltZSB0byBjYWxsIGJhY2sgdG8gdGhlIGFwcGxpY2F0aW9uKS4gIElmIGhhc01vcmUgaXMg
dHJ1ZSB0aGVyZSBjYW4gYmUgbW9yZSBjaHVua3MuCisgICAgdmlydHVhbCB2b2lkIGRpZFJlYWRE
aXJlY3RvcnlDaHVua0RvbmUoYm9vbCBoYXNNb3JlKSA9IDA7CisKKyAgICAvLyBDYWxsZWQgd2hl
biB0aGVyZSB3YXMgYW4gZXJyb3IuCisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoaW50IGNvZGUp
ID0gMDsKKworICAgIHZpcnR1YWwgfkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcygpIHsgfQorfTsK
KworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2Vu
ZGlmIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrc19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL0ZpbGVTeXN0ZW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCmluZGV4
IGVjNzVhMjEwM2E1NTA4NzNjNTdlNDE3ZTZmMzMyZTA4YjY4ZDdhZGYuLmUzOTE2Y2ZlMGFjNTk2
NzE3ZTlhNGYyYmQ5ZTViZTAwNjIyNmQwODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
RmlsZVN5c3RlbS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0xMzgs
NiArMTM4LDEyIEBAIGVudW0gRmlsZVNlZWtPcmlnaW4gewogICAgIFNlZWtGcm9tRW5kCiB9Owog
CisjaWYgT1MoV0lORE9XUykKK3N0YXRpYyBjb25zdCBjaGFyIFBsYXRmb3JtRmlsZVBhdGhTZXBh
cmF0b3IgPSAnXFwnOworI2Vsc2UKK3N0YXRpYyBjb25zdCBjaGFyIFBsYXRmb3JtRmlsZVBhdGhT
ZXBhcmF0b3IgPSAnLyc7CisjZW5kaWYKKwogYm9vbCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYp
OwogYm9vbCBkZWxldGVGaWxlKGNvbnN0IFN0cmluZyYpOwogYm9vbCBkZWxldGVFbXB0eURpcmVj
dG9yeShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxl
U3lzdGVtLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcAppbmRleCBjM2Ri
ZDM0MDE0ZWEyMGVjZWZkOGFhZGQ3YzZiZGM5ZGJkMGVlOTYyLi42YmU0MDlkMzA2NDY0YjBmZjFm
ZWNjZDk1ODJmOGRhZTUwZmM1NTZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRE9NRmls
ZVN5c3RlbS5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC0z
MywxMyArMzMsMjAgQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKIAorI2luY2x1ZGUgIkFz
eW5jRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkRpcmVjdG9yeUVudHJ5LmgiCisjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLURPTUZp
bGVTeXN0ZW06OkRPTUZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHJvb3RQYXRoKQotICAgIDogbV9yb290UGF0aChyb290UGF0aCkKK0RPTUZpbGVTeXN0ZW06OkRP
TUZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBBc3luY0ZpbGVTeXN0ZW0qIGFzeW5jRmlsZVN5c3RlbSkKKyAgICA6IEFjdGl2ZURP
TU9iamVjdChjb250ZXh0LCB0aGlzKQogICAgICwgbV9uYW1lKG5hbWUpCisgICAgLCBtX2FzeW5j
RmlsZVN5c3RlbShhc3luY0ZpbGVTeXN0ZW0pCit7Cit9CisKK0RPTUZpbGVTeXN0ZW06On5ET01G
aWxlU3lzdGVtKCkKIHsKIH0KIApAQCAtNDgsNiArNTUsMjEgQEAgUGFzc1JlZlB0cjxEaXJlY3Rv
cnlFbnRyeT4gRE9NRmlsZVN5c3RlbTo6cm9vdCgpCiAgICAgcmV0dXJuIERpcmVjdG9yeUVudHJ5
OjpjcmVhdGUodGhpcywgIi8iKTsKIH0KIAordm9pZCBET01GaWxlU3lzdGVtOjpzdG9wKCkKK3sK
KyAgICBtX2FzeW5jRmlsZVN5c3RlbS0+c3RvcCgpOworfQorCitib29sIERPTUZpbGVTeXN0ZW06
Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXN5bmNGaWxlU3lz
dGVtLT5oYXNQZW5kaW5nQWN0aXZpdHkoKTsKK30KKwordm9pZCBET01GaWxlU3lzdGVtOjpjb250
ZXh0RGVzdHJveWVkKCkKK3sKKyAgICBtX2FzeW5jRmlsZVN5c3RlbS0+c3RvcCgpOworfQorCiB9
IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaCBiL1dlYkNvcmUvc3RvcmFnZS9ET01G
aWxlU3lzdGVtLmgKaW5kZXggYjg3YWFhZjMyY2Q5ZWFjMGYyMmM0OWVlMTc2NzJkZDVhMmU3NzY3
My4uMGM3ODZjYjQ4MjMzNWEzNzgwZjExMDFlNzlmN2E3M2E2NzRjNDg5NCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvRE9N
RmlsZVN5c3RlbS5oCkBAIC0zMywyOSArMzMsNDMgQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RF
TSkKIAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkZsYWdzLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xh
c3MgQXN5bmNGaWxlU3lzdGVtOwogY2xhc3MgRGlyZWN0b3J5RW50cnk7CitjbGFzcyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OwogCi1jbGFzcyBET01GaWxlU3lzdGVtIDogcHVibGljIFJlZkNvdW50
ZWQ8RE9NRmlsZVN5c3RlbT4geworY2xhc3MgRE9NRmlsZVN5c3RlbSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPERPTUZpbGVTeXN0ZW0+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUZp
bGVTeXN0ZW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIG5hbWUsIEFzeW5jRmlsZVN5c3RlbSogYXN5bmNGaWxlU3lzdGVtKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01GaWxlU3lzdGVtKG5hbWUsIHJvb3RQYXRoKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRE9NRmlsZVN5c3RlbShjb250ZXh0LCBuYW1l
LCBhc3luY0ZpbGVTeXN0ZW0pKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIH5ET01GaWxlU3lzdGVt
KCk7CisKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0K
ICAgICBQYXNzUmVmUHRyPERpcmVjdG9yeUVudHJ5PiByb290KCk7CiAKKyAgICAvLyBBY3RpdmVE
T01PYmplY3QgbWV0aG9kcy4KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpOworICAgIHZpcnR1YWwg
Ym9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4
dERlc3Ryb3llZCgpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIgZmlsZVBhdGhTZXBhcmF0b3I7
CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHJvb3RQYXRoOworCiBwcml2YXRlOgotICAgIERPTUZp
bGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoKTsKKyAg
ICBET01GaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5h
bWUsIEFzeW5jRmlsZVN5c3RlbSopOwogCi0gICAgU3RyaW5nIG1fcm9vdFBhdGg7CiAgICAgU3Ry
aW5nIG1fbmFtZTsKKyAgICBtdXRhYmxlIE93blB0cjxBc3luY0ZpbGVTeXN0ZW0+IG1fYXN5bmNG
aWxlU3lzdGVtOwogfTsKIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3Rv
cmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVt
Q2FsbGJhY2tzLmNwcAppbmRleCBlYzM1MmRkN2Q2ZTkyYzdjODdhMzgwNGIzY2QzOGNjM2RkYTFl
ODE4Li5iYTQzZDhhNTdlZjBmMWQ2NmI4Yjg4NmZlNjg5M2JlYmRhNjEzMGNmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHAKKysrIGIvV2ViQ29yZS9z
dG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBF
TkFCTEUoRklMRV9TWVNURU0pCiAKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0uaCIKICNpbmNs
dWRlICJET01GaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiRGlyZWN0b3J5RW50cnkuaCIKICNpbmNs
dWRlICJFbnRyaWVzQ2FsbGJhY2suaCIKQEAgLTg5LDcgKzkwLDcgQEAgdm9pZCBGaWxlU3lzdGVt
Q2FsbGJhY2tzQmFzZTo6ZGlkUmVhZERpcmVjdG9yeUVudHJ5KGNvbnN0IFN0cmluZyYsIGJvb2wp
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUNhbGxiYWNr
c0Jhc2U6OmRpZEZhaWwoRXhjZXB0aW9uQ29kZSBjb2RlKQordm9pZCBGaWxlU3lzdGVtQ2FsbGJh
Y2tzQmFzZTo6ZGlkRmFpbChpbnQgY29kZSkKIHsKICAgICBpZiAobV9lcnJvckNhbGxiYWNrKSB7
CiAgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRmlsZUVycm9yOjpjcmVhdGUo
Y29kZSkuZ2V0KCkpOwpAQCAtMTUyLDE2ICsxNTMsMTggQEAgdm9pZCBFbnRyaWVzQ2FsbGJhY2tz
OjpkaWRSZWFkRGlyZWN0b3J5Q2h1bmtEb25lKGJvb2wgaGFzTW9yZSkKIAogLy8gRmlsZVN5c3Rl
bUNhbGxiYWNrcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCi1GaWxlU3lzdGVtQ2FsbGJhY2tzOjpGaWxlU3lzdGVtQ2FsbGJhY2tzKFBh
c3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8
RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK0ZpbGVTeXN0ZW1DYWxsYmFja3M6OkZpbGVT
eXN0ZW1DYWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxs
YmFjaywgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUZhY3Rvcnk+
IGZhY3RvcnkpCiAgICAgOiBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZShlcnJvckNhbGxiYWNrKQog
ICAgICwgbV9zdWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKQorICAgICwgbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KGNvbnRleHQpCisgICAgLCBtX2FzeW5jRmlsZVN5c3RlbUZhY3Rvcnko
ZmFjdG9yeSkKIHsKIH0KIAogdm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRPcGVuRmlsZVN5
c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpCiB7CiAgICAg
aWYgKG1fc3VjY2Vzc0NhbGxiYWNrKQotICAgICAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxl
RXZlbnQoRE9NRmlsZVN5c3RlbTo6Y3JlYXRlKG5hbWUsIHJvb3RQYXRoKS5nZXQoKSk7CisgICAg
ICAgIG1fc3VjY2Vzc0NhbGxiYWNrLT5oYW5kbGVFdmVudChET01GaWxlU3lzdGVtOjpjcmVhdGUo
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LCBuYW1lLCBtX2FzeW5jRmlsZVN5c3RlbUZhY3Rvcnkt
PmNyZWF0ZUFzeW5jRmlsZVN5c3RlbShyb290UGF0aCkpLmdldCgpKTsKICAgICBtX3N1Y2Nlc3ND
YWxsYmFjay5jbGVhcigpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5
c3RlbUNhbGxiYWNrcy5oIGIvV2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuaApp
bmRleCBlMGU3OGQzNzBjMjFlMzM3YjI0OGQzOGFjODk2ZDFhN2UwZWNiMTMwLi5kOWE5NGIzOTQ1
OGIwMzhmODNmNjUxNTZhYmE4MGZjOTQ4MmEwZTJkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3Jh
Z2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVt
Q2FsbGJhY2tzLmgKQEAgLTMzLDEyICszMywxNCBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVN
KQogCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBc3luY0ZpbGVTeXN0
ZW1GYWN0b3J5OwogY2xhc3MgRE9NRmlsZVN5c3RlbTsKIGNsYXNzIEVycm9yQ2FsbGJhY2s7CiBj
bGFzcyBFbnRyaWVzQ2FsbGJhY2s7CkBAIC00OSwxMCArNTEsOCBAQCBjbGFzcyBNZXRhZGF0YUNh
bGxiYWNrOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFZvaWRDYWxsYmFj
azsKIAotdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQogLy8gQSBiYXNlIGNsYXNzIGZvciBG
aWxlU3lzdGVtIGNhbGxiYWNrcyB0aGF0IGJ1bmRsZXMgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNh
bGxiYWNrIGFuZCBzb21lIGNsb3N1cmUgZGF0YSBmb3IgdGhlIGNhbGxiYWNrcy4KLWNsYXNzIEZp
bGVTeXN0ZW1DYWxsYmFja3NCYXNlIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK2NsYXNzIEZpbGVT
eXN0ZW1DYWxsYmFja3NCYXNlIDogcHVibGljIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcyB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+RmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UoKTsKIApAQCAtNzAs
NyArNzAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlYWREaXJlY3RvcnlDaHVu
a0RvbmUoYm9vbCBoYXNNb3JlKTsKIAogICAgIC8vIEZvciBFcnJvckNhbGxiYWNrLgotICAgIHZp
cnR1YWwgdm9pZCBkaWRGYWlsKEV4Y2VwdGlvbkNvZGUgY29kZSk7CisgICAgdmlydHVhbCB2b2lk
IGRpZEZhaWwoaW50IGNvZGUpOwogCiBwcm90ZWN0ZWQ6CiAgICAgRmlsZVN5c3RlbUNhbGxiYWNr
c0Jhc2UoUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKTsKQEAgLTEwNiwx
MSArMTA2LDEzIEBAIHByaXZhdGU6CiAKIGNsYXNzIEZpbGVTeXN0ZW1DYWxsYmFja3MgOiBwdWJs
aWMgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UgewogcHVibGljOgotICAgIEZpbGVTeXN0ZW1DYWxs
YmFja3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2Fs
bGJhY2s+KTsKKyAgICBGaWxlU3lzdGVtQ2FsbGJhY2tzKFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNh
bGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtRmFjdG9yeT4pOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9v
dFBhdGgpOwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+IG1fc3Vj
Y2Vzc0NhbGxiYWNrOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKKyAgICBPd25QdHI8QXN5bmNGaWxlU3lzdGVtRmFjdG9yeT4gbV9hc3luY0Zp
bGVTeXN0ZW1GYWN0b3J5OwogfTsKIAogY2xhc3MgTWV0YWRhdGFDYWxsYmFja3MgOiBwdWJsaWMg
RmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0Zs
YWdzLmggYi9XZWJDb3JlL3N0b3JhZ2UvRmxhZ3MuaAppbmRleCBmZmUzNDAzOGEwNGM0MGNlOWUz
YTg3NTgzMGIxYmI4MDVjZjY2ZWJiLi4zMDg4NGZjYzQzZmRmMmEzYTA2NDVmOWQ1OWFkOWE4ZWI3
ZWQ2MDRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRmxhZ3MuaAorKysgYi9XZWJDb3Jl
L3N0b3JhZ2UvRmxhZ3MuaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lT
VEVNKQogCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65146</attachid>
            <date>2010-08-23 12:00:39 -0700</date>
            <delta_ts>2010-08-23 16:37:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44433-20100823120037.patch</filename>
            <type>text/plain</type>
            <size>26131</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDIwOWY2YjMxYjMwNDgwZDIyMGUwMDIwOTY3NzFiNzdjMmM0ZGFkMmIuLjIwMmM0
YmMxNjMwZmY1NjViZjEyMTc4OGUwMTQyZjk1N2VlOWJlOTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIxMSw2ICsx
MjExLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1l
QW5pbWF0aW9uLmNwcAogCiAgICAgcGxhdGZvcm0vQXJlbmEuY3BwCisgICAgcGxhdGZvcm0vQXN5
bmNGaWxlU3lzdGVtLmNwcAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmNwcAogICAgIHBsYXRmb3Jt
L0NvbnRlbnRUeXBlLmNwcAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmNwcApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MTNiZjQyOWYw
NGU2OWViMTEzMjI1OWU0ZjJhMmZlOTI5MDM5ODRiLi45MTI3MDM3YWFmNGFmMjAwOWM4NzY4MThi
NWRiMjU1NDVmMWQ3MzdiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEwLTA4LTIzICBLaW51a28gWWFzdWRh
ICA8a2ludWtvQGtpbnVrbzItbWFjcHJvLm10di5jb3JwLmdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFzeW5jRmlsZVN5c3Rl
bSBpbnRlcmZhY2UgZm9yIHBsYXRmb3JtLWRlcGVuZGVudCBGaWxlU3lzdGVtIEFQSSBpbXBsZW1l
bnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDQ0MzMKKworICAgICAgICBObyBuZXcgdGVzdHM7IHRlc3RzIHdpbGwgYmUgYWRkZWQgbGF0ZXIu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vQXN5bmNGaWxl
U3lzdGVtLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmg6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgICogc3RvcmFn
ZS9ET01GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06OkRP
TUZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6fkRPTUZpbGVT
eXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6Y29udGV4dERlc3Ryb3llZCk6CisgICAgICAgICogc3Rv
cmFnZS9ET01GaWxlU3lzdGVtLmg6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpj
cmVhdGUpOgorICAgICAgICAqIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZTo6ZGlkRmFpbCk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlU3lzdGVtQ2FsbGJhY2tzOjpGaWxlU3lzdGVtQ2FsbGJhY2tzKTogRXh0
ZW5kZWQgdG8gdGFrZSBBc3luY0ZpbGVTeXN0ZW1GYWN0b3J5IGFyZ3VtZW50LgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkT3BlbkZpbGVTeXN0ZW0pOgorICAgICAg
ICAqIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oOgorICAgICAgICAqIHN0b3JhZ2UvRmxh
Z3MuaDoKKwogMjAxMC0wOC0yMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggODAzNDhkYzhhY2YwOGFjOWQ1ZmNk
Y2NhMDcyNzkxNzhkNjU3MDEwMS4uZjZmODMxMTUwNDliMTVjOWQ3YmUzOWIwNWJjYjkzOTU1ZDM3
MDNmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNv
cmUucHJvCkBAIC04NzQsNiArODc0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vYW5p
bWF0aW9uL0FuaW1hdGlvbi5jcHAgXAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25M
aXN0LmNwcCBcCiAgICAgcGxhdGZvcm0vQXJlbmEuY3BwIFwKKyAgICBwbGF0Zm9ybS9Bc3luY0Zp
bGVTeXN0ZW0uY3BwIFwKICAgICBwbGF0Zm9ybS9CbG9iSXRlbS5jcHAgXAogICAgIHBsYXRmb3Jt
L3RleHQvQmFzZTY0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHAgXApA
QCAtMTY1OSw2ICsxNjYwLDggQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9u
L0FuaW1hdGlvbkxpc3QuaCBcCiAgICAgcGxhdGZvcm0vQXJlbmEuaCBcCiAgICAgcGxhdGZvcm0v
QXN5bmNGaWxlU3RyZWFtLmggXAorICAgIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oIFwKKyAg
ICBwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBcCiAgICAgcGxhdGZvcm0vQmxv
Ykl0ZW0uaCBcCiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUuaCBcCiAgICAgcGxhdGZvcm0vQ29u
dGV4dE1lbnUuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAzZWE0
YjVmZThmOWRiYmMxMjc4NGExMjE1MGE1YTYxNzgyMDg2Yzg4Li5mNGZkYzQwZmFjYWUxMmFkMWI1
MTFmMjQ0NWUwNTJlZWE1ZjZhODcyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKQEAgLTIzOTgxLDYgKzIzOTgxLDE4IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8Rmls
ZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEFzeW5jRmlsZVN5c3RlbS5jcHAiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0
Zm9ybVxBc3luY0ZpbGVTeXN0ZW0uaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5o
Ig0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGxhdGZvcm1cQXV0b2RyYWluZWRQb29sLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ZGY0OTQzODliZGM5NGFm
OTAxMGUxNjRiYjMzZjAxNmViNjZkOWY0Li5hYmUyMTM4NWQxZDI3ZmZjM2UyZjYzMzZiMzFhZWQ0
Y2EzNzEwMjEyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMjQzNCw2ICsyNDM0LDkgQEAKIAkJODlDMEREN0IxMjFGMEM2OTAwOUUxN0NBIC8qIEZpbGVT
eXN0ZW1DYWxsYmFja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg5QzBERDc5MTIxRjBDNjkwMDlFMTdDQSAvKiBGaWxlU3lzdGVtQ2FsbGJhY2tzLmgg
Ki87IH07CiAJCTg5Q0QwMjkzMTFDODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JCdWlsZGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5Q0QwMjkxMTFD
ODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JCdWlsZGVyLmNwcCAqLzsgfTsKIAkJODlDRDAyOTQxMUM4
NUI4NzAwNzBCNzkxIC8qIEpTQmxvYkJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5Q0QwMjkyMTFDODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JC
dWlsZGVyLmggKi87IH07CisJCTg5RDA4RDlGMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVT
eXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODlEMDhEOUMxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgKi87IH07CisJ
CTg5RDA4REEwMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5RDA4RDlEMTIyMjg0NTEwMDEy
NDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uaCAqLzsgfTsKKwkJODlEMDhEQTExMjIyODQ1MTAwMTI0
MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODlEMDhEOUUxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrcy5oICovOyB9OwogCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEg
LyogRG9jdW1lbnRMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4QTEyRTM1QzExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGlt
aW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OEE0MTNBRTAxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERTEyMDdCQkE1MDA4
MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNT
Y3JpcHRSdW5uZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOEE0MTNBREYxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAq
LzsgfTsKQEAgLTgzMDgsNiArODMxMSw5IEBACiAJCTg5Q0QwMjc5MTFDODU5QTgwMDcwQjc5MSAv
KiBCbG9iQnVpbGRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQmxvYkJ1aWxkZXIuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OUNEMDI5MTExQzg1Qjg3MDA3MEI3OTEg
LyogSlNCbG9iQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0Jsb2JCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODlDRDAy
OTIxMUM4NUI4NzAwNzBCNzkxIC8qIEpTQmxvYkJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNCbG9iQnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4OUQwOEQ5QzEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFzeW5jRmlsZVN5c3RlbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5RDA4RDlEMTIyMjg0NTEwMDEyNDFERiAvKiBB
c3luY0ZpbGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXN5bmNG
aWxlU3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5RDA4RDlFMTIyMjg0
NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCThBMTJFMzVDMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExv
YWRUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRMb2Fk
VGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBNDEzQURFMTIwN0JCQTUw
MDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBc3luY1NjcmlwdFJ1bm5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXN5bmNTY3JpcHRSdW5uZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY1NzksNiArMTY1ODUsOSBAQAogCQlCQ0Yx
QTVCQTA5NzgzMjA5MDA2MUExMjMgLyogcGxhdGZvcm0gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTg5RDA4RDlDMTIyMjg0NTEwMDEyNDFERiAvKiBBc3lu
Y0ZpbGVTeXN0ZW0uY3BwICovLAorCQkJCTg5RDA4RDlEMTIyMjg0NTEwMDEyNDFERiAvKiBBc3lu
Y0ZpbGVTeXN0ZW0uaCAqLywKKwkJCQk4OUQwOEQ5RTEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNG
aWxlU3lzdGVtQ2FsbGJhY2tzLmggKi8sCiAJCQkJNDlFOTEyQTQwRUZBQzhFNjAwOUQwQ0FGIC8q
IGFuaW1hdGlvbiAqLywKIAkJCQkxQUU0MkY2NzBBQTRCOENCMDBDODYxMkQgLyogY2YgKi8sCiAJ
CQkJQTVDOTc0Q0UxMTQ4NUZEQTAwNjZGMkFCIC8qIGNvY29hICovLApAQCAtMjAzNTQsNiArMjAz
NjMsOCBAQAogCQkJCTg5QzBERDdCMTIxRjBDNjkwMDlFMTdDQSAvKiBGaWxlU3lzdGVtQ2FsbGJh
Y2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTA1N0ZBNjEyMjA3MzExMDBBNDc2RDUgLyogRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5RjBENkIyRjEyMUJG
RUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJODlEMDhEQTAxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJODlEMDhEQTExMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMjgwOCw2ICsyMjgxOSw3IEBACiAJCQkJODlD
MEREN0ExMjFGMEM2OTAwOUUxN0NBIC8qIEZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0UwNTdGQTUxMjIwNzMxMTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29u
dHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RjBENkIyRTEyMUJGRUJBMDA2QzAyODgg
LyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4OUQwOEQ5
RjEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1N2M2OGJlNWE4NTQw
ODIyZGZlMWVhM2EwNDkzZjE2OGVjZjRjMzYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0uaCIKKworI2lmIEVOQUJMRShGSUxFX1NZ
U1RFTSkKKworI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIgorI2luY2x1ZGUg
IkZpbGVTeXN0ZW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIVBMQVRGT1JNKENI
Uk9NSVVNKQordm9pZCBBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmlu
ZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkZW50aWZpZXIsIFR5cGUgdHlwZSwg
UGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBT
dHJpbmcgdHlwZVN0cmluZyA9ICh0eXBlID09IFBlcnNpc3RlbnQpID8gIlBlcnNpc3RlbnQiIDog
IlRlbXBvcmFyeSI7CisKKyAgICBTdHJpbmcgbmFtZSA9IHN0b3JhZ2VJZGVudGlmaWVyOworICAg
IG5hbWUgKz0gIjoiOworICAgIG5hbWUgKz0gdHlwZVN0cmluZzsKKworICAgIFN0cmluZyByb290
UGF0aCA9IGJhc2VQYXRoOworICAgIHJvb3RQYXRoLmFwcGVuZChQbGF0Zm9ybUZpbGVQYXRoU2Vw
YXJhdG9yKTsKKyAgICByb290UGF0aCArPSBzdG9yYWdlSWRlbnRpZmllcjsKKyAgICByb290UGF0
aC5hcHBlbmQoUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvcik7CisgICAgcm9vdFBhdGggKz0gdHlw
ZVN0cmluZzsKKyAgICByb290UGF0aC5hcHBlbmQoUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvcik7
CisKKyAgICBjYWxsYmFja3MtPmRpZE9wZW5GaWxlU3lzdGVtKG5hbWUsIHJvb3RQYXRoKTsKK30K
KyNlbmRpZgorCisvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uLgorU3RyaW5nIEFzeW5jRmlsZVN5
c3RlbTo6dmlydHVhbFRvUGxhdGZvcm1QYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkgY29uc3QKK3sK
KyAgICBTdHJpbmcgdmlydHVhbFBhdGggPSBwYXRoOworICAgIHJldHVybiBtX3BsYXRmb3JtUm9v
dFBhdGggKyB2aXJ0dWFsUGF0aC5yZXBsYWNlKCcvJywgUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRv
cik7Cit9CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0p
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTlmOGMyOGI2N2NmNmI5
MWRhMjBjZDczZTNlYmE3ZTRhNmFmMTdkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBc3luY0ZpbGVT
eXN0ZW1faAorI2RlZmluZSBBc3luY0ZpbGVTeXN0ZW1faAorCisjaWYgRU5BQkxFKEZJTEVfU1lT
VEVNKQorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFzeW5jRmlsZVN5c3RlbTsK
K2NsYXNzIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczsKKworLy8gQSBmYWN0b3J5IGNsYXNzIGlu
dGVyZmFjZS4KK2NsYXNzIEFzeW5jRmlsZVN5c3RlbUZhY3RvcnkgeworcHVibGljOgorICAgIC8v
IE11c3QgcmV0dXJuIG5vbi1udWxsLgorICAgIHZpcnR1YWwgQXN5bmNGaWxlU3lzdGVtKiBjcmVh
dGVBc3luY0ZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBwbGF0Zm9ybVJvb3RQYXRoKSA9IDA7Cisg
ICAgdmlydHVhbCB+QXN5bmNGaWxlU3lzdGVtRmFjdG9yeSgpIHsgfQorfTsKKworLy8gVGhpcyBj
bGFzcyBwcm92aWRlcyBhbiBhc3luYyBpbnRlcmZhY2UgZm9yIHBsYXRmb3JtIGRlcGVuZGVudCBE
T01GaWxlU3lzdGVtIGltcGxlbWVudGF0aW9uLiBOb3RlIHRoYXQgYWxsIHRoZSBtZXRob2RzIHRh
a2UgY2Fub25pY2FsaXplZCB2aXJ0dWFsIHBhdGhzLgorY2xhc3MgQXN5bmNGaWxlU3lzdGVtIDog
cHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Bc3luY0ZpbGVTeXN0
ZW0oKSB7IH0KKworICAgIC8vIEZpbGVTeXN0ZW0gdHlwZQorICAgIGVudW0gVHlwZSB7CisgICAg
ICAgIFRlbXBvcmFyeSwKKyAgICAgICAgUGVyc2lzdGVudCwKKyAgICB9OworCisgICAgdmlydHVh
bCB2b2lkIHN0b3AoKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
eyByZXR1cm4gZmFsc2U7IH0KKworICAgIHN0YXRpYyB2b2lkIG9wZW5GaWxlU3lzdGVtKGNvbnN0
IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkZW50aWZpZXIsIFR5cGUs
IFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisKKyAgICB2aXJ0dWFsIHZv
aWQgbW92ZShjb25zdCBTdHJpbmcmIHNyY1BhdGgsIGNvbnN0IFN0cmluZyYgZGVzdFBhdGgsIFBh
c3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBjb3B5KGNvbnN0IFN0cmluZyYgc3JjUGF0aCwgY29uc3QgU3RyaW5nJiBkZXN0UGF0aCwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHJlbW92ZShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2Fs
bGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWFkTWV0YWRhdGEoY29uc3QgU3RyaW5n
JiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIGJvb2wgZXhjbHVzaXZl
LCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY3JlYXRlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCBleGNsdXNpdmUs
IFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVT
eXN0ZW1DYWxsYmFja3M+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpcmVjdG9yeUV4aXN0cyhj
b25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikg
PSAwOworCisgICAgLy8gQ29udmVydHMgYSBnaXZlbiBhYnNvbHV0ZSB2aXJ0dWFsIHBhdGggdG8g
YSBwbGF0Zm9ybSBwYXRoIHRoYXQgc3RhcnRzIHdpdGggdGhlIHBsYXRmb3JtIHJvb3QgcGF0aCBv
ZiB0aGlzIGZpbGUgc3lzdGVtLgorICAgIHZpcnR1YWwgU3RyaW5nIHZpcnR1YWxUb1BsYXRmb3Jt
UGF0aChjb25zdCBTdHJpbmcmIHBhdGgpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgICAgQXN5bmNG
aWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgcGxhdGZvcm1Sb290UGF0aCkKKyAgICAgICAgOiBtX3Bs
YXRmb3JtUm9vdFBhdGgocGxhdGZvcm1Sb290UGF0aCkKKyAgICB7CisgICAgfQorCisgICAgU3Ry
aW5nIG1fcGxhdGZvcm1Sb290UGF0aDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2VuZGlmIC8vIEFzeW5jRmlsZVN5c3Rl
bV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
cy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZjM5OTk5NTlhZjE4NTQ3NjE3MjljNGZjZGY1ZjJlNzY2OGJhZGE1Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaApAQCAt
MCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3NfaAorI2RlZmluZSBB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3NfaAorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBBc3luY0ZpbGVTeXN0ZW07CisKK2NsYXNzIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcyA6IHB1
YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgLy8gQ2FsbGVkIHdoZW4gYSByZXF1ZXN0
ZWQgb3BlcmF0aW9uIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuCisgICAgdmlydHVhbCB2b2lk
IGRpZFN1Y2NlZWQoKSA9IDA7CisKKyAgICAvLyBDYWxsZWQgd2hlbiBhIHJlcXVlc3RlZCBmaWxl
IHN5c3RlbSBpcyBvcGVuZWQuCisgICAgdmlydHVhbCB2b2lkIGRpZE9wZW5GaWxlU3lzdGVtKGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiByb290UGF0aCkgPSAwOworCisgICAgLy8g
Q2FsbGVkIHdoZW4gYSBmaWxlIG1ldGFkYXRhIGlzIHJlYWQgc3VjY2Vzc2Z1bGx5LgorICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWFkTWV0YWRhdGEoZG91YmxlIG1vZGlmaWNhdGlvblRpbWUpID0gMDsK
KworICAgIC8vIENhbGxlZCB3aGVuIGEgZGlyZWN0b3J5IGVudHJ5IGlzIHJlYWQuCisgICAgdmly
dHVhbCB2b2lkIGRpZFJlYWREaXJlY3RvcnlFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wg
aXNEaXJlY3RvcnkpID0gMDsKKworICAgIC8vIENhbGxlZCBhZnRlciBhIGNodW5rIG9mIGRpcmVj
dG9yeSBlbnRyaWVzIGhhdmUgYmVlbiByZWFkIChpLmUuIGluZGljYXRlcyBpdCdzIGdvb2QgdGlt
ZSB0byBjYWxsIGJhY2sgdG8gdGhlIGFwcGxpY2F0aW9uKS4gIElmIGhhc01vcmUgaXMgdHJ1ZSB0
aGVyZSBjYW4gYmUgbW9yZSBjaHVua3MuCisgICAgdmlydHVhbCB2b2lkIGRpZFJlYWREaXJlY3Rv
cnlDaHVua0RvbmUoYm9vbCBoYXNNb3JlKSA9IDA7CisKKyAgICAvLyBDYWxsZWQgd2hlbiB0aGVy
ZSB3YXMgYW4gZXJyb3IuCisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoaW50IGNvZGUpID0gMDsK
KworICAgIHZpcnR1YWwgfkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcygpIHsgfQorfTsKKworfSAv
LyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2VuZGlmIC8v
IEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrc19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L0ZpbGVTeXN0ZW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCmluZGV4IGVjNzVh
MjEwM2E1NTA4NzNjNTdlNDE3ZTZmMzMyZTA4YjY4ZDdhZGYuLmUzOTE2Y2ZlMGFjNTk2NzE3ZTlh
NGYyYmQ5ZTViZTAwNjIyNmQwODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5
c3RlbS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0xMzgsNiArMTM4
LDEyIEBAIGVudW0gRmlsZVNlZWtPcmlnaW4gewogICAgIFNlZWtGcm9tRW5kCiB9OwogCisjaWYg
T1MoV0lORE9XUykKK3N0YXRpYyBjb25zdCBjaGFyIFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3Ig
PSAnXFwnOworI2Vsc2UKK3N0YXRpYyBjb25zdCBjaGFyIFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0
b3IgPSAnLyc7CisjZW5kaWYKKwogYm9vbCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYpOwogYm9v
bCBkZWxldGVGaWxlKGNvbnN0IFN0cmluZyYpOwogYm9vbCBkZWxldGVFbXB0eURpcmVjdG9yeShj
b25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVt
LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcAppbmRleCBjM2RiZDM0MDE0
ZWEyMGVjZWZkOGFhZGQ3YzZiZGM5ZGJkMGVlOTYyLi42YmU0MDlkMzA2NDY0YjBmZjFmZWNjZDk1
ODJmOGRhZTUwZmM1NTZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3Rl
bS5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC0zMywxMyAr
MzMsMjAgQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKIAorI2luY2x1ZGUgIkFzeW5jRmls
ZVN5c3RlbS5oIgogI2luY2x1ZGUgIkRpcmVjdG9yeUVudHJ5LmgiCisjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLURPTUZpbGVTeXN0
ZW06OkRPTUZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQ
YXRoKQotICAgIDogbV9yb290UGF0aChyb290UGF0aCkKK0RPTUZpbGVTeXN0ZW06OkRPTUZpbGVT
eXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBBc3luY0ZpbGVTeXN0ZW0qIGFzeW5jRmlsZVN5c3RlbSkKKyAgICA6IEFjdGl2ZURPTU9iamVj
dChjb250ZXh0LCB0aGlzKQogICAgICwgbV9uYW1lKG5hbWUpCisgICAgLCBtX2FzeW5jRmlsZVN5
c3RlbShhc3luY0ZpbGVTeXN0ZW0pCit7Cit9CisKK0RPTUZpbGVTeXN0ZW06On5ET01GaWxlU3lz
dGVtKCkKIHsKIH0KIApAQCAtNDgsNiArNTUsMjEgQEAgUGFzc1JlZlB0cjxEaXJlY3RvcnlFbnRy
eT4gRE9NRmlsZVN5c3RlbTo6cm9vdCgpCiAgICAgcmV0dXJuIERpcmVjdG9yeUVudHJ5OjpjcmVh
dGUodGhpcywgIi8iKTsKIH0KIAordm9pZCBET01GaWxlU3lzdGVtOjpzdG9wKCkKK3sKKyAgICBt
X2FzeW5jRmlsZVN5c3RlbS0+c3RvcCgpOworfQorCitib29sIERPTUZpbGVTeXN0ZW06Omhhc1Bl
bmRpbmdBY3Rpdml0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXN5bmNGaWxlU3lzdGVtLT5o
YXNQZW5kaW5nQWN0aXZpdHkoKTsKK30KKwordm9pZCBET01GaWxlU3lzdGVtOjpjb250ZXh0RGVz
dHJveWVkKCkKK3sKKyAgICBtX2FzeW5jRmlsZVN5c3RlbS0+c3RvcCgpOworfQorCiB9IC8vIG5h
bWVzcGFjZQogCiAjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaCBiL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lz
dGVtLmgKaW5kZXggYjg3YWFhZjMyY2Q5ZWFjMGYyMmM0OWVlMTc2NzJkZDVhMmU3NzY3My4uMGM3
ODZjYjQ4MjMzNWEzNzgwZjExMDFlNzlmN2E3M2E2NzRjNDg5NCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5
c3RlbS5oCkBAIC0zMywyOSArMzMsNDMgQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKIAor
I2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkZsYWdzLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQXN5
bmNGaWxlU3lzdGVtOwogY2xhc3MgRGlyZWN0b3J5RW50cnk7CitjbGFzcyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OwogCi1jbGFzcyBET01GaWxlU3lzdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8RE9N
RmlsZVN5c3RlbT4geworY2xhc3MgRE9NRmlsZVN5c3RlbSA6IHB1YmxpYyBSZWZDb3VudGVkPERP
TUZpbGVTeXN0ZW0+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHJvb3RQYXRoKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUZpbGVTeXN0
ZW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcm
IG5hbWUsIEFzeW5jRmlsZVN5c3RlbSogYXN5bmNGaWxlU3lzdGVtKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBET01GaWxlU3lzdGVtKG5hbWUsIHJvb3RQYXRoKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRE9NRmlsZVN5c3RlbShjb250ZXh0LCBuYW1lLCBhc3lu
Y0ZpbGVTeXN0ZW0pKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIH5ET01GaWxlU3lzdGVtKCk7CisK
ICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICBQ
YXNzUmVmUHRyPERpcmVjdG9yeUVudHJ5PiByb290KCk7CiAKKyAgICAvLyBBY3RpdmVET01PYmpl
Y3QgbWV0aG9kcy4KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpOworICAgIHZpcnR1YWwgYm9vbCBo
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ry
b3llZCgpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIgZmlsZVBhdGhTZXBhcmF0b3I7CisgICAg
c3RhdGljIGNvbnN0IGNoYXIqIHJvb3RQYXRoOworCiBwcml2YXRlOgotICAgIERPTUZpbGVTeXN0
ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoKTsKKyAgICBET01G
aWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEFz
eW5jRmlsZVN5c3RlbSopOwogCi0gICAgU3RyaW5nIG1fcm9vdFBhdGg7CiAgICAgU3RyaW5nIG1f
bmFtZTsKKyAgICBtdXRhYmxlIE93blB0cjxBc3luY0ZpbGVTeXN0ZW0+IG1fYXN5bmNGaWxlU3lz
dGVtOwogfTsKIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9G
aWxlU3lzdGVtQ2FsbGJhY2tzLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJh
Y2tzLmNwcAppbmRleCBlYzM1MmRkN2Q2ZTkyYzdjODdhMzgwNGIzY2QzOGNjM2RkYTFlODE4Li5i
YTQzZDhhNTdlZjBmMWQ2NmI4Yjg4NmZlNjg5M2JlYmRhNjEzMGNmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdl
L0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBFTkFCTEUo
RklMRV9TWVNURU0pCiAKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJE
T01GaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiRGlyZWN0b3J5RW50cnkuaCIKICNpbmNsdWRlICJF
bnRyaWVzQ2FsbGJhY2suaCIKQEAgLTg5LDcgKzkwLDcgQEAgdm9pZCBGaWxlU3lzdGVtQ2FsbGJh
Y2tzQmFzZTo6ZGlkUmVhZERpcmVjdG9yeUVudHJ5KGNvbnN0IFN0cmluZyYsIGJvb2wpCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2U6
OmRpZEZhaWwoRXhjZXB0aW9uQ29kZSBjb2RlKQordm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFz
ZTo6ZGlkRmFpbChpbnQgY29kZSkKIHsKICAgICBpZiAobV9lcnJvckNhbGxiYWNrKSB7CiAgICAg
ICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRmlsZUVycm9yOjpjcmVhdGUoY29kZSku
Z2V0KCkpOwpAQCAtMTUyLDE2ICsxNTMsMTggQEAgdm9pZCBFbnRyaWVzQ2FsbGJhY2tzOjpkaWRS
ZWFkRGlyZWN0b3J5Q2h1bmtEb25lKGJvb2wgaGFzTW9yZSkKIAogLy8gRmlsZVN5c3RlbUNhbGxi
YWNrcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi1GaWxlU3lzdGVtQ2FsbGJhY2tzOjpGaWxlU3lzdGVtQ2FsbGJhY2tzKFBhc3NSZWZQ
dHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JD
YWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK0ZpbGVTeXN0ZW1DYWxsYmFja3M6OkZpbGVTeXN0ZW1D
YWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywg
UGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUZhY3Rvcnk+IGZhY3Rv
cnkpCiAgICAgOiBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZShlcnJvckNhbGxiYWNrKQogICAgICwg
bV9zdWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKQorICAgICwgbV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0KGNvbnRleHQpCisgICAgLCBtX2FzeW5jRmlsZVN5c3RlbUZhY3RvcnkoZmFjdG9y
eSkKIHsKIH0KIAogdm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRPcGVuRmlsZVN5c3RlbShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpCiB7CiAgICAgaWYgKG1f
c3VjY2Vzc0NhbGxiYWNrKQotICAgICAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQo
RE9NRmlsZVN5c3RlbTo6Y3JlYXRlKG5hbWUsIHJvb3RQYXRoKS5nZXQoKSk7CisgICAgICAgIG1f
c3VjY2Vzc0NhbGxiYWNrLT5oYW5kbGVFdmVudChET01GaWxlU3lzdGVtOjpjcmVhdGUobV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCBuYW1lLCBtX2FzeW5jRmlsZVN5c3RlbUZhY3RvcnktPmNyZWF0
ZUFzeW5jRmlsZVN5c3RlbShyb290UGF0aCkpLmdldCgpKTsKICAgICBtX3N1Y2Nlc3NDYWxsYmFj
ay5jbGVhcigpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNh
bGxiYWNrcy5oIGIvV2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuaAppbmRleCBl
MGU3OGQzNzBjMjFlMzM3YjI0OGQzOGFjODk2ZDFhN2UwZWNiMTMwLi5kOWE5NGIzOTQ1OGIwMzhm
ODNmNjUxNTZhYmE4MGZjOTQ4MmEwZTJkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRmls
ZVN5c3RlbUNhbGxiYWNrcy5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJh
Y2tzLmgKQEAgLTMzLDEyICszMywxNCBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCisj
aW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBc3luY0ZpbGVTeXN0ZW1GYWN0
b3J5OwogY2xhc3MgRE9NRmlsZVN5c3RlbTsKIGNsYXNzIEVycm9yQ2FsbGJhY2s7CiBjbGFzcyBF
bnRyaWVzQ2FsbGJhY2s7CkBAIC00OSwxMCArNTEsOCBAQCBjbGFzcyBNZXRhZGF0YUNhbGxiYWNr
OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFZvaWRDYWxsYmFjazsKIAot
dHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQogLy8gQSBiYXNlIGNsYXNzIGZvciBGaWxlU3lz
dGVtIGNhbGxiYWNrcyB0aGF0IGJ1bmRsZXMgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNr
IGFuZCBzb21lIGNsb3N1cmUgZGF0YSBmb3IgdGhlIGNhbGxiYWNrcy4KLWNsYXNzIEZpbGVTeXN0
ZW1DYWxsYmFja3NCYXNlIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK2NsYXNzIEZpbGVTeXN0ZW1D
YWxsYmFja3NCYXNlIDogcHVibGljIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcyB7CiBwdWJsaWM6
CiAgICAgdmlydHVhbCB+RmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UoKTsKIApAQCAtNzAsNyArNzAs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlYWREaXJlY3RvcnlDaHVua0RvbmUo
Ym9vbCBoYXNNb3JlKTsKIAogICAgIC8vIEZvciBFcnJvckNhbGxiYWNrLgotICAgIHZpcnR1YWwg
dm9pZCBkaWRGYWlsKEV4Y2VwdGlvbkNvZGUgY29kZSk7CisgICAgdmlydHVhbCB2b2lkIGRpZEZh
aWwoaW50IGNvZGUpOwogCiBwcm90ZWN0ZWQ6CiAgICAgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2Uo
UGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKTsKQEAgLTEwNiwxMSArMTA2
LDEzIEBAIHByaXZhdGU6CiAKIGNsYXNzIEZpbGVTeXN0ZW1DYWxsYmFja3MgOiBwdWJsaWMgRmls
ZVN5c3RlbUNhbGxiYWNrc0Jhc2UgewogcHVibGljOgotICAgIEZpbGVTeXN0ZW1DYWxsYmFja3Mo
UGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+
KTsKKyAgICBGaWxlU3lzdGVtQ2FsbGJhY2tzKFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNr
PiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBh
c3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtRmFjdG9yeT4pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRP
cGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgp
OwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+IG1fc3VjY2Vzc0Nh
bGxiYWNrOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKKyAgICBPd25QdHI8QXN5bmNGaWxlU3lzdGVtRmFjdG9yeT4gbV9hc3luY0ZpbGVTeXN0
ZW1GYWN0b3J5OwogfTsKIAogY2xhc3MgTWV0YWRhdGFDYWxsYmFja3MgOiBwdWJsaWMgRmlsZVN5
c3RlbUNhbGxiYWNrc0Jhc2UgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0ZsYWdzLmgg
Yi9XZWJDb3JlL3N0b3JhZ2UvRmxhZ3MuaAppbmRleCBmZmUzNDAzOGEwNGM0MGNlOWUzYTg3NTgz
MGIxYmI4MDVjZjY2ZWJiLi4zMDg4NGZjYzQzZmRmMmEzYTA2NDVmOWQ1OWFkOWE4ZWI3ZWQ2MDRk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRmxhZ3MuaAorKysgYi9XZWJDb3JlL3N0b3Jh
Z2UvRmxhZ3MuaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQog
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65178</attachid>
            <date>2010-08-23 16:37:19 -0700</date>
            <delta_ts>2010-08-23 16:48:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44433-20100823163718.patch</filename>
            <type>text/plain</type>
            <size>43413</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDIwOWY2YjMxYjMwNDgwZDIyMGUwMDIwOTY3NzFiNzdjMmM0ZGFkMmIuLjM3NGMw
Yjc3ZjEwNWQ4MTQ1ZmJiN2Q0NzA2MDU2MjcwNjJhMGRmMDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIxMSw2ICsx
MjExLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1l
QW5pbWF0aW9uLmNwcAogCiAgICAgcGxhdGZvcm0vQXJlbmEuY3BwCisgICAgcGxhdGZvcm0vQXN5
bmNGaWxlU3lzdGVtLmNwcAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmNwcAogICAgIHBsYXRmb3Jt
L0NvbnRlbnRUeXBlLmNwcAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmNwcApAQCAtMTQ4MSw2
ICsxNDgyLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHN0b3JhZ2UvSURCRmFjdG9yeS5j
cHAKICAgICBzdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcAogICAgIHN0b3Jh
Z2UvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcAorICAgIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVt
LmNwcAogICAgIHN0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5jcHAKICAgICBzdG9yYWdlL0xvY2Fs
U3RvcmFnZVRocmVhZC5jcHAKICAgICBzdG9yYWdlL09yaWdpblF1b3RhTWFuYWdlci5jcHAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzEz
YmY0MjlmMDRlNjllYjExMzIyNTllNGYyYTJmZTkyOTAzOTg0Yi4uMzg1NDRmMzc3M2ExN2E3MThj
ZTcxZTk5YTVmODFhYTgwYjE3NGJmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0wOC0yMyAgS2ludWtv
IFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFzeW5jRmlsZVN5c3RlbSBpbnRlcmZhY2UgZm9y
IHBsYXRmb3JtLWRlcGVuZGVudCBGaWxlU3lzdGVtIEFQSSBpbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ0MzMKKworICAgICAg
ICBObyBuZXcgdGVzdHM7IHRlc3RzIHdpbGwgYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmg6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9wb3NpeC9Bc3luY0ZpbGVTeXN0ZW1QT1NJWC5jcHA6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9Bc3luY0ZpbGVTeXN0ZW1XaW4uY3BwOiBBZGRlZC4KKyAgICAgICAg
KiBzdG9yYWdlL0RPTUZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5
c3RlbTo6RE9NRmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjp+
RE9NRmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpzdG9wKToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06Omhhc1BlbmRpbmdBY3Rpdml0eSk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpjb250ZXh0RGVzdHJveWVkKToKKyAgICAg
ICAgKiBzdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVT
eXN0ZW06OmNyZWF0ZSk6CisgICAgICAgICogc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlOjpkaWRGYWlsKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1DYWxsYmFja3M6OkZpbGVTeXN0ZW1DYWxsYmFj
a3MpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkT3BlbkZpbGVT
eXN0ZW0pOgorICAgICAgICAqIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oOgorICAgICAg
ICAqIHN0b3JhZ2UvRmxhZ3MuaDoKKyAgICAgICAgKiBzdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5j
cHA6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmg6IEFkZGVkLgor
CiAyMDEwLTA4LTIzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJv
IGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA4MDM0OGRjOGFjZjA4YWM5ZDVmY2RjY2EwNzI3
OTE3OGQ2NTcwMTAxLi5jNjhkZmZjZTg3OWVmODVmY2ZiZDEyNGI5ZjBhYjJkNGEyODc0MzNkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTg3NCw2ICs4NzQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9hbmltYXRpb24v
QW5pbWF0aW9uLmNwcCBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxpc3QuY3Bw
IFwKICAgICBwbGF0Zm9ybS9BcmVuYS5jcHAgXAorICAgIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3Rl
bS5jcHAgXAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9C
YXNlNjQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcCBcCkBAIC0xNjU5
LDYgKzE2NjAsOCBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0
aW9uTGlzdC5oIFwKICAgICBwbGF0Zm9ybS9BcmVuYS5oIFwKICAgICBwbGF0Zm9ybS9Bc3luY0Zp
bGVTdHJlYW0uaCBcCisgICAgcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmggXAorICAgIHBsYXRm
b3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIFwKICAgICBwbGF0Zm9ybS9CbG9iSXRlbS5o
IFwKICAgICBwbGF0Zm9ybS9Db250ZW50VHlwZS5oIFwKICAgICBwbGF0Zm9ybS9Db250ZXh0TWVu
dS5oIFwKQEAgLTI1OTQsNiArMjU5Nyw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9GSUxF
X1NZU1RFTT0xKSB7CiAgICAgICAgIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrLmggXAogICAg
ICAgICBzdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBcCiAgICAgICAgIHN0b3JhZ2UvRmxh
Z3MuaCBcCisgICAgICAgIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmggXAogICAgICAgICBzdG9y
YWdlL01ldGFkYXRhLmggXAogICAgICAgICBzdG9yYWdlL01ldGFkYXRhQ2FsbGJhY2suaAogCkBA
IC0yNjA0LDcgKzI2MDgsOCBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfRklMRV9TWVNURU09
MSkgewogICAgICAgICBzdG9yYWdlL0VudHJ5LmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvRW50cnlB
cnJheS5jcHAgXAogICAgICAgICBzdG9yYWdlL0ZpbGVFbnRyeS5jcHAgXAotICAgICAgICBzdG9y
YWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwCisgICAgICAgIHN0b3JhZ2UvRmlsZVN5c3RlbUNh
bGxiYWNrcy5jcHAgXAorICAgICAgICBzdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5jcHAKIH0KIAog
Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lDT05EQVRBQkFTRT0xKSB7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAzZWE0YjVmZThmOWRiYmMxMjc4NGExMjE1MGE1YTYx
NzgyMDg2Yzg4Li5lZWI1NjY1YThmNTZkNjY0YTBiMjVjOGMwYmFiOTU5NTE0Y2M4NjM4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIzOTgxLDYgKzIzOTgxLDE4IEBA
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXEFzeW5jRmlsZVN5c3RlbS5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxBc3luY0ZpbGVTeXN0ZW0uaCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJ
CTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cQXV0b2RyYWluZWRQb29sLmgi
DQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpAQCAtMjQzODgsNiArMjQ0MDAsMTAgQEAKIAkJCQkJPg0K
IAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3Jt
XHdpblxBc3luY0ZpbGVTeXN0ZW1XaW4uY3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJ
CTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHdpblxCaXRtYXBJbmZvLmNw
cCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KQEAgLTUxNDEzLDYgKzUxNDI5LDE0IEBACiAJCQkJ
Pg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2Vc
TG9jYWxGaWxlU3lzdGVtLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcTG9jYWxGaWxlU3lzdGVtLmgiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXExvY2Fs
U3RvcmFnZVRocmVhZC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ZGY0OTQzODliZGM5NGFmOTAxMGUxNjRi
YjMzZjAxNmViNjZkOWY0Li40N2FkMzMzOTJlYjIyMGMxZTNhNGQ5MmJhMDJmZDU4MWZjOTFiOWNk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM4NSw2
ICsyMzg1LDkgQEAKIAkJODk1MjUzREMxMTZDNEVGNTAwQ0FCRjAwIC8qIEZpbGVTdHJlYW1Qcm94
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTUy
NTNEQTExNkM0RUY1MDBDQUJGMDAgLyogRmlsZVN0cmVhbVByb3h5LmNwcCAqLzsgfTsKIAkJODk1
MjUzREQxMTZDNEVGNTAwQ0FCRjAwIC8qIEZpbGVTdHJlYW1Qcm94eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk1MjUzREIxMTZDNEVGNTAwQ0FCRjAw
IC8qIEZpbGVTdHJlYW1Qcm94eS5oICovOyB9OwogCQk4OTUyNTNERjExNkM0RjA2MDBDQUJGMDAg
LyogRmlsZVRocmVhZFRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg5NTI1M0RFMTE2QzRGMDYwMENBQkYwMCAvKiBGaWxlVGhyZWFkVGFzay5oICov
OyB9OworCQk4OTg3ODNDNDEyMjMxMDYyMDAzQUFCREEgLyogQXN5bmNGaWxlU3lzdGVtUE9TSVgu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk4Nzgz
QzMxMjIzMTA2MjAwM0FBQkRBIC8qIEFzeW5jRmlsZVN5c3RlbVBPU0lYLmNwcCAqLzsgfTsKKwkJ
ODk4NzgzRDMxMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTg3ODNEMTEyMjMyQTEzMDAz
QUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmNwcCAqLzsgfTsKKwkJODk4NzgzRDQxMjIzMkExMzAw
M0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODk4NzgzRDIxMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5
c3RlbS5oICovOyB9OwogCQk4OTg4RTEwRTExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk4OEUxMEMx
MUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJdGVtLmNwcCAqLzsgfTsKIAkJODk4OEUxMEYxMUEzNTA4
QjAwREI3MzJFIC8qIEJsb2JJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4OTg4RTEwRDExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4OTlBQkMyNjEy
MTVFNEEzMDBGOUYyMTkgLyogRGlyZWN0b3J5RW50cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk5QUJDMjAxMjE1RTRBMzAwRjlGMjE5IC8qIERp
cmVjdG9yeUVudHJ5LmNwcCAqLzsgfTsKQEAgLTI0MzQsNiArMjQzNyw5IEBACiAJCTg5QzBERDdC
MTIxRjBDNjkwMDlFMTdDQSAvKiBGaWxlU3lzdGVtQ2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUMwREQ3OTEyMUYwQzY5MDA5RTE3Q0Eg
LyogRmlsZVN5c3RlbUNhbGxiYWNrcy5oICovOyB9OwogCQk4OUNEMDI5MzExQzg1Qjg3MDA3MEI3
OTEgLyogSlNCbG9iQnVpbGRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4OUNEMDI5MTExQzg1Qjg3MDA3MEI3OTEgLyogSlNCbG9iQnVpbGRlci5j
cHAgKi87IH07CiAJCTg5Q0QwMjk0MTFDODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JCdWlsZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUNEMDI5MjEx
Qzg1Qjg3MDA3MEI3OTEgLyogSlNCbG9iQnVpbGRlci5oICovOyB9OworCQk4OUQwOEQ5RjEyMjI4
NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5RDA4RDlDMTIyMjg0NTEwMDEyNDFERiAvKiBBc3lu
Y0ZpbGVTeXN0ZW0uY3BwICovOyB9OworCQk4OUQwOERBMDEyMjI4NDUxMDAxMjQxREYgLyogQXN5
bmNGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4OUQwOEQ5RDEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmggKi87IH07
CisJCTg5RDA4REExMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5RDA4RDlF
MTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLzsgfTsKIAkJ
OEExMkUzNUQxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEExMkUzNUMxMUZBMzMyODAw
MjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3lu
Y1NjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEE0MTNBRTEx
MjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAv
KiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgKi87IH07CkBAIC04MjczLDYgKzgyNzksOSBAQAogCQk4
OTdBMkQ4RTEyMDAwMzVGMDA4Mjc0MEMgLyogSlNET01GaWxlU3lzdGVtLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4OTdBMkQ5MTEyMDAwMzc2MDA4Mjc0MEMgLyogSlNGbGFncy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZsYWdzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODk3QTJEOTIxMjAwMDM3NjAwODI3NDBDIC8qIEpTRmxhZ3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNGbGFncy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4OTg3ODNDMzEyMjMxMDYyMDAzQUFCREEgLyogQXN5bmNGaWxl
U3lzdGVtUE9TSVguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXN5
bmNGaWxlU3lzdGVtUE9TSVguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTg3
ODNEMTEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2FsRmlsZVN5c3RlbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTg5ODc4M0QyMTIyMzJBMTMwMDNBQUJEQSAvKiBMb2NhbEZpbGVT
eXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxGaWxlU3lzdGVt
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5ODhFMTBDMTFBMzUwOEIwMERCNzMy
RSAvKiBCbG9iSXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBC
bG9iSXRlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5ODhFMTBEMTFBMzUw
OEIwMERCNzMyRSAvKiBCbG9iSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCbG9iSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTlBQkMyMDEyMTVF
NEEzMDBGOUYyMTkgLyogRGlyZWN0b3J5RW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGlyZWN0b3J5RW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtODMwOCw2ICs4MzE3LDkgQEAKIAkJODlDRDAyNzkxMUM4NTlBODAwNzBCNzkxIC8q
IEJsb2JCdWlsZGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBCbG9iQnVpbGRlci5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5Q0QwMjkxMTFDODVCODcwMDcwQjc5MSAv
KiBKU0Jsb2JCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQmxvYkJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OUNEMDI5
MjExQzg1Qjg3MDA3MEI3OTEgLyogSlNCbG9iQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0Jsb2JCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTg5RDA4RDlDMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXN5bmNGaWxlU3lzdGVtLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODlEMDhEOUQxMjIyODQ1MTAwMTI0MURGIC8qIEFz
eW5jRmlsZVN5c3RlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY0Zp
bGVTeXN0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODlEMDhEOUUxMjIyODQ1
MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9h
ZFRpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudExvYWRU
aW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE0MTNBREUxMjA3QkJBNTAw
ODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFzeW5jU2NyaXB0UnVubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBc3luY1NjcmlwdFJ1bm5lci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTY3NCw2ICsxMTY4Niw4IEBACiAJCQkJQjY1
NjYyNjgxMjBCMTE1QTAwNkVBODVDIC8qIElEQlRyYW5zYWN0aW9uLmggKi8sCiAJCQkJQjY1NjYy
NjkxMjBCMTE1QTAwNkVBODVDIC8qIElEQlRyYW5zYWN0aW9uLmlkbCAqLywKIAkJCQlCNjU2NjI2
RDEyMEIxMTZCMDA2RUE4NUMgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggKi8s
CisJCQkJODk4NzgzRDExMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5jcHAgKi8s
CisJCQkJODk4NzgzRDIxMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oICovLAog
CQkJCTUxMUYyMzEzMERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmNwcCAqLywK
IAkJCQk1MTFGMjMxNDBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5oICovLAog
CQkJCTUxMUYyMzE1MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQuY3BwICov
LApAQCAtMTIyNjYsNiArMTIyODAsNyBAQAogCQk1MTYwMzAwOTBDQzQyNDU0MDBDOEFDMjUgLyog
cG9zaXggKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTg5
ODc4M0MzMTIyMzEwNjIwMDNBQUJEQSAvKiBBc3luY0ZpbGVTeXN0ZW1QT1NJWC5jcHAgKi8sCiAJ
CQkJNTE2MDMwMEEwQ0M0MjUxMjAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1QT1NJWC5jcHAgKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IHBvc2l4OwpAQCAtMTY1OTMsNiArMTY2MDgsOSBAQAogCQkJCUJDRkIy
Rjc0MDk3QTJFMUEwMEJBNzAzRCAvKiBBcmVuYS5jcHAgKi8sCiAJCQkJQkNGQjJGNzUwOTdBMkUx
QTAwQkE3MDNEIC8qIEFyZW5hLmggKi8sCiAJCQkJMkVGMUJGRjYxMjFDQjBCRDAwQzI3NjI3IC8q
IEFzeW5jRmlsZVN0cmVhbS5oICovLAorCQkJCTg5RDA4RDlDMTIyMjg0NTEwMDEyNDFERiAvKiBB
c3luY0ZpbGVTeXN0ZW0uY3BwICovLAorCQkJCTg5RDA4RDlEMTIyMjg0NTEwMDEyNDFERiAvKiBB
c3luY0ZpbGVTeXN0ZW0uaCAqLywKKwkJCQk4OUQwOEQ5RTEyMjI4NDUxMDAxMjQxREYgLyogQXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi8sCiAJCQkJNTFFMUVDQjEwQzkxQzU1NjAwREMyNTVC
IC8qIEF1dG9kcmFpbmVkUG9vbC5oICovLAogCQkJCTg5ODhFMTBDMTFBMzUwOEIwMERCNzMyRSAv
KiBCbG9iSXRlbS5jcHAgKi8sCiAJCQkJODk4OEUxMEQxMUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJ
dGVtLmggKi8sCkBAIC0yMDM1NCw2ICsyMDM3Miw5IEBACiAJCQkJODlDMEREN0IxMjFGMEM2OTAw
OUUxN0NBIC8qIEZpbGVTeXN0ZW1DYWxsYmFja3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMDU3
RkE2MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTlGMEQ2QjJGMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxl
ckFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk4OUQwOERBMDEyMjI4NDUxMDAxMjQxREYgLyog
QXN5bmNGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OUQwOERBMTEyMjI4NDUxMDAx
MjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
OTg3ODNENDEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKQEAgLTIyODA4LDYgKzIyODI5LDkgQEAKIAkJCQk4OUMwREQ3QTEyMUYwQzY5MDA5RTE3Q0Eg
LyogRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRTA1N0ZBNTEy
MjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTlGMEQ2QjJFMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFn
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg5RDA4RDlGMTIyMjg0NTEwMDEyNDFERiAvKiBB
c3luY0ZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODk4NzgzQzQxMjIzMTA2MjAw
M0FBQkRBIC8qIEFzeW5jRmlsZVN5c3RlbVBPU0lYLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg5
ODc4M0QzMTIyMzJBMTMwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2NiOTQ2NmE3
NGVlMTUzN2IxZDE5YWU5ZjY0YTRjZGU5NjQ4MGU4OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorCisjaWYgRU5BQkxFKEZJ
TEVfU1lTVEVNKQorCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCisjaW5j
bHVkZSAiRmlsZVN5c3RlbS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFByb3ZpZGUg
ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KK1N0cmluZyBBc3luY0ZpbGVTeXN0ZW06OnZpcnR1YWxU
b1BsYXRmb3JtUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFt
X3BsYXRmb3JtUm9vdFBhdGguaXNFbXB0eSgpKTsKKyAgICBTdHJpbmcgdmlydHVhbFBhdGggPSBw
YXRoOworICAgIHJldHVybiBtX3BsYXRmb3JtUm9vdFBhdGggKyB2aXJ0dWFsUGF0aC5yZXBsYWNl
KCcvJywgUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvcik7Cit9CisKK3ZvaWQgQXN5bmNGaWxlU3lz
dGVtOjpzZXRQbGF0Zm9ybVJvb3RQYXRoKGNvbnN0IFN0cmluZyYgcGxhdGZvcm1Sb290UGF0aCkK
K3sKKyAgICBtX3BsYXRmb3JtUm9vdFBhdGggPSBwbGF0Zm9ybVJvb3RQYXRoOworfQorCit9IC8v
IG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5
bmNGaWxlU3lzdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E5NzNjZDAyODY3ZGZmOTQwYTRmNzY5ZjRhYjIx
YjE2ZWVjZDM5YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxl
U3lzdGVtLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQXN5bmNGaWxlU3lzdGVtX2gKKyNkZWZp
bmUgQXN5bmNGaWxlU3lzdGVtX2gKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBc3luY0ZpbGVTeXN0ZW07CitjbGFzcyBBc3luY0Zp
bGVTeXN0ZW1DYWxsYmFja3M7CisKKy8vIFRoaXMgY2xhc3MgcHJvdmlkZXMgYXN5bmMgaW50ZXJm
YWNlIGZvciBwbGF0Zm9ybS1zcGVjaWZpYyBET01GaWxlU3lzdGVtIGltcGxlbWVudGF0aW9uLiBO
b3RlIHRoYXQgYWxsIHRoZSBtZXRob2RzIHRha2UgY2Fub25pY2FsaXplZCB2aXJ0dWFsIHBhdGhz
LgorY2xhc3MgQXN5bmNGaWxlU3lzdGVtIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5Bc3luY0ZpbGVTeXN0ZW0oKSB7IH0KKworICAgIC8vIEZpbGVTeXN0ZW0g
dHlwZQorICAgIGVudW0gVHlwZSB7CisgICAgICAgIFRlbXBvcmFyeSwKKyAgICAgICAgUGVyc2lz
dGVudCwKKyAgICB9OworCisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSB7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIC8vIENy
ZWF0ZXMgYSBwbGF0Zm9ybS1zcGVjaWZpYyBBc3luY0ZpbGVTeXN0ZW0gaW50ZXJmYWNlLgorICAg
IC8vIEl0IGlzIE9LIHRvIHJldHVybiBudWxsIGhlcmU7IGluIHRoYXQgY2FzZSB0aGUgZGVmYXVs
dCBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMgRmlsZVRocmVhZCB3aWxsIGJlIHVzZWQuCisgICAg
c3RhdGljIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBjcmVhdGVQbGF0Zm9ybUFzeW5jRmls
ZVN5c3RlbSgpOworCisgICAgLy8gT3BlbnMgYSBuZXcgZmlsZSBzeXN0ZW0uCisgICAgc3RhdGlj
IHZvaWQgb3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwgY29uc3QgU3RyaW5n
JiBzdG9yYWdlSWRlbnRpZmllciwgVHlwZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3M+KTsKKworICAgIHZpcnR1YWwgdm9pZCBtb3ZlKGNvbnN0IFN0cmluZyYgc3JjUGF0aCwg
Y29uc3QgU3RyaW5nJiBkZXN0UGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFj
a3M+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvcHkoY29uc3QgU3RyaW5nJiBzcmNQYXRoLCBj
b25zdCBTdHJpbmcmIGRlc3RQYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
cz4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHJlYWRNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVGaWxlKGNvbnN0IFN0
cmluZyYgcGF0aCwgYm9vbCBleGNsdXNpdmUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2Fs
bGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVEaXJlY3RvcnkoY29uc3QgU3Ry
aW5nJiBwYXRoLCBib29sIGV4Y2x1c2l2ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3M+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJiBw
YXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlyZWN0b3J5RXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBDb252ZXJ0cyBhIGdpdmVu
IGFic29sdXRlIHZpcnR1YWwgcGF0aCB0byBhIHBsYXRmb3JtIHBhdGggdGhhdCBzdGFydHMgd2l0
aCB0aGUgcGxhdGZvcm0gcm9vdCBwYXRoIG9mIHRoaXMgZmlsZSBzeXN0ZW0uCisgICAgdmlydHVh
bCBTdHJpbmcgdmlydHVhbFRvUGxhdGZvcm1QYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkgY29uc3Q7
CisKKyAgICAvLyBTZXQgcGxhdGZvcm0gcm9vdCBwYXRoLgorICAgIHZvaWQgc2V0UGxhdGZvcm1S
b290UGF0aChjb25zdCBTdHJpbmcmIHBsYXRmb3JtUm9vdFBhdGgpOworCitwcm90ZWN0ZWQ6Cisg
ICAgQXN5bmNGaWxlU3lzdGVtKCkgeyB9CisKKyAgICBTdHJpbmcgbV9wbGF0Zm9ybVJvb3RQYXRo
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVf
U1lTVEVNKQorCisjZW5kaWYgLy8gQXN5bmNGaWxlU3lzdGVtX2gKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggYi9XZWJDb3JlL3BsYXRmb3Jt
L0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmMzk5OTk1OWFmMTg1NDc2
MTcyOWM0ZmNkZjVmMmU3NjY4YmFkYTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFz
eW5jRmlsZVN5c3RlbUNhbGxiYWNrc19oCisjZGVmaW5lIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
c19oCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFzeW5jRmlsZVN5c3RlbTsKKwor
Y2xhc3MgQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1
YmxpYzoKKyAgICAvLyBDYWxsZWQgd2hlbiBhIHJlcXVlc3RlZCBvcGVyYXRpb24gaXMgY29tcGxl
dGVkIHN1Y2Nlc3NmdWxseS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3VjY2VlZCgpID0gMDsKKwor
ICAgIC8vIENhbGxlZCB3aGVuIGEgcmVxdWVzdGVkIGZpbGUgc3lzdGVtIGlzIG9wZW5lZC4KKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkT3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIHJvb3RQYXRoKSA9IDA7CisKKyAgICAvLyBDYWxsZWQgd2hlbiBhIGZpbGUgbWV0
YWRhdGEgaXMgcmVhZCBzdWNjZXNzZnVsbHkuCisgICAgdmlydHVhbCB2b2lkIGRpZFJlYWRNZXRh
ZGF0YShkb3VibGUgbW9kaWZpY2F0aW9uVGltZSkgPSAwOworCisgICAgLy8gQ2FsbGVkIHdoZW4g
YSBkaXJlY3RvcnkgZW50cnkgaXMgcmVhZC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVhZERpcmVj
dG9yeUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBpc0RpcmVjdG9yeSkgPSAwOworCisg
ICAgLy8gQ2FsbGVkIGFmdGVyIGEgY2h1bmsgb2YgZGlyZWN0b3J5IGVudHJpZXMgaGF2ZSBiZWVu
IHJlYWQgKGkuZS4gaW5kaWNhdGVzIGl0J3MgZ29vZCB0aW1lIHRvIGNhbGwgYmFjayB0byB0aGUg
YXBwbGljYXRpb24pLiAgSWYgaGFzTW9yZSBpcyB0cnVlIHRoZXJlIGNhbiBiZSBtb3JlIGNodW5r
cy4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVhZERpcmVjdG9yeUNodW5rRG9uZShib29sIGhhc01v
cmUpID0gMDsKKworICAgIC8vIENhbGxlZCB3aGVuIHRoZXJlIHdhcyBhbiBlcnJvci4KKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRmFpbChpbnQgY29kZSkgPSAwOworCisgICAgdmlydHVhbCB+QXN5bmNG
aWxlU3lzdGVtQ2FsbGJhY2tzKCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYg
Ly8gRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjZW5kaWYgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKaW5kZXggZWM3NWEyMTAzYTU1MDg3M2M1N2U0MTdlNmYz
MzJlMDhiNjhkN2FkZi4uZTM5MTZjZmUwYWM1OTY3MTdlOWE0ZjJiZDllNWJlMDA2MjI2ZDA4MiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9GaWxlU3lzdGVtLmgKQEAgLTEzOCw2ICsxMzgsMTIgQEAgZW51bSBGaWxlU2Vla09y
aWdpbiB7CiAgICAgU2Vla0Zyb21FbmQKIH07CiAKKyNpZiBPUyhXSU5ET1dTKQorc3RhdGljIGNv
bnN0IGNoYXIgUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvciA9ICdcXCc7CisjZWxzZQorc3RhdGlj
IGNvbnN0IGNoYXIgUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvciA9ICcvJzsKKyNlbmRpZgorCiBi
b29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJik7CiBib29sIGRlbGV0ZUZpbGUoY29uc3QgU3Ry
aW5nJik7CiBib29sIGRlbGV0ZUVtcHR5RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9Bc3luY0ZpbGVTeXN0ZW1QT1NJWC5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0FzeW5jRmlsZVN5c3RlbVBPU0lYLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kYzkwYWNjOGJjMzE1ZGIwZTAzZDQ2ZDhhMWNhMTFlMjg4MTNmNmY4Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9Bc3luY0ZpbGVTeXN0ZW1QT1NJWC5jcHAKQEAg
LTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0
ZW0uaCIKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1ZGUgIkFzeW5jRmlsZVN5
c3RlbUNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gQXN5bmNGaWxlU3lzdGVtOjpj
cmVhdGVQbGF0Zm9ybUFzeW5jRmlsZVN5c3RlbSgpCit7CisgICAgLy8gVXNlIHRoZSBkZWZhdWx0
IEZpbGVUaHJlYWQgaW1wbGVtZW50YXRpb24uCisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgQXN5
bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25z
dCBTdHJpbmcmIHN0b3JhZ2VJZGVudGlmaWVyLCBUeXBlIHR5cGUsIFBhc3NPd25QdHI8QXN5bmNG
aWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgU3RyaW5nIHR5cGVTdHJpbmcg
PSAodHlwZSA9PSBQZXJzaXN0ZW50KSA/ICJQZXJzaXN0ZW50IiA6ICJUZW1wb3JhcnkiOworCisg
ICAgU3RyaW5nIG5hbWUgPSBzdG9yYWdlSWRlbnRpZmllcjsKKyAgICBuYW1lICs9ICI6IjsKKyAg
ICBuYW1lICs9IHR5cGVTdHJpbmc7CisKKyAgICBTdHJpbmcgcm9vdFBhdGggPSBiYXNlUGF0aDsK
KyAgICByb290UGF0aC5hcHBlbmQoUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvcik7CisgICAgcm9v
dFBhdGggKz0gc3RvcmFnZUlkZW50aWZpZXI7CisgICAgcm9vdFBhdGguYXBwZW5kKFBsYXRmb3Jt
RmlsZVBhdGhTZXBhcmF0b3IpOworICAgIHJvb3RQYXRoICs9IHR5cGVTdHJpbmc7CisgICAgcm9v
dFBhdGguYXBwZW5kKFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IpOworCisgICAgY2FsbGJhY2tz
LT5kaWRPcGVuRmlsZVN5c3RlbShuYW1lLCByb290UGF0aCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0FzeW5jRmlsZVN5c3RlbVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9Bc3luY0ZpbGVTeXN0ZW1XaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3Mjc5NDY4OTlhZTQ3
ZTQwNGEwZjA0YTZhMDUzOGJkZWI0M2E2ODUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9Bc3luY0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtV2luLmgiCisKKyNpZiBFTkFC
TEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCIK
KyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc093
blB0cjxBc3luY0ZpbGVTeXN0ZW0+IEFzeW5jRmlsZVN5c3RlbTo6Y3JlYXRlUGxhdGZvcm1Bc3lu
Y0ZpbGVTeXN0ZW0oKQoreworICAgIC8vIFVzZSB0aGUgZGVmYXVsdCBGaWxlVGhyZWFkIGltcGxl
bWVudGF0aW9uLgorICAgIHJldHVybiAwOworfQorCit2b2lkIEFzeW5jRmlsZVN5c3RlbTo6b3Bl
bkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwgY29uc3QgU3RyaW5nJiBzdG9yYWdl
SWRlbnRpZmllciwgVHlwZSB0eXBlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
cz4gY2FsbGJhY2tzKQoreworICAgIFN0cmluZyB0eXBlU3RyaW5nID0gKHR5cGUgPT0gUGVyc2lz
dGVudCkgPyAiUGVyc2lzdGVudCIgOiAiVGVtcG9yYXJ5IjsKKworICAgIFN0cmluZyBuYW1lID0g
c3RvcmFnZUlkZW50aWZpZXI7CisgICAgbmFtZSArPSAiOiI7CisgICAgbmFtZSArPSB0eXBlU3Ry
aW5nOworCisgICAgU3RyaW5nIHJvb3RQYXRoID0gYmFzZVBhdGg7CisgICAgcm9vdFBhdGguYXBw
ZW5kKFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IpOworICAgIHJvb3RQYXRoICs9IHN0b3JhZ2VJ
ZGVudGlmaWVyOworICAgIHJvb3RQYXRoLmFwcGVuZChQbGF0Zm9ybUZpbGVQYXRoU2VwYXJhdG9y
KTsKKyAgICByb290UGF0aCArPSB0eXBlU3RyaW5nOworICAgIHJvb3RQYXRoLmFwcGVuZChQbGF0
Zm9ybUZpbGVQYXRoU2VwYXJhdG9yKTsKKworICAgIGNhbGxiYWNrcy0+ZGlkT3BlbkZpbGVTeXN0
ZW0obmFtZSwgcm9vdFBhdGgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoRklMRV9TWVNURU0pCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRE9N
RmlsZVN5c3RlbS5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5jcHAKaW5kZXgg
YzNkYmQzNDAxNGVhMjBlY2VmZDhhYWRkN2M2YmRjOWRiZDBlZTk2Mi4uNWQ2MDczYTNlOWVjMTIz
OTY0YTIyYjk2Njk0NmJiMzYwYTIzOWVlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0RP
TUZpbGVTeXN0ZW0uY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcApA
QCAtMzMsMTMgKzMzLDIwIEBACiAKICNpZiBFTkFCTEUoRklMRV9TWVNURU0pCiAKKyNpbmNsdWRl
ICJBc3luY0ZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJEaXJlY3RvcnlFbnRyeS5oIgorI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1E
T01GaWxlU3lzdGVtOjpET01GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiByb290UGF0aCkKLSAgICA6IG1fcm9vdFBhdGgocm9vdFBhdGgpCitET01GaWxlU3lzdGVt
OjpET01GaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSkK
KyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQogICAgICwgbV9uYW1lKG5hbWUp
CisgICAgLCBtX2FzeW5jRmlsZVN5c3RlbShhc3luY0ZpbGVTeXN0ZW0pCit7Cit9CisKK0RPTUZp
bGVTeXN0ZW06On5ET01GaWxlU3lzdGVtKCkKIHsKIH0KIApAQCAtNDgsNiArNTUsMjEgQEAgUGFz
c1JlZlB0cjxEaXJlY3RvcnlFbnRyeT4gRE9NRmlsZVN5c3RlbTo6cm9vdCgpCiAgICAgcmV0dXJu
IERpcmVjdG9yeUVudHJ5OjpjcmVhdGUodGhpcywgIi8iKTsKIH0KIAordm9pZCBET01GaWxlU3lz
dGVtOjpzdG9wKCkKK3sKKyAgICBtX2FzeW5jRmlsZVN5c3RlbS0+c3RvcCgpOworfQorCitib29s
IERPTUZpbGVTeXN0ZW06Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fYXN5bmNGaWxlU3lzdGVtLT5oYXNQZW5kaW5nQWN0aXZpdHkoKTsKK30KKwordm9pZCBET01G
aWxlU3lzdGVtOjpjb250ZXh0RGVzdHJveWVkKCkKK3sKKyAgICBtX2FzeW5jRmlsZVN5c3RlbS0+
c3RvcCgpOworfQorCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lT
VEVNKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaCBiL1dlYkNv
cmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmgKaW5kZXggYjg3YWFhZjMyY2Q5ZWFjMGYyMmM0OWVl
MTc2NzJkZDVhMmU3NzY3My4uMWUyNTI4OTllNzNlZTEwMjVlMmQwZmNlNmEyOTk4ODkwZDU3MjZl
NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaAorKysgYi9XZWJD
b3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5oCkBAIC0zMyw2ICszMyw5IEBACiAKICNpZiBFTkFC
TEUoRklMRV9TWVNURU0pCiAKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRl
ICJBc3luY0ZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJGbGFncy5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgpAQCAtNDAsMjIgKzQzLDMzIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIERpcmVjdG9yeUVudHJ5OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAot
Y2xhc3MgRE9NRmlsZVN5c3RlbSA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUZpbGVTeXN0ZW0+IHsK
K2NsYXNzIERPTUZpbGVTeXN0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxET01GaWxlU3lzdGVtPiwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
RE9NRmlsZVN5c3RlbT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBy
b290UGF0aCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtPiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzT3du
UHRyPEFzeW5jRmlsZVN5c3RlbT4gYXN5bmNGaWxlU3lzdGVtKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBET01GaWxlU3lzdGVtKG5hbWUsIHJvb3RQYXRoKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgRE9NRmlsZVN5c3RlbShjb250ZXh0LCBuYW1lLCBhc3luY0Zp
bGVTeXN0ZW0pKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIH5ET01GaWxlU3lzdGVtKCk7CisKICAg
ICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICBQYXNz
UmVmUHRyPERpcmVjdG9yeUVudHJ5PiByb290KCk7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3Qg
bWV0aG9kcy4KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpOworICAgIHZpcnR1YWwgYm9vbCBoYXNQ
ZW5kaW5nQWN0aXZpdHkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3ll
ZCgpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIgZmlsZVBhdGhTZXBhcmF0b3I7CisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIHJvb3RQYXRoOworCiBwcml2YXRlOgotICAgIERPTUZpbGVTeXN0ZW0o
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoKTsKKyAgICBET01GaWxl
U3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NP
d25QdHI8QXN5bmNGaWxlU3lzdGVtPik7CiAKLSAgICBTdHJpbmcgbV9yb290UGF0aDsKICAgICBT
dHJpbmcgbV9uYW1lOworICAgIG11dGFibGUgT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gbV9hc3lu
Y0ZpbGVTeXN0ZW07CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0
ZW1DYWxsYmFja3MuY3BwCmluZGV4IGVjMzUyZGQ3ZDZlOTJjN2M4N2EzODA0YjNjZDM4Y2MzZGRh
MWU4MTguLjBmODI1OGMzYTA0M2UyYjdiMjQ3YWIzYmRhYWE0ZTBjZDVjNDQ1ZDggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcAorKysgYi9XZWJDb3Jl
L3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBG
aWxlU3lzdGVtQ2FsbGJhY2tzQmFzZTo6ZGlkUmVhZERpcmVjdG9yeUVudHJ5KGNvbnN0IFN0cmlu
ZyYsIGJvb2wpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgRmlsZVN5c3Rl
bUNhbGxiYWNrc0Jhc2U6OmRpZEZhaWwoRXhjZXB0aW9uQ29kZSBjb2RlKQordm9pZCBGaWxlU3lz
dGVtQ2FsbGJhY2tzQmFzZTo6ZGlkRmFpbChpbnQgY29kZSkKIHsKICAgICBpZiAobV9lcnJvckNh
bGxiYWNrKSB7CiAgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRmlsZUVycm9y
OjpjcmVhdGUoY29kZSkuZ2V0KCkpOwpAQCAtMTUyLDE2ICsxNTIsMjEgQEAgdm9pZCBFbnRyaWVz
Q2FsbGJhY2tzOjpkaWRSZWFkRGlyZWN0b3J5Q2h1bmtEb25lKGJvb2wgaGFzTW9yZSkKIAogLy8g
RmlsZVN5c3RlbUNhbGxiYWNrcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCi1GaWxlU3lzdGVtQ2FsbGJhY2tzOjpGaWxlU3lzdGVtQ2Fs
bGJhY2tzKFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBh
c3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK0ZpbGVTeXN0ZW1DYWxsYmFj
a3M6OkZpbGVTeXN0ZW1DYWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+IHN1
Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3Rl
bT4gYXN5bmNGaWxlU3lzdGVtKQogICAgIDogRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UoZXJyb3JD
YWxsYmFjaykKICAgICAsIG1fc3VjY2Vzc0NhbGxiYWNrKHN1Y2Nlc3NDYWxsYmFjaykKKyAgICAs
IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KQorICAgICwgbV9hc3luY0ZpbGVTeXN0
ZW0oYXN5bmNGaWxlU3lzdGVtKQogewogfQogCiB2b2lkIEZpbGVTeXN0ZW1DYWxsYmFja3M6OmRp
ZE9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiByb290UGF0
aCkKIHsKLSAgICBpZiAobV9zdWNjZXNzQ2FsbGJhY2spCi0gICAgICAgIG1fc3VjY2Vzc0NhbGxi
YWNrLT5oYW5kbGVFdmVudChET01GaWxlU3lzdGVtOjpjcmVhdGUobmFtZSwgcm9vdFBhdGgpLmdl
dCgpKTsKKyAgICBpZiAobV9zdWNjZXNzQ2FsbGJhY2spIHsKKyAgICAgICAgQVNTRVJUKG1fYXN5
bmNGaWxlU3lzdGVtKTsKKyAgICAgICAgbV9hc3luY0ZpbGVTeXN0ZW0tPnNldFBsYXRmb3JtUm9v
dFBhdGgocm9vdFBhdGgpOworICAgICAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQo
RE9NRmlsZVN5c3RlbTo6Y3JlYXRlKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgbmFtZSwgbV9h
c3luY0ZpbGVTeXN0ZW0ucmVsZWFzZSgpKS5nZXQoKSk7CisgICAgfQogICAgIG1fc3VjY2Vzc0Nh
bGxiYWNrLmNsZWFyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lz
dGVtQ2FsbGJhY2tzLmggYi9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oCmlu
ZGV4IGUwZTc4ZDM3MGMyMWUzMzdiMjQ4ZDM4YWM4OTZkMWE3ZTBlY2IxMzAuLjNjYTNmNTVmODgz
MjdhMTQzZWRiNDIzNzQ0YjIxMDFkMzc3MGZjMGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFn
ZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1D
YWxsYmFja3MuaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQog
CisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KQEAgLTQ5LDEwICs1MCw3IEBAIGNsYXNzIE1ldGFkYXRhQ2FsbGJhY2s7CiBjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgVm9pZENhbGxiYWNrOwogCi10eXBlZGVm
IGludCBFeGNlcHRpb25Db2RlOwotCi0vLyBBIGJhc2UgY2xhc3MgZm9yIEZpbGVTeXN0ZW0gY2Fs
bGJhY2tzIHRoYXQgYnVuZGxlcyBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2sgYW5kIHNv
bWUgY2xvc3VyZSBkYXRhIGZvciB0aGUgY2FsbGJhY2tzLgotY2xhc3MgRmlsZVN5c3RlbUNhbGxi
YWNrc0Jhc2UgOiBwdWJsaWMgTm9uY29weWFibGUgeworY2xhc3MgRmlsZVN5c3RlbUNhbGxiYWNr
c0Jhc2UgOiBwdWJsaWMgQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzIHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5GaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZSgpOwogCkBAIC03MCw3ICs2OCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVhZERpcmVjdG9yeUNodW5rRG9uZShib29sIGhh
c01vcmUpOwogCiAgICAgLy8gRm9yIEVycm9yQ2FsbGJhY2suCi0gICAgdmlydHVhbCB2b2lkIGRp
ZEZhaWwoRXhjZXB0aW9uQ29kZSBjb2RlKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChpbnQg
Y29kZSk7CiAKIHByb3RlY3RlZDoKICAgICBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZShQYXNzUmVm
UHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spOwpAQCAtMTA2LDExICsxMDQsMTMgQEAg
cHJpdmF0ZToKIAogY2xhc3MgRmlsZVN5c3RlbUNhbGxiYWNrcyA6IHB1YmxpYyBGaWxlU3lzdGVt
Q2FsbGJhY2tzQmFzZSB7CiBwdWJsaWM6Ci0gICAgRmlsZVN5c3RlbUNhbGxiYWNrcyhQYXNzUmVm
UHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pOworICAg
IEZpbGVTeXN0ZW1DYWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+LCBQYXNz
UmVmUHRyPEVycm9yQ2FsbGJhY2s+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW0+KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkT3BlbkZpbGVTeXN0ZW0o
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoKTsKIAogcHJpdmF0ZToK
ICAgICBSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBtX3N1Y2Nlc3NDYWxsYmFjazsKKyAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisgICAgT3du
UHRyPEFzeW5jRmlsZVN5c3RlbT4gbV9hc3luY0ZpbGVTeXN0ZW07CiB9OwogCiBjbGFzcyBNZXRh
ZGF0YUNhbGxiYWNrcyA6IHB1YmxpYyBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZSB7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3N0b3JhZ2UvRmxhZ3MuaCBiL1dlYkNvcmUvc3RvcmFnZS9GbGFncy5oCmlu
ZGV4IGZmZTM0MDM4YTA0YzQwY2U5ZTNhODc1ODMwYjFiYjgwNWNmNjZlYmIuLjMwODg0ZmNjNDNm
ZGYyYTNhMDY0NWY5ZDU5YWQ5YThlYjdlZDYwNGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFn
ZS9GbGFncy5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9GbGFncy5oCkBAIC0zMyw2ICszMyw3IEBA
CiAKICNpZiBFTkFCTEUoRklMRV9TWVNURU0pCiAKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbEZpbGVTeXN0ZW0uY3BwIGIvV2ViQ29yZS9z
dG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQzZDM2NjIzMTJkOTRiMjcw
NDY5NWM0YWQxYjRiMDE3NDBjODkxZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFn
ZS9Mb2NhbEZpbGVTeXN0ZW0uY3BwCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTG9jYWxGaWxlU3lzdGVtLmgiCisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkK
KyNlcnJvciAiQ2hyb21pdW0gc2hvdWxkIG5vdCBjb21waWxlIHRoaXMgZmlsZSBhbmQgaW5zdGVh
ZCBkZWZpbmUgaXRzIG93biB2ZXJzaW9uIG9mIHRoZXNlIGZhY3Rvcmllcy4iCisjZW5kaWYKKwor
I2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1
ZGUgIkVycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVk
ZSAiRmlsZUVycm9yLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrLmgiCisjaW5jbHVk
ZSAiRmlsZVN5c3RlbUNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxMb2NhbEZpbGVTeXN0
ZW0+IExvY2FsRmlsZVN5c3RlbTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBMb2NhbEZpbGVTeXN0ZW0oYmFzZVBhdGgpKTsKK30KKwor
dm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBsb25nIGxvbmcsIFBh
c3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8
RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3sKKyAgICBpZiAodHlwZSAhPSBBc3luY0Zp
bGVTeXN0ZW06OlRlbXBvcmFyeSAmJiB0eXBlICE9IEFzeW5jRmlsZVN5c3RlbTo6UGVyc2lzdGVu
dCkgeworICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChGaWxlRXJyb3I6OmNyZWF0
ZShJTlZBTElEX01PRElGSUNBVElPTl9FUlIpLmdldCgpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIE93blB0cjxBc3luY0ZpbGVTeXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSA9IEFzeW5j
RmlsZVN5c3RlbTo6Y3JlYXRlUGxhdGZvcm1Bc3luY0ZpbGVTeXN0ZW0oKTsKKyAgICBpZiAoIWFz
eW5jRmlsZVN5c3RlbSkgeworICAgICAgICAvLyBGSVhNRTogQ3JlYXRlIHRoZSB0aHJlYWQgdmVy
c2lvbiBvZiBBc3luY0ZpbGVTeXN0ZW0gKHRoYXQgaGFzbid0IGJlZW4gYWRkZWQpIGlmIG5vIHBs
YXRmb3JtLXNwZWNpZmljIEFzeW5jRmlsZVN5c3RlbSBpbXBsZW1lbnRhdGlvbiBpcyBwcm92aWRl
ZC4KKyAgICAgICAgLy8gKFRoZSB0aHJlYWQgdmVyc2lvbiByZXF1aXJlcyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0IGFuZCB0aGF0J3Mgd2h5IEFzeW5jRmlsZVN5c3RlbSBpcyBjcmVhdGVkIGhlcmUg
cmF0aGVyIHRoYW4gaW4gdGhlIGNhbGxiYWNrIHBhdGguKQorICAgICAgICBlcnJvckNhbGxiYWNr
LT5oYW5kbGVFdmVudChGaWxlRXJyb3I6OmNyZWF0ZShOT1RfU1VQUE9SVEVEX0VSUikuZ2V0KCkp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmls
ZVN5c3RlbShtX2Jhc2VQYXRoLCBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLT5kYXRhYmFzZUlk
ZW50aWZpZXIoKSwgdHlwZSwgbmV3IEZpbGVTeXN0ZW1DYWxsYmFja3Moc3VjY2Vzc0NhbGxiYWNr
LCBlcnJvckNhbGxiYWNrLCBjb250ZXh0LCBhc3luY0ZpbGVTeXN0ZW0ucmVsZWFzZSgpKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0pCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmggYi9XZWJDb3JlL3N0b3Jh
Z2UvTG9jYWxGaWxlU3lzdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhiYzJmZGJmZGFkZWRiNzg1YWUwNTZm
NjBhMmIyZjcwODRlNWIwNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9Mb2Nh
bEZpbGVTeXN0ZW0uaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBMb2NhbEZpbGVTeXN0ZW1faAor
I2RlZmluZSBMb2NhbEZpbGVTeXN0ZW1faAorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisj
aW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRXJyb3JDYWxsYmFjazsKK2NsYXNzIEZp
bGVTeXN0ZW1DYWxsYmFjazsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNz
IExvY2FsRmlsZVN5c3RlbSA6IHB1YmxpYyBSZWZDb3VudGVkPExvY2FsRmlsZVN5c3RlbT4gewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPExvY2FsRmlsZVN5c3RlbT4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgYmFzZVBhdGgpOworICAgIHZpcnR1YWwgfkxvY2FsRmlsZVN5c3RlbSgpIHsg
fQorCisgICAgdm9pZCByZXF1ZXN0RmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
QXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIGxvbmcgbG9uZyBzaXplLCBQYXNzUmVmUHRyPEZp
bGVTeXN0ZW1DYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pOworCitwcm90ZWN0
ZWQ6CisgICAgTG9jYWxGaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgpCisgICAgICAg
IDogbV9iYXNlUGF0aChiYXNlUGF0aCkKKyAgICB7CisgICAgfQorCisgICAgU3RyaW5nIG1fYmFz
ZVBhdGg7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lT
VEVNKQorCisjZW5kaWYgLy8gTG9jYWxGaWxlU3lzdGVtX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65183</attachid>
            <date>2010-08-23 16:48:59 -0700</date>
            <delta_ts>2010-08-25 11:59:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44433-20100823164858.patch</filename>
            <type>text/plain</type>
            <size>44386</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDMzYmFmMTMyZjcyMTgyY2ExZmI4MDI5ZGVhZTRiOTVlNGZmMWM3NWIuLjBmMmMx
NmNlNmFjMDIwY2I5Y2YxZWNjYjdiOTNkYTNkNDI4NDI0MjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIxMSw2ICsx
MjExLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1l
QW5pbWF0aW9uLmNwcAogCiAgICAgcGxhdGZvcm0vQXJlbmEuY3BwCisgICAgcGxhdGZvcm0vQXN5
bmNGaWxlU3lzdGVtLmNwcAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmNwcAogICAgIHBsYXRmb3Jt
L0NvbnRlbnRUeXBlLmNwcAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmNwcApAQCAtMTQ4Miw2
ICsxNDgzLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHN0b3JhZ2UvSURCRmFjdG9yeS5j
cHAKICAgICBzdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcAogICAgIHN0b3Jh
Z2UvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcAorICAgIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVt
LmNwcAogICAgIHN0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5jcHAKICAgICBzdG9yYWdlL0xvY2Fs
U3RvcmFnZVRocmVhZC5jcHAKICAgICBzdG9yYWdlL09yaWdpblF1b3RhTWFuYWdlci5jcHAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJi
MjNmM2I0YWM3NDdkYTllMjE1YTdhYTIzYWZlM2VmOWFhNTkyZi4uYmJkODJkOTExYTg4ZWFmNGE1
OTk5NDhkM2VlNGRjZTQzYmExOGMwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMC0wOC0yMyAgS2ludWtv
IFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFzeW5jRmlsZVN5c3RlbSBpbnRlcmZhY2UgZm9y
IHBsYXRmb3JtLWRlcGVuZGVudCBGaWxlU3lzdGVtIEFQSSBpbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ0MzMKKworICAgICAg
ICBObyBuZXcgdGVzdHM7IHRlc3RzIHdpbGwgYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L0FzeW5jRmlsZVN5c3RlbS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmls
ZVN5c3RlbS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3MuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcG9zaXgvQXN5bmNGaWxlU3lzdGVt
UE9TSVguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQXN5bmNGaWxlU3lzdGVt
V2luLmNwcDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06OkRPTUZpbGVTeXN0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6fkRPTUZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NRmlsZVN5c3RlbTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVt
OjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6
Y29udGV4dERlc3Ryb3llZCk6CisgICAgICAgICogc3RvcmFnZS9ET01GaWxlU3lzdGVtLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpjcmVhdGUpOgorICAgICAgICAqIHN0b3Jh
Z2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
Q2FsbGJhY2tzQmFzZTo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtQ2Fs
bGJhY2tzOjpGaWxlU3lzdGVtQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1DYWxsYmFja3M6OmRpZE9wZW5GaWxlU3lzdGVtKToKKyAgICAgICAgKiBzdG9yYWdlL0ZpbGVT
eXN0ZW1DYWxsYmFja3MuaDoKKyAgICAgICAgKiBzdG9yYWdlL0ZsYWdzLmg6CisgICAgICAgICog
c3RvcmFnZS9Mb2NhbEZpbGVTeXN0ZW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL0xv
Y2FsRmlsZVN5c3RlbS5oOiBBZGRlZC4KKwogMjAxMC0wOC0yMyAgRXJpYyBTZWlkZWwgIDxlcmlj
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMzFi
ZDE2NDRmZTlmN2M2OGMyY2VkYjEyOTA1MTY5YThlZGQzNjM1OS4uZmU2NGEyMmE4Y2JjZWIzMDEy
MGY0YmE0YjRmNzY3Y2Y0M2E4ODU5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMwNDAsNiArMzA0MCw5IEBACiAgICAgICAg
ICAgICAncGxhdGZvcm0vQXJlbmEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9BcmVuYS5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0uaCcsCisgICAgICAgICAg
ICAncGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0v
QXN5bmNGaWxlU3lzdGVtLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL0FzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrcy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9BdXRvZHJhaW5lZFBvb2wuaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vQmxvYkl0ZW0uY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9CbG9iSXRlbS5oJywKQEAgLTM2MzAsNiArMzYzMyw3IEBACiAgICAgICAgICAgICAnc3Rv
cmFnZS9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0lE
QlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQlRy
YW5zYWN0aW9uQ29vcmRpbmF0b3IuaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9Mb2NhbEZpbGVT
eXN0ZW0uaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUYXNrLmNwcCcsCiAg
ICAgICAgICAgICAnc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUYXNrLmgnLAogICAgICAgICAgICAgJ3N0
b3JhZ2UvTG9jYWxTdG9yYWdlVGhyZWFkLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAzYWE3NTBmNTdhNGFhOTEzMzYwM2I5
NTRjODY3MTUyYzgyNDhjMWJiLi40NTFjMWRiNzM5MjRhOTM3ZDBkYzZkZTlkNmMwMTk1N2RhZThk
N2YwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KQEAgLTg3NCw2ICs4NzQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9hbmlt
YXRpb24vQW5pbWF0aW9uLmNwcCBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxp
c3QuY3BwIFwKICAgICBwbGF0Zm9ybS9BcmVuYS5jcHAgXAorICAgIHBsYXRmb3JtL0FzeW5jRmls
ZVN5c3RlbS5jcHAgXAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmNwcCBcCiAgICAgcGxhdGZvcm0v
dGV4dC9CYXNlNjQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcCBcCkBA
IC0xNjYwLDYgKzE2NjEsOCBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9hbmltYXRpb24v
QW5pbWF0aW9uTGlzdC5oIFwKICAgICBwbGF0Zm9ybS9BcmVuYS5oIFwKICAgICBwbGF0Zm9ybS9B
c3luY0ZpbGVTdHJlYW0uaCBcCisgICAgcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmggXAorICAg
IHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIFwKICAgICBwbGF0Zm9ybS9CbG9i
SXRlbS5oIFwKICAgICBwbGF0Zm9ybS9Db250ZW50VHlwZS5oIFwKICAgICBwbGF0Zm9ybS9Db250
ZXh0TWVudS5oIFwKQEAgLTI1OTYsNiArMjU5OSw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJM
RV9GSUxFX1NZU1RFTT0xKSB7CiAgICAgICAgIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrLmgg
XAogICAgICAgICBzdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBcCiAgICAgICAgIHN0b3Jh
Z2UvRmxhZ3MuaCBcCisgICAgICAgIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmggXAogICAgICAg
ICBzdG9yYWdlL01ldGFkYXRhLmggXAogICAgICAgICBzdG9yYWdlL01ldGFkYXRhQ2FsbGJhY2su
aAogCkBAIC0yNjA2LDcgKzI2MTAsOCBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfRklMRV9T
WVNURU09MSkgewogICAgICAgICBzdG9yYWdlL0VudHJ5LmNwcCBcCiAgICAgICAgIHN0b3JhZ2Uv
RW50cnlBcnJheS5jcHAgXAogICAgICAgICBzdG9yYWdlL0ZpbGVFbnRyeS5jcHAgXAotICAgICAg
ICBzdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwCisgICAgICAgIHN0b3JhZ2UvRmlsZVN5
c3RlbUNhbGxiYWNrcy5jcHAgXAorICAgICAgICBzdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5jcHAK
IH0KIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lDT05EQVRBQkFTRT0xKSB7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1YWUzOTI3ZTVmNzg2ZDMyZWNkZDNiYTBk
MGRmM2IyYTI3NGY4YTE4Li40ZWQ2OTliOGJlMjRhZGI3ZTdiN2UwZDZjM2EwZTgxNTM5MDQxMzgw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIzOTgxLDYgKzIzOTgx
LDE4IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBsYXRmb3JtXEFzeW5jRmlsZVN5c3RlbS5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQor
CQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxBc3luY0ZpbGVTeXN0ZW0u
aCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHBsYXRmb3JtXEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIg0KKwkJCQk+DQorCQkJPC9GaWxl
Pg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cQXV0b2RyYWluZWRQ
b29sLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpAQCAtMjQzODgsNiArMjQ0MDAsMTAgQEAKIAkJ
CQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXHdpblxBc3luY0ZpbGVTeXN0ZW1XaW4uY3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+
DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHdpblxCaXRtYXBJ
bmZvLmNwcCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KQEAgLTUxNDIxLDYgKzUxNDM3LDE0IEBA
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0
b3JhZ2VcTG9jYWxGaWxlU3lzdGVtLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8Rmls
ZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcTG9jYWxGaWxlU3lzdGVtLmgiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdl
XExvY2FsU3RvcmFnZVRocmVhZC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMjUzMmE5ZDlhNDc0ZGFiNzMx
YzgzNDY2YzFjMDIyMmY3YTdjYjM0Li4xNWZhMmIzY2RjNGE1NTUzMWZmNGZiNmU1MDQ0OWY4ZmIy
MjMzOTEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjM4Nyw2ICsyMzg3LDkgQEAKIAkJODk1MjUzREMxMTZDNEVGNTAwQ0FCRjAwIC8qIEZpbGVTdHJl
YW1Qcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4OTUyNTNEQTExNkM0RUY1MDBDQUJGMDAgLyogRmlsZVN0cmVhbVByb3h5LmNwcCAqLzsgfTsK
IAkJODk1MjUzREQxMTZDNEVGNTAwQ0FCRjAwIC8qIEZpbGVTdHJlYW1Qcm94eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk1MjUzREIxMTZDNEVGNTAw
Q0FCRjAwIC8qIEZpbGVTdHJlYW1Qcm94eS5oICovOyB9OwogCQk4OTUyNTNERjExNkM0RjA2MDBD
QUJGMDAgLyogRmlsZVRocmVhZFRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg5NTI1M0RFMTE2QzRGMDYwMENBQkYwMCAvKiBGaWxlVGhyZWFkVGFz
ay5oICovOyB9OworCQk4OTg3ODNDNDEyMjMxMDYyMDAzQUFCREEgLyogQXN5bmNGaWxlU3lzdGVt
UE9TSVguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODk4NzgzQzMxMjIzMTA2MjAwM0FBQkRBIC8qIEFzeW5jRmlsZVN5c3RlbVBPU0lYLmNwcCAqLzsg
fTsKKwkJODk4NzgzRDMxMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTg3ODNEMTEyMjMy
QTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmNwcCAqLzsgfTsKKwkJODk4NzgzRDQxMjIz
MkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk4NzgzRDIxMjIzMkExMzAwM0FBQkRBIC8qIExvY2Fs
RmlsZVN5c3RlbS5oICovOyB9OwogCQk4OTg4RTEwRTExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0
ZW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk4
OEUxMEMxMUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJdGVtLmNwcCAqLzsgfTsKIAkJODk4OEUxMEYx
MUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4OTg4RTEwRDExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4OTlB
QkMyNjEyMTVFNEEzMDBGOUYyMTkgLyogRGlyZWN0b3J5RW50cnkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk5QUJDMjAxMjE1RTRBMzAwRjlGMjE5
IC8qIERpcmVjdG9yeUVudHJ5LmNwcCAqLzsgfTsKQEAgLTI0MzYsNiArMjQzOSw5IEBACiAJCTg5
QzBERDdCMTIxRjBDNjkwMDlFMTdDQSAvKiBGaWxlU3lzdGVtQ2FsbGJhY2tzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUMwREQ3OTEyMUYwQzY5MDA5
RTE3Q0EgLyogRmlsZVN5c3RlbUNhbGxiYWNrcy5oICovOyB9OwogCQk4OUNEMDI5MzExQzg1Qjg3
MDA3MEI3OTEgLyogSlNCbG9iQnVpbGRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4OUNEMDI5MTExQzg1Qjg3MDA3MEI3OTEgLyogSlNCbG9iQnVp
bGRlci5jcHAgKi87IH07CiAJCTg5Q0QwMjk0MTFDODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JCdWls
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUNE
MDI5MjExQzg1Qjg3MDA3MEI3OTEgLyogSlNCbG9iQnVpbGRlci5oICovOyB9OworCQk4OUQwOEQ5
RjEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5RDA4RDlDMTIyMjg0NTEwMDEyNDFERiAv
KiBBc3luY0ZpbGVTeXN0ZW0uY3BwICovOyB9OworCQk4OUQwOERBMDEyMjI4NDUxMDAxMjQxREYg
LyogQXN5bmNGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4OUQwOEQ5RDEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmgg
Ki87IH07CisJCTg5RDA4REExMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5
RDA4RDlFMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLzsg
fTsKIAkJOEExMkUzNUQxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEExMkUzNUMxMUZB
MzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAv
KiBBc3luY1NjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEE0
MTNBRTExMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURGMTIwN0JCQTUwMDgy
MDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgKi87IH07CkBAIC04Mjc3LDYgKzgyODMsOSBA
QAogCQk4OTdBMkQ4RTEyMDAwMzVGMDA4Mjc0MEMgLyogSlNET01GaWxlU3lzdGVtLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4OTdBMkQ5MTEyMDAwMzc2MDA4Mjc0MEMgLyogSlNGbGFncy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZsYWdzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODk3QTJEOTIxMjAwMDM3NjAwODI3NDBDIC8qIEpT
RmxhZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNGbGFncy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTg3ODNDMzEyMjMxMDYyMDAzQUFCREEgLyogQXN5
bmNGaWxlU3lzdGVtUE9TSVguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQXN5bmNGaWxlU3lzdGVtUE9TSVguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4OTg3ODNEMTEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2FsRmlsZVN5c3RlbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5ODc4M0QyMTIyMzJBMTMwMDNBQUJEQSAvKiBMb2Nh
bEZpbGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxGaWxl
U3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5ODhFMTBDMTFBMzUwOEIw
MERCNzMyRSAvKiBCbG9iSXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBCbG9iSXRlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5ODhFMTBE
MTFBMzUwOEIwMERCNzMyRSAvKiBCbG9iSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCbG9iSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTlBQkMy
MDEyMTVFNEEzMDBGOUYyMTkgLyogRGlyZWN0b3J5RW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRGlyZWN0b3J5RW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtODMxMiw2ICs4MzIxLDkgQEAKIAkJODlDRDAyNzkxMUM4NTlBODAwNzBC
NzkxIC8qIEJsb2JCdWlsZGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBCbG9iQnVpbGRl
ci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5Q0QwMjkxMTFDODVCODcwMDcw
Qjc5MSAvKiBKU0Jsb2JCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTQmxvYkJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
OUNEMDI5MjExQzg1Qjg3MDA3MEI3OTEgLyogSlNCbG9iQnVpbGRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0Jsb2JCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTg5RDA4RDlDMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXN5bmNGaWxlU3lzdGVtLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODlEMDhEOUQxMjIyODQ1MTAwMTI0MURG
IC8qIEFzeW5jRmlsZVN5c3RlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
c3luY0ZpbGVTeXN0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODlEMDhEOUUx
MjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERvY3Vt
ZW50TG9hZFRpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVu
dExvYWRUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE0MTNBREUxMjA3
QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFzeW5jU2NyaXB0UnVubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBc3luY1NjcmlwdFJ1bm5lci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTY3OCw2ICsxMTY5MCw4IEBACiAJ
CQkJQjY1NjYyNjgxMjBCMTE1QTAwNkVBODVDIC8qIElEQlRyYW5zYWN0aW9uLmggKi8sCiAJCQkJ
QjY1NjYyNjkxMjBCMTE1QTAwNkVBODVDIC8qIElEQlRyYW5zYWN0aW9uLmlkbCAqLywKIAkJCQlC
NjU2NjI2RDEyMEIxMTZCMDA2RUE4NUMgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
LmggKi8sCisJCQkJODk4NzgzRDExMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5j
cHAgKi8sCisJCQkJODk4NzgzRDIxMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5o
ICovLAogCQkJCTUxMUYyMzEzMERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmNw
cCAqLywKIAkJCQk1MTFGMjMxNDBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5o
ICovLAogCQkJCTUxMUYyMzE1MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQu
Y3BwICovLApAQCAtMTIyNzAsNiArMTIyODQsNyBAQAogCQk1MTYwMzAwOTBDQzQyNDU0MDBDOEFD
MjUgLyogcG9zaXggKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCTg5ODc4M0MzMTIyMzEwNjIwMDNBQUJEQSAvKiBBc3luY0ZpbGVTeXN0ZW1QT1NJWC5jcHAg
Ki8sCiAJCQkJNTE2MDMwMEEwQ0M0MjUxMjAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1QT1NJWC5jcHAg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IHBvc2l4OwpAQCAtMTY1OTksNiArMTY2MTQsOSBAQAogCQkJ
CUJDRkIyRjc0MDk3QTJFMUEwMEJBNzAzRCAvKiBBcmVuYS5jcHAgKi8sCiAJCQkJQkNGQjJGNzUw
OTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmggKi8sCiAJCQkJMkVGMUJGRjYxMjFDQjBCRDAwQzI3
NjI3IC8qIEFzeW5jRmlsZVN0cmVhbS5oICovLAorCQkJCTg5RDA4RDlDMTIyMjg0NTEwMDEyNDFE
RiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwICovLAorCQkJCTg5RDA4RDlEMTIyMjg0NTEwMDEyNDFE
RiAvKiBBc3luY0ZpbGVTeXN0ZW0uaCAqLywKKwkJCQk4OUQwOEQ5RTEyMjI4NDUxMDAxMjQxREYg
LyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi8sCiAJCQkJNTFFMUVDQjEwQzkxQzU1NjAw
REMyNTVCIC8qIEF1dG9kcmFpbmVkUG9vbC5oICovLAogCQkJCTg5ODhFMTBDMTFBMzUwOEIwMERC
NzMyRSAvKiBCbG9iSXRlbS5jcHAgKi8sCiAJCQkJODk4OEUxMEQxMUEzNTA4QjAwREI3MzJFIC8q
IEJsb2JJdGVtLmggKi8sCkBAIC0yMDM2MSw2ICsyMDM3OSw5IEBACiAJCQkJQ0UwNTdGQTYxMjIw
NzMxMTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOUYwRDZCMkYxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJFQjRCQ0QzMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVz
b3VyY2VIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTg5RDA4REEwMTIyMjg0NTEwMDEyNDFE
RiAvKiBBc3luY0ZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTg5RDA4REExMTIyMjg0
NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBpbiBIZWFkZXJzICovLAor
CQkJCTg5ODc4M0Q0MTIyMzJBMTMwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMjI4MTYsNiArMjI4MzcsOSBAQAogCQkJCUNFMDU3RkE1MTIyMDczMTEwMEE0
NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OUYwRDZCMkUxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkVCNEJDRDIxMjFGMDNFMzAwRUM0ODg1IC8qIEJsb2JSZXNvdXJj
ZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4OUQwOEQ5RjEyMjI4NDUxMDAxMjQxREYg
LyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg5ODc4M0M0MTIyMzEw
NjIwMDNBQUJEQSAvKiBBc3luY0ZpbGVTeXN0ZW1QT1NJWC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk4OTg3ODNEMzEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjYjk0
NjZhNzRlZTE1MzdiMWQxOWFlOWY2NGE0Y2RlOTY0ODBlODgKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0uaCIKKworI2lmIEVOQUJM
RShGSUxFX1NZU1RFTSkKKworI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIgor
I2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBQcm92
aWRlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCitTdHJpbmcgQXN5bmNGaWxlU3lzdGVtOjp2aXJ0
dWFsVG9QbGF0Zm9ybVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKSBjb25zdAoreworICAgIEFTU0VS
VCghbV9wbGF0Zm9ybVJvb3RQYXRoLmlzRW1wdHkoKSk7CisgICAgU3RyaW5nIHZpcnR1YWxQYXRo
ID0gcGF0aDsKKyAgICByZXR1cm4gbV9wbGF0Zm9ybVJvb3RQYXRoICsgdmlydHVhbFBhdGgucmVw
bGFjZSgnLycsIFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IpOworfQorCit2b2lkIEFzeW5jRmls
ZVN5c3RlbTo6c2V0UGxhdGZvcm1Sb290UGF0aChjb25zdCBTdHJpbmcmIHBsYXRmb3JtUm9vdFBh
dGgpCit7CisgICAgbV9wbGF0Zm9ybVJvb3RQYXRoID0gcGxhdGZvcm1Sb290UGF0aDsKK30KKwor
fSAvLyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmggYi9XZWJDb3JlL3BsYXRmb3Jt
L0FzeW5jRmlsZVN5c3RlbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhOTczY2QwMjg2N2RmZjk0MGE0Zjc2OWY0
YWIyMWIxNmVlY2QzOWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0FzeW5j
RmlsZVN5c3RlbS5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFzeW5jRmlsZVN5c3RlbV9oCisj
ZGVmaW5lIEFzeW5jRmlsZVN5c3RlbV9oCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXN5bmNGaWxlU3lzdGVtOworY2xhc3MgQXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOworCisvLyBUaGlzIGNsYXNzIHByb3ZpZGVzIGFzeW5jIGlu
dGVyZmFjZSBmb3IgcGxhdGZvcm0tc3BlY2lmaWMgRE9NRmlsZVN5c3RlbSBpbXBsZW1lbnRhdGlv
bi4gTm90ZSB0aGF0IGFsbCB0aGUgbWV0aG9kcyB0YWtlIGNhbm9uaWNhbGl6ZWQgdmlydHVhbCBw
YXRocy4KK2NsYXNzIEFzeW5jRmlsZVN5c3RlbSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJs
aWM6CisgICAgdmlydHVhbCB+QXN5bmNGaWxlU3lzdGVtKCkgeyB9CisKKyAgICAvLyBGaWxlU3lz
dGVtIHR5cGUKKyAgICBlbnVtIFR5cGUgeworICAgICAgICBUZW1wb3JhcnksCisgICAgICAgIFBl
cnNpc3RlbnQsCisgICAgfTsKKworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgeyB9CisgICAgdmly
dHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICAv
LyBDcmVhdGVzIGEgcGxhdGZvcm0tc3BlY2lmaWMgQXN5bmNGaWxlU3lzdGVtIGludGVyZmFjZS4K
KyAgICAvLyBJdCBpcyBPSyB0byByZXR1cm4gbnVsbCBoZXJlOyBpbiB0aGF0IGNhc2UgdGhlIGRl
ZmF1bHQgaW1wbGVtZW50YXRpb24gdGhhdCB1c2VzIEZpbGVUaHJlYWQgd2lsbCBiZSB1c2VkLgor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gY3JlYXRlUGxhdGZvcm1Bc3lu
Y0ZpbGVTeXN0ZW0oKTsKKworICAgIC8vIE9wZW5zIGEgbmV3IGZpbGUgc3lzdGVtLgorICAgIHN0
YXRpYyB2b2lkIG9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0
cmluZyYgc3RvcmFnZUlkZW50aWZpZXIsIFR5cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzPik7CisKKyAgICB2aXJ0dWFsIHZvaWQgbW92ZShjb25zdCBTdHJpbmcmIHNyY1Bh
dGgsIGNvbnN0IFN0cmluZyYgZGVzdFBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2Fs
bGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5KGNvbnN0IFN0cmluZyYgc3JjUGF0
aCwgY29uc3QgU3RyaW5nJiBkZXN0UGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3M+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShjb25zdCBTdHJpbmcmIHBhdGgs
IFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCByZWFkTWV0YWRhdGEoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmls
ZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlRmlsZShjb25z
dCBTdHJpbmcmIHBhdGgsIGJvb2wgZXhjbHVzaXZlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrcz4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlRGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYgcGF0aCwgYm9vbCBleGNsdXNpdmUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmaWxlRXhpc3RzKGNvbnN0IFN0cmlu
ZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpcmVjdG9yeUV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25Q
dHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworCisgICAgLy8gQ29udmVydHMgYSBn
aXZlbiBhYnNvbHV0ZSB2aXJ0dWFsIHBhdGggdG8gYSBwbGF0Zm9ybSBwYXRoIHRoYXQgc3RhcnRz
IHdpdGggdGhlIHBsYXRmb3JtIHJvb3QgcGF0aCBvZiB0aGlzIGZpbGUgc3lzdGVtLgorICAgIHZp
cnR1YWwgU3RyaW5nIHZpcnR1YWxUb1BsYXRmb3JtUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpIGNv
bnN0OworCisgICAgLy8gU2V0IHBsYXRmb3JtIHJvb3QgcGF0aC4KKyAgICB2b2lkIHNldFBsYXRm
b3JtUm9vdFBhdGgoY29uc3QgU3RyaW5nJiBwbGF0Zm9ybVJvb3RQYXRoKTsKKworcHJvdGVjdGVk
OgorICAgIEFzeW5jRmlsZVN5c3RlbSgpIHsgfQorCisgICAgU3RyaW5nIG1fcGxhdGZvcm1Sb290
UGF0aDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShG
SUxFX1NZU1RFTSkKKworI2VuZGlmIC8vIEFzeW5jRmlsZVN5c3RlbV9oCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjM5OTk5NTlhZjE4
NTQ3NjE3MjljNGZjZGY1ZjJlNzY2OGJhZGE1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaApAQCAtMCwwICsxLDY5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3NfaAorI2RlZmluZSBBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3NfaAorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBc3luY0ZpbGVTeXN0ZW07
CisKK2NsYXNzIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcyA6IHB1YmxpYyBOb25jb3B5YWJsZSB7
CitwdWJsaWM6CisgICAgLy8gQ2FsbGVkIHdoZW4gYSByZXF1ZXN0ZWQgb3BlcmF0aW9uIGlzIGNv
bXBsZXRlZCBzdWNjZXNzZnVsbHkuCisgICAgdmlydHVhbCB2b2lkIGRpZFN1Y2NlZWQoKSA9IDA7
CisKKyAgICAvLyBDYWxsZWQgd2hlbiBhIHJlcXVlc3RlZCBmaWxlIHN5c3RlbSBpcyBvcGVuZWQu
CisgICAgdmlydHVhbCB2b2lkIGRpZE9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiByb290UGF0aCkgPSAwOworCisgICAgLy8gQ2FsbGVkIHdoZW4gYSBmaWxl
IG1ldGFkYXRhIGlzIHJlYWQgc3VjY2Vzc2Z1bGx5LgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWFk
TWV0YWRhdGEoZG91YmxlIG1vZGlmaWNhdGlvblRpbWUpID0gMDsKKworICAgIC8vIENhbGxlZCB3
aGVuIGEgZGlyZWN0b3J5IGVudHJ5IGlzIHJlYWQuCisgICAgdmlydHVhbCB2b2lkIGRpZFJlYWRE
aXJlY3RvcnlFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgaXNEaXJlY3RvcnkpID0gMDsK
KworICAgIC8vIENhbGxlZCBhZnRlciBhIGNodW5rIG9mIGRpcmVjdG9yeSBlbnRyaWVzIGhhdmUg
YmVlbiByZWFkIChpLmUuIGluZGljYXRlcyBpdCdzIGdvb2QgdGltZSB0byBjYWxsIGJhY2sgdG8g
dGhlIGFwcGxpY2F0aW9uKS4gIElmIGhhc01vcmUgaXMgdHJ1ZSB0aGVyZSBjYW4gYmUgbW9yZSBj
aHVua3MuCisgICAgdmlydHVhbCB2b2lkIGRpZFJlYWREaXJlY3RvcnlDaHVua0RvbmUoYm9vbCBo
YXNNb3JlKSA9IDA7CisKKyAgICAvLyBDYWxsZWQgd2hlbiB0aGVyZSB3YXMgYW4gZXJyb3IuCisg
ICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoaW50IGNvZGUpID0gMDsKKworICAgIHZpcnR1YWwgfkFz
eW5jRmlsZVN5c3RlbUNhbGxiYWNrcygpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2Vu
ZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2VuZGlmIC8vIEFzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrc19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBiL1dl
YkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCmluZGV4IGVjNzVhMjEwM2E1NTA4NzNjNTdlNDE3
ZTZmMzMyZTA4YjY4ZDdhZGYuLmUzOTE2Y2ZlMGFjNTk2NzE3ZTlhNGYyYmQ5ZTViZTAwNjIyNmQw
ODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0xMzgsNiArMTM4LDEyIEBAIGVudW0gRmlsZVNl
ZWtPcmlnaW4gewogICAgIFNlZWtGcm9tRW5kCiB9OwogCisjaWYgT1MoV0lORE9XUykKK3N0YXRp
YyBjb25zdCBjaGFyIFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IgPSAnXFwnOworI2Vsc2UKK3N0
YXRpYyBjb25zdCBjaGFyIFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IgPSAnLyc7CisjZW5kaWYK
KwogYm9vbCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYpOwogYm9vbCBkZWxldGVGaWxlKGNvbnN0
IFN0cmluZyYpOwogYm9vbCBkZWxldGVFbXB0eURpcmVjdG9yeShjb25zdCBTdHJpbmcmKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvQXN5bmNGaWxlU3lzdGVtUE9TSVguY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9Bc3luY0ZpbGVTeXN0ZW1QT1NJWC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGM5MGFjYzhiYzMxNWRiMGUwM2Q0NmQ4YTFjYTExZTI4ODEzZjZmOAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvQXN5bmNGaWxlU3lzdGVtUE9TSVguY3Bw
CkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXN5bmNGaWxl
U3lzdGVtLmgiCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlICJBc3luY0Zp
bGVTeXN0ZW1DYWxsYmFja3MuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IEFzeW5jRmlsZVN5c3Rl
bTo6Y3JlYXRlUGxhdGZvcm1Bc3luY0ZpbGVTeXN0ZW0oKQoreworICAgIC8vIFVzZSB0aGUgZGVm
YXVsdCBGaWxlVGhyZWFkIGltcGxlbWVudGF0aW9uLgorICAgIHJldHVybiAwOworfQorCit2b2lk
IEFzeW5jRmlsZVN5c3RlbTo6b3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwg
Y29uc3QgU3RyaW5nJiBzdG9yYWdlSWRlbnRpZmllciwgVHlwZSB0eXBlLCBQYXNzT3duUHRyPEFz
eW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIFN0cmluZyB0eXBlU3Ry
aW5nID0gKHR5cGUgPT0gUGVyc2lzdGVudCkgPyAiUGVyc2lzdGVudCIgOiAiVGVtcG9yYXJ5IjsK
KworICAgIFN0cmluZyBuYW1lID0gc3RvcmFnZUlkZW50aWZpZXI7CisgICAgbmFtZSArPSAiOiI7
CisgICAgbmFtZSArPSB0eXBlU3RyaW5nOworCisgICAgU3RyaW5nIHJvb3RQYXRoID0gYmFzZVBh
dGg7CisgICAgcm9vdFBhdGguYXBwZW5kKFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IpOworICAg
IHJvb3RQYXRoICs9IHN0b3JhZ2VJZGVudGlmaWVyOworICAgIHJvb3RQYXRoLmFwcGVuZChQbGF0
Zm9ybUZpbGVQYXRoU2VwYXJhdG9yKTsKKyAgICByb290UGF0aCArPSB0eXBlU3RyaW5nOworICAg
IHJvb3RQYXRoLmFwcGVuZChQbGF0Zm9ybUZpbGVQYXRoU2VwYXJhdG9yKTsKKworICAgIGNhbGxi
YWNrcy0+ZGlkT3BlbkZpbGVTeXN0ZW0obmFtZSwgcm9vdFBhdGgpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0pCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Bc3luY0ZpbGVTeXN0ZW1XaW4uY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQXN5bmNGaWxlU3lzdGVtV2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzI3OTQ2ODk5
YWU0N2U0MDRhMGYwNGE2YTA1MzhiZGViNDNhNjg1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vQXN5bmNGaWxlU3lzdGVtV2luLmNwcApAQCAtMCwwICsxLDY3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbVdpbi5oIgorCisjaWYg
RU5BQkxFKEZJTEVfU1lTVEVNKQorCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
LmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bh
c3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBBc3luY0ZpbGVTeXN0ZW06OmNyZWF0ZVBsYXRmb3Jt
QXN5bmNGaWxlU3lzdGVtKCkKK3sKKyAgICAvLyBVc2UgdGhlIGRlZmF1bHQgRmlsZVRocmVhZCBp
bXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBBc3luY0ZpbGVTeXN0ZW06
Om9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgc3Rv
cmFnZUlkZW50aWZpZXIsIFR5cGUgdHlwZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBTdHJpbmcgdHlwZVN0cmluZyA9ICh0eXBlID09IFBl
cnNpc3RlbnQpID8gIlBlcnNpc3RlbnQiIDogIlRlbXBvcmFyeSI7CisKKyAgICBTdHJpbmcgbmFt
ZSA9IHN0b3JhZ2VJZGVudGlmaWVyOworICAgIG5hbWUgKz0gIjoiOworICAgIG5hbWUgKz0gdHlw
ZVN0cmluZzsKKworICAgIFN0cmluZyByb290UGF0aCA9IGJhc2VQYXRoOworICAgIHJvb3RQYXRo
LmFwcGVuZChQbGF0Zm9ybUZpbGVQYXRoU2VwYXJhdG9yKTsKKyAgICByb290UGF0aCArPSBzdG9y
YWdlSWRlbnRpZmllcjsKKyAgICByb290UGF0aC5hcHBlbmQoUGxhdGZvcm1GaWxlUGF0aFNlcGFy
YXRvcik7CisgICAgcm9vdFBhdGggKz0gdHlwZVN0cmluZzsKKyAgICByb290UGF0aC5hcHBlbmQo
UGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvcik7CisKKyAgICBjYWxsYmFja3MtPmRpZE9wZW5GaWxl
U3lzdGVtKG5hbWUsIHJvb3RQYXRoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdl
L0RPTUZpbGVTeXN0ZW0uY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uY3BwCmlu
ZGV4IGMzZGJkMzQwMTRlYTIwZWNlZmQ4YWFkZDdjNmJkYzlkYmQwZWU5NjIuLjVkNjA3M2EzZTll
YzEyMzk2NGEyMmI5NjY5NDZiYjM2MGEyMzllZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFn
ZS9ET01GaWxlU3lzdGVtLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5j
cHAKQEAgLTMzLDEzICszMywyMCBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCisjaW5j
bHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiRGlyZWN0b3J5RW50cnkuaCIKKyNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotRE9NRmlsZVN5c3RlbTo6RE9NRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgcm9vdFBhdGgpCi0gICAgOiBtX3Jvb3RQYXRoKHJvb3RQYXRoKQorRE9NRmlsZVN5
c3RlbTo6RE9NRmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25z
dCBTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBhc3luY0ZpbGVTeXN0
ZW0pCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKICAgICAsIG1fbmFtZShu
YW1lKQorICAgICwgbV9hc3luY0ZpbGVTeXN0ZW0oYXN5bmNGaWxlU3lzdGVtKQoreworfQorCitE
T01GaWxlU3lzdGVtOjp+RE9NRmlsZVN5c3RlbSgpCiB7CiB9CiAKQEAgLTQ4LDYgKzU1LDIxIEBA
IFBhc3NSZWZQdHI8RGlyZWN0b3J5RW50cnk+IERPTUZpbGVTeXN0ZW06OnJvb3QoKQogICAgIHJl
dHVybiBEaXJlY3RvcnlFbnRyeTo6Y3JlYXRlKHRoaXMsICIvIik7CiB9CiAKK3ZvaWQgRE9NRmls
ZVN5c3RlbTo6c3RvcCgpCit7CisgICAgbV9hc3luY0ZpbGVTeXN0ZW0tPnN0b3AoKTsKK30KKwor
Ym9vbCBET01GaWxlU3lzdGVtOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2FzeW5jRmlsZVN5c3RlbS0+aGFzUGVuZGluZ0FjdGl2aXR5KCk7Cit9CisKK3ZvaWQg
RE9NRmlsZVN5c3RlbTo6Y29udGV4dERlc3Ryb3llZCgpCit7CisgICAgbV9hc3luY0ZpbGVTeXN0
ZW0tPnN0b3AoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmIC8vIEVOQUJMRShGSUxF
X1NZU1RFTSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmggYi9X
ZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5oCmluZGV4IGI4N2FhYWYzMmNkOWVhYzBmMjJj
NDllZTE3NjcyZGQ1YTJlNzc2NzMuLjFlMjUyODk5ZTczZWUxMDI1ZTJkMGZjZTZhMjk5ODg5MGQ1
NzI2ZTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmgKKysrIGIv
V2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaApAQCAtMzMsNiArMzMsOSBAQAogCiAjaWYg
RU5BQkxFKEZJTEVfU1lTVEVNKQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5j
bHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiRmxhZ3MuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQwLDIyICs0MywzMyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBEaXJlY3RvcnlFbnRyeTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CiAKLWNsYXNzIERPTUZpbGVTeXN0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxET01GaWxlU3lzdGVt
PiB7CitjbGFzcyBET01GaWxlU3lzdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NRmlsZVN5c3Rl
bT4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERPTUZpbGVTeXN0ZW0+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgcm9vdFBhdGgpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NRmlsZVN5c3RlbT4gY3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgRE9NRmlsZVN5c3RlbShuYW1lLCByb290UGF0aCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTUZpbGVTeXN0ZW0oY29udGV4dCwgbmFtZSwgYXN5
bmNGaWxlU3lzdGVtKSk7CiAgICAgfQogCisgICAgdmlydHVhbCB+RE9NRmlsZVN5c3RlbSgpOwor
CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAg
UGFzc1JlZlB0cjxEaXJlY3RvcnlFbnRyeT4gcm9vdCgpOwogCisgICAgLy8gQWN0aXZlRE9NT2Jq
ZWN0IG1ldGhvZHMuCisgICAgdmlydHVhbCB2b2lkIHN0b3AoKTsKKyAgICB2aXJ0dWFsIGJvb2wg
aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0
cm95ZWQoKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyIGZpbGVQYXRoU2VwYXJhdG9yOworICAg
IHN0YXRpYyBjb25zdCBjaGFyKiByb290UGF0aDsKKwogcHJpdmF0ZToKLSAgICBET01GaWxlU3lz
dGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiByb290UGF0aCk7CisgICAgRE9N
RmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBQ
YXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4pOwogCi0gICAgU3RyaW5nIG1fcm9vdFBhdGg7CiAg
ICAgU3RyaW5nIG1fbmFtZTsKKyAgICBtdXRhYmxlIE93blB0cjxBc3luY0ZpbGVTeXN0ZW0+IG1f
YXN5bmNGaWxlU3lzdGVtOwogfTsKIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9GaWxl
U3lzdGVtQ2FsbGJhY2tzLmNwcAppbmRleCBlYzM1MmRkN2Q2ZTkyYzdjODdhMzgwNGIzY2QzOGNj
M2RkYTFlODE4Li4wZjgyNThjM2EwNDNlMmI3YjI0N2FiM2JkYWFhNGUwY2Q1YzQ0NWQ4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHAKKysrIGIvV2Vi
Q29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHZv
aWQgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2U6OmRpZFJlYWREaXJlY3RvcnlFbnRyeShjb25zdCBT
dHJpbmcmLCBib29sKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIEZpbGVT
eXN0ZW1DYWxsYmFja3NCYXNlOjpkaWRGYWlsKEV4Y2VwdGlvbkNvZGUgY29kZSkKK3ZvaWQgRmls
ZVN5c3RlbUNhbGxiYWNrc0Jhc2U6OmRpZEZhaWwoaW50IGNvZGUpCiB7CiAgICAgaWYgKG1fZXJy
b3JDYWxsYmFjaykgewogICAgICAgICBtX2Vycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KEZpbGVF
cnJvcjo6Y3JlYXRlKGNvZGUpLmdldCgpKTsKQEAgLTE1MiwxNiArMTUyLDIxIEBAIHZvaWQgRW50
cmllc0NhbGxiYWNrczo6ZGlkUmVhZERpcmVjdG9yeUNodW5rRG9uZShib29sIGhhc01vcmUpCiAK
IC8vIEZpbGVTeXN0ZW1DYWxsYmFja3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotRmlsZVN5c3RlbUNhbGxiYWNrczo6RmlsZVN5c3Rl
bUNhbGxiYWNrcyhQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNr
LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCitGaWxlU3lzdGVtQ2Fs
bGJhY2tzOjpGaWxlU3lzdGVtQ2FsbGJhY2tzKFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNr
PiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFj
aywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc093blB0cjxBc3luY0ZpbGVT
eXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSkKICAgICA6IEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlKGVy
cm9yQ2FsbGJhY2spCiAgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhzdWNjZXNzQ2FsbGJhY2spCisg
ICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKKyAgICAsIG1fYXN5bmNGaWxl
U3lzdGVtKGFzeW5jRmlsZVN5c3RlbSkKIHsKIH0KIAogdm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tz
OjpkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9v
dFBhdGgpCiB7Ci0gICAgaWYgKG1fc3VjY2Vzc0NhbGxiYWNrKQotICAgICAgICBtX3N1Y2Nlc3ND
YWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRmlsZVN5c3RlbTo6Y3JlYXRlKG5hbWUsIHJvb3RQYXRo
KS5nZXQoKSk7CisgICAgaWYgKG1fc3VjY2Vzc0NhbGxiYWNrKSB7CisgICAgICAgIEFTU0VSVCht
X2FzeW5jRmlsZVN5c3RlbSk7CisgICAgICAgIG1fYXN5bmNGaWxlU3lzdGVtLT5zZXRQbGF0Zm9y
bVJvb3RQYXRoKHJvb3RQYXRoKTsKKyAgICAgICAgbV9zdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2
ZW50KERPTUZpbGVTeXN0ZW06OmNyZWF0ZShtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIG5hbWUs
IG1fYXN5bmNGaWxlU3lzdGVtLnJlbGVhc2UoKSkuZ2V0KCkpOworICAgIH0KICAgICBtX3N1Y2Nl
c3NDYWxsYmFjay5jbGVhcigpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRmls
ZVN5c3RlbUNhbGxiYWNrcy5oIGIvV2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3Mu
aAppbmRleCBlMGU3OGQzNzBjMjFlMzM3YjI0OGQzOGFjODk2ZDFhN2UwZWNiMTMwLi4zY2EzZjU1
Zjg4MzI3YTE0M2VkYjQyMzc0NGIyMTAxZDM3NzBmYzBjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0
b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lz
dGVtQ2FsbGJhY2tzLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RF
TSkKIAorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CkBAIC00OSwxMCArNTAsNyBAQCBjbGFzcyBNZXRhZGF0YUNhbGxiYWNrOwog
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFZvaWRDYWxsYmFjazsKIAotdHlw
ZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQotLy8gQSBiYXNlIGNsYXNzIGZvciBGaWxlU3lzdGVt
IGNhbGxiYWNrcyB0aGF0IGJ1bmRsZXMgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrIGFu
ZCBzb21lIGNsb3N1cmUgZGF0YSBmb3IgdGhlIGNhbGxiYWNrcy4KLWNsYXNzIEZpbGVTeXN0ZW1D
YWxsYmFja3NCYXNlIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK2NsYXNzIEZpbGVTeXN0ZW1DYWxs
YmFja3NCYXNlIDogcHVibGljIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcyB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+RmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UoKTsKIApAQCAtNzAsNyArNjgsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlYWREaXJlY3RvcnlDaHVua0RvbmUoYm9v
bCBoYXNNb3JlKTsKIAogICAgIC8vIEZvciBFcnJvckNhbGxiYWNrLgotICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsKEV4Y2VwdGlvbkNvZGUgY29kZSk7CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwo
aW50IGNvZGUpOwogCiBwcm90ZWN0ZWQ6CiAgICAgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UoUGFz
c1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKTsKQEAgLTEwNiwxMSArMTA0LDEz
IEBAIHByaXZhdGU6CiAKIGNsYXNzIEZpbGVTeXN0ZW1DYWxsYmFja3MgOiBwdWJsaWMgRmlsZVN5
c3RlbUNhbGxiYWNrc0Jhc2UgewogcHVibGljOgotICAgIEZpbGVTeXN0ZW1DYWxsYmFja3MoUGFz
c1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+KTsK
KyAgICBGaWxlU3lzdGVtQ2FsbGJhY2tzKFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiwg
UGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NP
d25QdHI8QXN5bmNGaWxlU3lzdGVtPik7CiAgICAgdmlydHVhbCB2b2lkIGRpZE9wZW5GaWxlU3lz
dGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiByb290UGF0aCk7CiAKIHByaXZh
dGU6CiAgICAgUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4gbV9zdWNjZXNzQ2FsbGJhY2s7Cisg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OworICAg
IE93blB0cjxBc3luY0ZpbGVTeXN0ZW0+IG1fYXN5bmNGaWxlU3lzdGVtOwogfTsKIAogY2xhc3Mg
TWV0YWRhdGFDYWxsYmFja3MgOiBwdWJsaWMgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UgewpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0ZsYWdzLmggYi9XZWJDb3JlL3N0b3JhZ2UvRmxhZ3Mu
aAppbmRleCBmZmUzNDAzOGEwNGM0MGNlOWUzYTg3NTgzMGIxYmI4MDVjZjY2ZWJiLi4zMDg4NGZj
YzQzZmRmMmEzYTA2NDVmOWQ1OWFkOWE4ZWI3ZWQ2MDRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0
b3JhZ2UvRmxhZ3MuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvRmxhZ3MuaApAQCAtMzMsNiArMzMs
NyBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmNwcCBiL1dlYkNv
cmUvc3RvcmFnZS9Mb2NhbEZpbGVTeXN0ZW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkM2QzNjYyMzEyZDk0
YjI3MDQ2OTVjNGFkMWI0YjAxNzQwYzg5MWQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0
b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmNwcApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkxvY2FsRmlsZVN5c3RlbS5oIgorCisjaWYgUExBVEZPUk0oQ0hST01J
VU0pCisjZXJyb3IgIkNocm9taXVtIHNob3VsZCBub3QgY29tcGlsZSB0aGlzIGZpbGUgYW5kIGlu
c3RlYWQgZGVmaW5lIGl0cyBvd24gdmVyc2lvbiBvZiB0aGVzZSBmYWN0b3JpZXMuIgorI2VuZGlm
CisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNp
bmNsdWRlICJFcnJvckNhbGxiYWNrLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2lu
Y2x1ZGUgIkZpbGVFcnJvci5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1DYWxsYmFjay5oIgorI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW1DYWxsYmFja3MuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8TG9jYWxGaWxl
U3lzdGVtPiBMb2NhbEZpbGVTeXN0ZW06OmNyZWF0ZShjb25zdCBTdHJpbmcmIGJhc2VQYXRoKQor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTG9jYWxGaWxlU3lzdGVtKGJhc2VQYXRoKSk7Cit9
CisKK3ZvaWQgTG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUgdHlwZSwgbG9uZyBsb25n
LCBQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVm
UHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCit7CisgICAgaWYgKHR5cGUgIT0gQXN5
bmNGaWxlU3lzdGVtOjpUZW1wb3JhcnkgJiYgdHlwZSAhPSBBc3luY0ZpbGVTeXN0ZW06OlBlcnNp
c3RlbnQpIHsKKyAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRmlsZUVycm9yOjpj
cmVhdGUoSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKS5nZXQoKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBhc3luY0ZpbGVTeXN0ZW0gPSBB
c3luY0ZpbGVTeXN0ZW06OmNyZWF0ZVBsYXRmb3JtQXN5bmNGaWxlU3lzdGVtKCk7CisgICAgaWYg
KCFhc3luY0ZpbGVTeXN0ZW0pIHsKKyAgICAgICAgLy8gRklYTUU6IENyZWF0ZSB0aGUgdGhyZWFk
IHZlcnNpb24gb2YgQXN5bmNGaWxlU3lzdGVtICh0aGF0IGhhc24ndCBiZWVuIGFkZGVkKSBpZiBu
byBwbGF0Zm9ybS1zcGVjaWZpYyBBc3luY0ZpbGVTeXN0ZW0gaW1wbGVtZW50YXRpb24gaXMgcHJv
dmlkZWQuCisgICAgICAgIC8vIChUaGUgdGhyZWFkIHZlcnNpb24gcmVxdWlyZXMgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCBhbmQgdGhhdCdzIHdoeSBBc3luY0ZpbGVTeXN0ZW0gaXMgY3JlYXRlZCBo
ZXJlIHJhdGhlciB0aGFuIGluIHRoZSBjYWxsYmFjayBwYXRoLikKKyAgICAgICAgZXJyb3JDYWxs
YmFjay0+aGFuZGxlRXZlbnQoRmlsZUVycm9yOjpjcmVhdGUoTk9UX1NVUFBPUlRFRF9FUlIpLmdl
dCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFzeW5jRmlsZVN5c3RlbTo6b3Bl
bkZpbGVTeXN0ZW0obV9iYXNlUGF0aCwgY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKS0+ZGF0YWJh
c2VJZGVudGlmaWVyKCksIHR5cGUsIG5ldyBGaWxlU3lzdGVtQ2FsbGJhY2tzKHN1Y2Nlc3NDYWxs
YmFjaywgZXJyb3JDYWxsYmFjaywgY29udGV4dCwgYXN5bmNGaWxlU3lzdGVtLnJlbGVhc2UoKSkp
OworfQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5oIGIvV2ViQ29yZS9z
dG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4YmMyZmRiZmRhZGVkYjc4NWFl
MDU2ZjYwYTJiMmY3MDg0ZTViMDcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2Uv
TG9jYWxGaWxlU3lzdGVtLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTG9jYWxGaWxlU3lzdGVt
X2gKKyNkZWZpbmUgTG9jYWxGaWxlU3lzdGVtX2gKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkK
KworI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVycm9yQ2FsbGJhY2s7CitjbGFz
cyBGaWxlU3lzdGVtQ2FsbGJhY2s7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitj
bGFzcyBMb2NhbEZpbGVTeXN0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxMb2NhbEZpbGVTeXN0ZW0+
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxMb2NhbEZpbGVTeXN0ZW0+IGNyZWF0
ZShjb25zdCBTdHJpbmcmIGJhc2VQYXRoKTsKKyAgICB2aXJ0dWFsIH5Mb2NhbEZpbGVTeXN0ZW0o
KSB7IH0KKworICAgIHZvaWQgcmVxdWVzdEZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFzc1JlZlB0
cjxGaWxlU3lzdGVtQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+KTsKKworcHJv
dGVjdGVkOgorICAgIExvY2FsRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGJhc2VQYXRoKQorICAg
ICAgICA6IG1fYmFzZVBhdGgoYmFzZVBhdGgpCisgICAgeworICAgIH0KKworICAgIFN0cmluZyBt
X2Jhc2VQYXRoOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIEVOQUJMRShGSUxF
X1NZU1RFTSkKKworI2VuZGlmIC8vIExvY2FsRmlsZVN5c3RlbV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65460</attachid>
            <date>2010-08-25 11:59:20 -0700</date>
            <delta_ts>2010-08-25 15:18:36 -0700</delta_ts>
            <desc>=Patch (rebased; did some cleanup)</desc>
            <filename>bug-44433-20100825115919.patch</filename>
            <type>text/plain</type>
            <size>38308</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDMyZDJkNTcxY2M1MmI0MGE1ZmJhZjc1M2NlMjAyMzU4ZDdmMWI5MGUuLmFiNjUy
MjVmYjM1NzZiOGE4NWYwZmUwMDI2MzAxNDM2MjQ2YTRjNTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIxMSw2ICsx
MjExLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1l
QW5pbWF0aW9uLmNwcAogCiAgICAgcGxhdGZvcm0vQXJlbmEuY3BwCisgICAgcGxhdGZvcm0vQXN5
bmNGaWxlU3lzdGVtLmNwcAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmNwcAogICAgIHBsYXRmb3Jt
L0NvbnRlbnRUeXBlLmNwcAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmNwcApAQCAtMTQ4Myw2
ICsxNDg0LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHN0b3JhZ2UvSURCRmFjdG9yeS5j
cHAKICAgICBzdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcAogICAgIHN0b3Jh
Z2UvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcAorICAgIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVt
LmNwcAogICAgIHN0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5jcHAKICAgICBzdG9yYWdlL0xvY2Fs
U3RvcmFnZVRocmVhZC5jcHAKICAgICBzdG9yYWdlL09yaWdpblF1b3RhTWFuYWdlci5jcHAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY2
NjJlNzM0OTg4YTE5MzE3NjJjMjk0Y2UwNTZkODZjNDAyZmI4Mi4uYTI4MjFhNWIwY2E0ZjI3MGZm
ZmNhMzQ5ZjJkNTI3M2JiNGI3ZDVhMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0wOC0yMyAgS2ludWtv
IFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFzeW5jRmlsZVN5c3RlbSBpbnRlcmZhY2UgZm9y
IHBsYXRmb3JtLWRlcGVuZGVudCBGaWxlU3lzdGVtIEFQSSBpbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ0MzMKKworICAgICAg
ICBObyBuZXcgdGVzdHM7IHRlc3RzIHdpbGwgYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L0FzeW5jRmlsZVN5c3RlbS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmls
ZVN5c3RlbS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3MuaDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06OkRPTUZpbGVTeXN0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6fkRPTUZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NRmlsZVN5c3RlbTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVt
OjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6
Y29udGV4dERlc3Ryb3llZCk6CisgICAgICAgICogc3RvcmFnZS9ET01GaWxlU3lzdGVtLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpjcmVhdGUpOgorICAgICAgICAqIHN0b3Jh
Z2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
Q2FsbGJhY2tzQmFzZTo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtQ2Fs
bGJhY2tzOjpGaWxlU3lzdGVtQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1DYWxsYmFja3M6OmRpZE9wZW5GaWxlU3lzdGVtKToKKyAgICAgICAgKiBzdG9yYWdlL0ZpbGVT
eXN0ZW1DYWxsYmFja3MuaDoKKyAgICAgICAgKiBzdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5jcHA6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmg6IEFkZGVkLgorCisg
ICAgICAgICogc3RvcmFnZS9GbGFncy5oOiBOaXRzIGZpeC4KKwogMjAxMC0wOC0yNSAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCA4MTE3ZGZlZmMxOWE3YzM3ZDg1OWNjYTkwOWMxM2Q3YWZlNDRh
MjE4Li45MjI4YzM0ZDcyYjY1MjViNGQyOTgyMzBkNTE1NTY0MDNmNjdjNzUyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzA0
MCw2ICszMDQwLDkgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9BcmVuYS5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL0FyZW5hLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0FzeW5jRmls
ZVN0cmVhbS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaCcsCisgICAgICAgICAgICAn
cGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL0F1dG9kcmFpbmVkUG9vbC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9CbG9iSXRlbS5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Jsb2JJdGVtLmgnLApAQCAtMzYzNSw2ICszNjM4
LDcgQEAKICAgICAgICAgICAgICdzdG9yYWdlL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgnLAog
ICAgICAgICAgICAgJ3N0b3JhZ2UvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAnLAogICAg
ICAgICAgICAgJ3N0b3JhZ2UvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oJywKKyAgICAgICAg
ICAgICdzdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0xv
Y2FsU3RvcmFnZVRhc2suY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0xvY2FsU3RvcmFnZVRh
c2suaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuY3BwJywKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4
IDYyZDFjNjgzZWRiMWFmN2U3ZTdiMWQ2ZjgxZjBmNDljM2UzNTYzZGMuLmIzY2RhZWE5NDJmMjU4
MDFhN2JiMzhjZWI0MWVjYzg3MDg5MjRiOTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODc0LDYgKzg3NCw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwIFwKICAgICBwbGF0Zm9y
bS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAgXAogICAgIHBsYXRmb3JtL0FyZW5hLmNwcCBc
CisgICAgcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcCBcCiAgICAgcGxhdGZvcm0vQmxvYkl0
ZW0uY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAgXAogICAgIHBsYXRmb3JtL3Rl
eHQvQmlkaUNvbnRleHQuY3BwIFwKQEAgLTE2NTksNiArMTY2MCw4IEBAIEhFQURFUlMgKz0gXAog
ICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmggXAogICAgIHBsYXRmb3JtL0Fy
ZW5hLmggXAogICAgIHBsYXRmb3JtL0FzeW5jRmlsZVN0cmVhbS5oIFwKKyAgICBwbGF0Zm9ybS9B
c3luY0ZpbGVTeXN0ZW0uaCBcCisgICAgcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
LmggXAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmggXAogICAgIHBsYXRmb3JtL0NvbnRlbnRUeXBl
LmggXAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmggXApAQCAtMjU5Niw2ICsyNTk5LDcgQEAg
Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTEVfU1lTVEVNPTEpIHsKICAgICAgICAgc3RvcmFn
ZS9GaWxlU3lzdGVtQ2FsbGJhY2suaCBcCiAgICAgICAgIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxi
YWNrcy5oIFwKICAgICAgICAgc3RvcmFnZS9GbGFncy5oIFwKKyAgICAgICAgc3RvcmFnZS9Mb2Nh
bEZpbGVTeXN0ZW0uaCBcCiAgICAgICAgIHN0b3JhZ2UvTWV0YWRhdGEuaCBcCiAgICAgICAgIHN0
b3JhZ2UvTWV0YWRhdGFDYWxsYmFjay5oCiAKQEAgLTI2MDcsNyArMjYxMSw4IEBAIGNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9GSUxFX1NZU1RFTT0xKSB7CiAgICAgICAgIHN0b3JhZ2UvRW50cnku
Y3BwIFwKICAgICAgICAgc3RvcmFnZS9FbnRyeUFycmF5LmNwcCBcCiAgICAgICAgIHN0b3JhZ2Uv
RmlsZUVudHJ5LmNwcCBcCi0gICAgICAgIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHAK
KyAgICAgICAgc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcCBcCisgICAgICAgIHN0b3Jh
Z2UvTG9jYWxGaWxlU3lzdGVtLmNwcAogfQogCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSUNP
TkRBVEFCQVNFPTEpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGY3
OTIwNmI3ZmM4MDMwNDhiYmNmNzZmMDM5NWUyNGE1ZDFjYmQ2NDcuLjc3YmZmNDAxZDBkYjkyNDY5
ODU1N2NjYjI3MGQyOGFiODMzMzVmOGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagpAQCAtMjM5ODksNiArMjM5ODksMTggQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxG
aWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cQXN5bmNGaWxlU3lzdGVtLmNwcCIN
CisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXEFzeW5jRmlsZVN5c3RlbS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwbGF0Zm9ybVxBdXRvZHJhaW5lZFBvb2wuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC01
MTQyOSw2ICs1MTQ0MSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXExvY2FsRmlsZVN5c3RlbS5jcHAiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXExvY2Fs
RmlsZVN5c3RlbS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cc3RvcmFnZVxMb2NhbFN0b3JhZ2VUaHJlYWQuY3BwIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
ZWY0YjgwNGI5YzRlNmJmZWU2ZTAzZDVmNzQwYjI4Y2JmNjAwNGVhYi4uNjcwNWNjOTFiOGY5MWY2
OTIxOGNlODRlZWM5YjEwMmJkMTJiZGM5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTIzOTUsNiArMjM5NSw4IEBACiAJCTg5NTI1M0RGMTE2QzRGMDYw
MENBQkYwMCAvKiBGaWxlVGhyZWFkVGFzay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODk1MjUzREUxMTZDNEYwNjAwQ0FCRjAwIC8qIEZpbGVUaHJlYWRU
YXNrLmggKi87IH07CiAJCTg5Njg2QzlGMTIyMjQ0QTAwMDc2RUFBNCAvKiBET01GaWxlUGF0aC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTY4NkM5
RDEyMjI0NEEwMDA3NkVBQTQgLyogRE9NRmlsZVBhdGguY3BwICovOyB9OwogCQk4OTY4NkNBMDEy
MjI0NEEwMDA3NkVBQTQgLyogRE9NRmlsZVBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5Njg2QzlFMTIyMjQ0QTAwMDc2RUFBNCAvKiBET01GaWxl
UGF0aC5oICovOyB9OworCQk4OTg3ODNEMzEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lz
dGVtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5
ODc4M0QxMTIyMzJBMTMwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3BwICovOyB9OworCQk4
OTg3ODNENDEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTg3ODNEMjEyMjMyQTEzMDAzQUFC
REEgLyogTG9jYWxGaWxlU3lzdGVtLmggKi87IH07CiAJCTg5ODhFMTBFMTFBMzUwOEIwMERCNzMy
RSAvKiBCbG9iSXRlbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4OTg4RTEwQzExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uY3BwICovOyB9Owog
CQk4OTg4RTEwRjExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5ODhFMTBEMTFBMzUwOEIwMERCNzMyRSAv
KiBCbG9iSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTg5OUFCQzI2MTIxNUU0QTMwMEY5RjIxOSAvKiBEaXJlY3RvcnlFbnRyeS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTlBQkMyMDEyMTVF
NEEzMDBGOUYyMTkgLyogRGlyZWN0b3J5RW50cnkuY3BwICovOyB9OwpAQCAtMjQ0NCw2ICsyNDQ2
LDkgQEAKIAkJODlDMEREN0IxMjFGMEM2OTAwOUUxN0NBIC8qIEZpbGVTeXN0ZW1DYWxsYmFja3Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5QzBERDc5
MTIxRjBDNjkwMDlFMTdDQSAvKiBGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi87IH07CiAJCTg5Q0Qw
MjkzMTFDODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5Q0QwMjkxMTFDODVCODcwMDcwQjc5MSAv
KiBKU0Jsb2JCdWlsZGVyLmNwcCAqLzsgfTsKIAkJODlDRDAyOTQxMUM4NUI4NzAwNzBCNzkxIC8q
IEpTQmxvYkJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg5Q0QwMjkyMTFDODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JCdWlsZGVyLmggKi87IH07
CisJCTg5RDA4RDlGMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODlEMDhEOUMxMjIyODQ1
MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgKi87IH07CisJCTg5RDA4REEwMTIyMjg0
NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5RDA4RDlEMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0Zp
bGVTeXN0ZW0uaCAqLzsgfTsKKwkJODlEMDhEQTExMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmls
ZVN5c3RlbUNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODlEMDhEOUUxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxi
YWNrcy5oICovOyB9OwogCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2Fk
VGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
QTEyRTM1QzExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEE0MTNBRTAxMjA3QkJB
NTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNT
Y3JpcHRSdW5uZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREYx
MjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLzsgfTsKQEAgLTgyOTEs
NiArODI5Niw4IEBACiAJCTg5N0EyRDhFMTIwMDAzNUYwMDgyNzQwQyAvKiBKU0RPTUZpbGVTeXN0
ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01GaWxlU3lzdGVtLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5N0EyRDkxMTIwMDAzNzYwMDgyNzQwQyAv
KiBKU0ZsYWdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmxh
Z3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTdBMkQ5MjEyMDAwMzc2MDA4
Mjc0MEMgLyogSlNGbGFncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Zs
YWdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5ODc4M0QxMTIyMzJBMTMwMDNB
QUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTG9jYWxGaWxlU3lzdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJODk4NzgzRDIxMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbEZpbGVTeXN0ZW0uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODk4OEUxMEMxMUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJdGVtLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2JJdGVtLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODk4OEUxMEQxMUEzNTA4QjAwREI3MzJFIC8qIEJs
b2JJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2JJdGVtLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5OUFCQzIwMTIxNUU0QTMwMEY5RjIxOSAvKiBE
aXJlY3RvcnlFbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
aXJlY3RvcnlFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MzI2LDYg
KzgzMzMsOSBAQAogCQk4OUNEMDI3OTExQzg1OUE4MDA3MEI3OTEgLyogQmxvYkJ1aWxkZXIuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJsb2JCdWlsZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODlDRDAyOTExMUM4NUI4NzAwNzBCNzkxIC8qIEpTQmxvYkJ1aWxkZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNCbG9iQnVpbGRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5Q0QwMjkyMTFDODVCODcwMDcwQjc5
MSAvKiBKU0Jsb2JCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
QmxvYkJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODlEMDhEOUMxMjIy
ODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBc3luY0ZpbGVTeXN0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4OUQwOEQ5RDEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jRmlsZVN5c3RlbS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OUQwOEQ5RTEyMjI4NDUxMDAxMjQxREYgLyogQXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4QTEyRTM1QzExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50TG9hZFRpbWluZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNT
Y3JpcHRSdW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXN5bmNTY3Jp
cHRSdW5uZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE0MTNBREYxMjA3QkJB
NTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFzeW5jU2NyaXB0UnVubmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTExNjk0LDYgKzExNzA0LDggQEAKIAkJCQlCNjU2NjI2ODEyMEIxMTVBMDA2
RUE4NUMgLyogSURCVHJhbnNhY3Rpb24uaCAqLywKIAkJCQlCNjU2NjI2OTEyMEIxMTVBMDA2RUE4
NUMgLyogSURCVHJhbnNhY3Rpb24uaWRsICovLAogCQkJCUI2NTY2MjZEMTIwQjExNkIwMDZFQTg1
QyAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCAqLywKKwkJCQk4OTg3ODNEMTEy
MjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmNwcCAqLywKKwkJCQk4OTg3ODNEMjEy
MjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmggKi8sCiAJCQkJNTExRjIzMTMwREMx
NjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suY3BwICovLAogCQkJCTUxMUYyMzE0MERD
MTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmggKi8sCiAJCQkJNTExRjIzMTUwREMx
NjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRocmVhZC5jcHAgKi8sCkBAIC0xNjYxOSw2ICsx
NjYzMSw5IEBACiAJCQkJQkNGQjJGNzQwOTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmNwcCAqLywK
IAkJCQlCQ0ZCMkY3NTA5N0EyRTFBMDBCQTcwM0QgLyogQXJlbmEuaCAqLywKIAkJCQkyRUYxQkZG
NjEyMUNCMEJEMDBDMjc2MjcgLyogQXN5bmNGaWxlU3RyZWFtLmggKi8sCisJCQkJODlEMDhEOUMx
MjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgKi8sCisJCQkJODlEMDhEOUQx
MjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5oICovLAorCQkJCTg5RDA4RDlFMTIy
Mjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLywKIAkJCQk1MUUx
RUNCMTBDOTFDNTU2MDBEQzI1NUIgLyogQXV0b2RyYWluZWRQb29sLmggKi8sCiAJCQkJODk4OEUx
MEMxMUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJdGVtLmNwcCAqLywKIAkJCQk4OTg4RTEwRDExQTM1
MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uaCAqLywKQEAgLTIwMzg2LDYgKzIwNDAxLDkgQEAKIAkJ
CQk4OTQ3QTgyQzEyMjIyQzQ3MDBEOTVGMkQgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4OTQ3QTgzQzEyMjIzNEY0MDBEOTVGMkQgLyogTWV0YWRhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg5NDdBODNEMTIyMjM0RjkwMEQ5NUYyRCAvKiBNZXRhZGF0YUNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OUQwOERBMDEyMjI4NDUxMDAxMjQxREYgLyogQXN5
bmNGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OUQwOERBMTEyMjI4NDUxMDAxMjQx
REYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTg3
ODNENDEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTIyODQ1LDYgKzIyODYzLDggQEAKIAkJCQk4OTY4NkM5RjEyMjI0NEEwMDA3NkVBQTQgLyog
RE9NRmlsZVBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk0N0E4MjkxMjIyMkM0NzAwRDk1
RjJEIC8qIEpTTWV0YWRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk0N0E4MkIxMjIyMkM0
NzAwRDk1RjJEIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4
OUQwOEQ5RjEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTg5ODc4M0QzMTIyMzJBMTMwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5
c3RlbS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWFlNzRmMTYwZTUwOTNlNjEyNTU1ZDBmYWZkYzRiZjBmYjQxOTFkNgotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcApAQCAtMCwwICsxLDgy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorCisj
aWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
KyNpZiAhUExBVEZPUk0oQ0hST01JVU0pCitQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gQXN5
bmNGaWxlU3lzdGVtOjpjcmVhdGVQbGF0Zm9ybUFzeW5jRmlsZVN5c3RlbSgpCit7CisgICAgLy8g
UmV0dXJuIDAgdG8gdXNlIHRoZSBkZWZhdWx0IEZpbGVUaHJlYWQgaW1wbGVtZW50YXRpb24uCisg
ICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3RlbShj
b25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZGVudGlmaWVyLCBU
eXBlIHR5cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3Mp
Cit7CisgICAgU3RyaW5nIHR5cGVTdHJpbmcgPSAodHlwZSA9PSBQZXJzaXN0ZW50KSA/ICJQZXJz
aXN0ZW50IiA6ICJUZW1wb3JhcnkiOworCisgICAgU3RyaW5nIG5hbWUgPSBzdG9yYWdlSWRlbnRp
ZmllcjsKKyAgICBuYW1lICs9ICI6IjsKKyAgICBuYW1lICs9IHR5cGVTdHJpbmc7CisKKyAgICBT
dHJpbmcgcm9vdFBhdGggPSBiYXNlUGF0aDsKKyAgICByb290UGF0aC5hcHBlbmQoUGxhdGZvcm1G
aWxlUGF0aFNlcGFyYXRvcik7CisgICAgcm9vdFBhdGggKz0gc3RvcmFnZUlkZW50aWZpZXI7Cisg
ICAgcm9vdFBhdGguYXBwZW5kKFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IpOworICAgIHJvb3RQ
YXRoICs9IHR5cGVTdHJpbmc7CisgICAgcm9vdFBhdGguYXBwZW5kKFBsYXRmb3JtRmlsZVBhdGhT
ZXBhcmF0b3IpOworCisgICAgY2FsbGJhY2tzLT5kaWRPcGVuRmlsZVN5c3RlbShuYW1lLCByb290
UGF0aCk7Cit9CisjZW5kaWYKKworLy8gUHJvdmlkZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgor
U3RyaW5nIEFzeW5jRmlsZVN5c3RlbTo6dmlydHVhbFRvUGxhdGZvcm1QYXRoKGNvbnN0IFN0cmlu
ZyYgcGF0aCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIW1fcGxhdGZvcm1Sb290UGF0aC5pc0VtcHR5
KCkpOworICAgIFN0cmluZyB2aXJ0dWFsUGF0aCA9IHBhdGg7CisgICAgcmV0dXJuIG1fcGxhdGZv
cm1Sb290UGF0aCArIHZpcnR1YWxQYXRoLnJlcGxhY2UoJy8nLCBQbGF0Zm9ybUZpbGVQYXRoU2Vw
YXJhdG9yKTsKK30KKwordm9pZCBBc3luY0ZpbGVTeXN0ZW06OnNldFBsYXRmb3JtUm9vdFBhdGgo
Y29uc3QgU3RyaW5nJiBwbGF0Zm9ybVJvb3RQYXRoKQoreworICAgIG1fcGxhdGZvcm1Sb290UGF0
aCA9IHBsYXRmb3JtUm9vdFBhdGg7Cit9CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBF
TkFCTEUoRklMRV9TWVNURU0pCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmls
ZVN5c3RlbS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wYjI3ZjEzMTkwZGMwNDU0MWI4ODY1MjZjODM2ZDUxMzhiODE0YjcyCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaApAQCAtMCwwICsxLDkwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBBc3luY0ZpbGVTeXN0ZW1faAorI2RlZmluZSBBc3luY0ZpbGVTeXN0ZW1faAorCisj
aWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEFzeW5jRmlsZVN5c3RlbTsKK2NsYXNzIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczsKKworLy8g
VGhpcyBjbGFzcyBwcm92aWRlcyBhc3luYyBpbnRlcmZhY2UgZm9yIHBsYXRmb3JtLXNwZWNpZmlj
IERPTUZpbGVTeXN0ZW0gaW1wbGVtZW50YXRpb24uIE5vdGUgdGhhdCBhbGwgdGhlIG1ldGhvZHMg
dGFrZSBjYW5vbmljYWxpemVkIHZpcnR1YWwgcGF0aHMuCitjbGFzcyBBc3luY0ZpbGVTeXN0ZW0g
OiBwdWJsaWMgTm9uY29weWFibGUgeworcHVibGljOgorICAgIHZpcnR1YWwgfkFzeW5jRmlsZVN5
c3RlbSgpIHsgfQorCisgICAgLy8gRmlsZVN5c3RlbSB0eXBlCisgICAgZW51bSBUeXBlIHsKKyAg
ICAgICAgVGVtcG9yYXJ5LAorICAgICAgICBQZXJzaXN0ZW50LAorICAgIH07CisKKyAgICB2aXJ0
dWFsIHZvaWQgc3RvcCgpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHko
KSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgLy8gQ3JlYXRlcyBhIG5ldyBwbGF0Zm9ybS1zcGVj
aWZpYyBBc3luY0ZpbGVTeXN0ZW0gaW5zdGFuY2UgaWYgdGhlIHBsYXRmb3JtIGhhcyBpdHMgb3du
IGltcGxlbWVudGF0aW9uLgorICAgIC8vIEl0IGlzIE9LIHRvIHJldHVybiBudWxsIGhlcmU7IGlu
IHRoYXQgY2FzZSB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMgRmlsZVRocmVh
ZCB3aWxsIGJlIHVzZWQuCisgICAgc3RhdGljIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBj
cmVhdGVQbGF0Zm9ybUFzeW5jRmlsZVN5c3RlbSgpOworCisgICAgLy8gT3BlbnMgYSBuZXcgZmls
ZSBzeXN0ZW0uCisgICAgc3RhdGljIHZvaWQgb3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBi
YXNlUGF0aCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlSWRlbnRpZmllciwgVHlwZSwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKKworICAgIHZpcnR1YWwgdm9pZCBtb3ZlKGNv
bnN0IFN0cmluZyYgc3JjUGF0aCwgY29uc3QgU3RyaW5nJiBkZXN0UGF0aCwgUGFzc093blB0cjxB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvcHkoY29u
c3QgU3RyaW5nJiBzcmNQYXRoLCBjb25zdCBTdHJpbmcmIGRlc3RQYXRoLCBQYXNzT3duUHRyPEFz
eW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKGNv
bnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHJlYWRNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIFBh
c3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBjcmVhdGVGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCBleGNsdXNpdmUsIFBhc3NPd25Q
dHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjcmVh
dGVEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBib29sIGV4Y2x1c2l2ZSwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZpbGVF
eGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxi
YWNrcz4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlyZWN0b3J5RXhpc3RzKGNvbnN0IFN0cmlu
ZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisKKyAg
ICAvLyBDb252ZXJ0cyBhIGdpdmVuIGFic29sdXRlIHZpcnR1YWwgcGF0aCB0byBhIHBsYXRmb3Jt
IHBhdGggdGhhdCBzdGFydHMgd2l0aCB0aGUgcGxhdGZvcm0gcm9vdCBwYXRoIG9mIHRoaXMgZmls
ZSBzeXN0ZW0uCisgICAgdmlydHVhbCBTdHJpbmcgdmlydHVhbFRvUGxhdGZvcm1QYXRoKGNvbnN0
IFN0cmluZyYgcGF0aCkgY29uc3Q7CisKKyAgICAvLyBTZXQgcGxhdGZvcm0gcm9vdCBwYXRoLgor
ICAgIHZvaWQgc2V0UGxhdGZvcm1Sb290UGF0aChjb25zdCBTdHJpbmcmIHBsYXRmb3JtUm9vdFBh
dGgpOworCitwcm90ZWN0ZWQ6CisgICAgQXN5bmNGaWxlU3lzdGVtKCkgeyB9CisKKyAgICBTdHJp
bmcgbV9wbGF0Zm9ybVJvb3RQYXRoOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjZW5kaWYgLy8gQXN5bmNGaWxlU3lzdGVt
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
LmggYi9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVmMzk5OTk1OWFmMTg1NDc2MTcyOWM0ZmNkZjVmMmU3NjY4YmFkYTUKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oCkBAIC0w
LDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrc19oCisjZGVmaW5lIEFz
eW5jRmlsZVN5c3RlbUNhbGxiYWNrc19oCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEFzeW5jRmlsZVN5c3RlbTsKKworY2xhc3MgQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzIDogcHVi
bGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICAvLyBDYWxsZWQgd2hlbiBhIHJlcXVlc3Rl
ZCBvcGVyYXRpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4KKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkU3VjY2VlZCgpID0gMDsKKworICAgIC8vIENhbGxlZCB3aGVuIGEgcmVxdWVzdGVkIGZpbGUg
c3lzdGVtIGlzIG9wZW5lZC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkT3BlbkZpbGVTeXN0ZW0oY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoKSA9IDA7CisKKyAgICAvLyBD
YWxsZWQgd2hlbiBhIGZpbGUgbWV0YWRhdGEgaXMgcmVhZCBzdWNjZXNzZnVsbHkuCisgICAgdmly
dHVhbCB2b2lkIGRpZFJlYWRNZXRhZGF0YShkb3VibGUgbW9kaWZpY2F0aW9uVGltZSkgPSAwOwor
CisgICAgLy8gQ2FsbGVkIHdoZW4gYSBkaXJlY3RvcnkgZW50cnkgaXMgcmVhZC4KKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVhZERpcmVjdG9yeUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBp
c0RpcmVjdG9yeSkgPSAwOworCisgICAgLy8gQ2FsbGVkIGFmdGVyIGEgY2h1bmsgb2YgZGlyZWN0
b3J5IGVudHJpZXMgaGF2ZSBiZWVuIHJlYWQgKGkuZS4gaW5kaWNhdGVzIGl0J3MgZ29vZCB0aW1l
IHRvIGNhbGwgYmFjayB0byB0aGUgYXBwbGljYXRpb24pLiAgSWYgaGFzTW9yZSBpcyB0cnVlIHRo
ZXJlIGNhbiBiZSBtb3JlIGNodW5rcy4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVhZERpcmVjdG9y
eUNodW5rRG9uZShib29sIGhhc01vcmUpID0gMDsKKworICAgIC8vIENhbGxlZCB3aGVuIHRoZXJl
IHdhcyBhbiBlcnJvci4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChpbnQgY29kZSkgPSAwOwor
CisgICAgdmlydHVhbCB+QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzKCkgeyB9Cit9OworCit9IC8v
IG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjZW5kaWYgLy8g
QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
RmlsZVN5c3RlbS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKaW5kZXggZWM3NWEy
MTAzYTU1MDg3M2M1N2U0MTdlNmYzMzJlMDhiNjhkN2FkZi4uZTM5MTZjZmUwYWM1OTY3MTdlOWE0
ZjJiZDllNWJlMDA2MjI2ZDA4MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lz
dGVtLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKQEAgLTEzOCw2ICsxMzgs
MTIgQEAgZW51bSBGaWxlU2Vla09yaWdpbiB7CiAgICAgU2Vla0Zyb21FbmQKIH07CiAKKyNpZiBP
UyhXSU5ET1dTKQorc3RhdGljIGNvbnN0IGNoYXIgUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvciA9
ICdcXCc7CisjZWxzZQorc3RhdGljIGNvbnN0IGNoYXIgUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRv
ciA9ICcvJzsKKyNlbmRpZgorCiBib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJik7CiBib29s
IGRlbGV0ZUZpbGUoY29uc3QgU3RyaW5nJik7CiBib29sIGRlbGV0ZUVtcHR5RGlyZWN0b3J5KGNv
bnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0u
Y3BwIGIvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uY3BwCmluZGV4IGMzZGJkMzQwMTRl
YTIwZWNlZmQ4YWFkZDdjNmJkYzlkYmQwZWU5NjIuLjVkNjA3M2EzZTllYzEyMzk2NGEyMmI5NjY5
NDZiYjM2MGEyMzllZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVt
LmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5jcHAKQEAgLTMzLDEzICsz
MywyMCBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCisjaW5jbHVkZSAiQXN5bmNGaWxl
U3lzdGVtLmgiCiAjaW5jbHVkZSAiRGlyZWN0b3J5RW50cnkuaCIKKyNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRE9NRmlsZVN5c3Rl
bTo6RE9NRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBh
dGgpCi0gICAgOiBtX3Jvb3RQYXRoKHJvb3RQYXRoKQorRE9NRmlsZVN5c3RlbTo6RE9NRmlsZVN5
c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUs
IFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBhc3luY0ZpbGVTeXN0ZW0pCisgICAgOiBBY3Rp
dmVET01PYmplY3QoY29udGV4dCwgdGhpcykKICAgICAsIG1fbmFtZShuYW1lKQorICAgICwgbV9h
c3luY0ZpbGVTeXN0ZW0oYXN5bmNGaWxlU3lzdGVtKQoreworfQorCitET01GaWxlU3lzdGVtOjp+
RE9NRmlsZVN5c3RlbSgpCiB7CiB9CiAKQEAgLTQ4LDYgKzU1LDIxIEBAIFBhc3NSZWZQdHI8RGly
ZWN0b3J5RW50cnk+IERPTUZpbGVTeXN0ZW06OnJvb3QoKQogICAgIHJldHVybiBEaXJlY3RvcnlF
bnRyeTo6Y3JlYXRlKHRoaXMsICIvIik7CiB9CiAKK3ZvaWQgRE9NRmlsZVN5c3RlbTo6c3RvcCgp
Cit7CisgICAgbV9hc3luY0ZpbGVTeXN0ZW0tPnN0b3AoKTsKK30KKworYm9vbCBET01GaWxlU3lz
dGVtOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAoreworICAgIHJldHVybiBtX2FzeW5jRmls
ZVN5c3RlbS0+aGFzUGVuZGluZ0FjdGl2aXR5KCk7Cit9CisKK3ZvaWQgRE9NRmlsZVN5c3RlbTo6
Y29udGV4dERlc3Ryb3llZCgpCit7CisgICAgbV9hc3luY0ZpbGVTeXN0ZW0tPnN0b3AoKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmggYi9XZWJDb3JlL3N0b3JhZ2Uv
RE9NRmlsZVN5c3RlbS5oCmluZGV4IGI4N2FhYWYzMmNkOWVhYzBmMjJjNDllZTE3NjcyZGQ1YTJl
Nzc2NzMuLjMzN2JlYTljYmVlYzBiN2ZlMjNiOTQ1YjM5M2E1MzQ3MGQ5NDUyZjMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdl
L0RPTUZpbGVTeXN0ZW0uaApAQCAtMzMsNiArMzMsOSBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lT
VEVNKQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiQXN5bmNGaWxl
U3lzdGVtLmgiCisjaW5jbHVkZSAiRmxhZ3MuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KQEAgLTQwLDIyICs0MywzMCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaXJl
Y3RvcnlFbnRyeTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKLWNsYXNzIERPTUZp
bGVTeXN0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxET01GaWxlU3lzdGVtPiB7CitjbGFzcyBET01G
aWxlU3lzdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NRmlsZVN5c3RlbT4sIHB1YmxpYyBBY3Rp
dmVET01PYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUZpbGVTeXN0
ZW0+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NRmlsZVN5c3RlbT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0cjxBc3luY0Zp
bGVTeXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgRE9NRmlsZVN5c3RlbShuYW1lLCByb290UGF0aCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IERPTUZpbGVTeXN0ZW0oY29udGV4dCwgbmFtZSwgYXN5bmNGaWxlU3lzdGVtKSk7
CiAgICAgfQogCisgICAgdmlydHVhbCB+RE9NRmlsZVN5c3RlbSgpOworCiAgICAgY29uc3QgU3Ry
aW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgUGFzc1JlZlB0cjxEaXJl
Y3RvcnlFbnRyeT4gcm9vdCgpOwogCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IG1ldGhvZHMuCisg
ICAgdmlydHVhbCB2b2lkIHN0b3AoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKTsKKwogcHJp
dmF0ZToKLSAgICBET01GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiByb290UGF0aCk7CisgICAgRE9NRmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4pOwogCi0gICAg
U3RyaW5nIG1fcm9vdFBhdGg7CiAgICAgU3RyaW5nIG1fbmFtZTsKKyAgICBtdXRhYmxlIE93blB0
cjxBc3luY0ZpbGVTeXN0ZW0+IG1fYXN5bmNGaWxlU3lzdGVtOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcCBi
L1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcAppbmRleCBlYzM1MmRkN2Q2
ZTkyYzdjODdhMzgwNGIzY2QzOGNjM2RkYTFlODE4Li4wZjgyNThjM2EwNDNlMmI3YjI0N2FiM2Jk
YWFhNGUwY2Q1YzQ0NWQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNh
bGxiYWNrcy5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3Bw
CkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2U6OmRpZFJlYWRE
aXJlY3RvcnlFbnRyeShjb25zdCBTdHJpbmcmLCBib29sKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlOjpkaWRGYWlsKEV4Y2VwdGlv
bkNvZGUgY29kZSkKK3ZvaWQgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2U6OmRpZEZhaWwoaW50IGNv
ZGUpCiB7CiAgICAgaWYgKG1fZXJyb3JDYWxsYmFjaykgewogICAgICAgICBtX2Vycm9yQ2FsbGJh
Y2stPmhhbmRsZUV2ZW50KEZpbGVFcnJvcjo6Y3JlYXRlKGNvZGUpLmdldCgpKTsKQEAgLTE1Miwx
NiArMTUyLDIxIEBAIHZvaWQgRW50cmllc0NhbGxiYWNrczo6ZGlkUmVhZERpcmVjdG9yeUNodW5r
RG9uZShib29sIGhhc01vcmUpCiAKIC8vIEZpbGVTeXN0ZW1DYWxsYmFja3MgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotRmlsZVN5c3Rl
bUNhbGxiYWNrczo6RmlsZVN5c3RlbUNhbGxiYWNrcyhQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxs
YmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2Fs
bGJhY2spCitGaWxlU3lzdGVtQ2FsbGJhY2tzOjpGaWxlU3lzdGVtQ2FsbGJhY2tzKFBhc3NSZWZQ
dHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JD
YWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
UGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSkKICAgICA6IEZpbGVT
eXN0ZW1DYWxsYmFja3NCYXNlKGVycm9yQ2FsbGJhY2spCiAgICAgLCBtX3N1Y2Nlc3NDYWxsYmFj
ayhzdWNjZXNzQ2FsbGJhY2spCisgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4
dCkKKyAgICAsIG1fYXN5bmNGaWxlU3lzdGVtKGFzeW5jRmlsZVN5c3RlbSkKIHsKIH0KIAogdm9p
ZCBGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpCiB7Ci0gICAgaWYgKG1fc3VjY2Vzc0NhbGxiYWNr
KQotICAgICAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRmlsZVN5c3RlbTo6
Y3JlYXRlKG5hbWUsIHJvb3RQYXRoKS5nZXQoKSk7CisgICAgaWYgKG1fc3VjY2Vzc0NhbGxiYWNr
KSB7CisgICAgICAgIEFTU0VSVChtX2FzeW5jRmlsZVN5c3RlbSk7CisgICAgICAgIG1fYXN5bmNG
aWxlU3lzdGVtLT5zZXRQbGF0Zm9ybVJvb3RQYXRoKHJvb3RQYXRoKTsKKyAgICAgICAgbV9zdWNj
ZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50KERPTUZpbGVTeXN0ZW06OmNyZWF0ZShtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQsIG5hbWUsIG1fYXN5bmNGaWxlU3lzdGVtLnJlbGVhc2UoKSkuZ2V0KCkp
OworICAgIH0KICAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwogfQogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oIGIvV2ViQ29yZS9zdG9yYWdl
L0ZpbGVTeXN0ZW1DYWxsYmFja3MuaAppbmRleCBlMGU3OGQzNzBjMjFlMzM3YjI0OGQzOGFjODk2
ZDFhN2UwZWNiMTMwLi4zY2EzZjU1Zjg4MzI3YTE0M2VkYjQyMzc0NGIyMTAxZDM3NzBmYzBjIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oCisrKyBiL1dl
YkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAog
I2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKIAorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbUNhbGxi
YWNrcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00OSwxMCArNTAsNyBAQCBjbGFz
cyBNZXRhZGF0YUNhbGxiYWNrOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNz
IFZvaWRDYWxsYmFjazsKIAotdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQotLy8gQSBiYXNl
IGNsYXNzIGZvciBGaWxlU3lzdGVtIGNhbGxiYWNrcyB0aGF0IGJ1bmRsZXMgc3VjY2Vzc0NhbGxi
YWNrLCBlcnJvckNhbGxiYWNrIGFuZCBzb21lIGNsb3N1cmUgZGF0YSBmb3IgdGhlIGNhbGxiYWNr
cy4KLWNsYXNzIEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlIDogcHVibGljIE5vbmNvcHlhYmxlIHsK
K2NsYXNzIEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlIDogcHVibGljIEFzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrcyB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2Uo
KTsKIApAQCAtNzAsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlYWRE
aXJlY3RvcnlDaHVua0RvbmUoYm9vbCBoYXNNb3JlKTsKIAogICAgIC8vIEZvciBFcnJvckNhbGxi
YWNrLgotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKEV4Y2VwdGlvbkNvZGUgY29kZSk7CisgICAg
dmlydHVhbCB2b2lkIGRpZEZhaWwoaW50IGNvZGUpOwogCiBwcm90ZWN0ZWQ6CiAgICAgRmlsZVN5
c3RlbUNhbGxiYWNrc0Jhc2UoUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNr
KTsKQEAgLTEwNiwxMSArMTA0LDEzIEBAIHByaXZhdGU6CiAKIGNsYXNzIEZpbGVTeXN0ZW1DYWxs
YmFja3MgOiBwdWJsaWMgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UgewogcHVibGljOgotICAgIEZp
bGVTeXN0ZW1DYWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+LCBQYXNzUmVm
UHRyPEVycm9yQ2FsbGJhY2s+KTsKKyAgICBGaWxlU3lzdGVtQ2FsbGJhY2tzKFBhc3NSZWZQdHI8
RmlsZVN5c3RlbUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPik7CiAgICAgdmlydHVh
bCB2b2lkIGRpZE9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiByb290UGF0aCk7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4g
bV9zdWNjZXNzQ2FsbGJhY2s7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0OworICAgIE93blB0cjxBc3luY0ZpbGVTeXN0ZW0+IG1fYXN5bmNGaWxl
U3lzdGVtOwogfTsKIAogY2xhc3MgTWV0YWRhdGFDYWxsYmFja3MgOiBwdWJsaWMgRmlsZVN5c3Rl
bUNhbGxiYWNrc0Jhc2UgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0ZsYWdzLmggYi9X
ZWJDb3JlL3N0b3JhZ2UvRmxhZ3MuaAppbmRleCBmZmUzNDAzOGEwNGM0MGNlOWUzYTg3NTgzMGIx
YmI4MDVjZjY2ZWJiLi4zMDg4NGZjYzQzZmRmMmEzYTA2NDVmOWQ1OWFkOWE4ZWI3ZWQ2MDRkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRmxhZ3MuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2Uv
RmxhZ3MuaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxG
aWxlU3lzdGVtLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbEZpbGVTeXN0ZW0uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZkM2QzNjYyMzEyZDk0YjI3MDQ2OTVjNGFkMWI0YjAxNzQwYzg5MWQKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmNwcApAQCAtMCwwICsx
LDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsRmlsZVN5c3RlbS5oIgor
CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisjZXJyb3IgIkNocm9taXVtIHNob3VsZCBub3QgY29t
cGlsZSB0aGlzIGZpbGUgYW5kIGluc3RlYWQgZGVmaW5lIGl0cyBvd24gdmVyc2lvbiBvZiB0aGVz
ZSBmYWN0b3JpZXMuIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNs
dWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJFcnJvckNhbGxiYWNrLmgiCisjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZpbGVFcnJvci5oIgorI2luY2x1ZGUgIkZpbGVT
eXN0ZW1DYWxsYmFjay5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1DYWxsYmFja3MuaCIKKyNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Bhc3NSZWZQdHI8TG9jYWxGaWxlU3lzdGVtPiBMb2NhbEZpbGVTeXN0ZW06OmNyZWF0ZShjb25z
dCBTdHJpbmcmIGJhc2VQYXRoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTG9jYWxGaWxl
U3lzdGVtKGJhc2VQYXRoKSk7Cit9CisKK3ZvaWQgTG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0Rmls
ZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVTeXN0ZW06
OlR5cGUgdHlwZSwgbG9uZyBsb25nLCBQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4gc3Vj
Y2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCit7
CisgICAgaWYgKHR5cGUgIT0gQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3JhcnkgJiYgdHlwZSAhPSBB
c3luY0ZpbGVTeXN0ZW06OlBlcnNpc3RlbnQpIHsKKyAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFu
ZGxlRXZlbnQoRmlsZUVycm9yOjpjcmVhdGUoSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKS5nZXQo
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBPd25QdHI8QXN5bmNGaWxlU3lzdGVt
PiBhc3luY0ZpbGVTeXN0ZW0gPSBBc3luY0ZpbGVTeXN0ZW06OmNyZWF0ZVBsYXRmb3JtQXN5bmNG
aWxlU3lzdGVtKCk7CisgICAgaWYgKCFhc3luY0ZpbGVTeXN0ZW0pIHsKKyAgICAgICAgLy8gRklY
TUU6IENyZWF0ZSB0aGUgdGhyZWFkIHZlcnNpb24gb2YgQXN5bmNGaWxlU3lzdGVtICh0aGF0IGhh
c24ndCBiZWVuIGFkZGVkKSBpZiBubyBwbGF0Zm9ybS1zcGVjaWZpYyBBc3luY0ZpbGVTeXN0ZW0g
aW1wbGVtZW50YXRpb24gaXMgcHJvdmlkZWQuCisgICAgICAgIC8vIChUaGUgdGhyZWFkIHZlcnNp
b24gcmVxdWlyZXMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBhbmQgdGhhdCdzIHdoeSBBc3luY0Zp
bGVTeXN0ZW0gaXMgY3JlYXRlZCBoZXJlIHJhdGhlciB0aGFuIGluIHRoZSBjYWxsYmFjayBwYXRo
LikKKyAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRmlsZUVycm9yOjpjcmVhdGUo
Tk9UX1NVUFBPUlRFRF9FUlIpLmdldCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IEFzeW5jRmlsZVN5c3RlbTo6b3BlbkZpbGVTeXN0ZW0obV9iYXNlUGF0aCwgY29udGV4dC0+c2Vj
dXJpdHlPcmlnaW4oKS0+ZGF0YWJhc2VJZGVudGlmaWVyKCksIHR5cGUsIG5ldyBGaWxlU3lzdGVt
Q2FsbGJhY2tzKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgY29udGV4dCwgYXN5bmNG
aWxlU3lzdGVtLnJlbGVhc2UoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8g
RU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0xvY2FsRmls
ZVN5c3RlbS5oIGIvV2ViQ29yZS9zdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ4YmMyZmRiZmRhZGVkYjc4NWFlMDU2ZjYwYTJiMmY3MDg0ZTViMDcKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmgKQEAgLTAsMCArMSw2NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgTG9jYWxGaWxlU3lzdGVtX2gKKyNkZWZpbmUgTG9jYWxGaWxlU3lzdGVtX2gKKworI2lm
IEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEVycm9yQ2FsbGJhY2s7CitjbGFzcyBGaWxlU3lzdGVtQ2FsbGJhY2s7CitjbGFzcyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OworCitjbGFzcyBMb2NhbEZpbGVTeXN0ZW0gOiBwdWJsaWMgUmVmQ291
bnRlZDxMb2NhbEZpbGVTeXN0ZW0+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxM
b2NhbEZpbGVTeXN0ZW0+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGJhc2VQYXRoKTsKKyAgICB2aXJ0
dWFsIH5Mb2NhbEZpbGVTeXN0ZW0oKSB7IH0KKworICAgIHZvaWQgcmVxdWVzdEZpbGVTeXN0ZW0o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBsb25n
IGxvbmcgc2l6ZSwgUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVy
cm9yQ2FsbGJhY2s+KTsKKworcHJvdGVjdGVkOgorICAgIExvY2FsRmlsZVN5c3RlbShjb25zdCBT
dHJpbmcmIGJhc2VQYXRoKQorICAgICAgICA6IG1fYmFzZVBhdGgoYmFzZVBhdGgpCisgICAgewor
ICAgIH0KKworICAgIFN0cmluZyBtX2Jhc2VQYXRoOworfTsKKworfSAvLyBuYW1lc3BhY2UKKwor
I2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2VuZGlmIC8vIExvY2FsRmlsZVN5c3Rl
bV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65482</attachid>
            <date>2010-08-25 15:18:40 -0700</date>
            <delta_ts>2010-08-25 18:30:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44433-20100825151839.patch</filename>
            <type>text/plain</type>
            <size>41488</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDMyZDJkNTcxY2M1MmI0MGE1ZmJhZjc1M2NlMjAyMzU4ZDdmMWI5MGUuLmFiNjUy
MjVmYjM1NzZiOGE4NWYwZmUwMDI2MzAxNDM2MjQ2YTRjNTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIxMSw2ICsx
MjExLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1l
QW5pbWF0aW9uLmNwcAogCiAgICAgcGxhdGZvcm0vQXJlbmEuY3BwCisgICAgcGxhdGZvcm0vQXN5
bmNGaWxlU3lzdGVtLmNwcAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmNwcAogICAgIHBsYXRmb3Jt
L0NvbnRlbnRUeXBlLmNwcAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmNwcApAQCAtMTQ4Myw2
ICsxNDg0LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHN0b3JhZ2UvSURCRmFjdG9yeS5j
cHAKICAgICBzdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcAogICAgIHN0b3Jh
Z2UvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcAorICAgIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVt
LmNwcAogICAgIHN0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5jcHAKICAgICBzdG9yYWdlL0xvY2Fs
U3RvcmFnZVRocmVhZC5jcHAKICAgICBzdG9yYWdlL09yaWdpblF1b3RhTWFuYWdlci5jcHAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY2
NjJlNzM0OTg4YTE5MzE3NjJjMjk0Y2UwNTZkODZjNDAyZmI4Mi4uYTI4MjFhNWIwY2E0ZjI3MGZm
ZmNhMzQ5ZjJkNTI3M2JiNGI3ZDVhMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0wOC0yMyAgS2ludWtv
IFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFzeW5jRmlsZVN5c3RlbSBpbnRlcmZhY2UgZm9y
IHBsYXRmb3JtLWRlcGVuZGVudCBGaWxlU3lzdGVtIEFQSSBpbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ0MzMKKworICAgICAg
ICBObyBuZXcgdGVzdHM7IHRlc3RzIHdpbGwgYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L0FzeW5jRmlsZVN5c3RlbS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmls
ZVN5c3RlbS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3MuaDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06OkRPTUZpbGVTeXN0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6fkRPTUZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NRmlsZVN5c3RlbTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVt
OjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6
Y29udGV4dERlc3Ryb3llZCk6CisgICAgICAgICogc3RvcmFnZS9ET01GaWxlU3lzdGVtLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpjcmVhdGUpOgorICAgICAgICAqIHN0b3Jh
Z2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
Q2FsbGJhY2tzQmFzZTo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtQ2Fs
bGJhY2tzOjpGaWxlU3lzdGVtQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1DYWxsYmFja3M6OmRpZE9wZW5GaWxlU3lzdGVtKToKKyAgICAgICAgKiBzdG9yYWdlL0ZpbGVT
eXN0ZW1DYWxsYmFja3MuaDoKKyAgICAgICAgKiBzdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5jcHA6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmg6IEFkZGVkLgorCisg
ICAgICAgICogc3RvcmFnZS9GbGFncy5oOiBOaXRzIGZpeC4KKwogMjAxMC0wOC0yNSAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCA4MTE3ZGZlZmMxOWE3YzM3ZDg1OWNjYTkwOWMxM2Q3YWZlNDRh
MjE4Li45MjI4YzM0ZDcyYjY1MjViNGQyOTgyMzBkNTE1NTY0MDNmNjdjNzUyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzA0
MCw2ICszMDQwLDkgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9BcmVuYS5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL0FyZW5hLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0FzeW5jRmls
ZVN0cmVhbS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaCcsCisgICAgICAgICAgICAn
cGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL0F1dG9kcmFpbmVkUG9vbC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9CbG9iSXRlbS5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Jsb2JJdGVtLmgnLApAQCAtMzYzNSw2ICszNjM4
LDcgQEAKICAgICAgICAgICAgICdzdG9yYWdlL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgnLAog
ICAgICAgICAgICAgJ3N0b3JhZ2UvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAnLAogICAg
ICAgICAgICAgJ3N0b3JhZ2UvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oJywKKyAgICAgICAg
ICAgICdzdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0xv
Y2FsU3RvcmFnZVRhc2suY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0xvY2FsU3RvcmFnZVRh
c2suaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuY3BwJywKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4
IDYyZDFjNjgzZWRiMWFmN2U3ZTdiMWQ2ZjgxZjBmNDljM2UzNTYzZGMuLmIzY2RhZWE5NDJmMjU4
MDFhN2JiMzhjZWI0MWVjYzg3MDg5MjRiOTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODc0LDYgKzg3NCw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwIFwKICAgICBwbGF0Zm9y
bS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAgXAogICAgIHBsYXRmb3JtL0FyZW5hLmNwcCBc
CisgICAgcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcCBcCiAgICAgcGxhdGZvcm0vQmxvYkl0
ZW0uY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAgXAogICAgIHBsYXRmb3JtL3Rl
eHQvQmlkaUNvbnRleHQuY3BwIFwKQEAgLTE2NTksNiArMTY2MCw4IEBAIEhFQURFUlMgKz0gXAog
ICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmggXAogICAgIHBsYXRmb3JtL0Fy
ZW5hLmggXAogICAgIHBsYXRmb3JtL0FzeW5jRmlsZVN0cmVhbS5oIFwKKyAgICBwbGF0Zm9ybS9B
c3luY0ZpbGVTeXN0ZW0uaCBcCisgICAgcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
LmggXAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmggXAogICAgIHBsYXRmb3JtL0NvbnRlbnRUeXBl
LmggXAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmggXApAQCAtMjU5Niw2ICsyNTk5LDcgQEAg
Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTEVfU1lTVEVNPTEpIHsKICAgICAgICAgc3RvcmFn
ZS9GaWxlU3lzdGVtQ2FsbGJhY2suaCBcCiAgICAgICAgIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxi
YWNrcy5oIFwKICAgICAgICAgc3RvcmFnZS9GbGFncy5oIFwKKyAgICAgICAgc3RvcmFnZS9Mb2Nh
bEZpbGVTeXN0ZW0uaCBcCiAgICAgICAgIHN0b3JhZ2UvTWV0YWRhdGEuaCBcCiAgICAgICAgIHN0
b3JhZ2UvTWV0YWRhdGFDYWxsYmFjay5oCiAKQEAgLTI2MDcsNyArMjYxMSw4IEBAIGNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9GSUxFX1NZU1RFTT0xKSB7CiAgICAgICAgIHN0b3JhZ2UvRW50cnku
Y3BwIFwKICAgICAgICAgc3RvcmFnZS9FbnRyeUFycmF5LmNwcCBcCiAgICAgICAgIHN0b3JhZ2Uv
RmlsZUVudHJ5LmNwcCBcCi0gICAgICAgIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHAK
KyAgICAgICAgc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcCBcCisgICAgICAgIHN0b3Jh
Z2UvTG9jYWxGaWxlU3lzdGVtLmNwcAogfQogCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSUNP
TkRBVEFCQVNFPTEpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGY3
OTIwNmI3ZmM4MDMwNDhiYmNmNzZmMDM5NWUyNGE1ZDFjYmQ2NDcuLjc3YmZmNDAxZDBkYjkyNDY5
ODU1N2NjYjI3MGQyOGFiODMzMzVmOGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagpAQCAtMjM5ODksNiArMjM5ODksMTggQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxG
aWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cQXN5bmNGaWxlU3lzdGVtLmNwcCIN
CisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXEFzeW5jRmlsZVN5c3RlbS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwbGF0Zm9ybVxBdXRvZHJhaW5lZFBvb2wuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC01
MTQyOSw2ICs1MTQ0MSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXExvY2FsRmlsZVN5c3RlbS5jcHAiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXExvY2Fs
RmlsZVN5c3RlbS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cc3RvcmFnZVxMb2NhbFN0b3JhZ2VUaHJlYWQuY3BwIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
ZWY0YjgwNGI5YzRlNmJmZWU2ZTAzZDVmNzQwYjI4Y2JmNjAwNGVhYi4uNjcwNWNjOTFiOGY5MWY2
OTIxOGNlODRlZWM5YjEwMmJkMTJiZGM5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTIzOTUsNiArMjM5NSw4IEBACiAJCTg5NTI1M0RGMTE2QzRGMDYw
MENBQkYwMCAvKiBGaWxlVGhyZWFkVGFzay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODk1MjUzREUxMTZDNEYwNjAwQ0FCRjAwIC8qIEZpbGVUaHJlYWRU
YXNrLmggKi87IH07CiAJCTg5Njg2QzlGMTIyMjQ0QTAwMDc2RUFBNCAvKiBET01GaWxlUGF0aC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTY4NkM5
RDEyMjI0NEEwMDA3NkVBQTQgLyogRE9NRmlsZVBhdGguY3BwICovOyB9OwogCQk4OTY4NkNBMDEy
MjI0NEEwMDA3NkVBQTQgLyogRE9NRmlsZVBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5Njg2QzlFMTIyMjQ0QTAwMDc2RUFBNCAvKiBET01GaWxl
UGF0aC5oICovOyB9OworCQk4OTg3ODNEMzEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lz
dGVtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5
ODc4M0QxMTIyMzJBMTMwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3BwICovOyB9OworCQk4
OTg3ODNENDEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTg3ODNEMjEyMjMyQTEzMDAzQUFC
REEgLyogTG9jYWxGaWxlU3lzdGVtLmggKi87IH07CiAJCTg5ODhFMTBFMTFBMzUwOEIwMERCNzMy
RSAvKiBCbG9iSXRlbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4OTg4RTEwQzExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uY3BwICovOyB9Owog
CQk4OTg4RTEwRjExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5ODhFMTBEMTFBMzUwOEIwMERCNzMyRSAv
KiBCbG9iSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTg5OUFCQzI2MTIxNUU0QTMwMEY5RjIxOSAvKiBEaXJlY3RvcnlFbnRyeS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTlBQkMyMDEyMTVF
NEEzMDBGOUYyMTkgLyogRGlyZWN0b3J5RW50cnkuY3BwICovOyB9OwpAQCAtMjQ0NCw2ICsyNDQ2
LDkgQEAKIAkJODlDMEREN0IxMjFGMEM2OTAwOUUxN0NBIC8qIEZpbGVTeXN0ZW1DYWxsYmFja3Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5QzBERDc5
MTIxRjBDNjkwMDlFMTdDQSAvKiBGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi87IH07CiAJCTg5Q0Qw
MjkzMTFDODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5Q0QwMjkxMTFDODVCODcwMDcwQjc5MSAv
KiBKU0Jsb2JCdWlsZGVyLmNwcCAqLzsgfTsKIAkJODlDRDAyOTQxMUM4NUI4NzAwNzBCNzkxIC8q
IEpTQmxvYkJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg5Q0QwMjkyMTFDODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JCdWlsZGVyLmggKi87IH07
CisJCTg5RDA4RDlGMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODlEMDhEOUMxMjIyODQ1
MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgKi87IH07CisJCTg5RDA4REEwMTIyMjg0
NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5RDA4RDlEMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0Zp
bGVTeXN0ZW0uaCAqLzsgfTsKKwkJODlEMDhEQTExMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmls
ZVN5c3RlbUNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODlEMDhEOUUxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxi
YWNrcy5oICovOyB9OwogCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2Fk
VGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
QTEyRTM1QzExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEE0MTNBRTAxMjA3QkJB
NTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNT
Y3JpcHRSdW5uZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREYx
MjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLzsgfTsKQEAgLTgyOTEs
NiArODI5Niw4IEBACiAJCTg5N0EyRDhFMTIwMDAzNUYwMDgyNzQwQyAvKiBKU0RPTUZpbGVTeXN0
ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01GaWxlU3lzdGVtLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5N0EyRDkxMTIwMDAzNzYwMDgyNzQwQyAv
KiBKU0ZsYWdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmxh
Z3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTdBMkQ5MjEyMDAwMzc2MDA4
Mjc0MEMgLyogSlNGbGFncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Zs
YWdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5ODc4M0QxMTIyMzJBMTMwMDNB
QUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTG9jYWxGaWxlU3lzdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJODk4NzgzRDIxMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbEZpbGVTeXN0ZW0uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODk4OEUxMEMxMUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJdGVtLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2JJdGVtLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODk4OEUxMEQxMUEzNTA4QjAwREI3MzJFIC8qIEJs
b2JJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2JJdGVtLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5OUFCQzIwMTIxNUU0QTMwMEY5RjIxOSAvKiBE
aXJlY3RvcnlFbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
aXJlY3RvcnlFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MzI2LDYg
KzgzMzMsOSBAQAogCQk4OUNEMDI3OTExQzg1OUE4MDA3MEI3OTEgLyogQmxvYkJ1aWxkZXIuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJsb2JCdWlsZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODlDRDAyOTExMUM4NUI4NzAwNzBCNzkxIC8qIEpTQmxvYkJ1aWxkZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNCbG9iQnVpbGRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5Q0QwMjkyMTFDODVCODcwMDcwQjc5
MSAvKiBKU0Jsb2JCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
QmxvYkJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODlEMDhEOUMxMjIy
ODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBc3luY0ZpbGVTeXN0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4OUQwOEQ5RDEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jRmlsZVN5c3RlbS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OUQwOEQ5RTEyMjI4NDUxMDAxMjQxREYgLyogQXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4QTEyRTM1QzExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50TG9hZFRpbWluZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNT
Y3JpcHRSdW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXN5bmNTY3Jp
cHRSdW5uZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE0MTNBREYxMjA3QkJB
NTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFzeW5jU2NyaXB0UnVubmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTExNjk0LDYgKzExNzA0LDggQEAKIAkJCQlCNjU2NjI2ODEyMEIxMTVBMDA2
RUE4NUMgLyogSURCVHJhbnNhY3Rpb24uaCAqLywKIAkJCQlCNjU2NjI2OTEyMEIxMTVBMDA2RUE4
NUMgLyogSURCVHJhbnNhY3Rpb24uaWRsICovLAogCQkJCUI2NTY2MjZEMTIwQjExNkIwMDZFQTg1
QyAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCAqLywKKwkJCQk4OTg3ODNEMTEy
MjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmNwcCAqLywKKwkJCQk4OTg3ODNEMjEy
MjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmggKi8sCiAJCQkJNTExRjIzMTMwREMx
NjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suY3BwICovLAogCQkJCTUxMUYyMzE0MERD
MTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmggKi8sCiAJCQkJNTExRjIzMTUwREMx
NjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRocmVhZC5jcHAgKi8sCkBAIC0xNjYxOSw2ICsx
NjYzMSw5IEBACiAJCQkJQkNGQjJGNzQwOTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmNwcCAqLywK
IAkJCQlCQ0ZCMkY3NTA5N0EyRTFBMDBCQTcwM0QgLyogQXJlbmEuaCAqLywKIAkJCQkyRUYxQkZG
NjEyMUNCMEJEMDBDMjc2MjcgLyogQXN5bmNGaWxlU3RyZWFtLmggKi8sCisJCQkJODlEMDhEOUMx
MjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgKi8sCisJCQkJODlEMDhEOUQx
MjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5oICovLAorCQkJCTg5RDA4RDlFMTIy
Mjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLywKIAkJCQk1MUUx
RUNCMTBDOTFDNTU2MDBEQzI1NUIgLyogQXV0b2RyYWluZWRQb29sLmggKi8sCiAJCQkJODk4OEUx
MEMxMUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJdGVtLmNwcCAqLywKIAkJCQk4OTg4RTEwRDExQTM1
MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uaCAqLywKQEAgLTIwMzg2LDYgKzIwNDAxLDkgQEAKIAkJ
CQk4OTQ3QTgyQzEyMjIyQzQ3MDBEOTVGMkQgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4OTQ3QTgzQzEyMjIzNEY0MDBEOTVGMkQgLyogTWV0YWRhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg5NDdBODNEMTIyMjM0RjkwMEQ5NUYyRCAvKiBNZXRhZGF0YUNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OUQwOERBMDEyMjI4NDUxMDAxMjQxREYgLyogQXN5
bmNGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OUQwOERBMTEyMjI4NDUxMDAxMjQx
REYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTg3
ODNENDEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTIyODQ1LDYgKzIyODYzLDggQEAKIAkJCQk4OTY4NkM5RjEyMjI0NEEwMDA3NkVBQTQgLyog
RE9NRmlsZVBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk0N0E4MjkxMjIyMkM0NzAwRDk1
RjJEIC8qIEpTTWV0YWRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk0N0E4MkIxMjIyMkM0
NzAwRDk1RjJEIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4
OUQwOEQ5RjEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTg5ODc4M0QzMTIyMzJBMTMwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5
c3RlbS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDFkMjYxYjYxNGFkYzUyZDBlMWNlMWQxN2QzYTNkYzMwZWM5MGYyOAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcApAQCAtMCwwICsxLDgy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorCisj
aWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Bhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBBc3luY0ZpbGVTeXN0ZW06OmNyZWF0ZVBsYXRm
b3JtQXN5bmNGaWxlU3lzdGVtKCkKK3sKKyAgICAvLyBSZXR1cm4gMCB0byB1c2UgdGhlIGRlZmF1
bHQgRmlsZVRocmVhZCBpbXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4gMDsKK30KKworLy8gRGVm
YXVsdCBpbXBsZW1lbnRhdGlvbi4KK3ZvaWQgQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3Rl
bShjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZGVudGlmaWVy
LCBUeXBlIHR5cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFj
a3MpCit7CisgICAgU3RyaW5nIHR5cGVTdHJpbmcgPSAodHlwZSA9PSBQZXJzaXN0ZW50KSA/ICJQ
ZXJzaXN0ZW50IiA6ICJUZW1wb3JhcnkiOworCisgICAgU3RyaW5nIG5hbWUgPSBzdG9yYWdlSWRl
bnRpZmllcjsKKyAgICBuYW1lICs9ICI6IjsKKyAgICBuYW1lICs9IHR5cGVTdHJpbmc7CisKKyAg
ICBTdHJpbmcgcm9vdFBhdGggPSBiYXNlUGF0aDsKKyAgICByb290UGF0aC5hcHBlbmQoUGxhdGZv
cm1GaWxlUGF0aFNlcGFyYXRvcik7CisgICAgcm9vdFBhdGggKz0gc3RvcmFnZUlkZW50aWZpZXI7
CisgICAgcm9vdFBhdGguYXBwZW5kKFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IpOworICAgIHJv
b3RQYXRoICs9IHR5cGVTdHJpbmc7CisgICAgcm9vdFBhdGguYXBwZW5kKFBsYXRmb3JtRmlsZVBh
dGhTZXBhcmF0b3IpOworCisgICAgc2V0UGxhdGZvcm1Sb290UGF0aChyb290UGF0aCk7CisgICAg
Y2FsbGJhY2tzLT5kaWRPcGVuRmlsZVN5c3RlbShuYW1lLCB0aGlzKTsKK30KKworLy8gRGVmYXVs
dCBpbXBsZW1lbnRhdGlvbi4KK1N0cmluZyBBc3luY0ZpbGVTeXN0ZW06OnZpcnR1YWxUb1BsYXRm
b3JtUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFtX3BsYXRm
b3JtUm9vdFBhdGguaXNFbXB0eSgpKTsKKyAgICBTdHJpbmcgdmlydHVhbFBhdGggPSBwYXRoOwor
ICAgIHJldHVybiBtX3BsYXRmb3JtUm9vdFBhdGggKyB2aXJ0dWFsUGF0aC5yZXBsYWNlKCcvJywg
UGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvcik7Cit9CisKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtOjpz
ZXRQbGF0Zm9ybVJvb3RQYXRoKGNvbnN0IFN0cmluZyYgcGxhdGZvcm1Sb290UGF0aCkKK3sKKyAg
ICBtX3BsYXRmb3JtUm9vdFBhdGggPSBwbGF0Zm9ybVJvb3RQYXRoOworfQorCit9IC8vIG5hbWVz
cGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxl
U3lzdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFlMjRjOWExNmE4NjQ0Mzk1NWU2ZWYwMjQ5MzgwYzI2MWM3
NDJjOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVt
LmgKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFzeW5jRmlsZVN5c3RlbV9oCisjZGVmaW5lIEFz
eW5jRmlsZVN5c3RlbV9oCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQXN5bmNGaWxlU3lzdGVtOworY2xhc3MgQXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzOworCisvLyBUaGlzIGNsYXNzIHByb3ZpZGVzIGFzeW5jIGludGVyZmFjZSBm
b3IgcGxhdGZvcm0tc3BlY2lmaWMgRE9NRmlsZVN5c3RlbSBpbXBsZW1lbnRhdGlvbi4gTm90ZSB0
aGF0IGFsbCB0aGUgbWV0aG9kcyB0YWtlIGNhbm9uaWNhbGl6ZWQgdmlydHVhbCBwYXRocy4KK2Ns
YXNzIEFzeW5jRmlsZVN5c3RlbSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+QXN5bmNGaWxlU3lzdGVtKCkgeyB9CisKKyAgICAvLyBGaWxlU3lzdGVtIHR5cGUK
KyAgICBlbnVtIFR5cGUgeworICAgICAgICBUZW1wb3JhcnksCisgICAgICAgIFBlcnNpc3RlbnQs
CisgICAgfTsKKworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgeyB9CisgICAgdmlydHVhbCBib29s
IGhhc1BlbmRpbmdBY3Rpdml0eSgpIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICAvLyBDcmVhdGVz
IGFuZCByZXR1cm5zIGEgbmV3IHBsYXRmb3JtLXNwZWNpZmljIEFzeW5jRmlsZVN5c3RlbSBpbnN0
YW5jZSBpZiB0aGUgcGxhdGZvcm0gaGFzIGl0cyBvd24gaW1wbGVtZW50YXRpb24uCisgICAgLy8g
SXQgaXMgT0sgdG8gcmV0dXJuIG51bGwgaGVyZTsgaW4gdGhhdCBjYXNlIHRoZSBkZWZhdWx0IGlt
cGxlbWVudGF0aW9uIHRoYXQgdXNlcyBGaWxlVGhyZWFkIHdpbGwgYmUgdXNlZC4KKyAgICBzdGF0
aWMgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IGNyZWF0ZVBsYXRmb3JtQXN5bmNGaWxlU3lz
dGVtKCk7CisKKyAgICAvLyBPcGVucyBhIG5ldyBmaWxlIHN5c3RlbS4gIFRoaXMgcGFzc2VzIHRo
ZSBvd25lcnNoaXAgb2YgJ3RoaXMnIHRvIHRoZSBjYWxsYmFja3MuCisgICAgdmlydHVhbCB2b2lk
IG9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgc3Rv
cmFnZUlkZW50aWZpZXIsIFR5cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
Pik7CisKKyAgICAvLyBNb3ZlcyBhIGZpbGUgb3IgZGlyZWN0b3J5IGZyb20gc3JjUGF0aCB0byBk
ZXN0UGF0aC4KKyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZFN1Y2NlZWQoKSBp
cyBjYWxsZWQgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuCisg
ICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRGYWlsKCkgaXMgY2FsbGVkIG90aGVy
d2lzZS4KKyAgICB2aXJ0dWFsIHZvaWQgbW92ZShjb25zdCBTdHJpbmcmIHNyY1BhdGgsIGNvbnN0
IFN0cmluZyYgZGVzdFBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikg
PSAwOworCisgICAgLy8gQ29waWVzIGEgZmlsZSBvciBkaXJlY3RvcnkgZnJvbSBzcmNQYXRoIHRv
IGRlc3RQYXRoLgorICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkU3VjY2VlZCgp
IGlzIGNhbGxlZCB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4K
KyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZEZhaWwoKSBpcyBjYWxsZWQgb3Ro
ZXJ3aXNlLgorICAgIHZpcnR1YWwgdm9pZCBjb3B5KGNvbnN0IFN0cmluZyYgc3JjUGF0aCwgY29u
c3QgU3RyaW5nJiBkZXN0UGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+
KSA9IDA7CisKKyAgICAvLyBEZWxldGVzIGEgZmlsZSBvciBkaXJlY3RvcnkgYXQgYSBnaXZlbiBw
YXRoLgorICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkU3VjY2VlZCgpIGlzIGNh
bGxlZCB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAv
LyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZEZhaWwoKSBpcyBjYWxsZWQgb3RoZXJ3aXNl
LgorICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRy
PEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKworICAgIC8vIFJldHJpZXZlcyB0aGUg
bWV0YWRhdGEgaW5mb3JtYXRpb24gb2YgdGhlIGZpbGUgb3IgZGlyZWN0b3J5IGF0IGEgZ2l2ZW4g
cGF0aC4KKyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZFJlYWRNZXRhZGF0YSgp
IGlzIGNhbGxlZCB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4K
KyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZEZhaWwoKSBpcyBjYWxsZWQgb3Ro
ZXJ3aXNlLgorICAgIHZpcnR1YWwgdm9pZCByZWFkTWV0YWRhdGEoY29uc3QgU3RyaW5nJiBwYXRo
LCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKworICAgIC8vIENy
ZWF0ZXMgYSBmaWxlIGF0IGEgZ2l2ZW4gcGF0aC4gIElmIGV4Y2x1c2l2ZSBmbGFnIGlzIHRydWUs
IGl0IGZhaWxzIGlmIHRoZSBwYXRoIGFscmVhZHkgZXhpc3RzLgorICAgIC8vIEFzeW5jRmlsZVN5
c3RlbUNhbGxiYWNrczo6ZGlkU3VjY2VlZCgpIGlzIGNhbGxlZCB3aGVuIHRoZSBvcGVyYXRpb24g
aXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFj
a3M6OmRpZEZhaWwoKSBpcyBjYWxsZWQgb3RoZXJ3aXNlLgorICAgIHZpcnR1YWwgdm9pZCBjcmVh
dGVGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCBleGNsdXNpdmUsIFBhc3NPd25QdHI8QXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworCisgICAgLy8gQ3JlYXRlcyBhIGRpcmVjdG9y
eSBhdCBhIGdpdmVuIHBhdGguICBJZiBleGNsdXNpdmUgZmxhZyBpcyB0cnVlLCBpdCBmYWlscyBp
ZiB0aGUgcGF0aCBhbHJlYWR5IGV4aXN0cy4KKyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFj
a3M6OmRpZFN1Y2NlZWQoKSBpcyBjYWxsZWQgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRl
ZCBzdWNjZXNzZnVsbHkuCisgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRGYWls
KCkgaXMgY2FsbGVkIG90aGVyd2lzZS4KKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlRGlyZWN0b3J5
KGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCBleGNsdXNpdmUsIFBhc3NPd25QdHI8QXN5bmNGaWxl
U3lzdGVtQ2FsbGJhY2tzPikgPSAwOworCisgICAgLy8gQ2hlY2tzIGlmIGEgZmlsZSBleGlzdHMg
YXQgYSBnaXZlbiBwYXRoLgorICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkU3Vj
Y2VlZCgpIGlzIGNhbGxlZCBpZiB0aGUgZmlsZSBleGlzdHMuCisgICAgLy8gQXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzOjpkaWRGYWlsKCkgaXMgY2FsbGVkIG90aGVyd2lzZS4KKyAgICB2aXJ0dWFs
IHZvaWQgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxl
U3lzdGVtQ2FsbGJhY2tzPikgPSAwOworCisgICAgLy8gQ2hlY2tzIGlmIGEgZGlyZWN0b3J5IGV4
aXN0cyBhdCBhIGdpdmVuIHBhdGguCisgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpk
aWRTdWNjZWVkKCkgaXMgY2FsbGVkIGlmIHRoZSBkaXJlY3RvcnkgZXhpc3RzLgorICAgIC8vIEFz
eW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkRmFpbCgpIGlzIGNhbGxlZCBvdGhlcndpc2UuCisg
ICAgdmlydHVhbCB2b2lkIGRpcmVjdG9yeUV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NP
d25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworCisgICAgLy8gUmVhZHMgZGly
ZWN0b3J5IGVudHJpZXMgb2YgYSBnaXZlbiBkaXJlY3RvcnkgYXQgcGF0aC4KKyAgICAvLyBBc3lu
Y0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZFJlYWREaXJlY3RvcnlFbnRyeSgpIGlzIGNhbGxlZCB3
aGVuIGVhY2ggZGlyZWN0b3J5IGVudHJ5IGlzIGNhbGxlZC4gQXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzOjpkaWRSZWFkRGlyZWN0b3J5Q2h1bmtEb25lKCkgaXMgY2FsbGVkIGFmdGVyIGEgY2h1bmsg
b2YgZGlyZWN0b3J5IGVudHJpZXMgaGF2ZSBiZWVuIHJlYWQuCisgICAgLy8gQXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzOjpkaWRGYWlsKCkgaXMgY2FsbGVkIHdoZW4gdGhlcmUgd2FzIGFuIGVycm9y
LgorICAgIHZpcnR1YWwgdm9pZCByZWFkRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBDb252ZXJ0
cyBhIGdpdmVuIGFic29sdXRlIHZpcnR1YWwgcGF0aCB0byBhIHBsYXRmb3JtIHBhdGggdGhhdCBz
dGFydHMgd2l0aCB0aGUgcGxhdGZvcm0gcm9vdCBwYXRoIG9mIHRoaXMgZmlsZSBzeXN0ZW0uCisg
ICAgdmlydHVhbCBTdHJpbmcgdmlydHVhbFRvUGxhdGZvcm1QYXRoKGNvbnN0IFN0cmluZyYgcGF0
aCkgY29uc3Q7CisKKyAgICAvLyBTZXQgcGxhdGZvcm0gcm9vdCBwYXRoLgorICAgIHZvaWQgc2V0
UGxhdGZvcm1Sb290UGF0aChjb25zdCBTdHJpbmcmIHBsYXRmb3JtUm9vdFBhdGgpOworCitwcm90
ZWN0ZWQ6CisgICAgQXN5bmNGaWxlU3lzdGVtKCkgeyB9CisKKyAgICBTdHJpbmcgbV9wbGF0Zm9y
bVJvb3RQYXRoOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKEZJTEVfU1lTVEVNKQorCisjZW5kaWYgLy8gQXN5bmNGaWxlU3lzdGVtX2gKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggYi9XZWJDb3Jl
L3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1NDkzNWY2
MDE5M2ZlNWE4ZmZhN2MyMjM2NGJiNjhjOTJjMDJjZGMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oCkBAIC0wLDAgKzEsNjkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrc19oCisjZGVmaW5lIEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrc19oCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFzeW5jRmlsZVN5
c3RlbTsKKworY2xhc3MgQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzIDogcHVibGljIE5vbmNvcHlh
YmxlIHsKK3B1YmxpYzoKKyAgICAvLyBDYWxsZWQgd2hlbiBhIHJlcXVlc3RlZCBvcGVyYXRpb24g
aXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3VjY2VlZCgp
ID0gMDsKKworICAgIC8vIENhbGxlZCB3aGVuIGEgcmVxdWVzdGVkIGZpbGUgc3lzdGVtIGlzIG9w
ZW5lZC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkT3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBu
YW1lLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gYXN5bmNGaWxlU3lzdGVtKSA9IDA7CisK
KyAgICAvLyBDYWxsZWQgd2hlbiBhIGZpbGUgbWV0YWRhdGEgaXMgcmVhZCBzdWNjZXNzZnVsbHku
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlYWRNZXRhZGF0YShkb3VibGUgbW9kaWZpY2F0aW9uVGlt
ZSkgPSAwOworCisgICAgLy8gQ2FsbGVkIHdoZW4gYSBkaXJlY3RvcnkgZW50cnkgaXMgcmVhZC4K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVhZERpcmVjdG9yeUVudHJ5KGNvbnN0IFN0cmluZyYgbmFt
ZSwgYm9vbCBpc0RpcmVjdG9yeSkgPSAwOworCisgICAgLy8gQ2FsbGVkIGFmdGVyIGEgY2h1bmsg
b2YgZGlyZWN0b3J5IGVudHJpZXMgaGF2ZSBiZWVuIHJlYWQgKGkuZS4gaW5kaWNhdGVzIGl0J3Mg
Z29vZCB0aW1lIHRvIGNhbGwgYmFjayB0byB0aGUgYXBwbGljYXRpb24pLiAgSWYgaGFzTW9yZSBp
cyB0cnVlIHRoZXJlIGNhbiBiZSBtb3JlIGNodW5rcy4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVh
ZERpcmVjdG9yeUNodW5rRG9uZShib29sIGhhc01vcmUpID0gMDsKKworICAgIC8vIENhbGxlZCB3
aGVuIHRoZXJlIHdhcyBhbiBlcnJvci4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChpbnQgY29k
ZSkgPSAwOworCisgICAgdmlydHVhbCB+QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzKCkgeyB9Cit9
OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQorCisj
ZW5kaWYgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKaW5k
ZXggZWM3NWEyMTAzYTU1MDg3M2M1N2U0MTdlNmYzMzJlMDhiNjhkN2FkZi4uZTM5MTZjZmUwYWM1
OTY3MTdlOWE0ZjJiZDllNWJlMDA2MjI2ZDA4MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9GaWxlU3lzdGVtLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKQEAgLTEz
OCw2ICsxMzgsMTIgQEAgZW51bSBGaWxlU2Vla09yaWdpbiB7CiAgICAgU2Vla0Zyb21FbmQKIH07
CiAKKyNpZiBPUyhXSU5ET1dTKQorc3RhdGljIGNvbnN0IGNoYXIgUGxhdGZvcm1GaWxlUGF0aFNl
cGFyYXRvciA9ICdcXCc7CisjZWxzZQorc3RhdGljIGNvbnN0IGNoYXIgUGxhdGZvcm1GaWxlUGF0
aFNlcGFyYXRvciA9ICcvJzsKKyNlbmRpZgorCiBib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5n
Jik7CiBib29sIGRlbGV0ZUZpbGUoY29uc3QgU3RyaW5nJik7CiBib29sIGRlbGV0ZUVtcHR5RGly
ZWN0b3J5KGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0RPTUZp
bGVTeXN0ZW0uY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uY3BwCmluZGV4IGMz
ZGJkMzQwMTRlYTIwZWNlZmQ4YWFkZDdjNmJkYzlkYmQwZWU5NjIuLjVkNjA3M2EzZTllYzEyMzk2
NGEyMmI5NjY5NDZiYjM2MGEyMzllZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9ET01G
aWxlU3lzdGVtLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5jcHAKQEAg
LTMzLDEzICszMywyMCBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCisjaW5jbHVkZSAi
QXN5bmNGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiRGlyZWN0b3J5RW50cnkuaCIKKyNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRE9N
RmlsZVN5c3RlbTo6RE9NRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgcm9vdFBhdGgpCi0gICAgOiBtX3Jvb3RQYXRoKHJvb3RQYXRoKQorRE9NRmlsZVN5c3RlbTo6
RE9NRmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJp
bmcmIG5hbWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBhc3luY0ZpbGVTeXN0ZW0pCisg
ICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKICAgICAsIG1fbmFtZShuYW1lKQor
ICAgICwgbV9hc3luY0ZpbGVTeXN0ZW0oYXN5bmNGaWxlU3lzdGVtKQoreworfQorCitET01GaWxl
U3lzdGVtOjp+RE9NRmlsZVN5c3RlbSgpCiB7CiB9CiAKQEAgLTQ4LDYgKzU1LDIxIEBAIFBhc3NS
ZWZQdHI8RGlyZWN0b3J5RW50cnk+IERPTUZpbGVTeXN0ZW06OnJvb3QoKQogICAgIHJldHVybiBE
aXJlY3RvcnlFbnRyeTo6Y3JlYXRlKHRoaXMsICIvIik7CiB9CiAKK3ZvaWQgRE9NRmlsZVN5c3Rl
bTo6c3RvcCgpCit7CisgICAgbV9hc3luY0ZpbGVTeXN0ZW0tPnN0b3AoKTsKK30KKworYm9vbCBE
T01GaWxlU3lzdGVtOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAoreworICAgIHJldHVybiBt
X2FzeW5jRmlsZVN5c3RlbS0+aGFzUGVuZGluZ0FjdGl2aXR5KCk7Cit9CisKK3ZvaWQgRE9NRmls
ZVN5c3RlbTo6Y29udGV4dERlc3Ryb3llZCgpCit7CisgICAgbV9hc3luY0ZpbGVTeXN0ZW0tPnN0
b3AoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RF
TSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmggYi9XZWJDb3Jl
L3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5oCmluZGV4IGI4N2FhYWYzMmNkOWVhYzBmMjJjNDllZTE3
NjcyZGQ1YTJlNzc2NzMuLjMzN2JlYTljYmVlYzBiN2ZlMjNiOTQ1YjM5M2E1MzQ3MGQ5NDUyZjMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmgKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaApAQCAtMzMsNiArMzMsOSBAQAogCiAjaWYgRU5BQkxF
KEZJTEVfU1lTVEVNKQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAi
QXN5bmNGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiRmxhZ3MuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KQEAgLTQwLDIyICs0MywzMCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBEaXJlY3RvcnlFbnRyeTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKLWNs
YXNzIERPTUZpbGVTeXN0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxET01GaWxlU3lzdGVtPiB7Citj
bGFzcyBET01GaWxlU3lzdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NRmlsZVN5c3RlbT4sIHB1
YmxpYyBBY3RpdmVET01PYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERP
TUZpbGVTeXN0ZW0+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9v
dFBhdGgpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NRmlsZVN5c3RlbT4gY3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgRE9NRmlsZVN5c3RlbShuYW1lLCByb290UGF0aCkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IERPTUZpbGVTeXN0ZW0oY29udGV4dCwgbmFtZSwgYXN5bmNGaWxl
U3lzdGVtKSk7CiAgICAgfQogCisgICAgdmlydHVhbCB+RE9NRmlsZVN5c3RlbSgpOworCiAgICAg
Y29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgUGFzc1Jl
ZlB0cjxEaXJlY3RvcnlFbnRyeT4gcm9vdCgpOwogCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IG1l
dGhvZHMuCisgICAgdmlydHVhbCB2b2lkIHN0b3AoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzUGVu
ZGluZ0FjdGl2aXR5KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQo
KTsKKwogcHJpdmF0ZToKLSAgICBET01GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiByb290UGF0aCk7CisgICAgRE9NRmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4p
OwogCi0gICAgU3RyaW5nIG1fcm9vdFBhdGg7CiAgICAgU3RyaW5nIG1fbmFtZTsKKyAgICBtdXRh
YmxlIE93blB0cjxBc3luY0ZpbGVTeXN0ZW0+IG1fYXN5bmNGaWxlU3lzdGVtOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJh
Y2tzLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcAppbmRleCBl
YzM1MmRkN2Q2ZTkyYzdjODdhMzgwNGIzY2QzOGNjM2RkYTFlODE4Li4yYjU0OGU1MmU4MjVmOTU5
MDY0ZjA2MGNhODdkN2ZlNzBlZmNlYTUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRmls
ZVN5c3RlbUNhbGxiYWNrcy5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1DYWxs
YmFja3MuY3BwCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2U6
OmRpZFN1Y2NlZWQoKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIEZpbGVT
eXN0ZW1DYWxsYmFja3NCYXNlOjpkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmKQordm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZTo6ZGlkT3BlbkZpbGVTeXN0
ZW0oY29uc3QgU3RyaW5nJiwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+KQogewogICAgIC8v
IEVhY2ggc3ViY2xhc3MgbXVzdCBpbXBsZW1lbnQgYW4gYXBwcm9wcmlhdGUgb25lLgogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODksNyArODksNyBAQCB2b2lkIEZpbGVTeXN0ZW1DYWxs
YmFja3NCYXNlOjpkaWRSZWFkRGlyZWN0b3J5RW50cnkoY29uc3QgU3RyaW5nJiwgYm9vbCkKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFz
ZTo6ZGlkRmFpbChFeGNlcHRpb25Db2RlIGNvZGUpCit2b2lkIEZpbGVTeXN0ZW1DYWxsYmFja3NC
YXNlOjpkaWRGYWlsKGludCBjb2RlKQogewogICAgIGlmIChtX2Vycm9yQ2FsbGJhY2spIHsKICAg
ICAgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChGaWxlRXJyb3I6OmNyZWF0ZShjb2Rl
KS5nZXQoKSk7CkBAIC0xNTIsMTYgKzE1MiwxOSBAQCB2b2lkIEVudHJpZXNDYWxsYmFja3M6OmRp
ZFJlYWREaXJlY3RvcnlDaHVua0RvbmUoYm9vbCBoYXNNb3JlKQogCiAvLyBGaWxlU3lzdGVtQ2Fs
bGJhY2tzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKLUZpbGVTeXN0ZW1DYWxsYmFja3M6OkZpbGVTeXN0ZW1DYWxsYmFja3MoUGFzc1Jl
ZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxFcnJv
ckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQorRmlsZVN5c3RlbUNhbGxiYWNrczo6RmlsZVN5c3Rl
bUNhbGxiYWNrcyhQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNr
LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZShlcnJvckNh
bGxiYWNrKQogICAgICwgbV9zdWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKQorICAgICwg
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpCiB7CiB9CiAKLXZvaWQgRmlsZVN5c3Rl
bUNhbGxiYWNrczo6ZGlkT3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIHJvb3RQYXRoKQordm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRPcGVuRmlsZVN5
c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBhc3lu
Y0ZpbGVTeXN0ZW0pCiB7Ci0gICAgaWYgKG1fc3VjY2Vzc0NhbGxiYWNrKQotICAgICAgICBtX3N1
Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRmlsZVN5c3RlbTo6Y3JlYXRlKG5hbWUsIHJv
b3RQYXRoKS5nZXQoKSk7CisgICAgaWYgKG1fc3VjY2Vzc0NhbGxiYWNrKSB7CisgICAgICAgIEFT
U0VSVChhc3luY0ZpbGVTeXN0ZW0pOworICAgICAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxl
RXZlbnQoRE9NRmlsZVN5c3RlbTo6Y3JlYXRlKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgbmFt
ZSwgYXN5bmNGaWxlU3lzdGVtLmxlYWtQdHIoKSkuZ2V0KCkpOworICAgIH0KICAgICBtX3N1Y2Nl
c3NDYWxsYmFjay5jbGVhcigpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRmls
ZVN5c3RlbUNhbGxiYWNrcy5oIGIvV2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3Mu
aAppbmRleCBlMGU3OGQzNzBjMjFlMzM3YjI0OGQzOGFjODk2ZDFhN2UwZWNiMTMwLi4yMjdmMTEy
NTdmNmU3NDhiNDdiZmZhZDE4ZDQ5MjZlYWEyNmQzMWZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0
b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lz
dGVtQ2FsbGJhY2tzLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RF
TSkKIAorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CkBAIC00OSwxMCArNTAsNyBAQCBjbGFzcyBNZXRhZGF0YUNhbGxiYWNrOwog
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFZvaWRDYWxsYmFjazsKIAotdHlw
ZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQotLy8gQSBiYXNlIGNsYXNzIGZvciBGaWxlU3lzdGVt
IGNhbGxiYWNrcyB0aGF0IGJ1bmRsZXMgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrIGFu
ZCBzb21lIGNsb3N1cmUgZGF0YSBmb3IgdGhlIGNhbGxiYWNrcy4KLWNsYXNzIEZpbGVTeXN0ZW1D
YWxsYmFja3NCYXNlIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK2NsYXNzIEZpbGVTeXN0ZW1DYWxs
YmFja3NCYXNlIDogcHVibGljIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcyB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+RmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UoKTsKIApAQCAtNjAsNyArNTgsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFN1Y2NlZWQoKTsKIAogICAgIC8vIEZvciBG
aWxlU3lzdGVtQ2FsbGJhY2tzLgotICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuRmlsZVN5c3RlbShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpOworICAgIHZpcnR1YWwg
dm9pZCBkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8QXN5
bmNGaWxlU3lzdGVtPik7CiAKICAgICAvLyBGb3IgTWV0YWRhdGFDYWxsYmFja3MuCiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlYWRNZXRhZGF0YShkb3VibGUgbW9kaWZpY2F0aW9uVGltZSk7CkBAIC03
MCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVhZERpcmVjdG9yeUNo
dW5rRG9uZShib29sIGhhc01vcmUpOwogCiAgICAgLy8gRm9yIEVycm9yQ2FsbGJhY2suCi0gICAg
dmlydHVhbCB2b2lkIGRpZEZhaWwoRXhjZXB0aW9uQ29kZSBjb2RlKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRmFpbChpbnQgY29kZSk7CiAKIHByb3RlY3RlZDoKICAgICBGaWxlU3lzdGVtQ2FsbGJh
Y2tzQmFzZShQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spOwpAQCAtMTA2
LDExICsxMDQsMTIgQEAgcHJpdmF0ZToKIAogY2xhc3MgRmlsZVN5c3RlbUNhbGxiYWNrcyA6IHB1
YmxpYyBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZSB7CiBwdWJsaWM6Ci0gICAgRmlsZVN5c3RlbUNh
bGxiYWNrcyhQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JD
YWxsYmFjaz4pOwotICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpOworICAgIEZpbGVTeXN0ZW1DYWxsYmFj
a3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJh
Y2s+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgdmlydHVhbCB2b2lkIGRpZE9wZW5G
aWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+
KTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBtX3N1Y2Nlc3ND
YWxsYmFjazsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CiB9OwogCiBjbGFzcyBNZXRhZGF0YUNhbGxiYWNrcyA6IHB1YmxpYyBGaWxlU3lzdGVt
Q2FsbGJhY2tzQmFzZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRmxhZ3MuaCBiL1dl
YkNvcmUvc3RvcmFnZS9GbGFncy5oCmluZGV4IGZmZTM0MDM4YTA0YzQwY2U5ZTNhODc1ODMwYjFi
YjgwNWNmNjZlYmIuLjMwODg0ZmNjNDNmZGYyYTNhMDY0NWY5ZDU5YWQ5YThlYjdlZDYwNGQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9GbGFncy5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9G
bGFncy5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBFTkFCTEUoRklMRV9TWVNURU0pCiAKKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbEZp
bGVTeXN0ZW0uY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTM2MWNhNWUxZGU2NzhhMDdiZmYzYjdlNGFlMTU3NjZmOTE4N2E4MwotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbEZpbGVTeXN0ZW0uY3BwCkBAIC0wLDAgKzEs
NzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxGaWxlU3lzdGVtLmgiCisK
KyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNlcnJvciAiQ2hyb21pdW0gc2hvdWxkIG5vdCBjb21w
aWxlIHRoaXMgZmlsZSBhbmQgaW5zdGVhZCBkZWZpbmUgaXRzIG93biB2ZXJzaW9uIG9mIHRoZXNl
IGZhY3Rvcmllcy4iCisjZW5kaWYKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkVycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRmlsZUVycm9yLmgiCisjaW5jbHVkZSAiRmlsZVN5
c3RlbUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrcy5oIgorI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
UGFzc1JlZlB0cjxMb2NhbEZpbGVTeXN0ZW0+IExvY2FsRmlsZVN5c3RlbTo6Y3JlYXRlKGNvbnN0
IFN0cmluZyYgYmFzZVBhdGgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBMb2NhbEZpbGVT
eXN0ZW0oYmFzZVBhdGgpKTsKK30KKwordm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxl
U3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3RlbTo6
VHlwZSB0eXBlLCBsb25nIGxvbmcsIFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBzdWNj
ZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3sK
KyAgICBpZiAodHlwZSAhPSBBc3luY0ZpbGVTeXN0ZW06OlRlbXBvcmFyeSAmJiB0eXBlICE9IEFz
eW5jRmlsZVN5c3RlbTo6UGVyc2lzdGVudCkgeworICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5k
bGVFdmVudChGaWxlRXJyb3I6OmNyZWF0ZShJTlZBTElEX01PRElGSUNBVElPTl9FUlIpLmdldCgp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE93blB0cjxBc3luY0ZpbGVTeXN0ZW0+
IGFzeW5jRmlsZVN5c3RlbSA9IEFzeW5jRmlsZVN5c3RlbTo6Y3JlYXRlUGxhdGZvcm1Bc3luY0Zp
bGVTeXN0ZW0oKTsKKyAgICBpZiAoIWFzeW5jRmlsZVN5c3RlbSkgeworICAgICAgICAvLyBGSVhN
RTogQ3JlYXRlIHRoZSB0aHJlYWQgdmVyc2lvbiBvZiBBc3luY0ZpbGVTeXN0ZW0gKHRoYXQgaGFz
bid0IGJlZW4gYWRkZWQpIGlmIG5vIHBsYXRmb3JtLXNwZWNpZmljIEFzeW5jRmlsZVN5c3RlbSBp
bXBsZW1lbnRhdGlvbiBpcyBwcm92aWRlZC4KKyAgICAgICAgLy8gKFRoZSB0aHJlYWQgdmVyc2lv
biByZXF1aXJlcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGFuZCB0aGF0J3Mgd2h5IEFzeW5jRmls
ZVN5c3RlbSBpcyBjcmVhdGVkIGhlcmUgcmF0aGVyIHRoYW4gaW4gdGhlIGNhbGxiYWNrIHBhdGgu
KQorICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChGaWxlRXJyb3I6OmNyZWF0ZShO
T1RfU1VQUE9SVEVEX0VSUikuZ2V0KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
Ly8gQXN5bmNGaWxlU3lzdGVtJ3Mgb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIHRvIHRoZSBjYWxs
YmFjay4KKyAgICBhc3luY0ZpbGVTeXN0ZW0ubGVha1B0cigpLT5vcGVuRmlsZVN5c3RlbShtX2Jh
c2VQYXRoLCBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLT5kYXRhYmFzZUlkZW50aWZpZXIoKSwg
dHlwZSwgbmV3IEZpbGVTeXN0ZW1DYWxsYmFja3Moc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxi
YWNrLCBjb250ZXh0KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFCTEUo
RklMRV9TWVNURU0pCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxGaWxlU3lzdGVt
LmggYi9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhjZmE4
ZjY4ODZhNjBhNDAwNDQ0ZTJmY2ViZWE2OGNkNTIzZGJiNgotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvc3RvcmFnZS9Mb2NhbEZpbGVTeXN0ZW0uaApAQCAtMCwwICsxLDY3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBM
b2NhbEZpbGVTeXN0ZW1faAorI2RlZmluZSBMb2NhbEZpbGVTeXN0ZW1faAorCisjaWYgRU5BQkxF
KEZJTEVfU1lTVEVNKQorCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRXJyb3JD
YWxsYmFjazsKK2NsYXNzIEZpbGVTeXN0ZW1DYWxsYmFjazsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CisKK2NsYXNzIExvY2FsRmlsZVN5c3RlbSA6IHB1YmxpYyBSZWZDb3VudGVkPExv
Y2FsRmlsZVN5c3RlbT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPExvY2FsRmls
ZVN5c3RlbT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgpOworICAgIHZpcnR1YWwgfkxv
Y2FsRmlsZVN5c3RlbSgpIHsgfQorCisgICAgdm9pZCByZXF1ZXN0RmlsZVN5c3RlbShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlLCBsb25nIGxvbmcgc2l6ZSwg
UGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+
KTsKKworcHJvdGVjdGVkOgorICAgIExvY2FsRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGJhc2VQ
YXRoKQorICAgICAgICA6IG1fYmFzZVBhdGgoYmFzZVBhdGgpCisgICAgeworICAgIH0KKworICAg
IFN0cmluZyBtX2Jhc2VQYXRoOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIEVO
QUJMRShGSUxFX1NZU1RFTSkKKworI2VuZGlmIC8vIExvY2FsRmlsZVN5c3RlbV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65513</attachid>
            <date>2010-08-25 18:30:04 -0700</date>
            <delta_ts>2010-08-25 21:40:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44433-20100825183003.patch</filename>
            <type>text/plain</type>
            <size>47912</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDMyZDJkNTcxY2M1MmI0MGE1ZmJhZjc1M2NlMjAyMzU4ZDdmMWI5MGUuLmFiNjUy
MjVmYjM1NzZiOGE4NWYwZmUwMDI2MzAxNDM2MjQ2YTRjNTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIxMSw2ICsx
MjExLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1l
QW5pbWF0aW9uLmNwcAogCiAgICAgcGxhdGZvcm0vQXJlbmEuY3BwCisgICAgcGxhdGZvcm0vQXN5
bmNGaWxlU3lzdGVtLmNwcAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmNwcAogICAgIHBsYXRmb3Jt
L0NvbnRlbnRUeXBlLmNwcAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmNwcApAQCAtMTQ4Myw2
ICsxNDg0LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHN0b3JhZ2UvSURCRmFjdG9yeS5j
cHAKICAgICBzdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcAogICAgIHN0b3Jh
Z2UvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcAorICAgIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVt
LmNwcAogICAgIHN0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5jcHAKICAgICBzdG9yYWdlL0xvY2Fs
U3RvcmFnZVRocmVhZC5jcHAKICAgICBzdG9yYWdlL09yaWdpblF1b3RhTWFuYWdlci5jcHAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY2
NjJlNzM0OTg4YTE5MzE3NjJjMjk0Y2UwNTZkODZjNDAyZmI4Mi4uMjUwZmEyYzUxNDM0NzUyNjBh
YjRiYjY2MmNlOTAxMGJmOTU0MTdhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0wOC0yMyAgS2ludWtv
IFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFzeW5jRmlsZVN5c3RlbSBpbnRlcmZhY2UgZm9y
IHBsYXRmb3JtLWRlcGVuZGVudCBGaWxlU3lzdGVtIEFQSSBpbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ0MzMKKworICAgICAg
ICBObyBuZXcgdGVzdHM7IHRlc3RzIHdpbGwgYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHA6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vVGFza1F1ZXVlQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL0RPTUZp
bGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6RE9NRmlsZVN5
c3RlbSk6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjp+RE9NRmlsZVN5c3RlbSk6
CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpzdG9wKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTUZpbGVTeXN0ZW06Omhhc1BlbmRpbmdBY3Rpdml0eSk6CisgICAgICAgIChXZWJDb3Jl
OjpET01GaWxlU3lzdGVtOjpjb250ZXh0RGVzdHJveWVkKToKKyAgICAgICAgKiBzdG9yYWdlL0RP
TUZpbGVTeXN0ZW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06OmNyZWF0ZSk6
CisgICAgICAgICogc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlOjpkaWRGYWlsKToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVTeXN0ZW1DYWxsYmFja3M6OkZpbGVTeXN0ZW1DYWxsYmFja3MpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkT3BlbkZpbGVTeXN0ZW0pOgorICAgICAg
ICAqIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oOgorICAgICAgICAqIHN0b3JhZ2UvTG9j
YWxGaWxlU3lzdGVtLmNwcDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9Mb2NhbEZpbGVTeXN0
ZW0uaDogQWRkZWQuCisKKyAgICAgICAgKiBzdG9yYWdlL0ZsYWdzLmg6IE5pdHMgZml4LgorCiAy
MDEwLTA4LTI1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDgxMTdkZmVmYzE5YTdjMzdkODU5
Y2NhOTA5YzEzZDdhZmU0NGEyMTguLjkyMjhjMzRkNzJiNjUyNWI0ZDI5ODIzMGQ1MTU1NjQwM2Y2
N2M3NTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC0zMDQwLDYgKzMwNDAsOSBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Fy
ZW5hLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQXJlbmEuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vQXN5bmNGaWxlU3RyZWFtLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL0FzeW5j
RmlsZVN5c3RlbS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5o
JywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vQXV0b2RyYWluZWRQb29sLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL0Jsb2JJdGVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQmxvYkl0ZW0uaCcs
CkBAIC0zNjM1LDYgKzM2MzgsNyBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCVHJhbnNhY3Rp
b25DYWxsYmFja3MuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJUcmFuc2FjdGlvbkNvb3Jk
aW5hdG9yLmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJUcmFuc2FjdGlvbkNvb3JkaW5h
dG9yLmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmgnLAogICAgICAg
ICAgICAgJ3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5jcHAnLAogICAgICAgICAgICAgJ3N0b3Jh
Z2UvTG9jYWxTdG9yYWdlVGFzay5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0xvY2FsU3RvcmFn
ZVRocmVhZC5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUv
V2ViQ29yZS5wcm8KaW5kZXggNjJkMWM2ODNlZGIxYWY3ZTdlN2IxZDZmODFmMGY0OWMzZTM1NjNk
Yy4uYjNjZGFlYTk0MmYyNTgwMWE3YmIzOGNlYjQxZWNjODcwODkyNGI5OSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC04NzQsNiAr
ODc0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5j
cHAgXAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcCBcCiAgICAgcGxh
dGZvcm0vQXJlbmEuY3BwIFwKKyAgICBwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwIFwKICAg
ICBwbGF0Zm9ybS9CbG9iSXRlbS5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvQmFzZTY0LmNwcCBc
CiAgICAgcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHAgXApAQCAtMTY1OSw2ICsxNjYwLDgg
QEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxpc3QuaCBc
CiAgICAgcGxhdGZvcm0vQXJlbmEuaCBcCiAgICAgcGxhdGZvcm0vQXN5bmNGaWxlU3RyZWFtLmgg
XAorICAgIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oIFwKKyAgICBwbGF0Zm9ybS9Bc3luY0Zp
bGVTeXN0ZW1DYWxsYmFja3MuaCBcCiAgICAgcGxhdGZvcm0vQmxvYkl0ZW0uaCBcCiAgICAgcGxh
dGZvcm0vQ29udGVudFR5cGUuaCBcCiAgICAgcGxhdGZvcm0vQ29udGV4dE1lbnUuaCBcCkBAIC0y
NTk2LDYgKzI1OTksNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfRklMRV9TWVNURU09MSkg
ewogICAgICAgICBzdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFjay5oIFwKICAgICAgICAgc3RvcmFn
ZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmggXAogICAgICAgICBzdG9yYWdlL0ZsYWdzLmggXAorICAg
ICAgICBzdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5oIFwKICAgICAgICAgc3RvcmFnZS9NZXRhZGF0
YS5oIFwKICAgICAgICAgc3RvcmFnZS9NZXRhZGF0YUNhbGxiYWNrLmgKIApAQCAtMjYwNyw3ICsy
NjExLDggQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTEVfU1lTVEVNPTEpIHsKICAgICAg
ICAgc3RvcmFnZS9FbnRyeS5jcHAgXAogICAgICAgICBzdG9yYWdlL0VudHJ5QXJyYXkuY3BwIFwK
ICAgICAgICAgc3RvcmFnZS9GaWxlRW50cnkuY3BwIFwKLSAgICAgICAgc3RvcmFnZS9GaWxlU3lz
dGVtQ2FsbGJhY2tzLmNwcAorICAgICAgICBzdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3Bw
IFwKKyAgICAgICAgc3RvcmFnZS9Mb2NhbEZpbGVTeXN0ZW0uY3BwCiB9CiAKIGNvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9JQ09OREFUQUJBU0U9MSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKaW5kZXggZjc5MjA2YjdmYzgwMzA0OGJiY2Y3NmYwMzk1ZTI0YTVkMWNiZDY0Ny4u
NzdiZmY0MDFkMGRiOTI0Njk4NTU3Y2NiMjcwZDI4YWI4MzMzNWY4ZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMzk4OSw2ICsyMzk4OSwxOCBAQAogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxBc3lu
Y0ZpbGVTeXN0ZW0uY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cQXN5bmNGaWxlU3lzdGVtLmgiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxBc3luY0Zp
bGVTeXN0ZW1DYWxsYmFja3MuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEF1dG9kcmFpbmVkUG9vbC5oIg0KIAkJCQk+DQog
CQkJPC9GaWxlPg0KQEAgLTUxNDI5LDYgKzUxNDQxLDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4N
CiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcTG9jYWxGaWxlU3lzdGVt
LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHN0b3JhZ2VcTG9jYWxGaWxlU3lzdGVtLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXExvY2FsU3RvcmFnZVRocmVhZC5j
cHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBlZjRiODA0YjljNGU2YmZlZTZlMDNkNWY3NDBiMjhjYmY2MDA0ZWFi
Li42MDViYWQ0NGYwNzZmOTJkZmNmOWNiYzkzMWEzNjRkNzhkZWE0NmRkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM5NSw2ICsyMzk1LDkgQEAKIAkJ
ODk1MjUzREYxMTZDNEYwNjAwQ0FCRjAwIC8qIEZpbGVUaHJlYWRUYXNrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTUyNTNERTExNkM0RjA2MDBDQUJG
MDAgLyogRmlsZVRocmVhZFRhc2suaCAqLzsgfTsKIAkJODk2ODZDOUYxMjIyNDRBMDAwNzZFQUE0
IC8qIERPTUZpbGVQYXRoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg5Njg2QzlEMTIyMjQ0QTAwMDc2RUFBNCAvKiBET01GaWxlUGF0aC5jcHAgKi87
IH07CiAJCTg5Njg2Q0EwMTIyMjQ0QTAwMDc2RUFBNCAvKiBET01GaWxlUGF0aC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk2ODZDOUUxMjIyNDRBMDAw
NzZFQUE0IC8qIERPTUZpbGVQYXRoLmggKi87IH07CisJCTg5ODc4M0QzMTIyMzJBMTMwMDNBQUJE
QSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODk4NzgzRDExMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3Rl
bS5jcHAgKi87IH07CisJCTg5ODc4M0Q0MTIyMzJBMTMwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0
ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5ODc4
M0QyMTIyMzJBMTMwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uaCAqLzsgfTsKKwkJODk4Nzgz
RjAxMjI1RjI4QjAwM0FBQkRBIC8qIFRhc2tRdWV1ZUNvbnRleHQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5ODc4M0VGMTIyNUYyOEEwMDNBQUJEQSAv
KiBUYXNrUXVldWVDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODk4OEUxMEUxMUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJdGVtLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5ODhFMTBDMTFB
MzUwOEIwMERCNzMyRSAvKiBCbG9iSXRlbS5jcHAgKi87IH07CiAJCTg5ODhFMTBGMTFBMzUwOEIw
MERCNzMyRSAvKiBCbG9iSXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODk4OEUxMEQxMUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJdGVtLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODk5QUJDMjYxMjE1
RTRBMzAwRjlGMjE5IC8qIERpcmVjdG9yeUVudHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5OUFCQzIwMTIxNUU0QTMwMEY5RjIxOSAvKiBEaXJl
Y3RvcnlFbnRyeS5jcHAgKi87IH07CkBAIC0yNDQ0LDYgKzI0NDcsOSBAQAogCQk4OUMwREQ3QjEy
MUYwQzY5MDA5RTE3Q0EgLyogRmlsZVN5c3RlbUNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODlDMERENzkxMjFGMEM2OTAwOUUxN0NBIC8q
IEZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLzsgfTsKIAkJODlDRDAyOTMxMUM4NUI4NzAwNzBCNzkx
IC8qIEpTQmxvYkJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODlDRDAyOTExMUM4NUI4NzAwNzBCNzkxIC8qIEpTQmxvYkJ1aWxkZXIuY3Bw
ICovOyB9OwogCQk4OUNEMDI5NDExQzg1Qjg3MDA3MEI3OTEgLyogSlNCbG9iQnVpbGRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODlDRDAyOTIxMUM4
NUI4NzAwNzBCNzkxIC8qIEpTQmxvYkJ1aWxkZXIuaCAqLzsgfTsKKwkJODlEMDhEOUYxMjIyODQ1
MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUQwOEQ5QzEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNG
aWxlU3lzdGVtLmNwcCAqLzsgfTsKKwkJODlEMDhEQTAxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5j
RmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODlEMDhEOUQxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5oICovOyB9Owor
CQk4OUQwOERBMTEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUQwOEQ5RTEy
MjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi87IH07CiAJCThB
MTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBMTJFMzVDMTFGQTMzMjgwMDI1
ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNT
Y3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThBNDEzQUUxMTIw
N0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyog
QXN5bmNTY3JpcHRSdW5uZXIuY3BwICovOyB9OwpAQCAtODI5MSw2ICs4Mjk3LDkgQEAKIAkJODk3
QTJEOEUxMjAwMDM1RjAwODI3NDBDIC8qIEpTRE9NRmlsZVN5c3RlbS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTUZpbGVTeXN0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODk3QTJEOTExMjAwMDM3NjAwODI3NDBDIC8qIEpTRmxhZ3MuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGbGFncy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg5N0EyRDkyMTIwMDAzNzYwMDgyNzQwQyAvKiBKU0ZsYWdzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmxhZ3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODk4NzgzRDExMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5
c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2NhbEZpbGVT
eXN0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTg3ODNEMjEyMjMyQTEz
MDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IExvY2FsRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
OTg3ODNFRjEyMjVGMjhBMDAzQUFCREEgLyogVGFza1F1ZXVlQ29udGV4dC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUYXNrUXVldWVDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg5ODhFMTBDMTFBMzUwOEIwMERCNzMyRSAvKiBCbG9iSXRlbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9iSXRlbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5ODhFMTBEMTFBMzUwOEIwMERCNzMyRSAvKiBCbG9i
SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9iSXRlbS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTlBQkMyMDEyMTVFNEEzMDBGOUYyMTkgLyogRGly
ZWN0b3J5RW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGly
ZWN0b3J5RW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODMyNiw2ICs4
MzM1LDkgQEAKIAkJODlDRDAyNzkxMUM4NTlBODAwNzBCNzkxIC8qIEJsb2JCdWlsZGVyLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBCbG9iQnVpbGRlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg5Q0QwMjkxMTFDODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JCdWlsZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmxvYkJ1aWxkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OUNEMDI5MjExQzg1Qjg3MDA3MEI3OTEg
LyogSlNCbG9iQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Js
b2JCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5RDA4RDlDMTIyMjg0
NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQXN5bmNGaWxlU3lzdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODlEMDhEOUQxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY0ZpbGVTeXN0ZW0uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODlEMDhEOUUxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudExvYWRUaW1pbmcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2Ny
aXB0UnVubmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jU2NyaXB0
UnVubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBNDEzQURGMTIwN0JCQTUw
MDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBc3luY1NjcmlwdFJ1bm5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMTY5NCw2ICsxMTcwNiw4IEBACiAJCQkJQjY1NjYyNjgxMjBCMTE1QTAwNkVB
ODVDIC8qIElEQlRyYW5zYWN0aW9uLmggKi8sCiAJCQkJQjY1NjYyNjkxMjBCMTE1QTAwNkVBODVD
IC8qIElEQlRyYW5zYWN0aW9uLmlkbCAqLywKIAkJCQlCNjU2NjI2RDEyMEIxMTZCMDA2RUE4NUMg
LyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggKi8sCisJCQkJODk4NzgzRDExMjIz
MkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5jcHAgKi8sCisJCQkJODk4NzgzRDIxMjIz
MkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oICovLAogCQkJCTUxMUYyMzEzMERDMTYw
REEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmNwcCAqLywKIAkJCQk1MTFGMjMxNDBEQzE2
MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5oICovLAogCQkJCTUxMUYyMzE1MERDMTYw
REEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQuY3BwICovLApAQCAtMTY2MTksNiArMTY2
MzMsOSBAQAogCQkJCUJDRkIyRjc0MDk3QTJFMUEwMEJBNzAzRCAvKiBBcmVuYS5jcHAgKi8sCiAJ
CQkJQkNGQjJGNzUwOTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmggKi8sCiAJCQkJMkVGMUJGRjYx
MjFDQjBCRDAwQzI3NjI3IC8qIEFzeW5jRmlsZVN0cmVhbS5oICovLAorCQkJCTg5RDA4RDlDMTIy
Mjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwICovLAorCQkJCTg5RDA4RDlEMTIy
Mjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uaCAqLywKKwkJCQk4OUQwOEQ5RTEyMjI4
NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi8sCiAJCQkJNTFFMUVD
QjEwQzkxQzU1NjAwREMyNTVCIC8qIEF1dG9kcmFpbmVkUG9vbC5oICovLAogCQkJCTg5ODhFMTBD
MTFBMzUwOEIwMERCNzMyRSAvKiBCbG9iSXRlbS5jcHAgKi8sCiAJCQkJODk4OEUxMEQxMUEzNTA4
QjAwREI3MzJFIC8qIEJsb2JJdGVtLmggKi8sCkBAIC0xNjcwMiw2ICsxNjcxOSw3IEBACiAJCQkJ
RjU4Nzg2NjIwMkRFM0IxMTAxRUE0MTIyIC8qIFNTTEtleUdlbmVyYXRvci5oICovLAogCQkJCTkz
QjJEODE1MEY5OTIwRDIwMDZBRTZCMiAvKiBTdWRkZW5UZXJtaW5hdGlvbi5oICovLAogCQkJCTkz
RTYyRDk5MDk4NUY0MTYwMEUxQjVFMyAvKiBTeXN0ZW1UaW1lLmggKi8sCisJCQkJODk4NzgzRUYx
MjI1RjI4QTAwM0FBQkRBIC8qIFRhc2tRdWV1ZUNvbnRleHQuaCAqLywKIAkJCQlCQ0U2NUQzMTBF
QUQxMjExMDA3RTQ1MzMgLyogVGhlbWUuY3BwICovLAogCQkJCUJDRTY1OEZFMEVBOTI0OEEwMDdF
NDUzMyAvKiBUaGVtZS5oICovLAogCQkJCUJDRTY1OUE4MEVBOTI3QjkwMDdFNDUzMyAvKiBUaGVt
ZVR5cGVzLmggKi8sCkBAIC0yMDM4Niw2ICsyMDQwNCwxMCBAQAogCQkJCTg5NDdBODJDMTIyMjJD
NDcwMEQ5NUYyRCAvKiBKU01ldGFkYXRhQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTg5
NDdBODNDMTIyMjM0RjQwMEQ5NUYyRCAvKiBNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODk0N0E4M0QxMjIyMzRGOTAwRDk1RjJEIC8qIE1ldGFkYXRhQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAorCQkJCTg5RDA4REEwMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uaCBp
biBIZWFkZXJzICovLAorCQkJCTg5RDA4REExMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVT
eXN0ZW1DYWxsYmFja3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTg5ODc4M0Q0MTIyMzJBMTMwMDNB
QUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTg5ODc4M0YwMTIy
NUYyOEIwMDNBQUJEQSAvKiBUYXNrUXVldWVDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIy
ODQ1LDYgKzIyODY3LDggQEAKIAkJCQk4OTY4NkM5RjEyMjI0NEEwMDA3NkVBQTQgLyogRE9NRmls
ZVBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk0N0E4MjkxMjIyMkM0NzAwRDk1RjJEIC8q
IEpTTWV0YWRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk0N0E4MkIxMjIyMkM0NzAwRDk1
RjJEIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4OUQwOEQ5
RjEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTg5ODc4M0QzMTIyMzJBMTMwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmNwcCBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IGQwMTRk
NDdiNDJkYjUxNWJlNTNjNzEwZTM5ZWRjOGJmOTBiNDA2MzEuLjUwZDIwYWExYmMzZGFkZWNlZThj
MzJkNjRjZmFkYzA4NjAxYWQwMzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
Y3BwCkBAIC0zMDQsMTAgKzMwNCw2IEBAIEZpbGVUaHJlYWQqIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmZpbGVUaHJlYWQoKQogfQogI2VuZGlmCiAKLVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRh
c2s6On5UYXNrKCkKLXsKLX0KLQogI2lmIFVTRShKU0MpCiBKU0M6OkpTR2xvYmFsRGF0YSogU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6Z2xvYmFsRGF0YSgpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgKaW5kZXggMzBjMTJlNTBjMzYyZWYwMDg2YjU0OTg2MTFjMDE0MzZlN2FlNDBi
Ny4uOWZkMDNlMmI2MWY1MDNkMGZkYWNkMWIwYTA5MjE4ZDQ0YjhiMWRhNiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQ29u
c29sZS5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJUYXNrUXVldWVDb250ZXh0Lmgi
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC02Miw3ICs2Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogI2VuZGlmCiAKLSAgICBjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0IHsKKyAgICBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0
IDogcHVibGljIFRhc2tRdWV1ZUNvbnRleHQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gewogICAg
IHB1YmxpYzoKICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgICAgICB2aXJ0
dWFsIH5TY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC03OSw3ICs4MCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgLy8gV2hlbiB0aGUgZGF0YWJhc2UgY2xlYW51cCBpcyBkb25l
LCBjbGVhbnVwU3luYyB3aWxsIGJlIHNpZ25hbGxlZC4KICAgICAgICAgdm9pZCBzdG9wRGF0YWJh
c2VzKERhdGFiYXNlVGFza1N5bmNocm9uaXplciopOwogI2VuZGlmCi0gICAgICAgIHZpcnR1YWwg
Ym9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCA9IDA7CisKICAgICAgICAgdmlydHVhbCBib29s
IGlzSlNFeGVjdXRpb25UZXJtaW5hdGVkKCkgY29uc3QgPSAwOwogCiAgICAgICAgIGNvbnN0IEtV
UkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIHZpcnR1YWxVUkwoKTsgfQpAQCAtMTE3LDE2ICsxMTgs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgcmVmKCkgeyByZWZTY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7IH0KICAgICAgICAgdm9pZCBkZXJlZigpIHsgZGVyZWZTY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7IH0KIAotICAgICAgICBjbGFzcyBUYXNrIDogcHVibGljIE5vbmNv
cHlhYmxlIHsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgdmlydHVhbCB+VGFzaygpOwot
ICAgICAgICAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKSA9IDA7Ci0gICAgICAgICAgICAvLyBDZXJ0YWluIHRhc2tzIGdldCBtYXJrZWQgc3BlY2lh
bGx5IHNvIHRoYXQgdGhleSBhcmVuJ3QgZGlzY2FyZGVkLCBhbmQgYXJlIGV4ZWN1dGVkLCB3aGVu
IHRoZSBjb250ZXh0IGlzIHNodXR0aW5nIGRvd24gaXRzIG1lc3NhZ2UgcXVldWUuCi0gICAgICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNDbGVhbnVwVGFzaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgICAgIH07Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFBhc3NPd25QdHI8
VGFzaz4pID0gMDsgLy8gRXhlY3V0ZXMgdGhlIHRhc2sgb24gY29udGV4dCdzIHRocmVhZCBhc3lu
Y2hyb25vdXNseS4KLQogICAgICAgICB2b2lkIGFkZFRpbWVvdXQoaW50IHRpbWVvdXRJZCwgRE9N
VGltZXIqKTsKICAgICAgICAgdm9pZCByZW1vdmVUaW1lb3V0KGludCB0aW1lb3V0SWQpOwogICAg
ICAgICBET01UaW1lciogZmluZFRpbWVvdXQoaW50IHRpbWVvdXRJZCk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0Fz
eW5jRmlsZVN5c3RlbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTJmZjZmOGRmOTJlYWVkNTg0YWMzOTE3NTlm
YmUwNDk3ODk3NDk3ZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNG
aWxlU3lzdGVtLmNwcApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjaW5j
bHVkZSAiQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbS5o
IgorI2luY2x1ZGUgIlRhc2tRdWV1ZUNvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CisjaWYgIVBMQVRGT1JNKENIUk9NSVVNKQorUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IEFz
eW5jRmlsZVN5c3RlbTo6Y3JlYXRlKFRhc2tRdWV1ZUNvbnRleHRCYXNlKikKK3sKKyAgICAvLyBG
SVhNRTogcmV0dXJuIHRocmVhZC1iYXNlZCBBc3luY0ZpbGVTeXN0ZW0gYXMgYSBkZWZhdWx0IGlt
cGxlbWVudGF0aW9uLgorICAgIHJldHVybiAwOworfQorCisvLyBEZWZhdWx0IGltcGxlbWVudGF0
aW9uLgordm9pZCBBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtKFRhc2tRdWV1ZUNvbnRl
eHRCYXNlKiBzY3JpcHRDb250ZXh0LCBjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJp
bmcmIHN0b3JhZ2VJZGVudGlmaWVyLCBUeXBlIHR5cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgU3RyaW5nIHR5cGVTdHJpbmcgPSAodHlw
ZSA9PSBQZXJzaXN0ZW50KSA/ICJQZXJzaXN0ZW50IiA6ICJUZW1wb3JhcnkiOworCisgICAgU3Ry
aW5nIG5hbWUgPSBzdG9yYWdlSWRlbnRpZmllcjsKKyAgICBuYW1lICs9ICI6IjsKKyAgICBuYW1l
ICs9IHR5cGVTdHJpbmc7CisKKyAgICBTdHJpbmcgcm9vdFBhdGggPSBiYXNlUGF0aDsKKyAgICBy
b290UGF0aC5hcHBlbmQoUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvcik7CisgICAgcm9vdFBhdGgg
Kz0gc3RvcmFnZUlkZW50aWZpZXI7CisgICAgcm9vdFBhdGguYXBwZW5kKFBsYXRmb3JtRmlsZVBh
dGhTZXBhcmF0b3IpOworICAgIHJvb3RQYXRoICs9IHR5cGVTdHJpbmc7CisgICAgcm9vdFBhdGgu
YXBwZW5kKFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IpOworCisgICAgY2FsbGJhY2tzLT5kaWRP
cGVuRmlsZVN5c3RlbShuYW1lLCBBc3luY0ZpbGVTeXN0ZW06OmNyZWF0ZShzY3JpcHRDb250ZXh0
KSk7Cit9CisjZW5kaWYKKworLy8gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KK1N0cmluZyBBc3lu
Y0ZpbGVTeXN0ZW06OnZpcnR1YWxUb1BsYXRmb3JtUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpIGNv
bnN0Cit7CisgICAgQVNTRVJUKCFtX3BsYXRmb3JtUm9vdFBhdGguaXNFbXB0eSgpKTsKKyAgICBT
dHJpbmcgdmlydHVhbFBhdGggPSBwYXRoOworICAgIHJldHVybiBtX3BsYXRmb3JtUm9vdFBhdGgg
KyB2aXJ0dWFsUGF0aC5yZXBsYWNlKCcvJywgUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvcik7Cit9
CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0pCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGNhNDRkZTMxMTUzMTMxOTY0NTRl
Zjk2NDVhZWFjNjczZDUyMmJjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9B
c3luY0ZpbGVTeXN0ZW0uaApAQCAtMCwwICsxLDEyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQXN5bmNGaWxlU3lzdGVt
X2gKKyNkZWZpbmUgQXN5bmNGaWxlU3lzdGVtX2gKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkK
KworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBc3luY0ZpbGVTeXN0ZW07CitjbGFz
cyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M7CitjbGFzcyBUYXNrUXVldWVDb250ZXh0QmFzZTsK
KworLy8gVGhpcyBjbGFzcyBwcm92aWRlcyBhc3luYyBpbnRlcmZhY2UgZm9yIHBsYXRmb3JtLXNw
ZWNpZmljIERPTUZpbGVTeXN0ZW0gaW1wbGVtZW50YXRpb24uIE5vdGUgdGhhdCBhbGwgdGhlIG1l
dGhvZHMgdGFrZSBjYW5vbmljYWxpemVkIHZpcnR1YWwgcGF0aHMuCitjbGFzcyBBc3luY0ZpbGVT
eXN0ZW0gOiBwdWJsaWMgTm9uY29weWFibGUgeworcHVibGljOgorICAgIHZpcnR1YWwgfkFzeW5j
RmlsZVN5c3RlbSgpIHsgfQorCisgICAgLy8gRmlsZVN5c3RlbSB0eXBlCisgICAgZW51bSBUeXBl
IHsKKyAgICAgICAgVGVtcG9yYXJ5LAorICAgICAgICBQZXJzaXN0ZW50LAorICAgIH07CisKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RvcCgpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0
aXZpdHkoKSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgLy8gQ3JlYXRlcyBhbmQgcmV0dXJucyBh
IG5ldyBwbGF0Zm9ybS1zcGVjaWZpYyBBc3luY0ZpbGVTeXN0ZW0gaW5zdGFuY2UgaWYgdGhlIHBs
YXRmb3JtIGhhcyBpdHMgb3duIGltcGxlbWVudGF0aW9uLgorICAgIHN0YXRpYyBQYXNzT3duUHRy
PEFzeW5jRmlsZVN5c3RlbT4gY3JlYXRlKFRhc2tRdWV1ZUNvbnRleHRCYXNlKiBzY3JpcHRDb250
ZXh0KTsKKworICAgIC8vIE9wZW5zIGEgbmV3IGZpbGUgc3lzdGVtLiAgVGhpcyBwYXNzZXMgdGhl
IG93bmVyc2hpcCBvZiAndGhpcycgdG8gdGhlIGNhbGxiYWNrcy4KKyAgICBzdGF0aWMgdm9pZCBv
cGVuRmlsZVN5c3RlbShUYXNrUXVldWVDb250ZXh0QmFzZSogc2NyaXB0Q29udGV4dCwgY29uc3Qg
U3RyaW5nJiBiYXNlUGF0aCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlSWRlbnRpZmllciwgVHlwZSwg
UGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKKworICAgIC8vIE1vdmVzIGEg
ZmlsZSBvciBkaXJlY3RvcnkgZnJvbSBzcmNQYXRoIHRvIGRlc3RQYXRoLgorICAgIC8vIEFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkU3VjY2VlZCgpIGlzIGNhbGxlZCB3aGVuIHRoZSBvcGVy
YXRpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3M6OmRpZEZhaWwoKSBpcyBjYWxsZWQgb3RoZXJ3aXNlLgorICAgIHZpcnR1YWwgdm9p
ZCBtb3ZlKGNvbnN0IFN0cmluZyYgc3JjUGF0aCwgY29uc3QgU3RyaW5nJiBkZXN0UGF0aCwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBDb3BpZXMg
YSBmaWxlIG9yIGRpcmVjdG9yeSBmcm9tIHNyY1BhdGggdG8gZGVzdFBhdGguCisgICAgLy8gQXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRTdWNjZWVkKCkgaXMgY2FsbGVkIHdoZW4gdGhlIG9w
ZXJhdGlvbiBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgIC8vIEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrczo6ZGlkRmFpbCgpIGlzIGNhbGxlZCBvdGhlcndpc2UuCisgICAgdmlydHVhbCB2
b2lkIGNvcHkoY29uc3QgU3RyaW5nJiBzcmNQYXRoLCBjb25zdCBTdHJpbmcmIGRlc3RQYXRoLCBQ
YXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKworICAgIC8vIERlbGV0
ZXMgYSBmaWxlIG9yIGRpcmVjdG9yeSBhdCBhIGdpdmVuIHBhdGguCisgICAgLy8gQXN5bmNGaWxl
U3lzdGVtQ2FsbGJhY2tzOjpkaWRTdWNjZWVkKCkgaXMgY2FsbGVkIHdoZW4gdGhlIG9wZXJhdGlv
biBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxi
YWNrczo6ZGlkRmFpbCgpIGlzIGNhbGxlZCBvdGhlcndpc2UuCisgICAgdmlydHVhbCB2b2lkIHJl
bW92ZShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzPikgPSAwOworCisgICAgLy8gUmV0cmlldmVzIHRoZSBtZXRhZGF0YSBpbmZvcm1hdGlvbiBv
ZiB0aGUgZmlsZSBvciBkaXJlY3RvcnkgYXQgYSBnaXZlbiBwYXRoLgorICAgIC8vIEFzeW5jRmls
ZVN5c3RlbUNhbGxiYWNrczo6ZGlkUmVhZE1ldGFkYXRhKCkgaXMgY2FsbGVkIHdoZW4gdGhlIG9w
ZXJhdGlvbiBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgIC8vIEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrczo6ZGlkRmFpbCgpIGlzIGNhbGxlZCBvdGhlcndpc2UuCisgICAgdmlydHVhbCB2
b2lkIHJlYWRNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxl
U3lzdGVtQ2FsbGJhY2tzPikgPSAwOworCisgICAgLy8gQ3JlYXRlcyBhIGZpbGUgYXQgYSBnaXZl
biBwYXRoLiAgSWYgZXhjbHVzaXZlIGZsYWcgaXMgdHJ1ZSwgaXQgZmFpbHMgaWYgdGhlIHBhdGgg
YWxyZWFkeSBleGlzdHMuCisgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRTdWNj
ZWVkKCkgaXMgY2FsbGVkIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1
bGx5LgorICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkRmFpbCgpIGlzIGNhbGxl
ZCBvdGhlcndpc2UuCisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUZpbGUoY29uc3QgU3RyaW5nJiBw
YXRoLCBib29sIGV4Y2x1c2l2ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+
KSA9IDA7CisKKyAgICAvLyBDcmVhdGVzIGEgZGlyZWN0b3J5IGF0IGEgZ2l2ZW4gcGF0aC4gIElm
IGV4Y2x1c2l2ZSBmbGFnIGlzIHRydWUsIGl0IGZhaWxzIGlmIHRoZSBwYXRoIGFscmVhZHkgZXhp
c3RzLgorICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkU3VjY2VlZCgpIGlzIGNh
bGxlZCB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAv
LyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZEZhaWwoKSBpcyBjYWxsZWQgb3RoZXJ3aXNl
LgorICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBi
b29sIGV4Y2x1c2l2ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7
CisKKyAgICAvLyBDaGVja3MgaWYgYSBmaWxlIGV4aXN0cyBhdCBhIGdpdmVuIHBhdGguCisgICAg
Ly8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRTdWNjZWVkKCkgaXMgY2FsbGVkIGlmIHRo
ZSBmaWxlIGV4aXN0cy4KKyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZEZhaWwo
KSBpcyBjYWxsZWQgb3RoZXJ3aXNlLgorICAgIHZpcnR1YWwgdm9pZCBmaWxlRXhpc3RzKGNvbnN0
IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7
CisKKyAgICAvLyBDaGVja3MgaWYgYSBkaXJlY3RvcnkgZXhpc3RzIGF0IGEgZ2l2ZW4gcGF0aC4K
KyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZFN1Y2NlZWQoKSBpcyBjYWxsZWQg
aWYgdGhlIGRpcmVjdG9yeSBleGlzdHMuCisgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
OjpkaWRGYWlsKCkgaXMgY2FsbGVkIG90aGVyd2lzZS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlyZWN0
b3J5RXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBSZWFkcyBkaXJlY3RvcnkgZW50cmllcyBvZiBhIGdp
dmVuIGRpcmVjdG9yeSBhdCBwYXRoLgorICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6
ZGlkUmVhZERpcmVjdG9yeUVudHJ5KCkgaXMgY2FsbGVkIHdoZW4gZWFjaCBkaXJlY3RvcnkgZW50
cnkgaXMgY2FsbGVkLiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZFJlYWREaXJlY3RvcnlD
aHVua0RvbmUoKSBpcyBjYWxsZWQgYWZ0ZXIgYSBjaHVuayBvZiBkaXJlY3RvcnkgZW50cmllcyBo
YXZlIGJlZW4gcmVhZC4KKyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZEZhaWwo
KSBpcyB3aGVuIHRoZXJlIGlzIGFuIGVycm9yLgorICAgIHZpcnR1YWwgdm9pZCByZWFkRGlyZWN0
b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFj
a3M+KSA9IDA7CisKKyAgICAvLyBDb252ZXJ0cyBhIGdpdmVuIGFic29sdXRlIHZpcnR1YWwgcGF0
aCB0byBhIHBsYXRmb3JtIHBhdGggdGhhdCBzdGFydHMgd2l0aCB0aGUgcGxhdGZvcm0gcm9vdCBw
YXRoIG9mIHRoaXMgZmlsZSBzeXN0ZW0uCisgICAgdmlydHVhbCBTdHJpbmcgdmlydHVhbFRvUGxh
dGZvcm1QYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkgY29uc3Q7CisKK3Byb3RlY3RlZDoKKyAgICBB
c3luY0ZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBwbGF0Zm9ybVJvb3RQYXRoKQorICAgICAgICA6
IG1fcGxhdGZvcm1Sb290UGF0aChwbGF0Zm9ybVJvb3RQYXRoKQorICAgIHsKKyAgICB9CisKKyAg
ICBTdHJpbmcgbV9wbGF0Zm9ybVJvb3RQYXRoOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjZW5kaWYgLy8gQXN5bmNGaWxl
U3lzdGVtX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2Fs
bGJhY2tzLmggYi9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVlZTQxZDFlNzNiY2MxYzA4OTJmNjE0MGMzODEwMjEwYmU4Y2Q2YjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5o
CkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrc19oCisjZGVm
aW5lIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrc19oCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0p
CisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEFzeW5jRmlsZVN5c3RlbTsKKworY2xhc3MgQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
IDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICAvLyBDYWxsZWQgd2hlbiBhIHJl
cXVlc3RlZCBvcGVyYXRpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkU3VjY2VlZCgpID0gMDsKKworICAgIC8vIENhbGxlZCB3aGVuIGEgcmVxdWVzdGVk
IGZpbGUgc3lzdGVtIGlzIG9wZW5lZC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkT3BlbkZpbGVTeXN0
ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4pID0gMDsK
KworICAgIC8vIENhbGxlZCB3aGVuIGEgZmlsZSBtZXRhZGF0YSBpcyByZWFkIHN1Y2Nlc3NmdWxs
eS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVhZE1ldGFkYXRhKGRvdWJsZSBtb2RpZmljYXRpb25U
aW1lKSA9IDA7CisKKyAgICAvLyBDYWxsZWQgd2hlbiBhIGRpcmVjdG9yeSBlbnRyeSBpcyByZWFk
LgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWFkRGlyZWN0b3J5RW50cnkoY29uc3QgU3RyaW5nJiBu
YW1lLCBib29sIGlzRGlyZWN0b3J5KSA9IDA7CisKKyAgICAvLyBDYWxsZWQgYWZ0ZXIgYSBjaHVu
ayBvZiBkaXJlY3RvcnkgZW50cmllcyBoYXZlIGJlZW4gcmVhZCAoaS5lLiBpbmRpY2F0ZXMgaXQn
cyBnb29kIHRpbWUgdG8gY2FsbCBiYWNrIHRvIHRoZSBhcHBsaWNhdGlvbikuICBJZiBoYXNNb3Jl
IGlzIHRydWUgdGhlcmUgY2FuIGJlIG1vcmUgY2h1bmtzLgorICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWFkRGlyZWN0b3J5Q2h1bmtEb25lKGJvb2wgaGFzTW9yZSkgPSAwOworCisgICAgLy8gQ2FsbGVk
IHdoZW4gdGhlcmUgd2FzIGFuIGVycm9yLgorICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGludCBj
b2RlKSA9IDA7CisKKyAgICB2aXJ0dWFsIH5Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MoKSB7IH0K
K307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0pCisK
KyNlbmRpZiAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3NfaApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApp
bmRleCBlYzc1YTIxMDNhNTUwODczYzU3ZTQxN2U2ZjMzMmUwOGI2OGQ3YWRmLi5lMzkxNmNmZTBh
YzU5NjcxN2U5YTRmMmJkOWU1YmUwMDYyMjZkMDgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL0ZpbGVTeXN0ZW0uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAt
MTM4LDYgKzEzOCwxMiBAQCBlbnVtIEZpbGVTZWVrT3JpZ2luIHsKICAgICBTZWVrRnJvbUVuZAog
fTsKIAorI2lmIE9TKFdJTkRPV1MpCitzdGF0aWMgY29uc3QgY2hhciBQbGF0Zm9ybUZpbGVQYXRo
U2VwYXJhdG9yID0gJ1xcJzsKKyNlbHNlCitzdGF0aWMgY29uc3QgY2hhciBQbGF0Zm9ybUZpbGVQ
YXRoU2VwYXJhdG9yID0gJy8nOworI2VuZGlmCisKIGJvb2wgZmlsZUV4aXN0cyhjb25zdCBTdHJp
bmcmKTsKIGJvb2wgZGVsZXRlRmlsZShjb25zdCBTdHJpbmcmKTsKIGJvb2wgZGVsZXRlRW1wdHlE
aXJlY3RvcnkoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1Rh
c2tRdWV1ZUNvbnRleHQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vVGFza1F1ZXVlQ29udGV4dC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNkZThmNDc3YzE1ZGMzYjMwNTJhZDg5ZWVhNzlmNzNlN2Q1MmRmMmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL1Rhc2tRdWV1ZUNvbnRleHQuaApAQCAtMCww
ICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBUYXNrUXVldWVDb250ZXh0X2gKKyNkZWZpbmUgVGFza1F1ZXVlQ29u
dGV4dF9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKKy8vIFB1cmUgYWJzdHJhY3QgY2xhc3MgdGhhdCBwcm92aWRlcyBhbiBpbnRlcmZhY2Ug
dG8gcG9zdCB0YXNrcy4KK2NsYXNzIFRhc2tRdWV1ZUNvbnRleHRCYXNlIHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5UYXNrUXVldWVDb250ZXh0QmFzZSgpIHsgfQorCisgICAgY2xhc3MgVGFzayA6
IHB1YmxpYyBOb25jb3B5YWJsZSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5UYXNr
KCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBydW5UYXNrKFRhc2tRdWV1ZUNvbnRleHRCYXNl
KikgPSAwOworICAgICAgICAvLyBDZXJ0YWluIHRhc2tzIGdldCBtYXJrZWQgc3BlY2lhbGx5IHNv
IHRoYXQgdGhleSBhcmVuJ3QgZGlzY2FyZGVkLCBhbmQgYXJlIGV4ZWN1dGVkLCB3aGVuIHRoZSBj
b250ZXh0IGlzIHNodXR0aW5nIGRvd24gaXRzIG1lc3NhZ2UgcXVldWUuCisgICAgICAgIHZpcnR1
YWwgYm9vbCBpc0NsZWFudXBUYXNrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB9Owor
CisgICAgdmlydHVhbCBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0ID0gMDsgLy8gUmV0dXJu
cyB0cnVlIGlmIHdlJ3JlIG9uIHRoZSB0aHJlYWQgdGhhdCBpcyBydW5uaW5nIHRoaXMgY29udGV4
dC4KKworICAgIHZpcnR1YWwgdm9pZCBxdWV1ZVRhc2soUGFzc093blB0cjxUYXNrPikgPSAwOyAv
LyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5Lgor
CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7IC8vIFN0b3BzIHRvIGV4ZWN1dGUgdGFza3Mu
CisKK3Byb3RlY3RlZDoKKyAgICBUYXNrUXVldWVDb250ZXh0QmFzZSgpIHsgfQorfTsKKworLy8g
RklYTUU6IHdvcmsgYXJvdW5kIG5vdCB0byBicmVhayB0aGUgYnVpbGQgd2l0aG91dCBsYXJnZSBh
bW91bnQgb2YgY2hhbmdlcy4KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorY2xhc3MgVGFza1F1ZXVl
Q29udGV4dCA6IHB1YmxpYyBUYXNrUXVldWVDb250ZXh0QmFzZSB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+VGFza1F1ZXVlQ29udGV4dCgpIHsgfQorCisgICAgY2xhc3MgVGFzayA6IHB1YmxpYyBU
YXNrUXVldWVDb250ZXh0QmFzZTo6VGFzayB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFs
IH5UYXNrKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhUKiBjb250ZXh0
KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBydW5UYXNrKFRhc2tRdWV1ZUNvbnRleHRCYXNl
KiBjb250ZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBwZXJmb3JtVGFzayhzdGF0aWNfY2Fz
dDxUKj4oY29udGV4dCkpOworICAgICAgICB9CisgICAgfTsKKworICAgIHZpcnR1YWwgdm9pZCBw
b3N0VGFzayhQYXNzT3duUHRyPFRhc2s+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHF1ZXVlVGFz
ayhQYXNzT3duUHRyPFRhc2tRdWV1ZUNvbnRleHRCYXNlOjpUYXNrPiB0YXNrKQorICAgIHsKKyAg
ICAgICAgcG9zdFRhc2soc3RhdGljX2Nhc3Q8VGFzayo+KHRhc2subGVha1B0cigpKSk7CisgICAg
fQorCisgICAgdmlydHVhbCB2b2lkIHN0b3AoKQorICAgIHsKKyAgICB9Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUYXNrUXVldWVDb250ZXh0X2gKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9E
T01GaWxlU3lzdGVtLmNwcAppbmRleCBjM2RiZDM0MDE0ZWEyMGVjZWZkOGFhZGQ3YzZiZGM5ZGJk
MGVlOTYyLi41ZDYwNzNhM2U5ZWMxMjM5NjRhMjJiOTY2OTQ2YmIzNjBhMjM5ZWVhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5jcHAKKysrIGIvV2ViQ29yZS9zdG9y
YWdlL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC0zMywxMyArMzMsMjAgQEAKIAogI2lmIEVOQUJMRShG
SUxFX1NZU1RFTSkKIAorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkRp
cmVjdG9yeUVudHJ5LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLURPTUZpbGVTeXN0ZW06OkRPTUZpbGVTeXN0ZW0oY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoKQotICAgIDogbV9yb290UGF0aChy
b290UGF0aCkKK0RPTUZpbGVTeXN0ZW06OkRPTUZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5
c3RlbT4gYXN5bmNGaWxlU3lzdGVtKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRo
aXMpCiAgICAgLCBtX25hbWUobmFtZSkKKyAgICAsIG1fYXN5bmNGaWxlU3lzdGVtKGFzeW5jRmls
ZVN5c3RlbSkKK3sKK30KKworRE9NRmlsZVN5c3RlbTo6fkRPTUZpbGVTeXN0ZW0oKQogewogfQog
CkBAIC00OCw2ICs1NSwyMSBAQCBQYXNzUmVmUHRyPERpcmVjdG9yeUVudHJ5PiBET01GaWxlU3lz
dGVtOjpyb290KCkKICAgICByZXR1cm4gRGlyZWN0b3J5RW50cnk6OmNyZWF0ZSh0aGlzLCAiLyIp
OwogfQogCit2b2lkIERPTUZpbGVTeXN0ZW06OnN0b3AoKQoreworICAgIG1fYXN5bmNGaWxlU3lz
dGVtLT5zdG9wKCk7Cit9CisKK2Jvb2wgRE9NRmlsZVN5c3RlbTo6aGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9hc3luY0ZpbGVTeXN0ZW0tPmhhc1BlbmRpbmdBY3Rp
dml0eSgpOworfQorCit2b2lkIERPTUZpbGVTeXN0ZW06OmNvbnRleHREZXN0cm95ZWQoKQorewor
ICAgIG1fYXN5bmNGaWxlU3lzdGVtLT5zdG9wKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlCiAKICNl
bmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0pCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2Uv
RE9NRmlsZVN5c3RlbS5oIGIvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaAppbmRleCBi
ODdhYWFmMzJjZDllYWMwZjIyYzQ5ZWUxNzY3MmRkNWEyZTc3NjczLi4zMzdiZWE5Y2JlZWMwYjdm
ZTIzYjk0NWIzOTNhNTM0NzBkOTQ1MmYzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRE9N
RmlsZVN5c3RlbS5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmgKQEAgLTMz
LDYgKzMzLDkgQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKIAorI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkZs
YWdzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00MCwyMiArNDMsMzAgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGlyZWN0b3J5RW50cnk7CitjbGFzcyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OwogCi1jbGFzcyBET01GaWxlU3lzdGVtIDogcHVibGljIFJlZkNv
dW50ZWQ8RE9NRmlsZVN5c3RlbT4geworY2xhc3MgRE9NRmlsZVN5c3RlbSA6IHB1YmxpYyBSZWZD
b3VudGVkPERPTUZpbGVTeXN0ZW0+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtPiBjcmVhdGUoY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERP
TUZpbGVTeXN0ZW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25z
dCBTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBhc3luY0ZpbGVTeXN0
ZW0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTUZpbGVTeXN0ZW0obmFt
ZSwgcm9vdFBhdGgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01GaWxlU3lzdGVt
KGNvbnRleHQsIG5hbWUsIGFzeW5jRmlsZVN5c3RlbSkpOwogICAgIH0KIAorICAgIHZpcnR1YWwg
fkRPTUZpbGVTeXN0ZW0oKTsKKwogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbmFtZTsgfQogICAgIFBhc3NSZWZQdHI8RGlyZWN0b3J5RW50cnk+IHJvb3QoKTsKIAor
ICAgIC8vIEFjdGl2ZURPTU9iamVjdCBtZXRob2RzLgorICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7
CisgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0OworICAgIHZpcnR1
YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCk7CisKIHByaXZhdGU6Ci0gICAgRE9NRmlsZVN5c3Rl
bShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpOworICAgIERPTUZp
bGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW0+KTsKIAotICAgIFN0cmluZyBtX3Jvb3RQYXRoOwogICAg
IFN0cmluZyBtX25hbWU7CisgICAgbXV0YWJsZSBPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBtX2Fz
eW5jRmlsZVN5c3RlbTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5
c3RlbUNhbGxiYWNrcy5jcHAKaW5kZXggZWMzNTJkZDdkNmU5MmM3Yzg3YTM4MDRiM2NkMzhjYzNk
ZGExZTgxOC4uNTQ4MzlkODE5NWIzZWNmYjU5MzY5Nzg1YmNkNzVjMzBmOWU3NmZkOSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcApAQCAtMzMsNiArMzMsNyBAQAogCiAj
aWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCiAj
aW5jbHVkZSAiRE9NRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkRpcmVjdG9yeUVudHJ5LmgiCiAj
aW5jbHVkZSAiRW50cmllc0NhbGxiYWNrLmgiCkBAIC02NSw3ICs2Niw3IEBAIHZvaWQgRmlsZVN5
c3RlbUNhbGxiYWNrc0Jhc2U6OmRpZFN1Y2NlZWQoKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCi12b2lkIEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlOjpkaWRPcGVuRmlsZVN5c3RlbShj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQordm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFz
ZTo6ZGlkT3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiwgUGFzc093blB0cjxBc3luY0ZpbGVT
eXN0ZW0+KQogewogICAgIC8vIEVhY2ggc3ViY2xhc3MgbXVzdCBpbXBsZW1lbnQgYW4gYXBwcm9w
cmlhdGUgb25lLgogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODksNyArOTAsNyBAQCB2
b2lkIEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlOjpkaWRSZWFkRGlyZWN0b3J5RW50cnkoY29uc3Qg
U3RyaW5nJiwgYm9vbCkKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBGaWxl
U3lzdGVtQ2FsbGJhY2tzQmFzZTo6ZGlkRmFpbChFeGNlcHRpb25Db2RlIGNvZGUpCit2b2lkIEZp
bGVTeXN0ZW1DYWxsYmFja3NCYXNlOjpkaWRGYWlsKGludCBjb2RlKQogewogICAgIGlmIChtX2Vy
cm9yQ2FsbGJhY2spIHsKICAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChGaWxl
RXJyb3I6OmNyZWF0ZShjb2RlKS5nZXQoKSk7CkBAIC0xNTIsMTYgKzE1MywxOSBAQCB2b2lkIEVu
dHJpZXNDYWxsYmFja3M6OmRpZFJlYWREaXJlY3RvcnlDaHVua0RvbmUoYm9vbCBoYXNNb3JlKQog
CiAvLyBGaWxlU3lzdGVtQ2FsbGJhY2tzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUZpbGVTeXN0ZW1DYWxsYmFja3M6OkZpbGVTeXN0
ZW1DYWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFj
aywgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQorRmlsZVN5c3RlbUNh
bGxiYWNrczo6RmlsZVN5c3RlbUNhbGxiYWNrcyhQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFj
az4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJh
Y2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBGaWxlU3lzdGVtQ2Fs
bGJhY2tzQmFzZShlcnJvckNhbGxiYWNrKQogICAgICwgbV9zdWNjZXNzQ2FsbGJhY2soc3VjY2Vz
c0NhbGxiYWNrKQorICAgICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpCiB7CiB9
CiAKLXZvaWQgRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkT3BlbkZpbGVTeXN0ZW0oY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoKQordm9pZCBGaWxlU3lzdGVtQ2FsbGJh
Y2tzOjpkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8QXN5
bmNGaWxlU3lzdGVtPiBhc3luY0ZpbGVTeXN0ZW0pCiB7Ci0gICAgaWYgKG1fc3VjY2Vzc0NhbGxi
YWNrKQotICAgICAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRmlsZVN5c3Rl
bTo6Y3JlYXRlKG5hbWUsIHJvb3RQYXRoKS5nZXQoKSk7CisgICAgaWYgKG1fc3VjY2Vzc0NhbGxi
YWNrKSB7CisgICAgICAgIEFTU0VSVChhc3luY0ZpbGVTeXN0ZW0pOworICAgICAgICBtX3N1Y2Nl
c3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRmlsZVN5c3RlbTo6Y3JlYXRlKG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgbmFtZSwgYXN5bmNGaWxlU3lzdGVtLmxlYWtQdHIoKSkuZ2V0KCkpOwor
ICAgIH0KICAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwogfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oIGIvV2ViQ29yZS9zdG9yYWdlL0Zp
bGVTeXN0ZW1DYWxsYmFja3MuaAppbmRleCBlMGU3OGQzNzBjMjFlMzM3YjI0OGQzOGFjODk2ZDFh
N2UwZWNiMTMwLi4yMjdmMTEyNTdmNmU3NDhiNDdiZmZhZDE4ZDQ5MjZlYWEyNmQzMWZhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lm
IEVOQUJMRShGSUxFX1NZU1RFTSkKIAorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
cy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00OSwxMCArNTAsNyBAQCBjbGFzcyBN
ZXRhZGF0YUNhbGxiYWNrOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFZv
aWRDYWxsYmFjazsKIAotdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQotLy8gQSBiYXNlIGNs
YXNzIGZvciBGaWxlU3lzdGVtIGNhbGxiYWNrcyB0aGF0IGJ1bmRsZXMgc3VjY2Vzc0NhbGxiYWNr
LCBlcnJvckNhbGxiYWNrIGFuZCBzb21lIGNsb3N1cmUgZGF0YSBmb3IgdGhlIGNhbGxiYWNrcy4K
LWNsYXNzIEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK2Ns
YXNzIEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlIDogcHVibGljIEFzeW5jRmlsZVN5c3RlbUNhbGxi
YWNrcyB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UoKTsK
IApAQCAtNjAsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFN1Y2NlZWQo
KTsKIAogICAgIC8vIEZvciBGaWxlU3lzdGVtQ2FsbGJhY2tzLgotICAgIHZpcnR1YWwgdm9pZCBk
aWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBh
dGgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5h
bWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPik7CiAKICAgICAvLyBGb3IgTWV0YWRhdGFD
YWxsYmFja3MuCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlYWRNZXRhZGF0YShkb3VibGUgbW9kaWZp
Y2F0aW9uVGltZSk7CkBAIC03MCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVhZERpcmVjdG9yeUNodW5rRG9uZShib29sIGhhc01vcmUpOwogCiAgICAgLy8gRm9yIEVy
cm9yQ2FsbGJhY2suCi0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoRXhjZXB0aW9uQ29kZSBjb2Rl
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChpbnQgY29kZSk7CiAKIHByb3RlY3RlZDoKICAg
ICBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZShQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9y
Q2FsbGJhY2spOwpAQCAtMTA2LDExICsxMDQsMTIgQEAgcHJpdmF0ZToKIAogY2xhc3MgRmlsZVN5
c3RlbUNhbGxiYWNrcyA6IHB1YmxpYyBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZSB7CiBwdWJsaWM6
Ci0gICAgRmlsZVN5c3RlbUNhbGxiYWNrcyhQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4s
IFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pOwotICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuRmls
ZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpOworICAg
IEZpbGVTeXN0ZW1DYWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+LCBQYXNz
UmVmUHRyPEVycm9yQ2FsbGJhY2s+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgdmly
dHVhbCB2b2lkIGRpZE9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW0+KTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8RmlsZVN5c3RlbUNh
bGxiYWNrPiBtX3N1Y2Nlc3NDYWxsYmFjazsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBt
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiB9OwogCiBjbGFzcyBNZXRhZGF0YUNhbGxiYWNrcyA6
IHB1YmxpYyBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0
b3JhZ2UvRmxhZ3MuaCBiL1dlYkNvcmUvc3RvcmFnZS9GbGFncy5oCmluZGV4IGZmZTM0MDM4YTA0
YzQwY2U5ZTNhODc1ODMwYjFiYjgwNWNmNjZlYmIuLjMwODg0ZmNjNDNmZGYyYTNhMDY0NWY5ZDU5
YWQ5YThlYjdlZDYwNGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9GbGFncy5oCisrKyBi
L1dlYkNvcmUvc3RvcmFnZS9GbGFncy5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBFTkFCTEUo
RklMRV9TWVNURU0pCiAKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3RvcmFnZS9Mb2NhbEZpbGVTeXN0ZW0uY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0xvY2FsRmls
ZVN5c3RlbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE2NmIwZjAxYWM4NjI3YjI2Y2MzY2Q0MGQzMGFkZDc0
YzQyMmUyZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbEZpbGVTeXN0
ZW0uY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9j
YWxGaWxlU3lzdGVtLmgiCisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNlcnJvciAiQ2hyb21p
dW0gc2hvdWxkIG5vdCBjb21waWxlIHRoaXMgZmlsZSBhbmQgaW5zdGVhZCBkZWZpbmUgaXRzIG93
biB2ZXJzaW9uIG9mIHRoZXNlIGZhY3Rvcmllcy4iCisjZW5kaWYKKworI2lmIEVOQUJMRShGSUxF
X1NZU1RFTSkKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkVycm9yQ2FsbGJh
Y2suaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRmlsZUVycm9yLmgi
CisjaW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbUNh
bGxiYWNrcy5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxMb2NhbEZpbGVTeXN0ZW0+IExvY2FsRmlsZVN5
c3RlbTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBMb2NhbEZpbGVTeXN0ZW0oYmFzZVBhdGgpKTsKK30KKwordm9pZCBMb2NhbEZpbGVT
eXN0ZW06OnJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBsb25nIGxvbmcsIFBhc3NSZWZQdHI8RmlsZVN5
c3RlbUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4g
ZXJyb3JDYWxsYmFjaykKK3sKKyAgICBpZiAodHlwZSAhPSBBc3luY0ZpbGVTeXN0ZW06OlRlbXBv
cmFyeSAmJiB0eXBlICE9IEFzeW5jRmlsZVN5c3RlbTo6UGVyc2lzdGVudCkgeworICAgICAgICBl
cnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChGaWxlRXJyb3I6OmNyZWF0ZShJTlZBTElEX01PRElG
SUNBVElPTl9FUlIpLmdldCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFzeW5j
RmlsZVN5c3RlbTo6b3BlbkZpbGVTeXN0ZW0oY29udGV4dCwgbV9iYXNlUGF0aCwgY29udGV4dC0+
c2VjdXJpdHlPcmlnaW4oKS0+ZGF0YWJhc2VJZGVudGlmaWVyKCksIHR5cGUsIG5ldyBGaWxlU3lz
dGVtQ2FsbGJhY2tzKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgY29udGV4dCkpOwor
fQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5oIGIvV2ViQ29yZS9zdG9y
YWdlL0xvY2FsRmlsZVN5c3RlbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4Y2ZhOGY2ODg2YTYwYTQwMDQ0NGUy
ZmNlYmVhNjhjZDUyM2RiYjYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvTG9j
YWxGaWxlU3lzdGVtLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTG9jYWxGaWxlU3lzdGVtX2gK
KyNkZWZpbmUgTG9jYWxGaWxlU3lzdGVtX2gKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKwor
I2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVycm9yQ2FsbGJhY2s7CitjbGFzcyBG
aWxlU3lzdGVtQ2FsbGJhY2s7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFz
cyBMb2NhbEZpbGVTeXN0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxMb2NhbEZpbGVTeXN0ZW0+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxMb2NhbEZpbGVTeXN0ZW0+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIGJhc2VQYXRoKTsKKyAgICB2aXJ0dWFsIH5Mb2NhbEZpbGVTeXN0ZW0oKSB7
IH0KKworICAgIHZvaWQgcmVxdWVzdEZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IEFzeW5jRmlsZVN5c3RlbTo6VHlwZSwgbG9uZyBsb25nIHNpemUsIFBhc3NSZWZQdHI8RmlsZVN5
c3RlbUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPik7CisKK3Byb3RlY3RlZDoK
KyAgICBMb2NhbEZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCkKKyAgICAgICAgOiBt
X2Jhc2VQYXRoKGJhc2VQYXRoKQorICAgIHsKKyAgICB9CisKKyAgICBTdHJpbmcgbV9iYXNlUGF0
aDsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0p
CisKKyNlbmRpZiAvLyBMb2NhbEZpbGVTeXN0ZW1faAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65523</attachid>
            <date>2010-08-25 21:40:55 -0700</date>
            <delta_ts>2010-08-25 22:40:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44433-20100825214054.patch</filename>
            <type>text/plain</type>
            <size>40787</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDMyZDJkNTcxY2M1MmI0MGE1ZmJhZjc1M2NlMjAyMzU4ZDdmMWI5MGUuLmFiNjUy
MjVmYjM1NzZiOGE4NWYwZmUwMDI2MzAxNDM2MjQ2YTRjNTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIxMSw2ICsx
MjExLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1l
QW5pbWF0aW9uLmNwcAogCiAgICAgcGxhdGZvcm0vQXJlbmEuY3BwCisgICAgcGxhdGZvcm0vQXN5
bmNGaWxlU3lzdGVtLmNwcAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmNwcAogICAgIHBsYXRmb3Jt
L0NvbnRlbnRUeXBlLmNwcAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmNwcApAQCAtMTQ4Myw2
ICsxNDg0LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHN0b3JhZ2UvSURCRmFjdG9yeS5j
cHAKICAgICBzdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcAogICAgIHN0b3Jh
Z2UvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcAorICAgIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVt
LmNwcAogICAgIHN0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5jcHAKICAgICBzdG9yYWdlL0xvY2Fs
U3RvcmFnZVRocmVhZC5jcHAKICAgICBzdG9yYWdlL09yaWdpblF1b3RhTWFuYWdlci5jcHAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY2
NjJlNzM0OTg4YTE5MzE3NjJjMjk0Y2UwNTZkODZjNDAyZmI4Mi4uYTI4MjFhNWIwY2E0ZjI3MGZm
ZmNhMzQ5ZjJkNTI3M2JiNGI3ZDVhMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0wOC0yMyAgS2ludWtv
IFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFzeW5jRmlsZVN5c3RlbSBpbnRlcmZhY2UgZm9y
IHBsYXRmb3JtLWRlcGVuZGVudCBGaWxlU3lzdGVtIEFQSSBpbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ0MzMKKworICAgICAg
ICBObyBuZXcgdGVzdHM7IHRlc3RzIHdpbGwgYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L0FzeW5jRmlsZVN5c3RlbS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmls
ZVN5c3RlbS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3MuaDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06OkRPTUZpbGVTeXN0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6fkRPTUZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NRmlsZVN5c3RlbTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVt
OjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6
Y29udGV4dERlc3Ryb3llZCk6CisgICAgICAgICogc3RvcmFnZS9ET01GaWxlU3lzdGVtLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpjcmVhdGUpOgorICAgICAgICAqIHN0b3Jh
Z2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
Q2FsbGJhY2tzQmFzZTo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtQ2Fs
bGJhY2tzOjpGaWxlU3lzdGVtQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1DYWxsYmFja3M6OmRpZE9wZW5GaWxlU3lzdGVtKToKKyAgICAgICAgKiBzdG9yYWdlL0ZpbGVT
eXN0ZW1DYWxsYmFja3MuaDoKKyAgICAgICAgKiBzdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5jcHA6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmg6IEFkZGVkLgorCisg
ICAgICAgICogc3RvcmFnZS9GbGFncy5oOiBOaXRzIGZpeC4KKwogMjAxMC0wOC0yNSAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCA4MTE3ZGZlZmMxOWE3YzM3ZDg1OWNjYTkwOWMxM2Q3YWZlNDRh
MjE4Li45MjI4YzM0ZDcyYjY1MjViNGQyOTgyMzBkNTE1NTY0MDNmNjdjNzUyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzA0
MCw2ICszMDQwLDkgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9BcmVuYS5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL0FyZW5hLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0FzeW5jRmls
ZVN0cmVhbS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaCcsCisgICAgICAgICAgICAn
cGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL0F1dG9kcmFpbmVkUG9vbC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9CbG9iSXRlbS5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Jsb2JJdGVtLmgnLApAQCAtMzYzNSw2ICszNjM4
LDcgQEAKICAgICAgICAgICAgICdzdG9yYWdlL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgnLAog
ICAgICAgICAgICAgJ3N0b3JhZ2UvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAnLAogICAg
ICAgICAgICAgJ3N0b3JhZ2UvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oJywKKyAgICAgICAg
ICAgICdzdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0xv
Y2FsU3RvcmFnZVRhc2suY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0xvY2FsU3RvcmFnZVRh
c2suaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuY3BwJywKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4
IDYyZDFjNjgzZWRiMWFmN2U3ZTdiMWQ2ZjgxZjBmNDljM2UzNTYzZGMuLmIzY2RhZWE5NDJmMjU4
MDFhN2JiMzhjZWI0MWVjYzg3MDg5MjRiOTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODc0LDYgKzg3NCw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwIFwKICAgICBwbGF0Zm9y
bS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAgXAogICAgIHBsYXRmb3JtL0FyZW5hLmNwcCBc
CisgICAgcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcCBcCiAgICAgcGxhdGZvcm0vQmxvYkl0
ZW0uY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAgXAogICAgIHBsYXRmb3JtL3Rl
eHQvQmlkaUNvbnRleHQuY3BwIFwKQEAgLTE2NTksNiArMTY2MCw4IEBAIEhFQURFUlMgKz0gXAog
ICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmggXAogICAgIHBsYXRmb3JtL0Fy
ZW5hLmggXAogICAgIHBsYXRmb3JtL0FzeW5jRmlsZVN0cmVhbS5oIFwKKyAgICBwbGF0Zm9ybS9B
c3luY0ZpbGVTeXN0ZW0uaCBcCisgICAgcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
LmggXAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmggXAogICAgIHBsYXRmb3JtL0NvbnRlbnRUeXBl
LmggXAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmggXApAQCAtMjU5Niw2ICsyNTk5LDcgQEAg
Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTEVfU1lTVEVNPTEpIHsKICAgICAgICAgc3RvcmFn
ZS9GaWxlU3lzdGVtQ2FsbGJhY2suaCBcCiAgICAgICAgIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxi
YWNrcy5oIFwKICAgICAgICAgc3RvcmFnZS9GbGFncy5oIFwKKyAgICAgICAgc3RvcmFnZS9Mb2Nh
bEZpbGVTeXN0ZW0uaCBcCiAgICAgICAgIHN0b3JhZ2UvTWV0YWRhdGEuaCBcCiAgICAgICAgIHN0
b3JhZ2UvTWV0YWRhdGFDYWxsYmFjay5oCiAKQEAgLTI2MDcsNyArMjYxMSw4IEBAIGNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9GSUxFX1NZU1RFTT0xKSB7CiAgICAgICAgIHN0b3JhZ2UvRW50cnku
Y3BwIFwKICAgICAgICAgc3RvcmFnZS9FbnRyeUFycmF5LmNwcCBcCiAgICAgICAgIHN0b3JhZ2Uv
RmlsZUVudHJ5LmNwcCBcCi0gICAgICAgIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHAK
KyAgICAgICAgc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcCBcCisgICAgICAgIHN0b3Jh
Z2UvTG9jYWxGaWxlU3lzdGVtLmNwcAogfQogCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSUNP
TkRBVEFCQVNFPTEpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGY3
OTIwNmI3ZmM4MDMwNDhiYmNmNzZmMDM5NWUyNGE1ZDFjYmQ2NDcuLjc3YmZmNDAxZDBkYjkyNDY5
ODU1N2NjYjI3MGQyOGFiODMzMzVmOGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagpAQCAtMjM5ODksNiArMjM5ODksMTggQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxG
aWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cQXN5bmNGaWxlU3lzdGVtLmNwcCIN
CisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXEFzeW5jRmlsZVN5c3RlbS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwbGF0Zm9ybVxBdXRvZHJhaW5lZFBvb2wuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC01
MTQyOSw2ICs1MTQ0MSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXExvY2FsRmlsZVN5c3RlbS5jcHAiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXExvY2Fs
RmlsZVN5c3RlbS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cc3RvcmFnZVxMb2NhbFN0b3JhZ2VUaHJlYWQuY3BwIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
ZWY0YjgwNGI5YzRlNmJmZWU2ZTAzZDVmNzQwYjI4Y2JmNjAwNGVhYi4uNjcwNWNjOTFiOGY5MWY2
OTIxOGNlODRlZWM5YjEwMmJkMTJiZGM5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTIzOTUsNiArMjM5NSw4IEBACiAJCTg5NTI1M0RGMTE2QzRGMDYw
MENBQkYwMCAvKiBGaWxlVGhyZWFkVGFzay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODk1MjUzREUxMTZDNEYwNjAwQ0FCRjAwIC8qIEZpbGVUaHJlYWRU
YXNrLmggKi87IH07CiAJCTg5Njg2QzlGMTIyMjQ0QTAwMDc2RUFBNCAvKiBET01GaWxlUGF0aC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTY4NkM5
RDEyMjI0NEEwMDA3NkVBQTQgLyogRE9NRmlsZVBhdGguY3BwICovOyB9OwogCQk4OTY4NkNBMDEy
MjI0NEEwMDA3NkVBQTQgLyogRE9NRmlsZVBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5Njg2QzlFMTIyMjQ0QTAwMDc2RUFBNCAvKiBET01GaWxl
UGF0aC5oICovOyB9OworCQk4OTg3ODNEMzEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lz
dGVtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5
ODc4M0QxMTIyMzJBMTMwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3BwICovOyB9OworCQk4
OTg3ODNENDEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTg3ODNEMjEyMjMyQTEzMDAzQUFC
REEgLyogTG9jYWxGaWxlU3lzdGVtLmggKi87IH07CiAJCTg5ODhFMTBFMTFBMzUwOEIwMERCNzMy
RSAvKiBCbG9iSXRlbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4OTg4RTEwQzExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uY3BwICovOyB9Owog
CQk4OTg4RTEwRjExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5ODhFMTBEMTFBMzUwOEIwMERCNzMyRSAv
KiBCbG9iSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTg5OUFCQzI2MTIxNUU0QTMwMEY5RjIxOSAvKiBEaXJlY3RvcnlFbnRyeS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTlBQkMyMDEyMTVF
NEEzMDBGOUYyMTkgLyogRGlyZWN0b3J5RW50cnkuY3BwICovOyB9OwpAQCAtMjQ0NCw2ICsyNDQ2
LDkgQEAKIAkJODlDMEREN0IxMjFGMEM2OTAwOUUxN0NBIC8qIEZpbGVTeXN0ZW1DYWxsYmFja3Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5QzBERDc5
MTIxRjBDNjkwMDlFMTdDQSAvKiBGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi87IH07CiAJCTg5Q0Qw
MjkzMTFDODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5Q0QwMjkxMTFDODVCODcwMDcwQjc5MSAv
KiBKU0Jsb2JCdWlsZGVyLmNwcCAqLzsgfTsKIAkJODlDRDAyOTQxMUM4NUI4NzAwNzBCNzkxIC8q
IEpTQmxvYkJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg5Q0QwMjkyMTFDODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JCdWlsZGVyLmggKi87IH07
CisJCTg5RDA4RDlGMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODlEMDhEOUMxMjIyODQ1
MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgKi87IH07CisJCTg5RDA4REEwMTIyMjg0
NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5RDA4RDlEMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0Zp
bGVTeXN0ZW0uaCAqLzsgfTsKKwkJODlEMDhEQTExMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmls
ZVN5c3RlbUNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODlEMDhEOUUxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxi
YWNrcy5oICovOyB9OwogCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2Fk
VGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
QTEyRTM1QzExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEE0MTNBRTAxMjA3QkJB
NTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNT
Y3JpcHRSdW5uZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREYx
MjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLzsgfTsKQEAgLTgyOTEs
NiArODI5Niw4IEBACiAJCTg5N0EyRDhFMTIwMDAzNUYwMDgyNzQwQyAvKiBKU0RPTUZpbGVTeXN0
ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01GaWxlU3lzdGVtLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5N0EyRDkxMTIwMDAzNzYwMDgyNzQwQyAv
KiBKU0ZsYWdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmxh
Z3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTdBMkQ5MjEyMDAwMzc2MDA4
Mjc0MEMgLyogSlNGbGFncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Zs
YWdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5ODc4M0QxMTIyMzJBMTMwMDNB
QUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTG9jYWxGaWxlU3lzdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJODk4NzgzRDIxMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbEZpbGVTeXN0ZW0uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODk4OEUxMEMxMUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJdGVtLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2JJdGVtLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODk4OEUxMEQxMUEzNTA4QjAwREI3MzJFIC8qIEJs
b2JJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2JJdGVtLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5OUFCQzIwMTIxNUU0QTMwMEY5RjIxOSAvKiBE
aXJlY3RvcnlFbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
aXJlY3RvcnlFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MzI2LDYg
KzgzMzMsOSBAQAogCQk4OUNEMDI3OTExQzg1OUE4MDA3MEI3OTEgLyogQmxvYkJ1aWxkZXIuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJsb2JCdWlsZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODlDRDAyOTExMUM4NUI4NzAwNzBCNzkxIC8qIEpTQmxvYkJ1aWxkZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNCbG9iQnVpbGRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5Q0QwMjkyMTFDODVCODcwMDcwQjc5
MSAvKiBKU0Jsb2JCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
QmxvYkJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODlEMDhEOUMxMjIy
ODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBc3luY0ZpbGVTeXN0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4OUQwOEQ5RDEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jRmlsZVN5c3RlbS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OUQwOEQ5RTEyMjI4NDUxMDAxMjQxREYgLyogQXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4QTEyRTM1QzExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50TG9hZFRpbWluZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNT
Y3JpcHRSdW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXN5bmNTY3Jp
cHRSdW5uZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE0MTNBREYxMjA3QkJB
NTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFzeW5jU2NyaXB0UnVubmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTExNjk0LDYgKzExNzA0LDggQEAKIAkJCQlCNjU2NjI2ODEyMEIxMTVBMDA2
RUE4NUMgLyogSURCVHJhbnNhY3Rpb24uaCAqLywKIAkJCQlCNjU2NjI2OTEyMEIxMTVBMDA2RUE4
NUMgLyogSURCVHJhbnNhY3Rpb24uaWRsICovLAogCQkJCUI2NTY2MjZEMTIwQjExNkIwMDZFQTg1
QyAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCAqLywKKwkJCQk4OTg3ODNEMTEy
MjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmNwcCAqLywKKwkJCQk4OTg3ODNEMjEy
MjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmggKi8sCiAJCQkJNTExRjIzMTMwREMx
NjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suY3BwICovLAogCQkJCTUxMUYyMzE0MERD
MTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmggKi8sCiAJCQkJNTExRjIzMTUwREMx
NjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRocmVhZC5jcHAgKi8sCkBAIC0xNjYxOSw2ICsx
NjYzMSw5IEBACiAJCQkJQkNGQjJGNzQwOTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmNwcCAqLywK
IAkJCQlCQ0ZCMkY3NTA5N0EyRTFBMDBCQTcwM0QgLyogQXJlbmEuaCAqLywKIAkJCQkyRUYxQkZG
NjEyMUNCMEJEMDBDMjc2MjcgLyogQXN5bmNGaWxlU3RyZWFtLmggKi8sCisJCQkJODlEMDhEOUMx
MjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgKi8sCisJCQkJODlEMDhEOUQx
MjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5oICovLAorCQkJCTg5RDA4RDlFMTIy
Mjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLywKIAkJCQk1MUUx
RUNCMTBDOTFDNTU2MDBEQzI1NUIgLyogQXV0b2RyYWluZWRQb29sLmggKi8sCiAJCQkJODk4OEUx
MEMxMUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJdGVtLmNwcCAqLywKIAkJCQk4OTg4RTEwRDExQTM1
MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uaCAqLywKQEAgLTIwMzg2LDYgKzIwNDAxLDkgQEAKIAkJ
CQk4OTQ3QTgyQzEyMjIyQzQ3MDBEOTVGMkQgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4OTQ3QTgzQzEyMjIzNEY0MDBEOTVGMkQgLyogTWV0YWRhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg5NDdBODNEMTIyMjM0RjkwMEQ5NUYyRCAvKiBNZXRhZGF0YUNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OUQwOERBMDEyMjI4NDUxMDAxMjQxREYgLyogQXN5
bmNGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OUQwOERBMTEyMjI4NDUxMDAxMjQx
REYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTg3
ODNENDEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTIyODQ1LDYgKzIyODYzLDggQEAKIAkJCQk4OTY4NkM5RjEyMjI0NEEwMDA3NkVBQTQgLyog
RE9NRmlsZVBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk0N0E4MjkxMjIyMkM0NzAwRDk1
RjJEIC8qIEpTTWV0YWRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk0N0E4MkIxMjIyMkM0
NzAwRDk1RjJEIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4
OUQwOEQ5RjEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTg5ODc4M0QzMTIyMzJBMTMwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5
c3RlbS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzg2NDAxOTZkZDhlMjg1YzRiMDQ5YTQyN2E5YjlmOTY0ODBkNmM3MwotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcApAQCAtMCwwICsxLDc4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorCisj
aWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
KyNpZiAhUExBVEZPUk0oQ0hST01JVU0pCitQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gQXN5
bmNGaWxlU3lzdGVtOjpjcmVhdGUoY29uc3QgU3RyaW5nJikKK3sKKyAgICAvLyBGSVhNRTogcmV0
dXJuIGRlZmF1bHQgQXN5bmNGaWxlU3lzdGVtIGltcGxlbWVudGF0aW9uLgorICAgIHJldHVybiAw
OworfQorCisvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uLgordm9pZCBBc3luY0ZpbGVTeXN0ZW06
Om9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgc3Rv
cmFnZUlkZW50aWZpZXIsIFR5cGUgdHlwZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBTdHJpbmcgdHlwZVN0cmluZyA9ICh0eXBlID09IFBl
cnNpc3RlbnQpID8gIlBlcnNpc3RlbnQiIDogIlRlbXBvcmFyeSI7CisKKyAgICBTdHJpbmcgbmFt
ZSA9IHN0b3JhZ2VJZGVudGlmaWVyOworICAgIG5hbWUgKz0gIjoiOworICAgIG5hbWUgKz0gdHlw
ZVN0cmluZzsKKworICAgIFN0cmluZyByb290UGF0aCA9IGJhc2VQYXRoOworICAgIHJvb3RQYXRo
LmFwcGVuZChQbGF0Zm9ybUZpbGVQYXRoU2VwYXJhdG9yKTsKKyAgICByb290UGF0aCArPSBzdG9y
YWdlSWRlbnRpZmllcjsKKyAgICByb290UGF0aC5hcHBlbmQoUGxhdGZvcm1GaWxlUGF0aFNlcGFy
YXRvcik7CisgICAgcm9vdFBhdGggKz0gdHlwZVN0cmluZzsKKyAgICByb290UGF0aC5hcHBlbmQo
UGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvcik7CisKKyAgICBjYWxsYmFja3MtPmRpZE9wZW5GaWxl
U3lzdGVtKG5hbWUsIEFzeW5jRmlsZVN5c3RlbTo6Y3JlYXRlKHJvb3RQYXRoKSk7Cit9CisjZW5k
aWYKKworLy8gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KK1N0cmluZyBBc3luY0ZpbGVTeXN0ZW06
OnZpcnR1YWxUb1BsYXRmb3JtUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpIGNvbnN0Cit7CisgICAg
QVNTRVJUKCFtX3BsYXRmb3JtUm9vdFBhdGguaXNFbXB0eSgpKTsKKyAgICBTdHJpbmcgdmlydHVh
bFBhdGggPSBwYXRoOworICAgIHJldHVybiBtX3BsYXRmb3JtUm9vdFBhdGggKyB2aXJ0dWFsUGF0
aC5yZXBsYWNlKCcvJywgUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvcik7Cit9CisKK30gLy8gbmFt
ZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0pCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0Zp
bGVTeXN0ZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTJlODFlNTRkOWYxNWY2MmQzZWFjMDM5MWRkMGVhNTdm
MWI4NzZjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0
ZW0uaApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQXN5bmNGaWxlU3lzdGVtX2gKKyNkZWZpbmUg
QXN5bmNGaWxlU3lzdGVtX2gKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBBc3luY0ZpbGVTeXN0ZW07CitjbGFzcyBBc3luY0ZpbGVT
eXN0ZW1DYWxsYmFja3M7CisKKy8vIFRoaXMgY2xhc3MgcHJvdmlkZXMgYXN5bmMgaW50ZXJmYWNl
IGZvciBwbGF0Zm9ybS1zcGVjaWZpYyBET01GaWxlU3lzdGVtIGltcGxlbWVudGF0aW9uLiBOb3Rl
IHRoYXQgYWxsIHRoZSBtZXRob2RzIHRha2UgY2Fub25pY2FsaXplZCB2aXJ0dWFsIHBhdGhzLgor
Y2xhc3MgQXN5bmNGaWxlU3lzdGVtIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5Bc3luY0ZpbGVTeXN0ZW0oKSB7IH0KKworICAgIC8vIEZpbGVTeXN0ZW0gdHlw
ZQorICAgIGVudW0gVHlwZSB7CisgICAgICAgIFRlbXBvcmFyeSwKKyAgICAgICAgUGVyc2lzdGVu
dCwKKyAgICB9OworCisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSB7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIC8vIENyZWF0
ZXMgYW5kIHJldHVybnMgYSBuZXcgcGxhdGZvcm0tc3BlY2lmaWMgQXN5bmNGaWxlU3lzdGVtIGlu
c3RhbmNlIGlmIHRoZSBwbGF0Zm9ybSBoYXMgaXRzIG93biBpbXBsZW1lbnRhdGlvbi4KKyAgICBz
dGF0aWMgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHJv
b3RQYXRoKTsKKworICAgIC8vIE9wZW5zIGEgbmV3IGZpbGUgc3lzdGVtLiAgVGhpcyBwYXNzZXMg
dGhlIG93bmVyc2hpcCBvZiAndGhpcycgdG8gdGhlIGNhbGxiYWNrcy4KKyAgICBzdGF0aWMgdm9p
ZCBvcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIHN0
b3JhZ2VJZGVudGlmaWVyLCBUeXBlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
cz4pOworCisgICAgLy8gTW92ZXMgYSBmaWxlIG9yIGRpcmVjdG9yeSBmcm9tIHNyY1BhdGggdG8g
ZGVzdFBhdGguCisgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRTdWNjZWVkKCkg
aXMgY2FsbGVkIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5Lgor
ICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkRmFpbCgpIGlzIGNhbGxlZCBvdGhl
cndpc2UuCisgICAgdmlydHVhbCB2b2lkIG1vdmUoY29uc3QgU3RyaW5nJiBzcmNQYXRoLCBjb25z
dCBTdHJpbmcmIGRlc3RQYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4p
ID0gMDsKKworICAgIC8vIENvcGllcyBhIGZpbGUgb3IgZGlyZWN0b3J5IGZyb20gc3JjUGF0aCB0
byBkZXN0UGF0aC4KKyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZFN1Y2NlZWQo
KSBpcyBjYWxsZWQgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHku
CisgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRGYWlsKCkgaXMgY2FsbGVkIG90
aGVyd2lzZS4KKyAgICB2aXJ0dWFsIHZvaWQgY29weShjb25zdCBTdHJpbmcmIHNyY1BhdGgsIGNv
bnN0IFN0cmluZyYgZGVzdFBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
PikgPSAwOworCisgICAgLy8gRGVsZXRlcyBhIGZpbGUgb3IgZGlyZWN0b3J5IGF0IGEgZ2l2ZW4g
cGF0aC4KKyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZFN1Y2NlZWQoKSBpcyBj
YWxsZWQgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuCisgICAg
Ly8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRGYWlsKCkgaXMgY2FsbGVkIG90aGVyd2lz
ZS4KKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBSZXRyaWV2ZXMgdGhl
IG1ldGFkYXRhIGluZm9ybWF0aW9uIG9mIHRoZSBmaWxlIG9yIGRpcmVjdG9yeSBhdCBhIGdpdmVu
IHBhdGguCisgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRSZWFkTWV0YWRhdGEo
KSBpcyBjYWxsZWQgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHku
CisgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRGYWlsKCkgaXMgY2FsbGVkIG90
aGVyd2lzZS4KKyAgICB2aXJ0dWFsIHZvaWQgcmVhZE1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0
aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBD
cmVhdGVzIGEgZmlsZSBhdCBhIGdpdmVuIHBhdGguICBJZiBleGNsdXNpdmUgZmxhZyBpcyB0cnVl
LCBpdCBmYWlscyBpZiB0aGUgcGF0aCBhbHJlYWR5IGV4aXN0cy4KKyAgICAvLyBBc3luY0ZpbGVT
eXN0ZW1DYWxsYmFja3M6OmRpZFN1Y2NlZWQoKSBpcyBjYWxsZWQgd2hlbiB0aGUgb3BlcmF0aW9u
IGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuCisgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzOjpkaWRGYWlsKCkgaXMgY2FsbGVkIG90aGVyd2lzZS4KKyAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIGJvb2wgZXhjbHVzaXZlLCBQYXNzT3duUHRyPEFz
eW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKworICAgIC8vIENyZWF0ZXMgYSBkaXJlY3Rv
cnkgYXQgYSBnaXZlbiBwYXRoLiAgSWYgZXhjbHVzaXZlIGZsYWcgaXMgdHJ1ZSwgaXQgZmFpbHMg
aWYgdGhlIHBhdGggYWxyZWFkeSBleGlzdHMuCisgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzOjpkaWRTdWNjZWVkKCkgaXMgY2FsbGVkIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0
ZWQgc3VjY2Vzc2Z1bGx5LgorICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkRmFp
bCgpIGlzIGNhbGxlZCBvdGhlcndpc2UuCisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZURpcmVjdG9y
eShjb25zdCBTdHJpbmcmIHBhdGgsIGJvb2wgZXhjbHVzaXZlLCBQYXNzT3duUHRyPEFzeW5jRmls
ZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKworICAgIC8vIENoZWNrcyBpZiBhIGZpbGUgZXhpc3Rz
IGF0IGEgZ2l2ZW4gcGF0aC4KKyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZFN1
Y2NlZWQoKSBpcyBjYWxsZWQgaWYgdGhlIGZpbGUgZXhpc3RzLgorICAgIC8vIEFzeW5jRmlsZVN5
c3RlbUNhbGxiYWNrczo6ZGlkRmFpbCgpIGlzIGNhbGxlZCBvdGhlcndpc2UuCisgICAgdmlydHVh
bCB2b2lkIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmls
ZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKworICAgIC8vIENoZWNrcyBpZiBhIGRpcmVjdG9yeSBl
eGlzdHMgYXQgYSBnaXZlbiBwYXRoLgorICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6
ZGlkU3VjY2VlZCgpIGlzIGNhbGxlZCBpZiB0aGUgZGlyZWN0b3J5IGV4aXN0cy4KKyAgICAvLyBB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZEZhaWwoKSBpcyBjYWxsZWQgb3RoZXJ3aXNlLgor
ICAgIHZpcnR1YWwgdm9pZCBkaXJlY3RvcnlFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNz
T3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKworICAgIC8vIFJlYWRzIGRp
cmVjdG9yeSBlbnRyaWVzIG9mIGEgZ2l2ZW4gZGlyZWN0b3J5IGF0IHBhdGguCisgICAgLy8gQXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRSZWFkRGlyZWN0b3J5RW50cnkoKSBpcyBjYWxsZWQg
d2hlbiBlYWNoIGRpcmVjdG9yeSBlbnRyeSBpcyBjYWxsZWQuIEFzeW5jRmlsZVN5c3RlbUNhbGxi
YWNrczo6ZGlkUmVhZERpcmVjdG9yeUNodW5rRG9uZSgpIGlzIGNhbGxlZCBhZnRlciBhIGNodW5r
IG9mIGRpcmVjdG9yeSBlbnRyaWVzIGhhdmUgYmVlbiByZWFkLgorICAgIC8vIEFzeW5jRmlsZVN5
c3RlbUNhbGxiYWNrczo6ZGlkRmFpbCgpIGlzIHdoZW4gdGhlcmUgaXMgYW4gZXJyb3IuCisgICAg
dmlydHVhbCB2b2lkIHJlYWREaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRy
PEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKKworICAgIC8vIENvbnZlcnRzIGEgZ2l2
ZW4gYWJzb2x1dGUgdmlydHVhbCBwYXRoIHRvIGEgcGxhdGZvcm0gcGF0aCB0aGF0IHN0YXJ0cyB3
aXRoIHRoZSBwbGF0Zm9ybSByb290IHBhdGggb2YgdGhpcyBmaWxlIHN5c3RlbS4KKyAgICB2aXJ0
dWFsIFN0cmluZyB2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKSBjb25z
dDsKKworcHJvdGVjdGVkOgorICAgIEFzeW5jRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIHBsYXRm
b3JtUm9vdFBhdGgpCisgICAgICAgIDogbV9wbGF0Zm9ybVJvb3RQYXRoKHBsYXRmb3JtUm9vdFBh
dGgpCisgICAgeworICAgIH0KKworICAgIFN0cmluZyBtX3BsYXRmb3JtUm9vdFBhdGg7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0p
CisKKyNlbmRpZiAvLyBBc3luY0ZpbGVTeXN0ZW1faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNG
aWxlU3lzdGVtQ2FsbGJhY2tzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWVlNDFkMWU3M2JjYzFjMDg5MmY2MTQw
YzM4MTAyMTBiZThjZDZiNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQXN5bmNGaWxl
U3lzdGVtQ2FsbGJhY2tzX2gKKyNkZWZpbmUgQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzX2gKKwor
I2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXN5bmNGaWxlU3lzdGVtOworCitjbGFzcyBB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MgOiBwdWJsaWMgTm9uY29weWFibGUgeworcHVibGljOgor
ICAgIC8vIENhbGxlZCB3aGVuIGEgcmVxdWVzdGVkIG9wZXJhdGlvbiBpcyBjb21wbGV0ZWQgc3Vj
Y2Vzc2Z1bGx5LgorICAgIHZpcnR1YWwgdm9pZCBkaWRTdWNjZWVkKCkgPSAwOworCisgICAgLy8g
Q2FsbGVkIHdoZW4gYSByZXF1ZXN0ZWQgZmlsZSBzeXN0ZW0gaXMgb3BlbmVkLgorICAgIHZpcnR1
YWwgdm9pZCBkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8
QXN5bmNGaWxlU3lzdGVtPikgPSAwOworCisgICAgLy8gQ2FsbGVkIHdoZW4gYSBmaWxlIG1ldGFk
YXRhIGlzIHJlYWQgc3VjY2Vzc2Z1bGx5LgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWFkTWV0YWRh
dGEoZG91YmxlIG1vZGlmaWNhdGlvblRpbWUpID0gMDsKKworICAgIC8vIENhbGxlZCB3aGVuIGEg
ZGlyZWN0b3J5IGVudHJ5IGlzIHJlYWQuCisgICAgdmlydHVhbCB2b2lkIGRpZFJlYWREaXJlY3Rv
cnlFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgaXNEaXJlY3RvcnkpID0gMDsKKworICAg
IC8vIENhbGxlZCBhZnRlciBhIGNodW5rIG9mIGRpcmVjdG9yeSBlbnRyaWVzIGhhdmUgYmVlbiBy
ZWFkIChpLmUuIGluZGljYXRlcyBpdCdzIGdvb2QgdGltZSB0byBjYWxsIGJhY2sgdG8gdGhlIGFw
cGxpY2F0aW9uKS4gIElmIGhhc01vcmUgaXMgdHJ1ZSB0aGVyZSBjYW4gYmUgbW9yZSBjaHVua3Mu
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlYWREaXJlY3RvcnlDaHVua0RvbmUoYm9vbCBoYXNNb3Jl
KSA9IDA7CisKKyAgICAvLyBDYWxsZWQgd2hlbiB0aGVyZSB3YXMgYW4gZXJyb3IuCisgICAgdmly
dHVhbCB2b2lkIGRpZEZhaWwoaW50IGNvZGUpID0gMDsKKworICAgIHZpcnR1YWwgfkFzeW5jRmls
ZVN5c3RlbUNhbGxiYWNrcygpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmIC8v
IEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2VuZGlmIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
c19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBiL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZVN5c3RlbS5oCmluZGV4IGVjNzVhMjEwM2E1NTA4NzNjNTdlNDE3ZTZmMzMy
ZTA4YjY4ZDdhZGYuLmUzOTE2Y2ZlMGFjNTk2NzE3ZTlhNGYyYmQ5ZTViZTAwNjIyNmQwODIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0xMzgsNiArMTM4LDEyIEBAIGVudW0gRmlsZVNlZWtPcmln
aW4gewogICAgIFNlZWtGcm9tRW5kCiB9OwogCisjaWYgT1MoV0lORE9XUykKK3N0YXRpYyBjb25z
dCBjaGFyIFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IgPSAnXFwnOworI2Vsc2UKK3N0YXRpYyBj
b25zdCBjaGFyIFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IgPSAnLyc7CisjZW5kaWYKKwogYm9v
bCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYpOwogYm9vbCBkZWxldGVGaWxlKGNvbnN0IFN0cmlu
ZyYpOwogYm9vbCBkZWxldGVFbXB0eURpcmVjdG9yeShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9E
T01GaWxlU3lzdGVtLmNwcAppbmRleCBjM2RiZDM0MDE0ZWEyMGVjZWZkOGFhZGQ3YzZiZGM5ZGJk
MGVlOTYyLi41ZDYwNzNhM2U5ZWMxMjM5NjRhMjJiOTY2OTQ2YmIzNjBhMjM5ZWVhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5jcHAKKysrIGIvV2ViQ29yZS9zdG9y
YWdlL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC0zMywxMyArMzMsMjAgQEAKIAogI2lmIEVOQUJMRShG
SUxFX1NZU1RFTSkKIAorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkRp
cmVjdG9yeUVudHJ5LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLURPTUZpbGVTeXN0ZW06OkRPTUZpbGVTeXN0ZW0oY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoKQotICAgIDogbV9yb290UGF0aChy
b290UGF0aCkKK0RPTUZpbGVTeXN0ZW06OkRPTUZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5
c3RlbT4gYXN5bmNGaWxlU3lzdGVtKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRo
aXMpCiAgICAgLCBtX25hbWUobmFtZSkKKyAgICAsIG1fYXN5bmNGaWxlU3lzdGVtKGFzeW5jRmls
ZVN5c3RlbSkKK3sKK30KKworRE9NRmlsZVN5c3RlbTo6fkRPTUZpbGVTeXN0ZW0oKQogewogfQog
CkBAIC00OCw2ICs1NSwyMSBAQCBQYXNzUmVmUHRyPERpcmVjdG9yeUVudHJ5PiBET01GaWxlU3lz
dGVtOjpyb290KCkKICAgICByZXR1cm4gRGlyZWN0b3J5RW50cnk6OmNyZWF0ZSh0aGlzLCAiLyIp
OwogfQogCit2b2lkIERPTUZpbGVTeXN0ZW06OnN0b3AoKQoreworICAgIG1fYXN5bmNGaWxlU3lz
dGVtLT5zdG9wKCk7Cit9CisKK2Jvb2wgRE9NRmlsZVN5c3RlbTo6aGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9hc3luY0ZpbGVTeXN0ZW0tPmhhc1BlbmRpbmdBY3Rp
dml0eSgpOworfQorCit2b2lkIERPTUZpbGVTeXN0ZW06OmNvbnRleHREZXN0cm95ZWQoKQorewor
ICAgIG1fYXN5bmNGaWxlU3lzdGVtLT5zdG9wKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlCiAKICNl
bmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0pCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2Uv
RE9NRmlsZVN5c3RlbS5oIGIvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaAppbmRleCBi
ODdhYWFmMzJjZDllYWMwZjIyYzQ5ZWUxNzY3MmRkNWEyZTc3NjczLi4zMzdiZWE5Y2JlZWMwYjdm
ZTIzYjk0NWIzOTNhNTM0NzBkOTQ1MmYzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRE9N
RmlsZVN5c3RlbS5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmgKQEAgLTMz
LDYgKzMzLDkgQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKIAorI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkZs
YWdzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00MCwyMiArNDMsMzAgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGlyZWN0b3J5RW50cnk7CitjbGFzcyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OwogCi1jbGFzcyBET01GaWxlU3lzdGVtIDogcHVibGljIFJlZkNv
dW50ZWQ8RE9NRmlsZVN5c3RlbT4geworY2xhc3MgRE9NRmlsZVN5c3RlbSA6IHB1YmxpYyBSZWZD
b3VudGVkPERPTUZpbGVTeXN0ZW0+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtPiBjcmVhdGUoY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERP
TUZpbGVTeXN0ZW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25z
dCBTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBhc3luY0ZpbGVTeXN0
ZW0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTUZpbGVTeXN0ZW0obmFt
ZSwgcm9vdFBhdGgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01GaWxlU3lzdGVt
KGNvbnRleHQsIG5hbWUsIGFzeW5jRmlsZVN5c3RlbSkpOwogICAgIH0KIAorICAgIHZpcnR1YWwg
fkRPTUZpbGVTeXN0ZW0oKTsKKwogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbmFtZTsgfQogICAgIFBhc3NSZWZQdHI8RGlyZWN0b3J5RW50cnk+IHJvb3QoKTsKIAor
ICAgIC8vIEFjdGl2ZURPTU9iamVjdCBtZXRob2RzLgorICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7
CisgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0OworICAgIHZpcnR1
YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCk7CisKIHByaXZhdGU6Ci0gICAgRE9NRmlsZVN5c3Rl
bShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpOworICAgIERPTUZp
bGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW0+KTsKIAotICAgIFN0cmluZyBtX3Jvb3RQYXRoOwogICAg
IFN0cmluZyBtX25hbWU7CisgICAgbXV0YWJsZSBPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBtX2Fz
eW5jRmlsZVN5c3RlbTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5
c3RlbUNhbGxiYWNrcy5jcHAKaW5kZXggZWMzNTJkZDdkNmU5MmM3Yzg3YTM4MDRiM2NkMzhjYzNk
ZGExZTgxOC4uNTQ4MzlkODE5NWIzZWNmYjU5MzY5Nzg1YmNkNzVjMzBmOWU3NmZkOSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcApAQCAtMzMsNiArMzMsNyBAQAogCiAj
aWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCiAj
aW5jbHVkZSAiRE9NRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkRpcmVjdG9yeUVudHJ5LmgiCiAj
aW5jbHVkZSAiRW50cmllc0NhbGxiYWNrLmgiCkBAIC02NSw3ICs2Niw3IEBAIHZvaWQgRmlsZVN5
c3RlbUNhbGxiYWNrc0Jhc2U6OmRpZFN1Y2NlZWQoKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCi12b2lkIEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlOjpkaWRPcGVuRmlsZVN5c3RlbShj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQordm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFz
ZTo6ZGlkT3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiwgUGFzc093blB0cjxBc3luY0ZpbGVT
eXN0ZW0+KQogewogICAgIC8vIEVhY2ggc3ViY2xhc3MgbXVzdCBpbXBsZW1lbnQgYW4gYXBwcm9w
cmlhdGUgb25lLgogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODksNyArOTAsNyBAQCB2
b2lkIEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlOjpkaWRSZWFkRGlyZWN0b3J5RW50cnkoY29uc3Qg
U3RyaW5nJiwgYm9vbCkKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBGaWxl
U3lzdGVtQ2FsbGJhY2tzQmFzZTo6ZGlkRmFpbChFeGNlcHRpb25Db2RlIGNvZGUpCit2b2lkIEZp
bGVTeXN0ZW1DYWxsYmFja3NCYXNlOjpkaWRGYWlsKGludCBjb2RlKQogewogICAgIGlmIChtX2Vy
cm9yQ2FsbGJhY2spIHsKICAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChGaWxl
RXJyb3I6OmNyZWF0ZShjb2RlKS5nZXQoKSk7CkBAIC0xNTIsMTYgKzE1MywxOSBAQCB2b2lkIEVu
dHJpZXNDYWxsYmFja3M6OmRpZFJlYWREaXJlY3RvcnlDaHVua0RvbmUoYm9vbCBoYXNNb3JlKQog
CiAvLyBGaWxlU3lzdGVtQ2FsbGJhY2tzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUZpbGVTeXN0ZW1DYWxsYmFja3M6OkZpbGVTeXN0
ZW1DYWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFj
aywgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQorRmlsZVN5c3RlbUNh
bGxiYWNrczo6RmlsZVN5c3RlbUNhbGxiYWNrcyhQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFj
az4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJh
Y2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBGaWxlU3lzdGVtQ2Fs
bGJhY2tzQmFzZShlcnJvckNhbGxiYWNrKQogICAgICwgbV9zdWNjZXNzQ2FsbGJhY2soc3VjY2Vz
c0NhbGxiYWNrKQorICAgICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpCiB7CiB9
CiAKLXZvaWQgRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkT3BlbkZpbGVTeXN0ZW0oY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoKQordm9pZCBGaWxlU3lzdGVtQ2FsbGJh
Y2tzOjpkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8QXN5
bmNGaWxlU3lzdGVtPiBhc3luY0ZpbGVTeXN0ZW0pCiB7Ci0gICAgaWYgKG1fc3VjY2Vzc0NhbGxi
YWNrKQotICAgICAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRmlsZVN5c3Rl
bTo6Y3JlYXRlKG5hbWUsIHJvb3RQYXRoKS5nZXQoKSk7CisgICAgaWYgKG1fc3VjY2Vzc0NhbGxi
YWNrKSB7CisgICAgICAgIEFTU0VSVChhc3luY0ZpbGVTeXN0ZW0pOworICAgICAgICBtX3N1Y2Nl
c3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRmlsZVN5c3RlbTo6Y3JlYXRlKG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgbmFtZSwgYXN5bmNGaWxlU3lzdGVtLmxlYWtQdHIoKSkuZ2V0KCkpOwor
ICAgIH0KICAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwogfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oIGIvV2ViQ29yZS9zdG9yYWdlL0Zp
bGVTeXN0ZW1DYWxsYmFja3MuaAppbmRleCBlMGU3OGQzNzBjMjFlMzM3YjI0OGQzOGFjODk2ZDFh
N2UwZWNiMTMwLi4yMjdmMTEyNTdmNmU3NDhiNDdiZmZhZDE4ZDQ5MjZlYWEyNmQzMWZhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lm
IEVOQUJMRShGSUxFX1NZU1RFTSkKIAorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
cy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00OSwxMCArNTAsNyBAQCBjbGFzcyBN
ZXRhZGF0YUNhbGxiYWNrOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFZv
aWRDYWxsYmFjazsKIAotdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQotLy8gQSBiYXNlIGNs
YXNzIGZvciBGaWxlU3lzdGVtIGNhbGxiYWNrcyB0aGF0IGJ1bmRsZXMgc3VjY2Vzc0NhbGxiYWNr
LCBlcnJvckNhbGxiYWNrIGFuZCBzb21lIGNsb3N1cmUgZGF0YSBmb3IgdGhlIGNhbGxiYWNrcy4K
LWNsYXNzIEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK2Ns
YXNzIEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlIDogcHVibGljIEFzeW5jRmlsZVN5c3RlbUNhbGxi
YWNrcyB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UoKTsK
IApAQCAtNjAsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFN1Y2NlZWQo
KTsKIAogICAgIC8vIEZvciBGaWxlU3lzdGVtQ2FsbGJhY2tzLgotICAgIHZpcnR1YWwgdm9pZCBk
aWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBh
dGgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5h
bWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPik7CiAKICAgICAvLyBGb3IgTWV0YWRhdGFD
YWxsYmFja3MuCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlYWRNZXRhZGF0YShkb3VibGUgbW9kaWZp
Y2F0aW9uVGltZSk7CkBAIC03MCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVhZERpcmVjdG9yeUNodW5rRG9uZShib29sIGhhc01vcmUpOwogCiAgICAgLy8gRm9yIEVy
cm9yQ2FsbGJhY2suCi0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoRXhjZXB0aW9uQ29kZSBjb2Rl
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChpbnQgY29kZSk7CiAKIHByb3RlY3RlZDoKICAg
ICBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZShQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9y
Q2FsbGJhY2spOwpAQCAtMTA2LDExICsxMDQsMTIgQEAgcHJpdmF0ZToKIAogY2xhc3MgRmlsZVN5
c3RlbUNhbGxiYWNrcyA6IHB1YmxpYyBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZSB7CiBwdWJsaWM6
Ci0gICAgRmlsZVN5c3RlbUNhbGxiYWNrcyhQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4s
IFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pOwotICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuRmls
ZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpOworICAg
IEZpbGVTeXN0ZW1DYWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+LCBQYXNz
UmVmUHRyPEVycm9yQ2FsbGJhY2s+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgdmly
dHVhbCB2b2lkIGRpZE9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW0+KTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8RmlsZVN5c3RlbUNh
bGxiYWNrPiBtX3N1Y2Nlc3NDYWxsYmFjazsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBt
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiB9OwogCiBjbGFzcyBNZXRhZGF0YUNhbGxiYWNrcyA6
IHB1YmxpYyBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0
b3JhZ2UvRmxhZ3MuaCBiL1dlYkNvcmUvc3RvcmFnZS9GbGFncy5oCmluZGV4IGZmZTM0MDM4YTA0
YzQwY2U5ZTNhODc1ODMwYjFiYjgwNWNmNjZlYmIuLjMwODg0ZmNjNDNmZGYyYTNhMDY0NWY5ZDU5
YWQ5YThlYjdlZDYwNGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9GbGFncy5oCisrKyBi
L1dlYkNvcmUvc3RvcmFnZS9GbGFncy5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBFTkFCTEUo
RklMRV9TWVNURU0pCiAKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3RvcmFnZS9Mb2NhbEZpbGVTeXN0ZW0uY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0xvY2FsRmls
ZVN5c3RlbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE2NmIwZjAxYWM4NjI3YjI2Y2MzY2Q0MGQzMGFkZDc0
YzQyMmUyZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbEZpbGVTeXN0
ZW0uY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9j
YWxGaWxlU3lzdGVtLmgiCisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNlcnJvciAiQ2hyb21p
dW0gc2hvdWxkIG5vdCBjb21waWxlIHRoaXMgZmlsZSBhbmQgaW5zdGVhZCBkZWZpbmUgaXRzIG93
biB2ZXJzaW9uIG9mIHRoZXNlIGZhY3Rvcmllcy4iCisjZW5kaWYKKworI2lmIEVOQUJMRShGSUxF
X1NZU1RFTSkKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkVycm9yQ2FsbGJh
Y2suaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRmlsZUVycm9yLmgi
CisjaW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbUNh
bGxiYWNrcy5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxMb2NhbEZpbGVTeXN0ZW0+IExvY2FsRmlsZVN5
c3RlbTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBMb2NhbEZpbGVTeXN0ZW0oYmFzZVBhdGgpKTsKK30KKwordm9pZCBMb2NhbEZpbGVT
eXN0ZW06OnJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBsb25nIGxvbmcsIFBhc3NSZWZQdHI8RmlsZVN5
c3RlbUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4g
ZXJyb3JDYWxsYmFjaykKK3sKKyAgICBpZiAodHlwZSAhPSBBc3luY0ZpbGVTeXN0ZW06OlRlbXBv
cmFyeSAmJiB0eXBlICE9IEFzeW5jRmlsZVN5c3RlbTo6UGVyc2lzdGVudCkgeworICAgICAgICBl
cnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChGaWxlRXJyb3I6OmNyZWF0ZShJTlZBTElEX01PRElG
SUNBVElPTl9FUlIpLmdldCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFzeW5j
RmlsZVN5c3RlbTo6b3BlbkZpbGVTeXN0ZW0oY29udGV4dCwgbV9iYXNlUGF0aCwgY29udGV4dC0+
c2VjdXJpdHlPcmlnaW4oKS0+ZGF0YWJhc2VJZGVudGlmaWVyKCksIHR5cGUsIG5ldyBGaWxlU3lz
dGVtQ2FsbGJhY2tzKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgY29udGV4dCkpOwor
fQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5oIGIvV2ViQ29yZS9zdG9y
YWdlL0xvY2FsRmlsZVN5c3RlbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4Y2ZhOGY2ODg2YTYwYTQwMDQ0NGUy
ZmNlYmVhNjhjZDUyM2RiYjYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvTG9j
YWxGaWxlU3lzdGVtLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTG9jYWxGaWxlU3lzdGVtX2gK
KyNkZWZpbmUgTG9jYWxGaWxlU3lzdGVtX2gKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKwor
I2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVycm9yQ2FsbGJhY2s7CitjbGFzcyBG
aWxlU3lzdGVtQ2FsbGJhY2s7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFz
cyBMb2NhbEZpbGVTeXN0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxMb2NhbEZpbGVTeXN0ZW0+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxMb2NhbEZpbGVTeXN0ZW0+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIGJhc2VQYXRoKTsKKyAgICB2aXJ0dWFsIH5Mb2NhbEZpbGVTeXN0ZW0oKSB7
IH0KKworICAgIHZvaWQgcmVxdWVzdEZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IEFzeW5jRmlsZVN5c3RlbTo6VHlwZSwgbG9uZyBsb25nIHNpemUsIFBhc3NSZWZQdHI8RmlsZVN5
c3RlbUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPik7CisKK3Byb3RlY3RlZDoK
KyAgICBMb2NhbEZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCkKKyAgICAgICAgOiBt
X2Jhc2VQYXRoKGJhc2VQYXRoKQorICAgIHsKKyAgICB9CisKKyAgICBTdHJpbmcgbV9iYXNlUGF0
aDsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0p
CisKKyNlbmRpZiAvLyBMb2NhbEZpbGVTeXN0ZW1faAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65524</attachid>
            <date>2010-08-25 22:40:30 -0700</date>
            <delta_ts>2010-08-26 23:25:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44433-20100825224028.patch</filename>
            <type>text/plain</type>
            <size>40785</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDZkYmYwODJjODFjMDUzMzRlZTg2MWI3NTEzNmE5NzM3MTRkMjdhZTMuLjFhZTk3
Mzk3ODhiMTk3MWIwN2Y1ZTdiYzA4MDcyOGE4OTg0ZDE4NzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIxMSw2ICsx
MjExLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1l
QW5pbWF0aW9uLmNwcAogCiAgICAgcGxhdGZvcm0vQXJlbmEuY3BwCisgICAgcGxhdGZvcm0vQXN5
bmNGaWxlU3lzdGVtLmNwcAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmNwcAogICAgIHBsYXRmb3Jt
L0NvbnRlbnRUeXBlLmNwcAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmNwcApAQCAtMTQ4Miw2
ICsxNDgzLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHN0b3JhZ2UvSURCRmFjdG9yeS5j
cHAKICAgICBzdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcAogICAgIHN0b3Jh
Z2UvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcAorICAgIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVt
LmNwcAogICAgIHN0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5jcHAKICAgICBzdG9yYWdlL0xvY2Fs
U3RvcmFnZVRocmVhZC5jcHAKICAgICBzdG9yYWdlL09yaWdpblF1b3RhTWFuYWdlci5jcHAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTBm
NzIyYzI0ZGJhNzc0NGYzNGU0NjQ1MjMzYzA3NzA2MGJjZjYzZi4uNjg4ZDdiNTM2ODkzZTVhMWIx
N2VhNTdmYzI3MjI3OGFiMzEyZmZhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0wOC0yMyAgS2ludWtv
IFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFzeW5jRmlsZVN5c3RlbSBpbnRlcmZhY2UgZm9y
IHBsYXRmb3JtLWRlcGVuZGVudCBGaWxlU3lzdGVtIEFQSSBpbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ0MzMKKworICAgICAg
ICBObyBuZXcgdGVzdHM7IHRlc3RzIHdpbGwgYmUgYWRkZWQgbGF0ZXIuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L0FzeW5jRmlsZVN5c3RlbS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmls
ZVN5c3RlbS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3MuaDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06OkRPTUZpbGVTeXN0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6fkRPTUZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NRmlsZVN5c3RlbTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVt
OjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6
Y29udGV4dERlc3Ryb3llZCk6CisgICAgICAgICogc3RvcmFnZS9ET01GaWxlU3lzdGVtLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpjcmVhdGUpOgorICAgICAgICAqIHN0b3Jh
Z2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
Q2FsbGJhY2tzQmFzZTo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtQ2Fs
bGJhY2tzOjpGaWxlU3lzdGVtQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1DYWxsYmFja3M6OmRpZE9wZW5GaWxlU3lzdGVtKToKKyAgICAgICAgKiBzdG9yYWdlL0ZpbGVT
eXN0ZW1DYWxsYmFja3MuaDoKKyAgICAgICAgKiBzdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5jcHA6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmg6IEFkZGVkLgorCisg
ICAgICAgICogc3RvcmFnZS9GbGFncy5oOiBOaXRzIGZpeC4KKwogMjAxMC0wOC0yNSAgU2hlcmlm
ZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjY2MDc0LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAwZjE1OTc3YTczNDg2YzU5OWQyNjU3NmNiNzdk
Mjc1ZGJlYWM0YjQwLi41MTZjODhjOTQyNDc0YjdkYjczNWIxN2NhOTIzZGM2ODQ5ZGYzYTUwIDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQpAQCAtMzAzOCw2ICszMDM4LDkgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9BcmVuYS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL0FyZW5hLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L0FzeW5jRmlsZVN0cmVhbS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0
ZW0uY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaCcsCisgICAg
ICAgICAgICAncGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL0F1dG9kcmFpbmVkUG9vbC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9C
bG9iSXRlbS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Jsb2JJdGVtLmgnLApAQCAtMzYz
MSw2ICszNjM0LDcgQEAKICAgICAgICAgICAgICdzdG9yYWdlL0lEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5j
cHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oJywK
KyAgICAgICAgICAgICdzdG9yYWdlL0xvY2FsRmlsZVN5c3RlbS5oJywKICAgICAgICAgICAgICdz
dG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0xvY2Fs
U3RvcmFnZVRhc2suaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQu
Y3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUu
cHJvCmluZGV4IGQxZmY4YjI0MDhiOTdmOWI5ZGUwYjI5ZTk4ZGYwZWQxNTJmZDkyMWUuLmE5YmIw
YmU5YjVhYTcxNzUxNTM0M2ZjNzYyOWE5NzQ5ZTg4N2JjZDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODc0LDYgKzg3NCw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwIFwKICAg
ICBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAgXAogICAgIHBsYXRmb3JtL0Fy
ZW5hLmNwcCBcCisgICAgcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcCBcCiAgICAgcGxhdGZv
cm0vQmxvYkl0ZW0uY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAgXAogICAgIHBs
YXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3BwIFwKQEAgLTE2NTgsNiArMTY1OSw4IEBAIEhFQURF
UlMgKz0gXAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmggXAogICAgIHBs
YXRmb3JtL0FyZW5hLmggXAogICAgIHBsYXRmb3JtL0FzeW5jRmlsZVN0cmVhbS5oIFwKKyAgICBw
bGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaCBcCisgICAgcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzLmggXAogICAgIHBsYXRmb3JtL0Jsb2JJdGVtLmggXAogICAgIHBsYXRmb3JtL0Nv
bnRlbnRUeXBlLmggXAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmggXApAQCAtMjU5NCw2ICsy
NTk3LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTEVfU1lTVEVNPTEpIHsKICAgICAg
ICAgc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2suaCBcCiAgICAgICAgIHN0b3JhZ2UvRmlsZVN5
c3RlbUNhbGxiYWNrcy5oIFwKICAgICAgICAgc3RvcmFnZS9GbGFncy5oIFwKKyAgICAgICAgc3Rv
cmFnZS9Mb2NhbEZpbGVTeXN0ZW0uaCBcCiAgICAgICAgIHN0b3JhZ2UvTWV0YWRhdGEuaCBcCiAg
ICAgICAgIHN0b3JhZ2UvTWV0YWRhdGFDYWxsYmFjay5oCiAKQEAgLTI2MDUsNyArMjYwOSw4IEBA
IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9GSUxFX1NZU1RFTT0xKSB7CiAgICAgICAgIHN0b3Jh
Z2UvRW50cnkuY3BwIFwKICAgICAgICAgc3RvcmFnZS9FbnRyeUFycmF5LmNwcCBcCiAgICAgICAg
IHN0b3JhZ2UvRmlsZUVudHJ5LmNwcCBcCi0gICAgICAgIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxi
YWNrcy5jcHAKKyAgICAgICAgc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcCBcCisgICAg
ICAgIHN0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmNwcAogfQogCiBjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfSUNPTkRBVEFCQVNFPTEpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGMyODA3ZjJmNzhhM2ViNDM0NjE1YWE3ZWYzYzFmYjZiYTYxZWZhMjEuLjQ5YWE0YWJi
ZGM4OTk3MTYxYzU3NDc2MjljZWEzN2QzYzljM2RmZmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtMjM5ODEsNiArMjM5ODEsMTggQEAKIAkJCQk+DQogCQkJPC9GaWxl
Pg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cQXN5bmNGaWxlU3lz
dGVtLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBsYXRmb3JtXEFzeW5jRmlsZVN5c3RlbS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0K
KwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cQXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxwbGF0Zm9ybVxBdXRvZHJhaW5lZFBvb2wuaCINCiAJCQkJPg0KIAkJCTwvRmls
ZT4NCkBAIC01MTQzMyw2ICs1MTQ0NSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXExvY2FsRmlsZVN5c3RlbS5jcHAiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9y
YWdlXExvY2FsRmlsZVN5c3RlbS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQog
CQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxMb2NhbFN0b3JhZ2VUYXNrLmNwcCINCiAJCQkJ
Pg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGQ3NjMzZTNjODIyNjhjOTUxZTkzYTdkMWRkNjVjMGM4NmY2N2FmMzEuLmQyY2VkY2Zi
MzQ4YTgyY2NmYmU0ZWNlMTUxODM5OWEyMmM3M2IyNDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzk1LDYgKzIzOTUsOCBAQAogCQk4OTUyNTNERjEx
NkM0RjA2MDBDQUJGMDAgLyogRmlsZVRocmVhZFRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5NTI1M0RFMTE2QzRGMDYwMENBQkYwMCAvKiBGaWxl
VGhyZWFkVGFzay5oICovOyB9OwogCQk4OTY4NkM5RjEyMjI0NEEwMDA3NkVBQTQgLyogRE9NRmls
ZVBhdGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODk2ODZDOUQxMjIyNDRBMDAwNzZFQUE0IC8qIERPTUZpbGVQYXRoLmNwcCAqLzsgfTsKIAkJODk2
ODZDQTAxMjIyNDRBMDAwNzZFQUE0IC8qIERPTUZpbGVQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTY4NkM5RTEyMjI0NEEwMDA3NkVBQTQgLyog
RE9NRmlsZVBhdGguaCAqLzsgfTsKKwkJODk4NzgzRDMxMjIzMkExMzAwM0FBQkRBIC8qIExvY2Fs
RmlsZVN5c3RlbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4OTg3ODNEMTEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmNwcCAqLzsg
fTsKKwkJODk4NzgzRDQxMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk4NzgzRDIxMjIzMkEx
MzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oICovOyB9OwogCQk4OTg4RTEwRTExQTM1MDhC
MDBEQjczMkUgLyogQmxvYkl0ZW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODk4OEUxMEMxMUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJdGVtLmNwcCAq
LzsgfTsKIAkJODk4OEUxMEYxMUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJdGVtLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTg4RTEwRDExQTM1MDhCMDBE
QjczMkUgLyogQmxvYkl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4OTlBQkMyNjEyMTVFNEEzMDBGOUYyMTkgLyogRGlyZWN0b3J5RW50cnku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk5QUJD
MjAxMjE1RTRBMzAwRjlGMjE5IC8qIERpcmVjdG9yeUVudHJ5LmNwcCAqLzsgfTsKQEAgLTI0NDQs
NiArMjQ0Niw5IEBACiAJCTg5QzBERDdCMTIxRjBDNjkwMDlFMTdDQSAvKiBGaWxlU3lzdGVtQ2Fs
bGJhY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
OUMwREQ3OTEyMUYwQzY5MDA5RTE3Q0EgLyogRmlsZVN5c3RlbUNhbGxiYWNrcy5oICovOyB9Owog
CQk4OUNEMDI5MzExQzg1Qjg3MDA3MEI3OTEgLyogSlNCbG9iQnVpbGRlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUNEMDI5MTExQzg1Qjg3MDA3
MEI3OTEgLyogSlNCbG9iQnVpbGRlci5jcHAgKi87IH07CiAJCTg5Q0QwMjk0MTFDODVCODcwMDcw
Qjc5MSAvKiBKU0Jsb2JCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4OUNEMDI5MjExQzg1Qjg3MDA3MEI3OTEgLyogSlNCbG9iQnVpbGRlci5o
ICovOyB9OworCQk4OUQwOEQ5RjEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5RDA4RDlD
MTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwICovOyB9OworCQk4OUQwOERB
MDEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUQwOEQ5RDEyMjI4NDUxMDAxMjQxREYgLyog
QXN5bmNGaWxlU3lzdGVtLmggKi87IH07CisJCTg5RDA4REExMTIyMjg0NTEwMDEyNDFERiAvKiBB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg5RDA4RDlFMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0
ZW1DYWxsYmFja3MuaCAqLzsgfTsKIAkJOEExMkUzNUQxMUZBMzMyODAwMjU4MzZBIC8qIERvY3Vt
ZW50TG9hZFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThBNDEzQUUw
MTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8q
IEFzeW5jU2NyaXB0UnVubmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOEE0MTNBRTExMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVu
bmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhB
NDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgKi87IH07CkBA
IC04Mjg3LDYgKzgyOTIsOCBAQAogCQk4OTdBMkQ4RTEyMDAwMzVGMDA4Mjc0MEMgLyogSlNET01G
aWxlU3lzdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NRmlsZVN5
c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTdBMkQ5MTEyMDAwMzc2MDA4
Mjc0MEMgLyogSlNGbGFncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0ZsYWdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODk3QTJEOTIxMjAw
MDM3NjAwODI3NDBDIC8qIEpTRmxhZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNGbGFncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTg3ODNEMTEyMjMy
QTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExvY2FsRmlsZVN5c3RlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTg5ODc4M0QyMTIyMzJBMTMwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxGaWxlU3lzdGVtLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5ODhFMTBDMTFBMzUwOEIwMERCNzMyRSAvKiBCbG9i
SXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9iSXRlbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5ODhFMTBEMTFBMzUwOEIwMERCNzMy
RSAvKiBCbG9iSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9iSXRl
bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTlBQkMyMDEyMTVFNEEzMDBGOUYy
MTkgLyogRGlyZWN0b3J5RW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRGlyZWN0b3J5RW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
ODMyMiw2ICs4MzI5LDkgQEAKIAkJODlDRDAyNzkxMUM4NTlBODAwNzBCNzkxIC8qIEJsb2JCdWls
ZGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBCbG9iQnVpbGRlci5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5Q0QwMjkxMTFDODVCODcwMDcwQjc5MSAvKiBKU0Jsb2JC
dWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmxvYkJ1
aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OUNEMDI5MjExQzg1Qjg3
MDA3MEI3OTEgLyogSlNCbG9iQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0Jsb2JCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5RDA4
RDlDMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXN5bmNGaWxlU3lzdGVtLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODlEMDhEOUQxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5
c3RlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY0ZpbGVTeXN0ZW0u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODlEMDhEOUUxMjIyODQ1MTAwMTI0MURG
IC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudExvYWRUaW1pbmcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8q
IEFzeW5jU2NyaXB0UnVubmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFz
eW5jU2NyaXB0UnVubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBNDEzQURG
MTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBc3luY1NjcmlwdFJ1bm5lci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMTY4Niw2ICsxMTY5Niw4IEBACiAJCQkJQjY1NjYyNjgxMjBC
MTE1QTAwNkVBODVDIC8qIElEQlRyYW5zYWN0aW9uLmggKi8sCiAJCQkJQjY1NjYyNjkxMjBCMTE1
QTAwNkVBODVDIC8qIElEQlRyYW5zYWN0aW9uLmlkbCAqLywKIAkJCQlCNjU2NjI2RDEyMEIxMTZC
MDA2RUE4NUMgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggKi8sCisJCQkJODk4
NzgzRDExMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5jcHAgKi8sCisJCQkJODk4
NzgzRDIxMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oICovLAogCQkJCTUxMUYy
MzEzMERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmNwcCAqLywKIAkJCQk1MTFG
MjMxNDBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5oICovLAogCQkJCTUxMUYy
MzE1MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQuY3BwICovLApAQCAtMTY2
MDcsNiArMTY2MTksOSBAQAogCQkJCUJDRkIyRjc0MDk3QTJFMUEwMEJBNzAzRCAvKiBBcmVuYS5j
cHAgKi8sCiAJCQkJQkNGQjJGNzUwOTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmggKi8sCiAJCQkJ
MkVGMUJGRjYxMjFDQjBCRDAwQzI3NjI3IC8qIEFzeW5jRmlsZVN0cmVhbS5oICovLAorCQkJCTg5
RDA4RDlDMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwICovLAorCQkJCTg5
RDA4RDlEMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uaCAqLywKKwkJCQk4OUQw
OEQ5RTEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi8sCiAJ
CQkJNTFFMUVDQjEwQzkxQzU1NjAwREMyNTVCIC8qIEF1dG9kcmFpbmVkUG9vbC5oICovLAogCQkJ
CTg5ODhFMTBDMTFBMzUwOEIwMERCNzMyRSAvKiBCbG9iSXRlbS5jcHAgKi8sCiAJCQkJODk4OEUx
MEQxMUEzNTA4QjAwREI3MzJFIC8qIEJsb2JJdGVtLmggKi8sCkBAIC0yMDM3Miw2ICsyMDM4Nyw5
IEBACiAJCQkJODk0N0E4MkMxMjIyMkM0NzAwRDk1RjJEIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODk0N0E4M0MxMjIyMzRGNDAwRDk1RjJEIC8qIE1ldGFkYXRh
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTQ3QTgzRDEyMjIzNEY5MDBEOTVGMkQgLyogTWV0YWRh
dGFDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJODlEMDhEQTAxMjIyODQ1MTAwMTI0MURG
IC8qIEFzeW5jRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODlEMDhEQTExMjIyODQ1
MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJODk4NzgzRDQxMjIzMkExMzAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkBAIC0yMjgyOSw2ICsyMjg0Nyw4IEBACiAJCQkJODk2ODZDOUYxMjIyNDRBMDAwNzZF
QUE0IC8qIERPTUZpbGVQYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5NDdBODI5MTIyMjJD
NDcwMEQ5NUYyRCAvKiBKU01ldGFkYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5NDdBODJC
MTIyMjJDNDcwMEQ5NUYyRCAvKiBKU01ldGFkYXRhQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJODlEMDhEOUYxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk4OTg3ODNEMzEyMjMyQTEzMDAzQUFCREEgLyogTG9jYWxGaWxlU3lz
dGVtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Bc3lu
Y0ZpbGVTeXN0ZW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmM4NjQwMTk2ZGQ4ZTI4NWM0YjA0OWE0MjdhOWI5Zjk2NDgwZDZjNzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAKQEAgLTAs
MCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0u
aCIKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCisjaWYgIVBMQVRGT1JNKENIUk9NSVVNKQorUGFzc093blB0cjxBc3luY0ZpbGVTeXN0
ZW0+IEFzeW5jRmlsZVN5c3RlbTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYpCit7CisgICAgLy8gRklY
TUU6IHJldHVybiBkZWZhdWx0IEFzeW5jRmlsZVN5c3RlbSBpbXBsZW1lbnRhdGlvbi4KKyAgICBy
ZXR1cm4gMDsKK30KKworLy8gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KK3ZvaWQgQXN5bmNGaWxl
U3lzdGVtOjpvcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJp
bmcmIHN0b3JhZ2VJZGVudGlmaWVyLCBUeXBlIHR5cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgU3RyaW5nIHR5cGVTdHJpbmcgPSAodHlw
ZSA9PSBQZXJzaXN0ZW50KSA/ICJQZXJzaXN0ZW50IiA6ICJUZW1wb3JhcnkiOworCisgICAgU3Ry
aW5nIG5hbWUgPSBzdG9yYWdlSWRlbnRpZmllcjsKKyAgICBuYW1lICs9ICI6IjsKKyAgICBuYW1l
ICs9IHR5cGVTdHJpbmc7CisKKyAgICBTdHJpbmcgcm9vdFBhdGggPSBiYXNlUGF0aDsKKyAgICBy
b290UGF0aC5hcHBlbmQoUGxhdGZvcm1GaWxlUGF0aFNlcGFyYXRvcik7CisgICAgcm9vdFBhdGgg
Kz0gc3RvcmFnZUlkZW50aWZpZXI7CisgICAgcm9vdFBhdGguYXBwZW5kKFBsYXRmb3JtRmlsZVBh
dGhTZXBhcmF0b3IpOworICAgIHJvb3RQYXRoICs9IHR5cGVTdHJpbmc7CisgICAgcm9vdFBhdGgu
YXBwZW5kKFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IpOworCisgICAgY2FsbGJhY2tzLT5kaWRP
cGVuRmlsZVN5c3RlbShuYW1lLCBBc3luY0ZpbGVTeXN0ZW06OmNyZWF0ZShyb290UGF0aCkpOwor
fQorI2VuZGlmCisKKy8vIERlZmF1bHQgaW1wbGVtZW50YXRpb24uCitTdHJpbmcgQXN5bmNGaWxl
U3lzdGVtOjp2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKSBjb25zdAor
eworICAgIEFTU0VSVCghbV9wbGF0Zm9ybVJvb3RQYXRoLmlzRW1wdHkoKSk7CisgICAgU3RyaW5n
IHZpcnR1YWxQYXRoID0gcGF0aDsKKyAgICByZXR1cm4gbV9wbGF0Zm9ybVJvb3RQYXRoICsgdmly
dHVhbFBhdGgucmVwbGFjZSgnLycsIFBsYXRmb3JtRmlsZVBhdGhTZXBhcmF0b3IpOworfQorCit9
IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0v
QXN5bmNGaWxlU3lzdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTUyZTgxZTU0ZDlmMTVmNjJkM2VhYzAzOTFk
ZDBlYTU3ZjFiODc2YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNG
aWxlU3lzdGVtLmgKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFzeW5jRmlsZVN5c3RlbV9oCisj
ZGVmaW5lIEFzeW5jRmlsZVN5c3RlbV9oCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXN5bmNGaWxlU3lzdGVtOworY2xhc3MgQXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOworCisvLyBUaGlzIGNsYXNzIHByb3ZpZGVzIGFzeW5jIGlu
dGVyZmFjZSBmb3IgcGxhdGZvcm0tc3BlY2lmaWMgRE9NRmlsZVN5c3RlbSBpbXBsZW1lbnRhdGlv
bi4gTm90ZSB0aGF0IGFsbCB0aGUgbWV0aG9kcyB0YWtlIGNhbm9uaWNhbGl6ZWQgdmlydHVhbCBw
YXRocy4KK2NsYXNzIEFzeW5jRmlsZVN5c3RlbSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJs
aWM6CisgICAgdmlydHVhbCB+QXN5bmNGaWxlU3lzdGVtKCkgeyB9CisKKyAgICAvLyBGaWxlU3lz
dGVtIHR5cGUKKyAgICBlbnVtIFR5cGUgeworICAgICAgICBUZW1wb3JhcnksCisgICAgICAgIFBl
cnNpc3RlbnQsCisgICAgfTsKKworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgeyB9CisgICAgdmly
dHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICAv
LyBDcmVhdGVzIGFuZCByZXR1cm5zIGEgbmV3IHBsYXRmb3JtLXNwZWNpZmljIEFzeW5jRmlsZVN5
c3RlbSBpbnN0YW5jZSBpZiB0aGUgcGxhdGZvcm0gaGFzIGl0cyBvd24gaW1wbGVtZW50YXRpb24u
CisgICAgc3RhdGljIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiByb290UGF0aCk7CisKKyAgICAvLyBPcGVucyBhIG5ldyBmaWxlIHN5c3RlbS4gIFRoaXMg
cGFzc2VzIHRoZSBvd25lcnNoaXAgb2YgJ3RoaXMnIHRvIHRoZSBjYWxsYmFja3MuCisgICAgc3Rh
dGljIHZvaWQgb3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwgY29uc3QgU3Ry
aW5nJiBzdG9yYWdlSWRlbnRpZmllciwgVHlwZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3M+KTsKKworICAgIC8vIE1vdmVzIGEgZmlsZSBvciBkaXJlY3RvcnkgZnJvbSBzcmNQ
YXRoIHRvIGRlc3RQYXRoLgorICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkU3Vj
Y2VlZCgpIGlzIGNhbGxlZCB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3Nm
dWxseS4KKyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZEZhaWwoKSBpcyBjYWxs
ZWQgb3RoZXJ3aXNlLgorICAgIHZpcnR1YWwgdm9pZCBtb3ZlKGNvbnN0IFN0cmluZyYgc3JjUGF0
aCwgY29uc3QgU3RyaW5nJiBkZXN0UGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3M+KSA9IDA7CisKKyAgICAvLyBDb3BpZXMgYSBmaWxlIG9yIGRpcmVjdG9yeSBmcm9tIHNy
Y1BhdGggdG8gZGVzdFBhdGguCisgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRT
dWNjZWVkKCkgaXMgY2FsbGVkIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZWQgc3VjY2Vz
c2Z1bGx5LgorICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkRmFpbCgpIGlzIGNh
bGxlZCBvdGhlcndpc2UuCisgICAgdmlydHVhbCB2b2lkIGNvcHkoY29uc3QgU3RyaW5nJiBzcmNQ
YXRoLCBjb25zdCBTdHJpbmcmIGRlc3RQYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrcz4pID0gMDsKKworICAgIC8vIERlbGV0ZXMgYSBmaWxlIG9yIGRpcmVjdG9yeSBhdCBh
IGdpdmVuIHBhdGguCisgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRTdWNjZWVk
KCkgaXMgY2FsbGVkIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5
LgorICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkRmFpbCgpIGlzIGNhbGxlZCBv
dGhlcndpc2UuCisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShjb25zdCBTdHJpbmcmIHBhdGgsIFBh
c3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworCisgICAgLy8gUmV0cmll
dmVzIHRoZSBtZXRhZGF0YSBpbmZvcm1hdGlvbiBvZiB0aGUgZmlsZSBvciBkaXJlY3RvcnkgYXQg
YSBnaXZlbiBwYXRoLgorICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkUmVhZE1l
dGFkYXRhKCkgaXMgY2FsbGVkIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZWQgc3VjY2Vz
c2Z1bGx5LgorICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkRmFpbCgpIGlzIGNh
bGxlZCBvdGhlcndpc2UuCisgICAgdmlydHVhbCB2b2lkIHJlYWRNZXRhZGF0YShjb25zdCBTdHJp
bmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworCisg
ICAgLy8gQ3JlYXRlcyBhIGZpbGUgYXQgYSBnaXZlbiBwYXRoLiAgSWYgZXhjbHVzaXZlIGZsYWcg
aXMgdHJ1ZSwgaXQgZmFpbHMgaWYgdGhlIHBhdGggYWxyZWFkeSBleGlzdHMuCisgICAgLy8gQXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRTdWNjZWVkKCkgaXMgY2FsbGVkIHdoZW4gdGhlIG9w
ZXJhdGlvbiBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgIC8vIEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrczo6ZGlkRmFpbCgpIGlzIGNhbGxlZCBvdGhlcndpc2UuCisgICAgdmlydHVhbCB2
b2lkIGNyZWF0ZUZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBib29sIGV4Y2x1c2l2ZSwgUGFzc093
blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBDcmVhdGVzIGEg
ZGlyZWN0b3J5IGF0IGEgZ2l2ZW4gcGF0aC4gIElmIGV4Y2x1c2l2ZSBmbGFnIGlzIHRydWUsIGl0
IGZhaWxzIGlmIHRoZSBwYXRoIGFscmVhZHkgZXhpc3RzLgorICAgIC8vIEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrczo6ZGlkU3VjY2VlZCgpIGlzIGNhbGxlZCB3aGVuIHRoZSBvcGVyYXRpb24gaXMg
Y29tcGxldGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6
OmRpZEZhaWwoKSBpcyBjYWxsZWQgb3RoZXJ3aXNlLgorICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVE
aXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBib29sIGV4Y2x1c2l2ZSwgUGFzc093blB0cjxB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBDaGVja3MgaWYgYSBmaWxl
IGV4aXN0cyBhdCBhIGdpdmVuIHBhdGguCisgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
OjpkaWRTdWNjZWVkKCkgaXMgY2FsbGVkIGlmIHRoZSBmaWxlIGV4aXN0cy4KKyAgICAvLyBBc3lu
Y0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZEZhaWwoKSBpcyBjYWxsZWQgb3RoZXJ3aXNlLgorICAg
IHZpcnR1YWwgdm9pZCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBDaGVja3MgaWYgYSBkaXJl
Y3RvcnkgZXhpc3RzIGF0IGEgZ2l2ZW4gcGF0aC4KKyAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3M6OmRpZFN1Y2NlZWQoKSBpcyBjYWxsZWQgaWYgdGhlIGRpcmVjdG9yeSBleGlzdHMuCisg
ICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRGYWlsKCkgaXMgY2FsbGVkIG90aGVy
d2lzZS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlyZWN0b3J5RXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0
aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBS
ZWFkcyBkaXJlY3RvcnkgZW50cmllcyBvZiBhIGdpdmVuIGRpcmVjdG9yeSBhdCBwYXRoLgorICAg
IC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkUmVhZERpcmVjdG9yeUVudHJ5KCkgaXMg
Y2FsbGVkIHdoZW4gZWFjaCBkaXJlY3RvcnkgZW50cnkgaXMgY2FsbGVkLiBBc3luY0ZpbGVTeXN0
ZW1DYWxsYmFja3M6OmRpZFJlYWREaXJlY3RvcnlDaHVua0RvbmUoKSBpcyBjYWxsZWQgYWZ0ZXIg
YSBjaHVuayBvZiBkaXJlY3RvcnkgZW50cmllcyBoYXZlIGJlZW4gcmVhZC4KKyAgICAvLyBBc3lu
Y0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZEZhaWwoKSBpcyB3aGVuIHRoZXJlIGlzIGFuIGVycm9y
LgorICAgIHZpcnR1YWwgdm9pZCByZWFkRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBDb252ZXJ0
cyBhIGdpdmVuIGFic29sdXRlIHZpcnR1YWwgcGF0aCB0byBhIHBsYXRmb3JtIHBhdGggdGhhdCBz
dGFydHMgd2l0aCB0aGUgcGxhdGZvcm0gcm9vdCBwYXRoIG9mIHRoaXMgZmlsZSBzeXN0ZW0uCisg
ICAgdmlydHVhbCBTdHJpbmcgdmlydHVhbFRvUGxhdGZvcm1QYXRoKGNvbnN0IFN0cmluZyYgcGF0
aCkgY29uc3Q7CisKK3Byb3RlY3RlZDoKKyAgICBBc3luY0ZpbGVTeXN0ZW0oY29uc3QgU3RyaW5n
JiBwbGF0Zm9ybVJvb3RQYXRoKQorICAgICAgICA6IG1fcGxhdGZvcm1Sb290UGF0aChwbGF0Zm9y
bVJvb3RQYXRoKQorICAgIHsKKyAgICB9CisKKyAgICBTdHJpbmcgbV9wbGF0Zm9ybVJvb3RQYXRo
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVf
U1lTVEVNKQorCisjZW5kaWYgLy8gQXN5bmNGaWxlU3lzdGVtX2gKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggYi9XZWJDb3JlL3BsYXRmb3Jt
L0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlZTQxZDFlNzNiY2MxYzA4
OTJmNjE0MGMzODEwMjEwYmU4Y2Q2YjQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL0FzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFz
eW5jRmlsZVN5c3RlbUNhbGxiYWNrc19oCisjZGVmaW5lIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
c19oCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFzeW5jRmlsZVN5c3RlbTsKKwor
Y2xhc3MgQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1
YmxpYzoKKyAgICAvLyBDYWxsZWQgd2hlbiBhIHJlcXVlc3RlZCBvcGVyYXRpb24gaXMgY29tcGxl
dGVkIHN1Y2Nlc3NmdWxseS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3VjY2VlZCgpID0gMDsKKwor
ICAgIC8vIENhbGxlZCB3aGVuIGEgcmVxdWVzdGVkIGZpbGUgc3lzdGVtIGlzIG9wZW5lZC4KKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkT3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNz
T3duUHRyPEFzeW5jRmlsZVN5c3RlbT4pID0gMDsKKworICAgIC8vIENhbGxlZCB3aGVuIGEgZmls
ZSBtZXRhZGF0YSBpcyByZWFkIHN1Y2Nlc3NmdWxseS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVh
ZE1ldGFkYXRhKGRvdWJsZSBtb2RpZmljYXRpb25UaW1lKSA9IDA7CisKKyAgICAvLyBDYWxsZWQg
d2hlbiBhIGRpcmVjdG9yeSBlbnRyeSBpcyByZWFkLgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWFk
RGlyZWN0b3J5RW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGlzRGlyZWN0b3J5KSA9IDA7
CisKKyAgICAvLyBDYWxsZWQgYWZ0ZXIgYSBjaHVuayBvZiBkaXJlY3RvcnkgZW50cmllcyBoYXZl
IGJlZW4gcmVhZCAoaS5lLiBpbmRpY2F0ZXMgaXQncyBnb29kIHRpbWUgdG8gY2FsbCBiYWNrIHRv
IHRoZSBhcHBsaWNhdGlvbikuICBJZiBoYXNNb3JlIGlzIHRydWUgdGhlcmUgY2FuIGJlIG1vcmUg
Y2h1bmtzLgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWFkRGlyZWN0b3J5Q2h1bmtEb25lKGJvb2wg
aGFzTW9yZSkgPSAwOworCisgICAgLy8gQ2FsbGVkIHdoZW4gdGhlcmUgd2FzIGFuIGVycm9yLgor
ICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGludCBjb2RlKSA9IDA7CisKKyAgICB2aXJ0dWFsIH5B
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNl
bmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNlbmRpZiAvLyBBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3NfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAppbmRleCBlYzc1YTIxMDNhNTUwODczYzU3ZTQx
N2U2ZjMzMmUwOGI2OGQ3YWRmLi5lMzkxNmNmZTBhYzU5NjcxN2U5YTRmMmJkOWU1YmUwMDYyMjZk
MDgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtMTM4LDYgKzEzOCwxMiBAQCBlbnVtIEZpbGVT
ZWVrT3JpZ2luIHsKICAgICBTZWVrRnJvbUVuZAogfTsKIAorI2lmIE9TKFdJTkRPV1MpCitzdGF0
aWMgY29uc3QgY2hhciBQbGF0Zm9ybUZpbGVQYXRoU2VwYXJhdG9yID0gJ1xcJzsKKyNlbHNlCitz
dGF0aWMgY29uc3QgY2hhciBQbGF0Zm9ybUZpbGVQYXRoU2VwYXJhdG9yID0gJy8nOworI2VuZGlm
CisKIGJvb2wgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmKTsKIGJvb2wgZGVsZXRlRmlsZShjb25z
dCBTdHJpbmcmKTsKIGJvb2wgZGVsZXRlRW1wdHlEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5jcHAgYi9XZWJDb3JlL3N0
b3JhZ2UvRE9NRmlsZVN5c3RlbS5jcHAKaW5kZXggYzNkYmQzNDAxNGVhMjBlY2VmZDhhYWRkN2M2
YmRjOWRiZDBlZTk2Mi4uNWQ2MDczYTNlOWVjMTIzOTY0YTIyYjk2Njk0NmJiMzYwYTIzOWVlYSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uY3BwCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcApAQCAtMzMsMTMgKzMzLDIwIEBACiAKICNpZiBF
TkFCTEUoRklMRV9TWVNURU0pCiAKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0uaCIKICNpbmNs
dWRlICJEaXJlY3RvcnlFbnRyeS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ET01GaWxlU3lzdGVtOjpET01GaWxlU3lzdGVt
KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiByb290UGF0aCkKLSAgICA6IG1fcm9v
dFBhdGgocm9vdFBhdGgpCitET01GaWxlU3lzdGVtOjpET01GaWxlU3lzdGVtKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0cjxBc3lu
Y0ZpbGVTeXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250
ZXh0LCB0aGlzKQogICAgICwgbV9uYW1lKG5hbWUpCisgICAgLCBtX2FzeW5jRmlsZVN5c3RlbShh
c3luY0ZpbGVTeXN0ZW0pCit7Cit9CisKK0RPTUZpbGVTeXN0ZW06On5ET01GaWxlU3lzdGVtKCkK
IHsKIH0KIApAQCAtNDgsNiArNTUsMjEgQEAgUGFzc1JlZlB0cjxEaXJlY3RvcnlFbnRyeT4gRE9N
RmlsZVN5c3RlbTo6cm9vdCgpCiAgICAgcmV0dXJuIERpcmVjdG9yeUVudHJ5OjpjcmVhdGUodGhp
cywgIi8iKTsKIH0KIAordm9pZCBET01GaWxlU3lzdGVtOjpzdG9wKCkKK3sKKyAgICBtX2FzeW5j
RmlsZVN5c3RlbS0+c3RvcCgpOworfQorCitib29sIERPTUZpbGVTeXN0ZW06Omhhc1BlbmRpbmdB
Y3Rpdml0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXN5bmNGaWxlU3lzdGVtLT5oYXNQZW5k
aW5nQWN0aXZpdHkoKTsKK30KKwordm9pZCBET01GaWxlU3lzdGVtOjpjb250ZXh0RGVzdHJveWVk
KCkKK3sKKyAgICBtX2FzeW5jRmlsZVN5c3RlbS0+c3RvcCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dG9yYWdlL0RPTUZpbGVTeXN0ZW0uaCBiL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmgK
aW5kZXggYjg3YWFhZjMyY2Q5ZWFjMGYyMmM0OWVlMTc2NzJkZDVhMmU3NzY3My4uMzM3YmVhOWNi
ZWVjMGI3ZmUyM2I5NDViMzkzYTUzNDcwZDk0NTJmMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9y
YWdlL0RPTUZpbGVTeXN0ZW0uaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5o
CkBAIC0zMyw2ICszMyw5IEBACiAKICNpZiBFTkFCTEUoRklMRV9TWVNURU0pCiAKKyNpbmNsdWRl
ICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0uaCIKKyNpbmNs
dWRlICJGbGFncy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNDAsMjIgKzQz
LDMwIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERpcmVjdG9yeUVudHJ5OworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAotY2xhc3MgRE9NRmlsZVN5c3RlbSA6IHB1Ymxp
YyBSZWZDb3VudGVkPERPTUZpbGVTeXN0ZW0+IHsKK2NsYXNzIERPTUZpbGVTeXN0ZW0gOiBwdWJs
aWMgUmVmQ291bnRlZDxET01GaWxlU3lzdGVtPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NRmlsZVN5c3RlbT4gY3JlYXRlKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiByb290UGF0aCkKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxET01GaWxlU3lzdGVtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gYXN5bmNG
aWxlU3lzdGVtKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01GaWxlU3lz
dGVtKG5hbWUsIHJvb3RQYXRoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRE9NRmls
ZVN5c3RlbShjb250ZXh0LCBuYW1lLCBhc3luY0ZpbGVTeXN0ZW0pKTsKICAgICB9CiAKKyAgICB2
aXJ0dWFsIH5ET01GaWxlU3lzdGVtKCk7CisKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25z
dCB7IHJldHVybiBtX25hbWU7IH0KICAgICBQYXNzUmVmUHRyPERpcmVjdG9yeUVudHJ5PiByb290
KCk7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgbWV0aG9kcy4KKyAgICB2aXJ0dWFsIHZvaWQg
c3RvcCgpOworICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpOworCiBwcml2YXRlOgotICAgIERPTUZp
bGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoKTsKKyAg
ICBET01GaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5h
bWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPik7CiAKLSAgICBTdHJpbmcgbV9yb290UGF0
aDsKICAgICBTdHJpbmcgbV9uYW1lOworICAgIG11dGFibGUgT3duUHRyPEFzeW5jRmlsZVN5c3Rl
bT4gbV9hc3luY0ZpbGVTeXN0ZW07CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwIGIvV2ViQ29yZS9zdG9yYWdl
L0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwCmluZGV4IGVjMzUyZGQ3ZDZlOTJjN2M4N2EzODA0YjNj
ZDM4Y2MzZGRhMWU4MTguLjU0ODM5ZDgxOTViM2VjZmI1OTM2OTc4NWJjZDc1YzMwZjllNzZmZDkg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcAorKysg
Yi9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHAKQEAgLTMzLDYgKzMzLDcg
QEAKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKIAorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3Rl
bS5oIgogI2luY2x1ZGUgIkRPTUZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJEaXJlY3RvcnlFbnRy
eS5oIgogI2luY2x1ZGUgIkVudHJpZXNDYWxsYmFjay5oIgpAQCAtNjUsNyArNjYsNyBAQCB2b2lk
IEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlOjpkaWRTdWNjZWVkKCkKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKIH0KIAotdm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZTo6ZGlkT3BlbkZpbGVT
eXN0ZW0oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgRmlsZVN5c3RlbUNhbGxi
YWNrc0Jhc2U6OmRpZE9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYsIFBhc3NPd25QdHI8QXN5
bmNGaWxlU3lzdGVtPikKIHsKICAgICAvLyBFYWNoIHN1YmNsYXNzIG11c3QgaW1wbGVtZW50IGFu
IGFwcHJvcHJpYXRlIG9uZS4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTg5LDcgKzkw
LDcgQEAgdm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZTo6ZGlkUmVhZERpcmVjdG9yeUVudHJ5
KGNvbnN0IFN0cmluZyYsIGJvb2wpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZv
aWQgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2U6OmRpZEZhaWwoRXhjZXB0aW9uQ29kZSBjb2RlKQor
dm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZTo6ZGlkRmFpbChpbnQgY29kZSkKIHsKICAgICBp
ZiAobV9lcnJvckNhbGxiYWNrKSB7CiAgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZl
bnQoRmlsZUVycm9yOjpjcmVhdGUoY29kZSkuZ2V0KCkpOwpAQCAtMTUyLDE2ICsxNTMsMTkgQEAg
dm9pZCBFbnRyaWVzQ2FsbGJhY2tzOjpkaWRSZWFkRGlyZWN0b3J5Q2h1bmtEb25lKGJvb2wgaGFz
TW9yZSkKIAogLy8gRmlsZVN5c3RlbUNhbGxiYWNrcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1GaWxlU3lzdGVtQ2FsbGJhY2tzOjpG
aWxlU3lzdGVtQ2FsbGJhY2tzKFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBzdWNjZXNz
Q2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK0ZpbGVT
eXN0ZW1DYWxsYmFja3M6OkZpbGVTeXN0ZW1DYWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVt
Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJv
ckNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIDogRmlsZVN5
c3RlbUNhbGxiYWNrc0Jhc2UoZXJyb3JDYWxsYmFjaykKICAgICAsIG1fc3VjY2Vzc0NhbGxiYWNr
KHN1Y2Nlc3NDYWxsYmFjaykKKyAgICAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0
KQogewogfQogCi12b2lkIEZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZE9wZW5GaWxlU3lzdGVtKGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiByb290UGF0aCkKK3ZvaWQgRmlsZVN5c3Rl
bUNhbGxiYWNrczo6ZGlkT3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzT3du
UHRyPEFzeW5jRmlsZVN5c3RlbT4gYXN5bmNGaWxlU3lzdGVtKQogewotICAgIGlmIChtX3N1Y2Nl
c3NDYWxsYmFjaykKLSAgICAgICAgbV9zdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50KERPTUZp
bGVTeXN0ZW06OmNyZWF0ZShuYW1lLCByb290UGF0aCkuZ2V0KCkpOworICAgIGlmIChtX3N1Y2Nl
c3NDYWxsYmFjaykgeworICAgICAgICBBU1NFUlQoYXN5bmNGaWxlU3lzdGVtKTsKKyAgICAgICAg
bV9zdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50KERPTUZpbGVTeXN0ZW06OmNyZWF0ZShtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsIG5hbWUsIGFzeW5jRmlsZVN5c3RlbS5sZWFrUHRyKCkpLmdl
dCgpKTsKKyAgICB9CiAgICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xlYXIoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBiL1dlYkNvcmUvc3Rv
cmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmgKaW5kZXggZTBlNzhkMzcwYzIxZTMzN2IyNDhkMzhh
Yzg5NmQxYTdlMGVjYjEzMC4uMjI3ZjExMjU3ZjZlNzQ4YjQ3YmZmYWQxOGQ0OTI2ZWFhMjZkMzFm
YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuaAorKysg
Yi9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrcy5oCkBAIC0zMyw2ICszMyw3IEBA
CiAKICNpZiBFTkFCTEUoRklMRV9TWVNURU0pCiAKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3MuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDksMTAgKzUwLDcgQEAg
Y2xhc3MgTWV0YWRhdGFDYWxsYmFjazsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBj
bGFzcyBWb2lkQ2FsbGJhY2s7CiAKLXR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7Ci0KLS8vIEEg
YmFzZSBjbGFzcyBmb3IgRmlsZVN5c3RlbSBjYWxsYmFja3MgdGhhdCBidW5kbGVzIHN1Y2Nlc3ND
YWxsYmFjaywgZXJyb3JDYWxsYmFjayBhbmQgc29tZSBjbG9zdXJlIGRhdGEgZm9yIHRoZSBjYWxs
YmFja3MuCi1jbGFzcyBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZSA6IHB1YmxpYyBOb25jb3B5YWJs
ZSB7CitjbGFzcyBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZSA6IHB1YmxpYyBBc3luY0ZpbGVTeXN0
ZW1DYWxsYmFja3MgewogcHVibGljOgogICAgIHZpcnR1YWwgfkZpbGVTeXN0ZW1DYWxsYmFja3NC
YXNlKCk7CiAKQEAgLTYwLDcgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRT
dWNjZWVkKCk7CiAKICAgICAvLyBGb3IgRmlsZVN5c3RlbUNhbGxiYWNrcy4KLSAgICB2aXJ0dWFs
IHZvaWQgZGlkT3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHJvb3RQYXRoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkT3BlbkZpbGVTeXN0ZW0oY29uc3QgU3Ry
aW5nJiBuYW1lLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4pOwogCiAgICAgLy8gRm9yIE1l
dGFkYXRhQ2FsbGJhY2tzLgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWFkTWV0YWRhdGEoZG91Ymxl
IG1vZGlmaWNhdGlvblRpbWUpOwpAQCAtNzAsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlYWREaXJlY3RvcnlDaHVua0RvbmUoYm9vbCBoYXNNb3JlKTsKIAogICAgIC8v
IEZvciBFcnJvckNhbGxiYWNrLgotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKEV4Y2VwdGlvbkNv
ZGUgY29kZSk7CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoaW50IGNvZGUpOwogCiBwcm90ZWN0
ZWQ6CiAgICAgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UoUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNr
PiBlcnJvckNhbGxiYWNrKTsKQEAgLTEwNiwxMSArMTA0LDEyIEBAIHByaXZhdGU6CiAKIGNsYXNz
IEZpbGVTeXN0ZW1DYWxsYmFja3MgOiBwdWJsaWMgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2Ugewog
cHVibGljOgotICAgIEZpbGVTeXN0ZW1DYWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2Fs
bGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+KTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
T3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRo
KTsKKyAgICBGaWxlU3lzdGVtQ2FsbGJhY2tzKFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNr
PiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIFBh
c3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPik7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPEZpbGVT
eXN0ZW1DYWxsYmFjaz4gbV9zdWNjZXNzQ2FsbGJhY2s7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwogfTsKIAogY2xhc3MgTWV0YWRhdGFDYWxs
YmFja3MgOiBwdWJsaWMgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UgewpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9zdG9yYWdlL0ZsYWdzLmggYi9XZWJDb3JlL3N0b3JhZ2UvRmxhZ3MuaAppbmRleCBmZmUz
NDAzOGEwNGM0MGNlOWUzYTg3NTgzMGIxYmI4MDVjZjY2ZWJiLi4zMDg4NGZjYzQzZmRmMmEzYTA2
NDVmOWQ1OWFkOWE4ZWI3ZWQ2MDRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRmxhZ3Mu
aAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvRmxhZ3MuaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaWYg
RU5BQkxFKEZJTEVfU1lTVEVNKQogCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxGaWxlU3lzdGVtLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9M
b2NhbEZpbGVTeXN0ZW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4MjUwOGU3YzA3OGUxNDhjMjA5MzYzOGI3
NTE3ZWFhODdhMDU3NTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxG
aWxlU3lzdGVtLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkxvY2FsRmlsZVN5c3RlbS5oIgorCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisjZXJyb3Ig
IkNocm9taXVtIHNob3VsZCBub3QgY29tcGlsZSB0aGlzIGZpbGUgYW5kIGluc3RlYWQgZGVmaW5l
IGl0cyBvd24gdmVyc2lvbiBvZiB0aGVzZSBmYWN0b3JpZXMuIgorI2VuZGlmCisKKyNpZiBFTkFC
TEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJFcnJv
ckNhbGxiYWNrLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZpbGVF
cnJvci5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1DYWxsYmFjay5oIgorI2luY2x1ZGUgIkZpbGVT
eXN0ZW1DYWxsYmFja3MuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8TG9jYWxGaWxlU3lzdGVtPiBMb2Nh
bEZpbGVTeXN0ZW06OmNyZWF0ZShjb25zdCBTdHJpbmcmIGJhc2VQYXRoKQoreworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgTG9jYWxGaWxlU3lzdGVtKGJhc2VQYXRoKSk7Cit9CisKK3ZvaWQgTG9j
YWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUgdHlwZSwgbG9uZyBsb25nLCBQYXNzUmVmUHRy
PEZpbGVTeXN0ZW1DYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm9yQ2Fs
bGJhY2s+IGVycm9yQ2FsbGJhY2spCit7CisgICAgaWYgKHR5cGUgIT0gQXN5bmNGaWxlU3lzdGVt
OjpUZW1wb3JhcnkgJiYgdHlwZSAhPSBBc3luY0ZpbGVTeXN0ZW06OlBlcnNpc3RlbnQpIHsKKyAg
ICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRmlsZUVycm9yOjpjcmVhdGUoSU5WQUxJ
RF9NT0RJRklDQVRJT05fRVJSKS5nZXQoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtKG1fYmFzZVBhdGgsIGNvbnRleHQtPnNl
Y3VyaXR5T3JpZ2luKCktPmRhdGFiYXNlSWRlbnRpZmllcigpLCB0eXBlLCBuZXcgRmlsZVN5c3Rl
bUNhbGxiYWNrcyhzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIGNvbnRleHQpKTsKK30K
KworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbEZpbGVTeXN0ZW0uaCBiL1dlYkNvcmUvc3RvcmFn
ZS9Mb2NhbEZpbGVTeXN0ZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGNmYThmNjg4NmE2MGE0MDA0NDRlMmZj
ZWJlYTY4Y2Q1MjNkYmI2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0xvY2Fs
RmlsZVN5c3RlbS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIExvY2FsRmlsZVN5c3RlbV9oCisj
ZGVmaW5lIExvY2FsRmlsZVN5c3RlbV9oCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNp
bmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFcnJvckNhbGxiYWNrOworY2xhc3MgRmls
ZVN5c3RlbUNhbGxiYWNrOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3Mg
TG9jYWxGaWxlU3lzdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8TG9jYWxGaWxlU3lzdGVtPiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TG9jYWxGaWxlU3lzdGVtPiBjcmVhdGUoY29u
c3QgU3RyaW5nJiBiYXNlUGF0aCk7CisgICAgdmlydHVhbCB+TG9jYWxGaWxlU3lzdGVtKCkgeyB9
CisKKyAgICB2b2lkIHJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBB
c3luY0ZpbGVTeXN0ZW06OlR5cGUsIGxvbmcgbG9uZyBzaXplLCBQYXNzUmVmUHRyPEZpbGVTeXN0
ZW1DYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pOworCitwcm90ZWN0ZWQ6Cisg
ICAgTG9jYWxGaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgpCisgICAgICAgIDogbV9i
YXNlUGF0aChiYXNlUGF0aCkKKyAgICB7CisgICAgfQorCisgICAgU3RyaW5nIG1fYmFzZVBhdGg7
Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQor
CisjZW5kaWYgLy8gTG9jYWxGaWxlU3lzdGVtX2gK
</data>
<flag name="review"
          id="54317"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="54515"
          type_id="3"
          status="-"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>