<?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>52078</bug_id>
          
          <creation_ts>2011-01-07 13:18:21 -0800</creation_ts>
          <short_desc>Make Geolocation features work in WebKit2</short_desc>
          <delta_ts>2011-01-11 09:57:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>52191</dependson>
    
    <dependson>52193</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>330956</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-01-07 13:18:21 -0800</bug_when>
    <thetext>Make Geolocation features work in WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330957</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-01-07 13:18:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/8502929&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330960</commentid>
    <comment_count>2</comment_count>
      <attachid>78263</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-01-07 13:19:41 -0800</bug_when>
    <thetext>Created attachment 78263
Patch WIP (Do not review)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330986</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-07 13:50:57 -0800</bug_when>
    <thetext>Attachment 78263 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit2/ChangeLog&apos;, u&apos;WebKit2/DerivedSources.make&apos;, u&apos;WebKit2/DerivedSources.pro&apos;, u&apos;WebKit2/Platform/CoreIPC/HandleMessage.h&apos;, u&apos;WebKit2/Platform/CoreIPC/MessageID.h&apos;, u&apos;WebKit2/Shared/API/c/WKBase.h&apos;, u&apos;WebKit2/Shared/APIObject.h&apos;, u&apos;WebKit2/Shared/WebGeolocationPosition.cpp&apos;, u&apos;WebKit2/Shared/WebGeolocationPosition.h&apos;, u&apos;WebKit2/UIProcess/API/C/WKAPICast.h&apos;, u&apos;WebKit2/UIProcess/API/C/WKContext.cpp&apos;, u&apos;WebKit2/UIProcess/API/C/WKContext.h&apos;, u&apos;WebKit2/UIProcess/API/C/WKGeolocationManager.cpp&apos;, u&apos;WebKit2/UIProcess/API/C/WKGeolocationManager.h&apos;, u&apos;WebKit2/UIProcess/API/C/WKGeolocationPosition.cpp&apos;, u&apos;WebKit2/UIProcess/API/C/WKGeolocationPosition.h&apos;, u&apos;WebKit2/UIProcess/API/C/WebKit2.h&apos;, u&apos;WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;WebKit2/UIProcess/WebContext.h&apos;, u&apos;WebKit2/UIProcess/WebGeolocationManagerProxy.cpp&apos;, u&apos;WebKit2/UIProcess/WebGeolocationManagerProxy.h&apos;, u&apos;WebKit2/UIProcess/WebGeolocationManagerProxy.messages.in&apos;, u&apos;WebKit2/UIProcess/WebGeolocationProvider.cpp&apos;, u&apos;WebKit2/UIProcess/WebGeolocationProvider.h&apos;, u&apos;WebKit2/UIProcess/WebProcessProxy.cpp&apos;, u&apos;WebKit2/WebKit2.pro&apos;, u&apos;WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;WebKit2/WebProcess/Geolocation/WebGeolocationManager.cpp&apos;, u&apos;WebKit2/WebProcess/Geolocation/WebGeolocationManager.h&apos;, u&apos;WebKit2/WebProcess/Geolocation/WebGeolocationManager.messages.in&apos;, u&apos;WebKit2/WebProcess/WebCoreSupport/WebGeolocationClient.cpp&apos;, u&apos;WebKit2/WebProcess/WebCoreSupport/WebGeolocationClient.h&apos;, u&apos;WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;WebKit2/WebProcess/WebProcess.cpp&apos;, u&apos;WebKit2/WebProcess/WebProcess.h&apos;, u&apos;WebKit2/win/WebKit2.vcproj&apos;]&quot; exit_code: 1
WebKit2/WebProcess/Geolocation/WebGeolocationManager.h:35:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebKit2/UIProcess/WebGeolocationManagerProxy.h:34:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 36 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331010</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-01-07 14:26:36 -0800</bug_when>
    <thetext>Attachment 78263 did not build on qt:
Build output: http://queues.webkit.org/results/7424021</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331035</commentid>
    <comment_count>5</comment_count>
      <attachid>78276</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-01-07 15:00:59 -0800</bug_when>
    <thetext>Created attachment 78276
Attempt 2 (DO NOT REVIEW)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331037</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-07 15:04:15 -0800</bug_when>
    <thetext>Attachment 78276 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit2/ChangeLog&apos;, u&apos;WebKit2/DerivedSources.make&apos;, u&apos;WebKit2/DerivedSources.pro&apos;, u&apos;WebKit2/Platform/CoreIPC/HandleMessage.h&apos;, u&apos;WebKit2/Platform/CoreIPC/MessageID.h&apos;, u&apos;WebKit2/Shared/API/c/WKBase.h&apos;, u&apos;WebKit2/Shared/APIObject.h&apos;, u&apos;WebKit2/Shared/WebGeolocationPosition.cpp&apos;, u&apos;WebKit2/Shared/WebGeolocationPosition.h&apos;, u&apos;WebKit2/UIProcess/API/C/WKAPICast.h&apos;, u&apos;WebKit2/UIProcess/API/C/WKContext.cpp&apos;, u&apos;WebKit2/UIProcess/API/C/WKContext.h&apos;, u&apos;WebKit2/UIProcess/API/C/WKGeolocationManager.cpp&apos;, u&apos;WebKit2/UIProcess/API/C/WKGeolocationManager.h&apos;, u&apos;WebKit2/UIProcess/API/C/WKGeolocationPosition.cpp&apos;, u&apos;WebKit2/UIProcess/API/C/WKGeolocationPosition.h&apos;, u&apos;WebKit2/UIProcess/API/C/WebKit2.h&apos;, u&apos;WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;WebKit2/UIProcess/WebContext.h&apos;, u&apos;WebKit2/UIProcess/WebGeolocationManagerProxy.cpp&apos;, u&apos;WebKit2/UIProcess/WebGeolocationManagerProxy.h&apos;, u&apos;WebKit2/UIProcess/WebGeolocationManagerProxy.messages.in&apos;, u&apos;WebKit2/UIProcess/WebGeolocationProvider.cpp&apos;, u&apos;WebKit2/UIProcess/WebGeolocationProvider.h&apos;, u&apos;WebKit2/UIProcess/WebProcessProxy.cpp&apos;, u&apos;WebKit2/WebKit2.pro&apos;, u&apos;WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;WebKit2/WebProcess/Geolocation/WebGeolocationManager.cpp&apos;, u&apos;WebKit2/WebProcess/Geolocation/WebGeolocationManager.h&apos;, u&apos;WebKit2/WebProcess/Geolocation/WebGeolocationManager.messages.in&apos;, u&apos;WebKit2/WebProcess/WebCoreSupport/WebGeolocationClient.cpp&apos;, u&apos;WebKit2/WebProcess/WebCoreSupport/WebGeolocationClient.h&apos;, u&apos;WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;WebKit2/WebProcess/WebProcess.cpp&apos;, u&apos;WebKit2/WebProcess/WebProcess.h&apos;, u&apos;WebKit2/win/WebKit2.vcproj&apos;]&quot; exit_code: 1
WebKit2/WebProcess/Geolocation/WebGeolocationManager.h:35:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebKit2/UIProcess/WebGeolocationManagerProxy.h:34:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 36 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331096</commentid>
    <comment_count>7</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-01-07 16:48:16 -0800</bug_when>
    <thetext>Attachment 78276 did not build on qt:
Build output: http://queues.webkit.org/results/7405044</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331109</commentid>
    <comment_count>8</comment_count>
      <attachid>78292</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-01-07 17:21:18 -0800</bug_when>
    <thetext>Created attachment 78292
Step 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331728</commentid>
    <comment_count>9</comment_count>
      <attachid>78292</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-01-10 11:15:47 -0800</bug_when>
    <thetext>Comment on attachment 78292
Step 1

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

&gt; WebKit2/WebProcess/Geolocation/WebGeolocationManager.h:47
&gt; +    WebGeolocationManager(WebProcess*);

Please make this explicit.

&gt; WebKit2/WebProcess/WebCoreSupport/WebGeolocationClient.cpp:55
&gt; +{

Should this be implemented?

&gt; WebKit2/WebProcess/WebCoreSupport/WebGeolocationClient.cpp:64
&gt; +{

Should this be implemented?

&gt; WebKit2/WebProcess/WebCoreSupport/WebGeolocationClient.cpp:68
&gt; +{

Should this be implemented?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331739</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-01-10 11:20:58 -0800</bug_when>
    <thetext>Part 1 landed in http://trac.webkit.org/changeset/75395.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332079</commentid>
    <comment_count>11</comment_count>
      <attachid>78480</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-01-10 17:49:35 -0800</bug_when>
    <thetext>Created attachment 78480
Step 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332085</commentid>
    <comment_count>12</comment_count>
      <attachid>78480</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-01-10 17:54:52 -0800</bug_when>
    <thetext>Comment on attachment 78480
Step 2

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

&gt; WebKit2/UIProcess/GeolocationPermissionRequestManagerProxy.cpp:43
&gt; +    for (; it != end; ++it)

This should read

for (PendingRequestMap::const_iterator it = m_pendingRequests.begin(), end = m_pendingRequests.end(); it != end; ++it)

&gt; WebKit2/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:73
&gt; +    m_idToGeolocationMap.remove(it-&gt;second);

Is this allowed? I thought it would be invalidated by the first call to .remove</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332097</commentid>
    <comment_count>13</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-01-10 18:15:45 -0800</bug_when>
    <thetext>Step 2 landed in http://trac.webkit.org/changeset/75460.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332106</commentid>
    <comment_count>14</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-01-10 18:28:15 -0800</bug_when>
    <thetext>Attachment 78480 did not build on qt:
Build output: http://queues.webkit.org/results/7472042</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332113</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-10 18:46:07 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/75460 might have broken SnowLeopard Intel Release (Build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332139</commentid>
    <comment_count>16</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-01-10 20:43:30 -0800</bug_when>
    <thetext>Reopen, because it was rolled out: http://trac.webkit.org/changeset/75474</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332145</commentid>
    <comment_count>17</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-01-10 20:55:06 -0800</bug_when>
    <thetext>And the unreviewed build fix was rolled out too: http://trac.webkit.org/changeset/75475</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332176</commentid>
    <comment_count>18</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-01-11 00:27:49 -0800</bug_when>
    <thetext>#webkit:
&lt;weinig&gt; It is not clear why the geolocation patch I landed today was rolled out
&lt;weinig&gt; The bug doesn&apos;t mention what broke
&lt;weinig&gt; and the buildbot seems to indicate that the issue was with drawing area related code, though I may be missing where there was geolocation related code

Qt EWS mentioned what the problem is in Comment #14</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332204</commentid>
    <comment_count>19</comment_count>
      <attachid>78480</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-01-11 02:40:22 -0800</bug_when>
    <thetext>Comment on attachment 78480
Step 2

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

&gt; WebKit2/WebProcess/Geolocation/WebGeolocationManager.h:42
&gt; +namespace WebCore {
&gt; +class Geolocation;
&gt; +}

These lines caused the build fail. If you remove them, and 
add #include &lt;WebCore/Geolocation.h&gt; , Qt build will happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332385</commentid>
    <comment_count>20</comment_count>
      <attachid>78480</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-01-11 09:08:48 -0800</bug_when>
    <thetext>Comment on attachment 78480
Step 2

remove r+ from rolled out patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332415</commentid>
    <comment_count>21</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-01-11 09:56:48 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; #webkit:
&gt; &lt;weinig&gt; It is not clear why the geolocation patch I landed today was rolled out
&gt; &lt;weinig&gt; The bug doesn&apos;t mention what broke
&gt; &lt;weinig&gt; and the buildbot seems to indicate that the issue was with drawing area related code, though I may be missing where there was geolocation related code
&gt; 
&gt; Qt EWS mentioned what the problem is in Comment #14

Thanks, I couldn&apos;t find that on the buildbot output for some reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332416</commentid>
    <comment_count>22</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-01-11 09:57:09 -0800</bug_when>
    <thetext>Rolled back in, with a slightly different fix in http://trac.webkit.org/changeset/75508.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78263</attachid>
            <date>2011-01-07 13:19:41 -0800</date>
            <delta_ts>2011-01-07 15:00:59 -0800</delta_ts>
            <desc>Patch WIP (Do not review)</desc>
            <filename>patchForBZ.diff</filename>
            <type>text/plain</type>
            <size>91598</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NTI2NikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTA0IEBACisyMDExLTAxLTA3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBH
ZW9sb2NhdGlvbiBmZWF0dXJlcyB3b3JrIGluIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMDc4CisKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnBybzoKKyAgICAgICAgKiBQbGF0
Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBD
L01lc3NhZ2VJRC5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAg
KiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9z
aXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlv
bjo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0
aW9uUG9zaXRpb246On5XZWJHZW9sb2NhdGlvblBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRp
b25Qb3NpdGlvbjo6dGltZXN0YW1wKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Q
b3NpdGlvbjo6bGF0aXR1ZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0
aW9uOjpsb25naXR1ZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9u
OjphY2N1cmFjeSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmRh
dGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjp0eXBlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRHZXRHZW9sb2NhdGlvbk1h
bmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdLR2VvbG9jYXRpb25NYW5hZ2VyR2V0VHlwZUlEKToKKyAgICAgICAgKFdLR2VvbG9jYXRp
b25NYW5hZ2VyU2V0UHJvdmlkZXIpOgorICAgICAgICAoV0tHZW9sb2NhdGlvbk1hbmFnZXJQcm92
aWRlckRpZENoYW5nZVBvc2l0aW9uKToKKyAgICAgICAgKFdLR2VvbG9jYXRpb25NYW5hZ2VyUHJv
dmlkZXJEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLR2VvbG9jYXRpb25NYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLR2VvbG9j
YXRpb25Qb3NpdGlvbkdldFR5cGVJRCk6CisgICAgICAgIChXS0dlb2xvY2F0aW9uUG9zaXRpb25D
cmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24u
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dlYktpdDIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6
OldlYkNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnByb2Nlc3NEaWRDbG9zZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpnZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eTo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6fldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OmludmFsaWRhdGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6aW5pdGlhbGl6
ZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6
OnByb3ZpZGVyRGlkQ2hhbmdlUG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVz
c2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpzdGFy
dFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6
OnN0b3BVcGRhdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQ
cm94eTo6Y2xlYXJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHk6OnR5cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRp
b25Qcm92aWRlcjo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0
aW9uUHJvdmlkZXI6OnN0b3BVcGRhdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOgorICAgICAgICAqIFdlYktpdDIucHJvOgorICAgICAgICAqIFdlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFu
YWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6
OldlYkdlb2xvY2F0aW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6fldlYkdlb2xvY2F0aW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkdl
b2xvY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnJlZ2lzdGVyV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdlb2xvY2F0aW9uTWFuYWdlcjo6dW5yZWdpc3RlcldlYlBhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViR2VvbG9jYXRpb25DbGllbnQ6Omdlb2xvY2F0aW9uRGVzdHJveWVkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAg
KFdlYktpdDo6V2ViR2VvbG9jYXRpb25DbGllbnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbkNsaWVudDo6Y2FuY2VsUGVybWlzc2lvblJl
cXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRp
b25DbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uQ2xpZW50
OjpXZWJHZW9sb2NhdGlvbkNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjpXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpnZW9sb2NhdGlvbk1hbmFnZXIpOgorICAgICAgICAqIHdpbi9XZWJL
aXQyLnZjcHJvajoKKwogMjAxMS0wMS0wNiAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvbiBIb25leWN1dHQuCkluZGV4OiBXZWJLaXQy
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9EZXJpdmVkU291cmNl
cy5tYWtlCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQko
d29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIp
L1BsdWdpblByb2Nlc3MgXAogICAgICQoV2ViS2l0MikvU2hhcmVkL1BsdWdpbnMgXAogICAgICQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCisgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL0dlb2xvY2F0aW9uIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IFwKICAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvV2ViUGFnZSBcCkBAIC00NCw2ICs0NSw4IEBAIE1FU1NBR0VfUkVDRUlW
RVJTID0gXAogICAgIFdlYkNvbnRleHQgXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlciBcCiAgICAg
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkgXAorICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciBcCisg
ICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgXAogICAgIFdlYkluc3BlY3RvciBcCiAgICAg
V2ViSW5zcGVjdG9yUHJveHkgXAogICAgIFdlYlBhZ2UgXApJbmRleDogV2ViS2l0Mi9EZXJpdmVk
U291cmNlcy5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8JKHJl
dmlzaW9uIDc1MjY0KQorKysgV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8JKHdvcmtpbmcgY29w
eSkKQEAgLTc2LDYgKzc2LDcgQEAgZGVmaW5lUmVwbGFjZShtZXNzYWdlX3JlY2VpdmVyX2dlbmVy
YXRvcgogVlBBVEggPSBcCiAgICAgUGx1Z2luUHJvY2VzcyBcCiAgICAgV2ViUHJvY2Vzcy9BdXRo
ZW50aWNhdGlvbiBcCisgICAgV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAgICAgV2ViUHJvY2Vz
cy9QbHVnaW5zIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IFwKICAgICBXZWJQcm9j
ZXNzL1dlYlBhZ2UgXApAQCAtOTQsNiArOTUsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAg
ICBXZWJDb250ZXh0Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJEYXRhYmFzZU1hbmFnZXIubWVzc2Fn
ZXMuaW4gXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKKyAgICBX
ZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gXAorICAgIFdlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5p
biBcCiAgICAgV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4gXAogICAgIFdlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbiBcCkluZGV4OiBXZWJLaXQyL1dlYktpdDIucHJvCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdDIvV2ViS2l0Mi5wcm8JKHJldmlzaW9uIDc1MjY0KQorKysgV2ViS2l0Mi9X
ZWJLaXQyLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTQ1LDYgKzE0NSw3IEBAIElOQ0xVREVQQVRI
ID0gXAogICAgIFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24gXAogICAgIFdlYlByb2Nlc3MvRG93
bmxvYWRzIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9xdCBcCisgICAgV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbiBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZSBcCiAgICAgV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00gXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MgXApAQCAtMTc1LDYgKzE3Niw4IEBAIFdFQktJVDJfR0VORVJBVEVEX0hFQURFUlMgPSBc
CiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb250ZXh0TWVzc2FnZXMu
aCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFn
ZXJNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkRh
dGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUi9XZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIFwKKyAgICAkJFdFQktJ
VDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJJbnNwZWN0b3JN
ZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkluc3Bl
Y3RvclByb3h5TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJ
Ui9XZWJQYWdlTWVzc2FnZXMuaCBcCkBAIC0xOTMsNiArMTk2LDggQEAgV0VCS0lUMl9HRU5FUkFU
RURfU09VUkNFUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkNv
bnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VC
S0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkdl
b2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQkV0VCS0lUMl9HRU5F
UkFURURfU09VUkNFU19ESVIvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkluc3BlY3Rv
ck1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19E
SVIvV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJf
R0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlBhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTI2
Niw2ICsyNzEsNyBAQCBIRUFERVJTICs9IFwKICAgICBTaGFyZWQvV2ViRXZlbnQuaCBcCiAgICAg
U2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5oIFwKICAgICBTaGFyZWQvV2ViRmluZE9wdGlvbnMu
aCBcCisgICAgU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCBcCiAgICAgU2hhcmVkL1dl
YkltYWdlLmggXAogICAgIFNoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmggXAogICAgIFNo
YXJlZC9XZWJOdW1iZXIuaCBcCkBAIC0yOTYsNiArMzAyLDggQEAgSEVBREVSUyArPSBcCiAgICAg
VUlQcm9jZXNzL0FQSS9DL1dLRG93bmxvYWQuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLRnJh
bWUuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5oIFwKKyAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaCBcCisgICAgVUlQcm9jZXNz
L0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tJ
bnNwZWN0b3IuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5o
IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIFwKQEAg
LTM1Myw2ICszNjEsOCBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViRnJhbWVMaXN0
ZW5lclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHku
aCBcCiAgICAgVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaCBcCisgICAgVUlQcm9jZXNzL1dlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5LmggXAorICAgIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblBy
b3ZpZGVyLmggXAogICAgIFVJUHJvY2Vzcy9XZWJIaXN0b3J5Q2xpZW50LmggXAogICAgIFVJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50
LmggXApAQCAtMzcyLDYgKzM4Miw3IEBAIEhFQURFUlMgKz0gXAogICAgIFdlYlByb2Nlc3MvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkLmggXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFu
YWdlci5oIFwKKyAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdl
ci5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0Zv
cndhcmRMaXN0LmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVCYWNrRm9yd2FyZExpc3RJdGVtLmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmggXApAQCAtNDA4LDYgKzQxOSw3IEBAIEhFQURF
UlMgKz0gXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmgg
XAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRXJyb3JzLmggXAogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBcCisgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oIFwKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmggXAogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggXApAQCAtNDc2LDYg
KzQ4OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFNoYXJlZC9XZWJFcnJvci5jcHAgXAogICAgIFNo
YXJlZC9XZWJFdmVudC5jcHAgXAogICAgIFNoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIFwK
KyAgICBTaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgXAogICAgIFNoYXJlZC9XZWJL
ZXlib2FyZEV2ZW50LmNwcCBcCiAgICAgU2hhcmVkL1dlYkltYWdlLmNwcCBcCiAgICAgU2hhcmVk
L1dlYk1vdXNlRXZlbnQuY3BwIFwKQEAgLTUwOCw2ICs1MjEsOCBAQCBTT1VSQ0VTICs9IFwKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tEb3dubG9hZC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S0ZyYW1lLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5j
cHAgXAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAgXAorICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwIFwKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tJbnNwZWN0b3IuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFu
ZWxQYXJhbWV0ZXJzLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXIuY3BwIFwKQEAgLTU1NSw2ICs1NzAsOCBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVBy
b2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkZyYW1l
UG9saWN5TGlzdGVuZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNw
cCBcCisgICAgVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcCBcCisgICAg
VUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvV2Vi
SGlzdG9yeUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAg
XAogICAgIFVJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwIFwKQEAgLTU4Miw2ICs1OTksNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcCBc
CiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcCBcCisgICAgV2Vi
UHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIFwKICAgICBXZWJQ
cm9jZXNzL0Rvd25sb2Fkcy9xdC9Eb3dubG9hZFF0LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwIFwKQEAgLTYyNCw2ICs2NDIs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdD
bGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwIFwKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGll
bnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckZyb250
ZW5kQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwIFwKSW5kZXg6IFdlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVN
ZXNzYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1l
c3NhZ2UuaAkocmV2aXNpb24gNzUyNjQpCisrKyBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvSGFu
ZGxlTWVzc2FnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsOCBAQAogI2lmbmRlZiBIYW5k
bGVNZXNzYWdlX2gKICNkZWZpbmUgSGFuZGxlTWVzc2FnZV9oCiAKKyNpbmNsdWRlICJBcmd1bWVu
dHMuaCIKKwogbmFtZXNwYWNlIENvcmVJUEMgewogCiAvLyBEaXNwYXRjaCBmdW5jdGlvbnMgd2l0
aCBubyByZXBseSBhcmd1bWVudHMuCkluZGV4OiBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVz
c2FnZUlELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJ
RC5oCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdl
SUQuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMTYgKzM5LDE4IEBAIGVudW0gTWVzc2FnZUNsYXNz
IHsKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYUxlZ2FjeSwKICAgICBNZXNzYWdlQ2xhc3NJ
bmplY3RlZEJ1bmRsZSwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXIsCisgICAg
TWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNz
V2ViSW5zcGVjdG9yLAogICAgIE1lc3NhZ2VDbGFzc1dlYlBhZ2UsCiAgICAgTWVzc2FnZUNsYXNz
V2ViUHJvY2VzcywKIAogICAgIC8vIE1lc3NhZ2VzIHNlbnQgYnkgdGhlIHdlYiBwcm9jZXNzIHRv
IHRoZSBVSSBwcm9jZXNzLgotICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhUHJveHlMZWdhY3ks
CiAgICAgTWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eSwKKyAgICBNZXNzYWdlQ2xhc3NEcmF3aW5n
QXJlYVByb3h5TGVnYWN5LAogICAgIE1lc3NhZ2VDbGFzc1dlYkNvbnRleHQsCiAgICAgTWVzc2Fn
ZUNsYXNzV2ViQ29udGV4dExlZ2FjeSwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFn
ZXJQcm94eSwKKyAgICBNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXIsCiAgICAgTWVz
c2FnZUNsYXNzV2ViSW5zcGVjdG9yUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViUGFnZVByb3h5
LAogICAgIE1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eSwKSW5kZXg6IFdlYktpdDIvU2hhcmVk
L0FQSU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCShy
ZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC02OCw2ICs2OCw4IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZUZvcm1TdWJtaXNzaW9u
TGlzdGVuZXIsCiAgICAgICAgIFR5cGVGcmFtZSwKICAgICAgICAgVHlwZUZyYW1lUG9saWN5TGlz
dGVuZXIsCisgICAgICAgIFR5cGVHZW9sb2NhdGlvblBvc2l0aW9uLAorICAgICAgICBUeXBlR2Vv
bG9jYXRpb25NYW5hZ2VyLAogICAgICAgICBUeXBlSW5zcGVjdG9yLAogICAgICAgICBUeXBlTmF2
aWdhdGlvbkRhdGEsCiAgICAgICAgIFR5cGVPcGVuUGFuZWxQYXJhbWV0ZXJzLApJbmRleDogV2Vi
S2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAJKHJldmlzaW9uIDApCisrKyBX
ZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblBvc2l0
aW9uLmgiCisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIkFyZ3VtZW50
cy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6V2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRv
dWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKK3sKKyAgICBtX2RhdGEudGltZXN0YW1w
ID0gdGltZXN0YW1wOworICAgIG1fZGF0YS5sYXRpdHVkZSA9IGxhdGl0dWRlOworICAgIG1fZGF0
YS5sb25naXR1ZGUgPSBsb25naXR1ZGU7CisgICAgbV9kYXRhLmFjY3VyYWN5ID0gYWNjdXJhY3k7
Cit9CisKK1dlYkdlb2xvY2F0aW9uUG9zaXRpb246On5XZWJHZW9sb2NhdGlvblBvc2l0aW9uKCkK
K3sKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXItPmVuY29k
ZShDb3JlSVBDOjpJbih0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7
Cit9CisKK2Jvb2wgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGF0YSYgZGF0YSkKK3sKKyAgICByZXR1cm4gZGVj
b2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChkYXRhLnRpbWVzdGFtcCwgZGF0YS5sYXRpdHVkZSwg
ZGF0YS5sb25naXR1ZGUsIGRhdGEuYWNjdXJhY3kpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBXZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCShyZXZpc2lv
biAwKQorKysgV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJHZW9sb2NhdGlv
blBvc2l0aW9uX2gKKyNkZWZpbmUgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbl9oCisKKyNpbmNsdWRl
ICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJB
cmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiA6IHB1YmxpYyBBUElP
YmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlR2Vv
bG9jYXRpb25Qb3NpdGlvbjsKKworICAgIHN0cnVjdCBEYXRhIHsKKyAgICAgICAgdm9pZCBlbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgICAgIHN0YXRpYyBib29s
IGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBEYXRhJik7CisKKyAgICAgICAgZG91
YmxlIHRpbWVzdGFtcDsKKyAgICAgICAgZG91YmxlIGxhdGl0dWRlOworICAgICAgICBkb3VibGUg
bG9uZ2l0dWRlOworICAgICAgICBkb3VibGUgYWNjdXJhY3k7CisgICAgfTsKKworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IGNyZWF0ZShkb3VibGUgdGltZXN0
YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bih0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7CisgICAgfQorCisg
ICAgdmlydHVhbCB+V2ViR2VvbG9jYXRpb25Qb3NpdGlvbigpOworCisgICAgZG91YmxlIHRpbWVz
dGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS50aW1lc3RhbXA7IH0KKyAgICBkb3VibGUgbGF0
aXR1ZGUoKSBjb25zdCB7IHJldHVybiBtX2RhdGEubGF0aXR1ZGU7IH0KKyAgICBkb3VibGUgbG9u
Z2l0dWRlKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmxvbmdpdHVkZTsgfQorICAgIGRvdWJsZSBh
Y2N1cmFjeSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5hY2N1cmFjeTsgfQorCisgICAgY29uc3Qg
RGF0YSYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQorCitwcml2YXRlOgorICAgIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBk
b3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOworCisgICAgdmlydHVhbCBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisKKyAgICBEYXRhIG1fZGF0YTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bl9oCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAkocmV2aXNpb24gNzUyNjQpCisrKyBXZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIsOCBAQCB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0Rvd25sb2FkKiBXCiB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIqIFdLRm9ybVN1Ym1pc3Npb25MaXN0
ZW5lclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLRnJhbWUqIFdLRnJhbWVSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0ZyYW1lUG9saWN5TGlzdGVuZXIqIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lclJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLR2VvbG9j
YXRpb25NYW5hZ2VyKiBXS0dlb2xvY2F0aW9uTWFuYWdlclJlZjsKK3R5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLR2VvbG9jYXRpb25Qb3NpdGlvbiogV0tHZW9sb2NhdGlvblBvc2l0aW9uUmVm
OwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tJbnNwZWN0b3IqIFdLSW5zcGVjdG9yUmVm
OwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOYXZpZ2F0aW9uRGF0YSogV0tOYXZpZ2F0
aW9uRGF0YVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3BlblBhbmVsUGFyYW1l
dGVycyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmOwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5jcHAJKHJldmlzaW9uIDc1MjY0KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0
VXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
ICNpbmNsdWRlICJXZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NN
YW5hZ2VyLmgiCkBAIC04Nyw2ICs4OCw3IEBAIFdlYkNvbnRleHQ6OldlYkNvbnRleHQoUHJvY2Vz
c01vZGVsIHByb2MKICAgICAsIG1fY2xlYXJSZXNvdXJjZUNhY2hlc0Zvck5ld1dlYlByb2Nlc3Mo
ZmFsc2UpCiAgICAgLCBtX2NsZWFyQXBwbGljYXRpb25DYWNoZUZvck5ld1dlYlByb2Nlc3MoZmFs
c2UpCiAgICAgLCBtX2RhdGFiYXNlTWFuYWdlclByb3h5KFdlYkRhdGFiYXNlTWFuYWdlclByb3h5
OjpjcmVhdGUodGhpcykpCisgICAgLCBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5KFdlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCiAjaWYgUExBVEZPUk0oV0lOKQogICAg
ICwgbV9zaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKHRydWUpCiAjZW5kaWYKQEAgLTEwNCw2ICsx
MDYsOSBAQCBXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCgpCiAKICAgICBXZWJQcm9jZXNzTWFuYWdl
cjo6c2hhcmVkKCkuY29udGV4dFdhc0Rlc3Ryb3llZCh0aGlzKTsKIAorICAgIG1fZ2VvbG9jYXRp
b25NYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKKyAgICBtX2dlb2xvY2F0aW9uTWFuYWdlclBy
b3h5LT5jbGVhckNvbnRleHQoKTsKKwogI2lmbmRlZiBOREVCVUcKICAgICB3ZWJDb250ZXh0Q291
bnRlci5kZWNyZW1lbnQoKTsKICNlbmRpZgpAQCAtMjE2LDYgKzIyMSw3IEBAIHZvaWQgV2ViQ29u
dGV4dDo6cHJvY2Vzc0RpZENsb3NlKFdlYlByb2MKICAgICBtX2Rvd25sb2Fkcy5jbGVhcigpOwog
CiAgICAgbV9kYXRhYmFzZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOworICAgIG1fZ2VvbG9j
YXRpb25NYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKIAogICAgIG1fcHJvY2VzcyA9IDA7CiB9
CkBAIC00NTUsNiArNDYxLDExIEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+KCkpIHsKKyAgICAg
ICAgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
c3dpdGNoIChtZXNzYWdlSUQuZ2V0PFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlOjpLaW5kPigpKSB7
CiAgICAgICAgIGNhc2UgV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OlBvc3RNZXNzYWdlOiB7CiAg
ICAgICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWU7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5o
CShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkod29y
a2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
RG93bmxvYWRQcm94eTsKIGNsYXNzIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OworY2xhc3MgV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQ
YWdlUHJveHk7CiBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKQEAgLTEyMyw2
ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGlu
Z0hhc2g+IHBkZkFuZFBvc3RTY3JpcHRNSU1FVHlwZXMoKTsKIAogICAgIFdlYkRhdGFiYXNlTWFu
YWdlclByb3h5KiBkYXRhYmFzZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YWJh
c2VNYW5hZ2VyUHJveHkuZ2V0KCk7IH0KKyAgICBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSog
Z2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2dlb2xvY2F0aW9uTWFu
YWdlclByb3h5LmdldCgpOyB9CiAKICAgICBzdHJ1Y3QgU3RhdGlzdGljcyB7CiAgICAgICAgIHVu
c2lnbmVkIHdrVmlld0NvdW50OwpAQCAtMTkwLDYgKzE5Miw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2NsZWFyQXBwbGljYXRpb25DYWNoZUZvck5ld1dlYlByb2Nlc3M7CiAKICAgICBSZWZQdHI8
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+IG1fZGF0YWJhc2VNYW5hZ2VyUHJveHk7CisgICAgUmVm
UHRyPFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PiBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5
OwogCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIGJvb2wgbV9zaG91bGRQYWludE5hdGl2ZUNvbnRy
b2xzOwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVk
ZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2Vz
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5PiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYkNvbnRleHQq
IGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eShjb250ZXh0KSk7Cit9CisKK1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQorICAgIDogbV9pc1Vw
ZGF0aW5nKGZhbHNlKQorICAgICwgbV9jb250ZXh0KGNvbnRleHQpCit7Cit9CisKK1dlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5Ojp+V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKQoreworfQor
Cit2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBz
dG9wVXBkYXRpbmcoKTsKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6aW5p
dGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLR2VvbG9jYXRpb25Qcm92aWRlciogcHJvdmlkZXIpCit7
CisgICAgbV9wcm92aWRlci5pbml0aWFsaXplKHByb3ZpZGVyKTsKK30KKwordm9pZCBXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDaGFuZ2VQb3NpdGlvbihXZWJHZW9sb2Nh
dGlvblBvc2l0aW9uKiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIGNoZWNrIGZvciBhIHZhbGlkIHBy
b2Nlc3M/CisgICAgbV9jb250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkdlb2xv
Y2F0aW9uTWFuYWdlcjo6RGlkQ2hhbmdlUG9zaXRpb24ocG9zaXRpb24tPmRhdGEoKSksIDApOwor
fQorCit2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Ojpwcm92aWRlckRpZEZhaWxUb0Rl
dGVybWluZVBvc2l0aW9uKCkKK3sKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIGNoZWNrIGZvciBhIHZhbGlkIHByb2Nlc3M/
CisgICAgbV9jb250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6RGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oKSwgMCk7Cit9CisKK3ZvaWQgV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMp
OworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpzdGFydFVwZGF0aW5nKCkK
K3sKKyAgICBpZiAobV9pc1VwZGF0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3Zp
ZGVyLnN0YXJ0VXBkYXRpbmcodGhpcyk7CisgICAgbV9pc1VwZGF0aW5nID0gdHJ1ZTsKK30KKwor
dm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c3RvcFVwZGF0aW5nKCkKK3sKKyAgICBp
ZiAoIW1faXNVcGRhdGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm92aWRlci5zdG9w
VXBkYXRpbmcodGhpcyk7CisgICAgbV9pc1VwZGF0aW5nID0gZmFsc2U7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlfaAorI2RlZmluZSBX
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNp
bmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblByb3ZpZGVyLmgi
CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKyAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7CisgICAg
Y2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNv
bnRleHQ7CitjbGFzcyBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOworCitjbGFzcyBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRp
YyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlR2VvbG9jYXRpb25NYW5hZ2VyOworCisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250
ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKTsKKworICAg
IHZvaWQgaW52YWxpZGF0ZSgpOworICAgIHZvaWQgY2xlYXJDb250ZXh0KCkgeyBtX2NvbnRleHQg
PSAwOyB9CisKKyAgICB2b2lkIGluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS0dlb2xvY2F0aW9u
UHJvdmlkZXIqKTsKKworICAgIHZvaWQgcHJvdmlkZXJEaWRDaGFuZ2VQb3NpdGlvbihXZWJHZW9s
b2NhdGlvblBvc2l0aW9uKik7CisgICAgdm9pZCBwcm92aWRlckRpZEZhaWxUb0RldGVybWluZVBv
c2l0aW9uKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitw
cml2YXRlOgorICAgIGV4cGxpY2l0IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KFdlYkNvbnRl
eHQqKTsKKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsg
fQorCisgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworICAgIHZvaWQgc3RhcnRVcGRh
dGluZygpOworICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7CisKKyAgICBib29sIG1faXNVcGRhdGlu
ZzsKKworICAgIFdlYkNvbnRleHQqIG1fY29udGV4dDsKKyAgICBXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyIG1fcHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5X2gKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZp
c2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMg
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkgeworICAgIFN0YXJ0VXBkYXRpbmcoKTsKKyAgICBTdG9wVXBkYXRpbmcoKTsKK30K
SW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCShy
ZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
V2ViR2VvbG9jYXRpb25Qcm92aWRlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5j
bHVkZSAiV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25Qcm92aWRlcjo6c3RhcnRVcGRhdGluZyhXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eSogZ2VvbG9jYXRpb25NYW5hZ2VyKQoreworICAgIGlmICghbV9jbGll
bnQuc3RhcnRVcGRhdGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuc3RhcnRV
cGRhdGluZyh0b0FQSShnZW9sb2NhdGlvbk1hbmFnZXIpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsK
K30KKwordm9pZCBXZWJHZW9sb2NhdGlvblByb3ZpZGVyOjpzdG9wVXBkYXRpbmcoV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkqIGdlb2xvY2F0aW9uTWFuYWdlcikKK3sKKyAgICBpZiAoIW1fY2xp
ZW50LnN0b3BVcGRhdGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuc3RvcFVw
ZGF0aW5nKHRvQVBJKGdlb2xvY2F0aW9uTWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkdl
b2xvY2F0aW9uUHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJH
ZW9sb2NhdGlvblByb3ZpZGVyLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJHZW9sb2NhdGlvblByb3ZpZGVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJfaAorI2RlZmluZSBXZWJH
ZW9sb2NhdGlvblByb3ZpZGVyX2gKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUg
IldLR2VvbG9jYXRpb25NYW5hZ2VyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OworCitj
bGFzcyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxXS0dlb2xvY2F0
aW9uUHJvdmlkZXI+IHsKK3B1YmxpYzoKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkqKTsKKyAgICB2b2lkIHN0b3BVcGRhdGluZyhXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eSopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyX2gKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAkocmV2aXNpb24gNzUyNjQpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYsNyArMjI2LDggQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dD4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeT4oKQogICAgICAgICB8fCBtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eT4oKQotICAgICAgICB8
fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHk+KCkpIHsKKyAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dl
YkRhdGFiYXNlTWFuYWdlclByb3h5PigpCisgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4oKSkgewogICAgICAgICBt
X2NvbnRleHQtPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw4IEBAIGNsYXNzIFdlYkRhdGFi
YXNlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5Owog
Y2xhc3MgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViRnJhbWVQcm94eTsK
K2NsYXNzIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OworY2xhc3MgV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbjsKIGNsYXNzIFdlYkluc3BlY3RvclByb3h5OwogY2xhc3MgV2ViTmF2aWdhdGlvbkRh
dGE7CiBjbGFzcyBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOwpAQCAtNzEsNiArNzMsOCBAQCBXS19B
RERfQVBJX01BUFBJTkcoV0tEb3dubG9hZFJlZiwgRG93bmxvCiBXS19BRERfQVBJX01BUFBJTkco
V0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmLCBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJv
eHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmLCBXZWJGcmFt
ZVBvbGljeUxpc3RlbmVyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tGcmFtZVJlZiwgV2Vi
RnJhbWVQcm94eSkKK1dLX0FERF9BUElfTUFQUElORyhXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiwg
V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkpCitXS19BRERfQVBJX01BUFBJTkcoV0tHZW9sb2Nh
dGlvblBvc2l0aW9uUmVmLCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uKQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLTmF2aWdhdGlvbkRhdGFSZWYsIFdlYk5hdmlnYXRpb25EYXRhKQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiwgV2ViT3BlblBhbmVsUGFyYW1ldGVycykK
IFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmLCBXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuY3BwCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MSwzICsxNjEsOCBAQCBXS0RhdGFiYXNl
TWFuYWdlclJlZiBXS0NvbnRleHRHZXREYXRhYmFzCiB7CiAgICAgcmV0dXJuIHRvQVBJKHRvSW1w
bChjb250ZXh0UmVmKS0+ZGF0YWJhc2VNYW5hZ2VyUHJveHkoKSk7CiB9CisKK1dLR2VvbG9jYXRp
b25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldEdlb2xvY2F0aW9uTWFuYWdlcihXS0NvbnRleHRSZWYg
Y29udGV4dFJlZikKK3sKKyAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5nZW9s
b2NhdGlvbk1hbmFnZXJQcm94eSgpKTsKK30KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5oCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsNiArMTIxLDcgQEAgV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0Q2xlYXJSZXNvdXJjZUNhYwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q2xlYXJB
cHBsaWNhdGlvbkNhY2hlKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIAogV0tfRVhQT1JUIFdLRGF0
YWJhc2VNYW5hZ2VyUmVmIFdLQ29udGV4dEdldERhdGFiYXNlTWFuYWdlcihXS0NvbnRleHRSZWYg
Y29udGV4dCk7CitXS19FWFBPUlQgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0
R2VvbG9jYXRpb25NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIAogI2lmZGVmIF9fY3Bs
dXNwbHVzCiB9CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFu
YWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2Nh
dGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgIldLR2VvbG9jYXRpb25NYW5hZ2VyLmgiCisKKyNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oIgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0dlb2xvY2F0aW9uTWFuYWdl
ckdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5OjpBUElUeXBlKTsKK30KKwordm9pZCBXS0dlb2xvY2F0aW9uTWFuYWdlclNldFByb3ZpZGVy
KFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlclJlZiwgY29uc3QgV0tH
ZW9sb2NhdGlvblByb3ZpZGVyKiB3a1Byb3ZpZGVyKQoreworICAgIGlmICh3a1Byb3ZpZGVyICYm
IHdrUHJvdmlkZXItPnZlcnNpb24pCisgICAgICAgIHJldHVybjsKKyAgICB0b0ltcGwoZ2VvbG9j
YXRpb25NYW5hZ2VyUmVmKS0+aW5pdGlhbGl6ZVByb3ZpZGVyKHdrUHJvdmlkZXIpOworfQorCit2
b2lkIFdLR2VvbG9jYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRDaGFuZ2VQb3NpdGlvbihXS0dlb2xv
Y2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXJSZWYsIFdLR2VvbG9jYXRpb25Qb3Np
dGlvblJlZiBwb3NpdGlvblJlZikKK3sKKyAgICB0b0ltcGwoZ2VvbG9jYXRpb25NYW5hZ2VyUmVm
KS0+cHJvdmlkZXJEaWRDaGFuZ2VQb3NpdGlvbih0b0ltcGwocG9zaXRpb25SZWYpKTsKK30KKwor
dm9pZCBXS0dlb2xvY2F0aW9uTWFuYWdlclByb3ZpZGVyRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRp
b24oV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyUmVmKQoreworICAg
IHRvSW1wbChnZW9sb2NhdGlvbk1hbmFnZXJSZWYpLT5wcm92aWRlckRpZEZhaWxUb0RldGVybWlu
ZVBvc2l0aW9uKCk7Cit9CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0
aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2Vv
bG9jYXRpb25NYW5hZ2VyLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0dlb2xvY2F0aW9uTWFuYWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXS0dlb2xvY2F0aW9uTWFuYWdlcl9oCisjZGVmaW5lIFdLR2Vv
bG9jYXRpb25NYW5hZ2VyX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLy8gUHJvdmlkZXIuCit0eXBl
ZGVmIHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2spKFdL
R2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdG9wVXBkYXRp
bmdDYWxsYmFjaykoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKworc3RydWN0IFdLR2VvbG9jYXRpb25Qcm92aWRlciB7
CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKKyAg
ICBXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXJ0VXBkYXRpbmc7CisgICAgV0tHZW9sb2NhdGlvblByb3ZpZGVyU3Rv
cFVwZGF0aW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wVXBkYXRpbmc7
Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tHZW9sb2NhdGlvblByb3ZpZGVyIFdLR2VvbG9jYXRpb25Q
cm92aWRlcjsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLR2VvbG9jYXRpb25NYW5hZ2VyR2V0VHlw
ZUlEKCk7CisKK1dLX0VYUE9SVCB2b2lkIFdLR2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIo
V0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBjb25zdCBXS0dlb2xv
Y2F0aW9uUHJvdmlkZXIqIHByb3ZpZGVyKTsKKworV0tfRVhQT1JUIHZvaWQgV0tHZW9sb2NhdGlv
bk1hbmFnZXJQcm92aWRlckRpZENoYW5nZVBvc2l0aW9uKFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVm
IGdlb2xvY2F0aW9uTWFuYWdlciwgV0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmIHBvc2l0aW9uKTsK
K1dLX0VYUE9SVCB2b2lkIFdLR2VvbG9jYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRGYWlsVG9EZXRl
cm1pbmVQb3NpdGlvbihXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXIp
OworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tHZW9sb2Nh
dGlvbk1hbmFnZXJfaCAqLwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2Nh
dGlvblBvc2l0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXS0dlb2xvY2F0aW9uUG9zaXRpb24uaCIK
KworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUG9zaXRp
b24uaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tHZW9sb2NhdGlv
blBvc2l0aW9uR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbjo6QVBJVHlwZSk7Cit9CisKK1dLR2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dlb2xv
Y2F0aW9uUG9zaXRpb25DcmVhdGUoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBk
b3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCit7CisgICAgUmVmUHRyPFdlYkdlb2xv
Y2F0aW9uUG9zaXRpb24+IHBvc2l0aW9uID0gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRl
KHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpOworICAgIHJldHVybiB0
b0FQSShwb3NpdGlvbi5yZWxlYXNlKCkucmVsZWFzZVJlZigpKTsKK30KSW5kZXg6IFdlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oCShyZXZpc2lvbiAw
KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLR2VvbG9j
YXRpb25Qb3NpdGlvbl9oCisjZGVmaW5lIFdLR2VvbG9jYXRpb25Qb3NpdGlvbl9oCisKKyNpbmNs
dWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIg
eworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS0dlb2xvY2F0aW9uUG9zaXRpb25HZXRU
eXBlSUQoKTsKKworV0tfRVhQT1JUIFdLR2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dlb2xvY2F0
aW9uUG9zaXRpb25DcmVhdGUoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3Vi
bGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30K
KyNlbmRpZgorCisjZW5kaWYgLyogV0tHZW9sb2NhdGlvblBvc2l0aW9uX2ggKi8KSW5kZXg6IFdl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmgJKHJldmlzaW9uIDc1MjY0KQorKysgV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV2ViS2l0Mi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw4IEBACiAj
aW5jbHVkZSA8V2ViS2l0Mi9XS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuaD4KICNpbmNsdWRlIDxX
ZWJLaXQyL1dLRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRnJhbWVQb2xpY3lMaXN0ZW5l
ci5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaD4KKyNpbmNsdWRl
IDxXZWJLaXQyL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tN
dXRhYmxlQXJyYXkuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLTXV0YWJsZURpY3Rpb25hcnkuaD4K
ICNpbmNsdWRlIDxXZWJLaXQyL1dLTmF2aWdhdGlvbkRhdGEuaD4KSW5kZXg6IFdlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0z
MDgsNiArMzA4LDE2IEBACiAJCUJDMDMyREQxMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQYWdlUHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDMy
RENCMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQYWdlUHJveHkuaCAqLzsgfTsKIAkJQkMwMzJERDMx
MEY0Mzg5RjAwNThDMTVBIC8qIFdlYlByb2Nlc3NNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkRDRDEwRjQzODlGMDA1OEMxNUEgLyog
V2ViUHJvY2Vzc01hbmFnZXIuaCAqLzsgfTsKIAkJQkMwMzJERDUxMEY0Mzg5RjAwNThDMTVBIC8q
IFdlYlByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMwMzJEQ0YxMEY0Mzg5RjAwNThDMTVBIC8qIFdlYlByb2Nlc3NQcm94eS5oICov
OyB9OworCQlCQzBFNUZFNTEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBFNUZF
MzEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmggKi87IH07CisJCUJD
MEU1RkU2MTJENjk3MTYwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwRTVGRTQxMkQ2OTcx
NjAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAgKi87IH07CisJCUJDMEU2MDYx
MTJENkJBOTEwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwRTYw
NUYxMkQ2QkE5MTAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CisJCUJDMEU2MDYyMTJENkJBOTEwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlv
bk1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMwRTYwNjAxMkQ2QkE5MTAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdl
ck1lc3NhZ2VzLmggKi87IH07CisJCUJDMEU2MDczMTJENkJDMjAwMDEyQTcyQSAvKiBXZWJHZW9s
b2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzBFNjA3MTEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bi5oICovOyB9OworCQlCQzBFNjA3NDEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzBFNjA3MjEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAg
Ki87IH07CisJCUJDMEU2MTgyMTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzBFNjE4MDEyRDZDQjFEMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlCQzBFNjE4MzEyRDZD
QjFEMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwRTYxODExMkQ2Q0Ix
RDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsgfTsK
KwkJQkMwRTYxOTgxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwRTYxOTYxMkQ2
Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQkMwRTYxOTkxMkQ2Q0QxMjAwMTJBNzJB
IC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBFNjE5NzEyRDZDRDEyMDAxMkE3MkEgLyogV0tHZW9sb2Nh
dGlvblBvc2l0aW9uLmNwcCAqLzsgfTsKIAkJQkMxMTFBNUExMTJGNEZCQjAwMzM3QkFCIC8qIFdl
YkNocm9tZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzExMUE1MzExMkY0RkJCMDAzMzdCQUIgLyogV2ViQ2hyb21lQ2xpZW50LmNwcCAq
LzsgfTsKIAkJQkMxMTFBNUIxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTEx
QTU0MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5jcHAgKi87IH07CiAJ
CUJDMTExQTVEMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJEcmFnQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQTU2MTEyRjRGQkIwMDMz
N0JBQiAvKiBXZWJEcmFnQ2xpZW50LmNwcCAqLzsgfTsKQEAgLTMzOCw2ICszNDgsMTAgQEAKIAkJ
QkMxNzc1M0YxMThCQUJGMDAwN0Q5RTlBIC8qIEdlbmVyaWNDYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxNzc1M0UxMThCQUJGMDAwN0Q5
RTlBIC8qIEdlbmVyaWNDYWxsYmFjay5oICovOyB9OwogCQlCQzFBN0M1ODExMzZFMTlDMDBGQjcx
NjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzFBN0M1NzExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVy
LmggKi87IH07CiAJCUJDMUI0MTk4MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFC
NDE5NzExRDQxRDU3MDAxMUU4REQgLyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDMUJFMUUwMTJENTRBNDEw
MDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdl
b2xvY2F0aW9uQ2xpZW50LmggKi87IH07CisJCUJDMUJFMUUxMTJENTRBNDEwMDA0QTIyOCAvKiBX
ZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzFCRTFERjEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25D
bGllbnQuY3BwICovOyB9OworCQlCQzFCRTFGMjEyRDU0REJEMDAwNEEyMjggLyogV2ViR2VvbG9j
YXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMxQkUxRjAxMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIu
aCAqLzsgfTsKKwkJQkMxQkUxRjMxMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJv
dmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkMxQkUxRjExMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwICov
OyB9OwogCQlCQzFERDdCMjExNERDMzk2MDA1QURBRjMgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFERDdC
MTExNERDMzk2MDA1QURBRjMgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggKi87IH07CiAJCUJD
MURGRThGMTJCMzFDQTgwMDVERjczMCAvKiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFERkU4RDEyQjMx
Q0E4MDA1REY3MzAgLyogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJQkMxREZFQTQxMkIzMUY4NzAwNURG
NzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMURGRUEyMTJCMzFGODcwMDVERjczMCAv
KiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggKi87IH07CkBAIC00MTksNiArNDMz
LDEwIEBACiAJCUJDNEJFRUFDMTIwQTBBNUYwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM0QkVFQUExMjBBMEE1RjAwRkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAg
Ki87IH07CiAJCUJDNEJFRkUxMTIwQTFBNEMwMEZCQTBDNyAvKiBXS0J1bmRsZU5vZGVIYW5kbGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEJFRkRG
MTIwQTFBNEMwMEZCQTBDNyAvKiBXS0J1bmRsZU5vZGVIYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCUJDNEJFRkUyMTIwQTFBNEMwMEZCQTBD
NyAvKiBXS0J1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM0QkVGRTAxMjBBMUE0QzAwRkJBMEM3IC8qIFdLQnVuZGxlTm9k
ZUhhbmRsZS5jcHAgKi87IH07CisJCUJDNTRDQUNCMTJENjQyOTEwMDVDNjdCMCAvKiBXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM1NENBQzkxMkQ2NDI5MTAwNUM2N0IwIC8qIFdlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5LmggKi87IH07CisJCUJDNTRDQUNDMTJENjQyOTEwMDVDNjdCMCAvKiBXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzU0Q0FDQTEyRDY0MjkxMDA1QzY3QjAgLyogV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHkuY3BwICovOyB9OworCQlCQzU0Q0MxMjEyRDY3NEVFMDA1QzY3QjAgLyogV0tH
ZW9sb2NhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNTRDQzEwMTJENjc0RUUwMDVDNjdCMCAvKiBXS0dlb2xvY2F0aW9uTWFuYWdl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQkM1
NENDMTMxMkQ2NzRFRTAwNUM2N0IwIC8qIFdLR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTRDQzExMTJENjc0RUUw
MDVDNjdCMCAvKiBXS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAgKi87IH07CiAJCUJDNTc0NEVGMTI2
MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1cEl0ZW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1NzQ0RUQxMjYzOEZCMzAwNkYwRjEyIC8qIFdlYlBv
cHVwSXRlbS5jcHAgKi87IH07CiAJCUJDNTc0NEYwMTI2MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1
cEl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NTc0NEVFMTI2MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1cEl0ZW0uaCAqLzsgfTsKIAkJQkM1NzQ1
MEMxMjYzQjE1NTAwNkYwRjEyIC8qIFdLQnVuZGxlTm9kZUhhbmRsZVByaXZhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTc0NTBCMTI2M0IxNTUw
MDZGMEYxMiAvKiBXS0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk5NSw2ICsxMDEzLDE4IEBACiAJCUJD
MDMyRENCMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQYWdlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMDMyRENEMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQcm9jZXNzTWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQcm9jZXNzTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAzMkRDRjEwRjQzODlGMDA1OEMxNUEgLyogV2Vi
UHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlByb2Nl
c3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzBFNUZFMzEyRDY5NzE2
MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCQzBFNUZFNDEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5h
Z2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdlb2xvY2F0
aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMEU2MDQ4MTJE
NkI2MzcwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzBFNjA1RjEyRDZCQTkxMDAxMkE3MkEgLyogV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMEU2MDYwMTJENkJBOTEwMDEyQTcy
QSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCQzBFNjA3MTEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHZW9s
b2NhdGlvblBvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMEU2MDcy
MTJENkJDMjAwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzBFNjE1MjEyRDZDQUM4MDAxMkE3MkEgLyog
V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDMEU2MTgwMTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMEU2MTgxMTJENkNCMUQwMDEy
QTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMwRTYxOTYxMkQ2Q0QxMjAwMTJBNzJB
IC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS0dlb2xvY2F0aW9uUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQkMwRTYxOTcxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0dlb2xvY2F0aW9uUG9zaXRp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzExMUE1MzExMkY0RkJCMDAz
MzdCQUIgLyogV2ViQ2hyb21lQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkNocm9tZUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDMTExQTU0MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTExQTU2MTEyRjRGQkIwMDMz
N0JBQiAvKiBXZWJEcmFnQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkRyYWdDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTAyNSw2ICsxMDU1LDEwIEBACiAJCUJDMTc3NTNFMTE4QkFCRjAwMDdEOUU5QSAvKiBHZW5lcmlj
Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VuZXJpY0NhbGxi
YWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMUE3QzU3MTEzNkUxOUMwMEZC
NzE2NyAvKiBQcm9jZXNzTGF1bmNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHJvY2Vzc0xhdW5jaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMUI0
MTk3MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlUGFnZVByaXZhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQkMxQkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0
aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdlb2xvY2F0
aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMUJFMURGMTJENTRB
NDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHZW9sb2NhdGlvbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDMUJFMUYwMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9sb2Nh
dGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdlb2xv
Y2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMxQkUxRjEx
MkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMUREN0IxMTE0REMzOTYwMDVBREFGMyAvKiBX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
MURGRThEMTJCMzFDQTgwMDVERjczMCAvKiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxREZFOEUxMkIzMUNBODAwNURGNzMw
IC8qIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMTA5LDYgKzExNDMsMTAgQEAKIAkJQkM0QkVFQUExMjBBMEE1
RjAwRkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzRCRUZERjEyMEExQTRDMDBGQkEwQzcgLyogV0tC
dW5kbGVOb2RlSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVu
ZGxlTm9kZUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzRCRUZFMDEy
MEExQTRDMDBGQkEwQzcgLyogV0tCdW5kbGVOb2RlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlTm9kZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDNTRDQUM5MTJENjQyOTEwMDVDNjdCMCAvKiBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
QzU0Q0FDQTEyRDY0MjkxMDA1QzY3QjAgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzU0Q0MxMDEyRDY3
NEVFMDA1QzY3QjAgLyogV0tHZW9sb2NhdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tHZW9sb2NhdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQkM1NENDMTExMkQ2NzRFRTAwNUM2N0IwIC8qIFdLR2VvbG9jYXRpb25NYW5h
Z2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLR2VvbG9jYXRp
b25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NzQ0RUQxMjYz
OEZCMzAwNkYwRjEyIC8qIFdlYlBvcHVwSXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJQb3B1cEl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzU3NDRFRTEyNjM4RkIzMDA2RjBGMTIgLyogV2ViUG9wdXBJdGVtLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBvcHVwSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzU3NDUwQjEyNjNCMTU1MDA2RjBGMTIgLyogV0tCdW5kbGVOb2RlSGFu
ZGxlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZU5v
ZGVIYW5kbGVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjM0LDYg
KzE2NzIsOCBAQAogCQkJCTFBMkMzMDZGMTJENTU1NDUwMDYzREFBMiAvKiBDb250ZXh0TWVudVN0
YXRlLmggKi8sCiAJCQkJMEZCNjU5MjIxMjA4QjREQjAwNDQ4MTZDIC8qIERyYXdpbmdBcmVhSW5m
by5oICovLAogCQkJCTc2MkI3NDgxMTIwQkJBMDEwMDgxOTMzOSAvKiBGb250U21vb3RoaW5nTGV2
ZWwuaCAqLywKKwkJCQlCQzBFNjA3MjEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbi5jcHAgKi8sCisJCQkJQkMwRTYwNzExMkQ2QkMyMDAwMTJBNzJBIC8qIFdlYkdlb2xv
Y2F0aW9uUG9zaXRpb24uaCAqLywKIAkJCQlCQ0NGNkIyMzEyQzkzRTdBMDA4RjlDMzUgLyogSW1h
Z2VPcHRpb25zLmggKi8sCiAJCQkJQkM2NDY5NkQxMURCRTYwMzAwNjQ1NUIwIC8qIEltbXV0YWJs
ZUFycmF5LmNwcCAqLywKIAkJCQlCQzY0Njk2RTExREJFNjAzMDA2NDU1QjAgLyogSW1tdXRhYmxl
QXJyYXkuaCAqLywKQEAgLTE4NTQsNiArMTg5NCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1
MTJGNTg4NjEyQTg4MzQ3MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb24gKi8sCiAJCQkJMUE2MTYx
NEMxMjc3OThCNTAwM0FDRDg2IC8qIERvd25sb2FkcyAqLywKKwkJCQlCQzBFNUZDQjEyRDY5NkRE
MDAxMkE3MkEgLyogR2VvbG9jYXRpb24gKi8sCiAJCQkJQkMyMDRFREYxMUM4M0U3MjAwOEYzMzc1
IC8qIEluamVjdGVkQnVuZGxlICovLAogCQkJCTFBNkZBMDFDMTFFMTUyNjMwMERCMTM3MSAvKiBt
YWMgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCkBAIC0x
ODYyLDggKzE5MDMsOCBAQAogCQkJCTFBNkZBMzE1MTFFMzkyMzYwMERCMTM3MSAvKiBXZWJLaXRN
YWluLmNwcCAqLywKIAkJCQlCQzExMUFFMzExMkY1QzI2MDAzMzdCQUIgLyogV2ViUHJvY2Vzcy5j
cHAgKi8sCiAJCQkJQkMwMzJEOTExMEY0MzdBRjAwNThDMTVBIC8qIFdlYlByb2Nlc3MuaCAqLywK
LQkJCQkxQTZGQTAxRjExRTE1Mjg3MDBEQjEzNzEgLyogV2ViUHJvY2Vzc01haW4uaCAqLywKIAkJ
CQlCQzMwNjZCOTEyNUE0MzYzMDBFNzEyNzggLyogV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywK
KwkJCQkxQTZGQTAxRjExRTE1Mjg3MDBEQjEzNzEgLyogV2ViUHJvY2Vzc01haW4uaCAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gV2ViUHJvY2VzczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0xODg4LDYgKzE5MjksOCBAQAogCQkJCTFBNDMzRjBDMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJF
cnJvcnMuaCAqLywKIAkJCQlCQzExMUE1ODExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwICovLAogCQkJCUJDMDMyRDZBMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJGcmFt
ZUxvYWRlckNsaWVudC5oICovLAorCQkJCUJDMUJFMURGMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJH
ZW9sb2NhdGlvbkNsaWVudC5jcHAgKi8sCisJCQkJQkMxQkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8q
IFdlYkdlb2xvY2F0aW9uQ2xpZW50LmggKi8sCiAJCQkJQkMxMTFBNTkxMTJGNEZCQjAwMzM3QkFC
IC8qIFdlYkluc3BlY3RvckNsaWVudC5jcHAgKi8sCiAJCQkJQkMwMzJENkQxMEY0Mzc4RDAwNThD
MTVBIC8qIFdlYkluc3BlY3RvckNsaWVudC5oICovLAogCQkJCTFDOEUyNTZCMTI3MERFMzgwMEJD
N0JEMCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAgKi8sCkBAIC0xOTk5LDYgKzIw
NDIsMTEgQEAKIAkJCQlCQ0U0Njk3NjEyMTRGMjdCMDAwQjk4RUIgLyogV2ViRnJhbWVMaXN0ZW5l
clByb3h5LmggKi8sCiAJCQkJQkMxMTFCMEExMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJv
eHkuY3BwICovLAogCQkJCUJDOUIzODlGMTBGNTM4QkUwMDQ0M0ExNSAvKiBXZWJGcmFtZVByb3h5
LmggKi8sCisJCQkJQkM1NENBQ0ExMkQ2NDI5MTAwNUM2N0IwIC8qIFdlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5LmNwcCAqLywKKwkJCQlCQzU0Q0FDOTEyRDY0MjkxMDA1QzY3QjAgLyogV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHkuaCAqLywKKwkJCQlCQzBFNjE1MjEyRDZDQUM4MDAxMkE3MkEg
LyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJQkMxQkUx
RjExMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwICovLAorCQkJ
CUJDMUJFMUYwMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvblByb3ZpZGVyLmggKi8s
CiAJCQkJQkNGNjlGODQxMTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3RvcnlDbGllbnQuY3BwICov
LAogCQkJCUJDRjY5Rjg1MTE3NkNENkYwMDQ3MUE1MiAvKiBXZWJIaXN0b3J5Q2xpZW50LmggKi8s
CiAJCQkJMUM4RTI4MzMxMjc1RDczODAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclByb3h5LmNwcCAq
LywKQEAgLTIwNzIsMTkgKzIxMjAsMjMgQEAKIAkJCQkxQUI3RDc4QjEyODhDRDlBMDBDRkQwOEMg
LyogV0tEb3dubG9hZC5oICovLAogCQkJCUJDRTQ2OTU3MTIxNEVERjQwMDBCOThFQiAvKiBXS0Zv
cm1TdWJtaXNzaW9uTGlzdGVuZXIuY3BwICovLAogCQkJCUJDRTQ2OTU4MTIxNEVERjQwMDBCOThF
QiAvKiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuaCAqLywKLQkJCQlCQzFERkU4RTEyQjMxQ0E4
MDA1REY3MzAgLyogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgKi8sCi0JCQkJQkMxREZF
OEQxMkIzMUNBODAwNURGNzMwIC8qIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaCAqLywKLQkJ
CQlCQzg1N0ZFNTEyQjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcCAq
LywKLQkJCQlCQzg1N0ZFNDEyQjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJz
LmggKi8sCiAJCQkJQkNEMDEzOTgxMTBGQTQyMDAwM0I4QTY3IC8qIFdLRnJhbWUuY3BwICovLAog
CQkJCUJDRDAxMzk3MTEwRkE0MjAwMDNCOEE2NyAvKiBXS0ZyYW1lLmggKi8sCiAJCQkJQkNCOUY2
QTQxMTIzREQwRDAwQTEzN0UwIC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAgKi8sCiAJCQkJ
QkNCOUY2QTMxMTIzREQwRDAwQTEzN0UwIC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5oICovLAor
CQkJCUJDNTRDQzExMTJENjc0RUUwMDVDNjdCMCAvKiBXS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAg
Ki8sCisJCQkJQkM1NENDMTAxMkQ2NzRFRTAwNUM2N0IwIC8qIFdLR2VvbG9jYXRpb25NYW5hZ2Vy
LmggKi8sCisJCQkJQkMwRTYxOTcxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3Np
dGlvbi5jcHAgKi8sCisJCQkJQkMwRTYxOTYxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRp
b25Qb3NpdGlvbi5oICovLAogCQkJCTFDOEUyOTM4MTI3NjFFNUIwMEJDN0JEMCAvKiBXS0luc3Bl
Y3Rvci5jcHAgKi8sCiAJCQkJMUM4RTI5MzcxMjc2MUU1QjAwQkM3QkQwIC8qIFdLSW5zcGVjdG9y
LmggKi8sCiAJCQkJQzA5QUU1RTgxMjUyNTdDMjAwMjU4MjVEIC8qIFdLTmF0aXZlRXZlbnQuaCAq
LywKIAkJCQlCQ0Y2OUZBODExNzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5jcHAg
Ki8sCiAJCQkJQkNGNjlGQTcxMTc2RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuaCAq
LywKKwkJCQlCQzg1N0ZFNTEyQjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJz
LmNwcCAqLywKKwkJCQlCQzg1N0ZFNDEyQjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJh
bWV0ZXJzLmggKi8sCisJCQkJQkMxREZFOEUxMkIzMUNBODAwNURGNzMwIC8qIFdLT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIuY3BwICovLAorCQkJCUJDMURGRThEMTJCMzFDQTgwMDVERjczMCAvKiBX
S09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggKi8sCiAJCQkJQkNENTk3RDQxMTJCNTZEQzAwRUM4
QzIzIC8qIFdLUGFnZS5jcHAgKi8sCiAJCQkJQkNENTk3RDUxMTJCNTZEQzAwRUM4QzIzIC8qIFdL
UGFnZS5oICovLAogCQkJCUJDN0I2MzM2MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5j
cHAgKi8sCkBAIC0yMTAwLDYgKzIxNTIsMTYgQEAKIAkJCXBhdGggPSBDOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQkMwRTVGQ0IxMkQ2OTZERDAwMTJBNzJBIC8qIEdlb2xv
Y2F0aW9uICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlC
QzBFNUZFNDEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCAqLywK
KwkJCQlCQzBFNUZFMzEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgg
Ki8sCisJCQkJQkMwRTYwNDgxMkQ2QjYzNzAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gR2VvbG9jYXRpb247CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlCQzExMUFERTExMkY1QjlBMDAzMzdCQUIgLyog
bWFjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI0OTUs
NiArMjU1NywxMCBAQAogCQkJCUY2MkE3NkIzMTJCMUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFz
ZU1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCUY2MkE3NkI0MTJCMUIyNUYwMDA1RjFCNiAvKiBX
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJRjYyQTc2
QjUxMkIxQjI1RjAwMDVGMUI2IC8qIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAq
LywKKwkJCQlCQzBFNjA1RjEyRDZCQTkxMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlCQzBFNjA2MDEyRDZCQTkxMDAxMkE3MkEgLyog
V2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQlCQzBFNjE4MDEyRDZDQjFE
MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAorCQkJCUJDMEU2MTgxMTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMUM4RTJBMzExMjc3ODUyNDAwQkM3QkQwIC8qIFdl
Ykluc3BlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUM4RTJBMzIxMjc3ODUyNDAw
QkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VzLmggKi8sCiAJCQkJMUNBOEI5NDMxMjdDODgy
QTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAg
LTI4NTUsOCArMjkyMSwxNyBAQAogCQkJCTkzRkM2N0MwMTJEM0NDRjIwMEE2MDYxMCAvKiBFbmNv
ZGVyQWRhcHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1RTREQTQxMkQzQkQzRDAwOTlBMkJC
IC8qIFRleHRDaGVja2VyU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxOEQyQ0FFMTJENTE1
M0IwMDNCQjkzQiAvKiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlCQzFCRTFFMDEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUJDMUJFMUYyMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlv
blByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTJDMzA3MTEyRDU1NTQ1MDA2M0RBQTIg
LyogQ29udGV4dE1lbnVTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RDJDQ0IxMkQ1MURG
QjAwM0JCOTNCIC8qIFNlc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM1NENBQ0Ix
MkQ2NDI5MTAwNUM2N0IwIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlCQzU0Q0MxMjEyRDY3NEVFMDA1QzY3QjAgLyogV0tHZW9sb2NhdGlvbk1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDMEU1RkU1MTJENjk3MTYwMDEyQTcyQSAvKiBXZWJH
ZW9sb2NhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDMEU2MDYyMTJENkJBOTEw
MDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQkMwRTYwNzMxMkQ2QkMyMDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24u
aCBpbiBIZWFkZXJzICovLAorCQkJCUJDMEU2MTgzMTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzBFNjE5
ODEyRDZDRDEyMDAxMkE3MkEgLyogV0tHZW9sb2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKQEAgLTMyODksNyArMzM2NCwxNiBAQAogCQkJCTkzRkM2N0JEMTJEM0NDRjIwMEE2MDYxMCAv
KiBEZWNvZGVyQWRhcHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0ZDNjdCRjEyRDNDQ0Yy
MDBBNjA2MTAgLyogRW5jb2RlckFkYXB0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4RDJD
QUQxMkQ1MTUzQjAwM0JCOTNCIC8qIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQkMxQkUxRTExMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDMUJFMUYzMTJENTREQkQwMDA0QTIyOCAvKiBX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxOEQyQ0NBMTJE
NTFERkIwMDNCQjkzQiAvKiBTZXNzaW9uU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM1
NENBQ0MxMkQ2NDI5MTAwNUM2N0IwIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUJDNTRDQzEzMTJENjc0RUUwMDVDNjdCMCAvKiBXS0dlb2xvY2F0
aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzBFNUZFNjEyRDY5NzE2MDAxMkE3
MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDMEU2
MDYxMTJENkJBOTEwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMwRTYwNzQxMkQ2QkMyMDAwMTJBNzJBIC8qIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMwRTYxODIxMkQ2
Q0IxRDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDMEU2MTk5MTJENkNEMTIwMDEyQTcyQSAvKiBXS0dl
b2xvY2F0aW9uUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlci5oIgog
I2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIgpAQCAtMTEw
LDYgKzExMSw3IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAgICwgbV9uZXR3b3JrQWNj
ZXNzTWFuYWdlcigwKQogI2VuZGlmCiAgICAgLCBtX3RleHRDaGVja2VyU3RhdGUoKQorICAgICwg
bV9nZW9sb2NhdGlvbk1hbmFnZXIodGhpcykKIHsKICNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lF
UykKICAgICAvLyBJbml0aWFsaXplIG91ciBwbGF0Zm9ybSBzdHJhdGVnaWVzLgpAQCAtNTA4LDYg
KzUxMCwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlcj4oKSkgeworICAgICAgICBtX2dlb2xvY2F0aW9u
TWFuYWdlci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc0luamVjdGVkQnVuZGxlPigpKSB7CiAgICAgICAgIGlmICghbV9pbmpl
Y3RlZEJ1bmRsZSkKICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAkocmV2aXNpb24gNzUyNjQpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5
LmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5r
VGFibGUuaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJX
ZWJQYWdlR3JvdXBQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMTA2LDggKzEwNywxMiBAQCBwdWJsaWM6CiAKICAgICBi
b29sIHNob3VsZFVzZUN1c3RvbVJlcHJlc2VudGF0aW9uRm9yTUlNRVR5cGUoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSkgY29uc3QgeyByZXR1cm4gbV9taW1lVHlwZXNXaXRoQ3VzdG9tUmVwcmVzZW50
YXRpb25zLmNvbnRhaW5zKG1pbWVUeXBlKTsgfQogCisgICAgLy8gVGV4dCBDaGVja2luZwogICAg
IGNvbnN0IFRleHRDaGVja2VyU3RhdGUmIHRleHRDaGVja2VyU3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX3RleHRDaGVja2VyU3RhdGU7IH0KIAorICAgIC8vIEdlb2xvY2F0aW9uCisgICAgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyJiBnZW9sb2NhdGlvbk1hbmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0
aW9uTWFuYWdlcjsgfQorCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKIApAQCAtMTgyLDYg
KzE4Nyw3IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4g
bV9taW1lVHlwZXNXaXRoQ3VzdG9tUmVwcmVzZW50YXRpb25zOwogCiAgICAgVGV4dENoZWNrZXJT
dGF0ZSBtX3RleHRDaGVja2VyU3RhdGU7CisgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyIG1fZ2Vv
bG9jYXRpb25NYW5hZ2VyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJL
aXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25N
YW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlv
bi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlci5oIgorCisjaW5j
bHVkZSAiV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldl
YlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9HZW9s
b2NhdGlvbkNvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3Iu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1BhZ2UuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OldlYkdlb2xvY2F0aW9uTWFuYWdlcihX
ZWJQcm9jZXNzKiBwcm9jZXNzKQorICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCit7Cit9CisKK1dl
Ykdlb2xvY2F0aW9uTWFuYWdlcjo6fldlYkdlb2xvY2F0aW9uTWFuYWdlcigpCit7Cit9CisKK3Zv
aWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViR2VvbG9j
YXRpb25NYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9
CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSog
cGFnZSkKK3sKKyAgICBib29sIHdhc0VtcHR5ID0gbV9wYWdlU2V0LmlzRW1wdHkoKTsKKworICAg
IG1fcGFnZVNldC5hZGQocGFnZSk7CisgICAgCisgICAgaWYgKHdhc0VtcHR5KQorICAgICAgICBt
X3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHk6OlN0YXJ0VXBkYXRpbmcoKSwgMCk7Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25N
YW5hZ2VyOjp1bnJlZ2lzdGVyV2ViUGFnZShXZWJQYWdlKiBwYWdlKQoreworICAgIG1fcGFnZVNl
dC5yZW1vdmUocGFnZSk7CisKKyAgICBpZiAobV9wYWdlU2V0LmlzRW1wdHkoKSkKKyAgICAgICAg
bV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5OjpTdG9wVXBkYXRpbmcoKSwgMCk7Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25N
YW5hZ2VyOjpkaWRDaGFuZ2VQb3NpdGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpE
YXRhJiBkYXRhKQoreworICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9
IEdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShkYXRhLnRpbWVzdGFtcCwgZGF0YS5sYXRpdHVk
ZSwgZGF0YS5sb25naXR1ZGUsIGRhdGEuYWNjdXJhY3kpOworCisgICAgSGFzaFNldDxXZWJQYWdl
Kj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wYWdlU2V0LmJlZ2luKCk7CisgICAgSGFzaFNldDxX
ZWJQYWdlKj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcGFnZVNldC5lbmQoKTsKKyAgICBmb3Ig
KDsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIFdlYlBhZ2UqIHBhZ2UgPSAqaXQ7CisgICAg
ICAgIGlmIChwYWdlLT5jb3JlUGFnZSgpKQorICAgICAgICAgICAgcGFnZS0+Y29yZVBhZ2UoKS0+
Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPnBvc2l0aW9uQ2hhbmdlZChwb3NpdGlvbi5nZXQoKSk7
CisgICAgfQorfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkRmFpbFRvRGV0ZXJt
aW5lUG9zaXRpb24oKQoreworICAgIC8vIEZJWE1FOiBBZGQgbG9jYWxpemVkIGVycm9yIHN0cmlu
Zy4KKyAgICBSZWZQdHI8R2VvbG9jYXRpb25FcnJvcj4gZXJyb3IgPSBHZW9sb2NhdGlvbkVycm9y
OjpjcmVhdGUoR2VvbG9jYXRpb25FcnJvcjo6UG9zaXRpb25VbmF2YWlsYWJsZSwgLyogTG9jYWxp
emVkIGVycm9yIHN0cmluZyAqLyBTdHJpbmcoIiIpKTsKKworICAgIEhhc2hTZXQ8V2ViUGFnZSo+
Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGFnZVNldC5iZWdpbigpOworICAgIEhhc2hTZXQ8V2Vi
UGFnZSo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3BhZ2VTZXQuZW5kKCk7CisgICAgZm9yICg7
IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBXZWJQYWdlKiBwYWdlID0gKml0OworICAgICAg
ICBpZiAocGFnZS0+Y29yZVBhZ2UoKSkKKyAgICAgICAgICAgIHBhZ2UtPmNvcmVQYWdlKCktPmdl
b2xvY2F0aW9uQ29udHJvbGxlcigpLT5lcnJvck9jY3VycmVkKGVycm9yLmdldCgpKTsKKyAgICB9
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL0dl
b2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAkocmV2aXNpb24g
MCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V2ViR2VvbG9jYXRpb25NYW5hZ2VyX2gKKyNkZWZpbmUgV2ViR2VvbG9jYXRpb25NYW5hZ2VyX2gK
KworI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUG9zaXRp
b24uaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisgICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwor
ICAgIGNsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJQcm9jZXNzOworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJHZW9sb2NhdGlvbk1hbmFnZXIpOworcHVi
bGljOgorICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlcihXZWJQcm9jZXNzKik7CisgICAgfldlYkdl
b2xvY2F0aW9uTWFuYWdlcigpOworCisgICAgdm9pZCByZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSop
OworICAgIHZvaWQgdW5yZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSopOworCisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworcHJpdmF0ZToKKyAgICAvLyBJbXBsZW1lbnRl
ZCBpbiBnZW5lcmF0ZWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAor
ICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7CisKKyAgICB2b2lkIGRpZENoYW5nZVBvc2l0aW9uKGNvbnN0IFdlYkdlb2xvY2F0aW9uUG9z
aXRpb246OkRhdGEmKTsKKyAgICB2b2lkIGRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKCk7CisK
KyAgICBXZWJQcm9jZXNzKiBtX3Byb2Nlc3M7CisgICAgSGFzaFNldDxXZWJQYWdlKj4gbV9wYWdl
U2V0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJfaApJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdl
b2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlBy
b2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCShyZXZp
c2lvbiAwKQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9u
TWFuYWdlci5tZXNzYWdlcy5pbgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXIgeworICAgIERpZENoYW5nZVBvc2l0aW9uKFdlYktpdDo6V2ViR2VvbG9jYXRp
b25Qb3NpdGlvbjo6RGF0YSBwb3NpdGlvbik7CisgICAgRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRp
b24oKTsKK30KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9s
b2NhdGlvbkNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV2ViR2Vv
bG9jYXRpb25DbGllbnQuaCIKKworI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlci5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9z
aXRpb24uaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCit2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpnZW9sb2NhdGlvbkRlc3Ryb3llZCgpCit7
CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuZ2VvbG9jYXRpb25NYW5hZ2VyKCkudW5yZWdpc3Rl
cldlYlBhZ2UobV9wYWdlKTsKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBXZWJHZW9sb2Nh
dGlvbkNsaWVudDo6c3RhcnRVcGRhdGluZygpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCku
Z2VvbG9jYXRpb25NYW5hZ2VyKCkucmVnaXN0ZXJXZWJQYWdlKG1fcGFnZSk7Cit9CisKK3ZvaWQg
V2ViR2VvbG9jYXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZygpCit7CisgICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkuZ2VvbG9jYXRpb25NYW5hZ2VyKCkudW5yZWdpc3RlcldlYlBhZ2UobV9wYWdlKTsK
K30KKwordm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJv
b2wpCit7Cit9CisKK0dlb2xvY2F0aW9uUG9zaXRpb24qIFdlYkdlb2xvY2F0aW9uQ2xpZW50Ojps
YXN0UG9zaXRpb24oKQoreworICAgIHJldHVybiAwOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9u
Q2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiopCit7Cit9CisKK3ZvaWQgV2Vi
R2VvbG9jYXRpb25DbGllbnQ6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KEdlb2xvY2F0aW9uKikK
K3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAkocmV2
aXNpb24gMCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2Nh
dGlvbkNsaWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBXZWJHZW9sb2NhdGlvbkNsaWVudF9oCisjZGVmaW5lIFdlYkdlb2xvY2F0aW9uQ2xp
ZW50X2gKKworI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25DbGllbnQuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYkdlb2xvY2F0aW9uQ2xp
ZW50IDogcHVibGljIFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBX
ZWJHZW9sb2NhdGlvbkNsaWVudChXZWJQYWdlKiBwYWdlKQorICAgICAgICA6IG1fcGFnZShwYWdl
KQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGdlb2xvY2F0aW9u
RGVzdHJveWVkKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOworICAgIHZp
cnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGln
aEFjY3VyYWN5KGJvb2wpOworCisgICAgdmlydHVhbCBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0
aW9uKiBsYXN0UG9zaXRpb24oKTsKKworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lv
bihXZWJDb3JlOjpHZW9sb2NhdGlvbiopOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQZXJtaXNz
aW9uUmVxdWVzdChXZWJDb3JlOjpHZW9sb2NhdGlvbiopOworCisgICAgV2ViUGFnZSogbV9wYWdl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJHZW9sb2NhdGlv
bkNsaWVudF9oCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2
aXNpb24gNzUyNjQpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAj
aW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNp
bmNsdWRlICJXZWJHZW9sb2NhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIldlYkltYWdlLmgiCiAj
aW5jbHVkZSAiV2ViSW5zcGVjdG9yLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yQ2xpZW50Lmgi
CkBAIC0xNDksMTAgKzE1MCwxMSBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwg
Y29uc3QgCiAgICAgcGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29udGV4
dE1lbnVDbGllbnQodGhpcyk7CiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdl
YkVkaXRvckNsaWVudCh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdl
YkRyYWdDbGllbnQodGhpcyk7CisgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBu
ZXcgV2ViR2VvbG9jYXRpb25DbGllbnQodGhpcyk7CisgICAgcGFnZUNsaWVudHMuYmFja0Zvcndh
cmRDbGllbnQgPSBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Y3JlYXRlKHRoaXMpOwogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdl
Ykluc3BlY3RvckNsaWVudCh0aGlzKTsKICNlbmRpZgotICAgIHBhZ2VDbGllbnRzLmJhY2tGb3J3
YXJkQ2xpZW50ID0gV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmNyZWF0ZSh0aGlzKTsKICAgICBt
X3BhZ2UgPSBhZG9wdFB0cihuZXcgUGFnZShwYWdlQ2xpZW50cykpOwogCiAgICAgLy8gUXQgZG9l
cyBub3QgeWV0IGNhbGwgc2V0SXNJbldpbmRvdy4gVW50aWwgaXQgZG9lcywganVzdCBsZWF2ZQpJ
bmRleDogV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi93
aW4vV2ViS2l0Mi52Y3Byb2oJKHJldmlzaW9uIDc1MjY0KQorKysgV2ViS2l0Mi93aW4vV2ViS2l0
Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTU5MSw2ICs1OTEsMTQgQEAKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFdlYkdlb2xvY2F0
aW9uUG9zaXRpb24uY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxTaGFyZWRcV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcV2ViSW1hZ2UuY3Bw
IgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTEyNDcsNiArMTI1NSwyMiBAQAogCQkJCTwvRmlsZT4K
IAkJCTwvRmlsdGVyPgogCQkJPEZpbHRlcgorCQkJCU5hbWU9Ikdlb2xvY2F0aW9uIgorCQkJCT4K
KwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcR2VvbG9jYXRpb25c
V2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8Rmls
ZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcR2VvbG9jYXRpb25cV2ViR2VvbG9j
YXRpb25NYW5hZ2VyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uXFdlYkdlb2xvY2F0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbiIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCTwvRmlsdGVyPgorCQkJPEZp
bHRlcgogCQkJCU5hbWU9IldlYkNvcmVTdXBwb3J0IgogCQkJCT4KIAkJCQk8RmlsZQpAQCAtMTMw
Niw2ICsxMzMwLDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYkdlb2xvY2F0aW9uQ2xp
ZW50LmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViR2VvbG9jYXRpb25DbGllbnQuaCIK
KwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdl
YlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCIKIAkJCQkJPgog
CQkJCTwvRmlsZT4KQEAgLTIxNTksNiArMjE5MSwyNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxVSVByb2Nlc3NcV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViR2VvbG9jYXRpb25Qcm92
aWRlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFVJUHJvY2Vzc1xXZWJHZW9sb2NhdGlvblByb3ZpZGVyLmgiCisJCQkJPgorCQkJPC9GaWxl
PgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJIaXN0b3J5Q2xp
ZW50LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yMjgxLDEwICsyMzMzLDYgQEAKIAkJCTxG
aWx0ZXIKIAkJCQlOYW1lPSJBUEkiCiAJCQkJPgotCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0
aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLRGF0YWJhc2VNYW5hZ2VyLmNwcCIKLQkJCQkJPgotCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsdGVyCiAJCQkJCU5hbWU9IkMiCiAJCQkJCT4KQEAgLTIzNjEsNiAr
MjQwOSwxMCBAQAogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CiAJCQkJCTxGaWxlCisJCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0RhdGFiYXNlTWFuYWdlci5jcHAiCisJCQkJ
CQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQ
cm9jZXNzXEFQSVxDXFdLRGF0YWJhc2VNYW5hZ2VyLmgiCiAJCQkJCQk+CiAJCQkJCTwvRmlsZT4K
QEAgLTIzOTcsNiArMjQ0OSwyMiBAQAogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CiAJCQkJCTxGaWxl
CisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0dlb2xvY2F0aW9uTWFu
YWdlci5jcHAiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLR2VvbG9jYXRpb25NYW5hZ2VyLmgiCisJCQkJ
CQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQ
cm9jZXNzXEFQSVxDXFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAiCisJCQkJCQk+CisJCQkJCTwv
RmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxD
XFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxG
aWxlCiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0luc3BlY3Rvci5j
cHAiCiAJCQkJCQk+CiAJCQkJCTwvRmlsZT4KQEAgLTI5OTksNiArMzA2NywyMiBAQAogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkdlb2xvY2F0aW9u
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXFdlYkluc3BlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78276</attachid>
            <date>2011-01-07 15:00:59 -0800</date>
            <delta_ts>2011-01-07 17:21:18 -0800</delta_ts>
            <desc>Attempt 2 (DO NOT REVIEW)</desc>
            <filename>patchForBZ.diff</filename>
            <type>text/plain</type>
            <size>92049</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NTI2NikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTA0IEBACisyMDExLTAxLTA3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBH
ZW9sb2NhdGlvbiBmZWF0dXJlcyB3b3JrIGluIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMDc4CisKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnBybzoKKyAgICAgICAgKiBQbGF0
Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBD
L01lc3NhZ2VJRC5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAg
KiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9z
aXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlv
bjo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0
aW9uUG9zaXRpb246On5XZWJHZW9sb2NhdGlvblBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRp
b25Qb3NpdGlvbjo6dGltZXN0YW1wKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Q
b3NpdGlvbjo6bGF0aXR1ZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0
aW9uOjpsb25naXR1ZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9u
OjphY2N1cmFjeSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmRh
dGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjp0eXBlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRHZXRHZW9sb2NhdGlvbk1h
bmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdLR2VvbG9jYXRpb25NYW5hZ2VyR2V0VHlwZUlEKToKKyAgICAgICAgKFdLR2VvbG9jYXRp
b25NYW5hZ2VyU2V0UHJvdmlkZXIpOgorICAgICAgICAoV0tHZW9sb2NhdGlvbk1hbmFnZXJQcm92
aWRlckRpZENoYW5nZVBvc2l0aW9uKToKKyAgICAgICAgKFdLR2VvbG9jYXRpb25NYW5hZ2VyUHJv
dmlkZXJEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLR2VvbG9jYXRpb25NYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLR2VvbG9j
YXRpb25Qb3NpdGlvbkdldFR5cGVJRCk6CisgICAgICAgIChXS0dlb2xvY2F0aW9uUG9zaXRpb25D
cmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24u
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dlYktpdDIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6
OldlYkNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnByb2Nlc3NEaWRDbG9zZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpnZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eTo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6fldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OmludmFsaWRhdGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6aW5pdGlhbGl6
ZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6
OnByb3ZpZGVyRGlkQ2hhbmdlUG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVz
c2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpzdGFy
dFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6
OnN0b3BVcGRhdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQ
cm94eTo6Y2xlYXJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHk6OnR5cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRp
b25Qcm92aWRlcjo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0
aW9uUHJvdmlkZXI6OnN0b3BVcGRhdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOgorICAgICAgICAqIFdlYktpdDIucHJvOgorICAgICAgICAqIFdlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFu
YWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6
OldlYkdlb2xvY2F0aW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6fldlYkdlb2xvY2F0aW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkdl
b2xvY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnJlZ2lzdGVyV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdlb2xvY2F0aW9uTWFuYWdlcjo6dW5yZWdpc3RlcldlYlBhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViR2VvbG9jYXRpb25DbGllbnQ6Omdlb2xvY2F0aW9uRGVzdHJveWVkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAg
KFdlYktpdDo6V2ViR2VvbG9jYXRpb25DbGllbnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbkNsaWVudDo6Y2FuY2VsUGVybWlzc2lvblJl
cXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRp
b25DbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uQ2xpZW50
OjpXZWJHZW9sb2NhdGlvbkNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjpXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpnZW9sb2NhdGlvbk1hbmFnZXIpOgorICAgICAgICAqIHdpbi9XZWJL
aXQyLnZjcHJvajoKKwogMjAxMS0wMS0wNiAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvbiBIb25leWN1dHQuCkluZGV4OiBXZWJLaXQy
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9EZXJpdmVkU291cmNl
cy5tYWtlCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQko
d29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIp
L1BsdWdpblByb2Nlc3MgXAogICAgICQoV2ViS2l0MikvU2hhcmVkL1BsdWdpbnMgXAogICAgICQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCisgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL0dlb2xvY2F0aW9uIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IFwKICAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvV2ViUGFnZSBcCkBAIC00NCw2ICs0NSw4IEBAIE1FU1NBR0VfUkVDRUlW
RVJTID0gXAogICAgIFdlYkNvbnRleHQgXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlciBcCiAgICAg
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkgXAorICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciBcCisg
ICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgXAogICAgIFdlYkluc3BlY3RvciBcCiAgICAg
V2ViSW5zcGVjdG9yUHJveHkgXAogICAgIFdlYlBhZ2UgXApJbmRleDogV2ViS2l0Mi9EZXJpdmVk
U291cmNlcy5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8JKHJl
dmlzaW9uIDc1MjY0KQorKysgV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8JKHdvcmtpbmcgY29w
eSkKQEAgLTc2LDYgKzc2LDcgQEAgZGVmaW5lUmVwbGFjZShtZXNzYWdlX3JlY2VpdmVyX2dlbmVy
YXRvcgogVlBBVEggPSBcCiAgICAgUGx1Z2luUHJvY2VzcyBcCiAgICAgV2ViUHJvY2Vzcy9BdXRo
ZW50aWNhdGlvbiBcCisgICAgV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAgICAgV2ViUHJvY2Vz
cy9QbHVnaW5zIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IFwKICAgICBXZWJQcm9j
ZXNzL1dlYlBhZ2UgXApAQCAtOTQsNiArOTUsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAg
ICBXZWJDb250ZXh0Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJEYXRhYmFzZU1hbmFnZXIubWVzc2Fn
ZXMuaW4gXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKKyAgICBX
ZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gXAorICAgIFdlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5p
biBcCiAgICAgV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4gXAogICAgIFdlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbiBcCkluZGV4OiBXZWJLaXQyL1dlYktpdDIucHJvCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdDIvV2ViS2l0Mi5wcm8JKHJldmlzaW9uIDc1MjY0KQorKysgV2ViS2l0Mi9X
ZWJLaXQyLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTQ1LDYgKzE0NSw3IEBAIElOQ0xVREVQQVRI
ID0gXAogICAgIFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24gXAogICAgIFdlYlByb2Nlc3MvRG93
bmxvYWRzIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9xdCBcCisgICAgV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbiBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZSBcCiAgICAgV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00gXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MgXApAQCAtMTc1LDYgKzE3Niw4IEBAIFdFQktJVDJfR0VORVJBVEVEX0hFQURFUlMgPSBc
CiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb250ZXh0TWVzc2FnZXMu
aCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFn
ZXJNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkRh
dGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUi9XZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIFwKKyAgICAkJFdFQktJ
VDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJJbnNwZWN0b3JN
ZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkluc3Bl
Y3RvclByb3h5TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJ
Ui9XZWJQYWdlTWVzc2FnZXMuaCBcCkBAIC0xOTMsNiArMTk2LDggQEAgV0VCS0lUMl9HRU5FUkFU
RURfU09VUkNFUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkNv
bnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VC
S0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkdl
b2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQkV0VCS0lUMl9HRU5F
UkFURURfU09VUkNFU19ESVIvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkluc3BlY3Rv
ck1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19E
SVIvV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJf
R0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlBhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTI2
Niw2ICsyNzEsNyBAQCBIRUFERVJTICs9IFwKICAgICBTaGFyZWQvV2ViRXZlbnQuaCBcCiAgICAg
U2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5oIFwKICAgICBTaGFyZWQvV2ViRmluZE9wdGlvbnMu
aCBcCisgICAgU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCBcCiAgICAgU2hhcmVkL1dl
YkltYWdlLmggXAogICAgIFNoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmggXAogICAgIFNo
YXJlZC9XZWJOdW1iZXIuaCBcCkBAIC0yOTYsNiArMzAyLDggQEAgSEVBREVSUyArPSBcCiAgICAg
VUlQcm9jZXNzL0FQSS9DL1dLRG93bmxvYWQuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLRnJh
bWUuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5oIFwKKyAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaCBcCisgICAgVUlQcm9jZXNz
L0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tJ
bnNwZWN0b3IuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5o
IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIFwKQEAg
LTM1Myw2ICszNjEsOCBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViRnJhbWVMaXN0
ZW5lclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHku
aCBcCiAgICAgVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaCBcCisgICAgVUlQcm9jZXNzL1dlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5LmggXAorICAgIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblBy
b3ZpZGVyLmggXAogICAgIFVJUHJvY2Vzcy9XZWJIaXN0b3J5Q2xpZW50LmggXAogICAgIFVJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50
LmggXApAQCAtMzcyLDYgKzM4Miw3IEBAIEhFQURFUlMgKz0gXAogICAgIFdlYlByb2Nlc3MvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkLmggXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFu
YWdlci5oIFwKKyAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdl
ci5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0Zv
cndhcmRMaXN0LmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVCYWNrRm9yd2FyZExpc3RJdGVtLmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmggXApAQCAtNDA4LDYgKzQxOSw3IEBAIEhFQURF
UlMgKz0gXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmgg
XAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRXJyb3JzLmggXAogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBcCisgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oIFwKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmggXAogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggXApAQCAtNDc2LDYg
KzQ4OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFNoYXJlZC9XZWJFcnJvci5jcHAgXAogICAgIFNo
YXJlZC9XZWJFdmVudC5jcHAgXAogICAgIFNoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIFwK
KyAgICBTaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgXAogICAgIFNoYXJlZC9XZWJL
ZXlib2FyZEV2ZW50LmNwcCBcCiAgICAgU2hhcmVkL1dlYkltYWdlLmNwcCBcCiAgICAgU2hhcmVk
L1dlYk1vdXNlRXZlbnQuY3BwIFwKQEAgLTUwOCw2ICs1MjEsOCBAQCBTT1VSQ0VTICs9IFwKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tEb3dubG9hZC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S0ZyYW1lLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5j
cHAgXAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAgXAorICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwIFwKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tJbnNwZWN0b3IuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFu
ZWxQYXJhbWV0ZXJzLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXIuY3BwIFwKQEAgLTU1NSw2ICs1NzAsOCBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVBy
b2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkZyYW1l
UG9saWN5TGlzdGVuZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNw
cCBcCisgICAgVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcCBcCisgICAg
VUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvV2Vi
SGlzdG9yeUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAg
XAogICAgIFVJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwIFwKQEAgLTU4Miw2ICs1OTksNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcCBc
CiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcCBcCisgICAgV2Vi
UHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIFwKICAgICBXZWJQ
cm9jZXNzL0Rvd25sb2Fkcy9xdC9Eb3dubG9hZFF0LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwIFwKQEAgLTYyNCw2ICs2NDIs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdD
bGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwIFwKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGll
bnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckZyb250
ZW5kQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwIFwKSW5kZXg6IFdlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVN
ZXNzYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1l
c3NhZ2UuaAkocmV2aXNpb24gNzUyNjQpCisrKyBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvSGFu
ZGxlTWVzc2FnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsOCBAQAogI2lmbmRlZiBIYW5k
bGVNZXNzYWdlX2gKICNkZWZpbmUgSGFuZGxlTWVzc2FnZV9oCiAKKyNpbmNsdWRlICJBcmd1bWVu
dHMuaCIKKwogbmFtZXNwYWNlIENvcmVJUEMgewogCiAvLyBEaXNwYXRjaCBmdW5jdGlvbnMgd2l0
aCBubyByZXBseSBhcmd1bWVudHMuCkluZGV4OiBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVz
c2FnZUlELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJ
RC5oCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdl
SUQuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMTYgKzM5LDE4IEBAIGVudW0gTWVzc2FnZUNsYXNz
IHsKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYUxlZ2FjeSwKICAgICBNZXNzYWdlQ2xhc3NJ
bmplY3RlZEJ1bmRsZSwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXIsCisgICAg
TWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNz
V2ViSW5zcGVjdG9yLAogICAgIE1lc3NhZ2VDbGFzc1dlYlBhZ2UsCiAgICAgTWVzc2FnZUNsYXNz
V2ViUHJvY2VzcywKIAogICAgIC8vIE1lc3NhZ2VzIHNlbnQgYnkgdGhlIHdlYiBwcm9jZXNzIHRv
IHRoZSBVSSBwcm9jZXNzLgotICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhUHJveHlMZWdhY3ks
CiAgICAgTWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eSwKKyAgICBNZXNzYWdlQ2xhc3NEcmF3aW5n
QXJlYVByb3h5TGVnYWN5LAogICAgIE1lc3NhZ2VDbGFzc1dlYkNvbnRleHQsCiAgICAgTWVzc2Fn
ZUNsYXNzV2ViQ29udGV4dExlZ2FjeSwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFn
ZXJQcm94eSwKKyAgICBNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXIsCiAgICAgTWVz
c2FnZUNsYXNzV2ViSW5zcGVjdG9yUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViUGFnZVByb3h5
LAogICAgIE1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eSwKSW5kZXg6IFdlYktpdDIvU2hhcmVk
L0FQSU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCShy
ZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC02OCw2ICs2OCw4IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZUZvcm1TdWJtaXNzaW9u
TGlzdGVuZXIsCiAgICAgICAgIFR5cGVGcmFtZSwKICAgICAgICAgVHlwZUZyYW1lUG9saWN5TGlz
dGVuZXIsCisgICAgICAgIFR5cGVHZW9sb2NhdGlvblBvc2l0aW9uLAorICAgICAgICBUeXBlR2Vv
bG9jYXRpb25NYW5hZ2VyLAogICAgICAgICBUeXBlSW5zcGVjdG9yLAogICAgICAgICBUeXBlTmF2
aWdhdGlvbkRhdGEsCiAgICAgICAgIFR5cGVPcGVuUGFuZWxQYXJhbWV0ZXJzLApJbmRleDogV2Vi
S2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAJKHJldmlzaW9uIDApCisrKyBX
ZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblBvc2l0
aW9uLmgiCisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIkFyZ3VtZW50
cy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6V2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRv
dWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKK3sKKyAgICBtX2RhdGEudGltZXN0YW1w
ID0gdGltZXN0YW1wOworICAgIG1fZGF0YS5sYXRpdHVkZSA9IGxhdGl0dWRlOworICAgIG1fZGF0
YS5sb25naXR1ZGUgPSBsb25naXR1ZGU7CisgICAgbV9kYXRhLmFjY3VyYWN5ID0gYWNjdXJhY3k7
Cit9CisKK1dlYkdlb2xvY2F0aW9uUG9zaXRpb246On5XZWJHZW9sb2NhdGlvblBvc2l0aW9uKCkK
K3sKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXItPmVuY29k
ZShDb3JlSVBDOjpJbih0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7
Cit9CisKK2Jvb2wgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGF0YSYgZGF0YSkKK3sKKyAgICByZXR1cm4gZGVj
b2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChkYXRhLnRpbWVzdGFtcCwgZGF0YS5sYXRpdHVkZSwg
ZGF0YS5sb25naXR1ZGUsIGRhdGEuYWNjdXJhY3kpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBXZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCShyZXZpc2lv
biAwKQorKysgV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJHZW9sb2NhdGlv
blBvc2l0aW9uX2gKKyNkZWZpbmUgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbl9oCisKKyNpbmNsdWRl
ICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJB
cmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiA6IHB1YmxpYyBBUElP
YmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlR2Vv
bG9jYXRpb25Qb3NpdGlvbjsKKworICAgIHN0cnVjdCBEYXRhIHsKKyAgICAgICAgdm9pZCBlbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgICAgIHN0YXRpYyBib29s
IGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBEYXRhJik7CisKKyAgICAgICAgZG91
YmxlIHRpbWVzdGFtcDsKKyAgICAgICAgZG91YmxlIGxhdGl0dWRlOworICAgICAgICBkb3VibGUg
bG9uZ2l0dWRlOworICAgICAgICBkb3VibGUgYWNjdXJhY3k7CisgICAgfTsKKworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IGNyZWF0ZShkb3VibGUgdGltZXN0
YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bih0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7CisgICAgfQorCisg
ICAgdmlydHVhbCB+V2ViR2VvbG9jYXRpb25Qb3NpdGlvbigpOworCisgICAgZG91YmxlIHRpbWVz
dGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS50aW1lc3RhbXA7IH0KKyAgICBkb3VibGUgbGF0
aXR1ZGUoKSBjb25zdCB7IHJldHVybiBtX2RhdGEubGF0aXR1ZGU7IH0KKyAgICBkb3VibGUgbG9u
Z2l0dWRlKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmxvbmdpdHVkZTsgfQorICAgIGRvdWJsZSBh
Y2N1cmFjeSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5hY2N1cmFjeTsgfQorCisgICAgY29uc3Qg
RGF0YSYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQorCitwcml2YXRlOgorICAgIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBk
b3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOworCisgICAgdmlydHVhbCBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisKKyAgICBEYXRhIG1fZGF0YTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bl9oCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAkocmV2aXNpb24gNzUyNjQpCisrKyBXZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIsOCBAQCB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0Rvd25sb2FkKiBXCiB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIqIFdLRm9ybVN1Ym1pc3Npb25MaXN0
ZW5lclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLRnJhbWUqIFdLRnJhbWVSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0ZyYW1lUG9saWN5TGlzdGVuZXIqIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lclJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLR2VvbG9j
YXRpb25NYW5hZ2VyKiBXS0dlb2xvY2F0aW9uTWFuYWdlclJlZjsKK3R5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLR2VvbG9jYXRpb25Qb3NpdGlvbiogV0tHZW9sb2NhdGlvblBvc2l0aW9uUmVm
OwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tJbnNwZWN0b3IqIFdLSW5zcGVjdG9yUmVm
OwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOYXZpZ2F0aW9uRGF0YSogV0tOYXZpZ2F0
aW9uRGF0YVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3BlblBhbmVsUGFyYW1l
dGVycyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmOwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5jcHAJKHJldmlzaW9uIDc1MjY0KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0
VXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
ICNpbmNsdWRlICJXZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NN
YW5hZ2VyLmgiCkBAIC04Nyw2ICs4OCw3IEBAIFdlYkNvbnRleHQ6OldlYkNvbnRleHQoUHJvY2Vz
c01vZGVsIHByb2MKICAgICAsIG1fY2xlYXJSZXNvdXJjZUNhY2hlc0Zvck5ld1dlYlByb2Nlc3Mo
ZmFsc2UpCiAgICAgLCBtX2NsZWFyQXBwbGljYXRpb25DYWNoZUZvck5ld1dlYlByb2Nlc3MoZmFs
c2UpCiAgICAgLCBtX2RhdGFiYXNlTWFuYWdlclByb3h5KFdlYkRhdGFiYXNlTWFuYWdlclByb3h5
OjpjcmVhdGUodGhpcykpCisgICAgLCBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5KFdlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCiAjaWYgUExBVEZPUk0oV0lOKQogICAg
ICwgbV9zaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKHRydWUpCiAjZW5kaWYKQEAgLTEwNCw2ICsx
MDYsOSBAQCBXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCgpCiAKICAgICBXZWJQcm9jZXNzTWFuYWdl
cjo6c2hhcmVkKCkuY29udGV4dFdhc0Rlc3Ryb3llZCh0aGlzKTsKIAorICAgIG1fZ2VvbG9jYXRp
b25NYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKKyAgICBtX2dlb2xvY2F0aW9uTWFuYWdlclBy
b3h5LT5jbGVhckNvbnRleHQoKTsKKwogI2lmbmRlZiBOREVCVUcKICAgICB3ZWJDb250ZXh0Q291
bnRlci5kZWNyZW1lbnQoKTsKICNlbmRpZgpAQCAtMjE2LDYgKzIyMSw3IEBAIHZvaWQgV2ViQ29u
dGV4dDo6cHJvY2Vzc0RpZENsb3NlKFdlYlByb2MKICAgICBtX2Rvd25sb2Fkcy5jbGVhcigpOwog
CiAgICAgbV9kYXRhYmFzZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOworICAgIG1fZ2VvbG9j
YXRpb25NYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKIAogICAgIG1fcHJvY2VzcyA9IDA7CiB9
CkBAIC00NTUsNiArNDYxLDExIEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+KCkpIHsKKyAgICAg
ICAgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
c3dpdGNoIChtZXNzYWdlSUQuZ2V0PFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlOjpLaW5kPigpKSB7
CiAgICAgICAgIGNhc2UgV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OlBvc3RNZXNzYWdlOiB7CiAg
ICAgICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWU7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5o
CShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkod29y
a2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
RG93bmxvYWRQcm94eTsKIGNsYXNzIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OworY2xhc3MgV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQ
YWdlUHJveHk7CiBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKQEAgLTEyMyw2
ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGlu
Z0hhc2g+IHBkZkFuZFBvc3RTY3JpcHRNSU1FVHlwZXMoKTsKIAogICAgIFdlYkRhdGFiYXNlTWFu
YWdlclByb3h5KiBkYXRhYmFzZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YWJh
c2VNYW5hZ2VyUHJveHkuZ2V0KCk7IH0KKyAgICBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSog
Z2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2dlb2xvY2F0aW9uTWFu
YWdlclByb3h5LmdldCgpOyB9CiAKICAgICBzdHJ1Y3QgU3RhdGlzdGljcyB7CiAgICAgICAgIHVu
c2lnbmVkIHdrVmlld0NvdW50OwpAQCAtMTkwLDYgKzE5Miw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2NsZWFyQXBwbGljYXRpb25DYWNoZUZvck5ld1dlYlByb2Nlc3M7CiAKICAgICBSZWZQdHI8
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+IG1fZGF0YWJhc2VNYW5hZ2VyUHJveHk7CisgICAgUmVm
UHRyPFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PiBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5
OwogCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIGJvb2wgbV9zaG91bGRQYWludE5hdGl2ZUNvbnRy
b2xzOwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVk
ZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2Vz
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5PiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYkNvbnRleHQq
IGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eShjb250ZXh0KSk7Cit9CisKK1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQorICAgIDogbV9pc1Vw
ZGF0aW5nKGZhbHNlKQorICAgICwgbV9jb250ZXh0KGNvbnRleHQpCit7Cit9CisKK1dlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5Ojp+V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKQoreworfQor
Cit2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBz
dG9wVXBkYXRpbmcoKTsKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6aW5p
dGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLR2VvbG9jYXRpb25Qcm92aWRlciogcHJvdmlkZXIpCit7
CisgICAgbV9wcm92aWRlci5pbml0aWFsaXplKHByb3ZpZGVyKTsKK30KKwordm9pZCBXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDaGFuZ2VQb3NpdGlvbihXZWJHZW9sb2Nh
dGlvblBvc2l0aW9uKiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIGNoZWNrIGZvciBhIHZhbGlkIHBy
b2Nlc3M/CisgICAgbV9jb250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkdlb2xv
Y2F0aW9uTWFuYWdlcjo6RGlkQ2hhbmdlUG9zaXRpb24ocG9zaXRpb24tPmRhdGEoKSksIDApOwor
fQorCit2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Ojpwcm92aWRlckRpZEZhaWxUb0Rl
dGVybWluZVBvc2l0aW9uKCkKK3sKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIGNoZWNrIGZvciBhIHZhbGlkIHByb2Nlc3M/
CisgICAgbV9jb250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6RGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oKSwgMCk7Cit9CisKK3ZvaWQgV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMp
OworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpzdGFydFVwZGF0aW5nKCkK
K3sKKyAgICBpZiAobV9pc1VwZGF0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3Zp
ZGVyLnN0YXJ0VXBkYXRpbmcodGhpcyk7CisgICAgbV9pc1VwZGF0aW5nID0gdHJ1ZTsKK30KKwor
dm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c3RvcFVwZGF0aW5nKCkKK3sKKyAgICBp
ZiAoIW1faXNVcGRhdGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm92aWRlci5zdG9w
VXBkYXRpbmcodGhpcyk7CisgICAgbV9pc1VwZGF0aW5nID0gZmFsc2U7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlfaAorI2RlZmluZSBX
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNp
bmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblByb3ZpZGVyLmgi
CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKyAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7CisgICAg
Y2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNv
bnRleHQ7CitjbGFzcyBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOworCitjbGFzcyBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRp
YyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlR2VvbG9jYXRpb25NYW5hZ2VyOworCisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250
ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKTsKKworICAg
IHZvaWQgaW52YWxpZGF0ZSgpOworICAgIHZvaWQgY2xlYXJDb250ZXh0KCkgeyBtX2NvbnRleHQg
PSAwOyB9CisKKyAgICB2b2lkIGluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS0dlb2xvY2F0aW9u
UHJvdmlkZXIqKTsKKworICAgIHZvaWQgcHJvdmlkZXJEaWRDaGFuZ2VQb3NpdGlvbihXZWJHZW9s
b2NhdGlvblBvc2l0aW9uKik7CisgICAgdm9pZCBwcm92aWRlckRpZEZhaWxUb0RldGVybWluZVBv
c2l0aW9uKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitw
cml2YXRlOgorICAgIGV4cGxpY2l0IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KFdlYkNvbnRl
eHQqKTsKKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsg
fQorCisgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworICAgIHZvaWQgc3RhcnRVcGRh
dGluZygpOworICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7CisKKyAgICBib29sIG1faXNVcGRhdGlu
ZzsKKworICAgIFdlYkNvbnRleHQqIG1fY29udGV4dDsKKyAgICBXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyIG1fcHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5X2gKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZp
c2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMg
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkgeworICAgIFN0YXJ0VXBkYXRpbmcoKTsKKyAgICBTdG9wVXBkYXRpbmcoKTsKK30K
SW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCShy
ZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
V2ViR2VvbG9jYXRpb25Qcm92aWRlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5j
bHVkZSAiV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25Qcm92aWRlcjo6c3RhcnRVcGRhdGluZyhXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eSogZ2VvbG9jYXRpb25NYW5hZ2VyKQoreworICAgIGlmICghbV9jbGll
bnQuc3RhcnRVcGRhdGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuc3RhcnRV
cGRhdGluZyh0b0FQSShnZW9sb2NhdGlvbk1hbmFnZXIpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsK
K30KKwordm9pZCBXZWJHZW9sb2NhdGlvblByb3ZpZGVyOjpzdG9wVXBkYXRpbmcoV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkqIGdlb2xvY2F0aW9uTWFuYWdlcikKK3sKKyAgICBpZiAoIW1fY2xp
ZW50LnN0b3BVcGRhdGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuc3RvcFVw
ZGF0aW5nKHRvQVBJKGdlb2xvY2F0aW9uTWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkdl
b2xvY2F0aW9uUHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJH
ZW9sb2NhdGlvblByb3ZpZGVyLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJHZW9sb2NhdGlvblByb3ZpZGVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJfaAorI2RlZmluZSBXZWJH
ZW9sb2NhdGlvblByb3ZpZGVyX2gKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUg
IldLR2VvbG9jYXRpb25NYW5hZ2VyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OworCitj
bGFzcyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxXS0dlb2xvY2F0
aW9uUHJvdmlkZXI+IHsKK3B1YmxpYzoKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkqKTsKKyAgICB2b2lkIHN0b3BVcGRhdGluZyhXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eSopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyX2gKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAkocmV2aXNpb24gNzUyNjQpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYsNyArMjI2LDggQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dD4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeT4oKQogICAgICAgICB8fCBtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eT4oKQotICAgICAgICB8
fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHk+KCkpIHsKKyAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dl
YkRhdGFiYXNlTWFuYWdlclByb3h5PigpCisgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4oKSkgewogICAgICAgICBt
X2NvbnRleHQtPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw4IEBAIGNsYXNzIFdlYkRhdGFi
YXNlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5Owog
Y2xhc3MgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViRnJhbWVQcm94eTsK
K2NsYXNzIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OworY2xhc3MgV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbjsKIGNsYXNzIFdlYkluc3BlY3RvclByb3h5OwogY2xhc3MgV2ViTmF2aWdhdGlvbkRh
dGE7CiBjbGFzcyBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOwpAQCAtNzEsNiArNzMsOCBAQCBXS19B
RERfQVBJX01BUFBJTkcoV0tEb3dubG9hZFJlZiwgRG93bmxvCiBXS19BRERfQVBJX01BUFBJTkco
V0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmLCBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJv
eHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmLCBXZWJGcmFt
ZVBvbGljeUxpc3RlbmVyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tGcmFtZVJlZiwgV2Vi
RnJhbWVQcm94eSkKK1dLX0FERF9BUElfTUFQUElORyhXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiwg
V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkpCitXS19BRERfQVBJX01BUFBJTkcoV0tHZW9sb2Nh
dGlvblBvc2l0aW9uUmVmLCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uKQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLTmF2aWdhdGlvbkRhdGFSZWYsIFdlYk5hdmlnYXRpb25EYXRhKQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiwgV2ViT3BlblBhbmVsUGFyYW1ldGVycykK
IFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmLCBXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuY3BwCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MSwzICsxNjEsOCBAQCBXS0RhdGFiYXNl
TWFuYWdlclJlZiBXS0NvbnRleHRHZXREYXRhYmFzCiB7CiAgICAgcmV0dXJuIHRvQVBJKHRvSW1w
bChjb250ZXh0UmVmKS0+ZGF0YWJhc2VNYW5hZ2VyUHJveHkoKSk7CiB9CisKK1dLR2VvbG9jYXRp
b25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldEdlb2xvY2F0aW9uTWFuYWdlcihXS0NvbnRleHRSZWYg
Y29udGV4dFJlZikKK3sKKyAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5nZW9s
b2NhdGlvbk1hbmFnZXJQcm94eSgpKTsKK30KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5oCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsNiArMTIxLDcgQEAgV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0Q2xlYXJSZXNvdXJjZUNhYwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q2xlYXJB
cHBsaWNhdGlvbkNhY2hlKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIAogV0tfRVhQT1JUIFdLRGF0
YWJhc2VNYW5hZ2VyUmVmIFdLQ29udGV4dEdldERhdGFiYXNlTWFuYWdlcihXS0NvbnRleHRSZWYg
Y29udGV4dCk7CitXS19FWFBPUlQgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0
R2VvbG9jYXRpb25NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIAogI2lmZGVmIF9fY3Bs
dXNwbHVzCiB9CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFu
YWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2Nh
dGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgIldLR2VvbG9jYXRpb25NYW5hZ2VyLmgiCisKKyNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oIgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0dlb2xvY2F0aW9uTWFuYWdl
ckdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5OjpBUElUeXBlKTsKK30KKwordm9pZCBXS0dlb2xvY2F0aW9uTWFuYWdlclNldFByb3ZpZGVy
KFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlclJlZiwgY29uc3QgV0tH
ZW9sb2NhdGlvblByb3ZpZGVyKiB3a1Byb3ZpZGVyKQoreworICAgIGlmICh3a1Byb3ZpZGVyICYm
IHdrUHJvdmlkZXItPnZlcnNpb24pCisgICAgICAgIHJldHVybjsKKyAgICB0b0ltcGwoZ2VvbG9j
YXRpb25NYW5hZ2VyUmVmKS0+aW5pdGlhbGl6ZVByb3ZpZGVyKHdrUHJvdmlkZXIpOworfQorCit2
b2lkIFdLR2VvbG9jYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRDaGFuZ2VQb3NpdGlvbihXS0dlb2xv
Y2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXJSZWYsIFdLR2VvbG9jYXRpb25Qb3Np
dGlvblJlZiBwb3NpdGlvblJlZikKK3sKKyAgICB0b0ltcGwoZ2VvbG9jYXRpb25NYW5hZ2VyUmVm
KS0+cHJvdmlkZXJEaWRDaGFuZ2VQb3NpdGlvbih0b0ltcGwocG9zaXRpb25SZWYpKTsKK30KKwor
dm9pZCBXS0dlb2xvY2F0aW9uTWFuYWdlclByb3ZpZGVyRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRp
b24oV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyUmVmKQoreworICAg
IHRvSW1wbChnZW9sb2NhdGlvbk1hbmFnZXJSZWYpLT5wcm92aWRlckRpZEZhaWxUb0RldGVybWlu
ZVBvc2l0aW9uKCk7Cit9CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0
aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2Vv
bG9jYXRpb25NYW5hZ2VyLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0dlb2xvY2F0aW9uTWFuYWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXS0dlb2xvY2F0aW9uTWFuYWdlcl9oCisjZGVmaW5lIFdLR2Vv
bG9jYXRpb25NYW5hZ2VyX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLy8gUHJvdmlkZXIuCit0eXBl
ZGVmIHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2spKFdL
R2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdG9wVXBkYXRp
bmdDYWxsYmFjaykoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKworc3RydWN0IFdLR2VvbG9jYXRpb25Qcm92aWRlciB7
CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKKyAg
ICBXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXJ0VXBkYXRpbmc7CisgICAgV0tHZW9sb2NhdGlvblByb3ZpZGVyU3Rv
cFVwZGF0aW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wVXBkYXRpbmc7
Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tHZW9sb2NhdGlvblByb3ZpZGVyIFdLR2VvbG9jYXRpb25Q
cm92aWRlcjsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLR2VvbG9jYXRpb25NYW5hZ2VyR2V0VHlw
ZUlEKCk7CisKK1dLX0VYUE9SVCB2b2lkIFdLR2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIo
V0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBjb25zdCBXS0dlb2xv
Y2F0aW9uUHJvdmlkZXIqIHByb3ZpZGVyKTsKKworV0tfRVhQT1JUIHZvaWQgV0tHZW9sb2NhdGlv
bk1hbmFnZXJQcm92aWRlckRpZENoYW5nZVBvc2l0aW9uKFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVm
IGdlb2xvY2F0aW9uTWFuYWdlciwgV0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmIHBvc2l0aW9uKTsK
K1dLX0VYUE9SVCB2b2lkIFdLR2VvbG9jYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRGYWlsVG9EZXRl
cm1pbmVQb3NpdGlvbihXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXIp
OworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tHZW9sb2Nh
dGlvbk1hbmFnZXJfaCAqLwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2Nh
dGlvblBvc2l0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXS0dlb2xvY2F0aW9uUG9zaXRpb24uaCIK
KworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUG9zaXRp
b24uaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tHZW9sb2NhdGlv
blBvc2l0aW9uR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbjo6QVBJVHlwZSk7Cit9CisKK1dLR2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dlb2xv
Y2F0aW9uUG9zaXRpb25DcmVhdGUoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBk
b3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCit7CisgICAgUmVmUHRyPFdlYkdlb2xv
Y2F0aW9uUG9zaXRpb24+IHBvc2l0aW9uID0gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRl
KHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpOworICAgIHJldHVybiB0
b0FQSShwb3NpdGlvbi5yZWxlYXNlKCkucmVsZWFzZVJlZigpKTsKK30KSW5kZXg6IFdlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oCShyZXZpc2lvbiAw
KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLR2VvbG9j
YXRpb25Qb3NpdGlvbl9oCisjZGVmaW5lIFdLR2VvbG9jYXRpb25Qb3NpdGlvbl9oCisKKyNpbmNs
dWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIg
eworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS0dlb2xvY2F0aW9uUG9zaXRpb25HZXRU
eXBlSUQoKTsKKworV0tfRVhQT1JUIFdLR2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dlb2xvY2F0
aW9uUG9zaXRpb25DcmVhdGUoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3Vi
bGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30K
KyNlbmRpZgorCisjZW5kaWYgLyogV0tHZW9sb2NhdGlvblBvc2l0aW9uX2ggKi8KSW5kZXg6IFdl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmgJKHJldmlzaW9uIDc1MjY0KQorKysgV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV2ViS2l0Mi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw4IEBACiAj
aW5jbHVkZSA8V2ViS2l0Mi9XS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuaD4KICNpbmNsdWRlIDxX
ZWJLaXQyL1dLRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRnJhbWVQb2xpY3lMaXN0ZW5l
ci5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaD4KKyNpbmNsdWRl
IDxXZWJLaXQyL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tN
dXRhYmxlQXJyYXkuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLTXV0YWJsZURpY3Rpb25hcnkuaD4K
ICNpbmNsdWRlIDxXZWJLaXQyL1dLTmF2aWdhdGlvbkRhdGEuaD4KSW5kZXg6IFdlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0z
MDgsNiArMzA4LDE2IEBACiAJCUJDMDMyREQxMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQYWdlUHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDMy
RENCMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQYWdlUHJveHkuaCAqLzsgfTsKIAkJQkMwMzJERDMx
MEY0Mzg5RjAwNThDMTVBIC8qIFdlYlByb2Nlc3NNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkRDRDEwRjQzODlGMDA1OEMxNUEgLyog
V2ViUHJvY2Vzc01hbmFnZXIuaCAqLzsgfTsKIAkJQkMwMzJERDUxMEY0Mzg5RjAwNThDMTVBIC8q
IFdlYlByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMwMzJEQ0YxMEY0Mzg5RjAwNThDMTVBIC8qIFdlYlByb2Nlc3NQcm94eS5oICov
OyB9OworCQlCQzBFNUZFNTEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBFNUZF
MzEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmggKi87IH07CisJCUJD
MEU1RkU2MTJENjk3MTYwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwRTVGRTQxMkQ2OTcx
NjAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAgKi87IH07CisJCUJDMEU2MDYx
MTJENkJBOTEwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwRTYw
NUYxMkQ2QkE5MTAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CisJCUJDMEU2MDYyMTJENkJBOTEwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlv
bk1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMwRTYwNjAxMkQ2QkE5MTAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdl
ck1lc3NhZ2VzLmggKi87IH07CisJCUJDMEU2MDczMTJENkJDMjAwMDEyQTcyQSAvKiBXZWJHZW9s
b2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzBFNjA3MTEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bi5oICovOyB9OworCQlCQzBFNjA3NDEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzBFNjA3MjEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAg
Ki87IH07CisJCUJDMEU2MTgyMTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzBFNjE4MDEyRDZDQjFEMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlCQzBFNjE4MzEyRDZD
QjFEMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwRTYxODExMkQ2Q0Ix
RDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsgfTsK
KwkJQkMwRTYxOTgxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwRTYxOTYxMkQ2
Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQkMwRTYxOTkxMkQ2Q0QxMjAwMTJBNzJB
IC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBFNjE5NzEyRDZDRDEyMDAxMkE3MkEgLyogV0tHZW9sb2Nh
dGlvblBvc2l0aW9uLmNwcCAqLzsgfTsKIAkJQkMxMTFBNUExMTJGNEZCQjAwMzM3QkFCIC8qIFdl
YkNocm9tZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzExMUE1MzExMkY0RkJCMDAzMzdCQUIgLyogV2ViQ2hyb21lQ2xpZW50LmNwcCAq
LzsgfTsKIAkJQkMxMTFBNUIxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTEx
QTU0MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5jcHAgKi87IH07CiAJ
CUJDMTExQTVEMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJEcmFnQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQTU2MTEyRjRGQkIwMDMz
N0JBQiAvKiBXZWJEcmFnQ2xpZW50LmNwcCAqLzsgfTsKQEAgLTMzOCw2ICszNDgsMTAgQEAKIAkJ
QkMxNzc1M0YxMThCQUJGMDAwN0Q5RTlBIC8qIEdlbmVyaWNDYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxNzc1M0UxMThCQUJGMDAwN0Q5
RTlBIC8qIEdlbmVyaWNDYWxsYmFjay5oICovOyB9OwogCQlCQzFBN0M1ODExMzZFMTlDMDBGQjcx
NjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzFBN0M1NzExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVy
LmggKi87IH07CiAJCUJDMUI0MTk4MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFC
NDE5NzExRDQxRDU3MDAxMUU4REQgLyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDMUJFMUUwMTJENTRBNDEw
MDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdl
b2xvY2F0aW9uQ2xpZW50LmggKi87IH07CisJCUJDMUJFMUUxMTJENTRBNDEwMDA0QTIyOCAvKiBX
ZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzFCRTFERjEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25D
bGllbnQuY3BwICovOyB9OworCQlCQzFCRTFGMjEyRDU0REJEMDAwNEEyMjggLyogV2ViR2VvbG9j
YXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMxQkUxRjAxMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIu
aCAqLzsgfTsKKwkJQkMxQkUxRjMxMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJv
dmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkMxQkUxRjExMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwICov
OyB9OwogCQlCQzFERDdCMjExNERDMzk2MDA1QURBRjMgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFERDdC
MTExNERDMzk2MDA1QURBRjMgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggKi87IH07CiAJCUJD
MURGRThGMTJCMzFDQTgwMDVERjczMCAvKiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFERkU4RDEyQjMx
Q0E4MDA1REY3MzAgLyogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJQkMxREZFQTQxMkIzMUY4NzAwNURG
NzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMURGRUEyMTJCMzFGODcwMDVERjczMCAv
KiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggKi87IH07CkBAIC00MTksNiArNDMz
LDEwIEBACiAJCUJDNEJFRUFDMTIwQTBBNUYwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM0QkVFQUExMjBBMEE1RjAwRkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAg
Ki87IH07CiAJCUJDNEJFRkUxMTIwQTFBNEMwMEZCQTBDNyAvKiBXS0J1bmRsZU5vZGVIYW5kbGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEJFRkRG
MTIwQTFBNEMwMEZCQTBDNyAvKiBXS0J1bmRsZU5vZGVIYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCUJDNEJFRkUyMTIwQTFBNEMwMEZCQTBD
NyAvKiBXS0J1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM0QkVGRTAxMjBBMUE0QzAwRkJBMEM3IC8qIFdLQnVuZGxlTm9k
ZUhhbmRsZS5jcHAgKi87IH07CisJCUJDNTRDQUNCMTJENjQyOTEwMDVDNjdCMCAvKiBXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM1NENBQzkxMkQ2NDI5MTAwNUM2N0IwIC8qIFdlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5LmggKi87IH07CisJCUJDNTRDQUNDMTJENjQyOTEwMDVDNjdCMCAvKiBXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzU0Q0FDQTEyRDY0MjkxMDA1QzY3QjAgLyogV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHkuY3BwICovOyB9OworCQlCQzU0Q0MxMjEyRDY3NEVFMDA1QzY3QjAgLyogV0tH
ZW9sb2NhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNTRDQzEwMTJENjc0RUUwMDVDNjdCMCAvKiBXS0dlb2xvY2F0aW9uTWFuYWdl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQkM1
NENDMTMxMkQ2NzRFRTAwNUM2N0IwIC8qIFdLR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTRDQzExMTJENjc0RUUw
MDVDNjdCMCAvKiBXS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAgKi87IH07CiAJCUJDNTc0NEVGMTI2
MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1cEl0ZW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1NzQ0RUQxMjYzOEZCMzAwNkYwRjEyIC8qIFdlYlBv
cHVwSXRlbS5jcHAgKi87IH07CiAJCUJDNTc0NEYwMTI2MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1
cEl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NTc0NEVFMTI2MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1cEl0ZW0uaCAqLzsgfTsKIAkJQkM1NzQ1
MEMxMjYzQjE1NTAwNkYwRjEyIC8qIFdLQnVuZGxlTm9kZUhhbmRsZVByaXZhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTc0NTBCMTI2M0IxNTUw
MDZGMEYxMiAvKiBXS0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk5NSw2ICsxMDEzLDE4IEBACiAJCUJD
MDMyRENCMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQYWdlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMDMyRENEMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQcm9jZXNzTWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQcm9jZXNzTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAzMkRDRjEwRjQzODlGMDA1OEMxNUEgLyogV2Vi
UHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlByb2Nl
c3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzBFNUZFMzEyRDY5NzE2
MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCQzBFNUZFNDEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5h
Z2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdlb2xvY2F0
aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMEU2MDQ4MTJE
NkI2MzcwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzBFNjA1RjEyRDZCQTkxMDAxMkE3MkEgLyogV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMEU2MDYwMTJENkJBOTEwMDEyQTcy
QSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCQzBFNjA3MTEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHZW9s
b2NhdGlvblBvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMEU2MDcy
MTJENkJDMjAwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzBFNjE1MjEyRDZDQUM4MDAxMkE3MkEgLyog
V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDMEU2MTgwMTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMEU2MTgxMTJENkNCMUQwMDEy
QTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMwRTYxOTYxMkQ2Q0QxMjAwMTJBNzJB
IC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS0dlb2xvY2F0aW9uUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQkMwRTYxOTcxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0dlb2xvY2F0aW9uUG9zaXRp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzExMUE1MzExMkY0RkJCMDAz
MzdCQUIgLyogV2ViQ2hyb21lQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkNocm9tZUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDMTExQTU0MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTExQTU2MTEyRjRGQkIwMDMz
N0JBQiAvKiBXZWJEcmFnQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkRyYWdDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTAyNSw2ICsxMDU1LDEwIEBACiAJCUJDMTc3NTNFMTE4QkFCRjAwMDdEOUU5QSAvKiBHZW5lcmlj
Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VuZXJpY0NhbGxi
YWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMUE3QzU3MTEzNkUxOUMwMEZC
NzE2NyAvKiBQcm9jZXNzTGF1bmNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHJvY2Vzc0xhdW5jaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMUI0
MTk3MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlUGFnZVByaXZhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQkMxQkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0
aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdlb2xvY2F0
aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMUJFMURGMTJENTRB
NDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHZW9sb2NhdGlvbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDMUJFMUYwMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9sb2Nh
dGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdlb2xv
Y2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMxQkUxRjEx
MkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMUREN0IxMTE0REMzOTYwMDVBREFGMyAvKiBX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
MURGRThEMTJCMzFDQTgwMDVERjczMCAvKiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxREZFOEUxMkIzMUNBODAwNURGNzMw
IC8qIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMTA5LDYgKzExNDMsMTAgQEAKIAkJQkM0QkVFQUExMjBBMEE1
RjAwRkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzRCRUZERjEyMEExQTRDMDBGQkEwQzcgLyogV0tC
dW5kbGVOb2RlSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVu
ZGxlTm9kZUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzRCRUZFMDEy
MEExQTRDMDBGQkEwQzcgLyogV0tCdW5kbGVOb2RlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlTm9kZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDNTRDQUM5MTJENjQyOTEwMDVDNjdCMCAvKiBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
QzU0Q0FDQTEyRDY0MjkxMDA1QzY3QjAgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzU0Q0MxMDEyRDY3
NEVFMDA1QzY3QjAgLyogV0tHZW9sb2NhdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tHZW9sb2NhdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQkM1NENDMTExMkQ2NzRFRTAwNUM2N0IwIC8qIFdLR2VvbG9jYXRpb25NYW5h
Z2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLR2VvbG9jYXRp
b25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NzQ0RUQxMjYz
OEZCMzAwNkYwRjEyIC8qIFdlYlBvcHVwSXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJQb3B1cEl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzU3NDRFRTEyNjM4RkIzMDA2RjBGMTIgLyogV2ViUG9wdXBJdGVtLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBvcHVwSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzU3NDUwQjEyNjNCMTU1MDA2RjBGMTIgLyogV0tCdW5kbGVOb2RlSGFu
ZGxlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZU5v
ZGVIYW5kbGVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjM0LDYg
KzE2NzIsOCBAQAogCQkJCTFBMkMzMDZGMTJENTU1NDUwMDYzREFBMiAvKiBDb250ZXh0TWVudVN0
YXRlLmggKi8sCiAJCQkJMEZCNjU5MjIxMjA4QjREQjAwNDQ4MTZDIC8qIERyYXdpbmdBcmVhSW5m
by5oICovLAogCQkJCTc2MkI3NDgxMTIwQkJBMDEwMDgxOTMzOSAvKiBGb250U21vb3RoaW5nTGV2
ZWwuaCAqLywKKwkJCQlCQzBFNjA3MjEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbi5jcHAgKi8sCisJCQkJQkMwRTYwNzExMkQ2QkMyMDAwMTJBNzJBIC8qIFdlYkdlb2xv
Y2F0aW9uUG9zaXRpb24uaCAqLywKIAkJCQlCQ0NGNkIyMzEyQzkzRTdBMDA4RjlDMzUgLyogSW1h
Z2VPcHRpb25zLmggKi8sCiAJCQkJQkM2NDY5NkQxMURCRTYwMzAwNjQ1NUIwIC8qIEltbXV0YWJs
ZUFycmF5LmNwcCAqLywKIAkJCQlCQzY0Njk2RTExREJFNjAzMDA2NDU1QjAgLyogSW1tdXRhYmxl
QXJyYXkuaCAqLywKQEAgLTE4NTQsNiArMTg5NCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1
MTJGNTg4NjEyQTg4MzQ3MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb24gKi8sCiAJCQkJMUE2MTYx
NEMxMjc3OThCNTAwM0FDRDg2IC8qIERvd25sb2FkcyAqLywKKwkJCQlCQzBFNUZDQjEyRDY5NkRE
MDAxMkE3MkEgLyogR2VvbG9jYXRpb24gKi8sCiAJCQkJQkMyMDRFREYxMUM4M0U3MjAwOEYzMzc1
IC8qIEluamVjdGVkQnVuZGxlICovLAogCQkJCTFBNkZBMDFDMTFFMTUyNjMwMERCMTM3MSAvKiBt
YWMgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCkBAIC0x
ODYyLDggKzE5MDMsOCBAQAogCQkJCTFBNkZBMzE1MTFFMzkyMzYwMERCMTM3MSAvKiBXZWJLaXRN
YWluLmNwcCAqLywKIAkJCQlCQzExMUFFMzExMkY1QzI2MDAzMzdCQUIgLyogV2ViUHJvY2Vzcy5j
cHAgKi8sCiAJCQkJQkMwMzJEOTExMEY0MzdBRjAwNThDMTVBIC8qIFdlYlByb2Nlc3MuaCAqLywK
LQkJCQkxQTZGQTAxRjExRTE1Mjg3MDBEQjEzNzEgLyogV2ViUHJvY2Vzc01haW4uaCAqLywKIAkJ
CQlCQzMwNjZCOTEyNUE0MzYzMDBFNzEyNzggLyogV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywK
KwkJCQkxQTZGQTAxRjExRTE1Mjg3MDBEQjEzNzEgLyogV2ViUHJvY2Vzc01haW4uaCAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gV2ViUHJvY2VzczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0xODg4LDYgKzE5MjksOCBAQAogCQkJCTFBNDMzRjBDMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJF
cnJvcnMuaCAqLywKIAkJCQlCQzExMUE1ODExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwICovLAogCQkJCUJDMDMyRDZBMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJGcmFt
ZUxvYWRlckNsaWVudC5oICovLAorCQkJCUJDMUJFMURGMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJH
ZW9sb2NhdGlvbkNsaWVudC5jcHAgKi8sCisJCQkJQkMxQkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8q
IFdlYkdlb2xvY2F0aW9uQ2xpZW50LmggKi8sCiAJCQkJQkMxMTFBNTkxMTJGNEZCQjAwMzM3QkFC
IC8qIFdlYkluc3BlY3RvckNsaWVudC5jcHAgKi8sCiAJCQkJQkMwMzJENkQxMEY0Mzc4RDAwNThD
MTVBIC8qIFdlYkluc3BlY3RvckNsaWVudC5oICovLAogCQkJCTFDOEUyNTZCMTI3MERFMzgwMEJD
N0JEMCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAgKi8sCkBAIC0xOTk5LDYgKzIw
NDIsMTEgQEAKIAkJCQlCQ0U0Njk3NjEyMTRGMjdCMDAwQjk4RUIgLyogV2ViRnJhbWVMaXN0ZW5l
clByb3h5LmggKi8sCiAJCQkJQkMxMTFCMEExMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJv
eHkuY3BwICovLAogCQkJCUJDOUIzODlGMTBGNTM4QkUwMDQ0M0ExNSAvKiBXZWJGcmFtZVByb3h5
LmggKi8sCisJCQkJQkM1NENBQ0ExMkQ2NDI5MTAwNUM2N0IwIC8qIFdlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5LmNwcCAqLywKKwkJCQlCQzU0Q0FDOTEyRDY0MjkxMDA1QzY3QjAgLyogV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHkuaCAqLywKKwkJCQlCQzBFNjE1MjEyRDZDQUM4MDAxMkE3MkEg
LyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJQkMxQkUx
RjExMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwICovLAorCQkJ
CUJDMUJFMUYwMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvblByb3ZpZGVyLmggKi8s
CiAJCQkJQkNGNjlGODQxMTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3RvcnlDbGllbnQuY3BwICov
LAogCQkJCUJDRjY5Rjg1MTE3NkNENkYwMDQ3MUE1MiAvKiBXZWJIaXN0b3J5Q2xpZW50LmggKi8s
CiAJCQkJMUM4RTI4MzMxMjc1RDczODAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclByb3h5LmNwcCAq
LywKQEAgLTIwNzIsMTkgKzIxMjAsMjMgQEAKIAkJCQkxQUI3RDc4QjEyODhDRDlBMDBDRkQwOEMg
LyogV0tEb3dubG9hZC5oICovLAogCQkJCUJDRTQ2OTU3MTIxNEVERjQwMDBCOThFQiAvKiBXS0Zv
cm1TdWJtaXNzaW9uTGlzdGVuZXIuY3BwICovLAogCQkJCUJDRTQ2OTU4MTIxNEVERjQwMDBCOThF
QiAvKiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuaCAqLywKLQkJCQlCQzFERkU4RTEyQjMxQ0E4
MDA1REY3MzAgLyogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgKi8sCi0JCQkJQkMxREZF
OEQxMkIzMUNBODAwNURGNzMwIC8qIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaCAqLywKLQkJ
CQlCQzg1N0ZFNTEyQjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcCAq
LywKLQkJCQlCQzg1N0ZFNDEyQjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJz
LmggKi8sCiAJCQkJQkNEMDEzOTgxMTBGQTQyMDAwM0I4QTY3IC8qIFdLRnJhbWUuY3BwICovLAog
CQkJCUJDRDAxMzk3MTEwRkE0MjAwMDNCOEE2NyAvKiBXS0ZyYW1lLmggKi8sCiAJCQkJQkNCOUY2
QTQxMTIzREQwRDAwQTEzN0UwIC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAgKi8sCiAJCQkJ
QkNCOUY2QTMxMTIzREQwRDAwQTEzN0UwIC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5oICovLAor
CQkJCUJDNTRDQzExMTJENjc0RUUwMDVDNjdCMCAvKiBXS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAg
Ki8sCisJCQkJQkM1NENDMTAxMkQ2NzRFRTAwNUM2N0IwIC8qIFdLR2VvbG9jYXRpb25NYW5hZ2Vy
LmggKi8sCisJCQkJQkMwRTYxOTcxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3Np
dGlvbi5jcHAgKi8sCisJCQkJQkMwRTYxOTYxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRp
b25Qb3NpdGlvbi5oICovLAogCQkJCTFDOEUyOTM4MTI3NjFFNUIwMEJDN0JEMCAvKiBXS0luc3Bl
Y3Rvci5jcHAgKi8sCiAJCQkJMUM4RTI5MzcxMjc2MUU1QjAwQkM3QkQwIC8qIFdLSW5zcGVjdG9y
LmggKi8sCiAJCQkJQzA5QUU1RTgxMjUyNTdDMjAwMjU4MjVEIC8qIFdLTmF0aXZlRXZlbnQuaCAq
LywKIAkJCQlCQ0Y2OUZBODExNzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5jcHAg
Ki8sCiAJCQkJQkNGNjlGQTcxMTc2RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuaCAq
LywKKwkJCQlCQzg1N0ZFNTEyQjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJz
LmNwcCAqLywKKwkJCQlCQzg1N0ZFNDEyQjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJh
bWV0ZXJzLmggKi8sCisJCQkJQkMxREZFOEUxMkIzMUNBODAwNURGNzMwIC8qIFdLT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIuY3BwICovLAorCQkJCUJDMURGRThEMTJCMzFDQTgwMDVERjczMCAvKiBX
S09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggKi8sCiAJCQkJQkNENTk3RDQxMTJCNTZEQzAwRUM4
QzIzIC8qIFdLUGFnZS5jcHAgKi8sCiAJCQkJQkNENTk3RDUxMTJCNTZEQzAwRUM4QzIzIC8qIFdL
UGFnZS5oICovLAogCQkJCUJDN0I2MzM2MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5j
cHAgKi8sCkBAIC0yMTAwLDYgKzIxNTIsMTYgQEAKIAkJCXBhdGggPSBDOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQkMwRTVGQ0IxMkQ2OTZERDAwMTJBNzJBIC8qIEdlb2xv
Y2F0aW9uICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlC
QzBFNUZFNDEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCAqLywK
KwkJCQlCQzBFNUZFMzEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgg
Ki8sCisJCQkJQkMwRTYwNDgxMkQ2QjYzNzAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gR2VvbG9jYXRpb247CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlCQzExMUFERTExMkY1QjlBMDAzMzdCQUIgLyog
bWFjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI0OTUs
NiArMjU1NywxMCBAQAogCQkJCUY2MkE3NkIzMTJCMUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFz
ZU1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCUY2MkE3NkI0MTJCMUIyNUYwMDA1RjFCNiAvKiBX
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJRjYyQTc2
QjUxMkIxQjI1RjAwMDVGMUI2IC8qIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAq
LywKKwkJCQlCQzBFNjA1RjEyRDZCQTkxMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlCQzBFNjA2MDEyRDZCQTkxMDAxMkE3MkEgLyog
V2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQlCQzBFNjE4MDEyRDZDQjFE
MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAorCQkJCUJDMEU2MTgxMTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMUM4RTJBMzExMjc3ODUyNDAwQkM3QkQwIC8qIFdl
Ykluc3BlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUM4RTJBMzIxMjc3ODUyNDAw
QkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VzLmggKi8sCiAJCQkJMUNBOEI5NDMxMjdDODgy
QTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAg
LTI4NTUsOCArMjkyMSwxNyBAQAogCQkJCTkzRkM2N0MwMTJEM0NDRjIwMEE2MDYxMCAvKiBFbmNv
ZGVyQWRhcHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1RTREQTQxMkQzQkQzRDAwOTlBMkJC
IC8qIFRleHRDaGVja2VyU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxOEQyQ0FFMTJENTE1
M0IwMDNCQjkzQiAvKiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlCQzFCRTFFMDEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUJDMUJFMUYyMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlv
blByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTJDMzA3MTEyRDU1NTQ1MDA2M0RBQTIg
LyogQ29udGV4dE1lbnVTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RDJDQ0IxMkQ1MURG
QjAwM0JCOTNCIC8qIFNlc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM1NENBQ0Ix
MkQ2NDI5MTAwNUM2N0IwIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlCQzU0Q0MxMjEyRDY3NEVFMDA1QzY3QjAgLyogV0tHZW9sb2NhdGlvbk1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDMEU1RkU1MTJENjk3MTYwMDEyQTcyQSAvKiBXZWJH
ZW9sb2NhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDMEU2MDYyMTJENkJBOTEw
MDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQkMwRTYwNzMxMkQ2QkMyMDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24u
aCBpbiBIZWFkZXJzICovLAorCQkJCUJDMEU2MTgzMTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzBFNjE5
ODEyRDZDRDEyMDAxMkE3MkEgLyogV0tHZW9sb2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKQEAgLTMyODksNyArMzM2NCwxNiBAQAogCQkJCTkzRkM2N0JEMTJEM0NDRjIwMEE2MDYxMCAv
KiBEZWNvZGVyQWRhcHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0ZDNjdCRjEyRDNDQ0Yy
MDBBNjA2MTAgLyogRW5jb2RlckFkYXB0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4RDJD
QUQxMkQ1MTUzQjAwM0JCOTNCIC8qIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQkMxQkUxRTExMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDMUJFMUYzMTJENTREQkQwMDA0QTIyOCAvKiBX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxOEQyQ0NBMTJE
NTFERkIwMDNCQjkzQiAvKiBTZXNzaW9uU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM1
NENBQ0MxMkQ2NDI5MTAwNUM2N0IwIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUJDNTRDQzEzMTJENjc0RUUwMDVDNjdCMCAvKiBXS0dlb2xvY2F0
aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzBFNUZFNjEyRDY5NzE2MDAxMkE3
MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDMEU2
MDYxMTJENkJBOTEwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMwRTYwNzQxMkQ2QkMyMDAwMTJBNzJBIC8qIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMwRTYxODIxMkQ2
Q0IxRDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDMEU2MTk5MTJENkNEMTIwMDEyQTcyQSAvKiBXS0dl
b2xvY2F0aW9uUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlci5oIgog
I2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIgpAQCAtMTEw
LDYgKzExMSw3IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAgICwgbV9uZXR3b3JrQWNj
ZXNzTWFuYWdlcigwKQogI2VuZGlmCiAgICAgLCBtX3RleHRDaGVja2VyU3RhdGUoKQorICAgICwg
bV9nZW9sb2NhdGlvbk1hbmFnZXIodGhpcykKIHsKICNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lF
UykKICAgICAvLyBJbml0aWFsaXplIG91ciBwbGF0Zm9ybSBzdHJhdGVnaWVzLgpAQCAtNTA4LDYg
KzUxMCwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlcj4oKSkgeworICAgICAgICBtX2dlb2xvY2F0aW9u
TWFuYWdlci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc0luamVjdGVkQnVuZGxlPigpKSB7CiAgICAgICAgIGlmICghbV9pbmpl
Y3RlZEJ1bmRsZSkKICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAkocmV2aXNpb24gNzUyNjQpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5
LmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5r
VGFibGUuaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJX
ZWJQYWdlR3JvdXBQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMTA2LDggKzEwNywxMiBAQCBwdWJsaWM6CiAKICAgICBi
b29sIHNob3VsZFVzZUN1c3RvbVJlcHJlc2VudGF0aW9uRm9yTUlNRVR5cGUoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSkgY29uc3QgeyByZXR1cm4gbV9taW1lVHlwZXNXaXRoQ3VzdG9tUmVwcmVzZW50
YXRpb25zLmNvbnRhaW5zKG1pbWVUeXBlKTsgfQogCisgICAgLy8gVGV4dCBDaGVja2luZwogICAg
IGNvbnN0IFRleHRDaGVja2VyU3RhdGUmIHRleHRDaGVja2VyU3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX3RleHRDaGVja2VyU3RhdGU7IH0KIAorICAgIC8vIEdlb2xvY2F0aW9uCisgICAgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyJiBnZW9sb2NhdGlvbk1hbmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0
aW9uTWFuYWdlcjsgfQorCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKIApAQCAtMTgyLDYg
KzE4Nyw3IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4g
bV9taW1lVHlwZXNXaXRoQ3VzdG9tUmVwcmVzZW50YXRpb25zOwogCiAgICAgVGV4dENoZWNrZXJT
dGF0ZSBtX3RleHRDaGVja2VyU3RhdGU7CisgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyIG1fZ2Vv
bG9jYXRpb25NYW5hZ2VyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJL
aXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25N
YW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlv
bi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExMCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCIKKworI2lu
Y2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJX
ZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCisjaWYgRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uQ29udHJvbGxl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25FcnJvci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgor
I2VuZGlmCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpXZWJHZW9sb2NhdGlvbk1hbmFnZXIoV2ViUHJvY2Vz
cyogcHJvY2VzcykKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQoreworfQorCitXZWJHZW9sb2Nh
dGlvbk1hbmFnZXI6On5XZWJHZW9sb2NhdGlvbk1hbmFnZXIoKQoreworfQorCit2b2lkIFdlYkdl
b2xvY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFu
YWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCit2b2lk
IFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6cmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCit7
CisjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICBib29sIHdhc0VtcHR5
ID0gbV9wYWdlU2V0LmlzRW1wdHkoKTsKKworICAgIG1fcGFnZVNldC5hZGQocGFnZSk7CisgICAg
CisgICAgaWYgKHdhc0VtcHR5KQorICAgICAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OlN0YXJ0VXBkYXRpbmcoKSwg
MCk7CisjZW5kaWYKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnVucmVnaXN0ZXJX
ZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCit7CisjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikKKyAgICBtX3BhZ2VTZXQucmVtb3ZlKHBhZ2UpOworCisgICAgaWYgKG1fcGFnZVNldC5p
c0VtcHR5KCkpCisgICAgICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6U3RvcFVwZGF0aW5nKCksIDApOworI2VuZGlm
Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3NpdGlvbihjb25z
dCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhJiBkYXRhKQoreworI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+IHBv
c2l0aW9uID0gR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKGRhdGEudGltZXN0YW1wLCBkYXRh
LmxhdGl0dWRlLCBkYXRhLmxvbmdpdHVkZSwgZGF0YS5hY2N1cmFjeSk7CisKKyAgICBIYXNoU2V0
PFdlYlBhZ2UqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3BhZ2VTZXQuYmVnaW4oKTsKKyAgICBI
YXNoU2V0PFdlYlBhZ2UqPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9wYWdlU2V0LmVuZCgpOwor
ICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgV2ViUGFnZSogcGFnZSA9ICpp
dDsKKyAgICAgICAgaWYgKHBhZ2UtPmNvcmVQYWdlKCkpCisgICAgICAgICAgICBwYWdlLT5jb3Jl
UGFnZSgpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+cG9zaXRpb25DaGFuZ2VkKHBvc2l0aW9u
LmdldCgpKTsKKyAgICB9CisjZW5kaWYKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6
OmRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKCkKK3sKKyNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKQorICAgIC8vIEZJWE1FOiBBZGQgbG9jYWxpemVkIGVycm9yIHN0cmluZy4K
KyAgICBSZWZQdHI8R2VvbG9jYXRpb25FcnJvcj4gZXJyb3IgPSBHZW9sb2NhdGlvbkVycm9yOjpj
cmVhdGUoR2VvbG9jYXRpb25FcnJvcjo6UG9zaXRpb25VbmF2YWlsYWJsZSwgLyogTG9jYWxpemVk
IGVycm9yIHN0cmluZyAqLyBTdHJpbmcoIiIpKTsKKworICAgIEhhc2hTZXQ8V2ViUGFnZSo+Ojpj
b25zdF9pdGVyYXRvciBpdCA9IG1fcGFnZVNldC5iZWdpbigpOworICAgIEhhc2hTZXQ8V2ViUGFn
ZSo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3BhZ2VTZXQuZW5kKCk7CisgICAgZm9yICg7IGl0
ICE9IGVuZDsgKytpdCkgeworICAgICAgICBXZWJQYWdlKiBwYWdlID0gKml0OworICAgICAgICBp
ZiAocGFnZS0+Y29yZVBhZ2UoKSkKKyAgICAgICAgICAgIHBhZ2UtPmNvcmVQYWdlKCktPmdlb2xv
Y2F0aW9uQ29udHJvbGxlcigpLT5lcnJvck9jY3VycmVkKGVycm9yLmdldCgpKTsKKyAgICB9Cisj
ZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCShyZXZp
c2lvbiAwKQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9u
TWFuYWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJfaAorI2RlZmluZSBXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJfaAorCisjaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKyAgICBjbGFzcyBBcmd1bWVudERlY29k
ZXI7CisgICAgY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYlByb2Nlc3M7CitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJHZW9sb2NhdGlvbk1h
bmFnZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkdlb2xvY2F0aW9uTWFuYWdlcik7
CitwdWJsaWM6CisgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyKFdlYlByb2Nlc3MqKTsKKyAgICB+
V2ViR2VvbG9jYXRpb25NYW5hZ2VyKCk7CisKKyAgICB2b2lkIHJlZ2lzdGVyV2ViUGFnZShXZWJQ
YWdlKik7CisgICAgdm9pZCB1bnJlZ2lzdGVyV2ViUGFnZShXZWJQYWdlKik7CisKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgorICAgIC8vIEltcGxl
bWVudGVkIGluIGdlbmVyYXRlZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKKworICAgIHZvaWQgZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbjo6RGF0YSYpOworICAgIHZvaWQgZGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24o
KTsKKworICAgIFdlYlByb2Nlc3MqIG1fcHJvY2VzczsKKyAgICBIYXNoU2V0PFdlYlBhZ2UqPiBt
X3BhZ2VTZXQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkdl
b2xvY2F0aW9uTWFuYWdlcl9oCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24v
V2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4J
KHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9j
YXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI2IEBACisj
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisj
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYkdl
b2xvY2F0aW9uTWFuYWdlciB7CisgICAgRGlkQ2hhbmdlUG9zaXRpb24oV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpEYXRhIHBvc2l0aW9uKTsKKyAgICBEaWRGYWlsVG9EZXRlcm1pbmVQ
b3NpdGlvbigpOworfQpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Ykdlb2xvY2F0aW9uQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCShyZXZpc2lvbiAwKQorKysg
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNw
cAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJX
ZWJHZW9sb2NhdGlvbkNsaWVudC5oIgorCisjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikKKworI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdl
Ykdlb2xvY2F0aW9uQ2xpZW50OjpnZW9sb2NhdGlvbkRlc3Ryb3llZCgpCit7CisgICAgV2ViUHJv
Y2Vzczo6c2hhcmVkKCkuZ2VvbG9jYXRpb25NYW5hZ2VyKCkudW5yZWdpc3RlcldlYlBhZ2UobV9w
YWdlKTsKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6
c3RhcnRVcGRhdGluZygpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuZ2VvbG9jYXRpb25N
YW5hZ2VyKCkucmVnaXN0ZXJXZWJQYWdlKG1fcGFnZSk7Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRp
b25DbGllbnQ6OnN0b3BVcGRhdGluZygpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuZ2Vv
bG9jYXRpb25NYW5hZ2VyKCkudW5yZWdpc3RlcldlYlBhZ2UobV9wYWdlKTsKK30KKwordm9pZCBX
ZWJHZW9sb2NhdGlvbkNsaWVudDo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpCit7Cit9CisK
K0dlb2xvY2F0aW9uUG9zaXRpb24qIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24o
KQoreworICAgIHJldHVybiAwOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpyZXF1
ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiopCit7Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25D
bGllbnQ6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KEdlb2xvY2F0aW9uKikKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKQpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xv
Y2F0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViR2VvbG9jYXRpb25D
bGllbnRfaAorI2RlZmluZSBXZWJHZW9sb2NhdGlvbkNsaWVudF9oCisKKyNpZiBFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorCisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNs
aWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3Mg
V2ViR2VvbG9jYXRpb25DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnQg
eworcHVibGljOgorICAgIFdlYkdlb2xvY2F0aW9uQ2xpZW50KFdlYlBhZ2UqIHBhZ2UpCisgICAg
ICAgIDogbV9wYWdlKHBhZ2UpCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICB2aXJ0dWFs
IHZvaWQgZ2VvbG9jYXRpb25EZXN0cm95ZWQoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVw
ZGF0aW5nKCk7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOworICAgIHZpcnR1YWwg
dm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCk7CisKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
Okdlb2xvY2F0aW9uUG9zaXRpb24qIGxhc3RQb3NpdGlvbigpOworCisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CisgICAgdmlydHVhbCB2
b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CisKKyAg
ICBXZWJQYWdlKiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisKKyNlbmRpZiAvLyBXZWJHZW9s
b2NhdGlvbkNsaWVudF9oCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAkocmV2aXNpb24gNzUyNjQpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIldlYkV2ZW50
LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUu
aCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIldlYkltYWdl
LmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yQ2xp
ZW50LmgiCkBAIC0xNDksMTAgKzE1MCwxMyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBh
Z2VJRCwgY29uc3QgCiAgICAgcGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2Vi
Q29udGV4dE1lbnVDbGllbnQodGhpcyk7CiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0g
bmV3IFdlYkVkaXRvckNsaWVudCh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0g
bmV3IFdlYkRyYWdDbGllbnQodGhpcyk7CisgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGll
bnQgPSBuZXcgV2ViR2VvbG9jYXRpb25DbGllbnQodGhpcyk7CisjaWYgRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKKyAgICBwYWdlQ2xpZW50cy5iYWNrRm9yd2FyZENsaWVudCA9IFdl
YkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUodGhpcyk7CisjZW5kaWYKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNw
ZWN0b3JDbGllbnQodGhpcyk7CiAjZW5kaWYKLSAgICBwYWdlQ2xpZW50cy5iYWNrRm9yd2FyZENs
aWVudCA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUodGhpcyk7CiAgICAgbV9wYWdl
ID0gYWRvcHRQdHIobmV3IFBhZ2UocGFnZUNsaWVudHMpKTsKIAogICAgIC8vIFF0IGRvZXMgbm90
IHlldCBjYWxsIHNldElzSW5XaW5kb3cuIFVudGlsIGl0IGRvZXMsIGp1c3QgbGVhdmUKSW5kZXg6
IFdlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvd2luL1dl
YktpdDIudmNwcm9qCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvd2luL1dlYktpdDIudmNw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC01OTEsNiArNTkxLDE0IEBACiAJCQkJPgogCQkJPC9GaWxl
PgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxXZWJHZW9sb2NhdGlvblBv
c2l0aW9uLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cU2hhcmVkXFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFdlYkltYWdlLmNwcCIKIAkJ
CQk+CiAJCQk8L0ZpbGU+CkBAIC0xMjQ3LDYgKzEyNTUsMjIgQEAKIAkJCQk8L0ZpbGU+CiAJCQk8
L0ZpbHRlcj4KIAkJCTxGaWx0ZXIKKwkJCQlOYW1lPSJHZW9sb2NhdGlvbiIKKwkJCQk+CisJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uXFdlYkdl
b2xvY2F0aW9uTWFuYWdlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uXFdlYkdlb2xvY2F0aW9u
TWFuYWdlci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlvblxXZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVz
c2FnZXMuaW4iCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQk8L0ZpbHRlcj4KKwkJCTxGaWx0ZXIK
IAkJCQlOYW1lPSJXZWJDb3JlU3VwcG9ydCIKIAkJCQk+CiAJCQkJPEZpbGUKQEAgLTEzMDYsNiAr
MTMzMCwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJHZW9sb2NhdGlvbkNsaWVudC5j
cHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYkdlb2xvY2F0aW9uQ2xpZW50LmgiCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9j
ZXNzXFdlYkNvcmVTdXBwb3J0XFdlYkluc3BlY3RvckNsaWVudC5jcHAiCiAJCQkJCT4KIAkJCQk8
L0ZpbGU+CkBAIC0yMTU5LDYgKzIxOTEsMjYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cVUlQcm9jZXNzXFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIu
Y3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxV
SVByb2Nlc3NcV2ViR2VvbG9jYXRpb25Qcm92aWRlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViSGlzdG9yeUNsaWVudC5j
cHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMjI4MSwxMCArMjMzMyw2IEBACiAJCQk8RmlsdGVy
CiAJCQkJTmFtZT0iQVBJIgogCQkJCT4KLQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFVJUHJvY2Vzc1xBUElcQ1xXS0RhdGFiYXNlTWFuYWdlci5jcHAiCi0JCQkJCT4KLQkJCQk8L0Zp
bGU+CiAJCQkJPEZpbHRlcgogCQkJCQlOYW1lPSJDIgogCQkJCQk+CkBAIC0yMzYxLDYgKzI0MDks
MTAgQEAKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgogCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tEYXRhYmFzZU1hbmFnZXIuY3BwIgorCQkJCQkJPgor
CQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vz
c1xBUElcQ1xXS0RhdGFiYXNlTWFuYWdlci5oIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CkBAIC0y
Mzk3LDYgKzI0NDksMjIgQEAKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgogCQkJCQk8RmlsZQorCQkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tHZW9sb2NhdGlvbk1hbmFnZXIu
Y3BwIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0dlb2xvY2F0aW9uTWFuYWdlci5oIgorCQkJCQkJPgor
CQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vz
c1xBUElcQ1xXS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+
CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0dl
b2xvY2F0aW9uUG9zaXRpb24uaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgorCQkJCQk8RmlsZQog
CQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tJbnNwZWN0b3IuY3BwIgog
CQkJCQkJPgogCQkJCQk8L0ZpbGU+CkBAIC0yOTk5LDYgKzMwNjcsMjIgQEAKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmgiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xX
ZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78292</attachid>
            <date>2011-01-07 17:21:18 -0800</date>
            <delta_ts>2011-01-10 11:21:07 -0800</delta_ts>
            <desc>Step 1</desc>
            <filename>patchForBZ.diff</filename>
            <type>text/plain</type>
            <size>98256</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NTI4OSkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTA2IEBACisyMDExLTAxLTA3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBH
ZW9sb2NhdGlvbiBmZWF0dXJlcyB3b3JrIGluIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMDc4CisKKyAgICAgICAgU3RlcCAxIC0gQWRk
IGVub3VnaCBzdXBwb3J0IHRvIGdldCBwb3NpdGlvbiBkYXRhIGZyb20gYSBwcm92aWRlci4KKyAg
ICAgICAgVGhpcyBkb2VzIG5vdCBpbmNsdWRlIHBlcm1pc3Npb24gc3VwcG9ydC4KKworICAgICAg
ICAqIFBsYXRmb3JtL0NvcmVJUEMvSGFuZGxlTWVzc2FnZS5oOgorICAgICAgICBBZGQgI2luY2x1
ZGUgb2YgQXJndW1lbnRzLmggZm9yIENvcmVJUEM6OkluIGFuZCBPdXQgZGVmaW5pdGlvbnMuCisK
KyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oOgorICAgICAgICBBZGQgbmV3
IG1lc3NhZ2UgdHlwZXMuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAg
ICAgICogU2hhcmVkL0FQSU9iamVjdC5oOgorICAgICAgICBBZGQgbmV3IEFQSSB0eXBlcy4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcDogQWRkZWQuCisgICAg
ICAgICogU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaDogQWRkZWQuCisgICAgICAgIElu
dGVybmFsIHBvc2l0aW9uIHJlcHJlc2VudGF0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICBBZGQgY2FzdHMgZm9yIG5ldyBBUEkgdHlwZXMuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLR2Vv
bG9jYXRpb25NYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
R2VvbG9jYXRpb25NYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XZWJLaXQyLmg6CisgICAgICAgIEFkZCBBUEkgdG8gcHJvdmlkZSBhbmQgY29udHJvbCBn
ZW9sb2NhdGlvbiBkYXRhLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dDo6fldlYkNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0
Ojpwcm9jZXNzRGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRSZWNl
aXZlTWVzc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29udGV4dDo6Z2VvbG9jYXRpb25NYW5hZ2VyUHJveHkpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OldlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6On5X
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHk6OmluaXRpYWxpemVQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Ojpwcm92aWRlckRpZENoYW5nZVBvc2l0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlk
RmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OmNsZWFyQ29udGV4dCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUHJvdmlkZXI6OnN0YXJ0VXBkYXRpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblByb3ZpZGVyOjpzdG9wVXBkYXRpbmcpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dlb2xvY2F0aW9uOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dl
Ykdlb2xvY2F0aW9uTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvbk1hbmFnZXI6OldlYkdlb2xvY2F0aW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYkdlb2xvY2F0aW9uTWFuYWdlcjo6fldlYkdlb2xvY2F0aW9uTWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnJlZ2lzdGVyV2ViUGFnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlcjo6dW5yZWdpc3RlcldlYlBhZ2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRGYWlsVG9E
ZXRlcm1pbmVQb3NpdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJH
ZW9sb2NhdGlvbk1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2Nh
dGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25DbGllbnQ6Omdlb2xvY2F0aW9uRGVz
dHJveWVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25DbGllbnQ6OnN0YXJ0VXBk
YXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbkNsaWVudDo6c3RvcFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25DbGllbnQ6OnNldEVuYWJsZUhp
Z2hBY2N1cmFjeSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0
UG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVz
dFBlcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbkNsaWVudDo6Y2Fu
Y2VsUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdl
b2xvY2F0aW9uQ2xpZW50OjpXZWJHZW9sb2NhdGlvbkNsaWVudCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQ
YWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpnZW9sb2NhdGlvbk1hbmFnZXIpOgorICAg
ICAgICBQaXBlIGdlb2xvY2F0aW9uIHBvc2l0aW9ucy9lcnJvcnMgZnJvbSB0aGUgVUlQcm9jZXNz
IHRvIHRoZSBXZWJQcm9jZXNzLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5wcm86CisgICAgICAgICogV2ViS2l0Mi5wcm86CisgICAg
ICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdpbi9X
ZWJLaXQyLnZjcHJvajoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzOgorICAg
ICAgICAgKiB3aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlOgorICAgICAgICBBZGQgbmV3IGZpbGVz
LgorCiAyMDExLTAxLTA3ICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYktpdDIvRGVyaXZlZFNv
dXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJl
dmlzaW9uIDc1MjY0KQorKysgV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNv
cHkpCkBAIC0yNCw2ICsyNCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvUGx1Z2luUHJv
Y2VzcyBcCiAgICAgJChXZWJLaXQyKS9TaGFyZWQvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9X
ZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uIFwKKyAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvR2Vv
bG9jYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdl
YktpdDIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9XZWJQYWdlIFwKQEAgLTQ0LDYgKzQ1LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAg
ICAgV2ViQ29udGV4dCBcCiAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyIFwKICAgICBXZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eSBcCisgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyIFwKKyAgICBXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eSBcCiAgICAgV2ViSW5zcGVjdG9yIFwKICAgICBXZWJJbnNwZWN0
b3JQcm94eSBcCiAgICAgV2ViUGFnZSBcCkluZGV4OiBXZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBy
bwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybwkocmV2aXNpb24gNzUy
NjQpCisrKyBXZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybwkod29ya2luZyBjb3B5KQpAQCAtNzYs
NiArNzYsNyBAQCBkZWZpbmVSZXBsYWNlKG1lc3NhZ2VfcmVjZWl2ZXJfZ2VuZXJhdG9yCiBWUEFU
SCA9IFwKICAgICBQbHVnaW5Qcm9jZXNzIFwKICAgICBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9u
IFwKKyAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMg
XAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQgXAogICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZSBcCkBAIC05NCw2ICs5NSw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFdlYkNvbnRl
eHQubWVzc2FnZXMuaW4gXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlci5tZXNzYWdlcy5pbiBcCiAg
ICAgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAorICAgIFdlYkdlb2xvY2F0
aW9uTWFuYWdlci5tZXNzYWdlcy5pbiBcCisgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4gXAogICAgIFdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBX
ZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbiBcCiAgICAgV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluIFwKSW5kZXg6IFdlYktpdDIvV2ViS2l0Mi5wcm8KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0Mi9XZWJLaXQyLnBybwkocmV2aXNpb24gNzUyNjQpCisrKyBXZWJLaXQyL1dlYktpdDIucHJv
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNiArMTQ1LDcgQEAgSU5DTFVERVBBVEggPSBcCiAgICAg
V2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMgXAog
ICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL3F0IFwKKyAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9u
IFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlIFwKICAgICBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0RPTSBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYyBcCkBA
IC0xNzUsNiArMTc2LDggQEAgV0VCS0lUMl9HRU5FUkFURURfSEVBREVSUyA9IFwKICAgICAkJFdF
QktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkNvbnRleHRNZXNzYWdlcy5oIFwKICAgICAk
JFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2Vz
LmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElS
L1dlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmggXAorICAgICQkV0VCS0lUMl9HRU5FUkFU
RURfU09VUkNFU19ESVIvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKICAg
ICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkluc3BlY3Rvck1lc3NhZ2VzLmgg
XAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViSW5zcGVjdG9yUHJveHlN
ZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlBhZ2VN
ZXNzYWdlcy5oIFwKQEAgLTE5Myw2ICsxOTYsOCBAQCBXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
ID0gXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViQ29udGV4dE1lc3Nh
Z2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2Vi
RGF0YWJhc2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgXAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViR2VvbG9jYXRpb25N
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUi9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAog
ICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViSW5zcGVjdG9yTWVzc2FnZVJl
Y2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJJbnNw
ZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURf
U09VUkNFU19ESVIvV2ViUGFnZU1lc3NhZ2VSZWNlaXZlci5jcHAgXApAQCAtMjY2LDYgKzI3MSw3
IEBAIEhFQURFUlMgKz0gXAogICAgIFNoYXJlZC9XZWJFdmVudC5oIFwKICAgICBTaGFyZWQvV2Vi
RXZlbnRDb252ZXJzaW9uLmggXAogICAgIFNoYXJlZC9XZWJGaW5kT3B0aW9ucy5oIFwKKyAgICBT
aGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIFwKICAgICBTaGFyZWQvV2ViSW1hZ2UuaCBc
CiAgICAgU2hhcmVkL1dlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCBcCiAgICAgU2hhcmVkL1dlYk51
bWJlci5oIFwKQEAgLTI5Niw2ICszMDIsOCBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tEb3dubG9hZC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tGcmFtZS5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tGcmFtZVBvbGljeUxpc3RlbmVyLmggXAorICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFuYWdlci5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tH
ZW9sb2NhdGlvblBvc2l0aW9uLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5o
IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmggXAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggXApAQCAtMzUzLDYgKzM2
MSw4IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJGcmFtZUxpc3RlbmVyUHJveHku
aCBcCiAgICAgVUlQcm9jZXNzL1dlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oIFwKICAgICBV
SVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oIFwKKyAgICBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHkuaCBcCisgICAgVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuaCBc
CiAgICAgVUlQcm9jZXNzL1dlYkhpc3RvcnlDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYklu
c3BlY3RvclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuaCBcCkBAIC0z
NzIsNiArMzgyLDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWQuaCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmggXAor
ICAgIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmggXAogICAg
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3Qu
aCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW0uaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUhpdFRlc3RSZXN1bHQuaCBcCkBAIC00MDgsNiArNDE5LDcgQEAgSEVBREVSUyArPSBcCiAg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBcCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFcnJvcnMuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIFwKKyAgICBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBcCkBAIC00NzYsNiArNDg4LDcgQEAg
U09VUkNFUyArPSBcCiAgICAgU2hhcmVkL1dlYkVycm9yLmNwcCBcCiAgICAgU2hhcmVkL1dlYkV2
ZW50LmNwcCBcCiAgICAgU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAgXAorICAgIFNoYXJl
ZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCBcCiAgICAgU2hhcmVkL1dlYktleWJvYXJkRXZl
bnQuY3BwIFwKICAgICBTaGFyZWQvV2ViSW1hZ2UuY3BwIFwKICAgICBTaGFyZWQvV2ViTW91c2VF
dmVudC5jcHAgXApAQCAtNTA4LDYgKzUyMSw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS0Rvd25sb2FkLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuY3Bw
IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tGcmFtZVBvbGljeUxpc3RlbmVyLmNwcCBcCisgICAg
VUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBcCisgICAgVUlQcm9jZXNz
L0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S0luc3BlY3Rvci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRl
cnMuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5j
cHAgXApAQCAtNTU1LDYgKzU3MCw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJG
cmFtZUxpc3RlbmVyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0
ZW5lclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwIFwKKyAgICBV
SVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwIFwKKyAgICBVSVByb2Nlc3Mv
V2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJIaXN0b3J5Q2xp
ZW50LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcCBcCiAgICAgVUlQ
cm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAgXApAQCAtNTgyLDYgKzU5OSw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2Vy
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIFwKICAgICBXZWJQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwIFwKKyAgICBXZWJQcm9jZXNzL0dl
b2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvRG93
bmxvYWRzL3F0L0Rvd25sb2FkUXQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHAgXApAQCAtNjI0LDYgKzY0Miw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAg
XAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBcCiAg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgXAor
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwIFwK
ICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAgXAog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
Y3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAgXApJbmRleDogV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvSGFuZGxlTWVzc2FnZS5oCShy
ZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw4IEBACiAjaWZuZGVmIEhhbmRsZU1lc3NhZ2Vf
aAogI2RlZmluZSBIYW5kbGVNZXNzYWdlX2gKIAorI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgorCiBu
YW1lc3BhY2UgQ29yZUlQQyB7CiAKIC8vIERpc3BhdGNoIGZ1bmN0aW9ucyB3aXRoIG5vIHJlcGx5
IGFyZ3VtZW50cy4KSW5kZXg6IFdlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgJKHJldmlz
aW9uIDc1MjY0KQorKysgV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOSwxNiArMzksMTggQEAgZW51bSBNZXNzYWdlQ2xhc3MgewogICAgIE1l
c3NhZ2VDbGFzc0RyYXdpbmdBcmVhTGVnYWN5LAogICAgIE1lc3NhZ2VDbGFzc0luamVjdGVkQnVu
ZGxlLAogICAgIE1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlciwKKyAgICBNZXNzYWdlQ2xh
c3NXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJJbnNwZWN0
b3IsCiAgICAgTWVzc2FnZUNsYXNzV2ViUGFnZSwKICAgICBNZXNzYWdlQ2xhc3NXZWJQcm9jZXNz
LAogCiAgICAgLy8gTWVzc2FnZXMgc2VudCBieSB0aGUgd2ViIHByb2Nlc3MgdG8gdGhlIFVJIHBy
b2Nlc3MuCi0gICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFQcm94eUxlZ2FjeSwKICAgICBNZXNz
YWdlQ2xhc3NEb3dubG9hZFByb3h5LAorICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhUHJveHlM
ZWdhY3ksCiAgICAgTWVzc2FnZUNsYXNzV2ViQ29udGV4dCwKICAgICBNZXNzYWdlQ2xhc3NXZWJD
b250ZXh0TGVnYWN5LAogICAgIE1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LAor
ICAgIE1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NX
ZWJJbnNwZWN0b3JQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJQYWdlUHJveHksCiAgICAgTWVz
c2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5LApJbmRleDogV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgJKHJldmlzaW9uIDc1
MjY0KQorKysgV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTY4
LDYgKzY4LDggQEAgcHVibGljOgogICAgICAgICBUeXBlRm9ybVN1Ym1pc3Npb25MaXN0ZW5lciwK
ICAgICAgICAgVHlwZUZyYW1lLAogICAgICAgICBUeXBlRnJhbWVQb2xpY3lMaXN0ZW5lciwKKyAg
ICAgICAgVHlwZUdlb2xvY2F0aW9uUG9zaXRpb24sCisgICAgICAgIFR5cGVHZW9sb2NhdGlvbk1h
bmFnZXIsCiAgICAgICAgIFR5cGVJbnNwZWN0b3IsCiAgICAgICAgIFR5cGVOYXZpZ2F0aW9uRGF0
YSwKICAgICAgICAgVHlwZU9wZW5QYW5lbFBhcmFtZXRlcnMsCkluZGV4OiBXZWJLaXQyL1NoYXJl
ZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJl
ZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvU2hh
cmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKwor
I2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpXZWJHZW9sb2NhdGlv
blBvc2l0aW9uKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdp
dHVkZSwgZG91YmxlIGFjY3VyYWN5KQoreworICAgIG1fZGF0YS50aW1lc3RhbXAgPSB0aW1lc3Rh
bXA7CisgICAgbV9kYXRhLmxhdGl0dWRlID0gbGF0aXR1ZGU7CisgICAgbV9kYXRhLmxvbmdpdHVk
ZSA9IGxvbmdpdHVkZTsKKyAgICBtX2RhdGEuYWNjdXJhY3kgPSBhY2N1cmFjeTsKK30KKworV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbjo6fldlYkdlb2xvY2F0aW9uUG9zaXRpb24oKQoreworfQorCit2
b2lkIFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6
OkluKHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpKTsKK30KKworYm9v
bCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBkZWNvZGVyLCBEYXRhJiBkYXRhKQoreworICAgIHJldHVybiBkZWNvZGVyLT5kZWNv
ZGUoQ29yZUlQQzo6T3V0KGRhdGEudGltZXN0YW1wLCBkYXRhLmxhdGl0dWRlLCBkYXRhLmxvbmdp
dHVkZSwgZGF0YS5hY2N1cmFjeSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6
IFdlYktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgJKHJldmlzaW9uIDApCisrKyBX
ZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25f
aAorI2RlZmluZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uX2gKKworI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgorI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkFyZ3VtZW50RGVj
b2Rlci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBXZWJHZW9sb2NhdGlvblBvc2l0aW9uIDogcHVibGljIEFQSU9iamVjdCB7Citw
dWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVHZW9sb2NhdGlvblBv
c2l0aW9uOworCisgICAgc3RydWN0IERhdGEgeworICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIERhdGEmKTsKKworICAgICAgICBkb3VibGUgdGltZXN0
YW1wOworICAgICAgICBkb3VibGUgbGF0aXR1ZGU7CisgICAgICAgIGRvdWJsZSBsb25naXR1ZGU7
CisgICAgICAgIGRvdWJsZSBhY2N1cmFjeTsKKyAgICB9OworCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbj4gY3JlYXRlKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJs
ZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJHZW9sb2NhdGlvblBvc2l0aW9uKHRpbWVzdGFt
cCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFs
IH5XZWJHZW9sb2NhdGlvblBvc2l0aW9uKCk7CisKKyAgICBkb3VibGUgdGltZXN0YW1wKCkgY29u
c3QgeyByZXR1cm4gbV9kYXRhLnRpbWVzdGFtcDsgfQorICAgIGRvdWJsZSBsYXRpdHVkZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGF0YS5sYXRpdHVkZTsgfQorICAgIGRvdWJsZSBsb25naXR1ZGUoKSBj
b25zdCB7IHJldHVybiBtX2RhdGEubG9uZ2l0dWRlOyB9CisgICAgZG91YmxlIGFjY3VyYWN5KCkg
Y29uc3QgeyByZXR1cm4gbV9kYXRhLmFjY3VyYWN5OyB9CisKKyAgICBjb25zdCBEYXRhJiBkYXRh
KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CisKK3ByaXZhdGU6CisgICAgV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbihkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25n
aXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSk7CisKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIEFQSVR5cGU7IH0KKworICAgIERhdGEgbV9kYXRhOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJHZW9sb2NhdGlvblBvc2l0aW9uX2gKSW5kZXg6
IFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Miw2ICs3Miw4IEBAIHR5cGVkZWYgY29u
c3Qgc3RydWN0IE9wYXF1ZVdLRG93bmxvYWQqIFcKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lciogV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmOwog
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tGcmFtZSogV0tGcmFtZVJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLRnJhbWVQb2xpY3lMaXN0ZW5lciogV0tGcmFtZVBvbGljeUxp
c3RlbmVyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tHZW9sb2NhdGlvbk1hbmFn
ZXIqIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tHZW9sb2NhdGlvblBvc2l0aW9uKiBXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWY7CiB0eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS0luc3BlY3RvciogV0tJbnNwZWN0b3JSZWY7CiB0eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb25EYXRhKiBXS05hdmlnYXRpb25EYXRhUmVm
OwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tPcGVuUGFuZWxQYXJhbWV0ZXJzKiBXS09w
ZW5QYW5lbFBhcmFtZXRlcnNSZWY7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkocmV2
aXNpb24gNzUyNjQpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldlYkNvbnRleHRVc2VyTWVzc2Fn
ZUNvZGVycy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUg
IldlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01hbmFnZXIuaCIK
QEAgLTg3LDYgKzg4LDcgQEAgV2ViQ29udGV4dDo6V2ViQ29udGV4dChQcm9jZXNzTW9kZWwgcHJv
YwogICAgICwgbV9jbGVhclJlc291cmNlQ2FjaGVzRm9yTmV3V2ViUHJvY2VzcyhmYWxzZSkKICAg
ICAsIG1fY2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yTmV3V2ViUHJvY2VzcyhmYWxzZSkKICAgICAs
IG1fZGF0YWJhc2VNYW5hZ2VyUHJveHkoV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0
aGlzKSkKKyAgICAsIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICNpZiBQTEFURk9STShXSU4pCiAgICAgLCBtX3Nob3Vs
ZFBhaW50TmF0aXZlQ29udHJvbHModHJ1ZSkKICNlbmRpZgpAQCAtMTA0LDYgKzEwNiw5IEBAIFdl
YkNvbnRleHQ6On5XZWJDb250ZXh0KCkKIAogICAgIFdlYlByb2Nlc3NNYW5hZ2VyOjpzaGFyZWQo
KS5jb250ZXh0V2FzRGVzdHJveWVkKHRoaXMpOwogCisgICAgbV9nZW9sb2NhdGlvbk1hbmFnZXJQ
cm94eS0+aW52YWxpZGF0ZSgpOworICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHktPmNsZWFy
Q29udGV4dCgpOworCiAjaWZuZGVmIE5ERUJVRwogICAgIHdlYkNvbnRleHRDb3VudGVyLmRlY3Jl
bWVudCgpOwogI2VuZGlmCkBAIC0yMTYsNiArMjIxLDcgQEAgdm9pZCBXZWJDb250ZXh0Ojpwcm9j
ZXNzRGlkQ2xvc2UoV2ViUHJvYwogICAgIG1fZG93bmxvYWRzLmNsZWFyKCk7CiAKICAgICBtX2Rh
dGFiYXNlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CisgICAgbV9nZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogCiAgICAgbV9wcm9jZXNzID0gMDsKIH0KQEAgLTQ1NSw2
ICs0NjEsMTEgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNz
YWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4oKSkgeworICAgICAgICBtX2dlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBzd2l0Y2ggKG1l
c3NhZ2VJRC5nZXQ8V2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OktpbmQ+KCkpIHsKICAgICAgICAg
Y2FzZSBXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6UG9zdE1lc3NhZ2U6IHsKICAgICAgICAgICAg
IFN0cmluZyBtZXNzYWdlTmFtZTsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHJldmlzaW9u
IDc1MjY0KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEb3dubG9hZFBy
b3h5OwogY2xhc3MgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk7CitjbGFzcyBXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBhZ2VQcm94eTsK
IHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwpAQCAtMTIzLDYgKzEyNCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4gcGRm
QW5kUG9zdFNjcmlwdE1JTUVUeXBlcygpOwogCiAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkq
IGRhdGFiYXNlTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhYmFzZU1hbmFnZXJQ
cm94eS5nZXQoKTsgfQorICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KiBnZW9sb2NhdGlv
bk1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHku
Z2V0KCk7IH0KIAogICAgIHN0cnVjdCBTdGF0aXN0aWNzIHsKICAgICAgICAgdW5zaWduZWQgd2tW
aWV3Q291bnQ7CkBAIC0xOTAsNiArMTkyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2xlYXJB
cHBsaWNhdGlvbkNhY2hlRm9yTmV3V2ViUHJvY2VzczsKIAogICAgIFJlZlB0cjxXZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eT4gbV9kYXRhYmFzZU1hbmFnZXJQcm94eTsKKyAgICBSZWZQdHI8V2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHk+IG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHk7CiAKICNpZiBQ
TEFURk9STShXSU4pCiAgICAgYm9vbCBtX3Nob3VsZFBhaW50TmF0aXZlQ29udHJvbHM7CkluZGV4
OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3Bw
CShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJXZWJDb250
ZXh0LmgiCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+
IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KGNv
bnRleHQpKTsKK30KKworV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OldlYkdlb2xvY2F0aW9u
TWFuYWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBtX2lzVXBkYXRpbmcoZmFs
c2UpCisgICAgLCBtX2NvbnRleHQoY29udGV4dCkKK3sKK30KKworV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHk6On5XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSgpCit7Cit9CisKK3ZvaWQgV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQoreworICAgIHN0b3BVcGRhdGlu
ZygpOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Ojppbml0aWFsaXplUHJv
dmlkZXIoY29uc3QgV0tHZW9sb2NhdGlvblByb3ZpZGVyKiBwcm92aWRlcikKK3sKKyAgICBtX3By
b3ZpZGVyLmluaXRpYWxpemUocHJvdmlkZXIpOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5Ojpwcm92aWRlckRpZENoYW5nZVBvc2l0aW9uKFdlYkdlb2xvY2F0aW9uUG9zaXRp
b24qIHBvc2l0aW9uKQoreworICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBGSVhNRTogU2hvdWxkIHRoaXMgY2hlY2sgZm9yIGEgdmFsaWQgcHJvY2Vzcz8KKyAg
ICBtX2NvbnRleHQtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5h
Z2VyOjpEaWRDaGFuZ2VQb3NpdGlvbihwb3NpdGlvbi0+ZGF0YSgpKSwgMCk7Cit9CisKK3ZvaWQg
V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkRmFpbFRvRGV0ZXJtaW5lUG9z
aXRpb24oKQoreworICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICAv
LyBGSVhNRTogU2hvdWxkIHRoaXMgY2hlY2sgZm9yIGEgdmFsaWQgcHJvY2Vzcz8KKyAgICBtX2Nv
bnRleHQtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpE
aWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbigpLCAwKTsKK30KKwordm9pZCBXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKK3Zv
aWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OnN0YXJ0VXBkYXRpbmcoKQoreworICAgIGlm
IChtX2lzVXBkYXRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvdmlkZXIuc3RhcnRV
cGRhdGluZyh0aGlzKTsKKyAgICBtX2lzVXBkYXRpbmcgPSB0cnVlOworfQorCit2b2lkIFdlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5OjpzdG9wVXBkYXRpbmcoKQoreworICAgIGlmICghbV9pc1Vw
ZGF0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3ZpZGVyLnN0b3BVcGRhdGluZyh0
aGlzKTsKKyAgICBtX2lzVXBkYXRpbmcgPSBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1h
bmFnZXJQcm94eS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFdlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIk1l
c3NhZ2VJRC5oIgorI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUHJvdmlkZXIuaCIKKworbmFtZXNw
YWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbnRleHQ7CitjbGFzcyBXZWJH
ZW9sb2NhdGlvblBvc2l0aW9uOworCitjbGFzcyBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSA6
IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5
cGUgPSBUeXBlR2VvbG9jYXRpb25NYW5hZ2VyOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVh
bCB+V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgp
OworICAgIHZvaWQgY2xlYXJDb250ZXh0KCkgeyBtX2NvbnRleHQgPSAwOyB9CisKKyAgICB2b2lk
IGluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS0dlb2xvY2F0aW9uUHJvdmlkZXIqKTsKKworICAg
IHZvaWQgcHJvdmlkZXJEaWRDaGFuZ2VQb3NpdGlvbihXZWJHZW9sb2NhdGlvblBvc2l0aW9uKik7
CisgICAgdm9pZCBwcm92aWRlckRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKCk7CisKKyAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgorICAgIGV4cGxp
Y2l0IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKKworICAgIHZpcnR1
YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAgLy8gSW1wbGVt
ZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcAorICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKKworICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOworICAgIHZvaWQg
c3RvcFVwZGF0aW5nKCk7CisKKyAgICBib29sIG1faXNVcGRhdGluZzsKKworICAgIFdlYkNvbnRl
eHQqIG1fY29udGV4dDsKKyAgICBXZWJHZW9sb2NhdGlvblByb3ZpZGVyIG1fcHJvdmlkZXI7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5X2gKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQorKysgV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisj
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworbWVzc2FnZXMgLT4gV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgeworICAgIFN0
YXJ0VXBkYXRpbmcoKTsKKyAgICBTdG9wVXBkYXRpbmcoKTsKK30KSW5kZXg6IFdlYktpdDIvVUlQ
cm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
VUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCShyZXZpc2lvbiAwKQorKysgV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qcm92
aWRlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViR2VvbG9j
YXRpb25Qcm92aWRlcjo6c3RhcnRVcGRhdGluZyhXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSog
Z2VvbG9jYXRpb25NYW5hZ2VyKQoreworICAgIGlmICghbV9jbGllbnQuc3RhcnRVcGRhdGluZykK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuc3RhcnRVcGRhdGluZyh0b0FQSShnZW9s
b2NhdGlvbk1hbmFnZXIpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwordm9pZCBXZWJHZW9s
b2NhdGlvblByb3ZpZGVyOjpzdG9wVXBkYXRpbmcoV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkq
IGdlb2xvY2F0aW9uTWFuYWdlcikKK3sKKyAgICBpZiAoIW1fY2xpZW50LnN0b3BVcGRhdGluZykK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuc3RvcFVwZGF0aW5nKHRvQVBJKGdlb2xv
Y2F0aW9uTWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3ZpZGVy
LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3Zp
ZGVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJfaAorI2RlZmluZSBXZWJHZW9sb2NhdGlvblByb3ZpZGVy
X2gKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLR2VvbG9jYXRpb25NYW5h
Z2VyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OworCitjbGFzcyBXZWJHZW9sb2NhdGlv
blByb3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxXS0dlb2xvY2F0aW9uUHJvdmlkZXI+IHsKK3B1
YmxpYzoKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkq
KTsKKyAgICB2b2lkIHN0b3BVcGRhdGluZyhXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSopOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJHZW9sb2NhdGlvblBy
b3ZpZGVyX2gKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNp
b24gNzUyNjQpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMjYsNyArMjI2LDggQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNz
V2ViQ29udGV4dD4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNs
YXNzV2ViQ29udGV4dExlZ2FjeT4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eT4oKQotICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+KCkpIHsKKyAgICAgICAg
fHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlclBy
b3h5PigpCisgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4oKSkgewogICAgICAgICBtX2NvbnRleHQtPmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCShyZXZpc2lv
biA3NTI2NCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC01MSw2ICs1MSw4IEBAIGNsYXNzIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5Owog
Y2xhc3MgV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViRnJhbWVQb2xp
Y3lMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViRnJhbWVQcm94eTsKK2NsYXNzIFdlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5OworY2xhc3MgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjsKIGNsYXNzIFdl
Ykluc3BlY3RvclByb3h5OwogY2xhc3MgV2ViTmF2aWdhdGlvbkRhdGE7CiBjbGFzcyBXZWJPcGVu
UGFuZWxQYXJhbWV0ZXJzOwpAQCAtNzEsNiArNzMsOCBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tE
b3dubG9hZFJlZiwgRG93bmxvCiBXS19BRERfQVBJX01BUFBJTkcoV0tGb3JtU3VibWlzc2lvbkxp
c3RlbmVyUmVmLCBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJv
eHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tGcmFtZVJlZiwgV2ViRnJhbWVQcm94eSkKK1dLX0FE
RF9BUElfTUFQUElORyhXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiwgV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkpCitXS19BRERfQVBJX01BUFBJTkcoV0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmLCBX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTmF2aWdhdGlvbkRh
dGFSZWYsIFdlYk5hdmlnYXRpb25EYXRhKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLT3BlblBhbmVs
UGFyYW1ldGVyc1JlZiwgV2ViT3BlblBhbmVsUGFyYW1ldGVycykKIFdLX0FERF9BUElfTUFQUElO
RyhXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
clByb3h5KQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCShyZXZpc2lv
biA3NTI2NCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE2MSwzICsxNjEsOCBAQCBXS0RhdGFiYXNlTWFuYWdlclJlZiBXS0NvbnRl
eHRHZXREYXRhYmFzCiB7CiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+ZGF0
YWJhc2VNYW5hZ2VyUHJveHkoKSk7CiB9CisKK1dLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIFdLQ29u
dGV4dEdldEdlb2xvY2F0aW9uTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyAg
ICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5nZW9sb2NhdGlvbk1hbmFnZXJQcm94
eSgpKTsKK30KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCShyZXZpc2lvbiA3
NTI2NCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjEsNiArMTIxLDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q2xlYXJSZXNv
dXJjZUNhYwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q2xlYXJBcHBsaWNhdGlvbkNhY2hlKFdL
Q29udGV4dFJlZiBjb250ZXh0KTsKIAogV0tfRVhQT1JUIFdLRGF0YWJhc2VNYW5hZ2VyUmVmIFdL
Q29udGV4dEdldERhdGFiYXNlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CitXS19FWFBP
UlQgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0R2VvbG9jYXRpb25NYW5hZ2Vy
KFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CkluZGV4OiBX
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCShy
ZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFn
ZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgIldLR2VvbG9jYXRpb25NYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNp
bmNsdWRlICJXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oIgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OworCitXS1R5cGVJRCBXS0dlb2xvY2F0aW9uTWFuYWdlckdldFR5cGVJRCgpCit7Cisg
ICAgcmV0dXJuIHRvQVBJKFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpBUElUeXBlKTsKK30K
Kwordm9pZCBXS0dlb2xvY2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKFdLR2VvbG9jYXRpb25NYW5h
Z2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlclJlZiwgY29uc3QgV0tHZW9sb2NhdGlvblByb3ZpZGVy
KiB3a1Byb3ZpZGVyKQoreworICAgIGlmICh3a1Byb3ZpZGVyICYmIHdrUHJvdmlkZXItPnZlcnNp
b24pCisgICAgICAgIHJldHVybjsKKyAgICB0b0ltcGwoZ2VvbG9jYXRpb25NYW5hZ2VyUmVmKS0+
aW5pdGlhbGl6ZVByb3ZpZGVyKHdrUHJvdmlkZXIpOworfQorCit2b2lkIFdLR2VvbG9jYXRpb25N
YW5hZ2VyUHJvdmlkZXJEaWRDaGFuZ2VQb3NpdGlvbihXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBn
ZW9sb2NhdGlvbk1hbmFnZXJSZWYsIFdLR2VvbG9jYXRpb25Qb3NpdGlvblJlZiBwb3NpdGlvblJl
ZikKK3sKKyAgICB0b0ltcGwoZ2VvbG9jYXRpb25NYW5hZ2VyUmVmKS0+cHJvdmlkZXJEaWRDaGFu
Z2VQb3NpdGlvbih0b0ltcGwocG9zaXRpb25SZWYpKTsKK30KKwordm9pZCBXS0dlb2xvY2F0aW9u
TWFuYWdlclByb3ZpZGVyRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oV0tHZW9sb2NhdGlvbk1h
bmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyUmVmKQoreworICAgIHRvSW1wbChnZW9sb2NhdGlv
bk1hbmFnZXJSZWYpLT5wcm92aWRlckRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKCk7Cit9Cklu
ZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFuYWdlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25NYW5hZ2VyLmgJ
KHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFu
YWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXS0dlb2xvY2F0aW9uTWFuYWdlcl9oCisjZGVmaW5lIFdLR2VvbG9jYXRpb25NYW5hZ2VyX2gK
KworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0
ZXJuICJDIiB7CisjZW5kaWYKKworLy8gUHJvdmlkZXIuCit0eXBlZGVmIHZvaWQgKCpXS0dlb2xv
Y2F0aW9uUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2spKFdLR2VvbG9jYXRpb25NYW5hZ2Vy
UmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVm
IHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdG9wVXBkYXRpbmdDYWxsYmFjaykoV0tHZW9s
b2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKKworc3RydWN0IFdLR2VvbG9jYXRpb25Qcm92aWRlciB7CisgICAgaW50ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKKyAgICBXS0dlb2xvY2F0aW9uUHJv
dmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0
VXBkYXRpbmc7CisgICAgV0tHZW9sb2NhdGlvblByb3ZpZGVyU3RvcFVwZGF0aW5nQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wVXBkYXRpbmc7Cit9OwordHlwZWRlZiBzdHJ1
Y3QgV0tHZW9sb2NhdGlvblByb3ZpZGVyIFdLR2VvbG9jYXRpb25Qcm92aWRlcjsKKworV0tfRVhQ
T1JUIFdLVHlwZUlEIFdLR2VvbG9jYXRpb25NYW5hZ2VyR2V0VHlwZUlEKCk7CisKK1dLX0VYUE9S
VCB2b2lkIFdLR2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIoV0tHZW9sb2NhdGlvbk1hbmFn
ZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBjb25zdCBXS0dlb2xvY2F0aW9uUHJvdmlkZXIqIHBy
b3ZpZGVyKTsKKworV0tfRVhQT1JUIHZvaWQgV0tHZW9sb2NhdGlvbk1hbmFnZXJQcm92aWRlckRp
ZENoYW5nZVBvc2l0aW9uKFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdl
ciwgV0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmIHBvc2l0aW9uKTsKK1dLX0VYUE9SVCB2b2lkIFdL
R2VvbG9jYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbihXS0dl
b2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXIpOworCisjaWZkZWYgX19jcGx1
c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tHZW9sb2NhdGlvbk1hbmFnZXJfaCAqLwpJ
bmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRp
b24uY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2Nh
dGlvblBvc2l0aW9uLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJXS0dlb2xvY2F0aW9uUG9zaXRpb24uaCIKKworI2luY2x1ZGUgIldLQVBJ
Q2FzdC5oIgorI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKwordXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tHZW9sb2NhdGlvblBvc2l0aW9uR2V0VHlwZUlE
KCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6QVBJVHlwZSk7
Cit9CisKK1dLR2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVh
dGUoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBk
b3VibGUgYWNjdXJhY3kpCit7CisgICAgUmVmUHRyPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IHBv
c2l0aW9uID0gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKHRpbWVzdGFtcCwgbGF0aXR1
ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpOworICAgIHJldHVybiB0b0FQSShwb3NpdGlvbi5yZWxl
YXNlKCkucmVsZWFzZVJlZigpKTsKK30KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
R2VvbG9jYXRpb25Qb3NpdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLR2VvbG9jYXRpb25Qb3NpdGlvbl9oCisj
ZGVmaW5lIFdLR2VvbG9jYXRpb25Qb3NpdGlvbl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFz
ZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VY
UE9SVCBXS1R5cGVJRCBXS0dlb2xvY2F0aW9uUG9zaXRpb25HZXRUeXBlSUQoKTsKKworV0tfRVhQ
T1JUIFdLR2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGUo
ZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3Vi
bGUgYWNjdXJhY3kpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYg
LyogV0tHZW9sb2NhdGlvblBvc2l0aW9uX2ggKi8KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dlYktpdDIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJL
aXQyLmgJKHJldmlzaW9uIDc1MjY0KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0
Mi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw4IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9X
S0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRnJhbWUuaD4K
ICNpbmNsdWRlIDxXZWJLaXQyL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5oPgorI2luY2x1ZGUgPFdl
YktpdDIvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLR2VvbG9j
YXRpb25Qb3NpdGlvbi5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tNdXRhYmxlQXJyYXkuaD4KICNp
bmNsdWRlIDxXZWJLaXQyL1dLTXV0YWJsZURpY3Rpb25hcnkuaD4KICNpbmNsdWRlIDxXZWJLaXQy
L1dLTmF2aWdhdGlvbkRhdGEuaD4KSW5kZXg6IFdlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMDgsNiArMzA4LDE2IEBACiAJ
CUJDMDMyREQxMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQYWdlUHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDMyRENCMTBGNDM4OUYwMDU4QzE1
QSAvKiBXZWJQYWdlUHJveHkuaCAqLzsgfTsKIAkJQkMwMzJERDMxMEY0Mzg5RjAwNThDMTVBIC8q
IFdlYlByb2Nlc3NNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzAzMkRDRDEwRjQzODlGMDA1OEMxNUEgLyogV2ViUHJvY2Vzc01hbmFnZXIu
aCAqLzsgfTsKIAkJQkMwMzJERDUxMEY0Mzg5RjAwNThDMTVBIC8qIFdlYlByb2Nlc3NQcm94eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMzJEQ0Yx
MEY0Mzg5RjAwNThDMTVBIC8qIFdlYlByb2Nlc3NQcm94eS5oICovOyB9OworCQlCQzBFNUZFNTEy
RDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBFNUZFMzEyRDY5NzE2MDAxMkE3MkEg
LyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmggKi87IH07CisJCUJDMEU1RkU2MTJENjk3MTYwMDEy
QTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwRTVGRTQxMkQ2OTcxNjAwMTJBNzJBIC8qIFdlYkdl
b2xvY2F0aW9uTWFuYWdlci5jcHAgKi87IH07CisJCUJDMEU2MDYxMTJENkJBOTEwMDEyQTcyQSAv
KiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwRTYwNUYxMkQ2QkE5MTAwMTJBNzJB
IC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUJD
MEU2MDYyMTJENkJBOTEwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwRTYwNjAx
MkQ2QkE5MTAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmggKi87IH07
CisJCUJDMEU2MDczMTJENkJDMjAwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBFNjA3MTEy
RDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovOyB9OworCQlCQzBF
NjA3NDEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBFNjA3MjEyRDZCQzIw
MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgKi87IH07CisJCUJDMEU2MTgy
MTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzBFNjE4MDEyRDZDQjFEMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlCQzBFNjE4MzEyRDZDQjFEMDAxMkE3MkEgLyogV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwRTYxODExMkQ2Q0IxRDAwMTJBNzJBIC8qIFdlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKKwkJQkMwRTYxOTgxMkQ2Q0Qx
MjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwRTYxOTYxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdL
R2VvbG9jYXRpb25Qb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1Ymxp
YywgKTsgfTsgfTsKKwkJQkMwRTYxOTkxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Q
b3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzBFNjE5NzEyRDZDRDEyMDAxMkE3MkEgLyogV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCAq
LzsgfTsKIAkJQkMxMTFBNUExMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkNocm9tZUNsaWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUE1MzEx
MkY0RkJCMDAzMzdCQUIgLyogV2ViQ2hyb21lQ2xpZW50LmNwcCAqLzsgfTsKIAkJQkMxMTFBNUIx
MTJGNEZCQjAwMzM3QkFCIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQTU0MTEyRjRGQkIwMDMzN0JB
QiAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5jcHAgKi87IH07CiAJCUJDMTExQTVEMTEyRjRGQkIw
MDMzN0JBQiAvKiBXZWJEcmFnQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQTU2MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJEcmFnQ2xp
ZW50LmNwcCAqLzsgfTsKQEAgLTMzOCw2ICszNDgsMTAgQEAKIAkJQkMxNzc1M0YxMThCQUJGMDAw
N0Q5RTlBIC8qIEdlbmVyaWNDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMxNzc1M0UxMThCQUJGMDAwN0Q5RTlBIC8qIEdlbmVyaWNDYWxs
YmFjay5oICovOyB9OwogCQlCQzFBN0M1ODExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5j
aGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFB
N0M1NzExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggKi87IH07CiAJCUJDMUI0
MTk4MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFCNDE5NzExRDQxRDU3MDAxMUU4
REQgLyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUJDMUJFMUUwMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9s
b2NhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMxQkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50Lmgg
Ki87IH07CisJCUJDMUJFMUUxMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFC
RTFERjEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwICovOyB9Owor
CQlCQzFCRTFGMjEyRDU0REJEMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25Qcm92aWRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQkUxRjAxMkQ1
NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuaCAqLzsgfTsKKwkJQkMxQkUx
RjMxMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQkUxRjExMkQ1NERCRDAw
MDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwICovOyB9OwogCQlCQzFERDdCMjEx
NERDMzk2MDA1QURBRjMgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFERDdCMTExNERDMzk2MDA1QURBRjMg
LyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggKi87IH07CiAJCUJDMURGRThGMTJCMzFDQTgwMDVE
RjczMCAvKiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFERkU4RDEyQjMxQ0E4MDA1REY3MzAgLyogV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1
YmxpYywgKTsgfTsgfTsKIAkJQkMxREZFQTQxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMURGRUEyMTJCMzFGODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lclByb3h5LmggKi87IH07CkBAIC00MTksNiArNDMzLDEwIEBACiAJCUJDNEJFRUFD
MTIwQTBBNUYwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QkVFQUExMjBBMEE1RjAw
RkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgKi87IH07CiAJCUJDNEJFRkUx
MTIwQTFBNEMwMEZCQTBDNyAvKiBXS0J1bmRsZU5vZGVIYW5kbGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEJFRkRGMTIwQTFBNEMwMEZCQTBDNyAv
KiBXS0J1bmRsZU5vZGVIYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJs
aWMsICk7IH07IH07CiAJCUJDNEJFRkUyMTIwQTFBNEMwMEZCQTBDNyAvKiBXS0J1bmRsZU5vZGVI
YW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM0QkVGRTAxMjBBMUE0QzAwRkJBMEM3IC8qIFdLQnVuZGxlTm9kZUhhbmRsZS5jcHAgKi87IH07
CisJCUJDNTRDQUNCMTJENjQyOTEwMDVDNjdCMCAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1NENB
QzkxMkQ2NDI5MTAwNUM2N0IwIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmggKi87IH07
CisJCUJDNTRDQUNDMTJENjQyOTEwMDVDNjdCMCAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU0
Q0FDQTEyRDY0MjkxMDA1QzY3QjAgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwICov
OyB9OworCQlCQzU0Q0MxMjEyRDY3NEVFMDA1QzY3QjAgLyogV0tHZW9sb2NhdGlvbk1hbmFnZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTRDQzEw
MTJENjc0RUUwMDVDNjdCMCAvKiBXS0dlb2xvY2F0aW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQkM1NENDMTMxMkQ2NzRFRTAwNUM2
N0IwIC8qIFdLR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTRDQzExMTJENjc0RUUwMDVDNjdCMCAvKiBXS0dlb2xv
Y2F0aW9uTWFuYWdlci5jcHAgKi87IH07CiAJCUJDNTc0NEVGMTI2MzhGQjMwMDZGMEYxMiAvKiBX
ZWJQb3B1cEl0ZW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM1NzQ0RUQxMjYzOEZCMzAwNkYwRjEyIC8qIFdlYlBvcHVwSXRlbS5jcHAgKi87IH07
CiAJCUJDNTc0NEYwMTI2MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1cEl0ZW0uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTc0NEVFMTI2MzhGQjMwMDZG
MEYxMiAvKiBXZWJQb3B1cEl0ZW0uaCAqLzsgfTsKIAkJQkM1NzQ1MEMxMjYzQjE1NTAwNkYwRjEy
IC8qIFdLQnVuZGxlTm9kZUhhbmRsZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTc0NTBCMTI2M0IxNTUwMDZGMEYxMiAvKiBXS0J1bmRs
ZU5vZGVIYW5kbGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTk5NSw2ICsxMDEzLDE4IEBACiAJCUJDMDMyRENCMTBGNDM4OUYwMDU4
QzE1QSAvKiBXZWJQYWdlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViUGFnZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDMyRENEMTBG
NDM4OUYwMDU4QzE1QSAvKiBXZWJQcm9jZXNzTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJQcm9jZXNzTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzAzMkRDRjEwRjQzODlGMDA1OEMxNUEgLyogV2ViUHJvY2Vzc1Byb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlByb2Nlc3NQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCQzBFNUZFMzEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdl
b2xvY2F0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzBFNUZF
NDEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMEU2MDQ4MTJENkI2MzcwMDEyQTcyQSAvKiBX
ZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCQzBFNjA1RjEyRDZCQTkxMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUJDMEU2MDYwMTJENkJBOTEwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlv
bk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCQzBFNjA3MTEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMEU2MDcyMTJENkJDMjAwMDEyQTcyQSAv
KiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCQzBFNjE1MjEyRDZDQUM4MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUJDMEU2MTgwMTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDMEU2MTgxMTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQkMwRTYxOTYxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Q
b3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0dlb2xvY2F0aW9u
UG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMwRTYxOTcxMkQ2Q0Qx
MjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzExMUE1MzExMkY0RkJCMDAzMzdCQUIgLyogV2ViQ2hyb21l
Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNocm9t
ZUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTExQTU0MTEyRjRG
QkIwMDMzN0JBQiAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDMTExQTU2MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJEcmFnQ2xp
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRyYWdDbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAyNSw2ICsxMDU1LDEwIEBA
CiAJCUJDMTc3NTNFMTE4QkFCRjAwMDdEOUU5QSAvKiBHZW5lcmljQ2FsbGJhY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VuZXJpY0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDMUE3QzU3MTEzNkUxOUMwMEZCNzE2NyAvKiBQcm9jZXNzTGF1
bmNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvY2Vzc0xhdW5jaGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMUI0MTk3MTFENDFENTcwMDExRThE
RCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLQnVuZGxlUGFnZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QkMxQkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMUJFMURGMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJH
ZW9sb2NhdGlvbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJHZW9sb2NhdGlvbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUJDMUJFMUYwMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvblByb3ZpZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMxQkUxRjExMkQ1NERCRDAwMDRBMjI4IC8q
IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDMUREN0IxMTE0REMzOTYwMDVBREFGMyAvKiBXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMURGRThEMTJCMzFDQTgwMDVE
RjczMCAvKiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkMxREZFOEUxMkIzMUNBODAwNURGNzMwIC8qIFdLT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMTA5LDYgKzExNDMsMTAgQEAKIAkJQkM0QkVFQUExMjBBMEE1RjAwRkJBMEM3IC8qIEluamVj
dGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzRCRUZERjEyMEExQTRDMDBGQkEwQzcgLyogV0tCdW5kbGVOb2RlSGFuZGxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlTm9kZUhhbmRsZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzRCRUZFMDEyMEExQTRDMDBGQkEwQzcgLyog
V0tCdW5kbGVOb2RlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdLQnVuZGxlTm9kZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUJDNTRDQUM5MTJENjQyOTEwMDVDNjdCMCAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQ
cm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzU0Q0FDQTEyRDY0MjkxMDA1
QzY3QjAgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzU0Q0MxMDEyRDY3NEVFMDA1QzY3QjAgLyogV0tH
ZW9sb2NhdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tH
ZW9sb2NhdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM1NEND
MTExMkQ2NzRFRTAwNUM2N0IwIC8qIFdLR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLR2VvbG9jYXRpb25NYW5hZ2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NzQ0RUQxMjYzOEZCMzAwNkYwRjEyIC8qIFdl
YlBvcHVwSXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQ
b3B1cEl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzU3NDRFRTEyNjM4
RkIzMDA2RjBGMTIgLyogV2ViUG9wdXBJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlBvcHVwSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzU3
NDUwQjEyNjNCMTU1MDA2RjBGMTIgLyogV0tCdW5kbGVOb2RlSGFuZGxlUHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjM0LDYgKzE2NzIsOCBAQAogCQkJCTFB
MkMzMDZGMTJENTU1NDUwMDYzREFBMiAvKiBDb250ZXh0TWVudVN0YXRlLmggKi8sCiAJCQkJMEZC
NjU5MjIxMjA4QjREQjAwNDQ4MTZDIC8qIERyYXdpbmdBcmVhSW5mby5oICovLAogCQkJCTc2MkI3
NDgxMTIwQkJBMDEwMDgxOTMzOSAvKiBGb250U21vb3RoaW5nTGV2ZWwuaCAqLywKKwkJCQlCQzBF
NjA3MjEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgKi8sCisJ
CQkJQkMwRTYwNzExMkQ2QkMyMDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCAq
LywKIAkJCQlCQ0NGNkIyMzEyQzkzRTdBMDA4RjlDMzUgLyogSW1hZ2VPcHRpb25zLmggKi8sCiAJ
CQkJQkM2NDY5NkQxMURCRTYwMzAwNjQ1NUIwIC8qIEltbXV0YWJsZUFycmF5LmNwcCAqLywKIAkJ
CQlCQzY0Njk2RTExREJFNjAzMDA2NDU1QjAgLyogSW1tdXRhYmxlQXJyYXkuaCAqLywKQEAgLTE4
NTQsNiArMTg5NCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1MTJGNTg4NjEyQTg4MzQ3MDA2
Mjk1MzAgLyogQXV0aGVudGljYXRpb24gKi8sCiAJCQkJMUE2MTYxNEMxMjc3OThCNTAwM0FDRDg2
IC8qIERvd25sb2FkcyAqLywKKwkJCQlCQzBFNUZDQjEyRDY5NkREMDAxMkE3MkEgLyogR2VvbG9j
YXRpb24gKi8sCiAJCQkJQkMyMDRFREYxMUM4M0U3MjAwOEYzMzc1IC8qIEluamVjdGVkQnVuZGxl
ICovLAogCQkJCTFBNkZBMDFDMTFFMTUyNjMwMERCMTM3MSAvKiBtYWMgKi8sCiAJCQkJMUE2RkI3
QUExMUU2NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCkBAIC0xODYyLDggKzE5MDMsOCBAQAog
CQkJCTFBNkZBMzE1MTFFMzkyMzYwMERCMTM3MSAvKiBXZWJLaXRNYWluLmNwcCAqLywKIAkJCQlC
QzExMUFFMzExMkY1QzI2MDAzMzdCQUIgLyogV2ViUHJvY2Vzcy5jcHAgKi8sCiAJCQkJQkMwMzJE
OTExMEY0MzdBRjAwNThDMTVBIC8qIFdlYlByb2Nlc3MuaCAqLywKLQkJCQkxQTZGQTAxRjExRTE1
Mjg3MDBEQjEzNzEgLyogV2ViUHJvY2Vzc01haW4uaCAqLywKIAkJCQlCQzMwNjZCOTEyNUE0MzYz
MDBFNzEyNzggLyogV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKKwkJCQkxQTZGQTAxRjExRTE1
Mjg3MDBEQjEzNzEgLyogV2ViUHJvY2Vzc01haW4uaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gV2Vi
UHJvY2VzczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xODg4LDYgKzE5MjksOCBA
QAogCQkJCTFBNDMzRjBDMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCAqLywKIAkJCQlC
QzExMUE1ODExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwICovLAog
CQkJCUJDMDMyRDZBMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5oICov
LAorCQkJCUJDMUJFMURGMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5j
cHAgKi8sCisJCQkJQkMxQkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xp
ZW50LmggKi8sCiAJCQkJQkMxMTFBNTkxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkluc3BlY3RvckNs
aWVudC5jcHAgKi8sCiAJCQkJQkMwMzJENkQxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkluc3BlY3Rv
ckNsaWVudC5oICovLAogCQkJCTFDOEUyNTZCMTI3MERFMzgwMEJDN0JEMCAvKiBXZWJJbnNwZWN0
b3JGcm9udGVuZENsaWVudC5jcHAgKi8sCkBAIC0xOTk5LDYgKzIwNDIsMTEgQEAKIAkJCQlCQ0U0
Njk3NjEyMTRGMjdCMDAwQjk4RUIgLyogV2ViRnJhbWVMaXN0ZW5lclByb3h5LmggKi8sCiAJCQkJ
QkMxMTFCMEExMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJveHkuY3BwICovLAogCQkJCUJD
OUIzODlGMTBGNTM4QkUwMDQ0M0ExNSAvKiBXZWJGcmFtZVByb3h5LmggKi8sCisJCQkJQkM1NENB
Q0ExMkQ2NDI5MTAwNUM2N0IwIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcCAqLywK
KwkJCQlCQzU0Q0FDOTEyRDY0MjkxMDA1QzY3QjAgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHkuaCAqLywKKwkJCQlCQzBFNjE1MjEyRDZDQUM4MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJQkMxQkUxRjExMkQ1NERCRDAwMDRBMjI4
IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwICovLAorCQkJCUJDMUJFMUYwMTJENTREQkQw
MDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJQkNGNjlGODQxMTc2
Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3RvcnlDbGllbnQuY3BwICovLAogCQkJCUJDRjY5Rjg1MTE3
NkNENkYwMDQ3MUE1MiAvKiBXZWJIaXN0b3J5Q2xpZW50LmggKi8sCiAJCQkJMUM4RTI4MzMxMjc1
RDczODAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclByb3h5LmNwcCAqLywKQEAgLTIwNzIsMTkgKzIx
MjAsMjMgQEAKIAkJCQkxQUI3RDc4QjEyODhDRDlBMDBDRkQwOEMgLyogV0tEb3dubG9hZC5oICov
LAogCQkJCUJDRTQ2OTU3MTIxNEVERjQwMDBCOThFQiAvKiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVu
ZXIuY3BwICovLAogCQkJCUJDRTQ2OTU4MTIxNEVERjQwMDBCOThFQiAvKiBXS0Zvcm1TdWJtaXNz
aW9uTGlzdGVuZXIuaCAqLywKLQkJCQlCQzFERkU4RTEyQjMxQ0E4MDA1REY3MzAgLyogV0tPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgKi8sCi0JCQkJQkMxREZFOEQxMkIzMUNBODAwNURGNzMw
IC8qIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaCAqLywKLQkJCQlCQzg1N0ZFNTEyQjg0M0Q4
MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcCAqLywKLQkJCQlCQzg1N0ZFNDEy
Qjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmggKi8sCiAJCQkJQkNEMDEz
OTgxMTBGQTQyMDAwM0I4QTY3IC8qIFdLRnJhbWUuY3BwICovLAogCQkJCUJDRDAxMzk3MTEwRkE0
MjAwMDNCOEE2NyAvKiBXS0ZyYW1lLmggKi8sCiAJCQkJQkNCOUY2QTQxMTIzREQwRDAwQTEzN0Uw
IC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAgKi8sCiAJCQkJQkNCOUY2QTMxMTIzREQwRDAw
QTEzN0UwIC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5oICovLAorCQkJCUJDNTRDQzExMTJENjc0
RUUwMDVDNjdCMCAvKiBXS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAgKi8sCisJCQkJQkM1NENDMTAx
MkQ2NzRFRTAwNUM2N0IwIC8qIFdLR2VvbG9jYXRpb25NYW5hZ2VyLmggKi8sCisJCQkJQkMwRTYx
OTcxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgKi8sCisJCQkJ
QkMwRTYxOTYxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovLAog
CQkJCTFDOEUyOTM4MTI3NjFFNUIwMEJDN0JEMCAvKiBXS0luc3BlY3Rvci5jcHAgKi8sCiAJCQkJ
MUM4RTI5MzcxMjc2MUU1QjAwQkM3QkQwIC8qIFdLSW5zcGVjdG9yLmggKi8sCiAJCQkJQzA5QUU1
RTgxMjUyNTdDMjAwMjU4MjVEIC8qIFdLTmF0aXZlRXZlbnQuaCAqLywKIAkJCQlCQ0Y2OUZBODEx
NzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5jcHAgKi8sCiAJCQkJQkNGNjlGQTcx
MTc2RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuaCAqLywKKwkJCQlCQzg1N0ZFNTEy
Qjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcCAqLywKKwkJCQlCQzg1
N0ZFNDEyQjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmggKi8sCisJCQkJ
QkMxREZFOEUxMkIzMUNBODAwNURGNzMwIC8qIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3Bw
ICovLAorCQkJCUJDMURGRThEMTJCMzFDQTgwMDVERjczMCAvKiBXS09wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmggKi8sCiAJCQkJQkNENTk3RDQxMTJCNTZEQzAwRUM4QzIzIC8qIFdLUGFnZS5jcHAg
Ki8sCiAJCQkJQkNENTk3RDUxMTJCNTZEQzAwRUM4QzIzIC8qIFdLUGFnZS5oICovLAogCQkJCUJD
N0I2MzM2MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5jcHAgKi8sCkBAIC0yMTAwLDYg
KzIxNTIsMTYgQEAKIAkJCXBhdGggPSBDOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJ
fTsKKwkJQkMwRTVGQ0IxMkQ2OTZERDAwMTJBNzJBIC8qIEdlb2xvY2F0aW9uICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQzBFNUZFNDEyRDY5NzE2MDAx
MkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCAqLywKKwkJCQlCQzBFNUZFMzEyRDY5
NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmggKi8sCisJCQkJQkMwRTYwNDgx
MkQ2QjYzNzAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLywK
KwkJCSk7CisJCQlwYXRoID0gR2VvbG9jYXRpb247CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OwogCQlCQzExMUFERTExMkY1QjlBMDAzMzdCQUIgLyogbWFjICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI0OTUsNiArMjU1NywxMCBAQAogCQkJ
CUY2MkE3NkIzMTJCMUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlcy5o
ICovLAogCQkJCUY2MkE3NkI0MTJCMUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJRjYyQTc2QjUxMkIxQjI1RjAwMDVGMUI2
IC8qIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQlCQzBFNjA1RjEy
RDZCQTkxMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLywKKwkJCQlCQzBFNjA2MDEyRDZCQTkxMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5h
Z2VyTWVzc2FnZXMuaCAqLywKKwkJCQlCQzBFNjE4MDEyRDZDQjFEMDAxMkE3MkEgLyogV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUJDMEU2MTgx
MTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgg
Ki8sCiAJCQkJMUM4RTJBMzExMjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCiAJCQkJMUM4RTJBMzIxMjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3Bl
Y3Rvck1lc3NhZ2VzLmggKi8sCiAJCQkJMUNBOEI5NDMxMjdDODgyQTAwNTc2QzJCIC8qIFdlYklu
c3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTI4NTUsOCArMjkyMSwxNyBA
QAogCQkJCTkzRkM2N0MwMTJEM0NDRjIwMEE2MDYxMCAvKiBFbmNvZGVyQWRhcHRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUE1RTREQTQxMkQzQkQzRDAwOTlBMkJCIC8qIFRleHRDaGVja2VyU3Rh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxOEQyQ0FFMTJENTE1M0IwMDNCQjkzQiAvKiBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzFCRTFFMDEyRDU0QTQx
MDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUJD
MUJFMUYyMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvblByb3ZpZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTJDMzA3MTEyRDU1NTQ1MDA2M0RBQTIgLyogQ29udGV4dE1lbnVTdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RDJDQ0IxMkQ1MURGQjAwM0JCOTNCIC8qIFNlc3Np
b25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM1NENBQ0IxMkQ2NDI5MTAwNUM2N0IwIC8q
IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzU0Q0Mx
MjEyRDY3NEVFMDA1QzY3QjAgLyogV0tHZW9sb2NhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCUJDMEU1RkU1MTJENjk3MTYwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCUJDMEU2MDYyMTJENkJBOTEwMDEyQTcyQSAvKiBXZWJHZW9s
b2NhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMwRTYwNzMxMkQ2
QkMyMDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCUJDMEU2MTgzMTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94
eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzBFNjE5ODEyRDZDRDEyMDAxMkE3MkEg
LyogV0tHZW9sb2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTMyODksNyArMzM2
NCwxNiBAQAogCQkJCTkzRkM2N0JEMTJEM0NDRjIwMEE2MDYxMCAvKiBEZWNvZGVyQWRhcHRlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0ZDNjdCRjEyRDNDQ0YyMDBBNjA2MTAgLyogRW5jb2Rl
ckFkYXB0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4RDJDQUQxMkQ1MTUzQjAwM0JCOTNC
IC8qIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMxQkUx
RTExMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUJDMUJFMUYzMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxOEQyQ0NBMTJENTFERkIwMDNCQjkzQiAvKiBT
ZXNzaW9uU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM1NENBQ0MxMkQ2NDI5MTAwNUM2
N0IwIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUJDNTRDQzEzMTJENjc0RUUwMDVDNjdCMCAvKiBXS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlCQzBFNUZFNjEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRp
b25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDMEU2MDYxMTJENkJBOTEwMDEyQTcy
QSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQkMwRTYwNzQxMkQ2QkMyMDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMwRTYxODIxMkQ2Q0IxRDAwMTJBNzJBIC8qIFdl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUJDMEU2MTk5MTJENkNEMTIwMDEyQTcyQSAvKiBXS0dlb2xvY2F0aW9uUG9zaXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZp
c2lvbiA3NTI2NCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgogI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkZyYW1l
LmgiCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIgogI2lu
Y2x1ZGUgIldlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIgpAQCAtMTEwLDYgKzExMSw3IEBAIFdlYlBy
b2Nlc3M6OldlYlByb2Nlc3MoKQogICAgICwgbV9uZXR3b3JrQWNjZXNzTWFuYWdlcigwKQogI2Vu
ZGlmCiAgICAgLCBtX3RleHRDaGVja2VyU3RhdGUoKQorICAgICwgbV9nZW9sb2NhdGlvbk1hbmFn
ZXIodGhpcykKIHsKICNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKICAgICAvLyBJbml0aWFs
aXplIG91ciBwbGF0Zm9ybSBzdHJhdGVnaWVzLgpAQCAtNTA4LDYgKzUxMCwxMSBAQCB2b2lkIFdl
YlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0
aW9uTWFuYWdlcj4oKSkgeworICAgICAgICBtX2dlb2xvY2F0aW9uTWFuYWdlci5kaWRSZWNlaXZl
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0lu
amVjdGVkQnVuZGxlPigpKSB7CiAgICAgICAgIGlmICghbV9pbmplY3RlZEJ1bmRsZSkKICAgICAg
ICAgICAgIHJldHVybjsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24gNzUy
NjQpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSAiVGV4
dENoZWNrZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rVGFibGUuaCIKKyNpbmNsdWRl
ICJXZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBQcm94eS5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgpAQCAtMTA2LDggKzEwNywxMiBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3VsZFVzZUN1c3Rv
bVJlcHJlc2VudGF0aW9uRm9yTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Qg
eyByZXR1cm4gbV9taW1lVHlwZXNXaXRoQ3VzdG9tUmVwcmVzZW50YXRpb25zLmNvbnRhaW5zKG1p
bWVUeXBlKTsgfQogCisgICAgLy8gVGV4dCBDaGVja2luZwogICAgIGNvbnN0IFRleHRDaGVja2Vy
U3RhdGUmIHRleHRDaGVja2VyU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3RleHRDaGVja2VyU3Rh
dGU7IH0KIAorICAgIC8vIEdlb2xvY2F0aW9uCisgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyJiBn
ZW9sb2NhdGlvbk1hbmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0aW9uTWFuYWdlcjsgfQorCiBw
cml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKIApAQCAtMTgyLDYgKzE4Nyw3IEBAIHByaXZhdGU6
CiAgICAgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4gbV9taW1lVHlwZXNXaXRoQ3Vz
dG9tUmVwcmVzZW50YXRpb25zOwogCiAgICAgVGV4dENoZWNrZXJTdGF0ZSBtX3RleHRDaGVja2Vy
U3RhdGU7CisgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyIG1fZ2VvbG9jYXRpb25NYW5hZ2VyOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvR2Vv
bG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQy
L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAkocmV2aXNp
b24gMCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1h
bmFnZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJXZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCIKKworI2luY2x1ZGUgIldlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgorCisjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
KyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvR2VvbG9jYXRpb25FcnJvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Q
b3NpdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2VuZGlmCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViR2VvbG9jYXRpb25N
YW5hZ2VyOjpXZWJHZW9sb2NhdGlvbk1hbmFnZXIoV2ViUHJvY2VzcyogcHJvY2VzcykKKyAgICA6
IG1fcHJvY2Vzcyhwcm9jZXNzKQoreworfQorCitXZWJHZW9sb2NhdGlvbk1hbmFnZXI6On5XZWJH
ZW9sb2NhdGlvbk1hbmFnZXIoKQoreworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uTWFu
YWdlcjo6cmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCit7CisjaWYgRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICBib29sIHdhc0VtcHR5ID0gbV9wYWdlU2V0LmlzRW1w
dHkoKTsKKworICAgIG1fcGFnZVNldC5hZGQocGFnZSk7CisgICAgCisgICAgaWYgKHdhc0VtcHR5
KQorICAgICAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHk6OlN0YXJ0VXBkYXRpbmcoKSwgMCk7CisjZW5kaWYKK30KKwor
dm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnVucmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqIHBh
Z2UpCit7CisjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICBtX3BhZ2VT
ZXQucmVtb3ZlKHBhZ2UpOworCisgICAgaWYgKG1fcGFnZVNldC5pc0VtcHR5KCkpCisgICAgICAg
IG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJHZW9sb2NhdGlvbk1h
bmFnZXJQcm94eTo6U3RvcFVwZGF0aW5nKCksIDApOworI2VuZGlmCit9CisKK3ZvaWQgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3NpdGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBv
c2l0aW9uOjpEYXRhJiBkYXRhKQoreworI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCisgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+IHBvc2l0aW9uID0gR2VvbG9jYXRp
b25Qb3NpdGlvbjo6Y3JlYXRlKGRhdGEudGltZXN0YW1wLCBkYXRhLmxhdGl0dWRlLCBkYXRhLmxv
bmdpdHVkZSwgZGF0YS5hY2N1cmFjeSk7CisKKyAgICBIYXNoU2V0PFdlYlBhZ2UqPjo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBtX3BhZ2VTZXQuYmVnaW4oKTsKKyAgICBIYXNoU2V0PFdlYlBhZ2UqPjo6
Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9wYWdlU2V0LmVuZCgpOworICAgIGZvciAoOyBpdCAhPSBl
bmQ7ICsraXQpIHsKKyAgICAgICAgV2ViUGFnZSogcGFnZSA9ICppdDsKKyAgICAgICAgaWYgKHBh
Z2UtPmNvcmVQYWdlKCkpCisgICAgICAgICAgICBwYWdlLT5jb3JlUGFnZSgpLT5nZW9sb2NhdGlv
bkNvbnRyb2xsZXIoKS0+cG9zaXRpb25DaGFuZ2VkKHBvc2l0aW9uLmdldCgpKTsKKyAgICB9Cisj
ZW5kaWYKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZEZhaWxUb0RldGVybWlu
ZVBvc2l0aW9uKCkKK3sKKyNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAg
IC8vIEZJWE1FOiBBZGQgbG9jYWxpemVkIGVycm9yIHN0cmluZy4KKyAgICBSZWZQdHI8R2VvbG9j
YXRpb25FcnJvcj4gZXJyb3IgPSBHZW9sb2NhdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25F
cnJvcjo6UG9zaXRpb25VbmF2YWlsYWJsZSwgLyogTG9jYWxpemVkIGVycm9yIHN0cmluZyAqLyBT
dHJpbmcoIiIpKTsKKworICAgIEhhc2hTZXQ8V2ViUGFnZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9
IG1fcGFnZVNldC5iZWdpbigpOworICAgIEhhc2hTZXQ8V2ViUGFnZSo+Ojpjb25zdF9pdGVyYXRv
ciBlbmQgPSBtX3BhZ2VTZXQuZW5kKCk7CisgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkgewor
ICAgICAgICBXZWJQYWdlKiBwYWdlID0gKml0OworICAgICAgICBpZiAocGFnZS0+Y29yZVBhZ2Uo
KSkKKyAgICAgICAgICAgIHBhZ2UtPmNvcmVQYWdlKCktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigp
LT5lcnJvck9jY3VycmVkKGVycm9yLmdldCgpKTsKKyAgICB9CisjZW5kaWYKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0dl
b2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0
Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJHZW9sb2NhdGlv
bk1hbmFnZXJfaAorI2RlZmluZSBXZWJHZW9sb2NhdGlvbk1hbmFnZXJfaAorCisjaW5jbHVkZSAi
TWVzc2FnZUlELmgiCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgorI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVz
cGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247
Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9jZXNzOworY2xhc3MgV2Vi
UGFnZTsKKworY2xhc3MgV2ViR2VvbG9jYXRpb25NYW5hZ2VyIHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShXZWJHZW9sb2NhdGlvbk1hbmFnZXIpOworcHVibGljOgorICAgIFdlYkdlb2xvY2F0
aW9uTWFuYWdlcihXZWJQcm9jZXNzKik7CisgICAgfldlYkdlb2xvY2F0aW9uTWFuYWdlcigpOwor
CisgICAgdm9pZCByZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSopOworICAgIHZvaWQgdW5yZWdpc3Rl
cldlYlBhZ2UoV2ViUGFnZSopOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKTsKKworcHJpdmF0ZToKKyAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorICAgIHZvaWQgZGlkUmVjZWl2ZVdl
Ykdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisKKyAgICB2b2lkIGRpZENo
YW5nZVBvc2l0aW9uKGNvbnN0IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGEmKTsKKyAgICB2
b2lkIGRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKCk7CisKKyAgICBXZWJQcm9jZXNzKiBtX3By
b2Nlc3M7CisgICAgSGFzaFNldDxXZWJQYWdlKj4gbV9wYWdlU2V0OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJHZW9sb2NhdGlvbk1hbmFnZXJfaApJbmRleDog
V2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5tZXNz
YWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9X
ZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisj
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJHZW9sb2NhdGlvbk1hbmFnZXIgeworICAgIERp
ZENoYW5nZVBvc2l0aW9uKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YSBwb3Np
dGlvbik7CisgICAgRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oKTsKK30KSW5kZXg6IFdlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25DbGllbnQuaCIKKwor
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisKKyNpbmNsdWRlICJXZWJHZW9s
b2NhdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6Z2VvbG9j
YXRpb25EZXN0cm95ZWQoKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmdlb2xvY2F0aW9u
TWFuYWdlcigpLnVucmVnaXN0ZXJXZWJQYWdlKG1fcGFnZSk7CisgICAgZGVsZXRlIHRoaXM7Cit9
CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcoKQoreworICAgIFdl
YlByb2Nlc3M6OnNoYXJlZCgpLmdlb2xvY2F0aW9uTWFuYWdlcigpLnJlZ2lzdGVyV2ViUGFnZSht
X3BhZ2UpOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpzdG9wVXBkYXRpbmcoKQor
eworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmdlb2xvY2F0aW9uTWFuYWdlcigpLnVucmVnaXN0
ZXJXZWJQYWdlKG1fcGFnZSk7Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnNldEVu
YWJsZUhpZ2hBY2N1cmFjeShib29sKQoreworfQorCitHZW9sb2NhdGlvblBvc2l0aW9uKiBXZWJH
ZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKK3sKKyAgICByZXR1cm4gMDsKK30KKwor
dm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oR2VvbG9jYXRpb24q
KQoreworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpjYW5jZWxQZXJtaXNzaW9uUmVx
dWVzdChHZW9sb2NhdGlvbiopCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKSW5kZXg6IFdlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVu
dC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Ykdlb2xvY2F0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYkdlb2xvY2F0aW9uQ2xpZW50X2gKKyNkZWZpbmUgV2ViR2VvbG9j
YXRpb25DbGllbnRfaAorCisjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKwor
I2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25DbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYkdlb2xvY2F0aW9uQ2xpZW50IDogcHVi
bGljIFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJHZW9sb2Nh
dGlvbkNsaWVudChXZWJQYWdlKiBwYWdlKQorICAgICAgICA6IG1fcGFnZShwYWdlKQorICAgIHsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGdlb2xvY2F0aW9uRGVzdHJveWVk
KCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOworICAgIHZpcnR1YWwgdm9p
ZCBzdG9wVXBkYXRpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5
KGJvb2wpOworCisgICAgdmlydHVhbCBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uKiBsYXN0
UG9zaXRpb24oKTsKKworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3Jl
OjpHZW9sb2NhdGlvbiopOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQZXJtaXNzaW9uUmVxdWVz
dChXZWJDb3JlOjpHZW9sb2NhdGlvbiopOworCisgICAgV2ViUGFnZSogbV9wYWdlOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQorCisjZW5kaWYgLy8gV2ViR2VvbG9jYXRpb25DbGllbnRfaApJbmRleDogV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDc1MjY0KQorKysgV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUw
LDYgKzUwLDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkV2ZW50Q29u
dmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRp
b25DbGllbnQuaCIKICNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3Rv
ci5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvckNsaWVudC5oIgpAQCAtMTQ5LDEwICsxNTAsMTMg
QEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IAogICAgIHBhZ2VDbGll
bnRzLmNvbnRleHRNZW51Q2xpZW50ID0gbmV3IFdlYkNvbnRleHRNZW51Q2xpZW50KHRoaXMpOwog
ICAgIHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQodGhpcyk7
CiAgICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHRoaXMpOwor
ICAgIHBhZ2VDbGllbnRzLmJhY2tGb3J3YXJkQ2xpZW50ID0gV2ViQmFja0ZvcndhcmRMaXN0UHJv
eHk6OmNyZWF0ZSh0aGlzKTsKKyNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQor
ICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50ID0gbmV3IFdlYkdlb2xvY2F0aW9uQ2xp
ZW50KHRoaXMpOworI2VuZGlmCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBwYWdlQ2xpZW50
cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHRoaXMpOwogI2VuZGlm
Ci0gICAgcGFnZUNsaWVudHMuYmFja0ZvcndhcmRDbGllbnQgPSBXZWJCYWNrRm9yd2FyZExpc3RQ
cm94eTo6Y3JlYXRlKHRoaXMpOwogICAgIG1fcGFnZSA9IGFkb3B0UHRyKG5ldyBQYWdlKHBhZ2VD
bGllbnRzKSk7CiAKICAgICAvLyBRdCBkb2VzIG5vdCB5ZXQgY2FsbCBzZXRJc0luV2luZG93LiBV
bnRpbCBpdCBkb2VzLCBqdXN0IGxlYXZlCkluZGV4OiBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24gNzUy
NjQpCisrKyBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNTkx
LDYgKzU5MSwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxTaGFyZWRcV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxXZWJHZW9sb2NhdGlv
blBvc2l0aW9uLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFNoYXJlZFxXZWJJbWFnZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMTI0Nyw2
ICsxMjU1LDIyIEBACiAJCQkJPC9GaWxlPgogCQkJPC9GaWx0ZXI+CiAJCQk8RmlsdGVyCisJCQkJ
TmFtZT0iR2VvbG9jYXRpb24iCisJCQkJPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlvblxXZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJv
Y2Vzc1xHZW9sb2NhdGlvblxXZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcR2VvbG9j
YXRpb25cV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluIgorCQkJCQk+CisJCQkJPC9G
aWxlPgorCQkJPC9GaWx0ZXI+CisJCQk8RmlsdGVyCiAJCQkJTmFtZT0iV2ViQ29yZVN1cHBvcnQi
CiAJCQkJPgogCQkJCTxGaWxlCkBAIC0xMzA2LDYgKzEzMzAsMTQgQEAKIAkJCQkJPgogCQkJCTwv
RmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29y
ZVN1cHBvcnRcV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgor
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9y
dFxXZWJHZW9sb2NhdGlvbkNsaWVudC5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxl
CiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJJbnNw
ZWN0b3JDbGllbnQuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAtMjE1OSw2ICsyMTkxLDI2
IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJ
UHJvY2Vzc1xXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHAiCisJCQkJPgorCQkJPC9GaWxl
PgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4iCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJ
UHJvY2Vzc1xXZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkdlb2xvY2F0aW9uUHJv
dmlkZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5cVUlQcm9jZXNzXFdlYkhpc3RvcnlDbGllbnQuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAg
LTIyODEsMTAgKzIzMzMsNiBAQAogCQkJPEZpbHRlcgogCQkJCU5hbWU9IkFQSSIKIAkJCQk+Ci0J
CQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tEYXRhYmFz
ZU1hbmFnZXIuY3BwIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgogCQkJCTxGaWx0ZXIKIAkJCQkJTmFt
ZT0iQyIKIAkJCQkJPgpAQCAtMjM2MSw2ICsyNDA5LDEwIEBACiAJCQkJCQk+CiAJCQkJCTwvRmls
ZT4KIAkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdL
RGF0YWJhc2VNYW5hZ2VyLmNwcCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgorCQkJCQk8RmlsZQog
CQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tEYXRhYmFzZU1hbmFnZXIu
aCIKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgpAQCAtMjM5Nyw2ICsyNDQ5LDIyIEBACiAJCQkJCQk+
CiAJCQkJCTwvRmlsZT4KIAkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXEFQSVxDXFdLR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxl
PgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tH
ZW9sb2NhdGlvbk1hbmFnZXIuaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgorCQkJCQk8RmlsZQor
CQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tHZW9sb2NhdGlvblBvc2l0
aW9uLmNwcCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tHZW9sb2NhdGlvblBvc2l0aW9uLmgiCisJCQkJ
CQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQ
cm9jZXNzXEFQSVxDXFdLSW5zcGVjdG9yLmNwcCIKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgpAQCAt
Mjk5OSw2ICszMDY3LDIyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJNZXNzYWdlcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xX
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViSW5zcGVjdG9yTWVzc2FnZVJlY2VpdmVy
LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBXZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9u
LnZzcHJvcHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3Bz
CShyZXZpc2lvbiA3NTI2NCkKKysrIFdlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwko
d29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAKIAk+CiAJPFRvb2wKIAkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKLQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxQbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3Jt
XENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbHVnaW5Qcm9jZXNzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxjZiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcYyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNo
YXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQ29yZUlQ
Q1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2lucyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcY3Bw
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVx3aW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
VUlQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Nc
d2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2VzcyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXV0
aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25s
b2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzXGNm
JnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1
ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZSZx
dW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdl
YktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGli
cmFyaWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90Ozsm
cXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdI
ZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVc
Rm9yd2FyZGluZ0hlYWRlcnMmcXVvdDsiCisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9
IiZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGx1Z2lu
UHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZCZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFNoYXJlZFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxT
aGFyZWRcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGMmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcY2YmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
U2hhcmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVk
XFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2luc1xOZXRz
Y2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2VzcyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2Vzc1xBUElcQ1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVBy
b2Nlc3NcQVBJXGNwcCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElc
d2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEF1dGhlbnRpY2F0aW9u
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXERvd25sb2FkcyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xMYXVuY2hlciZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFVJUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cVUlQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Mm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0JnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFx3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2UmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcQVBJXGMmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXERPTSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XERvd25sb2Fkc1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcR2Vv
bG9jYXRpb24mcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcSW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxw
cml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlJnF1b3Q7OyZx
dW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVhZHMmcXVvdDs7JnF1b3Q7JChDb25maWd1
cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90Ozsm
cXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90Ozsm
cXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3Jl
JnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9y
d2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVc
V2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyIKIAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM9Il9VU1JETEw7V0VCS0lUX0VYUE9SVFM7RlJBTUVXT1JLX05BTUU9V2ViS2l0O0JVSUxESU5H
X1dFQktJVCIKIAkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiCiAJCVByZWNvbXBpbGVkSGVhZGVy
VGhyb3VnaD0iV2ViS2l0MlByZWZpeC5oIgpJbmRleDogV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVy
YXRlZC5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFr
ZQkocmV2aXNpb24gNzUyNjQpCisrKyBXZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UJ
KHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDggQEAgYWxsOgogICAgIHhjb3B5IC95IC9kICIu
LlxVSVByb2Nlc3NcQVBJXENcV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyLmgiICIkKENPTkZJR1VS
QVRJT05CVUlMRERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVBy
b2Nlc3NcQVBJXENcV0tGcmFtZS5oIiAiJChDT05GSUdVUkFUSU9OQlVJTERESVIpXGluY2x1ZGVc
V2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLRnJhbWVQb2xp
Y3lMaXN0ZW5lci5oIiAiJChDT05GSUdVUkFUSU9OQlVJTERESVIpXGluY2x1ZGVcV2ViS2l0MiIK
KyAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLR2VvbG9jYXRpb25NYW5hZ2Vy
LmgiICIkKENPTkZJR1VSQVRJT05CVUlMRERJUilcaW5jbHVkZVxXZWJLaXQyIgorICAgIHhjb3B5
IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tHZW9sb2NhdGlvblBvc2l0aW9uLmgiICIkKENP
TkZJR1VSQVRJT05CVUlMRERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIu
LlxVSVByb2Nlc3NcQVBJXGNcV0tJbnNwZWN0b3IuaCIgIiQoQ09ORklHVVJBVElPTkJVSUxERElS
KVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xX
S05hdGl2ZUV2ZW50LmgiICIkKENPTkZJR1VSQVRJT05CVUlMRERJUilcaW5jbHVkZVxXZWJLaXQy
IgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tOYXZpZ2F0aW9uRGF0YS5o
IiAiJChDT05GSUdVUkFUSU9OQlVJTERESVIpXGluY2x1ZGVcV2ViS2l0MiIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78480</attachid>
            <date>2011-01-10 17:49:35 -0800</date>
            <delta_ts>2011-01-11 09:08:48 -0800</delta_ts>
            <desc>Step 2</desc>
            <filename>file.diff</filename>
            <type>text/plain</type>
            <size>56331</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NTQ1NykKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTUgQEAKKzIwMTEtMDEtMTAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEdl
b2xvY2F0aW9uIGZlYXR1cmVzIHdvcmsgaW4gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIwNzgKKworICAgICAgICBTdGVwIDIgLSBBZGQg
c3VwcG9ydCBmb3IgcmVxdWVzdGluZyBhbmQgZ3JhbnRpbmcgcGVybWlzc2lvbiBmb3IgZ2VvbG9j
YXRpb24uCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU2hh
cmVkL0FQSU9iamVjdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFk
ZGVkLgorICAgICAgICBBZGQgbmV3IEFQSSB0eXBlLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RSZWYuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6CisgICAgICAg
IEFkZCBuZXcgVUlDbGllbnQgZnVuY3Rpb24gZm9yIHJlcXVlc3RpbmcgcGVybWlzc2lvbi4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHA6CisgICAgICAgIChRV0tQYWdl
OjpRV0tQYWdlKTogCisgICAgICAgIFN0dWIgb3V0IHRoZSBVSUNsaWVudC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJVSUNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR2VvbG9jYXRp
b24vR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5j
cHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNs
aWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmRpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICBUcmFjayB0aGUgcGVybWlzc2lv
biByZXF1ZXN0IHRocm91Z2ggYm90aCBzaWRlcyBvZiB0aGUgcHJvY2VzcyBkaXZpZGUuCisKKyAg
ICAgICAgKiBXZWJLaXQyLnBybzoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogd2luL1dlYktpdDIudmNwcm9qOgorICAgICAgICAqIHdpbi9X
ZWJLaXQyR2VuZXJhdGVkLm1ha2U6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKIDIwMTEtMDEt
MTAgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXgg
V2luZG93cyBidWlsZCBhZ2Fpbi4KSW5kZXg6IFdlYktpdDIvV2ViS2l0Mi5wcm8KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0Mi9XZWJLaXQyLnBybwkocmV2aXNpb24gNzU0MTMpCisrKyBXZWJLaXQyL1dl
YktpdDIucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0zMTEsNiArMzExLDcgQEAgSEVBREVSUyArPSBc
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dL
RnJhbWVQb2xpY3lMaXN0ZW5lci5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlv
bk1hbmFnZXIuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmgg
XAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5oIFwKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmggXApAQCAtMzQ2LDYgKzM0Nyw4IEBAIEhFQURFUlMg
Kz0gXAogICAgIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9G
aW5kSW5kaWNhdG9yLmggXAogICAgIFVJUHJvY2Vzcy9HZW5lcmljQ2FsbGJhY2suaCBcCisgICAg
VUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBcCisg
ICAgVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIFwKICAgICBV
SVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggXAogICAgIFVJUHJvY2Vzcy9MYXVu
Y2hlci9UaHJlYWRMYXVuY2hlci5oIFwKICAgICBVSVByb2Nlc3MvUGFnZUNsaWVudC5oIFwKQEAg
LTM5MCw2ICszOTMsNyBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZC5oIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaCBc
CisgICAgV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFu
YWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0LmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggXApAQCAtNTMwLDYgKzUzNCw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0dl
b2xvY2F0aW9uTWFuYWdlci5jcHAgXAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlv
blBvc2l0aW9uLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLSW5zcGVjdG9yLmNwcCBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5jcHAgXApAQCAtNTU1LDYg
KzU2MCw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQ
cm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcCBcCiAgICAgVUlQ
cm9jZXNzL0ZpbmRJbmRpY2F0b3IuY3BwIFwKKyAgICBVSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgXAorICAgIFVJUHJvY2Vzcy9HZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvTGF1bmNoZXIvUHJv
Y2Vzc0xhdW5jaGVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL1RocmVhZExhdW5jaGVy
LmNwcCBcCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcCBc
CkBAIC02MDcsNiArNjE0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZC5jcHAgXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFu
YWdlci5jcHAgXAorICAgIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdl
b2xvY2F0aW9uTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL3F0L0Rvd25s
b2FkUXQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
LmNwcCBcCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAkocmV2aXNpb24gNzU0MTMpCisrKyBXZWJLaXQyL1No
YXJlZC9BUElPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsOCArNjgsOSBAQCBwdWJsaWM6
CiAgICAgICAgIFR5cGVGb3JtU3VibWlzc2lvbkxpc3RlbmVyLAogICAgICAgICBUeXBlRnJhbWUs
CiAgICAgICAgIFR5cGVGcmFtZVBvbGljeUxpc3RlbmVyLAotICAgICAgICBUeXBlR2VvbG9jYXRp
b25Qb3NpdGlvbiwKICAgICAgICAgVHlwZUdlb2xvY2F0aW9uTWFuYWdlciwKKyAgICAgICAgVHlw
ZUdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QsCisgICAgICAgIFR5cGVHZW9sb2NhdGlvblBv
c2l0aW9uLAogICAgICAgICBUeXBlSW5zcGVjdG9yLAogICAgICAgICBUeXBlTmF2aWdhdGlvbkRh
dGEsCiAgICAgICAgIFR5cGVPcGVuUGFuZWxQYXJhbWV0ZXJzLApJbmRleDogV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tC
YXNlLmgJKHJldmlzaW9uIDc1NDEzKQorKysgV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tGb3JtU3VibWlzcwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tGcmFtZSogV0tG
cmFtZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLRnJhbWVQb2xpY3lMaXN0ZW5l
ciogV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tHZW9sb2NhdGlvbk1hbmFnZXIqIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmOwordHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KiBXS0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S0dlb2xvY2F0aW9uUG9zaXRpb24qIFdLR2VvbG9jYXRpb25Qb3NpdGlvblJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLSW5zcGVjdG9yKiBXS0luc3BlY3RvclJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEqIFdLTmF2aWdhdGlvbkRhdGFSZWY7
CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktp
dDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIldl
YlBhZ2VNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3NQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eShXZWJQYWdlUHJveHkqIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30K
Kwordm9pZCBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlk
YXRlUmVxdWVzdHMoKQoreworICAgIFBlbmRpbmdSZXF1ZXN0TWFwOjpjb25zdF9pdGVyYXRvciBp
dCA9IG1fcGVuZGluZ1JlcXVlc3RzLmJlZ2luKCk7CisgICAgUGVuZGluZ1JlcXVlc3RNYXA6OmNv
bnN0X2l0ZXJhdG9yIGVuZCA9IG1fcGVuZGluZ1JlcXVlc3RzLmVuZCgpOworICAgIGZvciAoOyBp
dCAhPSBlbmQ7ICsraXQpCisgICAgICAgIGl0LT5zZWNvbmQtPmludmFsaWRhdGUoKTsKKworICAg
IG1fcGVuZGluZ1JlcXVlc3RzLmNsZWFyKCk7Cit9CisKK1Bhc3NSZWZQdHI8R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQpCit7CisgICAgUmVm
UHRyPEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eT4gcmVxdWVzdCA9IEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKHRoaXMsIGdlb2xvY2F0aW9uSUQpOwor
ICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFkZChnZW9sb2NhdGlvbklELCByZXF1ZXN0LmdldCgpKTsK
KyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBp
ZiAoIW1fcGFnZS0+aXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBQZW5kaW5nUmVx
dWVzdE1hcDo6aXRlcmF0b3IgaXQgPSBtX3BlbmRpbmdSZXF1ZXN0cy5maW5kKGdlb2xvY2F0aW9u
SUQpOworICAgIGlmIChpdCA9PSBtX3BlbmRpbmdSZXF1ZXN0cy5lbmQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9wYWdlLT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRp
ZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbihnZW9sb2NhdGlvbklELCBhbGxv
d2VkKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgbV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGl0
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9H
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5X2gKKyNkZWZpbmUgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9o
CisKKyNpbmNsdWRlICJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKyNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFn
ZVByb3h5OworCitjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5KFdlYlBhZ2VQcm94eSopOworCisgICAgdm9pZCBpbnZhbGlkYXRlUmVxdWVzdHMo
KTsKKworICAgIC8vIENyZWF0ZSBhIHJlcXVlc3QgdG8gYmUgcHJlc2VudGVkIHRvIHRoZSB1c2Vy
LgorICAgIFBhc3NSZWZQdHI8R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVh
dGVSZXF1ZXN0KHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQpOworICAgIAorICAgIC8vIENhbGxlZCBi
eSBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkgd2hlbiBhIGRlY2lzaW9uIGlzIG1h
ZGUgYnkgdGhlIHVzZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9u
RGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworCitwcml2YXRlOgorICAgIHR5cGVkZWYg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94
eT4gPiBQZW5kaW5nUmVxdWVzdE1hcDsKKyAgICBQZW5kaW5nUmVxdWVzdE1hcCBtX3BlbmRpbmdS
ZXF1ZXN0czsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eV9oCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJv
Y2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oIgorCisjaW5jbHVkZSAiR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHko
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbWFuYWdlciwgdWludDY0
X3QgZ2VvbG9jYXRpb25JRCkKKyAgICA6IG1fbWFuYWdlcihtYW5hZ2VyKQorICAgICwgbV9nZW9s
b2NhdGlvbklEKGdlb2xvY2F0aW9uSUQpCit7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjphbGxvdygpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fbWFuYWdlci0+ZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKG1fZ2VvbG9jYXRpb25JRCwgdHJ1ZSk7CisgICAgbV9tYW5hZ2VyID0gMDsKK30K
Kwordm9pZCBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkoKQoreworICAg
IGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9tYW5hZ2VyLT5k
aWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24obV9nZW9sb2NhdGlvbklELCBm
YWxzZSk7CisgICAgbV9tYW5hZ2VyID0gMDsKK30KKwordm9pZCBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUoKQoreworICAgIG1fbWFuYWdlciA9IDA7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nl
c3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgJKHJldmlzaW9uIDApCisrKyBX
ZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKKyNkZWZpbmUgR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdFByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OworCitjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0UHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
Y29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk+
IGNyZWF0ZShHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBtYW5hZ2Vy
LCB1aW50NjRfdCBnZW9sb2NhdGlvbklEKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgZ2VvbG9jYXRp
b25JRCkpOworICAgIH0KKworICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRlbnkoKTsKKyAg
ICAKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKworcHJpdmF0ZToKKyAgICBHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0UHJveHkoR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSosIHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQpOworCisgICAgdmlydHVhbCBUeXBlIHR5cGUo
KSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisKKyAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5KiBtX21hbmFnZXI7CisgICAgdWludDY0X3QgbV9nZW9sb2NhdGlv
bklEOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCShyZXZpc2lvbiA3NTQxMykKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdl
UHJveHkoV2ViQ29udGV4dCogYwogICAgICwgbV9wYWdlR3JvdXAocGFnZUdyb3VwKQogICAgICwg
bV9tYWluRnJhbWUoMCkKICAgICAsIG1fdXNlckFnZW50KHN0YW5kYXJkVXNlckFnZW50KCkpCisg
ICAgLCBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKHRoaXMpCiAgICAgLCBt
X2VzdGltYXRlZFByb2dyZXNzKDApCiAgICAgLCBtX2lzSW5XaW5kb3coZmFsc2UpCiAgICAgLCBt
X2JhY2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZSh0aGlzKSkKQEAgLTI1
OSw2ICsyNjAsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xvc2UoKQogICAgICAgICBtX29wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyID0gMDsKICAgICB9CiAKKyAgICBtX2dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOworCiAgICAgbV90b29sVGlw
ID0gU3RyaW5nKCk7CiAKICAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9kYXRhQ2FsbGJhY2tz
KTsKQEAgLTIxMDQsNiArMjEwNyw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jh
c2goKQogICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKICAgICB9CiAKKyAg
ICBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0
cygpOworCiAgICAgbV90b29sVGlwID0gU3RyaW5nKCk7CiAKICAgICBpbnZhbGlkYXRlQ2FsbGJh
Y2tNYXAobV9kYXRhQ2FsbGJhY2tzKTsKQEAgLTIxOTcsNiArMjIwMiwxOCBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhCiAgICAgbmV3UXVvdGEgPSBtX3VpQ2xpZW50
LmV4Y2VlZGVkRGF0YWJhc2VRdW90YSh0aGlzLCBmcmFtZSwgb3JpZ2luLmdldCgpLCBkYXRhYmFz
ZU5hbWUsIGRpc3BsYXlOYW1lLCBjdXJyZW50UXVvdGEsIGN1cnJlbnRVc2FnZSwgZXhwZWN0ZWRV
c2FnZSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNz
aW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3Ry
aW5nIG9yaWdpbklkZW50aWZpZXIpCit7CisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBwcm9j
ZXNzKCktPndlYkZyYW1lKGZyYW1lSUQpOworICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUpOworCisg
ICAgUmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKG9yaWdpbklkZW50aWZpZXIpOworICAgIFJlZlB0cjxHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0UHJveHk+IHJlcXVlc3QgPSBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmNyZWF0ZVJlcXVlc3QoZ2VvbG9jYXRpb25JRCk7CisKKyAgICBpZiAoIW1fdWlDbGll
bnQuZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCh0aGlzLCBmcmFt
ZSwgb3JpZ2luLmdldCgpLCByZXF1ZXN0LmdldCgpKSkKKyAgICAgICAgcmVxdWVzdC0+ZGVueSgp
OworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21S
ZXByZXNlbnRhdGlvbihjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNl
KQogewogICAgIG1fcGFnZUNsaWVudC0+ZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21SZXBy
ZXNlbnRhdGlvbihkYXRhUmVmZXJlbmNlKTsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CShyZXZpc2lvbiA3NTQxMykKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAj
aW5jbHVkZSAiQ29udGV4dE1lbnVTdGF0ZS5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHku
aCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgi
CiAjaW5jbHVkZSAiU2VsZWN0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIK
ICNpbmNsdWRlICJXS0Jhc2UuaCIKQEAgLTM5NCwxMSArMzk1LDEzIEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRDaGFuZ2VWaWV3cG9ydERhdGEoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVu
dHMmKTsKICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoKTsKICAgICB2b2lkIHJ1bk9wZW5QYW5lbCh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOjpEYXRhJik7Cisg
ICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3Qg
U3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJy
ZW50VXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIHVpbnQ2NF90JiBuZXdRdW90YSk7Cisg
ICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2Vv
bG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpOwog
CiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdm9pZCBwYWdlRGlkUmVxdWVz
dFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAjZW5kaWYKLSAgICB2b2lkIGV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3Bs
YXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRVc2FnZSwgdWlu
dDY0X3QgZXhwZWN0ZWRVc2FnZSwgdWludDY0X3QmIG5ld1F1b3RhKTsKKwogI2lmIFBMQVRGT1JN
KFFUKQogICAgIHZvaWQgZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKTsKICAgICB2b2lkIGRpZEZpbmRab29tYWJsZUFyZWEoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYpOwpAQCAtNTE0LDYgKzUxNyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkNvbnRleHRN
ZW51UHJveHk+IG1fYWN0aXZlQ29udGV4dE1lbnU7CiAgICAgQ29udGV4dE1lbnVTdGF0ZSBtX2Fj
dGl2ZUNvbnRleHRNZW51U3RhdGU7CiAgICAgUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyUHJveHk+IG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CisgICAgR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOwogCiAgICAgZG91YmxlIG1fZXN0aW1hdGVkUHJvZ3Jlc3M7CiAKSW5kZXg6IFdlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDc1NDEzKQor
KysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjUsNiArMTY1LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAj
IERhdGFiYXNlIG1lc3NhZ2VzLgogICAgIEV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1aW50NjRfdCBm
cmFtZUlELCBXVEY6OlN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBXVEY6OlN0cmluZyBkYXRhYmFz
ZU5hbWUsIFdURjo6U3RyaW5nIGRhdGFiYXNlRGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRR
dW90YSwgdWludDY0X3QgY3VycmVudFVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlKSAtPiAo
dWludDY0X3QgbmV3UXVvdGEpCiAKKyAgICAjIEdlb2xvY2F0aW9uIG1lc3NhZ2VzLgorICAgIFJl
cXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklE
LCB1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQorCiAgICAg
IyBQbHVnLWluIGNvbXBsZXggdGV4dCBpbnB1dCBzdXBwb3J0IG1lc3NhZ2VzLgogI2lmIFBMQVRG
T1JNKE1BQykKICAgICBTZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBwbHVnaW5D
b21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkK
SW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAJKHJldmlzaW9uIDc1NDEzKQorKysgV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjQsNCAr
MjY0LDEzIEBAIGJvb2wgV2ViVUlDbGllbnQ6OnJ1bk9wZW5QYW5lbChXZWJQYWdlUHIKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBXZWJVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkq
IGZyYW1lLCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkqIHBlcm1pc3Npb25SZXF1ZXN0KQoreworICAgIGlmICghbV9jbGllbnQuZGVj
aWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdCh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShvcmlnaW4pLCB0b0FQ
SShwZXJtaXNzaW9uUmVxdWVzdCksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIHJldHVybiB0
cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNz
L1dlYlVJQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGll
bnQuaAkocmV2aXNpb24gNzU0MTMpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBBUElPYmplY3Q7CitjbGFzcyBHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50OwogY2xh
c3MgV2ViRnJhbWVQcm94eTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKQEAgLTg0LDYgKzg1LDcgQEAg
cHVibGljOgogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2Vi
UGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIFdlYlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXNwbGF5TmFtZSwgdW5z
aWduZWQgbG9uZyBsb25nIGN1cnJlbnRRdW90YSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRV
c2FnZSwgdW5zaWduZWQgbG9uZyBsb25nIGV4cGVjdGVkVXNhZ2UpOwogCiAgICAgYm9vbCBydW5P
cGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYk9wZW5QYW5l
bFBhcmFtZXRlcnM6OkRhdGEmLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5Kik7Cisg
ICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBh
Z2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBXZWJTZWN1cml0eU9yaWdpbiosIEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RQcm94eSopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cklu
ZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkocmV2aXNpb24gNzU0MTMpCisrKyBX
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDMs
NiArNDMsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHk7CiBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXI7CiBjbGFzcyBE
b3dubG9hZFByb3h5OworY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5Owog
Y2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsK
IGNsYXNzIFdlYkNvbnRleHQ7CkBAIC03NCw2ICs3NSw3IEBAIFdLX0FERF9BUElfTUFQUElORyhX
S0Zvcm1TdWJtaXNzaW9uTGlzdGUKIFdLX0FERF9BUElfTUFQUElORyhXS0ZyYW1lUG9saWN5TGlz
dGVuZXJSZWYsIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElO
RyhXS0ZyYW1lUmVmLCBXZWJGcmFtZVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLR2VvbG9j
YXRpb25NYW5hZ2VyUmVmLCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSkKK1dLX0FERF9BUElf
TUFQUElORyhXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYsIEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS0dlb2xvY2F0aW9uUG9z
aXRpb25SZWYsIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tO
YXZpZ2F0aW9uRGF0YVJlZiwgV2ViTmF2aWdhdGlvbkRhdGEpCiBXS19BRERfQVBJX01BUFBJTkco
V0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmLCBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzKQpJbmRleDog
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXS0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QuaCIKKworI2luY2x1ZGUgIkdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owor
CitXS1R5cGVJRCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKQorewor
ICAgIHJldHVybiB0b0FQSShHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OkFQSVR5
cGUpOworfQorCit2b2lkIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UmVmKQoreworICAgIHJldHVybiB0b0ltcGwoZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJl
ZiktPmFsbG93KCk7Cit9CisKK3ZvaWQgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVu
eShXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgZ2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdFJlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKGdlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RSZWYpLT5kZW55KCk7Cit9CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaAkocmV2aXNpb24gMCkK
KysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
S0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBXS0dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVm
IF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQg
V0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCB2
b2lkIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdFJlZiBnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KTsKK1dLX0VYUE9S
VCB2b2lkIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0UmVmIGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0X2ggKi8KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCShyZXZpc2lv
biA3NTQxMykKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xNzYsNiArMTc2LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkRHJhd0NhbGxi
YWNrKShXSwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkU2Nyb2xsQ2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBs
b25nICgqV0tQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdl
LCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tTdHJpbmdS
ZWYgZGF0YWJhc2VOYW1lLCBXS1N0cmluZ1JlZiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBs
b25nIGN1cnJlbnRRdW90YSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRVc2FnZSwgdW5zaWdu
ZWQgbG9uZyBsb25nIGV4cGVjdGVkVXNhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlw
ZWRlZiB2b2lkICgqV0tQYWdlUnVuT3BlblBhbmVsQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBX
S0ZyYW1lUmVmIGZyYW1lLCBXS09wZW5QYW5lbFBhcmFtZXRlcnNSZWYgcGFyYW1ldGVycywgV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
byk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBX
S1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAogc3RydWN0
IFdLUGFnZVVJQ2xpZW50IHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC0yMDUsNiArMjA2
LDcgQEAgc3RydWN0IFdLUGFnZVVJQ2xpZW50IHsKICAgICBXS1BhZ2VEaWRTY3JvbGxDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEaWRTY3Jv
bGw7CiAgICAgV0tQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBleGNlZWRlZERhdGFiYXNlUXVvdGE7CiAgICAgV0tQYWdlUnVu
T3BlblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBydW5PcGVuUGFuZWw7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0OwogfTsKIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50IFdL
UGFnZVVJQ2xpZW50OwogCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Mi5oCShyZXZpc2lv
biA3NTQxMykKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDIuaAkod29ya2luZyBj
b3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgPFdlYktpdDIvV0tGcmFtZS5oPgogI2lu
Y2x1ZGUgPFdlYktpdDIvV0tGcmFtZVBvbGljeUxpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0
Mi9XS0dlb2xvY2F0aW9uTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb2xvY2F0aW9uUG9z
aXRpb24uaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLTXV0YWJsZUFycmF5Lmg+CiAjaW5jbHVkZSA8
V2ViS2l0Mi9XS011dGFibGVEaWN0aW9uYXJ5Lmg+CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXdrcGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3a3BhZ2UuY3BwCShyZXZpc2lvbiA3NTQxMykKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2twYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgzLDcgKzM4Myw4IEBAIFFXS1BhZ2U6
OlFXS1BhZ2UoUVdLQ29udGV4dCogY29udGV4dCkKICAgICAgICAgMCwgIC8qIGRpZERyYXcgKi8K
ICAgICAgICAgMCwgIC8qIHBhZ2VEaWRTY3JvbGwgKi8KICAgICAgICAgMCwgIC8qIGV4Y2VlZGVk
RGF0YWJhc2VRdW90YSAqLwotICAgICAgICAwICAgLyogcnVuT3BlblBhbmVsICovCisgICAgICAg
IDAsICAvKiBydW5PcGVuUGFuZWwgKi8KKyAgICAgICAgMCAgIC8qIGRlY2lkZVBvbGljeUZvckdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QgKi8KICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VV
SUNsaWVudChwYWdlUmVmKCksICZ1aUNsaWVudCk7CiB9CkluZGV4OiBXZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNzU0MTMpCisrKyBXZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzExLDYg
KzMxMSwxNCBAQAogCQlCQzAzMkREMTEwRjQzODlGMDA1OEMxNUEgLyogV2ViUGFnZVByb3h5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkRDQjEw
RjQzODlGMDA1OEMxNUEgLyogV2ViUGFnZVByb3h5LmggKi87IH07CiAJCUJDMDMyREQzMTBGNDM4
OUYwMDU4QzE1QSAvKiBXZWJQcm9jZXNzTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMzJEQ0QxMEY0Mzg5RjAwNThDMTVBIC8qIFdlYlBy
b2Nlc3NNYW5hZ2VyLmggKi87IH07CiAJCUJDMDMyREQ1MTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQ
cm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMDMyRENGMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQcm9jZXNzUHJveHkuaCAqLzsgfTsK
KwkJQkMwNkY0MkYxMkRCQjlCNjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzA2RjQyRDEyREJCOUI2MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuaCAqLzsgfTsKKwkJQkMwNkY0MzAxMkRCQjlCNjAwMkQ3OERFIC8qIEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZGNDJFMTJEQkI5QjYwMDJENzhERSAvKiBHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgKi87IH07CisJCUJDMDZGNDNBMTJEQkND
RkIwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZGNDM4MTJEQkNDRkIw
MDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAqLzsgfTsKKwkJ
QkMwNkY0M0IxMkRCQ0NGQjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzA2RjQzOTEyREJDQ0ZCMDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmNwcCAqLzsgfTsKKwkJQkMwNkY0NEExMkRCRDFGNTAwMkQ3OERFIC8qIEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZGNDQ4MTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi87IH07CisJCUJDMDZGNDRCMTJE
QkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZG
NDQ5MTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcCAqLzsgfTsKKwkJQkMwNkY0NEUxMkRCREYzRjAwMkQ3OERFIC8qIFdLR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMwNkY0NEMxMkRCREYzRjAwMkQ3OERFIC8qIFdLR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywg
KTsgfTsgfTsKKwkJQkMwNkY0NEYxMkRCREYzRjAwMkQ3OERFIC8qIFdLR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzA2RjQ0RDEyREJERjNGMDAyRDc4REUgLyogV0tHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmNwcCAqLzsgfTsKIAkJQkMwRTVGRTUxMkQ2OTcxNjAwMTJBNzJBIC8qIFdlYkdl
b2xvY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMwRTVGRTMxMkQ2OTcxNjAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdl
ci5oICovOyB9OwogCQlCQzBFNUZFNjEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25N
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMEU1RkU0MTJENjk3MTYwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwICov
OyB9OwogCQlCQzBFNjA2MTEyRDZCQTkxMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDMEU2MDVGMTJENkJBOTEwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMTAxOSw2ICsxMDI3LDE0IEBACiAJCUJD
MDMyRENCMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQYWdlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMDMyRENEMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQcm9jZXNzTWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQcm9jZXNzTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAzMkRDRjEwRjQzODlGMDA1OEMxNUEgLyogV2Vi
UHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlByb2Nl
c3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzA2RjQyRDEyREJCOUI2
MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMwNkY0MkUxMkRCQjlCNjAw
MkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMwNkY0MzgxMkRC
Q0NGQjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMwNkY0MzkxMkRCQ0NGQjAw
MkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzA2RjQ0ODEyREJEMUY1
MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMDZGNDQ5
MTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCQzA2RjQ0QzEyREJERjNGMDAyRDc4REUgLyogV0tHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzA2
RjQ0RDEyREJERjNGMDAyRDc4REUgLyogV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMEU1RkUz
MTJENjk3MTYwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDMEU1RkU0MTJENjk3MTYwMDEyQTcyQSAvKiBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMw
RTYwNDgxMkQ2QjYzNzAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDEwLDYgKzIwMjYsMTAgQEAKIAkJ
CQkxQTkxMDA3MDEyNjY3NUM0MDAxODQyRjUgLyogRmluZEluZGljYXRvci5jcHAgKi8sCiAJCQkJ
MUE5MTAwNkYxMjY2NzVDMzAwMTg0MkY1IC8qIEZpbmRJbmRpY2F0b3IuaCAqLywKIAkJCQlCQzE3
NzUzRTExOEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmggKi8sCisJCQkJQkMwNkY0
MzkxMkRCQ0NGQjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5j
cHAgKi8sCisJCQkJQkMwNkY0MzgxMkRCQ0NGQjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oICovLAorCQkJCUJDMDZGNDQ5MTJEQkQxRjUwMDJENzhERSAvKiBH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQlCQzA2
RjQ0ODEyREJEMUY1MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oICovLAogCQkJCTBGNTI2NUI3MTFERDM3N0YwMDA2RDMzQyAvKiBMYXllckJhY2tl
ZERyYXdpbmdBcmVhUHJveHkuY3BwICovLAogCQkJCTBGNTI2NUI4MTFERDM3N0YwMDA2RDMzQyAv
KiBMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuaCAqLywKIAkJCQlCQzZFREFBNTExMTI3MUM2
MDBFNzY3OEIgLyogUGFnZUNsaWVudC5oICovLApAQCAtMjEzNCw2ICsyMTU0LDggQEAKIAkJCQlC
Q0I5RjZBMzExMjNERDBEMDBBMTM3RTAgLyogV0tGcmFtZVBvbGljeUxpc3RlbmVyLmggKi8sCiAJ
CQkJQkM1NENDMTExMkQ2NzRFRTAwNUM2N0IwIC8qIFdLR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCAq
LywKIAkJCQlCQzU0Q0MxMDEyRDY3NEVFMDA1QzY3QjAgLyogV0tHZW9sb2NhdGlvbk1hbmFnZXIu
aCAqLywKKwkJCQlCQzA2RjQ0RDEyREJERjNGMDAyRDc4REUgLyogV0tHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmNwcCAqLywKKwkJCQlCQzA2RjQ0QzEyREJERjNGMDAyRDc4REUgLyogV0tH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi8sCiAJCQkJQkMwRTYxOTcxMkQ2Q0QxMjAw
MTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgKi8sCiAJCQkJQkMwRTYxOTYxMkQ2
Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovLAogCQkJCTFDOEUyOTM4
MTI3NjFFNUIwMEJDN0JEMCAvKiBXS0luc3BlY3Rvci5jcHAgKi8sCkBAIC0yMTYzLDYgKzIxODUs
OCBAQAogCQlCQzBFNUZDQjEyRDY5NkREMDAxMkE3MkEgLyogR2VvbG9jYXRpb24gKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUJDMDZGNDJFMTJEQkI5QjYw
MDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgKi8sCisJ
CQkJQkMwNkY0MkQxMkRCQjlCNjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmggKi8sCiAJCQkJQkMwRTVGRTQxMkQ2OTcxNjAwMTJBNzJBIC8qIFdlYkdlb2xv
Y2F0aW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJQkMwRTVGRTMxMkQ2OTcxNjAwMTJBNzJBIC8qIFdl
Ykdlb2xvY2F0aW9uTWFuYWdlci5oICovLAogCQkJCUJDMEU2MDQ4MTJENkI2MzcwMDEyQTcyQSAv
KiBXZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCkBAIC0yOTQyLDYgKzI5NjYs
MTAgQEAKIAkJCQlCQzBFNjA3MzEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwRTYxODMxMkQ2Q0IxRDAwMTJBNzJBIC8qIFdl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MEU2MTk4MTJENkNEMTIwMDEyQTcyQSAvKiBXS0dlb2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFk
ZXJzICovLAorCQkJCUJDMDZGNDJGMTJEQkI5QjYwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMwNkY0M0ExMkRCQ0NG
QjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQkMwNkY0NEExMkRCRDFGNTAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDMDZGNDRFMTJE
QkRGM0YwMDJENzhERSAvKiBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMzM4Niw2ICszNDE0LDEwIEBACiAJCQkJQkMwRTYwNzQxMkQ2QkMyMDAwMTJB
NzJBIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMw
RTYxODIxMkQ2Q0IxRDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMEU2MTk5MTJENkNEMTIwMDEyQTcy
QSAvKiBXS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMwNkY0
MzAxMkRCQjlCNjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDMDZGNDNCMTJEQkNDRkIwMDJENzhERSAvKiBHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMw
NkY0NEIxMkRCRDFGNTAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMwNkY0NEYxMkRCREYzRjAwMkQ3OERF
IC8qIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5k
ZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAkocmV2aXNpb24g
MCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIK
KworI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUg
IldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlR2VvbG9jYXRpb25JRCgpCit7CisgICAgc3Rh
dGljIHVpbnQ2NF90IHVuaXF1ZUdlb2xvY2F0aW9uSUQgPSAxOworICAgIHJldHVybiB1bmlxdWVH
ZW9sb2NhdGlvbklEKys7Cit9CisKK0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjpHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlKiBwYWdlKQorICAg
IDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OnN0YXJ0UmVxdWVzdEZvckdlb2xvY2F0aW9uKEdlb2xvY2F0aW9uKiBnZW9sb2Nh
dGlvbikKK3sKKyAgICB1aW50NjRfdCBnZW9sb2NhdGlvbklEID0gZ2VuZXJhdGVHZW9sb2NhdGlv
bklEKCk7CisKKyAgICBtX2dlb2xvY2F0aW9uVG9JRE1hcC5zZXQoZ2VvbG9jYXRpb24sIGdlb2xv
Y2F0aW9uSUQpOworICAgIG1faWRUb0dlb2xvY2F0aW9uTWFwLnNldChnZW9sb2NhdGlvbklELCBn
ZW9sb2NhdGlvbik7CisKKworICAgIEZyYW1lKiBmcmFtZSA9IGdlb2xvY2F0aW9uLT5mcmFtZSgp
OworCisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJD
bGllbnQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKyAgICBTZWN1
cml0eU9yaWdpbiogb3JpZ2luID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7
CisKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdEdlb2xv
Y2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKGdlb2xvY2F0aW9uSUQsIHdlYkZyYW1lLT5mcmFtZUlE
KCksIG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCkpKTsKK30KKwordm9pZCBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsUmVxdWVzdEZvckdlb2xvY2F0aW9uKEdl
b2xvY2F0aW9uKiBnZW9sb2NhdGlvbikKK3sKKyAgICBHZW9sb2NhdGlvblRvSURNYXA6Oml0ZXJh
dG9yIGl0ID0gbV9nZW9sb2NhdGlvblRvSURNYXAuZmluZChnZW9sb2NhdGlvbik7CisgICAgaWYg
KGl0ID09IG1fZ2VvbG9jYXRpb25Ub0lETWFwLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX2dlb2xvY2F0aW9uVG9JRE1hcC5yZW1vdmUoaXQpOworICAgIG1faWRUb0dlb2xvY2F0aW9u
TWFwLnJlbW92ZShpdC0+c2Vjb25kKTsKK30KKwordm9pZCBHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVp
bnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBJRFRvR2VvbG9jYXRp
b25NYXA6Oml0ZXJhdG9yIGl0ID0gbV9pZFRvR2VvbG9jYXRpb25NYXAuZmluZChnZW9sb2NhdGlv
bklEKTsKKyAgICBpZiAoaXQgPT0gbV9pZFRvR2VvbG9jYXRpb25NYXAuZW5kKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbiA9IGl0LT5zZWNvbmQ7Cisg
ICAgZ2VvbG9jYXRpb24tPnNldElzQWxsb3dlZChhbGxvd2VkKTsKKworICAgIG1faWRUb0dlb2xv
Y2F0aW9uTWFwLnJlbW92ZShpdCk7CisgICAgbV9nZW9sb2NhdGlvblRvSURNYXAucmVtb3ZlKGdl
b2xvY2F0aW9uKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1dl
YlByb2Nlc3MvR2VvbG9jYXRpb24vR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvV2Vi
UHJvY2Vzcy9HZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCisjZGVmaW5lIEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBHZW9sb2Nh
dGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNz
IEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsKK3B1YmxpYzoKKyAgICBleHBs
aWNpdCBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlKik7CisKKyAg
ICB2b2lkIHN0YXJ0UmVxdWVzdEZvckdlb2xvY2F0aW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7
CisgICAgdm9pZCBjYW5jZWxSZXF1ZXN0Rm9yR2VvbG9jYXRpb24oV2ViQ29yZTo6R2VvbG9jYXRp
b24qKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7CisKK3ByaXZhdGU6CisgICAg
dHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBXZWJDb3JlOjpHZW9sb2NhdGlvbio+IElEVG9HZW9s
b2NhdGlvbk1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8V2ViQ29yZTo6R2VvbG9jYXRpb24qLCB1
aW50NjRfdD4gR2VvbG9jYXRpb25Ub0lETWFwOworICAgIElEVG9HZW9sb2NhdGlvbk1hcCBtX2lk
VG9HZW9sb2NhdGlvbk1hcDsKKyAgICBHZW9sb2NhdGlvblRvSURNYXAgbV9nZW9sb2NhdGlvblRv
SURNYXA7CisKKyAgICBXZWJQYWdlKiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gKSW5k
ZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiA3NTQxMykKKysrIFdlYktpdDIvV2ViUHJvY2Vz
cy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogCiAjaWYgRU5BQkxFKENM
SUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9u
UG9zaXRpb24uaD4KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9j
YXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgJKHJldmlzaW9uIDc1NDEzKQorKysgV2ViS2l0
Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZUlELmgiCiAjaW5jbHVk
ZSAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Cisj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAog
bmFtZXNwYWNlIENvcmVJUEMgewpAQCAtMzYsNiArMzcsMTAgQEAgY2xhc3MgQXJndW1lbnREZWNv
ZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKIH0KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
R2VvbG9jYXRpb247Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQcm9jZXNz
OwpAQCAtNTAsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlcldlYlBhZ2UoV2Vi
UGFnZSopOwogICAgIHZvaWQgdW5yZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSopOwogCisgICAgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpHZW9sb2NhdGlvbiopOworCiAgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKIAogcHJpdmF0ZToKQEAgLTYxLDYgKzY4LDgg
QEAgcHJpdmF0ZToKIAogICAgIFdlYlByb2Nlc3MqIG1fcHJvY2VzczsKICAgICBIYXNoU2V0PFdl
YlBhZ2UqPiBtX3BhZ2VTZXQ7CisKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29y
ZTo6R2VvbG9jYXRpb24+ID4gbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0czsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCShyZXZpc2lv
biA3NTQxMykKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2Nh
dGlvbkNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEzICsyOCwxOSBAQAogI2lmIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlv
bk1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dl
b2xvY2F0aW9uUG9zaXRpb24uaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCitXZWJHZW9sb2NhdGlvbkNsaWVudDo6fldlYkdlb2xvY2F0aW9uQ2xp
ZW50KCkKK3sKK30KKwogdm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6Z2VvbG9jYXRpb25EZXN0
cm95ZWQoKQogewogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmdlb2xvY2F0aW9uTWFuYWdlcigp
LnVucmVnaXN0ZXJXZWJQYWdlKG1fcGFnZSk7CkBAIC02MSwxNCArNjcsMTQgQEAgR2VvbG9jYXRp
b25Qb3NpdGlvbiogV2ViR2VvbG9jYXRpb25DbGllbgogICAgIHJldHVybiAwOwogfQogCi12b2lk
IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiopCit2
b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiog
Z2VvbG9jYXRpb24pCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIG1fcGFn
ZS0+Z2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5zdGFydFJlcXVlc3RGb3JH
ZW9sb2NhdGlvbihnZW9sb2NhdGlvbik7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6
OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KEdlb2xvY2F0aW9uKikKK3ZvaWQgV2ViR2VvbG9jYXRp
b25DbGllbnQ6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlv
bikKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgbV9wYWdlLT5nZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmNhbmNlbFJlcXVlc3RGb3JHZW9sb2NhdGlv
bihnZW9sb2NhdGlvbik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9u
Q2xpZW50LmgJKHJldmlzaW9uIDc1NDEzKQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQx
LDggQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKKyAgICB2aXJ0dWFsIH5XZWJHZW9sb2NhdGlv
bkNsaWVudCgpOworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZW9sb2NhdGlvbkRlc3Ry
b3llZCgpOwogCkBAIC01Myw2ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgdmlydHVhbCB2b2lk
IGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAKKwogICAg
IFdlYlBhZ2UqIG1fcGFnZTsKIH07CiAKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCShyZXZpc2lvbiA3NTQxMykKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNiArMTQwLDcgQEAgV2ViUGFnZTo6
V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IAogICAgICwgbV9uYXRpdmVXaW5kb3cocGFy
YW1ldGVycy5uYXRpdmVXaW5kb3cpCiAjZW5kaWYKICAgICAsIG1fZmluZENvbnRyb2xsZXIodGhp
cykKKyAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIodGhpcykKICAg
ICAsIG1fcGFnZUlEKHBhZ2VJRCkKIHsKICAgICBBU1NFUlQobV9wYWdlSUQpOwpAQCAtMTI5OCw2
ICsxMjk5LDExIEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2FuY2VsRm9yT3BlblBhbmVsKCkKICAgICBt
X2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKIH0KIAordm9pZCBXZWJQYWdlOjpk
aWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2VvbG9jYXRp
b25JRCwgYm9vbCBhbGxvd2VkKQoreworICAgIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKGdlb2xvY2F0
aW9uSUQsIGFsbG93ZWQpOworfQorCiB2b2lkIFdlYlBhZ2U6OmFkdmFuY2VUb05leHRNaXNzcGVs
bGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKQogewogICAgIEZyYW1lKiBmcmFtZSA9IG1f
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOwpJbmRleDogV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNpb24gNzU0MTMpCisrKyBXZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYS5oIgog
I2luY2x1ZGUgIkZpbmRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJJbWFnZU9wdGlvbnMuaCIKICNpbmNsdWRl
ICJJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oIgogI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oIgpAQCAtMjI1LDYgKzIyNiw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3QgV2ViRXZlbnQqIGN1cnJlbnRFdmVudCgpOwogCiAgICAgRmluZENv
bnRyb2xsZXImIGZpbmRDb250cm9sbGVyKCkgeyByZXR1cm4gbV9maW5kQ29udHJvbGxlcjsgfQor
ICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyJiBnZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcigpIHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI7IH0KIAogICAgIHZvaWQgcGFnZURpZFNjcm9sbCgpOwogI2lmIEVOQUJMRShU
SUxFRF9CQUNLSU5HX1NUT1JFKQpAQCAtMzg0LDYgKzM4Niw4IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbChjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogICAg
IHZvaWQgZGlkQ2FuY2VsRm9yT3BlblBhbmVsKCk7CiAKKyAgICB2b2lkIGRpZFJlY2VpdmVHZW9s
b2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBnZW9sb2NhdGlvbklELCBib29sIGFs
bG93ZWQpOworCiAgICAgdm9pZCBhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJl
Zm9yZVNlbGVjdGlvbik7CiAgICAgdm9pZCBjaGFuZ2VTcGVsbGluZ1RvV29yZChjb25zdCBTdHJp
bmcmIHdvcmQpOwogICAgIHZvaWQgdW5tYXJrQWxsTWlzc3BlbGxpbmdzKCk7CkBAIC00NjcsNiAr
NDcxLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViUG9wdXBNZW51PiBtX2FjdGl2ZVBvcHVw
TWVudTsKICAgICBSZWZQdHI8V2ViQ29udGV4dE1lbnU+IG1fY29udGV4dE1lbnU7CiAgICAgUmVm
UHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyPiBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyOworICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIG1fZ2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAKICAgICBTYW5kYm94RXh0ZW5zaW9uVHJh
Y2tlciBtX3NhbmRib3hFeHRlbnNpb25UcmFja2VyOwogICAgIHVpbnQ2NF90IG1fcGFnZUlEOwpJ
bmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CShyZXZpc2lvbiA3NTQxMykKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTExNyw2ICsxMTcsOSBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlIHsKICAgICBTZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBpc1NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCk7CiAjZW5kaWYKIAorICAgICMgR2VvbG9jYXRpb24KKyAgICBE
aWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2VvbG9jYXRp
b25JRCwgYm9vbCBhbGxvd2VkKQorCiAgICAgU2V0V2luZG93UmVzaXplclNpemUoV2ViQ29yZTo6
SW50U2l6ZSBpbnRlcnNlY3RzVmlldykKIAogICAgIC8vIEZJWE1FOiBUaGlzIGEgZHVtbXkgbWVz
c2FnZSwgdG8gYXZvaWQgYnJlYWtpbmcgdGhlIGJ1aWxkIGZvciBwbGF0Zm9ybXMgdGhhdCBkb24n
dCByZXF1aXJlCkluZGV4OiBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24gNzU0MTMpCisrKyBXZWJLaXQy
L3dpbi9XZWJLaXQyLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMTI1OCw2ICsxMjU4LDE0IEBA
CiAJCQkJTmFtZT0iR2VvbG9jYXRpb24iCiAJCQkJPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlvblxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uXEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uXFdlYkdlb2xvY2F0aW9uTWFu
YWdlci5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC0yMDMxLDYgKzIwMzksMjIgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNz
XEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxVSVByb2Nlc3NcTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5LmNwcCIKIAkJCQk+CiAJCQk8
L0ZpbGU+CkBAIC0yNDU3LDYgKzI0ODEsMTQgQEAKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgogCQkJ
CQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgorCQkJCQk8
RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0LmgiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUK
IAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLR2VvbG9jYXRpb25Qb3Np
dGlvbi5jcHAiCiAJCQkJCQk+CiAJCQkJCTwvRmlsZT4KSW5kZXg6IFdlYktpdDIvd2luL1dlYktp
dDJHZW5lcmF0ZWQubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJh
dGVkLm1ha2UJKHJldmlzaW9uIDc1NDEzKQorKysgV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRl
ZC5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3IEBAIGFsbDoKICAgICB4Y29weSAv
eSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLRnJhbWUuaCIgIiQoQ09ORklHVVJBVElPTkJVSUxE
RElSKVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElc
Q1xXS0ZyYW1lUG9saWN5TGlzdGVuZXIuaCIgIiQoQ09ORklHVVJBVElPTkJVSUxERElSKVxpbmNs
dWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0dlb2xv
Y2F0aW9uTWFuYWdlci5oIiAiJChDT05GSUdVUkFUSU9OQlVJTERESVIpXGluY2x1ZGVcV2ViS2l0
MiIKKyAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdC5oIiAiJChDT05GSUdVUkFUSU9OQlVJTERESVIpXGluY2x1ZGVcV2ViS2l0
MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLR2VvbG9jYXRpb25Qb3Np
dGlvbi5oIiAiJChDT05GSUdVUkFUSU9OQlVJTERESVIpXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4
Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxjXFdLSW5zcGVjdG9yLmgiICIkKENPTkZJR1VS
QVRJT05CVUlMRERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVBy
b2Nlc3NcQVBJXENcV0tOYXRpdmVFdmVudC5oIiAiJChDT05GSUdVUkFUSU9OQlVJTERESVIpXGlu
Y2x1ZGVcV2ViS2l0MiIK
</data>

          </attachment>
      

    </bug>

</bugzilla>