<?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>100393</bug_id>
          
          <creation_ts>2012-10-25 10:17:42 -0700</creation_ts>
          <short_desc>Generate Settings from a .in file</short_desc>
          <delta_ts>2012-11-15 13:41:49 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>100392</dependson>
    
    <dependson>100405</dependson>
    
    <dependson>100564</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Chang">tony</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>750964</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-25 10:17:42 -0700</bug_when>
    <thetext>We can also use this to generate InternalSettings.  The goal is to make it so adding a new setting is just adding a single line to an in file.  Tests will then be able to use internals.settings to override the pref and we can make sure the generated code properly resets the setting at the end of the test.

This would obsolete testRunner.overridePreference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750975</commentid>
    <comment_count>1</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-25 10:26:14 -0700</bug_when>
    <thetext>This is motivated by the discussion on webkit-dev:
http://lists.webkit.org/pipermail/webkit-dev/2012-September/022323.html

Oh, we could also try to automate or simplify adding exports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751250</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-25 15:01:07 -0700</bug_when>
    <thetext>&gt; This would obsolete testRunner.overridePreference.

How would it obsolete that? We can&apos;t go directly to settings if we want to test how preferences work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751252</commentid>
    <comment_count>3</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-25 15:03:38 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; This would obsolete testRunner.overridePreference.
&gt; 
&gt; How would it obsolete that? We can&apos;t go directly to settings if we want to test how preferences work.

That&apos;s true, we should keep testRunner.overridePreference so we can test WebKit API methods.  However, we should be able to remove some API methods that were added to overridePreference just for DRT testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763480</commentid>
    <comment_count>4</comment_count>
      <attachid>173410</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-09 17:12:23 -0800</bug_when>
    <thetext>Created attachment 173410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763481</commentid>
    <comment_count>5</comment_count>
      <attachid>173410</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-09 17:12:50 -0800</bug_when>
    <thetext>Comment on attachment 173410
Patch

I expect some ews failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763482</commentid>
    <comment_count>6</comment_count>
      <attachid>173411</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-09 17:14:04 -0800</bug_when>
    <thetext>Created attachment 173411
generated SettingsMacros.h

Here&apos;s what the generated file looks like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763486</commentid>
    <comment_count>7</comment_count>
      <attachid>173410</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-09 17:21:45 -0800</bug_when>
    <thetext>Comment on attachment 173410
Patch

Attachment 173410 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14790292</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763490</commentid>
    <comment_count>8</comment_count>
      <attachid>173410</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-09 17:28:06 -0800</bug_when>
    <thetext>Comment on attachment 173410
Patch

Attachment 173410 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14778610</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763506</commentid>
    <comment_count>9</comment_count>
      <attachid>173410</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-09 17:52:17 -0800</bug_when>
    <thetext>Comment on attachment 173410
Patch

Attachment 173410 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14785382</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763508</commentid>
    <comment_count>10</comment_count>
      <attachid>173410</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-11-09 17:55:18 -0800</bug_when>
    <thetext>Comment on attachment 173410
Patch

Attachment 173410 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14779632</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763557</commentid>
    <comment_count>11</comment_count>
      <attachid>173410</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-09 19:17:47 -0800</bug_when>
    <thetext>Comment on attachment 173410
Patch

Attachment 173410 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14781492</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764550</commentid>
    <comment_count>12</comment_count>
      <attachid>173668</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-12 10:27:08 -0800</bug_when>
    <thetext>Created attachment 173668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764561</commentid>
    <comment_count>13</comment_count>
      <attachid>173668</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-12 10:44:59 -0800</bug_when>
    <thetext>Comment on attachment 173668
Patch

Attachment 173668 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14813428</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764641</commentid>
    <comment_count>14</comment_count>
      <attachid>173668</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-12 12:01:40 -0800</bug_when>
    <thetext>Comment on attachment 173668
Patch

Attachment 173668 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14818248</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764664</commentid>
    <comment_count>15</comment_count>
      <attachid>173686</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-12 12:26:47 -0800</bug_when>
    <thetext>Created attachment 173686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764684</commentid>
    <comment_count>16</comment_count>
      <attachid>173686</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-12 12:41:13 -0800</bug_when>
    <thetext>Comment on attachment 173686
Patch

Attachment 173686 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14811526</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764717</commentid>
    <comment_count>17</comment_count>
      <attachid>173701</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-12 13:03:54 -0800</bug_when>
    <thetext>Created attachment 173701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765711</commentid>
    <comment_count>18</comment_count>
      <attachid>173701</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-13 09:54:45 -0800</bug_when>
    <thetext>Comment on attachment 173701
Patch

I&apos;m not sure what&apos;s up with the Mac EWS bot, but I think this is ready for review now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765726</commentid>
    <comment_count>19</comment_count>
      <attachid>173701</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 10:01:08 -0800</bug_when>
    <thetext>Comment on attachment 173701
Patch

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

&gt; Source/WebCore/page/make_settings.pl:3
&gt; +# Copyright (C) 2011 Adam Barth &lt;abarth@webkit.org&gt;

I wrote this file!  I&apos;m amazing.

&gt; Source/WebCore/page/make_settings.pl:208
&gt; +    substr($setterFunctionName, 3, 1) = uc(substr($setterFunctionName, 3, 1));
&gt; +    if (substr($settingName, 0, 3) eq &quot;css&quot; || substr($settingName, 0, 3) eq &quot;xss&quot; || substr($settingName, 0, 3) eq &quot;ftp&quot;) {
&gt; +        substr($setterFunctionName, 3, 3) = uc(substr($setterFunctionName, 3, 3));
&gt; +    }

Yeah, this is probably better than writing a general camel-case converter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765727</commentid>
    <comment_count>20</comment_count>
      <attachid>173701</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 10:01:35 -0800</bug_when>
    <thetext>Comment on attachment 173701
Patch

InternalsSettings is next?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765770</commentid>
    <comment_count>21</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-13 10:27:35 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 173701 [details])
&gt; InternalsSettings is next?

Soon.  There are still lots of simple getters/setters in Settings.h that I&apos;m going to fix up first (e.g., isScriptEnabled/setScriptEnabled, inApplicationChromeMode/setApplicationChromeMode, isCSSCustomFilterEnabled/setCSSCustomFilterEnabled, scrollAnimatorEnabled/setEnableScrollAnimator).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765981</commentid>
    <comment_count>22</comment_count>
      <attachid>173701</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-13 13:19:31 -0800</bug_when>
    <thetext>Comment on attachment 173701
Patch

Attachment 173701 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14826292</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766100</commentid>
    <comment_count>23</comment_count>
      <attachid>174004</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-13 15:15:35 -0800</bug_when>
    <thetext>Created attachment 174004
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766132</commentid>
    <comment_count>24</comment_count>
      <attachid>174004</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-13 15:51:22 -0800</bug_when>
    <thetext>Comment on attachment 174004
Patch for landing

Attachment 174004 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14832087</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766157</commentid>
    <comment_count>25</comment_count>
      <attachid>174021</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-13 16:19:11 -0800</bug_when>
    <thetext>Created attachment 174021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767010</commentid>
    <comment_count>26</comment_count>
      <attachid>174191</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-14 10:17:23 -0800</bug_when>
    <thetext>Created attachment 174191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767717</commentid>
    <comment_count>27</comment_count>
      <attachid>174191</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-14 21:59:36 -0800</bug_when>
    <thetext>Comment on attachment 174191
Patch

Attachment 174191 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14847254

New failing tests:
inspector-protocol/nmi-webaudio.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768440</commentid>
    <comment_count>28</comment_count>
      <attachid>174191</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-15 13:41:42 -0800</bug_when>
    <thetext>Comment on attachment 174191
Patch

Clearing flags on attachment: 174191

Committed r134828: &lt;http://trac.webkit.org/changeset/134828&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768441</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-15 13:41:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173410</attachid>
            <date>2012-11-09 17:12:23 -0800</date>
            <delta_ts>2012-11-12 10:27:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100393-20121109171030.patch</filename>
            <type>text/plain</type>
            <size>81801</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDNkYTk5ZTdhNTI5ZDVj
YzIyNDk2ZWRlY2Y0NjUxYzNkM2Q3OGQ1Mi4uZTU3NWJlNDExNTdhOWI4MDcwMmM0ZDRjZWYxNDQw
MmRiMGMxMzEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTExLTA5ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2VuZXJhdGUgU2V0dGluZ3Mg
ZnJvbSBhIC5pbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBHZW5lcmF0ZSBtb3N0IHNldHRpbmdzIGZyb20gYW4gLmluIGZpbGUgdG8gcmVkdWNl
IGh1bWFuIG1pc3Rha2VzIGFuZAorICAgICAgICB0byBtYWtlIGl0IGVhc2llciB0byBhZGQvcmVt
b3ZlIG5ldyBzZXR0aW5ncy4KKworICAgICAgICBJIG9ubHkgbW92ZWQgc2V0dGluZ3MgdGhhdCBh
cmUgZWFzeSB0byBtb3ZlIGF0IHRoaXMgcG9pbnQuICBUaGVyZSBhcmUgbWFueSBtb3JlIHRoYXQK
KyAgICAgICAgaGF2ZSBzb21lIG1pbm9yIG5hbWluZyBpbmNvbnNpc3RlbmNpZXMgdGhhdCB3ZSBj
YW4gYWxzbyBtb3ZlIHRvIFNldHRpbmdzLmluLCBidXQgSSdsbAorICAgICAgICBkbyB0aGF0IGlu
IGEgZm9sbG93IHVwIHBhdGNoLgorCisgICAgICAgIFRoaXMgZG9lc24ndCBnZW5lcmF0ZSBTZXR0
aW5nSW50ZXJuYWxzLiogeWV0LS0gd2UgY2FuIGRvIHRoYXQgaW4gYSBmb2xsb3cgdXAgcGF0Y2gu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGEgcmVmYWN0b3IuCisKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5tYWtlOiBSdW4gbWFrZV9zZXR0aW5ncy5wbC4KKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5wcmk6IFJ1biBtYWtlX3NldHRpbmdzLnBsLgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOiBSdW4gbWFrZV9zZXR0aW5ncy5wbC4KKyAgICAgICAgKiBXZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cDogUnVuIGFjdGlvbl9tYWtlbmFtZXMucHksIHdoaWNoIHdpbGwgcnVuIG1ha2Vf
c2V0dGluZ3MucGwuCisgICAgICAgICogV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5h
bWVzLnB5OgorICAgICAgICAobWFpbik6IEFsbG93IG1ha2Vfc2V0dGluZ3MucGwuCisgICAgICAg
ICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0
aW9uTWVzc2FnZTo6c2V0TWVzc2FnZURPTUFuZFN0YXJ0VGltZXIpOiBGaXggYSB0eXBvIGluICJt
YWduaWZpY2F0aW9uIi4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6IFJlcGxhY2UgZ2VuZXJhdGVkIHNldHRpbmdzIHdp
dGggU0VUVElOR1NfSU5JVElBTElaRVJfTElTVC4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6
CisgICAgICAgIChTZXR0aW5ncyk6IFJlcGxhY2UgZ2VuZXJhdGVkIHNldHRpbmdzIHdpdGggU0VU
VElOR1NfR0VUVEVSU19BTkRfU0VUVEVSUyBhbmQgU0VUVElOR1NfTUVNQkVSX1ZBUklBQkxFUy4K
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL21ha2Vf
c2V0dGluZ3MucGw6IEFkZGVkLgorICAgICAgICAoZGVmYXVsdEl0ZW1GYWN0b3J5KToKKyAgICAg
ICAgKGdlbmVyYXRlQ29kZSk6CisgICAgICAgIChnZW5lcmF0ZUhlYWRlcik6IFVzZSBhIHNpbWls
YXIgbW9kZWwgYXMgbWFrZV9uYW1lcy5wbC4KKyAgICAgICAgKHByaW50Q29uZGl0aW9uYWxNYWNy
b3MpOgorICAgICAgICAocHJpbnRHZXR0ZXJzQW5kU2V0dGVycyk6CisgICAgICAgIChwcmludE1l
bWJlclZhcmlhYmxlcyk6CisgICAgICAgIChwcmludEdldHRlckFuZFNldHRlcik6CisgICAgICAg
IChwcmludEluaXRpYWxpemVyTGlzdCk6CisgICAgICAgIChwcmludEluaXRpYWxpemVyKToKKwog
MjAxMi0xMS0wOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDb29raWVKYXIgdXNlcyBEb2N1bWVudCBjbGFzcywgd2hpY2ggaXMgYSBsYXllcmluZyB2aW9s
YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDRjNjRjODk1MWJhZDZjYjcw
NGM1MGVmZWIwMzliMDg1MjM4NWEwODQuLmQ3YmU4OTRlZWU0YTY2MjU2ZmRiOGVlNjQ4ZTNkMzI4
MjA4NGUzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTI1LDYgKzkyNSwx
MSBAQCBNYXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgTWF0aE1MTmFtZXMuY3BwIDogZG9tL21ha2Vf
bmFtZXMucGwgbWF0aG1sL21hdGh0YWdzLmluCiAKICMgLS0tLS0tLS0KIAorU2V0dGluZ3NNYWNy
b3MuaCA6IHBhZ2UvbWFrZV9zZXR0aW5ncy5wbCBwYWdlL1NldHRpbmdzLmluCisJcGVybCAtSSAk
KFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1pbnB1dCAkKFdlYkNvcmUpL3BhZ2UvU2V0
dGluZ3MuaW4KKworIyAtLS0tLS0tLQorCiAjIENvbW1vbiBnZW5lcmF0b3IgdGhpbmdzCiAKIEdF
TkVSQVRFX1NDUklQVFMgPSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKaW5kZXggOTkyNGU4
NWQ3MWJmODhjNDRlYTc0N2M3ZjI5ZTNiOGM1NDQyODAzNS4uNDBlYTM4ZWMzZTViNDRkNGQ1Zjc1
M2UyYmRlZmY0YzljYzViMmUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtNDcs
NiArNDcsOCBAQCBFVkVOVF9UQVJHRVRfRkFDVE9SWSA9ICQkUFdEL2RvbS9FdmVudFRhcmdldEZh
Y3RvcnkuaW4KIAogRE9NX0VYQ0VQVElPTlMgPSAkJFBXRC9kb20vRE9NRXhjZXB0aW9ucy5pbgog
CitTRVRUSU5HU19NQUNST1MgPSAkJFBXRC9wYWdlL1NldHRpbmdzLmluCisKIENPTE9SREFUQV9H
UEVSRiA9ICQkUFdEL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgogCiBXQUxET0NTU1BST1BTID0g
JCRQV0QvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTg2NCw2ICs4NjYsMTQgQEAgZXhjZXB0
aW9uY29kZWRlc2NyaXB0aW9uLmNvbW1hbmRzID0gcGVybCAtSSQkUFdEL2JpbmRpbmdzL3Njcmlw
dHMgJCRleGNlcHRpb25jb2QKIGV4Y2VwdGlvbmNvZGVkZXNjcmlwdGlvbi5kZXBlbmRzID0gJCRQ
V0QvZG9tL21ha2VfZG9tX2V4Y2VwdGlvbnMucGwgJCRET01fRVhDRVBUSU9OUwogR0VORVJBVE9S
UyArPSBleGNlcHRpb25jb2RlZGVzY3JpcHRpb24KIAorIyBHRU5FUkFUT1IgNS1IOgorc2V0dGlu
Z3NtYWNyb3Mub3V0cHV0ID0gU2V0dGluZ3NNYWNyb3MuaAorc2V0dGluZ3NtYWNyb3MuaW5wdXQg
PSBTRVRUSU5HU19NQUNST1MKK3NldHRpbmdzbWFjcm9zLnNjcmlwdCA9ICQkUFdEL3BhZ2UvbWFr
ZV9zZXR0aW5ncy5wbAorc2V0dGluZ3NtYWNyb3MuY29tbWFuZHMgPSBwZXJsIC1JJCRQV0QvYmlu
ZGluZ3Mvc2NyaXB0cyAkJHNldHRpbmdzbWFjcm9zLnNjcmlwdCAtLWlucHV0ICQkU0VUVElOR1Nf
TUFDUk9TIC0tb3V0cHV0RGlyICR7UU1BS0VfRlVOQ19GSUxFX09VVF9QQVRIfQorc2V0dGluZ3Nt
YWNyb3MuZGVwZW5kcyA9ICQkUFdEL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbCAkJFNFVFRJTkdTX01B
Q1JPUworR0VORVJBVE9SUyArPSBzZXR0aW5nc21hY3JvcworCiAjIEdFTkVSQVRPUiA4LUE6CiBl
bnRpdGllcy5vdXRwdXQgPSBIVE1MRW50aXR5VGFibGUuY3BwCiBlbnRpdGllcy5pbnB1dCA9IEhU
TUxfRU5USVRJRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggZDc1NGFkYmEwM2VhZDQ3Y2MwZDg2
NWM5OGE1MTMzNDlmYWVkMjk0NC4uMDZiNTdjNzYwMmQxOWNkN2Q1YjY0MzE3Y2NhYjZmNzk1MTcw
OGVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTUwMyw2ICs1MDMsOSBAQCBEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0V2ZW50VGFyZ2V0SGVhZGVycy5oIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
RXZlbnRUYXJnZXRJbgogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FeGNlcHRpb25Db2RlRGVzY3Jp
cHRpb24uY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9u
LmggRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FeGNlcHRpb25IZWFkZXJzLmggRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9FeGNlcHRpb25JbnRlcmZhY2VzLmg6ICQoV2ViQ29yZSkvZG9tL21ha2VfZG9t
X2V4Y2VwdGlvbnMucGwgJChXZWJDb3JlKS9kb20vRE9NRXhjZXB0aW9ucy5pbgogCSQoQU1fVl9H
RU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWlucHV0ICQoV2Vi
Q29yZSkvZG9tL0RPTUV4Y2VwdGlvbnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJD
T1JFKSIKIAorRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9TZXR0aW5nc01hY3Jvcy5oOiAkKFdlYkNv
cmUpL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbCAkKFdlYkNvcmUpL3BhZ2UvU2V0dGluZ3MuaW4KKwkk
KEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1pbnB1
dCAkKFdlYkNvcmUpL3BhZ2UvU2V0dGluZ3MuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU19X
RUJDT1JFKSIKKwogIyBBbGwgV2ViIEluc3BlY3RvciBnZW5lcmF0ZWQgZmlsZXMgYXJlIGNyZWF0
ZWQgd2l0aCB0aGlzIG9uZSBjYWxsIHRvIENvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKIERlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSW5zcGVjdG9yUHJvdG9jb2xWZXJzaW9uLmggOiAkKFdlYkNvcmUp
L2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiAkKFdlYkNvcmUpL2luc3BlY3Rvci9nZW5lcmF0ZS1p
bnNwZWN0b3ItcHJvdG9jb2wtdmVyc2lvbgogCSQoQU1fVl9HRU4pJChQWVRIT04pICQoV2ViQ29y
ZSkvaW5zcGVjdG9yL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC12ZXJzaW9uIC1vICQoR0VO
U09VUkNFU19XRUJDT1JFKS9JbnNwZWN0b3JQcm90b2NvbFZlcnNpb24uaCAkKFdlYkNvcmUpL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtODA3LDYgKzgxMCw4IEBAIEVYVFJBX0RJU1QgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL21ha2UtaGFzaC10b29scy5wbCBcCiAJU291cmNlL1dlYkNvcmUv
bWF0aG1sL21hdGhhdHRycy5pbiBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL21hdGh0YWdzLmlu
IFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL21ha2Vfc2V0dGluZ3MucGwgXAorCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaW4gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0
YS5ncGVyZiBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvbWFrZS1jaGFyc2V0
LXRhYmxlLnBsIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvc3ZnYXR0cnMuaW4gXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCBlZDI5NDUzODM1NGI3OGM3NzJjMmI5N2Y0
YjE4NmNkY2VmZDI3MDRhLi5iNjFhZjRiZWRmNmIxYzI3M2RjYTQ3NjVmODM3MDQ4OTI2MTZjZGJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtODc4LDYgKzg3OCwy
MyBAQAogICAgICAgICAgIF0sCiAgICAgICAgIH0sCiAgICAgICAgIHsKKyAgICAgICAgICAnYWN0
aW9uX25hbWUnOiAnU2V0dGluZ3MnLAorICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAg
ICAnLi4vcGFnZS9tYWtlX3NldHRpbmdzLnBsJywKKyAgICAgICAgICAgICcuLi9wYWdlL1NldHRp
bmdzLmluJywKKyAgICAgICAgICBdLAorICAgICAgICAgICdvdXRwdXRzJzogWworICAgICAgICAg
ICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9TZXR0aW5nc01hY3Jvcy5oJywK
KyAgICAgICAgICBdLAorICAgICAgICAgICdhY3Rpb24nOiBbCisgICAgICAgICAgICAncHl0aG9u
JywKKyAgICAgICAgICAgICdzY3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHknLAorICAgICAgICAg
ICAgJzxAKF9vdXRwdXRzKScsCisgICAgICAgICAgICAnLS0nLAorICAgICAgICAgICAgJzxAKF9p
bnB1dHMpJywKKyAgICAgICAgICBdLAorICAgICAgICB9LAorICAgICAgICB7CiAgICAgICAgICAg
J2FjdGlvbl9uYW1lJzogJ1VzZXJBZ2VudFN0eWxlU2hlZXRzJywKICAgICAgICAgICAndmFyaWFi
bGVzJzogewogICAgICAgICAgICAgJ3NjcmlwdHMnOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHkgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHkKaW5kZXggOWFmZDhl
ODg1ZTk5NmFjNTBlNjdmOGVmNDAyOTkzNDE2ZDZiMTQ1Yy4uYTFhNDEwZjFlYTUwYzMxNTQyZWFk
NTFiZDNhZTA0NmUxYzVlYzE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5weQpAQCAtMTE3LDIyICsxMTcsMTcgQEAg
ZGVmIG1haW4oYXJncyk6CiAgICAgICAgIGlucHV0QWJzID0gb3MucGF0aC5hYnNwYXRoKGlucHV0
KQogICAgICAgICBpbnB1dEFic1Bvc2l4ID0gaW5wdXRBYnMucmVwbGFjZShvcy5wYXRoLnNlcCwg
cG9zaXhwYXRoLnNlcCkKICAgICAgICAgaW5wdXRCYXNlbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUo
aW5wdXQpCi0gICAgICAgIGlmIGlucHV0QmFzZW5hbWUgPT0gJ21ha2VfbmFtZXMucGwnIFwKLSAg
ICAgICAgICAgIG9yIGlucHV0QmFzZW5hbWUgPT0gJ21ha2VfZXZlbnRfZmFjdG9yeS5wbCcgXAot
ICAgICAgICAgICAgb3IgaW5wdXRCYXNlbmFtZSA9PSAnbWFrZV9kb21fZXhjZXB0aW9ucy5wbCc6
CisgICAgICAgIGlmIGlucHV0QmFzZW5hbWUgaW4gKCdtYWtlX25hbWVzLnBsJywgJ21ha2VfZXZl
bnRfZmFjdG9yeS5wbCcsICdtYWtlX2RvbV9leGNlcHRpb25zLnBsJywgJ21ha2Vfc2V0dGluZ3Mu
cGwnKToKICAgICAgICAgICAgIGFzc2VydCBtYWtlTmFtZXNJbnB1dCA9PSBOb25lCiAgICAgICAg
ICAgICBtYWtlTmFtZXNJbnB1dCA9IGlucHV0QWJzCi0gICAgICAgIGVsaWYgaW5wdXRCYXNlbmFt
ZS5lbmRzd2l0aCgnVGFnTmFtZXMuaW4nKSBcCi0gICAgICAgICAgICAgb3IgaW5wdXRCYXNlbmFt
ZS5lbmRzd2l0aCgndGFncy5pbicpOgorICAgICAgICBlbGlmIGlucHV0QmFzZW5hbWUuZW5kc3dp
dGgoJ1RhZ05hbWVzLmluJykgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgndGFncy5pbicpOgog
ICAgICAgICAgICAgYXNzZXJ0IHRhZ0lucHV0ID09IE5vbmUKICAgICAgICAgICAgIHRhZ0lucHV0
ID0gaW5wdXRBYnNQb3NpeAotICAgICAgICBlbGlmIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ0F0
dHJpYnV0ZU5hbWVzLmluJykgXAotICAgICAgICAgICAgIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dp
dGgoJ2F0dHJzLmluJyk6CisgICAgICAgIGVsaWYgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgnQXR0
cmlidXRlTmFtZXMuaW4nKSBvciBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdhdHRycy5pbicpOgog
ICAgICAgICAgICAgYXNzZXJ0IGF0dHJJbnB1dCA9PSBOb25lCiAgICAgICAgICAgICBhdHRySW5w
dXQgPSBpbnB1dEFic1Bvc2l4Ci0gICAgICAgIGVsaWYgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgn
RXZlbnRUYXJnZXRGYWN0b3J5LmluJykgXAotICAgICAgICAgICAgb3IgaW5wdXRCYXNlbmFtZS5l
bmRzd2l0aCgnRXZlbnROYW1lcy5pbicpIFwKLSAgICAgICAgICAgIG9yIGlucHV0QmFzZW5hbWUu
ZW5kc3dpdGgoJ0RPTUV4Y2VwdGlvbnMuaW4nKToKKyAgICAgICAgZWxpZiAoaW5wdXRCYXNlbmFt
ZS5lbmRzd2l0aCgnRXZlbnRUYXJnZXRGYWN0b3J5LmluJykgb3IgaW5wdXRCYXNlbmFtZS5lbmRz
d2l0aCgnRXZlbnROYW1lcy5pbicpCisgICAgICAgICAgICBvciBpbnB1dEJhc2VuYW1lLmVuZHN3
aXRoKCdET01FeGNlcHRpb25zLmluJykgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgnU2V0dGlu
Z3MuaW4nKSk6CiAgICAgICAgICAgICBldmVudHNJbnB1dCA9IGlucHV0QWJzUG9zaXgKICAgICAg
ICAgZWxpZiBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdOYW1lcy5pbicpOgogICAgICAgICAgICAg
b3B0aW9ucy5hcHBlbmQoaW5wdXRBYnNQb3NpeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0
aW9uTWVzc2FnZS5jcHAKaW5kZXggNjFhMTY0MThmY2YxMjcxMTI2MGM2NTM3NzU3OWY2N2QxMzZi
ODVhOC4uNTNlYzdlNDM4MzU4MGQ4YWJkMGJkOGJkZWM5OGUxMmQ1Y2E4MmYyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCB2
b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpzZXRNZXNzYWdlRE9NQW5kU3RhcnRUaW1lcihUaW1lcjxW
YWxpZGF0aW9uTWVzc2FnZT4qKQogICAgICAgICAgICAgbV9tZXNzYWdlSGVhZGluZy0+c2V0SW5u
ZXJUZXh0KGxpbmVzW2ldLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICB9CiAKLSAgICBpbnQg
bWFnbmlmaWNhdGlvbiA9IGRvYy0+cGFnZSgpID8gZG9jLT5wYWdlKCktPnNldHRpbmdzKCktPnZh
bGlkYXRpb25NZXNzYWdlVGltZXJNYWdpbmlmaWNhdGlvbigpIDogLTE7CisgICAgaW50IG1hZ25p
ZmljYXRpb24gPSBkb2MtPnBhZ2UoKSA/IGRvYy0+cGFnZSgpLT5zZXR0aW5ncygpLT52YWxpZGF0
aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbigpIDogLTE7CiAgICAgaWYgKG1hZ25pZmljYXRp
b24gPD0gMCkKICAgICAgICAgbV90aW1lci5jbGVhcigpOwogICAgIGVsc2UgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmNwcAppbmRleCBjZTc2NjlhNmQ3ZjA4MzhiZmEwZmE2ZWRhZTIxMWQxMzJlZDJj
ODRmLi5kMjRhMWMwOWJiNjkxZDVlOTQxNDg0N2RiZmYzYzRlZDg4NWVlYjJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcApAQCAtMTI5LDIzICsxMjksMTEgQEAgc3RhdGljIGNvbnN0IGRvdWJs
ZSBkZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMg
PSA1OwogU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgOiBtX3BhZ2UoMCkKICAg
ICAsIG1fbWVkaWFUeXBlT3ZlcnJpZGUoInNjcmVlbiIpCi0gICAgLCBtX2VkaXRhYmxlTGlua0Jl
aGF2aW9yKEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcikKLSAgICAsIG1fdGV4dERpcmVjdGlv
blN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcihUZXh0RGlyZWN0aW9uU3VibWVudUF1dG9tYXRpY2Fs
bHlJbmNsdWRlZCkKLSAgICAsIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoMSkKICAg
ICAsIG1fbWluaW11bUZvbnRTaXplKDApCiAgICAgLCBtX21pbmltdW1Mb2dpY2FsRm9udFNpemUo
MCkKICAgICAsIG1fZGVmYXVsdEZvbnRTaXplKDApCiAgICAgLCBtX2RlZmF1bHRGaXhlZEZvbnRT
aXplKDApCiAgICAgLCBtX3NjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkKHRydWUpCi0gICAg
LCBtX3ZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKDUwKQotICAgICwgbV9taW5p
bXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUoMjU3ICogMjU2KQotICAgICwgbV9sYXlvdXRGYWxs
YmFja1dpZHRoKDk4MCkKLSAgICAsIG1fbWF4aW11bURlY29kZWRJbWFnZVNpemUobnVtZXJpY19s
aW1pdHM8c2l6ZV90Pjo6bWF4KCkpCi0gICAgLCBtX2RldmljZVdpZHRoKDApCi0gICAgLCBtX2Rl
dmljZUhlaWdodCgwKQotICAgICwgbV9zZXNzaW9uU3RvcmFnZVF1b3RhKFN0b3JhZ2VNYXA6Om5v
UXVvdGEpCi0gICAgLCBtX2VkaXRpbmdCZWhhdmlvclR5cGUoZWRpdGluZ0JlaGF2aW9yVHlwZUZv
clBsYXRmb3JtKCkpCi0gICAgLCBtX21heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoKGRlZmF1
bHRNYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCkKICAgICAsIG1fc3RvcmFnZUJsb2NraW5n
UG9saWN5KFNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2UpCiAjaWYgRU5BQkxFKFRFWFRf
QVVUT1NJWklORykKICAgICAsIG1fdGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoMSkKQEAg
LTE1Niw1OCArMTQ0LDI0IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwg
bV90ZXh0QXV0b3NpemluZ0VuYWJsZWQoZmFsc2UpCiAjZW5kaWYKICNlbmRpZgorICAgIFNFVFRJ
TkdTX0lOSVRJQUxJWkVSX0xJU1QKICAgICAsIG1faXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQo
ZmFsc2UpCiAgICAgLCBtX2lzSmF2YUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lzSmF2YUVuYWJs
ZWRGb3JMb2NhbEZpbGVzKHRydWUpCiAgICAgLCBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseShm
YWxzZSkKLSAgICAsIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmco
ZmFsc2UpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2Nh
cmV0QnJvd3NpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9hcmVJbWFnZXNFbmFibGVkKHRydWUp
CiAgICAgLCBtX2lzTWVkaWFFbmFibGVkKHRydWUpCiAgICAgLCBtX2FyZVBsdWdpbnNFbmFibGVk
KGZhbHNlKQotICAgICwgbV9sb2NhbFN0b3JhZ2VFbmFibGVkKGZhbHNlKQogICAgICwgbV9pc1Nj
cmlwdEVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lzV2ViU2VjdXJpdHlFbmFibGVkKHRydWUpCi0g
ICAgLCBtX2FsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKHRydWUpCi0gICAgLCBtX2Fs
bG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVlKQotICAgICwgbV9qYXZhU2NyaXB0Q2FuT3Bl
bldpbmRvd3NBdXRvbWF0aWNhbGx5KGZhbHNlKQotICAgICwgbV9zdXBwb3J0c011bHRpcGxlV2lu
ZG93cyh0cnVlKQotICAgICwgbV9qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKGZhbHNlKQot
ICAgICwgbV9zaG91bGRQcmludEJhY2tncm91bmRzKGZhbHNlKQogICAgICwgbV90ZXh0QXJlYXNB
cmVSZXNpemFibGUoZmFsc2UpCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQotICAgICwg
bV91c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZShmYWxzZSkKLSNlbmRpZgog
ICAgICwgbV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayhmYWxzZSkKLSAgICAsIG1fbmVl
ZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MoZmFsc2UpCi0gICAgLCBtX3RyZWF0
c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0KGZhbHNlKQotICAgICwgbV9uZWVkc0xlb3BhcmRN
YWlsUXVpcmtzKGZhbHNlKQogICAgICwgbV9pc0RPTVBhc3RlQWxsb3dlZChmYWxzZSkKLSAgICAs
IG1fc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCh0cnVlKQogICAgICwgbV91c2VzUGFnZUNh
Y2hlKGZhbHNlKQotICAgICwgbV9wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoZmFsc2UpCi0gICAg
LCBtX3Nob3dzVVJMc0luVG9vbFRpcHMoZmFsc2UpCi0gICAgLCBtX3Nob3dzVG9vbFRpcE92ZXJU
cnVuY2F0ZWRUZXh0KGZhbHNlKQotICAgICwgbV9mb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzKGZh
bHNlKQotICAgICwgbV9kZXZlbG9wZXJFeHRyYXNFbmFibGVkKGZhbHNlKQotICAgICwgbV9qYXZh
U2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKGZhbHNlKQogICAgICwgbV9hdXRob3JBbmRVc2VyU3R5
bGVzRW5hYmxlZCh0cnVlKQotICAgICwgbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhmYWxzZSkK
ICAgICAsIG1fZm9udFJlbmRlcmluZ01vZGUoMCkKLSAgICAsIG1fZnJhbWVGbGF0dGVuaW5nRW5h
YmxlZChmYWxzZSkKLSNpZiBFTkFCTEUoV0VCX0FSQ0hJVkUpCi0gICAgLCBtX3dlYkFyY2hpdmVE
ZWJ1Z01vZGVFbmFibGVkKGZhbHNlKQotI2VuZGlmCi0gICAgLCBtX2xvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2luQXBwbGljYXRpb25DaHJvbWVNb2RlKGZh
bHNlKQotICAgICwgbV9vZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoZmFsc2UpCi0g
ICAgLCBtX2VuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlKHRydWUpCi0gICAgLCBtX3Vz
ZXNFbmNvZGluZ0RldGVjdG9yKGZhbHNlKQotICAgICwgbV9hbGxvd1NjcmlwdHNUb0Nsb3NlV2lu
ZG93cyhmYWxzZSkKLSAgICAsIG1fY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZyhmYWxzZSkK
LSAgICAsIG1fYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fYWNjZWxl
cmF0ZWRGaWx0ZXJzRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNDU1NDdXN0b21GaWx0ZXJFbmFi
bGVkKGZhbHNlKQogI2lmIEVOQUJMRShDU1NfU1RJQ0tZX1BPU0lUSU9OKQogICAgICwgbV9jc3NT
dGlja3lQb3NpdGlvbkVuYWJsZWQodHJ1ZSkKQEAgLTIxOCw5MCArMTcyLDI0IEBAIFNldHRpbmdz
OjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogI2lmIEVOQUJMRShDU1NfVkFSSUFCTEVTKQogICAgICwg
bV9jc3NWYXJpYWJsZXNFbmFibGVkKGZhbHNlKQogI2VuZGlmCi0gICAgLCBtX3JlZ2lvbkJhc2Vk
Q29sdW1uc0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2Nzc0dyaWRMYXlvdXRFbmFibGVkKGZhbHNl
KQotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZWFsbHkgYmUgZGlzYWJsZWQgYnkgZGVmYXVs
dCBhcyBpdCBtYWtlcyBwbGF0Zm9ybXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZSBmZWF0dXJlIGRv
d25sb2FkIGZpbGVzCi0gICAgLy8gdGhleSBjYW4ndCB1c2UgYnkuIExlYXZpbmcgZW5hYmxlZCBm
b3Igbm93IHRvIG5vdCBjaGFuZ2UgZXhpc3RpbmcgYmVoYXZpb3IuCi0gICAgLCBtX2Rvd25sb2Fk
YWJsZUJpbmFyeUZvbnRzRW5hYmxlZCh0cnVlKQotICAgICwgbV94c3NBdWRpdG9yRW5hYmxlZChm
YWxzZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQodHJ1ZSkKLSAgICAs
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJsZWQodHJ1ZSkKLSAg
ICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZCh0cnVlKQotICAgICwg
bV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQodHJ1ZSkKLSAgICAsIG1f
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQodHJ1ZSkKLSAgICAsIG1fYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQodHJ1ZSkKLSAgICAsIG1fYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKGZhbHNlKQotICAgICwg
bV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoZmFsc2Up
CiAgICAgLCBtX3Nob3dEZWJ1Z0JvcmRlcnMoZmFsc2UpCiAgICAgLCBtX3Nob3dSZXBhaW50Q291
bnRlcihmYWxzZSkKLSAgICAsIG1fZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoZmFs
c2UpCi0gICAgLCBtX3dlYkdMRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fd2ViR0xFcnJvcnNUb0Nv
bnNvbGVFbmFibGVkKGZhbHNlKQotICAgICwgbV9vcGVuR0xNdWx0aXNhbXBsaW5nRW5hYmxlZCh0
cnVlKQotICAgICwgbV9wcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZChmYWxzZSkKLSAg
ICAsIG1fd2ViQXVkaW9FbmFibGVkKGZhbHNlKQotICAgICwgbV9hY2NlbGVyYXRlZENhbnZhczJk
RW5hYmxlZChmYWxzZSkKLSAgICAsIG1fZGVmZXJyZWRDYW52YXMyZEVuYWJsZWQoZmFsc2UpCi0g
ICAgLCBtX2xvYWREZWZlcnJpbmdFbmFibGVkKHRydWUpCiAgICAgLCBtX3RpbGVkQmFja2luZ1N0
b3JlRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkKGZh
bHNlKQogICAgICwgbV9kbnNQcmVmZXRjaGluZ0VuYWJsZWQoZmFsc2UpCi0jaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQotICAgICwgbV9mdWxsU2NyZWVuQVBJRW5hYmxlZChmYWxzZSkKLSNlbmRp
ZgotICAgICwgbV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChmYWxzZSkKICNpZiBV
U0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQogICAgICwgbV91bmlmaWVkVGV4dENoZWNrZXJFbmFi
bGVkKHRydWUpCiAjZWxzZQogICAgICwgbV91bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKGZhbHNl
KQogI2VuZGlmCi0gICAgLCBtX21lbW9yeUluZm9FbmFibGVkKGZhbHNlKQotICAgICwgbV9xdWFu
dGl6ZWRNZW1vcnlJbmZvRW5hYmxlZChmYWxzZSkKLSAgICAsIG1faW50ZXJhY3RpdmVGb3JtVmFs
aWRhdGlvbihmYWxzZSkKLSAgICAsIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3MoZmFsc2UpCi0g
ICAgLCBtX2h5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fY3Jvc3NPcmln
aW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQoZmFsc2UpCi0gICAgLCBtX2ZvcmNl
Q29tcG9zaXRpbmdNb2RlKGZhbHNlKQotICAgICwgbV9zaG91bGRJbmplY3RVc2VyU2NyaXB0c0lu
SW5pdGlhbEVtcHR5RG9jdW1lbnQoZmFsc2UpCi0gICAgLCBtX2ZpeGVkRWxlbWVudHNMYXlvdXRS
ZWxhdGl2ZVRvRnJhbWUoZmFsc2UpCi0gICAgLCBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250
ZW50KHRydWUpCi0gICAgLCBtX2FsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KHRydWUpCiAj
aWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiAgICAgLCBtX3Njcm9sbEFuaW1hdG9yRW5hYmxl
ZCh0cnVlKQogI2VuZGlmCi0gICAgLCBtX21lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJl
KGZhbHNlKQotICAgICwgbV9tZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lKHRydWUpCi0gICAgLCBt
X3Bhc3N3b3JkRWNob0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX3N1cHByZXNzZXNJbmNyZW1lbnRh
bFJlbmRlcmluZyhmYWxzZSkKLSAgICAsIG1fYmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJsZWQo
dHJ1ZSkKLSAgICAsIG1fdmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZChmYWxzZSkKLSNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCi0gICAgLCBtX3Nob3VsZERpc3BsYXlTdWJ0aXRsZXMoZmFsc2UpCi0g
ICAgLCBtX3Nob3VsZERpc3BsYXlDYXB0aW9ucyhmYWxzZSkKLSAgICAsIG1fc2hvdWxkRGlzcGxh
eVRleHREZXNjcmlwdGlvbnMoZmFsc2UpCi0jZW5kaWYKLSAgICAsIG1fc2Nyb2xsaW5nQ29vcmRp
bmF0b3JFbmFibGVkKGZhbHNlKQotICAgICwgbV9ub3RpZmljYXRpb25zRW5hYmxlZCh0cnVlKQot
ICAgICwgbV9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyayhmYWxzZSkKICNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQogICAgICwgbV90b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZChmYWxzZSkK
ICNlbmRpZgotICAgICwgbV9zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbihmYWxzZSkKLSAg
ICAsIG1fd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcihmYWxzZSkKLSAgICAs
IG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCh0cnVlKQotICAgICwgbV9kZXZpY2VTdXBw
b3J0c1RvdWNoKGZhbHNlKQotICAgICwgbV9kZXZpY2VTdXBwb3J0c01vdXNlKHRydWUpCi0gICAg
LCBtX25lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsoZmFsc2UpCi0gICAgLCBtX2ZpeGVkUG9z
aXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0KGZhbHNlKQotICAgICwgbV9zeW5jWEhSSW5Eb2N1
bWVudHNFbmFibGVkKHRydWUpCi0gICAgLCBtX2Nvb2tpZUVuYWJsZWQodHJ1ZSkKLSAgICAsIG1f
d2luZG93Rm9jdXNSZXN0cmljdGVkKHRydWUpCi0gICAgLCBtX2RpYWdub3N0aWNMb2dnaW5nRW5h
YmxlZChmYWxzZSkKICAgICAsIG1fc2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChm
YWxzZSkKLSAgICAsIG1fYXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoZmFsc2UpCi0g
ICAgLCBtX3BsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3NldEltYWdl
TG9hZGluZ1NldHRpbmdzVGltZXIodGhpcywgJlNldHRpbmdzOjppbWFnZUxvYWRpbmdTZXR0aW5n
c1RpbWVyRmlyZWQpCi0gICAgLCBtX2luY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1l
b3V0SW5TZWNvbmRzKGRlZmF1bHRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91
dEluU2Vjb25kcykKIHsKICAgICAvLyBBIEZyYW1lIG1heSBub3QgaGF2ZSBiZWVuIGNyZWF0ZWQg
eWV0LCBzbyB3ZSBpbml0aWFsaXplIHRoZSBBdG9taWNTdHJpbmcKICAgICAvLyBoYXNoIGJlZm9y
ZSB0cnlpbmcgdG8gdXNlIGl0LgpAQCAtNTA4LDExICszOTYsNiBAQCB2b2lkIFNldHRpbmdzOjpp
bWFnZUxvYWRpbmdTZXR0aW5nc1RpbWVyRmlyZWQoVGltZXI8U2V0dGluZ3M+KikKICAgICBzZXRJ
bWFnZUxvYWRpbmdTZXR0aW5ncyhtX3BhZ2UpOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRMb2Fk
c1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhib29sIGxvYWRzU2l0ZUljb25z
KQotewotICAgIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcgPSBs
b2Fkc1NpdGVJY29uczsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0U2NyaXB0RW5hYmxlZChib29s
IGlzU2NyaXB0RW5hYmxlZCkKIHsKICAgICBtX2lzU2NyaXB0RW5hYmxlZCA9IGlzU2NyaXB0RW5h
YmxlZDsKQEAgLTUyMywxNiArNDA2LDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0V2ViU2VjdXJpdHlF
bmFibGVkKGJvb2wgaXNXZWJTZWN1cml0eUVuYWJsZWQpCiAgICAgbV9pc1dlYlNlY3VyaXR5RW5h
YmxlZCA9IGlzV2ViU2VjdXJpdHlFbmFibGVkOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRBbGxv
d1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhib29sIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJv
bUZpbGVVUkxzKQotewotICAgIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMgPSBh
bGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0
QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wgYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVV
UkxzKQotewotICAgIG1fYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzID0gYWxsb3dGaWxlQWNj
ZXNzRnJvbUZpbGVVUkxzOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoYm9vbCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCkKIHsKICAgICBtX2lzU3Bh
dGlhbE5hdmlnYXRpb25FbmFibGVkID0gaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ7CkBAIC01
NjYsMTYgKzQzOSw2IEBAIHZvaWQgU2V0dGluZ3M6OnNldFBsdWdpbnNFbmFibGVkKGJvb2wgYXJl
UGx1Z2luc0VuYWJsZWQpCiAgICAgbV9hcmVQbHVnaW5zRW5hYmxlZCA9IGFyZVBsdWdpbnNFbmFi
bGVkOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGJvb2wgbG9j
YWxTdG9yYWdlRW5hYmxlZCkKLXsKLSAgICBtX2xvY2FsU3RvcmFnZUVuYWJsZWQgPSBsb2NhbFN0
b3JhZ2VFbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRTZXNzaW9uU3RvcmFnZVF1b3Rh
KHVuc2lnbmVkIHNlc3Npb25TdG9yYWdlUXVvdGEpCi17Ci0gICAgbV9zZXNzaW9uU3RvcmFnZVF1
b3RhID0gc2Vzc2lvblN0b3JhZ2VRdW90YTsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0UHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCiB7CiAgICAgLy8g
RklYTUUgaHR0cDovL3dlYmtpdC5vcmcvYi82Nzg3MDogVGhlIHByaXZhdGUgYnJvd3Npbmcgc3Rv
cmFnZSBzZXNzaW9uIGFuZCBjb29raWUgcHJpdmF0ZQpAQCAtNjAxLDI2ICs0NjQsNiBAQCB2b2lk
IFNldHRpbmdzOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCkKICAgICBtX3BhZ2UtPnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZCgpOwogfQog
Ci12b2lkIFNldHRpbmdzOjpzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5
KGJvb2wgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSkKLXsKLSAgICBtX2ph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBqYXZhU2NyaXB0Q2FuT3Blbldp
bmRvd3NBdXRvbWF0aWNhbGx5OwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRTdXBwb3J0c011bHRp
cGxlV2luZG93cyhib29sIHN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKQotewotICAgIG1fc3VwcG9y
dHNNdWx0aXBsZVdpbmRvd3MgPSBzdXBwb3J0c011bHRpcGxlV2luZG93czsKLX0KLQotdm9pZCBT
ZXR0aW5nczo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChib29sIGphdmFTY3JpcHRD
YW5BY2Nlc3NDbGlwYm9hcmQpCi17Ci0gICAgbV9qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJk
ID0gamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0
RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoY29uc3QgU3RyaW5nJiBkZWZhdWx0VGV4dEVuY29kaW5n
TmFtZSkKLXsKLSAgICBtX2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1lID0gZGVmYXVsdFRleHRFbmNv
ZGluZ05hbWU7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24o
Y29uc3QgS1VSTCYgdXNlclN0eWxlU2hlZXRMb2NhdGlvbikKIHsKICAgICBpZiAobV91c2VyU3R5
bGVTaGVldExvY2F0aW9uID09IHVzZXJTdHlsZVNoZWV0TG9jYXRpb24pCkBAIC02MzEsMTYgKzQ3
NCw2IEBAIHZvaWQgU2V0dGluZ3M6OnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oY29uc3QgS1VS
TCYgdXNlclN0eWxlU2hlZXRMb2NhdGlvbikKICAgICBtX3BhZ2UtPnVzZXJTdHlsZVNoZWV0TG9j
YXRpb25DaGFuZ2VkKCk7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldEZpeGVkRWxlbWVudHNMYXlv
dXRSZWxhdGl2ZVRvRnJhbWUoYm9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1l
KQotewotICAgIG1fZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSA9IGZpeGVkRWxl
bWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWU7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFNob3Vs
ZFByaW50QmFja2dyb3VuZHMoYm9vbCBzaG91bGRQcmludEJhY2tncm91bmRzKQotewotICAgIG1f
c2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyA9IHNob3VsZFByaW50QmFja2dyb3VuZHM7Ci19Ci0KIHZv
aWQgU2V0dGluZ3M6OnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShib29sIHRleHRBcmVhc0FyZVJl
c2l6YWJsZSkKIHsKICAgICBpZiAobV90ZXh0QXJlYXNBcmVSZXNpemFibGUgPT0gdGV4dEFyZWFz
QXJlUmVzaXphYmxlKQpAQCAtNjUwLDIzICs0ODMsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRUZXh0
QXJlYXNBcmVSZXNpemFibGUoYm9vbCB0ZXh0QXJlYXNBcmVSZXNpemFibGUpCiAgICAgbV9wYWdl
LT5zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKIH0KIAotdm9pZCBTZXR0aW5nczo6
c2V0RWRpdGFibGVMaW5rQmVoYXZpb3IoRWRpdGFibGVMaW5rQmVoYXZpb3IgZWRpdGFibGVMaW5r
QmVoYXZpb3IpCi17Ci0gICAgbV9lZGl0YWJsZUxpbmtCZWhhdmlvciA9IGVkaXRhYmxlTGlua0Jl
aGF2aW9yOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1
c2lvbkJlaGF2aW9yKFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgYmVoYXZp
b3IpCi17Ci0gICAgbV90ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yID0gYmVo
YXZpb3I7Ci19Ci0KLSNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCi12b2lkIFNldHRpbmdz
OjpzZXRVc2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZShib29sIHVzZXNEYXNo
Ym9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKQotewotICAgIG1fdXNlc0Rhc2hib2FyZEJh
Y2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUgPSB1c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmls
aXR5TW9kZTsKLX0KLSNlbmRpZgotCiAvLyBGSVhNRTogVGhpcyBxdWlyayBpcyBuZWVkZWQgYmVj
YXVzZSBvZiBSYWRhciA0Njc0NTM3IGFuZCA1MjExMjcxLiBXZSBuZWVkIHRvIHBoYXNlIGl0IG91
dCBvbmNlIEFkb2JlCiAvLyBjYW4gZml4IHRoZSBidWcgZnJvbSB0aGVpciBlbmQuCiB2b2lkIFNl
dHRpbmdzOjpzZXROZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayhib29sIHNob3VsZE5vdFJl
bG9hZElGcmFtZXNGb3JVbmNoYW5nZWRTUkMpCkBAIC02NzQsMjQgKzQ5MCw2IEBAIHZvaWQgU2V0
dGluZ3M6OnNldE5lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrKGJvb2wgc2hvdWxkTm90UmVs
b2FkSUZyYW1lc0ZvclVuCiAgICAgbV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayA9IHNo
b3VsZE5vdFJlbG9hZElGcmFtZXNGb3JVbmNoYW5nZWRTUkM7CiB9CiAKLS8vIFRoaXMgaXMgYSBx
dWlyayB3ZSBhcmUgcHJvLWFjdGl2ZWx5IGFwcGx5aW5nIHRvIG9sZCBhcHBsaWNhdGlvbnMuIEl0
IGNoYW5nZXMga2V5Ym9hcmQgZXZlbnQgZGlzcGF0Y2hpbmcsCi0vLyBtYWtpbmcga2V5SWRlbnRp
ZmllciBhdmFpbGFibGUgb24ga2V5cHJlc3MgZXZlbnRzLCBtYWtpbmcgY2hhckNvZGUgYXZhaWxh
YmxlIG9uIGtleWRvd24va2V5dXAgZXZlbnRzLAotLy8gYW5kIGdldHRpbmcga2V5cHJlc3MgZGlz
cGF0Y2hlZCBpbiBtb3JlIGNhc2VzLgotdm9pZCBTZXR0aW5nczo6c2V0TmVlZHNLZXlib2FyZEV2
ZW50RGlzYW1iaWd1YXRpb25RdWlya3MoYm9vbCBuZWVkc1F1aXJrcykKLXsKLSAgICBtX25lZWRz
S2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzID0gbmVlZHNRdWlya3M7Ci19Ci0KLXZv
aWQgU2V0dGluZ3M6OnNldFRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0KGJvb2wgdHJl
YXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQpCi17Ci0gICAgbV90cmVhdHNBbnlUZXh0Q1NT
TGlua0FzU3R5bGVzaGVldCA9IHRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0OwotfQot
Ci12b2lkIFNldHRpbmdzOjpzZXROZWVkc0xlb3BhcmRNYWlsUXVpcmtzKGJvb2wgbmVlZHNRdWly
a3MpCi17Ci0gICAgbV9uZWVkc0xlb3BhcmRNYWlsUXVpcmtzID0gbmVlZHNRdWlya3M7Ci19Ci0K
IHZvaWQgU2V0dGluZ3M6OnNldERPTVBhc3RlQWxsb3dlZChib29sIERPTVBhc3RlQWxsb3dlZCkK
IHsKICAgICBtX2lzRE9NUGFzdGVBbGxvd2VkID0gRE9NUGFzdGVBbGxvd2VkOwpAQCAtNzUyLDQx
ICs1NTAsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRVc2VzUGFnZUNhY2hlKGJvb2wgdXNlc1BhZ2VD
YWNoZSkKICAgICB9CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldFNocmlua3NTdGFuZGFsb25lSW1h
Z2VzVG9GaXQoYm9vbCBzaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KQotewotICAgIG1fc2hy
aW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCA9IHNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQ7
Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFNob3dzVVJMc0luVG9vbFRpcHMoYm9vbCBzaG93c1VS
THNJblRvb2xUaXBzKQotewotICAgIG1fc2hvd3NVUkxzSW5Ub29sVGlwcyA9IHNob3dzVVJMc0lu
VG9vbFRpcHM7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFNob3dzVG9vbFRpcE92ZXJUcnVuY2F0
ZWRUZXh0KGJvb2wgc2hvd3NUb29sVGlwRm9yVHJ1bmNhdGVkVGV4dCkKLXsKLSAgICBtX3Nob3dz
VG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0ID0gc2hvd3NUb29sVGlwRm9yVHJ1bmNhdGVkVGV4dDsK
LX0KLQotdm9pZCBTZXR0aW5nczo6c2V0RlRQRGlyZWN0b3J5VGVtcGxhdGVQYXRoKGNvbnN0IFN0
cmluZyYgcGF0aCkKLXsKLSAgICBtX2Z0cERpcmVjdG9yeVRlbXBsYXRlUGF0aCA9IHBhdGg7Ci19
Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3MoYm9vbCBmb3Jj
ZSkKLXsKLSAgICBtX2ZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3MgPSBmb3JjZTsKLX0KLQotdm9p
ZCBTZXR0aW5nczo6c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sIGRldmVsb3BlckV4dHJh
c0VuYWJsZWQpCi17Ci0gICAgbV9kZXZlbG9wZXJFeHRyYXNFbmFibGVkID0gZGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0SmF2YVNjcmlwdEV4cGVyaW1lbnRz
RW5hYmxlZChib29sIGphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQpCi17Ci0gICAgbV9qYXZh
U2NyaXB0RXhwZXJpbWVudHNFbmFibGVkID0gamF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZDsK
LX0KLQogdm9pZCBTZXR0aW5nczo6c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoYm9vbCBh
dXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCkKIHsKICAgICBpZiAobV9hdXRob3JBbmRVc2VyU3R5
bGVzRW5hYmxlZCA9PSBhdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCkKQEAgLTgwOSw0OCArNTcy
LDExIEBAIEZvbnRSZW5kZXJpbmdNb2RlIFNldHRpbmdzOjpmb250UmVuZGVyaW5nTW9kZSgpIGNv
bnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEZvbnRSZW5kZXJpbmdNb2RlPihtX2ZvbnRSZW5k
ZXJpbmdNb2RlKTsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0TmVlZHNTaXRlU3BlY2lmaWNRdWly
a3MoYm9vbCBuZWVkc1F1aXJrcykKLXsKLSAgICBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0g
bmVlZHNRdWlya3M7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEZyYW1lRmxhdHRlbmluZ0VuYWJs
ZWQoYm9vbCBmcmFtZUZsYXR0ZW5pbmdFbmFibGVkKQotewotICAgIG1fZnJhbWVGbGF0dGVuaW5n
RW5hYmxlZCA9IGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ7Ci19Ci0KLSNpZiBFTkFCTEUoV0VCX0FS
Q0hJVkUpCi12b2lkIFNldHRpbmdzOjpzZXRXZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZChib29s
IGVuYWJsZWQpCi17Ci0gICAgbV93ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZCA9IGVuYWJsZWQ7
Ci19Ci0jZW5kaWYKLQotdm9pZCBTZXR0aW5nczo6c2V0TG9jYWxGaWxlQ29udGVudFNuaWZmaW5n
RW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9sb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0TG9jYWxTdG9yYWdlRGF0
YWJhc2VQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAgICBtX2xvY2FsU3RvcmFnZURhdGFi
YXNlUGF0aCA9IHBhdGg7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldEFwcGxpY2F0aW9uQ2hyb21l
TW9kZShib29sIG1vZGUpCiB7CiAgICAgbV9pbkFwcGxpY2F0aW9uQ2hyb21lTW9kZSA9IG1vZGU7
CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxl
ZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9vZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJs
ZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRFbmZvcmNlQ1NTTUlNRVR5cGVJ
bk5vUXVpcmtzTW9kZShib29sIGVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlKQotewot
ICAgIG1fZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUgPSBlbmZvcmNlQ1NTTUlNRVR5
cGVJbk5vUXVpcmtzTW9kZTsKLX0KLQogI2lmIFVTRShTQUZBUklfVEhFTUUpCiB2b2lkIFNldHRp
bmdzOjpzZXRTaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKGJvb2wgc2hvdWxkUGFpbnROYXRpdmVD
b250cm9scykKIHsKQEAgLTg1OCwxMSArNTg0LDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0U2hvdWxk
UGFpbnROYXRpdmVDb250cm9scyhib29sIHNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMpCiB9CiAj
ZW5kaWYKIAotdm9pZCBTZXR0aW5nczo6c2V0VXNlc0VuY29kaW5nRGV0ZWN0b3IoYm9vbCB1c2Vz
RW5jb2RpbmdEZXRlY3RvcikKLXsKLSAgICBtX3VzZXNFbmNvZGluZ0RldGVjdG9yID0gdXNlc0Vu
Y29kaW5nRGV0ZWN0b3I7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldEROU1ByZWZldGNoaW5nRW5h
YmxlZChib29sIGRuc1ByZWZldGNoaW5nRW5hYmxlZCkKIHsKICAgICBpZiAobV9kbnNQcmVmZXRj
aGluZ0VuYWJsZWQgPT0gZG5zUHJlZmV0Y2hpbmdFbmFibGVkKQpAQCAtODcyLDI2ICs1OTMsNiBA
QCB2b2lkIFNldHRpbmdzOjpzZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoYm9vbCBkbnNQcmVmZXRj
aGluZ0VuYWJsZWQpCiAgICAgbV9wYWdlLT5kbnNQcmVmZXRjaGluZ1N0YXRlQ2hhbmdlZCgpOwog
fQogCi12b2lkIFNldHRpbmdzOjpzZXRBbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cyhib29sIGFs
bG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzKQotewotICAgIG1fYWxsb3dTY3JpcHRzVG9DbG9zZVdp
bmRvd3MgPSBhbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93czsKLX0KLQotdm9pZCBTZXR0aW5nczo6
c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9vbCBjYXJldEJyb3dzaW5nRW5hYmxlZCkKLXsKLSAg
ICBtX2NhcmV0QnJvd3NpbmdFbmFibGVkID0gY2FyZXRCcm93c2luZ0VuYWJsZWQ7Ci19Ci0KLXZv
aWQgU2V0dGluZ3M6OnNldERvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZChib29sIGRvd25s
b2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCkKLXsKLSAgICBtX2Rvd25sb2FkYWJsZUJpbmFyeUZv
bnRzRW5hYmxlZCA9IGRvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZDsKLX0KLQotdm9pZCBT
ZXR0aW5nczo6c2V0WFNTQXVkaXRvckVuYWJsZWQoYm9vbCB4c3NBdWRpdG9yRW5hYmxlZCkKLXsK
LSAgICBtX3hzc0F1ZGl0b3JFbmFibGVkID0geHNzQXVkaXRvckVuYWJsZWQ7Ci19Ci0KIHZvaWQg
U2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkK
IHsKICAgICBpZiAobV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9PSBlbmFibGVkKQpA
QCAtOTAxLDM2ICs2MDIsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbV9wYWdlLT5zZXROZWVkc1JlY2FsY1N0eWxl
SW5BbGxGcmFtZXMoKTsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0Q2FudmFzVXNlc0FjY2VsZXJh
dGVkRHJhd2luZyhib29sIGVuYWJsZWQpCi17Ci0gICAgbV9jYW52YXNVc2VzQWNjZWxlcmF0ZWRE
cmF3aW5nID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJsZWQgPSBlbmFibGVkOwotfQot
Ci12b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVk
KGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0Vu
YWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0
aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQoYm9vbCBlbmFi
bGVkKQotewotICAgIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQgPSBl
bmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
QW5pbWF0aW9uRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9hY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6
OnNldFNob3dEZWJ1Z0JvcmRlcnMoYm9vbCBlbmFibGVkKQogewogICAgIGlmIChtX3Nob3dEZWJ1
Z0JvcmRlcnMgPT0gZW5hYmxlZCkKQEAgLTk0OSwxMSArNjIwLDYgQEAgdm9pZCBTZXR0aW5nczo6
c2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wgZW5hYmxlZCkKICAgICBtX3BhZ2UtPnNldE5lZWRz
UmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRFeHBlcmlt
ZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9leHBlcmlt
ZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KICNpZiBQTEFURk9STShX
SU4pIHx8IChPUyhXSU5ET1dTKSAmJiBQTEFURk9STShXWCkpCiB2b2lkIFNldHRpbmdzOjpzZXRT
aG91bGRVc2VIaWdoUmVzb2x1dGlvblRpbWVycyhib29sIHNob3VsZFVzZUhpZ2hSZXNvbHV0aW9u
VGltZXJzKQogewpAQCAtOTYxLDUxICs2MjcsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRTaG91bGRV
c2VIaWdoUmVzb2x1dGlvblRpbWVycyhib29sIHNob3VsZFVzZUhpZ2hSZXNvbHV0aW9uVGltZQog
fQogI2VuZGlmCiAKLXZvaWQgU2V0dGluZ3M6OnNldFdlYkF1ZGlvRW5hYmxlZChib29sIGVuYWJs
ZWQpCi17Ci0gICAgbV93ZWJBdWRpb0VuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRp
bmdzOjpzZXRXZWJHTEVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fd2ViR0xFbmFibGVk
ID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVF
bmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3dlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxl
ZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldE9wZW5HTE11bHRpc2FtcGxpbmdF
bmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX29wZW5HTE11bHRpc2FtcGxpbmdFbmFibGVk
ID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0UHJpdmlsZWdlZFdlYkdMRXh0ZW5z
aW9uc0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fcHJpdmlsZWdlZFdlYkdMRXh0ZW5z
aW9uc0VuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRl
ZDJkQ2FudmFzRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9hY2NlbGVyYXRlZENhbnZh
czJkRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldERlZmVycmVkMmRD
YW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2RlZmVycmVkQ2FudmFzMmRFbmFi
bGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0TWluaW11bUFjY2VsZXJhdGVk
MmRDYW52YXNTaXplKGludCBudW1QaXhlbHMpCi17Ci0gICAgbV9taW5pbXVtQWNjZWxlcmF0ZWQy
ZENhbnZhc1NpemUgPSBudW1QaXhlbHM7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldExvYWREZWZl
cnJpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2xvYWREZWZlcnJpbmdFbmFibGVk
ID0gZW5hYmxlZDsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5
KFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgZW5hYmxlZCkKIHsKICAgICBp
ZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAppbmRleCBmMDUzZjU0MWVkNTBiOTI0NzM0MzExMTcxMmRjZThlZjgwZjUxYjdkLi5mMzIwZDQ1
NmIxNmZjY2UzOTUwNGQzNDI3ZmVlZjA3ZjlkMWEwMmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5o
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIktVUkwu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlNldHRpbmdzTWFjcm9z
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAtMTMzLDExICsxMzQsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJv
b2wpOwogICAgICAgICBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpIGNvbnN0IHsgcmV0
dXJuIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OyB9CiAKLSAgICAgICAgLy8gVGhpcyBzZXR0
aW5nIG9ubHkgYWZmZWN0cyBzaXRlIGljb24gaW1hZ2UgbG9hZGluZyBpZiBsb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHkgc2V0dGluZyBpcyBmYWxzZSBhbmQgdGhpcyBzZXR0aW5nIGlzIHRydWUuCi0g
ICAgICAgIC8vIEFsbCBvdGhlciBwZXJtdXRhdGlvbnMgc3RpbGwgaGVlZCBsb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHkgc2V0dGluZy4KLSAgICAgICAgdm9pZCBzZXRMb2Fkc1NpdGVJY29uc0lnbm9y
aW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhib29sKTsKLSAgICAgICAgYm9vbCBsb2Fkc1NpdGVJY29u
c0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZygpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZHNTaXRl
SWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmc7IH0KLQogICAgICAgICB2b2lkIHNldFNj
cmlwdEVuYWJsZWQoYm9vbCk7CiAgICAgICAgIC8vIEluc3RlYWQgb2YgY2FsbGluZyBpc1Njcmlw
dEVuYWJsZWQgZGlyZWN0bHksIHBsZWFzZSBjb25zaWRlciBjYWxsaW5nCiAgICAgICAgIC8vIFNj
cmlwdENvbnRyb2xsZXI6OmNhbkV4ZWN1dGVTY3JpcHRzLCB3aGljaCB0YWtlcyB0aGluZ3MgbGlr
ZSB0aGUKQEAgLTE0NywyMCArMTQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
b2lkIHNldFdlYlNlY3VyaXR5RW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBpc1dlYlNlY3Vy
aXR5RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNXZWJTZWN1cml0eUVuYWJsZWQ7IH0KIAot
ICAgICAgICB2b2lkIHNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wpOwot
ICAgICAgICBib29sIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKCkgY29uc3QgeyBy
ZXR1cm4gbV9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczsgfQotCi0gICAgICAgIHZv
aWQgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wpOwotICAgICAgICBib29sIGFs
bG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dGaWxlQWNj
ZXNzRnJvbUZpbGVVUkxzOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuT3Blbldp
bmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpOwotICAgICAgICBib29sIGphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkoKSBjb25zdCB7IHJldHVybiBtX2phdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHk7IH0KLQotICAgICAgICB2b2lkIHNldFN1cHBvcnRzTXVsdGlw
bGVXaW5kb3dzKGJvb2wpOwotICAgICAgICBib29sIHN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKCkg
Y29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c011bHRpcGxlV2luZG93czsgfQotCi0gICAgICAgIHZv
aWQgc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChib29sKTsKLSAgICAgICAgYm9vbCBq
YXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKCkgY29uc3QgeyByZXR1cm4gbV9qYXZhU2NyaXB0
Q2FuQWNjZXNzQ2xpcGJvYXJkOyB9CisgICAgICAgIFNFVFRJTkdTX0dFVFRFUlNfQU5EX1NFVFRF
UlMKIAogICAgICAgICB2b2lkIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChib29sKTsKICAg
ICAgICAgYm9vbCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ7IH0KQEAgLTE4MSwxNSArMTY0LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGJvb2wpOwogICAg
ICAgICBib29sIGFyZVBsdWdpbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hcmVQbHVnaW5z
RW5hYmxlZDsgfQogCi0gICAgICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChib29sKTsK
LSAgICAgICAgYm9vbCBsb2NhbFN0b3JhZ2VFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9sb2Nh
bFN0b3JhZ2VFbmFibGVkOyB9Ci0KLSAgICAgICAgLy8gQWxsb3cgY2xpZW50cyBjb25jZXJuZWQg
d2l0aCBtZW1vcnkgY29uc3VtcHRpb24gdG8gc2V0IGEgcXVvdGEgb24gc2Vzc2lvbiBzdG9yYWdl
Ci0gICAgICAgIC8vIHNpbmNlIHRoZSBtZW1vcnkgdXNlZCB3b24ndCBiZSByZWxlYXNlZCB1bnRp
bCB0aGUgUGFnZSBpcyBkZXN0cm95ZWQuCi0gICAgICAgIC8vIERlZmF1bHQgaXMgbm9RdW90YS4K
LSAgICAgICAgdm9pZCBzZXRTZXNzaW9uU3RvcmFnZVF1b3RhKHVuc2lnbmVkKTsKLSAgICAgICAg
dW5zaWduZWQgc2Vzc2lvblN0b3JhZ2VRdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvblN0
b3JhZ2VRdW90YTsgfQotCiAgICAgICAgIC8vIFdoZW4gdGhpcyBvcHRpb24gaXMgc2V0LCBXZWJD
b3JlIHdpbGwgYXZvaWQgc3RvcmluZyBhbnkgcmVjb3JkIG9mIGJyb3dzaW5nIGFjdGl2aXR5CiAg
ICAgICAgIC8vIHRoYXQgbWF5IHBlcnNpc3Qgb24gZGlzayBvciByZW1haW4gZGlzcGxheWVkIHdo
ZW4gdGhlIG9wdGlvbiBpcyByZXNldC4KICAgICAgICAgLy8gVGhpcyBvcHRpb24gZG9lcyBub3Qg
YWZmZWN0IHRoZSBzdG9yYWdlIG9mIHN1Y2ggaW5mb3JtYXRpb24gaW4gUkFNLgpAQCAtMjA2LDUz
ICsxODAsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldFByaXZhdGVC
cm93c2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDsgfQogCi0gICAgICAg
IHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgY2FyZXRC
cm93c2luZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2NhcmV0QnJvd3NpbmdFbmFibGVkOyB9
Ci0KLSAgICAgICAgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShjb25zdCBTdHJpbmcm
KTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBkZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZGVmYXVsdFRleHRFbmNvZGluZ05hbWU7IH0KLSAgICAgICAgCi0gICAgICAg
IHZvaWQgc2V0VXNlc0VuY29kaW5nRGV0ZWN0b3IoYm9vbCk7Ci0gICAgICAgIGJvb2wgdXNlc0Vu
Y29kaW5nRGV0ZWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3VzZXNFbmNvZGluZ0RldGVjdG9yOyB9
Ci0KICAgICAgICAgdm9pZCBzZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgICAg
IGJvb2wgZG5zUHJlZmV0Y2hpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kbnNQcmVmZXRj
aGluZ0VuYWJsZWQ7IH0KIAogICAgICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24o
Y29uc3QgS1VSTCYpOwogICAgICAgICBjb25zdCBLVVJMJiB1c2VyU3R5bGVTaGVldExvY2F0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOyB9CiAKLSAgICAgICAg
dm9pZCBzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJvb2wpOwotICAgICAg
ICBib29sIGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdCB7IHJldHVy
biBtX2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWU7IH0KLQotICAgICAgICB2b2lk
IHNldFNob3VsZFByaW50QmFja2dyb3VuZHMoYm9vbCk7Ci0gICAgICAgIGJvb2wgc2hvdWxkUHJp
bnRCYWNrZ3JvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kczsg
fQotCiAgICAgICAgIHZvaWQgc2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKGJvb2wpOwogICAgICAg
ICBib29sIHRleHRBcmVhc0FyZVJlc2l6YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dEFyZWFz
QXJlUmVzaXphYmxlOyB9CiAKLSAgICAgICAgdm9pZCBzZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihF
ZGl0YWJsZUxpbmtCZWhhdmlvcik7Ci0gICAgICAgIEVkaXRhYmxlTGlua0JlaGF2aW9yIGVkaXRh
YmxlTGlua0JlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9lZGl0YWJsZUxpbmtCZWhhdmlvcjsg
fQotCi0gICAgICAgIHZvaWQgc2V0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlv
cihUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKTsKLSAgICAgICAgVGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciB0ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1
c2lvbkJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1
c2lvbkJlaGF2aW9yOyB9Ci0KLSNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCi0gICAgICAg
IHZvaWQgc2V0VXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoYm9vbCk7Ci0g
ICAgICAgIGJvb2wgdXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKSBjb25z
dCB7IHJldHVybiBtX3VzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlOyB9Ci0j
ZW5kaWYKLSAgICAgICAgCiAgICAgICAgIHZvaWQgc2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5n
UXVpcmsoYm9vbCk7CiAgICAgICAgIGJvb2wgbmVlZHNBY3JvYmF0RnJhbWVSZWxvYWRpbmdRdWly
aygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcms7IH0KIAot
ICAgICAgICB2b2lkIHNldE5lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzKGJv
b2wpOwotICAgICAgICBib29sIG5lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtz
KCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJr
czsgfQotCi0gICAgICAgIHZvaWQgc2V0VHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQo
Ym9vbCk7Ci0gICAgICAgIGJvb2wgdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQoKSBj
b25zdCB7IHJldHVybiBtX3RyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0OyB9Ci0KLSAg
ICAgICAgdm9pZCBzZXROZWVkc0xlb3BhcmRNYWlsUXVpcmtzKGJvb2wpOwotICAgICAgICBib29s
IG5lZWRzTGVvcGFyZE1haWxRdWlya3MoKSBjb25zdCB7IHJldHVybiBtX25lZWRzTGVvcGFyZE1h
aWxRdWlya3M7IH0KLQogICAgICAgICB2b2lkIHNldERPTVBhc3RlQWxsb3dlZChib29sKTsKICAg
ICAgICAgYm9vbCBpc0RPTVBhc3RlQWxsb3dlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNET01QYXN0
ZUFsbG93ZWQ7IH0KICAgICAgICAgCkBAIC0yNzEsODYgKzIxMCwxNSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZvaWQgc2V0VXNlc1BhZ2VDYWNoZShib29sKTsKICAgICAgICAgYm9v
bCB1c2VzUGFnZUNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV91c2VzUGFnZUNhY2hlOyB9CiAgICAg
ICAgIAotICAgICAgICB2b2lkIHNldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyhib29sIHBhZ2VD
YWNoZVN1cHBvcnRzUGx1Z2lucykgeyBtX3BhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyA9IHBhZ2VD
YWNoZVN1cHBvcnRzUGx1Z2luczsgfQotICAgICAgICBib29sIHBhZ2VDYWNoZVN1cHBvcnRzUGx1
Z2lucygpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zOyB9Ci0KLSAg
ICAgICAgdm9pZCBzZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KGJvb2wpOwotICAgICAg
ICBib29sIHNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoKSBjb25zdCB7IHJldHVybiBtX3No
cmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQ7IH0KLQotICAgICAgICB2b2lkIHNldFNob3dzVVJM
c0luVG9vbFRpcHMoYm9vbCk7Ci0gICAgICAgIGJvb2wgc2hvd3NVUkxzSW5Ub29sVGlwcygpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvd3NVUkxzSW5Ub29sVGlwczsgfQotCi0gICAgICAgIHZvaWQgc2V0
U2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQoYm9vbCk7Ci0gICAgICAgIGJvb2wgc2hvd3NU
b29sVGlwT3ZlclRydW5jYXRlZFRleHQoKSBjb25zdCB7IHJldHVybiBtX3Nob3dzVG9vbFRpcE92
ZXJUcnVuY2F0ZWRUZXh0OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRGVFBEaXJlY3RvcnlUZW1wbGF0
ZVBhdGgoY29uc3QgU3RyaW5nJik7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgZnRwRGlyZWN0b3J5
VGVtcGxhdGVQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9mdHBEaXJlY3RvcnlUZW1wbGF0ZVBhdGg7
IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0Rm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5ncyhi
b29sKTsKLSAgICAgICAgYm9vbCBmb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzKCkgY29uc3QgeyBy
ZXR1cm4gbV9mb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzOyB9Ci0gICAgICAgIAotICAgICAgICB2
b2lkIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgZGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2ZWxvcGVyRXh0cmFzRW5hYmxl
ZDsgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRKYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFi
bGVkKGJvb2wpOwotICAgICAgICBib29sIGphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX2phdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQ7IH0KLQotICAgICAg
ICB2b2lkIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgZnJh
bWVGbGF0dGVuaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVGbGF0dGVuaW5nRW5h
YmxlZDsgfQotCiAgICAgICAgIHZvaWQgc2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoYm9v
bCk7CiAgICAgICAgIGJvb2wgYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2F1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkOyB9CiAgICAgICAgIAogICAgICAgICB2
b2lkIHNldEZvbnRSZW5kZXJpbmdNb2RlKEZvbnRSZW5kZXJpbmdNb2RlIG1vZGUpOwogICAgICAg
ICBGb250UmVuZGVyaW5nTW9kZSBmb250UmVuZGVyaW5nTW9kZSgpIGNvbnN0OwogCi0gICAgICAg
IHZvaWQgc2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoYm9vbCk7Ci0gICAgICAgIGJvb2wgbmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdCB7IHJldHVybiBtX25lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzOyB9Ci0KLSNpZiBFTkFCTEUoV0VCX0FSQ0hJVkUpCi0gICAgICAgIHZvaWQgc2V0V2Vi
QXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgd2ViQXJjaGl2ZURl
YnVnTW9kZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3dlYkFyY2hpdmVEZWJ1Z01vZGVFbmFi
bGVkOyB9Ci0jZW5kaWYKLQotICAgICAgICB2b2lkIHNldExvY2FsRmlsZUNvbnRlbnRTbmlmZmlu
Z0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDsg
fQotCi0gICAgICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKGNvbnN0IFN0cmlu
ZyYpOwotICAgICAgICBjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoOyB9Ci0KICAgICAgICAgdm9p
ZCBzZXRBcHBsaWNhdGlvbkNocm9tZU1vZGUoYm9vbCk7CiAgICAgICAgIGJvb2wgaW5BcHBsaWNh
dGlvbkNocm9tZU1vZGUoKSBjb25zdCB7IHJldHVybiBtX2luQXBwbGljYXRpb25DaHJvbWVNb2Rl
OyB9CiAKLSAgICAgICAgdm9pZCBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQo
Ym9vbCk7Ci0gICAgICAgIGJvb2wgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9vZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQ7IH0KLSAg
ICAgICAgCi0gICAgICAgIHZvaWQgc2V0RW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUo
Ym9vbCk7Ci0gICAgICAgIGJvb2wgZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUoKSB7
IHJldHVybiBtX2VuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlOyB9Ci0KLSAgICAgICAg
dm9pZCBzZXRNYXhpbXVtRGVjb2RlZEltYWdlU2l6ZShzaXplX3Qgc2l6ZSkgeyBtX21heGltdW1E
ZWNvZGVkSW1hZ2VTaXplID0gc2l6ZTsgfQotICAgICAgICBzaXplX3QgbWF4aW11bURlY29kZWRJ
bWFnZVNpemUoKSBjb25zdCB7IHJldHVybiBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplOyB9Ci0K
LSAgICAgICAgdm9pZCBzZXRBbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cyhib29sKTsKLSAgICAg
ICAgYm9vbCBhbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cygpIGNvbnN0IHsgcmV0dXJuIG1fYWxs
b3dTY3JpcHRzVG9DbG9zZVdpbmRvd3M7IH0KLQotICAgICAgICB2b2lkIHNldEVkaXRpbmdCZWhh
dmlvclR5cGUoRWRpdGluZ0JlaGF2aW9yVHlwZSBiZWhhdmlvcikgeyBtX2VkaXRpbmdCZWhhdmlv
clR5cGUgPSBiZWhhdmlvcjsgfQotICAgICAgICBFZGl0aW5nQmVoYXZpb3JUeXBlIGVkaXRpbmdC
ZWhhdmlvclR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFZGl0aW5nQmVoYXZpb3JU
eXBlPihtX2VkaXRpbmdCZWhhdmlvclR5cGUpOyB9Ci0KLSAgICAgICAgdm9pZCBzZXREb3dubG9h
ZGFibGVCaW5hcnlGb250c0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgZG93bmxvYWRhYmxl
QmluYXJ5Rm9udHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kb3dubG9hZGFibGVCaW5hcnlG
b250c0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wp
OwotICAgICAgICBib29sIHhzc0F1ZGl0b3JFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV94c3NB
dWRpdG9yRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0Q2FudmFzVXNlc0FjY2VsZXJhdGVk
RHJhd2luZyhib29sKTsKLSAgICAgICAgYm9vbCBjYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5n
KCkgY29uc3QgeyByZXR1cm4gbV9jYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nOyB9Ci0KLSAg
ICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBt
X2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYWNj
ZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWREcmF3
aW5nRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxl
ZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkID0gZW5hYmxlZDsg
fQotICAgICAgICBib29sIGFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX2FjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQ7IH0KLQogICAgICAgICB2b2lkIHNldENTU0N1
c3RvbUZpbHRlckVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1faXNDU1NDdXN0b21GaWx0ZXJFbmFi
bGVkID0gZW5hYmxlZDsgfQogICAgICAgICBib29sIGlzQ1NTQ3VzdG9tRmlsdGVyRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNDU1NDdXN0b21GaWx0ZXJFbmFibGVkOyB9CiAKQEAgLTM3OCwx
ODQgKzI0NiwzOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgY3NzVmFyaWFi
bGVzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAotICAgICAgICB2
b2lkIHNldFJlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fcmVnaW9u
QmFzZWRDb2x1bW5zRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCByZWdpb25CYXNl
ZENvbHVtbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZWdpb25CYXNlZENvbHVtbnNFbmFi
bGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChib29sIGVuYWJs
ZWQpIHsgbV9jc3NHcmlkTGF5b3V0RW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBj
c3NHcmlkTGF5b3V0RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY3NzR3JpZExheW91dEVuYWJs
ZWQ7IH0KLQogICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGJv
b2wpOwogICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsgfQogCi0gICAgICAgIHZv
aWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJsZWQoYm9vbCk7
Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9y
bXNFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
VmlkZW9FbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JWaWRlb0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JWaWRlb0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdGb3JQbHVnaW5zRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JQbHVnaW5zRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZChib29sKTsKLSAgICAgICAg
Ym9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQ7IH0KLQot
ICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5h
YmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3Np
dGlvbkVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNl
dEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxlZChib29sIGVu
YWJsZWQpIHsgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJs
ZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNj
cm9sbGFibGVGcmFtZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoYm9vbCBlbmFibGVk
KSB7IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCA9IGVu
YWJsZWQ7IH0KLSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGxFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
T3ZlcmZsb3dTY3JvbGxFbmFibGVkOyB9OwotCiAgICAgICAgIHZvaWQgc2V0U2hvd0RlYnVnQm9y
ZGVycyhib29sKTsKICAgICAgICAgYm9vbCBzaG93RGVidWdCb3JkZXJzKCkgY29uc3QgeyByZXR1
cm4gbV9zaG93RGVidWdCb3JkZXJzOyB9CiAKICAgICAgICAgdm9pZCBzZXRTaG93UmVwYWludENv
dW50ZXIoYm9vbCk7CiAgICAgICAgIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG93UmVwYWludENvdW50ZXI7IH0KIAotICAgICAgICB2b2lkIHNldEV4cGVyaW1l
bnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGV4cGVyaW1lbnRh
bE5vdGlmaWNhdGlvbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9leHBlcmltZW50YWxOb3Rp
ZmljYXRpb25zRW5hYmxlZDsgfQotCiAjaWYgUExBVEZPUk0oV0lOKSB8fCAoT1MoV0lORE9XUykg
JiYgUExBVEZPUk0oV1gpKQogICAgICAgICBzdGF0aWMgdm9pZCBzZXRTaG91bGRVc2VIaWdoUmVz
b2x1dGlvblRpbWVycyhib29sKTsKICAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkVXNlSGlnaFJl
c29sdXRpb25UaW1lcnMoKSB7IHJldHVybiBnU2hvdWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnM7
IH0KICNlbmRpZgogCi0gICAgICAgIHZvaWQgc2V0V2ViQXVkaW9FbmFibGVkKGJvb2wpOwotICAg
ICAgICBib29sIHdlYkF1ZGlvRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViQXVkaW9FbmFi
bGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRXZWJHTEVuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJv
b2wgd2ViR0xFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV93ZWJHTEVuYWJsZWQ7IH0KLQotICAg
ICAgICB2b2lkIHNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChib29sKTsKLSAgICAgICAg
Ym9vbCB3ZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3dlYkdM
RXJyb3JzVG9Db25zb2xlRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0T3BlbkdMTXVsdGlz
YW1wbGluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgb3BlbkdMTXVsdGlzYW1wbGluZ0Vu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX29wZW5HTE11bHRpc2FtcGxpbmdFbmFibGVkOyB9Ci0K
LSAgICAgICAgdm9pZCBzZXRQcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZChib29sKTsK
LSAgICAgICAgYm9vbCBwcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQ7IH0KLQotICAgICAgICB2
b2lkIHNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGFj
Y2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENh
bnZhczJkRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGVmZXJyZWQyZENhbnZhc0VuYWJs
ZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2RlZmVycmVkQ2FudmFzMmRFbmFibGVkOyB9Ci0KLSAgICAgICAgLy8gTnVtYmVy
IG9mIHBpeGVscyBiZWxvdyB3aGljaCAyRCBjYW52YXMgaXMgcmVuZGVyZWQgaW4gc29mdHdhcmUK
LSAgICAgICAgLy8gZXZlbiBpZiBoYXJkd2FyZSBhY2NlbGVyYXRpb24gaXMgZW5hYmxlZC4KLSAg
ICAgICAgLy8gSGFyZHdhcmUgYWNjZWxlcmF0aW9uIGlzIHVzZWZ1bCBmb3IgbGFyZ2UgY2FudmFz
ZXMgd2hlcmUgaXQgY2FuIGF2b2lkIHRoZQotICAgICAgICAvLyBwaXhlbCBiYW5kd2lkdGggYmV0
d2VlbiB0aGUgQ1BVIGFuZCBHUFUuIEJ1dCBHUFUgYWNjZWxlcmF0aW9uIGNvbWVzIGF0Ci0gICAg
ICAgIC8vIGEgcHJpY2UgLSBleHRyYSBiYWNrLWJ1ZmZlciBhbmQgdGV4dHVyZSBjb3B5LiBTbWFs
bCBjYW52YXNlcyBhcmUgYWxzbwotICAgICAgICAvLyB3aWRlbHkgdXNlZCBmb3Igc3R5bGl6ZWQg
Zm9udHMuIEFudGktYWxpYXNpbmcgdGV4dCBpbiBoYXJkd2FyZSBhdCB0aGF0Ci0gICAgICAgIC8v
IHNjYWxlIGlzIGdlbmVyYWxseSBzbG93ZXIuIFNvIGJlbG93IGEgY2VydGFpbiBzaXplIGl0IGlz
IGJldHRlciB0bwotICAgICAgICAvLyBkcmF3IGNhbnZhcyBpbiBzb2Z0d2FyZS4KLSAgICAgICAg
dm9pZCBzZXRNaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUoaW50KTsKLSAgICAgICAgaW50
IG1pbmltdW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11
bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRMb2FkRGVmZXJy
aW5nRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBsb2FkRGVmZXJyaW5nRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fbG9hZERlZmVycmluZ0VuYWJsZWQ7IH0KLSAgICAgICAgCiAgICAgICAg
IHZvaWQgc2V0VGlsZWRCYWNraW5nU3RvcmVFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIHRp
bGVkQmFja2luZ1N0b3JlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGlsZWRCYWNraW5nU3Rv
cmVFbmFibGVkOyB9CiAKLSAgICAgICAgdm9pZCBzZXRQYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJs
ZWQoYm9vbCBmbGFnKSB7IG1fcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkID0gZmxhZzsgfQot
ICAgICAgICBib29sIHBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkOyB9Ci0KLSNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCi0gICAgICAgIHZvaWQgc2V0RnVsbFNjcmVlbkVuYWJsZWQoYm9vbCBmbGFnKSB7IG1f
ZnVsbFNjcmVlbkFQSUVuYWJsZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgZnVsbFNjcmVlbkVu
YWJsZWQoKSBjb25zdCAgeyByZXR1cm4gbV9mdWxsU2NyZWVuQVBJRW5hYmxlZDsgfQotI2VuZGlm
Ci0KICNpZiBVU0UoQVZGT1VOREFUSU9OKQogICAgICAgICBzdGF0aWMgdm9pZCBzZXRBVkZvdW5k
YXRpb25FbmFibGVkKGJvb2wgZmxhZykgeyBnQVZGb3VuZGF0aW9uRW5hYmxlZCA9IGZsYWc7IH0K
ICAgICAgICAgc3RhdGljIGJvb2wgaXNBVkZvdW5kYXRpb25FbmFibGVkKCkgeyByZXR1cm4gZ0FW
Rm91bmRhdGlvbkVuYWJsZWQ7IH0KICNlbmRpZgogCi0gICAgICAgIHZvaWQgc2V0QXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1fYXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgYXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQoKSBjb25zdCAgeyByZXR1cm4gbV9hc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZDsgfQotCiAgICAgICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVja2VyRW5hYmxl
ZChib29sIGZsYWcpIHsgbV91bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkID0gZmxhZzsgfQogICAg
ICAgICBib29sIHVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Vu
aWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQ7IH0KIAotICAgICAgICB2b2lkIHNldE1lbW9yeUluZm9F
bmFibGVkKGJvb2wgZmxhZykgeyBtX21lbW9yeUluZm9FbmFibGVkID0gZmxhZzsgfQotICAgICAg
ICBib29sIG1lbW9yeUluZm9FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tZW1vcnlJbmZvRW5h
YmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0UXVhbnRpemVkTWVtb3J5SW5mb0VuYWJsZWQoYm9v
bCBmbGFnKSB7IG1fcXVhbnRpemVkTWVtb3J5SW5mb0VuYWJsZWQgPSBmbGFnOyB9Ci0gICAgICAg
IGJvb2wgcXVhbnRpemVkTWVtb3J5SW5mb0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3F1YW50
aXplZE1lbW9yeUluZm9FbmFibGVkOyB9Ci0KLSAgICAgICAgLy8gVGhpcyBmZWF0dXJlIHJlcXVp
cmVzIGFuIGltcGxlbWVudGF0aW9uIG9mIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LgotICAgICAg
ICB2b2lkIHNldEludGVyYWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkKGJvb2wgZmxhZykgeyBt
X2ludGVyYWN0aXZlRm9ybVZhbGlkYXRpb24gPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgaW50ZXJh
Y3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2ludGVyYWN0aXZl
Rm9ybVZhbGlkYXRpb247IH0KLQotICAgICAgICAvLyBTZXRzIHRoZSBtYWdpbmljYXRpb24gdmFs
dWUgZm9yIHZhbGlkYXRpb24gbWVzc2FnZSB0aW1lci4KLSAgICAgICAgLy8gSWYgdGhlIG1hZ2lu
aWNhdGlvbiB2YWx1ZSBpcyBOLCBhIHZhbGlkYXRpb24gbWVzc2FnZSBkaXNhcHBlYXJzCi0gICAg
ICAgIC8vIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgPG1lc3NhZ2UgbGVuZ3RoPiAqIE4gLyAxMDAwIHNl
Y29uZHMuIElmIE4gaXMKLSAgICAgICAgLy8gZXF1YWwgdG8gb3IgbGVzcyB0aGFuIDAsIGEgdmFs
aWRhdGlvbiBtZXNzYWdlIGRvZXNuJ3QgZGlzYXBwZWFycwotICAgICAgICAvLyBhdXRvbWF0aWNh
bHkuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDUwLgotICAgICAgICB2b2lkIHNldFZhbGlkYXRpb25N
ZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKGludCBuZXdWYWx1ZSkgeyBtX3ZhbGlkYXRpb25NZXNz
YWdlVGltZXJNYWduaWZpY2F0aW9uID0gbmV3VmFsdWU7IH0KLSAgICAgICAgaW50IHZhbGlkYXRp
b25NZXNzYWdlVGltZXJNYWdpbmlmaWNhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdmFsaWRhdGlv
bk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb247IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0
VXNlUHJlSFRNTDVQYXJzZXJRdWlya3MoYm9vbCBmbGFnKSB7IG1fdXNlUHJlSFRNTDVQYXJzZXJR
dWlya3MgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgdXNlUHJlSFRNTDVQYXJzZXJRdWlya3MoKSBj
b25zdCB7IHJldHVybiBtX3VzZVByZUhUTUw1UGFyc2VyUXVpcmtzOyB9Ci0KICAgICAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGRlZmF1bHRNYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCA9
IDUxMjsKLSAgICAgICAgdm9pZCBzZXRNYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCh1bnNp
Z25lZCBtYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCkgeyBtX21heGltdW1IVE1MUGFyc2Vy
RE9NVHJlZURlcHRoID0gbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGg7IH0KLSAgICAgICAg
dW5zaWduZWQgbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgoKSBjb25zdCB7IHJldHVybiBt
X21heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRIeXBl
cmxpbmtBdWRpdGluZ0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1faHlwZXJsaW5rQXVkaXRpbmdFbmFi
bGVkID0gZmxhZzsgfQotICAgICAgICBib29sIGh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1faHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9p
ZCBzZXRDcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNhYmxlZChib29sIGZs
YWcpIHsgbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNhYmxlZCA9IGZs
YWc7IH0KLSAgICAgICAgYm9vbCBjcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNE
aXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENT
U1J1bGVzRGlzYWJsZWQ7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0TGF5b3V0RmFsbGJh
Y2tXaWR0aChpbnQgd2lkdGgpIHsgbV9sYXlvdXRGYWxsYmFja1dpZHRoID0gd2lkdGg7IH0KLSAg
ICAgICAgaW50IGxheW91dEZhbGxiYWNrV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2xheW91dEZh
bGxiYWNrV2lkdGg7IH0KLQotICAgICAgICB2b2lkIHNldERldmljZVdpZHRoKGludCB3aWR0aCkg
eyBtX2RldmljZVdpZHRoID0gd2lkdGg7IH0KLSAgICAgICAgaW50IGRldmljZVdpZHRoKCkgY29u
c3QgeyByZXR1cm4gbV9kZXZpY2VXaWR0aDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGV2aWNlSGVp
Z2h0KGludCBoZWlnaHQpIHsgbV9kZXZpY2VIZWlnaHQgPSBoZWlnaHQ7IH0KLSAgICAgICAgaW50
IGRldmljZUhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlSGVpZ2h0OyB9Ci0KLSAgICAg
ICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGZsYWcpIHsgbV9mb3JjZUNvbXBv
c2l0aW5nTW9kZSA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBmb3JjZUNvbXBvc2l0aW5nTW9kZSgp
IHsgcmV0dXJuIG1fZm9yY2VDb21wb3NpdGluZ01vZGU7IH0KLQotICAgICAgICB2b2lkIHNldFNo
b3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudChib29sIGZsYWcpIHsg
bV9zaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQgPSBmbGFnOyB9
Ci0gICAgICAgIGJvb2wgc2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3Vt
ZW50KCkgeyByZXR1cm4gbV9zaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9j
dW1lbnQ7IH0KLQotICAgICAgICB2b2lkIHNldEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50
KGJvb2wgZmxhZykgeyBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50ID0gZmxhZzsgfQot
ICAgICAgICBib29sIGFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KCkgY29uc3QgeyByZXR1
cm4gbV9hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudDsgfQotICAgICAgICB2b2lkIHNldEFs
bG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KGJvb2wgZmxhZykgeyBtX2FsbG93UnVubmluZ09m
SW5zZWN1cmVDb250ZW50ID0gZmxhZzsgfQotICAgICAgICBib29sIGFsbG93UnVubmluZ09mSW5z
ZWN1cmVDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29u
dGVudDsgfQogCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiAgICAgICAgIHZvaWQgc2V0
RW5hYmxlU2Nyb2xsQW5pbWF0b3IoYm9vbCBmbGFnKSB7IG1fc2Nyb2xsQW5pbWF0b3JFbmFibGVk
ID0gZmxhZzsgfQogICAgICAgICBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsQW5pbWF0b3JFbmFibGVkOyB9CiAjZW5kaWYKIAotICAgICAgICB2b2lk
IHNldE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKGJvb2wgZmxhZykgeyBtX21lZGlh
UGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gZmxhZzsgfTsKLSAgICAgICAgYm9vbCBtZWRp
YVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFQbGF5
YmFja1JlcXVpcmVzVXNlckdlc3R1cmU7IH0KLQotICAgICAgICB2b2lkIHNldE1lZGlhUGxheWJh
Y2tBbGxvd3NJbmxpbmUoYm9vbCBmbGFnKSB7IG1fbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSA9
IGZsYWc7IH07Ci0gICAgICAgIGJvb2wgbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWVkaWFQbGF5YmFja0FsbG93c0lubGluZTsgfQotCi0gICAgICAgIHZvaWQg
c2V0UGFzc3dvcmRFY2hvRW5hYmxlZChib29sIGZsYWcpIHsgbV9wYXNzd29yZEVjaG9FbmFibGVk
ID0gZmxhZzsgfQotICAgICAgICBib29sIHBhc3N3b3JkRWNob0VuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX3Bhc3N3b3JkRWNob0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldFN1cHByZXNz
ZXNJbmNyZW1lbnRhbFJlbmRlcmluZyhib29sIGZsYWcpIHsgbV9zdXBwcmVzc2VzSW5jcmVtZW50
YWxSZW5kZXJpbmcgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgc3VwcHJlc3Nlc0luY3JlbWVudGFs
UmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJp
bmc7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0QmFja3NwYWNlS2V5TmF2aWdhdGlvbkVu
YWJsZWQoYm9vbCBmbGFnKSB7IG1fYmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJsZWQgPSBmbGFn
OyB9Ci0gICAgICAgIGJvb2wgYmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2JhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVkOyB9Ci0gICAgICAgIAotICAg
ICAgICB2b2lkIHNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGRvdWJsZSBkdXJhdGlv
bkluU2Vjb25kcykgeyBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzID0gZHVyYXRpb25J
blNlY29uZHM7IH0KLSAgICAgICAgZG91YmxlIHBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRz
KCkgY29uc3QgeyByZXR1cm4gbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kczsgfQotCiAj
aWYgVVNFKFNBRkFSSV9USEVNRSkKICAgICAgICAgLy8gV2luZG93cyBkZWJ1Z2dpbmcgcHJlZiAo
Z2xvYmFsKSBmb3Igc3dpdGNoaW5nIGJldHdlZW4gdGhlIEFxdWEgbG9vayBhbmQgYSBuYXRpdmUg
d2luZG93cyBsb29rLgogICAgICAgICBzdGF0aWMgdm9pZCBzZXRTaG91bGRQYWludE5hdGl2ZUNv
bnRyb2xzKGJvb2wpOwpAQCAtNTY4LDY4ICsyOTAsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBzdGF0aWMgdm9pZCBzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnMoYm9vbCBmbGFnKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgdXNlc092ZXJsYXlTY3JvbGxiYXJzKCk7CiAKLSAgICAgICAg
dm9pZCBzZXRWaXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3Zpc3Vh
bFdvcmRNb3ZlbWVudEVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgdmlzdWFsV29y
ZE1vdmVtZW50RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlzdWFsV29yZE1vdmVtZW50RW5h
YmxlZDsgfQotCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgICAgICB2b2lkIHNldFNob3Vs
ZERpc3BsYXlTdWJ0aXRsZXMoYm9vbCBmbGFnKSB7IG1fc2hvdWxkRGlzcGxheVN1YnRpdGxlcyA9
IGZsYWc7IH0KLSAgICAgICAgYm9vbCBzaG91bGREaXNwbGF5U3VidGl0bGVzKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG91bGREaXNwbGF5U3VidGl0bGVzOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRTaG91
bGREaXNwbGF5Q2FwdGlvbnMoYm9vbCBmbGFnKSB7IG1fc2hvdWxkRGlzcGxheUNhcHRpb25zID0g
ZmxhZzsgfQotICAgICAgICBib29sIHNob3VsZERpc3BsYXlDYXB0aW9ucygpIGNvbnN0IHsgcmV0
dXJuIG1fc2hvdWxkRGlzcGxheUNhcHRpb25zOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRTaG91bGRE
aXNwbGF5VGV4dERlc2NyaXB0aW9ucyhib29sIGZsYWcpIHsgbV9zaG91bGREaXNwbGF5VGV4dERl
c2NyaXB0aW9ucyA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBzaG91bGREaXNwbGF5VGV4dERlc2Ny
aXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnM7
IH0KLSNlbmRpZgotCi0gICAgICAgIHZvaWQgc2V0U2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVk
KGJvb2wgZW5hYmxlZCkgeyBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZCA9IGVuYWJsZWQ7
IH0KLSAgICAgICAgYm9vbCBzY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0
Tm90aWZpY2F0aW9uc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fbm90aWZpY2F0aW9uc0VuYWJs
ZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgbm90aWZpY2F0aW9uc0VuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX25vdGlmaWNhdGlvbnNFbmFibGVkOyB9Ci0KLSAgICAgICAgLy8gU29tZSBh
cHBzIG5lZWRzIGlzTG9hZGluZ0luQVBJU2Vuc2UgdG8gYWNjb3VudCBmb3IgYWN0aXZlIHN1YnJl
c291cmNlIGxvYWRlcnMuCi0gICAgICAgIHZvaWQgc2V0TmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNl
UXVpcmsoYm9vbCBlbmFibGVkKSB7IG1fbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmsgPSBl
bmFibGVkOyB9Ci0gICAgICAgIGJvb2wgbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmsoKSBj
b25zdCB7IHJldHVybiBtX25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrOyB9Ci0KICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgICAgICB2b2lkIHNldFRvdWNoRXZlbnRFbXVsYXRpb25F
bmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3RvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkID0gZW5h
YmxlZDsgfQogICAgICAgICBib29sIGlzVG91Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX3RvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkOyB9CiAjZW5kaWYKIAotICAg
ICAgICB2b2lkIHNldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKGJvb2wgZW5hYmxlZCkg
eyBtX3Nob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID0gZW5hYmxlZDsgfQotICAgICAgICBi
b29sIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zaG91
bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbjsgfQotCi0gICAgICAgIHZvaWQgc2V0V2FudHNCYWxh
bmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcihib29sIGZsYWcpIHsgbV93YW50c0JhbGFuY2Vk
U2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yID0gZmxhZzsgfQotICAgICAgICBib29sIHdhbnRzQmFs
YW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBtX3dhbnRzQmFs
YW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3I7IH0KLQotICAgICAgICB2b2lkIHNldEluY3Jl
bWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzKGRvdWJsZSB0aW1lb3V0
KSB7IG1faW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMgPSB0
aW1lb3V0OyB9Ci0gICAgICAgIGRvdWJsZSBpbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9u
VGltZW91dEluU2Vjb25kcygpIGNvbnN0IHsgcmV0dXJuIG1faW5jcmVtZW50YWxSZW5kZXJpbmdT
dXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHM7IH0KLQotICAgICAgICB2b2lkIHNldFJlcXVlc3RB
bmltYXRpb25GcmFtZUVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fcmVxdWVzdEFuaW1hdGlvbkZy
YW1lRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCByZXF1ZXN0QW5pbWF0aW9uRnJh
bWVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVk
OyB9Ci0KLSAgICAgICAgdm9pZCBzZXREZXZpY2VTdXBwb3J0c1RvdWNoKGJvb2wgZW5hYmxlZCkg
eyBtX2RldmljZVN1cHBvcnRzVG91Y2ggPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgZGV2aWNl
U3VwcG9ydHNUb3VjaCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU3VwcG9ydHNUb3VjaDsgfQot
Ci0gICAgICAgIHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNNb3VzZShib29sIGVuYWJsZWQpIHsgbV9k
ZXZpY2VTdXBwb3J0c01vdXNlID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGRldmljZVN1cHBv
cnRzTW91c2UoKSBjb25zdCB7IHJldHVybiBtX2RldmljZVN1cHBvcnRzTW91c2U7IH0KLQotICAg
ICAgICB2b2lkIHNldE5lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsoYm9vbCBuZWVkc1F1aXJr
KSB7IG1fbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyayA9IG5lZWRzUXVpcms7IH0KLSAgICAg
ICAgYm9vbCBuZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKCkgY29uc3QgeyByZXR1cm4gbV9u
ZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRGaXhlZFBv
c2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dChib29sIGNyZWF0ZXMpIHsgbV9maXhlZFBvc2l0
aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dCA9IGNyZWF0ZXM7IH0KLSAgICAgICAgYm9vbCBmaXhl
ZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fZml4ZWRQ
b3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQ7IH0KLQotICAgICAgICB2b2lkIHNldFN5bmNY
SFJJbkRvY3VtZW50c0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fc3luY1hIUkluRG9jdW1lbnRz
RW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBzeW5jWEhSSW5Eb2N1bWVudHNFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9zeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkOyB9Ci0KLSAg
ICAgICAgLy8gV2hlbiBlbmFibGVkLCB3aW5kb3cuYmx1cigpIGRvZXMgbm90IGNoYW5nZSBmb2N1
cywgYW5kCi0gICAgICAgIC8vIHdpbmRvdy5mb2N1cygpIG9ubHkgY2hhbmdlcyBmb2N1cyB3aGVu
IGludm9rZWQgZnJvbSB0aGUgY29udGV4dCB0aGF0Ci0gICAgICAgIC8vIGNyZWF0ZWQgdGhlIHdp
bmRvdy4KLSAgICAgICAgdm9pZCBzZXRXaW5kb3dGb2N1c1Jlc3RyaWN0ZWQoYm9vbCByZXN0cmlj
dGVkKSB7IG1fd2luZG93Rm9jdXNSZXN0cmljdGVkID0gcmVzdHJpY3RlZDsgfQotICAgICAgICBi
b29sIHdpbmRvd0ZvY3VzUmVzdHJpY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93Rm9jdXNS
ZXN0cmljdGVkOyB9Ci0KICAgICAgICAgdm9pZCBzZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koU2Vj
dXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSk7CiAgICAgICAgIFNlY3VyaXR5T3Jp
Z2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9saWN5KCkgY29uc3Qg
eyByZXR1cm4gbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3k7IH0KIApAQCAtNjQxLDE4ICszMDYsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBib29sIHNob3VsZFJlc3BlY3RQ
cmlvcml0eUluQ1NTQXR0cmlidXRlU2V0dGVycygpOwogI2VuZGlmCiAKLSAgICAgICAgdm9pZCBz
ZXRDb29raWVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2Nvb2tpZUVuYWJsZWQgPSBlbmFibGVk
OyB9Ci0gICAgICAgIGJvb2wgY29va2llRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29va2ll
RW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKGJv
b2wgZW5hYmxlZCkgeyBtX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAg
ICAgICAgYm9vbCBkaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Rp
YWdub3N0aWNMb2dnaW5nRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0QXBwbHlQYWdlU2Nh
bGVGYWN0b3JJbkNvbXBvc2l0b3IoYm9vbCBlbmFibGVkKSB7IG1fYXBwbHlQYWdlU2NhbGVGYWN0
b3JJbkNvbXBvc2l0b3IgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYXBwbHlQYWdlU2NhbGVG
YWN0b3JJbkNvbXBvc2l0b3IoKSBjb25zdCB7IHJldHVybiBtX2FwcGx5UGFnZVNjYWxlRmFjdG9y
SW5Db21wb3NpdG9yOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRQbHVnSW5TbmFwc2hvdHRpbmdFbmFi
bGVkKGJvb2wgZW5hYmxlZCkgeyBtX3BsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQgPSBlbmFibGVk
OyB9Ci0gICAgICAgIGJvb2wgcGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZDsgfQotCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgZXhwbGljaXQgU2V0dGluZ3MoUGFnZSopOwogCkBAIC02NjAsOSArMzEzLDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgICAgIFBhZ2UqIG1fcGFnZTsKIAotICAgICAgICBTdHJpbmcg
bV9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZTsKLSAgICAgICAgU3RyaW5nIG1fZnRwRGlyZWN0b3J5
VGVtcGxhdGVQYXRoOwotICAgICAgICBTdHJpbmcgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGg7
CiAgICAgICAgIFN0cmluZyBtX21lZGlhVHlwZU92ZXJyaWRlOwogICAgICAgICBLVVJMIG1fdXNl
clN0eWxlU2hlZXRMb2NhdGlvbjsKICAgICAgICAgU2NyaXB0Rm9udEZhbWlseU1hcCBtX3N0YW5k
YXJkRm9udEZhbWlseU1hcDsKQEAgLTY3MiwyMyArMzIyLDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgU2NyaXB0Rm9udEZhbWlseU1hcCBtX2N1cnNpdmVGb250RmFtaWx5TWFwOwog
ICAgICAgICBTY3JpcHRGb250RmFtaWx5TWFwIG1fZmFudGFzeUZvbnRGYW1pbHlNYXA7CiAgICAg
ICAgIFNjcmlwdEZvbnRGYW1pbHlNYXAgbV9waWN0b2dyYXBoRm9udEZhbWlseU1hcDsKLSAgICAg
ICAgRWRpdGFibGVMaW5rQmVoYXZpb3IgbV9lZGl0YWJsZUxpbmtCZWhhdmlvcjsKLSAgICAgICAg
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBtX3RleHREaXJlY3Rpb25TdWJt
ZW51SW5jbHVzaW9uQmVoYXZpb3I7Ci0gICAgICAgIGRvdWJsZSBtX3Bhc3N3b3JkRWNob0R1cmF0
aW9uSW5TZWNvbmRzOwogICAgICAgICBpbnQgbV9taW5pbXVtRm9udFNpemU7CiAgICAgICAgIGlu
dCBtX21pbmltdW1Mb2dpY2FsRm9udFNpemU7CiAgICAgICAgIGludCBtX2RlZmF1bHRGb250U2l6
ZTsKICAgICAgICAgaW50IG1fZGVmYXVsdEZpeGVkRm9udFNpemU7CiAgICAgICAgIGJvb2wgbV9z
Y3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZDsKLSAgICAgICAgaW50IG1fdmFsaWRhdGlvbk1l
c3NhZ2VUaW1lck1hZ25pZmljYXRpb247Ci0gICAgICAgIGludCBtX21pbmltdW1BY2NlbGVyYXRl
ZDJkQ2FudmFzU2l6ZTsKLSAgICAgICAgaW50IG1fbGF5b3V0RmFsbGJhY2tXaWR0aDsKLSAgICAg
ICAgc2l6ZV90IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7Ci0gICAgICAgIGludCBtX2Rldmlj
ZVdpZHRoOwotICAgICAgICBpbnQgbV9kZXZpY2VIZWlnaHQ7Ci0gICAgICAgIHVuc2lnbmVkIG1f
c2Vzc2lvblN0b3JhZ2VRdW90YTsKLSAgICAgICAgdW5zaWduZWQgbV9lZGl0aW5nQmVoYXZpb3JU
eXBlOwotICAgICAgICB1bnNpZ25lZCBtX21heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoOwog
ICAgICAgICBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJs
b2NraW5nUG9saWN5OwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgICAgIGZsb2F0
IG1fdGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3I7CkBAIC02OTYsNTggKzMzNCwyNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV90ZXh0QXV0b3NpemluZ0VuYWJsZWQg
OiAxOwogI2VuZGlmCiAgICAgICAgIEludFNpemUgbV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hP
dmVycmlkZTsKKworICAgICAgICBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTCisKICAgICAgICAg
Ym9vbCBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lz
SmF2YUVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5hYmxlZEZvckxvY2FsRmls
ZXMgOiAxOwogICAgICAgICBib29sIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IDogMTsKLSAg
ICAgICAgYm9vbCBtX2xvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nIDog
MTsKICAgICAgICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQgOiAxOwotICAgICAgICBi
b29sIG1fY2FyZXRCcm93c2luZ0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fYXJlSW1hZ2Vz
RW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc01lZGlhRW5hYmxlZCA6IDE7CiAgICAgICAg
IGJvb2wgbV9hcmVQbHVnaW5zRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9sb2NhbFN0b3Jh
Z2VFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzU2NyaXB0RW5hYmxlZCA6IDE7CiAgICAg
ICAgIGJvb2wgbV9pc1dlYlNlY3VyaXR5RW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hbGxv
d1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczogMTsKLSAgICAgICAgYm9vbCBtX2FsbG93Rmls
ZUFjY2Vzc0Zyb21GaWxlVVJMczogMTsKLSAgICAgICAgYm9vbCBtX2phdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkgOiAxOwotICAgICAgICBib29sIG1fc3VwcG9ydHNNdWx0aXBs
ZVdpbmRvd3MgOiAxOwotICAgICAgICBib29sIG1famF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2Fy
ZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9zaG91bGRQcmludEJhY2tncm91bmRzIDogMTsKICAgICAg
ICAgYm9vbCBtX3RleHRBcmVhc0FyZVJlc2l6YWJsZSA6IDE7Ci0jaWYgRU5BQkxFKERBU0hCT0FS
RF9TVVBQT1JUKQotICAgICAgICBib29sIG1fdXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJp
bGl0eU1vZGUgOiAxOwotI2VuZGlmCiAgICAgICAgIGJvb2wgbV9uZWVkc0Fkb2JlRnJhbWVSZWxv
YWRpbmdRdWlyayA6IDE7Ci0gICAgICAgIGJvb2wgbV9uZWVkc0tleWJvYXJkRXZlbnREaXNhbWJp
Z3VhdGlvblF1aXJrcyA6IDE7Ci0gICAgICAgIGJvb2wgbV90cmVhdHNBbnlUZXh0Q1NTTGlua0Fz
U3R5bGVzaGVldCA6IDE7Ci0gICAgICAgIGJvb2wgbV9uZWVkc0xlb3BhcmRNYWlsUXVpcmtzIDog
MTsKICAgICAgICAgYm9vbCBtX2lzRE9NUGFzdGVBbGxvd2VkIDogMTsKLSAgICAgICAgYm9vbCBt
X3Nocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQgOiAxOwogICAgICAgICBib29sIG1fdXNlc1Bh
Z2VDYWNoZSA6IDE7Ci0gICAgICAgIGJvb2wgbV9wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMgOiAx
OwotICAgICAgICBib29sIG1fc2hvd3NVUkxzSW5Ub29sVGlwcyA6IDE7Ci0gICAgICAgIGJvb2wg
bV9zaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCA6IDE7Ci0gICAgICAgIGJvb2wgbV9mb3Jj
ZUZUUERpcmVjdG9yeUxpc3RpbmdzIDogMTsKLSAgICAgICAgYm9vbCBtX2RldmVsb3BlckV4dHJh
c0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1famF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxl
ZCA6IDE7CiAgICAgICAgIGJvb2wgbV9hdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCA6IDE7Ci0g
ICAgICAgIGJvb2wgbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA6IDE7CiAgICAgICAgIHVuc2ln
bmVkIG1fZm9udFJlbmRlcmluZ01vZGUgOiAxOwotICAgICAgICBib29sIG1fZnJhbWVGbGF0dGVu
aW5nRW5hYmxlZCA6IDE7Ci0jaWYgRU5BQkxFKFdFQl9BUkNISVZFKQotICAgICAgICBib29sIG1f
d2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQgOiAxOwotI2VuZGlmCi0gICAgICAgIGJvb2wgbV9s
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2luQXBw
bGljYXRpb25DaHJvbWVNb2RlIDogMTsKLSAgICAgICAgYm9vbCBtX29mZmxpbmVXZWJBcHBsaWNh
dGlvbkNhY2hlRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9lbmZvcmNlQ1NTTUlNRVR5cGVJ
bk5vUXVpcmtzTW9kZSA6IDE7Ci0gICAgICAgIGJvb2wgbV91c2VzRW5jb2RpbmdEZXRlY3RvciA6
IDE7Ci0gICAgICAgIGJvb2wgbV9hbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cyA6IDE7Ci0gICAg
ICAgIGJvb2wgbV9jYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nIDogMTsKLSAgICAgICAgYm9v
bCBtX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fYWNjZWxl
cmF0ZWRGaWx0ZXJzRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc0NTU0N1c3RvbUZpbHRl
ckVuYWJsZWQgOiAxOwogI2lmIEVOQUJMRShDU1NfU1RJQ0tZX1BPU0lUSU9OKQogICAgICAgICBi
b29sIG1fY3NzU3RpY2t5UG9zaXRpb25FbmFibGVkIDogMTsKQEAgLTc1OCw5NyArMzY0LDI0IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxFUykKICAgICAgICAg
Ym9vbCBtX2Nzc1ZhcmlhYmxlc0VuYWJsZWQgOiAxOwogI2VuZGlmCi0gICAgICAgIGJvb2wgbV9y
ZWdpb25CYXNlZENvbHVtbnNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2Nzc0dyaWRMYXlv
dXRFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2Rvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5h
YmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV94c3NBdWRpdG9yRW5hYmxlZCA6IDE7CiAgICAgICAg
IGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wg
bV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkIDogMTsKLSAg
ICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9ybXNFbmFibGVk
IDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0VuYWJs
ZWQgOiAxOwotICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNF
bmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52
YXNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JB
bmltYXRpb25FbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQgOiAxOyAvLyBXb3JrcyBvbmx5
IGluIGNvbmp1bmN0aW9uIHdpdGggZm9yY2VDb21wb3NpdGluZ01vZGUKICAgICAgICAgYm9vbCBt
X3Nob3dEZWJ1Z0JvcmRlcnMgOiAxOwogICAgICAgICBib29sIG1fc2hvd1JlcGFpbnRDb3VudGVy
IDogMTsKLSAgICAgICAgYm9vbCBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkIDog
MTsKLSAgICAgICAgYm9vbCBtX3dlYkdMRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV93ZWJH
TEVycm9yc1RvQ29uc29sZUVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fb3BlbkdMTXVsdGlz
YW1wbGluZ0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fcHJpdmlsZWdlZFdlYkdMRXh0ZW5z
aW9uc0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fd2ViQXVkaW9FbmFibGVkIDogMTsKLSAg
ICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ2FudmFzMmRFbmFibGVkIDogMTsKLSAgICAgICAgYm9v
bCBtX2RlZmVycmVkQ2FudmFzMmRFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2xvYWREZWZl
cnJpbmdFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX3RpbGVkQmFja2luZ1N0b3JlRW5hYmxl
ZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9wYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQgOiAxOwog
ICAgICAgICBib29sIG1fZG5zUHJlZmV0Y2hpbmdFbmFibGVkIDogMTsKLSNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCi0gICAgICAgIGJvb2wgbV9mdWxsU2NyZWVuQVBJRW5hYmxlZCA6IDE7Ci0j
ZW5kaWYKLSAgICAgICAgYm9vbCBtX2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIDog
MTsKICAgICAgICAgYm9vbCBtX3VuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQgOiAxOwotICAgICAg
ICBib29sIG1fbWVtb3J5SW5mb0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fcXVhbnRpemVk
TWVtb3J5SW5mb0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1faW50ZXJhY3RpdmVGb3JtVmFs
aWRhdGlvbiA6IDE7Ci0gICAgICAgIGJvb2wgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyA6IDE7
Ci0gICAgICAgIGJvb2wgbV9oeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQgOiAxOwotICAgICAgICBi
b29sIG1fY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQgOiAxOwot
ICAgICAgICBib29sIG1fZm9yY2VDb21wb3NpdGluZ01vZGUgOiAxOwotICAgICAgICBib29sIG1f
c2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50IDogMTsKLSAgICAg
ICAgYm9vbCBtX2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUgOiAxOwotICAgICAg
ICBib29sIG1fYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQgOiAxOwotICAgICAgICBib29s
IG1fYWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQgOiAxOwogI2lmIEVOQUJMRShTTU9PVEhf
U0NST0xMSU5HKQogICAgICAgICBib29sIG1fc2Nyb2xsQW5pbWF0b3JFbmFibGVkIDogMTsKICNl
bmRpZgotICAgICAgICBib29sIG1fbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgOiAx
OwotICAgICAgICBib29sIG1fbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSA6IDE7Ci0gICAgICAg
IGJvb2wgbV9wYXNzd29yZEVjaG9FbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX3N1cHByZXNz
ZXNJbmNyZW1lbnRhbFJlbmRlcmluZyA6IDE7Ci0gICAgICAgIGJvb2wgbV9iYWNrc3BhY2VLZXlO
YXZpZ2F0aW9uRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV92aXN1YWxXb3JkTW92ZW1lbnRF
bmFibGVkIDogMTsKLQotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAgICAgYm9vbCBtX3No
b3VsZERpc3BsYXlTdWJ0aXRsZXMgOiAxOwotICAgICAgICBib29sIG1fc2hvdWxkRGlzcGxheUNh
cHRpb25zIDogMTsKLSAgICAgICAgYm9vbCBtX3Nob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25z
IDogMTsKLSNlbmRpZgotICAgICAgICBib29sIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVk
IDogMTsKLQotICAgICAgICBib29sIG1fbm90aWZpY2F0aW9uc0VuYWJsZWQgOiAxOwotICAgICAg
ICBib29sIG1fbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmsgOiAxOwogCiAjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKICAgICAgICAgYm9vbCBtX3RvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVk
IDogMTsKICNlbmRpZgotICAgICAgICBib29sIG1fc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRp
b24gOiAxOwotICAgICAgICBib29sIG1fd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhh
dmlvciA6IDE7Ci0gICAgICAgIGJvb2wgbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkIDog
MTsKLSAgICAgICAgYm9vbCBtX2RldmljZVN1cHBvcnRzVG91Y2ggOiAxOwotICAgICAgICBib29s
IG1fZGV2aWNlU3VwcG9ydHNNb3VzZSA6IDE7Ci0gICAgICAgIGJvb2wgbV9uZWVkc0RpZEZpbmlz
aExvYWRPcmRlclF1aXJrIDogMTsKLQotICAgICAgICBib29sIG1fZml4ZWRQb3NpdGlvbkNyZWF0
ZXNTdGFja2luZ0NvbnRleHQgOiAxOwotICAgICAgICBib29sIG1fc3luY1hIUkluRG9jdW1lbnRz
RW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9jb29raWVFbmFibGVkIDogMTsKLQotICAgICAg
ICBib29sIG1fd2luZG93Rm9jdXNSZXN0cmljdGVkIDogMTsKLQotICAgICAgICBib29sIG1fZGlh
Z25vc3RpY0xvZ2dpbmdFbmFibGVkIDogMTsKLQogICAgICAgICBib29sIG1fc2Nyb2xsaW5nUGVy
Zm9ybWFuY2VMb2dnaW5nRW5hYmxlZCA6IDE7CiAKLSAgICAgICAgYm9vbCBtX2FwcGx5UGFnZVNj
YWxlRmFjdG9ySW5Db21wb3NpdG9yIDogMTsKLSAgICAgICAgYm9vbCBtX3BsdWdJblNuYXBzaG90
dGluZ0VuYWJsZWQgOiAxOwotCiAgICAgICAgIFRpbWVyPFNldHRpbmdzPiBtX3NldEltYWdlTG9h
ZGluZ1NldHRpbmdzVGltZXI7CiAgICAgICAgIHZvaWQgaW1hZ2VMb2FkaW5nU2V0dGluZ3NUaW1l
ckZpcmVkKFRpbWVyPFNldHRpbmdzPiopOwogCi0gICAgICAgIGRvdWJsZSBtX2luY3JlbWVudGFs
UmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzOwotCiAgICAgICAgIHN0YXRpYyBk
b3VibGUgZ0RlZmF1bHRNaW5ET01UaW1lckludGVydmFsOwogICAgICAgICBzdGF0aWMgZG91Ymxl
IGdEZWZhdWx0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2I5ZDAwOWRmZjM2MWMxODQ1MDE1OThkY2U5N2NkMTUzYTliYmZhMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTAs
MCArMSwxNTYgQEAKKyMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBnbG9iYWwgc2V0dGluZ3MuCisj
IEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgY3VzdG9tIGdldHRlcnMvc2V0dGVycy4KKworZGVmYXVs
dFRleHRFbmNvZGluZ05hbWUgdHlwZT1TdHJpbmcKK2Z0cERpcmVjdG9yeVRlbXBsYXRlUGF0aCB0
eXBlPVN0cmluZworbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoIHR5cGU9U3RyaW5nCitlZGl0YWJs
ZUxpbmtCZWhhdmlvciB0eXBlPUVkaXRhYmxlTGlua0JlaGF2aW9yLCBpbml0aWFsPUVkaXRhYmxl
TGlua0RlZmF1bHRCZWhhdmlvcgordGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlv
ciB0eXBlPVRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IsIGluaXRpYWw9VGV4
dERpcmVjdGlvblN1Ym1lbnVBdXRvbWF0aWNhbGx5SW5jbHVkZWQKK3Bhc3N3b3JkRWNob0R1cmF0
aW9uSW5TZWNvbmRzIHR5cGU9ZG91YmxlLCBpbml0aWFsPTEKKworIyBTZXRzIHRoZSBtYWduaWZp
Y2F0aW9uIHZhbHVlIGZvciB2YWxpZGF0aW9uIG1lc3NhZ2UgdGltZXIuICBJZiB0aGUKKyMgbWFn
bmlmaWNhdGlvbiB2YWx1ZSBpcyBOLCBhIHZhbGlkYXRpb24gbWVzc2FnZSBkaXNhcHBlYXJzIGF1
dG9tYXRpY2FsbHkgYWZ0ZXIKKyMgPG1lc3NhZ2UgbGVuZ3RoPiAqIE4gLyAxMDAwIHNlY29uZHMu
ICBJZiBOIGlzIGVxdWFsIHRvIG9yIGxlc3MgdGhhbiAwLCBhCisjIHZhbGlkYXRpb24gbWVzc2Fn
ZSBkb2Vzbid0IGRpc2FwcGVhcnMgYXV0b21hdGljYWx5LgordmFsaWRhdGlvbk1lc3NhZ2VUaW1l
ck1hZ25pZmljYXRpb24gdHlwZT1pbnQsIGluaXRpYWw9NTAKKworIyBOdW1iZXIgb2YgcGl4ZWxz
IGJlbG93IHdoaWNoIDJEIGNhbnZhcyBpcyByZW5kZXJlZCBpbiBzb2Z0d2FyZQorIyBldmVuIGlm
IGhhcmR3YXJlIGFjY2VsZXJhdGlvbiBpcyBlbmFibGVkLgorIyBIYXJkd2FyZSBhY2NlbGVyYXRp
b24gaXMgdXNlZnVsIGZvciBsYXJnZSBjYW52YXNlcyB3aGVyZSBpdCBjYW4gYXZvaWQgdGhlCisj
IHBpeGVsIGJhbmR3aWR0aCBiZXR3ZWVuIHRoZSBDUFUgYW5kIEdQVS4gQnV0IEdQVSBhY2NlbGVy
YXRpb24gY29tZXMgYXQKKyMgYSBwcmljZSAtIGV4dHJhIGJhY2stYnVmZmVyIGFuZCB0ZXh0dXJl
IGNvcHkuIFNtYWxsIGNhbnZhc2VzIGFyZSBhbHNvCisjIHdpZGVseSB1c2VkIGZvciBzdHlsaXpl
ZCBmb250cy4gQW50aS1hbGlhc2luZyB0ZXh0IGluIGhhcmR3YXJlIGF0IHRoYXQKKyMgc2NhbGUg
aXMgZ2VuZXJhbGx5IHNsb3dlci4gU28gYmVsb3cgYSBjZXJ0YWluIHNpemUgaXQgaXMgYmV0dGVy
IHRvCisjIGRyYXcgY2FudmFzIGluIHNvZnR3YXJlLgorbWluaW11bUFjY2VsZXJhdGVkMmRDYW52
YXNTaXplIHR5cGU9aW50LCBpbml0aWFsPTI1NyoyNTYKKworbGF5b3V0RmFsbGJhY2tXaWR0aCB0
eXBlPWludCwgaW5pdGlhbD05ODAKK21heGltdW1EZWNvZGVkSW1hZ2VTaXplIHR5cGU9c2l6ZV90
LCBpbml0aWFsPW51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpCitkZXZpY2VXaWR0aCB0eXBl
PWludCwgaW5pdGlhbD0wCitkZXZpY2VIZWlnaHQgdHlwZT1pbnQsIGluaXRpYWw9MAorCisjIEFs
bG93IGNsaWVudHMgY29uY2VybmVkIHdpdGggbWVtb3J5IGNvbnN1bXB0aW9uIHRvIHNldCBhIHF1
b3RhIG9uIHNlc3Npb24gc3RvcmFnZQorIyBzaW5jZSB0aGUgbWVtb3J5IHVzZWQgd29uJ3QgYmUg
cmVsZWFzZWQgdW50aWwgdGhlIFBhZ2UgaXMgZGVzdHJveWVkLgorc2Vzc2lvblN0b3JhZ2VRdW90
YSB0eXBlPXVuc2lnbmVkLCBpbml0aWFsPVN0b3JhZ2VNYXA6Om5vUXVvdGEKKworZWRpdGluZ0Jl
aGF2aW9yVHlwZSB0eXBlPUVkaXRpbmdCZWhhdmlvclR5cGUsIGluaXRpYWw9ZWRpdGluZ0JlaGF2
aW9yVHlwZUZvclBsYXRmb3JtKCkKK21heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoIHR5cGU9
dW5zaWduZWQsIGluaXRpYWw9ZGVmYXVsdE1heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoCisK
KyMgVGhpcyBzZXR0aW5nIG9ubHkgYWZmZWN0cyBzaXRlIGljb24gaW1hZ2UgbG9hZGluZyBpZiBs
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgc2V0dGluZyBpcyBmYWxzZSBhbmQgdGhpcyBzZXR0aW5n
IGlzIHRydWUuCisjIEFsbCBvdGhlciBwZXJtdXRhdGlvbnMgc3RpbGwgaGVlZCBsb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHkgc2V0dGluZy4KK2xvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRp
bmdTZXR0aW5nIGluaXRpYWw9ZmFsc2UKKworY2FyZXRCcm93c2luZ0VuYWJsZWQgaW5pdGlhbD1m
YWxzZQorbG9jYWxTdG9yYWdlRW5hYmxlZCBpbml0aWFsPWZhbHNlCithbGxvd1VuaXZlcnNhbEFj
Y2Vzc0Zyb21GaWxlVVJMcyBpbml0aWFsPXRydWUKK2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJM
cyBpbml0aWFsPXRydWUKK2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgaW5p
dGlhbD1mYWxzZQorc3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MgaW5pdGlhbD10cnVlCitqYXZhU2Ny
aXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIGluaXRpYWw9ZmFsc2UKK3Nob3VsZFByaW50QmFja2dyb3Vu
ZHMgaW5pdGlhbD1mYWxzZQordXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUg
aW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9REFTSEJPQVJEX1NVUFBPUlQKKworIyBUaGlzIGlz
IGEgcXVpcmsgd2UgYXJlIHByby1hY3RpdmVseSBhcHBseWluZyB0byBvbGQgYXBwbGljYXRpb25z
LiBJdCBjaGFuZ2VzIGtleWJvYXJkIGV2ZW50IGRpc3BhdGNoaW5nLAorIyBtYWtpbmcga2V5SWRl
bnRpZmllciBhdmFpbGFibGUgb24ga2V5cHJlc3MgZXZlbnRzLCBtYWtpbmcgY2hhckNvZGUgYXZh
aWxhYmxlIG9uIGtleWRvd24va2V5dXAgZXZlbnRzLAorIyBhbmQgZ2V0dGluZyBrZXlwcmVzcyBk
aXNwYXRjaGVkIGluIG1vcmUgY2FzZXMuCituZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlv
blF1aXJrcyBpbml0aWFsPWZhbHNlCisKK3RyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0
IGluaXRpYWw9ZmFsc2UKK25lZWRzTGVvcGFyZE1haWxRdWlya3MgaW5pdGlhbD1mYWxzZQorc2hy
aW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCBpbml0aWFsPXRydWUKK3BhZ2VDYWNoZVN1cHBvcnRz
UGx1Z2lucyBpbml0aWFsPWZhbHNlCitzaG93c1VSTHNJblRvb2xUaXBzIGluaXRpYWw9ZmFsc2UK
K3Nob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0IGluaXRpYWw9ZmFsc2UKK2ZvcmNlRlRQRGly
ZWN0b3J5TGlzdGluZ3MgaW5pdGlhbD1mYWxzZQorZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCBpbml0
aWFsPWZhbHNlCitqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkIGluaXRpYWw9ZmFsc2UKK25l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGluaXRpYWw9ZmFsc2UKK3dlYkFyY2hpdmVEZWJ1Z01vZGVF
bmFibGVkIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPVdFQl9BUkNISVZFCitsb2NhbEZpbGVD
b250ZW50U25pZmZpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKK29mZmxpbmVXZWJBcHBsaWNhdGlv
bkNhY2hlRW5hYmxlZCBpbml0aWFsPWZhbHNlCitlbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtz
TW9kZSBpbml0aWFsPXRydWUKK3VzZXNFbmNvZGluZ0RldGVjdG9yIGluaXRpYWw9ZmFsc2UKK2Fs
bG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzIGluaXRpYWw9ZmFsc2UKK2NhbnZhc1VzZXNBY2NlbGVy
YXRlZERyYXdpbmcgaW5pdGlhbD1mYWxzZQorYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCBpbml0
aWFsPWZhbHNlCithY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkIGluaXRpYWw9ZmFsc2UKK3JlZ2lv
bkJhc2VkQ29sdW1uc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorY3NzR3JpZExheW91dEVuYWJsZWQg
aW5pdGlhbD1mYWxzZQorCisjIEZJWE1FOiBUaGlzIHNob3VsZCByZWFsbHkgYmUgZGlzYWJsZWQg
YnkgZGVmYXVsdCBhcyBpdCBtYWtlcyBwbGF0Zm9ybXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZSBm
ZWF0dXJlIGRvd25sb2FkIGZpbGVzCisjIHRoZXkgY2FuJ3QgdXNlIGJ5LiBMZWF2aW5nIGVuYWJs
ZWQgZm9yIG5vdyB0byBub3QgY2hhbmdlIGV4aXN0aW5nIGJlaGF2aW9yLgorZG93bmxvYWRhYmxl
QmluYXJ5Rm9udHNFbmFibGVkIGluaXRpYWw9dHJ1ZQorCit4c3NBdWRpdG9yRW5hYmxlZCBpbml0
aWFsPWZhbHNlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yM0RUcmFuc2Zvcm1zRW5hYmxlZCBp
bml0aWFsPXRydWUKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQgaW5pdGlh
bD10cnVlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQgaW5pdGlhbD10
cnVlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQ2FudmFzRW5hYmxlZCBpbml0aWFsPXRydWUK
K2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JBbmltYXRpb25FbmFibGVkIGluaXRpYWw9dHJ1ZQor
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkIGluaXRpYWw9ZmFs
c2UKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQgaW5pdGlh
bD1mYWxzZQorCisjIFdvcmtzIG9ubHkgaW4gY29uanVuY3Rpb24gd2l0aCBmb3JjZUNvbXBvc2l0
aW5nTW9kZS4KK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCisKK2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkIGluaXRp
YWw9ZmFsc2UKK3dlYkdMRW5hYmxlZCBpbml0aWFsPWZhbHNlCit3ZWJHTEVycm9yc1RvQ29uc29s
ZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQorb3BlbkdMTXVsdGlzYW1wbGluZ0VuYWJsZWQgaW5pdGlh
bD10cnVlCitwcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZCBpbml0aWFsPWZhbHNlCith
Y2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCBpbml0aWFsPWZhbHNlCitkZWZlcnJlZDJkQ2FudmFz
RW5hYmxlZCBpbml0aWFsPWZhbHNlCitsb2FkRGVmZXJyaW5nRW5hYmxlZCBpbml0aWFsPXRydWUK
K3dlYkF1ZGlvRW5hYmxlZCBpbml0aWFsPWZhbHNlCitwYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJs
ZWQgaW5pdGlhbD1mYWxzZQorZnVsbFNjcmVlbkVuYWJsZWQgaW5pdGlhbD1mYWxzZSwgY29uZGl0
aW9uYWw9RlVMTFNDUkVFTl9BUEkKK2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIGlu
aXRpYWw9ZmFsc2UKK21lbW9yeUluZm9FbmFibGVkIGluaXRpYWw9ZmFsc2UKK3F1YW50aXplZE1l
bW9yeUluZm9FbmFibGVkIGluaXRpYWw9ZmFsc2UKKworIyBUaGlzIGZlYXR1cmUgcmVxdWlyZXMg
YW4gaW1wbGVtZW50YXRpb24gb2YgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuCitpbnRlcmFjdGl2
ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZCBpbml0aWFsPWZhbHNlCisKK3VzZVByZUhUTUw1UGFyc2Vy
UXVpcmtzIGluaXRpYWw9ZmFsc2UKK2h5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCBpbml0aWFsPWZh
bHNlCitjcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNhYmxlZCBpbml0aWFs
PWZhbHNlCitmb3JjZUNvbXBvc2l0aW5nTW9kZSBpbml0aWFsPWZhbHNlCitzaG91bGRJbmplY3RV
c2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQgaW5pdGlhbD1mYWxzZQorZml4ZWRFbGVt
ZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSBpbml0aWFsPWZhbHNlCithbGxvd0Rpc3BsYXlPZklu
c2VjdXJlQ29udGVudCBpbml0aWFsPXRydWUKK2FsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50
IGluaXRpYWw9dHJ1ZQorbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgaW5pdGlhbD1m
YWxzZQorbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSBpbml0aWFsPXRydWUKK3Bhc3N3b3JkRWNo
b0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorc3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nIGlu
aXRpYWw9ZmFsc2UKK2luY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNv
bmRzIHR5cGU9ZG91YmxlLCBpbml0aWFsPWRlZmF1bHRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHBy
ZXNzaW9uVGltZW91dEluU2Vjb25kcworYmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJsZWQgaW5p
dGlhbD10cnVlCit2aXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkIGluaXRpYWw9ZmFsc2UKK3Nob3Vs
ZERpc3BsYXlTdWJ0aXRsZXMgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sK
K3Nob3VsZERpc3BsYXlDYXB0aW9ucyBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1WSURFT19U
UkFDSworc2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnMgaW5pdGlhbD1mYWxzZSwgY29uZGl0
aW9uYWw9VklERU9fVFJBQ0sKK3Njcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZCBpbml0aWFsPWZh
bHNlCitub3RpZmljYXRpb25zRW5hYmxlZCBpbml0aWFsPXRydWUKKworIyBTb21lIGFwcHMgbmVl
ZHMgaXNMb2FkaW5nSW5BUElTZW5zZSB0byBhY2NvdW50IGZvciBhY3RpdmUgc3VicmVzb3VyY2Ug
bG9hZGVycy4KK25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrIGluaXRpYWw9ZmFsc2UKKwor
c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gaW5pdGlhbD1mYWxzZQord2FudHNCYWxhbmNl
ZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvciBpbml0aWFsPWZhbHNlCityZXF1ZXN0QW5pbWF0aW9u
RnJhbWVFbmFibGVkIGluaXRpYWw9dHJ1ZQorZGV2aWNlU3VwcG9ydHNUb3VjaCBpbml0aWFsPWZh
bHNlCitkZXZpY2VTdXBwb3J0c01vdXNlIGluaXRpYWw9dHJ1ZQorbmVlZHNEaWRGaW5pc2hMb2Fk
T3JkZXJRdWlyayBpbml0aWFsPWZhbHNlCitmaXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29u
dGV4dCBpbml0aWFsPWZhbHNlCitzeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkIGluaXRpYWw9dHJ1
ZQorY29va2llRW5hYmxlZCBpbml0aWFsPXRydWUKKworIyBXaGVuIGVuYWJsZWQsIHdpbmRvdy5i
bHVyKCkgZG9lcyBub3QgY2hhbmdlIGZvY3VzLCBhbmQKKyMgd2luZG93LmZvY3VzKCkgb25seSBj
aGFuZ2VzIGZvY3VzIHdoZW4gaW52b2tlZCBmcm9tIHRoZSBjb250ZXh0IHRoYXQKKyMgY3JlYXRl
ZCB0aGUgd2luZG93Lgord2luZG93Rm9jdXNSZXN0cmljdGVkIGluaXRpYWw9dHJ1ZQorCitkaWFn
bm9zdGljTG9nZ2luZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorYXBwbHlQYWdlU2NhbGVGYWN0b3JJ
bkNvbXBvc2l0b3IgaW5pdGlhbD1mYWxzZQorcGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCBpbml0
aWFsPWZhbHNlCitmcmFtZUZsYXR0ZW5pbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbWFrZV9zZXR0aW5ncy5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTVlMjNjMTExMTM5ZTAyMGJlMGNm
ZWVjOWJkMjk0YTc1ZTcxMDA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWtlX3NldHRpbmdzLnBsCkBAIC0wLDAgKzEsMjU1IEBACisjIS91c3IvYmluL3BlcmwgLXcK
KworIyBDb3B5cmlnaHQgKEMpIDIwMTEgQWRhbSBCYXJ0aCA8YWJhcnRoQHdlYmtpdC5vcmc+Cisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFLCBJTkMuIGBBUyBJUycnIEFO
RCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorIyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyMgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorIyBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK3VzZSBzdHJpY3Q7CisKK3VzZSBJbkZpbGVzQ29t
cGlsZXI7CisKK215ICVkZWZhdWx0UGFyYW1ldGVycyA9ICgKKyk7CisKK3N1YiBkZWZhdWx0SXRl
bUZhY3RvcnkKK3sKKyAgICByZXR1cm4gKAorICAgICAgICAnY29uZGl0aW9uYWwnID0+IDAsCisg
ICAgICAgICdpbml0aWFsJyA9PiAnJywKKyAgICAgICAgJ3R5cGUnID0+ICdib29sJworICAgICk7
Cit9CisKK215ICRJbkNvbXBpbGVyID0gSW5GaWxlc0NvbXBpbGVyLT5uZXcoXCVkZWZhdWx0UGFy
YW1ldGVycywgXCZkZWZhdWx0SXRlbUZhY3RvcnkpOworCitteSAkb3V0cHV0RGlyID0gJEluQ29t
cGlsZXItPmluaXRpYWxpemVGcm9tQ29tbWFuZExpbmUoKTsKKyRJbkNvbXBpbGVyLT5jb21waWxl
KFwmZ2VuZXJhdGVDb2RlKTsKKworc3ViIGdlbmVyYXRlQ29kZSgpCit7CisgICAgbXkgJHBhcnNl
ZFBhcmFtZXRlcnNSZWYgPSBzaGlmdDsKKyAgICBteSAkcGFyc2VkSXRlbXNSZWYgPSBzaGlmdDsK
KworICAgIGdlbmVyYXRlSGVhZGVyKCRwYXJzZWRJdGVtc1JlZik7Cit9CisKK3N1YiBnZW5lcmF0
ZUhlYWRlcigkKQoreworICAgIG15ICRwYXJzZWRJdGVtc1JlZiA9IHNoaWZ0OworCisgICAgbXkg
JXBhcnNlZEl0ZW1zID0gJXsgJHBhcnNlZEl0ZW1zUmVmIH07CisgICAgbXkgJG91dHB1dEZpbGUg
PSAiJG91dHB1dERpci9TZXR0aW5nc01hY3Jvcy5oIjsKKworICAgIG15ICV1bmNvbmRpdGlvbmFs
U2V0dGluZ3MgPSAoKTsKKyAgICBteSAlc2V0dGluZ3NCeUNvbmRpdGlvbmFsID0gKCk7CisKKyAg
ICBmb3IgbXkgJHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXBhcnNlZEl0ZW1zKSB7CisgICAgICAg
IG15ICRjb25kaXRpb25hbCA9ICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJjb25kaXRpb25h
bCJ9OworCisgICAgICAgIGlmICgkY29uZGl0aW9uYWwpIHsKKyAgICAgICAgICAgIGlmICghZGVm
aW5lZCgkc2V0dGluZ3NCeUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH0pKSB7CisgICAgICAgICAg
ICAgICAgJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9ID0gKCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICAkc2V0dGluZ3NCeUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH17
JHNldHRpbmdOYW1lfSA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkdW5jb25k
aXRpb25hbFNldHRpbmdzeyRzZXR0aW5nTmFtZX0gPSAxOworICAgICAgICB9CisgICAgfQorCisg
ICAgb3BlbiBteSAkZmlsZSwgIj4kb3V0cHV0RmlsZSIgb3IgZGllICJGYWlsZWQgdG8gb3BlbiBm
aWxlOiAkISI7CisKKyAgICBwcmludCAkZmlsZSAkSW5Db21waWxlci0+bGljZW5zZSgpOworCisg
ICAgIyBGSVhNRTogU29ydCBieSB0eXBlIHNvIGJvb2xzIGNvbWUgbGFzdCBhbmQgYXJlIGJpdCBw
YWNrZWQuCisKKyAgICBwcmludCAkZmlsZSAiI2lmbmRlZiBTZXR0aW5nc01hY3Jvc19oXG4iOwor
ICAgIHByaW50ICRmaWxlICIjZGVmaW5lIFNldHRpbmdzTWFjcm9zX2hcblxuIjsKKworICAgIHBy
aW50Q29uZGl0aW9uYWxNYWNyb3MoJGZpbGUsIFwlc2V0dGluZ3NCeUNvbmRpdGlvbmFsLCAkcGFy
c2VkSXRlbXNSZWYpOworCisgICAgcHJpbnRHZXR0ZXJzQW5kU2V0dGVycygkZmlsZSwgXCV1bmNv
bmRpdGlvbmFsU2V0dGluZ3MsIFwlc2V0dGluZ3NCeUNvbmRpdGlvbmFsLCAkcGFyc2VkSXRlbXNS
ZWYpOworICAgIHByaW50TWVtYmVyVmFyaWFibGVzKCRmaWxlLCBcJXVuY29uZGl0aW9uYWxTZXR0
aW5ncywgXCVzZXR0aW5nc0J5Q29uZGl0aW9uYWwsICRwYXJzZWRJdGVtc1JlZik7CisgICAgcHJp
bnRJbml0aWFsaXplckxpc3QoJGZpbGUsIFwldW5jb25kaXRpb25hbFNldHRpbmdzLCBcJXNldHRp
bmdzQnlDb25kaXRpb25hbCwgJHBhcnNlZEl0ZW1zUmVmKTsKKworICAgIHByaW50ICRmaWxlICIj
ZW5kaWYgLy8gU2V0dGluZ3NNYWNyb3NfaFxuIjsKKworICAgIGNsb3NlICRmaWxlOworfQorCitz
dWIgcHJpbnRDb25kaXRpb25hbE1hY3JvcygkJCQpCit7CisgICAgbXkgKCRmaWxlLCAkc2V0dGlu
Z3NCeUNvbmRpdGlvbmFsUmVmLCAkcGFyc2VkSXRlbXNSZWYpID0gQF87CisgICAgbXkgJXBhcnNl
ZEl0ZW1zID0gJXsgJHBhcnNlZEl0ZW1zUmVmIH07CisgICAgbXkgJXNldHRpbmdzQnlDb25kaXRp
b25hbCA9ICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxSZWYgfTsKKworICAgIGZvciBteSAkY29u
ZGl0aW9uYWwgKHNvcnQga2V5cyAlc2V0dGluZ3NCeUNvbmRpdGlvbmFsKSB7CisgICAgICAgIG15
ICRwcmVmZXJyZWRDb25kaXRpb25hbCA9ICRJbkNvbXBpbGVyLT5wcmVmZXJyZWRDb25kaXRpb25h
bCgkY29uZGl0aW9uYWwpOworICAgICAgICBwcmludCAkZmlsZSAiI2lmICIgLiAkSW5Db21waWxl
ci0+Y29uZGl0aW9uYWxTdHJpbmdGcm9tQXR0cmlidXRlVmFsdWUoJGNvbmRpdGlvbmFsKSAuICJc
biI7CisKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25h
bH1fU0VUVElOR1NfR0VUVEVSX0FORF9TRVRURVJTIFxcXG4iOworICAgICAgICBmb3IgbXkgJHNl
dHRpbmdOYW1lIChzb3J0IGtleXMgJXsgJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9u
YWx9IH0pIHsKKyAgICAgICAgICAgIHByaW50R2V0dGVyQW5kU2V0dGVyKCRmaWxlLCAkc2V0dGlu
Z05hbWUsICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0pOworICAgICAgICB9Cisg
ICAgICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VU
VElOR1NfR0VUVEVSX0FORF9TRVRURVJTXG4iOworCisgICAgICAgIHByaW50ICRmaWxlICIjZGVm
aW5lICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX05PTl9CT09MX01FTUJFUl9WQVJJ
QUJMRVMgXFxcbiI7CisgICAgICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5cyAleyAk
c2V0dGluZ3NCeUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH0gfSkgeworICAgICAgICAgICAgbXkg
JHR5cGUgPSAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9OworICAgICAgICAgICAg
bmV4dCBpZiAkdHlwZSBlcSAiYm9vbCI7CisgICAgICAgICAgICBwcmludCAkZmlsZSAiICAgICR0
eXBlIG1fJHNldHRpbmdOYW1lOyBcXFxuIgorICAgICAgICB9CisgICAgICAgIHByaW50ICRmaWxl
ICIvLyBFbmQgb2YgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfTk9OX0JPT0xfTUVN
QkVSX1ZBUklBQkxFU1xuIjsKKworICAgICAgICBwcmludCAkZmlsZSAiI2RlZmluZSAke3ByZWZl
cnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19CT09MX01FTUJFUl9WQVJJQUJMRVMgXFxcbiI7Cisg
ICAgICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5cyAleyAkc2V0dGluZ3NCeUNvbmRp
dGlvbmFseyRjb25kaXRpb25hbH0gfSkgeworICAgICAgICAgICAgbmV4dCBpZiAkcGFyc2VkSXRl
bXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9IG5lICJib29sIjsKKyAgICAgICAgICAgIHByaW50ICRm
aWxlICIgICAgYm9vbCBtXyRzZXR0aW5nTmFtZSA6IDE7IFxcXG4iCisgICAgICAgIH0KKyAgICAg
ICAgcHJpbnQgJGZpbGUgIi8vIEVuZCBvZiAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5H
U19CT09MX01FTUJFUl9WQVJJQUJMRVNcbiI7CisKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNkZWZp
bmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfTk9OX0JPT0xfSU5JVElBTElaRVJT
IFxcXG4iOworICAgICAgICBmb3IgbXkgJHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXsgJHNldHRp
bmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9IH0pIHsKKyAgICAgICAgICAgIG5leHQgaWYg
JHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifSBlcSAiYm9vbCI7CisgICAgICAgICAg
ICBwcmludEluaXRpYWxpemVyKCRmaWxlLCAkc2V0dGluZ05hbWUsICRwYXJzZWRJdGVtc1JlZik7
CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgJGZpbGUgIi8vIEVuZCBvZiAke3ByZWZlcnJlZENv
bmRpdGlvbmFsfV9TRVRUSU5HU19OT05fQk9PTF9JTklUSUFMSVpFUlNcbiI7CisKKyAgICAgICAg
cHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfQk9P
TF9JTklUSUFMSVpFUlMgXFxcbiI7CisgICAgICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQg
a2V5cyAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH0gfSkgeworICAgICAg
ICAgICAgbmV4dCBpZiAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9IG5lICJib29s
IjsKKyAgICAgICAgICAgIHByaW50SW5pdGlhbGl6ZXIoJGZpbGUsICRzZXR0aW5nTmFtZSwgJHBh
cnNlZEl0ZW1zUmVmKTsKKyAgICAgICAgfQorICAgICAgICBwcmludCAkZmlsZSAiLy8gRW5kIG9m
ICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0JPT0xfSU5JVElBTElaRVJTXG4iOwor
CisgICAgICAgIHByaW50ICRmaWxlICIjZWxzZVxuIjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNk
ZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfR0VUVEVSX0FORF9TRVRURVJT
XG4iOworICAgICAgICBwcmludCAkZmlsZSAiI2RlZmluZSAke3ByZWZlcnJlZENvbmRpdGlvbmFs
fV9TRVRUSU5HU19OT05fQk9PTF9NRU1CRVJfVkFSSUFCTEVTXG4iOworICAgICAgICBwcmludCAk
ZmlsZSAiI2RlZmluZSAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19CT09MX01FTUJF
Ul9WQVJJQUJMRVNcbiI7CisgICAgICAgIHByaW50ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVk
Q29uZGl0aW9uYWx9X1NFVFRJTkdTX05PTl9CT09MX0lOSVRJQUxJWkVSU1xuIjsKKyAgICAgICAg
cHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfQk9P
TF9JTklUSUFMSVpFUlNcbiI7CisgICAgICAgIHByaW50ICRmaWxlICIjZW5kaWZcbiI7CisgICAg
ICAgIHByaW50ICRmaWxlICJcbiI7CisgICAgfQorfQorCitzdWIgcHJpbnRHZXR0ZXJzQW5kU2V0
dGVycygkJCQkKQoreworICAgIG15ICgkZmlsZSwgJHVuY29uZGl0aW9uYWxTZXR0aW5nc1JlZiwg
JHNldHRpbmdzQnlDb25kaXRpb25hbFJlZiwgJHBhcnNlZEl0ZW1zUmVmKSA9IEBfOworICAgIG15
ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworICAgIG15ICV1bmNvbmRpdGlv
bmFsU2V0dGluZ3MgPSAleyAkdW5jb25kaXRpb25hbFNldHRpbmdzUmVmIH07CisgICAgbXkgJXNl
dHRpbmdzQnlDb25kaXRpb25hbCA9ICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxSZWYgfTsKKwor
ICAgIHByaW50ICRmaWxlICIjZGVmaW5lIFNFVFRJTkdTX0dFVFRFUlNfQU5EX1NFVFRFUlMgXFxc
biI7CisgICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV1bmNvbmRpdGlvbmFsU2V0
dGluZ3MpIHsKKyAgICAgICAgcHJpbnRHZXR0ZXJBbmRTZXR0ZXIoJGZpbGUsICRzZXR0aW5nTmFt
ZSwgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifSk7CisgICAgfQorICAgIGZvciBt
eSAkY29uZGl0aW9uYWwgKHNvcnQga2V5cyAlc2V0dGluZ3NCeUNvbmRpdGlvbmFsKSB7CisgICAg
ICAgIG15ICRwcmVmZXJyZWRDb25kaXRpb25hbCA9ICRJbkNvbXBpbGVyLT5wcmVmZXJyZWRDb25k
aXRpb25hbCgkY29uZGl0aW9uYWwpOworICAgICAgICBwcmludCAkZmlsZSAiICAgICR7cHJlZmVy
cmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0dFVFRFUl9BTkRfU0VUVEVSUyBcXFxuIjsKKyAgICB9
CisgICAgcHJpbnQgJGZpbGUgIi8vIEVuZCBvZiBTRVRUSU5HU19HRVRURVJTX0FORF9TRVRURVJT
LlxuXG4iOworfQorCitzdWIgcHJpbnRNZW1iZXJWYXJpYWJsZXMoJCQkJCkKK3sKKyAgICBteSAo
JGZpbGUsICR1bmNvbmRpdGlvbmFsU2V0dGluZ3NSZWYsICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxS
ZWYsICRwYXJzZWRJdGVtc1JlZikgPSBAXzsKKyAgICBteSAlcGFyc2VkSXRlbXMgPSAleyAkcGFy
c2VkSXRlbXNSZWYgfTsKKyAgICBteSAldW5jb25kaXRpb25hbFNldHRpbmdzID0gJXsgJHVuY29u
ZGl0aW9uYWxTZXR0aW5nc1JlZiB9OworICAgIG15ICVzZXR0aW5nc0J5Q29uZGl0aW9uYWwgPSAl
eyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFsUmVmIH07CisKKyAgICBwcmludCAkZmlsZSAiI2RlZmlu
ZSBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTIFxcXG4iOworICAgICMgV2UgbGlzdCB0aGUgYm9v
bHMgbGFzdCBzbyB3ZSBjYW4gYml0IHBhY2sgdGhlbS4KKyAgICBmb3IgbXkgJHNldHRpbmdOYW1l
IChzb3J0IGtleXMgJXVuY29uZGl0aW9uYWxTZXR0aW5ncykgeworICAgICAgICBteSAkdHlwZSA9
ICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn07CisgICAgICAgIG5leHQgaWYgJHR5
cGUgZXEgImJvb2wiOworICAgICAgICBwcmludCAkZmlsZSAiICAgICR0eXBlIG1fJHNldHRpbmdO
YW1lOyBcXFxuIgorICAgIH0KKyAgICBmb3IgbXkgJGNvbmRpdGlvbmFsIChzb3J0IGtleXMgJXNl
dHRpbmdzQnlDb25kaXRpb25hbCkgeworICAgICAgICBteSAkcHJlZmVycmVkQ29uZGl0aW9uYWwg
PSAkSW5Db21waWxlci0+cHJlZmVycmVkQ29uZGl0aW9uYWwoJGNvbmRpdGlvbmFsKTsKKyAgICAg
ICAgcHJpbnQgJGZpbGUgIiAgICAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19OT05f
Qk9PTF9NRU1CRVJfVkFSSUFCTEVTIFxcXG4iOworICAgIH0KKyAgICBmb3IgbXkgJHNldHRpbmdO
YW1lIChzb3J0IGtleXMgJXVuY29uZGl0aW9uYWxTZXR0aW5ncykgeworICAgICAgICBuZXh0IGlm
ICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0gbmUgImJvb2wiOworICAgICAgICBw
cmludCAkZmlsZSAiICAgIGJvb2wgbV8kc2V0dGluZ05hbWUgOiAxOyBcXFxuIgorICAgIH0KKyAg
ICBmb3IgbXkgJGNvbmRpdGlvbmFsIChzb3J0IGtleXMgJXNldHRpbmdzQnlDb25kaXRpb25hbCkg
eworICAgICAgICBteSAkcHJlZmVycmVkQ29uZGl0aW9uYWwgPSAkSW5Db21waWxlci0+cHJlZmVy
cmVkQ29uZGl0aW9uYWwoJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICAk
e3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19CT09MX01FTUJFUl9WQVJJQUJMRVMgXFxc
biI7CisgICAgfQorICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgU0VUVElOR1NfTUVNQkVSX1ZB
UklBQkxFUy5cblxuIjsKK30KKworc3ViIHByaW50R2V0dGVyQW5kU2V0dGVyKCQkJCkKK3sKKyAg
ICBteSAoJGZpbGUsICRzZXR0aW5nTmFtZSwgJHR5cGUpID0gQF87CisgICAgbXkgJHNldHRlckZ1
bmN0aW9uTmFtZSA9ICJzZXQiIC4gJHNldHRpbmdOYW1lOworICAgIHN1YnN0cigkc2V0dGVyRnVu
Y3Rpb25OYW1lLCAzLCAxKSA9IHVjKHN1YnN0cigkc2V0dGVyRnVuY3Rpb25OYW1lLCAzLCAxKSk7
CisgICAgaWYgKHN1YnN0cigkc2V0dGluZ05hbWUsIDAsIDMpIGVxICJjc3MiIHx8IHN1YnN0cigk
c2V0dGluZ05hbWUsIDAsIDMpIGVxICJ4c3MiKSB7CisgICAgICAgIHN1YnN0cigkc2V0dGVyRnVu
Y3Rpb25OYW1lLCAzLCAzKSA9IHVjKHN1YnN0cigkc2V0dGVyRnVuY3Rpb25OYW1lLCAzLCAzKSk7
CisgICAgfQorICAgIGlmIChsYyhzdWJzdHIoJHR5cGUsIDAsIDEpKSBlcSBzdWJzdHIoJHR5cGUs
IDAsIDEpKSB7CisgICAgICAgIHByaW50ICRmaWxlICIgICAgJHR5cGUgJHNldHRpbmdOYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV8kc2V0dGluZ05hbWU7IH0gXFxcbiI7CisgICAgICAgIHByaW50ICRm
aWxlICIgICAgdm9pZCAkc2V0dGVyRnVuY3Rpb25OYW1lKCR0eXBlICRzZXR0aW5nTmFtZSkgeyBt
XyRzZXR0aW5nTmFtZSA9ICRzZXR0aW5nTmFtZTsgfSBcXFxuIjsKKyAgICB9IGVsc2UgeworICAg
ICAgICBwcmludCAkZmlsZSAiICAgIGNvbnN0ICR0eXBlJiAkc2V0dGluZ05hbWUoKSB7IHJldHVy
biBtXyRzZXR0aW5nTmFtZTsgfSBcXFxuIjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICB2b2lk
ICRzZXR0ZXJGdW5jdGlvbk5hbWUoY29uc3QgJHR5cGUmICRzZXR0aW5nTmFtZSkgeyBtXyRzZXR0
aW5nTmFtZSA9ICRzZXR0aW5nTmFtZTsgfSBcXFxuIjsKKyAgICB9Cit9CisKK3N1YiBwcmludElu
aXRpYWxpemVyTGlzdCgkJCQkKQoreworICAgIG15ICgkZmlsZSwgJHVuY29uZGl0aW9uYWxTZXR0
aW5nc1JlZiwgJHNldHRpbmdzQnlDb25kaXRpb25hbFJlZiwgJHBhcnNlZEl0ZW1zUmVmKSA9IEBf
OworICAgIG15ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworICAgIG15ICV1
bmNvbmRpdGlvbmFsU2V0dGluZ3MgPSAleyAkdW5jb25kaXRpb25hbFNldHRpbmdzUmVmIH07Cisg
ICAgbXkgJXNldHRpbmdzQnlDb25kaXRpb25hbCA9ICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxS
ZWYgfTsKKworICAgIHByaW50ICRmaWxlICIjZGVmaW5lIFNFVFRJTkdTX0lOSVRJQUxJWkVSX0xJ
U1QgXFxcbiI7CisgICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV1bmNvbmRpdGlv
bmFsU2V0dGluZ3MpIHsKKyAgICAgICAgbmV4dCBpZiAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1l
fXsidHlwZSJ9IGVxICJib29sIjsKKyAgICAgICAgcHJpbnRJbml0aWFsaXplcigkZmlsZSwgJHNl
dHRpbmdOYW1lLCAkcGFyc2VkSXRlbXNSZWYpOworICAgIH0KKyAgICBmb3IgbXkgJGNvbmRpdGlv
bmFsIChzb3J0IGtleXMgJXNldHRpbmdzQnlDb25kaXRpb25hbCkgeworICAgICAgICBteSAkcHJl
ZmVycmVkQ29uZGl0aW9uYWwgPSAkSW5Db21waWxlci0+cHJlZmVycmVkQ29uZGl0aW9uYWwoJGNv
bmRpdGlvbmFsKTsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICAke3ByZWZlcnJlZENvbmRpdGlv
bmFsfV9TRVRUSU5HU19OT05fQk9PTF9JTklUSUFMSVpFUlMgXFxcbiI7CisgICAgfQorICAgIGZv
ciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5cyAldW5jb25kaXRpb25hbFNldHRpbmdzKSB7Cisg
ICAgICAgIG5leHQgaWYgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifSBuZSAiYm9v
bCI7CisgICAgICAgIHByaW50SW5pdGlhbGl6ZXIoJGZpbGUsICRzZXR0aW5nTmFtZSwgJHBhcnNl
ZEl0ZW1zUmVmKTsKKyAgICB9CisgICAgZm9yIG15ICRjb25kaXRpb25hbCAoc29ydCBrZXlzICVz
ZXR0aW5nc0J5Q29uZGl0aW9uYWwpIHsKKyAgICAgICAgbXkgJHByZWZlcnJlZENvbmRpdGlvbmFs
ID0gJEluQ29tcGlsZXItPnByZWZlcnJlZENvbmRpdGlvbmFsKCRjb25kaXRpb25hbCk7CisgICAg
ICAgIHByaW50ICRmaWxlICIgICAgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfQk9P
TF9JTklUSUFMSVpFUlMgXFxcbiI7CisgICAgfQorICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2Yg
U0VUVElOR1NfSU5JVElBTElaRVJfTElTVC5cblxuIjsKK30KKworc3ViIHByaW50SW5pdGlhbGl6
ZXIoJCQkKQoreworICAgIG15ICgkZmlsZSwgJHNldHRpbmdOYW1lLCAkcGFyc2VkSXRlbXNSZWYp
ID0gQF87CisgICAgbXkgJXBhcnNlZEl0ZW1zID0gJXsgJHBhcnNlZEl0ZW1zUmVmIH07CisKKyAg
ICBteSAkaW5pdGlhbFZhbHVlID0gJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17ImluaXRpYWwi
fTsKKyAgICBteSAkdHlwZSA9ICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn07Cisg
ICAgZGllICJNdXN0IHByb3ZpZGUgYW4gaW5pdGlhbCB2YWx1ZSBmb3IgJHNldHRpbmdOYW1lLiIg
aWYgKCRpbml0aWFsVmFsdWUgZXEgJycgJiYgbGMoc3Vic3RyKCR0eXBlLCAwLCAxKSkgZXEgc3Vi
c3RyKCR0eXBlLCAwLCAxKSk7CisgICAgcmV0dXJuIGlmICgkaW5pdGlhbFZhbHVlIGVxICcnKTsK
KyAgICBwcmludCAkZmlsZSAiICAgICwgbV8kc2V0dGluZ05hbWUoJGluaXRpYWxWYWx1ZSkgXFxc
biIKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>173411</attachid>
            <date>2012-11-09 17:14:04 -0800</date>
            <delta_ts>2012-11-09 17:14:04 -0800</delta_ts>
            <desc>generated SettingsMacros.h</desc>
            <filename>SettingsMacros.h</filename>
            <type>text/plain</type>
            <size>41067</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">LyoKICogVEhJUyBGSUxFIFdBUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCwgRE8gTk9UIEVESVQu
CiAqCiAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAog
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCiAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgogKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAogKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQogKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCiAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAqLwoKI2lmbmRlZiBTZXR0aW5nc01hY3Jv
c19oCiNkZWZpbmUgU2V0dGluZ3NNYWNyb3NfaAoKI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9S
VCkKI2RlZmluZSBEQVNIQk9BUkRfU1VQUE9SVF9TRVRUSU5HU19HRVRURVJfQU5EX1NFVFRFUlMg
XAogICAgYm9vbCB1c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGU7IH0gXAog
ICAgdm9pZCBzZXRVc2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZShib29sIHVz
ZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKSB7IG1fdXNlc0Rhc2hib2FyZEJh
Y2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUgPSB1c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmls
aXR5TW9kZTsgfSBcCi8vIEVuZCBvZiBEQVNIQk9BUkRfU1VQUE9SVF9TRVRUSU5HU19HRVRURVJf
QU5EX1NFVFRFUlMKI2RlZmluZSBEQVNIQk9BUkRfU1VQUE9SVF9TRVRUSU5HU19OT05fQk9PTF9N
RU1CRVJfVkFSSUFCTEVTIFwKLy8gRW5kIG9mIERBU0hCT0FSRF9TVVBQT1JUX1NFVFRJTkdTX05P
Tl9CT09MX01FTUJFUl9WQVJJQUJMRVMKI2RlZmluZSBEQVNIQk9BUkRfU1VQUE9SVF9TRVRUSU5H
U19CT09MX01FTUJFUl9WQVJJQUJMRVMgXAogICAgYm9vbCBtX3VzZXNEYXNoYm9hcmRCYWNrd2Fy
ZENvbXBhdGliaWxpdHlNb2RlIDogMTsgXAovLyBFbmQgb2YgREFTSEJPQVJEX1NVUFBPUlRfU0VU
VElOR1NfQk9PTF9NRU1CRVJfVkFSSUFCTEVTCiNkZWZpbmUgREFTSEJPQVJEX1NVUFBPUlRfU0VU
VElOR1NfTk9OX0JPT0xfSU5JVElBTElaRVJTIFwKLy8gRW5kIG9mIERBU0hCT0FSRF9TVVBQT1JU
X1NFVFRJTkdTX05PTl9CT09MX0lOSVRJQUxJWkVSUwojZGVmaW5lIERBU0hCT0FSRF9TVVBQT1JU
X1NFVFRJTkdTX0JPT0xfSU5JVElBTElaRVJTIFwKICAgICwgbV91c2VzRGFzaGJvYXJkQmFja3dh
cmRDb21wYXRpYmlsaXR5TW9kZShmYWxzZSkgXAovLyBFbmQgb2YgREFTSEJPQVJEX1NVUFBPUlRf
U0VUVElOR1NfQk9PTF9JTklUSUFMSVpFUlMKI2Vsc2UKI2RlZmluZSBEQVNIQk9BUkRfU1VQUE9S
VF9TRVRUSU5HU19HRVRURVJfQU5EX1NFVFRFUlMKI2RlZmluZSBEQVNIQk9BUkRfU1VQUE9SVF9T
RVRUSU5HU19OT05fQk9PTF9NRU1CRVJfVkFSSUFCTEVTCiNkZWZpbmUgREFTSEJPQVJEX1NVUFBP
UlRfU0VUVElOR1NfQk9PTF9NRU1CRVJfVkFSSUFCTEVTCiNkZWZpbmUgREFTSEJPQVJEX1NVUFBP
UlRfU0VUVElOR1NfTk9OX0JPT0xfSU5JVElBTElaRVJTCiNkZWZpbmUgREFTSEJPQVJEX1NVUFBP
UlRfU0VUVElOR1NfQk9PTF9JTklUSUFMSVpFUlMKI2VuZGlmCgojaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQojZGVmaW5lIEZVTExTQ1JFRU5fQVBJX1NFVFRJTkdTX0dFVFRFUl9BTkRfU0VUVEVS
UyBcCiAgICBib29sIGZ1bGxTY3JlZW5FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9mdWxsU2Ny
ZWVuRW5hYmxlZDsgfSBcCiAgICB2b2lkIHNldEZ1bGxTY3JlZW5FbmFibGVkKGJvb2wgZnVsbFNj
cmVlbkVuYWJsZWQpIHsgbV9mdWxsU2NyZWVuRW5hYmxlZCA9IGZ1bGxTY3JlZW5FbmFibGVkOyB9
IFwKLy8gRW5kIG9mIEZVTExTQ1JFRU5fQVBJX1NFVFRJTkdTX0dFVFRFUl9BTkRfU0VUVEVSUwoj
ZGVmaW5lIEZVTExTQ1JFRU5fQVBJX1NFVFRJTkdTX05PTl9CT09MX01FTUJFUl9WQVJJQUJMRVMg
XAovLyBFbmQgb2YgRlVMTFNDUkVFTl9BUElfU0VUVElOR1NfTk9OX0JPT0xfTUVNQkVSX1ZBUklB
QkxFUwojZGVmaW5lIEZVTExTQ1JFRU5fQVBJX1NFVFRJTkdTX0JPT0xfTUVNQkVSX1ZBUklBQkxF
UyBcCiAgICBib29sIG1fZnVsbFNjcmVlbkVuYWJsZWQgOiAxOyBcCi8vIEVuZCBvZiBGVUxMU0NS
RUVOX0FQSV9TRVRUSU5HU19CT09MX01FTUJFUl9WQVJJQUJMRVMKI2RlZmluZSBGVUxMU0NSRUVO
X0FQSV9TRVRUSU5HU19OT05fQk9PTF9JTklUSUFMSVpFUlMgXAovLyBFbmQgb2YgRlVMTFNDUkVF
Tl9BUElfU0VUVElOR1NfTk9OX0JPT0xfSU5JVElBTElaRVJTCiNkZWZpbmUgRlVMTFNDUkVFTl9B
UElfU0VUVElOR1NfQk9PTF9JTklUSUFMSVpFUlMgXAogICAgLCBtX2Z1bGxTY3JlZW5FbmFibGVk
KGZhbHNlKSBcCi8vIEVuZCBvZiBGVUxMU0NSRUVOX0FQSV9TRVRUSU5HU19CT09MX0lOSVRJQUxJ
WkVSUwojZWxzZQojZGVmaW5lIEZVTExTQ1JFRU5fQVBJX1NFVFRJTkdTX0dFVFRFUl9BTkRfU0VU
VEVSUwojZGVmaW5lIEZVTExTQ1JFRU5fQVBJX1NFVFRJTkdTX05PTl9CT09MX01FTUJFUl9WQVJJ
QUJMRVMKI2RlZmluZSBGVUxMU0NSRUVOX0FQSV9TRVRUSU5HU19CT09MX01FTUJFUl9WQVJJQUJM
RVMKI2RlZmluZSBGVUxMU0NSRUVOX0FQSV9TRVRUSU5HU19OT05fQk9PTF9JTklUSUFMSVpFUlMK
I2RlZmluZSBGVUxMU0NSRUVOX0FQSV9TRVRUSU5HU19CT09MX0lOSVRJQUxJWkVSUwojZW5kaWYK
CiNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiNkZWZpbmUgVklERU9fVFJBQ0tfU0VUVElOR1NfR0VU
VEVSX0FORF9TRVRURVJTIFwKICAgIGJvb2wgc2hvdWxkRGlzcGxheUNhcHRpb25zKCkgY29uc3Qg
eyByZXR1cm4gbV9zaG91bGREaXNwbGF5Q2FwdGlvbnM7IH0gXAogICAgdm9pZCBzZXRTaG91bGRE
aXNwbGF5Q2FwdGlvbnMoYm9vbCBzaG91bGREaXNwbGF5Q2FwdGlvbnMpIHsgbV9zaG91bGREaXNw
bGF5Q2FwdGlvbnMgPSBzaG91bGREaXNwbGF5Q2FwdGlvbnM7IH0gXAogICAgYm9vbCBzaG91bGRE
aXNwbGF5U3VidGl0bGVzKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGREaXNwbGF5U3VidGl0bGVz
OyB9IFwKICAgIHZvaWQgc2V0U2hvdWxkRGlzcGxheVN1YnRpdGxlcyhib29sIHNob3VsZERpc3Bs
YXlTdWJ0aXRsZXMpIHsgbV9zaG91bGREaXNwbGF5U3VidGl0bGVzID0gc2hvdWxkRGlzcGxheVN1
YnRpdGxlczsgfSBcCiAgICBib29sIHNob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zKCkgY29u
c3QgeyByZXR1cm4gbV9zaG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9uczsgfSBcCiAgICB2b2lk
IHNldFNob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zKGJvb2wgc2hvdWxkRGlzcGxheVRleHRE
ZXNjcmlwdGlvbnMpIHsgbV9zaG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9ucyA9IHNob3VsZERp
c3BsYXlUZXh0RGVzY3JpcHRpb25zOyB9IFwKLy8gRW5kIG9mIFZJREVPX1RSQUNLX1NFVFRJTkdT
X0dFVFRFUl9BTkRfU0VUVEVSUwojZGVmaW5lIFZJREVPX1RSQUNLX1NFVFRJTkdTX05PTl9CT09M
X01FTUJFUl9WQVJJQUJMRVMgXAovLyBFbmQgb2YgVklERU9fVFJBQ0tfU0VUVElOR1NfTk9OX0JP
T0xfTUVNQkVSX1ZBUklBQkxFUwojZGVmaW5lIFZJREVPX1RSQUNLX1NFVFRJTkdTX0JPT0xfTUVN
QkVSX1ZBUklBQkxFUyBcCiAgICBib29sIG1fc2hvdWxkRGlzcGxheUNhcHRpb25zIDogMTsgXAog
ICAgYm9vbCBtX3Nob3VsZERpc3BsYXlTdWJ0aXRsZXMgOiAxOyBcCiAgICBib29sIG1fc2hvdWxk
RGlzcGxheVRleHREZXNjcmlwdGlvbnMgOiAxOyBcCi8vIEVuZCBvZiBWSURFT19UUkFDS19TRVRU
SU5HU19CT09MX01FTUJFUl9WQVJJQUJMRVMKI2RlZmluZSBWSURFT19UUkFDS19TRVRUSU5HU19O
T05fQk9PTF9JTklUSUFMSVpFUlMgXAovLyBFbmQgb2YgVklERU9fVFJBQ0tfU0VUVElOR1NfTk9O
X0JPT0xfSU5JVElBTElaRVJTCiNkZWZpbmUgVklERU9fVFJBQ0tfU0VUVElOR1NfQk9PTF9JTklU
SUFMSVpFUlMgXAogICAgLCBtX3Nob3VsZERpc3BsYXlDYXB0aW9ucyhmYWxzZSkgXAogICAgLCBt
X3Nob3VsZERpc3BsYXlTdWJ0aXRsZXMoZmFsc2UpIFwKICAgICwgbV9zaG91bGREaXNwbGF5VGV4
dERlc2NyaXB0aW9ucyhmYWxzZSkgXAovLyBFbmQgb2YgVklERU9fVFJBQ0tfU0VUVElOR1NfQk9P
TF9JTklUSUFMSVpFUlMKI2Vsc2UKI2RlZmluZSBWSURFT19UUkFDS19TRVRUSU5HU19HRVRURVJf
QU5EX1NFVFRFUlMKI2RlZmluZSBWSURFT19UUkFDS19TRVRUSU5HU19OT05fQk9PTF9NRU1CRVJf
VkFSSUFCTEVTCiNkZWZpbmUgVklERU9fVFJBQ0tfU0VUVElOR1NfQk9PTF9NRU1CRVJfVkFSSUFC
TEVTCiNkZWZpbmUgVklERU9fVFJBQ0tfU0VUVElOR1NfTk9OX0JPT0xfSU5JVElBTElaRVJTCiNk
ZWZpbmUgVklERU9fVFJBQ0tfU0VUVElOR1NfQk9PTF9JTklUSUFMSVpFUlMKI2VuZGlmCgojaWYg
RU5BQkxFKFdFQl9BUkNISVZFKQojZGVmaW5lIFdFQl9BUkNISVZFX1NFVFRJTkdTX0dFVFRFUl9B
TkRfU0VUVEVSUyBcCiAgICBib29sIHdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV93ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZDsgfSBcCiAgICB2b2lkIHNldFdl
YkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKGJvb2wgd2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQp
IHsgbV93ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZCA9IHdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFi
bGVkOyB9IFwKLy8gRW5kIG9mIFdFQl9BUkNISVZFX1NFVFRJTkdTX0dFVFRFUl9BTkRfU0VUVEVS
UwojZGVmaW5lIFdFQl9BUkNISVZFX1NFVFRJTkdTX05PTl9CT09MX01FTUJFUl9WQVJJQUJMRVMg
XAovLyBFbmQgb2YgV0VCX0FSQ0hJVkVfU0VUVElOR1NfTk9OX0JPT0xfTUVNQkVSX1ZBUklBQkxF
UwojZGVmaW5lIFdFQl9BUkNISVZFX1NFVFRJTkdTX0JPT0xfTUVNQkVSX1ZBUklBQkxFUyBcCiAg
ICBib29sIG1fd2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQgOiAxOyBcCi8vIEVuZCBvZiBXRUJf
QVJDSElWRV9TRVRUSU5HU19CT09MX01FTUJFUl9WQVJJQUJMRVMKI2RlZmluZSBXRUJfQVJDSElW
RV9TRVRUSU5HU19OT05fQk9PTF9JTklUSUFMSVpFUlMgXAovLyBFbmQgb2YgV0VCX0FSQ0hJVkVf
U0VUVElOR1NfTk9OX0JPT0xfSU5JVElBTElaRVJTCiNkZWZpbmUgV0VCX0FSQ0hJVkVfU0VUVElO
R1NfQk9PTF9JTklUSUFMSVpFUlMgXAogICAgLCBtX3dlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVk
KGZhbHNlKSBcCi8vIEVuZCBvZiBXRUJfQVJDSElWRV9TRVRUSU5HU19CT09MX0lOSVRJQUxJWkVS
UwojZWxzZQojZGVmaW5lIFdFQl9BUkNISVZFX1NFVFRJTkdTX0dFVFRFUl9BTkRfU0VUVEVSUwoj
ZGVmaW5lIFdFQl9BUkNISVZFX1NFVFRJTkdTX05PTl9CT09MX01FTUJFUl9WQVJJQUJMRVMKI2Rl
ZmluZSBXRUJfQVJDSElWRV9TRVRUSU5HU19CT09MX01FTUJFUl9WQVJJQUJMRVMKI2RlZmluZSBX
RUJfQVJDSElWRV9TRVRUSU5HU19OT05fQk9PTF9JTklUSUFMSVpFUlMKI2RlZmluZSBXRUJfQVJD
SElWRV9TRVRUSU5HU19CT09MX0lOSVRJQUxJWkVSUwojZW5kaWYKCiNkZWZpbmUgU0VUVElOR1Nf
R0VUVEVSU19BTkRfU0VUVEVSUyBcCiAgICBib29sIGFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsgfSBcCiAgICB2
b2lkIHNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGJvb2wgYWNjZWxlcmF0ZWQyZENhbnZh
c0VuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCA9IGFjY2VsZXJhdGVkMmRD
YW52YXNFbmFibGVkOyB9IFwKICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJh
bnNmb3Jtc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3IzRFRyYW5zZm9ybXNFbmFibGVkOyB9IFwKICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJsZWQoYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
M0RUcmFuc2Zvcm1zRW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5z
Zm9ybXNFbmFibGVkID0gYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJs
ZWQ7IH0gXAogICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVu
YWJsZWQ7IH0gXAogICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9u
RW5hYmxlZChib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JBbmltYXRpb25FbmFibGVkKSB7
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQgPSBhY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZDsgfSBcCiAgICBib29sIGFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yQ2FudmFzRW5hYmxlZDsgfSBcCiAgICB2b2lkIHNldEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkKGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zv
ckNhbnZhc0VuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQ2FudmFzRW5hYmxl
ZCA9IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkOyB9IFwKICAgIGJvb2wg
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQ7IH0g
XAogICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJs
ZWQoYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQpIHsg
bV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgPSBhY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQ7IH0gXAogICAgYm9vbCBhY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkOyB9IFwK
ICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxl
ZChib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQpIHsg
bV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkID0gYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZDsgfSBcCiAgICBib29sIGFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JQbHVnaW5zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkOyB9IFwKICAgIHZvaWQgc2V0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkKGJvb2wgYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zv
clBsdWdpbnNFbmFibGVkID0gYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVk
OyB9IFwKICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xs
YWJsZUZyYW1lc0VuYWJsZWQ7IH0gXAogICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
U2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Ny
b2xsYWJsZUZyYW1lc0VuYWJsZWQgPSBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJs
ZUZyYW1lc0VuYWJsZWQ7IH0gXAogICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlk
ZW9FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlk
ZW9FbmFibGVkOyB9IFwKICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVv
RW5hYmxlZChib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQpIHsgbV9h
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVkID0gYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZvclZpZGVvRW5hYmxlZDsgfSBcCiAgICBib29sIGFjY2VsZXJhdGVkRHJhd2luZ0VuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQ7IH0gXAogICAg
dm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgYWNjZWxlcmF0ZWREcmF3aW5n
RW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQgPSBhY2NlbGVyYXRlZERyYXdp
bmdFbmFibGVkOyB9IFwKICAgIGJvb2wgYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZDsgfSBcCiAgICB2b2lkIHNldEFj
Y2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoYm9vbCBhY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKSB7
IG1fYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCA9IGFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQ7
IH0gXAogICAgYm9vbCBhbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQ7IH0gXAogICAgdm9pZCBzZXRBbGxv
d0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudChib29sIGFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250
ZW50KSB7IG1fYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQgPSBhbGxvd0Rpc3BsYXlPZklu
c2VjdXJlQ29udGVudDsgfSBcCiAgICBib29sIGFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcygp
IGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzOyB9IFwKICAgIHZv
aWQgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wgYWxsb3dGaWxlQWNjZXNzRnJv
bUZpbGVVUkxzKSB7IG1fYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzID0gYWxsb3dGaWxlQWNj
ZXNzRnJvbUZpbGVVUkxzOyB9IFwKICAgIGJvb2wgYWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRl
bnQoKSBjb25zdCB7IHJldHVybiBtX2FsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50OyB9IFwK
ICAgIHZvaWQgc2V0QWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQoYm9vbCBhbGxvd1J1bm5p
bmdPZkluc2VjdXJlQ29udGVudCkgeyBtX2FsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50ID0g
YWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQ7IH0gXAogICAgYm9vbCBhbGxvd1NjcmlwdHNU
b0Nsb3NlV2luZG93cygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRv
d3M7IH0gXAogICAgdm9pZCBzZXRBbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cyhib29sIGFsbG93
U2NyaXB0c1RvQ2xvc2VXaW5kb3dzKSB7IG1fYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MgPSBh
bGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93czsgfSBcCiAgICBib29sIGFsbG93VW5pdmVyc2FsQWNj
ZXNzRnJvbUZpbGVVUkxzKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zy
b21GaWxlVVJMczsgfSBcCiAgICB2b2lkIHNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVV
UkxzKGJvb2wgYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMpIHsgbV9hbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyA9IGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxz
OyB9IFwKICAgIGJvb2wgYXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSBjb25zdCB7
IHJldHVybiBtX2FwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yOyB9IFwKICAgIHZvaWQg
c2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoYm9vbCBhcHBseVBhZ2VTY2FsZUZh
Y3RvckluQ29tcG9zaXRvcikgeyBtX2FwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yID0g
YXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3I7IH0gXAogICAgYm9vbCBhc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQ7IH0gXAogICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZChib29sIGFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKSB7IG1fYXN5
bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQgPSBhc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZDsgfSBcCiAgICBib29sIGJhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9iYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZDsgfSBcCiAgICB2b2lk
IHNldEJhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVkKGJvb2wgYmFja3NwYWNlS2V5TmF2aWdh
dGlvbkVuYWJsZWQpIHsgbV9iYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZCA9IGJhY2tzcGFj
ZUtleU5hdmlnYXRpb25FbmFibGVkOyB9IFwKICAgIGJvb2wgY2FudmFzVXNlc0FjY2VsZXJhdGVk
RHJhd2luZygpIGNvbnN0IHsgcmV0dXJuIG1fY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZzsg
fSBcCiAgICB2b2lkIHNldENhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmcoYm9vbCBjYW52YXNV
c2VzQWNjZWxlcmF0ZWREcmF3aW5nKSB7IG1fY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZyA9
IGNhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmc7IH0gXAogICAgYm9vbCBjYXJldEJyb3dzaW5n
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FyZXRCcm93c2luZ0VuYWJsZWQ7IH0gXAogICAg
dm9pZCBzZXRDYXJldEJyb3dzaW5nRW5hYmxlZChib29sIGNhcmV0QnJvd3NpbmdFbmFibGVkKSB7
IG1fY2FyZXRCcm93c2luZ0VuYWJsZWQgPSBjYXJldEJyb3dzaW5nRW5hYmxlZDsgfSBcCiAgICBi
b29sIGNvb2tpZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Nvb2tpZUVuYWJsZWQ7IH0gXAog
ICAgdm9pZCBzZXRDb29raWVFbmFibGVkKGJvb2wgY29va2llRW5hYmxlZCkgeyBtX2Nvb2tpZUVu
YWJsZWQgPSBjb29raWVFbmFibGVkOyB9IFwKICAgIGJvb2wgY3Jvc3NPcmlnaW5DaGVja0luR2V0
TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Nyb3NzT3JpZ2luQ2hl
Y2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkOyB9IFwKICAgIHZvaWQgc2V0Q3Jvc3NPcmln
aW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQoYm9vbCBjcm9zc09yaWdpbkNoZWNr
SW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNhYmxlZCkgeyBtX2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1h
dGNoZWRDU1NSdWxlc0Rpc2FibGVkID0gY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1
bGVzRGlzYWJsZWQ7IH0gXAogICAgYm9vbCBjc3NHcmlkTGF5b3V0RW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fY3NzR3JpZExheW91dEVuYWJsZWQ7IH0gXAogICAgdm9pZCBzZXRDU1NHcmlkTGF5
b3V0RW5hYmxlZChib29sIGNzc0dyaWRMYXlvdXRFbmFibGVkKSB7IG1fY3NzR3JpZExheW91dEVu
YWJsZWQgPSBjc3NHcmlkTGF5b3V0RW5hYmxlZDsgfSBcCiAgICBjb25zdCBTdHJpbmcmIGRlZmF1
bHRUZXh0RW5jb2RpbmdOYW1lKCkgeyByZXR1cm4gbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZTsg
fSBcCiAgICB2b2lkIHNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFN0cmluZyYgZGVm
YXVsdFRleHRFbmNvZGluZ05hbWUpIHsgbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZSA9IGRlZmF1
bHRUZXh0RW5jb2RpbmdOYW1lOyB9IFwKICAgIGJvb2wgZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2RlZmVycmVkMmRDYW52YXNFbmFibGVkOyB9IFwKICAgIHZvaWQg
c2V0RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBkZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCkg
eyBtX2RlZmVycmVkMmRDYW52YXNFbmFibGVkID0gZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQ7IH0g
XAogICAgYm9vbCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kZXZl
bG9wZXJFeHRyYXNFbmFibGVkOyB9IFwKICAgIHZvaWQgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxl
ZChib29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQpIHsgbV9kZXZlbG9wZXJFeHRyYXNFbmFibGVk
ID0gZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDsgfSBcCiAgICBpbnQgZGV2aWNlSGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gbV9kZXZpY2VIZWlnaHQ7IH0gXAogICAgdm9pZCBzZXREZXZpY2VIZWlnaHQo
aW50IGRldmljZUhlaWdodCkgeyBtX2RldmljZUhlaWdodCA9IGRldmljZUhlaWdodDsgfSBcCiAg
ICBib29sIGRldmljZVN1cHBvcnRzTW91c2UoKSBjb25zdCB7IHJldHVybiBtX2RldmljZVN1cHBv
cnRzTW91c2U7IH0gXAogICAgdm9pZCBzZXREZXZpY2VTdXBwb3J0c01vdXNlKGJvb2wgZGV2aWNl
U3VwcG9ydHNNb3VzZSkgeyBtX2RldmljZVN1cHBvcnRzTW91c2UgPSBkZXZpY2VTdXBwb3J0c01v
dXNlOyB9IFwKICAgIGJvb2wgZGV2aWNlU3VwcG9ydHNUb3VjaCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGV2aWNlU3VwcG9ydHNUb3VjaDsgfSBcCiAgICB2b2lkIHNldERldmljZVN1cHBvcnRzVG91Y2go
Ym9vbCBkZXZpY2VTdXBwb3J0c1RvdWNoKSB7IG1fZGV2aWNlU3VwcG9ydHNUb3VjaCA9IGRldmlj
ZVN1cHBvcnRzVG91Y2g7IH0gXAogICAgaW50IGRldmljZVdpZHRoKCkgY29uc3QgeyByZXR1cm4g
bV9kZXZpY2VXaWR0aDsgfSBcCiAgICB2b2lkIHNldERldmljZVdpZHRoKGludCBkZXZpY2VXaWR0
aCkgeyBtX2RldmljZVdpZHRoID0gZGV2aWNlV2lkdGg7IH0gXAogICAgYm9vbCBkaWFnbm9zdGlj
TG9nZ2luZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxl
ZDsgfSBcCiAgICB2b2lkIHNldERpYWdub3N0aWNMb2dnaW5nRW5hYmxlZChib29sIGRpYWdub3N0
aWNMb2dnaW5nRW5hYmxlZCkgeyBtX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCA9IGRpYWdub3N0
aWNMb2dnaW5nRW5hYmxlZDsgfSBcCiAgICBib29sIGRvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkOyB9
IFwKICAgIHZvaWQgc2V0RG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkKGJvb2wgZG93bmxv
YWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkKSB7IG1fZG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFi
bGVkID0gZG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkOyB9IFwKICAgIGNvbnN0IEVkaXRh
YmxlTGlua0JlaGF2aW9yJiBlZGl0YWJsZUxpbmtCZWhhdmlvcigpIHsgcmV0dXJuIG1fZWRpdGFi
bGVMaW5rQmVoYXZpb3I7IH0gXAogICAgdm9pZCBzZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihjb25z
dCBFZGl0YWJsZUxpbmtCZWhhdmlvciYgZWRpdGFibGVMaW5rQmVoYXZpb3IpIHsgbV9lZGl0YWJs
ZUxpbmtCZWhhdmlvciA9IGVkaXRhYmxlTGlua0JlaGF2aW9yOyB9IFwKICAgIGNvbnN0IEVkaXRp
bmdCZWhhdmlvclR5cGUmIGVkaXRpbmdCZWhhdmlvclR5cGUoKSB7IHJldHVybiBtX2VkaXRpbmdC
ZWhhdmlvclR5cGU7IH0gXAogICAgdm9pZCBzZXRFZGl0aW5nQmVoYXZpb3JUeXBlKGNvbnN0IEVk
aXRpbmdCZWhhdmlvclR5cGUmIGVkaXRpbmdCZWhhdmlvclR5cGUpIHsgbV9lZGl0aW5nQmVoYXZp
b3JUeXBlID0gZWRpdGluZ0JlaGF2aW9yVHlwZTsgfSBcCiAgICBib29sIGVuZm9yY2VDU1NNSU1F
VHlwZUluTm9RdWlya3NNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9lbmZvcmNlQ1NTTUlNRVR5cGVJ
bk5vUXVpcmtzTW9kZTsgfSBcCiAgICB2b2lkIHNldEVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWly
a3NNb2RlKGJvb2wgZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUpIHsgbV9lbmZvcmNl
Q1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZSA9IGVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NN
b2RlOyB9IFwKICAgIGJvb2wgZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkOyB9IFwKICAgIHZv
aWQgc2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoYm9vbCBleHBlcmltZW50YWxO
b3RpZmljYXRpb25zRW5hYmxlZCkgeyBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVk
ID0gZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQ7IH0gXAogICAgYm9vbCBmaXhlZEVs
ZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9maXhlZEVsZW1l
bnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lOyB9IFwKICAgIHZvaWQgc2V0Rml4ZWRFbGVtZW50c0xh
eW91dFJlbGF0aXZlVG9GcmFtZShib29sIGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJh
bWUpIHsgbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lID0gZml4ZWRFbGVtZW50
c0xheW91dFJlbGF0aXZlVG9GcmFtZTsgfSBcCiAgICBib29sIGZpeGVkUG9zaXRpb25DcmVhdGVz
U3RhY2tpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9maXhlZFBvc2l0aW9uQ3JlYXRlc1N0
YWNraW5nQ29udGV4dDsgfSBcCiAgICB2b2lkIHNldEZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tp
bmdDb250ZXh0KGJvb2wgZml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQpIHsgbV9m
aXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dCA9IGZpeGVkUG9zaXRpb25DcmVhdGVz
U3RhY2tpbmdDb250ZXh0OyB9IFwKICAgIGJvb2wgZm9yY2VDb21wb3NpdGluZ01vZGUoKSBjb25z
dCB7IHJldHVybiBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlOyB9IFwKICAgIHZvaWQgc2V0Rm9yY2VD
b21wb3NpdGluZ01vZGUoYm9vbCBmb3JjZUNvbXBvc2l0aW5nTW9kZSkgeyBtX2ZvcmNlQ29tcG9z
aXRpbmdNb2RlID0gZm9yY2VDb21wb3NpdGluZ01vZGU7IH0gXAogICAgYm9vbCBmb3JjZUZUUERp
cmVjdG9yeUxpc3RpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9mb3JjZUZUUERpcmVjdG9yeUxpc3Rp
bmdzOyB9IFwKICAgIHZvaWQgc2V0Rm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5ncyhib29sIGZvcmNl
RlRQRGlyZWN0b3J5TGlzdGluZ3MpIHsgbV9mb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzID0gZm9y
Y2VGVFBEaXJlY3RvcnlMaXN0aW5nczsgfSBcCiAgICBib29sIGZyYW1lRmxhdHRlbmluZ0VuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ7IH0gXAogICAgdm9p
ZCBzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGJvb2wgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCkg
eyBtX2ZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgPSBmcmFtZUZsYXR0ZW5pbmdFbmFibGVkOyB9IFwK
ICAgIGNvbnN0IFN0cmluZyYgZnRwRGlyZWN0b3J5VGVtcGxhdGVQYXRoKCkgeyByZXR1cm4gbV9m
dHBEaXJlY3RvcnlUZW1wbGF0ZVBhdGg7IH0gXAogICAgdm9pZCBzZXRGdHBEaXJlY3RvcnlUZW1w
bGF0ZVBhdGgoY29uc3QgU3RyaW5nJiBmdHBEaXJlY3RvcnlUZW1wbGF0ZVBhdGgpIHsgbV9mdHBE
aXJlY3RvcnlUZW1wbGF0ZVBhdGggPSBmdHBEaXJlY3RvcnlUZW1wbGF0ZVBhdGg7IH0gXAogICAg
Ym9vbCBoeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2h5cGVybGlu
a0F1ZGl0aW5nRW5hYmxlZDsgfSBcCiAgICB2b2lkIHNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxl
ZChib29sIGh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCkgeyBtX2h5cGVybGlua0F1ZGl0aW5nRW5h
YmxlZCA9IGh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZDsgfSBcCiAgICBkb3VibGUgaW5jcmVtZW50
YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMoKSBjb25zdCB7IHJldHVybiBt
X2luY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzOyB9IFwKICAg
IHZvaWQgc2V0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMo
ZG91YmxlIGluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzKSB7
IG1faW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMgPSBpbmNy
ZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kczsgfSBcCiAgICBib29s
IGludGVyYWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pbnRl
cmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZDsgfSBcCiAgICB2b2lkIHNldEludGVyYWN0aXZl
Rm9ybVZhbGlkYXRpb25FbmFibGVkKGJvb2wgaW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJs
ZWQpIHsgbV9pbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZCA9IGludGVyYWN0aXZlRm9y
bVZhbGlkYXRpb25FbmFibGVkOyB9IFwKICAgIGJvb2wgamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBi
b2FyZCgpIGNvbnN0IHsgcmV0dXJuIG1famF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDsgfSBc
CiAgICB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYm9vbCBqYXZhU2NyaXB0
Q2FuQWNjZXNzQ2xpcGJvYXJkKSB7IG1famF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCA9IGph
dmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQ7IH0gXAogICAgYm9vbCBqYXZhU2NyaXB0Q2FuT3Bl
bldpbmRvd3NBdXRvbWF0aWNhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9qYXZhU2NyaXB0Q2FuT3Bl
bldpbmRvd3NBdXRvbWF0aWNhbGx5OyB9IFwKICAgIHZvaWQgc2V0SmF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseShib29sIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRp
Y2FsbHkpIHsgbV9qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gamF2YVNj
cmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTsgfSBcCiAgICBib29sIGphdmFTY3JpcHRF
eHBlcmltZW50c0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2phdmFTY3JpcHRFeHBlcmltZW50
c0VuYWJsZWQ7IH0gXAogICAgdm9pZCBzZXRKYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKGJv
b2wgamF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZCkgeyBtX2phdmFTY3JpcHRFeHBlcmltZW50
c0VuYWJsZWQgPSBqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkOyB9IFwKICAgIGludCBsYXlv
dXRGYWxsYmFja1dpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRGYWxsYmFja1dpZHRoOyB9
IFwKICAgIHZvaWQgc2V0TGF5b3V0RmFsbGJhY2tXaWR0aChpbnQgbGF5b3V0RmFsbGJhY2tXaWR0
aCkgeyBtX2xheW91dEZhbGxiYWNrV2lkdGggPSBsYXlvdXRGYWxsYmFja1dpZHRoOyB9IFwKICAg
IGJvb2wgbG9hZERlZmVycmluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2xvYWREZWZlcnJp
bmdFbmFibGVkOyB9IFwKICAgIHZvaWQgc2V0TG9hZERlZmVycmluZ0VuYWJsZWQoYm9vbCBsb2Fk
RGVmZXJyaW5nRW5hYmxlZCkgeyBtX2xvYWREZWZlcnJpbmdFbmFibGVkID0gbG9hZERlZmVycmlu
Z0VuYWJsZWQ7IH0gXAogICAgYm9vbCBsb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5n
U2V0dGluZygpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9h
ZGluZ1NldHRpbmc7IH0gXAogICAgdm9pZCBzZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VM
b2FkaW5nU2V0dGluZyhib29sIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0
aW5nKSB7IG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcgPSBsb2Fk
c1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZzsgfSBcCiAgICBib29sIGxvY2Fs
RmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQ7IH0gXAogICAgdm9pZCBzZXRMb2NhbEZpbGVDb250ZW50U25p
ZmZpbmdFbmFibGVkKGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCkgeyBtX2xv
Y2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQgPSBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkOyB9IFwKICAgIGNvbnN0IFN0cmluZyYgbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKCkg
eyByZXR1cm4gbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGg7IH0gXAogICAgdm9pZCBzZXRMb2Nh
bFN0b3JhZ2VEYXRhYmFzZVBhdGgoY29uc3QgU3RyaW5nJiBsb2NhbFN0b3JhZ2VEYXRhYmFzZVBh
dGgpIHsgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGggPSBsb2NhbFN0b3JhZ2VEYXRhYmFzZVBh
dGg7IH0gXAogICAgYm9vbCBsb2NhbFN0b3JhZ2VFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9s
b2NhbFN0b3JhZ2VFbmFibGVkOyB9IFwKICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChi
b29sIGxvY2FsU3RvcmFnZUVuYWJsZWQpIHsgbV9sb2NhbFN0b3JhZ2VFbmFibGVkID0gbG9jYWxT
dG9yYWdlRW5hYmxlZDsgfSBcCiAgICBzaXplX3QgbWF4aW11bURlY29kZWRJbWFnZVNpemUoKSBj
b25zdCB7IHJldHVybiBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplOyB9IFwKICAgIHZvaWQgc2V0
TWF4aW11bURlY29kZWRJbWFnZVNpemUoc2l6ZV90IG1heGltdW1EZWNvZGVkSW1hZ2VTaXplKSB7
IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemUgPSBtYXhpbXVtRGVjb2RlZEltYWdlU2l6ZTsgfSBc
CiAgICB1bnNpZ25lZCBtYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGg7IH0gXAogICAgdm9pZCBzZXRNYXhp
bXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCh1bnNpZ25lZCBtYXhpbXVtSFRNTFBhcnNlckRPTVRy
ZWVEZXB0aCkgeyBtX21heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoID0gbWF4aW11bUhUTUxQ
YXJzZXJET01UcmVlRGVwdGg7IH0gXAogICAgYm9vbCBtZWRpYVBsYXliYWNrQWxsb3dzSW5saW5l
KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lOyB9IFwKICAgIHZv
aWQgc2V0TWVkaWFQbGF5YmFja0FsbG93c0lubGluZShib29sIG1lZGlhUGxheWJhY2tBbGxvd3NJ
bmxpbmUpIHsgbV9tZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lID0gbWVkaWFQbGF5YmFja0FsbG93
c0lubGluZTsgfSBcCiAgICBib29sIG1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKCkg
Y29uc3QgeyByZXR1cm4gbV9tZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZTsgfSBcCiAg
ICB2b2lkIHNldE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKGJvb2wgbWVkaWFQbGF5
YmFja1JlcXVpcmVzVXNlckdlc3R1cmUpIHsgbV9tZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2Vz
dHVyZSA9IG1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlOyB9IFwKICAgIGJvb2wgbWVt
b3J5SW5mb0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX21lbW9yeUluZm9FbmFibGVkOyB9IFwK
ICAgIHZvaWQgc2V0TWVtb3J5SW5mb0VuYWJsZWQoYm9vbCBtZW1vcnlJbmZvRW5hYmxlZCkgeyBt
X21lbW9yeUluZm9FbmFibGVkID0gbWVtb3J5SW5mb0VuYWJsZWQ7IH0gXAogICAgaW50IG1pbmlt
dW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bUFjY2Vs
ZXJhdGVkMmRDYW52YXNTaXplOyB9IFwKICAgIHZvaWQgc2V0TWluaW11bUFjY2VsZXJhdGVkMmRD
YW52YXNTaXplKGludCBtaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUpIHsgbV9taW5pbXVt
QWNjZWxlcmF0ZWQyZENhbnZhc1NpemUgPSBtaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemU7
IH0gXAogICAgYm9vbCBuZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKCkgY29uc3QgeyByZXR1
cm4gbV9uZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrOyB9IFwKICAgIHZvaWQgc2V0TmVlZHNE
aWRGaW5pc2hMb2FkT3JkZXJRdWlyayhib29sIG5lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsp
IHsgbV9uZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrID0gbmVlZHNEaWRGaW5pc2hMb2FkT3Jk
ZXJRdWlyazsgfSBcCiAgICBib29sIG5lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrKCkgY29u
c3QgeyByZXR1cm4gbV9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyazsgfSBcCiAgICB2b2lk
IHNldE5lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrKGJvb2wgbmVlZHNJc0xvYWRpbmdJbkFQ
SVNlbnNlUXVpcmspIHsgbV9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyayA9IG5lZWRzSXNM
b2FkaW5nSW5BUElTZW5zZVF1aXJrOyB9IFwKICAgIGJvb2wgbmVlZHNLZXlib2FyZEV2ZW50RGlz
YW1iaWd1YXRpb25RdWlya3MoKSBjb25zdCB7IHJldHVybiBtX25lZWRzS2V5Ym9hcmRFdmVudERp
c2FtYmlndWF0aW9uUXVpcmtzOyB9IFwKICAgIHZvaWQgc2V0TmVlZHNLZXlib2FyZEV2ZW50RGlz
YW1iaWd1YXRpb25RdWlya3MoYm9vbCBuZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1
aXJrcykgeyBtX25lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzID0gbmVlZHNL
ZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3M7IH0gXAogICAgYm9vbCBuZWVkc0xlb3Bh
cmRNYWlsUXVpcmtzKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0xlb3BhcmRNYWlsUXVpcmtzOyB9
IFwKICAgIHZvaWQgc2V0TmVlZHNMZW9wYXJkTWFpbFF1aXJrcyhib29sIG5lZWRzTGVvcGFyZE1h
aWxRdWlya3MpIHsgbV9uZWVkc0xlb3BhcmRNYWlsUXVpcmtzID0gbmVlZHNMZW9wYXJkTWFpbFF1
aXJrczsgfSBcCiAgICBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QgeyByZXR1
cm4gbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrczsgfSBcCiAgICB2b2lkIHNldE5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzKGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpIHsgbV9uZWVkc1NpdGVT
cGVjaWZpY1F1aXJrcyA9IG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzOyB9IFwKICAgIGJvb2wgbm90
aWZpY2F0aW9uc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX25vdGlmaWNhdGlvbnNFbmFibGVk
OyB9IFwKICAgIHZvaWQgc2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQoYm9vbCBub3RpZmljYXRpb25z
RW5hYmxlZCkgeyBtX25vdGlmaWNhdGlvbnNFbmFibGVkID0gbm90aWZpY2F0aW9uc0VuYWJsZWQ7
IH0gXAogICAgYm9vbCBvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX29mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZDsgfSBcCiAgICB2b2lk
IHNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChib29sIG9mZmxpbmVXZWJBcHBs
aWNhdGlvbkNhY2hlRW5hYmxlZCkgeyBtX29mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxl
ZCA9IG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZDsgfSBcCiAgICBib29sIG9wZW5H
TE11bHRpc2FtcGxpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuR0xNdWx0aXNhbXBs
aW5nRW5hYmxlZDsgfSBcCiAgICB2b2lkIHNldE9wZW5HTE11bHRpc2FtcGxpbmdFbmFibGVkKGJv
b2wgb3BlbkdMTXVsdGlzYW1wbGluZ0VuYWJsZWQpIHsgbV9vcGVuR0xNdWx0aXNhbXBsaW5nRW5h
YmxlZCA9IG9wZW5HTE11bHRpc2FtcGxpbmdFbmFibGVkOyB9IFwKICAgIGJvb2wgcGFnZUNhY2hl
U3VwcG9ydHNQbHVnaW5zKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlQ2FjaGVTdXBwb3J0c1BsdWdp
bnM7IH0gXAogICAgdm9pZCBzZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoYm9vbCBwYWdlQ2Fj
aGVTdXBwb3J0c1BsdWdpbnMpIHsgbV9wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMgPSBwYWdlQ2Fj
aGVTdXBwb3J0c1BsdWdpbnM7IH0gXAogICAgYm9vbCBwYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZDsgfSBcCiAg
ICB2b2lkIHNldFBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZChib29sIHBhZ2luYXRlRHVyaW5n
TGF5b3V0RW5hYmxlZCkgeyBtX3BhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZCA9IHBhZ2luYXRl
RHVyaW5nTGF5b3V0RW5hYmxlZDsgfSBcCiAgICBkb3VibGUgcGFzc3dvcmRFY2hvRHVyYXRpb25J
blNlY29uZHMoKSBjb25zdCB7IHJldHVybiBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRz
OyB9IFwKICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoZG91YmxlIHBh
c3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKSB7IG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNl
Y29uZHMgPSBwYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kczsgfSBcCiAgICBib29sIHBhc3N3
b3JkRWNob0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Bhc3N3b3JkRWNob0VuYWJsZWQ7IH0g
XAogICAgdm9pZCBzZXRQYXNzd29yZEVjaG9FbmFibGVkKGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxl
ZCkgeyBtX3Bhc3N3b3JkRWNob0VuYWJsZWQgPSBwYXNzd29yZEVjaG9FbmFibGVkOyB9IFwKICAg
IGJvb2wgcGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z0lu
U25hcHNob3R0aW5nRW5hYmxlZDsgfSBcCiAgICB2b2lkIHNldFBsdWdJblNuYXBzaG90dGluZ0Vu
YWJsZWQoYm9vbCBwbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkKSB7IG1fcGx1Z0luU25hcHNob3R0
aW5nRW5hYmxlZCA9IHBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQ7IH0gXAogICAgYm9vbCBwcml2
aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmlsZWdl
ZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQ7IH0gXAogICAgdm9pZCBzZXRQcml2aWxlZ2VkV2ViR0xF
eHRlbnNpb25zRW5hYmxlZChib29sIHByaXZpbGVnZWRXZWJHTEV4dGVuc2lvbnNFbmFibGVkKSB7
IG1fcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQgPSBwcml2aWxlZ2VkV2ViR0xFeHRl
bnNpb25zRW5hYmxlZDsgfSBcCiAgICBib29sIHF1YW50aXplZE1lbW9yeUluZm9FbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9xdWFudGl6ZWRNZW1vcnlJbmZvRW5hYmxlZDsgfSBcCiAgICB2b2lk
IHNldFF1YW50aXplZE1lbW9yeUluZm9FbmFibGVkKGJvb2wgcXVhbnRpemVkTWVtb3J5SW5mb0Vu
YWJsZWQpIHsgbV9xdWFudGl6ZWRNZW1vcnlJbmZvRW5hYmxlZCA9IHF1YW50aXplZE1lbW9yeUlu
Zm9FbmFibGVkOyB9IFwKICAgIGJvb2wgcmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZDsgfSBcCiAgICB2b2lkIHNldFJl
Z2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQoYm9vbCByZWdpb25CYXNlZENvbHVtbnNFbmFibGVkKSB7
IG1fcmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCA9IHJlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQ7
IH0gXAogICAgYm9vbCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkOyB9IFwKICAgIHZvaWQgc2V0UmVxdWVz
dEFuaW1hdGlvbkZyYW1lRW5hYmxlZChib29sIHJlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQp
IHsgbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1l
RW5hYmxlZDsgfSBcCiAgICBib29sIHNjcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVkOyB9IFwKICAgIHZvaWQgc2V0
U2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVkKGJvb2wgc2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFi
bGVkKSB7IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVkID0gc2Nyb2xsaW5nQ29vcmRpbmF0
b3JFbmFibGVkOyB9IFwKICAgIHVuc2lnbmVkIHNlc3Npb25TdG9yYWdlUXVvdGEoKSBjb25zdCB7
IHJldHVybiBtX3Nlc3Npb25TdG9yYWdlUXVvdGE7IH0gXAogICAgdm9pZCBzZXRTZXNzaW9uU3Rv
cmFnZVF1b3RhKHVuc2lnbmVkIHNlc3Npb25TdG9yYWdlUXVvdGEpIHsgbV9zZXNzaW9uU3RvcmFn
ZVF1b3RhID0gc2Vzc2lvblN0b3JhZ2VRdW90YTsgfSBcCiAgICBib29sIHNob3VsZEluamVjdFVz
ZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxk
SW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50OyB9IFwKICAgIHZvaWQgc2V0
U2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50KGJvb2wgc2hvdWxk
SW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50KSB7IG1fc2hvdWxkSW5qZWN0
VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50ID0gc2hvdWxkSW5qZWN0VXNlclNjcmlw
dHNJbkluaXRpYWxFbXB0eURvY3VtZW50OyB9IFwKICAgIGJvb2wgc2hvdWxkUHJpbnRCYWNrZ3Jv
dW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kczsgfSBcCiAgICB2
b2lkIHNldFNob3VsZFByaW50QmFja2dyb3VuZHMoYm9vbCBzaG91bGRQcmludEJhY2tncm91bmRz
KSB7IG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyA9IHNob3VsZFByaW50QmFja2dyb3VuZHM7IH0g
XAogICAgYm9vbCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb247IH0gXAogICAgdm9pZCBzZXRTaG91bGRS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbihib29sIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
KSB7IG1fc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gPSBzaG91bGRSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbjsgfSBcCiAgICBib29sIHNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0KCkg
Y29uc3QgeyByZXR1cm4gbV9zaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dDsgfSBcCiAgICB2
b2lkIHNldFNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0KGJvb2wgc2hvd3NUb29sVGlwT3Zl
clRydW5jYXRlZFRleHQpIHsgbV9zaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCA9IHNob3dz
VG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0OyB9IFwKICAgIGJvb2wgc2hvd3NVUkxzSW5Ub29sVGlw
cygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd3NVUkxzSW5Ub29sVGlwczsgfSBcCiAgICB2b2lkIHNl
dFNob3dzVVJMc0luVG9vbFRpcHMoYm9vbCBzaG93c1VSTHNJblRvb2xUaXBzKSB7IG1fc2hvd3NV
UkxzSW5Ub29sVGlwcyA9IHNob3dzVVJMc0luVG9vbFRpcHM7IH0gXAogICAgYm9vbCBzaHJpbmtz
U3RhbmRhbG9uZUltYWdlc1RvRml0KCkgY29uc3QgeyByZXR1cm4gbV9zaHJpbmtzU3RhbmRhbG9u
ZUltYWdlc1RvRml0OyB9IFwKICAgIHZvaWQgc2V0U2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0Zp
dChib29sIHNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQpIHsgbV9zaHJpbmtzU3RhbmRhbG9u
ZUltYWdlc1RvRml0ID0gc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdDsgfSBcCiAgICBib29s
IHN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c011bHRp
cGxlV2luZG93czsgfSBcCiAgICB2b2lkIHNldFN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKGJvb2wg
c3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MpIHsgbV9zdXBwb3J0c011bHRpcGxlV2luZG93cyA9IHN1
cHBvcnRzTXVsdGlwbGVXaW5kb3dzOyB9IFwKICAgIGJvb2wgc3VwcHJlc3Nlc0luY3JlbWVudGFs
UmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJp
bmc7IH0gXAogICAgdm9pZCBzZXRTdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcoYm9vbCBz
dXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcpIHsgbV9zdXBwcmVzc2VzSW5jcmVtZW50YWxS
ZW5kZXJpbmcgPSBzdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmc7IH0gXAogICAgYm9vbCBz
eW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zeW5jWEhSSW5Eb2N1
bWVudHNFbmFibGVkOyB9IFwKICAgIHZvaWQgc2V0U3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZChi
b29sIHN5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQpIHsgbV9zeW5jWEhSSW5Eb2N1bWVudHNFbmFi
bGVkID0gc3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZDsgfSBcCiAgICBjb25zdCBUZXh0RGlyZWN0
aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yJiB0ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lv
bkJlaGF2aW9yKCkgeyByZXR1cm4gbV90ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2
aW9yOyB9IFwKICAgIHZvaWQgc2V0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlv
cihjb25zdCBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yJiB0ZXh0RGlyZWN0
aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKSB7IG1fdGV4dERpcmVjdGlvblN1Ym1lbnVJbmNs
dXNpb25CZWhhdmlvciA9IHRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I7IH0g
XAogICAgYm9vbCB0cmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldCgpIGNvbnN0IHsgcmV0
dXJuIG1fdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQ7IH0gXAogICAgdm9pZCBzZXRU
cmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldChib29sIHRyZWF0c0FueVRleHRDU1NMaW5r
QXNTdHlsZXNoZWV0KSB7IG1fdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQgPSB0cmVh
dHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldDsgfSBcCiAgICBib29sIHVzZVByZUhUTUw1UGFy
c2VyUXVpcmtzKCkgY29uc3QgeyByZXR1cm4gbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrczsgfSBc
CiAgICB2b2lkIHNldFVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKGJvb2wgdXNlUHJlSFRNTDVQYXJz
ZXJRdWlya3MpIHsgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyA9IHVzZVByZUhUTUw1UGFyc2Vy
UXVpcmtzOyB9IFwKICAgIGJvb2wgdXNlc0VuY29kaW5nRGV0ZWN0b3IoKSBjb25zdCB7IHJldHVy
biBtX3VzZXNFbmNvZGluZ0RldGVjdG9yOyB9IFwKICAgIHZvaWQgc2V0VXNlc0VuY29kaW5nRGV0
ZWN0b3IoYm9vbCB1c2VzRW5jb2RpbmdEZXRlY3RvcikgeyBtX3VzZXNFbmNvZGluZ0RldGVjdG9y
ID0gdXNlc0VuY29kaW5nRGV0ZWN0b3I7IH0gXAogICAgaW50IHZhbGlkYXRpb25NZXNzYWdlVGlt
ZXJNYWduaWZpY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV92YWxpZGF0aW9uTWVzc2FnZVRpbWVy
TWFnbmlmaWNhdGlvbjsgfSBcCiAgICB2b2lkIHNldFZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWdu
aWZpY2F0aW9uKGludCB2YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbikgeyBtX3Zh
bGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uID0gdmFsaWRhdGlvbk1lc3NhZ2VUaW1l
ck1hZ25pZmljYXRpb247IH0gXAogICAgYm9vbCB2aXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV92aXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkOyB9IFwKICAgIHZvaWQg
c2V0VmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZChib29sIHZpc3VhbFdvcmRNb3ZlbWVudEVuYWJs
ZWQpIHsgbV92aXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkID0gdmlzdWFsV29yZE1vdmVtZW50RW5h
YmxlZDsgfSBcCiAgICBib29sIHdhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3Io
KSBjb25zdCB7IHJldHVybiBtX3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3I7
IH0gXAogICAgdm9pZCBzZXRXYW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yKGJv
b2wgd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcikgeyBtX3dhbnRzQmFsYW5j
ZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IgPSB3YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGlu
Z0JlaGF2aW9yOyB9IFwKICAgIGJvb2wgd2ViQXVkaW9FbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV93ZWJBdWRpb0VuYWJsZWQ7IH0gXAogICAgdm9pZCBzZXRXZWJBdWRpb0VuYWJsZWQoYm9vbCB3
ZWJBdWRpb0VuYWJsZWQpIHsgbV93ZWJBdWRpb0VuYWJsZWQgPSB3ZWJBdWRpb0VuYWJsZWQ7IH0g
XAogICAgYm9vbCB3ZWJHTEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3dlYkdMRW5hYmxlZDsg
fSBcCiAgICB2b2lkIHNldFdlYkdMRW5hYmxlZChib29sIHdlYkdMRW5hYmxlZCkgeyBtX3dlYkdM
RW5hYmxlZCA9IHdlYkdMRW5hYmxlZDsgfSBcCiAgICBib29sIHdlYkdMRXJyb3JzVG9Db25zb2xl
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkOyB9
IFwKICAgIHZvaWQgc2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGJvb2wgd2ViR0xFcnJv
cnNUb0NvbnNvbGVFbmFibGVkKSB7IG1fd2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkID0gd2Vi
R0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkOyB9IFwKICAgIGJvb2wgd2luZG93Rm9jdXNSZXN0cmlj
dGVkKCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3dGb2N1c1Jlc3RyaWN0ZWQ7IH0gXAogICAgdm9p
ZCBzZXRXaW5kb3dGb2N1c1Jlc3RyaWN0ZWQoYm9vbCB3aW5kb3dGb2N1c1Jlc3RyaWN0ZWQpIHsg
bV93aW5kb3dGb2N1c1Jlc3RyaWN0ZWQgPSB3aW5kb3dGb2N1c1Jlc3RyaWN0ZWQ7IH0gXAogICAg
Ym9vbCB4c3NBdWRpdG9yRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1feHNzQXVkaXRvckVuYWJs
ZWQ7IH0gXAogICAgdm9pZCBzZXRYU1NBdWRpdG9yRW5hYmxlZChib29sIHhzc0F1ZGl0b3JFbmFi
bGVkKSB7IG1feHNzQXVkaXRvckVuYWJsZWQgPSB4c3NBdWRpdG9yRW5hYmxlZDsgfSBcCiAgICBE
QVNIQk9BUkRfU1VQUE9SVF9TRVRUSU5HU19HRVRURVJfQU5EX1NFVFRFUlMgXAogICAgRlVMTFND
UkVFTl9BUElfU0VUVElOR1NfR0VUVEVSX0FORF9TRVRURVJTIFwKICAgIFZJREVPX1RSQUNLX1NF
VFRJTkdTX0dFVFRFUl9BTkRfU0VUVEVSUyBcCiAgICBXRUJfQVJDSElWRV9TRVRUSU5HU19HRVRU
RVJfQU5EX1NFVFRFUlMgXAovLyBFbmQgb2YgU0VUVElOR1NfR0VUVEVSU19BTkRfU0VUVEVSUy4K
CiNkZWZpbmUgU0VUVElOR1NfTUVNQkVSX1ZBUklBQkxFUyBcCiAgICBTdHJpbmcgbV9kZWZhdWx0
VGV4dEVuY29kaW5nTmFtZTsgXAogICAgaW50IG1fZGV2aWNlSGVpZ2h0OyBcCiAgICBpbnQgbV9k
ZXZpY2VXaWR0aDsgXAogICAgRWRpdGFibGVMaW5rQmVoYXZpb3IgbV9lZGl0YWJsZUxpbmtCZWhh
dmlvcjsgXAogICAgRWRpdGluZ0JlaGF2aW9yVHlwZSBtX2VkaXRpbmdCZWhhdmlvclR5cGU7IFwK
ICAgIFN0cmluZyBtX2Z0cERpcmVjdG9yeVRlbXBsYXRlUGF0aDsgXAogICAgZG91YmxlIG1faW5j
cmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHM7IFwKICAgIGludCBt
X2xheW91dEZhbGxiYWNrV2lkdGg7IFwKICAgIFN0cmluZyBtX2xvY2FsU3RvcmFnZURhdGFiYXNl
UGF0aDsgXAogICAgc2l6ZV90IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7IFwKICAgIHVuc2ln
bmVkIG1fbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGg7IFwKICAgIGludCBtX21pbmltdW1B
Y2NlbGVyYXRlZDJkQ2FudmFzU2l6ZTsgXAogICAgZG91YmxlIG1fcGFzc3dvcmRFY2hvRHVyYXRp
b25JblNlY29uZHM7IFwKICAgIHVuc2lnbmVkIG1fc2Vzc2lvblN0b3JhZ2VRdW90YTsgXAogICAg
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBtX3RleHREaXJlY3Rpb25TdWJt
ZW51SW5jbHVzaW9uQmVoYXZpb3I7IFwKICAgIGludCBtX3ZhbGlkYXRpb25NZXNzYWdlVGltZXJN
YWduaWZpY2F0aW9uOyBcCiAgICBEQVNIQk9BUkRfU1VQUE9SVF9TRVRUSU5HU19OT05fQk9PTF9N
RU1CRVJfVkFSSUFCTEVTIFwKICAgIEZVTExTQ1JFRU5fQVBJX1NFVFRJTkdTX05PTl9CT09MX01F
TUJFUl9WQVJJQUJMRVMgXAogICAgVklERU9fVFJBQ0tfU0VUVElOR1NfTk9OX0JPT0xfTUVNQkVS
X1ZBUklBQkxFUyBcCiAgICBXRUJfQVJDSElWRV9TRVRUSU5HU19OT05fQk9PTF9NRU1CRVJfVkFS
SUFCTEVTIFwKICAgIGJvb2wgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCA6IDE7IFwKICAg
IGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yM0RUcmFuc2Zvcm1zRW5hYmxlZCA6IDE7
IFwKICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCA6
IDE7IFwKICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQ2FudmFzRW5hYmxlZCA6
IDE7IFwKICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVu
YWJsZWQgOiAxOyBcCiAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsRW5hYmxlZCA6IDE7IFwKICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
UGx1Z2luc0VuYWJsZWQgOiAxOyBcCiAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zv
clNjcm9sbGFibGVGcmFtZXNFbmFibGVkIDogMTsgXAogICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQgOiAxOyBcCiAgICBib29sIG1fYWNjZWxlcmF0ZWREcmF3
aW5nRW5hYmxlZCA6IDE7IFwKICAgIGJvb2wgbV9hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkIDog
MTsgXAogICAgYm9vbCBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50IDogMTsgXAogICAg
Ym9vbCBtX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyA6IDE7IFwKICAgIGJvb2wgbV9hbGxv
d1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCA6IDE7IFwKICAgIGJvb2wgbV9hbGxvd1NjcmlwdHNU
b0Nsb3NlV2luZG93cyA6IDE7IFwKICAgIGJvb2wgbV9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21G
aWxlVVJMcyA6IDE7IFwKICAgIGJvb2wgbV9hcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRv
ciA6IDE7IFwKICAgIGJvb2wgbV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCA6IDE7
IFwKICAgIGJvb2wgbV9iYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7IFwKICAgIGJv
b2wgbV9jYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nIDogMTsgXAogICAgYm9vbCBtX2NhcmV0
QnJvd3NpbmdFbmFibGVkIDogMTsgXAogICAgYm9vbCBtX2Nvb2tpZUVuYWJsZWQgOiAxOyBcCiAg
ICBib29sIG1fY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQgOiAx
OyBcCiAgICBib29sIG1fY3NzR3JpZExheW91dEVuYWJsZWQgOiAxOyBcCiAgICBib29sIG1fZGVm
ZXJyZWQyZENhbnZhc0VuYWJsZWQgOiAxOyBcCiAgICBib29sIG1fZGV2ZWxvcGVyRXh0cmFzRW5h
YmxlZCA6IDE7IFwKICAgIGJvb2wgbV9kZXZpY2VTdXBwb3J0c01vdXNlIDogMTsgXAogICAgYm9v
bCBtX2RldmljZVN1cHBvcnRzVG91Y2ggOiAxOyBcCiAgICBib29sIG1fZGlhZ25vc3RpY0xvZ2dp
bmdFbmFibGVkIDogMTsgXAogICAgYm9vbCBtX2Rvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxl
ZCA6IDE7IFwKICAgIGJvb2wgbV9lbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZSA6IDE7
IFwKICAgIGJvb2wgbV9leHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZCA6IDE7IFwKICAg
IGJvb2wgbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lIDogMTsgXAogICAgYm9v
bCBtX2ZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0IDogMTsgXAogICAgYm9vbCBt
X2ZvcmNlQ29tcG9zaXRpbmdNb2RlIDogMTsgXAogICAgYm9vbCBtX2ZvcmNlRlRQRGlyZWN0b3J5
TGlzdGluZ3MgOiAxOyBcCiAgICBib29sIG1fZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCA6IDE7IFwK
ICAgIGJvb2wgbV9oeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQgOiAxOyBcCiAgICBib29sIG1faW50
ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQgOiAxOyBcCiAgICBib29sIG1famF2YVNjcmlw
dENhbkFjY2Vzc0NsaXBib2FyZCA6IDE7IFwKICAgIGJvb2wgbV9qYXZhU2NyaXB0Q2FuT3Blbldp
bmRvd3NBdXRvbWF0aWNhbGx5IDogMTsgXAogICAgYm9vbCBtX2phdmFTY3JpcHRFeHBlcmltZW50
c0VuYWJsZWQgOiAxOyBcCiAgICBib29sIG1fbG9hZERlZmVycmluZ0VuYWJsZWQgOiAxOyBcCiAg
ICBib29sIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcgOiAxOyBc
CiAgICBib29sIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCA6IDE7IFwKICAgIGJv
b2wgbV9sb2NhbFN0b3JhZ2VFbmFibGVkIDogMTsgXAogICAgYm9vbCBtX21lZGlhUGxheWJhY2tB
bGxvd3NJbmxpbmUgOiAxOyBcCiAgICBib29sIG1fbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdl
c3R1cmUgOiAxOyBcCiAgICBib29sIG1fbWVtb3J5SW5mb0VuYWJsZWQgOiAxOyBcCiAgICBib29s
IG1fbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyayA6IDE7IFwKICAgIGJvb2wgbV9uZWVkc0lz
TG9hZGluZ0luQVBJU2Vuc2VRdWlyayA6IDE7IFwKICAgIGJvb2wgbV9uZWVkc0tleWJvYXJkRXZl
bnREaXNhbWJpZ3VhdGlvblF1aXJrcyA6IDE7IFwKICAgIGJvb2wgbV9uZWVkc0xlb3BhcmRNYWls
UXVpcmtzIDogMTsgXAogICAgYm9vbCBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIDogMTsgXAog
ICAgYm9vbCBtX25vdGlmaWNhdGlvbnNFbmFibGVkIDogMTsgXAogICAgYm9vbCBtX29mZmxpbmVX
ZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCA6IDE7IFwKICAgIGJvb2wgbV9vcGVuR0xNdWx0aXNh
bXBsaW5nRW5hYmxlZCA6IDE7IFwKICAgIGJvb2wgbV9wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMg
OiAxOyBcCiAgICBib29sIG1fcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkIDogMTsgXAogICAg
Ym9vbCBtX3Bhc3N3b3JkRWNob0VuYWJsZWQgOiAxOyBcCiAgICBib29sIG1fcGx1Z0luU25hcHNo
b3R0aW5nRW5hYmxlZCA6IDE7IFwKICAgIGJvb2wgbV9wcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25z
RW5hYmxlZCA6IDE7IFwKICAgIGJvb2wgbV9xdWFudGl6ZWRNZW1vcnlJbmZvRW5hYmxlZCA6IDE7
IFwKICAgIGJvb2wgbV9yZWdpb25CYXNlZENvbHVtbnNFbmFibGVkIDogMTsgXAogICAgYm9vbCBt
X3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQgOiAxOyBcCiAgICBib29sIG1fc2Nyb2xsaW5n
Q29vcmRpbmF0b3JFbmFibGVkIDogMTsgXAogICAgYm9vbCBtX3Nob3VsZEluamVjdFVzZXJTY3Jp
cHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudCA6IDE7IFwKICAgIGJvb2wgbV9zaG91bGRQcmludEJh
Y2tncm91bmRzIDogMTsgXAogICAgYm9vbCBtX3Nob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
IDogMTsgXAogICAgYm9vbCBtX3Nob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0IDogMTsgXAog
ICAgYm9vbCBtX3Nob3dzVVJMc0luVG9vbFRpcHMgOiAxOyBcCiAgICBib29sIG1fc2hyaW5rc1N0
YW5kYWxvbmVJbWFnZXNUb0ZpdCA6IDE7IFwKICAgIGJvb2wgbV9zdXBwb3J0c011bHRpcGxlV2lu
ZG93cyA6IDE7IFwKICAgIGJvb2wgbV9zdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcgOiAx
OyBcCiAgICBib29sIG1fc3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZCA6IDE7IFwKICAgIGJvb2wg
bV90cmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldCA6IDE7IFwKICAgIGJvb2wgbV91c2VQ
cmVIVE1MNVBhcnNlclF1aXJrcyA6IDE7IFwKICAgIGJvb2wgbV91c2VzRW5jb2RpbmdEZXRlY3Rv
ciA6IDE7IFwKICAgIGJvb2wgbV92aXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkIDogMTsgXAogICAg
Ym9vbCBtX3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IgOiAxOyBcCiAgICBi
b29sIG1fd2ViQXVkaW9FbmFibGVkIDogMTsgXAogICAgYm9vbCBtX3dlYkdMRW5hYmxlZCA6IDE7
IFwKICAgIGJvb2wgbV93ZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQgOiAxOyBcCiAgICBib29s
IG1fd2luZG93Rm9jdXNSZXN0cmljdGVkIDogMTsgXAogICAgYm9vbCBtX3hzc0F1ZGl0b3JFbmFi
bGVkIDogMTsgXAogICAgREFTSEJPQVJEX1NVUFBPUlRfU0VUVElOR1NfQk9PTF9NRU1CRVJfVkFS
SUFCTEVTIFwKICAgIEZVTExTQ1JFRU5fQVBJX1NFVFRJTkdTX0JPT0xfTUVNQkVSX1ZBUklBQkxF
UyBcCiAgICBWSURFT19UUkFDS19TRVRUSU5HU19CT09MX01FTUJFUl9WQVJJQUJMRVMgXAogICAg
V0VCX0FSQ0hJVkVfU0VUVElOR1NfQk9PTF9NRU1CRVJfVkFSSUFCTEVTIFwKLy8gRW5kIG9mIFNF
VFRJTkdTX01FTUJFUl9WQVJJQUJMRVMuCgojZGVmaW5lIFNFVFRJTkdTX0lOSVRJQUxJWkVSX0xJ
U1QgXAogICAgLCBtX2RldmljZUhlaWdodCgwKSBcCiAgICAsIG1fZGV2aWNlV2lkdGgoMCkgXAog
ICAgLCBtX2VkaXRhYmxlTGlua0JlaGF2aW9yKEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcikg
XAogICAgLCBtX2VkaXRpbmdCZWhhdmlvclR5cGUoZWRpdGluZ0JlaGF2aW9yVHlwZUZvclBsYXRm
b3JtKCkpIFwKICAgICwgbV9pbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dElu
U2Vjb25kcyhkZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNl
Y29uZHMpIFwKICAgICwgbV9sYXlvdXRGYWxsYmFja1dpZHRoKDk4MCkgXAogICAgLCBtX21heGlt
dW1EZWNvZGVkSW1hZ2VTaXplKG51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKSBcCiAgICAs
IG1fbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgoZGVmYXVsdE1heGltdW1IVE1MUGFyc2Vy
RE9NVHJlZURlcHRoKSBcCiAgICAsIG1fbWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplKDI1
NyoyNTYpIFwKICAgICwgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcygxKSBcCiAgICAs
IG1fc2Vzc2lvblN0b3JhZ2VRdW90YShTdG9yYWdlTWFwOjpub1F1b3RhKSBcCiAgICAsIG1fdGV4
dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcihUZXh0RGlyZWN0aW9uU3VibWVudUF1
dG9tYXRpY2FsbHlJbmNsdWRlZCkgXAogICAgLCBtX3ZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWdu
aWZpY2F0aW9uKDUwKSBcCiAgICBEQVNIQk9BUkRfU1VQUE9SVF9TRVRUSU5HU19OT05fQk9PTF9J
TklUSUFMSVpFUlMgXAogICAgRlVMTFNDUkVFTl9BUElfU0VUVElOR1NfTk9OX0JPT0xfSU5JVElB
TElaRVJTIFwKICAgIFZJREVPX1RSQUNLX1NFVFRJTkdTX05PTl9CT09MX0lOSVRJQUxJWkVSUyBc
CiAgICBXRUJfQVJDSElWRV9TRVRUSU5HU19OT05fQk9PTF9JTklUSUFMSVpFUlMgXAogICAgLCBt
X2FjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGZhbHNlKSBcCiAgICAsIG1fYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJsZWQodHJ1ZSkgXAogICAgLCBtX2FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdGb3JBbmltYXRpb25FbmFibGVkKHRydWUpIFwKICAgICwgbV9hY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yQ2FudmFzRW5hYmxlZCh0cnVlKSBcCiAgICAsIG1fYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKGZhbHNlKSBcCiAgICAsIG1fYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZChmYWxzZSkgXAogICAg
LCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JQbHVnaW5zRW5hYmxlZCh0cnVlKSBcCiAgICAs
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKGZhbHNl
KSBcCiAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZCh0cnVlKSBc
CiAgICAsIG1fYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChmYWxzZSkgXAogICAgLCBtX2FjY2Vs
ZXJhdGVkRmlsdGVyc0VuYWJsZWQoZmFsc2UpIFwKICAgICwgbV9hbGxvd0Rpc3BsYXlPZkluc2Vj
dXJlQ29udGVudCh0cnVlKSBcCiAgICAsIG1fYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKHRy
dWUpIFwKICAgICwgbV9hbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCh0cnVlKSBcCiAgICAs
IG1fYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MoZmFsc2UpIFwKICAgICwgbV9hbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVlKSBcCiAgICAsIG1fYXBwbHlQYWdlU2NhbGVGYWN0
b3JJbkNvbXBvc2l0b3IoZmFsc2UpIFwKICAgICwgbV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZChmYWxzZSkgXAogICAgLCBtX2JhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVkKHRy
dWUpIFwKICAgICwgbV9jYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nKGZhbHNlKSBcCiAgICAs
IG1fY2FyZXRCcm93c2luZ0VuYWJsZWQoZmFsc2UpIFwKICAgICwgbV9jb29raWVFbmFibGVkKHRy
dWUpIFwKICAgICwgbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNhYmxl
ZChmYWxzZSkgXAogICAgLCBtX2Nzc0dyaWRMYXlvdXRFbmFibGVkKGZhbHNlKSBcCiAgICAsIG1f
ZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoZmFsc2UpIFwKICAgICwgbV9kZXZlbG9wZXJFeHRyYXNF
bmFibGVkKGZhbHNlKSBcCiAgICAsIG1fZGV2aWNlU3VwcG9ydHNNb3VzZSh0cnVlKSBcCiAgICAs
IG1fZGV2aWNlU3VwcG9ydHNUb3VjaChmYWxzZSkgXAogICAgLCBtX2RpYWdub3N0aWNMb2dnaW5n
RW5hYmxlZChmYWxzZSkgXAogICAgLCBtX2Rvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCh0
cnVlKSBcCiAgICAsIG1fZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUodHJ1ZSkgXAog
ICAgLCBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKGZhbHNlKSBcCiAgICAsIG1f
Zml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShmYWxzZSkgXAogICAgLCBtX2ZpeGVk
UG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0KGZhbHNlKSBcCiAgICAsIG1fZm9yY2VDb21w
b3NpdGluZ01vZGUoZmFsc2UpIFwKICAgICwgbV9mb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzKGZh
bHNlKSBcCiAgICAsIG1fZnJhbWVGbGF0dGVuaW5nRW5hYmxlZChmYWxzZSkgXAogICAgLCBtX2h5
cGVybGlua0F1ZGl0aW5nRW5hYmxlZChmYWxzZSkgXAogICAgLCBtX2ludGVyYWN0aXZlRm9ybVZh
bGlkYXRpb25FbmFibGVkKGZhbHNlKSBcCiAgICAsIG1famF2YVNjcmlwdENhbkFjY2Vzc0NsaXBi
b2FyZChmYWxzZSkgXAogICAgLCBtX2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2Fs
bHkoZmFsc2UpIFwKICAgICwgbV9qYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKGZhbHNlKSBc
CiAgICAsIG1fbG9hZERlZmVycmluZ0VuYWJsZWQodHJ1ZSkgXAogICAgLCBtX2xvYWRzU2l0ZUlj
b25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGZhbHNlKSBcCiAgICAsIG1fbG9jYWxGaWxl
Q29udGVudFNuaWZmaW5nRW5hYmxlZChmYWxzZSkgXAogICAgLCBtX2xvY2FsU3RvcmFnZUVuYWJs
ZWQoZmFsc2UpIFwKICAgICwgbV9tZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lKHRydWUpIFwKICAg
ICwgbV9tZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShmYWxzZSkgXAogICAgLCBtX21l
bW9yeUluZm9FbmFibGVkKGZhbHNlKSBcCiAgICAsIG1fbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJR
dWlyayhmYWxzZSkgXAogICAgLCBtX25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrKGZhbHNl
KSBcCiAgICAsIG1fbmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MoZmFsc2Up
IFwKICAgICwgbV9uZWVkc0xlb3BhcmRNYWlsUXVpcmtzKGZhbHNlKSBcCiAgICAsIG1fbmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MoZmFsc2UpIFwKICAgICwgbV9ub3RpZmljYXRpb25zRW5hYmxlZCh0
cnVlKSBcCiAgICAsIG1fb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKGZhbHNlKSBc
CiAgICAsIG1fb3BlbkdMTXVsdGlzYW1wbGluZ0VuYWJsZWQodHJ1ZSkgXAogICAgLCBtX3BhZ2VD
YWNoZVN1cHBvcnRzUGx1Z2lucyhmYWxzZSkgXAogICAgLCBtX3BhZ2luYXRlRHVyaW5nTGF5b3V0
RW5hYmxlZChmYWxzZSkgXAogICAgLCBtX3Bhc3N3b3JkRWNob0VuYWJsZWQoZmFsc2UpIFwKICAg
ICwgbV9wbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkKGZhbHNlKSBcCiAgICAsIG1fcHJpdmlsZWdl
ZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQoZmFsc2UpIFwKICAgICwgbV9xdWFudGl6ZWRNZW1vcnlJ
bmZvRW5hYmxlZChmYWxzZSkgXAogICAgLCBtX3JlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQoZmFs
c2UpIFwKICAgICwgbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkKHRydWUpIFwKICAgICwg
bV9zY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQoZmFsc2UpIFwKICAgICwgbV9zaG91bGRJbmpl
Y3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQoZmFsc2UpIFwKICAgICwgbV9zaG91
bGRQcmludEJhY2tncm91bmRzKGZhbHNlKSBcCiAgICAsIG1fc2hvdWxkUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24oZmFsc2UpIFwKICAgICwgbV9zaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dChm
YWxzZSkgXAogICAgLCBtX3Nob3dzVVJMc0luVG9vbFRpcHMoZmFsc2UpIFwKICAgICwgbV9zaHJp
bmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KHRydWUpIFwKICAgICwgbV9zdXBwb3J0c011bHRpcGxl
V2luZG93cyh0cnVlKSBcCiAgICAsIG1fc3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nKGZh
bHNlKSBcCiAgICAsIG1fc3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZCh0cnVlKSBcCiAgICAsIG1f
dHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQoZmFsc2UpIFwKICAgICwgbV91c2VQcmVI
VE1MNVBhcnNlclF1aXJrcyhmYWxzZSkgXAogICAgLCBtX3VzZXNFbmNvZGluZ0RldGVjdG9yKGZh
bHNlKSBcCiAgICAsIG1fdmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZChmYWxzZSkgXAogICAgLCBt
X3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IoZmFsc2UpIFwKICAgICwgbV93
ZWJBdWRpb0VuYWJsZWQoZmFsc2UpIFwKICAgICwgbV93ZWJHTEVuYWJsZWQoZmFsc2UpIFwKICAg
ICwgbV93ZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpIFwKICAgICwgbV93aW5kb3dG
b2N1c1Jlc3RyaWN0ZWQodHJ1ZSkgXAogICAgLCBtX3hzc0F1ZGl0b3JFbmFibGVkKGZhbHNlKSBc
CiAgICBEQVNIQk9BUkRfU1VQUE9SVF9TRVRUSU5HU19CT09MX0lOSVRJQUxJWkVSUyBcCiAgICBG
VUxMU0NSRUVOX0FQSV9TRVRUSU5HU19CT09MX0lOSVRJQUxJWkVSUyBcCiAgICBWSURFT19UUkFD
S19TRVRUSU5HU19CT09MX0lOSVRJQUxJWkVSUyBcCiAgICBXRUJfQVJDSElWRV9TRVRUSU5HU19C
T09MX0lOSVRJQUxJWkVSUyBcCi8vIEVuZCBvZiBTRVRUSU5HU19JTklUSUFMSVpFUl9MSVNULgoK
I2VuZGlmIC8vIFNldHRpbmdzTWFjcm9zX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173668</attachid>
            <date>2012-11-12 10:27:08 -0800</date>
            <delta_ts>2012-11-12 12:26:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100393-20121112102510.patch</filename>
            <type>text/plain</type>
            <size>84137</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg1N2M0MjVhNDhhMDgz
N2JhOTMxNTg3YWIxNDA5YTg5YTMzNjY2NC4uZDA2OTZiNWNhMDU3ZjBlOGYzMmY3ZWU3ZWUwM2U1
YmI2MmZiYmQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTExLTEyICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2VuZXJhdGUgU2V0dGluZ3Mg
ZnJvbSBhIC5pbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBHZW5lcmF0ZSBtb3N0IHNldHRpbmdzIGZyb20gYW4gLmluIGZpbGUgdG8gcmVkdWNl
IGh1bWFuIG1pc3Rha2VzIGFuZAorICAgICAgICB0byBtYWtlIGl0IGVhc2llciB0byBhZGQvcmVt
b3ZlIG5ldyBzZXR0aW5ncy4KKworICAgICAgICBJIG9ubHkgbW92ZWQgc2V0dGluZ3MgdGhhdCBh
cmUgZWFzeSB0byBtb3ZlIGF0IHRoaXMgcG9pbnQuICBUaGVyZSBhcmUgbWFueSBtb3JlIHRoYXQK
KyAgICAgICAgaGF2ZSBzb21lIG1pbm9yIG5hbWluZyBpbmNvbnNpc3RlbmNpZXMgdGhhdCB3ZSBj
YW4gYWxzbyBtb3ZlIHRvIFNldHRpbmdzLmluLCBidXQgSSdsbAorICAgICAgICBkbyB0aGF0IGlu
IGEgZm9sbG93IHVwIHBhdGNoLgorCisgICAgICAgIFRoaXMgZG9lc24ndCBnZW5lcmF0ZSBTZXR0
aW5nSW50ZXJuYWxzLiogeWV0LS0gd2UgY2FuIGRvIHRoYXQgaW4gYSBmb2xsb3cgdXAgcGF0Y2gu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGEgcmVmYWN0b3IuCisKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5tYWtlOiBSdW4gbWFrZV9zZXR0aW5ncy5wbC4KKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5wcmk6IFJ1biBtYWtlX3NldHRpbmdzLnBsLgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOiBSdW4gbWFrZV9zZXR0aW5ncy5wbC4KKyAgICAgICAgKiBXZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cDogUnVuIGFjdGlvbl9tYWtlbmFtZXMucHksIHdoaWNoIHdpbGwgcnVuIG1ha2Vf
c2V0dGluZ3MucGwuCisgICAgICAgICogV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5h
bWVzLnB5OgorICAgICAgICAobWFpbik6IEFsbG93IG1ha2Vfc2V0dGluZ3MucGwuCisgICAgICAg
ICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0
aW9uTWVzc2FnZTo6c2V0TWVzc2FnZURPTUFuZFN0YXJ0VGltZXIpOiBGaXggYSB0eXBvIGluICJt
YWduaWZpY2F0aW9uIi4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6IFJlcGxhY2UgZ2VuZXJhdGVkIHNldHRpbmdzIHdp
dGggU0VUVElOR1NfSU5JVElBTElaRVJfTElTVC4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6
CisgICAgICAgIChTZXR0aW5ncyk6IFJlcGxhY2UgZ2VuZXJhdGVkIHNldHRpbmdzIHdpdGggU0VU
VElOR1NfR0VUVEVSU19BTkRfU0VUVEVSUyBhbmQgU0VUVElOR1NfTUVNQkVSX1ZBUklBQkxFUy4K
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL21ha2Vf
c2V0dGluZ3MucGw6IEFkZGVkLgorICAgICAgICAoZGVmYXVsdEl0ZW1GYWN0b3J5KToKKyAgICAg
ICAgKGdlbmVyYXRlQ29kZSk6CisgICAgICAgIChnZW5lcmF0ZUhlYWRlcik6IFVzZSBhIHNpbWls
YXIgbW9kZWwgYXMgbWFrZV9uYW1lcy5wbC4KKyAgICAgICAgKHByaW50Q29uZGl0aW9uYWxNYWNy
b3MpOgorICAgICAgICAocHJpbnRHZXR0ZXJzQW5kU2V0dGVycyk6CisgICAgICAgIChwcmludE1l
bWJlclZhcmlhYmxlcyk6CisgICAgICAgIChwcmludEdldHRlckFuZFNldHRlcik6CisgICAgICAg
IChwcmludEluaXRpYWxpemVyTGlzdCk6CisgICAgICAgIChwcmludEluaXRpYWxpemVyKToKKwog
MjAxMi0xMS0xMiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW1Y4XVtKU0NdIFNjcmlwdFByb2ZpbGVOb2RlOjpjYWxsVUlEIG5lZWRzIG5vdCB0byBiZSBb
Q3VzdG9tXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwN2NhYWU0NWQwM2M5NmFkNzIxODRiMmI2
ZmIzMGNlNmIyOTY3Y2NlLi43OTkzNjcxN2M4NjU5MjI1OWRmOTg5MzljMTEzNTk1NjJlM2Q3ZDhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjg5NCw2ICsyODk0LDkgQEAgR0VORVJBVEVfRVhD
RVBUSU9OX0NPREVfREVTQ1JJUFRJT04oJHtXRUJDT1JFX0RJUn0vZG9tL0RPTUV4Y2VwdGlvbnMu
aW4gRXhjZXB0aW8KIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0vRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uLmNwcCkKIAogCitHRU5FUkFU
RV9TRVRUSU5HU19NQUNST1MoJHtXRUJDT1JFX0RJUn0vcGFnZS9TZXR0aW5ncy5pbiBTZXR0aW5n
c01hY3Jvcy5oKQorCisKIEdFTkVSQVRFX0ZPTlRfTkFNRVMoJHtXRUJDT1JFX0RJUn0vY3NzL1dl
YktpdEZvbnRGYW1pbHlOYW1lcy5pbikKIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RF
UklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vV2ViS2l0Rm9udEZhbWlseU5hbWVzLmNwcCkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNGM2NGM4OTUxYmFkNmNiNzA0YzUwZWZl
YjAzOWIwODUyMzg1YTA4NC4uZmRmMGUxZTg2Y2NlNWZlNWY1YmYwMTM3NWJkZjk2MDNmMmM1MTNj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC05MjUsNiArOTI1LDEzIEBAIE1h
dGhNTEVsZW1lbnRGYWN0b3J5LmNwcCBNYXRoTUxOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5w
bCBtYXRobWwvbWF0aHRhZ3MuaW4KIAogIyAtLS0tLS0tLQogCithbGwgOiBTZXR0aW5nc01hY3Jv
cy5oCisKK1NldHRpbmdzTWFjcm9zLmggOiBwYWdlL21ha2Vfc2V0dGluZ3MucGwgcGFnZS9TZXR0
aW5ncy5pbgorCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0taW5wdXQg
JChXZWJDb3JlKS9wYWdlL1NldHRpbmdzLmluCisKKyMgLS0tLS0tLS0KKwogIyBDb21tb24gZ2Vu
ZXJhdG9yIHRoaW5ncwogCiBHRU5FUkFURV9TQ1JJUFRTID0gXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMucHJpCmluZGV4IDk5MjRlODVkNzFiZjg4YzQ0ZWE3NDdjN2YyOWUzYjhjNTQ0MjgwMzUuLjQw
ZWEzOGVjM2U1YjQ0ZDRkNWY3NTNlMmJkZWZmNGM5Y2M1YjJlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5wcmkKQEAgLTQ3LDYgKzQ3LDggQEAgRVZFTlRfVEFSR0VUX0ZBQ1RPUlkgPSAkJFBX
RC9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCiAKIERPTV9FWENFUFRJT05TID0gJCRQV0QvZG9t
L0RPTUV4Y2VwdGlvbnMuaW4KIAorU0VUVElOR1NfTUFDUk9TID0gJCRQV0QvcGFnZS9TZXR0aW5n
cy5pbgorCiBDT0xPUkRBVEFfR1BFUkYgPSAkJFBXRC9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYK
IAogV0FMRE9DU1NQUk9QUyA9ICQkUFdEL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC04NjQs
NiArODY2LDE0IEBAIGV4Y2VwdGlvbmNvZGVkZXNjcmlwdGlvbi5jb21tYW5kcyA9IHBlcmwgLUkk
JFBXRC9iaW5kaW5ncy9zY3JpcHRzICQkZXhjZXB0aW9uY29kCiBleGNlcHRpb25jb2RlZGVzY3Jp
cHRpb24uZGVwZW5kcyA9ICQkUFdEL2RvbS9tYWtlX2RvbV9leGNlcHRpb25zLnBsICQkRE9NX0VY
Q0VQVElPTlMKIEdFTkVSQVRPUlMgKz0gZXhjZXB0aW9uY29kZWRlc2NyaXB0aW9uCiAKKyMgR0VO
RVJBVE9SIDUtSDoKK3NldHRpbmdzbWFjcm9zLm91dHB1dCA9IFNldHRpbmdzTWFjcm9zLmgKK3Nl
dHRpbmdzbWFjcm9zLmlucHV0ID0gU0VUVElOR1NfTUFDUk9TCitzZXR0aW5nc21hY3Jvcy5zY3Jp
cHQgPSAkJFBXRC9wYWdlL21ha2Vfc2V0dGluZ3MucGwKK3NldHRpbmdzbWFjcm9zLmNvbW1hbmRz
ID0gcGVybCAtSSQkUFdEL2JpbmRpbmdzL3NjcmlwdHMgJCRzZXR0aW5nc21hY3Jvcy5zY3JpcHQg
LS1pbnB1dCAkJFNFVFRJTkdTX01BQ1JPUyAtLW91dHB1dERpciAke1FNQUtFX0ZVTkNfRklMRV9P
VVRfUEFUSH0KK3NldHRpbmdzbWFjcm9zLmRlcGVuZHMgPSAkJFBXRC9wYWdlL21ha2Vfc2V0dGlu
Z3MucGwgJCRTRVRUSU5HU19NQUNST1MKK0dFTkVSQVRPUlMgKz0gc2V0dGluZ3NtYWNyb3MKKwog
IyBHRU5FUkFUT1IgOC1BOgogZW50aXRpZXMub3V0cHV0ID0gSFRNTEVudGl0eVRhYmxlLmNwcAog
ZW50aXRpZXMuaW5wdXQgPSBIVE1MX0VOVElUSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDAz
OTdlMzJkYWI1YTA0ZjIyZWFjN2NkY2Y1NGZiYjBkOTc0YTM3ZjcuLmI4NDljNWNkNTNhMGZkYWEx
YjdhNGNkYTg2MmU1MzZkYmJiZjcyMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC01MDMsNiAr
NTAzLDkgQEAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FdmVudFRhcmdldEhlYWRlcnMuaCBEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0V2ZW50VGFyZ2V0SW4KIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uLmNwcCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0V4Y2Vw
dGlvbkNvZGVEZXNjcmlwdGlvbi5oIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXhjZXB0aW9uSGVh
ZGVycy5oIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXhjZXB0aW9uSW50ZXJmYWNlcy5oOiAkKFdl
YkNvcmUpL2RvbS9tYWtlX2RvbV9leGNlcHRpb25zLnBsICQoV2ViQ29yZSkvZG9tL0RPTUV4Y2Vw
dGlvbnMuaW4KIAkkKEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3Njcmlw
dHMgJDwgLS1pbnB1dCAkKFdlYkNvcmUpL2RvbS9ET01FeGNlcHRpb25zLmluIC0tb3V0cHV0RGly
ICIkKEdFTlNPVVJDRVNfV0VCQ09SRSkiCiAKK0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU2V0dGlu
Z3NNYWNyb3MuaDogJChXZWJDb3JlKS9wYWdlL21ha2Vfc2V0dGluZ3MucGwgJChXZWJDb3JlKS9w
YWdlL1NldHRpbmdzLmluCisJJChBTV9WX0dFTikkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5n
cy9zY3JpcHRzICQ8IC0taW5wdXQgJChXZWJDb3JlKS9wYWdlL1NldHRpbmdzLmluIC0tb3V0cHV0
RGlyICIkKEdFTlNPVVJDRVNfV0VCQ09SRSkiCisKICMgQWxsIFdlYiBJbnNwZWN0b3IgZ2VuZXJh
dGVkIGZpbGVzIGFyZSBjcmVhdGVkIHdpdGggdGhpcyBvbmUgY2FsbCB0byBDb2RlR2VuZXJhdG9y
SW5zcGVjdG9yLnB5CiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0luc3BlY3RvclByb3RvY29sVmVy
c2lvbi5oIDogJChXZWJDb3JlKS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gJChXZWJDb3JlKS9p
bnNwZWN0b3IvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLXZlcnNpb24KIAkkKEFNX1ZfR0VO
KSQoUFlUSE9OKSAkKFdlYkNvcmUpL2luc3BlY3Rvci9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9j
b2wtdmVyc2lvbiAtbyAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvSW5zcGVjdG9yUHJvdG9jb2xWZXJz
aW9uLmggJChXZWJDb3JlKS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTgwNiw2ICs4MDks
OCBAQCBFWFRSQV9ESVNUICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwg
XAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRoYXR0cnMuaW4gXAogCVNvdXJjZS9XZWJDb3Jl
L21hdGhtbC9tYXRodGFncy5pbiBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9tYWtlX3NldHRpbmdz
LnBsIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvbWFjL21ha2UtY2hhcnNldC10YWJsZS5wbCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL3N2Z2F0
dHJzLmluIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDkzMDBjY2M2M2YyMDY5
YmVkOTM2NzcxYWU4Nzg1YjFhNWVlYWFjYjguLmM1NGU3MDJjMGU4NmI4NzM2N2JkNGY3Y2UyYTkw
ODc1NTIxMzZlZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTE0Nyw2ICsx
MTQ3LDcgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL01hdGhNTEVsZW1lbnRGYWN0b3J5LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0
aE1MTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL01hdGhNTE5hbWVzLmggXAor
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU2V0dGluZ3NNYWNyb3MuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9TVkdFbGVtZW50RmFjdG9yeS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvU1ZHTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1VzZXJBZ2VudEd0ay5o
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggMGRmZDI3NzA5OTFj
NTgxMDBmOTQ4NjNiOTQ1MDg1ODZiZWI0MjdlMS4uOWJkNDgxNjA4ZWU2NTkxYzFhMmUzMmQwNTFm
OTE4MTM1YjE2MWM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXAKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAg
LTg3OCw2ICs4NzgsMjMgQEAKICAgICAgICAgICBdLAogICAgICAgICB9LAogICAgICAgICB7Cisg
ICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ1NldHRpbmdzJywKKyAgICAgICAgICAnaW5wdXRzJzog
WworICAgICAgICAgICAgJy4uL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbCcsCisgICAgICAgICAgICAn
Li4vcGFnZS9TZXR0aW5ncy5pbicsCisgICAgICAgICAgXSwKKyAgICAgICAgICAnb3V0cHV0cyc6
IFsKKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvU2V0dGlu
Z3NNYWNyb3MuaCcsCisgICAgICAgICAgXSwKKyAgICAgICAgICAnYWN0aW9uJzogWworICAgICAg
ICAgICAgJ3B5dGhvbicsCisgICAgICAgICAgICAnc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5
JywKKyAgICAgICAgICAgICc8QChfb3V0cHV0cyknLAorICAgICAgICAgICAgJy0tJywKKyAgICAg
ICAgICAgICc8QChfaW5wdXRzKScsCisgICAgICAgICAgXSwKKyAgICAgICAgfSwKKyAgICAgICAg
ewogICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdVc2VyQWdlbnRTdHlsZVNoZWV0cycsCiAgICAg
ICAgICAgJ3ZhcmlhYmxlcyc6IHsKICAgICAgICAgICAgICdzY3JpcHRzJzogWwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5
CmluZGV4IDlhZmQ4ZTg4NWU5OTZhYzUwZTY3ZjhlZjQwMjk5MzQxNmQ2YjE0NWMuLmExYTQxMGYx
ZWE1MGMzMTU0MmVhZDUxYmQzYWUwNDZlMWM1ZWMxOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5weQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHkKQEAgLTExNywy
MiArMTE3LDE3IEBAIGRlZiBtYWluKGFyZ3MpOgogICAgICAgICBpbnB1dEFicyA9IG9zLnBhdGgu
YWJzcGF0aChpbnB1dCkKICAgICAgICAgaW5wdXRBYnNQb3NpeCA9IGlucHV0QWJzLnJlcGxhY2Uo
b3MucGF0aC5zZXAsIHBvc2l4cGF0aC5zZXApCiAgICAgICAgIGlucHV0QmFzZW5hbWUgPSBvcy5w
YXRoLmJhc2VuYW1lKGlucHV0KQotICAgICAgICBpZiBpbnB1dEJhc2VuYW1lID09ICdtYWtlX25h
bWVzLnBsJyBcCi0gICAgICAgICAgICBvciBpbnB1dEJhc2VuYW1lID09ICdtYWtlX2V2ZW50X2Zh
Y3RvcnkucGwnIFwKLSAgICAgICAgICAgIG9yIGlucHV0QmFzZW5hbWUgPT0gJ21ha2VfZG9tX2V4
Y2VwdGlvbnMucGwnOgorICAgICAgICBpZiBpbnB1dEJhc2VuYW1lIGluICgnbWFrZV9uYW1lcy5w
bCcsICdtYWtlX2V2ZW50X2ZhY3RvcnkucGwnLCAnbWFrZV9kb21fZXhjZXB0aW9ucy5wbCcsICdt
YWtlX3NldHRpbmdzLnBsJyk6CiAgICAgICAgICAgICBhc3NlcnQgbWFrZU5hbWVzSW5wdXQgPT0g
Tm9uZQogICAgICAgICAgICAgbWFrZU5hbWVzSW5wdXQgPSBpbnB1dEFicwotICAgICAgICBlbGlm
IGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ1RhZ05hbWVzLmluJykgXAotICAgICAgICAgICAgIG9y
IGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ3RhZ3MuaW4nKToKKyAgICAgICAgZWxpZiBpbnB1dEJh
c2VuYW1lLmVuZHN3aXRoKCdUYWdOYW1lcy5pbicpIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgo
J3RhZ3MuaW4nKToKICAgICAgICAgICAgIGFzc2VydCB0YWdJbnB1dCA9PSBOb25lCiAgICAgICAg
ICAgICB0YWdJbnB1dCA9IGlucHV0QWJzUG9zaXgKLSAgICAgICAgZWxpZiBpbnB1dEJhc2VuYW1l
LmVuZHN3aXRoKCdBdHRyaWJ1dGVOYW1lcy5pbicpIFwKLSAgICAgICAgICAgICBvciBpbnB1dEJh
c2VuYW1lLmVuZHN3aXRoKCdhdHRycy5pbicpOgorICAgICAgICBlbGlmIGlucHV0QmFzZW5hbWUu
ZW5kc3dpdGgoJ0F0dHJpYnV0ZU5hbWVzLmluJykgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgn
YXR0cnMuaW4nKToKICAgICAgICAgICAgIGFzc2VydCBhdHRySW5wdXQgPT0gTm9uZQogICAgICAg
ICAgICAgYXR0cklucHV0ID0gaW5wdXRBYnNQb3NpeAotICAgICAgICBlbGlmIGlucHV0QmFzZW5h
bWUuZW5kc3dpdGgoJ0V2ZW50VGFyZ2V0RmFjdG9yeS5pbicpIFwKLSAgICAgICAgICAgIG9yIGlu
cHV0QmFzZW5hbWUuZW5kc3dpdGgoJ0V2ZW50TmFtZXMuaW4nKSBcCi0gICAgICAgICAgICBvciBp
bnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdET01FeGNlcHRpb25zLmluJyk6CisgICAgICAgIGVsaWYg
KGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ0V2ZW50VGFyZ2V0RmFjdG9yeS5pbicpIG9yIGlucHV0
QmFzZW5hbWUuZW5kc3dpdGgoJ0V2ZW50TmFtZXMuaW4nKQorICAgICAgICAgICAgb3IgaW5wdXRC
YXNlbmFtZS5lbmRzd2l0aCgnRE9NRXhjZXB0aW9ucy5pbicpIG9yIGlucHV0QmFzZW5hbWUuZW5k
c3dpdGgoJ1NldHRpbmdzLmluJykpOgogICAgICAgICAgICAgZXZlbnRzSW5wdXQgPSBpbnB1dEFi
c1Bvc2l4CiAgICAgICAgIGVsaWYgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgnTmFtZXMuaW4nKToK
ICAgICAgICAgICAgIG9wdGlvbnMuYXBwZW5kKGlucHV0QWJzUG9zaXgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IDYxYTE2NDE4ZmNmMTI3MTEyNjBjNjUz
Nzc1NzlmNjdkMTM2Yjg1YTguLjUzZWM3ZTQzODM1ODBkOGFiZDBiZDhiZGVjOThlMTJkNWNhODJm
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBAIC0xMzks
NyArMTM5LDcgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6c2V0TWVzc2FnZURPTUFuZFN0YXJ0
VGltZXIoVGltZXI8VmFsaWRhdGlvbk1lc3NhZ2U+KikKICAgICAgICAgICAgIG1fbWVzc2FnZUhl
YWRpbmctPnNldElubmVyVGV4dChsaW5lc1tpXSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAg
fQogCi0gICAgaW50IG1hZ25pZmljYXRpb24gPSBkb2MtPnBhZ2UoKSA/IGRvYy0+cGFnZSgpLT5z
ZXR0aW5ncygpLT52YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnaW5pZmljYXRpb24oKSA6IC0xOwor
ICAgIGludCBtYWduaWZpY2F0aW9uID0gZG9jLT5wYWdlKCkgPyBkb2MtPnBhZ2UoKS0+c2V0dGlu
Z3MoKS0+dmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb24oKSA6IC0xOwogICAgIGlm
IChtYWduaWZpY2F0aW9uIDw9IDApCiAgICAgICAgIG1fdGltZXIuY2xlYXIoKTsKICAgICBlbHNl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggY2U3NjY5YTZkN2YwODM4YmZhMGZhNmVk
YWUyMTFkMTMyZWQyYzg0Zi4uZDI0YTFjMDliYjY5MWQ1ZTk0MTQ4NDdkYmZmM2M0ZWQ4ODVlZWIy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTEyOSwyMyArMTI5LDExIEBAIHN0YXRp
YyBjb25zdCBkb3VibGUgZGVmYXVsdEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1l
b3V0SW5TZWNvbmRzID0gNTsKIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgIDog
bV9wYWdlKDApCiAgICAgLCBtX21lZGlhVHlwZU92ZXJyaWRlKCJzY3JlZW4iKQotICAgICwgbV9l
ZGl0YWJsZUxpbmtCZWhhdmlvcihFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3IpCi0gICAgLCBt
X3RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IoVGV4dERpcmVjdGlvblN1Ym1l
bnVBdXRvbWF0aWNhbGx5SW5jbHVkZWQpCi0gICAgLCBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5T
ZWNvbmRzKDEpCiAgICAgLCBtX21pbmltdW1Gb250U2l6ZSgwKQogICAgICwgbV9taW5pbXVtTG9n
aWNhbEZvbnRTaXplKDApCiAgICAgLCBtX2RlZmF1bHRGb250U2l6ZSgwKQogICAgICwgbV9kZWZh
dWx0Rml4ZWRGb250U2l6ZSgwKQogICAgICwgbV9zY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxl
ZCh0cnVlKQotICAgICwgbV92YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbig1MCkK
LSAgICAsIG1fbWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplKDI1NyAqIDI1NikKLSAgICAs
IG1fbGF5b3V0RmFsbGJhY2tXaWR0aCg5ODApCi0gICAgLCBtX21heGltdW1EZWNvZGVkSW1hZ2VT
aXplKG51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKQotICAgICwgbV9kZXZpY2VXaWR0aCgw
KQotICAgICwgbV9kZXZpY2VIZWlnaHQoMCkKLSAgICAsIG1fc2Vzc2lvblN0b3JhZ2VRdW90YShT
dG9yYWdlTWFwOjpub1F1b3RhKQotICAgICwgbV9lZGl0aW5nQmVoYXZpb3JUeXBlKGVkaXRpbmdC
ZWhhdmlvclR5cGVGb3JQbGF0Zm9ybSgpKQotICAgICwgbV9tYXhpbXVtSFRNTFBhcnNlckRPTVRy
ZWVEZXB0aChkZWZhdWx0TWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgpCiAgICAgLCBtX3N0
b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlKQogI2lm
IEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgLCBtX3RleHRBdXRvc2l6aW5nRm9udFNjYWxl
RmFjdG9yKDEpCkBAIC0xNTYsNTggKzE0NCwyNCBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSog
cGFnZSkKICAgICAsIG1fdGV4dEF1dG9zaXppbmdFbmFibGVkKGZhbHNlKQogI2VuZGlmCiAjZW5k
aWYKKyAgICBTRVRUSU5HU19JTklUSUFMSVpFUl9MSVNUCiAgICAgLCBtX2lzU3BhdGlhbE5hdmln
YXRpb25FbmFibGVkKGZhbHNlKQogICAgICwgbV9pc0phdmFFbmFibGVkKGZhbHNlKQogICAgICwg
bV9pc0phdmFFbmFibGVkRm9yTG9jYWxGaWxlcyh0cnVlKQogICAgICwgbV9sb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHkoZmFsc2UpCi0gICAgLCBtX2xvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxv
YWRpbmdTZXR0aW5nKGZhbHNlKQogICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKGZhbHNl
KQotICAgICwgbV9jYXJldEJyb3dzaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fYXJlSW1hZ2Vz
RW5hYmxlZCh0cnVlKQogICAgICwgbV9pc01lZGlhRW5hYmxlZCh0cnVlKQogICAgICwgbV9hcmVQ
bHVnaW5zRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fbG9jYWxTdG9yYWdlRW5hYmxlZChmYWxzZSkK
ICAgICAsIG1faXNTY3JpcHRFbmFibGVkKGZhbHNlKQogICAgICwgbV9pc1dlYlNlY3VyaXR5RW5h
YmxlZCh0cnVlKQotICAgICwgbV9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVl
KQotICAgICwgbV9hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHModHJ1ZSkKLSAgICAsIG1famF2
YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShmYWxzZSkKLSAgICAsIG1fc3VwcG9y
dHNNdWx0aXBsZVdpbmRvd3ModHJ1ZSkKLSAgICAsIG1famF2YVNjcmlwdENhbkFjY2Vzc0NsaXBi
b2FyZChmYWxzZSkKLSAgICAsIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhmYWxzZSkKICAgICAs
IG1fdGV4dEFyZWFzQXJlUmVzaXphYmxlKGZhbHNlKQotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKLSAgICAsIG1fdXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoZmFs
c2UpCi0jZW5kaWYKICAgICAsIG1fbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsoZmFsc2Up
Ci0gICAgLCBtX25lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzKGZhbHNlKQot
ICAgICwgbV90cmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldChmYWxzZSkKLSAgICAsIG1f
bmVlZHNMZW9wYXJkTWFpbFF1aXJrcyhmYWxzZSkKICAgICAsIG1faXNET01QYXN0ZUFsbG93ZWQo
ZmFsc2UpCi0gICAgLCBtX3Nocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQodHJ1ZSkKICAgICAs
IG1fdXNlc1BhZ2VDYWNoZShmYWxzZSkKLSAgICAsIG1fcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5z
KGZhbHNlKQotICAgICwgbV9zaG93c1VSTHNJblRvb2xUaXBzKGZhbHNlKQotICAgICwgbV9zaG93
c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dChmYWxzZSkKLSAgICAsIG1fZm9yY2VGVFBEaXJlY3Rv
cnlMaXN0aW5ncyhmYWxzZSkKLSAgICAsIG1fZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChmYWxzZSkK
LSAgICAsIG1famF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZChmYWxzZSkKICAgICAsIG1fYXV0
aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQodHJ1ZSkKLSAgICAsIG1fbmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MoZmFsc2UpCiAgICAgLCBtX2ZvbnRSZW5kZXJpbmdNb2RlKDApCi0gICAgLCBtX2ZyYW1l
RmxhdHRlbmluZ0VuYWJsZWQoZmFsc2UpCi0jaWYgRU5BQkxFKFdFQl9BUkNISVZFKQotICAgICwg
bV93ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZChmYWxzZSkKLSNlbmRpZgotICAgICwgbV9sb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9pbkFwcGxpY2F0aW9u
Q2hyb21lTW9kZShmYWxzZSkKLSAgICAsIG1fb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFi
bGVkKGZhbHNlKQotICAgICwgbV9lbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZSh0cnVl
KQotICAgICwgbV91c2VzRW5jb2RpbmdEZXRlY3RvcihmYWxzZSkKLSAgICAsIG1fYWxsb3dTY3Jp
cHRzVG9DbG9zZVdpbmRvd3MoZmFsc2UpCi0gICAgLCBtX2NhbnZhc1VzZXNBY2NlbGVyYXRlZERy
YXdpbmcoZmFsc2UpCi0gICAgLCBtX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoZmFsc2UpCi0g
ICAgLCBtX2FjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lzQ1NTQ3Vz
dG9tRmlsdGVyRW5hYmxlZChmYWxzZSkKICNpZiBFTkFCTEUoQ1NTX1NUSUNLWV9QT1NJVElPTikK
ICAgICAsIG1fY3NzU3RpY2t5UG9zaXRpb25FbmFibGVkKHRydWUpCkBAIC0yMTgsOTAgKzE3Miwy
NCBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICNpZiBFTkFCTEUoQ1NTX1ZBUklB
QkxFUykKICAgICAsIG1fY3NzVmFyaWFibGVzRW5hYmxlZChmYWxzZSkKICNlbmRpZgotICAgICwg
bV9yZWdpb25CYXNlZENvbHVtbnNFbmFibGVkKGZhbHNlKQotICAgICwgbV9jc3NHcmlkTGF5b3V0
RW5hYmxlZChmYWxzZSkKLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVhbGx5IGJlIGRpc2Fi
bGVkIGJ5IGRlZmF1bHQgYXMgaXQgbWFrZXMgcGxhdGZvcm1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0
aGUgZmVhdHVyZSBkb3dubG9hZCBmaWxlcwotICAgIC8vIHRoZXkgY2FuJ3QgdXNlIGJ5LiBMZWF2
aW5nIGVuYWJsZWQgZm9yIG5vdyB0byBub3QgY2hhbmdlIGV4aXN0aW5nIGJlaGF2aW9yLgotICAg
ICwgbV9kb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQodHJ1ZSkKLSAgICAsIG1feHNzQXVk
aXRvckVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KHRydWUpCi0gICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9ybXNFbmFi
bGVkKHRydWUpCi0gICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQo
dHJ1ZSkKLSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkKHRy
dWUpCi0gICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkKHRydWUp
Ci0gICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JBbmltYXRpb25FbmFibGVkKHRydWUp
Ci0gICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZChm
YWxzZSkKLSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNF
bmFibGVkKGZhbHNlKQogICAgICwgbV9zaG93RGVidWdCb3JkZXJzKGZhbHNlKQogICAgICwgbV9z
aG93UmVwYWludENvdW50ZXIoZmFsc2UpCi0gICAgLCBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlv
bnNFbmFibGVkKGZhbHNlKQotICAgICwgbV93ZWJHTEVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX3dl
YkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fb3BlbkdMTXVsdGlzYW1w
bGluZ0VuYWJsZWQodHJ1ZSkKLSAgICAsIG1fcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJs
ZWQoZmFsc2UpCi0gICAgLCBtX3dlYkF1ZGlvRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fYWNjZWxl
cmF0ZWRDYW52YXMyZEVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2RlZmVycmVkQ2FudmFzMmRFbmFi
bGVkKGZhbHNlKQotICAgICwgbV9sb2FkRGVmZXJyaW5nRW5hYmxlZCh0cnVlKQogICAgICwgbV90
aWxlZEJhY2tpbmdTdG9yZUVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX3BhZ2luYXRlRHVyaW5nTGF5
b3V0RW5hYmxlZChmYWxzZSkKICAgICAsIG1fZG5zUHJlZmV0Y2hpbmdFbmFibGVkKGZhbHNlKQot
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICAsIG1fZnVsbFNjcmVlbkFQSUVuYWJsZWQo
ZmFsc2UpCi0jZW5kaWYKLSAgICAsIG1fYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
ZmFsc2UpCiAjaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKICAgICAsIG1fdW5pZmllZFRl
eHRDaGVja2VyRW5hYmxlZCh0cnVlKQogI2Vsc2UKICAgICAsIG1fdW5pZmllZFRleHRDaGVja2Vy
RW5hYmxlZChmYWxzZSkKICNlbmRpZgotICAgICwgbV9tZW1vcnlJbmZvRW5hYmxlZChmYWxzZSkK
LSAgICAsIG1fcXVhbnRpemVkTWVtb3J5SW5mb0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2ludGVy
YWN0aXZlRm9ybVZhbGlkYXRpb24oZmFsc2UpCi0gICAgLCBtX3VzZVByZUhUTUw1UGFyc2VyUXVp
cmtzKGZhbHNlKQotICAgICwgbV9oeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoZmFsc2UpCi0gICAg
LCBtX2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkKGZhbHNlKQot
ICAgICwgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZShmYWxzZSkKLSAgICAsIG1fc2hvdWxkSW5qZWN0
VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50KGZhbHNlKQotICAgICwgbV9maXhlZEVs
ZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGZhbHNlKQotICAgICwgbV9hbGxvd0Rpc3BsYXlP
Zkluc2VjdXJlQ29udGVudCh0cnVlKQotICAgICwgbV9hbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29u
dGVudCh0cnVlKQogI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQogICAgICwgbV9zY3JvbGxB
bmltYXRvckVuYWJsZWQodHJ1ZSkKICNlbmRpZgotICAgICwgbV9tZWRpYVBsYXliYWNrUmVxdWly
ZXNVc2VyR2VzdHVyZShmYWxzZSkKLSAgICAsIG1fbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSh0
cnVlKQotICAgICwgbV9wYXNzd29yZEVjaG9FbmFibGVkKGZhbHNlKQotICAgICwgbV9zdXBwcmVz
c2VzSW5jcmVtZW50YWxSZW5kZXJpbmcoZmFsc2UpCi0gICAgLCBtX2JhY2tzcGFjZUtleU5hdmln
YXRpb25FbmFibGVkKHRydWUpCi0gICAgLCBtX3Zpc3VhbFdvcmRNb3ZlbWVudEVuYWJsZWQoZmFs
c2UpCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgICwgbV9zaG91bGREaXNwbGF5U3VidGl0
bGVzKGZhbHNlKQotICAgICwgbV9zaG91bGREaXNwbGF5Q2FwdGlvbnMoZmFsc2UpCi0gICAgLCBt
X3Nob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zKGZhbHNlKQotI2VuZGlmCi0gICAgLCBtX3Nj
cm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fbm90aWZpY2F0aW9uc0Vu
YWJsZWQodHJ1ZSkKLSAgICAsIG1fbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmsoZmFsc2Up
CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICAsIG1fdG91Y2hFdmVudEVtdWxhdGlvbkVu
YWJsZWQoZmFsc2UpCiAjZW5kaWYKLSAgICAsIG1fc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRp
b24oZmFsc2UpCi0gICAgLCBtX3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3Io
ZmFsc2UpCi0gICAgLCBtX3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQodHJ1ZSkKLSAgICAs
IG1fZGV2aWNlU3VwcG9ydHNUb3VjaChmYWxzZSkKLSAgICAsIG1fZGV2aWNlU3VwcG9ydHNNb3Vz
ZSh0cnVlKQotICAgICwgbV9uZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKGZhbHNlKQotICAg
ICwgbV9maXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dChmYWxzZSkKLSAgICAsIG1f
c3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZCh0cnVlKQotICAgICwgbV9jb29raWVFbmFibGVkKHRy
dWUpCi0gICAgLCBtX3dpbmRvd0ZvY3VzUmVzdHJpY3RlZCh0cnVlKQotICAgICwgbV9kaWFnbm9z
dGljTG9nZ2luZ0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9n
Z2luZ0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2FwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3Np
dG9yKGZhbHNlKQotICAgICwgbV9wbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkKGZhbHNlKQogICAg
ICwgbV9zZXRJbWFnZUxvYWRpbmdTZXR0aW5nc1RpbWVyKHRoaXMsICZTZXR0aW5nczo6aW1hZ2VM
b2FkaW5nU2V0dGluZ3NUaW1lckZpcmVkKQotICAgICwgbV9pbmNyZW1lbnRhbFJlbmRlcmluZ1N1
cHByZXNzaW9uVGltZW91dEluU2Vjb25kcyhkZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBw
cmVzc2lvblRpbWVvdXRJblNlY29uZHMpCiB7CiAgICAgLy8gQSBGcmFtZSBtYXkgbm90IGhhdmUg
YmVlbiBjcmVhdGVkIHlldCwgc28gd2UgaW5pdGlhbGl6ZSB0aGUgQXRvbWljU3RyaW5nCiAgICAg
Ly8gaGFzaCBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KQEAgLTUwOCwxMSArMzk2LDYgQEAgdm9p
ZCBTZXR0aW5nczo6aW1hZ2VMb2FkaW5nU2V0dGluZ3NUaW1lckZpcmVkKFRpbWVyPFNldHRpbmdz
PiopCiAgICAgc2V0SW1hZ2VMb2FkaW5nU2V0dGluZ3MobV9wYWdlKTsKIH0KIAotdm9pZCBTZXR0
aW5nczo6c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoYm9vbCBs
b2Fkc1NpdGVJY29ucykKLXsKLSAgICBtX2xvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRp
bmdTZXR0aW5nID0gbG9hZHNTaXRlSWNvbnM7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldFNjcmlw
dEVuYWJsZWQoYm9vbCBpc1NjcmlwdEVuYWJsZWQpCiB7CiAgICAgbV9pc1NjcmlwdEVuYWJsZWQg
PSBpc1NjcmlwdEVuYWJsZWQ7CkBAIC01MjMsMTYgKzQwNiw2IEBAIHZvaWQgU2V0dGluZ3M6OnNl
dFdlYlNlY3VyaXR5RW5hYmxlZChib29sIGlzV2ViU2VjdXJpdHlFbmFibGVkKQogICAgIG1faXNX
ZWJTZWN1cml0eUVuYWJsZWQgPSBpc1dlYlNlY3VyaXR5RW5hYmxlZDsKIH0KIAotdm9pZCBTZXR0
aW5nczo6c2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoYm9vbCBhbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMcykKLXsKLSAgICBtX2FsbG93VW5pdmVyc2FsQWNjZXNzRnJv
bUZpbGVVUkxzID0gYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM7Ci19Ci0KLXZvaWQg
U2V0dGluZ3M6OnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhib29sIGFsbG93RmlsZUFj
Y2Vzc0Zyb21GaWxlVVJMcykKLXsKLSAgICBtX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyA9
IGFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0U3Bh
dGlhbE5hdmlnYXRpb25FbmFibGVkKGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpCiB7
CiAgICAgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA9IGlzU3BhdGlhbE5hdmlnYXRpb25F
bmFibGVkOwpAQCAtNTY2LDE2ICs0MzksNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRQbHVnaW5zRW5h
YmxlZChib29sIGFyZVBsdWdpbnNFbmFibGVkKQogICAgIG1fYXJlUGx1Z2luc0VuYWJsZWQgPSBh
cmVQbHVnaW5zRW5hYmxlZDsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0TG9jYWxTdG9yYWdlRW5h
YmxlZChib29sIGxvY2FsU3RvcmFnZUVuYWJsZWQpCi17Ci0gICAgbV9sb2NhbFN0b3JhZ2VFbmFi
bGVkID0gbG9jYWxTdG9yYWdlRW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0U2Vzc2lv
blN0b3JhZ2VRdW90YSh1bnNpZ25lZCBzZXNzaW9uU3RvcmFnZVF1b3RhKQotewotICAgIG1fc2Vz
c2lvblN0b3JhZ2VRdW90YSA9IHNlc3Npb25TdG9yYWdlUXVvdGE7Ci19Ci0KIHZvaWQgU2V0dGlu
Z3M6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVk
KQogewogICAgIC8vIEZJWE1FIGh0dHA6Ly93ZWJraXQub3JnL2IvNjc4NzA6IFRoZSBwcml2YXRl
IGJyb3dzaW5nIHN0b3JhZ2Ugc2Vzc2lvbiBhbmQgY29va2llIHByaXZhdGUKQEAgLTYwMSwyNiAr
NDY0LDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpCiAgICAgbV9wYWdlLT5wcml2YXRlQnJvd3NpbmdTdGF0ZUNo
YW5nZWQoKTsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dz
QXV0b21hdGljYWxseShib29sIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkp
Ci17Ci0gICAgbV9qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gamF2YVNj
cmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0
U3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MoYm9vbCBzdXBwb3J0c011bHRpcGxlV2luZG93cykKLXsK
LSAgICBtX3N1cHBvcnRzTXVsdGlwbGVXaW5kb3dzID0gc3VwcG9ydHNNdWx0aXBsZVdpbmRvd3M7
Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYm9v
bCBqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKQotewotICAgIG1famF2YVNjcmlwdENhbkFj
Y2Vzc0NsaXBib2FyZCA9IGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQ7Ci19Ci0KLXZvaWQg
U2V0dGluZ3M6OnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFN0cmluZyYgZGVmYXVs
dFRleHRFbmNvZGluZ05hbWUpCi17Ci0gICAgbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZSA9IGRl
ZmF1bHRUZXh0RW5jb2RpbmdOYW1lOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRVc2VyU3R5bGVT
aGVldExvY2F0aW9uKGNvbnN0IEtVUkwmIHVzZXJTdHlsZVNoZWV0TG9jYXRpb24pCiB7CiAgICAg
aWYgKG1fdXNlclN0eWxlU2hlZXRMb2NhdGlvbiA9PSB1c2VyU3R5bGVTaGVldExvY2F0aW9uKQpA
QCAtNjMxLDE2ICs0NzQsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRVc2VyU3R5bGVTaGVldExvY2F0
aW9uKGNvbnN0IEtVUkwmIHVzZXJTdHlsZVNoZWV0TG9jYXRpb24pCiAgICAgbV9wYWdlLT51c2Vy
U3R5bGVTaGVldExvY2F0aW9uQ2hhbmdlZCgpOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRGaXhl
ZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJvb2wgZml4ZWRFbGVtZW50c0xheW91dFJl
bGF0aXZlVG9GcmFtZSkKLXsKLSAgICBtX2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJh
bWUgPSBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lOwotfQotCi12b2lkIFNldHRp
bmdzOjpzZXRTaG91bGRQcmludEJhY2tncm91bmRzKGJvb2wgc2hvdWxkUHJpbnRCYWNrZ3JvdW5k
cykKLXsKLSAgICBtX3Nob3VsZFByaW50QmFja2dyb3VuZHMgPSBzaG91bGRQcmludEJhY2tncm91
bmRzOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoYm9vbCB0
ZXh0QXJlYXNBcmVSZXNpemFibGUpCiB7CiAgICAgaWYgKG1fdGV4dEFyZWFzQXJlUmVzaXphYmxl
ID09IHRleHRBcmVhc0FyZVJlc2l6YWJsZSkKQEAgLTY1MCwyMyArNDgzLDYgQEAgdm9pZCBTZXR0
aW5nczo6c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKGJvb2wgdGV4dEFyZWFzQXJlUmVzaXphYmxl
KQogICAgIG1fcGFnZS0+c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7CiB9CiAKLXZv
aWQgU2V0dGluZ3M6OnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKEVkaXRhYmxlTGlua0JlaGF2aW9y
IGVkaXRhYmxlTGlua0JlaGF2aW9yKQotewotICAgIG1fZWRpdGFibGVMaW5rQmVoYXZpb3IgPSBl
ZGl0YWJsZUxpbmtCZWhhdmlvcjsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0VGV4dERpcmVjdGlv
blN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcihUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJl
aGF2aW9yIGJlaGF2aW9yKQotewotICAgIG1fdGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25C
ZWhhdmlvciA9IGJlaGF2aW9yOwotfQotCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQot
dm9pZCBTZXR0aW5nczo6c2V0VXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUo
Ym9vbCB1c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSkKLXsKLSAgICBtX3Vz
ZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlID0gdXNlc0Rhc2hib2FyZEJhY2t3
YXJkQ29tcGF0aWJpbGl0eU1vZGU7Ci19Ci0jZW5kaWYKLQogLy8gRklYTUU6IFRoaXMgcXVpcmsg
aXMgbmVlZGVkIGJlY2F1c2Ugb2YgUmFkYXIgNDY3NDUzNyBhbmQgNTIxMTI3MS4gV2UgbmVlZCB0
byBwaGFzZSBpdCBvdXQgb25jZSBBZG9iZQogLy8gY2FuIGZpeCB0aGUgYnVnIGZyb20gdGhlaXIg
ZW5kLgogdm9pZCBTZXR0aW5nczo6c2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsoYm9v
bCBzaG91bGROb3RSZWxvYWRJRnJhbWVzRm9yVW5jaGFuZ2VkU1JDKQpAQCAtNjc0LDI0ICs0OTAs
NiBAQCB2b2lkIFNldHRpbmdzOjpzZXROZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayhib29s
IHNob3VsZE5vdFJlbG9hZElGcmFtZXNGb3JVbgogICAgIG1fbmVlZHNBZG9iZUZyYW1lUmVsb2Fk
aW5nUXVpcmsgPSBzaG91bGROb3RSZWxvYWRJRnJhbWVzRm9yVW5jaGFuZ2VkU1JDOwogfQogCi0v
LyBUaGlzIGlzIGEgcXVpcmsgd2UgYXJlIHByby1hY3RpdmVseSBhcHBseWluZyB0byBvbGQgYXBw
bGljYXRpb25zLiBJdCBjaGFuZ2VzIGtleWJvYXJkIGV2ZW50IGRpc3BhdGNoaW5nLAotLy8gbWFr
aW5nIGtleUlkZW50aWZpZXIgYXZhaWxhYmxlIG9uIGtleXByZXNzIGV2ZW50cywgbWFraW5nIGNo
YXJDb2RlIGF2YWlsYWJsZSBvbiBrZXlkb3duL2tleXVwIGV2ZW50cywKLS8vIGFuZCBnZXR0aW5n
IGtleXByZXNzIGRpc3BhdGNoZWQgaW4gbW9yZSBjYXNlcy4KLXZvaWQgU2V0dGluZ3M6OnNldE5l
ZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzKGJvb2wgbmVlZHNRdWlya3MpCi17
Ci0gICAgbV9uZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcyA9IG5lZWRzUXVp
cmtzOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRUcmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVz
aGVldChib29sIHRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0KQotewotICAgIG1fdHJl
YXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQgPSB0cmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5
bGVzaGVldDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0TmVlZHNMZW9wYXJkTWFpbFF1aXJrcyhi
b29sIG5lZWRzUXVpcmtzKQotewotICAgIG1fbmVlZHNMZW9wYXJkTWFpbFF1aXJrcyA9IG5lZWRz
UXVpcmtzOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRET01QYXN0ZUFsbG93ZWQoYm9vbCBET01Q
YXN0ZUFsbG93ZWQpCiB7CiAgICAgbV9pc0RPTVBhc3RlQWxsb3dlZCA9IERPTVBhc3RlQWxsb3dl
ZDsKQEAgLTc1Miw0MSArNTUwLDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0VXNlc1BhZ2VDYWNoZShi
b29sIHVzZXNQYWdlQ2FjaGUpCiAgICAgfQogfQogCi12b2lkIFNldHRpbmdzOjpzZXRTaHJpbmtz
U3RhbmRhbG9uZUltYWdlc1RvRml0KGJvb2wgc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCkK
LXsKLSAgICBtX3Nocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQgPSBzaHJpbmtzU3RhbmRhbG9u
ZUltYWdlc1RvRml0OwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRTaG93c1VSTHNJblRvb2xUaXBz
KGJvb2wgc2hvd3NVUkxzSW5Ub29sVGlwcykKLXsKLSAgICBtX3Nob3dzVVJMc0luVG9vbFRpcHMg
PSBzaG93c1VSTHNJblRvb2xUaXBzOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRTaG93c1Rvb2xU
aXBPdmVyVHJ1bmNhdGVkVGV4dChib29sIHNob3dzVG9vbFRpcEZvclRydW5jYXRlZFRleHQpCi17
Ci0gICAgbV9zaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCA9IHNob3dzVG9vbFRpcEZvclRy
dW5jYXRlZFRleHQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEZUUERpcmVjdG9yeVRlbXBsYXRl
UGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCi17Ci0gICAgbV9mdHBEaXJlY3RvcnlUZW1wbGF0ZVBh
dGggPSBwYXRoOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRGb3JjZUZUUERpcmVjdG9yeUxpc3Rp
bmdzKGJvb2wgZm9yY2UpCi17Ci0gICAgbV9mb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzID0gZm9y
Y2U7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCBk
ZXZlbG9wZXJFeHRyYXNFbmFibGVkKQotewotICAgIG1fZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCA9
IGRldmVsb3BlckV4dHJhc0VuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEphdmFTY3Jp
cHRFeHBlcmltZW50c0VuYWJsZWQoYm9vbCBqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKQot
ewotICAgIG1famF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZCA9IGphdmFTY3JpcHRFeHBlcmlt
ZW50c0VuYWJsZWQ7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNF
bmFibGVkKGJvb2wgYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQpCiB7CiAgICAgaWYgKG1fYXV0
aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQgPT0gYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQpCkBA
IC04MDksNDggKzU3MiwxMSBAQCBGb250UmVuZGVyaW5nTW9kZSBTZXR0aW5nczo6Zm9udFJlbmRl
cmluZ01vZGUoKSBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxGb250UmVuZGVyaW5nTW9k
ZT4obV9mb250UmVuZGVyaW5nTW9kZSk7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldE5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzKGJvb2wgbmVlZHNRdWlya3MpCi17Ci0gICAgbV9uZWVkc1NpdGVTcGVj
aWZpY1F1aXJrcyA9IG5lZWRzUXVpcmtzOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRGcmFtZUZs
YXR0ZW5pbmdFbmFibGVkKGJvb2wgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCkKLXsKLSAgICBtX2Zy
YW1lRmxhdHRlbmluZ0VuYWJsZWQgPSBmcmFtZUZsYXR0ZW5pbmdFbmFibGVkOwotfQotCi0jaWYg
RU5BQkxFKFdFQl9BUkNISVZFKQotdm9pZCBTZXR0aW5nczo6c2V0V2ViQXJjaGl2ZURlYnVnTW9k
ZUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fd2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJs
ZWQgPSBlbmFibGVkOwotfQotI2VuZGlmCi0KLXZvaWQgU2V0dGluZ3M6OnNldExvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fbG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldExv
Y2FsU3RvcmFnZURhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCi17Ci0gICAgbV9sb2Nh
bFN0b3JhZ2VEYXRhYmFzZVBhdGggPSBwYXRoOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRBcHBs
aWNhdGlvbkNocm9tZU1vZGUoYm9vbCBtb2RlKQogewogICAgIG1faW5BcHBsaWNhdGlvbkNocm9t
ZU1vZGUgPSBtb2RlOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRPZmZsaW5lV2ViQXBwbGljYXRp
b25DYWNoZUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fb2ZmbGluZVdlYkFwcGxpY2F0
aW9uQ2FjaGVFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0RW5mb3Jj
ZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUoYm9vbCBlbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVp
cmtzTW9kZSkKLXsKLSAgICBtX2VuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlID0gZW5m
b3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGU7Ci19Ci0KICNpZiBVU0UoU0FGQVJJX1RIRU1F
KQogdm9pZCBTZXR0aW5nczo6c2V0U2hvdWxkUGFpbnROYXRpdmVDb250cm9scyhib29sIHNob3Vs
ZFBhaW50TmF0aXZlQ29udHJvbHMpCiB7CkBAIC04NTgsMTEgKzU4NCw2IEBAIHZvaWQgU2V0dGlu
Z3M6OnNldFNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMoYm9vbCBzaG91bGRQYWludE5hdGl2ZUNv
bnRyb2xzKQogfQogI2VuZGlmCiAKLXZvaWQgU2V0dGluZ3M6OnNldFVzZXNFbmNvZGluZ0RldGVj
dG9yKGJvb2wgdXNlc0VuY29kaW5nRGV0ZWN0b3IpCi17Ci0gICAgbV91c2VzRW5jb2RpbmdEZXRl
Y3RvciA9IHVzZXNFbmNvZGluZ0RldGVjdG9yOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRETlNQ
cmVmZXRjaGluZ0VuYWJsZWQoYm9vbCBkbnNQcmVmZXRjaGluZ0VuYWJsZWQpCiB7CiAgICAgaWYg
KG1fZG5zUHJlZmV0Y2hpbmdFbmFibGVkID09IGRuc1ByZWZldGNoaW5nRW5hYmxlZCkKQEAgLTg3
MiwyNiArNTkzLDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGJv
b2wgZG5zUHJlZmV0Y2hpbmdFbmFibGVkKQogICAgIG1fcGFnZS0+ZG5zUHJlZmV0Y2hpbmdTdGF0
ZUNoYW5nZWQoKTsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0QWxsb3dTY3JpcHRzVG9DbG9zZVdp
bmRvd3MoYm9vbCBhbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cykKLXsKLSAgICBtX2FsbG93U2Ny
aXB0c1RvQ2xvc2VXaW5kb3dzID0gYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3M7Ci19Ci0KLXZv
aWQgU2V0dGluZ3M6OnNldENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wgY2FyZXRCcm93c2luZ0Vu
YWJsZWQpCi17Ci0gICAgbV9jYXJldEJyb3dzaW5nRW5hYmxlZCA9IGNhcmV0QnJvd3NpbmdFbmFi
bGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXREb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJs
ZWQoYm9vbCBkb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQpCi17Ci0gICAgbV9kb3dubG9h
ZGFibGVCaW5hcnlGb250c0VuYWJsZWQgPSBkb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQ7
Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wgeHNzQXVkaXRv
ckVuYWJsZWQpCi17Ci0gICAgbV94c3NBdWRpdG9yRW5hYmxlZCA9IHhzc0F1ZGl0b3JFbmFibGVk
OwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChi
b29sIGVuYWJsZWQpCiB7CiAgICAgaWYgKG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQg
PT0gZW5hYmxlZCkKQEAgLTkwMSwzNiArNjAyLDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIG1fcGFnZS0+c2V0TmVl
ZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldENhbnZh
c1VzZXNBY2NlbGVyYXRlZERyYXdpbmcoYm9vbCBlbmFibGVkKQotewotICAgIG1fY2FudmFzVXNl
c0FjY2VsZXJhdGVkRHJhd2luZyA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9ybXNFbmFibGVkKGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9ybXNFbmFibGVkID0g
ZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zv
clZpZGVvRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9hY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yVmlkZW9FbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAg
ICBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JQbHVnaW5zRW5hYmxlZCA9IGVuYWJsZWQ7Ci19
Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFi
bGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52
YXNFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQgPSBlbmFibGVkOwotfQotCiB2
b2lkIFNldHRpbmdzOjpzZXRTaG93RGVidWdCb3JkZXJzKGJvb2wgZW5hYmxlZCkKIHsKICAgICBp
ZiAobV9zaG93RGVidWdCb3JkZXJzID09IGVuYWJsZWQpCkBAIC05NDksMTEgKzYyMCw2IEBAIHZv
aWQgU2V0dGluZ3M6OnNldFNob3dSZXBhaW50Q291bnRlcihib29sIGVuYWJsZWQpCiAgICAgbV9w
YWdlLT5zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKIH0KIAotdm9pZCBTZXR0aW5n
czo6c2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewot
ICAgIG1fZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQgPSBlbmFibGVkOwotfQotCiAj
aWYgUExBVEZPUk0oV0lOKSB8fCAoT1MoV0lORE9XUykgJiYgUExBVEZPUk0oV1gpKQogdm9pZCBT
ZXR0aW5nczo6c2V0U2hvdWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnMoYm9vbCBzaG91bGRVc2VI
aWdoUmVzb2x1dGlvblRpbWVycykKIHsKQEAgLTk2MSw1MSArNjI3LDYgQEAgdm9pZCBTZXR0aW5n
czo6c2V0U2hvdWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnMoYm9vbCBzaG91bGRVc2VIaWdoUmVz
b2x1dGlvblRpbWUKIH0KICNlbmRpZgogCi12b2lkIFNldHRpbmdzOjpzZXRXZWJBdWRpb0VuYWJs
ZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fd2ViQXVkaW9FbmFibGVkID0gZW5hYmxlZDsKLX0K
LQotdm9pZCBTZXR0aW5nczo6c2V0V2ViR0xFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBt
X3dlYkdMRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFdlYkdMRXJy
b3JzVG9Db25zb2xlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV93ZWJHTEVycm9yc1Rv
Q29uc29sZUVuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRPcGVuR0xN
dWx0aXNhbXBsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9vcGVuR0xNdWx0aXNh
bXBsaW5nRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFByaXZpbGVn
ZWRXZWJHTEV4dGVuc2lvbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3ByaXZpbGVn
ZWRXZWJHTEV4dGVuc2lvbnNFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6
c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fYWNj
ZWxlcmF0ZWRDYW52YXMyZEVuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpz
ZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9kZWZlcnJl
ZENhbnZhczJkRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldE1pbmlt
dW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZShpbnQgbnVtUGl4ZWxzKQotewotICAgIG1fbWluaW11
bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplID0gbnVtUGl4ZWxzOwotfQotCi12b2lkIFNldHRpbmdz
OjpzZXRMb2FkRGVmZXJyaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9sb2FkRGVm
ZXJyaW5nRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldFN0b3JhZ2VC
bG9ja2luZ1BvbGljeShTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IGVuYWJs
ZWQpCiB7CiAgICAgaWYgKG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09IGVuYWJsZWQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmgKaW5kZXggZjA1M2Y1NDFlZDUwYjkyNDczNDMxMTE3MTJkY2U4ZWY4MGY1
MWI3ZC4uZjMyMGQ0NTZiMTZmY2NlMzk1MDRkMzQyN2ZlZWYwN2Y5ZDFhMDJmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkludFNpemUuaCIKICNp
bmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJT
ZXR0aW5nc01hY3Jvcy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KQEAgLTEzMywxMSArMTM0
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldExvYWRzSW1hZ2VzQXV0
b21hdGljYWxseShib29sKTsKICAgICAgICAgYm9vbCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHko
KSBjb25zdCB7IHJldHVybiBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseTsgfQogCi0gICAgICAg
IC8vIFRoaXMgc2V0dGluZyBvbmx5IGFmZmVjdHMgc2l0ZSBpY29uIGltYWdlIGxvYWRpbmcgaWYg
bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcgaXMgZmFsc2UgYW5kIHRoaXMgc2V0dGlu
ZyBpcyB0cnVlLgotICAgICAgICAvLyBBbGwgb3RoZXIgcGVybXV0YXRpb25zIHN0aWxsIGhlZWQg
bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcuCi0gICAgICAgIHZvaWQgc2V0TG9hZHNT
aXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoYm9vbCk7Ci0gICAgICAgIGJvb2wg
bG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoKSBjb25zdCB7IHJldHVy
biBtX2xvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nOyB9Ci0KICAgICAg
ICAgdm9pZCBzZXRTY3JpcHRFbmFibGVkKGJvb2wpOwogICAgICAgICAvLyBJbnN0ZWFkIG9mIGNh
bGxpbmcgaXNTY3JpcHRFbmFibGVkIGRpcmVjdGx5LCBwbGVhc2UgY29uc2lkZXIgY2FsbGluZwog
ICAgICAgICAvLyBTY3JpcHRDb250cm9sbGVyOjpjYW5FeGVjdXRlU2NyaXB0cywgd2hpY2ggdGFr
ZXMgdGhpbmdzIGxpa2UgdGhlCkBAIC0xNDcsMjAgKzE0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJv
b2wgaXNXZWJTZWN1cml0eUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzV2ViU2VjdXJpdHlF
bmFibGVkOyB9CiAKLSAgICAgICAgdm9pZCBzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxl
VVJMcyhib29sKTsKLSAgICAgICAgYm9vbCBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJM
cygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM7IH0K
LQotICAgICAgICB2b2lkIHNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhib29sKTsKLSAg
ICAgICAgYm9vbCBhbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoKSBjb25zdCB7IHJldHVybiBt
X2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczsgfQotCi0gICAgICAgIHZvaWQgc2V0SmF2YVNj
cmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sKTsKLSAgICAgICAgYm9vbCBqYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9qYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRT
dXBwb3J0c011bHRpcGxlV2luZG93cyhib29sKTsKLSAgICAgICAgYm9vbCBzdXBwb3J0c011bHRp
cGxlV2luZG93cygpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydHNNdWx0aXBsZVdpbmRvd3M7IH0K
LQotICAgICAgICB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYm9vbCk7Ci0g
ICAgICAgIGJvb2wgamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCgpIGNvbnN0IHsgcmV0dXJu
IG1famF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDsgfQorICAgICAgICBTRVRUSU5HU19HRVRU
RVJTX0FORF9TRVRURVJTCiAKICAgICAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJs
ZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkOyB9CkBAIC0xODEsMTUgKzE2
NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRQbHVnaW5zRW5hYmxl
ZChib29sKTsKICAgICAgICAgYm9vbCBhcmVQbHVnaW5zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fYXJlUGx1Z2luc0VuYWJsZWQ7IH0KIAotICAgICAgICB2b2lkIHNldExvY2FsU3RvcmFnZUVu
YWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgbG9jYWxTdG9yYWdlRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fbG9jYWxTdG9yYWdlRW5hYmxlZDsgfQotCi0gICAgICAgIC8vIEFsbG93IGNsaWVu
dHMgY29uY2VybmVkIHdpdGggbWVtb3J5IGNvbnN1bXB0aW9uIHRvIHNldCBhIHF1b3RhIG9uIHNl
c3Npb24gc3RvcmFnZQotICAgICAgICAvLyBzaW5jZSB0aGUgbWVtb3J5IHVzZWQgd29uJ3QgYmUg
cmVsZWFzZWQgdW50aWwgdGhlIFBhZ2UgaXMgZGVzdHJveWVkLgotICAgICAgICAvLyBEZWZhdWx0
IGlzIG5vUXVvdGEuCi0gICAgICAgIHZvaWQgc2V0U2Vzc2lvblN0b3JhZ2VRdW90YSh1bnNpZ25l
ZCk7Ci0gICAgICAgIHVuc2lnbmVkIHNlc3Npb25TdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVy
biBtX3Nlc3Npb25TdG9yYWdlUXVvdGE7IH0KLQogICAgICAgICAvLyBXaGVuIHRoaXMgb3B0aW9u
IGlzIHNldCwgV2ViQ29yZSB3aWxsIGF2b2lkIHN0b3JpbmcgYW55IHJlY29yZCBvZiBicm93c2lu
ZyBhY3Rpdml0eQogICAgICAgICAvLyB0aGF0IG1heSBwZXJzaXN0IG9uIGRpc2sgb3IgcmVtYWlu
IGRpc3BsYXllZCB3aGVuIHRoZSBvcHRpb24gaXMgcmVzZXQuCiAgICAgICAgIC8vIFRoaXMgb3B0
aW9uIGRvZXMgbm90IGFmZmVjdCB0aGUgc3RvcmFnZSBvZiBzdWNoIGluZm9ybWF0aW9uIGluIFJB
TS4KQEAgLTIwNiw1MyArMTgwLDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIHByaXZhdGVC
cm93c2luZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQ7
IH0KIAotICAgICAgICB2b2lkIHNldENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wpOwotICAgICAg
ICBib29sIGNhcmV0QnJvd3NpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9jYXJldEJyb3dz
aW5nRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUo
Y29uc3QgU3RyaW5nJik7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgZGVmYXVsdFRleHRFbmNvZGlu
Z05hbWUoKSBjb25zdCB7IHJldHVybiBtX2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1lOyB9Ci0gICAg
ICAgIAotICAgICAgICB2b2lkIHNldFVzZXNFbmNvZGluZ0RldGVjdG9yKGJvb2wpOwotICAgICAg
ICBib29sIHVzZXNFbmNvZGluZ0RldGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV91c2VzRW5jb2Rp
bmdEZXRlY3RvcjsgfQotCiAgICAgICAgIHZvaWQgc2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGJv
b2wpOwogICAgICAgICBib29sIGRuc1ByZWZldGNoaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fZG5zUHJlZmV0Y2hpbmdFbmFibGVkOyB9CiAKICAgICAgICAgdm9pZCBzZXRVc2VyU3R5bGVT
aGVldExvY2F0aW9uKGNvbnN0IEtVUkwmKTsKICAgICAgICAgY29uc3QgS1VSTCYgdXNlclN0eWxl
U2hlZXRMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclN0eWxlU2hlZXRMb2NhdGlvbjsg
fQogCi0gICAgICAgIHZvaWQgc2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShi
b29sKTsKLSAgICAgICAgYm9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lOyB9Ci0K
LSAgICAgICAgdm9pZCBzZXRTaG91bGRQcmludEJhY2tncm91bmRzKGJvb2wpOwotICAgICAgICBi
b29sIHNob3VsZFByaW50QmFja2dyb3VuZHMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFByaW50
QmFja2dyb3VuZHM7IH0KLQogICAgICAgICB2b2lkIHNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShi
b29sKTsKICAgICAgICAgYm9vbCB0ZXh0QXJlYXNBcmVSZXNpemFibGUoKSBjb25zdCB7IHJldHVy
biBtX3RleHRBcmVhc0FyZVJlc2l6YWJsZTsgfQogCi0gICAgICAgIHZvaWQgc2V0RWRpdGFibGVM
aW5rQmVoYXZpb3IoRWRpdGFibGVMaW5rQmVoYXZpb3IpOwotICAgICAgICBFZGl0YWJsZUxpbmtC
ZWhhdmlvciBlZGl0YWJsZUxpbmtCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fZWRpdGFibGVM
aW5rQmVoYXZpb3I7IH0KLQotICAgICAgICB2b2lkIHNldFRleHREaXJlY3Rpb25TdWJtZW51SW5j
bHVzaW9uQmVoYXZpb3IoVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcik7Ci0g
ICAgICAgIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgdGV4dERpcmVjdGlv
blN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dERpcmVjdGlv
blN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjsgfQotCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQ
T1JUKQotICAgICAgICB2b2lkIHNldFVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlN
b2RlKGJvb2wpOwotICAgICAgICBib29sIHVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxp
dHlNb2RlKCkgY29uc3QgeyByZXR1cm4gbV91c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmls
aXR5TW9kZTsgfQotI2VuZGlmCi0gICAgICAgIAogICAgICAgICB2b2lkIHNldE5lZWRzQWRvYmVG
cmFtZVJlbG9hZGluZ1F1aXJrKGJvb2wpOwogICAgICAgICBib29sIG5lZWRzQWNyb2JhdEZyYW1l
UmVsb2FkaW5nUXVpcmsoKSBjb25zdCB7IHJldHVybiBtX25lZWRzQWRvYmVGcmFtZVJlbG9hZGlu
Z1F1aXJrOyB9CiAKLSAgICAgICAgdm9pZCBzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3Vh
dGlvblF1aXJrcyhib29sKTsKLSAgICAgICAgYm9vbCBuZWVkc0tleWJvYXJkRXZlbnREaXNhbWJp
Z3VhdGlvblF1aXJrcygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNLZXlib2FyZEV2ZW50RGlzYW1i
aWd1YXRpb25RdWlya3M7IH0KLQotICAgICAgICB2b2lkIHNldFRyZWF0c0FueVRleHRDU1NMaW5r
QXNTdHlsZXNoZWV0KGJvb2wpOwotICAgICAgICBib29sIHRyZWF0c0FueVRleHRDU1NMaW5rQXNT
dHlsZXNoZWV0KCkgY29uc3QgeyByZXR1cm4gbV90cmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVz
aGVldDsgfQotCi0gICAgICAgIHZvaWQgc2V0TmVlZHNMZW9wYXJkTWFpbFF1aXJrcyhib29sKTsK
LSAgICAgICAgYm9vbCBuZWVkc0xlb3BhcmRNYWlsUXVpcmtzKCkgY29uc3QgeyByZXR1cm4gbV9u
ZWVkc0xlb3BhcmRNYWlsUXVpcmtzOyB9Ci0KICAgICAgICAgdm9pZCBzZXRET01QYXN0ZUFsbG93
ZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgaXNET01QYXN0ZUFsbG93ZWQoKSBjb25zdCB7IHJldHVy
biBtX2lzRE9NUGFzdGVBbGxvd2VkOyB9CiAgICAgICAgIApAQCAtMjcxLDg2ICsyMTAsMTUgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldFVzZXNQYWdlQ2FjaGUoYm9vbCk7
CiAgICAgICAgIGJvb2wgdXNlc1BhZ2VDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc1BhZ2VD
YWNoZTsgfQogICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdp
bnMoYm9vbCBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMpIHsgbV9wYWdlQ2FjaGVTdXBwb3J0c1Bs
dWdpbnMgPSBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnM7IH0KLSAgICAgICAgYm9vbCBwYWdlQ2Fj
aGVTdXBwb3J0c1BsdWdpbnMoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VDYWNoZVN1cHBvcnRzUGx1
Z2luczsgfQotCi0gICAgICAgIHZvaWQgc2V0U2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdChi
b29sKTsKLSAgICAgICAgYm9vbCBzaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KCkgY29uc3Qg
eyByZXR1cm4gbV9zaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0OyB9Ci0KLSAgICAgICAgdm9p
ZCBzZXRTaG93c1VSTHNJblRvb2xUaXBzKGJvb2wpOwotICAgICAgICBib29sIHNob3dzVVJMc0lu
VG9vbFRpcHMoKSBjb25zdCB7IHJldHVybiBtX3Nob3dzVVJMc0luVG9vbFRpcHM7IH0KLQotICAg
ICAgICB2b2lkIHNldFNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0KGJvb2wpOwotICAgICAg
ICBib29sIHNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9z
aG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dDsgfQotCi0gICAgICAgIHZvaWQgc2V0RlRQRGly
ZWN0b3J5VGVtcGxhdGVQYXRoKGNvbnN0IFN0cmluZyYpOwotICAgICAgICBjb25zdCBTdHJpbmcm
IGZ0cERpcmVjdG9yeVRlbXBsYXRlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZnRwRGlyZWN0b3J5
VGVtcGxhdGVQYXRoOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldEZvcmNlRlRQRGlyZWN0
b3J5TGlzdGluZ3MoYm9vbCk7Ci0gICAgICAgIGJvb2wgZm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5n
cygpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5nczsgfQotICAgICAg
ICAKLSAgICAgICAgdm9pZCBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGJvb2wpOwotICAgICAg
ICBib29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2RldmVsb3Bl
ckV4dHJhc0VuYWJsZWQ7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0SmF2YVNjcmlwdEV4
cGVyaW1lbnRzRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBqYXZhU2NyaXB0RXhwZXJpbWVu
dHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9qYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVk
OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGJvb2wpOwotICAg
ICAgICBib29sIGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1l
RmxhdHRlbmluZ0VuYWJsZWQ7IH0KLQogICAgICAgICB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHls
ZXNFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIGF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9hdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZDsgfQogICAgICAg
ICAKICAgICAgICAgdm9pZCBzZXRGb250UmVuZGVyaW5nTW9kZShGb250UmVuZGVyaW5nTW9kZSBt
b2RlKTsKICAgICAgICAgRm9udFJlbmRlcmluZ01vZGUgZm9udFJlbmRlcmluZ01vZGUoKSBjb25z
dDsKIAotICAgICAgICB2b2lkIHNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKGJvb2wpOwotICAg
ICAgICBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QgeyByZXR1cm4gbV9uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrczsgfQotCi0jaWYgRU5BQkxFKFdFQl9BUkNISVZFKQotICAgICAg
ICB2b2lkIHNldFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKGJvb2wpOwotICAgICAgICBib29s
IHdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV93ZWJBcmNoaXZl
RGVidWdNb2RlRW5hYmxlZDsgfQotI2VuZGlmCi0KLSAgICAgICAgdm9pZCBzZXRMb2NhbEZpbGVD
b250ZW50U25pZmZpbmdFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGxvY2FsRmlsZUNvbnRl
bnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0
aChjb25zdCBTdHJpbmcmKTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBsb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsgfQot
CiAgICAgICAgIHZvaWQgc2V0QXBwbGljYXRpb25DaHJvbWVNb2RlKGJvb2wpOwogICAgICAgICBi
b29sIGluQXBwbGljYXRpb25DaHJvbWVNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9pbkFwcGxpY2F0
aW9uQ2hyb21lTW9kZTsgfQogCi0gICAgICAgIHZvaWQgc2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9u
Q2FjaGVFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNh
Y2hlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVF
bmFibGVkOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldEVuZm9yY2VDU1NNSU1FVHlwZUlu
Tm9RdWlya3NNb2RlKGJvb2wpOwotICAgICAgICBib29sIGVuZm9yY2VDU1NNSU1FVHlwZUluTm9R
dWlya3NNb2RlKCkgeyByZXR1cm4gbV9lbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZTsg
fQotCi0gICAgICAgIHZvaWQgc2V0TWF4aW11bURlY29kZWRJbWFnZVNpemUoc2l6ZV90IHNpemUp
IHsgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZSA9IHNpemU7IH0KLSAgICAgICAgc2l6ZV90IG1h
eGltdW1EZWNvZGVkSW1hZ2VTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbXVtRGVjb2RlZElt
YWdlU2l6ZTsgfQotCi0gICAgICAgIHZvaWQgc2V0QWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3Mo
Ym9vbCk7Ci0gICAgICAgIGJvb2wgYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MoKSBjb25zdCB7
IHJldHVybiBtX2FsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzOyB9Ci0KLSAgICAgICAgdm9pZCBz
ZXRFZGl0aW5nQmVoYXZpb3JUeXBlKEVkaXRpbmdCZWhhdmlvclR5cGUgYmVoYXZpb3IpIHsgbV9l
ZGl0aW5nQmVoYXZpb3JUeXBlID0gYmVoYXZpb3I7IH0KLSAgICAgICAgRWRpdGluZ0JlaGF2aW9y
VHlwZSBlZGl0aW5nQmVoYXZpb3JUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RWRp
dGluZ0JlaGF2aW9yVHlwZT4obV9lZGl0aW5nQmVoYXZpb3JUeXBlKTsgfQotCi0gICAgICAgIHZv
aWQgc2V0RG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29s
IGRvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZG93bmxv
YWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRYU1NBdWRpdG9y
RW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCB4c3NBdWRpdG9yRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1feHNzQXVkaXRvckVuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldENhbnZhc1Vz
ZXNBY2NlbGVyYXRlZERyYXdpbmcoYm9vbCk7Ci0gICAgICAgIGJvb2wgY2FudmFzVXNlc0FjY2Vs
ZXJhdGVkRHJhd2luZygpIGNvbnN0IHsgcmV0dXJuIG1fY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJh
d2luZzsgfQotCi0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29s
IGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkID0gZW5hYmxlZDsgfQotICAg
ICAgICBib29sIGFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Fj
Y2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVk
RmlsdGVyc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxl
ZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkOyB9Ci0KICAgICAgICAg
dm9pZCBzZXRDU1NDdXN0b21GaWx0ZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2lzQ1NTQ3Vz
dG9tRmlsdGVyRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICAgICAgYm9vbCBpc0NTU0N1c3RvbUZp
bHRlckVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ1NTQ3VzdG9tRmlsdGVyRW5hYmxlZDsg
fQogCkBAIC0zNzgsMTg0ICsyNDYsMzggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBi
b29sIGNzc1ZhcmlhYmxlc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlm
CiAKLSAgICAgICAgdm9pZCBzZXRSZWdpb25CYXNlZENvbHVtbnNFbmFibGVkKGJvb2wgZW5hYmxl
ZCkgeyBtX3JlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJv
b2wgcmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaW9uQmFz
ZWRDb2x1bW5zRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0Q1NTR3JpZExheW91dEVuYWJs
ZWQoYm9vbCBlbmFibGVkKSB7IG1fY3NzR3JpZExheW91dEVuYWJsZWQgPSBlbmFibGVkOyB9Ci0g
ICAgICAgIGJvb2wgY3NzR3JpZExheW91dEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Nzc0dy
aWRMYXlvdXRFbmFibGVkOyB9Ci0KICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7IH0K
IAotICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9ybXNF
bmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRy
YW5zZm9ybXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yM0RUcmFuc2Zvcm1zRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBhY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9h
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lk
IHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkKGJvb2wpOwotICAgICAg
ICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQ2FudmFzRW5hYmxlZDsgfQotCi0gICAg
ICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQoYm9v
bCk7Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JBbmltYXRpb25F
bmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4
ZWRQb3NpdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0ZvckZpeGVkUG9zaXRpb25FbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkOyB9Ci0KLSAg
ICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0Vu
YWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFi
bGVGcmFtZXNFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkOyB9Ci0KLSAgICAg
ICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVk
KGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9s
bEVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZDsgfTsKLQogICAgICAgICB2b2lkIHNl
dFNob3dEZWJ1Z0JvcmRlcnMoYm9vbCk7CiAgICAgICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycygp
IGNvbnN0IHsgcmV0dXJuIG1fc2hvd0RlYnVnQm9yZGVyczsgfQogCiAgICAgICAgIHZvaWQgc2V0
U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wpOwogICAgICAgICBib29sIHNob3dSZXBhaW50Q291bnRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd1JlcGFpbnRDb3VudGVyOyB9CiAKLSAgICAgICAgdm9p
ZCBzZXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9v
bCBleHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXhw
ZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQ7IH0KLQogI2lmIFBMQVRGT1JNKFdJTikgfHwg
KE9TKFdJTkRPV1MpICYmIFBMQVRGT1JNKFdYKSkKICAgICAgICAgc3RhdGljIHZvaWQgc2V0U2hv
dWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnMoYm9vbCk7CiAgICAgICAgIHN0YXRpYyBib29sIHNo
b3VsZFVzZUhpZ2hSZXNvbHV0aW9uVGltZXJzKCkgeyByZXR1cm4gZ1Nob3VsZFVzZUhpZ2hSZXNv
bHV0aW9uVGltZXJzOyB9CiAjZW5kaWYKIAotICAgICAgICB2b2lkIHNldFdlYkF1ZGlvRW5hYmxl
ZChib29sKTsKLSAgICAgICAgYm9vbCB3ZWJBdWRpb0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X3dlYkF1ZGlvRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0V2ViR0xFbmFibGVkKGJvb2wp
OwotICAgICAgICBib29sIHdlYkdMRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViR0xFbmFi
bGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoYm9v
bCk7Ci0gICAgICAgIGJvb2wgd2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV93ZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNl
dE9wZW5HTE11bHRpc2FtcGxpbmdFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIG9wZW5HTE11
bHRpc2FtcGxpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuR0xNdWx0aXNhbXBsaW5n
RW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0UHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0Vu
YWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX3ByaXZpbGVnZWRXZWJHTEV4dGVuc2lvbnNFbmFibGVkOyB9
Ci0KLSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChib29sKTsKLSAg
ICAgICAgYm9vbCBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
YWNjZWxlcmF0ZWRDYW52YXMyZEVuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldERlZmVycmVk
MmRDYW52YXNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGRlZmVycmVkMmRDYW52YXNFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9kZWZlcnJlZENhbnZhczJkRW5hYmxlZDsgfQotCi0gICAg
ICAgIC8vIE51bWJlciBvZiBwaXhlbHMgYmVsb3cgd2hpY2ggMkQgY2FudmFzIGlzIHJlbmRlcmVk
IGluIHNvZnR3YXJlCi0gICAgICAgIC8vIGV2ZW4gaWYgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIGlz
IGVuYWJsZWQuCi0gICAgICAgIC8vIEhhcmR3YXJlIGFjY2VsZXJhdGlvbiBpcyB1c2VmdWwgZm9y
IGxhcmdlIGNhbnZhc2VzIHdoZXJlIGl0IGNhbiBhdm9pZCB0aGUKLSAgICAgICAgLy8gcGl4ZWwg
YmFuZHdpZHRoIGJldHdlZW4gdGhlIENQVSBhbmQgR1BVLiBCdXQgR1BVIGFjY2VsZXJhdGlvbiBj
b21lcyBhdAotICAgICAgICAvLyBhIHByaWNlIC0gZXh0cmEgYmFjay1idWZmZXIgYW5kIHRleHR1
cmUgY29weS4gU21hbGwgY2FudmFzZXMgYXJlIGFsc28KLSAgICAgICAgLy8gd2lkZWx5IHVzZWQg
Zm9yIHN0eWxpemVkIGZvbnRzLiBBbnRpLWFsaWFzaW5nIHRleHQgaW4gaGFyZHdhcmUgYXQgdGhh
dAotICAgICAgICAvLyBzY2FsZSBpcyBnZW5lcmFsbHkgc2xvd2VyLiBTbyBiZWxvdyBhIGNlcnRh
aW4gc2l6ZSBpdCBpcyBiZXR0ZXIgdG8KLSAgICAgICAgLy8gZHJhdyBjYW52YXMgaW4gc29mdHdh
cmUuCi0gICAgICAgIHZvaWQgc2V0TWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplKGludCk7
Ci0gICAgICAgIGludCBtaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUoKSBjb25zdCB7IHJl
dHVybiBtX21pbmltdW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZTsgfQotCi0gICAgICAgIHZvaWQg
c2V0TG9hZERlZmVycmluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgbG9hZERlZmVycmlu
Z0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2xvYWREZWZlcnJpbmdFbmFibGVkOyB9Ci0gICAg
ICAgIAogICAgICAgICB2b2lkIHNldFRpbGVkQmFja2luZ1N0b3JlRW5hYmxlZChib29sKTsKICAg
ICAgICAgYm9vbCB0aWxlZEJhY2tpbmdTdG9yZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Rp
bGVkQmFja2luZ1N0b3JlRW5hYmxlZDsgfQogCi0gICAgICAgIHZvaWQgc2V0UGFnaW5hdGVEdXJp
bmdMYXlvdXRFbmFibGVkKGJvb2wgZmxhZykgeyBtX3BhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxl
ZCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBwYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX3BhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZDsgfQotCi0jaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQotICAgICAgICB2b2lkIHNldEZ1bGxTY3JlZW5FbmFibGVkKGJv
b2wgZmxhZykgeyBtX2Z1bGxTY3JlZW5BUElFbmFibGVkID0gZmxhZzsgfQotICAgICAgICBib29s
IGZ1bGxTY3JlZW5FbmFibGVkKCkgY29uc3QgIHsgcmV0dXJuIG1fZnVsbFNjcmVlbkFQSUVuYWJs
ZWQ7IH0KLSNlbmRpZgotCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKICAgICAgICAgc3RhdGljIHZv
aWQgc2V0QVZGb3VuZGF0aW9uRW5hYmxlZChib29sIGZsYWcpIHsgZ0FWRm91bmRhdGlvbkVuYWJs
ZWQgPSBmbGFnOyB9CiAgICAgICAgIHN0YXRpYyBib29sIGlzQVZGb3VuZGF0aW9uRW5hYmxlZCgp
IHsgcmV0dXJuIGdBVkZvdW5kYXRpb25FbmFibGVkOyB9CiAjZW5kaWYKIAotICAgICAgICB2b2lk
IHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wgZmxhZykgeyBtX2FzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkID0gZmxhZzsgfQotICAgICAgICBib29sIGFzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgY29uc3QgIHsgcmV0dXJuIG1fYXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ7IH0KLQogICAgICAgICB2b2lkIHNldFVuaWZpZWRUZXh0
Q2hlY2tlckVuYWJsZWQoYm9vbCBmbGFnKSB7IG1fdW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9
IGZsYWc7IH0KICAgICAgICAgYm9vbCB1bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV91bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkOyB9CiAKLSAgICAgICAgdm9pZCBz
ZXRNZW1vcnlJbmZvRW5hYmxlZChib29sIGZsYWcpIHsgbV9tZW1vcnlJbmZvRW5hYmxlZCA9IGZs
YWc7IH0KLSAgICAgICAgYm9vbCBtZW1vcnlJbmZvRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
bWVtb3J5SW5mb0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldFF1YW50aXplZE1lbW9yeUlu
Zm9FbmFibGVkKGJvb2wgZmxhZykgeyBtX3F1YW50aXplZE1lbW9yeUluZm9FbmFibGVkID0gZmxh
ZzsgfQotICAgICAgICBib29sIHF1YW50aXplZE1lbW9yeUluZm9FbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9xdWFudGl6ZWRNZW1vcnlJbmZvRW5hYmxlZDsgfQotCi0gICAgICAgIC8vIFRoaXMg
ZmVhdHVyZSByZXF1aXJlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBWYWxpZGF0aW9uTWVzc2FnZUNs
aWVudC4KLSAgICAgICAgdm9pZCBzZXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZChi
b29sIGZsYWcpIHsgbV9pbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uID0gZmxhZzsgfQotICAgICAg
ICBib29sIGludGVyYWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9pbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uOyB9Ci0KLSAgICAgICAgLy8gU2V0cyB0aGUgbWFn
aW5pY2F0aW9uIHZhbHVlIGZvciB2YWxpZGF0aW9uIG1lc3NhZ2UgdGltZXIuCi0gICAgICAgIC8v
IElmIHRoZSBtYWdpbmljYXRpb24gdmFsdWUgaXMgTiwgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgZGlz
YXBwZWFycwotICAgICAgICAvLyBhdXRvbWF0aWNhbGx5IGFmdGVyIDxtZXNzYWdlIGxlbmd0aD4g
KiBOIC8gMTAwMCBzZWNvbmRzLiBJZiBOIGlzCi0gICAgICAgIC8vIGVxdWFsIHRvIG9yIGxlc3Mg
dGhhbiAwLCBhIHZhbGlkYXRpb24gbWVzc2FnZSBkb2Vzbid0IGRpc2FwcGVhcnMKLSAgICAgICAg
Ly8gYXV0b21hdGljYWx5LiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA1MC4KLSAgICAgICAgdm9pZCBz
ZXRWYWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbihpbnQgbmV3VmFsdWUpIHsgbV92
YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbiA9IG5ld1ZhbHVlOyB9Ci0gICAgICAg
IGludCB2YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnaW5pZmljYXRpb24oKSBjb25zdCB7IHJldHVy
biBtX3ZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uOyB9Ci0gICAgICAgIAotICAg
ICAgICB2b2lkIHNldFVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKGJvb2wgZmxhZykgeyBtX3VzZVBy
ZUhUTUw1UGFyc2VyUXVpcmtzID0gZmxhZzsgfQotICAgICAgICBib29sIHVzZVByZUhUTUw1UGFy
c2VyUXVpcmtzKCkgY29uc3QgeyByZXR1cm4gbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrczsgfQot
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBkZWZhdWx0TWF4aW11bUhUTUxQYXJzZXJE
T01UcmVlRGVwdGggPSA1MTI7Ci0gICAgICAgIHZvaWQgc2V0TWF4aW11bUhUTUxQYXJzZXJET01U
cmVlRGVwdGgodW5zaWduZWQgbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgpIHsgbV9tYXhp
bXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCA9IG1heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRo
OyB9Ci0gICAgICAgIHVuc2lnbmVkIG1heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoKCkgY29u
c3QgeyByZXR1cm4gbV9tYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aDsgfQotCi0gICAgICAg
IHZvaWQgc2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKGJvb2wgZmxhZykgeyBtX2h5cGVybGlu
a0F1ZGl0aW5nRW5hYmxlZCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBoeXBlcmxpbmtBdWRpdGlu
Z0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2h5cGVybGlua0F1ZGl0aW5nRW5hYmxlZDsgfQot
Ci0gICAgICAgIHZvaWQgc2V0Q3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlz
YWJsZWQoYm9vbCBmbGFnKSB7IG1fY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVz
RGlzYWJsZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0
Y2hlZENTU1J1bGVzRGlzYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Nyb3NzT3JpZ2luQ2hlY2tJ
bkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNl
dExheW91dEZhbGxiYWNrV2lkdGgoaW50IHdpZHRoKSB7IG1fbGF5b3V0RmFsbGJhY2tXaWR0aCA9
IHdpZHRoOyB9Ci0gICAgICAgIGludCBsYXlvdXRGYWxsYmFja1dpZHRoKCkgY29uc3QgeyByZXR1
cm4gbV9sYXlvdXRGYWxsYmFja1dpZHRoOyB9Ci0KLSAgICAgICAgdm9pZCBzZXREZXZpY2VXaWR0
aChpbnQgd2lkdGgpIHsgbV9kZXZpY2VXaWR0aCA9IHdpZHRoOyB9Ci0gICAgICAgIGludCBkZXZp
Y2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlV2lkdGg7IH0KLQotICAgICAgICB2b2lk
IHNldERldmljZUhlaWdodChpbnQgaGVpZ2h0KSB7IG1fZGV2aWNlSGVpZ2h0ID0gaGVpZ2h0OyB9
Ci0gICAgICAgIGludCBkZXZpY2VIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2RldmljZUhlaWdo
dDsgfQotCi0gICAgICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBmbGFnKSB7
IG1fZm9yY2VDb21wb3NpdGluZ01vZGUgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgZm9yY2VDb21w
b3NpdGluZ01vZGUoKSB7IHJldHVybiBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlOyB9Ci0KLSAgICAg
ICAgdm9pZCBzZXRTaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQo
Ym9vbCBmbGFnKSB7IG1fc2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3Vt
ZW50ID0gZmxhZzsgfQotICAgICAgICBib29sIHNob3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0
aWFsRW1wdHlEb2N1bWVudCgpIHsgcmV0dXJuIG1fc2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbklu
aXRpYWxFbXB0eURvY3VtZW50OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBbGxvd0Rpc3BsYXlPZklu
c2VjdXJlQ29udGVudChib29sIGZsYWcpIHsgbV9hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVu
dCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBhbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQ7IH0KLSAgICAg
ICAgdm9pZCBzZXRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudChib29sIGZsYWcpIHsgbV9h
bGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBhbGxv
d1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dSdW5uaW5n
T2ZJbnNlY3VyZUNvbnRlbnQ7IH0KIAogI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQogICAg
ICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGJvb2wgZmxhZykgeyBtX3Njcm9sbEFu
aW1hdG9yRW5hYmxlZCA9IGZsYWc7IH0KICAgICAgICAgYm9vbCBzY3JvbGxBbmltYXRvckVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbEFuaW1hdG9yRW5hYmxlZDsgfQogI2VuZGlmCiAK
LSAgICAgICAgdm9pZCBzZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShib29sIGZs
YWcpIHsgbV9tZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSA9IGZsYWc7IH07Ci0gICAg
ICAgIGJvb2wgbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoKSBjb25zdCB7IHJldHVy
biBtX21lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlOyB9Ci0KLSAgICAgICAgdm9pZCBz
ZXRNZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lKGJvb2wgZmxhZykgeyBtX21lZGlhUGxheWJhY2tB
bGxvd3NJbmxpbmUgPSBmbGFnOyB9OwotICAgICAgICBib29sIG1lZGlhUGxheWJhY2tBbGxvd3NJ
bmxpbmUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmU7IH0KLQot
ICAgICAgICB2b2lkIHNldFBhc3N3b3JkRWNob0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1fcGFzc3dv
cmRFY2hvRW5hYmxlZCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9wYXNzd29yZEVjaG9FbmFibGVkOyB9Ci0KLSAgICAgICAgdm9p
ZCBzZXRTdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcoYm9vbCBmbGFnKSB7IG1fc3VwcHJl
c3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nID0gZmxhZzsgfQotICAgICAgICBib29sIHN1cHByZXNz
ZXNJbmNyZW1lbnRhbFJlbmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcHJlc3Nlc0luY3Jl
bWVudGFsUmVuZGVyaW5nOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldEJhY2tzcGFjZUtl
eU5hdmlnYXRpb25FbmFibGVkKGJvb2wgZmxhZykgeyBtX2JhY2tzcGFjZUtleU5hdmlnYXRpb25F
bmFibGVkID0gZmxhZzsgfQotICAgICAgICBib29sIGJhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZDsgfQot
ICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhk
b3VibGUgZHVyYXRpb25JblNlY29uZHMpIHsgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25k
cyA9IGR1cmF0aW9uSW5TZWNvbmRzOyB9Ci0gICAgICAgIGRvdWJsZSBwYXNzd29yZEVjaG9EdXJh
dGlvbkluU2Vjb25kcygpIGNvbnN0IHsgcmV0dXJuIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNl
Y29uZHM7IH0KLQogI2lmIFVTRShTQUZBUklfVEhFTUUpCiAgICAgICAgIC8vIFdpbmRvd3MgZGVi
dWdnaW5nIHByZWYgKGdsb2JhbCkgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIHRoZSBBcXVhIGxvb2sg
YW5kIGEgbmF0aXZlIHdpbmRvd3MgbG9vay4KICAgICAgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxk
UGFpbnROYXRpdmVDb250cm9scyhib29sKTsKQEAgLTU2OCw2OCArMjkwLDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIHZvaWQgc2V0VXNlc092ZXJsYXlTY3JvbGxiYXJz
KGJvb2wgZmxhZyk7CiAgICAgICAgIHN0YXRpYyBib29sIHVzZXNPdmVybGF5U2Nyb2xsYmFycygp
OwogCi0gICAgICAgIHZvaWQgc2V0VmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZChib29sIGVuYWJs
ZWQpIHsgbV92aXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBi
b29sIHZpc3VhbFdvcmRNb3ZlbWVudEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Zpc3VhbFdv
cmRNb3ZlbWVudEVuYWJsZWQ7IH0KLQotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAgICAg
dm9pZCBzZXRTaG91bGREaXNwbGF5U3VidGl0bGVzKGJvb2wgZmxhZykgeyBtX3Nob3VsZERpc3Bs
YXlTdWJ0aXRsZXMgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgc2hvdWxkRGlzcGxheVN1YnRpdGxl
cygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRGlzcGxheVN1YnRpdGxlczsgfQotCi0gICAgICAg
IHZvaWQgc2V0U2hvdWxkRGlzcGxheUNhcHRpb25zKGJvb2wgZmxhZykgeyBtX3Nob3VsZERpc3Bs
YXlDYXB0aW9ucyA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBzaG91bGREaXNwbGF5Q2FwdGlvbnMo
KSBjb25zdCB7IHJldHVybiBtX3Nob3VsZERpc3BsYXlDYXB0aW9uczsgfQotCi0gICAgICAgIHZv
aWQgc2V0U2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnMoYm9vbCBmbGFnKSB7IG1fc2hvdWxk
RGlzcGxheVRleHREZXNjcmlwdGlvbnMgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgc2hvdWxkRGlz
cGxheVRleHREZXNjcmlwdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZERpc3BsYXlUZXh0
RGVzY3JpcHRpb25zOyB9Ci0jZW5kaWYKLQotICAgICAgICB2b2lkIHNldFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9zY3JvbGxpbmdDb29yZGluYXRvckVuYWJs
ZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgc2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQ7IH0KLQotICAg
ICAgICB2b2lkIHNldE5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX25vdGlm
aWNhdGlvbnNFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIG5vdGlmaWNhdGlvbnNF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9ub3RpZmljYXRpb25zRW5hYmxlZDsgfQotCi0gICAg
ICAgIC8vIFNvbWUgYXBwcyBuZWVkcyBpc0xvYWRpbmdJbkFQSVNlbnNlIHRvIGFjY291bnQgZm9y
IGFjdGl2ZSBzdWJyZXNvdXJjZSBsb2FkZXJzLgotICAgICAgICB2b2lkIHNldE5lZWRzSXNMb2Fk
aW5nSW5BUElTZW5zZVF1aXJrKGJvb2wgZW5hYmxlZCkgeyBtX25lZWRzSXNMb2FkaW5nSW5BUElT
ZW5zZVF1aXJrID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIG5lZWRzSXNMb2FkaW5nSW5BUElT
ZW5zZVF1aXJrKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWly
azsgfQotCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICAgICAgdm9pZCBzZXRUb3VjaEV2
ZW50RW11bGF0aW9uRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV90b3VjaEV2ZW50RW11bGF0aW9u
RW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICAgICAgYm9vbCBpc1RvdWNoRXZlbnRFbXVsYXRpb25F
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZDsgfQog
I2VuZGlmCiAKLSAgICAgICAgdm9pZCBzZXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbihi
b29sIGVuYWJsZWQpIHsgbV9zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA9IGVuYWJsZWQ7
IH0KLSAgICAgICAgYm9vbCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb247IH0KLQotICAgICAgICB2b2lk
IHNldFdhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IoYm9vbCBmbGFnKSB7IG1f
d2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvciA9IGZsYWc7IH0KLSAgICAgICAg
Ym9vbCB3YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yKCkgY29uc3QgeyByZXR1
cm4gbV93YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yOyB9Ci0KLSAgICAgICAg
dm9pZCBzZXRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcyhk
b3VibGUgdGltZW91dCkgeyBtX2luY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0
SW5TZWNvbmRzID0gdGltZW91dDsgfQotICAgICAgICBkb3VibGUgaW5jcmVtZW50YWxSZW5kZXJp
bmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMoKSBjb25zdCB7IHJldHVybiBtX2luY3JlbWVu
dGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzOyB9Ci0KLSAgICAgICAgdm9p
ZCBzZXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3JlcXVl
c3RBbmltYXRpb25GcmFtZUVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgcmVxdWVz
dEFuaW1hdGlvbkZyYW1lRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdEFuaW1hdGlv
bkZyYW1lRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNUb3VjaChi
b29sIGVuYWJsZWQpIHsgbV9kZXZpY2VTdXBwb3J0c1RvdWNoID0gZW5hYmxlZDsgfQotICAgICAg
ICBib29sIGRldmljZVN1cHBvcnRzVG91Y2goKSBjb25zdCB7IHJldHVybiBtX2RldmljZVN1cHBv
cnRzVG91Y2g7IH0KLQotICAgICAgICB2b2lkIHNldERldmljZVN1cHBvcnRzTW91c2UoYm9vbCBl
bmFibGVkKSB7IG1fZGV2aWNlU3VwcG9ydHNNb3VzZSA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9v
bCBkZXZpY2VTdXBwb3J0c01vdXNlKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VTdXBwb3J0c01v
dXNlOyB9Ci0KLSAgICAgICAgdm9pZCBzZXROZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKGJv
b2wgbmVlZHNRdWlyaykgeyBtX25lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsgPSBuZWVkc1F1
aXJrOyB9Ci0gICAgICAgIGJvb2wgbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyaygpIGNvbnN0
IHsgcmV0dXJuIG1fbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyazsgfQotCi0gICAgICAgIHZv
aWQgc2V0Rml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoYm9vbCBjcmVhdGVzKSB7
IG1fZml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQgPSBjcmVhdGVzOyB9Ci0gICAg
ICAgIGJvb2wgZml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoKSBjb25zdCB7IHJl
dHVybiBtX2ZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0OyB9Ci0KLSAgICAgICAg
dm9pZCBzZXRTeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3N5bmNY
SFJJbkRvY3VtZW50c0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgc3luY1hIUklu
RG9jdW1lbnRzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3luY1hIUkluRG9jdW1lbnRzRW5h
YmxlZDsgfQotCi0gICAgICAgIC8vIFdoZW4gZW5hYmxlZCwgd2luZG93LmJsdXIoKSBkb2VzIG5v
dCBjaGFuZ2UgZm9jdXMsIGFuZAotICAgICAgICAvLyB3aW5kb3cuZm9jdXMoKSBvbmx5IGNoYW5n
ZXMgZm9jdXMgd2hlbiBpbnZva2VkIGZyb20gdGhlIGNvbnRleHQgdGhhdAotICAgICAgICAvLyBj
cmVhdGVkIHRoZSB3aW5kb3cuCi0gICAgICAgIHZvaWQgc2V0V2luZG93Rm9jdXNSZXN0cmljdGVk
KGJvb2wgcmVzdHJpY3RlZCkgeyBtX3dpbmRvd0ZvY3VzUmVzdHJpY3RlZCA9IHJlc3RyaWN0ZWQ7
IH0KLSAgICAgICAgYm9vbCB3aW5kb3dGb2N1c1Jlc3RyaWN0ZWQoKSBjb25zdCB7IHJldHVybiBt
X3dpbmRvd0ZvY3VzUmVzdHJpY3RlZDsgfQotCiAgICAgICAgIHZvaWQgc2V0U3RvcmFnZUJsb2Nr
aW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kpOwogICAgICAg
ICBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5OyB9CiAKQEAgLTY0
MSwxOCArMzA2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgYm9vbCBz
aG91bGRSZXNwZWN0UHJpb3JpdHlJbkNTU0F0dHJpYnV0ZVNldHRlcnMoKTsKICNlbmRpZgogCi0g
ICAgICAgIHZvaWQgc2V0Q29va2llRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9jb29raWVFbmFi
bGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGNvb2tpZUVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2Nvb2tpZUVuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldERpYWdub3N0aWNMb2dn
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQgPSBl
bmFibGVkOyB9Ci0gICAgICAgIGJvb2wgZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNl
dEFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGJvb2wgZW5hYmxlZCkgeyBtX2FwcGx5
UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGFw
cGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkgY29uc3QgeyByZXR1cm4gbV9hcHBseVBh
Z2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcjsgfQotCi0gICAgICAgIHZvaWQgc2V0UGx1Z0luU25h
cHNob3R0aW5nRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9wbHVnSW5TbmFwc2hvdHRpbmdFbmFi
bGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIHBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX3BsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQ7IH0KLQogICAgIHBy
aXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IFNldHRpbmdzKFBhZ2UqKTsKIApAQCAtNjYwLDkgKzMx
Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAKLSAg
ICAgICAgU3RyaW5nIG1fZGVmYXVsdFRleHRFbmNvZGluZ05hbWU7Ci0gICAgICAgIFN0cmluZyBt
X2Z0cERpcmVjdG9yeVRlbXBsYXRlUGF0aDsKLSAgICAgICAgU3RyaW5nIG1fbG9jYWxTdG9yYWdl
RGF0YWJhc2VQYXRoOwogICAgICAgICBTdHJpbmcgbV9tZWRpYVR5cGVPdmVycmlkZTsKICAgICAg
ICAgS1VSTCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb247CiAgICAgICAgIFNjcmlwdEZvbnRGYW1p
bHlNYXAgbV9zdGFuZGFyZEZvbnRGYW1pbHlNYXA7CkBAIC02NzIsMjMgKzMyMiwxMSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFNjcmlwdEZvbnRGYW1pbHlNYXAgbV9jdXJzaXZlRm9u
dEZhbWlseU1hcDsKICAgICAgICAgU2NyaXB0Rm9udEZhbWlseU1hcCBtX2ZhbnRhc3lGb250RmFt
aWx5TWFwOwogICAgICAgICBTY3JpcHRGb250RmFtaWx5TWFwIG1fcGljdG9ncmFwaEZvbnRGYW1p
bHlNYXA7Ci0gICAgICAgIEVkaXRhYmxlTGlua0JlaGF2aW9yIG1fZWRpdGFibGVMaW5rQmVoYXZp
b3I7Ci0gICAgICAgIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgbV90ZXh0
RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOwotICAgICAgICBkb3VibGUgbV9wYXNz
d29yZEVjaG9EdXJhdGlvbkluU2Vjb25kczsKICAgICAgICAgaW50IG1fbWluaW11bUZvbnRTaXpl
OwogICAgICAgICBpbnQgbV9taW5pbXVtTG9naWNhbEZvbnRTaXplOwogICAgICAgICBpbnQgbV9k
ZWZhdWx0Rm9udFNpemU7CiAgICAgICAgIGludCBtX2RlZmF1bHRGaXhlZEZvbnRTaXplOwogICAg
ICAgICBib29sIG1fc2NyZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJsZWQ7Ci0gICAgICAgIGludCBt
X3ZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uOwotICAgICAgICBpbnQgbV9taW5p
bXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemU7Ci0gICAgICAgIGludCBtX2xheW91dEZhbGxiYWNr
V2lkdGg7Ci0gICAgICAgIHNpemVfdCBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplOwotICAgICAg
ICBpbnQgbV9kZXZpY2VXaWR0aDsKLSAgICAgICAgaW50IG1fZGV2aWNlSGVpZ2h0OwotICAgICAg
ICB1bnNpZ25lZCBtX3Nlc3Npb25TdG9yYWdlUXVvdGE7Ci0gICAgICAgIHVuc2lnbmVkIG1fZWRp
dGluZ0JlaGF2aW9yVHlwZTsKLSAgICAgICAgdW5zaWduZWQgbV9tYXhpbXVtSFRNTFBhcnNlckRP
TVRyZWVEZXB0aDsKICAgICAgICAgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGlj
eSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQog
ICAgICAgICBmbG9hdCBtX3RleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yOwpAQCAtNjk2LDU4
ICszMzQsMjYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fdGV4dEF1dG9z
aXppbmdFbmFibGVkIDogMTsKICNlbmRpZgogICAgICAgICBJbnRTaXplIG1fcmVzb2x1dGlvbkRl
bnNpdHlQZXJJbmNoT3ZlcnJpZGU7CisKKyAgICAgICAgU0VUVElOR1NfTUVNQkVSX1ZBUklBQkxF
UworCiAgICAgICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7CiAgICAg
ICAgIGJvb2wgbV9pc0phdmFFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJs
ZWRGb3JMb2NhbEZpbGVzIDogMTsKICAgICAgICAgYm9vbCBtX2xvYWRzSW1hZ2VzQXV0b21hdGlj
YWxseSA6IDE7Ci0gICAgICAgIGJvb2wgbV9sb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2Fk
aW5nU2V0dGluZyA6IDE7CiAgICAgICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkIDog
MTsKLSAgICAgICAgYm9vbCBtX2NhcmV0QnJvd3NpbmdFbmFibGVkIDogMTsKICAgICAgICAgYm9v
bCBtX2FyZUltYWdlc0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNNZWRpYUVuYWJsZWQg
OiAxOwogICAgICAgICBib29sIG1fYXJlUGx1Z2luc0VuYWJsZWQgOiAxOwotICAgICAgICBib29s
IG1fbG9jYWxTdG9yYWdlRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc1NjcmlwdEVuYWJs
ZWQgOiAxOwogICAgICAgICBib29sIG1faXNXZWJTZWN1cml0eUVuYWJsZWQgOiAxOwotICAgICAg
ICBib29sIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM6IDE7Ci0gICAgICAgIGJv
b2wgbV9hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHM6IDE7Ci0gICAgICAgIGJvb2wgbV9qYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5IDogMTsKLSAgICAgICAgYm9vbCBtX3N1
cHBvcnRzTXVsdGlwbGVXaW5kb3dzIDogMTsKLSAgICAgICAgYm9vbCBtX2phdmFTY3JpcHRDYW5B
Y2Nlc3NDbGlwYm9hcmQgOiAxOwotICAgICAgICBib29sIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5k
cyA6IDE7CiAgICAgICAgIGJvb2wgbV90ZXh0QXJlYXNBcmVSZXNpemFibGUgOiAxOwotI2lmIEVO
QUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKLSAgICAgICAgYm9vbCBtX3VzZXNEYXNoYm9hcmRCYWNr
d2FyZENvbXBhdGliaWxpdHlNb2RlIDogMTsKLSNlbmRpZgogICAgICAgICBib29sIG1fbmVlZHNB
ZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsgOiAxOwotICAgICAgICBib29sIG1fbmVlZHNLZXlib2Fy
ZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MgOiAxOwotICAgICAgICBib29sIG1fdHJlYXRzQW55
VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQgOiAxOwotICAgICAgICBib29sIG1fbmVlZHNMZW9wYXJk
TWFpbFF1aXJrcyA6IDE7CiAgICAgICAgIGJvb2wgbV9pc0RPTVBhc3RlQWxsb3dlZCA6IDE7Ci0g
ICAgICAgIGJvb2wgbV9zaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0IDogMTsKICAgICAgICAg
Ym9vbCBtX3VzZXNQYWdlQ2FjaGUgOiAxOwotICAgICAgICBib29sIG1fcGFnZUNhY2hlU3VwcG9y
dHNQbHVnaW5zIDogMTsKLSAgICAgICAgYm9vbCBtX3Nob3dzVVJMc0luVG9vbFRpcHMgOiAxOwot
ICAgICAgICBib29sIG1fc2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQgOiAxOwotICAgICAg
ICBib29sIG1fZm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5ncyA6IDE7Ci0gICAgICAgIGJvb2wgbV9k
ZXZlbG9wZXJFeHRyYXNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2phdmFTY3JpcHRFeHBl
cmltZW50c0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fYXV0aG9yQW5kVXNlclN0eWxlc0Vu
YWJsZWQgOiAxOwotICAgICAgICBib29sIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgOiAxOwog
ICAgICAgICB1bnNpZ25lZCBtX2ZvbnRSZW5kZXJpbmdNb2RlIDogMTsKLSAgICAgICAgYm9vbCBt
X2ZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgOiAxOwotI2lmIEVOQUJMRShXRUJfQVJDSElWRSkKLSAg
ICAgICAgYm9vbCBtX3dlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkIDogMTsKLSNlbmRpZgotICAg
ICAgICBib29sIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCA6IDE7CiAgICAgICAg
IGJvb2wgbV9pbkFwcGxpY2F0aW9uQ2hyb21lTW9kZSA6IDE7Ci0gICAgICAgIGJvb2wgbV9vZmZs
aW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fZW5mb3Jj
ZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUgOiAxOwotICAgICAgICBib29sIG1fdXNlc0VuY29k
aW5nRGV0ZWN0b3IgOiAxOwotICAgICAgICBib29sIG1fYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRv
d3MgOiAxOwotICAgICAgICBib29sIG1fY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZyA6IDE7
Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIDogMTsKLSAgICAgICAg
Ym9vbCBtX2FjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXND
U1NDdXN0b21GaWx0ZXJFbmFibGVkIDogMTsKICNpZiBFTkFCTEUoQ1NTX1NUSUNLWV9QT1NJVElP
TikKICAgICAgICAgYm9vbCBtX2Nzc1N0aWNreVBvc2l0aW9uRW5hYmxlZCA6IDE7CkBAIC03NTgs
OTcgKzM2NCwyNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKENTU19WQVJJQUJM
RVMpCiAgICAgICAgIGJvb2wgbV9jc3NWYXJpYWJsZXNFbmFibGVkIDogMTsKICNlbmRpZgotICAg
ICAgICBib29sIG1fcmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wg
bV9jc3NHcmlkTGF5b3V0RW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9kb3dubG9hZGFibGVC
aW5hcnlGb250c0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1feHNzQXVkaXRvckVuYWJsZWQg
OiAxOwogICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgOiAxOwot
ICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yM0RUcmFu
c2Zvcm1zRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yVmlkZW9FbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdGb3JQbHVnaW5zRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yQ2FudmFzRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENv
bXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgOiAxOwotICAgICAgICBib29s
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkIDogMTsg
Ly8gV29ya3Mgb25seSBpbiBjb25qdW5jdGlvbiB3aXRoIGZvcmNlQ29tcG9zaXRpbmdNb2RlCiAg
ICAgICAgIGJvb2wgbV9zaG93RGVidWdCb3JkZXJzIDogMTsKICAgICAgICAgYm9vbCBtX3Nob3dS
ZXBhaW50Q291bnRlciA6IDE7Ci0gICAgICAgIGJvb2wgbV9leHBlcmltZW50YWxOb3RpZmljYXRp
b25zRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV93ZWJHTEVuYWJsZWQgOiAxOwotICAgICAg
ICBib29sIG1fd2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBt
X29wZW5HTE11bHRpc2FtcGxpbmdFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX3ByaXZpbGVn
ZWRXZWJHTEV4dGVuc2lvbnNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX3dlYkF1ZGlvRW5h
YmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENhbnZhczJkRW5hYmxlZCA6IDE7
Ci0gICAgICAgIGJvb2wgbV9kZWZlcnJlZENhbnZhczJkRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJv
b2wgbV9sb2FkRGVmZXJyaW5nRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV90aWxlZEJhY2tp
bmdTdG9yZUVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fcGFnaW5hdGVEdXJpbmdMYXlvdXRF
bmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2Ruc1ByZWZldGNoaW5nRW5hYmxlZCA6IDE7Ci0j
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgICAgICBib29sIG1fZnVsbFNjcmVlbkFQSUVu
YWJsZWQgOiAxOwotI2VuZGlmCi0gICAgICAgIGJvb2wgbV9hc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV91bmlmaWVkVGV4dENoZWNrZXJFbmFibGVk
IDogMTsKLSAgICAgICAgYm9vbCBtX21lbW9yeUluZm9FbmFibGVkIDogMTsKLSAgICAgICAgYm9v
bCBtX3F1YW50aXplZE1lbW9yeUluZm9FbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2ludGVy
YWN0aXZlRm9ybVZhbGlkYXRpb24gOiAxOwotICAgICAgICBib29sIG1fdXNlUHJlSFRNTDVQYXJz
ZXJRdWlya3MgOiAxOwotICAgICAgICBib29sIG1faHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkIDog
MTsKLSAgICAgICAgYm9vbCBtX2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rp
c2FibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlIDogMTsKLSAg
ICAgICAgYm9vbCBtX3Nob3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVu
dCA6IDE7Ci0gICAgICAgIGJvb2wgbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1l
IDogMTsKLSAgICAgICAgYm9vbCBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50IDogMTsK
LSAgICAgICAgYm9vbCBtX2FsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50IDogMTsKICNpZiBF
TkFCTEUoU01PT1RIX1NDUk9MTElORykKICAgICAgICAgYm9vbCBtX3Njcm9sbEFuaW1hdG9yRW5h
YmxlZCA6IDE7CiAjZW5kaWYKLSAgICAgICAgYm9vbCBtX21lZGlhUGxheWJhY2tSZXF1aXJlc1Vz
ZXJHZXN0dXJlIDogMTsKLSAgICAgICAgYm9vbCBtX21lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUg
OiAxOwotICAgICAgICBib29sIG1fcGFzc3dvcmRFY2hvRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJv
b2wgbV9zdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcgOiAxOwotICAgICAgICBib29sIG1f
YmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fdmlzdWFs
V29yZE1vdmVtZW50RW5hYmxlZCA6IDE7Ci0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAg
ICAgIGJvb2wgbV9zaG91bGREaXNwbGF5U3VidGl0bGVzIDogMTsKLSAgICAgICAgYm9vbCBtX3No
b3VsZERpc3BsYXlDYXB0aW9ucyA6IDE7Ci0gICAgICAgIGJvb2wgbV9zaG91bGREaXNwbGF5VGV4
dERlc2NyaXB0aW9ucyA6IDE7Ci0jZW5kaWYKLSAgICAgICAgYm9vbCBtX3Njcm9sbGluZ0Nvb3Jk
aW5hdG9yRW5hYmxlZCA6IDE7Ci0KLSAgICAgICAgYm9vbCBtX25vdGlmaWNhdGlvbnNFbmFibGVk
IDogMTsKLSAgICAgICAgYm9vbCBtX25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrIDogMTsK
IAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgICAgIGJvb2wgbV90b3VjaEV2ZW50RW11
bGF0aW9uRW5hYmxlZCA6IDE7CiAjZW5kaWYKLSAgICAgICAgYm9vbCBtX3Nob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uIDogMTsKLSAgICAgICAgYm9vbCBtX3dhbnRzQmFsYW5jZWRTZXREZWZl
cnNMb2FkaW5nQmVoYXZpb3IgOiAxOwotICAgICAgICBib29sIG1fcmVxdWVzdEFuaW1hdGlvbkZy
YW1lRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9kZXZpY2VTdXBwb3J0c1RvdWNoIDogMTsK
LSAgICAgICAgYm9vbCBtX2RldmljZVN1cHBvcnRzTW91c2UgOiAxOwotICAgICAgICBib29sIG1f
bmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyayA6IDE7Ci0KLSAgICAgICAgYm9vbCBtX2ZpeGVk
UG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0IDogMTsKLSAgICAgICAgYm9vbCBtX3N5bmNY
SFJJbkRvY3VtZW50c0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fY29va2llRW5hYmxlZCA6
IDE7Ci0KLSAgICAgICAgYm9vbCBtX3dpbmRvd0ZvY3VzUmVzdHJpY3RlZCA6IDE7Ci0KLSAgICAg
ICAgYm9vbCBtX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCA6IDE7Ci0KICAgICAgICAgYm9vbCBt
X3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQgOiAxOwogCi0gICAgICAgIGJvb2wg
bV9hcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvciA6IDE7Ci0gICAgICAgIGJvb2wgbV9w
bHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkIDogMTsKLQogICAgICAgICBUaW1lcjxTZXR0aW5ncz4g
bV9zZXRJbWFnZUxvYWRpbmdTZXR0aW5nc1RpbWVyOwogICAgICAgICB2b2lkIGltYWdlTG9hZGlu
Z1NldHRpbmdzVGltZXJGaXJlZChUaW1lcjxTZXR0aW5ncz4qKTsKIAotICAgICAgICBkb3VibGUg
bV9pbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kczsKLQogICAg
ICAgICBzdGF0aWMgZG91YmxlIGdEZWZhdWx0TWluRE9NVGltZXJJbnRlcnZhbDsKICAgICAgICAg
c3RhdGljIGRvdWJsZSBnRGVmYXVsdERPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWw7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiOWQwMDlkZmYzNjFjMTg0NTAxNTk4ZGNlOTdj
ZDE1M2E5YmJmYTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmluCkBAIC0wLDAgKzEsMTU2IEBACisjIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgZ2xvYmFs
IHNldHRpbmdzLgorIyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIGN1c3RvbSBnZXR0ZXJzL3NldHRl
cnMuCisKK2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1lIHR5cGU9U3RyaW5nCitmdHBEaXJlY3RvcnlU
ZW1wbGF0ZVBhdGggdHlwZT1TdHJpbmcKK2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCB0eXBlPVN0
cmluZworZWRpdGFibGVMaW5rQmVoYXZpb3IgdHlwZT1FZGl0YWJsZUxpbmtCZWhhdmlvciwgaW5p
dGlhbD1FZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3IKK3RleHREaXJlY3Rpb25TdWJtZW51SW5j
bHVzaW9uQmVoYXZpb3IgdHlwZT1UZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9y
LCBpbml0aWFsPVRleHREaXJlY3Rpb25TdWJtZW51QXV0b21hdGljYWxseUluY2x1ZGVkCitwYXNz
d29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyB0eXBlPWRvdWJsZSwgaW5pdGlhbD0xCisKKyMgU2V0
cyB0aGUgbWFnbmlmaWNhdGlvbiB2YWx1ZSBmb3IgdmFsaWRhdGlvbiBtZXNzYWdlIHRpbWVyLiAg
SWYgdGhlCisjIG1hZ25pZmljYXRpb24gdmFsdWUgaXMgTiwgYSB2YWxpZGF0aW9uIG1lc3NhZ2Ug
ZGlzYXBwZWFycyBhdXRvbWF0aWNhbGx5IGFmdGVyCisjIDxtZXNzYWdlIGxlbmd0aD4gKiBOIC8g
MTAwMCBzZWNvbmRzLiAgSWYgTiBpcyBlcXVhbCB0byBvciBsZXNzIHRoYW4gMCwgYQorIyB2YWxp
ZGF0aW9uIG1lc3NhZ2UgZG9lc24ndCBkaXNhcHBlYXJzIGF1dG9tYXRpY2FseS4KK3ZhbGlkYXRp
b25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uIHR5cGU9aW50LCBpbml0aWFsPTUwCisKKyMgTnVt
YmVyIG9mIHBpeGVscyBiZWxvdyB3aGljaCAyRCBjYW52YXMgaXMgcmVuZGVyZWQgaW4gc29mdHdh
cmUKKyMgZXZlbiBpZiBoYXJkd2FyZSBhY2NlbGVyYXRpb24gaXMgZW5hYmxlZC4KKyMgSGFyZHdh
cmUgYWNjZWxlcmF0aW9uIGlzIHVzZWZ1bCBmb3IgbGFyZ2UgY2FudmFzZXMgd2hlcmUgaXQgY2Fu
IGF2b2lkIHRoZQorIyBwaXhlbCBiYW5kd2lkdGggYmV0d2VlbiB0aGUgQ1BVIGFuZCBHUFUuIEJ1
dCBHUFUgYWNjZWxlcmF0aW9uIGNvbWVzIGF0CisjIGEgcHJpY2UgLSBleHRyYSBiYWNrLWJ1ZmZl
ciBhbmQgdGV4dHVyZSBjb3B5LiBTbWFsbCBjYW52YXNlcyBhcmUgYWxzbworIyB3aWRlbHkgdXNl
ZCBmb3Igc3R5bGl6ZWQgZm9udHMuIEFudGktYWxpYXNpbmcgdGV4dCBpbiBoYXJkd2FyZSBhdCB0
aGF0CisjIHNjYWxlIGlzIGdlbmVyYWxseSBzbG93ZXIuIFNvIGJlbG93IGEgY2VydGFpbiBzaXpl
IGl0IGlzIGJldHRlciB0bworIyBkcmF3IGNhbnZhcyBpbiBzb2Z0d2FyZS4KK21pbmltdW1BY2Nl
bGVyYXRlZDJkQ2FudmFzU2l6ZSB0eXBlPWludCwgaW5pdGlhbD0yNTcqMjU2CisKK2xheW91dEZh
bGxiYWNrV2lkdGggdHlwZT1pbnQsIGluaXRpYWw9OTgwCittYXhpbXVtRGVjb2RlZEltYWdlU2l6
ZSB0eXBlPXNpemVfdCwgaW5pdGlhbD1udW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKQorZGV2
aWNlV2lkdGggdHlwZT1pbnQsIGluaXRpYWw9MAorZGV2aWNlSGVpZ2h0IHR5cGU9aW50LCBpbml0
aWFsPTAKKworIyBBbGxvdyBjbGllbnRzIGNvbmNlcm5lZCB3aXRoIG1lbW9yeSBjb25zdW1wdGlv
biB0byBzZXQgYSBxdW90YSBvbiBzZXNzaW9uIHN0b3JhZ2UKKyMgc2luY2UgdGhlIG1lbW9yeSB1
c2VkIHdvbid0IGJlIHJlbGVhc2VkIHVudGlsIHRoZSBQYWdlIGlzIGRlc3Ryb3llZC4KK3Nlc3Np
b25TdG9yYWdlUXVvdGEgdHlwZT11bnNpZ25lZCwgaW5pdGlhbD1TdG9yYWdlTWFwOjpub1F1b3Rh
CisKK2VkaXRpbmdCZWhhdmlvclR5cGUgdHlwZT1FZGl0aW5nQmVoYXZpb3JUeXBlLCBpbml0aWFs
PWVkaXRpbmdCZWhhdmlvclR5cGVGb3JQbGF0Zm9ybSgpCittYXhpbXVtSFRNTFBhcnNlckRPTVRy
ZWVEZXB0aCB0eXBlPXVuc2lnbmVkLCBpbml0aWFsPWRlZmF1bHRNYXhpbXVtSFRNTFBhcnNlckRP
TVRyZWVEZXB0aAorCisjIFRoaXMgc2V0dGluZyBvbmx5IGFmZmVjdHMgc2l0ZSBpY29uIGltYWdl
IGxvYWRpbmcgaWYgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcgaXMgZmFsc2UgYW5k
IHRoaXMgc2V0dGluZyBpcyB0cnVlLgorIyBBbGwgb3RoZXIgcGVybXV0YXRpb25zIHN0aWxsIGhl
ZWQgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcuCitsb2Fkc1NpdGVJY29uc0lnbm9y
aW5nSW1hZ2VMb2FkaW5nU2V0dGluZyBpbml0aWFsPWZhbHNlCisKK2NhcmV0QnJvd3NpbmdFbmFi
bGVkIGluaXRpYWw9ZmFsc2UKK2xvY2FsU3RvcmFnZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQorYWxs
b3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMgaW5pdGlhbD10cnVlCithbGxvd0ZpbGVBY2Nl
c3NGcm9tRmlsZVVSTHMgaW5pdGlhbD10cnVlCitqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5IGluaXRpYWw9ZmFsc2UKK3N1cHBvcnRzTXVsdGlwbGVXaW5kb3dzIGluaXRpYWw9
dHJ1ZQoramF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCBpbml0aWFsPWZhbHNlCitzaG91bGRQ
cmludEJhY2tncm91bmRzIGluaXRpYWw9ZmFsc2UKK3VzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBh
dGliaWxpdHlNb2RlIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPURBU0hCT0FSRF9TVVBQT1JU
CisKKyMgVGhpcyBpcyBhIHF1aXJrIHdlIGFyZSBwcm8tYWN0aXZlbHkgYXBwbHlpbmcgdG8gb2xk
IGFwcGxpY2F0aW9ucy4gSXQgY2hhbmdlcyBrZXlib2FyZCBldmVudCBkaXNwYXRjaGluZywKKyMg
bWFraW5nIGtleUlkZW50aWZpZXIgYXZhaWxhYmxlIG9uIGtleXByZXNzIGV2ZW50cywgbWFraW5n
IGNoYXJDb2RlIGF2YWlsYWJsZSBvbiBrZXlkb3duL2tleXVwIGV2ZW50cywKKyMgYW5kIGdldHRp
bmcga2V5cHJlc3MgZGlzcGF0Y2hlZCBpbiBtb3JlIGNhc2VzLgorbmVlZHNLZXlib2FyZEV2ZW50
RGlzYW1iaWd1YXRpb25RdWlya3MgaW5pdGlhbD1mYWxzZQorCit0cmVhdHNBbnlUZXh0Q1NTTGlu
a0FzU3R5bGVzaGVldCBpbml0aWFsPWZhbHNlCituZWVkc0xlb3BhcmRNYWlsUXVpcmtzIGluaXRp
YWw9ZmFsc2UKK3Nocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQgaW5pdGlhbD10cnVlCitwYWdl
Q2FjaGVTdXBwb3J0c1BsdWdpbnMgaW5pdGlhbD1mYWxzZQorc2hvd3NVUkxzSW5Ub29sVGlwcyBp
bml0aWFsPWZhbHNlCitzaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCBpbml0aWFsPWZhbHNl
Citmb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzIGluaXRpYWw9ZmFsc2UKK2RldmVsb3BlckV4dHJh
c0VuYWJsZWQgaW5pdGlhbD1mYWxzZQoramF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZCBpbml0
aWFsPWZhbHNlCituZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyBpbml0aWFsPWZhbHNlCit3ZWJBcmNo
aXZlRGVidWdNb2RlRW5hYmxlZCBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1XRUJfQVJDSElW
RQorbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlCitvZmZsaW5l
V2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQorZW5mb3JjZUNTU01JTUVU
eXBlSW5Ob1F1aXJrc01vZGUgaW5pdGlhbD10cnVlCit1c2VzRW5jb2RpbmdEZXRlY3RvciBpbml0
aWFsPWZhbHNlCithbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cyBpbml0aWFsPWZhbHNlCitjYW52
YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nIGluaXRpYWw9ZmFsc2UKK2FjY2VsZXJhdGVkRHJhd2lu
Z0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCBpbml0aWFs
PWZhbHNlCityZWdpb25CYXNlZENvbHVtbnNFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2Nzc0dyaWRM
YXlvdXRFbmFibGVkIGluaXRpYWw9ZmFsc2UKKworIyBGSVhNRTogVGhpcyBzaG91bGQgcmVhbGx5
IGJlIGRpc2FibGVkIGJ5IGRlZmF1bHQgYXMgaXQgbWFrZXMgcGxhdGZvcm1zIHRoYXQgZG9uJ3Qg
c3VwcG9ydCB0aGUgZmVhdHVyZSBkb3dubG9hZCBmaWxlcworIyB0aGV5IGNhbid0IHVzZSBieS4g
TGVhdmluZyBlbmFibGVkIGZvciBub3cgdG8gbm90IGNoYW5nZSBleGlzdGluZyBiZWhhdmlvci4K
K2Rvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCBpbml0aWFsPXRydWUKKworeHNzQXVkaXRv
ckVuYWJsZWQgaW5pdGlhbD1mYWxzZQorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNm
b3Jtc0VuYWJsZWQgaW5pdGlhbD10cnVlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9F
bmFibGVkIGluaXRpYWw9dHJ1ZQorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFi
bGVkIGluaXRpYWw9dHJ1ZQorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQg
aW5pdGlhbD10cnVlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCBp
bml0aWFsPXRydWUKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxF
bmFibGVkIGluaXRpYWw9ZmFsc2UKKworIyBXb3JrcyBvbmx5IGluIGNvbmp1bmN0aW9uIHdpdGgg
Zm9yY2VDb21wb3NpdGluZ01vZGUuCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJs
ZUZyYW1lc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorCitleHBlcmltZW50YWxOb3RpZmljYXRpb25z
RW5hYmxlZCBpbml0aWFsPWZhbHNlCit3ZWJHTEVuYWJsZWQgaW5pdGlhbD1mYWxzZQord2ViR0xF
cnJvcnNUb0NvbnNvbGVFbmFibGVkIGluaXRpYWw9ZmFsc2UKK29wZW5HTE11bHRpc2FtcGxpbmdF
bmFibGVkIGluaXRpYWw9dHJ1ZQorcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQgaW5p
dGlhbD1mYWxzZQorYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorZGVm
ZXJyZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorbG9hZERlZmVycmluZ0VuYWJsZWQg
aW5pdGlhbD10cnVlCit3ZWJBdWRpb0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorcGFnaW5hdGVEdXJp
bmdMYXlvdXRFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2Z1bGxTY3JlZW5FbmFibGVkIGluaXRpYWw9
ZmFsc2UsIGNvbmRpdGlvbmFsPUZVTExTQ1JFRU5fQVBJCithc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlCittZW1vcnlJbmZvRW5hYmxlZCBpbml0aWFsPWZhbHNl
CitxdWFudGl6ZWRNZW1vcnlJbmZvRW5hYmxlZCBpbml0aWFsPWZhbHNlCisKKyMgVGhpcyBmZWF0
dXJlIHJlcXVpcmVzIGFuIGltcGxlbWVudGF0aW9uIG9mIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50
LgoraW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQgaW5pdGlhbD1mYWxzZQorCit1c2VQ
cmVIVE1MNVBhcnNlclF1aXJrcyBpbml0aWFsPWZhbHNlCitoeXBlcmxpbmtBdWRpdGluZ0VuYWJs
ZWQgaW5pdGlhbD1mYWxzZQorY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlz
YWJsZWQgaW5pdGlhbD1mYWxzZQorZm9yY2VDb21wb3NpdGluZ01vZGUgaW5pdGlhbD1mYWxzZQor
c2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50IGluaXRpYWw9ZmFs
c2UKK2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUgaW5pdGlhbD1mYWxzZQorYWxs
b3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQgaW5pdGlhbD10cnVlCithbGxvd1J1bm5pbmdPZklu
c2VjdXJlQ29udGVudCBpbml0aWFsPXRydWUKK21lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0
dXJlIGluaXRpYWw9ZmFsc2UKK21lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUgaW5pdGlhbD10cnVl
CitwYXNzd29yZEVjaG9FbmFibGVkIGluaXRpYWw9ZmFsc2UKK3N1cHByZXNzZXNJbmNyZW1lbnRh
bFJlbmRlcmluZyBpbml0aWFsPWZhbHNlCitpbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9u
VGltZW91dEluU2Vjb25kcyB0eXBlPWRvdWJsZSwgaW5pdGlhbD1kZWZhdWx0SW5jcmVtZW50YWxS
ZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMKK2JhY2tzcGFjZUtleU5hdmlnYXRp
b25FbmFibGVkIGluaXRpYWw9dHJ1ZQordmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZCBpbml0aWFs
PWZhbHNlCitzaG91bGREaXNwbGF5U3VidGl0bGVzIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFs
PVZJREVPX1RSQUNLCitzaG91bGREaXNwbGF5Q2FwdGlvbnMgaW5pdGlhbD1mYWxzZSwgY29uZGl0
aW9uYWw9VklERU9fVFJBQ0sKK3Nob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zIGluaXRpYWw9
ZmFsc2UsIGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCitzY3JvbGxpbmdDb29yZGluYXRvckVuYWJs
ZWQgaW5pdGlhbD1mYWxzZQorbm90aWZpY2F0aW9uc0VuYWJsZWQgaW5pdGlhbD10cnVlCisKKyMg
U29tZSBhcHBzIG5lZWRzIGlzTG9hZGluZ0luQVBJU2Vuc2UgdG8gYWNjb3VudCBmb3IgYWN0aXZl
IHN1YnJlc291cmNlIGxvYWRlcnMuCituZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyayBpbml0
aWFsPWZhbHNlCisKK3Nob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIGluaXRpYWw9ZmFsc2UK
K3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IgaW5pdGlhbD1mYWxzZQorcmVx
dWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCBpbml0aWFsPXRydWUKK2RldmljZVN1cHBvcnRzVG91
Y2ggaW5pdGlhbD1mYWxzZQorZGV2aWNlU3VwcG9ydHNNb3VzZSBpbml0aWFsPXRydWUKK25lZWRz
RGlkRmluaXNoTG9hZE9yZGVyUXVpcmsgaW5pdGlhbD1mYWxzZQorZml4ZWRQb3NpdGlvbkNyZWF0
ZXNTdGFja2luZ0NvbnRleHQgaW5pdGlhbD1mYWxzZQorc3luY1hIUkluRG9jdW1lbnRzRW5hYmxl
ZCBpbml0aWFsPXRydWUKK2Nvb2tpZUVuYWJsZWQgaW5pdGlhbD10cnVlCisKKyMgV2hlbiBlbmFi
bGVkLCB3aW5kb3cuYmx1cigpIGRvZXMgbm90IGNoYW5nZSBmb2N1cywgYW5kCisjIHdpbmRvdy5m
b2N1cygpIG9ubHkgY2hhbmdlcyBmb2N1cyB3aGVuIGludm9rZWQgZnJvbSB0aGUgY29udGV4dCB0
aGF0CisjIGNyZWF0ZWQgdGhlIHdpbmRvdy4KK3dpbmRvd0ZvY3VzUmVzdHJpY3RlZCBpbml0aWFs
PXRydWUKKworZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2FwcGx5UGFn
ZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yIGluaXRpYWw9ZmFsc2UKK3BsdWdJblNuYXBzaG90dGlu
Z0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCBpbml0aWFsPWZh
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21ha2Vfc2V0dGluZ3MucGwgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL21ha2Vfc2V0dGluZ3MucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThjODIwYjYy
NzhjYThmMWIyMjczMWRiMjRjOWU5OTAwODZiZGY5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbApAQCAtMCwwICsxLDI1NSBAQAorIyEvdXNy
L2Jpbi9wZXJsIC13CisKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFkYW0gQmFydGggPGFiYXJ0aEB3
ZWJraXQub3JnPgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSwgSU5D
LiBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisjIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCit1c2Ugc3RyaWN0OworCit1
c2UgSW5GaWxlc0NvbXBpbGVyOworCitteSAlZGVmYXVsdFBhcmFtZXRlcnMgPSAoCispOworCitz
dWIgZGVmYXVsdEl0ZW1GYWN0b3J5Cit7CisgICAgcmV0dXJuICgKKyAgICAgICAgJ2NvbmRpdGlv
bmFsJyA9PiAwLAorICAgICAgICAnaW5pdGlhbCcgPT4gJycsCisgICAgICAgICd0eXBlJyA9PiAn
Ym9vbCcKKyAgICApOworfQorCitteSAkSW5Db21waWxlciA9IEluRmlsZXNDb21waWxlci0+bmV3
KFwlZGVmYXVsdFBhcmFtZXRlcnMsIFwmZGVmYXVsdEl0ZW1GYWN0b3J5KTsKKworbXkgJG91dHB1
dERpciA9ICRJbkNvbXBpbGVyLT5pbml0aWFsaXplRnJvbUNvbW1hbmRMaW5lKCk7CiskSW5Db21w
aWxlci0+Y29tcGlsZShcJmdlbmVyYXRlQ29kZSk7CisKK3N1YiBnZW5lcmF0ZUNvZGUoKQorewor
ICAgIG15ICRwYXJzZWRQYXJhbWV0ZXJzUmVmID0gc2hpZnQ7CisgICAgbXkgJHBhcnNlZEl0ZW1z
UmVmID0gc2hpZnQ7CisKKyAgICBnZW5lcmF0ZUhlYWRlcigkcGFyc2VkSXRlbXNSZWYpOworfQor
CitzdWIgZ2VuZXJhdGVIZWFkZXIoJCkKK3sKKyAgICBteSAkcGFyc2VkSXRlbXNSZWYgPSBzaGlm
dDsKKworICAgIG15ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworICAgIG15
ICRvdXRwdXRGaWxlID0gIiRvdXRwdXREaXIvU2V0dGluZ3NNYWNyb3MuaCI7CisKKyAgICBteSAl
dW5jb25kaXRpb25hbFNldHRpbmdzID0gKCk7CisgICAgbXkgJXNldHRpbmdzQnlDb25kaXRpb25h
bCA9ICgpOworCisgICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICVwYXJzZWRJdGVt
cykgeworICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1l
fXsiY29uZGl0aW9uYWwifTsKKworICAgICAgICBpZiAoJGNvbmRpdGlvbmFsKSB7CisgICAgICAg
ICAgICBpZiAoIWRlZmluZWQoJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9KSkg
eworICAgICAgICAgICAgICAgICRzZXR0aW5nc0J5Q29uZGl0aW9uYWx7JGNvbmRpdGlvbmFsfSA9
ICgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgJHNldHRpbmdzQnlDb25kaXRpb25hbHsk
Y29uZGl0aW9uYWx9eyRzZXR0aW5nTmFtZX0gPSAxOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgJHVuY29uZGl0aW9uYWxTZXR0aW5nc3skc2V0dGluZ05hbWV9ID0gMTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIG9wZW4gbXkgJGZpbGUsICI+JG91dHB1dEZpbGUiIG9yIGRpZSAiRmFp
bGVkIHRvIG9wZW4gZmlsZTogJCEiOworCisgICAgcHJpbnQgJGZpbGUgJEluQ29tcGlsZXItPmxp
Y2Vuc2UoKTsKKworICAgICMgRklYTUU6IFNvcnQgYnkgdHlwZSBzbyBib29scyBjb21lIGxhc3Qg
YW5kIGFyZSBiaXQgcGFja2VkLgorCisgICAgcHJpbnQgJGZpbGUgIiNpZm5kZWYgU2V0dGluZ3NN
YWNyb3NfaFxuIjsKKyAgICBwcmludCAkZmlsZSAiI2RlZmluZSBTZXR0aW5nc01hY3Jvc19oXG5c
biI7CisKKyAgICBwcmludENvbmRpdGlvbmFsTWFjcm9zKCRmaWxlLCBcJXNldHRpbmdzQnlDb25k
aXRpb25hbCwgJHBhcnNlZEl0ZW1zUmVmKTsKKworICAgIHByaW50R2V0dGVyc0FuZFNldHRlcnMo
JGZpbGUsIFwldW5jb25kaXRpb25hbFNldHRpbmdzLCBcJXNldHRpbmdzQnlDb25kaXRpb25hbCwg
JHBhcnNlZEl0ZW1zUmVmKTsKKyAgICBwcmludE1lbWJlclZhcmlhYmxlcygkZmlsZSwgXCV1bmNv
bmRpdGlvbmFsU2V0dGluZ3MsIFwlc2V0dGluZ3NCeUNvbmRpdGlvbmFsLCAkcGFyc2VkSXRlbXNS
ZWYpOworICAgIHByaW50SW5pdGlhbGl6ZXJMaXN0KCRmaWxlLCBcJXVuY29uZGl0aW9uYWxTZXR0
aW5ncywgXCVzZXR0aW5nc0J5Q29uZGl0aW9uYWwsICRwYXJzZWRJdGVtc1JlZik7CisKKyAgICBw
cmludCAkZmlsZSAiI2VuZGlmIC8vIFNldHRpbmdzTWFjcm9zX2hcbiI7CisKKyAgICBjbG9zZSAk
ZmlsZTsKK30KKworc3ViIHByaW50Q29uZGl0aW9uYWxNYWNyb3MoJCQkKQoreworICAgIG15ICgk
ZmlsZSwgJHNldHRpbmdzQnlDb25kaXRpb25hbFJlZiwgJHBhcnNlZEl0ZW1zUmVmKSA9IEBfOwor
ICAgIG15ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworICAgIG15ICVzZXR0
aW5nc0J5Q29uZGl0aW9uYWwgPSAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFsUmVmIH07CisKKyAg
ICBmb3IgbXkgJGNvbmRpdGlvbmFsIChzb3J0IGtleXMgJXNldHRpbmdzQnlDb25kaXRpb25hbCkg
eworICAgICAgICBteSAkcHJlZmVycmVkQ29uZGl0aW9uYWwgPSAkSW5Db21waWxlci0+cHJlZmVy
cmVkQ29uZGl0aW9uYWwoJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNpZiAi
IC4gJEluQ29tcGlsZXItPmNvbmRpdGlvbmFsU3RyaW5nRnJvbUF0dHJpYnV0ZVZhbHVlKCRjb25k
aXRpb25hbCkgLiAiXG4iOworCisgICAgICAgIHByaW50ICRmaWxlICIjZGVmaW5lICR7cHJlZmVy
cmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0dFVFRFUl9BTkRfU0VUVEVSUyBcXFxuIjsKKyAgICAg
ICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9u
YWx7JGNvbmRpdGlvbmFsfSB9KSB7CisgICAgICAgICAgICBwcmludEdldHRlckFuZFNldHRlcigk
ZmlsZSwgJHNldHRpbmdOYW1lLCAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9KTsK
KyAgICAgICAgfQorICAgICAgICBwcmludCAkZmlsZSAiLy8gRW5kIG9mICR7cHJlZmVycmVkQ29u
ZGl0aW9uYWx9X1NFVFRJTkdTX0dFVFRFUl9BTkRfU0VUVEVSU1xuIjsKKworICAgICAgICBwcmlu
dCAkZmlsZSAiI2RlZmluZSAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19OT05fQk9P
TF9NRU1CRVJfVkFSSUFCTEVTIFxcXG4iOworICAgICAgICBmb3IgbXkgJHNldHRpbmdOYW1lIChz
b3J0IGtleXMgJXsgJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9IH0pIHsKKyAg
ICAgICAgICAgIG15ICR0eXBlID0gJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifTsK
KyAgICAgICAgICAgIG5leHQgaWYgJHR5cGUgZXEgImJvb2wiOworICAgICAgICAgICAgcHJpbnQg
JGZpbGUgIiAgICAkdHlwZSBtXyRzZXR0aW5nTmFtZTsgXFxcbiIKKyAgICAgICAgfQorICAgICAg
ICBwcmludCAkZmlsZSAiLy8gRW5kIG9mICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdT
X05PTl9CT09MX01FTUJFUl9WQVJJQUJMRVNcbiI7CisKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNk
ZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfQk9PTF9NRU1CRVJfVkFSSUFC
TEVTIFxcXG4iOworICAgICAgICBmb3IgbXkgJHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXsgJHNl
dHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9IH0pIHsKKyAgICAgICAgICAgIG5leHQg
aWYgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifSBuZSAiYm9vbCI7CisgICAgICAg
ICAgICBwcmludCAkZmlsZSAiICAgIGJvb2wgbV8kc2V0dGluZ05hbWUgOiAxOyBcXFxuIgorICAg
ICAgICB9CisgICAgICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgJHtwcmVmZXJyZWRDb25kaXRp
b25hbH1fU0VUVElOR1NfQk9PTF9NRU1CRVJfVkFSSUFCTEVTXG4iOworCisgICAgICAgIHByaW50
ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX05PTl9CT09M
X0lOSVRJQUxJWkVSUyBcXFxuIjsKKyAgICAgICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBr
ZXlzICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWx7JGNvbmRpdGlvbmFsfSB9KSB7CisgICAgICAg
ICAgICBuZXh0IGlmICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0gZXEgImJvb2wi
OworICAgICAgICAgICAgcHJpbnRJbml0aWFsaXplcigkZmlsZSwgJHNldHRpbmdOYW1lLCAkcGFy
c2VkSXRlbXNSZWYpOworICAgICAgICB9CisgICAgICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2Yg
JHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfTk9OX0JPT0xfSU5JVElBTElaRVJTXG4i
OworCisgICAgICAgIHByaW50ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9
X1NFVFRJTkdTX0JPT0xfSU5JVElBTElaRVJTIFxcXG4iOworICAgICAgICBmb3IgbXkgJHNldHRp
bmdOYW1lIChzb3J0IGtleXMgJXsgJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9
IH0pIHsKKyAgICAgICAgICAgIG5leHQgaWYgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5
cGUifSBuZSAiYm9vbCI7CisgICAgICAgICAgICBwcmludEluaXRpYWxpemVyKCRmaWxlLCAkc2V0
dGluZ05hbWUsICRwYXJzZWRJdGVtc1JlZik7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgJGZp
bGUgIi8vIEVuZCBvZiAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19CT09MX0lOSVRJ
QUxJWkVSU1xuIjsKKworICAgICAgICBwcmludCAkZmlsZSAiI2Vsc2VcbiI7CisgICAgICAgIHBy
aW50ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0dFVFRF
Ul9BTkRfU0VUVEVSU1xuIjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJy
ZWRDb25kaXRpb25hbH1fU0VUVElOR1NfTk9OX0JPT0xfTUVNQkVSX1ZBUklBQkxFU1xuIjsKKyAg
ICAgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElO
R1NfQk9PTF9NRU1CRVJfVkFSSUFCTEVTXG4iOworICAgICAgICBwcmludCAkZmlsZSAiI2RlZmlu
ZSAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19OT05fQk9PTF9JTklUSUFMSVpFUlNc
biI7CisgICAgICAgIHByaW50ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9
X1NFVFRJTkdTX0JPT0xfSU5JVElBTElaRVJTXG4iOworICAgICAgICBwcmludCAkZmlsZSAiI2Vu
ZGlmXG4iOworICAgICAgICBwcmludCAkZmlsZSAiXG4iOworICAgIH0KK30KKworc3ViIHByaW50
R2V0dGVyc0FuZFNldHRlcnMoJCQkJCkKK3sKKyAgICBteSAoJGZpbGUsICR1bmNvbmRpdGlvbmFs
U2V0dGluZ3NSZWYsICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxSZWYsICRwYXJzZWRJdGVtc1JlZikg
PSBAXzsKKyAgICBteSAlcGFyc2VkSXRlbXMgPSAleyAkcGFyc2VkSXRlbXNSZWYgfTsKKyAgICBt
eSAldW5jb25kaXRpb25hbFNldHRpbmdzID0gJXsgJHVuY29uZGl0aW9uYWxTZXR0aW5nc1JlZiB9
OworICAgIG15ICVzZXR0aW5nc0J5Q29uZGl0aW9uYWwgPSAleyAkc2V0dGluZ3NCeUNvbmRpdGlv
bmFsUmVmIH07CisKKyAgICBwcmludCAkZmlsZSAiI2RlZmluZSBTRVRUSU5HU19HRVRURVJTX0FO
RF9TRVRURVJTIFxcXG4iOworICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5cyAldW5j
b25kaXRpb25hbFNldHRpbmdzKSB7CisgICAgICAgIHByaW50R2V0dGVyQW5kU2V0dGVyKCRmaWxl
LCAkc2V0dGluZ05hbWUsICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0pOworICAg
IH0KKyAgICBmb3IgbXkgJGNvbmRpdGlvbmFsIChzb3J0IGtleXMgJXNldHRpbmdzQnlDb25kaXRp
b25hbCkgeworICAgICAgICBteSAkcHJlZmVycmVkQ29uZGl0aW9uYWwgPSAkSW5Db21waWxlci0+
cHJlZmVycmVkQ29uZGl0aW9uYWwoJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcHJpbnQgJGZpbGUg
IiAgICAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19HRVRURVJfQU5EX1NFVFRFUlMg
XFxcbiI7CisgICAgfQorICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgU0VUVElOR1NfR0VUVEVS
U19BTkRfU0VUVEVSUy5cblxuIjsKK30KKworc3ViIHByaW50TWVtYmVyVmFyaWFibGVzKCQkJCQp
Cit7CisgICAgbXkgKCRmaWxlLCAkdW5jb25kaXRpb25hbFNldHRpbmdzUmVmLCAkc2V0dGluZ3NC
eUNvbmRpdGlvbmFsUmVmLCAkcGFyc2VkSXRlbXNSZWYpID0gQF87CisgICAgbXkgJXBhcnNlZEl0
ZW1zID0gJXsgJHBhcnNlZEl0ZW1zUmVmIH07CisgICAgbXkgJXVuY29uZGl0aW9uYWxTZXR0aW5n
cyA9ICV7ICR1bmNvbmRpdGlvbmFsU2V0dGluZ3NSZWYgfTsKKyAgICBteSAlc2V0dGluZ3NCeUNv
bmRpdGlvbmFsID0gJXsgJHNldHRpbmdzQnlDb25kaXRpb25hbFJlZiB9OworCisgICAgcHJpbnQg
JGZpbGUgIiNkZWZpbmUgU0VUVElOR1NfTUVNQkVSX1ZBUklBQkxFUyBcXFxuIjsKKyAgICAjIFdl
IGxpc3QgdGhlIGJvb2xzIGxhc3Qgc28gd2UgY2FuIGJpdCBwYWNrIHRoZW0uCisgICAgZm9yIG15
ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV1bmNvbmRpdGlvbmFsU2V0dGluZ3MpIHsKKyAgICAg
ICAgbXkgJHR5cGUgPSAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9OworICAgICAg
ICBuZXh0IGlmICR0eXBlIGVxICJib29sIjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICAkdHlw
ZSBtXyRzZXR0aW5nTmFtZTsgXFxcbiIKKyAgICB9CisgICAgZm9yIG15ICRjb25kaXRpb25hbCAo
c29ydCBrZXlzICVzZXR0aW5nc0J5Q29uZGl0aW9uYWwpIHsKKyAgICAgICAgbXkgJHByZWZlcnJl
ZENvbmRpdGlvbmFsID0gJEluQ29tcGlsZXItPnByZWZlcnJlZENvbmRpdGlvbmFsKCRjb25kaXRp
b25hbCk7CisgICAgICAgIHByaW50ICRmaWxlICIgICAgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1f
U0VUVElOR1NfTk9OX0JPT0xfTUVNQkVSX1ZBUklBQkxFUyBcXFxuIjsKKyAgICB9CisgICAgZm9y
IG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV1bmNvbmRpdGlvbmFsU2V0dGluZ3MpIHsKKyAg
ICAgICAgbmV4dCBpZiAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9IG5lICJib29s
IjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICBib29sIG1fJHNldHRpbmdOYW1lIDogMTsgXFxc
biIKKyAgICB9CisgICAgZm9yIG15ICRjb25kaXRpb25hbCAoc29ydCBrZXlzICVzZXR0aW5nc0J5
Q29uZGl0aW9uYWwpIHsKKyAgICAgICAgbXkgJHByZWZlcnJlZENvbmRpdGlvbmFsID0gJEluQ29t
cGlsZXItPnByZWZlcnJlZENvbmRpdGlvbmFsKCRjb25kaXRpb25hbCk7CisgICAgICAgIHByaW50
ICRmaWxlICIgICAgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfQk9PTF9NRU1CRVJf
VkFSSUFCTEVTIFxcXG4iOworICAgIH0KKyAgICBwcmludCAkZmlsZSAiLy8gRW5kIG9mIFNFVFRJ
TkdTX01FTUJFUl9WQVJJQUJMRVMuXG5cbiI7Cit9CisKK3N1YiBwcmludEdldHRlckFuZFNldHRl
cigkJCQpCit7CisgICAgbXkgKCRmaWxlLCAkc2V0dGluZ05hbWUsICR0eXBlKSA9IEBfOworICAg
IG15ICRzZXR0ZXJGdW5jdGlvbk5hbWUgPSAic2V0IiAuICRzZXR0aW5nTmFtZTsKKyAgICBzdWJz
dHIoJHNldHRlckZ1bmN0aW9uTmFtZSwgMywgMSkgPSB1YyhzdWJzdHIoJHNldHRlckZ1bmN0aW9u
TmFtZSwgMywgMSkpOworICAgIGlmIChzdWJzdHIoJHNldHRpbmdOYW1lLCAwLCAzKSBlcSAiY3Nz
IiB8fCBzdWJzdHIoJHNldHRpbmdOYW1lLCAwLCAzKSBlcSAieHNzIiB8fCBzdWJzdHIoJHNldHRp
bmdOYW1lLCAwLCAzKSBlcSAiZnRwIikgeworICAgICAgICBzdWJzdHIoJHNldHRlckZ1bmN0aW9u
TmFtZSwgMywgMykgPSB1YyhzdWJzdHIoJHNldHRlckZ1bmN0aW9uTmFtZSwgMywgMykpOworICAg
IH0KKyAgICBpZiAobGMoc3Vic3RyKCR0eXBlLCAwLCAxKSkgZXEgc3Vic3RyKCR0eXBlLCAwLCAx
KSkgeworICAgICAgICBwcmludCAkZmlsZSAiICAgICR0eXBlICRzZXR0aW5nTmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fJHNldHRpbmdOYW1lOyB9IFxcXG4iOworICAgICAgICBwcmludCAkZmlsZSAi
ICAgIHZvaWQgJHNldHRlckZ1bmN0aW9uTmFtZSgkdHlwZSAkc2V0dGluZ05hbWUpIHsgbV8kc2V0
dGluZ05hbWUgPSAkc2V0dGluZ05hbWU7IH0gXFxcbiI7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
cHJpbnQgJGZpbGUgIiAgICBjb25zdCAkdHlwZSYgJHNldHRpbmdOYW1lKCkgeyByZXR1cm4gbV8k
c2V0dGluZ05hbWU7IH0gXFxcbiI7CisgICAgICAgIHByaW50ICRmaWxlICIgICAgdm9pZCAkc2V0
dGVyRnVuY3Rpb25OYW1lKGNvbnN0ICR0eXBlJiAkc2V0dGluZ05hbWUpIHsgbV8kc2V0dGluZ05h
bWUgPSAkc2V0dGluZ05hbWU7IH0gXFxcbiI7CisgICAgfQorfQorCitzdWIgcHJpbnRJbml0aWFs
aXplckxpc3QoJCQkJCkKK3sKKyAgICBteSAoJGZpbGUsICR1bmNvbmRpdGlvbmFsU2V0dGluZ3NS
ZWYsICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxSZWYsICRwYXJzZWRJdGVtc1JlZikgPSBAXzsKKyAg
ICBteSAlcGFyc2VkSXRlbXMgPSAleyAkcGFyc2VkSXRlbXNSZWYgfTsKKyAgICBteSAldW5jb25k
aXRpb25hbFNldHRpbmdzID0gJXsgJHVuY29uZGl0aW9uYWxTZXR0aW5nc1JlZiB9OworICAgIG15
ICVzZXR0aW5nc0J5Q29uZGl0aW9uYWwgPSAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFsUmVmIH07
CisKKyAgICBwcmludCAkZmlsZSAiI2RlZmluZSBTRVRUSU5HU19JTklUSUFMSVpFUl9MSVNUIFxc
XG4iOworICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5cyAldW5jb25kaXRpb25hbFNl
dHRpbmdzKSB7CisgICAgICAgIG5leHQgaWYgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5
cGUifSBlcSAiYm9vbCI7CisgICAgICAgIHByaW50SW5pdGlhbGl6ZXIoJGZpbGUsICRzZXR0aW5n
TmFtZSwgJHBhcnNlZEl0ZW1zUmVmKTsKKyAgICB9CisgICAgZm9yIG15ICRjb25kaXRpb25hbCAo
c29ydCBrZXlzICVzZXR0aW5nc0J5Q29uZGl0aW9uYWwpIHsKKyAgICAgICAgbXkgJHByZWZlcnJl
ZENvbmRpdGlvbmFsID0gJEluQ29tcGlsZXItPnByZWZlcnJlZENvbmRpdGlvbmFsKCRjb25kaXRp
b25hbCk7CisgICAgICAgIHByaW50ICRmaWxlICIgICAgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1f
U0VUVElOR1NfTk9OX0JPT0xfSU5JVElBTElaRVJTIFxcXG4iOworICAgIH0KKyAgICBmb3IgbXkg
JHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXVuY29uZGl0aW9uYWxTZXR0aW5ncykgeworICAgICAg
ICBuZXh0IGlmICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0gbmUgImJvb2wiOwor
ICAgICAgICBwcmludEluaXRpYWxpemVyKCRmaWxlLCAkc2V0dGluZ05hbWUsICRwYXJzZWRJdGVt
c1JlZik7CisgICAgfQorICAgIGZvciBteSAkY29uZGl0aW9uYWwgKHNvcnQga2V5cyAlc2V0dGlu
Z3NCeUNvbmRpdGlvbmFsKSB7CisgICAgICAgIG15ICRwcmVmZXJyZWRDb25kaXRpb25hbCA9ICRJ
bkNvbXBpbGVyLT5wcmVmZXJyZWRDb25kaXRpb25hbCgkY29uZGl0aW9uYWwpOworICAgICAgICBw
cmludCAkZmlsZSAiICAgICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0JPT0xfSU5J
VElBTElaRVJTIFxcXG4iOworICAgIH0KKyAgICBwcmludCAkZmlsZSAiLy8gRW5kIG9mIFNFVFRJ
TkdTX0lOSVRJQUxJWkVSX0xJU1QuXG5cbiI7Cit9CisKK3N1YiBwcmludEluaXRpYWxpemVyKCQk
JCkKK3sKKyAgICBteSAoJGZpbGUsICRzZXR0aW5nTmFtZSwgJHBhcnNlZEl0ZW1zUmVmKSA9IEBf
OworICAgIG15ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworCisgICAgbXkg
JGluaXRpYWxWYWx1ZSA9ICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJpbml0aWFsIn07Cisg
ICAgbXkgJHR5cGUgPSAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9OworICAgIGRp
ZSAiTXVzdCBwcm92aWRlIGFuIGluaXRpYWwgdmFsdWUgZm9yICRzZXR0aW5nTmFtZS4iIGlmICgk
aW5pdGlhbFZhbHVlIGVxICcnICYmIGxjKHN1YnN0cigkdHlwZSwgMCwgMSkpIGVxIHN1YnN0cigk
dHlwZSwgMCwgMSkpOworICAgIHJldHVybiBpZiAoJGluaXRpYWxWYWx1ZSBlcSAnJyk7CisgICAg
cHJpbnQgJGZpbGUgIiAgICAsIG1fJHNldHRpbmdOYW1lKCRpbml0aWFsVmFsdWUpIFxcXG4iCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlIGIvU291cmNlL2Nt
YWtlL1dlYktpdE1hY3Jvcy5jbWFrZQppbmRleCA5YmE5ODhmOWVlMTUwNjZkMDg0NzI0NjEwMDMw
ZmYwYzBiNTNlZmY1Li5jODEzOGE5NmFiYjE5NDA3MzNlZGFlODI1OWU0YTEwMGRmNmZiOGU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCisrKyBiL1NvdXJjZS9j
bWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKQEAgLTk2LDYgKzk2LDE4IEBAIE1BQ1JPIChHRU5FUkFU
RV9FWENFUFRJT05fQ09ERV9ERVNDUklQVElPTiBfaW5maWxlIF9vdXRmaWxlKQogRU5ETUFDUk8g
KCkKIAogCitNQUNSTyAoR0VORVJBVEVfU0VUVElOR1NfTUFDUk9TIF9pbmZpbGUgX291dGZpbGUp
CisgICAgU0VUKE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElSfS9wYWdlL21ha2Vfc2V0dGlu
Z3MucGwpCisKKyAgICBBRERfQ1VTVE9NX0NPTU1BTkQoCisgICAgICAgIE9VVFBVVCAgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X291dGZpbGV9CisgICAgICAgIE1BSU5fREVQRU5E
RU5DWSAke19pbmZpbGV9CisgICAgICAgIERFUEVORFMgJHtOQU1FU19HRU5FUkFUT1J9ICR7U0NS
SVBUU19CSU5ESU5HU30KKyAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gLUkke1dF
QkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzICR7TkFNRVNfR0VORVJBVE9SfSAtLWlucHV0ICR7
X2luZmlsZX0gLS1vdXRwdXREaXIgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9CisgICAg
ICAgIFZFUkJBVElNKQorRU5ETUFDUk8gKCkKKworCiBNQUNSTyAoR0VORVJBVEVfRE9NX05BTUVT
IF9uYW1lc3BhY2UgX2F0dHJzKQogICAgIFNFVChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJ
Un0vZG9tL21ha2VfbmFtZXMucGwpCiAgICAgU0VUKF9hcmd1bWVudHMgIC0tYXR0cnMgJHtfYXR0
cnN9KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173686</attachid>
            <date>2012-11-12 12:26:47 -0800</date>
            <delta_ts>2012-11-12 13:03:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100393-20121112122449.patch</filename>
            <type>text/plain</type>
            <size>95315</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg1N2M0MjVhNDhhMDgz
N2JhOTMxNTg3YWIxNDA5YTg5YTMzNjY2NC4uZDA2OTZiNWNhMDU3ZjBlOGYzMmY3ZWU3ZWUwM2U1
YmI2MmZiYmQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTExLTEyICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2VuZXJhdGUgU2V0dGluZ3Mg
ZnJvbSBhIC5pbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBHZW5lcmF0ZSBtb3N0IHNldHRpbmdzIGZyb20gYW4gLmluIGZpbGUgdG8gcmVkdWNl
IGh1bWFuIG1pc3Rha2VzIGFuZAorICAgICAgICB0byBtYWtlIGl0IGVhc2llciB0byBhZGQvcmVt
b3ZlIG5ldyBzZXR0aW5ncy4KKworICAgICAgICBJIG9ubHkgbW92ZWQgc2V0dGluZ3MgdGhhdCBh
cmUgZWFzeSB0byBtb3ZlIGF0IHRoaXMgcG9pbnQuICBUaGVyZSBhcmUgbWFueSBtb3JlIHRoYXQK
KyAgICAgICAgaGF2ZSBzb21lIG1pbm9yIG5hbWluZyBpbmNvbnNpc3RlbmNpZXMgdGhhdCB3ZSBj
YW4gYWxzbyBtb3ZlIHRvIFNldHRpbmdzLmluLCBidXQgSSdsbAorICAgICAgICBkbyB0aGF0IGlu
IGEgZm9sbG93IHVwIHBhdGNoLgorCisgICAgICAgIFRoaXMgZG9lc24ndCBnZW5lcmF0ZSBTZXR0
aW5nSW50ZXJuYWxzLiogeWV0LS0gd2UgY2FuIGRvIHRoYXQgaW4gYSBmb2xsb3cgdXAgcGF0Y2gu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGEgcmVmYWN0b3IuCisKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5tYWtlOiBSdW4gbWFrZV9zZXR0aW5ncy5wbC4KKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5wcmk6IFJ1biBtYWtlX3NldHRpbmdzLnBsLgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOiBSdW4gbWFrZV9zZXR0aW5ncy5wbC4KKyAgICAgICAgKiBXZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cDogUnVuIGFjdGlvbl9tYWtlbmFtZXMucHksIHdoaWNoIHdpbGwgcnVuIG1ha2Vf
c2V0dGluZ3MucGwuCisgICAgICAgICogV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5h
bWVzLnB5OgorICAgICAgICAobWFpbik6IEFsbG93IG1ha2Vfc2V0dGluZ3MucGwuCisgICAgICAg
ICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0
aW9uTWVzc2FnZTo6c2V0TWVzc2FnZURPTUFuZFN0YXJ0VGltZXIpOiBGaXggYSB0eXBvIGluICJt
YWduaWZpY2F0aW9uIi4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6IFJlcGxhY2UgZ2VuZXJhdGVkIHNldHRpbmdzIHdp
dGggU0VUVElOR1NfSU5JVElBTElaRVJfTElTVC4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6
CisgICAgICAgIChTZXR0aW5ncyk6IFJlcGxhY2UgZ2VuZXJhdGVkIHNldHRpbmdzIHdpdGggU0VU
VElOR1NfR0VUVEVSU19BTkRfU0VUVEVSUyBhbmQgU0VUVElOR1NfTUVNQkVSX1ZBUklBQkxFUy4K
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL21ha2Vf
c2V0dGluZ3MucGw6IEFkZGVkLgorICAgICAgICAoZGVmYXVsdEl0ZW1GYWN0b3J5KToKKyAgICAg
ICAgKGdlbmVyYXRlQ29kZSk6CisgICAgICAgIChnZW5lcmF0ZUhlYWRlcik6IFVzZSBhIHNpbWls
YXIgbW9kZWwgYXMgbWFrZV9uYW1lcy5wbC4KKyAgICAgICAgKHByaW50Q29uZGl0aW9uYWxNYWNy
b3MpOgorICAgICAgICAocHJpbnRHZXR0ZXJzQW5kU2V0dGVycyk6CisgICAgICAgIChwcmludE1l
bWJlclZhcmlhYmxlcyk6CisgICAgICAgIChwcmludEdldHRlckFuZFNldHRlcik6CisgICAgICAg
IChwcmludEluaXRpYWxpemVyTGlzdCk6CisgICAgICAgIChwcmludEluaXRpYWxpemVyKToKKwog
MjAxMi0xMS0xMiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW1Y4XVtKU0NdIFNjcmlwdFByb2ZpbGVOb2RlOjpjYWxsVUlEIG5lZWRzIG5vdCB0byBiZSBb
Q3VzdG9tXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwN2NhYWU0NWQwM2M5NmFkNzIxODRiMmI2
ZmIzMGNlNmIyOTY3Y2NlLi5hMTZjNTg0MjVmMWNhYWI5YWE1Y2U2YjBkMzhjN2RmMjhhNWQ0ZDRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjg5NCw2ICsyODk0LDEwIEBAIEdFTkVSQVRFX0VY
Q0VQVElPTl9DT0RFX0RFU0NSSVBUSU9OKCR7V0VCQ09SRV9ESVJ9L2RvbS9ET01FeGNlcHRpb25z
LmluIEV4Y2VwdGlvCiBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVJ9L0V4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbi5jcHApCiAKIAorR0VORVJB
VEVfU0VUVElOR1NfTUFDUk9TKCR7V0VCQ09SRV9ESVJ9L3BhZ2UvU2V0dGluZ3MuaW4gU2V0dGlu
Z3NNYWNyb3MuaCkKK0xJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0vU2V0dGluZ3NNYWNyb3MuaCkKKworCiBHRU5FUkFURV9GT05UX05BTUVT
KCR7V0VCQ09SRV9ESVJ9L2Nzcy9XZWJLaXRGb250RmFtaWx5TmFtZXMuaW4pCiBMSVNUKEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1dlYktpdEZv
bnRGYW1pbHlOYW1lcy5jcHApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDRj
NjRjODk1MWJhZDZjYjcwNGM1MGVmZWIwMzliMDg1MjM4NWEwODQuLmZkZjBlMWU4NmNjZTVmZTVm
NWJmMDEzNzViZGY5NjAzZjJjNTEzY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtOTI1LDYgKzkyNSwxMyBAQCBNYXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgTWF0aE1MTmFtZXMu
Y3BwIDogZG9tL21ha2VfbmFtZXMucGwgbWF0aG1sL21hdGh0YWdzLmluCiAKICMgLS0tLS0tLS0K
IAorYWxsIDogU2V0dGluZ3NNYWNyb3MuaAorCitTZXR0aW5nc01hY3Jvcy5oIDogcGFnZS9tYWtl
X3NldHRpbmdzLnBsIHBhZ2UvU2V0dGluZ3MuaW4KKwlwZXJsIC1JICQoV2ViQ29yZSkvYmluZGlu
Z3Mvc2NyaXB0cyAkPCAtLWlucHV0ICQoV2ViQ29yZSkvcGFnZS9TZXR0aW5ncy5pbgorCisjIC0t
LS0tLS0tCisKICMgQ29tbW9uIGdlbmVyYXRvciB0aGluZ3MKIAogR0VORVJBVEVfU0NSSVBUUyA9
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRleCA5OTI0ZTg1ZDcxYmY4OGM0NGVhNzQ3
YzdmMjllM2I4YzU0NDI4MDM1Li40MGVhMzhlYzNlNWI0NGQ0ZDVmNzUzZTJiZGVmZjRjOWNjNWIy
ZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC00Nyw2ICs0Nyw4IEBAIEVWRU5U
X1RBUkdFVF9GQUNUT1JZID0gJCRQV0QvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgogCiBET01f
RVhDRVBUSU9OUyA9ICQkUFdEL2RvbS9ET01FeGNlcHRpb25zLmluCiAKK1NFVFRJTkdTX01BQ1JP
UyA9ICQkUFdEL3BhZ2UvU2V0dGluZ3MuaW4KKwogQ09MT1JEQVRBX0dQRVJGID0gJCRQV0QvcGxh
dGZvcm0vQ29sb3JEYXRhLmdwZXJmCiAKIFdBTERPQ1NTUFJPUFMgPSAkJFBXRC9jc3MvQ1NTUHJv
cGVydHlOYW1lcy5pbgpAQCAtODY0LDYgKzg2NiwxNCBAQCBleGNlcHRpb25jb2RlZGVzY3JpcHRp
b24uY29tbWFuZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAkJGV4Y2VwdGlvbmNv
ZAogZXhjZXB0aW9uY29kZWRlc2NyaXB0aW9uLmRlcGVuZHMgPSAkJFBXRC9kb20vbWFrZV9kb21f
ZXhjZXB0aW9ucy5wbCAkJERPTV9FWENFUFRJT05TCiBHRU5FUkFUT1JTICs9IGV4Y2VwdGlvbmNv
ZGVkZXNjcmlwdGlvbgogCisjIEdFTkVSQVRPUiA1LUg6CitzZXR0aW5nc21hY3Jvcy5vdXRwdXQg
PSBTZXR0aW5nc01hY3Jvcy5oCitzZXR0aW5nc21hY3Jvcy5pbnB1dCA9IFNFVFRJTkdTX01BQ1JP
Uworc2V0dGluZ3NtYWNyb3Muc2NyaXB0ID0gJCRQV0QvcGFnZS9tYWtlX3NldHRpbmdzLnBsCitz
ZXR0aW5nc21hY3Jvcy5jb21tYW5kcyA9IHBlcmwgLUkkJFBXRC9iaW5kaW5ncy9zY3JpcHRzICQk
c2V0dGluZ3NtYWNyb3Muc2NyaXB0IC0taW5wdXQgJCRTRVRUSU5HU19NQUNST1MgLS1vdXRwdXRE
aXIgJHtRTUFLRV9GVU5DX0ZJTEVfT1VUX1BBVEh9CitzZXR0aW5nc21hY3Jvcy5kZXBlbmRzID0g
JCRQV0QvcGFnZS9tYWtlX3NldHRpbmdzLnBsICQkU0VUVElOR1NfTUFDUk9TCitHRU5FUkFUT1JT
ICs9IHNldHRpbmdzbWFjcm9zCisKICMgR0VORVJBVE9SIDgtQToKIGVudGl0aWVzLm91dHB1dCA9
IEhUTUxFbnRpdHlUYWJsZS5jcHAKIGVudGl0aWVzLmlucHV0ID0gSFRNTF9FTlRJVElFUwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQppbmRleCAwMzk3ZTMyZGFiNWEwNGYyMmVhYzdjZGNmNTRmYmIwZDk3NGEz
N2Y3Li5iODQ5YzVjZDUzYTBmZGFhMWI3YTRjZGE4NjJlNTM2ZGJiYmY3MjE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQpAQCAtNTAzLDYgKzUwMyw5IEBAIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXZl
bnRUYXJnZXRIZWFkZXJzLmggRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FdmVudFRhcmdldEluCiBE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0V4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbi5jcHAgRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9FeGNlcHRpb25Db2RlRGVzY3JpcHRpb24uaCBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0V4Y2VwdGlvbkhlYWRlcnMuaCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0V4Y2Vw
dGlvbkludGVyZmFjZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9kb21fZXhjZXB0aW9ucy5wbCAk
KFdlYkNvcmUpL2RvbS9ET01FeGNlcHRpb25zLmluCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0taW5wdXQgJChXZWJDb3JlKS9kb20vRE9NRXhj
ZXB0aW9ucy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIgogCitEZXJpdmVk
U291cmNlcy9XZWJDb3JlL1NldHRpbmdzTWFjcm9zLmg6ICQoV2ViQ29yZSkvcGFnZS9tYWtlX3Nl
dHRpbmdzLnBsICQoV2ViQ29yZSkvcGFnZS9TZXR0aW5ncy5pbgorCSQoQU1fVl9HRU4pJChQRVJM
KSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWlucHV0ICQoV2ViQ29yZSkvcGFn
ZS9TZXR0aW5ncy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIgorCiAjIEFs
bCBXZWIgSW5zcGVjdG9yIGdlbmVyYXRlZCBmaWxlcyBhcmUgY3JlYXRlZCB3aXRoIHRoaXMgb25l
IGNhbGwgdG8gQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weQogRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9JbnNwZWN0b3JQcm90b2NvbFZlcnNpb24uaCA6ICQoV2ViQ29yZSkvaW5zcGVjdG9yL0luc3Bl
Y3Rvci5qc29uICQoV2ViQ29yZSkvaW5zcGVjdG9yL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2Nv
bC12ZXJzaW9uCiAJJChBTV9WX0dFTikkKFBZVEhPTikgJChXZWJDb3JlKS9pbnNwZWN0b3IvZ2Vu
ZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLXZlcnNpb24gLW8gJChHRU5TT1VSQ0VTX1dFQkNPUkUp
L0luc3BlY3RvclByb3RvY29sVmVyc2lvbi5oICQoV2ViQ29yZSkvaW5zcGVjdG9yL0luc3BlY3Rv
ci5qc29uCkBAIC04MDYsNiArODA5LDggQEAgRVhUUkFfRElTVCArPSBcCiAJU291cmNlL1dlYkNv
cmUvbWFrZS1oYXNoLXRvb2xzLnBsIFwKIAlTb3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aGF0dHJz
LmluIFwKIAlTb3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aHRhZ3MuaW4gXAorCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5pbiBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9tYWtlLWNoYXJzZXQtdGFibGUucGwgXAogCVNv
dXJjZS9XZWJDb3JlL3N2Zy9zdmdhdHRycy5pbiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCA5MzAwY2NjNjNmMjA2OWJlZDkzNjc3MWFlODc4NWIxYTVlZWFhY2I4Li5jNTRlNzAy
YzBlODZiODczNjdiZDRmN2NlMmE5MDg3NTUyMTM2ZWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTExNDcsNiArMTE0Nyw3IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9NYXRoTUxFbGVtZW50RmFjdG9yeS5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL01hdGhNTE5hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9NYXRoTUxOYW1lcy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1NldHRpbmdzTWFj
cm9zLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU1ZHRWxlbWVudEZhY3RvcnkuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1NWR05hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9Vc2VyQWdlbnRHdGsuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGJhYzZhYWEz
MjhiN2FlNjBlYThlZGVhZWRkMzBkNTg2YjgxY2E3MWMuLjBiNjVlODZjYTJiMTFjN2YwODJlNjFk
NmMyNjk0MzAxY2I3YjMwMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05MTMsNyArOTEzLDYg
QEAgX19aTjdXZWJDb3JlOEdyYWRpZW50MTJhZGRDb2xvclN0b3BFZlJLTlNfNUNvbG9yRQogX19a
TjdXZWJDb3JlOEdyYWRpZW50QzFFUktOU18xMEZsb2F0UG9pbnRFUzNfCiBfX1pON1dlYkNvcmU4
UG9zaXRpb25DMUVOM1dURjEwUGFzc1JlZlB0cklOU180Tm9kZUVFRWlOUzBfMTBBbmNob3JUeXBl
RQogX19aTjdXZWJDb3JlOFNldHRpbmdzMTRzZXRKYXZhRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4
U2V0dGluZ3MxNXNldFdlYkdMRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MxNnNldElt
YWdlc0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMTZzZXRTY3JpcHRFbmFibGVkRWIK
IF9fWk43V2ViQ29yZThTZXR0aW5nczE2c2V0VXNlc1BhZ2VDYWNoZUViCkBAIC05MjMsNzcgKzky
MiwzOSBAQCBfX1pON1dlYkNvcmU4U2V0dGluZ3MxOHNldERlZmF1bHRGb250U2l6ZUVpCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MxOHNldEZpeGVkRm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJp
bmdFMTFVU2NyaXB0Q29kZQogX19aTjdXZWJDb3JlOFNldHRpbmdzMThzZXRNaW5pbXVtRm9udFNp
emVFaQogX19aTjdXZWJDb3JlOFNldHRpbmdzMThzZXRTZXJpZkZvbnRGYW1pbHlFUktOM1dURjEy
QXRvbWljU3RyaW5nRTExVVNjcmlwdENvZGUKLV9fWk43V2ViQ29yZThTZXR0aW5nczE4c2V0V2Vi
QXVkaW9FbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczE5bWluRE9NVGltZXJJbnRlcnZh
bEV2CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MxOXNldFNob3dEZWJ1Z0JvcmRlcnNFYgogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjBzZXRDdXJzaXZlRm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJp
bmdFMTFVU2NyaXB0Q29kZQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjBzZXRGYW50YXN5Rm9udEZh
bWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0Q29kZQotX19aTjdXZWJDb3JlOFNl
dHRpbmdzMjBzZXRYU1NBdWRpdG9yRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMW1v
Y2tTY3JvbGxiYXJzRW5hYmxlZEV2CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFNob3dSZXBh
aW50Q291bnRlckViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFN0YW5kYXJkRm9udEZhbWls
eUVSS04zV1RGMTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0Q29kZQogX19aTjdXZWJDb3JlOFNldHRp
bmdzMjFzZXRXZWJTZWN1cml0eUVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRM
b2NhbFN0b3JhZ2VFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0TWluRE9NVGlt
ZXJJbnRlcnZhbEVkCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNhbnNTZXJpZkZvbnRGYW1p
bHlFUktOM1dURjEyQXRvbWljU3RyaW5nRTExVVNjcmlwdENvZGUKLV9fWk43V2ViQ29yZThTZXR0
aW5nczIyc2V0U2Vzc2lvblN0b3JhZ2VRdW90YUVqCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNl
dFNob3dzVVJMc0luVG9vbFRpcHNFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRDYXJldEJy
b3dzaW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldERlZmF1bHRGaXhlZEZv
bnRTaXplRWkKLV9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0RWRpdGFibGVMaW5rQmVoYXZpb3JF
TlNfMjBFZGl0YWJsZUxpbmtCZWhhdmlvckUKLV9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0TG9h
ZERlZmVycmluZ0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRQaWN0b2dyYXBo
Rm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0Q29kZQotX19aTjdXZWJD
b3JlOFNldHRpbmdzMjNzZXRVc2VzRW5jb2RpbmdEZXRlY3RvckViCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MyNHNldEFwcGxpY2F0aW9uQ2hyb21lTW9kZUViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3My
NHNldEROU1ByZWZldGNoaW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldE1v
Y2tTY3JvbGxiYXJzRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldFVzZXNPdmVy
bGF5U2Nyb2xsYmFyc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldFN0b3JhZ2VCbG9ja2lu
Z1BvbGljeUVOU18xNFNlY3VyaXR5T3JpZ2luMjFTdG9yYWdlQmxvY2tpbmdQb2xpY3lFCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MyNHNldFRleHRBcmVhc0FyZVJlc2l6YWJsZUViCi1fX1pON1dlYkNv
cmU4U2V0dGluZ3MyNXNldERldmVsb3BlckV4dHJhc0VuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNl
dHRpbmdzMjVzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5n
czI1c2V0TWluaW11bUxvZ2ljYWxGb250U2l6ZUVpCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyNXNl
dE5lZWRzTGVvcGFyZE1haWxRdWlya3NFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0U2hvdWxkUHJp
bnRCYWNrZ3JvdW5kc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldFVzZXJTdHlsZVNoZWV0
TG9jYXRpb25FUktOU180S1VSTEUKIF9fWk43V2ViQ29yZThTZXR0aW5nczI2ZGVmYXVsdE1pbkRP
TVRpbWVySW50ZXJ2YWxFdgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjZzZXREZWZhdWx0VGV4dEVu
Y29kaW5nTmFtZUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZThTZXR0aW5nczI2c2V0TmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3NFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRGVFBEaXJl
Y3RvcnlUZW1wbGF0ZVBhdGhFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3My
N3NldEphdmFFbmFibGVkRm9yTG9jYWxGaWxlc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyN3Nl
dExvYWRzSW1hZ2VzQXV0b21hdGljYWxseUViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyN3NldExv
Y2FsU3RvcmFnZURhdGFiYXNlUGF0aEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZThTZXR0
aW5nczI3c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5n
czI4c2V0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbEVkCi1fX1pON1dlYkNvcmU4U2V0dGluZ3My
OHNldEZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3NFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjlz
ZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyOXNl
dEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI5c2V0
RGVmYXVsdE1pbkRPTVRpbWVySW50ZXJ2YWxFZAotX19aTjdXZWJDb3JlOFNldHRpbmdzMjlzZXRX
ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzMHNldEFs
bG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0ViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzMXNldENh
bnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmdFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzFzZXRK
YXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczMxc2V0
SmF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzMXNl
dFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMzJk
ZWZhdWx0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbEV2CiBfX1pON1dlYkNvcmU4U2V0dGluZ3Mz
MnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5n
czMyc2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmtFYgogX19aTjdXZWJDb3JlOFNldHRp
bmdzMzJzZXRTY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0
dGluZ3MzMnNldFNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0RWIKLV9fWk43V2ViQ29yZThT
ZXR0aW5nczMzc2V0RG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkRWIKLV9fWk43V2ViQ29y
ZThTZXR0aW5nczM0c2V0TG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZEViCi1fX1pON1dl
YkNvcmU4U2V0dGluZ3MzNXNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzRWIKLV9f
Wk43V2ViQ29yZThTZXR0aW5nczM1c2V0RW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGVF
YgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzVzZXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5h
YmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzNXNldFRyZWF0c0FueVRleHRDU1NMaW5rQXNT
dHlsZXNoZWV0RWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczM2c2V0T2ZmbGluZVdlYkFwcGxpY2F0
aW9uQ2FjaGVFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczM3c2V0Rml4ZWRFbGVtZW50
c0xheW91dFJlbGF0aXZlVG9GcmFtZUViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzN3NldFNjcm9s
bGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzNDBz
ZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5RWIKLV9fWk43V2ViQ29yZThT
ZXR0aW5nczQwc2V0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvckVOU18zN1Rl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JFCi1fX1pON1dlYkNvcmU4U2V0dGlu
Z3M0MXNldE5lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzRWIKLV9fWk43V2Vi
Q29yZThTZXR0aW5nczQ0c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRp
bmdFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzNDVzZXRTaG91bGRSZXNwZWN0UHJpb3JpdHlJbkNT
U0F0dHJpYnV0ZVNldHRlcnNFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRSZXNvbHV0aW9u
T3ZlcnJpZGVFUktOU183SW50U2l6ZUUKIF9fWk43V2ViQ29yZThTZXR0aW5nczIwc2V0TWVkaWFU
eXBlT3ZlcnJpZGVFUktOM1dURjZTdHJpbmdFCkBAIC0yMjQ5LDcgKzIyMTAsNiBAQCBfX1pOSzdX
ZWJDb3JlMTVDb250ZXh0TWVudUl0ZW03ZW5hYmxlZEV2CiBfX1pOSzdXZWJDb3JlOERvY3VtZW50
MTZhbm5vdGF0ZWRSZWdpb25zRXYKICNlbmRpZgogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9S
VCkKLV9fWk43V2ViQ29yZThTZXR0aW5nczQxc2V0VXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0
aWJpbGl0eU1vZGVFYgogI2VuZGlmCiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCAwZGZkMjc3MDk5MWM1ODEwMGY5NDg2
M2I5NDUwODU4NmJlYjQyN2UxLi45YmQ0ODE2MDhlZTY1OTFjMWEyZTMyZDA1MWY5MTgxMzViMTYx
Yzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtODc4LDYgKzg3
OCwyMyBAQAogICAgICAgICAgIF0sCiAgICAgICAgIH0sCiAgICAgICAgIHsKKyAgICAgICAgICAn
YWN0aW9uX25hbWUnOiAnU2V0dGluZ3MnLAorICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAg
ICAgICAnLi4vcGFnZS9tYWtlX3NldHRpbmdzLnBsJywKKyAgICAgICAgICAgICcuLi9wYWdlL1Nl
dHRpbmdzLmluJywKKyAgICAgICAgICBdLAorICAgICAgICAgICdvdXRwdXRzJzogWworICAgICAg
ICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9TZXR0aW5nc01hY3Jvcy5o
JywKKyAgICAgICAgICBdLAorICAgICAgICAgICdhY3Rpb24nOiBbCisgICAgICAgICAgICAncHl0
aG9uJywKKyAgICAgICAgICAgICdzY3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHknLAorICAgICAg
ICAgICAgJzxAKF9vdXRwdXRzKScsCisgICAgICAgICAgICAnLS0nLAorICAgICAgICAgICAgJzxA
KF9pbnB1dHMpJywKKyAgICAgICAgICBdLAorICAgICAgICB9LAorICAgICAgICB7CiAgICAgICAg
ICAgJ2FjdGlvbl9uYW1lJzogJ1VzZXJBZ2VudFN0eWxlU2hlZXRzJywKICAgICAgICAgICAndmFy
aWFibGVzJzogewogICAgICAgICAgICAgJ3NjcmlwdHMnOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHkKaW5kZXggOWFm
ZDhlODg1ZTk5NmFjNTBlNjdmOGVmNDAyOTkzNDE2ZDZiMTQ1Yy4uYTFhNDEwZjFlYTUwYzMxNTQy
ZWFkNTFiZDNhZTA0NmUxYzVlYzE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5weQpAQCAtMTE3LDIyICsxMTcsMTcg
QEAgZGVmIG1haW4oYXJncyk6CiAgICAgICAgIGlucHV0QWJzID0gb3MucGF0aC5hYnNwYXRoKGlu
cHV0KQogICAgICAgICBpbnB1dEFic1Bvc2l4ID0gaW5wdXRBYnMucmVwbGFjZShvcy5wYXRoLnNl
cCwgcG9zaXhwYXRoLnNlcCkKICAgICAgICAgaW5wdXRCYXNlbmFtZSA9IG9zLnBhdGguYmFzZW5h
bWUoaW5wdXQpCi0gICAgICAgIGlmIGlucHV0QmFzZW5hbWUgPT0gJ21ha2VfbmFtZXMucGwnIFwK
LSAgICAgICAgICAgIG9yIGlucHV0QmFzZW5hbWUgPT0gJ21ha2VfZXZlbnRfZmFjdG9yeS5wbCcg
XAotICAgICAgICAgICAgb3IgaW5wdXRCYXNlbmFtZSA9PSAnbWFrZV9kb21fZXhjZXB0aW9ucy5w
bCc6CisgICAgICAgIGlmIGlucHV0QmFzZW5hbWUgaW4gKCdtYWtlX25hbWVzLnBsJywgJ21ha2Vf
ZXZlbnRfZmFjdG9yeS5wbCcsICdtYWtlX2RvbV9leGNlcHRpb25zLnBsJywgJ21ha2Vfc2V0dGlu
Z3MucGwnKToKICAgICAgICAgICAgIGFzc2VydCBtYWtlTmFtZXNJbnB1dCA9PSBOb25lCiAgICAg
ICAgICAgICBtYWtlTmFtZXNJbnB1dCA9IGlucHV0QWJzCi0gICAgICAgIGVsaWYgaW5wdXRCYXNl
bmFtZS5lbmRzd2l0aCgnVGFnTmFtZXMuaW4nKSBcCi0gICAgICAgICAgICAgb3IgaW5wdXRCYXNl
bmFtZS5lbmRzd2l0aCgndGFncy5pbicpOgorICAgICAgICBlbGlmIGlucHV0QmFzZW5hbWUuZW5k
c3dpdGgoJ1RhZ05hbWVzLmluJykgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgndGFncy5pbicp
OgogICAgICAgICAgICAgYXNzZXJ0IHRhZ0lucHV0ID09IE5vbmUKICAgICAgICAgICAgIHRhZ0lu
cHV0ID0gaW5wdXRBYnNQb3NpeAotICAgICAgICBlbGlmIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgo
J0F0dHJpYnV0ZU5hbWVzLmluJykgXAotICAgICAgICAgICAgIG9yIGlucHV0QmFzZW5hbWUuZW5k
c3dpdGgoJ2F0dHJzLmluJyk6CisgICAgICAgIGVsaWYgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgn
QXR0cmlidXRlTmFtZXMuaW4nKSBvciBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdhdHRycy5pbicp
OgogICAgICAgICAgICAgYXNzZXJ0IGF0dHJJbnB1dCA9PSBOb25lCiAgICAgICAgICAgICBhdHRy
SW5wdXQgPSBpbnB1dEFic1Bvc2l4Ci0gICAgICAgIGVsaWYgaW5wdXRCYXNlbmFtZS5lbmRzd2l0
aCgnRXZlbnRUYXJnZXRGYWN0b3J5LmluJykgXAotICAgICAgICAgICAgb3IgaW5wdXRCYXNlbmFt
ZS5lbmRzd2l0aCgnRXZlbnROYW1lcy5pbicpIFwKLSAgICAgICAgICAgIG9yIGlucHV0QmFzZW5h
bWUuZW5kc3dpdGgoJ0RPTUV4Y2VwdGlvbnMuaW4nKToKKyAgICAgICAgZWxpZiAoaW5wdXRCYXNl
bmFtZS5lbmRzd2l0aCgnRXZlbnRUYXJnZXRGYWN0b3J5LmluJykgb3IgaW5wdXRCYXNlbmFtZS5l
bmRzd2l0aCgnRXZlbnROYW1lcy5pbicpCisgICAgICAgICAgICBvciBpbnB1dEJhc2VuYW1lLmVu
ZHN3aXRoKCdET01FeGNlcHRpb25zLmluJykgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgnU2V0
dGluZ3MuaW4nKSk6CiAgICAgICAgICAgICBldmVudHNJbnB1dCA9IGlucHV0QWJzUG9zaXgKICAg
ICAgICAgZWxpZiBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdOYW1lcy5pbicpOgogICAgICAgICAg
ICAgb3B0aW9ucy5hcHBlbmQoaW5wdXRBYnNQb3NpeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDUw
M2ViZDczMTNmNjUzM2Q4MDEwOGQ4ZDkxMjQyN2M4OTlkMWFiMDUuLjBlNmIxNThjZGEwNmRjOTJj
NjI1MjE1NjAzZmRhZjAxNTMzMThlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtNTIzLDcgKzUy
Myw2IEBAIF9fWk4zV1RGOUhhc2hUYWJsZUlQTjdXZWJDb3JlNFBhZ2VFUzNfTlNfMTdJZGVudGl0
eUV4dHJhY3RvcklTM19FRU5TXzdQdHJIYXNoSVMzCiBfX1pOM1dURjlIYXNoVGFibGVJUE43V2Vi
Q29yZTRQYWdlRVMzX05TXzE3SWRlbnRpdHlFeHRyYWN0b3JJUzNfRUVOU183UHRySGFzaElTM19F
RU5TXzEwSGFzaFRyYWl0c0lTM19FRVM5X0U2ZXhwYW5kRXYKIF9fWk43V2ViQ29yZTEyUGx1Z2lu
SGFsdGVyQzFFTjNXVEYxMFBhc3NPd25QdHJJTlNfMThQbHVnaW5IYWx0ZXJDbGllbnRFRUUKIF9f
Wk43V2ViQ29yZTRQYWdlMTZzZXRDYW5TdGFydE1lZGlhRWIKLV9fWk43V2ViQ29yZThTZXR0aW5n
czI3c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJD
b3JlNUZyYW1lNmNyZWF0ZUVQTlNfNFBhZ2VFUE5TXzIxSFRNTEZyYW1lT3duZXJFbGVtZW50RVBO
U18xN0ZyYW1lTG9hZGVyQ2xpZW50RQogX19aTjdXZWJDb3JlNUZyYW1lQzJFUE5TXzRQYWdlRVBO
U18yMUhUTUxGcmFtZU93bmVyRWxlbWVudEVQTlNfMTdGcmFtZUxvYWRlckNsaWVudEUKIF9fWk43
V2ViQ29yZTExRnJhbWVMb2FkZXJDMUVQTlNfNUZyYW1lRVBOU18xN0ZyYW1lTG9hZGVyQ2xpZW50
RQpAQCAtMTQzNCw0MCArMTQzMywyNCBAQCBfX1pOM1dURjlIYXNoVGFibGVJUE43V2ViQ29yZThE
b2N1bWVudEVTM19OU18xN0lkZW50aXR5RXh0cmFjdG9ySVMzX0VFTlNfN1B0ckhhcwogX19aTjNX
VEY5SGFzaFRhYmxlSVBON1dlYkNvcmU4RG9jdW1lbnRFUzNfTlNfMTdJZGVudGl0eUV4dHJhY3Rv
cklTM19FRU5TXzdQdHJIYXNoSVMzX0VFTlNfMTBIYXNoVHJhaXRzSVMzX0VFUzlfRTZleHBhbmRF
dgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXREZWZhdWx0Rml4ZWRGb250U2l6ZUVpCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MxOHNldERlZmF1bHRGb250U2l6ZUVpCi1fX1pON1dlYkNvcmU4U2V0
dGluZ3MyNnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lRVJLTjNXVEY2U3RyaW5nRQotX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjNzZXRVc2VzRW5jb2RpbmdEZXRlY3RvckViCiBfX1pON1dlYkNvcmU4
U2V0dGluZ3MyMHNldEZhbnRhc3lGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKIF9f
Wk43V2ViQ29yZThTZXR0aW5nczE4c2V0Rml4ZWRGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0
cmluZ0UKLV9fWk43V2ViQ29yZThTZXR0aW5nczI4c2V0Rm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5n
c0ViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyN3NldEZUUERpcmVjdG9yeVRlbXBsYXRlUGF0aEVS
S04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZThTZXR0aW5nczE0c2V0SmF2YUVuYWJsZWRFYgog
X19aTjdXZWJDb3JlOFNldHRpbmdzMjBzZXRKYXZhU2NyaXB0RW5hYmxlZEViCiBfX1pON1dlYkNv
cmU4U2V0dGluZ3MyMXNldFdlYlNlY3VyaXR5RW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGlu
Z3MzNXNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzRWIKLV9fWk43V2ViQ29yZThT
ZXR0aW5nczMwc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzRWIKLV9fWk43V2ViQ29yZThT
ZXR0aW5nczQwc2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseUViCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MxOHNldE1pbmltdW1Gb250U2l6ZUVpCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MyNXNldE1pbmltdW1Mb2dpY2FsRm9udFNpemVFaQogX19aTjdXZWJDb3JlOFNldHRpbmdz
MTdzZXRQbHVnaW5zRW5hYmxlZEViCiBfX1pON1dlYkNvcmUxNkFic3RyYWN0RGF0YWJhc2UxNHNl
dElzQXZhaWxhYmxlRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0TG9jYWxTdG9yYWdlRW5h
YmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzNXNldEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlv
bnNFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNhbnNTZXJpZkZvbnRGYW1pbHlFUktO
M1dURjEyQXRvbWljU3RyaW5nRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMThzZXRTZXJpZkZvbnRG
YW1pbHlFUktOM1dURjEyQXRvbWljU3RyaW5nRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRT
dGFuZGFyZEZvbnRGYW1pbHlFUktOM1dURjEyQXRvbWljU3RyaW5nRQogX19aTjdXZWJDb3JlOFNl
dHRpbmdzMjdzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlFYgotX19aTjdXZWJDb3JlOFNldHRp
bmdzNDRzZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZ0ViCi1fX1pO
N1dlYkNvcmU4U2V0dGluZ3MyNXNldFNob3VsZFByaW50QmFja2dyb3VuZHNFYgogX19aTjdXZWJD
b3JlOFNldHRpbmdzMjRzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnNFYgogX19aTjdXZWJDb3JlOFNl
dHRpbmdzMjRzZXRUZXh0QXJlYXNBcmVSZXNpemFibGVFYgotX19aTjdXZWJDb3JlOFNldHRpbmdz
MzFzZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0RWIKLV9fWk43V2ViQ29yZThTZXR0aW5n
czIzc2V0RWRpdGFibGVMaW5rQmVoYXZpb3JFTlNfMjBFZGl0YWJsZUxpbmtCZWhhdmlvckUKLV9f
Wk43V2ViQ29yZThTZXR0aW5nczQwc2V0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhh
dmlvckVOU18zN1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JFCiBfX1pON1dl
YkNvcmU4U2V0dGluZ3MxOHNldERPTVBhc3RlQWxsb3dlZEViCiBfX1pON1dlYkNvcmU4U2V0dGlu
Z3MxNnNldFVzZXNQYWdlQ2FjaGVFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRTaG93c1VS
THNJblRvb2xUaXBzRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0RGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyOXNldEF1dGhvckFuZFVzZXJTdHlsZXNF
bmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI0c2V0QXBwbGljYXRpb25DaHJvbWVNb2Rl
RWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbkVSS05T
XzRLVVJMRQpAQCAtMTQ3NSwzMiArMTQ1OCwxNiBAQCBfX1pON1dlYkNvcmU0UGFnZTI5dXNlclN0
eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWRFdgogX19aTks3V2ViQ29yZTRLVVJMMTBwcm90b2NvbElz
RVBLYwogX19aTjdXZWJDb3JlOERvY3VtZW50MTl1cGRhdGVQYWdlVXNlclNoZWV0RXYKIF9fWk43
V2ViQ29yZThTZXR0aW5nczMyc2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmtFYgotX19a
TjdXZWJDb3JlOFNldHRpbmdzMzVzZXRUcmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldEVi
Ci1fX1pON1dlYkNvcmU4U2V0dGluZ3M0MXNldE5lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0
aW9uUXVpcmtzRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0TmVlZHNMZW9wYXJkTWFpbFF1
aXJrc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldE5lZWRzVGlnZXJNYWlsUXVpcmtzRWIK
LV9fWk43V2ViQ29yZThTZXR0aW5nczI2c2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3NFYgotX19a
TjdXZWJDb3JlOFNldHRpbmdzMjlzZXRXZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZEViCi1fX1pO
N1dlYkNvcmU4U2V0dGluZ3MzNHNldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWRFYgot
X19aTjdXZWJDb3JlOFNldHRpbmdzMzZzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJs
ZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzFzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJv
YXJkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczIwc2V0WFNTQXVkaXRvckVuYWJsZWRFYgotX19a
TjdXZWJDb3JlOFNldHRpbmdzMzVzZXRFbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZUVi
CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldEROU1ByZWZldGNoaW5nRW5hYmxlZEViCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MzMnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkRWIKIF9f
Wk43V2ViQ29yZThTZXR0aW5nczI4c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZEViCi1fX1pO
N1dlYkNvcmU4U2V0dGluZ3MzMXNldENhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmdFYgogX19a
TjdXZWJDb3JlOFNldHRpbmdzMTlzZXRTaG93RGVidWdCb3JkZXJzRWIKIF9fWk43V2ViQ29yZThT
ZXR0aW5nczIxc2V0U2hvd1JlcGFpbnRDb3VudGVyRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIz
c2V0UGx1Z2luQWxsb3dlZFJ1blRpbWVFagogX19aTjdXZWJDb3JlNFBhZ2UyN3BsdWdpbkFsbG93
ZWRSdW5UaW1lQ2hhbmdlZEV2Ci1fX1pON1dlYkNvcmU4U2V0dGluZ3MxOHNldFdlYkF1ZGlvRW5h
YmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MxNXNldFdlYkdMRW5hYmxlZEViCi1fX1pON1dl
YkNvcmU4U2V0dGluZ3MyOXNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkRWIKIF9fWk43V2Vi
Q29yZTI3YXBwbGljYXRpb25Jc0Fkb2JlSW5zdGFsbGVyRXYKIF9fWk43V2ViQ29yZUwxOW1haW5C
dW5kbGVJc0VxdWFsVG9FUktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyM3Nl
dExvYWREZWZlcnJpbmdFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0RnJhbWVG
bGF0dGVuaW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyN3NldFNwYXRpYWxOYXZp
Z2F0aW9uRW5hYmxlZEViCiBfX1pON1dlYkNvcmUyMmFwcGxpY2F0aW9uSXNBcHBsZU1haWxFdgog
X19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTIxc2V0RGVmYXVsdE9yaWdpblF1
b3RhRXgKQEAgLTIyODEsNyArMjI0OCw2IEBAIF9fWk43V2ViQ29yZTVGcmFtZTlzY2FsZVBhZ2VF
ZlJLTlNfOEludFBvaW50RQogX19aTjdXZWJDb3JlOUZyYW1lVmlldzE3c2V0U2Nyb2xsUG9zaXRp
b25FUktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcxN3NldFNjcm9sbFBv
c2l0aW9uRVJLTlNfOEludFBvaW50RQogX19aTjdXZWJDb3JlMTBTY3JvbGxWaWV3MjVwbGF0Zm9y
bVNldFNjcm9sbFBvc2l0aW9uRVJLTlNfOEludFBvaW50RQotX19aTjdXZWJDb3JlOFNldHRpbmdz
NDFzZXRVc2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZUViCiBfX1pON1dlYkNv
cmU5RnJhbWVUcmVlOWNsZWFyTmFtZUV2CiBfX1pOSzdXZWJDb3JlNFBhZ2U5Z3JvdXBOYW1lRXYK
IF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0TWluRE9NVGltZXJJbnRlcnZhbEVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IDYxYTE2NDE4ZmNmMTI3MTEy
NjBjNjUzNzc1NzlmNjdkMTM2Yjg1YTguLjUzZWM3ZTQzODM1ODBkOGFiZDBiZDhiZGVjOThlMTJk
NWNhODJmMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3Nh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBA
IC0xMzksNyArMTM5LDcgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6c2V0TWVzc2FnZURPTUFu
ZFN0YXJ0VGltZXIoVGltZXI8VmFsaWRhdGlvbk1lc3NhZ2U+KikKICAgICAgICAgICAgIG1fbWVz
c2FnZUhlYWRpbmctPnNldElubmVyVGV4dChsaW5lc1tpXSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CiAgICAgfQogCi0gICAgaW50IG1hZ25pZmljYXRpb24gPSBkb2MtPnBhZ2UoKSA/IGRvYy0+cGFn
ZSgpLT5zZXR0aW5ncygpLT52YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnaW5pZmljYXRpb24oKSA6
IC0xOworICAgIGludCBtYWduaWZpY2F0aW9uID0gZG9jLT5wYWdlKCkgPyBkb2MtPnBhZ2UoKS0+
c2V0dGluZ3MoKS0+dmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb24oKSA6IC0xOwog
ICAgIGlmIChtYWduaWZpY2F0aW9uIDw9IDApCiAgICAgICAgIG1fdGltZXIuY2xlYXIoKTsKICAg
ICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggY2U3NjY5YTZkN2YwODM4YmZh
MGZhNmVkYWUyMTFkMTMyZWQyYzg0Zi4uZDI0YTFjMDliYjY5MWQ1ZTk0MTQ4NDdkYmZmM2M0ZWQ4
ODVlZWIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTEyOSwyMyArMTI5LDExIEBA
IHN0YXRpYyBjb25zdCBkb3VibGUgZGVmYXVsdEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Np
b25UaW1lb3V0SW5TZWNvbmRzID0gNTsKIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQog
ICAgIDogbV9wYWdlKDApCiAgICAgLCBtX21lZGlhVHlwZU92ZXJyaWRlKCJzY3JlZW4iKQotICAg
ICwgbV9lZGl0YWJsZUxpbmtCZWhhdmlvcihFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3IpCi0g
ICAgLCBtX3RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IoVGV4dERpcmVjdGlv
blN1Ym1lbnVBdXRvbWF0aWNhbGx5SW5jbHVkZWQpCi0gICAgLCBtX3Bhc3N3b3JkRWNob0R1cmF0
aW9uSW5TZWNvbmRzKDEpCiAgICAgLCBtX21pbmltdW1Gb250U2l6ZSgwKQogICAgICwgbV9taW5p
bXVtTG9naWNhbEZvbnRTaXplKDApCiAgICAgLCBtX2RlZmF1bHRGb250U2l6ZSgwKQogICAgICwg
bV9kZWZhdWx0Rml4ZWRGb250U2l6ZSgwKQogICAgICwgbV9zY3JlZW5Gb250U3Vic3RpdHV0aW9u
RW5hYmxlZCh0cnVlKQotICAgICwgbV92YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlv
big1MCkKLSAgICAsIG1fbWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplKDI1NyAqIDI1NikK
LSAgICAsIG1fbGF5b3V0RmFsbGJhY2tXaWR0aCg5ODApCi0gICAgLCBtX21heGltdW1EZWNvZGVk
SW1hZ2VTaXplKG51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKQotICAgICwgbV9kZXZpY2VX
aWR0aCgwKQotICAgICwgbV9kZXZpY2VIZWlnaHQoMCkKLSAgICAsIG1fc2Vzc2lvblN0b3JhZ2VR
dW90YShTdG9yYWdlTWFwOjpub1F1b3RhKQotICAgICwgbV9lZGl0aW5nQmVoYXZpb3JUeXBlKGVk
aXRpbmdCZWhhdmlvclR5cGVGb3JQbGF0Zm9ybSgpKQotICAgICwgbV9tYXhpbXVtSFRNTFBhcnNl
ckRPTVRyZWVEZXB0aChkZWZhdWx0TWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgpCiAgICAg
LCBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdl
KQogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgLCBtX3RleHRBdXRvc2l6aW5nRm9u
dFNjYWxlRmFjdG9yKDEpCkBAIC0xNTYsNTggKzE0NCwyNCBAQCBTZXR0aW5nczo6U2V0dGluZ3Mo
UGFnZSogcGFnZSkKICAgICAsIG1fdGV4dEF1dG9zaXppbmdFbmFibGVkKGZhbHNlKQogI2VuZGlm
CiAjZW5kaWYKKyAgICBTRVRUSU5HU19JTklUSUFMSVpFUl9MSVNUCiAgICAgLCBtX2lzU3BhdGlh
bE5hdmlnYXRpb25FbmFibGVkKGZhbHNlKQogICAgICwgbV9pc0phdmFFbmFibGVkKGZhbHNlKQog
ICAgICwgbV9pc0phdmFFbmFibGVkRm9yTG9jYWxGaWxlcyh0cnVlKQogICAgICwgbV9sb2Fkc0lt
YWdlc0F1dG9tYXRpY2FsbHkoZmFsc2UpCi0gICAgLCBtX2xvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdTZXR0aW5nKGZhbHNlKQogICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVk
KGZhbHNlKQotICAgICwgbV9jYXJldEJyb3dzaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fYXJl
SW1hZ2VzRW5hYmxlZCh0cnVlKQogICAgICwgbV9pc01lZGlhRW5hYmxlZCh0cnVlKQogICAgICwg
bV9hcmVQbHVnaW5zRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fbG9jYWxTdG9yYWdlRW5hYmxlZChm
YWxzZSkKICAgICAsIG1faXNTY3JpcHRFbmFibGVkKGZhbHNlKQogICAgICwgbV9pc1dlYlNlY3Vy
aXR5RW5hYmxlZCh0cnVlKQotICAgICwgbV9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJM
cyh0cnVlKQotICAgICwgbV9hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHModHJ1ZSkKLSAgICAs
IG1famF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShmYWxzZSkKLSAgICAsIG1f
c3VwcG9ydHNNdWx0aXBsZVdpbmRvd3ModHJ1ZSkKLSAgICAsIG1famF2YVNjcmlwdENhbkFjY2Vz
c0NsaXBib2FyZChmYWxzZSkKLSAgICAsIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhmYWxzZSkK
ICAgICAsIG1fdGV4dEFyZWFzQXJlUmVzaXphYmxlKGZhbHNlKQotI2lmIEVOQUJMRShEQVNIQk9B
UkRfU1VQUE9SVCkKLSAgICAsIG1fdXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1v
ZGUoZmFsc2UpCi0jZW5kaWYKICAgICAsIG1fbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmso
ZmFsc2UpCi0gICAgLCBtX25lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzKGZh
bHNlKQotICAgICwgbV90cmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldChmYWxzZSkKLSAg
ICAsIG1fbmVlZHNMZW9wYXJkTWFpbFF1aXJrcyhmYWxzZSkKICAgICAsIG1faXNET01QYXN0ZUFs
bG93ZWQoZmFsc2UpCi0gICAgLCBtX3Nocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQodHJ1ZSkK
ICAgICAsIG1fdXNlc1BhZ2VDYWNoZShmYWxzZSkKLSAgICAsIG1fcGFnZUNhY2hlU3VwcG9ydHNQ
bHVnaW5zKGZhbHNlKQotICAgICwgbV9zaG93c1VSTHNJblRvb2xUaXBzKGZhbHNlKQotICAgICwg
bV9zaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dChmYWxzZSkKLSAgICAsIG1fZm9yY2VGVFBE
aXJlY3RvcnlMaXN0aW5ncyhmYWxzZSkKLSAgICAsIG1fZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChm
YWxzZSkKLSAgICAsIG1famF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZChmYWxzZSkKICAgICAs
IG1fYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQodHJ1ZSkKLSAgICAsIG1fbmVlZHNTaXRlU3Bl
Y2lmaWNRdWlya3MoZmFsc2UpCiAgICAgLCBtX2ZvbnRSZW5kZXJpbmdNb2RlKDApCi0gICAgLCBt
X2ZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoZmFsc2UpCi0jaWYgRU5BQkxFKFdFQl9BUkNISVZFKQot
ICAgICwgbV93ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZChmYWxzZSkKLSNlbmRpZgotICAgICwg
bV9sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9pbkFwcGxp
Y2F0aW9uQ2hyb21lTW9kZShmYWxzZSkKLSAgICAsIG1fb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVFbmFibGVkKGZhbHNlKQotICAgICwgbV9lbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9k
ZSh0cnVlKQotICAgICwgbV91c2VzRW5jb2RpbmdEZXRlY3RvcihmYWxzZSkKLSAgICAsIG1fYWxs
b3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MoZmFsc2UpCi0gICAgLCBtX2NhbnZhc1VzZXNBY2NlbGVy
YXRlZERyYXdpbmcoZmFsc2UpCi0gICAgLCBtX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoZmFs
c2UpCi0gICAgLCBtX2FjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lz
Q1NTQ3VzdG9tRmlsdGVyRW5hYmxlZChmYWxzZSkKICNpZiBFTkFCTEUoQ1NTX1NUSUNLWV9QT1NJ
VElPTikKICAgICAsIG1fY3NzU3RpY2t5UG9zaXRpb25FbmFibGVkKHRydWUpCkBAIC0yMTgsOTAg
KzE3MiwyNCBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICNpZiBFTkFCTEUoQ1NT
X1ZBUklBQkxFUykKICAgICAsIG1fY3NzVmFyaWFibGVzRW5hYmxlZChmYWxzZSkKICNlbmRpZgot
ICAgICwgbV9yZWdpb25CYXNlZENvbHVtbnNFbmFibGVkKGZhbHNlKQotICAgICwgbV9jc3NHcmlk
TGF5b3V0RW5hYmxlZChmYWxzZSkKLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVhbGx5IGJl
IGRpc2FibGVkIGJ5IGRlZmF1bHQgYXMgaXQgbWFrZXMgcGxhdGZvcm1zIHRoYXQgZG9uJ3Qgc3Vw
cG9ydCB0aGUgZmVhdHVyZSBkb3dubG9hZCBmaWxlcwotICAgIC8vIHRoZXkgY2FuJ3QgdXNlIGJ5
LiBMZWF2aW5nIGVuYWJsZWQgZm9yIG5vdyB0byBub3QgY2hhbmdlIGV4aXN0aW5nIGJlaGF2aW9y
LgotICAgICwgbV9kb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQodHJ1ZSkKLSAgICAsIG1f
eHNzQXVkaXRvckVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkKHRydWUpCi0gICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9y
bXNFbmFibGVkKHRydWUpCi0gICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0Vu
YWJsZWQodHJ1ZSkKLSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFi
bGVkKHRydWUpCi0gICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVk
KHRydWUpCi0gICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JBbmltYXRpb25FbmFibGVk
KHRydWUpCi0gICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5h
YmxlZChmYWxzZSkKLSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVG
cmFtZXNFbmFibGVkKGZhbHNlKQogICAgICwgbV9zaG93RGVidWdCb3JkZXJzKGZhbHNlKQogICAg
ICwgbV9zaG93UmVwYWludENvdW50ZXIoZmFsc2UpCi0gICAgLCBtX2V4cGVyaW1lbnRhbE5vdGlm
aWNhdGlvbnNFbmFibGVkKGZhbHNlKQotICAgICwgbV93ZWJHTEVuYWJsZWQoZmFsc2UpCi0gICAg
LCBtX3dlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fb3BlbkdMTXVs
dGlzYW1wbGluZ0VuYWJsZWQodHJ1ZSkKLSAgICAsIG1fcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9u
c0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX3dlYkF1ZGlvRW5hYmxlZChmYWxzZSkKLSAgICAsIG1f
YWNjZWxlcmF0ZWRDYW52YXMyZEVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2RlZmVycmVkQ2FudmFz
MmRFbmFibGVkKGZhbHNlKQotICAgICwgbV9sb2FkRGVmZXJyaW5nRW5hYmxlZCh0cnVlKQogICAg
ICwgbV90aWxlZEJhY2tpbmdTdG9yZUVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX3BhZ2luYXRlRHVy
aW5nTGF5b3V0RW5hYmxlZChmYWxzZSkKICAgICAsIG1fZG5zUHJlZmV0Y2hpbmdFbmFibGVkKGZh
bHNlKQotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICAsIG1fZnVsbFNjcmVlbkFQSUVu
YWJsZWQoZmFsc2UpCi0jZW5kaWYKLSAgICAsIG1fYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoZmFsc2UpCiAjaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKICAgICAsIG1fdW5p
ZmllZFRleHRDaGVja2VyRW5hYmxlZCh0cnVlKQogI2Vsc2UKICAgICAsIG1fdW5pZmllZFRleHRD
aGVja2VyRW5hYmxlZChmYWxzZSkKICNlbmRpZgotICAgICwgbV9tZW1vcnlJbmZvRW5hYmxlZChm
YWxzZSkKLSAgICAsIG1fcXVhbnRpemVkTWVtb3J5SW5mb0VuYWJsZWQoZmFsc2UpCi0gICAgLCBt
X2ludGVyYWN0aXZlRm9ybVZhbGlkYXRpb24oZmFsc2UpCi0gICAgLCBtX3VzZVByZUhUTUw1UGFy
c2VyUXVpcmtzKGZhbHNlKQotICAgICwgbV9oeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoZmFsc2Up
Ci0gICAgLCBtX2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkKGZh
bHNlKQotICAgICwgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZShmYWxzZSkKLSAgICAsIG1fc2hvdWxk
SW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50KGZhbHNlKQotICAgICwgbV9m
aXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGZhbHNlKQotICAgICwgbV9hbGxvd0Rp
c3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVlKQotICAgICwgbV9hbGxvd1J1bm5pbmdPZkluc2Vj
dXJlQ29udGVudCh0cnVlKQogI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQogICAgICwgbV9z
Y3JvbGxBbmltYXRvckVuYWJsZWQodHJ1ZSkKICNlbmRpZgotICAgICwgbV9tZWRpYVBsYXliYWNr
UmVxdWlyZXNVc2VyR2VzdHVyZShmYWxzZSkKLSAgICAsIG1fbWVkaWFQbGF5YmFja0FsbG93c0lu
bGluZSh0cnVlKQotICAgICwgbV9wYXNzd29yZEVjaG9FbmFibGVkKGZhbHNlKQotICAgICwgbV9z
dXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcoZmFsc2UpCi0gICAgLCBtX2JhY2tzcGFjZUtl
eU5hdmlnYXRpb25FbmFibGVkKHRydWUpCi0gICAgLCBtX3Zpc3VhbFdvcmRNb3ZlbWVudEVuYWJs
ZWQoZmFsc2UpCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgICwgbV9zaG91bGREaXNwbGF5
U3VidGl0bGVzKGZhbHNlKQotICAgICwgbV9zaG91bGREaXNwbGF5Q2FwdGlvbnMoZmFsc2UpCi0g
ICAgLCBtX3Nob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zKGZhbHNlKQotI2VuZGlmCi0gICAg
LCBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fbm90aWZpY2F0
aW9uc0VuYWJsZWQodHJ1ZSkKLSAgICAsIG1fbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmso
ZmFsc2UpCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICAsIG1fdG91Y2hFdmVudEVtdWxh
dGlvbkVuYWJsZWQoZmFsc2UpCiAjZW5kaWYKLSAgICAsIG1fc2hvdWxkUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24oZmFsc2UpCi0gICAgLCBtX3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVo
YXZpb3IoZmFsc2UpCi0gICAgLCBtX3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQodHJ1ZSkK
LSAgICAsIG1fZGV2aWNlU3VwcG9ydHNUb3VjaChmYWxzZSkKLSAgICAsIG1fZGV2aWNlU3VwcG9y
dHNNb3VzZSh0cnVlKQotICAgICwgbV9uZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKGZhbHNl
KQotICAgICwgbV9maXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dChmYWxzZSkKLSAg
ICAsIG1fc3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZCh0cnVlKQotICAgICwgbV9jb29raWVFbmFi
bGVkKHRydWUpCi0gICAgLCBtX3dpbmRvd0ZvY3VzUmVzdHJpY3RlZCh0cnVlKQotICAgICwgbV9k
aWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3Njcm9sbGluZ1BlcmZvcm1h
bmNlTG9nZ2luZ0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2FwcGx5UGFnZVNjYWxlRmFjdG9ySW5D
b21wb3NpdG9yKGZhbHNlKQotICAgICwgbV9wbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkKGZhbHNl
KQogICAgICwgbV9zZXRJbWFnZUxvYWRpbmdTZXR0aW5nc1RpbWVyKHRoaXMsICZTZXR0aW5nczo6
aW1hZ2VMb2FkaW5nU2V0dGluZ3NUaW1lckZpcmVkKQotICAgICwgbV9pbmNyZW1lbnRhbFJlbmRl
cmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcyhkZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJp
bmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMpCiB7CiAgICAgLy8gQSBGcmFtZSBtYXkgbm90
IGhhdmUgYmVlbiBjcmVhdGVkIHlldCwgc28gd2UgaW5pdGlhbGl6ZSB0aGUgQXRvbWljU3RyaW5n
CiAgICAgLy8gaGFzaCBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KQEAgLTUwOCwxMSArMzk2LDYg
QEAgdm9pZCBTZXR0aW5nczo6aW1hZ2VMb2FkaW5nU2V0dGluZ3NUaW1lckZpcmVkKFRpbWVyPFNl
dHRpbmdzPiopCiAgICAgc2V0SW1hZ2VMb2FkaW5nU2V0dGluZ3MobV9wYWdlKTsKIH0KIAotdm9p
ZCBTZXR0aW5nczo6c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmco
Ym9vbCBsb2Fkc1NpdGVJY29ucykKLXsKLSAgICBtX2xvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFn
ZUxvYWRpbmdTZXR0aW5nID0gbG9hZHNTaXRlSWNvbnM7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNl
dFNjcmlwdEVuYWJsZWQoYm9vbCBpc1NjcmlwdEVuYWJsZWQpCiB7CiAgICAgbV9pc1NjcmlwdEVu
YWJsZWQgPSBpc1NjcmlwdEVuYWJsZWQ7CkBAIC01MjMsMTYgKzQwNiw2IEBAIHZvaWQgU2V0dGlu
Z3M6OnNldFdlYlNlY3VyaXR5RW5hYmxlZChib29sIGlzV2ViU2VjdXJpdHlFbmFibGVkKQogICAg
IG1faXNXZWJTZWN1cml0eUVuYWJsZWQgPSBpc1dlYlNlY3VyaXR5RW5hYmxlZDsKIH0KIAotdm9p
ZCBTZXR0aW5nczo6c2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoYm9vbCBhbGxv
d1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcykKLXsKLSAgICBtX2FsbG93VW5pdmVyc2FsQWNj
ZXNzRnJvbUZpbGVVUkxzID0gYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM7Ci19Ci0K
LXZvaWQgU2V0dGluZ3M6OnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhib29sIGFsbG93
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcykKLXsKLSAgICBtX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMcyA9IGFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczsKLX0KLQogdm9pZCBTZXR0aW5nczo6
c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJs
ZWQpCiB7CiAgICAgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA9IGlzU3BhdGlhbE5hdmln
YXRpb25FbmFibGVkOwpAQCAtNTY2LDE2ICs0MzksNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRQbHVn
aW5zRW5hYmxlZChib29sIGFyZVBsdWdpbnNFbmFibGVkKQogICAgIG1fYXJlUGx1Z2luc0VuYWJs
ZWQgPSBhcmVQbHVnaW5zRW5hYmxlZDsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0TG9jYWxTdG9y
YWdlRW5hYmxlZChib29sIGxvY2FsU3RvcmFnZUVuYWJsZWQpCi17Ci0gICAgbV9sb2NhbFN0b3Jh
Z2VFbmFibGVkID0gbG9jYWxTdG9yYWdlRW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0
U2Vzc2lvblN0b3JhZ2VRdW90YSh1bnNpZ25lZCBzZXNzaW9uU3RvcmFnZVF1b3RhKQotewotICAg
IG1fc2Vzc2lvblN0b3JhZ2VRdW90YSA9IHNlc3Npb25TdG9yYWdlUXVvdGE7Ci19Ci0KIHZvaWQg
U2V0dGluZ3M6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBwcml2YXRlQnJvd3NpbmdF
bmFibGVkKQogewogICAgIC8vIEZJWE1FIGh0dHA6Ly93ZWJraXQub3JnL2IvNjc4NzA6IFRoZSBw
cml2YXRlIGJyb3dzaW5nIHN0b3JhZ2Ugc2Vzc2lvbiBhbmQgY29va2llIHByaXZhdGUKQEAgLTYw
MSwyNiArNDY0LDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChi
b29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCiAgICAgbV9wYWdlLT5wcml2YXRlQnJvd3NpbmdT
dGF0ZUNoYW5nZWQoKTsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0SmF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseShib29sIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRp
Y2FsbHkpCi17Ci0gICAgbV9qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0g
amF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTsKLX0KLQotdm9pZCBTZXR0aW5n
czo6c2V0U3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MoYm9vbCBzdXBwb3J0c011bHRpcGxlV2luZG93
cykKLXsKLSAgICBtX3N1cHBvcnRzTXVsdGlwbGVXaW5kb3dzID0gc3VwcG9ydHNNdWx0aXBsZVdp
bmRvd3M7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9h
cmQoYm9vbCBqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKQotewotICAgIG1famF2YVNjcmlw
dENhbkFjY2Vzc0NsaXBib2FyZCA9IGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQ7Ci19Ci0K
LXZvaWQgU2V0dGluZ3M6OnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFN0cmluZyYg
ZGVmYXVsdFRleHRFbmNvZGluZ05hbWUpCi17Ci0gICAgbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFt
ZSA9IGRlZmF1bHRUZXh0RW5jb2RpbmdOYW1lOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRVc2Vy
U3R5bGVTaGVldExvY2F0aW9uKGNvbnN0IEtVUkwmIHVzZXJTdHlsZVNoZWV0TG9jYXRpb24pCiB7
CiAgICAgaWYgKG1fdXNlclN0eWxlU2hlZXRMb2NhdGlvbiA9PSB1c2VyU3R5bGVTaGVldExvY2F0
aW9uKQpAQCAtNjMxLDE2ICs0NzQsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRVc2VyU3R5bGVTaGVl
dExvY2F0aW9uKGNvbnN0IEtVUkwmIHVzZXJTdHlsZVNoZWV0TG9jYXRpb24pCiAgICAgbV9wYWdl
LT51c2VyU3R5bGVTaGVldExvY2F0aW9uQ2hhbmdlZCgpOwogfQogCi12b2lkIFNldHRpbmdzOjpz
ZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJvb2wgZml4ZWRFbGVtZW50c0xh
eW91dFJlbGF0aXZlVG9GcmFtZSkKLXsKLSAgICBtX2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2
ZVRvRnJhbWUgPSBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lOwotfQotCi12b2lk
IFNldHRpbmdzOjpzZXRTaG91bGRQcmludEJhY2tncm91bmRzKGJvb2wgc2hvdWxkUHJpbnRCYWNr
Z3JvdW5kcykKLXsKLSAgICBtX3Nob3VsZFByaW50QmFja2dyb3VuZHMgPSBzaG91bGRQcmludEJh
Y2tncm91bmRzOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRUZXh0QXJlYXNBcmVSZXNpemFibGUo
Ym9vbCB0ZXh0QXJlYXNBcmVSZXNpemFibGUpCiB7CiAgICAgaWYgKG1fdGV4dEFyZWFzQXJlUmVz
aXphYmxlID09IHRleHRBcmVhc0FyZVJlc2l6YWJsZSkKQEAgLTY1MCwyMyArNDgzLDYgQEAgdm9p
ZCBTZXR0aW5nczo6c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKGJvb2wgdGV4dEFyZWFzQXJlUmVz
aXphYmxlKQogICAgIG1fcGFnZS0+c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7CiB9
CiAKLXZvaWQgU2V0dGluZ3M6OnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKEVkaXRhYmxlTGlua0Jl
aGF2aW9yIGVkaXRhYmxlTGlua0JlaGF2aW9yKQotewotICAgIG1fZWRpdGFibGVMaW5rQmVoYXZp
b3IgPSBlZGl0YWJsZUxpbmtCZWhhdmlvcjsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0VGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcihUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1
c2lvbkJlaGF2aW9yIGJlaGF2aW9yKQotewotICAgIG1fdGV4dERpcmVjdGlvblN1Ym1lbnVJbmNs
dXNpb25CZWhhdmlvciA9IGJlaGF2aW9yOwotfQotCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQ
T1JUKQotdm9pZCBTZXR0aW5nczo6c2V0VXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0
eU1vZGUoYm9vbCB1c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSkKLXsKLSAg
ICBtX3VzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlID0gdXNlc0Rhc2hib2Fy
ZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGU7Ci19Ci0jZW5kaWYKLQogLy8gRklYTUU6IFRoaXMg
cXVpcmsgaXMgbmVlZGVkIGJlY2F1c2Ugb2YgUmFkYXIgNDY3NDUzNyBhbmQgNTIxMTI3MS4gV2Ug
bmVlZCB0byBwaGFzZSBpdCBvdXQgb25jZSBBZG9iZQogLy8gY2FuIGZpeCB0aGUgYnVnIGZyb20g
dGhlaXIgZW5kLgogdm9pZCBTZXR0aW5nczo6c2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVp
cmsoYm9vbCBzaG91bGROb3RSZWxvYWRJRnJhbWVzRm9yVW5jaGFuZ2VkU1JDKQpAQCAtNjc0LDI0
ICs0OTAsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXROZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWly
ayhib29sIHNob3VsZE5vdFJlbG9hZElGcmFtZXNGb3JVbgogICAgIG1fbmVlZHNBZG9iZUZyYW1l
UmVsb2FkaW5nUXVpcmsgPSBzaG91bGROb3RSZWxvYWRJRnJhbWVzRm9yVW5jaGFuZ2VkU1JDOwog
fQogCi0vLyBUaGlzIGlzIGEgcXVpcmsgd2UgYXJlIHByby1hY3RpdmVseSBhcHBseWluZyB0byBv
bGQgYXBwbGljYXRpb25zLiBJdCBjaGFuZ2VzIGtleWJvYXJkIGV2ZW50IGRpc3BhdGNoaW5nLAot
Ly8gbWFraW5nIGtleUlkZW50aWZpZXIgYXZhaWxhYmxlIG9uIGtleXByZXNzIGV2ZW50cywgbWFr
aW5nIGNoYXJDb2RlIGF2YWlsYWJsZSBvbiBrZXlkb3duL2tleXVwIGV2ZW50cywKLS8vIGFuZCBn
ZXR0aW5nIGtleXByZXNzIGRpc3BhdGNoZWQgaW4gbW9yZSBjYXNlcy4KLXZvaWQgU2V0dGluZ3M6
OnNldE5lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzKGJvb2wgbmVlZHNRdWly
a3MpCi17Ci0gICAgbV9uZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcyA9IG5l
ZWRzUXVpcmtzOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRUcmVhdHNBbnlUZXh0Q1NTTGlua0Fz
U3R5bGVzaGVldChib29sIHRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0KQotewotICAg
IG1fdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQgPSB0cmVhdHNBbnlUZXh0Q1NTTGlu
a0FzU3R5bGVzaGVldDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0TmVlZHNMZW9wYXJkTWFpbFF1
aXJrcyhib29sIG5lZWRzUXVpcmtzKQotewotICAgIG1fbmVlZHNMZW9wYXJkTWFpbFF1aXJrcyA9
IG5lZWRzUXVpcmtzOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRET01QYXN0ZUFsbG93ZWQoYm9v
bCBET01QYXN0ZUFsbG93ZWQpCiB7CiAgICAgbV9pc0RPTVBhc3RlQWxsb3dlZCA9IERPTVBhc3Rl
QWxsb3dlZDsKQEAgLTc1Miw0MSArNTUwLDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0VXNlc1BhZ2VD
YWNoZShib29sIHVzZXNQYWdlQ2FjaGUpCiAgICAgfQogfQogCi12b2lkIFNldHRpbmdzOjpzZXRT
aHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KGJvb2wgc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNU
b0ZpdCkKLXsKLSAgICBtX3Nocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQgPSBzaHJpbmtzU3Rh
bmRhbG9uZUltYWdlc1RvRml0OwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRTaG93c1VSTHNJblRv
b2xUaXBzKGJvb2wgc2hvd3NVUkxzSW5Ub29sVGlwcykKLXsKLSAgICBtX3Nob3dzVVJMc0luVG9v
bFRpcHMgPSBzaG93c1VSTHNJblRvb2xUaXBzOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRTaG93
c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dChib29sIHNob3dzVG9vbFRpcEZvclRydW5jYXRlZFRl
eHQpCi17Ci0gICAgbV9zaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCA9IHNob3dzVG9vbFRp
cEZvclRydW5jYXRlZFRleHQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEZUUERpcmVjdG9yeVRl
bXBsYXRlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCi17Ci0gICAgbV9mdHBEaXJlY3RvcnlUZW1w
bGF0ZVBhdGggPSBwYXRoOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRGb3JjZUZUUERpcmVjdG9y
eUxpc3RpbmdzKGJvb2wgZm9yY2UpCi17Ci0gICAgbV9mb3JjZUZUUERpcmVjdG9yeUxpc3Rpbmdz
ID0gZm9yY2U7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQo
Ym9vbCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkKQotewotICAgIG1fZGV2ZWxvcGVyRXh0cmFzRW5h
YmxlZCA9IGRldmVsb3BlckV4dHJhc0VuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEph
dmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQoYm9vbCBqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFi
bGVkKQotewotICAgIG1famF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZCA9IGphdmFTY3JpcHRF
eHBlcmltZW50c0VuYWJsZWQ7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldEF1dGhvckFuZFVzZXJT
dHlsZXNFbmFibGVkKGJvb2wgYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQpCiB7CiAgICAgaWYg
KG1fYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQgPT0gYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJs
ZWQpCkBAIC04MDksNDggKzU3MiwxMSBAQCBGb250UmVuZGVyaW5nTW9kZSBTZXR0aW5nczo6Zm9u
dFJlbmRlcmluZ01vZGUoKSBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxGb250UmVuZGVy
aW5nTW9kZT4obV9mb250UmVuZGVyaW5nTW9kZSk7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldE5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzKGJvb2wgbmVlZHNRdWlya3MpCi17Ci0gICAgbV9uZWVkc1Np
dGVTcGVjaWZpY1F1aXJrcyA9IG5lZWRzUXVpcmtzOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRG
cmFtZUZsYXR0ZW5pbmdFbmFibGVkKGJvb2wgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCkKLXsKLSAg
ICBtX2ZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgPSBmcmFtZUZsYXR0ZW5pbmdFbmFibGVkOwotfQot
Ci0jaWYgRU5BQkxFKFdFQl9BUkNISVZFKQotdm9pZCBTZXR0aW5nczo6c2V0V2ViQXJjaGl2ZURl
YnVnTW9kZUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fd2ViQXJjaGl2ZURlYnVnTW9k
ZUVuYWJsZWQgPSBlbmFibGVkOwotfQotI2VuZGlmCi0KLXZvaWQgU2V0dGluZ3M6OnNldExvY2Fs
RmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fbG9jYWxG
aWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6
OnNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCi17Ci0gICAg
bV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGggPSBwYXRoOwotfQotCiB2b2lkIFNldHRpbmdzOjpz
ZXRBcHBsaWNhdGlvbkNocm9tZU1vZGUoYm9vbCBtb2RlKQogewogICAgIG1faW5BcHBsaWNhdGlv
bkNocm9tZU1vZGUgPSBtb2RlOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRPZmZsaW5lV2ViQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fb2ZmbGluZVdlYkFw
cGxpY2F0aW9uQ2FjaGVFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0
RW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUoYm9vbCBlbmZvcmNlQ1NTTUlNRVR5cGVJ
bk5vUXVpcmtzTW9kZSkKLXsKLSAgICBtX2VuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2Rl
ID0gZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGU7Ci19Ci0KICNpZiBVU0UoU0FGQVJJ
X1RIRU1FKQogdm9pZCBTZXR0aW5nczo6c2V0U2hvdWxkUGFpbnROYXRpdmVDb250cm9scyhib29s
IHNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMpCiB7CkBAIC04NTgsMTEgKzU4NCw2IEBAIHZvaWQg
U2V0dGluZ3M6OnNldFNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMoYm9vbCBzaG91bGRQYWludE5h
dGl2ZUNvbnRyb2xzKQogfQogI2VuZGlmCiAKLXZvaWQgU2V0dGluZ3M6OnNldFVzZXNFbmNvZGlu
Z0RldGVjdG9yKGJvb2wgdXNlc0VuY29kaW5nRGV0ZWN0b3IpCi17Ci0gICAgbV91c2VzRW5jb2Rp
bmdEZXRlY3RvciA9IHVzZXNFbmNvZGluZ0RldGVjdG9yOwotfQotCiB2b2lkIFNldHRpbmdzOjpz
ZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoYm9vbCBkbnNQcmVmZXRjaGluZ0VuYWJsZWQpCiB7CiAg
ICAgaWYgKG1fZG5zUHJlZmV0Y2hpbmdFbmFibGVkID09IGRuc1ByZWZldGNoaW5nRW5hYmxlZCkK
QEAgLTg3MiwyNiArNTkzLDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0RE5TUHJlZmV0Y2hpbmdFbmFi
bGVkKGJvb2wgZG5zUHJlZmV0Y2hpbmdFbmFibGVkKQogICAgIG1fcGFnZS0+ZG5zUHJlZmV0Y2hp
bmdTdGF0ZUNoYW5nZWQoKTsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0QWxsb3dTY3JpcHRzVG9D
bG9zZVdpbmRvd3MoYm9vbCBhbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cykKLXsKLSAgICBtX2Fs
bG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzID0gYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3M7Ci19
Ci0KLXZvaWQgU2V0dGluZ3M6OnNldENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wgY2FyZXRCcm93
c2luZ0VuYWJsZWQpCi17Ci0gICAgbV9jYXJldEJyb3dzaW5nRW5hYmxlZCA9IGNhcmV0QnJvd3Np
bmdFbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXREb3dubG9hZGFibGVCaW5hcnlGb250
c0VuYWJsZWQoYm9vbCBkb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQpCi17Ci0gICAgbV9k
b3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQgPSBkb3dubG9hZGFibGVCaW5hcnlGb250c0Vu
YWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wgeHNz
QXVkaXRvckVuYWJsZWQpCi17Ci0gICAgbV94c3NBdWRpdG9yRW5hYmxlZCA9IHhzc0F1ZGl0b3JF
bmFibGVkOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgaWYgKG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Vu
YWJsZWQgPT0gZW5hYmxlZCkKQEAgLTkwMSwzNiArNjAyLDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIG1fcGFnZS0+
c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNl
dENhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmcoYm9vbCBlbmFibGVkKQotewotICAgIG1fY2Fu
dmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZyA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6
OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9ybXNFbmFibGVkKGJvb2wgZW5h
YmxlZCkKLXsKLSAgICBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9ybXNFbmFi
bGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZvclZpZGVvRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9hY2NlbGVyYXRlZENv
bXBvc2l0aW5nRm9yVmlkZW9FbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6
c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JQbHVnaW5zRW5hYmxlZCA9IGVuYWJs
ZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52
YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JDYW52YXNFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAg
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQgPSBlbmFibGVkOwot
fQotCiB2b2lkIFNldHRpbmdzOjpzZXRTaG93RGVidWdCb3JkZXJzKGJvb2wgZW5hYmxlZCkKIHsK
ICAgICBpZiAobV9zaG93RGVidWdCb3JkZXJzID09IGVuYWJsZWQpCkBAIC05NDksMTEgKzYyMCw2
IEBAIHZvaWQgU2V0dGluZ3M6OnNldFNob3dSZXBhaW50Q291bnRlcihib29sIGVuYWJsZWQpCiAg
ICAgbV9wYWdlLT5zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKIH0KIAotdm9pZCBT
ZXR0aW5nczo6c2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoYm9vbCBlbmFibGVk
KQotewotICAgIG1fZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQgPSBlbmFibGVkOwot
fQotCiAjaWYgUExBVEZPUk0oV0lOKSB8fCAoT1MoV0lORE9XUykgJiYgUExBVEZPUk0oV1gpKQog
dm9pZCBTZXR0aW5nczo6c2V0U2hvdWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnMoYm9vbCBzaG91
bGRVc2VIaWdoUmVzb2x1dGlvblRpbWVycykKIHsKQEAgLTk2MSw1MSArNjI3LDYgQEAgdm9pZCBT
ZXR0aW5nczo6c2V0U2hvdWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnMoYm9vbCBzaG91bGRVc2VI
aWdoUmVzb2x1dGlvblRpbWUKIH0KICNlbmRpZgogCi12b2lkIFNldHRpbmdzOjpzZXRXZWJBdWRp
b0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fd2ViQXVkaW9FbmFibGVkID0gZW5hYmxl
ZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0V2ViR0xFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsK
LSAgICBtX3dlYkdMRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFdl
YkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV93ZWJHTEVy
cm9yc1RvQ29uc29sZUVuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRP
cGVuR0xNdWx0aXNhbXBsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9vcGVuR0xN
dWx0aXNhbXBsaW5nRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFBy
aXZpbGVnZWRXZWJHTEV4dGVuc2lvbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3By
aXZpbGVnZWRXZWJHTEV4dGVuc2lvbnNFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0
aW5nczo6c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAg
IG1fYWNjZWxlcmF0ZWRDYW52YXMyZEVuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRp
bmdzOjpzZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9k
ZWZlcnJlZENhbnZhczJkRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNl
dE1pbmltdW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZShpbnQgbnVtUGl4ZWxzKQotewotICAgIG1f
bWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplID0gbnVtUGl4ZWxzOwotfQotCi12b2lkIFNl
dHRpbmdzOjpzZXRMb2FkRGVmZXJyaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9s
b2FkRGVmZXJyaW5nRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldFN0
b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5
IGVuYWJsZWQpCiB7CiAgICAgaWYgKG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09IGVuYWJsZWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggZjA1M2Y1NDFlZDUwYjkyNDczNDMxMTE3MTJkY2U4
ZWY4MGY1MWI3ZC4uZjMyMGQ0NTZiMTZmY2NlMzk1MDRkMzQyN2ZlZWYwN2Y5ZDFhMDJmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkludFNpemUu
aCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNs
dWRlICJTZXR0aW5nc01hY3Jvcy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KQEAgLTEzMywx
MSArMTM0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldExvYWRzSW1h
Z2VzQXV0b21hdGljYWxseShib29sKTsKICAgICAgICAgYm9vbCBsb2Fkc0ltYWdlc0F1dG9tYXRp
Y2FsbHkoKSBjb25zdCB7IHJldHVybiBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseTsgfQogCi0g
ICAgICAgIC8vIFRoaXMgc2V0dGluZyBvbmx5IGFmZmVjdHMgc2l0ZSBpY29uIGltYWdlIGxvYWRp
bmcgaWYgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcgaXMgZmFsc2UgYW5kIHRoaXMg
c2V0dGluZyBpcyB0cnVlLgotICAgICAgICAvLyBBbGwgb3RoZXIgcGVybXV0YXRpb25zIHN0aWxs
IGhlZWQgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcuCi0gICAgICAgIHZvaWQgc2V0
TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoYm9vbCk7Ci0gICAgICAg
IGJvb2wgbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoKSBjb25zdCB7
IHJldHVybiBtX2xvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nOyB9Ci0K
ICAgICAgICAgdm9pZCBzZXRTY3JpcHRFbmFibGVkKGJvb2wpOwogICAgICAgICAvLyBJbnN0ZWFk
IG9mIGNhbGxpbmcgaXNTY3JpcHRFbmFibGVkIGRpcmVjdGx5LCBwbGVhc2UgY29uc2lkZXIgY2Fs
bGluZwogICAgICAgICAvLyBTY3JpcHRDb250cm9sbGVyOjpjYW5FeGVjdXRlU2NyaXB0cywgd2hp
Y2ggdGFrZXMgdGhpbmdzIGxpa2UgdGhlCkBAIC0xNDcsMjAgKzE0Myw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCk7CiAgICAg
ICAgIGJvb2wgaXNXZWJTZWN1cml0eUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzV2ViU2Vj
dXJpdHlFbmFibGVkOyB9CiAKLSAgICAgICAgdm9pZCBzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zy
b21GaWxlVVJMcyhib29sKTsKLSAgICAgICAgYm9vbCBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21G
aWxlVVJMcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVS
THM7IH0KLQotICAgICAgICB2b2lkIHNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhib29s
KTsKLSAgICAgICAgYm9vbCBhbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoKSBjb25zdCB7IHJl
dHVybiBtX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczsgfQotCi0gICAgICAgIHZvaWQgc2V0
SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sKTsKLSAgICAgICAgYm9v
bCBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCkgY29uc3QgeyByZXR1cm4g
bV9qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OyB9Ci0KLSAgICAgICAgdm9p
ZCBzZXRTdXBwb3J0c011bHRpcGxlV2luZG93cyhib29sKTsKLSAgICAgICAgYm9vbCBzdXBwb3J0
c011bHRpcGxlV2luZG93cygpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydHNNdWx0aXBsZVdpbmRv
d3M7IH0KLQotICAgICAgICB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYm9v
bCk7Ci0gICAgICAgIGJvb2wgamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCgpIGNvbnN0IHsg
cmV0dXJuIG1famF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDsgfQorICAgICAgICBTRVRUSU5H
U19HRVRURVJTX0FORF9TRVRURVJTCiAKICAgICAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkOyB9CkBAIC0xODEs
MTUgKzE2NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRQbHVnaW5z
RW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBhcmVQbHVnaW5zRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fYXJlUGx1Z2luc0VuYWJsZWQ7IH0KIAotICAgICAgICB2b2lkIHNldExvY2FsU3Rv
cmFnZUVuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgbG9jYWxTdG9yYWdlRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlRW5hYmxlZDsgfQotCi0gICAgICAgIC8vIEFsbG93
IGNsaWVudHMgY29uY2VybmVkIHdpdGggbWVtb3J5IGNvbnN1bXB0aW9uIHRvIHNldCBhIHF1b3Rh
IG9uIHNlc3Npb24gc3RvcmFnZQotICAgICAgICAvLyBzaW5jZSB0aGUgbWVtb3J5IHVzZWQgd29u
J3QgYmUgcmVsZWFzZWQgdW50aWwgdGhlIFBhZ2UgaXMgZGVzdHJveWVkLgotICAgICAgICAvLyBE
ZWZhdWx0IGlzIG5vUXVvdGEuCi0gICAgICAgIHZvaWQgc2V0U2Vzc2lvblN0b3JhZ2VRdW90YSh1
bnNpZ25lZCk7Ci0gICAgICAgIHVuc2lnbmVkIHNlc3Npb25TdG9yYWdlUXVvdGEoKSBjb25zdCB7
IHJldHVybiBtX3Nlc3Npb25TdG9yYWdlUXVvdGE7IH0KLQogICAgICAgICAvLyBXaGVuIHRoaXMg
b3B0aW9uIGlzIHNldCwgV2ViQ29yZSB3aWxsIGF2b2lkIHN0b3JpbmcgYW55IHJlY29yZCBvZiBi
cm93c2luZyBhY3Rpdml0eQogICAgICAgICAvLyB0aGF0IG1heSBwZXJzaXN0IG9uIGRpc2sgb3Ig
cmVtYWluIGRpc3BsYXllZCB3aGVuIHRoZSBvcHRpb24gaXMgcmVzZXQuCiAgICAgICAgIC8vIFRo
aXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCB0aGUgc3RvcmFnZSBvZiBzdWNoIGluZm9ybWF0aW9u
IGluIFJBTS4KQEAgLTIwNiw1MyArMTgwLDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIHBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGVCcm93c2luZ0Vu
YWJsZWQ7IH0KIAotICAgICAgICB2b2lkIHNldENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wpOwot
ICAgICAgICBib29sIGNhcmV0QnJvd3NpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9jYXJl
dEJyb3dzaW5nRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGVmYXVsdFRleHRFbmNvZGlu
Z05hbWUoY29uc3QgU3RyaW5nJik7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgZGVmYXVsdFRleHRF
bmNvZGluZ05hbWUoKSBjb25zdCB7IHJldHVybiBtX2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1lOyB9
Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldFVzZXNFbmNvZGluZ0RldGVjdG9yKGJvb2wpOwot
ICAgICAgICBib29sIHVzZXNFbmNvZGluZ0RldGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV91c2Vz
RW5jb2RpbmdEZXRlY3RvcjsgfQotCiAgICAgICAgIHZvaWQgc2V0RE5TUHJlZmV0Y2hpbmdFbmFi
bGVkKGJvb2wpOwogICAgICAgICBib29sIGRuc1ByZWZldGNoaW5nRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZG5zUHJlZmV0Y2hpbmdFbmFibGVkOyB9CiAKICAgICAgICAgdm9pZCBzZXRVc2Vy
U3R5bGVTaGVldExvY2F0aW9uKGNvbnN0IEtVUkwmKTsKICAgICAgICAgY29uc3QgS1VSTCYgdXNl
clN0eWxlU2hlZXRMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclN0eWxlU2hlZXRMb2Nh
dGlvbjsgfQogCi0gICAgICAgIHZvaWQgc2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9G
cmFtZShib29sKTsKLSAgICAgICAgYm9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0Zy
YW1lKCkgY29uc3QgeyByZXR1cm4gbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1l
OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRTaG91bGRQcmludEJhY2tncm91bmRzKGJvb2wpOwotICAg
ICAgICBib29sIHNob3VsZFByaW50QmFja2dyb3VuZHMoKSBjb25zdCB7IHJldHVybiBtX3Nob3Vs
ZFByaW50QmFja2dyb3VuZHM7IH0KLQogICAgICAgICB2b2lkIHNldFRleHRBcmVhc0FyZVJlc2l6
YWJsZShib29sKTsKICAgICAgICAgYm9vbCB0ZXh0QXJlYXNBcmVSZXNpemFibGUoKSBjb25zdCB7
IHJldHVybiBtX3RleHRBcmVhc0FyZVJlc2l6YWJsZTsgfQogCi0gICAgICAgIHZvaWQgc2V0RWRp
dGFibGVMaW5rQmVoYXZpb3IoRWRpdGFibGVMaW5rQmVoYXZpb3IpOwotICAgICAgICBFZGl0YWJs
ZUxpbmtCZWhhdmlvciBlZGl0YWJsZUxpbmtCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fZWRp
dGFibGVMaW5rQmVoYXZpb3I7IH0KLQotICAgICAgICB2b2lkIHNldFRleHREaXJlY3Rpb25TdWJt
ZW51SW5jbHVzaW9uQmVoYXZpb3IoVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlv
cik7Ci0gICAgICAgIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgdGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjsgfQotCi0jaWYgRU5BQkxFKERBU0hCT0FS
RF9TVVBQT1JUKQotICAgICAgICB2b2lkIHNldFVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGli
aWxpdHlNb2RlKGJvb2wpOwotICAgICAgICBib29sIHVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBh
dGliaWxpdHlNb2RlKCkgY29uc3QgeyByZXR1cm4gbV91c2VzRGFzaGJvYXJkQmFja3dhcmRDb21w
YXRpYmlsaXR5TW9kZTsgfQotI2VuZGlmCi0gICAgICAgIAogICAgICAgICB2b2lkIHNldE5lZWRz
QWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrKGJvb2wpOwogICAgICAgICBib29sIG5lZWRzQWNyb2Jh
dEZyYW1lUmVsb2FkaW5nUXVpcmsoKSBjb25zdCB7IHJldHVybiBtX25lZWRzQWRvYmVGcmFtZVJl
bG9hZGluZ1F1aXJrOyB9CiAKLSAgICAgICAgdm9pZCBzZXROZWVkc0tleWJvYXJkRXZlbnREaXNh
bWJpZ3VhdGlvblF1aXJrcyhib29sKTsKLSAgICAgICAgYm9vbCBuZWVkc0tleWJvYXJkRXZlbnRE
aXNhbWJpZ3VhdGlvblF1aXJrcygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNLZXlib2FyZEV2ZW50
RGlzYW1iaWd1YXRpb25RdWlya3M7IH0KLQotICAgICAgICB2b2lkIHNldFRyZWF0c0FueVRleHRD
U1NMaW5rQXNTdHlsZXNoZWV0KGJvb2wpOwotICAgICAgICBib29sIHRyZWF0c0FueVRleHRDU1NM
aW5rQXNTdHlsZXNoZWV0KCkgY29uc3QgeyByZXR1cm4gbV90cmVhdHNBbnlUZXh0Q1NTTGlua0Fz
U3R5bGVzaGVldDsgfQotCi0gICAgICAgIHZvaWQgc2V0TmVlZHNMZW9wYXJkTWFpbFF1aXJrcyhi
b29sKTsKLSAgICAgICAgYm9vbCBuZWVkc0xlb3BhcmRNYWlsUXVpcmtzKCkgY29uc3QgeyByZXR1
cm4gbV9uZWVkc0xlb3BhcmRNYWlsUXVpcmtzOyB9Ci0KICAgICAgICAgdm9pZCBzZXRET01QYXN0
ZUFsbG93ZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgaXNET01QYXN0ZUFsbG93ZWQoKSBjb25zdCB7
IHJldHVybiBtX2lzRE9NUGFzdGVBbGxvd2VkOyB9CiAgICAgICAgIApAQCAtMjcxLDg2ICsyMTAs
MTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldFVzZXNQYWdlQ2FjaGUo
Ym9vbCk7CiAgICAgICAgIGJvb2wgdXNlc1BhZ2VDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNl
c1BhZ2VDYWNoZTsgfQogICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRQYWdlQ2FjaGVTdXBwb3J0
c1BsdWdpbnMoYm9vbCBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMpIHsgbV9wYWdlQ2FjaGVTdXBw
b3J0c1BsdWdpbnMgPSBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnM7IH0KLSAgICAgICAgYm9vbCBw
YWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VDYWNoZVN1cHBv
cnRzUGx1Z2luczsgfQotCi0gICAgICAgIHZvaWQgc2V0U2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNU
b0ZpdChib29sKTsKLSAgICAgICAgYm9vbCBzaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KCkg
Y29uc3QgeyByZXR1cm4gbV9zaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0OyB9Ci0KLSAgICAg
ICAgdm9pZCBzZXRTaG93c1VSTHNJblRvb2xUaXBzKGJvb2wpOwotICAgICAgICBib29sIHNob3dz
VVJMc0luVG9vbFRpcHMoKSBjb25zdCB7IHJldHVybiBtX3Nob3dzVVJMc0luVG9vbFRpcHM7IH0K
LQotICAgICAgICB2b2lkIHNldFNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0KGJvb2wpOwot
ICAgICAgICBib29sIHNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0KCkgY29uc3QgeyByZXR1
cm4gbV9zaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dDsgfQotCi0gICAgICAgIHZvaWQgc2V0
RlRQRGlyZWN0b3J5VGVtcGxhdGVQYXRoKGNvbnN0IFN0cmluZyYpOwotICAgICAgICBjb25zdCBT
dHJpbmcmIGZ0cERpcmVjdG9yeVRlbXBsYXRlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZnRwRGly
ZWN0b3J5VGVtcGxhdGVQYXRoOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldEZvcmNlRlRQ
RGlyZWN0b3J5TGlzdGluZ3MoYm9vbCk7Ci0gICAgICAgIGJvb2wgZm9yY2VGVFBEaXJlY3RvcnlM
aXN0aW5ncygpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5nczsgfQot
ICAgICAgICAKLSAgICAgICAgdm9pZCBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGJvb2wpOwot
ICAgICAgICBib29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Rl
dmVsb3BlckV4dHJhc0VuYWJsZWQ7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0SmF2YVNj
cmlwdEV4cGVyaW1lbnRzRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBqYXZhU2NyaXB0RXhw
ZXJpbWVudHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9qYXZhU2NyaXB0RXhwZXJpbWVudHNF
bmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGJvb2wp
OwotICAgICAgICBib29sIGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ7IH0KLQogICAgICAgICB2b2lkIHNldEF1dGhvckFuZFVz
ZXJTdHlsZXNFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIGF1dGhvckFuZFVzZXJTdHlsZXNF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZDsgfQog
ICAgICAgICAKICAgICAgICAgdm9pZCBzZXRGb250UmVuZGVyaW5nTW9kZShGb250UmVuZGVyaW5n
TW9kZSBtb2RlKTsKICAgICAgICAgRm9udFJlbmRlcmluZ01vZGUgZm9udFJlbmRlcmluZ01vZGUo
KSBjb25zdDsKIAotICAgICAgICB2b2lkIHNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKGJvb2wp
OwotICAgICAgICBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QgeyByZXR1cm4g
bV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrczsgfQotCi0jaWYgRU5BQkxFKFdFQl9BUkNISVZFKQot
ICAgICAgICB2b2lkIHNldFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKGJvb2wpOwotICAgICAg
ICBib29sIHdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV93ZWJB
cmNoaXZlRGVidWdNb2RlRW5hYmxlZDsgfQotI2VuZGlmCi0KLSAgICAgICAgdm9pZCBzZXRMb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGxvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsRmlsZUNvbnRl
bnRTbmlmZmluZ0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldExvY2FsU3RvcmFnZURhdGFi
YXNlUGF0aChjb25zdCBTdHJpbmcmKTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBsb2NhbFN0b3Jh
Z2VEYXRhYmFzZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0
aDsgfQotCiAgICAgICAgIHZvaWQgc2V0QXBwbGljYXRpb25DaHJvbWVNb2RlKGJvb2wpOwogICAg
ICAgICBib29sIGluQXBwbGljYXRpb25DaHJvbWVNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9pbkFw
cGxpY2F0aW9uQ2hyb21lTW9kZTsgfQogCi0gICAgICAgIHZvaWQgc2V0T2ZmbGluZVdlYkFwcGxp
Y2F0aW9uQ2FjaGVFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIG9mZmxpbmVXZWJBcHBsaWNh
dGlvbkNhY2hlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb2ZmbGluZVdlYkFwcGxpY2F0aW9u
Q2FjaGVFbmFibGVkOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldEVuZm9yY2VDU1NNSU1F
VHlwZUluTm9RdWlya3NNb2RlKGJvb2wpOwotICAgICAgICBib29sIGVuZm9yY2VDU1NNSU1FVHlw
ZUluTm9RdWlya3NNb2RlKCkgeyByZXR1cm4gbV9lbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtz
TW9kZTsgfQotCi0gICAgICAgIHZvaWQgc2V0TWF4aW11bURlY29kZWRJbWFnZVNpemUoc2l6ZV90
IHNpemUpIHsgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZSA9IHNpemU7IH0KLSAgICAgICAgc2l6
ZV90IG1heGltdW1EZWNvZGVkSW1hZ2VTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbXVtRGVj
b2RlZEltYWdlU2l6ZTsgfQotCi0gICAgICAgIHZvaWQgc2V0QWxsb3dTY3JpcHRzVG9DbG9zZVdp
bmRvd3MoYm9vbCk7Ci0gICAgICAgIGJvb2wgYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MoKSBj
b25zdCB7IHJldHVybiBtX2FsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzOyB9Ci0KLSAgICAgICAg
dm9pZCBzZXRFZGl0aW5nQmVoYXZpb3JUeXBlKEVkaXRpbmdCZWhhdmlvclR5cGUgYmVoYXZpb3Ip
IHsgbV9lZGl0aW5nQmVoYXZpb3JUeXBlID0gYmVoYXZpb3I7IH0KLSAgICAgICAgRWRpdGluZ0Jl
aGF2aW9yVHlwZSBlZGl0aW5nQmVoYXZpb3JUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8RWRpdGluZ0JlaGF2aW9yVHlwZT4obV9lZGl0aW5nQmVoYXZpb3JUeXBlKTsgfQotCi0gICAg
ICAgIHZvaWQgc2V0RG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkKGJvb2wpOwotICAgICAg
ICBib29sIGRvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRYU1NB
dWRpdG9yRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCB4c3NBdWRpdG9yRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1feHNzQXVkaXRvckVuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldENh
bnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmcoYm9vbCk7Ci0gICAgICAgIGJvb2wgY2FudmFzVXNl
c0FjY2VsZXJhdGVkRHJhd2luZygpIGNvbnN0IHsgcmV0dXJuIG1fY2FudmFzVXNlc0FjY2VsZXJh
dGVkRHJhd2luZzsgfQotCi0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxl
ZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkID0gZW5hYmxlZDsg
fQotICAgICAgICBib29sIGFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldEFjY2Vs
ZXJhdGVkRmlsdGVyc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRGaWx0ZXJz
RW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZEZpbHRlcnNFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkOyB9Ci0KICAg
ICAgICAgdm9pZCBzZXRDU1NDdXN0b21GaWx0ZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2lz
Q1NTQ3VzdG9tRmlsdGVyRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICAgICAgYm9vbCBpc0NTU0N1
c3RvbUZpbHRlckVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ1NTQ3VzdG9tRmlsdGVyRW5h
YmxlZDsgfQogCkBAIC0zNzgsMTg0ICsyNDYsMzggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBib29sIGNzc1ZhcmlhYmxlc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
I2VuZGlmCiAKLSAgICAgICAgdm9pZCBzZXRSZWdpb25CYXNlZENvbHVtbnNFbmFibGVkKGJvb2wg
ZW5hYmxlZCkgeyBtX3JlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAg
ICAgIGJvb2wgcmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVn
aW9uQmFzZWRDb2x1bW5zRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0Q1NTR3JpZExheW91
dEVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fY3NzR3JpZExheW91dEVuYWJsZWQgPSBlbmFibGVk
OyB9Ci0gICAgICAgIGJvb2wgY3NzR3JpZExheW91dEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X2Nzc0dyaWRMYXlvdXRFbmFibGVkOyB9Ci0KICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJs
ZWQ7IH0KIAotICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5z
Zm9ybXNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3IzRFRyYW5zZm9ybXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yM0RUcmFuc2Zvcm1zRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBhY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJv
b2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQ7IH0KLQotICAgICAg
ICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkKGJvb2wpOwot
ICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQ2FudmFzRW5hYmxlZDsgfQot
Ci0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJs
ZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlv
bkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JBbmlt
YXRpb25FbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29s
IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkOyB9
Ci0KLSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZy
YW1lc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNj
cm9sbGFibGVGcmFtZXNFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkOyB9Ci0K
LSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxF
bmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbEVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZDsgfTsKLQogICAgICAgICB2
b2lkIHNldFNob3dEZWJ1Z0JvcmRlcnMoYm9vbCk7CiAgICAgICAgIGJvb2wgc2hvd0RlYnVnQm9y
ZGVycygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd0RlYnVnQm9yZGVyczsgfQogCiAgICAgICAgIHZv
aWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wpOwogICAgICAgICBib29sIHNob3dSZXBhaW50
Q291bnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd1JlcGFpbnRDb3VudGVyOyB9CiAKLSAgICAg
ICAgdm9pZCBzZXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZChib29sKTsKLSAgICAg
ICAgYm9vbCBleHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQ7IH0KLQogI2lmIFBMQVRGT1JNKFdJ
TikgfHwgKE9TKFdJTkRPV1MpICYmIFBMQVRGT1JNKFdYKSkKICAgICAgICAgc3RhdGljIHZvaWQg
c2V0U2hvdWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnMoYm9vbCk7CiAgICAgICAgIHN0YXRpYyBi
b29sIHNob3VsZFVzZUhpZ2hSZXNvbHV0aW9uVGltZXJzKCkgeyByZXR1cm4gZ1Nob3VsZFVzZUhp
Z2hSZXNvbHV0aW9uVGltZXJzOyB9CiAjZW5kaWYKIAotICAgICAgICB2b2lkIHNldFdlYkF1ZGlv
RW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCB3ZWJBdWRpb0VuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX3dlYkF1ZGlvRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0V2ViR0xFbmFibGVk
KGJvb2wpOwotICAgICAgICBib29sIHdlYkdMRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vi
R0xFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJs
ZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgd2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV93ZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQ7IH0KLQotICAgICAgICB2
b2lkIHNldE9wZW5HTE11bHRpc2FtcGxpbmdFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIG9w
ZW5HTE11bHRpc2FtcGxpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuR0xNdWx0aXNh
bXBsaW5nRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0UHJpdmlsZWdlZFdlYkdMRXh0ZW5z
aW9uc0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9u
c0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3ByaXZpbGVnZWRXZWJHTEV4dGVuc2lvbnNFbmFi
bGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChib29s
KTsKLSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fYWNjZWxlcmF0ZWRDYW52YXMyZEVuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldERl
ZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGRlZmVycmVkMmRDYW52
YXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kZWZlcnJlZENhbnZhczJkRW5hYmxlZDsgfQot
Ci0gICAgICAgIC8vIE51bWJlciBvZiBwaXhlbHMgYmVsb3cgd2hpY2ggMkQgY2FudmFzIGlzIHJl
bmRlcmVkIGluIHNvZnR3YXJlCi0gICAgICAgIC8vIGV2ZW4gaWYgaGFyZHdhcmUgYWNjZWxlcmF0
aW9uIGlzIGVuYWJsZWQuCi0gICAgICAgIC8vIEhhcmR3YXJlIGFjY2VsZXJhdGlvbiBpcyB1c2Vm
dWwgZm9yIGxhcmdlIGNhbnZhc2VzIHdoZXJlIGl0IGNhbiBhdm9pZCB0aGUKLSAgICAgICAgLy8g
cGl4ZWwgYmFuZHdpZHRoIGJldHdlZW4gdGhlIENQVSBhbmQgR1BVLiBCdXQgR1BVIGFjY2VsZXJh
dGlvbiBjb21lcyBhdAotICAgICAgICAvLyBhIHByaWNlIC0gZXh0cmEgYmFjay1idWZmZXIgYW5k
IHRleHR1cmUgY29weS4gU21hbGwgY2FudmFzZXMgYXJlIGFsc28KLSAgICAgICAgLy8gd2lkZWx5
IHVzZWQgZm9yIHN0eWxpemVkIGZvbnRzLiBBbnRpLWFsaWFzaW5nIHRleHQgaW4gaGFyZHdhcmUg
YXQgdGhhdAotICAgICAgICAvLyBzY2FsZSBpcyBnZW5lcmFsbHkgc2xvd2VyLiBTbyBiZWxvdyBh
IGNlcnRhaW4gc2l6ZSBpdCBpcyBiZXR0ZXIgdG8KLSAgICAgICAgLy8gZHJhdyBjYW52YXMgaW4g
c29mdHdhcmUuCi0gICAgICAgIHZvaWQgc2V0TWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXpl
KGludCk7Ci0gICAgICAgIGludCBtaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUoKSBjb25z
dCB7IHJldHVybiBtX21pbmltdW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZTsgfQotCi0gICAgICAg
IHZvaWQgc2V0TG9hZERlZmVycmluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgbG9hZERl
ZmVycmluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2xvYWREZWZlcnJpbmdFbmFibGVkOyB9
Ci0gICAgICAgIAogICAgICAgICB2b2lkIHNldFRpbGVkQmFja2luZ1N0b3JlRW5hYmxlZChib29s
KTsKICAgICAgICAgYm9vbCB0aWxlZEJhY2tpbmdTdG9yZUVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX3RpbGVkQmFja2luZ1N0b3JlRW5hYmxlZDsgfQogCi0gICAgICAgIHZvaWQgc2V0UGFnaW5h
dGVEdXJpbmdMYXlvdXRFbmFibGVkKGJvb2wgZmxhZykgeyBtX3BhZ2luYXRlRHVyaW5nTGF5b3V0
RW5hYmxlZCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBwYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZDsgfQotCi0j
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgICAgICB2b2lkIHNldEZ1bGxTY3JlZW5FbmFi
bGVkKGJvb2wgZmxhZykgeyBtX2Z1bGxTY3JlZW5BUElFbmFibGVkID0gZmxhZzsgfQotICAgICAg
ICBib29sIGZ1bGxTY3JlZW5FbmFibGVkKCkgY29uc3QgIHsgcmV0dXJuIG1fZnVsbFNjcmVlbkFQ
SUVuYWJsZWQ7IH0KLSNlbmRpZgotCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKICAgICAgICAgc3Rh
dGljIHZvaWQgc2V0QVZGb3VuZGF0aW9uRW5hYmxlZChib29sIGZsYWcpIHsgZ0FWRm91bmRhdGlv
bkVuYWJsZWQgPSBmbGFnOyB9CiAgICAgICAgIHN0YXRpYyBib29sIGlzQVZGb3VuZGF0aW9uRW5h
YmxlZCgpIHsgcmV0dXJuIGdBVkZvdW5kYXRpb25FbmFibGVkOyB9CiAjZW5kaWYKIAotICAgICAg
ICB2b2lkIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wgZmxhZykgeyBt
X2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkID0gZmxhZzsgfQotICAgICAgICBib29s
IGFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgY29uc3QgIHsgcmV0dXJuIG1fYXN5
bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ7IH0KLQogICAgICAgICB2b2lkIHNldFVuaWZp
ZWRUZXh0Q2hlY2tlckVuYWJsZWQoYm9vbCBmbGFnKSB7IG1fdW5pZmllZFRleHRDaGVja2VyRW5h
YmxlZCA9IGZsYWc7IH0KICAgICAgICAgYm9vbCB1bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV91bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkOyB9CiAKLSAgICAgICAg
dm9pZCBzZXRNZW1vcnlJbmZvRW5hYmxlZChib29sIGZsYWcpIHsgbV9tZW1vcnlJbmZvRW5hYmxl
ZCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBtZW1vcnlJbmZvRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWVtb3J5SW5mb0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldFF1YW50aXplZE1l
bW9yeUluZm9FbmFibGVkKGJvb2wgZmxhZykgeyBtX3F1YW50aXplZE1lbW9yeUluZm9FbmFibGVk
ID0gZmxhZzsgfQotICAgICAgICBib29sIHF1YW50aXplZE1lbW9yeUluZm9FbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9xdWFudGl6ZWRNZW1vcnlJbmZvRW5hYmxlZDsgfQotCi0gICAgICAgIC8v
IFRoaXMgZmVhdHVyZSByZXF1aXJlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBWYWxpZGF0aW9uTWVz
c2FnZUNsaWVudC4KLSAgICAgICAgdm9pZCBzZXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5h
YmxlZChib29sIGZsYWcpIHsgbV9pbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uID0gZmxhZzsgfQot
ICAgICAgICBib29sIGludGVyYWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uOyB9Ci0KLSAgICAgICAgLy8gU2V0cyB0
aGUgbWFnaW5pY2F0aW9uIHZhbHVlIGZvciB2YWxpZGF0aW9uIG1lc3NhZ2UgdGltZXIuCi0gICAg
ICAgIC8vIElmIHRoZSBtYWdpbmljYXRpb24gdmFsdWUgaXMgTiwgYSB2YWxpZGF0aW9uIG1lc3Nh
Z2UgZGlzYXBwZWFycwotICAgICAgICAvLyBhdXRvbWF0aWNhbGx5IGFmdGVyIDxtZXNzYWdlIGxl
bmd0aD4gKiBOIC8gMTAwMCBzZWNvbmRzLiBJZiBOIGlzCi0gICAgICAgIC8vIGVxdWFsIHRvIG9y
IGxlc3MgdGhhbiAwLCBhIHZhbGlkYXRpb24gbWVzc2FnZSBkb2Vzbid0IGRpc2FwcGVhcnMKLSAg
ICAgICAgLy8gYXV0b21hdGljYWx5LiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA1MC4KLSAgICAgICAg
dm9pZCBzZXRWYWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbihpbnQgbmV3VmFsdWUp
IHsgbV92YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbiA9IG5ld1ZhbHVlOyB9Ci0g
ICAgICAgIGludCB2YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnaW5pZmljYXRpb24oKSBjb25zdCB7
IHJldHVybiBtX3ZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uOyB9Ci0gICAgICAg
IAotICAgICAgICB2b2lkIHNldFVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKGJvb2wgZmxhZykgeyBt
X3VzZVByZUhUTUw1UGFyc2VyUXVpcmtzID0gZmxhZzsgfQotICAgICAgICBib29sIHVzZVByZUhU
TUw1UGFyc2VyUXVpcmtzKCkgY29uc3QgeyByZXR1cm4gbV91c2VQcmVIVE1MNVBhcnNlclF1aXJr
czsgfQotCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBkZWZhdWx0TWF4aW11bUhUTUxQ
YXJzZXJET01UcmVlRGVwdGggPSA1MTI7Ci0gICAgICAgIHZvaWQgc2V0TWF4aW11bUhUTUxQYXJz
ZXJET01UcmVlRGVwdGgodW5zaWduZWQgbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgpIHsg
bV9tYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCA9IG1heGltdW1IVE1MUGFyc2VyRE9NVHJl
ZURlcHRoOyB9Ci0gICAgICAgIHVuc2lnbmVkIG1heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRo
KCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aDsgfQotCi0g
ICAgICAgIHZvaWQgc2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKGJvb2wgZmxhZykgeyBtX2h5
cGVybGlua0F1ZGl0aW5nRW5hYmxlZCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBoeXBlcmxpbmtB
dWRpdGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2h5cGVybGlua0F1ZGl0aW5nRW5hYmxl
ZDsgfQotCi0gICAgICAgIHZvaWQgc2V0Q3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1
bGVzRGlzYWJsZWQoYm9vbCBmbGFnKSB7IG1fY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENT
U1J1bGVzRGlzYWJsZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgY3Jvc3NPcmlnaW5DaGVja0lu
R2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Nyb3NzT3JpZ2lu
Q2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkOyB9Ci0gICAgICAgIAotICAgICAgICB2
b2lkIHNldExheW91dEZhbGxiYWNrV2lkdGgoaW50IHdpZHRoKSB7IG1fbGF5b3V0RmFsbGJhY2tX
aWR0aCA9IHdpZHRoOyB9Ci0gICAgICAgIGludCBsYXlvdXRGYWxsYmFja1dpZHRoKCkgY29uc3Qg
eyByZXR1cm4gbV9sYXlvdXRGYWxsYmFja1dpZHRoOyB9Ci0KLSAgICAgICAgdm9pZCBzZXREZXZp
Y2VXaWR0aChpbnQgd2lkdGgpIHsgbV9kZXZpY2VXaWR0aCA9IHdpZHRoOyB9Ci0gICAgICAgIGlu
dCBkZXZpY2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlV2lkdGg7IH0KLQotICAgICAg
ICB2b2lkIHNldERldmljZUhlaWdodChpbnQgaGVpZ2h0KSB7IG1fZGV2aWNlSGVpZ2h0ID0gaGVp
Z2h0OyB9Ci0gICAgICAgIGludCBkZXZpY2VIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2Rldmlj
ZUhlaWdodDsgfQotCi0gICAgICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBm
bGFnKSB7IG1fZm9yY2VDb21wb3NpdGluZ01vZGUgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgZm9y
Y2VDb21wb3NpdGluZ01vZGUoKSB7IHJldHVybiBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlOyB9Ci0K
LSAgICAgICAgdm9pZCBzZXRTaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9j
dW1lbnQoYm9vbCBmbGFnKSB7IG1fc2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0
eURvY3VtZW50ID0gZmxhZzsgfQotICAgICAgICBib29sIHNob3VsZEluamVjdFVzZXJTY3JpcHRz
SW5Jbml0aWFsRW1wdHlEb2N1bWVudCgpIHsgcmV0dXJuIG1fc2hvdWxkSW5qZWN0VXNlclNjcmlw
dHNJbkluaXRpYWxFbXB0eURvY3VtZW50OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBbGxvd0Rpc3Bs
YXlPZkluc2VjdXJlQ29udGVudChib29sIGZsYWcpIHsgbV9hbGxvd0Rpc3BsYXlPZkluc2VjdXJl
Q29udGVudCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBhbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQ7IH0K
LSAgICAgICAgdm9pZCBzZXRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudChib29sIGZsYWcp
IHsgbV9hbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCA9IGZsYWc7IH0KLSAgICAgICAgYm9v
bCBhbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dS
dW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQ7IH0KIAogI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5H
KQogICAgICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGJvb2wgZmxhZykgeyBtX3Nj
cm9sbEFuaW1hdG9yRW5hYmxlZCA9IGZsYWc7IH0KICAgICAgICAgYm9vbCBzY3JvbGxBbmltYXRv
ckVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbEFuaW1hdG9yRW5hYmxlZDsgfQogI2Vu
ZGlmCiAKLSAgICAgICAgdm9pZCBzZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShi
b29sIGZsYWcpIHsgbV9tZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSA9IGZsYWc7IH07
Ci0gICAgICAgIGJvb2wgbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoKSBjb25zdCB7
IHJldHVybiBtX21lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlOyB9Ci0KLSAgICAgICAg
dm9pZCBzZXRNZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lKGJvb2wgZmxhZykgeyBtX21lZGlhUGxh
eWJhY2tBbGxvd3NJbmxpbmUgPSBmbGFnOyB9OwotICAgICAgICBib29sIG1lZGlhUGxheWJhY2tB
bGxvd3NJbmxpbmUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmU7
IH0KLQotICAgICAgICB2b2lkIHNldFBhc3N3b3JkRWNob0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1f
cGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBwYXNzd29yZEVjaG9F
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wYXNzd29yZEVjaG9FbmFibGVkOyB9Ci0KLSAgICAg
ICAgdm9pZCBzZXRTdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcoYm9vbCBmbGFnKSB7IG1f
c3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nID0gZmxhZzsgfQotICAgICAgICBib29sIHN1
cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcHJlc3Nl
c0luY3JlbWVudGFsUmVuZGVyaW5nOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldEJhY2tz
cGFjZUtleU5hdmlnYXRpb25FbmFibGVkKGJvb2wgZmxhZykgeyBtX2JhY2tzcGFjZUtleU5hdmln
YXRpb25FbmFibGVkID0gZmxhZzsgfQotICAgICAgICBib29sIGJhY2tzcGFjZUtleU5hdmlnYXRp
b25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxl
ZDsgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vj
b25kcyhkb3VibGUgZHVyYXRpb25JblNlY29uZHMpIHsgbV9wYXNzd29yZEVjaG9EdXJhdGlvbklu
U2Vjb25kcyA9IGR1cmF0aW9uSW5TZWNvbmRzOyB9Ci0gICAgICAgIGRvdWJsZSBwYXNzd29yZEVj
aG9EdXJhdGlvbkluU2Vjb25kcygpIGNvbnN0IHsgcmV0dXJuIG1fcGFzc3dvcmRFY2hvRHVyYXRp
b25JblNlY29uZHM7IH0KLQogI2lmIFVTRShTQUZBUklfVEhFTUUpCiAgICAgICAgIC8vIFdpbmRv
d3MgZGVidWdnaW5nIHByZWYgKGdsb2JhbCkgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIHRoZSBBcXVh
IGxvb2sgYW5kIGEgbmF0aXZlIHdpbmRvd3MgbG9vay4KICAgICAgICAgc3RhdGljIHZvaWQgc2V0
U2hvdWxkUGFpbnROYXRpdmVDb250cm9scyhib29sKTsKQEAgLTU2OCw2OCArMjkwLDExIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIHZvaWQgc2V0VXNlc092ZXJsYXlTY3Jv
bGxiYXJzKGJvb2wgZmxhZyk7CiAgICAgICAgIHN0YXRpYyBib29sIHVzZXNPdmVybGF5U2Nyb2xs
YmFycygpOwogCi0gICAgICAgIHZvaWQgc2V0VmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZChib29s
IGVuYWJsZWQpIHsgbV92aXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkID0gZW5hYmxlZDsgfQotICAg
ICAgICBib29sIHZpc3VhbFdvcmRNb3ZlbWVudEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Zp
c3VhbFdvcmRNb3ZlbWVudEVuYWJsZWQ7IH0KLQotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAg
ICAgICAgdm9pZCBzZXRTaG91bGREaXNwbGF5U3VidGl0bGVzKGJvb2wgZmxhZykgeyBtX3Nob3Vs
ZERpc3BsYXlTdWJ0aXRsZXMgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgc2hvdWxkRGlzcGxheVN1
YnRpdGxlcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRGlzcGxheVN1YnRpdGxlczsgfQotCi0g
ICAgICAgIHZvaWQgc2V0U2hvdWxkRGlzcGxheUNhcHRpb25zKGJvb2wgZmxhZykgeyBtX3Nob3Vs
ZERpc3BsYXlDYXB0aW9ucyA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBzaG91bGREaXNwbGF5Q2Fw
dGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZERpc3BsYXlDYXB0aW9uczsgfQotCi0gICAg
ICAgIHZvaWQgc2V0U2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnMoYm9vbCBmbGFnKSB7IG1f
c2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnMgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgc2hv
dWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZERpc3Bs
YXlUZXh0RGVzY3JpcHRpb25zOyB9Ci0jZW5kaWYKLQotICAgICAgICB2b2lkIHNldFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9zY3JvbGxpbmdDb29yZGluYXRv
ckVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgc2Nyb2xsaW5nQ29vcmRpbmF0b3JF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQ7IH0K
LQotICAgICAgICB2b2lkIHNldE5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBt
X25vdGlmaWNhdGlvbnNFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIG5vdGlmaWNh
dGlvbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9ub3RpZmljYXRpb25zRW5hYmxlZDsgfQot
Ci0gICAgICAgIC8vIFNvbWUgYXBwcyBuZWVkcyBpc0xvYWRpbmdJbkFQSVNlbnNlIHRvIGFjY291
bnQgZm9yIGFjdGl2ZSBzdWJyZXNvdXJjZSBsb2FkZXJzLgotICAgICAgICB2b2lkIHNldE5lZWRz
SXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrKGJvb2wgZW5hYmxlZCkgeyBtX25lZWRzSXNMb2FkaW5n
SW5BUElTZW5zZVF1aXJrID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIG5lZWRzSXNMb2FkaW5n
SW5BUElTZW5zZVF1aXJrKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0lzTG9hZGluZ0luQVBJU2Vu
c2VRdWlyazsgfQotCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICAgICAgdm9pZCBzZXRU
b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV90b3VjaEV2ZW50RW11
bGF0aW9uRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICAgICAgYm9vbCBpc1RvdWNoRXZlbnRFbXVs
YXRpb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxl
ZDsgfQogI2VuZGlmCiAKLSAgICAgICAgdm9pZCBzZXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbihib29sIGVuYWJsZWQpIHsgbV9zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA9IGVu
YWJsZWQ7IH0KLSAgICAgICAgYm9vbCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb247IH0KLQotICAgICAg
ICB2b2lkIHNldFdhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IoYm9vbCBmbGFn
KSB7IG1fd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvciA9IGZsYWc7IH0KLSAg
ICAgICAgYm9vbCB3YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yKCkgY29uc3Qg
eyByZXR1cm4gbV93YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yOyB9Ci0KLSAg
ICAgICAgdm9pZCBzZXRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vj
b25kcyhkb3VibGUgdGltZW91dCkgeyBtX2luY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25U
aW1lb3V0SW5TZWNvbmRzID0gdGltZW91dDsgfQotICAgICAgICBkb3VibGUgaW5jcmVtZW50YWxS
ZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMoKSBjb25zdCB7IHJldHVybiBtX2lu
Y3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzOyB9Ci0KLSAgICAg
ICAgdm9pZCBzZXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBt
X3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdEFu
aW1hdGlvbkZyYW1lRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNU
b3VjaChib29sIGVuYWJsZWQpIHsgbV9kZXZpY2VTdXBwb3J0c1RvdWNoID0gZW5hYmxlZDsgfQot
ICAgICAgICBib29sIGRldmljZVN1cHBvcnRzVG91Y2goKSBjb25zdCB7IHJldHVybiBtX2Rldmlj
ZVN1cHBvcnRzVG91Y2g7IH0KLQotICAgICAgICB2b2lkIHNldERldmljZVN1cHBvcnRzTW91c2Uo
Ym9vbCBlbmFibGVkKSB7IG1fZGV2aWNlU3VwcG9ydHNNb3VzZSA9IGVuYWJsZWQ7IH0KLSAgICAg
ICAgYm9vbCBkZXZpY2VTdXBwb3J0c01vdXNlKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VTdXBw
b3J0c01vdXNlOyB9Ci0KLSAgICAgICAgdm9pZCBzZXROZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1
aXJrKGJvb2wgbmVlZHNRdWlyaykgeyBtX25lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsgPSBu
ZWVkc1F1aXJrOyB9Ci0gICAgICAgIGJvb2wgbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyaygp
IGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyazsgfQotCi0gICAg
ICAgIHZvaWQgc2V0Rml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoYm9vbCBjcmVh
dGVzKSB7IG1fZml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQgPSBjcmVhdGVzOyB9
Ci0gICAgICAgIGJvb2wgZml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoKSBjb25z
dCB7IHJldHVybiBtX2ZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0OyB9Ci0KLSAg
ICAgICAgdm9pZCBzZXRTeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBt
X3N5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgc3lu
Y1hIUkluRG9jdW1lbnRzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3luY1hIUkluRG9jdW1l
bnRzRW5hYmxlZDsgfQotCi0gICAgICAgIC8vIFdoZW4gZW5hYmxlZCwgd2luZG93LmJsdXIoKSBk
b2VzIG5vdCBjaGFuZ2UgZm9jdXMsIGFuZAotICAgICAgICAvLyB3aW5kb3cuZm9jdXMoKSBvbmx5
IGNoYW5nZXMgZm9jdXMgd2hlbiBpbnZva2VkIGZyb20gdGhlIGNvbnRleHQgdGhhdAotICAgICAg
ICAvLyBjcmVhdGVkIHRoZSB3aW5kb3cuCi0gICAgICAgIHZvaWQgc2V0V2luZG93Rm9jdXNSZXN0
cmljdGVkKGJvb2wgcmVzdHJpY3RlZCkgeyBtX3dpbmRvd0ZvY3VzUmVzdHJpY3RlZCA9IHJlc3Ry
aWN0ZWQ7IH0KLSAgICAgICAgYm9vbCB3aW5kb3dGb2N1c1Jlc3RyaWN0ZWQoKSBjb25zdCB7IHJl
dHVybiBtX3dpbmRvd0ZvY3VzUmVzdHJpY3RlZDsgfQotCiAgICAgICAgIHZvaWQgc2V0U3RvcmFn
ZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kpOwog
ICAgICAgICBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHN0b3JhZ2VCbG9j
a2luZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5OyB9CiAK
QEAgLTY0MSwxOCArMzA2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMg
Ym9vbCBzaG91bGRSZXNwZWN0UHJpb3JpdHlJbkNTU0F0dHJpYnV0ZVNldHRlcnMoKTsKICNlbmRp
ZgogCi0gICAgICAgIHZvaWQgc2V0Q29va2llRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9jb29r
aWVFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGNvb2tpZUVuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX2Nvb2tpZUVuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldERpYWdub3N0
aWNMb2dnaW5nRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9kaWFnbm9zdGljTG9nZ2luZ0VuYWJs
ZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQ7IH0KLQotICAgICAgICB2
b2lkIHNldEFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGJvb2wgZW5hYmxlZCkgeyBt
X2FwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yID0gZW5hYmxlZDsgfQotICAgICAgICBi
b29sIGFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkgY29uc3QgeyByZXR1cm4gbV9h
cHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcjsgfQotCi0gICAgICAgIHZvaWQgc2V0UGx1
Z0luU25hcHNob3R0aW5nRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9wbHVnSW5TbmFwc2hvdHRp
bmdFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIHBsdWdJblNuYXBzaG90dGluZ0Vu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3BsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQ7IH0KLQog
ICAgIHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IFNldHRpbmdzKFBhZ2UqKTsKIApAQCAtNjYw
LDkgKzMxMyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBQYWdlKiBtX3BhZ2U7
CiAKLSAgICAgICAgU3RyaW5nIG1fZGVmYXVsdFRleHRFbmNvZGluZ05hbWU7Ci0gICAgICAgIFN0
cmluZyBtX2Z0cERpcmVjdG9yeVRlbXBsYXRlUGF0aDsKLSAgICAgICAgU3RyaW5nIG1fbG9jYWxT
dG9yYWdlRGF0YWJhc2VQYXRoOwogICAgICAgICBTdHJpbmcgbV9tZWRpYVR5cGVPdmVycmlkZTsK
ICAgICAgICAgS1VSTCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb247CiAgICAgICAgIFNjcmlwdEZv
bnRGYW1pbHlNYXAgbV9zdGFuZGFyZEZvbnRGYW1pbHlNYXA7CkBAIC02NzIsMjMgKzMyMiwxMSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFNjcmlwdEZvbnRGYW1pbHlNYXAgbV9jdXJz
aXZlRm9udEZhbWlseU1hcDsKICAgICAgICAgU2NyaXB0Rm9udEZhbWlseU1hcCBtX2ZhbnRhc3lG
b250RmFtaWx5TWFwOwogICAgICAgICBTY3JpcHRGb250RmFtaWx5TWFwIG1fcGljdG9ncmFwaEZv
bnRGYW1pbHlNYXA7Ci0gICAgICAgIEVkaXRhYmxlTGlua0JlaGF2aW9yIG1fZWRpdGFibGVMaW5r
QmVoYXZpb3I7Ci0gICAgICAgIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3Ig
bV90ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOwotICAgICAgICBkb3VibGUg
bV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kczsKICAgICAgICAgaW50IG1fbWluaW11bUZv
bnRTaXplOwogICAgICAgICBpbnQgbV9taW5pbXVtTG9naWNhbEZvbnRTaXplOwogICAgICAgICBp
bnQgbV9kZWZhdWx0Rm9udFNpemU7CiAgICAgICAgIGludCBtX2RlZmF1bHRGaXhlZEZvbnRTaXpl
OwogICAgICAgICBib29sIG1fc2NyZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJsZWQ7Ci0gICAgICAg
IGludCBtX3ZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uOwotICAgICAgICBpbnQg
bV9taW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemU7Ci0gICAgICAgIGludCBtX2xheW91dEZh
bGxiYWNrV2lkdGg7Ci0gICAgICAgIHNpemVfdCBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplOwot
ICAgICAgICBpbnQgbV9kZXZpY2VXaWR0aDsKLSAgICAgICAgaW50IG1fZGV2aWNlSGVpZ2h0Owot
ICAgICAgICB1bnNpZ25lZCBtX3Nlc3Npb25TdG9yYWdlUXVvdGE7Ci0gICAgICAgIHVuc2lnbmVk
IG1fZWRpdGluZ0JlaGF2aW9yVHlwZTsKLSAgICAgICAgdW5zaWduZWQgbV9tYXhpbXVtSFRNTFBh
cnNlckRPTVRyZWVEZXB0aDsKICAgICAgICAgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0la
SU5HKQogICAgICAgICBmbG9hdCBtX3RleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yOwpAQCAt
Njk2LDU4ICszMzQsMjYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fdGV4
dEF1dG9zaXppbmdFbmFibGVkIDogMTsKICNlbmRpZgogICAgICAgICBJbnRTaXplIG1fcmVzb2x1
dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGU7CisKKyAgICAgICAgU0VUVElOR1NfTUVNQkVSX1ZB
UklBQkxFUworCiAgICAgICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7
CiAgICAgICAgIGJvb2wgbV9pc0phdmFFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2
YUVuYWJsZWRGb3JMb2NhbEZpbGVzIDogMTsKICAgICAgICAgYm9vbCBtX2xvYWRzSW1hZ2VzQXV0
b21hdGljYWxseSA6IDE7Ci0gICAgICAgIGJvb2wgbV9sb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1h
Z2VMb2FkaW5nU2V0dGluZyA6IDE7CiAgICAgICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFi
bGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2NhcmV0QnJvd3NpbmdFbmFibGVkIDogMTsKICAgICAg
ICAgYm9vbCBtX2FyZUltYWdlc0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNNZWRpYUVu
YWJsZWQgOiAxOwogICAgICAgICBib29sIG1fYXJlUGx1Z2luc0VuYWJsZWQgOiAxOwotICAgICAg
ICBib29sIG1fbG9jYWxTdG9yYWdlRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc1Njcmlw
dEVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNXZWJTZWN1cml0eUVuYWJsZWQgOiAxOwot
ICAgICAgICBib29sIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM6IDE7Ci0gICAg
ICAgIGJvb2wgbV9hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHM6IDE7Ci0gICAgICAgIGJvb2wg
bV9qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5IDogMTsKLSAgICAgICAgYm9v
bCBtX3N1cHBvcnRzTXVsdGlwbGVXaW5kb3dzIDogMTsKLSAgICAgICAgYm9vbCBtX2phdmFTY3Jp
cHRDYW5BY2Nlc3NDbGlwYm9hcmQgOiAxOwotICAgICAgICBib29sIG1fc2hvdWxkUHJpbnRCYWNr
Z3JvdW5kcyA6IDE7CiAgICAgICAgIGJvb2wgbV90ZXh0QXJlYXNBcmVSZXNpemFibGUgOiAxOwot
I2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKLSAgICAgICAgYm9vbCBtX3VzZXNEYXNoYm9h
cmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlIDogMTsKLSNlbmRpZgogICAgICAgICBib29sIG1f
bmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsgOiAxOwotICAgICAgICBib29sIG1fbmVlZHNL
ZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MgOiAxOwotICAgICAgICBib29sIG1fdHJl
YXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQgOiAxOwotICAgICAgICBib29sIG1fbmVlZHNM
ZW9wYXJkTWFpbFF1aXJrcyA6IDE7CiAgICAgICAgIGJvb2wgbV9pc0RPTVBhc3RlQWxsb3dlZCA6
IDE7Ci0gICAgICAgIGJvb2wgbV9zaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0IDogMTsKICAg
ICAgICAgYm9vbCBtX3VzZXNQYWdlQ2FjaGUgOiAxOwotICAgICAgICBib29sIG1fcGFnZUNhY2hl
U3VwcG9ydHNQbHVnaW5zIDogMTsKLSAgICAgICAgYm9vbCBtX3Nob3dzVVJMc0luVG9vbFRpcHMg
OiAxOwotICAgICAgICBib29sIG1fc2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQgOiAxOwot
ICAgICAgICBib29sIG1fZm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5ncyA6IDE7Ci0gICAgICAgIGJv
b2wgbV9kZXZlbG9wZXJFeHRyYXNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2phdmFTY3Jp
cHRFeHBlcmltZW50c0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fYXV0aG9yQW5kVXNlclN0
eWxlc0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mg
OiAxOwogICAgICAgICB1bnNpZ25lZCBtX2ZvbnRSZW5kZXJpbmdNb2RlIDogMTsKLSAgICAgICAg
Ym9vbCBtX2ZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgOiAxOwotI2lmIEVOQUJMRShXRUJfQVJDSElW
RSkKLSAgICAgICAgYm9vbCBtX3dlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkIDogMTsKLSNlbmRp
ZgotICAgICAgICBib29sIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCA6IDE7CiAg
ICAgICAgIGJvb2wgbV9pbkFwcGxpY2F0aW9uQ2hyb21lTW9kZSA6IDE7Ci0gICAgICAgIGJvb2wg
bV9vZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1f
ZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUgOiAxOwotICAgICAgICBib29sIG1fdXNl
c0VuY29kaW5nRGV0ZWN0b3IgOiAxOwotICAgICAgICBib29sIG1fYWxsb3dTY3JpcHRzVG9DbG9z
ZVdpbmRvd3MgOiAxOwotICAgICAgICBib29sIG1fY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2lu
ZyA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIDogMTsKLSAg
ICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQgOiAxOwogICAgICAgICBib29s
IG1faXNDU1NDdXN0b21GaWx0ZXJFbmFibGVkIDogMTsKICNpZiBFTkFCTEUoQ1NTX1NUSUNLWV9Q
T1NJVElPTikKICAgICAgICAgYm9vbCBtX2Nzc1N0aWNreVBvc2l0aW9uRW5hYmxlZCA6IDE7CkBA
IC03NTgsOTcgKzM2NCwyNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKENTU19W
QVJJQUJMRVMpCiAgICAgICAgIGJvb2wgbV9jc3NWYXJpYWJsZXNFbmFibGVkIDogMTsKICNlbmRp
ZgotICAgICAgICBib29sIG1fcmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCA6IDE7Ci0gICAgICAg
IGJvb2wgbV9jc3NHcmlkTGF5b3V0RW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9kb3dubG9h
ZGFibGVCaW5hcnlGb250c0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1feHNzQXVkaXRvckVu
YWJsZWQgOiAxOwogICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQg
OiAxOwotICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Ny
b2xsRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
M0RUcmFuc2Zvcm1zRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yVmlkZW9FbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JQbHVnaW5zRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yQ2FudmFzRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9h
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgOiAxOwotICAgICAg
ICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVk
IDogMTsgLy8gV29ya3Mgb25seSBpbiBjb25qdW5jdGlvbiB3aXRoIGZvcmNlQ29tcG9zaXRpbmdN
b2RlCiAgICAgICAgIGJvb2wgbV9zaG93RGVidWdCb3JkZXJzIDogMTsKICAgICAgICAgYm9vbCBt
X3Nob3dSZXBhaW50Q291bnRlciA6IDE7Ci0gICAgICAgIGJvb2wgbV9leHBlcmltZW50YWxOb3Rp
ZmljYXRpb25zRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV93ZWJHTEVuYWJsZWQgOiAxOwot
ICAgICAgICBib29sIG1fd2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkIDogMTsKLSAgICAgICAg
Ym9vbCBtX29wZW5HTE11bHRpc2FtcGxpbmdFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX3By
aXZpbGVnZWRXZWJHTEV4dGVuc2lvbnNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX3dlYkF1
ZGlvRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENhbnZhczJkRW5hYmxl
ZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9kZWZlcnJlZENhbnZhczJkRW5hYmxlZCA6IDE7Ci0gICAg
ICAgIGJvb2wgbV9sb2FkRGVmZXJyaW5nRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV90aWxl
ZEJhY2tpbmdTdG9yZUVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fcGFnaW5hdGVEdXJpbmdM
YXlvdXRFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2Ruc1ByZWZldGNoaW5nRW5hYmxlZCA6
IDE7Ci0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgICAgICBib29sIG1fZnVsbFNjcmVl
bkFQSUVuYWJsZWQgOiAxOwotI2VuZGlmCi0gICAgICAgIGJvb2wgbV9hc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV91bmlmaWVkVGV4dENoZWNrZXJF
bmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX21lbW9yeUluZm9FbmFibGVkIDogMTsKLSAgICAg
ICAgYm9vbCBtX3F1YW50aXplZE1lbW9yeUluZm9FbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBt
X2ludGVyYWN0aXZlRm9ybVZhbGlkYXRpb24gOiAxOwotICAgICAgICBib29sIG1fdXNlUHJlSFRN
TDVQYXJzZXJRdWlya3MgOiAxOwotICAgICAgICBib29sIG1faHlwZXJsaW5rQXVkaXRpbmdFbmFi
bGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NS
dWxlc0Rpc2FibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlIDog
MTsKLSAgICAgICAgYm9vbCBtX3Nob3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlE
b2N1bWVudCA6IDE7Ci0gICAgICAgIGJvb2wgbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVU
b0ZyYW1lIDogMTsKLSAgICAgICAgYm9vbCBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50
IDogMTsKLSAgICAgICAgYm9vbCBtX2FsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50IDogMTsK
ICNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKICAgICAgICAgYm9vbCBtX3Njcm9sbEFuaW1h
dG9yRW5hYmxlZCA6IDE7CiAjZW5kaWYKLSAgICAgICAgYm9vbCBtX21lZGlhUGxheWJhY2tSZXF1
aXJlc1VzZXJHZXN0dXJlIDogMTsKLSAgICAgICAgYm9vbCBtX21lZGlhUGxheWJhY2tBbGxvd3NJ
bmxpbmUgOiAxOwotICAgICAgICBib29sIG1fcGFzc3dvcmRFY2hvRW5hYmxlZCA6IDE7Ci0gICAg
ICAgIGJvb2wgbV9zdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcgOiAxOwotICAgICAgICBi
b29sIG1fYmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1f
dmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZCA6IDE7Ci0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
Ci0gICAgICAgIGJvb2wgbV9zaG91bGREaXNwbGF5U3VidGl0bGVzIDogMTsKLSAgICAgICAgYm9v
bCBtX3Nob3VsZERpc3BsYXlDYXB0aW9ucyA6IDE7Ci0gICAgICAgIGJvb2wgbV9zaG91bGREaXNw
bGF5VGV4dERlc2NyaXB0aW9ucyA6IDE7Ci0jZW5kaWYKLSAgICAgICAgYm9vbCBtX3Njcm9sbGlu
Z0Nvb3JkaW5hdG9yRW5hYmxlZCA6IDE7Ci0KLSAgICAgICAgYm9vbCBtX25vdGlmaWNhdGlvbnNF
bmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJr
IDogMTsKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgICAgIGJvb2wgbV90b3VjaEV2
ZW50RW11bGF0aW9uRW5hYmxlZCA6IDE7CiAjZW5kaWYKLSAgICAgICAgYm9vbCBtX3Nob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uIDogMTsKLSAgICAgICAgYm9vbCBtX3dhbnRzQmFsYW5jZWRT
ZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IgOiAxOwotICAgICAgICBib29sIG1fcmVxdWVzdEFuaW1h
dGlvbkZyYW1lRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9kZXZpY2VTdXBwb3J0c1RvdWNo
IDogMTsKLSAgICAgICAgYm9vbCBtX2RldmljZVN1cHBvcnRzTW91c2UgOiAxOwotICAgICAgICBi
b29sIG1fbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyayA6IDE7Ci0KLSAgICAgICAgYm9vbCBt
X2ZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0IDogMTsKLSAgICAgICAgYm9vbCBt
X3N5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fY29va2llRW5h
YmxlZCA6IDE7Ci0KLSAgICAgICAgYm9vbCBtX3dpbmRvd0ZvY3VzUmVzdHJpY3RlZCA6IDE7Ci0K
LSAgICAgICAgYm9vbCBtX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCA6IDE7Ci0KICAgICAgICAg
Ym9vbCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQgOiAxOwogCi0gICAgICAg
IGJvb2wgbV9hcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvciA6IDE7Ci0gICAgICAgIGJv
b2wgbV9wbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkIDogMTsKLQogICAgICAgICBUaW1lcjxTZXR0
aW5ncz4gbV9zZXRJbWFnZUxvYWRpbmdTZXR0aW5nc1RpbWVyOwogICAgICAgICB2b2lkIGltYWdl
TG9hZGluZ1NldHRpbmdzVGltZXJGaXJlZChUaW1lcjxTZXR0aW5ncz4qKTsKIAotICAgICAgICBk
b3VibGUgbV9pbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kczsK
LQogICAgICAgICBzdGF0aWMgZG91YmxlIGdEZWZhdWx0TWluRE9NVGltZXJJbnRlcnZhbDsKICAg
ICAgICAgc3RhdGljIGRvdWJsZSBnRGVmYXVsdERPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWw7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiOWQwMDlkZmYzNjFjMTg0NTAxNTk4
ZGNlOTdjZDE1M2E5YmJmYTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmluCkBAIC0wLDAgKzEsMTU2IEBACisjIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Ig
Z2xvYmFsIHNldHRpbmdzLgorIyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIGN1c3RvbSBnZXR0ZXJz
L3NldHRlcnMuCisKK2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1lIHR5cGU9U3RyaW5nCitmdHBEaXJl
Y3RvcnlUZW1wbGF0ZVBhdGggdHlwZT1TdHJpbmcKK2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCB0
eXBlPVN0cmluZworZWRpdGFibGVMaW5rQmVoYXZpb3IgdHlwZT1FZGl0YWJsZUxpbmtCZWhhdmlv
ciwgaW5pdGlhbD1FZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3IKK3RleHREaXJlY3Rpb25TdWJt
ZW51SW5jbHVzaW9uQmVoYXZpb3IgdHlwZT1UZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJl
aGF2aW9yLCBpbml0aWFsPVRleHREaXJlY3Rpb25TdWJtZW51QXV0b21hdGljYWxseUluY2x1ZGVk
CitwYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyB0eXBlPWRvdWJsZSwgaW5pdGlhbD0xCisK
KyMgU2V0cyB0aGUgbWFnbmlmaWNhdGlvbiB2YWx1ZSBmb3IgdmFsaWRhdGlvbiBtZXNzYWdlIHRp
bWVyLiAgSWYgdGhlCisjIG1hZ25pZmljYXRpb24gdmFsdWUgaXMgTiwgYSB2YWxpZGF0aW9uIG1l
c3NhZ2UgZGlzYXBwZWFycyBhdXRvbWF0aWNhbGx5IGFmdGVyCisjIDxtZXNzYWdlIGxlbmd0aD4g
KiBOIC8gMTAwMCBzZWNvbmRzLiAgSWYgTiBpcyBlcXVhbCB0byBvciBsZXNzIHRoYW4gMCwgYQor
IyB2YWxpZGF0aW9uIG1lc3NhZ2UgZG9lc24ndCBkaXNhcHBlYXJzIGF1dG9tYXRpY2FseS4KK3Zh
bGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uIHR5cGU9aW50LCBpbml0aWFsPTUwCisK
KyMgTnVtYmVyIG9mIHBpeGVscyBiZWxvdyB3aGljaCAyRCBjYW52YXMgaXMgcmVuZGVyZWQgaW4g
c29mdHdhcmUKKyMgZXZlbiBpZiBoYXJkd2FyZSBhY2NlbGVyYXRpb24gaXMgZW5hYmxlZC4KKyMg
SGFyZHdhcmUgYWNjZWxlcmF0aW9uIGlzIHVzZWZ1bCBmb3IgbGFyZ2UgY2FudmFzZXMgd2hlcmUg
aXQgY2FuIGF2b2lkIHRoZQorIyBwaXhlbCBiYW5kd2lkdGggYmV0d2VlbiB0aGUgQ1BVIGFuZCBH
UFUuIEJ1dCBHUFUgYWNjZWxlcmF0aW9uIGNvbWVzIGF0CisjIGEgcHJpY2UgLSBleHRyYSBiYWNr
LWJ1ZmZlciBhbmQgdGV4dHVyZSBjb3B5LiBTbWFsbCBjYW52YXNlcyBhcmUgYWxzbworIyB3aWRl
bHkgdXNlZCBmb3Igc3R5bGl6ZWQgZm9udHMuIEFudGktYWxpYXNpbmcgdGV4dCBpbiBoYXJkd2Fy
ZSBhdCB0aGF0CisjIHNjYWxlIGlzIGdlbmVyYWxseSBzbG93ZXIuIFNvIGJlbG93IGEgY2VydGFp
biBzaXplIGl0IGlzIGJldHRlciB0bworIyBkcmF3IGNhbnZhcyBpbiBzb2Z0d2FyZS4KK21pbmlt
dW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZSB0eXBlPWludCwgaW5pdGlhbD0yNTcqMjU2CisKK2xh
eW91dEZhbGxiYWNrV2lkdGggdHlwZT1pbnQsIGluaXRpYWw9OTgwCittYXhpbXVtRGVjb2RlZElt
YWdlU2l6ZSB0eXBlPXNpemVfdCwgaW5pdGlhbD1udW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgo
KQorZGV2aWNlV2lkdGggdHlwZT1pbnQsIGluaXRpYWw9MAorZGV2aWNlSGVpZ2h0IHR5cGU9aW50
LCBpbml0aWFsPTAKKworIyBBbGxvdyBjbGllbnRzIGNvbmNlcm5lZCB3aXRoIG1lbW9yeSBjb25z
dW1wdGlvbiB0byBzZXQgYSBxdW90YSBvbiBzZXNzaW9uIHN0b3JhZ2UKKyMgc2luY2UgdGhlIG1l
bW9yeSB1c2VkIHdvbid0IGJlIHJlbGVhc2VkIHVudGlsIHRoZSBQYWdlIGlzIGRlc3Ryb3llZC4K
K3Nlc3Npb25TdG9yYWdlUXVvdGEgdHlwZT11bnNpZ25lZCwgaW5pdGlhbD1TdG9yYWdlTWFwOjpu
b1F1b3RhCisKK2VkaXRpbmdCZWhhdmlvclR5cGUgdHlwZT1FZGl0aW5nQmVoYXZpb3JUeXBlLCBp
bml0aWFsPWVkaXRpbmdCZWhhdmlvclR5cGVGb3JQbGF0Zm9ybSgpCittYXhpbXVtSFRNTFBhcnNl
ckRPTVRyZWVEZXB0aCB0eXBlPXVuc2lnbmVkLCBpbml0aWFsPWRlZmF1bHRNYXhpbXVtSFRNTFBh
cnNlckRPTVRyZWVEZXB0aAorCisjIFRoaXMgc2V0dGluZyBvbmx5IGFmZmVjdHMgc2l0ZSBpY29u
IGltYWdlIGxvYWRpbmcgaWYgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcgaXMgZmFs
c2UgYW5kIHRoaXMgc2V0dGluZyBpcyB0cnVlLgorIyBBbGwgb3RoZXIgcGVybXV0YXRpb25zIHN0
aWxsIGhlZWQgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcuCitsb2Fkc1NpdGVJY29u
c0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyBpbml0aWFsPWZhbHNlCisKK2NhcmV0QnJvd3Np
bmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2xvY2FsU3RvcmFnZUVuYWJsZWQgaW5pdGlhbD1mYWxz
ZQorYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMgaW5pdGlhbD10cnVlCithbGxvd0Zp
bGVBY2Nlc3NGcm9tRmlsZVVSTHMgaW5pdGlhbD10cnVlCitqYXZhU2NyaXB0Q2FuT3BlbldpbmRv
d3NBdXRvbWF0aWNhbGx5IGluaXRpYWw9ZmFsc2UKK3N1cHBvcnRzTXVsdGlwbGVXaW5kb3dzIGlu
aXRpYWw9dHJ1ZQoramF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCBpbml0aWFsPWZhbHNlCitz
aG91bGRQcmludEJhY2tncm91bmRzIGluaXRpYWw9ZmFsc2UKK3VzZXNEYXNoYm9hcmRCYWNrd2Fy
ZENvbXBhdGliaWxpdHlNb2RlIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPURBU0hCT0FSRF9T
VVBQT1JUCisKKyMgVGhpcyBpcyBhIHF1aXJrIHdlIGFyZSBwcm8tYWN0aXZlbHkgYXBwbHlpbmcg
dG8gb2xkIGFwcGxpY2F0aW9ucy4gSXQgY2hhbmdlcyBrZXlib2FyZCBldmVudCBkaXNwYXRjaGlu
ZywKKyMgbWFraW5nIGtleUlkZW50aWZpZXIgYXZhaWxhYmxlIG9uIGtleXByZXNzIGV2ZW50cywg
bWFraW5nIGNoYXJDb2RlIGF2YWlsYWJsZSBvbiBrZXlkb3duL2tleXVwIGV2ZW50cywKKyMgYW5k
IGdldHRpbmcga2V5cHJlc3MgZGlzcGF0Y2hlZCBpbiBtb3JlIGNhc2VzLgorbmVlZHNLZXlib2Fy
ZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MgaW5pdGlhbD1mYWxzZQorCit0cmVhdHNBbnlUZXh0
Q1NTTGlua0FzU3R5bGVzaGVldCBpbml0aWFsPWZhbHNlCituZWVkc0xlb3BhcmRNYWlsUXVpcmtz
IGluaXRpYWw9ZmFsc2UKK3Nocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQgaW5pdGlhbD10cnVl
CitwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMgaW5pdGlhbD1mYWxzZQorc2hvd3NVUkxzSW5Ub29s
VGlwcyBpbml0aWFsPWZhbHNlCitzaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCBpbml0aWFs
PWZhbHNlCitmb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzIGluaXRpYWw9ZmFsc2UKK2RldmVsb3Bl
ckV4dHJhc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQoramF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCituZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyBpbml0aWFsPWZhbHNlCit3
ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZCBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1XRUJf
QVJDSElWRQorbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlCitv
ZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQorZW5mb3JjZUNT
U01JTUVUeXBlSW5Ob1F1aXJrc01vZGUgaW5pdGlhbD10cnVlCit1c2VzRW5jb2RpbmdEZXRlY3Rv
ciBpbml0aWFsPWZhbHNlCithbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cyBpbml0aWFsPWZhbHNl
CitjYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nIGluaXRpYWw9ZmFsc2UKK2FjY2VsZXJhdGVk
RHJhd2luZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCBp
bml0aWFsPWZhbHNlCityZWdpb25CYXNlZENvbHVtbnNFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2Nz
c0dyaWRMYXlvdXRFbmFibGVkIGluaXRpYWw9ZmFsc2UKKworIyBGSVhNRTogVGhpcyBzaG91bGQg
cmVhbGx5IGJlIGRpc2FibGVkIGJ5IGRlZmF1bHQgYXMgaXQgbWFrZXMgcGxhdGZvcm1zIHRoYXQg
ZG9uJ3Qgc3VwcG9ydCB0aGUgZmVhdHVyZSBkb3dubG9hZCBmaWxlcworIyB0aGV5IGNhbid0IHVz
ZSBieS4gTGVhdmluZyBlbmFibGVkIGZvciBub3cgdG8gbm90IGNoYW5nZSBleGlzdGluZyBiZWhh
dmlvci4KK2Rvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCBpbml0aWFsPXRydWUKKworeHNz
QXVkaXRvckVuYWJsZWQgaW5pdGlhbD1mYWxzZQorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNE
VHJhbnNmb3Jtc0VuYWJsZWQgaW5pdGlhbD10cnVlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
VmlkZW9FbmFibGVkIGluaXRpYWw9dHJ1ZQorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdp
bnNFbmFibGVkIGluaXRpYWw9dHJ1ZQorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0Vu
YWJsZWQgaW5pdGlhbD10cnVlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5h
YmxlZCBpbml0aWFsPXRydWUKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9u
RW5hYmxlZCBpbml0aWFsPWZhbHNlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGxFbmFibGVkIGluaXRpYWw9ZmFsc2UKKworIyBXb3JrcyBvbmx5IGluIGNvbmp1bmN0aW9u
IHdpdGggZm9yY2VDb21wb3NpdGluZ01vZGUuCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Ny
b2xsYWJsZUZyYW1lc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorCitleHBlcmltZW50YWxOb3RpZmlj
YXRpb25zRW5hYmxlZCBpbml0aWFsPWZhbHNlCit3ZWJHTEVuYWJsZWQgaW5pdGlhbD1mYWxzZQor
d2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkIGluaXRpYWw9ZmFsc2UKK29wZW5HTE11bHRpc2Ft
cGxpbmdFbmFibGVkIGluaXRpYWw9dHJ1ZQorcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJs
ZWQgaW5pdGlhbD1mYWxzZQorYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1mYWxz
ZQorZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorbG9hZERlZmVycmluZ0Vu
YWJsZWQgaW5pdGlhbD10cnVlCit3ZWJBdWRpb0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorcGFnaW5h
dGVEdXJpbmdMYXlvdXRFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2Z1bGxTY3JlZW5FbmFibGVkIGlu
aXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPUZVTExTQ1JFRU5fQVBJCithc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlCittZW1vcnlJbmZvRW5hYmxlZCBpbml0aWFs
PWZhbHNlCitxdWFudGl6ZWRNZW1vcnlJbmZvRW5hYmxlZCBpbml0aWFsPWZhbHNlCisKKyMgVGhp
cyBmZWF0dXJlIHJlcXVpcmVzIGFuIGltcGxlbWVudGF0aW9uIG9mIFZhbGlkYXRpb25NZXNzYWdl
Q2xpZW50LgoraW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQgaW5pdGlhbD1mYWxzZQor
Cit1c2VQcmVIVE1MNVBhcnNlclF1aXJrcyBpbml0aWFsPWZhbHNlCitoeXBlcmxpbmtBdWRpdGlu
Z0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1
bGVzRGlzYWJsZWQgaW5pdGlhbD1mYWxzZQorZm9yY2VDb21wb3NpdGluZ01vZGUgaW5pdGlhbD1m
YWxzZQorc2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50IGluaXRp
YWw9ZmFsc2UKK2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUgaW5pdGlhbD1mYWxz
ZQorYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQgaW5pdGlhbD10cnVlCithbGxvd1J1bm5p
bmdPZkluc2VjdXJlQ29udGVudCBpbml0aWFsPXRydWUKK21lZGlhUGxheWJhY2tSZXF1aXJlc1Vz
ZXJHZXN0dXJlIGluaXRpYWw9ZmFsc2UKK21lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUgaW5pdGlh
bD10cnVlCitwYXNzd29yZEVjaG9FbmFibGVkIGluaXRpYWw9ZmFsc2UKK3N1cHByZXNzZXNJbmNy
ZW1lbnRhbFJlbmRlcmluZyBpbml0aWFsPWZhbHNlCitpbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHBy
ZXNzaW9uVGltZW91dEluU2Vjb25kcyB0eXBlPWRvdWJsZSwgaW5pdGlhbD1kZWZhdWx0SW5jcmVt
ZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMKK2JhY2tzcGFjZUtleU5h
dmlnYXRpb25FbmFibGVkIGluaXRpYWw9dHJ1ZQordmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZCBp
bml0aWFsPWZhbHNlCitzaG91bGREaXNwbGF5U3VidGl0bGVzIGluaXRpYWw9ZmFsc2UsIGNvbmRp
dGlvbmFsPVZJREVPX1RSQUNLCitzaG91bGREaXNwbGF5Q2FwdGlvbnMgaW5pdGlhbD1mYWxzZSwg
Y29uZGl0aW9uYWw9VklERU9fVFJBQ0sKK3Nob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zIGlu
aXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCitzY3JvbGxpbmdDb29yZGluYXRv
ckVuYWJsZWQgaW5pdGlhbD1mYWxzZQorbm90aWZpY2F0aW9uc0VuYWJsZWQgaW5pdGlhbD10cnVl
CisKKyMgU29tZSBhcHBzIG5lZWRzIGlzTG9hZGluZ0luQVBJU2Vuc2UgdG8gYWNjb3VudCBmb3Ig
YWN0aXZlIHN1YnJlc291cmNlIGxvYWRlcnMuCituZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWly
ayBpbml0aWFsPWZhbHNlCisKK3Nob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIGluaXRpYWw9
ZmFsc2UKK3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IgaW5pdGlhbD1mYWxz
ZQorcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCBpbml0aWFsPXRydWUKK2RldmljZVN1cHBv
cnRzVG91Y2ggaW5pdGlhbD1mYWxzZQorZGV2aWNlU3VwcG9ydHNNb3VzZSBpbml0aWFsPXRydWUK
K25lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsgaW5pdGlhbD1mYWxzZQorZml4ZWRQb3NpdGlv
bkNyZWF0ZXNTdGFja2luZ0NvbnRleHQgaW5pdGlhbD1mYWxzZQorc3luY1hIUkluRG9jdW1lbnRz
RW5hYmxlZCBpbml0aWFsPXRydWUKK2Nvb2tpZUVuYWJsZWQgaW5pdGlhbD10cnVlCisKKyMgV2hl
biBlbmFibGVkLCB3aW5kb3cuYmx1cigpIGRvZXMgbm90IGNoYW5nZSBmb2N1cywgYW5kCisjIHdp
bmRvdy5mb2N1cygpIG9ubHkgY2hhbmdlcyBmb2N1cyB3aGVuIGludm9rZWQgZnJvbSB0aGUgY29u
dGV4dCB0aGF0CisjIGNyZWF0ZWQgdGhlIHdpbmRvdy4KK3dpbmRvd0ZvY3VzUmVzdHJpY3RlZCBp
bml0aWFsPXRydWUKKworZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2Fw
cGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yIGluaXRpYWw9ZmFsc2UKK3BsdWdJblNuYXBz
aG90dGluZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCBpbml0
aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21ha2Vfc2V0dGluZ3Mu
cGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21ha2Vfc2V0dGluZ3MucGwKbmV3IGZpbGUgbW9kZSAx
MDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThj
ODIwYjYyNzhjYThmMWIyMjczMWRiMjRjOWU5OTAwODZiZGY5NwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbApAQCAtMCwwICsxLDI1NSBAQAor
IyEvdXNyL2Jpbi9wZXJsIC13CisKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFkYW0gQmFydGggPGFi
YXJ0aEB3ZWJraXQub3JnPgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dM
RSwgSU5DLiBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisjIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCit1c2Ugc3RyaWN0
OworCit1c2UgSW5GaWxlc0NvbXBpbGVyOworCitteSAlZGVmYXVsdFBhcmFtZXRlcnMgPSAoCisp
OworCitzdWIgZGVmYXVsdEl0ZW1GYWN0b3J5Cit7CisgICAgcmV0dXJuICgKKyAgICAgICAgJ2Nv
bmRpdGlvbmFsJyA9PiAwLAorICAgICAgICAnaW5pdGlhbCcgPT4gJycsCisgICAgICAgICd0eXBl
JyA9PiAnYm9vbCcKKyAgICApOworfQorCitteSAkSW5Db21waWxlciA9IEluRmlsZXNDb21waWxl
ci0+bmV3KFwlZGVmYXVsdFBhcmFtZXRlcnMsIFwmZGVmYXVsdEl0ZW1GYWN0b3J5KTsKKworbXkg
JG91dHB1dERpciA9ICRJbkNvbXBpbGVyLT5pbml0aWFsaXplRnJvbUNvbW1hbmRMaW5lKCk7Cisk
SW5Db21waWxlci0+Y29tcGlsZShcJmdlbmVyYXRlQ29kZSk7CisKK3N1YiBnZW5lcmF0ZUNvZGUo
KQoreworICAgIG15ICRwYXJzZWRQYXJhbWV0ZXJzUmVmID0gc2hpZnQ7CisgICAgbXkgJHBhcnNl
ZEl0ZW1zUmVmID0gc2hpZnQ7CisKKyAgICBnZW5lcmF0ZUhlYWRlcigkcGFyc2VkSXRlbXNSZWYp
OworfQorCitzdWIgZ2VuZXJhdGVIZWFkZXIoJCkKK3sKKyAgICBteSAkcGFyc2VkSXRlbXNSZWYg
PSBzaGlmdDsKKworICAgIG15ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9Owor
ICAgIG15ICRvdXRwdXRGaWxlID0gIiRvdXRwdXREaXIvU2V0dGluZ3NNYWNyb3MuaCI7CisKKyAg
ICBteSAldW5jb25kaXRpb25hbFNldHRpbmdzID0gKCk7CisgICAgbXkgJXNldHRpbmdzQnlDb25k
aXRpb25hbCA9ICgpOworCisgICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICVwYXJz
ZWRJdGVtcykgeworICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkcGFyc2VkSXRlbXN7JHNldHRp
bmdOYW1lfXsiY29uZGl0aW9uYWwifTsKKworICAgICAgICBpZiAoJGNvbmRpdGlvbmFsKSB7Cisg
ICAgICAgICAgICBpZiAoIWRlZmluZWQoJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9u
YWx9KSkgeworICAgICAgICAgICAgICAgICRzZXR0aW5nc0J5Q29uZGl0aW9uYWx7JGNvbmRpdGlv
bmFsfSA9ICgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgJHNldHRpbmdzQnlDb25kaXRp
b25hbHskY29uZGl0aW9uYWx9eyRzZXR0aW5nTmFtZX0gPSAxOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgJHVuY29uZGl0aW9uYWxTZXR0aW5nc3skc2V0dGluZ05hbWV9ID0gMTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIG9wZW4gbXkgJGZpbGUsICI+JG91dHB1dEZpbGUiIG9yIGRp
ZSAiRmFpbGVkIHRvIG9wZW4gZmlsZTogJCEiOworCisgICAgcHJpbnQgJGZpbGUgJEluQ29tcGls
ZXItPmxpY2Vuc2UoKTsKKworICAgICMgRklYTUU6IFNvcnQgYnkgdHlwZSBzbyBib29scyBjb21l
IGxhc3QgYW5kIGFyZSBiaXQgcGFja2VkLgorCisgICAgcHJpbnQgJGZpbGUgIiNpZm5kZWYgU2V0
dGluZ3NNYWNyb3NfaFxuIjsKKyAgICBwcmludCAkZmlsZSAiI2RlZmluZSBTZXR0aW5nc01hY3Jv
c19oXG5cbiI7CisKKyAgICBwcmludENvbmRpdGlvbmFsTWFjcm9zKCRmaWxlLCBcJXNldHRpbmdz
QnlDb25kaXRpb25hbCwgJHBhcnNlZEl0ZW1zUmVmKTsKKworICAgIHByaW50R2V0dGVyc0FuZFNl
dHRlcnMoJGZpbGUsIFwldW5jb25kaXRpb25hbFNldHRpbmdzLCBcJXNldHRpbmdzQnlDb25kaXRp
b25hbCwgJHBhcnNlZEl0ZW1zUmVmKTsKKyAgICBwcmludE1lbWJlclZhcmlhYmxlcygkZmlsZSwg
XCV1bmNvbmRpdGlvbmFsU2V0dGluZ3MsIFwlc2V0dGluZ3NCeUNvbmRpdGlvbmFsLCAkcGFyc2Vk
SXRlbXNSZWYpOworICAgIHByaW50SW5pdGlhbGl6ZXJMaXN0KCRmaWxlLCBcJXVuY29uZGl0aW9u
YWxTZXR0aW5ncywgXCVzZXR0aW5nc0J5Q29uZGl0aW9uYWwsICRwYXJzZWRJdGVtc1JlZik7CisK
KyAgICBwcmludCAkZmlsZSAiI2VuZGlmIC8vIFNldHRpbmdzTWFjcm9zX2hcbiI7CisKKyAgICBj
bG9zZSAkZmlsZTsKK30KKworc3ViIHByaW50Q29uZGl0aW9uYWxNYWNyb3MoJCQkKQoreworICAg
IG15ICgkZmlsZSwgJHNldHRpbmdzQnlDb25kaXRpb25hbFJlZiwgJHBhcnNlZEl0ZW1zUmVmKSA9
IEBfOworICAgIG15ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworICAgIG15
ICVzZXR0aW5nc0J5Q29uZGl0aW9uYWwgPSAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFsUmVmIH07
CisKKyAgICBmb3IgbXkgJGNvbmRpdGlvbmFsIChzb3J0IGtleXMgJXNldHRpbmdzQnlDb25kaXRp
b25hbCkgeworICAgICAgICBteSAkcHJlZmVycmVkQ29uZGl0aW9uYWwgPSAkSW5Db21waWxlci0+
cHJlZmVycmVkQ29uZGl0aW9uYWwoJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcHJpbnQgJGZpbGUg
IiNpZiAiIC4gJEluQ29tcGlsZXItPmNvbmRpdGlvbmFsU3RyaW5nRnJvbUF0dHJpYnV0ZVZhbHVl
KCRjb25kaXRpb25hbCkgLiAiXG4iOworCisgICAgICAgIHByaW50ICRmaWxlICIjZGVmaW5lICR7
cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0dFVFRFUl9BTkRfU0VUVEVSUyBcXFxuIjsK
KyAgICAgICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV7ICRzZXR0aW5nc0J5Q29u
ZGl0aW9uYWx7JGNvbmRpdGlvbmFsfSB9KSB7CisgICAgICAgICAgICBwcmludEdldHRlckFuZFNl
dHRlcigkZmlsZSwgJHNldHRpbmdOYW1lLCAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlw
ZSJ9KTsKKyAgICAgICAgfQorICAgICAgICBwcmludCAkZmlsZSAiLy8gRW5kIG9mICR7cHJlZmVy
cmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0dFVFRFUl9BTkRfU0VUVEVSU1xuIjsKKworICAgICAg
ICBwcmludCAkZmlsZSAiI2RlZmluZSAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19O
T05fQk9PTF9NRU1CRVJfVkFSSUFCTEVTIFxcXG4iOworICAgICAgICBmb3IgbXkgJHNldHRpbmdO
YW1lIChzb3J0IGtleXMgJXsgJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9IH0p
IHsKKyAgICAgICAgICAgIG15ICR0eXBlID0gJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5
cGUifTsKKyAgICAgICAgICAgIG5leHQgaWYgJHR5cGUgZXEgImJvb2wiOworICAgICAgICAgICAg
cHJpbnQgJGZpbGUgIiAgICAkdHlwZSBtXyRzZXR0aW5nTmFtZTsgXFxcbiIKKyAgICAgICAgfQor
ICAgICAgICBwcmludCAkZmlsZSAiLy8gRW5kIG9mICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NF
VFRJTkdTX05PTl9CT09MX01FTUJFUl9WQVJJQUJMRVNcbiI7CisKKyAgICAgICAgcHJpbnQgJGZp
bGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfQk9PTF9NRU1CRVJf
VkFSSUFCTEVTIFxcXG4iOworICAgICAgICBmb3IgbXkgJHNldHRpbmdOYW1lIChzb3J0IGtleXMg
JXsgJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9IH0pIHsKKyAgICAgICAgICAg
IG5leHQgaWYgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifSBuZSAiYm9vbCI7Cisg
ICAgICAgICAgICBwcmludCAkZmlsZSAiICAgIGJvb2wgbV8kc2V0dGluZ05hbWUgOiAxOyBcXFxu
IgorICAgICAgICB9CisgICAgICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgJHtwcmVmZXJyZWRD
b25kaXRpb25hbH1fU0VUVElOR1NfQk9PTF9NRU1CRVJfVkFSSUFCTEVTXG4iOworCisgICAgICAg
IHByaW50ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX05P
Tl9CT09MX0lOSVRJQUxJWkVSUyBcXFxuIjsKKyAgICAgICAgZm9yIG15ICRzZXR0aW5nTmFtZSAo
c29ydCBrZXlzICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWx7JGNvbmRpdGlvbmFsfSB9KSB7Cisg
ICAgICAgICAgICBuZXh0IGlmICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0gZXEg
ImJvb2wiOworICAgICAgICAgICAgcHJpbnRJbml0aWFsaXplcigkZmlsZSwgJHNldHRpbmdOYW1l
LCAkcGFyc2VkSXRlbXNSZWYpOworICAgICAgICB9CisgICAgICAgIHByaW50ICRmaWxlICIvLyBF
bmQgb2YgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfTk9OX0JPT0xfSU5JVElBTEla
RVJTXG4iOworCisgICAgICAgIHByaW50ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0
aW9uYWx9X1NFVFRJTkdTX0JPT0xfSU5JVElBTElaRVJTIFxcXG4iOworICAgICAgICBmb3IgbXkg
JHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXsgJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0
aW9uYWx9IH0pIHsKKyAgICAgICAgICAgIG5leHQgaWYgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFt
ZX17InR5cGUifSBuZSAiYm9vbCI7CisgICAgICAgICAgICBwcmludEluaXRpYWxpemVyKCRmaWxl
LCAkc2V0dGluZ05hbWUsICRwYXJzZWRJdGVtc1JlZik7CisgICAgICAgIH0KKyAgICAgICAgcHJp
bnQgJGZpbGUgIi8vIEVuZCBvZiAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19CT09M
X0lOSVRJQUxJWkVSU1xuIjsKKworICAgICAgICBwcmludCAkZmlsZSAiI2Vsc2VcbiI7CisgICAg
ICAgIHByaW50ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdT
X0dFVFRFUl9BTkRfU0VUVEVSU1xuIjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtw
cmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfTk9OX0JPT0xfTUVNQkVSX1ZBUklBQkxFU1xu
IjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1f
U0VUVElOR1NfQk9PTF9NRU1CRVJfVkFSSUFCTEVTXG4iOworICAgICAgICBwcmludCAkZmlsZSAi
I2RlZmluZSAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19OT05fQk9PTF9JTklUSUFM
SVpFUlNcbiI7CisgICAgICAgIHByaW50ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0
aW9uYWx9X1NFVFRJTkdTX0JPT0xfSU5JVElBTElaRVJTXG4iOworICAgICAgICBwcmludCAkZmls
ZSAiI2VuZGlmXG4iOworICAgICAgICBwcmludCAkZmlsZSAiXG4iOworICAgIH0KK30KKworc3Vi
IHByaW50R2V0dGVyc0FuZFNldHRlcnMoJCQkJCkKK3sKKyAgICBteSAoJGZpbGUsICR1bmNvbmRp
dGlvbmFsU2V0dGluZ3NSZWYsICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxSZWYsICRwYXJzZWRJdGVt
c1JlZikgPSBAXzsKKyAgICBteSAlcGFyc2VkSXRlbXMgPSAleyAkcGFyc2VkSXRlbXNSZWYgfTsK
KyAgICBteSAldW5jb25kaXRpb25hbFNldHRpbmdzID0gJXsgJHVuY29uZGl0aW9uYWxTZXR0aW5n
c1JlZiB9OworICAgIG15ICVzZXR0aW5nc0J5Q29uZGl0aW9uYWwgPSAleyAkc2V0dGluZ3NCeUNv
bmRpdGlvbmFsUmVmIH07CisKKyAgICBwcmludCAkZmlsZSAiI2RlZmluZSBTRVRUSU5HU19HRVRU
RVJTX0FORF9TRVRURVJTIFxcXG4iOworICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5
cyAldW5jb25kaXRpb25hbFNldHRpbmdzKSB7CisgICAgICAgIHByaW50R2V0dGVyQW5kU2V0dGVy
KCRmaWxlLCAkc2V0dGluZ05hbWUsICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0p
OworICAgIH0KKyAgICBmb3IgbXkgJGNvbmRpdGlvbmFsIChzb3J0IGtleXMgJXNldHRpbmdzQnlD
b25kaXRpb25hbCkgeworICAgICAgICBteSAkcHJlZmVycmVkQ29uZGl0aW9uYWwgPSAkSW5Db21w
aWxlci0+cHJlZmVycmVkQ29uZGl0aW9uYWwoJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcHJpbnQg
JGZpbGUgIiAgICAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19HRVRURVJfQU5EX1NF
VFRFUlMgXFxcbiI7CisgICAgfQorICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgU0VUVElOR1Nf
R0VUVEVSU19BTkRfU0VUVEVSUy5cblxuIjsKK30KKworc3ViIHByaW50TWVtYmVyVmFyaWFibGVz
KCQkJCQpCit7CisgICAgbXkgKCRmaWxlLCAkdW5jb25kaXRpb25hbFNldHRpbmdzUmVmLCAkc2V0
dGluZ3NCeUNvbmRpdGlvbmFsUmVmLCAkcGFyc2VkSXRlbXNSZWYpID0gQF87CisgICAgbXkgJXBh
cnNlZEl0ZW1zID0gJXsgJHBhcnNlZEl0ZW1zUmVmIH07CisgICAgbXkgJXVuY29uZGl0aW9uYWxT
ZXR0aW5ncyA9ICV7ICR1bmNvbmRpdGlvbmFsU2V0dGluZ3NSZWYgfTsKKyAgICBteSAlc2V0dGlu
Z3NCeUNvbmRpdGlvbmFsID0gJXsgJHNldHRpbmdzQnlDb25kaXRpb25hbFJlZiB9OworCisgICAg
cHJpbnQgJGZpbGUgIiNkZWZpbmUgU0VUVElOR1NfTUVNQkVSX1ZBUklBQkxFUyBcXFxuIjsKKyAg
ICAjIFdlIGxpc3QgdGhlIGJvb2xzIGxhc3Qgc28gd2UgY2FuIGJpdCBwYWNrIHRoZW0uCisgICAg
Zm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV1bmNvbmRpdGlvbmFsU2V0dGluZ3MpIHsK
KyAgICAgICAgbXkgJHR5cGUgPSAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9Owor
ICAgICAgICBuZXh0IGlmICR0eXBlIGVxICJib29sIjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAg
ICAkdHlwZSBtXyRzZXR0aW5nTmFtZTsgXFxcbiIKKyAgICB9CisgICAgZm9yIG15ICRjb25kaXRp
b25hbCAoc29ydCBrZXlzICVzZXR0aW5nc0J5Q29uZGl0aW9uYWwpIHsKKyAgICAgICAgbXkgJHBy
ZWZlcnJlZENvbmRpdGlvbmFsID0gJEluQ29tcGlsZXItPnByZWZlcnJlZENvbmRpdGlvbmFsKCRj
b25kaXRpb25hbCk7CisgICAgICAgIHByaW50ICRmaWxlICIgICAgJHtwcmVmZXJyZWRDb25kaXRp
b25hbH1fU0VUVElOR1NfTk9OX0JPT0xfTUVNQkVSX1ZBUklBQkxFUyBcXFxuIjsKKyAgICB9Cisg
ICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV1bmNvbmRpdGlvbmFsU2V0dGluZ3Mp
IHsKKyAgICAgICAgbmV4dCBpZiAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9IG5l
ICJib29sIjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICBib29sIG1fJHNldHRpbmdOYW1lIDog
MTsgXFxcbiIKKyAgICB9CisgICAgZm9yIG15ICRjb25kaXRpb25hbCAoc29ydCBrZXlzICVzZXR0
aW5nc0J5Q29uZGl0aW9uYWwpIHsKKyAgICAgICAgbXkgJHByZWZlcnJlZENvbmRpdGlvbmFsID0g
JEluQ29tcGlsZXItPnByZWZlcnJlZENvbmRpdGlvbmFsKCRjb25kaXRpb25hbCk7CisgICAgICAg
IHByaW50ICRmaWxlICIgICAgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfQk9PTF9N
RU1CRVJfVkFSSUFCTEVTIFxcXG4iOworICAgIH0KKyAgICBwcmludCAkZmlsZSAiLy8gRW5kIG9m
IFNFVFRJTkdTX01FTUJFUl9WQVJJQUJMRVMuXG5cbiI7Cit9CisKK3N1YiBwcmludEdldHRlckFu
ZFNldHRlcigkJCQpCit7CisgICAgbXkgKCRmaWxlLCAkc2V0dGluZ05hbWUsICR0eXBlKSA9IEBf
OworICAgIG15ICRzZXR0ZXJGdW5jdGlvbk5hbWUgPSAic2V0IiAuICRzZXR0aW5nTmFtZTsKKyAg
ICBzdWJzdHIoJHNldHRlckZ1bmN0aW9uTmFtZSwgMywgMSkgPSB1YyhzdWJzdHIoJHNldHRlckZ1
bmN0aW9uTmFtZSwgMywgMSkpOworICAgIGlmIChzdWJzdHIoJHNldHRpbmdOYW1lLCAwLCAzKSBl
cSAiY3NzIiB8fCBzdWJzdHIoJHNldHRpbmdOYW1lLCAwLCAzKSBlcSAieHNzIiB8fCBzdWJzdHIo
JHNldHRpbmdOYW1lLCAwLCAzKSBlcSAiZnRwIikgeworICAgICAgICBzdWJzdHIoJHNldHRlckZ1
bmN0aW9uTmFtZSwgMywgMykgPSB1YyhzdWJzdHIoJHNldHRlckZ1bmN0aW9uTmFtZSwgMywgMykp
OworICAgIH0KKyAgICBpZiAobGMoc3Vic3RyKCR0eXBlLCAwLCAxKSkgZXEgc3Vic3RyKCR0eXBl
LCAwLCAxKSkgeworICAgICAgICBwcmludCAkZmlsZSAiICAgICR0eXBlICRzZXR0aW5nTmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1fJHNldHRpbmdOYW1lOyB9IFxcXG4iOworICAgICAgICBwcmludCAk
ZmlsZSAiICAgIHZvaWQgJHNldHRlckZ1bmN0aW9uTmFtZSgkdHlwZSAkc2V0dGluZ05hbWUpIHsg
bV8kc2V0dGluZ05hbWUgPSAkc2V0dGluZ05hbWU7IH0gXFxcbiI7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgcHJpbnQgJGZpbGUgIiAgICBjb25zdCAkdHlwZSYgJHNldHRpbmdOYW1lKCkgeyByZXR1
cm4gbV8kc2V0dGluZ05hbWU7IH0gXFxcbiI7CisgICAgICAgIHByaW50ICRmaWxlICIgICAgdm9p
ZCAkc2V0dGVyRnVuY3Rpb25OYW1lKGNvbnN0ICR0eXBlJiAkc2V0dGluZ05hbWUpIHsgbV8kc2V0
dGluZ05hbWUgPSAkc2V0dGluZ05hbWU7IH0gXFxcbiI7CisgICAgfQorfQorCitzdWIgcHJpbnRJ
bml0aWFsaXplckxpc3QoJCQkJCkKK3sKKyAgICBteSAoJGZpbGUsICR1bmNvbmRpdGlvbmFsU2V0
dGluZ3NSZWYsICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxSZWYsICRwYXJzZWRJdGVtc1JlZikgPSBA
XzsKKyAgICBteSAlcGFyc2VkSXRlbXMgPSAleyAkcGFyc2VkSXRlbXNSZWYgfTsKKyAgICBteSAl
dW5jb25kaXRpb25hbFNldHRpbmdzID0gJXsgJHVuY29uZGl0aW9uYWxTZXR0aW5nc1JlZiB9Owor
ICAgIG15ICVzZXR0aW5nc0J5Q29uZGl0aW9uYWwgPSAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFs
UmVmIH07CisKKyAgICBwcmludCAkZmlsZSAiI2RlZmluZSBTRVRUSU5HU19JTklUSUFMSVpFUl9M
SVNUIFxcXG4iOworICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5cyAldW5jb25kaXRp
b25hbFNldHRpbmdzKSB7CisgICAgICAgIG5leHQgaWYgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFt
ZX17InR5cGUifSBlcSAiYm9vbCI7CisgICAgICAgIHByaW50SW5pdGlhbGl6ZXIoJGZpbGUsICRz
ZXR0aW5nTmFtZSwgJHBhcnNlZEl0ZW1zUmVmKTsKKyAgICB9CisgICAgZm9yIG15ICRjb25kaXRp
b25hbCAoc29ydCBrZXlzICVzZXR0aW5nc0J5Q29uZGl0aW9uYWwpIHsKKyAgICAgICAgbXkgJHBy
ZWZlcnJlZENvbmRpdGlvbmFsID0gJEluQ29tcGlsZXItPnByZWZlcnJlZENvbmRpdGlvbmFsKCRj
b25kaXRpb25hbCk7CisgICAgICAgIHByaW50ICRmaWxlICIgICAgJHtwcmVmZXJyZWRDb25kaXRp
b25hbH1fU0VUVElOR1NfTk9OX0JPT0xfSU5JVElBTElaRVJTIFxcXG4iOworICAgIH0KKyAgICBm
b3IgbXkgJHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXVuY29uZGl0aW9uYWxTZXR0aW5ncykgewor
ICAgICAgICBuZXh0IGlmICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0gbmUgImJv
b2wiOworICAgICAgICBwcmludEluaXRpYWxpemVyKCRmaWxlLCAkc2V0dGluZ05hbWUsICRwYXJz
ZWRJdGVtc1JlZik7CisgICAgfQorICAgIGZvciBteSAkY29uZGl0aW9uYWwgKHNvcnQga2V5cyAl
c2V0dGluZ3NCeUNvbmRpdGlvbmFsKSB7CisgICAgICAgIG15ICRwcmVmZXJyZWRDb25kaXRpb25h
bCA9ICRJbkNvbXBpbGVyLT5wcmVmZXJyZWRDb25kaXRpb25hbCgkY29uZGl0aW9uYWwpOworICAg
ICAgICBwcmludCAkZmlsZSAiICAgICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0JP
T0xfSU5JVElBTElaRVJTIFxcXG4iOworICAgIH0KKyAgICBwcmludCAkZmlsZSAiLy8gRW5kIG9m
IFNFVFRJTkdTX0lOSVRJQUxJWkVSX0xJU1QuXG5cbiI7Cit9CisKK3N1YiBwcmludEluaXRpYWxp
emVyKCQkJCkKK3sKKyAgICBteSAoJGZpbGUsICRzZXR0aW5nTmFtZSwgJHBhcnNlZEl0ZW1zUmVm
KSA9IEBfOworICAgIG15ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworCisg
ICAgbXkgJGluaXRpYWxWYWx1ZSA9ICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJpbml0aWFs
In07CisgICAgbXkgJHR5cGUgPSAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9Owor
ICAgIGRpZSAiTXVzdCBwcm92aWRlIGFuIGluaXRpYWwgdmFsdWUgZm9yICRzZXR0aW5nTmFtZS4i
IGlmICgkaW5pdGlhbFZhbHVlIGVxICcnICYmIGxjKHN1YnN0cigkdHlwZSwgMCwgMSkpIGVxIHN1
YnN0cigkdHlwZSwgMCwgMSkpOworICAgIHJldHVybiBpZiAoJGluaXRpYWxWYWx1ZSBlcSAnJyk7
CisgICAgcHJpbnQgJGZpbGUgIiAgICAsIG1fJHNldHRpbmdOYW1lKCRpbml0aWFsVmFsdWUpIFxc
XG4iCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlIGIvU291
cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQppbmRleCA5YmE5ODhmOWVlMTUwNjZkMDg0NzI0
NjEwMDMwZmYwYzBiNTNlZmY1Li5jODEzOGE5NmFiYjE5NDA3MzNlZGFlODI1OWU0YTEwMGRmNmZi
OGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCisrKyBiL1Nv
dXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKQEAgLTk2LDYgKzk2LDE4IEBAIE1BQ1JPIChH
RU5FUkFURV9FWENFUFRJT05fQ09ERV9ERVNDUklQVElPTiBfaW5maWxlIF9vdXRmaWxlKQogRU5E
TUFDUk8gKCkKIAogCitNQUNSTyAoR0VORVJBVEVfU0VUVElOR1NfTUFDUk9TIF9pbmZpbGUgX291
dGZpbGUpCisgICAgU0VUKE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElSfS9wYWdlL21ha2Vf
c2V0dGluZ3MucGwpCisKKyAgICBBRERfQ1VTVE9NX0NPTU1BTkQoCisgICAgICAgIE9VVFBVVCAg
JHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X291dGZpbGV9CisgICAgICAgIE1BSU5f
REVQRU5ERU5DWSAke19pbmZpbGV9CisgICAgICAgIERFUEVORFMgJHtOQU1FU19HRU5FUkFUT1J9
ICR7U0NSSVBUU19CSU5ESU5HU30KKyAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0g
LUkke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzICR7TkFNRVNfR0VORVJBVE9SfSAtLWlu
cHV0ICR7X2luZmlsZX0gLS1vdXRwdXREaXIgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9
CisgICAgICAgIFZFUkJBVElNKQorRU5ETUFDUk8gKCkKKworCiBNQUNSTyAoR0VORVJBVEVfRE9N
X05BTUVTIF9uYW1lc3BhY2UgX2F0dHJzKQogICAgIFNFVChOQU1FU19HRU5FUkFUT1IgJHtXRUJD
T1JFX0RJUn0vZG9tL21ha2VfbmFtZXMucGwpCiAgICAgU0VUKF9hcmd1bWVudHMgIC0tYXR0cnMg
JHtfYXR0cnN9KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173701</attachid>
            <date>2012-11-12 13:03:54 -0800</date>
            <delta_ts>2012-11-13 15:15:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100393-20121112130157.patch</filename>
            <type>text/plain</type>
            <size>97926</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg1N2M0MjVhNDhhMDgz
N2JhOTMxNTg3YWIxNDA5YTg5YTMzNjY2NC4uOWRlZWQ1MDIzMzdhYTkxZDU3ZWFiYjNiMDFiYzVi
NzMzNzZkYzg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTExLTEyICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2VuZXJhdGUgU2V0dGluZ3Mg
ZnJvbSBhIC5pbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBHZW5lcmF0ZSBtb3N0IHNldHRpbmdzIGZyb20gYW4gLmluIGZpbGUgdG8gcmVkdWNl
IGh1bWFuIG1pc3Rha2VzIGFuZAorICAgICAgICB0byBtYWtlIGl0IGVhc2llciB0byBhZGQvcmVt
b3ZlIG5ldyBzZXR0aW5ncy4KKworICAgICAgICBJIG9ubHkgbW92ZWQgc2V0dGluZ3MgdGhhdCBh
cmUgZWFzeSB0byBtb3ZlIGF0IHRoaXMgcG9pbnQuICBUaGVyZSBhcmUgbWFueSBtb3JlIHRoYXQK
KyAgICAgICAgaGF2ZSBzb21lIG1pbm9yIG5hbWluZyBpbmNvbnNpc3RlbmNpZXMgdGhhdCB3ZSBj
YW4gYWxzbyBtb3ZlIHRvIFNldHRpbmdzLmluLCBidXQgSSdsbAorICAgICAgICBkbyB0aGF0IGlu
IGEgZm9sbG93IHVwIHBhdGNoLgorCisgICAgICAgIFRoaXMgZG9lc24ndCBnZW5lcmF0ZSBTZXR0
aW5nSW50ZXJuYWxzLiogeWV0LS0gd2UgY2FuIGRvIHRoYXQgaW4gYSBmb2xsb3cgdXAgcGF0Y2gu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGEgcmVmYWN0b3IuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBSdW4gbWFr
ZV9zZXR0aW5ncy5wbC4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6IFJ1biBtYWtlX3Nl
dHRpbmdzLnBsLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBSdW4gbWFrZV9zZXR0aW5ncy5w
bC4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOiBSZW1vdmUgZnVuY3Rpb25zIHRoYXQgYXJlIG5vdyBpbmxpbmUgaW4gdGhlIGhlYWRlci4K
KyAgICAgICAgKiBXZWJDb3JlLmd5cC9XZWJDb3JlLmd5cDogUnVuIGFjdGlvbl9tYWtlbmFtZXMu
cHksIHdoaWNoIHdpbGwgcnVuIG1ha2Vfc2V0dGluZ3MucGwuCisgICAgICAgICogV2ViQ29yZS5n
eXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5OgorICAgICAgICAobWFpbik6IEFsbG93IG1h
a2Vfc2V0dGluZ3MucGwuCisgICAgICAgICogV2ViQ29yZS5vcmRlcjogUmVtb3ZlIGZ1bmN0aW9u
cyB0aGF0IGFyZSBub3cgaW5saW5lIGluIHRoZSBoZWFkZXIuCisgICAgICAgICogaHRtbC9WYWxp
ZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uTWVzc2FnZTo6
c2V0TWVzc2FnZURPTUFuZFN0YXJ0VGltZXIpOiBGaXggYSB0eXBvIGluICJtYWduaWZpY2F0aW9u
Ii4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRp
bmdzOjpTZXR0aW5ncyk6IFJlcGxhY2UgZ2VuZXJhdGVkIHNldHRpbmdzIHdpdGggU0VUVElOR1Nf
SU5JVElBTElaRVJfTElTVC4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChT
ZXR0aW5ncyk6IFJlcGxhY2UgZ2VuZXJhdGVkIHNldHRpbmdzIHdpdGggU0VUVElOR1NfR0VUVEVS
U19BTkRfU0VUVEVSUyBhbmQgU0VUVElOR1NfTUVNQkVSX1ZBUklBQkxFUy4KKyAgICAgICAgKiBw
YWdlL1NldHRpbmdzLmluOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL21ha2Vfc2V0dGluZ3MucGw6
IEFkZGVkLgorICAgICAgICAoZGVmYXVsdEl0ZW1GYWN0b3J5KToKKyAgICAgICAgKGdlbmVyYXRl
Q29kZSk6CisgICAgICAgIChnZW5lcmF0ZUhlYWRlcik6IFVzZSBhIHNpbWlsYXIgbW9kZWwgYXMg
bWFrZV9uYW1lcy5wbC4KKyAgICAgICAgKHByaW50Q29uZGl0aW9uYWxNYWNyb3MpOgorICAgICAg
ICAocHJpbnRHZXR0ZXJzQW5kU2V0dGVycyk6CisgICAgICAgIChwcmludE1lbWJlclZhcmlhYmxl
cyk6CisgICAgICAgIChwcmludEdldHRlckFuZFNldHRlcik6CisgICAgICAgIChwcmludEluaXRp
YWxpemVyTGlzdCk6CisgICAgICAgIChwcmludEluaXRpYWxpemVyKToKKwogMjAxMi0xMS0xMiAg
S2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XVtKU0Nd
IFNjcmlwdFByb2ZpbGVOb2RlOjpjYWxsVUlEIG5lZWRzIG5vdCB0byBiZSBbQ3VzdG9tXQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCAwN2NhYWU0NWQwM2M5NmFkNzIxODRiMmI2ZmIzMGNlNmIyOTY3
Y2NlLi5hMTZjNTg0MjVmMWNhYWI5YWE1Y2U2YjBkMzhjN2RmMjhhNWQ0ZDRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtMjg5NCw2ICsyODk0LDEwIEBAIEdFTkVSQVRFX0VYQ0VQVElPTl9DT0RF
X0RFU0NSSVBUSU9OKCR7V0VCQ09SRV9ESVJ9L2RvbS9ET01FeGNlcHRpb25zLmluIEV4Y2VwdGlv
CiBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9E
SVJ9L0V4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbi5jcHApCiAKIAorR0VORVJBVEVfU0VUVElOR1Nf
TUFDUk9TKCR7V0VCQ09SRV9ESVJ9L3BhZ2UvU2V0dGluZ3MuaW4gU2V0dGluZ3NNYWNyb3MuaCkK
K0xJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vU2V0dGluZ3NNYWNyb3MuaCkKKworCiBHRU5FUkFURV9GT05UX05BTUVTKCR7V0VCQ09SRV9E
SVJ9L2Nzcy9XZWJLaXRGb250RmFtaWx5TmFtZXMuaW4pCiBMSVNUKEFQUEVORCBXZWJDb3JlX1NP
VVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1dlYktpdEZvbnRGYW1pbHlOYW1l
cy5jcHApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDRjNjRjODk1MWJhZDZj
YjcwNGM1MGVmZWIwMzliMDg1MjM4NWEwODQuLmZkZjBlMWU4NmNjZTVmZTVmNWJmMDEzNzViZGY5
NjAzZjJjNTEzY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTI1LDYgKzky
NSwxMyBAQCBNYXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgTWF0aE1MTmFtZXMuY3BwIDogZG9tL21h
a2VfbmFtZXMucGwgbWF0aG1sL21hdGh0YWdzLmluCiAKICMgLS0tLS0tLS0KIAorYWxsIDogU2V0
dGluZ3NNYWNyb3MuaAorCitTZXR0aW5nc01hY3Jvcy5oIDogcGFnZS9tYWtlX3NldHRpbmdzLnBs
IHBhZ2UvU2V0dGluZ3MuaW4KKwlwZXJsIC1JICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAk
PCAtLWlucHV0ICQoV2ViQ29yZSkvcGFnZS9TZXR0aW5ncy5pbgorCisjIC0tLS0tLS0tCisKICMg
Q29tbW9uIGdlbmVyYXRvciB0aGluZ3MKIAogR0VORVJBVEVfU0NSSVBUUyA9IFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLnByaQppbmRleCA5OTI0ZTg1ZDcxYmY4OGM0NGVhNzQ3YzdmMjllM2I4YzU0
NDI4MDM1Li40MGVhMzhlYzNlNWI0NGQ0ZDVmNzUzZTJiZGVmZjRjOWNjNWIyZTE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC00Nyw2ICs0Nyw4IEBAIEVWRU5UX1RBUkdFVF9GQUNU
T1JZID0gJCRQV0QvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgogCiBET01fRVhDRVBUSU9OUyA9
ICQkUFdEL2RvbS9ET01FeGNlcHRpb25zLmluCiAKK1NFVFRJTkdTX01BQ1JPUyA9ICQkUFdEL3Bh
Z2UvU2V0dGluZ3MuaW4KKwogQ09MT1JEQVRBX0dQRVJGID0gJCRQV0QvcGxhdGZvcm0vQ29sb3JE
YXRhLmdwZXJmCiAKIFdBTERPQ1NTUFJPUFMgPSAkJFBXRC9jc3MvQ1NTUHJvcGVydHlOYW1lcy5p
bgpAQCAtODY0LDYgKzg2NiwxNCBAQCBleGNlcHRpb25jb2RlZGVzY3JpcHRpb24uY29tbWFuZHMg
PSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAkJGV4Y2VwdGlvbmNvZAogZXhjZXB0aW9u
Y29kZWRlc2NyaXB0aW9uLmRlcGVuZHMgPSAkJFBXRC9kb20vbWFrZV9kb21fZXhjZXB0aW9ucy5w
bCAkJERPTV9FWENFUFRJT05TCiBHRU5FUkFUT1JTICs9IGV4Y2VwdGlvbmNvZGVkZXNjcmlwdGlv
bgogCisjIEdFTkVSQVRPUiA1LUg6CitzZXR0aW5nc21hY3Jvcy5vdXRwdXQgPSBTZXR0aW5nc01h
Y3Jvcy5oCitzZXR0aW5nc21hY3Jvcy5pbnB1dCA9IFNFVFRJTkdTX01BQ1JPUworc2V0dGluZ3Nt
YWNyb3Muc2NyaXB0ID0gJCRQV0QvcGFnZS9tYWtlX3NldHRpbmdzLnBsCitzZXR0aW5nc21hY3Jv
cy5jb21tYW5kcyA9IHBlcmwgLUkkJFBXRC9iaW5kaW5ncy9zY3JpcHRzICQkc2V0dGluZ3NtYWNy
b3Muc2NyaXB0IC0taW5wdXQgJCRTRVRUSU5HU19NQUNST1MgLS1vdXRwdXREaXIgJHtRTUFLRV9G
VU5DX0ZJTEVfT1VUX1BBVEh9CitzZXR0aW5nc21hY3Jvcy5kZXBlbmRzID0gJCRQV0QvcGFnZS9t
YWtlX3NldHRpbmdzLnBsICQkU0VUVElOR1NfTUFDUk9TCitHRU5FUkFUT1JTICs9IHNldHRpbmdz
bWFjcm9zCisKICMgR0VORVJBVE9SIDgtQToKIGVudGl0aWVzLm91dHB1dCA9IEhUTUxFbnRpdHlU
YWJsZS5jcHAKIGVudGl0aWVzLmlucHV0ID0gSFRNTF9FTlRJVElFUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQppbmRleCAwMzk3ZTMyZGFiNWEwNGYyMmVhYzdjZGNmNTRmYmIwZDk3NGEzN2Y3Li5iODQ5YzVj
ZDUzYTBmZGFhMWI3YTRjZGE4NjJlNTM2ZGJiYmY3MjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpA
QCAtNTAzLDYgKzUwMyw5IEBAIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXZlbnRUYXJnZXRIZWFk
ZXJzLmggRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FdmVudFRhcmdldEluCiBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0V4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbi5jcHAgRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9FeGNlcHRpb25Db2RlRGVzY3JpcHRpb24uaCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0V4
Y2VwdGlvbkhlYWRlcnMuaCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0V4Y2VwdGlvbkludGVyZmFj
ZXMuaDogJChXZWJDb3JlKS9kb20vbWFrZV9kb21fZXhjZXB0aW9ucy5wbCAkKFdlYkNvcmUpL2Rv
bS9ET01FeGNlcHRpb25zLmluCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5k
aW5ncy9zY3JpcHRzICQ8IC0taW5wdXQgJChXZWJDb3JlKS9kb20vRE9NRXhjZXB0aW9ucy5pbiAt
LW91dHB1dERpciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIgogCitEZXJpdmVkU291cmNlcy9XZWJD
b3JlL1NldHRpbmdzTWFjcm9zLmg6ICQoV2ViQ29yZSkvcGFnZS9tYWtlX3NldHRpbmdzLnBsICQo
V2ViQ29yZSkvcGFnZS9TZXR0aW5ncy5pbgorCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWlucHV0ICQoV2ViQ29yZSkvcGFnZS9TZXR0aW5ncy5p
biAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIgorCiAjIEFsbCBXZWIgSW5zcGVj
dG9yIGdlbmVyYXRlZCBmaWxlcyBhcmUgY3JlYXRlZCB3aXRoIHRoaXMgb25lIGNhbGwgdG8gQ29k
ZUdlbmVyYXRvckluc3BlY3Rvci5weQogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9JbnNwZWN0b3JQ
cm90b2NvbFZlcnNpb24uaCA6ICQoV2ViQ29yZSkvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uICQo
V2ViQ29yZSkvaW5zcGVjdG9yL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC12ZXJzaW9uCiAJ
JChBTV9WX0dFTikkKFBZVEhPTikgJChXZWJDb3JlKS9pbnNwZWN0b3IvZ2VuZXJhdGUtaW5zcGVj
dG9yLXByb3RvY29sLXZlcnNpb24gLW8gJChHRU5TT1VSQ0VTX1dFQkNPUkUpL0luc3BlY3RvclBy
b3RvY29sVmVyc2lvbi5oICQoV2ViQ29yZSkvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC04
MDYsNiArODA5LDggQEAgRVhUUkFfRElTVCArPSBcCiAJU291cmNlL1dlYkNvcmUvbWFrZS1oYXNo
LXRvb2xzLnBsIFwKIAlTb3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aGF0dHJzLmluIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvbWF0aHRhZ3MuaW4gXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFr
ZV9zZXR0aW5ncy5wbCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L21hYy9tYWtlLWNoYXJzZXQtdGFibGUucGwgXAogCVNvdXJjZS9XZWJDb3Jl
L3N2Zy9zdmdhdHRycy5pbiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5MzAw
Y2NjNjNmMjA2OWJlZDkzNjc3MWFlODc4NWIxYTVlZWFhY2I4Li5jNTRlNzAyYzBlODZiODczNjdi
ZDRmN2NlMmE5MDg3NTUyMTM2ZWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTExNDcsNiArMTE0Nyw3IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9NYXRoTUxFbGVtZW50RmFjdG9yeS5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL01hdGhNTE5hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9NYXRoTUxO
YW1lcy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1NldHRpbmdzTWFjcm9zLmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvU1ZHRWxlbWVudEZhY3RvcnkuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL1NWR05hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2Vy
QWdlbnRHdGsuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGJhYzZhYWEzMjhiN2FlNjBlYThl
ZGVhZWRkMzBkNTg2YjgxY2E3MWMuLjBiNjVlODZjYTJiMTFjN2YwODJlNjFkNmMyNjk0MzAxY2I3
YjMwMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05MTMsNyArOTEzLDYgQEAgX19aTjdXZWJD
b3JlOEdyYWRpZW50MTJhZGRDb2xvclN0b3BFZlJLTlNfNUNvbG9yRQogX19aTjdXZWJDb3JlOEdy
YWRpZW50QzFFUktOU18xMEZsb2F0UG9pbnRFUzNfCiBfX1pON1dlYkNvcmU4UG9zaXRpb25DMUVO
M1dURjEwUGFzc1JlZlB0cklOU180Tm9kZUVFRWlOUzBfMTBBbmNob3JUeXBlRQogX19aTjdXZWJD
b3JlOFNldHRpbmdzMTRzZXRKYXZhRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MxNXNl
dFdlYkdMRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MxNnNldEltYWdlc0VuYWJsZWRF
YgogX19aTjdXZWJDb3JlOFNldHRpbmdzMTZzZXRTY3JpcHRFbmFibGVkRWIKIF9fWk43V2ViQ29y
ZThTZXR0aW5nczE2c2V0VXNlc1BhZ2VDYWNoZUViCkBAIC05MjMsNzcgKzkyMiwzOSBAQCBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MxOHNldERlZmF1bHRGb250U2l6ZUVpCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MxOHNldEZpeGVkRm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0
Q29kZQogX19aTjdXZWJDb3JlOFNldHRpbmdzMThzZXRNaW5pbXVtRm9udFNpemVFaQogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMThzZXRTZXJpZkZvbnRGYW1pbHlFUktOM1dURjEyQXRvbWljU3RyaW5n
RTExVVNjcmlwdENvZGUKLV9fWk43V2ViQ29yZThTZXR0aW5nczE4c2V0V2ViQXVkaW9FbmFibGVk
RWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczE5bWluRE9NVGltZXJJbnRlcnZhbEV2CiBfX1pON1dl
YkNvcmU4U2V0dGluZ3MxOXNldFNob3dEZWJ1Z0JvcmRlcnNFYgogX19aTjdXZWJDb3JlOFNldHRp
bmdzMjBzZXRDdXJzaXZlRm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0
Q29kZQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjBzZXRGYW50YXN5Rm9udEZhbWlseUVSS04zV1RG
MTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0Q29kZQotX19aTjdXZWJDb3JlOFNldHRpbmdzMjBzZXRY
U1NBdWRpdG9yRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMW1vY2tTY3JvbGxiYXJz
RW5hYmxlZEV2CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFNob3dSZXBhaW50Q291bnRlckVi
CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFN0YW5kYXJkRm9udEZhbWlseUVSS04zV1RGMTJB
dG9taWNTdHJpbmdFMTFVU2NyaXB0Q29kZQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRXZWJT
ZWN1cml0eUVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRMb2NhbFN0b3JhZ2VF
bmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0TWluRE9NVGltZXJJbnRlcnZhbEVk
CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNhbnNTZXJpZkZvbnRGYW1pbHlFUktOM1dURjEy
QXRvbWljU3RyaW5nRTExVVNjcmlwdENvZGUKLV9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0U2Vz
c2lvblN0b3JhZ2VRdW90YUVqCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNob3dzVVJMc0lu
VG9vbFRpcHNFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRDYXJldEJyb3dzaW5nRW5hYmxl
ZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldERlZmF1bHRGaXhlZEZvbnRTaXplRWkKLV9f
Wk43V2ViQ29yZThTZXR0aW5nczIzc2V0RWRpdGFibGVMaW5rQmVoYXZpb3JFTlNfMjBFZGl0YWJs
ZUxpbmtCZWhhdmlvckUKLV9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0TG9hZERlZmVycmluZ0Vu
YWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRQaWN0b2dyYXBoRm9udEZhbWlseUVS
S04zV1RGMTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0Q29kZQotX19aTjdXZWJDb3JlOFNldHRpbmdz
MjNzZXRVc2VzRW5jb2RpbmdEZXRlY3RvckViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldEFw
cGxpY2F0aW9uQ2hyb21lTW9kZUViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldEROU1ByZWZl
dGNoaW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldE1vY2tTY3JvbGxiYXJz
RW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldFVzZXNPdmVybGF5U2Nyb2xsYmFy
c0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeUVOU18x
NFNlY3VyaXR5T3JpZ2luMjFTdG9yYWdlQmxvY2tpbmdQb2xpY3lFCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MyNHNldFRleHRBcmVhc0FyZVJlc2l6YWJsZUViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3My
NXNldERldmVsb3BlckV4dHJhc0VuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXRG
cmFtZUZsYXR0ZW5pbmdFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0TWluaW11
bUxvZ2ljYWxGb250U2l6ZUVpCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldE5lZWRzTGVvcGFy
ZE1haWxRdWlya3NFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXRQcml2YXRlQnJvd3NpbmdF
bmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5k
c0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb25FUktO
U180S1VSTEUKIF9fWk43V2ViQ29yZThTZXR0aW5nczI2ZGVmYXVsdE1pbkRPTVRpbWVySW50ZXJ2
YWxFdgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjZzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZUVS
S04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZThTZXR0aW5nczI2c2V0TmVlZHNTaXRlU3BlY2lm
aWNRdWlya3NFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRGVFBEaXJlY3RvcnlUZW1wbGF0
ZVBhdGhFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyN3NldEphdmFFbmFi
bGVkRm9yTG9jYWxGaWxlc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyN3NldExvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseUViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyN3NldExvY2FsU3RvcmFnZURh
dGFiYXNlUGF0aEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0U3Bh
dGlhbE5hdmlnYXRpb25FbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI4c2V0RE9NVGlt
ZXJBbGlnbm1lbnRJbnRlcnZhbEVkCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyOHNldEZvcmNlRlRQ
RGlyZWN0b3J5TGlzdGluZ3NFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjlzZXRBY2NlbGVyYXRl
ZDJkQ2FudmFzRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyOXNldEF1dGhvckFuZFVz
ZXJTdHlsZXNFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI5c2V0RGVmYXVsdE1pbkRP
TVRpbWVySW50ZXJ2YWxFZAotX19aTjdXZWJDb3JlOFNldHRpbmdzMjlzZXRXZWJBcmNoaXZlRGVi
dWdNb2RlRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzMHNldEFsbG93RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMc0ViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzMXNldENhbnZhc1VzZXNBY2Nl
bGVyYXRlZERyYXdpbmdFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzFzZXRKYXZhU2NyaXB0Q2Fu
QWNjZXNzQ2xpcGJvYXJkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczMxc2V0SmF2YVNjcmlwdEV4
cGVyaW1lbnRzRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzMXNldFNocmlua3NTdGFu
ZGFsb25lSW1hZ2VzVG9GaXRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMzJkZWZhdWx0RE9NVGlt
ZXJBbGlnbm1lbnRJbnRlcnZhbEV2CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMnNldEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczMyc2V0TmVlZHNB
ZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmtFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMzJzZXRTY3Jl
ZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzMnNldFNo
b3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0RWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczMzc2V0
RG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczM0
c2V0TG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGlu
Z3MzNXNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzRWIKLV9fWk43V2ViQ29yZThT
ZXR0aW5nczM1c2V0RW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGVFYgotX19aTjdXZWJD
b3JlOFNldHRpbmdzMzVzZXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZEViCi1fX1pO
N1dlYkNvcmU4U2V0dGluZ3MzNXNldFRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0RWIK
LV9fWk43V2ViQ29yZThTZXR0aW5nczM2c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFi
bGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczM3c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0
aXZlVG9GcmFtZUViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzN3NldFNjcm9sbGluZ1BlcmZvcm1h
bmNlTG9nZ2luZ0VuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzNDBzZXRKYXZhU2NyaXB0
Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5RWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczQwc2V0
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvckVOU18zN1RleHREaXJlY3Rpb25T
dWJtZW51SW5jbHVzaW9uQmVoYXZpb3JFCi1fX1pON1dlYkNvcmU4U2V0dGluZ3M0MXNldE5lZWRz
S2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzRWIKLV9fWk43V2ViQ29yZThTZXR0aW5n
czQ0c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmdFYgogX19aTjdX
ZWJDb3JlOFNldHRpbmdzNDVzZXRTaG91bGRSZXNwZWN0UHJpb3JpdHlJbkNTU0F0dHJpYnV0ZVNl
dHRlcnNFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRSZXNvbHV0aW9uT3ZlcnJpZGVFUktO
U183SW50U2l6ZUUKIF9fWk43V2ViQ29yZThTZXR0aW5nczIwc2V0TWVkaWFUeXBlT3ZlcnJpZGVF
UktOM1dURjZTdHJpbmdFCkBAIC0yMjQ5LDcgKzIyMTAsNiBAQCBfX1pOSzdXZWJDb3JlMTVDb250
ZXh0TWVudUl0ZW03ZW5hYmxlZEV2CiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTZhbm5vdGF0ZWRS
ZWdpb25zRXYKICNlbmRpZgogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKLV9fWk43V2Vi
Q29yZThTZXR0aW5nczQxc2V0VXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGVF
YgogI2VuZGlmCiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cAppbmRleCAwZGZkMjc3MDk5MWM1ODEwMGY5NDg2M2I5NDUwODU4NmJl
YjQyN2UxLi45YmQ0ODE2MDhlZTY1OTFjMWEyZTMyZDA1MWY5MTgxMzViMTYxYzc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtODc4LDYgKzg3OCwyMyBAQAogICAg
ICAgICAgIF0sCiAgICAgICAgIH0sCiAgICAgICAgIHsKKyAgICAgICAgICAnYWN0aW9uX25hbWUn
OiAnU2V0dGluZ3MnLAorICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAnLi4vcGFn
ZS9tYWtlX3NldHRpbmdzLnBsJywKKyAgICAgICAgICAgICcuLi9wYWdlL1NldHRpbmdzLmluJywK
KyAgICAgICAgICBdLAorICAgICAgICAgICdvdXRwdXRzJzogWworICAgICAgICAgICAgJzwoU0hB
UkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9TZXR0aW5nc01hY3Jvcy5oJywKKyAgICAgICAg
ICBdLAorICAgICAgICAgICdhY3Rpb24nOiBbCisgICAgICAgICAgICAncHl0aG9uJywKKyAgICAg
ICAgICAgICdzY3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHknLAorICAgICAgICAgICAgJzxAKF9v
dXRwdXRzKScsCisgICAgICAgICAgICAnLS0nLAorICAgICAgICAgICAgJzxAKF9pbnB1dHMpJywK
KyAgICAgICAgICBdLAorICAgICAgICB9LAorICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9u
YW1lJzogJ1VzZXJBZ2VudFN0eWxlU2hlZXRzJywKICAgICAgICAgICAndmFyaWFibGVzJzogewog
ICAgICAgICAgICAgJ3NjcmlwdHMnOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHkKaW5kZXggOWFmZDhlODg1ZTk5NmFj
NTBlNjdmOGVmNDAyOTkzNDE2ZDZiMTQ1Yy4uYTFhNDEwZjFlYTUwYzMxNTQyZWFkNTFiZDNhZTA0
NmUxYzVlYzE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0
cy9hY3Rpb25fbWFrZW5hbWVzLnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3Nj
cmlwdHMvYWN0aW9uX21ha2VuYW1lcy5weQpAQCAtMTE3LDIyICsxMTcsMTcgQEAgZGVmIG1haW4o
YXJncyk6CiAgICAgICAgIGlucHV0QWJzID0gb3MucGF0aC5hYnNwYXRoKGlucHV0KQogICAgICAg
ICBpbnB1dEFic1Bvc2l4ID0gaW5wdXRBYnMucmVwbGFjZShvcy5wYXRoLnNlcCwgcG9zaXhwYXRo
LnNlcCkKICAgICAgICAgaW5wdXRCYXNlbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUoaW5wdXQpCi0g
ICAgICAgIGlmIGlucHV0QmFzZW5hbWUgPT0gJ21ha2VfbmFtZXMucGwnIFwKLSAgICAgICAgICAg
IG9yIGlucHV0QmFzZW5hbWUgPT0gJ21ha2VfZXZlbnRfZmFjdG9yeS5wbCcgXAotICAgICAgICAg
ICAgb3IgaW5wdXRCYXNlbmFtZSA9PSAnbWFrZV9kb21fZXhjZXB0aW9ucy5wbCc6CisgICAgICAg
IGlmIGlucHV0QmFzZW5hbWUgaW4gKCdtYWtlX25hbWVzLnBsJywgJ21ha2VfZXZlbnRfZmFjdG9y
eS5wbCcsICdtYWtlX2RvbV9leGNlcHRpb25zLnBsJywgJ21ha2Vfc2V0dGluZ3MucGwnKToKICAg
ICAgICAgICAgIGFzc2VydCBtYWtlTmFtZXNJbnB1dCA9PSBOb25lCiAgICAgICAgICAgICBtYWtl
TmFtZXNJbnB1dCA9IGlucHV0QWJzCi0gICAgICAgIGVsaWYgaW5wdXRCYXNlbmFtZS5lbmRzd2l0
aCgnVGFnTmFtZXMuaW4nKSBcCi0gICAgICAgICAgICAgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0
aCgndGFncy5pbicpOgorICAgICAgICBlbGlmIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ1RhZ05h
bWVzLmluJykgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgndGFncy5pbicpOgogICAgICAgICAg
ICAgYXNzZXJ0IHRhZ0lucHV0ID09IE5vbmUKICAgICAgICAgICAgIHRhZ0lucHV0ID0gaW5wdXRB
YnNQb3NpeAotICAgICAgICBlbGlmIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ0F0dHJpYnV0ZU5h
bWVzLmluJykgXAotICAgICAgICAgICAgIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ2F0dHJz
LmluJyk6CisgICAgICAgIGVsaWYgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgnQXR0cmlidXRlTmFt
ZXMuaW4nKSBvciBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdhdHRycy5pbicpOgogICAgICAgICAg
ICAgYXNzZXJ0IGF0dHJJbnB1dCA9PSBOb25lCiAgICAgICAgICAgICBhdHRySW5wdXQgPSBpbnB1
dEFic1Bvc2l4Ci0gICAgICAgIGVsaWYgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgnRXZlbnRUYXJn
ZXRGYWN0b3J5LmluJykgXAotICAgICAgICAgICAgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgn
RXZlbnROYW1lcy5pbicpIFwKLSAgICAgICAgICAgIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgo
J0RPTUV4Y2VwdGlvbnMuaW4nKToKKyAgICAgICAgZWxpZiAoaW5wdXRCYXNlbmFtZS5lbmRzd2l0
aCgnRXZlbnRUYXJnZXRGYWN0b3J5LmluJykgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgnRXZl
bnROYW1lcy5pbicpCisgICAgICAgICAgICBvciBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdET01F
eGNlcHRpb25zLmluJykgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgnU2V0dGluZ3MuaW4nKSk6
CiAgICAgICAgICAgICBldmVudHNJbnB1dCA9IGlucHV0QWJzUG9zaXgKICAgICAgICAgZWxpZiBp
bnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdOYW1lcy5pbicpOgogICAgICAgICAgICAgb3B0aW9ucy5h
cHBlbmQoaW5wdXRBYnNQb3NpeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
b3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDUwM2ViZDczMTNmNjUz
M2Q4MDEwOGQ4ZDkxMjQyN2M4OTlkMWFiMDUuLjBlNmIxNThjZGEwNmRjOTJjNjI1MjE1NjAzZmRh
ZjAxNTMzMThlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtNTIzLDcgKzUyMyw2IEBAIF9fWk4z
V1RGOUhhc2hUYWJsZUlQTjdXZWJDb3JlNFBhZ2VFUzNfTlNfMTdJZGVudGl0eUV4dHJhY3RvcklT
M19FRU5TXzdQdHJIYXNoSVMzCiBfX1pOM1dURjlIYXNoVGFibGVJUE43V2ViQ29yZTRQYWdlRVMz
X05TXzE3SWRlbnRpdHlFeHRyYWN0b3JJUzNfRUVOU183UHRySGFzaElTM19FRU5TXzEwSGFzaFRy
YWl0c0lTM19FRVM5X0U2ZXhwYW5kRXYKIF9fWk43V2ViQ29yZTEyUGx1Z2luSGFsdGVyQzFFTjNX
VEYxMFBhc3NPd25QdHJJTlNfMThQbHVnaW5IYWx0ZXJDbGllbnRFRUUKIF9fWk43V2ViQ29yZTRQ
YWdlMTZzZXRDYW5TdGFydE1lZGlhRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0TG9jYWxT
dG9yYWdlRGF0YWJhc2VQYXRoRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNUZyYW1lNmNy
ZWF0ZUVQTlNfNFBhZ2VFUE5TXzIxSFRNTEZyYW1lT3duZXJFbGVtZW50RVBOU18xN0ZyYW1lTG9h
ZGVyQ2xpZW50RQogX19aTjdXZWJDb3JlNUZyYW1lQzJFUE5TXzRQYWdlRVBOU18yMUhUTUxGcmFt
ZU93bmVyRWxlbWVudEVQTlNfMTdGcmFtZUxvYWRlckNsaWVudEUKIF9fWk43V2ViQ29yZTExRnJh
bWVMb2FkZXJDMUVQTlNfNUZyYW1lRVBOU18xN0ZyYW1lTG9hZGVyQ2xpZW50RQpAQCAtMTQzNCw0
MCArMTQzMywyNCBAQCBfX1pOM1dURjlIYXNoVGFibGVJUE43V2ViQ29yZThEb2N1bWVudEVTM19O
U18xN0lkZW50aXR5RXh0cmFjdG9ySVMzX0VFTlNfN1B0ckhhcwogX19aTjNXVEY5SGFzaFRhYmxl
SVBON1dlYkNvcmU4RG9jdW1lbnRFUzNfTlNfMTdJZGVudGl0eUV4dHJhY3RvcklTM19FRU5TXzdQ
dHJIYXNoSVMzX0VFTlNfMTBIYXNoVHJhaXRzSVMzX0VFUzlfRTZleHBhbmRFdgogX19aTjdXZWJD
b3JlOFNldHRpbmdzMjNzZXREZWZhdWx0Rml4ZWRGb250U2l6ZUVpCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MxOHNldERlZmF1bHRGb250U2l6ZUVpCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyNnNldERl
ZmF1bHRUZXh0RW5jb2RpbmdOYW1lRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlOFNldHRp
bmdzMjNzZXRVc2VzRW5jb2RpbmdEZXRlY3RvckViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMHNl
dEZhbnRhc3lGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKIF9fWk43V2ViQ29yZThT
ZXR0aW5nczE4c2V0Rml4ZWRGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKLV9fWk43
V2ViQ29yZThTZXR0aW5nczI4c2V0Rm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5nc0ViCi1fX1pON1dl
YkNvcmU4U2V0dGluZ3MyN3NldEZUUERpcmVjdG9yeVRlbXBsYXRlUGF0aEVSS04zV1RGNlN0cmlu
Z0UKIF9fWk43V2ViQ29yZThTZXR0aW5nczE0c2V0SmF2YUVuYWJsZWRFYgogX19aTjdXZWJDb3Jl
OFNldHRpbmdzMjBzZXRKYXZhU2NyaXB0RW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3My
MXNldFdlYlNlY3VyaXR5RW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzNXNldEFsbG93
VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczMwc2V0
QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczQwc2V0
SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseUViCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MxOHNldE1pbmltdW1Gb250U2l6ZUVpCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldE1p
bmltdW1Mb2dpY2FsRm9udFNpemVFaQogX19aTjdXZWJDb3JlOFNldHRpbmdzMTdzZXRQbHVnaW5z
RW5hYmxlZEViCiBfX1pON1dlYkNvcmUxNkFic3RyYWN0RGF0YWJhc2UxNHNldElzQXZhaWxhYmxl
RWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0TG9jYWxTdG9yYWdlRW5hYmxlZEViCi1fX1pO
N1dlYkNvcmU4U2V0dGluZ3MzNXNldEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkRWIK
IF9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZEViCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MyMnNldFNhbnNTZXJpZkZvbnRGYW1pbHlFUktOM1dURjEyQXRvbWlj
U3RyaW5nRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMThzZXRTZXJpZkZvbnRGYW1pbHlFUktOM1dU
RjEyQXRvbWljU3RyaW5nRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRTdGFuZGFyZEZvbnRG
YW1pbHlFUktOM1dURjEyQXRvbWljU3RyaW5nRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRM
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzNDRzZXRMb2Fk
c1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZ0ViCi1fX1pON1dlYkNvcmU4U2V0
dGluZ3MyNXNldFNob3VsZFByaW50QmFja2dyb3VuZHNFYgogX19aTjdXZWJDb3JlOFNldHRpbmdz
MjRzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnNFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRU
ZXh0QXJlYXNBcmVSZXNpemFibGVFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzFzZXRTaHJpbmtz
U3RhbmRhbG9uZUltYWdlc1RvRml0RWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0RWRpdGFi
bGVMaW5rQmVoYXZpb3JFTlNfMjBFZGl0YWJsZUxpbmtCZWhhdmlvckUKLV9fWk43V2ViQ29yZThT
ZXR0aW5nczQwc2V0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvckVOU18zN1Rl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JFCiBfX1pON1dlYkNvcmU4U2V0dGlu
Z3MxOHNldERPTVBhc3RlQWxsb3dlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MxNnNldFVzZXNQ
YWdlQ2FjaGVFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRTaG93c1VSTHNJblRvb2xUaXBz
RWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZEViCiBf
X1pON1dlYkNvcmU4U2V0dGluZ3MyOXNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkRWIKIF9f
Wk43V2ViQ29yZThTZXR0aW5nczI0c2V0QXBwbGljYXRpb25DaHJvbWVNb2RlRWIKIF9fWk43V2Vi
Q29yZThTZXR0aW5nczI1c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbkVSS05TXzRLVVJMRQpAQCAt
MTQ3NSwzMiArMTQ1OCwxNiBAQCBfX1pON1dlYkNvcmU0UGFnZTI5dXNlclN0eWxlU2hlZXRMb2Nh
dGlvbkNoYW5nZWRFdgogX19aTks3V2ViQ29yZTRLVVJMMTBwcm90b2NvbElzRVBLYwogX19aTjdX
ZWJDb3JlOERvY3VtZW50MTl1cGRhdGVQYWdlVXNlclNoZWV0RXYKIF9fWk43V2ViQ29yZThTZXR0
aW5nczMyc2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmtFYgotX19aTjdXZWJDb3JlOFNl
dHRpbmdzMzVzZXRUcmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldEViCi1fX1pON1dlYkNv
cmU4U2V0dGluZ3M0MXNldE5lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzRWIK
LV9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0TmVlZHNMZW9wYXJkTWFpbFF1aXJrc0ViCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MyM3NldE5lZWRzVGlnZXJNYWlsUXVpcmtzRWIKLV9fWk43V2ViQ29y
ZThTZXR0aW5nczI2c2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3NFYgotX19aTjdXZWJDb3JlOFNl
dHRpbmdzMjlzZXRXZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0
dGluZ3MzNHNldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWRFYgotX19aTjdXZWJDb3Jl
OFNldHRpbmdzMzZzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWRFYgotX19aTjdX
ZWJDb3JlOFNldHRpbmdzMzFzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkRWIKLV9fWk43
V2ViQ29yZThTZXR0aW5nczIwc2V0WFNTQXVkaXRvckVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNl
dHRpbmdzMzVzZXRFbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZUViCiBfX1pON1dlYkNv
cmU4U2V0dGluZ3MyNHNldEROU1ByZWZldGNoaW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MzMnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkRWIKIF9fWk43V2ViQ29yZThT
ZXR0aW5nczI4c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0
dGluZ3MzMXNldENhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmdFYgogX19aTjdXZWJDb3JlOFNl
dHRpbmdzMTlzZXRTaG93RGVidWdCb3JkZXJzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIxc2V0
U2hvd1JlcGFpbnRDb3VudGVyRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0UGx1Z2luQWxs
b3dlZFJ1blRpbWVFagogX19aTjdXZWJDb3JlNFBhZ2UyN3BsdWdpbkFsbG93ZWRSdW5UaW1lQ2hh
bmdlZEV2Ci1fX1pON1dlYkNvcmU4U2V0dGluZ3MxOHNldFdlYkF1ZGlvRW5hYmxlZEViCi1fX1pO
N1dlYkNvcmU4U2V0dGluZ3MxNXNldFdlYkdMRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGlu
Z3MyOXNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkRWIKIF9fWk43V2ViQ29yZTI3YXBwbGlj
YXRpb25Jc0Fkb2JlSW5zdGFsbGVyRXYKIF9fWk43V2ViQ29yZUwxOW1haW5CdW5kbGVJc0VxdWFs
VG9FUktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldExvYWREZWZlcnJp
bmdFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0RnJhbWVGbGF0dGVuaW5nRW5h
YmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyN3NldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxl
ZEViCiBfX1pON1dlYkNvcmUyMmFwcGxpY2F0aW9uSXNBcHBsZU1haWxFdgogX19aTjdXZWJDb3Jl
MjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTIxc2V0RGVmYXVsdE9yaWdpblF1b3RhRXgKQEAgLTIy
ODEsNyArMjI0OCw2IEBAIF9fWk43V2ViQ29yZTVGcmFtZTlzY2FsZVBhZ2VFZlJLTlNfOEludFBv
aW50RQogX19aTjdXZWJDb3JlOUZyYW1lVmlldzE3c2V0U2Nyb2xsUG9zaXRpb25FUktOU184SW50
UG9pbnRFCiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcxN3NldFNjcm9sbFBvc2l0aW9uRVJLTlNf
OEludFBvaW50RQogX19aTjdXZWJDb3JlMTBTY3JvbGxWaWV3MjVwbGF0Zm9ybVNldFNjcm9sbFBv
c2l0aW9uRVJLTlNfOEludFBvaW50RQotX19aTjdXZWJDb3JlOFNldHRpbmdzNDFzZXRVc2VzRGFz
aGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZUViCiBfX1pON1dlYkNvcmU5RnJhbWVUcmVl
OWNsZWFyTmFtZUV2CiBfX1pOSzdXZWJDb3JlNFBhZ2U5Z3JvdXBOYW1lRXYKIF9fWk43V2ViQ29y
ZThTZXR0aW5nczIyc2V0TWluRE9NVGltZXJJbnRlcnZhbEVkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IDYxYTE2NDE4ZmNmMTI3MTEyNjBjNjUzNzc1Nzlm
NjdkMTM2Yjg1YTguLjUzZWM3ZTQzODM1ODBkOGFiZDBiZDhiZGVjOThlMTJkNWNhODJmMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBAIC0xMzksNyArMTM5
LDcgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6c2V0TWVzc2FnZURPTUFuZFN0YXJ0VGltZXIo
VGltZXI8VmFsaWRhdGlvbk1lc3NhZ2U+KikKICAgICAgICAgICAgIG1fbWVzc2FnZUhlYWRpbmct
PnNldElubmVyVGV4dChsaW5lc1tpXSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgfQogCi0g
ICAgaW50IG1hZ25pZmljYXRpb24gPSBkb2MtPnBhZ2UoKSA/IGRvYy0+cGFnZSgpLT5zZXR0aW5n
cygpLT52YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnaW5pZmljYXRpb24oKSA6IC0xOworICAgIGlu
dCBtYWduaWZpY2F0aW9uID0gZG9jLT5wYWdlKCkgPyBkb2MtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+
dmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb24oKSA6IC0xOwogICAgIGlmIChtYWdu
aWZpY2F0aW9uIDw9IDApCiAgICAgICAgIG1fdGltZXIuY2xlYXIoKTsKICAgICBlbHNlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggY2U3NjY5YTZkN2YwODM4YmZhMGZhNmVkYWUyMTFk
MTMyZWQyYzg0Zi4uZDI0YTFjMDliYjY5MWQ1ZTk0MTQ4NDdkYmZmM2M0ZWQ4ODVlZWIyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTEyOSwyMyArMTI5LDExIEBAIHN0YXRpYyBjb25z
dCBkb3VibGUgZGVmYXVsdEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5T
ZWNvbmRzID0gNTsKIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgIDogbV9wYWdl
KDApCiAgICAgLCBtX21lZGlhVHlwZU92ZXJyaWRlKCJzY3JlZW4iKQotICAgICwgbV9lZGl0YWJs
ZUxpbmtCZWhhdmlvcihFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3IpCi0gICAgLCBtX3RleHRE
aXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IoVGV4dERpcmVjdGlvblN1Ym1lbnVBdXRv
bWF0aWNhbGx5SW5jbHVkZWQpCi0gICAgLCBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRz
KDEpCiAgICAgLCBtX21pbmltdW1Gb250U2l6ZSgwKQogICAgICwgbV9taW5pbXVtTG9naWNhbEZv
bnRTaXplKDApCiAgICAgLCBtX2RlZmF1bHRGb250U2l6ZSgwKQogICAgICwgbV9kZWZhdWx0Rml4
ZWRGb250U2l6ZSgwKQogICAgICwgbV9zY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZCh0cnVl
KQotICAgICwgbV92YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbig1MCkKLSAgICAs
IG1fbWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplKDI1NyAqIDI1NikKLSAgICAsIG1fbGF5
b3V0RmFsbGJhY2tXaWR0aCg5ODApCi0gICAgLCBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplKG51
bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKQotICAgICwgbV9kZXZpY2VXaWR0aCgwKQotICAg
ICwgbV9kZXZpY2VIZWlnaHQoMCkKLSAgICAsIG1fc2Vzc2lvblN0b3JhZ2VRdW90YShTdG9yYWdl
TWFwOjpub1F1b3RhKQotICAgICwgbV9lZGl0aW5nQmVoYXZpb3JUeXBlKGVkaXRpbmdCZWhhdmlv
clR5cGVGb3JQbGF0Zm9ybSgpKQotICAgICwgbV9tYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0
aChkZWZhdWx0TWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgpCiAgICAgLCBtX3N0b3JhZ2VC
bG9ja2luZ1BvbGljeShTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlKQogI2lmIEVOQUJM
RShURVhUX0FVVE9TSVpJTkcpCiAgICAgLCBtX3RleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9y
KDEpCkBAIC0xNTYsNTggKzE0NCwyNCBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkK
ICAgICAsIG1fdGV4dEF1dG9zaXppbmdFbmFibGVkKGZhbHNlKQogI2VuZGlmCiAjZW5kaWYKKyAg
ICBTRVRUSU5HU19JTklUSUFMSVpFUl9MSVNUCiAgICAgLCBtX2lzU3BhdGlhbE5hdmlnYXRpb25F
bmFibGVkKGZhbHNlKQogICAgICwgbV9pc0phdmFFbmFibGVkKGZhbHNlKQogICAgICwgbV9pc0ph
dmFFbmFibGVkRm9yTG9jYWxGaWxlcyh0cnVlKQogICAgICwgbV9sb2Fkc0ltYWdlc0F1dG9tYXRp
Y2FsbHkoZmFsc2UpCi0gICAgLCBtX2xvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdT
ZXR0aW5nKGZhbHNlKQogICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKGZhbHNlKQotICAg
ICwgbV9jYXJldEJyb3dzaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fYXJlSW1hZ2VzRW5hYmxl
ZCh0cnVlKQogICAgICwgbV9pc01lZGlhRW5hYmxlZCh0cnVlKQogICAgICwgbV9hcmVQbHVnaW5z
RW5hYmxlZChmYWxzZSkKLSAgICAsIG1fbG9jYWxTdG9yYWdlRW5hYmxlZChmYWxzZSkKICAgICAs
IG1faXNTY3JpcHRFbmFibGVkKGZhbHNlKQogICAgICwgbV9pc1dlYlNlY3VyaXR5RW5hYmxlZCh0
cnVlKQotICAgICwgbV9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVlKQotICAg
ICwgbV9hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHModHJ1ZSkKLSAgICAsIG1famF2YVNjcmlw
dENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShmYWxzZSkKLSAgICAsIG1fc3VwcG9ydHNNdWx0
aXBsZVdpbmRvd3ModHJ1ZSkKLSAgICAsIG1famF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChm
YWxzZSkKLSAgICAsIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhmYWxzZSkKICAgICAsIG1fdGV4
dEFyZWFzQXJlUmVzaXphYmxlKGZhbHNlKQotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkK
LSAgICAsIG1fdXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoZmFsc2UpCi0j
ZW5kaWYKICAgICAsIG1fbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsoZmFsc2UpCi0gICAg
LCBtX25lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzKGZhbHNlKQotICAgICwg
bV90cmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldChmYWxzZSkKLSAgICAsIG1fbmVlZHNM
ZW9wYXJkTWFpbFF1aXJrcyhmYWxzZSkKICAgICAsIG1faXNET01QYXN0ZUFsbG93ZWQoZmFsc2Up
Ci0gICAgLCBtX3Nocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQodHJ1ZSkKICAgICAsIG1fdXNl
c1BhZ2VDYWNoZShmYWxzZSkKLSAgICAsIG1fcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKGZhbHNl
KQotICAgICwgbV9zaG93c1VSTHNJblRvb2xUaXBzKGZhbHNlKQotICAgICwgbV9zaG93c1Rvb2xU
aXBPdmVyVHJ1bmNhdGVkVGV4dChmYWxzZSkKLSAgICAsIG1fZm9yY2VGVFBEaXJlY3RvcnlMaXN0
aW5ncyhmYWxzZSkKLSAgICAsIG1fZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChmYWxzZSkKLSAgICAs
IG1famF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZChmYWxzZSkKICAgICAsIG1fYXV0aG9yQW5k
VXNlclN0eWxlc0VuYWJsZWQodHJ1ZSkKLSAgICAsIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
ZmFsc2UpCiAgICAgLCBtX2ZvbnRSZW5kZXJpbmdNb2RlKDApCi0gICAgLCBtX2ZyYW1lRmxhdHRl
bmluZ0VuYWJsZWQoZmFsc2UpCi0jaWYgRU5BQkxFKFdFQl9BUkNISVZFKQotICAgICwgbV93ZWJB
cmNoaXZlRGVidWdNb2RlRW5hYmxlZChmYWxzZSkKLSNlbmRpZgotICAgICwgbV9sb2NhbEZpbGVD
b250ZW50U25pZmZpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9pbkFwcGxpY2F0aW9uQ2hyb21l
TW9kZShmYWxzZSkKLSAgICAsIG1fb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKGZh
bHNlKQotICAgICwgbV9lbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZSh0cnVlKQotICAg
ICwgbV91c2VzRW5jb2RpbmdEZXRlY3RvcihmYWxzZSkKLSAgICAsIG1fYWxsb3dTY3JpcHRzVG9D
bG9zZVdpbmRvd3MoZmFsc2UpCi0gICAgLCBtX2NhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmco
ZmFsc2UpCi0gICAgLCBtX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoZmFsc2UpCi0gICAgLCBt
X2FjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lzQ1NTQ3VzdG9tRmls
dGVyRW5hYmxlZChmYWxzZSkKICNpZiBFTkFCTEUoQ1NTX1NUSUNLWV9QT1NJVElPTikKICAgICAs
IG1fY3NzU3RpY2t5UG9zaXRpb25FbmFibGVkKHRydWUpCkBAIC0yMTgsOTAgKzE3MiwyNCBAQCBT
ZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxFUykK
ICAgICAsIG1fY3NzVmFyaWFibGVzRW5hYmxlZChmYWxzZSkKICNlbmRpZgotICAgICwgbV9yZWdp
b25CYXNlZENvbHVtbnNFbmFibGVkKGZhbHNlKQotICAgICwgbV9jc3NHcmlkTGF5b3V0RW5hYmxl
ZChmYWxzZSkKLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVhbGx5IGJlIGRpc2FibGVkIGJ5
IGRlZmF1bHQgYXMgaXQgbWFrZXMgcGxhdGZvcm1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGUgZmVh
dHVyZSBkb3dubG9hZCBmaWxlcwotICAgIC8vIHRoZXkgY2FuJ3QgdXNlIGJ5LiBMZWF2aW5nIGVu
YWJsZWQgZm9yIG5vdyB0byBub3QgY2hhbmdlIGV4aXN0aW5nIGJlaGF2aW9yLgotICAgICwgbV9k
b3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQodHJ1ZSkKLSAgICAsIG1feHNzQXVkaXRvckVu
YWJsZWQoZmFsc2UpCiAgICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUp
Ci0gICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9ybXNFbmFibGVkKHRy
dWUpCi0gICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQodHJ1ZSkK
LSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkKHRydWUpCi0g
ICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkKHRydWUpCi0gICAg
LCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JBbmltYXRpb25FbmFibGVkKHRydWUpCi0gICAg
LCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZChmYWxzZSkK
LSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVk
KGZhbHNlKQogICAgICwgbV9zaG93RGVidWdCb3JkZXJzKGZhbHNlKQogICAgICwgbV9zaG93UmVw
YWludENvdW50ZXIoZmFsc2UpCi0gICAgLCBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFi
bGVkKGZhbHNlKQotICAgICwgbV93ZWJHTEVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX3dlYkdMRXJy
b3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fb3BlbkdMTXVsdGlzYW1wbGluZ0Vu
YWJsZWQodHJ1ZSkKLSAgICAsIG1fcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQoZmFs
c2UpCi0gICAgLCBtX3dlYkF1ZGlvRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fYWNjZWxlcmF0ZWRD
YW52YXMyZEVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2RlZmVycmVkQ2FudmFzMmRFbmFibGVkKGZh
bHNlKQotICAgICwgbV9sb2FkRGVmZXJyaW5nRW5hYmxlZCh0cnVlKQogICAgICwgbV90aWxlZEJh
Y2tpbmdTdG9yZUVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX3BhZ2luYXRlRHVyaW5nTGF5b3V0RW5h
YmxlZChmYWxzZSkKICAgICAsIG1fZG5zUHJlZmV0Y2hpbmdFbmFibGVkKGZhbHNlKQotI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICAsIG1fZnVsbFNjcmVlbkFQSUVuYWJsZWQoZmFsc2Up
Ci0jZW5kaWYKLSAgICAsIG1fYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoZmFsc2Up
CiAjaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKICAgICAsIG1fdW5pZmllZFRleHRDaGVj
a2VyRW5hYmxlZCh0cnVlKQogI2Vsc2UKICAgICAsIG1fdW5pZmllZFRleHRDaGVja2VyRW5hYmxl
ZChmYWxzZSkKICNlbmRpZgotICAgICwgbV9tZW1vcnlJbmZvRW5hYmxlZChmYWxzZSkKLSAgICAs
IG1fcXVhbnRpemVkTWVtb3J5SW5mb0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2ludGVyYWN0aXZl
Rm9ybVZhbGlkYXRpb24oZmFsc2UpCi0gICAgLCBtX3VzZVByZUhUTUw1UGFyc2VyUXVpcmtzKGZh
bHNlKQotICAgICwgbV9oeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2Ny
b3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkKGZhbHNlKQotICAgICwg
bV9mb3JjZUNvbXBvc2l0aW5nTW9kZShmYWxzZSkKLSAgICAsIG1fc2hvdWxkSW5qZWN0VXNlclNj
cmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50KGZhbHNlKQotICAgICwgbV9maXhlZEVsZW1lbnRz
TGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGZhbHNlKQotICAgICwgbV9hbGxvd0Rpc3BsYXlPZkluc2Vj
dXJlQ29udGVudCh0cnVlKQotICAgICwgbV9hbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCh0
cnVlKQogI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQogICAgICwgbV9zY3JvbGxBbmltYXRv
ckVuYWJsZWQodHJ1ZSkKICNlbmRpZgotICAgICwgbV9tZWRpYVBsYXliYWNrUmVxdWlyZXNVc2Vy
R2VzdHVyZShmYWxzZSkKLSAgICAsIG1fbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSh0cnVlKQot
ICAgICwgbV9wYXNzd29yZEVjaG9FbmFibGVkKGZhbHNlKQotICAgICwgbV9zdXBwcmVzc2VzSW5j
cmVtZW50YWxSZW5kZXJpbmcoZmFsc2UpCi0gICAgLCBtX2JhY2tzcGFjZUtleU5hdmlnYXRpb25F
bmFibGVkKHRydWUpCi0gICAgLCBtX3Zpc3VhbFdvcmRNb3ZlbWVudEVuYWJsZWQoZmFsc2UpCi0j
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgICwgbV9zaG91bGREaXNwbGF5U3VidGl0bGVzKGZh
bHNlKQotICAgICwgbV9zaG91bGREaXNwbGF5Q2FwdGlvbnMoZmFsc2UpCi0gICAgLCBtX3Nob3Vs
ZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zKGZhbHNlKQotI2VuZGlmCi0gICAgLCBtX3Njcm9sbGlu
Z0Nvb3JkaW5hdG9yRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fbm90aWZpY2F0aW9uc0VuYWJsZWQo
dHJ1ZSkKLSAgICAsIG1fbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmsoZmFsc2UpCiAjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICAsIG1fdG91Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQo
ZmFsc2UpCiAjZW5kaWYKLSAgICAsIG1fc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oZmFs
c2UpCi0gICAgLCBtX3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IoZmFsc2Up
Ci0gICAgLCBtX3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQodHJ1ZSkKLSAgICAsIG1fZGV2
aWNlU3VwcG9ydHNUb3VjaChmYWxzZSkKLSAgICAsIG1fZGV2aWNlU3VwcG9ydHNNb3VzZSh0cnVl
KQotICAgICwgbV9uZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKGZhbHNlKQotICAgICwgbV9m
aXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dChmYWxzZSkKLSAgICAsIG1fc3luY1hI
UkluRG9jdW1lbnRzRW5hYmxlZCh0cnVlKQotICAgICwgbV9jb29raWVFbmFibGVkKHRydWUpCi0g
ICAgLCBtX3dpbmRvd0ZvY3VzUmVzdHJpY3RlZCh0cnVlKQotICAgICwgbV9kaWFnbm9zdGljTG9n
Z2luZ0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0Vu
YWJsZWQoZmFsc2UpCi0gICAgLCBtX2FwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGZh
bHNlKQotICAgICwgbV9wbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9z
ZXRJbWFnZUxvYWRpbmdTZXR0aW5nc1RpbWVyKHRoaXMsICZTZXR0aW5nczo6aW1hZ2VMb2FkaW5n
U2V0dGluZ3NUaW1lckZpcmVkKQotICAgICwgbV9pbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNz
aW9uVGltZW91dEluU2Vjb25kcyhkZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lv
blRpbWVvdXRJblNlY29uZHMpCiB7CiAgICAgLy8gQSBGcmFtZSBtYXkgbm90IGhhdmUgYmVlbiBj
cmVhdGVkIHlldCwgc28gd2UgaW5pdGlhbGl6ZSB0aGUgQXRvbWljU3RyaW5nCiAgICAgLy8gaGFz
aCBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KQEAgLTUwOCwxMSArMzk2LDYgQEAgdm9pZCBTZXR0
aW5nczo6aW1hZ2VMb2FkaW5nU2V0dGluZ3NUaW1lckZpcmVkKFRpbWVyPFNldHRpbmdzPiopCiAg
ICAgc2V0SW1hZ2VMb2FkaW5nU2V0dGluZ3MobV9wYWdlKTsKIH0KIAotdm9pZCBTZXR0aW5nczo6
c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoYm9vbCBsb2Fkc1Np
dGVJY29ucykKLXsKLSAgICBtX2xvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0
aW5nID0gbG9hZHNTaXRlSWNvbnM7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldFNjcmlwdEVuYWJs
ZWQoYm9vbCBpc1NjcmlwdEVuYWJsZWQpCiB7CiAgICAgbV9pc1NjcmlwdEVuYWJsZWQgPSBpc1Nj
cmlwdEVuYWJsZWQ7CkBAIC01MjMsMTYgKzQwNiw2IEBAIHZvaWQgU2V0dGluZ3M6OnNldFdlYlNl
Y3VyaXR5RW5hYmxlZChib29sIGlzV2ViU2VjdXJpdHlFbmFibGVkKQogICAgIG1faXNXZWJTZWN1
cml0eUVuYWJsZWQgPSBpc1dlYlNlY3VyaXR5RW5hYmxlZDsKIH0KIAotdm9pZCBTZXR0aW5nczo6
c2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoYm9vbCBhbGxvd1VuaXZlcnNhbEFj
Y2Vzc0Zyb21GaWxlVVJMcykKLXsKLSAgICBtX2FsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVV
UkxzID0gYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM7Ci19Ci0KLXZvaWQgU2V0dGlu
Z3M6OnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhib29sIGFsbG93RmlsZUFjY2Vzc0Zy
b21GaWxlVVJMcykKLXsKLSAgICBtX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyA9IGFsbG93
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0U3BhdGlhbE5h
dmlnYXRpb25FbmFibGVkKGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpCiB7CiAgICAg
bV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA9IGlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVk
OwpAQCAtNTY2LDE2ICs0MzksNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRQbHVnaW5zRW5hYmxlZChi
b29sIGFyZVBsdWdpbnNFbmFibGVkKQogICAgIG1fYXJlUGx1Z2luc0VuYWJsZWQgPSBhcmVQbHVn
aW5zRW5hYmxlZDsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChi
b29sIGxvY2FsU3RvcmFnZUVuYWJsZWQpCi17Ci0gICAgbV9sb2NhbFN0b3JhZ2VFbmFibGVkID0g
bG9jYWxTdG9yYWdlRW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0U2Vzc2lvblN0b3Jh
Z2VRdW90YSh1bnNpZ25lZCBzZXNzaW9uU3RvcmFnZVF1b3RhKQotewotICAgIG1fc2Vzc2lvblN0
b3JhZ2VRdW90YSA9IHNlc3Npb25TdG9yYWdlUXVvdGE7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNl
dFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQogewog
ICAgIC8vIEZJWE1FIGh0dHA6Ly93ZWJraXQub3JnL2IvNjc4NzA6IFRoZSBwcml2YXRlIGJyb3dz
aW5nIHN0b3JhZ2Ugc2Vzc2lvbiBhbmQgY29va2llIHByaXZhdGUKQEAgLTYwMSwyNiArNDY0LDYg
QEAgdm9pZCBTZXR0aW5nczo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZhdGVC
cm93c2luZ0VuYWJsZWQpCiAgICAgbV9wYWdlLT5wcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQo
KTsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseShib29sIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkpCi17Ci0g
ICAgbV9qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gamF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0U3VwcG9y
dHNNdWx0aXBsZVdpbmRvd3MoYm9vbCBzdXBwb3J0c011bHRpcGxlV2luZG93cykKLXsKLSAgICBt
X3N1cHBvcnRzTXVsdGlwbGVXaW5kb3dzID0gc3VwcG9ydHNNdWx0aXBsZVdpbmRvd3M7Ci19Ci0K
LXZvaWQgU2V0dGluZ3M6OnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYm9vbCBqYXZh
U2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKQotewotICAgIG1famF2YVNjcmlwdENhbkFjY2Vzc0Ns
aXBib2FyZCA9IGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQ7Ci19Ci0KLXZvaWQgU2V0dGlu
Z3M6OnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFN0cmluZyYgZGVmYXVsdFRleHRF
bmNvZGluZ05hbWUpCi17Ci0gICAgbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZSA9IGRlZmF1bHRU
ZXh0RW5jb2RpbmdOYW1lOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRVc2VyU3R5bGVTaGVldExv
Y2F0aW9uKGNvbnN0IEtVUkwmIHVzZXJTdHlsZVNoZWV0TG9jYXRpb24pCiB7CiAgICAgaWYgKG1f
dXNlclN0eWxlU2hlZXRMb2NhdGlvbiA9PSB1c2VyU3R5bGVTaGVldExvY2F0aW9uKQpAQCAtNjMx
LDE2ICs0NzQsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKGNv
bnN0IEtVUkwmIHVzZXJTdHlsZVNoZWV0TG9jYXRpb24pCiAgICAgbV9wYWdlLT51c2VyU3R5bGVT
aGVldExvY2F0aW9uQ2hhbmdlZCgpOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRGaXhlZEVsZW1l
bnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJvb2wgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZl
VG9GcmFtZSkKLXsKLSAgICBtX2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUgPSBm
aXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lOwotfQotCi12b2lkIFNldHRpbmdzOjpz
ZXRTaG91bGRQcmludEJhY2tncm91bmRzKGJvb2wgc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcykKLXsK
LSAgICBtX3Nob3VsZFByaW50QmFja2dyb3VuZHMgPSBzaG91bGRQcmludEJhY2tncm91bmRzOwot
fQotCiB2b2lkIFNldHRpbmdzOjpzZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoYm9vbCB0ZXh0QXJl
YXNBcmVSZXNpemFibGUpCiB7CiAgICAgaWYgKG1fdGV4dEFyZWFzQXJlUmVzaXphYmxlID09IHRl
eHRBcmVhc0FyZVJlc2l6YWJsZSkKQEAgLTY1MCwyMyArNDgzLDYgQEAgdm9pZCBTZXR0aW5nczo6
c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKGJvb2wgdGV4dEFyZWFzQXJlUmVzaXphYmxlKQogICAg
IG1fcGFnZS0+c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7CiB9CiAKLXZvaWQgU2V0
dGluZ3M6OnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKEVkaXRhYmxlTGlua0JlaGF2aW9yIGVkaXRh
YmxlTGlua0JlaGF2aW9yKQotewotICAgIG1fZWRpdGFibGVMaW5rQmVoYXZpb3IgPSBlZGl0YWJs
ZUxpbmtCZWhhdmlvcjsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0VGV4dERpcmVjdGlvblN1Ym1l
bnVJbmNsdXNpb25CZWhhdmlvcihUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9y
IGJlaGF2aW9yKQotewotICAgIG1fdGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlv
ciA9IGJlaGF2aW9yOwotfQotCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQotdm9pZCBT
ZXR0aW5nczo6c2V0VXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoYm9vbCB1
c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSkKLXsKLSAgICBtX3VzZXNEYXNo
Ym9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlID0gdXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29t
cGF0aWJpbGl0eU1vZGU7Ci19Ci0jZW5kaWYKLQogLy8gRklYTUU6IFRoaXMgcXVpcmsgaXMgbmVl
ZGVkIGJlY2F1c2Ugb2YgUmFkYXIgNDY3NDUzNyBhbmQgNTIxMTI3MS4gV2UgbmVlZCB0byBwaGFz
ZSBpdCBvdXQgb25jZSBBZG9iZQogLy8gY2FuIGZpeCB0aGUgYnVnIGZyb20gdGhlaXIgZW5kLgog
dm9pZCBTZXR0aW5nczo6c2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsoYm9vbCBzaG91
bGROb3RSZWxvYWRJRnJhbWVzRm9yVW5jaGFuZ2VkU1JDKQpAQCAtNjc0LDI0ICs0OTAsNiBAQCB2
b2lkIFNldHRpbmdzOjpzZXROZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayhib29sIHNob3Vs
ZE5vdFJlbG9hZElGcmFtZXNGb3JVbgogICAgIG1fbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVp
cmsgPSBzaG91bGROb3RSZWxvYWRJRnJhbWVzRm9yVW5jaGFuZ2VkU1JDOwogfQogCi0vLyBUaGlz
IGlzIGEgcXVpcmsgd2UgYXJlIHByby1hY3RpdmVseSBhcHBseWluZyB0byBvbGQgYXBwbGljYXRp
b25zLiBJdCBjaGFuZ2VzIGtleWJvYXJkIGV2ZW50IGRpc3BhdGNoaW5nLAotLy8gbWFraW5nIGtl
eUlkZW50aWZpZXIgYXZhaWxhYmxlIG9uIGtleXByZXNzIGV2ZW50cywgbWFraW5nIGNoYXJDb2Rl
IGF2YWlsYWJsZSBvbiBrZXlkb3duL2tleXVwIGV2ZW50cywKLS8vIGFuZCBnZXR0aW5nIGtleXBy
ZXNzIGRpc3BhdGNoZWQgaW4gbW9yZSBjYXNlcy4KLXZvaWQgU2V0dGluZ3M6OnNldE5lZWRzS2V5
Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzKGJvb2wgbmVlZHNRdWlya3MpCi17Ci0gICAg
bV9uZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcyA9IG5lZWRzUXVpcmtzOwot
fQotCi12b2lkIFNldHRpbmdzOjpzZXRUcmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldChi
b29sIHRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0KQotewotICAgIG1fdHJlYXRzQW55
VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQgPSB0cmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVl
dDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0TmVlZHNMZW9wYXJkTWFpbFF1aXJrcyhib29sIG5l
ZWRzUXVpcmtzKQotewotICAgIG1fbmVlZHNMZW9wYXJkTWFpbFF1aXJrcyA9IG5lZWRzUXVpcmtz
OwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRET01QYXN0ZUFsbG93ZWQoYm9vbCBET01QYXN0ZUFs
bG93ZWQpCiB7CiAgICAgbV9pc0RPTVBhc3RlQWxsb3dlZCA9IERPTVBhc3RlQWxsb3dlZDsKQEAg
LTc1Miw0MSArNTUwLDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0VXNlc1BhZ2VDYWNoZShib29sIHVz
ZXNQYWdlQ2FjaGUpCiAgICAgfQogfQogCi12b2lkIFNldHRpbmdzOjpzZXRTaHJpbmtzU3RhbmRh
bG9uZUltYWdlc1RvRml0KGJvb2wgc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCkKLXsKLSAg
ICBtX3Nocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQgPSBzaHJpbmtzU3RhbmRhbG9uZUltYWdl
c1RvRml0OwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRTaG93c1VSTHNJblRvb2xUaXBzKGJvb2wg
c2hvd3NVUkxzSW5Ub29sVGlwcykKLXsKLSAgICBtX3Nob3dzVVJMc0luVG9vbFRpcHMgPSBzaG93
c1VSTHNJblRvb2xUaXBzOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRTaG93c1Rvb2xUaXBPdmVy
VHJ1bmNhdGVkVGV4dChib29sIHNob3dzVG9vbFRpcEZvclRydW5jYXRlZFRleHQpCi17Ci0gICAg
bV9zaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCA9IHNob3dzVG9vbFRpcEZvclRydW5jYXRl
ZFRleHQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEZUUERpcmVjdG9yeVRlbXBsYXRlUGF0aChj
b25zdCBTdHJpbmcmIHBhdGgpCi17Ci0gICAgbV9mdHBEaXJlY3RvcnlUZW1wbGF0ZVBhdGggPSBw
YXRoOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRGb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzKGJv
b2wgZm9yY2UpCi17Ci0gICAgbV9mb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzID0gZm9yY2U7Ci19
Ci0KLXZvaWQgU2V0dGluZ3M6OnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCBkZXZlbG9w
ZXJFeHRyYXNFbmFibGVkKQotewotICAgIG1fZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCA9IGRldmVs
b3BlckV4dHJhc0VuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEphdmFTY3JpcHRFeHBl
cmltZW50c0VuYWJsZWQoYm9vbCBqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKQotewotICAg
IG1famF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZCA9IGphdmFTY3JpcHRFeHBlcmltZW50c0Vu
YWJsZWQ7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVk
KGJvb2wgYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQpCiB7CiAgICAgaWYgKG1fYXV0aG9yQW5k
VXNlclN0eWxlc0VuYWJsZWQgPT0gYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQpCkBAIC04MDks
NDggKzU3MiwxMSBAQCBGb250UmVuZGVyaW5nTW9kZSBTZXR0aW5nczo6Zm9udFJlbmRlcmluZ01v
ZGUoKSBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxGb250UmVuZGVyaW5nTW9kZT4obV9m
b250UmVuZGVyaW5nTW9kZSk7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldE5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzKGJvb2wgbmVlZHNRdWlya3MpCi17Ci0gICAgbV9uZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcyA9IG5lZWRzUXVpcmtzOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRGcmFtZUZsYXR0ZW5p
bmdFbmFibGVkKGJvb2wgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCkKLXsKLSAgICBtX2ZyYW1lRmxh
dHRlbmluZ0VuYWJsZWQgPSBmcmFtZUZsYXR0ZW5pbmdFbmFibGVkOwotfQotCi0jaWYgRU5BQkxF
KFdFQl9BUkNISVZFKQotdm9pZCBTZXR0aW5nczo6c2V0V2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJs
ZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fd2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQgPSBl
bmFibGVkOwotfQotI2VuZGlmCi0KLXZvaWQgU2V0dGluZ3M6OnNldExvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fbG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldExvY2FsU3Rv
cmFnZURhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCi17Ci0gICAgbV9sb2NhbFN0b3Jh
Z2VEYXRhYmFzZVBhdGggPSBwYXRoOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRBcHBsaWNhdGlv
bkNocm9tZU1vZGUoYm9vbCBtb2RlKQogewogICAgIG1faW5BcHBsaWNhdGlvbkNocm9tZU1vZGUg
PSBtb2RlOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNo
ZUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0RW5mb3JjZUNTU01J
TUVUeXBlSW5Ob1F1aXJrc01vZGUoYm9vbCBlbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9k
ZSkKLXsKLSAgICBtX2VuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlID0gZW5mb3JjZUNT
U01JTUVUeXBlSW5Ob1F1aXJrc01vZGU7Ci19Ci0KICNpZiBVU0UoU0FGQVJJX1RIRU1FKQogdm9p
ZCBTZXR0aW5nczo6c2V0U2hvdWxkUGFpbnROYXRpdmVDb250cm9scyhib29sIHNob3VsZFBhaW50
TmF0aXZlQ29udHJvbHMpCiB7CkBAIC04NTgsMTEgKzU4NCw2IEBAIHZvaWQgU2V0dGluZ3M6OnNl
dFNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMoYm9vbCBzaG91bGRQYWludE5hdGl2ZUNvbnRyb2xz
KQogfQogI2VuZGlmCiAKLXZvaWQgU2V0dGluZ3M6OnNldFVzZXNFbmNvZGluZ0RldGVjdG9yKGJv
b2wgdXNlc0VuY29kaW5nRGV0ZWN0b3IpCi17Ci0gICAgbV91c2VzRW5jb2RpbmdEZXRlY3RvciA9
IHVzZXNFbmNvZGluZ0RldGVjdG9yOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRETlNQcmVmZXRj
aGluZ0VuYWJsZWQoYm9vbCBkbnNQcmVmZXRjaGluZ0VuYWJsZWQpCiB7CiAgICAgaWYgKG1fZG5z
UHJlZmV0Y2hpbmdFbmFibGVkID09IGRuc1ByZWZldGNoaW5nRW5hYmxlZCkKQEAgLTg3MiwyNiAr
NTkzLDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGJvb2wgZG5z
UHJlZmV0Y2hpbmdFbmFibGVkKQogICAgIG1fcGFnZS0+ZG5zUHJlZmV0Y2hpbmdTdGF0ZUNoYW5n
ZWQoKTsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0QWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3Mo
Ym9vbCBhbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cykKLXsKLSAgICBtX2FsbG93U2NyaXB0c1Rv
Q2xvc2VXaW5kb3dzID0gYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3M7Ci19Ci0KLXZvaWQgU2V0
dGluZ3M6OnNldENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wgY2FyZXRCcm93c2luZ0VuYWJsZWQp
Ci17Ci0gICAgbV9jYXJldEJyb3dzaW5nRW5hYmxlZCA9IGNhcmV0QnJvd3NpbmdFbmFibGVkOwot
fQotCi12b2lkIFNldHRpbmdzOjpzZXREb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQoYm9v
bCBkb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQpCi17Ci0gICAgbV9kb3dubG9hZGFibGVC
aW5hcnlGb250c0VuYWJsZWQgPSBkb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQ7Ci19Ci0K
LXZvaWQgU2V0dGluZ3M6OnNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wgeHNzQXVkaXRvckVuYWJs
ZWQpCi17Ci0gICAgbV94c3NBdWRpdG9yRW5hYmxlZCA9IHhzc0F1ZGl0b3JFbmFibGVkOwotfQot
CiB2b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChib29sIGVu
YWJsZWQpCiB7CiAgICAgaWYgKG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgPT0gZW5h
YmxlZCkKQEAgLTkwMSwzNiArNjAyLDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIG1fcGFnZS0+c2V0TmVlZHNSZWNh
bGNTdHlsZUluQWxsRnJhbWVzKCk7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldENhbnZhc1VzZXNB
Y2NlbGVyYXRlZERyYXdpbmcoYm9vbCBlbmFibGVkKQotewotICAgIG1fY2FudmFzVXNlc0FjY2Vs
ZXJhdGVkRHJhd2luZyA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9ybXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAg
ICBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9ybXNFbmFibGVkID0gZW5hYmxl
ZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVv
RW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
VmlkZW9FbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JQbHVnaW5zRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZv
aWQgU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkKGJv
b2wgZW5hYmxlZCkKLXsKLSAgICBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFi
bGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQgPSBlbmFibGVkOwotfQotCiB2b2lkIFNl
dHRpbmdzOjpzZXRTaG93RGVidWdCb3JkZXJzKGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAobV9z
aG93RGVidWdCb3JkZXJzID09IGVuYWJsZWQpCkBAIC05NDksMTEgKzYyMCw2IEBAIHZvaWQgU2V0
dGluZ3M6OnNldFNob3dSZXBhaW50Q291bnRlcihib29sIGVuYWJsZWQpCiAgICAgbV9wYWdlLT5z
ZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0
RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1f
ZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQgPSBlbmFibGVkOwotfQotCiAjaWYgUExB
VEZPUk0oV0lOKSB8fCAoT1MoV0lORE9XUykgJiYgUExBVEZPUk0oV1gpKQogdm9pZCBTZXR0aW5n
czo6c2V0U2hvdWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnMoYm9vbCBzaG91bGRVc2VIaWdoUmVz
b2x1dGlvblRpbWVycykKIHsKQEAgLTk2MSw1MSArNjI3LDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0
U2hvdWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnMoYm9vbCBzaG91bGRVc2VIaWdoUmVzb2x1dGlv
blRpbWUKIH0KICNlbmRpZgogCi12b2lkIFNldHRpbmdzOjpzZXRXZWJBdWRpb0VuYWJsZWQoYm9v
bCBlbmFibGVkKQotewotICAgIG1fd2ViQXVkaW9FbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9p
ZCBTZXR0aW5nczo6c2V0V2ViR0xFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3dlYkdM
RW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFdlYkdMRXJyb3JzVG9D
b25zb2xlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV93ZWJHTEVycm9yc1RvQ29uc29s
ZUVuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRPcGVuR0xNdWx0aXNh
bXBsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9vcGVuR0xNdWx0aXNhbXBsaW5n
RW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFByaXZpbGVnZWRXZWJH
TEV4dGVuc2lvbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3ByaXZpbGVnZWRXZWJH
TEV4dGVuc2lvbnNFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0QWNj
ZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fYWNjZWxlcmF0
ZWRDYW52YXMyZEVuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXREZWZl
cnJlZDJkQ2FudmFzRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9kZWZlcnJlZENhbnZh
czJkRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldE1pbmltdW1BY2Nl
bGVyYXRlZDJkQ2FudmFzU2l6ZShpbnQgbnVtUGl4ZWxzKQotewotICAgIG1fbWluaW11bUFjY2Vs
ZXJhdGVkMmRDYW52YXNTaXplID0gbnVtUGl4ZWxzOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRM
b2FkRGVmZXJyaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9sb2FkRGVmZXJyaW5n
RW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldFN0b3JhZ2VCbG9ja2lu
Z1BvbGljeShTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IGVuYWJsZWQpCiB7
CiAgICAgaWYgKG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09IGVuYWJsZWQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmgKaW5kZXggZjA1M2Y1NDFlZDUwYjkyNDczNDMxMTE3MTJkY2U4ZWY4MGY1MWI3ZC4u
ZjMyMGQ0NTZiMTZmY2NlMzk1MDRkMzQyN2ZlZWYwN2Y5ZDFhMDJmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRl
ICJLVVJMLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTZXR0aW5n
c01hY3Jvcy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KQEAgLTEzMywxMSArMTM0LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldExvYWRzSW1hZ2VzQXV0b21hdGlj
YWxseShib29sKTsKICAgICAgICAgYm9vbCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoKSBjb25z
dCB7IHJldHVybiBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseTsgfQogCi0gICAgICAgIC8vIFRo
aXMgc2V0dGluZyBvbmx5IGFmZmVjdHMgc2l0ZSBpY29uIGltYWdlIGxvYWRpbmcgaWYgbG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcgaXMgZmFsc2UgYW5kIHRoaXMgc2V0dGluZyBpcyB0
cnVlLgotICAgICAgICAvLyBBbGwgb3RoZXIgcGVybXV0YXRpb25zIHN0aWxsIGhlZWQgbG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcuCi0gICAgICAgIHZvaWQgc2V0TG9hZHNTaXRlSWNv
bnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoYm9vbCk7Ci0gICAgICAgIGJvb2wgbG9hZHNT
aXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoKSBjb25zdCB7IHJldHVybiBtX2xv
YWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nOyB9Ci0KICAgICAgICAgdm9p
ZCBzZXRTY3JpcHRFbmFibGVkKGJvb2wpOwogICAgICAgICAvLyBJbnN0ZWFkIG9mIGNhbGxpbmcg
aXNTY3JpcHRFbmFibGVkIGRpcmVjdGx5LCBwbGVhc2UgY29uc2lkZXIgY2FsbGluZwogICAgICAg
ICAvLyBTY3JpcHRDb250cm9sbGVyOjpjYW5FeGVjdXRlU2NyaXB0cywgd2hpY2ggdGFrZXMgdGhp
bmdzIGxpa2UgdGhlCkBAIC0xNDcsMjAgKzE0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgaXNX
ZWJTZWN1cml0eUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzV2ViU2VjdXJpdHlFbmFibGVk
OyB9CiAKLSAgICAgICAgdm9pZCBzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhi
b29sKTsKLSAgICAgICAgYm9vbCBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcygpIGNv
bnN0IHsgcmV0dXJuIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM7IH0KLQotICAg
ICAgICB2b2lkIHNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhib29sKTsKLSAgICAgICAg
Ym9vbCBhbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczsgfQotCi0gICAgICAgIHZvaWQgc2V0SmF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sKTsKLSAgICAgICAgYm9vbCBqYXZhU2NyaXB0
Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9qYXZhU2NyaXB0
Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRTdXBwb3J0
c011bHRpcGxlV2luZG93cyhib29sKTsKLSAgICAgICAgYm9vbCBzdXBwb3J0c011bHRpcGxlV2lu
ZG93cygpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydHNNdWx0aXBsZVdpbmRvd3M7IH0KLQotICAg
ICAgICB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYm9vbCk7Ci0gICAgICAg
IGJvb2wgamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCgpIGNvbnN0IHsgcmV0dXJuIG1famF2
YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDsgfQorICAgICAgICBTRVRUSU5HU19HRVRURVJTX0FO
RF9TRVRURVJTCiAKICAgICAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9v
bCk7CiAgICAgICAgIGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkOyB9CkBAIC0xODEsMTUgKzE2NCw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRQbHVnaW5zRW5hYmxlZChib29s
KTsKICAgICAgICAgYm9vbCBhcmVQbHVnaW5zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXJl
UGx1Z2luc0VuYWJsZWQ7IH0KIAotICAgICAgICB2b2lkIHNldExvY2FsU3RvcmFnZUVuYWJsZWQo
Ym9vbCk7Ci0gICAgICAgIGJvb2wgbG9jYWxTdG9yYWdlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fbG9jYWxTdG9yYWdlRW5hYmxlZDsgfQotCi0gICAgICAgIC8vIEFsbG93IGNsaWVudHMgY29u
Y2VybmVkIHdpdGggbWVtb3J5IGNvbnN1bXB0aW9uIHRvIHNldCBhIHF1b3RhIG9uIHNlc3Npb24g
c3RvcmFnZQotICAgICAgICAvLyBzaW5jZSB0aGUgbWVtb3J5IHVzZWQgd29uJ3QgYmUgcmVsZWFz
ZWQgdW50aWwgdGhlIFBhZ2UgaXMgZGVzdHJveWVkLgotICAgICAgICAvLyBEZWZhdWx0IGlzIG5v
UXVvdGEuCi0gICAgICAgIHZvaWQgc2V0U2Vzc2lvblN0b3JhZ2VRdW90YSh1bnNpZ25lZCk7Ci0g
ICAgICAgIHVuc2lnbmVkIHNlc3Npb25TdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX3Nl
c3Npb25TdG9yYWdlUXVvdGE7IH0KLQogICAgICAgICAvLyBXaGVuIHRoaXMgb3B0aW9uIGlzIHNl
dCwgV2ViQ29yZSB3aWxsIGF2b2lkIHN0b3JpbmcgYW55IHJlY29yZCBvZiBicm93c2luZyBhY3Rp
dml0eQogICAgICAgICAvLyB0aGF0IG1heSBwZXJzaXN0IG9uIGRpc2sgb3IgcmVtYWluIGRpc3Bs
YXllZCB3aGVuIHRoZSBvcHRpb24gaXMgcmVzZXQuCiAgICAgICAgIC8vIFRoaXMgb3B0aW9uIGRv
ZXMgbm90IGFmZmVjdCB0aGUgc3RvcmFnZSBvZiBzdWNoIGluZm9ybWF0aW9uIGluIFJBTS4KQEAg
LTIwNiw1MyArMTgwLDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRQ
cml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIHByaXZhdGVCcm93c2lu
Z0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQ7IH0KIAot
ICAgICAgICB2b2lkIHNldENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wpOwotICAgICAgICBib29s
IGNhcmV0QnJvd3NpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9jYXJldEJyb3dzaW5nRW5h
YmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoY29uc3Qg
U3RyaW5nJik7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgZGVmYXVsdFRleHRFbmNvZGluZ05hbWUo
KSBjb25zdCB7IHJldHVybiBtX2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1lOyB9Ci0gICAgICAgIAot
ICAgICAgICB2b2lkIHNldFVzZXNFbmNvZGluZ0RldGVjdG9yKGJvb2wpOwotICAgICAgICBib29s
IHVzZXNFbmNvZGluZ0RldGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV91c2VzRW5jb2RpbmdEZXRl
Y3RvcjsgfQotCiAgICAgICAgIHZvaWQgc2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGJvb2wpOwog
ICAgICAgICBib29sIGRuc1ByZWZldGNoaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZG5z
UHJlZmV0Y2hpbmdFbmFibGVkOyB9CiAKICAgICAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldExv
Y2F0aW9uKGNvbnN0IEtVUkwmKTsKICAgICAgICAgY29uc3QgS1VSTCYgdXNlclN0eWxlU2hlZXRM
b2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclN0eWxlU2hlZXRMb2NhdGlvbjsgfQogCi0g
ICAgICAgIHZvaWQgc2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShib29sKTsK
LSAgICAgICAgYm9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lOyB9Ci0KLSAgICAg
ICAgdm9pZCBzZXRTaG91bGRQcmludEJhY2tncm91bmRzKGJvb2wpOwotICAgICAgICBib29sIHNo
b3VsZFByaW50QmFja2dyb3VuZHMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFByaW50QmFja2dy
b3VuZHM7IH0KLQogICAgICAgICB2b2lkIHNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShib29sKTsK
ICAgICAgICAgYm9vbCB0ZXh0QXJlYXNBcmVSZXNpemFibGUoKSBjb25zdCB7IHJldHVybiBtX3Rl
eHRBcmVhc0FyZVJlc2l6YWJsZTsgfQogCi0gICAgICAgIHZvaWQgc2V0RWRpdGFibGVMaW5rQmVo
YXZpb3IoRWRpdGFibGVMaW5rQmVoYXZpb3IpOwotICAgICAgICBFZGl0YWJsZUxpbmtCZWhhdmlv
ciBlZGl0YWJsZUxpbmtCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fZWRpdGFibGVMaW5rQmVo
YXZpb3I7IH0KLQotICAgICAgICB2b2lkIHNldFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9u
QmVoYXZpb3IoVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcik7Ci0gICAgICAg
IFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgdGV4dERpcmVjdGlvblN1Ym1l
bnVJbmNsdXNpb25CZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dERpcmVjdGlvblN1Ym1l
bnVJbmNsdXNpb25CZWhhdmlvcjsgfQotCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQot
ICAgICAgICB2b2lkIHNldFVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKGJv
b2wpOwotICAgICAgICBib29sIHVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2Rl
KCkgY29uc3QgeyByZXR1cm4gbV91c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9k
ZTsgfQotI2VuZGlmCi0gICAgICAgIAogICAgICAgICB2b2lkIHNldE5lZWRzQWRvYmVGcmFtZVJl
bG9hZGluZ1F1aXJrKGJvb2wpOwogICAgICAgICBib29sIG5lZWRzQWNyb2JhdEZyYW1lUmVsb2Fk
aW5nUXVpcmsoKSBjb25zdCB7IHJldHVybiBtX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJr
OyB9CiAKLSAgICAgICAgdm9pZCBzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1
aXJrcyhib29sKTsKLSAgICAgICAgYm9vbCBuZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlv
blF1aXJrcygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRp
b25RdWlya3M7IH0KLQotICAgICAgICB2b2lkIHNldFRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHls
ZXNoZWV0KGJvb2wpOwotICAgICAgICBib29sIHRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNo
ZWV0KCkgY29uc3QgeyByZXR1cm4gbV90cmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldDsg
fQotCi0gICAgICAgIHZvaWQgc2V0TmVlZHNMZW9wYXJkTWFpbFF1aXJrcyhib29sKTsKLSAgICAg
ICAgYm9vbCBuZWVkc0xlb3BhcmRNYWlsUXVpcmtzKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0xl
b3BhcmRNYWlsUXVpcmtzOyB9Ci0KICAgICAgICAgdm9pZCBzZXRET01QYXN0ZUFsbG93ZWQoYm9v
bCk7CiAgICAgICAgIGJvb2wgaXNET01QYXN0ZUFsbG93ZWQoKSBjb25zdCB7IHJldHVybiBtX2lz
RE9NUGFzdGVBbGxvd2VkOyB9CiAgICAgICAgIApAQCAtMjcxLDg2ICsyMTAsMTUgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldFVzZXNQYWdlQ2FjaGUoYm9vbCk7CiAgICAg
ICAgIGJvb2wgdXNlc1BhZ2VDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc1BhZ2VDYWNoZTsg
fQogICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoYm9v
bCBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMpIHsgbV9wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMg
PSBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnM7IH0KLSAgICAgICAgYm9vbCBwYWdlQ2FjaGVTdXBw
b3J0c1BsdWdpbnMoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VDYWNoZVN1cHBvcnRzUGx1Z2luczsg
fQotCi0gICAgICAgIHZvaWQgc2V0U2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdChib29sKTsK
LSAgICAgICAgYm9vbCBzaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KCkgY29uc3QgeyByZXR1
cm4gbV9zaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRT
aG93c1VSTHNJblRvb2xUaXBzKGJvb2wpOwotICAgICAgICBib29sIHNob3dzVVJMc0luVG9vbFRp
cHMoKSBjb25zdCB7IHJldHVybiBtX3Nob3dzVVJMc0luVG9vbFRpcHM7IH0KLQotICAgICAgICB2
b2lkIHNldFNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0KGJvb2wpOwotICAgICAgICBib29s
IHNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9zaG93c1Rv
b2xUaXBPdmVyVHJ1bmNhdGVkVGV4dDsgfQotCi0gICAgICAgIHZvaWQgc2V0RlRQRGlyZWN0b3J5
VGVtcGxhdGVQYXRoKGNvbnN0IFN0cmluZyYpOwotICAgICAgICBjb25zdCBTdHJpbmcmIGZ0cERp
cmVjdG9yeVRlbXBsYXRlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZnRwRGlyZWN0b3J5VGVtcGxh
dGVQYXRoOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldEZvcmNlRlRQRGlyZWN0b3J5TGlz
dGluZ3MoYm9vbCk7Ci0gICAgICAgIGJvb2wgZm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5ncygpIGNv
bnN0IHsgcmV0dXJuIG1fZm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5nczsgfQotICAgICAgICAKLSAg
ICAgICAgdm9pZCBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29s
IGRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2RldmVsb3BlckV4dHJh
c0VuYWJsZWQ7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0SmF2YVNjcmlwdEV4cGVyaW1l
bnRzRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9qYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkOyB9Ci0K
LSAgICAgICAgdm9pZCBzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGJvb2wpOwotICAgICAgICBi
b29sIGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lRmxhdHRl
bmluZ0VuYWJsZWQ7IH0KLQogICAgICAgICB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFi
bGVkKGJvb2wpOwogICAgICAgICBib29sIGF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9hdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZDsgfQogICAgICAgICAKICAg
ICAgICAgdm9pZCBzZXRGb250UmVuZGVyaW5nTW9kZShGb250UmVuZGVyaW5nTW9kZSBtb2RlKTsK
ICAgICAgICAgRm9udFJlbmRlcmluZ01vZGUgZm9udFJlbmRlcmluZ01vZGUoKSBjb25zdDsKIAot
ICAgICAgICB2b2lkIHNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKGJvb2wpOwotICAgICAgICBi
b29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc1NpdGVT
cGVjaWZpY1F1aXJrczsgfQotCi0jaWYgRU5BQkxFKFdFQl9BUkNISVZFKQotICAgICAgICB2b2lk
IHNldFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIHdlYkFy
Y2hpdmVEZWJ1Z01vZGVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV93ZWJBcmNoaXZlRGVidWdN
b2RlRW5hYmxlZDsgfQotI2VuZGlmCi0KLSAgICAgICAgdm9pZCBzZXRMb2NhbEZpbGVDb250ZW50
U25pZmZpbmdFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0Vu
YWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChjb25z
dCBTdHJpbmcmKTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBsb2NhbFN0b3JhZ2VEYXRhYmFzZVBh
dGgoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsgfQotCiAgICAg
ICAgIHZvaWQgc2V0QXBwbGljYXRpb25DaHJvbWVNb2RlKGJvb2wpOwogICAgICAgICBib29sIGlu
QXBwbGljYXRpb25DaHJvbWVNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9pbkFwcGxpY2F0aW9uQ2hy
b21lTW9kZTsgfQogCi0gICAgICAgIHZvaWQgc2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVF
bmFibGVkKGJvb2wpOwotICAgICAgICBib29sIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVk
OyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldEVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWly
a3NNb2RlKGJvb2wpOwotICAgICAgICBib29sIGVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NN
b2RlKCkgeyByZXR1cm4gbV9lbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZTsgfQotCi0g
ICAgICAgIHZvaWQgc2V0TWF4aW11bURlY29kZWRJbWFnZVNpemUoc2l6ZV90IHNpemUpIHsgbV9t
YXhpbXVtRGVjb2RlZEltYWdlU2l6ZSA9IHNpemU7IH0KLSAgICAgICAgc2l6ZV90IG1heGltdW1E
ZWNvZGVkSW1hZ2VTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6
ZTsgfQotCi0gICAgICAgIHZvaWQgc2V0QWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MoYm9vbCk7
Ci0gICAgICAgIGJvb2wgYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MoKSBjb25zdCB7IHJldHVy
biBtX2FsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRFZGl0
aW5nQmVoYXZpb3JUeXBlKEVkaXRpbmdCZWhhdmlvclR5cGUgYmVoYXZpb3IpIHsgbV9lZGl0aW5n
QmVoYXZpb3JUeXBlID0gYmVoYXZpb3I7IH0KLSAgICAgICAgRWRpdGluZ0JlaGF2aW9yVHlwZSBl
ZGl0aW5nQmVoYXZpb3JUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RWRpdGluZ0Jl
aGF2aW9yVHlwZT4obV9lZGl0aW5nQmVoYXZpb3JUeXBlKTsgfQotCi0gICAgICAgIHZvaWQgc2V0
RG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGRvd25s
b2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZG93bmxvYWRhYmxl
QmluYXJ5Rm9udHNFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRYU1NBdWRpdG9yRW5hYmxl
ZChib29sKTsKLSAgICAgICAgYm9vbCB4c3NBdWRpdG9yRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1feHNzQXVkaXRvckVuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldENhbnZhc1VzZXNBY2Nl
bGVyYXRlZERyYXdpbmcoYm9vbCk7Ci0gICAgICAgIGJvb2wgY2FudmFzVXNlc0FjY2VsZXJhdGVk
RHJhd2luZygpIGNvbnN0IHsgcmV0dXJuIG1fY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZzsg
fQotCi0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJs
ZWQpIHsgbV9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBi
b29sIGFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJh
dGVkRHJhd2luZ0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVy
c0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCA9IGVu
YWJsZWQ7IH0KLSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkOyB9Ci0KICAgICAgICAgdm9pZCBz
ZXRDU1NDdXN0b21GaWx0ZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2lzQ1NTQ3VzdG9tRmls
dGVyRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICAgICAgYm9vbCBpc0NTU0N1c3RvbUZpbHRlckVu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ1NTQ3VzdG9tRmlsdGVyRW5hYmxlZDsgfQogCkBA
IC0zNzgsMTg0ICsyNDYsMzggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGNz
c1ZhcmlhYmxlc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKLSAg
ICAgICAgdm9pZCBzZXRSZWdpb25CYXNlZENvbHVtbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBt
X3JlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgcmVn
aW9uQmFzZWRDb2x1bW5zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaW9uQmFzZWRDb2x1
bW5zRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoYm9v
bCBlbmFibGVkKSB7IG1fY3NzR3JpZExheW91dEVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAg
IGJvb2wgY3NzR3JpZExheW91dEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Nzc0dyaWRMYXlv
dXRFbmFibGVkOyB9Ci0KICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZChib29sKTsKICAgICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7IH0KIAotICAg
ICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9ybXNFbmFibGVk
KGJvb2wpOwotICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9y
bXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yM0RU
cmFuc2Zvcm1zRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZvclZpZGVvRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yVmlkZW9FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yVmlkZW9FbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29s
IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQ2FudmFzRW5hYmxlZDsgfQotCi0gICAgICAgIHZv
aWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQoYm9vbCk7Ci0g
ICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JBbmltYXRpb25FbmFibGVk
OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3Np
dGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZp
eGVkUG9zaXRpb25FbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkOyB9Ci0KLSAgICAgICAg
dm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQo
Ym9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFt
ZXNFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9p
ZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKGJvb2wg
ZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJs
ZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92
ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZDsgfTsKLQogICAgICAgICB2b2lkIHNldFNob3dE
ZWJ1Z0JvcmRlcnMoYm9vbCk7CiAgICAgICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycygpIGNvbnN0
IHsgcmV0dXJuIG1fc2hvd0RlYnVnQm9yZGVyczsgfQogCiAgICAgICAgIHZvaWQgc2V0U2hvd1Jl
cGFpbnRDb3VudGVyKGJvb2wpOwogICAgICAgICBib29sIHNob3dSZXBhaW50Q291bnRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvd1JlcGFpbnRDb3VudGVyOyB9CiAKLSAgICAgICAgdm9pZCBzZXRF
eHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBleHBl
cmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXhwZXJpbWVu
dGFsTm90aWZpY2F0aW9uc0VuYWJsZWQ7IH0KLQogI2lmIFBMQVRGT1JNKFdJTikgfHwgKE9TKFdJ
TkRPV1MpICYmIFBMQVRGT1JNKFdYKSkKICAgICAgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkVXNl
SGlnaFJlc29sdXRpb25UaW1lcnMoYm9vbCk7CiAgICAgICAgIHN0YXRpYyBib29sIHNob3VsZFVz
ZUhpZ2hSZXNvbHV0aW9uVGltZXJzKCkgeyByZXR1cm4gZ1Nob3VsZFVzZUhpZ2hSZXNvbHV0aW9u
VGltZXJzOyB9CiAjZW5kaWYKIAotICAgICAgICB2b2lkIHNldFdlYkF1ZGlvRW5hYmxlZChib29s
KTsKLSAgICAgICAgYm9vbCB3ZWJBdWRpb0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3dlYkF1
ZGlvRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0V2ViR0xFbmFibGVkKGJvb2wpOwotICAg
ICAgICBib29sIHdlYkdMRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViR0xFbmFibGVkOyB9
Ci0KLSAgICAgICAgdm9pZCBzZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoYm9vbCk7Ci0g
ICAgICAgIGJvb2wgd2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV93ZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldE9wZW5H
TE11bHRpc2FtcGxpbmdFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIG9wZW5HTE11bHRpc2Ft
cGxpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuR0xNdWx0aXNhbXBsaW5nRW5hYmxl
ZDsgfQotCi0gICAgICAgIHZvaWQgc2V0UHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQo
Ym9vbCk7Ci0gICAgICAgIGJvb2wgcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX3ByaXZpbGVnZWRXZWJHTEV4dGVuc2lvbnNFbmFibGVkOyB9Ci0KLSAg
ICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChib29sKTsKLSAgICAgICAg
Ym9vbCBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxl
cmF0ZWRDYW52YXMyZEVuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldERlZmVycmVkMmRDYW52
YXNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGRlZmVycmVkMmRDYW52YXNFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9kZWZlcnJlZENhbnZhczJkRW5hYmxlZDsgfQotCi0gICAgICAgIC8v
IE51bWJlciBvZiBwaXhlbHMgYmVsb3cgd2hpY2ggMkQgY2FudmFzIGlzIHJlbmRlcmVkIGluIHNv
ZnR3YXJlCi0gICAgICAgIC8vIGV2ZW4gaWYgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIGlzIGVuYWJs
ZWQuCi0gICAgICAgIC8vIEhhcmR3YXJlIGFjY2VsZXJhdGlvbiBpcyB1c2VmdWwgZm9yIGxhcmdl
IGNhbnZhc2VzIHdoZXJlIGl0IGNhbiBhdm9pZCB0aGUKLSAgICAgICAgLy8gcGl4ZWwgYmFuZHdp
ZHRoIGJldHdlZW4gdGhlIENQVSBhbmQgR1BVLiBCdXQgR1BVIGFjY2VsZXJhdGlvbiBjb21lcyBh
dAotICAgICAgICAvLyBhIHByaWNlIC0gZXh0cmEgYmFjay1idWZmZXIgYW5kIHRleHR1cmUgY29w
eS4gU21hbGwgY2FudmFzZXMgYXJlIGFsc28KLSAgICAgICAgLy8gd2lkZWx5IHVzZWQgZm9yIHN0
eWxpemVkIGZvbnRzLiBBbnRpLWFsaWFzaW5nIHRleHQgaW4gaGFyZHdhcmUgYXQgdGhhdAotICAg
ICAgICAvLyBzY2FsZSBpcyBnZW5lcmFsbHkgc2xvd2VyLiBTbyBiZWxvdyBhIGNlcnRhaW4gc2l6
ZSBpdCBpcyBiZXR0ZXIgdG8KLSAgICAgICAgLy8gZHJhdyBjYW52YXMgaW4gc29mdHdhcmUuCi0g
ICAgICAgIHZvaWQgc2V0TWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplKGludCk7Ci0gICAg
ICAgIGludCBtaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUoKSBjb25zdCB7IHJldHVybiBt
X21pbmltdW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZTsgfQotCi0gICAgICAgIHZvaWQgc2V0TG9h
ZERlZmVycmluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgbG9hZERlZmVycmluZ0VuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2xvYWREZWZlcnJpbmdFbmFibGVkOyB9Ci0gICAgICAgIAog
ICAgICAgICB2b2lkIHNldFRpbGVkQmFja2luZ1N0b3JlRW5hYmxlZChib29sKTsKICAgICAgICAg
Ym9vbCB0aWxlZEJhY2tpbmdTdG9yZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3RpbGVkQmFj
a2luZ1N0b3JlRW5hYmxlZDsgfQogCi0gICAgICAgIHZvaWQgc2V0UGFnaW5hdGVEdXJpbmdMYXlv
dXRFbmFibGVkKGJvb2wgZmxhZykgeyBtX3BhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZCA9IGZs
YWc7IH0KLSAgICAgICAgYm9vbCBwYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX3BhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZDsgfQotCi0jaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQotICAgICAgICB2b2lkIHNldEZ1bGxTY3JlZW5FbmFibGVkKGJvb2wgZmxh
ZykgeyBtX2Z1bGxTY3JlZW5BUElFbmFibGVkID0gZmxhZzsgfQotICAgICAgICBib29sIGZ1bGxT
Y3JlZW5FbmFibGVkKCkgY29uc3QgIHsgcmV0dXJuIG1fZnVsbFNjcmVlbkFQSUVuYWJsZWQ7IH0K
LSNlbmRpZgotCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKICAgICAgICAgc3RhdGljIHZvaWQgc2V0
QVZGb3VuZGF0aW9uRW5hYmxlZChib29sIGZsYWcpIHsgZ0FWRm91bmRhdGlvbkVuYWJsZWQgPSBm
bGFnOyB9CiAgICAgICAgIHN0YXRpYyBib29sIGlzQVZGb3VuZGF0aW9uRW5hYmxlZCgpIHsgcmV0
dXJuIGdBVkZvdW5kYXRpb25FbmFibGVkOyB9CiAjZW5kaWYKIAotICAgICAgICB2b2lkIHNldEFz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wgZmxhZykgeyBtX2FzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkID0gZmxhZzsgfQotICAgICAgICBib29sIGFzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgY29uc3QgIHsgcmV0dXJuIG1fYXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQ7IH0KLQogICAgICAgICB2b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tl
ckVuYWJsZWQoYm9vbCBmbGFnKSB7IG1fdW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IGZsYWc7
IH0KICAgICAgICAgYm9vbCB1bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV91bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkOyB9CiAKLSAgICAgICAgdm9pZCBzZXRNZW1v
cnlJbmZvRW5hYmxlZChib29sIGZsYWcpIHsgbV9tZW1vcnlJbmZvRW5hYmxlZCA9IGZsYWc7IH0K
LSAgICAgICAgYm9vbCBtZW1vcnlJbmZvRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVtb3J5
SW5mb0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldFF1YW50aXplZE1lbW9yeUluZm9FbmFi
bGVkKGJvb2wgZmxhZykgeyBtX3F1YW50aXplZE1lbW9yeUluZm9FbmFibGVkID0gZmxhZzsgfQot
ICAgICAgICBib29sIHF1YW50aXplZE1lbW9yeUluZm9FbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9xdWFudGl6ZWRNZW1vcnlJbmZvRW5hYmxlZDsgfQotCi0gICAgICAgIC8vIFRoaXMgZmVhdHVy
ZSByZXF1aXJlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC4K
LSAgICAgICAgdm9pZCBzZXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZChib29sIGZs
YWcpIHsgbV9pbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uID0gZmxhZzsgfQotICAgICAgICBib29s
IGludGVyYWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pbnRl
cmFjdGl2ZUZvcm1WYWxpZGF0aW9uOyB9Ci0KLSAgICAgICAgLy8gU2V0cyB0aGUgbWFnaW5pY2F0
aW9uIHZhbHVlIGZvciB2YWxpZGF0aW9uIG1lc3NhZ2UgdGltZXIuCi0gICAgICAgIC8vIElmIHRo
ZSBtYWdpbmljYXRpb24gdmFsdWUgaXMgTiwgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgZGlzYXBwZWFy
cwotICAgICAgICAvLyBhdXRvbWF0aWNhbGx5IGFmdGVyIDxtZXNzYWdlIGxlbmd0aD4gKiBOIC8g
MTAwMCBzZWNvbmRzLiBJZiBOIGlzCi0gICAgICAgIC8vIGVxdWFsIHRvIG9yIGxlc3MgdGhhbiAw
LCBhIHZhbGlkYXRpb24gbWVzc2FnZSBkb2Vzbid0IGRpc2FwcGVhcnMKLSAgICAgICAgLy8gYXV0
b21hdGljYWx5LiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA1MC4KLSAgICAgICAgdm9pZCBzZXRWYWxp
ZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbihpbnQgbmV3VmFsdWUpIHsgbV92YWxpZGF0
aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbiA9IG5ld1ZhbHVlOyB9Ci0gICAgICAgIGludCB2
YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnaW5pZmljYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Zh
bGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uOyB9Ci0gICAgICAgIAotICAgICAgICB2
b2lkIHNldFVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKGJvb2wgZmxhZykgeyBtX3VzZVByZUhUTUw1
UGFyc2VyUXVpcmtzID0gZmxhZzsgfQotICAgICAgICBib29sIHVzZVByZUhUTUw1UGFyc2VyUXVp
cmtzKCkgY29uc3QgeyByZXR1cm4gbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrczsgfQotCiAgICAg
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBkZWZhdWx0TWF4aW11bUhUTUxQYXJzZXJET01UcmVl
RGVwdGggPSA1MTI7Ci0gICAgICAgIHZvaWQgc2V0TWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVw
dGgodW5zaWduZWQgbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgpIHsgbV9tYXhpbXVtSFRN
TFBhcnNlckRPTVRyZWVEZXB0aCA9IG1heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoOyB9Ci0g
ICAgICAgIHVuc2lnbmVkIG1heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoKCkgY29uc3QgeyBy
ZXR1cm4gbV9tYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aDsgfQotCi0gICAgICAgIHZvaWQg
c2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKGJvb2wgZmxhZykgeyBtX2h5cGVybGlua0F1ZGl0
aW5nRW5hYmxlZCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBoeXBlcmxpbmtBdWRpdGluZ0VuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2h5cGVybGlua0F1ZGl0aW5nRW5hYmxlZDsgfQotCi0gICAg
ICAgIHZvaWQgc2V0Q3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQo
Ym9vbCBmbGFnKSB7IG1fY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJs
ZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENT
U1J1bGVzRGlzYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1h
dGNoZWRDU1NSdWxlc0Rpc2FibGVkOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldExheW91
dEZhbGxiYWNrV2lkdGgoaW50IHdpZHRoKSB7IG1fbGF5b3V0RmFsbGJhY2tXaWR0aCA9IHdpZHRo
OyB9Ci0gICAgICAgIGludCBsYXlvdXRGYWxsYmFja1dpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9s
YXlvdXRGYWxsYmFja1dpZHRoOyB9Ci0KLSAgICAgICAgdm9pZCBzZXREZXZpY2VXaWR0aChpbnQg
d2lkdGgpIHsgbV9kZXZpY2VXaWR0aCA9IHdpZHRoOyB9Ci0gICAgICAgIGludCBkZXZpY2VXaWR0
aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlV2lkdGg7IH0KLQotICAgICAgICB2b2lkIHNldERl
dmljZUhlaWdodChpbnQgaGVpZ2h0KSB7IG1fZGV2aWNlSGVpZ2h0ID0gaGVpZ2h0OyB9Ci0gICAg
ICAgIGludCBkZXZpY2VIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2RldmljZUhlaWdodDsgfQot
Ci0gICAgICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBmbGFnKSB7IG1fZm9y
Y2VDb21wb3NpdGluZ01vZGUgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgZm9yY2VDb21wb3NpdGlu
Z01vZGUoKSB7IHJldHVybiBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlOyB9Ci0KLSAgICAgICAgdm9p
ZCBzZXRTaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQoYm9vbCBm
bGFnKSB7IG1fc2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50ID0g
ZmxhZzsgfQotICAgICAgICBib29sIHNob3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1w
dHlEb2N1bWVudCgpIHsgcmV0dXJuIG1fc2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxF
bXB0eURvY3VtZW50OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJl
Q29udGVudChib29sIGZsYWcpIHsgbV9hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCA9IGZs
YWc7IH0KLSAgICAgICAgYm9vbCBhbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQ7IH0KLSAgICAgICAgdm9p
ZCBzZXRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudChib29sIGZsYWcpIHsgbV9hbGxvd1J1
bm5pbmdPZkluc2VjdXJlQ29udGVudCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBhbGxvd1J1bm5p
bmdPZkluc2VjdXJlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dSdW5uaW5nT2ZJbnNl
Y3VyZUNvbnRlbnQ7IH0KIAogI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQogICAgICAgICB2
b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGJvb2wgZmxhZykgeyBtX3Njcm9sbEFuaW1hdG9y
RW5hYmxlZCA9IGZsYWc7IH0KICAgICAgICAgYm9vbCBzY3JvbGxBbmltYXRvckVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX3Njcm9sbEFuaW1hdG9yRW5hYmxlZDsgfQogI2VuZGlmCiAKLSAgICAg
ICAgdm9pZCBzZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShib29sIGZsYWcpIHsg
bV9tZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSA9IGZsYWc7IH07Ci0gICAgICAgIGJv
b2wgbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoKSBjb25zdCB7IHJldHVybiBtX21l
ZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRNZWRp
YVBsYXliYWNrQWxsb3dzSW5saW5lKGJvb2wgZmxhZykgeyBtX21lZGlhUGxheWJhY2tBbGxvd3NJ
bmxpbmUgPSBmbGFnOyB9OwotICAgICAgICBib29sIG1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUo
KSBjb25zdCB7IHJldHVybiBtX21lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmU7IH0KLQotICAgICAg
ICB2b2lkIHNldFBhc3N3b3JkRWNob0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1fcGFzc3dvcmRFY2hv
RW5hYmxlZCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9wYXNzd29yZEVjaG9FbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRT
dXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcoYm9vbCBmbGFnKSB7IG1fc3VwcHJlc3Nlc0lu
Y3JlbWVudGFsUmVuZGVyaW5nID0gZmxhZzsgfQotICAgICAgICBib29sIHN1cHByZXNzZXNJbmNy
ZW1lbnRhbFJlbmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcHJlc3Nlc0luY3JlbWVudGFs
UmVuZGVyaW5nOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldEJhY2tzcGFjZUtleU5hdmln
YXRpb25FbmFibGVkKGJvb2wgZmxhZykgeyBtX2JhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVk
ID0gZmxhZzsgfQotICAgICAgICBib29sIGJhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9iYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZDsgfQotICAgICAg
ICAKLSAgICAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhkb3VibGUg
ZHVyYXRpb25JblNlY29uZHMpIHsgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyA9IGR1
cmF0aW9uSW5TZWNvbmRzOyB9Ci0gICAgICAgIGRvdWJsZSBwYXNzd29yZEVjaG9EdXJhdGlvbklu
U2Vjb25kcygpIGNvbnN0IHsgcmV0dXJuIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHM7
IH0KLQogI2lmIFVTRShTQUZBUklfVEhFTUUpCiAgICAgICAgIC8vIFdpbmRvd3MgZGVidWdnaW5n
IHByZWYgKGdsb2JhbCkgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIHRoZSBBcXVhIGxvb2sgYW5kIGEg
bmF0aXZlIHdpbmRvd3MgbG9vay4KICAgICAgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUGFpbnRO
YXRpdmVDb250cm9scyhib29sKTsKQEAgLTU2OCw2OCArMjkwLDExIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgc3RhdGljIHZvaWQgc2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKGJvb2wg
ZmxhZyk7CiAgICAgICAgIHN0YXRpYyBib29sIHVzZXNPdmVybGF5U2Nyb2xsYmFycygpOwogCi0g
ICAgICAgIHZvaWQgc2V0VmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZChib29sIGVuYWJsZWQpIHsg
bV92aXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIHZp
c3VhbFdvcmRNb3ZlbWVudEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Zpc3VhbFdvcmRNb3Zl
bWVudEVuYWJsZWQ7IH0KLQotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAgICAgdm9pZCBz
ZXRTaG91bGREaXNwbGF5U3VidGl0bGVzKGJvb2wgZmxhZykgeyBtX3Nob3VsZERpc3BsYXlTdWJ0
aXRsZXMgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgc2hvdWxkRGlzcGxheVN1YnRpdGxlcygpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvdWxkRGlzcGxheVN1YnRpdGxlczsgfQotCi0gICAgICAgIHZvaWQg
c2V0U2hvdWxkRGlzcGxheUNhcHRpb25zKGJvb2wgZmxhZykgeyBtX3Nob3VsZERpc3BsYXlDYXB0
aW9ucyA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBzaG91bGREaXNwbGF5Q2FwdGlvbnMoKSBjb25z
dCB7IHJldHVybiBtX3Nob3VsZERpc3BsYXlDYXB0aW9uczsgfQotCi0gICAgICAgIHZvaWQgc2V0
U2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnMoYm9vbCBmbGFnKSB7IG1fc2hvdWxkRGlzcGxh
eVRleHREZXNjcmlwdGlvbnMgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgc2hvdWxkRGlzcGxheVRl
eHREZXNjcmlwdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZERpc3BsYXlUZXh0RGVzY3Jp
cHRpb25zOyB9Ci0jZW5kaWYKLQotICAgICAgICB2b2lkIHNldFNjcm9sbGluZ0Nvb3JkaW5hdG9y
RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9zY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQgPSBl
bmFibGVkOyB9Ci0gICAgICAgIGJvb2wgc2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9zY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQ7IH0KLQotICAgICAgICB2
b2lkIHNldE5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX25vdGlmaWNhdGlv
bnNFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIG5vdGlmaWNhdGlvbnNFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9ub3RpZmljYXRpb25zRW5hYmxlZDsgfQotCi0gICAgICAgIC8v
IFNvbWUgYXBwcyBuZWVkcyBpc0xvYWRpbmdJbkFQSVNlbnNlIHRvIGFjY291bnQgZm9yIGFjdGl2
ZSBzdWJyZXNvdXJjZSBsb2FkZXJzLgotICAgICAgICB2b2lkIHNldE5lZWRzSXNMb2FkaW5nSW5B
UElTZW5zZVF1aXJrKGJvb2wgZW5hYmxlZCkgeyBtX25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1
aXJrID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIG5lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1
aXJrKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyazsgfQot
CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICAgICAgdm9pZCBzZXRUb3VjaEV2ZW50RW11
bGF0aW9uRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV90b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxl
ZCA9IGVuYWJsZWQ7IH0KICAgICAgICAgYm9vbCBpc1RvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV90b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZDsgfQogI2VuZGlm
CiAKLSAgICAgICAgdm9pZCBzZXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbihib29sIGVu
YWJsZWQpIHsgbV9zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA9IGVuYWJsZWQ7IH0KLSAg
ICAgICAgYm9vbCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb247IH0KLQotICAgICAgICB2b2lkIHNldFdh
bnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IoYm9vbCBmbGFnKSB7IG1fd2FudHNC
YWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvciA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCB3
YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV93
YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yOyB9Ci0KLSAgICAgICAgdm9pZCBz
ZXRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcyhkb3VibGUg
dGltZW91dCkgeyBtX2luY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNv
bmRzID0gdGltZW91dDsgfQotICAgICAgICBkb3VibGUgaW5jcmVtZW50YWxSZW5kZXJpbmdTdXBw
cmVzc2lvblRpbWVvdXRJblNlY29uZHMoKSBjb25zdCB7IHJldHVybiBtX2luY3JlbWVudGFsUmVu
ZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3JlcXVlc3RBbmlt
YXRpb25GcmFtZUVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgcmVxdWVzdEFuaW1h
dGlvbkZyYW1lRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1l
RW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNUb3VjaChib29sIGVu
YWJsZWQpIHsgbV9kZXZpY2VTdXBwb3J0c1RvdWNoID0gZW5hYmxlZDsgfQotICAgICAgICBib29s
IGRldmljZVN1cHBvcnRzVG91Y2goKSBjb25zdCB7IHJldHVybiBtX2RldmljZVN1cHBvcnRzVG91
Y2g7IH0KLQotICAgICAgICB2b2lkIHNldERldmljZVN1cHBvcnRzTW91c2UoYm9vbCBlbmFibGVk
KSB7IG1fZGV2aWNlU3VwcG9ydHNNb3VzZSA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBkZXZp
Y2VTdXBwb3J0c01vdXNlKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VTdXBwb3J0c01vdXNlOyB9
Ci0KLSAgICAgICAgdm9pZCBzZXROZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKGJvb2wgbmVl
ZHNRdWlyaykgeyBtX25lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsgPSBuZWVkc1F1aXJrOyB9
Ci0gICAgICAgIGJvb2wgbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyaygpIGNvbnN0IHsgcmV0
dXJuIG1fbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyazsgfQotCi0gICAgICAgIHZvaWQgc2V0
Rml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoYm9vbCBjcmVhdGVzKSB7IG1fZml4
ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQgPSBjcmVhdGVzOyB9Ci0gICAgICAgIGJv
b2wgZml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBt
X2ZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0OyB9Ci0KLSAgICAgICAgdm9pZCBz
ZXRTeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3N5bmNYSFJJbkRv
Y3VtZW50c0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgc3luY1hIUkluRG9jdW1l
bnRzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZDsg
fQotCi0gICAgICAgIC8vIFdoZW4gZW5hYmxlZCwgd2luZG93LmJsdXIoKSBkb2VzIG5vdCBjaGFu
Z2UgZm9jdXMsIGFuZAotICAgICAgICAvLyB3aW5kb3cuZm9jdXMoKSBvbmx5IGNoYW5nZXMgZm9j
dXMgd2hlbiBpbnZva2VkIGZyb20gdGhlIGNvbnRleHQgdGhhdAotICAgICAgICAvLyBjcmVhdGVk
IHRoZSB3aW5kb3cuCi0gICAgICAgIHZvaWQgc2V0V2luZG93Rm9jdXNSZXN0cmljdGVkKGJvb2wg
cmVzdHJpY3RlZCkgeyBtX3dpbmRvd0ZvY3VzUmVzdHJpY3RlZCA9IHJlc3RyaWN0ZWQ7IH0KLSAg
ICAgICAgYm9vbCB3aW5kb3dGb2N1c1Jlc3RyaWN0ZWQoKSBjb25zdCB7IHJldHVybiBtX3dpbmRv
d0ZvY3VzUmVzdHJpY3RlZDsgfQotCiAgICAgICAgIHZvaWQgc2V0U3RvcmFnZUJsb2NraW5nUG9s
aWN5KFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kpOwogICAgICAgICBTZWN1
cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHN0b3JhZ2VCbG9ja2luZ1BvbGljeSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5OyB9CiAKQEAgLTY0MSwxOCAr
MzA2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgYm9vbCBzaG91bGRS
ZXNwZWN0UHJpb3JpdHlJbkNTU0F0dHJpYnV0ZVNldHRlcnMoKTsKICNlbmRpZgogCi0gICAgICAg
IHZvaWQgc2V0Q29va2llRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9jb29raWVFbmFibGVkID0g
ZW5hYmxlZDsgfQotICAgICAgICBib29sIGNvb2tpZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X2Nvb2tpZUVuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldERpYWdub3N0aWNMb2dnaW5nRW5h
YmxlZChib29sIGVuYWJsZWQpIHsgbV9kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQgPSBlbmFibGVk
OyB9Ci0gICAgICAgIGJvb2wgZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldEFwcGx5
UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGJvb2wgZW5hYmxlZCkgeyBtX2FwcGx5UGFnZVNj
YWxlRmFjdG9ySW5Db21wb3NpdG9yID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGFwcGx5UGFn
ZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkgY29uc3QgeyByZXR1cm4gbV9hcHBseVBhZ2VTY2Fs
ZUZhY3RvckluQ29tcG9zaXRvcjsgfQotCi0gICAgICAgIHZvaWQgc2V0UGx1Z0luU25hcHNob3R0
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9wbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkID0g
ZW5hYmxlZDsgfQotICAgICAgICBib29sIHBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX3BsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQ7IH0KLQogICAgIHByaXZhdGU6
CiAgICAgICAgIGV4cGxpY2l0IFNldHRpbmdzKFBhZ2UqKTsKIApAQCAtNjYwLDkgKzMxMyw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAKLSAgICAgICAg
U3RyaW5nIG1fZGVmYXVsdFRleHRFbmNvZGluZ05hbWU7Ci0gICAgICAgIFN0cmluZyBtX2Z0cERp
cmVjdG9yeVRlbXBsYXRlUGF0aDsKLSAgICAgICAgU3RyaW5nIG1fbG9jYWxTdG9yYWdlRGF0YWJh
c2VQYXRoOwogICAgICAgICBTdHJpbmcgbV9tZWRpYVR5cGVPdmVycmlkZTsKICAgICAgICAgS1VS
TCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb247CiAgICAgICAgIFNjcmlwdEZvbnRGYW1pbHlNYXAg
bV9zdGFuZGFyZEZvbnRGYW1pbHlNYXA7CkBAIC02NzIsMjMgKzMyMiwxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIFNjcmlwdEZvbnRGYW1pbHlNYXAgbV9jdXJzaXZlRm9udEZhbWls
eU1hcDsKICAgICAgICAgU2NyaXB0Rm9udEZhbWlseU1hcCBtX2ZhbnRhc3lGb250RmFtaWx5TWFw
OwogICAgICAgICBTY3JpcHRGb250RmFtaWx5TWFwIG1fcGljdG9ncmFwaEZvbnRGYW1pbHlNYXA7
Ci0gICAgICAgIEVkaXRhYmxlTGlua0JlaGF2aW9yIG1fZWRpdGFibGVMaW5rQmVoYXZpb3I7Ci0g
ICAgICAgIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgbV90ZXh0RGlyZWN0
aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOwotICAgICAgICBkb3VibGUgbV9wYXNzd29yZEVj
aG9EdXJhdGlvbkluU2Vjb25kczsKICAgICAgICAgaW50IG1fbWluaW11bUZvbnRTaXplOwogICAg
ICAgICBpbnQgbV9taW5pbXVtTG9naWNhbEZvbnRTaXplOwogICAgICAgICBpbnQgbV9kZWZhdWx0
Rm9udFNpemU7CiAgICAgICAgIGludCBtX2RlZmF1bHRGaXhlZEZvbnRTaXplOwogICAgICAgICBi
b29sIG1fc2NyZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJsZWQ7Ci0gICAgICAgIGludCBtX3ZhbGlk
YXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uOwotICAgICAgICBpbnQgbV9taW5pbXVtQWNj
ZWxlcmF0ZWQyZENhbnZhc1NpemU7Ci0gICAgICAgIGludCBtX2xheW91dEZhbGxiYWNrV2lkdGg7
Ci0gICAgICAgIHNpemVfdCBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplOwotICAgICAgICBpbnQg
bV9kZXZpY2VXaWR0aDsKLSAgICAgICAgaW50IG1fZGV2aWNlSGVpZ2h0OwotICAgICAgICB1bnNp
Z25lZCBtX3Nlc3Npb25TdG9yYWdlUXVvdGE7Ci0gICAgICAgIHVuc2lnbmVkIG1fZWRpdGluZ0Jl
aGF2aW9yVHlwZTsKLSAgICAgICAgdW5zaWduZWQgbV9tYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVE
ZXB0aDsKICAgICAgICAgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0
b3JhZ2VCbG9ja2luZ1BvbGljeTsKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgICAg
ICBmbG9hdCBtX3RleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yOwpAQCAtNjk2LDU4ICszMzQs
MjYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fdGV4dEF1dG9zaXppbmdF
bmFibGVkIDogMTsKICNlbmRpZgogICAgICAgICBJbnRTaXplIG1fcmVzb2x1dGlvbkRlbnNpdHlQ
ZXJJbmNoT3ZlcnJpZGU7CisKKyAgICAgICAgU0VUVElOR1NfTUVNQkVSX1ZBUklBQkxFUworCiAg
ICAgICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7CiAgICAgICAgIGJv
b2wgbV9pc0phdmFFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWRGb3JM
b2NhbEZpbGVzIDogMTsKICAgICAgICAgYm9vbCBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseSA6
IDE7Ci0gICAgICAgIGJvb2wgbV9sb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0
dGluZyA6IDE7CiAgICAgICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkIDogMTsKLSAg
ICAgICAgYm9vbCBtX2NhcmV0QnJvd3NpbmdFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2Fy
ZUltYWdlc0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNNZWRpYUVuYWJsZWQgOiAxOwog
ICAgICAgICBib29sIG1fYXJlUGx1Z2luc0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fbG9j
YWxTdG9yYWdlRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc1NjcmlwdEVuYWJsZWQgOiAx
OwogICAgICAgICBib29sIG1faXNXZWJTZWN1cml0eUVuYWJsZWQgOiAxOwotICAgICAgICBib29s
IG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM6IDE7Ci0gICAgICAgIGJvb2wgbV9h
bGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHM6IDE7Ci0gICAgICAgIGJvb2wgbV9qYXZhU2NyaXB0
Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5IDogMTsKLSAgICAgICAgYm9vbCBtX3N1cHBvcnRz
TXVsdGlwbGVXaW5kb3dzIDogMTsKLSAgICAgICAgYm9vbCBtX2phdmFTY3JpcHRDYW5BY2Nlc3ND
bGlwYm9hcmQgOiAxOwotICAgICAgICBib29sIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyA6IDE7
CiAgICAgICAgIGJvb2wgbV90ZXh0QXJlYXNBcmVSZXNpemFibGUgOiAxOwotI2lmIEVOQUJMRShE
QVNIQk9BUkRfU1VQUE9SVCkKLSAgICAgICAgYm9vbCBtX3VzZXNEYXNoYm9hcmRCYWNrd2FyZENv
bXBhdGliaWxpdHlNb2RlIDogMTsKLSNlbmRpZgogICAgICAgICBib29sIG1fbmVlZHNBZG9iZUZy
YW1lUmVsb2FkaW5nUXVpcmsgOiAxOwotICAgICAgICBib29sIG1fbmVlZHNLZXlib2FyZEV2ZW50
RGlzYW1iaWd1YXRpb25RdWlya3MgOiAxOwotICAgICAgICBib29sIG1fdHJlYXRzQW55VGV4dENT
U0xpbmtBc1N0eWxlc2hlZXQgOiAxOwotICAgICAgICBib29sIG1fbmVlZHNMZW9wYXJkTWFpbFF1
aXJrcyA6IDE7CiAgICAgICAgIGJvb2wgbV9pc0RPTVBhc3RlQWxsb3dlZCA6IDE7Ci0gICAgICAg
IGJvb2wgbV9zaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0IDogMTsKICAgICAgICAgYm9vbCBt
X3VzZXNQYWdlQ2FjaGUgOiAxOwotICAgICAgICBib29sIG1fcGFnZUNhY2hlU3VwcG9ydHNQbHVn
aW5zIDogMTsKLSAgICAgICAgYm9vbCBtX3Nob3dzVVJMc0luVG9vbFRpcHMgOiAxOwotICAgICAg
ICBib29sIG1fc2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQgOiAxOwotICAgICAgICBib29s
IG1fZm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5ncyA6IDE7Ci0gICAgICAgIGJvb2wgbV9kZXZlbG9w
ZXJFeHRyYXNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2phdmFTY3JpcHRFeHBlcmltZW50
c0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQg
OiAxOwotICAgICAgICBib29sIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgOiAxOwogICAgICAg
ICB1bnNpZ25lZCBtX2ZvbnRSZW5kZXJpbmdNb2RlIDogMTsKLSAgICAgICAgYm9vbCBtX2ZyYW1l
RmxhdHRlbmluZ0VuYWJsZWQgOiAxOwotI2lmIEVOQUJMRShXRUJfQVJDSElWRSkKLSAgICAgICAg
Ym9vbCBtX3dlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkIDogMTsKLSNlbmRpZgotICAgICAgICBi
b29sIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wg
bV9pbkFwcGxpY2F0aW9uQ2hyb21lTW9kZSA6IDE7Ci0gICAgICAgIGJvb2wgbV9vZmZsaW5lV2Vi
QXBwbGljYXRpb25DYWNoZUVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fZW5mb3JjZUNTU01J
TUVUeXBlSW5Ob1F1aXJrc01vZGUgOiAxOwotICAgICAgICBib29sIG1fdXNlc0VuY29kaW5nRGV0
ZWN0b3IgOiAxOwotICAgICAgICBib29sIG1fYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MgOiAx
OwotICAgICAgICBib29sIG1fY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZyA6IDE7Ci0gICAg
ICAgIGJvb2wgbV9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBt
X2FjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNDU1NDdXN0
b21GaWx0ZXJFbmFibGVkIDogMTsKICNpZiBFTkFCTEUoQ1NTX1NUSUNLWV9QT1NJVElPTikKICAg
ICAgICAgYm9vbCBtX2Nzc1N0aWNreVBvc2l0aW9uRW5hYmxlZCA6IDE7CkBAIC03NTgsOTcgKzM2
NCwyNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCiAg
ICAgICAgIGJvb2wgbV9jc3NWYXJpYWJsZXNFbmFibGVkIDogMTsKICNlbmRpZgotICAgICAgICBi
b29sIG1fcmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9jc3NH
cmlkTGF5b3V0RW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9kb3dubG9hZGFibGVCaW5hcnlG
b250c0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1feHNzQXVkaXRvckVuYWJsZWQgOiAxOwog
ICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgOiAxOwotICAgICAg
ICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCA6
IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yM0RUcmFuc2Zvcm1z
RW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlk
ZW9FbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JQ
bHVnaW5zRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yQ2FudmFzRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENv
bXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkIDogMTsgLy8gV29y
a3Mgb25seSBpbiBjb25qdW5jdGlvbiB3aXRoIGZvcmNlQ29tcG9zaXRpbmdNb2RlCiAgICAgICAg
IGJvb2wgbV9zaG93RGVidWdCb3JkZXJzIDogMTsKICAgICAgICAgYm9vbCBtX3Nob3dSZXBhaW50
Q291bnRlciA6IDE7Ci0gICAgICAgIGJvb2wgbV9leHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5h
YmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV93ZWJHTEVuYWJsZWQgOiAxOwotICAgICAgICBib29s
IG1fd2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX29wZW5H
TE11bHRpc2FtcGxpbmdFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX3ByaXZpbGVnZWRXZWJH
TEV4dGVuc2lvbnNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX3dlYkF1ZGlvRW5hYmxlZCA6
IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENhbnZhczJkRW5hYmxlZCA6IDE7Ci0gICAg
ICAgIGJvb2wgbV9kZWZlcnJlZENhbnZhczJkRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9s
b2FkRGVmZXJyaW5nRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV90aWxlZEJhY2tpbmdTdG9y
ZUVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVk
IDogMTsKICAgICAgICAgYm9vbCBtX2Ruc1ByZWZldGNoaW5nRW5hYmxlZCA6IDE7Ci0jaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQotICAgICAgICBib29sIG1fZnVsbFNjcmVlbkFQSUVuYWJsZWQg
OiAxOwotI2VuZGlmCi0gICAgICAgIGJvb2wgbV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV91bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkIDogMTsK
LSAgICAgICAgYm9vbCBtX21lbW9yeUluZm9FbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX3F1
YW50aXplZE1lbW9yeUluZm9FbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2ludGVyYWN0aXZl
Rm9ybVZhbGlkYXRpb24gOiAxOwotICAgICAgICBib29sIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWly
a3MgOiAxOwotICAgICAgICBib29sIG1faHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkIDogMTsKLSAg
ICAgICAgYm9vbCBtX2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVk
IDogMTsKLSAgICAgICAgYm9vbCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlIDogMTsKLSAgICAgICAg
Ym9vbCBtX3Nob3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudCA6IDE7
Ci0gICAgICAgIGJvb2wgbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lIDogMTsK
LSAgICAgICAgYm9vbCBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50IDogMTsKLSAgICAg
ICAgYm9vbCBtX2FsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50IDogMTsKICNpZiBFTkFCTEUo
U01PT1RIX1NDUk9MTElORykKICAgICAgICAgYm9vbCBtX3Njcm9sbEFuaW1hdG9yRW5hYmxlZCA6
IDE7CiAjZW5kaWYKLSAgICAgICAgYm9vbCBtX21lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0
dXJlIDogMTsKLSAgICAgICAgYm9vbCBtX21lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUgOiAxOwot
ICAgICAgICBib29sIG1fcGFzc3dvcmRFY2hvRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9z
dXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcgOiAxOwotICAgICAgICBib29sIG1fYmFja3Nw
YWNlS2V5TmF2aWdhdGlvbkVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fdmlzdWFsV29yZE1v
dmVtZW50RW5hYmxlZCA6IDE7Ci0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgICAgIGJv
b2wgbV9zaG91bGREaXNwbGF5U3VidGl0bGVzIDogMTsKLSAgICAgICAgYm9vbCBtX3Nob3VsZERp
c3BsYXlDYXB0aW9ucyA6IDE7Ci0gICAgICAgIGJvb2wgbV9zaG91bGREaXNwbGF5VGV4dERlc2Ny
aXB0aW9ucyA6IDE7Ci0jZW5kaWYKLSAgICAgICAgYm9vbCBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9y
RW5hYmxlZCA6IDE7Ci0KLSAgICAgICAgYm9vbCBtX25vdGlmaWNhdGlvbnNFbmFibGVkIDogMTsK
LSAgICAgICAgYm9vbCBtX25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrIDogMTsKIAogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgICAgIGJvb2wgbV90b3VjaEV2ZW50RW11bGF0aW9u
RW5hYmxlZCA6IDE7CiAjZW5kaWYKLSAgICAgICAgYm9vbCBtX3Nob3VsZFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uIDogMTsKLSAgICAgICAgYm9vbCBtX3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2Fk
aW5nQmVoYXZpb3IgOiAxOwotICAgICAgICBib29sIG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5h
YmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9kZXZpY2VTdXBwb3J0c1RvdWNoIDogMTsKLSAgICAg
ICAgYm9vbCBtX2RldmljZVN1cHBvcnRzTW91c2UgOiAxOwotICAgICAgICBib29sIG1fbmVlZHNE
aWRGaW5pc2hMb2FkT3JkZXJRdWlyayA6IDE7Ci0KLSAgICAgICAgYm9vbCBtX2ZpeGVkUG9zaXRp
b25DcmVhdGVzU3RhY2tpbmdDb250ZXh0IDogMTsKLSAgICAgICAgYm9vbCBtX3N5bmNYSFJJbkRv
Y3VtZW50c0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fY29va2llRW5hYmxlZCA6IDE7Ci0K
LSAgICAgICAgYm9vbCBtX3dpbmRvd0ZvY3VzUmVzdHJpY3RlZCA6IDE7Ci0KLSAgICAgICAgYm9v
bCBtX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCA6IDE7Ci0KICAgICAgICAgYm9vbCBtX3Njcm9s
bGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQgOiAxOwogCi0gICAgICAgIGJvb2wgbV9hcHBs
eVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvciA6IDE7Ci0gICAgICAgIGJvb2wgbV9wbHVnSW5T
bmFwc2hvdHRpbmdFbmFibGVkIDogMTsKLQogICAgICAgICBUaW1lcjxTZXR0aW5ncz4gbV9zZXRJ
bWFnZUxvYWRpbmdTZXR0aW5nc1RpbWVyOwogICAgICAgICB2b2lkIGltYWdlTG9hZGluZ1NldHRp
bmdzVGltZXJGaXJlZChUaW1lcjxTZXR0aW5ncz4qKTsKIAotICAgICAgICBkb3VibGUgbV9pbmNy
ZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kczsKLQogICAgICAgICBz
dGF0aWMgZG91YmxlIGdEZWZhdWx0TWluRE9NVGltZXJJbnRlcnZhbDsKICAgICAgICAgc3RhdGlj
IGRvdWJsZSBnRGVmYXVsdERPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWw7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiOWQwMDlkZmYzNjFjMTg0NTAxNTk4ZGNlOTdjZDE1M2E5
YmJmYTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmlu
CkBAIC0wLDAgKzEsMTU2IEBACisjIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgZ2xvYmFsIHNldHRp
bmdzLgorIyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIGN1c3RvbSBnZXR0ZXJzL3NldHRlcnMuCisK
K2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1lIHR5cGU9U3RyaW5nCitmdHBEaXJlY3RvcnlUZW1wbGF0
ZVBhdGggdHlwZT1TdHJpbmcKK2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCB0eXBlPVN0cmluZwor
ZWRpdGFibGVMaW5rQmVoYXZpb3IgdHlwZT1FZGl0YWJsZUxpbmtCZWhhdmlvciwgaW5pdGlhbD1F
ZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3IKK3RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9u
QmVoYXZpb3IgdHlwZT1UZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLCBpbml0
aWFsPVRleHREaXJlY3Rpb25TdWJtZW51QXV0b21hdGljYWxseUluY2x1ZGVkCitwYXNzd29yZEVj
aG9EdXJhdGlvbkluU2Vjb25kcyB0eXBlPWRvdWJsZSwgaW5pdGlhbD0xCisKKyMgU2V0cyB0aGUg
bWFnbmlmaWNhdGlvbiB2YWx1ZSBmb3IgdmFsaWRhdGlvbiBtZXNzYWdlIHRpbWVyLiAgSWYgdGhl
CisjIG1hZ25pZmljYXRpb24gdmFsdWUgaXMgTiwgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgZGlzYXBw
ZWFycyBhdXRvbWF0aWNhbGx5IGFmdGVyCisjIDxtZXNzYWdlIGxlbmd0aD4gKiBOIC8gMTAwMCBz
ZWNvbmRzLiAgSWYgTiBpcyBlcXVhbCB0byBvciBsZXNzIHRoYW4gMCwgYQorIyB2YWxpZGF0aW9u
IG1lc3NhZ2UgZG9lc24ndCBkaXNhcHBlYXJzIGF1dG9tYXRpY2FseS4KK3ZhbGlkYXRpb25NZXNz
YWdlVGltZXJNYWduaWZpY2F0aW9uIHR5cGU9aW50LCBpbml0aWFsPTUwCisKKyMgTnVtYmVyIG9m
IHBpeGVscyBiZWxvdyB3aGljaCAyRCBjYW52YXMgaXMgcmVuZGVyZWQgaW4gc29mdHdhcmUKKyMg
ZXZlbiBpZiBoYXJkd2FyZSBhY2NlbGVyYXRpb24gaXMgZW5hYmxlZC4KKyMgSGFyZHdhcmUgYWNj
ZWxlcmF0aW9uIGlzIHVzZWZ1bCBmb3IgbGFyZ2UgY2FudmFzZXMgd2hlcmUgaXQgY2FuIGF2b2lk
IHRoZQorIyBwaXhlbCBiYW5kd2lkdGggYmV0d2VlbiB0aGUgQ1BVIGFuZCBHUFUuIEJ1dCBHUFUg
YWNjZWxlcmF0aW9uIGNvbWVzIGF0CisjIGEgcHJpY2UgLSBleHRyYSBiYWNrLWJ1ZmZlciBhbmQg
dGV4dHVyZSBjb3B5LiBTbWFsbCBjYW52YXNlcyBhcmUgYWxzbworIyB3aWRlbHkgdXNlZCBmb3Ig
c3R5bGl6ZWQgZm9udHMuIEFudGktYWxpYXNpbmcgdGV4dCBpbiBoYXJkd2FyZSBhdCB0aGF0Cisj
IHNjYWxlIGlzIGdlbmVyYWxseSBzbG93ZXIuIFNvIGJlbG93IGEgY2VydGFpbiBzaXplIGl0IGlz
IGJldHRlciB0bworIyBkcmF3IGNhbnZhcyBpbiBzb2Z0d2FyZS4KK21pbmltdW1BY2NlbGVyYXRl
ZDJkQ2FudmFzU2l6ZSB0eXBlPWludCwgaW5pdGlhbD0yNTcqMjU2CisKK2xheW91dEZhbGxiYWNr
V2lkdGggdHlwZT1pbnQsIGluaXRpYWw9OTgwCittYXhpbXVtRGVjb2RlZEltYWdlU2l6ZSB0eXBl
PXNpemVfdCwgaW5pdGlhbD1udW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKQorZGV2aWNlV2lk
dGggdHlwZT1pbnQsIGluaXRpYWw9MAorZGV2aWNlSGVpZ2h0IHR5cGU9aW50LCBpbml0aWFsPTAK
KworIyBBbGxvdyBjbGllbnRzIGNvbmNlcm5lZCB3aXRoIG1lbW9yeSBjb25zdW1wdGlvbiB0byBz
ZXQgYSBxdW90YSBvbiBzZXNzaW9uIHN0b3JhZ2UKKyMgc2luY2UgdGhlIG1lbW9yeSB1c2VkIHdv
bid0IGJlIHJlbGVhc2VkIHVudGlsIHRoZSBQYWdlIGlzIGRlc3Ryb3llZC4KK3Nlc3Npb25TdG9y
YWdlUXVvdGEgdHlwZT11bnNpZ25lZCwgaW5pdGlhbD1TdG9yYWdlTWFwOjpub1F1b3RhCisKK2Vk
aXRpbmdCZWhhdmlvclR5cGUgdHlwZT1FZGl0aW5nQmVoYXZpb3JUeXBlLCBpbml0aWFsPWVkaXRp
bmdCZWhhdmlvclR5cGVGb3JQbGF0Zm9ybSgpCittYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0
aCB0eXBlPXVuc2lnbmVkLCBpbml0aWFsPWRlZmF1bHRNYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVE
ZXB0aAorCisjIFRoaXMgc2V0dGluZyBvbmx5IGFmZmVjdHMgc2l0ZSBpY29uIGltYWdlIGxvYWRp
bmcgaWYgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcgaXMgZmFsc2UgYW5kIHRoaXMg
c2V0dGluZyBpcyB0cnVlLgorIyBBbGwgb3RoZXIgcGVybXV0YXRpb25zIHN0aWxsIGhlZWQgbG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcuCitsb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1h
Z2VMb2FkaW5nU2V0dGluZyBpbml0aWFsPWZhbHNlCisKK2NhcmV0QnJvd3NpbmdFbmFibGVkIGlu
aXRpYWw9ZmFsc2UKK2xvY2FsU3RvcmFnZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQorYWxsb3dVbml2
ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMgaW5pdGlhbD10cnVlCithbGxvd0ZpbGVBY2Nlc3NGcm9t
RmlsZVVSTHMgaW5pdGlhbD10cnVlCitqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNh
bGx5IGluaXRpYWw9ZmFsc2UKK3N1cHBvcnRzTXVsdGlwbGVXaW5kb3dzIGluaXRpYWw9dHJ1ZQor
amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCBpbml0aWFsPWZhbHNlCitzaG91bGRQcmludEJh
Y2tncm91bmRzIGluaXRpYWw9ZmFsc2UKK3VzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxp
dHlNb2RlIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPURBU0hCT0FSRF9TVVBQT1JUCisKKyMg
VGhpcyBpcyBhIHF1aXJrIHdlIGFyZSBwcm8tYWN0aXZlbHkgYXBwbHlpbmcgdG8gb2xkIGFwcGxp
Y2F0aW9ucy4gSXQgY2hhbmdlcyBrZXlib2FyZCBldmVudCBkaXNwYXRjaGluZywKKyMgbWFraW5n
IGtleUlkZW50aWZpZXIgYXZhaWxhYmxlIG9uIGtleXByZXNzIGV2ZW50cywgbWFraW5nIGNoYXJD
b2RlIGF2YWlsYWJsZSBvbiBrZXlkb3duL2tleXVwIGV2ZW50cywKKyMgYW5kIGdldHRpbmcga2V5
cHJlc3MgZGlzcGF0Y2hlZCBpbiBtb3JlIGNhc2VzLgorbmVlZHNLZXlib2FyZEV2ZW50RGlzYW1i
aWd1YXRpb25RdWlya3MgaW5pdGlhbD1mYWxzZQorCit0cmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5
bGVzaGVldCBpbml0aWFsPWZhbHNlCituZWVkc0xlb3BhcmRNYWlsUXVpcmtzIGluaXRpYWw9ZmFs
c2UKK3Nocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQgaW5pdGlhbD10cnVlCitwYWdlQ2FjaGVT
dXBwb3J0c1BsdWdpbnMgaW5pdGlhbD1mYWxzZQorc2hvd3NVUkxzSW5Ub29sVGlwcyBpbml0aWFs
PWZhbHNlCitzaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCBpbml0aWFsPWZhbHNlCitmb3Jj
ZUZUUERpcmVjdG9yeUxpc3RpbmdzIGluaXRpYWw9ZmFsc2UKK2RldmVsb3BlckV4dHJhc0VuYWJs
ZWQgaW5pdGlhbD1mYWxzZQoramF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZCBpbml0aWFsPWZh
bHNlCituZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyBpbml0aWFsPWZhbHNlCit3ZWJBcmNoaXZlRGVi
dWdNb2RlRW5hYmxlZCBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1XRUJfQVJDSElWRQorbG9j
YWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlCitvZmZsaW5lV2ViQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQorZW5mb3JjZUNTU01JTUVUeXBlSW5O
b1F1aXJrc01vZGUgaW5pdGlhbD10cnVlCit1c2VzRW5jb2RpbmdEZXRlY3RvciBpbml0aWFsPWZh
bHNlCithbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cyBpbml0aWFsPWZhbHNlCitjYW52YXNVc2Vz
QWNjZWxlcmF0ZWREcmF3aW5nIGluaXRpYWw9ZmFsc2UKK2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJs
ZWQgaW5pdGlhbD1mYWxzZQorYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCBpbml0aWFsPWZhbHNl
CityZWdpb25CYXNlZENvbHVtbnNFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2Nzc0dyaWRMYXlvdXRF
bmFibGVkIGluaXRpYWw9ZmFsc2UKKworIyBGSVhNRTogVGhpcyBzaG91bGQgcmVhbGx5IGJlIGRp
c2FibGVkIGJ5IGRlZmF1bHQgYXMgaXQgbWFrZXMgcGxhdGZvcm1zIHRoYXQgZG9uJ3Qgc3VwcG9y
dCB0aGUgZmVhdHVyZSBkb3dubG9hZCBmaWxlcworIyB0aGV5IGNhbid0IHVzZSBieS4gTGVhdmlu
ZyBlbmFibGVkIGZvciBub3cgdG8gbm90IGNoYW5nZSBleGlzdGluZyBiZWhhdmlvci4KK2Rvd25s
b2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCBpbml0aWFsPXRydWUKKworeHNzQXVkaXRvckVuYWJs
ZWQgaW5pdGlhbD1mYWxzZQorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0Vu
YWJsZWQgaW5pdGlhbD10cnVlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVk
IGluaXRpYWw9dHJ1ZQorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkIGlu
aXRpYWw9dHJ1ZQorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQgaW5pdGlh
bD10cnVlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCBpbml0aWFs
PXRydWUKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZCBpbml0
aWFsPWZhbHNlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVk
IGluaXRpYWw9ZmFsc2UKKworIyBXb3JrcyBvbmx5IGluIGNvbmp1bmN0aW9uIHdpdGggZm9yY2VD
b21wb3NpdGluZ01vZGUuCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1l
c0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorCitleHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCit3ZWJHTEVuYWJsZWQgaW5pdGlhbD1mYWxzZQord2ViR0xFcnJvcnNU
b0NvbnNvbGVFbmFibGVkIGluaXRpYWw9ZmFsc2UKK29wZW5HTE11bHRpc2FtcGxpbmdFbmFibGVk
IGluaXRpYWw9dHJ1ZQorcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQgaW5pdGlhbD1m
YWxzZQorYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorZGVmZXJyZWQy
ZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorbG9hZERlZmVycmluZ0VuYWJsZWQgaW5pdGlh
bD10cnVlCit3ZWJBdWRpb0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorcGFnaW5hdGVEdXJpbmdMYXlv
dXRFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2Z1bGxTY3JlZW5FbmFibGVkIGluaXRpYWw9ZmFsc2Us
IGNvbmRpdGlvbmFsPUZVTExTQ1JFRU5fQVBJCithc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZCBpbml0aWFsPWZhbHNlCittZW1vcnlJbmZvRW5hYmxlZCBpbml0aWFsPWZhbHNlCitxdWFu
dGl6ZWRNZW1vcnlJbmZvRW5hYmxlZCBpbml0aWFsPWZhbHNlCisKKyMgVGhpcyBmZWF0dXJlIHJl
cXVpcmVzIGFuIGltcGxlbWVudGF0aW9uIG9mIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LgoraW50
ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQgaW5pdGlhbD1mYWxzZQorCit1c2VQcmVIVE1M
NVBhcnNlclF1aXJrcyBpbml0aWFsPWZhbHNlCitoeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQgaW5p
dGlhbD1mYWxzZQorY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQg
aW5pdGlhbD1mYWxzZQorZm9yY2VDb21wb3NpdGluZ01vZGUgaW5pdGlhbD1mYWxzZQorc2hvdWxk
SW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50IGluaXRpYWw9ZmFsc2UKK2Zp
eGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUgaW5pdGlhbD1mYWxzZQorYWxsb3dEaXNw
bGF5T2ZJbnNlY3VyZUNvbnRlbnQgaW5pdGlhbD10cnVlCithbGxvd1J1bm5pbmdPZkluc2VjdXJl
Q29udGVudCBpbml0aWFsPXRydWUKK21lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlIGlu
aXRpYWw9ZmFsc2UKK21lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUgaW5pdGlhbD10cnVlCitwYXNz
d29yZEVjaG9FbmFibGVkIGluaXRpYWw9ZmFsc2UKK3N1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRl
cmluZyBpbml0aWFsPWZhbHNlCitpbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91
dEluU2Vjb25kcyB0eXBlPWRvdWJsZSwgaW5pdGlhbD1kZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJp
bmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMKK2JhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFi
bGVkIGluaXRpYWw9dHJ1ZQordmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZCBpbml0aWFsPWZhbHNl
CitzaG91bGREaXNwbGF5U3VidGl0bGVzIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPVZJREVP
X1RSQUNLCitzaG91bGREaXNwbGF5Q2FwdGlvbnMgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9
VklERU9fVFJBQ0sKK3Nob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zIGluaXRpYWw9ZmFsc2Us
IGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCitzY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQgaW5p
dGlhbD1mYWxzZQorbm90aWZpY2F0aW9uc0VuYWJsZWQgaW5pdGlhbD10cnVlCisKKyMgU29tZSBh
cHBzIG5lZWRzIGlzTG9hZGluZ0luQVBJU2Vuc2UgdG8gYWNjb3VudCBmb3IgYWN0aXZlIHN1YnJl
c291cmNlIGxvYWRlcnMuCituZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyayBpbml0aWFsPWZh
bHNlCisKK3Nob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIGluaXRpYWw9ZmFsc2UKK3dhbnRz
QmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IgaW5pdGlhbD1mYWxzZQorcmVxdWVzdEFu
aW1hdGlvbkZyYW1lRW5hYmxlZCBpbml0aWFsPXRydWUKK2RldmljZVN1cHBvcnRzVG91Y2ggaW5p
dGlhbD1mYWxzZQorZGV2aWNlU3VwcG9ydHNNb3VzZSBpbml0aWFsPXRydWUKK25lZWRzRGlkRmlu
aXNoTG9hZE9yZGVyUXVpcmsgaW5pdGlhbD1mYWxzZQorZml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFj
a2luZ0NvbnRleHQgaW5pdGlhbD1mYWxzZQorc3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZCBpbml0
aWFsPXRydWUKK2Nvb2tpZUVuYWJsZWQgaW5pdGlhbD10cnVlCisKKyMgV2hlbiBlbmFibGVkLCB3
aW5kb3cuYmx1cigpIGRvZXMgbm90IGNoYW5nZSBmb2N1cywgYW5kCisjIHdpbmRvdy5mb2N1cygp
IG9ubHkgY2hhbmdlcyBmb2N1cyB3aGVuIGludm9rZWQgZnJvbSB0aGUgY29udGV4dCB0aGF0Cisj
IGNyZWF0ZWQgdGhlIHdpbmRvdy4KK3dpbmRvd0ZvY3VzUmVzdHJpY3RlZCBpbml0aWFsPXRydWUK
KworZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2FwcGx5UGFnZVNjYWxl
RmFjdG9ySW5Db21wb3NpdG9yIGluaXRpYWw9ZmFsc2UKK3BsdWdJblNuYXBzaG90dGluZ0VuYWJs
ZWQgaW5pdGlhbD1mYWxzZQorZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21ha2Vfc2V0dGluZ3MucGwgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21ha2Vfc2V0dGluZ3MucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThjODIwYjYyNzhjYThm
MWIyMjczMWRiMjRjOWU5OTAwODZiZGY5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbApAQCAtMCwwICsxLDI1NSBAQAorIyEvdXNyL2Jpbi9w
ZXJsIC13CisKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFkYW0gQmFydGggPGFiYXJ0aEB3ZWJraXQu
b3JnPgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSwgSU5DLiBgQVMg
SVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCit1c2Ugc3RyaWN0OworCit1c2UgSW5G
aWxlc0NvbXBpbGVyOworCitteSAlZGVmYXVsdFBhcmFtZXRlcnMgPSAoCispOworCitzdWIgZGVm
YXVsdEl0ZW1GYWN0b3J5Cit7CisgICAgcmV0dXJuICgKKyAgICAgICAgJ2NvbmRpdGlvbmFsJyA9
PiAwLAorICAgICAgICAnaW5pdGlhbCcgPT4gJycsCisgICAgICAgICd0eXBlJyA9PiAnYm9vbCcK
KyAgICApOworfQorCitteSAkSW5Db21waWxlciA9IEluRmlsZXNDb21waWxlci0+bmV3KFwlZGVm
YXVsdFBhcmFtZXRlcnMsIFwmZGVmYXVsdEl0ZW1GYWN0b3J5KTsKKworbXkgJG91dHB1dERpciA9
ICRJbkNvbXBpbGVyLT5pbml0aWFsaXplRnJvbUNvbW1hbmRMaW5lKCk7CiskSW5Db21waWxlci0+
Y29tcGlsZShcJmdlbmVyYXRlQ29kZSk7CisKK3N1YiBnZW5lcmF0ZUNvZGUoKQoreworICAgIG15
ICRwYXJzZWRQYXJhbWV0ZXJzUmVmID0gc2hpZnQ7CisgICAgbXkgJHBhcnNlZEl0ZW1zUmVmID0g
c2hpZnQ7CisKKyAgICBnZW5lcmF0ZUhlYWRlcigkcGFyc2VkSXRlbXNSZWYpOworfQorCitzdWIg
Z2VuZXJhdGVIZWFkZXIoJCkKK3sKKyAgICBteSAkcGFyc2VkSXRlbXNSZWYgPSBzaGlmdDsKKwor
ICAgIG15ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworICAgIG15ICRvdXRw
dXRGaWxlID0gIiRvdXRwdXREaXIvU2V0dGluZ3NNYWNyb3MuaCI7CisKKyAgICBteSAldW5jb25k
aXRpb25hbFNldHRpbmdzID0gKCk7CisgICAgbXkgJXNldHRpbmdzQnlDb25kaXRpb25hbCA9ICgp
OworCisgICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICVwYXJzZWRJdGVtcykgewor
ICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsiY29u
ZGl0aW9uYWwifTsKKworICAgICAgICBpZiAoJGNvbmRpdGlvbmFsKSB7CisgICAgICAgICAgICBp
ZiAoIWRlZmluZWQoJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9KSkgeworICAg
ICAgICAgICAgICAgICRzZXR0aW5nc0J5Q29uZGl0aW9uYWx7JGNvbmRpdGlvbmFsfSA9ICgpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0
aW9uYWx9eyRzZXR0aW5nTmFtZX0gPSAxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
JHVuY29uZGl0aW9uYWxTZXR0aW5nc3skc2V0dGluZ05hbWV9ID0gMTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIG9wZW4gbXkgJGZpbGUsICI+JG91dHB1dEZpbGUiIG9yIGRpZSAiRmFpbGVkIHRv
IG9wZW4gZmlsZTogJCEiOworCisgICAgcHJpbnQgJGZpbGUgJEluQ29tcGlsZXItPmxpY2Vuc2Uo
KTsKKworICAgICMgRklYTUU6IFNvcnQgYnkgdHlwZSBzbyBib29scyBjb21lIGxhc3QgYW5kIGFy
ZSBiaXQgcGFja2VkLgorCisgICAgcHJpbnQgJGZpbGUgIiNpZm5kZWYgU2V0dGluZ3NNYWNyb3Nf
aFxuIjsKKyAgICBwcmludCAkZmlsZSAiI2RlZmluZSBTZXR0aW5nc01hY3Jvc19oXG5cbiI7CisK
KyAgICBwcmludENvbmRpdGlvbmFsTWFjcm9zKCRmaWxlLCBcJXNldHRpbmdzQnlDb25kaXRpb25h
bCwgJHBhcnNlZEl0ZW1zUmVmKTsKKworICAgIHByaW50R2V0dGVyc0FuZFNldHRlcnMoJGZpbGUs
IFwldW5jb25kaXRpb25hbFNldHRpbmdzLCBcJXNldHRpbmdzQnlDb25kaXRpb25hbCwgJHBhcnNl
ZEl0ZW1zUmVmKTsKKyAgICBwcmludE1lbWJlclZhcmlhYmxlcygkZmlsZSwgXCV1bmNvbmRpdGlv
bmFsU2V0dGluZ3MsIFwlc2V0dGluZ3NCeUNvbmRpdGlvbmFsLCAkcGFyc2VkSXRlbXNSZWYpOwor
ICAgIHByaW50SW5pdGlhbGl6ZXJMaXN0KCRmaWxlLCBcJXVuY29uZGl0aW9uYWxTZXR0aW5ncywg
XCVzZXR0aW5nc0J5Q29uZGl0aW9uYWwsICRwYXJzZWRJdGVtc1JlZik7CisKKyAgICBwcmludCAk
ZmlsZSAiI2VuZGlmIC8vIFNldHRpbmdzTWFjcm9zX2hcbiI7CisKKyAgICBjbG9zZSAkZmlsZTsK
K30KKworc3ViIHByaW50Q29uZGl0aW9uYWxNYWNyb3MoJCQkKQoreworICAgIG15ICgkZmlsZSwg
JHNldHRpbmdzQnlDb25kaXRpb25hbFJlZiwgJHBhcnNlZEl0ZW1zUmVmKSA9IEBfOworICAgIG15
ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworICAgIG15ICVzZXR0aW5nc0J5
Q29uZGl0aW9uYWwgPSAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFsUmVmIH07CisKKyAgICBmb3Ig
bXkgJGNvbmRpdGlvbmFsIChzb3J0IGtleXMgJXNldHRpbmdzQnlDb25kaXRpb25hbCkgeworICAg
ICAgICBteSAkcHJlZmVycmVkQ29uZGl0aW9uYWwgPSAkSW5Db21waWxlci0+cHJlZmVycmVkQ29u
ZGl0aW9uYWwoJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNpZiAiIC4gJElu
Q29tcGlsZXItPmNvbmRpdGlvbmFsU3RyaW5nRnJvbUF0dHJpYnV0ZVZhbHVlKCRjb25kaXRpb25h
bCkgLiAiXG4iOworCisgICAgICAgIHByaW50ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29u
ZGl0aW9uYWx9X1NFVFRJTkdTX0dFVFRFUl9BTkRfU0VUVEVSUyBcXFxuIjsKKyAgICAgICAgZm9y
IG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWx7JGNv
bmRpdGlvbmFsfSB9KSB7CisgICAgICAgICAgICBwcmludEdldHRlckFuZFNldHRlcigkZmlsZSwg
JHNldHRpbmdOYW1lLCAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9KTsKKyAgICAg
ICAgfQorICAgICAgICBwcmludCAkZmlsZSAiLy8gRW5kIG9mICR7cHJlZmVycmVkQ29uZGl0aW9u
YWx9X1NFVFRJTkdTX0dFVFRFUl9BTkRfU0VUVEVSU1xuIjsKKworICAgICAgICBwcmludCAkZmls
ZSAiI2RlZmluZSAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19OT05fQk9PTF9NRU1C
RVJfVkFSSUFCTEVTIFxcXG4iOworICAgICAgICBmb3IgbXkgJHNldHRpbmdOYW1lIChzb3J0IGtl
eXMgJXsgJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9IH0pIHsKKyAgICAgICAg
ICAgIG15ICR0eXBlID0gJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifTsKKyAgICAg
ICAgICAgIG5leHQgaWYgJHR5cGUgZXEgImJvb2wiOworICAgICAgICAgICAgcHJpbnQgJGZpbGUg
IiAgICAkdHlwZSBtXyRzZXR0aW5nTmFtZTsgXFxcbiIKKyAgICAgICAgfQorICAgICAgICBwcmlu
dCAkZmlsZSAiLy8gRW5kIG9mICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX05PTl9C
T09MX01FTUJFUl9WQVJJQUJMRVNcbiI7CisKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUg
JHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfQk9PTF9NRU1CRVJfVkFSSUFCTEVTIFxc
XG4iOworICAgICAgICBmb3IgbXkgJHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXsgJHNldHRpbmdz
QnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9IH0pIHsKKyAgICAgICAgICAgIG5leHQgaWYgJHBh
cnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifSBuZSAiYm9vbCI7CisgICAgICAgICAgICBw
cmludCAkZmlsZSAiICAgIGJvb2wgbV8kc2V0dGluZ05hbWUgOiAxOyBcXFxuIgorICAgICAgICB9
CisgICAgICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1f
U0VUVElOR1NfQk9PTF9NRU1CRVJfVkFSSUFCTEVTXG4iOworCisgICAgICAgIHByaW50ICRmaWxl
ICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX05PTl9CT09MX0lOSVRJ
QUxJWkVSUyBcXFxuIjsKKyAgICAgICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV7
ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWx7JGNvbmRpdGlvbmFsfSB9KSB7CisgICAgICAgICAgICBu
ZXh0IGlmICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0gZXEgImJvb2wiOworICAg
ICAgICAgICAgcHJpbnRJbml0aWFsaXplcigkZmlsZSwgJHNldHRpbmdOYW1lLCAkcGFyc2VkSXRl
bXNSZWYpOworICAgICAgICB9CisgICAgICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgJHtwcmVm
ZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfTk9OX0JPT0xfSU5JVElBTElaRVJTXG4iOworCisg
ICAgICAgIHByaW50ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJ
TkdTX0JPT0xfSU5JVElBTElaRVJTIFxcXG4iOworICAgICAgICBmb3IgbXkgJHNldHRpbmdOYW1l
IChzb3J0IGtleXMgJXsgJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9IH0pIHsK
KyAgICAgICAgICAgIG5leHQgaWYgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifSBu
ZSAiYm9vbCI7CisgICAgICAgICAgICBwcmludEluaXRpYWxpemVyKCRmaWxlLCAkc2V0dGluZ05h
bWUsICRwYXJzZWRJdGVtc1JlZik7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgJGZpbGUgIi8v
IEVuZCBvZiAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19CT09MX0lOSVRJQUxJWkVS
U1xuIjsKKworICAgICAgICBwcmludCAkZmlsZSAiI2Vsc2VcbiI7CisgICAgICAgIHByaW50ICRm
aWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0dFVFRFUl9BTkRf
U0VUVEVSU1xuIjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25k
aXRpb25hbH1fU0VUVElOR1NfTk9OX0JPT0xfTUVNQkVSX1ZBUklBQkxFU1xuIjsKKyAgICAgICAg
cHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfQk9P
TF9NRU1CRVJfVkFSSUFCTEVTXG4iOworICAgICAgICBwcmludCAkZmlsZSAiI2RlZmluZSAke3By
ZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19OT05fQk9PTF9JTklUSUFMSVpFUlNcbiI7Cisg
ICAgICAgIHByaW50ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJ
TkdTX0JPT0xfSU5JVElBTElaRVJTXG4iOworICAgICAgICBwcmludCAkZmlsZSAiI2VuZGlmXG4i
OworICAgICAgICBwcmludCAkZmlsZSAiXG4iOworICAgIH0KK30KKworc3ViIHByaW50R2V0dGVy
c0FuZFNldHRlcnMoJCQkJCkKK3sKKyAgICBteSAoJGZpbGUsICR1bmNvbmRpdGlvbmFsU2V0dGlu
Z3NSZWYsICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxSZWYsICRwYXJzZWRJdGVtc1JlZikgPSBAXzsK
KyAgICBteSAlcGFyc2VkSXRlbXMgPSAleyAkcGFyc2VkSXRlbXNSZWYgfTsKKyAgICBteSAldW5j
b25kaXRpb25hbFNldHRpbmdzID0gJXsgJHVuY29uZGl0aW9uYWxTZXR0aW5nc1JlZiB9OworICAg
IG15ICVzZXR0aW5nc0J5Q29uZGl0aW9uYWwgPSAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFsUmVm
IH07CisKKyAgICBwcmludCAkZmlsZSAiI2RlZmluZSBTRVRUSU5HU19HRVRURVJTX0FORF9TRVRU
RVJTIFxcXG4iOworICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5cyAldW5jb25kaXRp
b25hbFNldHRpbmdzKSB7CisgICAgICAgIHByaW50R2V0dGVyQW5kU2V0dGVyKCRmaWxlLCAkc2V0
dGluZ05hbWUsICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0pOworICAgIH0KKyAg
ICBmb3IgbXkgJGNvbmRpdGlvbmFsIChzb3J0IGtleXMgJXNldHRpbmdzQnlDb25kaXRpb25hbCkg
eworICAgICAgICBteSAkcHJlZmVycmVkQ29uZGl0aW9uYWwgPSAkSW5Db21waWxlci0+cHJlZmVy
cmVkQ29uZGl0aW9uYWwoJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICAk
e3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19HRVRURVJfQU5EX1NFVFRFUlMgXFxcbiI7
CisgICAgfQorICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgU0VUVElOR1NfR0VUVEVSU19BTkRf
U0VUVEVSUy5cblxuIjsKK30KKworc3ViIHByaW50TWVtYmVyVmFyaWFibGVzKCQkJCQpCit7Cisg
ICAgbXkgKCRmaWxlLCAkdW5jb25kaXRpb25hbFNldHRpbmdzUmVmLCAkc2V0dGluZ3NCeUNvbmRp
dGlvbmFsUmVmLCAkcGFyc2VkSXRlbXNSZWYpID0gQF87CisgICAgbXkgJXBhcnNlZEl0ZW1zID0g
JXsgJHBhcnNlZEl0ZW1zUmVmIH07CisgICAgbXkgJXVuY29uZGl0aW9uYWxTZXR0aW5ncyA9ICV7
ICR1bmNvbmRpdGlvbmFsU2V0dGluZ3NSZWYgfTsKKyAgICBteSAlc2V0dGluZ3NCeUNvbmRpdGlv
bmFsID0gJXsgJHNldHRpbmdzQnlDb25kaXRpb25hbFJlZiB9OworCisgICAgcHJpbnQgJGZpbGUg
IiNkZWZpbmUgU0VUVElOR1NfTUVNQkVSX1ZBUklBQkxFUyBcXFxuIjsKKyAgICAjIFdlIGxpc3Qg
dGhlIGJvb2xzIGxhc3Qgc28gd2UgY2FuIGJpdCBwYWNrIHRoZW0uCisgICAgZm9yIG15ICRzZXR0
aW5nTmFtZSAoc29ydCBrZXlzICV1bmNvbmRpdGlvbmFsU2V0dGluZ3MpIHsKKyAgICAgICAgbXkg
JHR5cGUgPSAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9OworICAgICAgICBuZXh0
IGlmICR0eXBlIGVxICJib29sIjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICAkdHlwZSBtXyRz
ZXR0aW5nTmFtZTsgXFxcbiIKKyAgICB9CisgICAgZm9yIG15ICRjb25kaXRpb25hbCAoc29ydCBr
ZXlzICVzZXR0aW5nc0J5Q29uZGl0aW9uYWwpIHsKKyAgICAgICAgbXkgJHByZWZlcnJlZENvbmRp
dGlvbmFsID0gJEluQ29tcGlsZXItPnByZWZlcnJlZENvbmRpdGlvbmFsKCRjb25kaXRpb25hbCk7
CisgICAgICAgIHByaW50ICRmaWxlICIgICAgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElO
R1NfTk9OX0JPT0xfTUVNQkVSX1ZBUklBQkxFUyBcXFxuIjsKKyAgICB9CisgICAgZm9yIG15ICRz
ZXR0aW5nTmFtZSAoc29ydCBrZXlzICV1bmNvbmRpdGlvbmFsU2V0dGluZ3MpIHsKKyAgICAgICAg
bmV4dCBpZiAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9IG5lICJib29sIjsKKyAg
ICAgICAgcHJpbnQgJGZpbGUgIiAgICBib29sIG1fJHNldHRpbmdOYW1lIDogMTsgXFxcbiIKKyAg
ICB9CisgICAgZm9yIG15ICRjb25kaXRpb25hbCAoc29ydCBrZXlzICVzZXR0aW5nc0J5Q29uZGl0
aW9uYWwpIHsKKyAgICAgICAgbXkgJHByZWZlcnJlZENvbmRpdGlvbmFsID0gJEluQ29tcGlsZXIt
PnByZWZlcnJlZENvbmRpdGlvbmFsKCRjb25kaXRpb25hbCk7CisgICAgICAgIHByaW50ICRmaWxl
ICIgICAgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfQk9PTF9NRU1CRVJfVkFSSUFC
TEVTIFxcXG4iOworICAgIH0KKyAgICBwcmludCAkZmlsZSAiLy8gRW5kIG9mIFNFVFRJTkdTX01F
TUJFUl9WQVJJQUJMRVMuXG5cbiI7Cit9CisKK3N1YiBwcmludEdldHRlckFuZFNldHRlcigkJCQp
Cit7CisgICAgbXkgKCRmaWxlLCAkc2V0dGluZ05hbWUsICR0eXBlKSA9IEBfOworICAgIG15ICRz
ZXR0ZXJGdW5jdGlvbk5hbWUgPSAic2V0IiAuICRzZXR0aW5nTmFtZTsKKyAgICBzdWJzdHIoJHNl
dHRlckZ1bmN0aW9uTmFtZSwgMywgMSkgPSB1YyhzdWJzdHIoJHNldHRlckZ1bmN0aW9uTmFtZSwg
MywgMSkpOworICAgIGlmIChzdWJzdHIoJHNldHRpbmdOYW1lLCAwLCAzKSBlcSAiY3NzIiB8fCBz
dWJzdHIoJHNldHRpbmdOYW1lLCAwLCAzKSBlcSAieHNzIiB8fCBzdWJzdHIoJHNldHRpbmdOYW1l
LCAwLCAzKSBlcSAiZnRwIikgeworICAgICAgICBzdWJzdHIoJHNldHRlckZ1bmN0aW9uTmFtZSwg
MywgMykgPSB1YyhzdWJzdHIoJHNldHRlckZ1bmN0aW9uTmFtZSwgMywgMykpOworICAgIH0KKyAg
ICBpZiAobGMoc3Vic3RyKCR0eXBlLCAwLCAxKSkgZXEgc3Vic3RyKCR0eXBlLCAwLCAxKSkgewor
ICAgICAgICBwcmludCAkZmlsZSAiICAgICR0eXBlICRzZXR0aW5nTmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fJHNldHRpbmdOYW1lOyB9IFxcXG4iOworICAgICAgICBwcmludCAkZmlsZSAiICAgIHZv
aWQgJHNldHRlckZ1bmN0aW9uTmFtZSgkdHlwZSAkc2V0dGluZ05hbWUpIHsgbV8kc2V0dGluZ05h
bWUgPSAkc2V0dGluZ05hbWU7IH0gXFxcbiI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHJpbnQg
JGZpbGUgIiAgICBjb25zdCAkdHlwZSYgJHNldHRpbmdOYW1lKCkgeyByZXR1cm4gbV8kc2V0dGlu
Z05hbWU7IH0gXFxcbiI7CisgICAgICAgIHByaW50ICRmaWxlICIgICAgdm9pZCAkc2V0dGVyRnVu
Y3Rpb25OYW1lKGNvbnN0ICR0eXBlJiAkc2V0dGluZ05hbWUpIHsgbV8kc2V0dGluZ05hbWUgPSAk
c2V0dGluZ05hbWU7IH0gXFxcbiI7CisgICAgfQorfQorCitzdWIgcHJpbnRJbml0aWFsaXplckxp
c3QoJCQkJCkKK3sKKyAgICBteSAoJGZpbGUsICR1bmNvbmRpdGlvbmFsU2V0dGluZ3NSZWYsICRz
ZXR0aW5nc0J5Q29uZGl0aW9uYWxSZWYsICRwYXJzZWRJdGVtc1JlZikgPSBAXzsKKyAgICBteSAl
cGFyc2VkSXRlbXMgPSAleyAkcGFyc2VkSXRlbXNSZWYgfTsKKyAgICBteSAldW5jb25kaXRpb25h
bFNldHRpbmdzID0gJXsgJHVuY29uZGl0aW9uYWxTZXR0aW5nc1JlZiB9OworICAgIG15ICVzZXR0
aW5nc0J5Q29uZGl0aW9uYWwgPSAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFsUmVmIH07CisKKyAg
ICBwcmludCAkZmlsZSAiI2RlZmluZSBTRVRUSU5HU19JTklUSUFMSVpFUl9MSVNUIFxcXG4iOwor
ICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5cyAldW5jb25kaXRpb25hbFNldHRpbmdz
KSB7CisgICAgICAgIG5leHQgaWYgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifSBl
cSAiYm9vbCI7CisgICAgICAgIHByaW50SW5pdGlhbGl6ZXIoJGZpbGUsICRzZXR0aW5nTmFtZSwg
JHBhcnNlZEl0ZW1zUmVmKTsKKyAgICB9CisgICAgZm9yIG15ICRjb25kaXRpb25hbCAoc29ydCBr
ZXlzICVzZXR0aW5nc0J5Q29uZGl0aW9uYWwpIHsKKyAgICAgICAgbXkgJHByZWZlcnJlZENvbmRp
dGlvbmFsID0gJEluQ29tcGlsZXItPnByZWZlcnJlZENvbmRpdGlvbmFsKCRjb25kaXRpb25hbCk7
CisgICAgICAgIHByaW50ICRmaWxlICIgICAgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElO
R1NfTk9OX0JPT0xfSU5JVElBTElaRVJTIFxcXG4iOworICAgIH0KKyAgICBmb3IgbXkgJHNldHRp
bmdOYW1lIChzb3J0IGtleXMgJXVuY29uZGl0aW9uYWxTZXR0aW5ncykgeworICAgICAgICBuZXh0
IGlmICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0gbmUgImJvb2wiOworICAgICAg
ICBwcmludEluaXRpYWxpemVyKCRmaWxlLCAkc2V0dGluZ05hbWUsICRwYXJzZWRJdGVtc1JlZik7
CisgICAgfQorICAgIGZvciBteSAkY29uZGl0aW9uYWwgKHNvcnQga2V5cyAlc2V0dGluZ3NCeUNv
bmRpdGlvbmFsKSB7CisgICAgICAgIG15ICRwcmVmZXJyZWRDb25kaXRpb25hbCA9ICRJbkNvbXBp
bGVyLT5wcmVmZXJyZWRDb25kaXRpb25hbCgkY29uZGl0aW9uYWwpOworICAgICAgICBwcmludCAk
ZmlsZSAiICAgICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0JPT0xfSU5JVElBTEla
RVJTIFxcXG4iOworICAgIH0KKyAgICBwcmludCAkZmlsZSAiLy8gRW5kIG9mIFNFVFRJTkdTX0lO
SVRJQUxJWkVSX0xJU1QuXG5cbiI7Cit9CisKK3N1YiBwcmludEluaXRpYWxpemVyKCQkJCkKK3sK
KyAgICBteSAoJGZpbGUsICRzZXR0aW5nTmFtZSwgJHBhcnNlZEl0ZW1zUmVmKSA9IEBfOworICAg
IG15ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworCisgICAgbXkgJGluaXRp
YWxWYWx1ZSA9ICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJpbml0aWFsIn07CisgICAgbXkg
JHR5cGUgPSAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9OworICAgIGRpZSAiTXVz
dCBwcm92aWRlIGFuIGluaXRpYWwgdmFsdWUgZm9yICRzZXR0aW5nTmFtZS4iIGlmICgkaW5pdGlh
bFZhbHVlIGVxICcnICYmIGxjKHN1YnN0cigkdHlwZSwgMCwgMSkpIGVxIHN1YnN0cigkdHlwZSwg
MCwgMSkpOworICAgIHJldHVybiBpZiAoJGluaXRpYWxWYWx1ZSBlcSAnJyk7CisgICAgcHJpbnQg
JGZpbGUgIiAgICAsIG1fJHNldHRpbmdOYW1lKCRpbml0aWFsVmFsdWUpIFxcXG4iCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlIGIvU291cmNlL2NtYWtlL1dl
YktpdE1hY3Jvcy5jbWFrZQppbmRleCA5YmE5ODhmOWVlMTUwNjZkMDg0NzI0NjEwMDMwZmYwYzBi
NTNlZmY1Li5jODEzOGE5NmFiYjE5NDA3MzNlZGFlODI1OWU0YTEwMGRmNmZiOGU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9X
ZWJLaXRNYWNyb3MuY21ha2UKQEAgLTk2LDYgKzk2LDE4IEBAIE1BQ1JPIChHRU5FUkFURV9FWENF
UFRJT05fQ09ERV9ERVNDUklQVElPTiBfaW5maWxlIF9vdXRmaWxlKQogRU5ETUFDUk8gKCkKIAog
CitNQUNSTyAoR0VORVJBVEVfU0VUVElOR1NfTUFDUk9TIF9pbmZpbGUgX291dGZpbGUpCisgICAg
U0VUKE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElSfS9wYWdlL21ha2Vfc2V0dGluZ3MucGwp
CisKKyAgICBBRERfQ1VTVE9NX0NPTU1BTkQoCisgICAgICAgIE9VVFBVVCAgJHtERVJJVkVEX1NP
VVJDRVNfV0VCQ09SRV9ESVJ9LyR7X291dGZpbGV9CisgICAgICAgIE1BSU5fREVQRU5ERU5DWSAk
e19pbmZpbGV9CisgICAgICAgIERFUEVORFMgJHtOQU1FU19HRU5FUkFUT1J9ICR7U0NSSVBUU19C
SU5ESU5HU30KKyAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gLUkke1dFQkNPUkVf
RElSfS9iaW5kaW5ncy9zY3JpcHRzICR7TkFNRVNfR0VORVJBVE9SfSAtLWlucHV0ICR7X2luZmls
ZX0gLS1vdXRwdXREaXIgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9CisgICAgICAgIFZF
UkJBVElNKQorRU5ETUFDUk8gKCkKKworCiBNQUNSTyAoR0VORVJBVEVfRE9NX05BTUVTIF9uYW1l
c3BhY2UgX2F0dHJzKQogICAgIFNFVChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vZG9t
L21ha2VfbmFtZXMucGwpCiAgICAgU0VUKF9hcmd1bWVudHMgIC0tYXR0cnMgJHtfYXR0cnN9KQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGJjNGYx
MjRhYzUzOWJlNmMxNzlmOGQ3ZWRmY2RlZWRkMWY3ODNjMDIuLjBiOTMxYzQ1MjkzN2JjYmQwMDM0
YTNiYzgzYWM1ODYxNDU0OTIxYWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0xMiAgVG9ueSBDaGFuZyAg
PHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEdlbmVyYXRlIFNldHRpbmdzIGZyb20gYSAu
aW4gZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAwMzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIHRoZSBnZW5lcmF0ZWQgV2ViQ29yZSBmaWxlcyB0byB0aGUgaW5jbHVkZSBkaXIuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvQ01ha2VMaXN0cy50eHQ6CisKIDIwMTItMTEtMTIgIEFsbGFuIFNhbmRmZWxkIEpl
bnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+CiAKICAgICAgICAgW1F0XSBTdXBwb3J0IFJl
c291cmNlUmVxdWVzdCdzIHNldFRpbWVvdXRJbnRlcnZhbApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0
cy50eHQKaW5kZXggMTYzZWRjNzUzYjczZjRkMDViZjdhNGVjMjFlOWZmYjA1YmZhNzU3Zi4uNzAw
MWMxODQ1MjQxODQ0MTIyYzdjY2FiOGQ5MTQ0YzE5YWI5M2NhYSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NN
YWtlTGlzdHMudHh0CkBAIC0zLDYgKzMsNyBAQCBTRVQoVEVTVFdFQktJVEFQSV9ESVIgIiR7VE9P
TFNfRElSfS9UZXN0V2ViS2l0QVBJIikKIElOQ0xVREVfRElSRUNUT1JJRVMoJHtDTUFLRV9CSU5B
UllfRElSfQogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9CiAgICAgJHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UKKyAgICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KICAgICAke0RFUklW
RURfU09VUkNFU19XRUJLSVQyX0RJUn0vaW5jbHVkZQogICAgICR7SkFWQVNDUklQVENPUkVfRElS
fQogICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9BUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtl
TGlzdHMudHh0CmluZGV4IDM3YzUwMGE1YzAxYTc3Y2VjZGFhMWNmMmRhOWViN2EzNmNjZGViYjQu
LjFmNGM3OTliOGU1MWVlYTA0ZTA5ZmRlZGMzN2Q3NTBiN2I3NzU0NDcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9DTWFrZUxpc3RzLnR4dApAQCAtNDAsNiArNDAsNyBAQCBTRVQoV2ViS2l0VGVzdFJ1
bm5lcl9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQ
SS9DL2VmbAogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9zb3VwCiAgICAgJHtX
VEZfRElSfQorICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfQogICAgICR7REVSSVZF
RF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9pbmNsdWRlCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VC
S0lUMl9ESVJ9L2luY2x1ZGUKICAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L0luamVjdGVkQnVu
ZGxlCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggYmQ3YTY4YzQxYTVi
Y2QxY2NjNjc0NTcxNGUyZmFhM2ZkNzg4ODg4ZC4uYjdiZWYxNzRjODczZDRjMjRhNGVjYTVlNGNm
MzMzMjRkY2I5YjE0YyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTExLTEyICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgR2VuZXJhdGUgU2V0dGluZ3MgZnJvbSBhIC5pbiBmaWxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAzOTMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHZW5lcmF0ZSBTZXR0aW5nc01h
Y3Jvcy5oIGZvciBjbWFrZS4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3Mu
Y21ha2U6CisKIDIwMTItMTEtMTIgIEt5dW5nVGFlIEtpbSAgPGt0Zi5raW1Ac2Ftc3VuZy5jb20+
CiAKICAgICAgICAgW0VGTF0gVHVybiBvbiBlcnJvciBvbiB3YXJuaW5ncyBmb3IgInN3aXRjaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174004</attachid>
            <date>2012-11-13 15:15:35 -0800</date>
            <delta_ts>2012-11-13 16:19:07 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-100393-20121113151335.patch</filename>
            <type>text/plain</type>
            <size>105323</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdiNDlhMjA0YmM0MDUz
MGE3MjM4ODk2ODFkNmU5MmE3OTU3MjhiOC4uMTI1Y2NiZDBmNzcyMmJlZjE0YzcwOGNlMTY4NGI4
NjhmNjY3MDY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTExLTEyICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2VuZXJhdGUgU2V0dGluZ3Mg
ZnJvbSBhIC5pbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAg
ICAgIEdlbmVyYXRlIG1vc3Qgc2V0dGluZ3MgZnJvbSBhbiAuaW4gZmlsZSB0byByZWR1Y2UgaHVt
YW4gbWlzdGFrZXMgYW5kCisgICAgICAgIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGFkZC9yZW1vdmUg
bmV3IHNldHRpbmdzLgorCisgICAgICAgIEkgb25seSBtb3ZlZCBzZXR0aW5ncyB0aGF0IGFyZSBl
YXN5IHRvIG1vdmUgYXQgdGhpcyBwb2ludC4gIFRoZXJlIGFyZSBtYW55IG1vcmUgdGhhdAorICAg
ICAgICBoYXZlIHNvbWUgbWlub3IgbmFtaW5nIGluY29uc2lzdGVuY2llcyB0aGF0IHdlIGNhbiBh
bHNvIG1vdmUgdG8gU2V0dGluZ3MuaW4sIGJ1dCBJJ2xsCisgICAgICAgIGRvIHRoYXQgaW4gYSBm
b2xsb3cgdXAgcGF0Y2guCisKKyAgICAgICAgVGhpcyBkb2Vzbid0IGdlbmVyYXRlIFNldHRpbmdJ
bnRlcm5hbHMuKiB5ZXQtLSB3ZSBjYW4gZG8gdGhhdCBpbiBhIGZvbGxvdyB1cCBwYXRjaC4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMgYSByZWZhY3Rvci4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IFJ1biBtYWtlX3Nl
dHRpbmdzLnBsLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnByaTogUnVuIG1ha2Vfc2V0dGlu
Z3MucGwuCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IFJ1biBtYWtlX3NldHRpbmdzLnBsLgor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5leHAuaW46
IFJlbW92ZSBmdW5jdGlvbnMgdGhhdCBhcmUgbm93IGlubGluZSBpbiB0aGUgaGVhZGVyLgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOiBSdW4gYWN0aW9uX21ha2VuYW1lcy5weSwg
d2hpY2ggd2lsbCBydW4gbWFrZV9zZXR0aW5ncy5wbC4KKyAgICAgICAgKiBXZWJDb3JlLmd5cC9z
Y3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHk6CisgICAgICAgIChtYWluKTogQWxsb3cgbWFrZV9z
ZXR0aW5ncy5wbC4KKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOiBSZW1vdmUgZnVuY3Rpb25zIHRo
YXQgYXJlIG5vdyBpbmxpbmUgaW4gdGhlIGhlYWRlci4KKyAgICAgICAgKiBodG1sL1ZhbGlkYXRp
b25NZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25NZXNzYWdlOjpzZXRN
ZXNzYWdlRE9NQW5kU3RhcnRUaW1lcik6IEZpeCBhIHR5cG8gaW4gIm1hZ25pZmljYXRpb24iLgor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6
OlNldHRpbmdzKTogUmVwbGFjZSBnZW5lcmF0ZWQgc2V0dGluZ3Mgd2l0aCBTRVRUSU5HU19JTklU
SUFMSVpFUl9MSVNULgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFNldHRp
bmdzKTogUmVwbGFjZSBnZW5lcmF0ZWQgc2V0dGluZ3Mgd2l0aCBTRVRUSU5HU19HRVRURVJTX0FO
RF9TRVRURVJTIGFuZCBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTLgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuaW46IEFkZGVkLgorICAgICAgICAqIHBhZ2UvbWFrZV9zZXR0aW5ncy5wbDogQWRk
ZWQuCisgICAgICAgIChkZWZhdWx0SXRlbUZhY3RvcnkpOgorICAgICAgICAoZ2VuZXJhdGVDb2Rl
KToKKyAgICAgICAgKGdlbmVyYXRlSGVhZGVyKTogVXNlIGEgc2ltaWxhciBtb2RlbCBhcyBtYWtl
X25hbWVzLnBsLgorICAgICAgICAocHJpbnRDb25kaXRpb25hbE1hY3Jvcyk6CisgICAgICAgIChw
cmludEdldHRlcnNBbmRTZXR0ZXJzKToKKyAgICAgICAgKHByaW50TWVtYmVyVmFyaWFibGVzKToK
KyAgICAgICAgKHByaW50R2V0dGVyQW5kU2V0dGVyKToKKyAgICAgICAgKHByaW50SW5pdGlhbGl6
ZXJMaXN0KToKKyAgICAgICAgKHByaW50SW5pdGlhbGl6ZXIpOgorCiAyMDEyLTExLTEzICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggMzA3MDcyYmY3ZTQzOGM4YzM4NmI0ODhiZTUxOTVmOGFjMzk2NDhh
Mi4uZGJkMzg2NzdmMzliZTUwZGM4ZWQzOTYwMjRjNTY4YjZmYWE3ZGU1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTI4OTYsNiArMjg5NiwxMCBAQCBHRU5FUkFURV9FWENFUFRJT05fQ09ERV9E
RVNDUklQVElPTigke1dFQkNPUkVfRElSfS9kb20vRE9NRXhjZXB0aW9ucy5pbiBFeGNlcHRpbwog
TElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS9FeGNlcHRpb25Db2RlRGVzY3JpcHRpb24uY3BwKQogCiAKK0dFTkVSQVRFX1NFVFRJTkdTX01B
Q1JPUygke1dFQkNPUkVfRElSfS9wYWdlL1NldHRpbmdzLmluIFNldHRpbmdzTWFjcm9zLmgpCitM
SVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9
L1NldHRpbmdzTWFjcm9zLmgpCisKKwogR0VORVJBVEVfRk9OVF9OQU1FUygke1dFQkNPUkVfRElS
fS9jc3MvV2ViS2l0Rm9udEZhbWlseU5hbWVzLmluKQogTElTVChBUFBFTkQgV2ViQ29yZV9TT1VS
Q0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9XZWJLaXRGb250RmFtaWx5TmFtZXMu
Y3BwKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0YzY0Yzg5NTFiYWQ2Y2I3
MDRjNTBlZmViMDM5YjA4NTIzODVhMDg0Li5mZGYwZTFlODZjY2U1ZmU1ZjViZjAxMzc1YmRmOTYw
M2YyYzUxM2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTkyNSw2ICs5MjUs
MTMgQEAgTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwIE1hdGhNTE5hbWVzLmNwcCA6IGRvbS9tYWtl
X25hbWVzLnBsIG1hdGhtbC9tYXRodGFncy5pbgogCiAjIC0tLS0tLS0tCiAKK2FsbCA6IFNldHRp
bmdzTWFjcm9zLmgKKworU2V0dGluZ3NNYWNyb3MuaCA6IHBhZ2UvbWFrZV9zZXR0aW5ncy5wbCBw
YWdlL1NldHRpbmdzLmluCisJcGVybCAtSSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwg
LS1pbnB1dCAkKFdlYkNvcmUpL3BhZ2UvU2V0dGluZ3MuaW4KKworIyAtLS0tLS0tLQorCiAjIENv
bW1vbiBnZW5lcmF0b3IgdGhpbmdzCiAKIEdFTkVSQVRFX1NDUklQVFMgPSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5wcmkKaW5kZXggOWY2OWVmNDNjNWQyM2Y3MmY5ZDBmYjlkMGZmMzViNGVhY2U1
ODVjZS4uOTNlZWIyNDc0ZTY4YjBhYjU3M2MwMmFkNTY4MjZmOWY2NjZkZjc4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtNDcsNiArNDcsOCBAQCBFVkVOVF9UQVJHRVRfRkFDVE9S
WSA9ICQkUFdEL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KIAogRE9NX0VYQ0VQVElPTlMgPSAk
JFBXRC9kb20vRE9NRXhjZXB0aW9ucy5pbgogCitTRVRUSU5HU19NQUNST1MgPSAkJFBXRC9wYWdl
L1NldHRpbmdzLmluCisKIENPTE9SREFUQV9HUEVSRiA9ICQkUFdEL3BsYXRmb3JtL0NvbG9yRGF0
YS5ncGVyZgogCiBXQUxET0NTU1BST1BTID0gJCRQV0QvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4K
QEAgLTg2Nyw2ICs4NjksMTQgQEAgZXhjZXB0aW9uY29kZWRlc2NyaXB0aW9uLmNvbW1hbmRzID0g
cGVybCAtSSQkUFdEL2JpbmRpbmdzL3NjcmlwdHMgJCRleGNlcHRpb25jb2QKIGV4Y2VwdGlvbmNv
ZGVkZXNjcmlwdGlvbi5kZXBlbmRzID0gJCRQV0QvZG9tL21ha2VfZG9tX2V4Y2VwdGlvbnMucGwg
JCRET01fRVhDRVBUSU9OUwogR0VORVJBVE9SUyArPSBleGNlcHRpb25jb2RlZGVzY3JpcHRpb24K
IAorIyBHRU5FUkFUT1IgNS1IOgorc2V0dGluZ3NtYWNyb3Mub3V0cHV0ID0gU2V0dGluZ3NNYWNy
b3MuaAorc2V0dGluZ3NtYWNyb3MuaW5wdXQgPSBTRVRUSU5HU19NQUNST1MKK3NldHRpbmdzbWFj
cm9zLnNjcmlwdCA9ICQkUFdEL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbAorc2V0dGluZ3NtYWNyb3Mu
Y29tbWFuZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAkJHNldHRpbmdzbWFjcm9z
LnNjcmlwdCAtLWlucHV0ICQkU0VUVElOR1NfTUFDUk9TIC0tb3V0cHV0RGlyICR7UU1BS0VfRlVO
Q19GSUxFX09VVF9QQVRIfQorc2V0dGluZ3NtYWNyb3MuZGVwZW5kcyA9ICQkUFdEL3BhZ2UvbWFr
ZV9zZXR0aW5ncy5wbCAkJFNFVFRJTkdTX01BQ1JPUworR0VORVJBVE9SUyArPSBzZXR0aW5nc21h
Y3JvcworCiAjIEdFTkVSQVRPUiA4LUE6CiBlbnRpdGllcy5vdXRwdXQgPSBIVE1MRW50aXR5VGFi
bGUuY3BwCiBlbnRpdGllcy5pbnB1dCA9IEhUTUxfRU5USVRJRVMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
aW5kZXggMzU2ZGVkZjY1NDliMmM1MzdlNjVlZmUzNTk1MjMzNmRlNzZiY2QxMC4uYWY4NDk1ZjU0
ZmIzOTE1N2UxMWQ5NGU0ZTA2NjRiMmQ1MzJhZWFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAg
LTUwNCw2ICs1MDQsOSBAQCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0V2ZW50VGFyZ2V0SGVhZGVy
cy5oIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXZlbnRUYXJnZXRJbgogRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9FeGNlcHRpb25Db2RlRGVzY3JpcHRpb24uY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uLmggRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FeGNl
cHRpb25IZWFkZXJzLmggRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FeGNlcHRpb25JbnRlcmZhY2Vz
Lmg6ICQoV2ViQ29yZSkvZG9tL21ha2VfZG9tX2V4Y2VwdGlvbnMucGwgJChXZWJDb3JlKS9kb20v
RE9NRXhjZXB0aW9ucy5pbgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGlu
Z3Mvc2NyaXB0cyAkPCAtLWlucHV0ICQoV2ViQ29yZSkvZG9tL0RPTUV4Y2VwdGlvbnMuaW4gLS1v
dXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAorRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9TZXR0aW5nc01hY3Jvcy5oOiAkKFdlYkNvcmUpL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbCAkKFdl
YkNvcmUpL3BhZ2UvU2V0dGluZ3MuaW4KKwkkKEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUp
L2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1pbnB1dCAkKFdlYkNvcmUpL3BhZ2UvU2V0dGluZ3MuaW4g
LS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKKwogIyBBbGwgV2ViIEluc3BlY3Rv
ciBnZW5lcmF0ZWQgZmlsZXMgYXJlIGNyZWF0ZWQgd2l0aCB0aGlzIG9uZSBjYWxsIHRvIENvZGVH
ZW5lcmF0b3JJbnNwZWN0b3IucHkKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSW5zcGVjdG9yUHJv
dG9jb2xWZXJzaW9uLmggOiAkKFdlYkNvcmUpL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiAkKFdl
YkNvcmUpL2luc3BlY3Rvci9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtdmVyc2lvbgogCSQo
QU1fVl9HRU4pJChQWVRIT04pICQoV2ViQ29yZSkvaW5zcGVjdG9yL2dlbmVyYXRlLWluc3BlY3Rv
ci1wcm90b2NvbC12ZXJzaW9uIC1vICQoR0VOU09VUkNFU19XRUJDT1JFKS9JbnNwZWN0b3JQcm90
b2NvbFZlcnNpb24uaCAkKFdlYkNvcmUpL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtODA3
LDYgKzgxMCw4IEBAIEVYVFJBX0RJU1QgKz0gXAogCVNvdXJjZS9XZWJDb3JlL21ha2UtaGFzaC10
b29scy5wbCBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL21hdGhhdHRycy5pbiBcCiAJU291cmNl
L1dlYkNvcmUvbWF0aG1sL21hdGh0YWdzLmluIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL21ha2Vf
c2V0dGluZ3MucGwgXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZiBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9tYWMvbWFrZS1jaGFyc2V0LXRhYmxlLnBsIFwKIAlTb3VyY2UvV2ViQ29yZS9z
dmcvc3ZnYXR0cnMuaW4gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZWRiYjE1
NTZjMWE3Zjc3NmJmNjM2MWNmMjFmNGYwMGM4YzcwMWVhMC4uYWFmYzM4YTJjMjBjNDVhMGM5MDI2
MTljMDFiOGMwMzdiMjM0OWRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0x
MTQ3LDYgKzExNDcsNyBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvTWF0aE1MRWxlbWVudEZhY3RvcnkuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9NYXRoTUxOYW1lcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0aE1MTmFt
ZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9TZXR0aW5nc01hY3Jvcy5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL1NWR0VsZW1lbnRGYWN0b3J5LmNwcCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9TVkdOYW1lcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvVXNlckFn
ZW50R3RrLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBiYWM2YWFhMzI4YjdhZTYwZWE4ZWRl
YWVkZDMwZDU4NmI4MWNhNzFjLi4wYjY1ZTg2Y2EyYjExYzdmMDgyZTYxZDZjMjY5NDMwMWNiN2Iz
MDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtOTEzLDcgKzkxMyw2IEBAIF9fWk43V2ViQ29y
ZThHcmFkaWVudDEyYWRkQ29sb3JTdG9wRWZSS05TXzVDb2xvckUKIF9fWk43V2ViQ29yZThHcmFk
aWVudEMxRVJLTlNfMTBGbG9hdFBvaW50RVMzXwogX19aTjdXZWJDb3JlOFBvc2l0aW9uQzFFTjNX
VEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVFRUVpTlMwXzEwQW5jaG9yVHlwZUUKIF9fWk43V2ViQ29y
ZThTZXR0aW5nczE0c2V0SmF2YUVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMTVzZXRX
ZWJHTEVuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMTZzZXRJbWFnZXNFbmFibGVkRWIK
IF9fWk43V2ViQ29yZThTZXR0aW5nczE2c2V0U2NyaXB0RW5hYmxlZEViCiBfX1pON1dlYkNvcmU4
U2V0dGluZ3MxNnNldFVzZXNQYWdlQ2FjaGVFYgpAQCAtOTIzLDc3ICs5MjIsMzkgQEAgX19aTjdX
ZWJDb3JlOFNldHRpbmdzMThzZXREZWZhdWx0Rm9udFNpemVFaQogX19aTjdXZWJDb3JlOFNldHRp
bmdzMThzZXRGaXhlZEZvbnRGYW1pbHlFUktOM1dURjEyQXRvbWljU3RyaW5nRTExVVNjcmlwdENv
ZGUKIF9fWk43V2ViQ29yZThTZXR0aW5nczE4c2V0TWluaW11bUZvbnRTaXplRWkKIF9fWk43V2Vi
Q29yZThTZXR0aW5nczE4c2V0U2VyaWZGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0Ux
MVVTY3JpcHRDb2RlCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MxOHNldFdlYkF1ZGlvRW5hYmxlZEVi
CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MxOW1pbkRPTVRpbWVySW50ZXJ2YWxFdgogX19aTjdXZWJD
b3JlOFNldHRpbmdzMTlzZXRTaG93RGVidWdCb3JkZXJzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5n
czIwc2V0Q3Vyc2l2ZUZvbnRGYW1pbHlFUktOM1dURjEyQXRvbWljU3RyaW5nRTExVVNjcmlwdENv
ZGUKIF9fWk43V2ViQ29yZThTZXR0aW5nczIwc2V0RmFudGFzeUZvbnRGYW1pbHlFUktOM1dURjEy
QXRvbWljU3RyaW5nRTExVVNjcmlwdENvZGUKLV9fWk43V2ViQ29yZThTZXR0aW5nczIwc2V0WFNT
QXVkaXRvckVuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFtb2NrU2Nyb2xsYmFyc0Vu
YWJsZWRFdgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRTaG93UmVwYWludENvdW50ZXJFYgog
X19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRTdGFuZGFyZEZvbnRGYW1pbHlFUktOM1dURjEyQXRv
bWljU3RyaW5nRTExVVNjcmlwdENvZGUKIF9fWk43V2ViQ29yZThTZXR0aW5nczIxc2V0V2ViU2Vj
dXJpdHlFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0TG9jYWxTdG9yYWdlRW5h
YmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldE1pbkRPTVRpbWVySW50ZXJ2YWxFZAog
X19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRTYW5zU2VyaWZGb250RmFtaWx5RVJLTjNXVEYxMkF0
b21pY1N0cmluZ0UxMVVTY3JpcHRDb2RlCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNlc3Np
b25TdG9yYWdlUXVvdGFFagotX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRTaG93c1VSTHNJblRv
b2xUaXBzRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWRF
YgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXREZWZhdWx0Rml4ZWRGb250U2l6ZUVpCi1fX1pO
N1dlYkNvcmU4U2V0dGluZ3MyM3NldEVkaXRhYmxlTGlua0JlaGF2aW9yRU5TXzIwRWRpdGFibGVM
aW5rQmVoYXZpb3JFCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldExvYWREZWZlcnJpbmdFbmFi
bGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0UGljdG9ncmFwaEZvbnRGYW1pbHlFUktO
M1dURjEyQXRvbWljU3RyaW5nRTExVVNjcmlwdENvZGUKLV9fWk43V2ViQ29yZThTZXR0aW5nczIz
c2V0VXNlc0VuY29kaW5nRGV0ZWN0b3JFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRBcHBs
aWNhdGlvbkNocm9tZU1vZGVFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRETlNQcmVmZXRj
aGluZ0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRNb2NrU2Nyb2xsYmFyc0Vu
YWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnNF
YgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3lFTlNfMTRT
ZWN1cml0eU9yaWdpbjIxU3RvcmFnZUJsb2NraW5nUG9saWN5RQogX19aTjdXZWJDb3JlOFNldHRp
bmdzMjRzZXRUZXh0QXJlYXNBcmVSZXNpemFibGVFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjVz
ZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldE1pbmltdW1M
b2dpY2FsRm9udFNpemVFaQotX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXROZWVkc0xlb3BhcmRN
YWlsUXVpcmtzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldFNob3VsZFByaW50QmFja2dyb3VuZHNF
YgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uRVJLTlNf
NEtVUkxFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNmRlZmF1bHRNaW5ET01UaW1lckludGVydmFs
RXYKLV9fWk43V2ViQ29yZThTZXR0aW5nczI2c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWVFUktO
M1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyNnNldE5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0RlRQRGlyZWN0b3J5VGVtcGxhdGVQ
YXRoRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRKYXZhRW5hYmxl
ZEZvckxvY2FsRmlsZXNFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRMb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHlFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRMb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGhFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyN3NldFNwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyOHNldERPTVRpbWVy
QWxpZ25tZW50SW50ZXJ2YWxFZAotX19aTjdXZWJDb3JlOFNldHRpbmdzMjhzZXRGb3JjZUZUUERp
cmVjdG9yeUxpc3RpbmdzRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI5c2V0QWNjZWxlcmF0ZWQy
ZENhbnZhc0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjlzZXRBdXRob3JBbmRVc2Vy
U3R5bGVzRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyOXNldERlZmF1bHRNaW5ET01U
aW1lckludGVydmFsRWQKLV9fWk43V2ViQ29yZThTZXR0aW5nczI5c2V0V2ViQXJjaGl2ZURlYnVn
TW9kZUVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzBzZXRBbGxvd0ZpbGVBY2Nlc3NG
cm9tRmlsZVVSTHNFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzFzZXRDYW52YXNVc2VzQWNjZWxl
cmF0ZWREcmF3aW5nRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczMxc2V0SmF2YVNjcmlwdENhbkFj
Y2Vzc0NsaXBib2FyZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzMXNldEphdmFTY3JpcHRFeHBl
cmltZW50c0VuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzFzZXRTaHJpbmtzU3RhbmRh
bG9uZUltYWdlc1RvRml0RWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczMyZGVmYXVsdERPTVRpbWVy
QWxpZ25tZW50SW50ZXJ2YWxFdgogX19aTjdXZWJDb3JlOFNldHRpbmdzMzJzZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMnNldE5lZWRzQWRv
YmVGcmFtZVJlbG9hZGluZ1F1aXJrRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczMyc2V0U2NyZWVu
Rm9udFN1YnN0aXR1dGlvbkVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzJzZXRTaG93
c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzM3NldERv
d25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzNHNl
dExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdz
MzVzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0ViCi1fX1pON1dlYkNvcmU4U2V0
dGluZ3MzNXNldEVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlRWIKLV9fWk43V2ViQ29y
ZThTZXR0aW5nczM1c2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWRFYgotX19aTjdX
ZWJDb3JlOFNldHRpbmdzMzVzZXRUcmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldEViCi1f
X1pON1dlYkNvcmU4U2V0dGluZ3MzNnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxl
ZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzN3NldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2
ZVRvRnJhbWVFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMzdzZXRTY3JvbGxpbmdQZXJmb3JtYW5j
ZUxvZ2dpbmdFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczQwc2V0SmF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseUViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNldFRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JFTlNfMzdUZXh0RGlyZWN0aW9uU3Vi
bWVudUluY2x1c2lvbkJlaGF2aW9yRQotX19aTjdXZWJDb3JlOFNldHRpbmdzNDFzZXROZWVkc0tl
eWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrc0ViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3M0
NHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nRWIKIF9fWk43V2Vi
Q29yZThTZXR0aW5nczQ1c2V0U2hvdWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0
ZXJzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIxc2V0UmVzb2x1dGlvbk92ZXJyaWRlRVJLTlNf
N0ludFNpemVFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMHNldE1lZGlhVHlwZU92ZXJyaWRlRVJL
TjNXVEY2U3RyaW5nRQpAQCAtMjI0OSw3ICsyMjEwLDYgQEAgX19aTks3V2ViQ29yZTE1Q29udGV4
dE1lbnVJdGVtN2VuYWJsZWRFdgogX19aTks3V2ViQ29yZThEb2N1bWVudDE2YW5ub3RhdGVkUmVn
aW9uc0V2CiAjZW5kaWYKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCi1fX1pON1dlYkNv
cmU4U2V0dGluZ3M0MXNldFVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlRWIK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXAvV2ViQ29yZS5neXAKaW5kZXggYjFiNjQ0MGQ0ZWU2YmQ4ODlkYmMxYzYwNmM3NzIyMjQ1Yjk4
ZWZmNi4uNDEzYmUwZWUyMDM5ZDA3MmRlN2JhNTIzZDIyOGQxMjk2MGNiMDJhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAgLTg3OSw2ICs4NzksMjMgQEAKICAgICAg
ICAgICBdLAogICAgICAgICB9LAogICAgICAgICB7CisgICAgICAgICAgJ2FjdGlvbl9uYW1lJzog
J1NldHRpbmdzJywKKyAgICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAgJy4uL3BhZ2Uv
bWFrZV9zZXR0aW5ncy5wbCcsCisgICAgICAgICAgICAnLi4vcGFnZS9TZXR0aW5ncy5pbicsCisg
ICAgICAgICAgXSwKKyAgICAgICAgICAnb3V0cHV0cyc6IFsKKyAgICAgICAgICAgICc8KFNIQVJF
RF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvU2V0dGluZ3NNYWNyb3MuaCcsCisgICAgICAgICAg
XSwKKyAgICAgICAgICAnYWN0aW9uJzogWworICAgICAgICAgICAgJ3B5dGhvbicsCisgICAgICAg
ICAgICAnc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5JywKKyAgICAgICAgICAgICc8QChfb3V0
cHV0cyknLAorICAgICAgICAgICAgJy0tJywKKyAgICAgICAgICAgICc8QChfaW5wdXRzKScsCisg
ICAgICAgICAgXSwKKyAgICAgICAgfSwKKyAgICAgICAgewogICAgICAgICAgICdhY3Rpb25fbmFt
ZSc6ICdVc2VyQWdlbnRTdHlsZVNoZWV0cycsCiAgICAgICAgICAgJ3ZhcmlhYmxlcyc6IHsKICAg
ICAgICAgICAgICdzY3JpcHRzJzogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5IGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5CmluZGV4IDlhZmQ4ZTg4NWU5OTZhYzUw
ZTY3ZjhlZjQwMjk5MzQxNmQ2YjE0NWMuLmExYTQxMGYxZWE1MGMzMTU0MmVhZDUxYmQzYWUwNDZl
MWM1ZWMxOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMv
YWN0aW9uX21ha2VuYW1lcy5weQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3Jp
cHRzL2FjdGlvbl9tYWtlbmFtZXMucHkKQEAgLTExNywyMiArMTE3LDE3IEBAIGRlZiBtYWluKGFy
Z3MpOgogICAgICAgICBpbnB1dEFicyA9IG9zLnBhdGguYWJzcGF0aChpbnB1dCkKICAgICAgICAg
aW5wdXRBYnNQb3NpeCA9IGlucHV0QWJzLnJlcGxhY2Uob3MucGF0aC5zZXAsIHBvc2l4cGF0aC5z
ZXApCiAgICAgICAgIGlucHV0QmFzZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKGlucHV0KQotICAg
ICAgICBpZiBpbnB1dEJhc2VuYW1lID09ICdtYWtlX25hbWVzLnBsJyBcCi0gICAgICAgICAgICBv
ciBpbnB1dEJhc2VuYW1lID09ICdtYWtlX2V2ZW50X2ZhY3RvcnkucGwnIFwKLSAgICAgICAgICAg
IG9yIGlucHV0QmFzZW5hbWUgPT0gJ21ha2VfZG9tX2V4Y2VwdGlvbnMucGwnOgorICAgICAgICBp
ZiBpbnB1dEJhc2VuYW1lIGluICgnbWFrZV9uYW1lcy5wbCcsICdtYWtlX2V2ZW50X2ZhY3Rvcnku
cGwnLCAnbWFrZV9kb21fZXhjZXB0aW9ucy5wbCcsICdtYWtlX3NldHRpbmdzLnBsJyk6CiAgICAg
ICAgICAgICBhc3NlcnQgbWFrZU5hbWVzSW5wdXQgPT0gTm9uZQogICAgICAgICAgICAgbWFrZU5h
bWVzSW5wdXQgPSBpbnB1dEFicwotICAgICAgICBlbGlmIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgo
J1RhZ05hbWVzLmluJykgXAotICAgICAgICAgICAgIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgo
J3RhZ3MuaW4nKToKKyAgICAgICAgZWxpZiBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdUYWdOYW1l
cy5pbicpIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ3RhZ3MuaW4nKToKICAgICAgICAgICAg
IGFzc2VydCB0YWdJbnB1dCA9PSBOb25lCiAgICAgICAgICAgICB0YWdJbnB1dCA9IGlucHV0QWJz
UG9zaXgKLSAgICAgICAgZWxpZiBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdBdHRyaWJ1dGVOYW1l
cy5pbicpIFwKLSAgICAgICAgICAgICBvciBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdhdHRycy5p
bicpOgorICAgICAgICBlbGlmIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ0F0dHJpYnV0ZU5hbWVz
LmluJykgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgnYXR0cnMuaW4nKToKICAgICAgICAgICAg
IGFzc2VydCBhdHRySW5wdXQgPT0gTm9uZQogICAgICAgICAgICAgYXR0cklucHV0ID0gaW5wdXRB
YnNQb3NpeAotICAgICAgICBlbGlmIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ0V2ZW50VGFyZ2V0
RmFjdG9yeS5pbicpIFwKLSAgICAgICAgICAgIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ0V2
ZW50TmFtZXMuaW4nKSBcCi0gICAgICAgICAgICBvciBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdE
T01FeGNlcHRpb25zLmluJyk6CisgICAgICAgIGVsaWYgKGlucHV0QmFzZW5hbWUuZW5kc3dpdGgo
J0V2ZW50VGFyZ2V0RmFjdG9yeS5pbicpIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ0V2ZW50
TmFtZXMuaW4nKQorICAgICAgICAgICAgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgnRE9NRXhj
ZXB0aW9ucy5pbicpIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ1NldHRpbmdzLmluJykpOgog
ICAgICAgICAgICAgZXZlbnRzSW5wdXQgPSBpbnB1dEFic1Bvc2l4CiAgICAgICAgIGVsaWYgaW5w
dXRCYXNlbmFtZS5lbmRzd2l0aCgnTmFtZXMuaW4nKToKICAgICAgICAgICAgIG9wdGlvbnMuYXBw
ZW5kKGlucHV0QWJzUG9zaXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9y
ZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCA1MDNlYmQ3MzEzZjY1MzNk
ODAxMDhkOGQ5MTI0MjdjODk5ZDFhYjA1Li4wZTZiMTU4Y2RhMDZkYzkyYzYyNTIxNTYwM2ZkYWYw
MTUzMzE4ZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTUyMyw3ICs1MjMsNiBAQCBfX1pOM1dU
RjlIYXNoVGFibGVJUE43V2ViQ29yZTRQYWdlRVMzX05TXzE3SWRlbnRpdHlFeHRyYWN0b3JJUzNf
RUVOU183UHRySGFzaElTMwogX19aTjNXVEY5SGFzaFRhYmxlSVBON1dlYkNvcmU0UGFnZUVTM19O
U18xN0lkZW50aXR5RXh0cmFjdG9ySVMzX0VFTlNfN1B0ckhhc2hJUzNfRUVOU18xMEhhc2hUcmFp
dHNJUzNfRUVTOV9FNmV4cGFuZEV2CiBfX1pON1dlYkNvcmUxMlBsdWdpbkhhbHRlckMxRU4zV1RG
MTBQYXNzT3duUHRySU5TXzE4UGx1Z2luSGFsdGVyQ2xpZW50RUVFCiBfX1pON1dlYkNvcmU0UGFn
ZTE2c2V0Q2FuU3RhcnRNZWRpYUViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyN3NldExvY2FsU3Rv
cmFnZURhdGFiYXNlUGF0aEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTVGcmFtZTZjcmVh
dGVFUE5TXzRQYWdlRVBOU18yMUhUTUxGcmFtZU93bmVyRWxlbWVudEVQTlNfMTdGcmFtZUxvYWRl
ckNsaWVudEUKIF9fWk43V2ViQ29yZTVGcmFtZUMyRVBOU180UGFnZUVQTlNfMjFIVE1MRnJhbWVP
d25lckVsZW1lbnRFUE5TXzE3RnJhbWVMb2FkZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxMUZyYW1l
TG9hZGVyQzFFUE5TXzVGcmFtZUVQTlNfMTdGcmFtZUxvYWRlckNsaWVudEUKQEAgLTE0MzQsNDAg
KzE0MzMsMjQgQEAgX19aTjNXVEY5SGFzaFRhYmxlSVBON1dlYkNvcmU4RG9jdW1lbnRFUzNfTlNf
MTdJZGVudGl0eUV4dHJhY3RvcklTM19FRU5TXzdQdHJIYXMKIF9fWk4zV1RGOUhhc2hUYWJsZUlQ
TjdXZWJDb3JlOERvY3VtZW50RVMzX05TXzE3SWRlbnRpdHlFeHRyYWN0b3JJUzNfRUVOU183UHRy
SGFzaElTM19FRU5TXzEwSGFzaFRyYWl0c0lTM19FRVM5X0U2ZXhwYW5kRXYKIF9fWk43V2ViQ29y
ZThTZXR0aW5nczIzc2V0RGVmYXVsdEZpeGVkRm9udFNpemVFaQogX19aTjdXZWJDb3JlOFNldHRp
bmdzMThzZXREZWZhdWx0Rm9udFNpemVFaQotX19aTjdXZWJDb3JlOFNldHRpbmdzMjZzZXREZWZh
dWx0VGV4dEVuY29kaW5nTmFtZUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZThTZXR0aW5n
czIzc2V0VXNlc0VuY29kaW5nRGV0ZWN0b3JFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjBzZXRG
YW50YXN5Rm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MxOHNldEZpeGVkRm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdFCi1fX1pON1dl
YkNvcmU4U2V0dGluZ3MyOHNldEZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3NFYgotX19aTjdXZWJD
b3JlOFNldHRpbmdzMjdzZXRGVFBEaXJlY3RvcnlUZW1wbGF0ZVBhdGhFUktOM1dURjZTdHJpbmdF
CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MxNHNldEphdmFFbmFibGVkRWIKIF9fWk43V2ViQ29yZThT
ZXR0aW5nczIwc2V0SmF2YVNjcmlwdEVuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFz
ZXRXZWJTZWN1cml0eUVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzVzZXRBbGxvd1Vu
aXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0ViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzMHNldEFs
bG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0ViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNldEph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHlFYgogX19aTjdXZWJDb3JlOFNldHRp
bmdzMThzZXRNaW5pbXVtRm9udFNpemVFaQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXRNaW5p
bXVtTG9naWNhbEZvbnRTaXplRWkKIF9fWk43V2ViQ29yZThTZXR0aW5nczE3c2V0UGx1Z2luc0Vu
YWJsZWRFYgogX19aTjdXZWJDb3JlMTZBYnN0cmFjdERhdGFiYXNlMTRzZXRJc0F2YWlsYWJsZUVi
Ci1fX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldExvY2FsU3RvcmFnZUVuYWJsZWRFYgotX19aTjdX
ZWJDb3JlOFNldHRpbmdzMzVzZXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZEViCiBf
X1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldFByaXZhdGVCcm93c2luZ0VuYWJsZWRFYgogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjJzZXRTYW5zU2VyaWZGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0
cmluZ0UKIF9fWk43V2ViQ29yZThTZXR0aW5nczE4c2V0U2VyaWZGb250RmFtaWx5RVJLTjNXVEYx
MkF0b21pY1N0cmluZ0UKIF9fWk43V2ViQ29yZThTZXR0aW5nczIxc2V0U3RhbmRhcmRGb250RmFt
aWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0TG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5RWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczQ0c2V0TG9hZHNT
aXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmdFYgotX19aTjdXZWJDb3JlOFNldHRp
bmdzMjVzZXRTaG91bGRQcmludEJhY2tncm91bmRzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI0
c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI0c2V0VGV4
dEFyZWFzQXJlUmVzaXphYmxlRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczMxc2V0U2hyaW5rc1N0
YW5kYWxvbmVJbWFnZXNUb0ZpdEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldEVkaXRhYmxl
TGlua0JlaGF2aW9yRU5TXzIwRWRpdGFibGVMaW5rQmVoYXZpb3JFCi1fX1pON1dlYkNvcmU4U2V0
dGluZ3M0MHNldFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JFTlNfMzdUZXh0
RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yRQogX19aTjdXZWJDb3JlOFNldHRpbmdz
MThzZXRET01QYXN0ZUFsbG93ZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMTZzZXRVc2VzUGFn
ZUNhY2hlRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0U2hvd3NVUkxzSW5Ub29sVGlwc0Vi
Ci1fX1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldERldmVsb3BlckV4dHJhc0VuYWJsZWRFYgogX19a
TjdXZWJDb3JlOFNldHRpbmdzMjlzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZEViCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MyNHNldEFwcGxpY2F0aW9uQ2hyb21lTW9kZUViCiBfX1pON1dlYkNv
cmU4U2V0dGluZ3MyNXNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb25FUktOU180S1VSTEUKQEAgLTE0
NzUsMzIgKzE0NTgsMTYgQEAgX19aTjdXZWJDb3JlNFBhZ2UyOXVzZXJTdHlsZVNoZWV0TG9jYXRp
b25DaGFuZ2VkRXYKIF9fWk5LN1dlYkNvcmU0S1VSTDEwcHJvdG9jb2xJc0VQS2MKIF9fWk43V2Vi
Q29yZThEb2N1bWVudDE5dXBkYXRlUGFnZVVzZXJTaGVldEV2CiBfX1pON1dlYkNvcmU4U2V0dGlu
Z3MzMnNldE5lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrRWIKLV9fWk43V2ViQ29yZThTZXR0
aW5nczM1c2V0VHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXRFYgotX19aTjdXZWJDb3Jl
OFNldHRpbmdzNDFzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrc0ViCi1f
X1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldE5lZWRzTGVvcGFyZE1haWxRdWlya3NFYgogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjNzZXROZWVkc1RpZ2VyTWFpbFF1aXJrc0ViCi1fX1pON1dlYkNvcmU4
U2V0dGluZ3MyNnNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzRWIKLV9fWk43V2ViQ29yZThTZXR0
aW5nczI5c2V0V2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRp
bmdzMzRzZXRMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkRWIKLV9fWk43V2ViQ29yZThT
ZXR0aW5nczM2c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkRWIKLV9fWk43V2Vi
Q29yZThTZXR0aW5nczMxc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZEViCi1fX1pON1dl
YkNvcmU4U2V0dGluZ3MyMHNldFhTU0F1ZGl0b3JFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0
aW5nczM1c2V0RW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGVFYgogX19aTjdXZWJDb3Jl
OFNldHRpbmdzMjRzZXRETlNQcmVmZXRjaGluZ0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRp
bmdzMzJzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MyOHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRp
bmdzMzFzZXRDYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nRWIKIF9fWk43V2ViQ29yZThTZXR0
aW5nczE5c2V0U2hvd0RlYnVnQm9yZGVyc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFNo
b3dSZXBhaW50Q291bnRlckViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldFBsdWdpbkFsbG93
ZWRSdW5UaW1lRWoKIF9fWk43V2ViQ29yZTRQYWdlMjdwbHVnaW5BbGxvd2VkUnVuVGltZUNoYW5n
ZWRFdgotX19aTjdXZWJDb3JlOFNldHRpbmdzMThzZXRXZWJBdWRpb0VuYWJsZWRFYgotX19aTjdX
ZWJDb3JlOFNldHRpbmdzMTVzZXRXZWJHTEVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdz
MjlzZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZEViCiBfX1pON1dlYkNvcmUyN2FwcGxpY2F0
aW9uSXNBZG9iZUluc3RhbGxlckV2CiBfX1pON1dlYkNvcmVMMTltYWluQnVuZGxlSXNFcXVhbFRv
RVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRMb2FkRGVmZXJyaW5n
RW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldEZyYW1lRmxhdHRlbmluZ0VuYWJs
ZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWRF
YgogX19aTjdXZWJDb3JlMjJhcHBsaWNhdGlvbklzQXBwbGVNYWlsRXYKIF9fWk43V2ViQ29yZTIz
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UyMXNldERlZmF1bHRPcmlnaW5RdW90YUV4CkBAIC0yMjgx
LDcgKzIyNDgsNiBAQCBfX1pON1dlYkNvcmU1RnJhbWU5c2NhbGVQYWdlRWZSS05TXzhJbnRQb2lu
dEUKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcxN3NldFNjcm9sbFBvc2l0aW9uRVJLTlNfOEludFBv
aW50RQogX19aTjdXZWJDb3JlMTBTY3JvbGxWaWV3MTdzZXRTY3JvbGxQb3NpdGlvbkVSS05TXzhJ
bnRQb2ludEUKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzI1cGxhdGZvcm1TZXRTY3JvbGxQb3Np
dGlvbkVSS05TXzhJbnRQb2ludEUKLV9fWk43V2ViQ29yZThTZXR0aW5nczQxc2V0VXNlc0Rhc2hi
b2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGVFYgogX19aTjdXZWJDb3JlOUZyYW1lVHJlZTlj
bGVhck5hbWVFdgogX19aTks3V2ViQ29yZTRQYWdlOWdyb3VwTmFtZUV2CiBfX1pON1dlYkNvcmU4
U2V0dGluZ3MyMnNldE1pbkRPTVRpbWVySW50ZXJ2YWxFZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRiNGY3MGZjNTNiZDc0MWE4
MWY1MzFjZTc2M2ZhNDUxMjRlN2IzYTMuLjcwOGUxN2MxMjM1ZGI5MzlhNjQ2OWRkYmMyZTRiY2Nl
ODAyYzg4ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTE2NjEsNiArMTY2MSw3IEBACiAJCTUzMTc2MTIzMTNDNTE2NjkwMDI2
RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTMxNzYxMjExM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxl
eGlibGVCb3hEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNTNDODI5OEQxM0Q4RDkyNzAwREUyREVCIC8qIFJlbmRlckZsZXhpYmxlQm94LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzQzgyOThC
MTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJveC5jcHAgKi87IH07CiAJCTUzQzgy
OThFMTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJveC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNDODI5OEMxM0Q4RDkyNzAwREUyREVC
IC8qIFJlbmRlckZsZXhpYmxlQm94LmggKi87IH07CisJCTUzRUY3NjZCMTY1MzBBNjEwMDRDQkU0
OSAvKiBTZXR0aW5nc01hY3Jvcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTNFRjc2NkExNjUzMEE2MTAwNENCRTQ5IC8qIFNldHRpbmdzTWFjcm9zLmgg
Ki87IH07CiAJCTU1MEEwQkM5MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM3MDg1
RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLzsgfTsKIAkJNTUwQTBCQ0EwODVG
NjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZp
ZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTcwQjc4QkYxNjUwQ0U4MTAwMURCRTFCIC8qIFNlbGVjdFJ1bGVGZWF0dXJlU2V0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MEI3OEJEMTY1
MENFODEwMDFEQkUxQiAvKiBTZWxlY3RSdWxlRmVhdHVyZVNldC5jcHAgKi87IH07CkBAIC0zNDM4
LDcgKzM0MzksNiBAQAogCQk5NzEyQTVBRTE1MDA0RURBMDA0OEFGMTAgLyogRE9NV2luZG93SW5k
ZXhlZERhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NzEyQTU1NTE1MDA0RURBMDA0OEFGMTAgLyogRE9NV2luZG93SW5kZXhlZERhdGFiYXNl
LmggKi87IH07CiAJCTk3MTJBNUIwMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJBbnkuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1NTcxNTAwNEVE
QTAwNDhBRjEwIC8qIElEQkFueS5jcHAgKi87IH07CiAJCTk3MTJBNUIxMTUwMDRFREEwMDQ4QUYx
MCAvKiBJREJBbnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3MTJBNTU4MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJBbnkuaCAqLzsgfTsKLQkJOTcxMkE1
RTUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkJhY2tpbmdTdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4QzE1MDA0RURBMDA0OEFGMTAg
LyogSURCQmFja2luZ1N0b3JlLmNwcCAqLzsgfTsKIAkJOTcxMkE1QjMxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQkJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTcxMkE1NUExNTAwNEVEQTAwNDhBRjEwIC8qIElEQkJhY2tpbmdTdG9yZS5o
ICovOyB9OwogCQk5NzEyQTVCNDE1MDA0RURBMDA0OEFGMTAgLyogSURCQ2FsbGJhY2tzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU1QjE1MDA0
RURBMDA0OEFGMTAgLyogSURCQ2FsbGJhY2tzLmggKi87IH07CiAJCTk3MTJBNUI1MTUwMDRFREEw
MDQ4QUYxMCAvKiBJREJDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTcxMkE1NUMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkN1cnNvci5jcHAg
Ki87IH07CkBAIC0zNDc4LDYgKzM0NzgsNyBAQAogCQk5NzEyQTVERjE1MDA0RURBMDA0OEFGMTAg
LyogSURCS2V5UGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTcxMkE1ODYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVBhdGguaCAqLzsgfTsKIAkJ
OTcxMkE1RTIxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVJhbmdlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTg5MTUwMDRFREEwMDQ4QUYx
MCAvKiBJREJLZXlSYW5nZS5jcHAgKi87IH07CiAJCTk3MTJBNUUzMTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJLZXlSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTcxMkE1OEExNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVJhbmdlLmggKi87IH07CisJ
CTk3MTJBNUU1MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJCYWNraW5nU3RvcmUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1OEMxNTAwNEVEQTAw
NDhBRjEwIC8qIElEQkJhY2tpbmdTdG9yZS5jcHAgKi87IH07CiAJCTk3MTJBNUU3MTUwMDRFREEw
MDQ4QUYxMCAvKiBJREJMZXZlbERCQ29kaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNThFMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJMZXZl
bERCQ29kaW5nLmNwcCAqLzsgfTsKIAkJOTcxMkE1RTgxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkxl
dmVsREJDb2RpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3MTJBNThGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJMZXZlbERCQ29kaW5nLmggKi87IH07
CiAJCTk3MTJBNUU5MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU5MDE1MDA0RURB
MDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmUuY3BwICovOyB9OwpAQCAtODg5Miw2ICs4ODkzLDcg
QEAKIAkJNTMxNzYxMjExM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlRmxleGlibGVCb3hEYXRhLmg7
IHBhdGggPSBzdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1M0M4Mjk4QjEzRDhEOTI3MDBERTJERUIgLyogUmVuZGVyRmxleGlibGVCb3gu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRmxleGlibGVC
b3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0M4Mjk4QzEzRDhEOTI3MDBE
RTJERUIgLyogUmVuZGVyRmxleGlibGVCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVuZGVyRmxleGlibGVCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTNFRjc2NkExNjUzMEE2MTAwNENCRTQ5IC8qIFNldHRpbmdzTWFjcm9zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzTWFjcm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU1MEEwQkM3MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFF1YWxpZmllZE5hbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmll
ZE5hbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUXVhbGlmaWVkTmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJNTcwQjc4QkQxNjUwQ0U4MTAwMURCRTFCIC8qIFNlbGVjdFJ1
bGVGZWF0dXJlU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNl
bGVjdFJ1bGVGZWF0dXJlU2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEw
NzExLDcgKzEwNzEzLDYgQEAKIAkJOTcxMkE1OEExNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVJh
bmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQktleVJhbmdlLmg7IHBh
dGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5NzEyQTU4QjE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5UmFuZ2UuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IElEQktleVJhbmdlLmlkbDsgcGF0aCA9IE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleVJhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcx
MkE1OEMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkJhY2tpbmdTdG9yZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJREJCYWNraW5nU3RvcmUuY3BwOyBwYXRoID0gTW9k
dWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTcxMkE1OEQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkJhY2tpbmdTdG9yZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJREJCYWNraW5nU3RvcmUuaDsgcGF0aCA9
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5NzEyQTU4RTE1MDA0RURBMDA0OEFGMTAgLyogSURCTGV2ZWxEQkNvZGluZy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJREJMZXZlbERCQ29kaW5n
LmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU4RjE1MDA0RURBMDA0OEFGMTAgLyogSURC
TGV2ZWxEQkNvZGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJREJMZXZl
bERCQ29kaW5nLmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNTkwMTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJPYmplY3RTdG9yZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBJREJPYmplY3RTdG9yZS5jcHA7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RT
dG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTYyMSw2ICsxNTYyMiw3
IEBACiAJCQkJNDRBMjhBQUIxMkRGQjhBQzAwQUU5MjNCIC8qIE1hdGhNTEVsZW1lbnRGYWN0b3J5
LmggKi8sCiAJCQkJRkFCRTcyRkMxMDU5QzIxMTAwRDk5OUREIC8qIE1hdGhNTE5hbWVzLmNwcCAq
LywKIAkJCQk0NEEyOEFBRTEyREZCOEJGMDBBRTkyM0IgLyogTWF0aE1MTmFtZXMuaCAqLywKKwkJ
CQk1M0VGNzY2QTE2NTMwQTYxMDA0Q0JFNDkgLyogU2V0dGluZ3NNYWNyb3MuaCAqLywKIAkJCQk2
NTY1ODFFNjA5RDE1MDhEMDAwRTYxRDcgLyogU1ZHRWxlbWVudEZhY3RvcnkuY3BwICovLAogCQkJ
CTY1NjU4MUU3MDlEMTUwOEQwMDBFNjFENyAvKiBTVkdFbGVtZW50RmFjdG9yeS5oICovLAogCQkJ
CTY1NjU4MUU4MDlEMTUwOEQwMDBFNjFENyAvKiBTVkdOYW1lcy5jcHAgKi8sCkBAIC0yNTcyMSw2
ICsyNTcyMyw3IEBACiAJCQkJRTE0MjRDOTQxNjRCNTJDODAwRjMyRDQwIC8qIENvb2tpZUphci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxMURDQjExNjRDMzlBODAwRDQ5QkMxIC8qIFdpZHRoQ2Fj
aGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MEI3OEMwMTY1MENFODEwMDFEQkUxQiAvKiBTZWxl
Y3RSdWxlRmVhdHVyZVNldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTNFRjc2NkIxNjUzMEE2MTAw
NENCRTQ5IC8qIFNldHRpbmdzTWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKaW5kZXggNjFhMTY0MThmY2YxMjcxMTI2MGM2NTM3
NzU3OWY2N2QxMzZiODVhOC4uNTNlYzdlNDM4MzU4MGQ4YWJkMGJkOGJkZWM5OGUxMmQ1Y2E4MmYy
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTEzOSw3
ICsxMzksNyBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpzZXRNZXNzYWdlRE9NQW5kU3RhcnRU
aW1lcihUaW1lcjxWYWxpZGF0aW9uTWVzc2FnZT4qKQogICAgICAgICAgICAgbV9tZXNzYWdlSGVh
ZGluZy0+c2V0SW5uZXJUZXh0KGxpbmVzW2ldLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICB9
CiAKLSAgICBpbnQgbWFnbmlmaWNhdGlvbiA9IGRvYy0+cGFnZSgpID8gZG9jLT5wYWdlKCktPnNl
dHRpbmdzKCktPnZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWdpbmlmaWNhdGlvbigpIDogLTE7Cisg
ICAgaW50IG1hZ25pZmljYXRpb24gPSBkb2MtPnBhZ2UoKSA/IGRvYy0+cGFnZSgpLT5zZXR0aW5n
cygpLT52YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbigpIDogLTE7CiAgICAgaWYg
KG1hZ25pZmljYXRpb24gPD0gMCkKICAgICAgICAgbV90aW1lci5jbGVhcigpOwogICAgIGVsc2Ug
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBjZTc2NjlhNmQ3ZjA4MzhiZmEwZmE2ZWRh
ZTIxMWQxMzJlZDJjODRmLi5kMjRhMWMwOWJiNjkxZDVlOTQxNDg0N2RiZmYzYzRlZDg4NWVlYjJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTI5LDIzICsxMjksMTEgQEAgc3RhdGlj
IGNvbnN0IGRvdWJsZSBkZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVv
dXRJblNlY29uZHMgPSA1OwogU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgOiBt
X3BhZ2UoMCkKICAgICAsIG1fbWVkaWFUeXBlT3ZlcnJpZGUoInNjcmVlbiIpCi0gICAgLCBtX2Vk
aXRhYmxlTGlua0JlaGF2aW9yKEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcikKLSAgICAsIG1f
dGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcihUZXh0RGlyZWN0aW9uU3VibWVu
dUF1dG9tYXRpY2FsbHlJbmNsdWRlZCkKLSAgICAsIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNl
Y29uZHMoMSkKICAgICAsIG1fbWluaW11bUZvbnRTaXplKDApCiAgICAgLCBtX21pbmltdW1Mb2dp
Y2FsRm9udFNpemUoMCkKICAgICAsIG1fZGVmYXVsdEZvbnRTaXplKDApCiAgICAgLCBtX2RlZmF1
bHRGaXhlZEZvbnRTaXplKDApCiAgICAgLCBtX3NjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVk
KHRydWUpCi0gICAgLCBtX3ZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKDUwKQot
ICAgICwgbV9taW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUoMjU3ICogMjU2KQotICAgICwg
bV9sYXlvdXRGYWxsYmFja1dpZHRoKDk4MCkKLSAgICAsIG1fbWF4aW11bURlY29kZWRJbWFnZVNp
emUobnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpCi0gICAgLCBtX2RldmljZVdpZHRoKDAp
Ci0gICAgLCBtX2RldmljZUhlaWdodCgwKQotICAgICwgbV9zZXNzaW9uU3RvcmFnZVF1b3RhKFN0
b3JhZ2VNYXA6Om5vUXVvdGEpCi0gICAgLCBtX2VkaXRpbmdCZWhhdmlvclR5cGUoZWRpdGluZ0Jl
aGF2aW9yVHlwZUZvclBsYXRmb3JtKCkpCi0gICAgLCBtX21heGltdW1IVE1MUGFyc2VyRE9NVHJl
ZURlcHRoKGRlZmF1bHRNYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCkKICAgICAsIG1fc3Rv
cmFnZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2UpCiAjaWYg
RU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICAsIG1fdGV4dEF1dG9zaXppbmdGb250U2NhbGVG
YWN0b3IoMSkKQEAgLTE1Niw1OCArMTQ0LDI0IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBw
YWdlKQogICAgICwgbV90ZXh0QXV0b3NpemluZ0VuYWJsZWQoZmFsc2UpCiAjZW5kaWYKICNlbmRp
ZgorICAgIFNFVFRJTkdTX0lOSVRJQUxJWkVSX0xJU1QKICAgICAsIG1faXNTcGF0aWFsTmF2aWdh
dGlvbkVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lzSmF2YUVuYWJsZWQoZmFsc2UpCiAgICAgLCBt
X2lzSmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzKHRydWUpCiAgICAgLCBtX2xvYWRzSW1hZ2VzQXV0
b21hdGljYWxseShmYWxzZSkKLSAgICAsIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9h
ZGluZ1NldHRpbmcoZmFsc2UpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQoZmFsc2Up
Ci0gICAgLCBtX2NhcmV0QnJvd3NpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9hcmVJbWFnZXNF
bmFibGVkKHRydWUpCiAgICAgLCBtX2lzTWVkaWFFbmFibGVkKHRydWUpCiAgICAgLCBtX2FyZVBs
dWdpbnNFbmFibGVkKGZhbHNlKQotICAgICwgbV9sb2NhbFN0b3JhZ2VFbmFibGVkKGZhbHNlKQog
ICAgICwgbV9pc1NjcmlwdEVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lzV2ViU2VjdXJpdHlFbmFi
bGVkKHRydWUpCi0gICAgLCBtX2FsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKHRydWUp
Ci0gICAgLCBtX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVlKQotICAgICwgbV9qYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGZhbHNlKQotICAgICwgbV9zdXBwb3J0
c011bHRpcGxlV2luZG93cyh0cnVlKQotICAgICwgbV9qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJv
YXJkKGZhbHNlKQotICAgICwgbV9zaG91bGRQcmludEJhY2tncm91bmRzKGZhbHNlKQogICAgICwg
bV90ZXh0QXJlYXNBcmVSZXNpemFibGUoZmFsc2UpCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQ
T1JUKQotICAgICwgbV91c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZShmYWxz
ZSkKLSNlbmRpZgogICAgICwgbV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayhmYWxzZSkK
LSAgICAsIG1fbmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MoZmFsc2UpCi0g
ICAgLCBtX3RyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0KGZhbHNlKQotICAgICwgbV9u
ZWVkc0xlb3BhcmRNYWlsUXVpcmtzKGZhbHNlKQogICAgICwgbV9pc0RPTVBhc3RlQWxsb3dlZChm
YWxzZSkKLSAgICAsIG1fc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCh0cnVlKQogICAgICwg
bV91c2VzUGFnZUNhY2hlKGZhbHNlKQotICAgICwgbV9wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMo
ZmFsc2UpCi0gICAgLCBtX3Nob3dzVVJMc0luVG9vbFRpcHMoZmFsc2UpCi0gICAgLCBtX3Nob3dz
VG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0KGZhbHNlKQotICAgICwgbV9mb3JjZUZUUERpcmVjdG9y
eUxpc3RpbmdzKGZhbHNlKQotICAgICwgbV9kZXZlbG9wZXJFeHRyYXNFbmFibGVkKGZhbHNlKQot
ICAgICwgbV9qYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKGZhbHNlKQogICAgICwgbV9hdXRo
b3JBbmRVc2VyU3R5bGVzRW5hYmxlZCh0cnVlKQotICAgICwgbV9uZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcyhmYWxzZSkKICAgICAsIG1fZm9udFJlbmRlcmluZ01vZGUoMCkKLSAgICAsIG1fZnJhbWVG
bGF0dGVuaW5nRW5hYmxlZChmYWxzZSkKLSNpZiBFTkFCTEUoV0VCX0FSQ0hJVkUpCi0gICAgLCBt
X3dlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKGZhbHNlKQotI2VuZGlmCi0gICAgLCBtX2xvY2Fs
RmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2luQXBwbGljYXRpb25D
aHJvbWVNb2RlKGZhbHNlKQotICAgICwgbV9vZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJs
ZWQoZmFsc2UpCi0gICAgLCBtX2VuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlKHRydWUp
Ci0gICAgLCBtX3VzZXNFbmNvZGluZ0RldGVjdG9yKGZhbHNlKQotICAgICwgbV9hbGxvd1Njcmlw
dHNUb0Nsb3NlV2luZG93cyhmYWxzZSkKLSAgICAsIG1fY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJh
d2luZyhmYWxzZSkKLSAgICAsIG1fYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChmYWxzZSkKLSAg
ICAsIG1fYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNDU1NDdXN0
b21GaWx0ZXJFbmFibGVkKGZhbHNlKQogI2lmIEVOQUJMRShDU1NfU1RJQ0tZX1BPU0lUSU9OKQog
ICAgICwgbV9jc3NTdGlja3lQb3NpdGlvbkVuYWJsZWQodHJ1ZSkKQEAgLTIxOCw5MCArMTcyLDI0
IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogI2lmIEVOQUJMRShDU1NfVkFSSUFC
TEVTKQogICAgICwgbV9jc3NWYXJpYWJsZXNFbmFibGVkKGZhbHNlKQogI2VuZGlmCi0gICAgLCBt
X3JlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2Nzc0dyaWRMYXlvdXRF
bmFibGVkKGZhbHNlKQotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZWFsbHkgYmUgZGlzYWJs
ZWQgYnkgZGVmYXVsdCBhcyBpdCBtYWtlcyBwbGF0Zm9ybXMgdGhhdCBkb24ndCBzdXBwb3J0IHRo
ZSBmZWF0dXJlIGRvd25sb2FkIGZpbGVzCi0gICAgLy8gdGhleSBjYW4ndCB1c2UgYnkuIExlYXZp
bmcgZW5hYmxlZCBmb3Igbm93IHRvIG5vdCBjaGFuZ2UgZXhpc3RpbmcgYmVoYXZpb3IuCi0gICAg
LCBtX2Rvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCh0cnVlKQotICAgICwgbV94c3NBdWRp
dG9yRW5hYmxlZChmYWxzZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQo
dHJ1ZSkKLSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJs
ZWQodHJ1ZSkKLSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZCh0
cnVlKQotICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQodHJ1
ZSkKLSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQodHJ1ZSkK
LSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQodHJ1ZSkK
LSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKGZh
bHNlKQotICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0Vu
YWJsZWQoZmFsc2UpCiAgICAgLCBtX3Nob3dEZWJ1Z0JvcmRlcnMoZmFsc2UpCiAgICAgLCBtX3No
b3dSZXBhaW50Q291bnRlcihmYWxzZSkKLSAgICAsIG1fZXhwZXJpbWVudGFsTm90aWZpY2F0aW9u
c0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX3dlYkdMRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fd2Vi
R0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGZhbHNlKQotICAgICwgbV9vcGVuR0xNdWx0aXNhbXBs
aW5nRW5hYmxlZCh0cnVlKQotICAgICwgbV9wcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxl
ZChmYWxzZSkKLSAgICAsIG1fd2ViQXVkaW9FbmFibGVkKGZhbHNlKQotICAgICwgbV9hY2NlbGVy
YXRlZENhbnZhczJkRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fZGVmZXJyZWRDYW52YXMyZEVuYWJs
ZWQoZmFsc2UpCi0gICAgLCBtX2xvYWREZWZlcnJpbmdFbmFibGVkKHRydWUpCiAgICAgLCBtX3Rp
bGVkQmFja2luZ1N0b3JlRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fcGFnaW5hdGVEdXJpbmdMYXlv
dXRFbmFibGVkKGZhbHNlKQogICAgICwgbV9kbnNQcmVmZXRjaGluZ0VuYWJsZWQoZmFsc2UpCi0j
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgICwgbV9mdWxsU2NyZWVuQVBJRW5hYmxlZChm
YWxzZSkKLSNlbmRpZgotICAgICwgbV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChm
YWxzZSkKICNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQogICAgICwgbV91bmlmaWVkVGV4
dENoZWNrZXJFbmFibGVkKHRydWUpCiAjZWxzZQogICAgICwgbV91bmlmaWVkVGV4dENoZWNrZXJF
bmFibGVkKGZhbHNlKQogI2VuZGlmCi0gICAgLCBtX21lbW9yeUluZm9FbmFibGVkKGZhbHNlKQot
ICAgICwgbV9xdWFudGl6ZWRNZW1vcnlJbmZvRW5hYmxlZChmYWxzZSkKLSAgICAsIG1faW50ZXJh
Y3RpdmVGb3JtVmFsaWRhdGlvbihmYWxzZSkKLSAgICAsIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWly
a3MoZmFsc2UpCi0gICAgLCBtX2h5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChmYWxzZSkKLSAgICAs
IG1fY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQoZmFsc2UpCi0g
ICAgLCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlKGZhbHNlKQotICAgICwgbV9zaG91bGRJbmplY3RV
c2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQoZmFsc2UpCi0gICAgLCBtX2ZpeGVkRWxl
bWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoZmFsc2UpCi0gICAgLCBtX2FsbG93RGlzcGxheU9m
SW5zZWN1cmVDb250ZW50KHRydWUpCi0gICAgLCBtX2FsbG93UnVubmluZ09mSW5zZWN1cmVDb250
ZW50KHRydWUpCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiAgICAgLCBtX3Njcm9sbEFu
aW1hdG9yRW5hYmxlZCh0cnVlKQogI2VuZGlmCi0gICAgLCBtX21lZGlhUGxheWJhY2tSZXF1aXJl
c1VzZXJHZXN0dXJlKGZhbHNlKQotICAgICwgbV9tZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lKHRy
dWUpCi0gICAgLCBtX3Bhc3N3b3JkRWNob0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX3N1cHByZXNz
ZXNJbmNyZW1lbnRhbFJlbmRlcmluZyhmYWxzZSkKLSAgICAsIG1fYmFja3NwYWNlS2V5TmF2aWdh
dGlvbkVuYWJsZWQodHJ1ZSkKLSAgICAsIG1fdmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZChmYWxz
ZSkKLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgLCBtX3Nob3VsZERpc3BsYXlTdWJ0aXRs
ZXMoZmFsc2UpCi0gICAgLCBtX3Nob3VsZERpc3BsYXlDYXB0aW9ucyhmYWxzZSkKLSAgICAsIG1f
c2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnMoZmFsc2UpCi0jZW5kaWYKLSAgICAsIG1fc2Ny
b2xsaW5nQ29vcmRpbmF0b3JFbmFibGVkKGZhbHNlKQotICAgICwgbV9ub3RpZmljYXRpb25zRW5h
YmxlZCh0cnVlKQotICAgICwgbV9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyayhmYWxzZSkK
ICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgICwgbV90b3VjaEV2ZW50RW11bGF0aW9uRW5h
YmxlZChmYWxzZSkKICNlbmRpZgotICAgICwgbV9zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bihmYWxzZSkKLSAgICAsIG1fd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcihm
YWxzZSkKLSAgICAsIG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCh0cnVlKQotICAgICwg
bV9kZXZpY2VTdXBwb3J0c1RvdWNoKGZhbHNlKQotICAgICwgbV9kZXZpY2VTdXBwb3J0c01vdXNl
KHRydWUpCi0gICAgLCBtX25lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsoZmFsc2UpCi0gICAg
LCBtX2ZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0KGZhbHNlKQotICAgICwgbV9z
eW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkKHRydWUpCi0gICAgLCBtX2Nvb2tpZUVuYWJsZWQodHJ1
ZSkKLSAgICAsIG1fd2luZG93Rm9jdXNSZXN0cmljdGVkKHRydWUpCi0gICAgLCBtX2RpYWdub3N0
aWNMb2dnaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dn
aW5nRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fYXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0
b3IoZmFsc2UpCi0gICAgLCBtX3BsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQoZmFsc2UpCiAgICAg
LCBtX3NldEltYWdlTG9hZGluZ1NldHRpbmdzVGltZXIodGhpcywgJlNldHRpbmdzOjppbWFnZUxv
YWRpbmdTZXR0aW5nc1RpbWVyRmlyZWQpCi0gICAgLCBtX2luY3JlbWVudGFsUmVuZGVyaW5nU3Vw
cHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzKGRlZmF1bHRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHBy
ZXNzaW9uVGltZW91dEluU2Vjb25kcykKIHsKICAgICAvLyBBIEZyYW1lIG1heSBub3QgaGF2ZSBi
ZWVuIGNyZWF0ZWQgeWV0LCBzbyB3ZSBpbml0aWFsaXplIHRoZSBBdG9taWNTdHJpbmcKICAgICAv
LyBoYXNoIGJlZm9yZSB0cnlpbmcgdG8gdXNlIGl0LgpAQCAtNTA4LDExICszOTYsNiBAQCB2b2lk
IFNldHRpbmdzOjppbWFnZUxvYWRpbmdTZXR0aW5nc1RpbWVyRmlyZWQoVGltZXI8U2V0dGluZ3M+
KikKICAgICBzZXRJbWFnZUxvYWRpbmdTZXR0aW5ncyhtX3BhZ2UpOwogfQogCi12b2lkIFNldHRp
bmdzOjpzZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhib29sIGxv
YWRzU2l0ZUljb25zKQotewotICAgIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGlu
Z1NldHRpbmcgPSBsb2Fkc1NpdGVJY29uczsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0U2NyaXB0
RW5hYmxlZChib29sIGlzU2NyaXB0RW5hYmxlZCkKIHsKICAgICBtX2lzU2NyaXB0RW5hYmxlZCA9
IGlzU2NyaXB0RW5hYmxlZDsKQEAgLTUyMywxNiArNDA2LDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0
V2ViU2VjdXJpdHlFbmFibGVkKGJvb2wgaXNXZWJTZWN1cml0eUVuYWJsZWQpCiAgICAgbV9pc1dl
YlNlY3VyaXR5RW5hYmxlZCA9IGlzV2ViU2VjdXJpdHlFbmFibGVkOwogfQogCi12b2lkIFNldHRp
bmdzOjpzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhib29sIGFsbG93VW5pdmVy
c2FsQWNjZXNzRnJvbUZpbGVVUkxzKQotewotICAgIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9t
RmlsZVVSTHMgPSBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczsKLX0KLQotdm9pZCBT
ZXR0aW5nczo6c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wgYWxsb3dGaWxlQWNj
ZXNzRnJvbUZpbGVVUkxzKQotewotICAgIG1fYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzID0g
YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRTcGF0
aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCkKIHsK
ICAgICBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkID0gaXNTcGF0aWFsTmF2aWdhdGlvbkVu
YWJsZWQ7CkBAIC01NjYsMTYgKzQzOSw2IEBAIHZvaWQgU2V0dGluZ3M6OnNldFBsdWdpbnNFbmFi
bGVkKGJvb2wgYXJlUGx1Z2luc0VuYWJsZWQpCiAgICAgbV9hcmVQbHVnaW5zRW5hYmxlZCA9IGFy
ZVBsdWdpbnNFbmFibGVkOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VFbmFi
bGVkKGJvb2wgbG9jYWxTdG9yYWdlRW5hYmxlZCkKLXsKLSAgICBtX2xvY2FsU3RvcmFnZUVuYWJs
ZWQgPSBsb2NhbFN0b3JhZ2VFbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRTZXNzaW9u
U3RvcmFnZVF1b3RhKHVuc2lnbmVkIHNlc3Npb25TdG9yYWdlUXVvdGEpCi17Ci0gICAgbV9zZXNz
aW9uU3RvcmFnZVF1b3RhID0gc2Vzc2lvblN0b3JhZ2VRdW90YTsKLX0KLQogdm9pZCBTZXR0aW5n
czo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQp
CiB7CiAgICAgLy8gRklYTUUgaHR0cDovL3dlYmtpdC5vcmcvYi82Nzg3MDogVGhlIHByaXZhdGUg
YnJvd3Npbmcgc3RvcmFnZSBzZXNzaW9uIGFuZCBjb29raWUgcHJpdmF0ZQpAQCAtNjAxLDI2ICs0
NjQsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCkKICAgICBtX3BhZ2UtPnByaXZhdGVCcm93c2luZ1N0YXRlQ2hh
bmdlZCgpOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NB
dXRvbWF0aWNhbGx5KGJvb2wgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSkK
LXsKLSAgICBtX2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBqYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRT
dXBwb3J0c011bHRpcGxlV2luZG93cyhib29sIHN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKQotewot
ICAgIG1fc3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MgPSBzdXBwb3J0c011bHRpcGxlV2luZG93czsK
LX0KLQotdm9pZCBTZXR0aW5nczo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChib29s
IGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQpCi17Ci0gICAgbV9qYXZhU2NyaXB0Q2FuQWNj
ZXNzQ2xpcGJvYXJkID0gamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDsKLX0KLQotdm9pZCBT
ZXR0aW5nczo6c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoY29uc3QgU3RyaW5nJiBkZWZhdWx0
VGV4dEVuY29kaW5nTmFtZSkKLXsKLSAgICBtX2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1lID0gZGVm
YXVsdFRleHRFbmNvZGluZ05hbWU7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldFVzZXJTdHlsZVNo
ZWV0TG9jYXRpb24oY29uc3QgS1VSTCYgdXNlclN0eWxlU2hlZXRMb2NhdGlvbikKIHsKICAgICBp
ZiAobV91c2VyU3R5bGVTaGVldExvY2F0aW9uID09IHVzZXJTdHlsZVNoZWV0TG9jYXRpb24pCkBA
IC02MzEsMTYgKzQ3NCw2IEBAIHZvaWQgU2V0dGluZ3M6OnNldFVzZXJTdHlsZVNoZWV0TG9jYXRp
b24oY29uc3QgS1VSTCYgdXNlclN0eWxlU2hlZXRMb2NhdGlvbikKICAgICBtX3BhZ2UtPnVzZXJT
dHlsZVNoZWV0TG9jYXRpb25DaGFuZ2VkKCk7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldEZpeGVk
RWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoYm9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVs
YXRpdmVUb0ZyYW1lKQotewotICAgIG1fZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFt
ZSA9IGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWU7Ci19Ci0KLXZvaWQgU2V0dGlu
Z3M6OnNldFNob3VsZFByaW50QmFja2dyb3VuZHMoYm9vbCBzaG91bGRQcmludEJhY2tncm91bmRz
KQotewotICAgIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyA9IHNob3VsZFByaW50QmFja2dyb3Vu
ZHM7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShib29sIHRl
eHRBcmVhc0FyZVJlc2l6YWJsZSkKIHsKICAgICBpZiAobV90ZXh0QXJlYXNBcmVSZXNpemFibGUg
PT0gdGV4dEFyZWFzQXJlUmVzaXphYmxlKQpAQCAtNjUwLDIzICs0ODMsNiBAQCB2b2lkIFNldHRp
bmdzOjpzZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoYm9vbCB0ZXh0QXJlYXNBcmVSZXNpemFibGUp
CiAgICAgbV9wYWdlLT5zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKIH0KIAotdm9p
ZCBTZXR0aW5nczo6c2V0RWRpdGFibGVMaW5rQmVoYXZpb3IoRWRpdGFibGVMaW5rQmVoYXZpb3Ig
ZWRpdGFibGVMaW5rQmVoYXZpb3IpCi17Ci0gICAgbV9lZGl0YWJsZUxpbmtCZWhhdmlvciA9IGVk
aXRhYmxlTGlua0JlaGF2aW9yOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRUZXh0RGlyZWN0aW9u
U3VibWVudUluY2x1c2lvbkJlaGF2aW9yKFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVo
YXZpb3IgYmVoYXZpb3IpCi17Ci0gICAgbV90ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJl
aGF2aW9yID0gYmVoYXZpb3I7Ci19Ci0KLSNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCi12
b2lkIFNldHRpbmdzOjpzZXRVc2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZShi
b29sIHVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKQotewotICAgIG1fdXNl
c0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUgPSB1c2VzRGFzaGJvYXJkQmFja3dh
cmRDb21wYXRpYmlsaXR5TW9kZTsKLX0KLSNlbmRpZgotCiAvLyBGSVhNRTogVGhpcyBxdWlyayBp
cyBuZWVkZWQgYmVjYXVzZSBvZiBSYWRhciA0Njc0NTM3IGFuZCA1MjExMjcxLiBXZSBuZWVkIHRv
IHBoYXNlIGl0IG91dCBvbmNlIEFkb2JlCiAvLyBjYW4gZml4IHRoZSBidWcgZnJvbSB0aGVpciBl
bmQuCiB2b2lkIFNldHRpbmdzOjpzZXROZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayhib29s
IHNob3VsZE5vdFJlbG9hZElGcmFtZXNGb3JVbmNoYW5nZWRTUkMpCkBAIC02NzQsMjQgKzQ5MCw2
IEBAIHZvaWQgU2V0dGluZ3M6OnNldE5lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrKGJvb2wg
c2hvdWxkTm90UmVsb2FkSUZyYW1lc0ZvclVuCiAgICAgbV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRp
bmdRdWlyayA9IHNob3VsZE5vdFJlbG9hZElGcmFtZXNGb3JVbmNoYW5nZWRTUkM7CiB9CiAKLS8v
IFRoaXMgaXMgYSBxdWlyayB3ZSBhcmUgcHJvLWFjdGl2ZWx5IGFwcGx5aW5nIHRvIG9sZCBhcHBs
aWNhdGlvbnMuIEl0IGNoYW5nZXMga2V5Ym9hcmQgZXZlbnQgZGlzcGF0Y2hpbmcsCi0vLyBtYWtp
bmcga2V5SWRlbnRpZmllciBhdmFpbGFibGUgb24ga2V5cHJlc3MgZXZlbnRzLCBtYWtpbmcgY2hh
ckNvZGUgYXZhaWxhYmxlIG9uIGtleWRvd24va2V5dXAgZXZlbnRzLAotLy8gYW5kIGdldHRpbmcg
a2V5cHJlc3MgZGlzcGF0Y2hlZCBpbiBtb3JlIGNhc2VzLgotdm9pZCBTZXR0aW5nczo6c2V0TmVl
ZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MoYm9vbCBuZWVkc1F1aXJrcykKLXsK
LSAgICBtX25lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzID0gbmVlZHNRdWly
a3M7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNo
ZWV0KGJvb2wgdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQpCi17Ci0gICAgbV90cmVh
dHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldCA9IHRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHls
ZXNoZWV0OwotfQotCi12b2lkIFNldHRpbmdzOjpzZXROZWVkc0xlb3BhcmRNYWlsUXVpcmtzKGJv
b2wgbmVlZHNRdWlya3MpCi17Ci0gICAgbV9uZWVkc0xlb3BhcmRNYWlsUXVpcmtzID0gbmVlZHNR
dWlya3M7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldERPTVBhc3RlQWxsb3dlZChib29sIERPTVBh
c3RlQWxsb3dlZCkKIHsKICAgICBtX2lzRE9NUGFzdGVBbGxvd2VkID0gRE9NUGFzdGVBbGxvd2Vk
OwpAQCAtNzUyLDQxICs1NTAsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRVc2VzUGFnZUNhY2hlKGJv
b2wgdXNlc1BhZ2VDYWNoZSkKICAgICB9CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldFNocmlua3NT
dGFuZGFsb25lSW1hZ2VzVG9GaXQoYm9vbCBzaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KQot
ewotICAgIG1fc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCA9IHNocmlua3NTdGFuZGFsb25l
SW1hZ2VzVG9GaXQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFNob3dzVVJMc0luVG9vbFRpcHMo
Ym9vbCBzaG93c1VSTHNJblRvb2xUaXBzKQotewotICAgIG1fc2hvd3NVUkxzSW5Ub29sVGlwcyA9
IHNob3dzVVJMc0luVG9vbFRpcHM7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFNob3dzVG9vbFRp
cE92ZXJUcnVuY2F0ZWRUZXh0KGJvb2wgc2hvd3NUb29sVGlwRm9yVHJ1bmNhdGVkVGV4dCkKLXsK
LSAgICBtX3Nob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0ID0gc2hvd3NUb29sVGlwRm9yVHJ1
bmNhdGVkVGV4dDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0RlRQRGlyZWN0b3J5VGVtcGxhdGVQ
YXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAgICBtX2Z0cERpcmVjdG9yeVRlbXBsYXRlUGF0
aCA9IHBhdGg7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEZvcmNlRlRQRGlyZWN0b3J5TGlzdGlu
Z3MoYm9vbCBmb3JjZSkKLXsKLSAgICBtX2ZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3MgPSBmb3Jj
ZTsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sIGRl
dmVsb3BlckV4dHJhc0VuYWJsZWQpCi17Ci0gICAgbV9kZXZlbG9wZXJFeHRyYXNFbmFibGVkID0g
ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0SmF2YVNjcmlw
dEV4cGVyaW1lbnRzRW5hYmxlZChib29sIGphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQpCi17
Ci0gICAgbV9qYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkID0gamF2YVNjcmlwdEV4cGVyaW1l
bnRzRW5hYmxlZDsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0QXV0aG9yQW5kVXNlclN0eWxlc0Vu
YWJsZWQoYm9vbCBhdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCkKIHsKICAgICBpZiAobV9hdXRo
b3JBbmRVc2VyU3R5bGVzRW5hYmxlZCA9PSBhdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCkKQEAg
LTgwOSw0OCArNTcyLDExIEBAIEZvbnRSZW5kZXJpbmdNb2RlIFNldHRpbmdzOjpmb250UmVuZGVy
aW5nTW9kZSgpIGNvbnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEZvbnRSZW5kZXJpbmdNb2Rl
PihtX2ZvbnRSZW5kZXJpbmdNb2RlKTsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0TmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MoYm9vbCBuZWVkc1F1aXJrcykKLXsKLSAgICBtX25lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzID0gbmVlZHNRdWlya3M7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEZyYW1lRmxh
dHRlbmluZ0VuYWJsZWQoYm9vbCBmcmFtZUZsYXR0ZW5pbmdFbmFibGVkKQotewotICAgIG1fZnJh
bWVGbGF0dGVuaW5nRW5hYmxlZCA9IGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ7Ci19Ci0KLSNpZiBF
TkFCTEUoV0VCX0FSQ0hJVkUpCi12b2lkIFNldHRpbmdzOjpzZXRXZWJBcmNoaXZlRGVidWdNb2Rl
RW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV93ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxl
ZCA9IGVuYWJsZWQ7Ci19Ci0jZW5kaWYKLQotdm9pZCBTZXR0aW5nczo6c2V0TG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9sb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0TG9j
YWxTdG9yYWdlRGF0YWJhc2VQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAgICBtX2xvY2Fs
U3RvcmFnZURhdGFiYXNlUGF0aCA9IHBhdGg7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldEFwcGxp
Y2F0aW9uQ2hyb21lTW9kZShib29sIG1vZGUpCiB7CiAgICAgbV9pbkFwcGxpY2F0aW9uQ2hyb21l
TW9kZSA9IG1vZGU7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldE9mZmxpbmVXZWJBcHBsaWNhdGlv
bkNhY2hlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9vZmZsaW5lV2ViQXBwbGljYXRp
b25DYWNoZUVuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRFbmZvcmNl
Q1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZShib29sIGVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWly
a3NNb2RlKQotewotICAgIG1fZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUgPSBlbmZv
cmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZTsKLX0KLQogI2lmIFVTRShTQUZBUklfVEhFTUUp
CiB2b2lkIFNldHRpbmdzOjpzZXRTaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKGJvb2wgc2hvdWxk
UGFpbnROYXRpdmVDb250cm9scykKIHsKQEAgLTg1OCwxMSArNTg0LDYgQEAgdm9pZCBTZXR0aW5n
czo6c2V0U2hvdWxkUGFpbnROYXRpdmVDb250cm9scyhib29sIHNob3VsZFBhaW50TmF0aXZlQ29u
dHJvbHMpCiB9CiAjZW5kaWYKIAotdm9pZCBTZXR0aW5nczo6c2V0VXNlc0VuY29kaW5nRGV0ZWN0
b3IoYm9vbCB1c2VzRW5jb2RpbmdEZXRlY3RvcikKLXsKLSAgICBtX3VzZXNFbmNvZGluZ0RldGVj
dG9yID0gdXNlc0VuY29kaW5nRGV0ZWN0b3I7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldEROU1By
ZWZldGNoaW5nRW5hYmxlZChib29sIGRuc1ByZWZldGNoaW5nRW5hYmxlZCkKIHsKICAgICBpZiAo
bV9kbnNQcmVmZXRjaGluZ0VuYWJsZWQgPT0gZG5zUHJlZmV0Y2hpbmdFbmFibGVkKQpAQCAtODcy
LDI2ICs1OTMsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoYm9v
bCBkbnNQcmVmZXRjaGluZ0VuYWJsZWQpCiAgICAgbV9wYWdlLT5kbnNQcmVmZXRjaGluZ1N0YXRl
Q2hhbmdlZCgpOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRBbGxvd1NjcmlwdHNUb0Nsb3NlV2lu
ZG93cyhib29sIGFsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzKQotewotICAgIG1fYWxsb3dTY3Jp
cHRzVG9DbG9zZVdpbmRvd3MgPSBhbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93czsKLX0KLQotdm9p
ZCBTZXR0aW5nczo6c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9vbCBjYXJldEJyb3dzaW5nRW5h
YmxlZCkKLXsKLSAgICBtX2NhcmV0QnJvd3NpbmdFbmFibGVkID0gY2FyZXRCcm93c2luZ0VuYWJs
ZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldERvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxl
ZChib29sIGRvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCkKLXsKLSAgICBtX2Rvd25sb2Fk
YWJsZUJpbmFyeUZvbnRzRW5hYmxlZCA9IGRvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZDsK
LX0KLQotdm9pZCBTZXR0aW5nczo6c2V0WFNTQXVkaXRvckVuYWJsZWQoYm9vbCB4c3NBdWRpdG9y
RW5hYmxlZCkKLXsKLSAgICBtX3hzc0F1ZGl0b3JFbmFibGVkID0geHNzQXVkaXRvckVuYWJsZWQ7
Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGJv
b2wgZW5hYmxlZCkKIHsKICAgICBpZiAobV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9
PSBlbmFibGVkKQpAQCAtOTAxLDM2ICs2MDIsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbV9wYWdlLT5zZXROZWVk
c1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0Q2FudmFz
VXNlc0FjY2VsZXJhdGVkRHJhd2luZyhib29sIGVuYWJsZWQpCi17Ci0gICAgbV9jYW52YXNVc2Vz
QWNjZWxlcmF0ZWREcmF3aW5nID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJsZWQoYm9vbCBlbmFibGVkKQot
ewotICAgIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJsZWQgPSBl
bmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
VmlkZW9FbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdGb3JWaWRlb0VuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAg
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkID0gZW5hYmxlZDsKLX0K
LQotdm9pZCBTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJs
ZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZh
c0VuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9hY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KIHZv
aWQgU2V0dGluZ3M6OnNldFNob3dEZWJ1Z0JvcmRlcnMoYm9vbCBlbmFibGVkKQogewogICAgIGlm
IChtX3Nob3dEZWJ1Z0JvcmRlcnMgPT0gZW5hYmxlZCkKQEAgLTk0OSwxMSArNjIwLDYgQEAgdm9p
ZCBTZXR0aW5nczo6c2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wgZW5hYmxlZCkKICAgICBtX3Bh
Z2UtPnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOwogfQogCi12b2lkIFNldHRpbmdz
OjpzZXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0g
ICAgbV9leHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KICNp
ZiBQTEFURk9STShXSU4pIHx8IChPUyhXSU5ET1dTKSAmJiBQTEFURk9STShXWCkpCiB2b2lkIFNl
dHRpbmdzOjpzZXRTaG91bGRVc2VIaWdoUmVzb2x1dGlvblRpbWVycyhib29sIHNob3VsZFVzZUhp
Z2hSZXNvbHV0aW9uVGltZXJzKQogewpAQCAtOTYxLDUxICs2MjcsNiBAQCB2b2lkIFNldHRpbmdz
OjpzZXRTaG91bGRVc2VIaWdoUmVzb2x1dGlvblRpbWVycyhib29sIHNob3VsZFVzZUhpZ2hSZXNv
bHV0aW9uVGltZQogfQogI2VuZGlmCiAKLXZvaWQgU2V0dGluZ3M6OnNldFdlYkF1ZGlvRW5hYmxl
ZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV93ZWJBdWRpb0VuYWJsZWQgPSBlbmFibGVkOwotfQot
Ci12b2lkIFNldHRpbmdzOjpzZXRXZWJHTEVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1f
d2ViR0xFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0V2ViR0xFcnJv
cnNUb0NvbnNvbGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3dlYkdMRXJyb3JzVG9D
b25zb2xlRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldE9wZW5HTE11
bHRpc2FtcGxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX29wZW5HTE11bHRpc2Ft
cGxpbmdFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0UHJpdmlsZWdl
ZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fcHJpdmlsZWdl
ZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpz
ZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9hY2Nl
bGVyYXRlZENhbnZhczJkRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNl
dERlZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2RlZmVycmVk
Q2FudmFzMmRFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0TWluaW11
bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplKGludCBudW1QaXhlbHMpCi17Ci0gICAgbV9taW5pbXVt
QWNjZWxlcmF0ZWQyZENhbnZhc1NpemUgPSBudW1QaXhlbHM7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6
OnNldExvYWREZWZlcnJpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2xvYWREZWZl
cnJpbmdFbmFibGVkID0gZW5hYmxlZDsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0U3RvcmFnZUJs
b2NraW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgZW5hYmxl
ZCkKIHsKICAgICBpZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gZW5hYmxlZCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAppbmRleCBmMDUzZjU0MWVkNTBiOTI0NzM0MzExMTcxMmRjZThlZjgwZjUx
YjdkLi5mMzIwZDQ1NmIxNmZjY2UzOTUwNGQzNDI3ZmVlZjA3ZjlkMWEwMmY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2lu
Y2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlNl
dHRpbmdzTWFjcm9zLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAtMTMzLDExICsxMzQs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0TG9hZHNJbWFnZXNBdXRv
bWF0aWNhbGx5KGJvb2wpOwogICAgICAgICBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgp
IGNvbnN0IHsgcmV0dXJuIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OyB9CiAKLSAgICAgICAg
Ly8gVGhpcyBzZXR0aW5nIG9ubHkgYWZmZWN0cyBzaXRlIGljb24gaW1hZ2UgbG9hZGluZyBpZiBs
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgc2V0dGluZyBpcyBmYWxzZSBhbmQgdGhpcyBzZXR0aW5n
IGlzIHRydWUuCi0gICAgICAgIC8vIEFsbCBvdGhlciBwZXJtdXRhdGlvbnMgc3RpbGwgaGVlZCBs
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgc2V0dGluZy4KLSAgICAgICAgdm9pZCBzZXRMb2Fkc1Np
dGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhib29sKTsKLSAgICAgICAgYm9vbCBs
b2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZygpIGNvbnN0IHsgcmV0dXJu
IG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmc7IH0KLQogICAgICAg
ICB2b2lkIHNldFNjcmlwdEVuYWJsZWQoYm9vbCk7CiAgICAgICAgIC8vIEluc3RlYWQgb2YgY2Fs
bGluZyBpc1NjcmlwdEVuYWJsZWQgZGlyZWN0bHksIHBsZWFzZSBjb25zaWRlciBjYWxsaW5nCiAg
ICAgICAgIC8vIFNjcmlwdENvbnRyb2xsZXI6OmNhbkV4ZWN1dGVTY3JpcHRzLCB3aGljaCB0YWtl
cyB0aGluZ3MgbGlrZSB0aGUKQEAgLTE0NywyMCArMTQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIHNldFdlYlNlY3VyaXR5RW5hYmxlZChib29sKTsKICAgICAgICAgYm9v
bCBpc1dlYlNlY3VyaXR5RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNXZWJTZWN1cml0eUVu
YWJsZWQ7IH0KIAotICAgICAgICB2b2lkIHNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVV
UkxzKGJvb2wpOwotICAgICAgICBib29sIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxz
KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczsgfQot
Ci0gICAgICAgIHZvaWQgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wpOwotICAg
ICAgICBib29sIGFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcygpIGNvbnN0IHsgcmV0dXJuIG1f
YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRKYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpOwotICAgICAgICBib29sIGphdmFT
Y3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKSBjb25zdCB7IHJldHVybiBtX2phdmFT
Y3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHk7IH0KLQotICAgICAgICB2b2lkIHNldFN1
cHBvcnRzTXVsdGlwbGVXaW5kb3dzKGJvb2wpOwotICAgICAgICBib29sIHN1cHBvcnRzTXVsdGlw
bGVXaW5kb3dzKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c011bHRpcGxlV2luZG93czsgfQot
Ci0gICAgICAgIHZvaWQgc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChib29sKTsKLSAg
ICAgICAgYm9vbCBqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKCkgY29uc3QgeyByZXR1cm4g
bV9qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkOyB9CisgICAgICAgIFNFVFRJTkdTX0dFVFRF
UlNfQU5EX1NFVFRFUlMKIAogICAgICAgICB2b2lkIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxl
ZChib29sKTsKICAgICAgICAgYm9vbCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1faXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ7IH0KQEAgLTE4MSwxNSArMTY0
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldFBsdWdpbnNFbmFibGVk
KGJvb2wpOwogICAgICAgICBib29sIGFyZVBsdWdpbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9hcmVQbHVnaW5zRW5hYmxlZDsgfQogCi0gICAgICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlRW5h
YmxlZChib29sKTsKLSAgICAgICAgYm9vbCBsb2NhbFN0b3JhZ2VFbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9sb2NhbFN0b3JhZ2VFbmFibGVkOyB9Ci0KLSAgICAgICAgLy8gQWxsb3cgY2xpZW50
cyBjb25jZXJuZWQgd2l0aCBtZW1vcnkgY29uc3VtcHRpb24gdG8gc2V0IGEgcXVvdGEgb24gc2Vz
c2lvbiBzdG9yYWdlCi0gICAgICAgIC8vIHNpbmNlIHRoZSBtZW1vcnkgdXNlZCB3b24ndCBiZSBy
ZWxlYXNlZCB1bnRpbCB0aGUgUGFnZSBpcyBkZXN0cm95ZWQuCi0gICAgICAgIC8vIERlZmF1bHQg
aXMgbm9RdW90YS4KLSAgICAgICAgdm9pZCBzZXRTZXNzaW9uU3RvcmFnZVF1b3RhKHVuc2lnbmVk
KTsKLSAgICAgICAgdW5zaWduZWQgc2Vzc2lvblN0b3JhZ2VRdW90YSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2Vzc2lvblN0b3JhZ2VRdW90YTsgfQotCiAgICAgICAgIC8vIFdoZW4gdGhpcyBvcHRpb24g
aXMgc2V0LCBXZWJDb3JlIHdpbGwgYXZvaWQgc3RvcmluZyBhbnkgcmVjb3JkIG9mIGJyb3dzaW5n
IGFjdGl2aXR5CiAgICAgICAgIC8vIHRoYXQgbWF5IHBlcnNpc3Qgb24gZGlzayBvciByZW1haW4g
ZGlzcGxheWVkIHdoZW4gdGhlIG9wdGlvbiBpcyByZXNldC4KICAgICAgICAgLy8gVGhpcyBvcHRp
b24gZG9lcyBub3QgYWZmZWN0IHRoZSBzdG9yYWdlIG9mIHN1Y2ggaW5mb3JtYXRpb24gaW4gUkFN
LgpAQCAtMjA2LDUzICsxODAsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lk
IHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgcHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDsg
fQogCi0gICAgICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9vbCk7Ci0gICAgICAg
IGJvb2wgY2FyZXRCcm93c2luZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2NhcmV0QnJvd3Np
bmdFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShj
b25zdCBTdHJpbmcmKTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBkZWZhdWx0VGV4dEVuY29kaW5n
TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdFRleHRFbmNvZGluZ05hbWU7IH0KLSAgICAg
ICAgCi0gICAgICAgIHZvaWQgc2V0VXNlc0VuY29kaW5nRGV0ZWN0b3IoYm9vbCk7Ci0gICAgICAg
IGJvb2wgdXNlc0VuY29kaW5nRGV0ZWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3VzZXNFbmNvZGlu
Z0RldGVjdG9yOyB9Ci0KICAgICAgICAgdm9pZCBzZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoYm9v
bCk7CiAgICAgICAgIGJvb2wgZG5zUHJlZmV0Y2hpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9kbnNQcmVmZXRjaGluZ0VuYWJsZWQ7IH0KIAogICAgICAgICB2b2lkIHNldFVzZXJTdHlsZVNo
ZWV0TG9jYXRpb24oY29uc3QgS1VSTCYpOwogICAgICAgICBjb25zdCBLVVJMJiB1c2VyU3R5bGVT
aGVldExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOyB9
CiAKLSAgICAgICAgdm9pZCBzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJv
b2wpOwotICAgICAgICBib29sIGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSBj
b25zdCB7IHJldHVybiBtX2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWU7IH0KLQot
ICAgICAgICB2b2lkIHNldFNob3VsZFByaW50QmFja2dyb3VuZHMoYm9vbCk7Ci0gICAgICAgIGJv
b2wgc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkUHJpbnRC
YWNrZ3JvdW5kczsgfQotCiAgICAgICAgIHZvaWQgc2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKGJv
b2wpOwogICAgICAgICBib29sIHRleHRBcmVhc0FyZVJlc2l6YWJsZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdGV4dEFyZWFzQXJlUmVzaXphYmxlOyB9CiAKLSAgICAgICAgdm9pZCBzZXRFZGl0YWJsZUxp
bmtCZWhhdmlvcihFZGl0YWJsZUxpbmtCZWhhdmlvcik7Ci0gICAgICAgIEVkaXRhYmxlTGlua0Jl
aGF2aW9yIGVkaXRhYmxlTGlua0JlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9lZGl0YWJsZUxp
bmtCZWhhdmlvcjsgfQotCi0gICAgICAgIHZvaWQgc2V0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNs
dXNpb25CZWhhdmlvcihUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKTsKLSAg
ICAgICAgVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciB0ZXh0RGlyZWN0aW9u
U3VibWVudUluY2x1c2lvbkJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0RGlyZWN0aW9u
U3VibWVudUluY2x1c2lvbkJlaGF2aW9yOyB9Ci0KLSNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBP
UlQpCi0gICAgICAgIHZvaWQgc2V0VXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1v
ZGUoYm9vbCk7Ci0gICAgICAgIGJvb2wgdXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0
eU1vZGUoKSBjb25zdCB7IHJldHVybiBtX3VzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxp
dHlNb2RlOyB9Ci0jZW5kaWYKLSAgICAgICAgCiAgICAgICAgIHZvaWQgc2V0TmVlZHNBZG9iZUZy
YW1lUmVsb2FkaW5nUXVpcmsoYm9vbCk7CiAgICAgICAgIGJvb2wgbmVlZHNBY3JvYmF0RnJhbWVS
ZWxvYWRpbmdRdWlyaygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5n
UXVpcms7IH0KIAotICAgICAgICB2b2lkIHNldE5lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0
aW9uUXVpcmtzKGJvb2wpOwotICAgICAgICBib29sIG5lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmln
dWF0aW9uUXVpcmtzKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0tleWJvYXJkRXZlbnREaXNhbWJp
Z3VhdGlvblF1aXJrczsgfQotCi0gICAgICAgIHZvaWQgc2V0VHJlYXRzQW55VGV4dENTU0xpbmtB
c1N0eWxlc2hlZXQoYm9vbCk7Ci0gICAgICAgIGJvb2wgdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0
eWxlc2hlZXQoKSBjb25zdCB7IHJldHVybiBtX3RyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNo
ZWV0OyB9Ci0KLSAgICAgICAgdm9pZCBzZXROZWVkc0xlb3BhcmRNYWlsUXVpcmtzKGJvb2wpOwot
ICAgICAgICBib29sIG5lZWRzTGVvcGFyZE1haWxRdWlya3MoKSBjb25zdCB7IHJldHVybiBtX25l
ZWRzTGVvcGFyZE1haWxRdWlya3M7IH0KLQogICAgICAgICB2b2lkIHNldERPTVBhc3RlQWxsb3dl
ZChib29sKTsKICAgICAgICAgYm9vbCBpc0RPTVBhc3RlQWxsb3dlZCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNET01QYXN0ZUFsbG93ZWQ7IH0KICAgICAgICAgCkBAIC0yNzEsODYgKzIxMCwxNSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0VXNlc1BhZ2VDYWNoZShib29sKTsK
ICAgICAgICAgYm9vbCB1c2VzUGFnZUNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV91c2VzUGFnZUNh
Y2hlOyB9CiAgICAgICAgIAotICAgICAgICB2b2lkIHNldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lu
cyhib29sIHBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucykgeyBtX3BhZ2VDYWNoZVN1cHBvcnRzUGx1
Z2lucyA9IHBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2luczsgfQotICAgICAgICBib29sIHBhZ2VDYWNo
ZVN1cHBvcnRzUGx1Z2lucygpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUNhY2hlU3VwcG9ydHNQbHVn
aW5zOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KGJv
b2wpOwotICAgICAgICBib29sIHNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoKSBjb25zdCB7
IHJldHVybiBtX3Nocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQ7IH0KLQotICAgICAgICB2b2lk
IHNldFNob3dzVVJMc0luVG9vbFRpcHMoYm9vbCk7Ci0gICAgICAgIGJvb2wgc2hvd3NVUkxzSW5U
b29sVGlwcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd3NVUkxzSW5Ub29sVGlwczsgfQotCi0gICAg
ICAgIHZvaWQgc2V0U2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQoYm9vbCk7Ci0gICAgICAg
IGJvb2wgc2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQoKSBjb25zdCB7IHJldHVybiBtX3No
b3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRGVFBEaXJl
Y3RvcnlUZW1wbGF0ZVBhdGgoY29uc3QgU3RyaW5nJik7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYg
ZnRwRGlyZWN0b3J5VGVtcGxhdGVQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9mdHBEaXJlY3RvcnlU
ZW1wbGF0ZVBhdGg7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0Rm9yY2VGVFBEaXJlY3Rv
cnlMaXN0aW5ncyhib29sKTsKLSAgICAgICAgYm9vbCBmb3JjZUZUUERpcmVjdG9yeUxpc3Rpbmdz
KCkgY29uc3QgeyByZXR1cm4gbV9mb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzOyB9Ci0gICAgICAg
IAotICAgICAgICB2b2lkIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCk7Ci0gICAgICAg
IGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2ZWxvcGVy
RXh0cmFzRW5hYmxlZDsgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRKYXZhU2NyaXB0RXhw
ZXJpbWVudHNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGphdmFTY3JpcHRFeHBlcmltZW50
c0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2phdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQ7
IH0KLQotICAgICAgICB2b2lkIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoYm9vbCk7Ci0gICAg
ICAgIGJvb2wgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVG
bGF0dGVuaW5nRW5hYmxlZDsgfQotCiAgICAgICAgIHZvaWQgc2V0QXV0aG9yQW5kVXNlclN0eWxl
c0VuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2F1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkOyB9CiAgICAgICAg
IAogICAgICAgICB2b2lkIHNldEZvbnRSZW5kZXJpbmdNb2RlKEZvbnRSZW5kZXJpbmdNb2RlIG1v
ZGUpOwogICAgICAgICBGb250UmVuZGVyaW5nTW9kZSBmb250UmVuZGVyaW5nTW9kZSgpIGNvbnN0
OwogCi0gICAgICAgIHZvaWQgc2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoYm9vbCk7Ci0gICAg
ICAgIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdCB7IHJldHVybiBtX25lZWRz
U2l0ZVNwZWNpZmljUXVpcmtzOyB9Ci0KLSNpZiBFTkFCTEUoV0VCX0FSQ0hJVkUpCi0gICAgICAg
IHZvaWQgc2V0V2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wg
d2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3dlYkFyY2hpdmVE
ZWJ1Z01vZGVFbmFibGVkOyB9Ci0jZW5kaWYKLQotICAgICAgICB2b2lkIHNldExvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgbG9jYWxGaWxlQ29udGVu
dFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxGaWxlQ29udGVudFNuaWZm
aW5nRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRo
KGNvbnN0IFN0cmluZyYpOwotICAgICAgICBjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURhdGFi
YXNlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoOyB9Ci0K
ICAgICAgICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNocm9tZU1vZGUoYm9vbCk7CiAgICAgICAgIGJv
b2wgaW5BcHBsaWNhdGlvbkNocm9tZU1vZGUoKSBjb25zdCB7IHJldHVybiBtX2luQXBwbGljYXRp
b25DaHJvbWVNb2RlOyB9CiAKLSAgICAgICAgdm9pZCBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25D
YWNoZUVuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9vZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVu
YWJsZWQ7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0RW5mb3JjZUNTU01JTUVUeXBlSW5O
b1F1aXJrc01vZGUoYm9vbCk7Ci0gICAgICAgIGJvb2wgZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1
aXJrc01vZGUoKSB7IHJldHVybiBtX2VuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlOyB9
Ci0KLSAgICAgICAgdm9pZCBzZXRNYXhpbXVtRGVjb2RlZEltYWdlU2l6ZShzaXplX3Qgc2l6ZSkg
eyBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplID0gc2l6ZTsgfQotICAgICAgICBzaXplX3QgbWF4
aW11bURlY29kZWRJbWFnZVNpemUoKSBjb25zdCB7IHJldHVybiBtX21heGltdW1EZWNvZGVkSW1h
Z2VTaXplOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cyhi
b29sKTsKLSAgICAgICAgYm9vbCBhbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cygpIGNvbnN0IHsg
cmV0dXJuIG1fYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3M7IH0KLQotICAgICAgICB2b2lkIHNl
dEVkaXRpbmdCZWhhdmlvclR5cGUoRWRpdGluZ0JlaGF2aW9yVHlwZSBiZWhhdmlvcikgeyBtX2Vk
aXRpbmdCZWhhdmlvclR5cGUgPSBiZWhhdmlvcjsgfQotICAgICAgICBFZGl0aW5nQmVoYXZpb3JU
eXBlIGVkaXRpbmdCZWhhdmlvclR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFZGl0
aW5nQmVoYXZpb3JUeXBlPihtX2VkaXRpbmdCZWhhdmlvclR5cGUpOyB9Ci0KLSAgICAgICAgdm9p
ZCBzZXREb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wg
ZG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kb3dubG9h
ZGFibGVCaW5hcnlGb250c0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldFhTU0F1ZGl0b3JF
bmFibGVkKGJvb2wpOwotICAgICAgICBib29sIHhzc0F1ZGl0b3JFbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV94c3NBdWRpdG9yRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0Q2FudmFzVXNl
c0FjY2VsZXJhdGVkRHJhd2luZyhib29sKTsKLSAgICAgICAgYm9vbCBjYW52YXNVc2VzQWNjZWxl
cmF0ZWREcmF3aW5nKCkgY29uc3QgeyByZXR1cm4gbV9jYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3
aW5nOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wg
ZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAg
ICAgIGJvb2wgYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNj
ZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRG
aWx0ZXJzRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVk
ID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQ7IH0KLQogICAgICAgICB2
b2lkIHNldENTU0N1c3RvbUZpbHRlckVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1faXNDU1NDdXN0
b21GaWx0ZXJFbmFibGVkID0gZW5hYmxlZDsgfQogICAgICAgICBib29sIGlzQ1NTQ3VzdG9tRmls
dGVyRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDU1NDdXN0b21GaWx0ZXJFbmFibGVkOyB9
CiAKQEAgLTM3OCwxODQgKzI0NiwzOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJv
b2wgY3NzVmFyaWFibGVzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYK
IAotICAgICAgICB2b2lkIHNldFJlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQoYm9vbCBlbmFibGVk
KSB7IG1fcmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9v
bCByZWdpb25CYXNlZENvbHVtbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZWdpb25CYXNl
ZENvbHVtbnNFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRDU1NHcmlkTGF5b3V0RW5hYmxl
ZChib29sIGVuYWJsZWQpIHsgbV9jc3NHcmlkTGF5b3V0RW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAg
ICAgICAgYm9vbCBjc3NHcmlkTGF5b3V0RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY3NzR3Jp
ZExheW91dEVuYWJsZWQ7IH0KLQogICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsgfQog
Ci0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0Vu
YWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJh
bnNmb3Jtc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3IzRFRyYW5zZm9ybXNFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nRm9yVmlkZW9FbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdGb3JQbHVnaW5zRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBhY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JQbHVnaW5zRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQg
c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQoYm9vbCk7Ci0gICAgICAg
IGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkOyB9Ci0KLSAgICAg
ICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZChib29s
KTsKLSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVu
YWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhl
ZFBvc2l0aW9uRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQ7IH0KLQotICAg
ICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5h
YmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJs
ZUZyYW1lc0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQ7IH0KLQotICAgICAg
ICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQo
Ym9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xs
RW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENv
bXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkOyB9OwotCiAgICAgICAgIHZvaWQgc2V0
U2hvd0RlYnVnQm9yZGVycyhib29sKTsKICAgICAgICAgYm9vbCBzaG93RGVidWdCb3JkZXJzKCkg
Y29uc3QgeyByZXR1cm4gbV9zaG93RGVidWdCb3JkZXJzOyB9CiAKICAgICAgICAgdm9pZCBzZXRT
aG93UmVwYWludENvdW50ZXIoYm9vbCk7CiAgICAgICAgIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVy
KCkgY29uc3QgeyByZXR1cm4gbV9zaG93UmVwYWludENvdW50ZXI7IH0KIAotICAgICAgICB2b2lk
IHNldEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29s
IGV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9leHBl
cmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZDsgfQotCiAjaWYgUExBVEZPUk0oV0lOKSB8fCAo
T1MoV0lORE9XUykgJiYgUExBVEZPUk0oV1gpKQogICAgICAgICBzdGF0aWMgdm9pZCBzZXRTaG91
bGRVc2VIaWdoUmVzb2x1dGlvblRpbWVycyhib29sKTsKICAgICAgICAgc3RhdGljIGJvb2wgc2hv
dWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnMoKSB7IHJldHVybiBnU2hvdWxkVXNlSGlnaFJlc29s
dXRpb25UaW1lcnM7IH0KICNlbmRpZgogCi0gICAgICAgIHZvaWQgc2V0V2ViQXVkaW9FbmFibGVk
KGJvb2wpOwotICAgICAgICBib29sIHdlYkF1ZGlvRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
d2ViQXVkaW9FbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRXZWJHTEVuYWJsZWQoYm9vbCk7
Ci0gICAgICAgIGJvb2wgd2ViR0xFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV93ZWJHTEVuYWJs
ZWQ7IH0KLQotICAgICAgICB2b2lkIHNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChib29s
KTsKLSAgICAgICAgYm9vbCB3ZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX3dlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0
T3BlbkdMTXVsdGlzYW1wbGluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgb3BlbkdMTXVs
dGlzYW1wbGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX29wZW5HTE11bHRpc2FtcGxpbmdF
bmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRQcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5h
YmxlZChib29sKTsKLSAgICAgICAgYm9vbCBwcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQ7IH0K
LQotICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGJvb2wpOwotICAg
ICAgICBib29sIGFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9h
Y2NlbGVyYXRlZENhbnZhczJkRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGVmZXJyZWQy
ZENhbnZhc0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgZGVmZXJyZWQyZENhbnZhc0VuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2RlZmVycmVkQ2FudmFzMmRFbmFibGVkOyB9Ci0KLSAgICAg
ICAgLy8gTnVtYmVyIG9mIHBpeGVscyBiZWxvdyB3aGljaCAyRCBjYW52YXMgaXMgcmVuZGVyZWQg
aW4gc29mdHdhcmUKLSAgICAgICAgLy8gZXZlbiBpZiBoYXJkd2FyZSBhY2NlbGVyYXRpb24gaXMg
ZW5hYmxlZC4KLSAgICAgICAgLy8gSGFyZHdhcmUgYWNjZWxlcmF0aW9uIGlzIHVzZWZ1bCBmb3Ig
bGFyZ2UgY2FudmFzZXMgd2hlcmUgaXQgY2FuIGF2b2lkIHRoZQotICAgICAgICAvLyBwaXhlbCBi
YW5kd2lkdGggYmV0d2VlbiB0aGUgQ1BVIGFuZCBHUFUuIEJ1dCBHUFUgYWNjZWxlcmF0aW9uIGNv
bWVzIGF0Ci0gICAgICAgIC8vIGEgcHJpY2UgLSBleHRyYSBiYWNrLWJ1ZmZlciBhbmQgdGV4dHVy
ZSBjb3B5LiBTbWFsbCBjYW52YXNlcyBhcmUgYWxzbwotICAgICAgICAvLyB3aWRlbHkgdXNlZCBm
b3Igc3R5bGl6ZWQgZm9udHMuIEFudGktYWxpYXNpbmcgdGV4dCBpbiBoYXJkd2FyZSBhdCB0aGF0
Ci0gICAgICAgIC8vIHNjYWxlIGlzIGdlbmVyYWxseSBzbG93ZXIuIFNvIGJlbG93IGEgY2VydGFp
biBzaXplIGl0IGlzIGJldHRlciB0bwotICAgICAgICAvLyBkcmF3IGNhbnZhcyBpbiBzb2Z0d2Fy
ZS4KLSAgICAgICAgdm9pZCBzZXRNaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUoaW50KTsK
LSAgICAgICAgaW50IG1pbmltdW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplOyB9Ci0KLSAgICAgICAgdm9pZCBz
ZXRMb2FkRGVmZXJyaW5nRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBsb2FkRGVmZXJyaW5n
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZERlZmVycmluZ0VuYWJsZWQ7IH0KLSAgICAg
ICAgCiAgICAgICAgIHZvaWQgc2V0VGlsZWRCYWNraW5nU3RvcmVFbmFibGVkKGJvb2wpOwogICAg
ICAgICBib29sIHRpbGVkQmFja2luZ1N0b3JlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGls
ZWRCYWNraW5nU3RvcmVFbmFibGVkOyB9CiAKLSAgICAgICAgdm9pZCBzZXRQYWdpbmF0ZUR1cmlu
Z0xheW91dEVuYWJsZWQoYm9vbCBmbGFnKSB7IG1fcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVk
ID0gZmxhZzsgfQotICAgICAgICBib29sIHBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkOyB9Ci0KLSNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgICAgIHZvaWQgc2V0RnVsbFNjcmVlbkVuYWJsZWQoYm9v
bCBmbGFnKSB7IG1fZnVsbFNjcmVlbkFQSUVuYWJsZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wg
ZnVsbFNjcmVlbkVuYWJsZWQoKSBjb25zdCAgeyByZXR1cm4gbV9mdWxsU2NyZWVuQVBJRW5hYmxl
ZDsgfQotI2VuZGlmCi0KICNpZiBVU0UoQVZGT1VOREFUSU9OKQogICAgICAgICBzdGF0aWMgdm9p
ZCBzZXRBVkZvdW5kYXRpb25FbmFibGVkKGJvb2wgZmxhZykgeyBnQVZGb3VuZGF0aW9uRW5hYmxl
ZCA9IGZsYWc7IH0KICAgICAgICAgc3RhdGljIGJvb2wgaXNBVkZvdW5kYXRpb25FbmFibGVkKCkg
eyByZXR1cm4gZ0FWRm91bmRhdGlvbkVuYWJsZWQ7IH0KICNlbmRpZgogCi0gICAgICAgIHZvaWQg
c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1fYXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgYXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBjb25zdCAgeyByZXR1cm4gbV9hc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZDsgfQotCiAgICAgICAgIHZvaWQgc2V0VW5pZmllZFRleHRD
aGVja2VyRW5hYmxlZChib29sIGZsYWcpIHsgbV91bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkID0g
ZmxhZzsgfQogICAgICAgICBib29sIHVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX3VuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQ7IH0KIAotICAgICAgICB2b2lkIHNl
dE1lbW9yeUluZm9FbmFibGVkKGJvb2wgZmxhZykgeyBtX21lbW9yeUluZm9FbmFibGVkID0gZmxh
ZzsgfQotICAgICAgICBib29sIG1lbW9yeUluZm9FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9t
ZW1vcnlJbmZvRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0UXVhbnRpemVkTWVtb3J5SW5m
b0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1fcXVhbnRpemVkTWVtb3J5SW5mb0VuYWJsZWQgPSBmbGFn
OyB9Ci0gICAgICAgIGJvb2wgcXVhbnRpemVkTWVtb3J5SW5mb0VuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX3F1YW50aXplZE1lbW9yeUluZm9FbmFibGVkOyB9Ci0KLSAgICAgICAgLy8gVGhpcyBm
ZWF0dXJlIHJlcXVpcmVzIGFuIGltcGxlbWVudGF0aW9uIG9mIFZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50LgotICAgICAgICB2b2lkIHNldEludGVyYWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkKGJv
b2wgZmxhZykgeyBtX2ludGVyYWN0aXZlRm9ybVZhbGlkYXRpb24gPSBmbGFnOyB9Ci0gICAgICAg
IGJvb2wgaW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X2ludGVyYWN0aXZlRm9ybVZhbGlkYXRpb247IH0KLQotICAgICAgICAvLyBTZXRzIHRoZSBtYWdp
bmljYXRpb24gdmFsdWUgZm9yIHZhbGlkYXRpb24gbWVzc2FnZSB0aW1lci4KLSAgICAgICAgLy8g
SWYgdGhlIG1hZ2luaWNhdGlvbiB2YWx1ZSBpcyBOLCBhIHZhbGlkYXRpb24gbWVzc2FnZSBkaXNh
cHBlYXJzCi0gICAgICAgIC8vIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgPG1lc3NhZ2UgbGVuZ3RoPiAq
IE4gLyAxMDAwIHNlY29uZHMuIElmIE4gaXMKLSAgICAgICAgLy8gZXF1YWwgdG8gb3IgbGVzcyB0
aGFuIDAsIGEgdmFsaWRhdGlvbiBtZXNzYWdlIGRvZXNuJ3QgZGlzYXBwZWFycwotICAgICAgICAv
LyBhdXRvbWF0aWNhbHkuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDUwLgotICAgICAgICB2b2lkIHNl
dFZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKGludCBuZXdWYWx1ZSkgeyBtX3Zh
bGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uID0gbmV3VmFsdWU7IH0KLSAgICAgICAg
aW50IHZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWdpbmlmaWNhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fdmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb247IH0KLSAgICAgICAgCi0gICAg
ICAgIHZvaWQgc2V0VXNlUHJlSFRNTDVQYXJzZXJRdWlya3MoYm9vbCBmbGFnKSB7IG1fdXNlUHJl
SFRNTDVQYXJzZXJRdWlya3MgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgdXNlUHJlSFRNTDVQYXJz
ZXJRdWlya3MoKSBjb25zdCB7IHJldHVybiBtX3VzZVByZUhUTUw1UGFyc2VyUXVpcmtzOyB9Ci0K
ICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGRlZmF1bHRNYXhpbXVtSFRNTFBhcnNlckRP
TVRyZWVEZXB0aCA9IDUxMjsKLSAgICAgICAgdm9pZCBzZXRNYXhpbXVtSFRNTFBhcnNlckRPTVRy
ZWVEZXB0aCh1bnNpZ25lZCBtYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCkgeyBtX21heGlt
dW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoID0gbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGg7
IH0KLSAgICAgICAgdW5zaWduZWQgbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgoKSBjb25z
dCB7IHJldHVybiBtX21heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoOyB9Ci0KLSAgICAgICAg
dm9pZCBzZXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1faHlwZXJsaW5r
QXVkaXRpbmdFbmFibGVkID0gZmxhZzsgfQotICAgICAgICBib29sIGh5cGVybGlua0F1ZGl0aW5n
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkOyB9Ci0K
LSAgICAgICAgdm9pZCBzZXRDcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNh
YmxlZChib29sIGZsYWcpIHsgbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNE
aXNhYmxlZCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBjcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRj
aGVkQ1NTUnVsZXNEaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY3Jvc3NPcmlnaW5DaGVja0lu
R2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQ7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0
TGF5b3V0RmFsbGJhY2tXaWR0aChpbnQgd2lkdGgpIHsgbV9sYXlvdXRGYWxsYmFja1dpZHRoID0g
d2lkdGg7IH0KLSAgICAgICAgaW50IGxheW91dEZhbGxiYWNrV2lkdGgoKSBjb25zdCB7IHJldHVy
biBtX2xheW91dEZhbGxiYWNrV2lkdGg7IH0KLQotICAgICAgICB2b2lkIHNldERldmljZVdpZHRo
KGludCB3aWR0aCkgeyBtX2RldmljZVdpZHRoID0gd2lkdGg7IH0KLSAgICAgICAgaW50IGRldmlj
ZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VXaWR0aDsgfQotCi0gICAgICAgIHZvaWQg
c2V0RGV2aWNlSGVpZ2h0KGludCBoZWlnaHQpIHsgbV9kZXZpY2VIZWlnaHQgPSBoZWlnaHQ7IH0K
LSAgICAgICAgaW50IGRldmljZUhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlSGVpZ2h0
OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGZsYWcpIHsg
bV9mb3JjZUNvbXBvc2l0aW5nTW9kZSA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBmb3JjZUNvbXBv
c2l0aW5nTW9kZSgpIHsgcmV0dXJuIG1fZm9yY2VDb21wb3NpdGluZ01vZGU7IH0KLQotICAgICAg
ICB2b2lkIHNldFNob3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudChi
b29sIGZsYWcpIHsgbV9zaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1l
bnQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgc2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRp
YWxFbXB0eURvY3VtZW50KCkgeyByZXR1cm4gbV9zaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5p
dGlhbEVtcHR5RG9jdW1lbnQ7IH0KLQotICAgICAgICB2b2lkIHNldEFsbG93RGlzcGxheU9mSW5z
ZWN1cmVDb250ZW50KGJvb2wgZmxhZykgeyBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50
ID0gZmxhZzsgfQotICAgICAgICBib29sIGFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudDsgfQotICAgICAg
ICB2b2lkIHNldEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KGJvb2wgZmxhZykgeyBtX2Fs
bG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50ID0gZmxhZzsgfQotICAgICAgICBib29sIGFsbG93
UnVubmluZ09mSW5zZWN1cmVDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd1J1bm5pbmdP
Zkluc2VjdXJlQ29udGVudDsgfQogCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiAgICAg
ICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoYm9vbCBmbGFnKSB7IG1fc2Nyb2xsQW5p
bWF0b3JFbmFibGVkID0gZmxhZzsgfQogICAgICAgICBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsQW5pbWF0b3JFbmFibGVkOyB9CiAjZW5kaWYKIAot
ICAgICAgICB2b2lkIHNldE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKGJvb2wgZmxh
ZykgeyBtX21lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gZmxhZzsgfTsKLSAgICAg
ICAgYm9vbCBtZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmU7IH0KLQotICAgICAgICB2b2lkIHNl
dE1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUoYm9vbCBmbGFnKSB7IG1fbWVkaWFQbGF5YmFja0Fs
bG93c0lubGluZSA9IGZsYWc7IH07Ci0gICAgICAgIGJvb2wgbWVkaWFQbGF5YmFja0FsbG93c0lu
bGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFQbGF5YmFja0FsbG93c0lubGluZTsgfQotCi0g
ICAgICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hvRW5hYmxlZChib29sIGZsYWcpIHsgbV9wYXNzd29y
ZEVjaG9FbmFibGVkID0gZmxhZzsgfQotICAgICAgICBib29sIHBhc3N3b3JkRWNob0VuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX3Bhc3N3b3JkRWNob0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lk
IHNldFN1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZyhib29sIGZsYWcpIHsgbV9zdXBwcmVz
c2VzSW5jcmVtZW50YWxSZW5kZXJpbmcgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgc3VwcHJlc3Nl
c0luY3JlbWVudGFsUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwcmVzc2VzSW5jcmVt
ZW50YWxSZW5kZXJpbmc7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0QmFja3NwYWNlS2V5
TmF2aWdhdGlvbkVuYWJsZWQoYm9vbCBmbGFnKSB7IG1fYmFja3NwYWNlS2V5TmF2aWdhdGlvbkVu
YWJsZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgYmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2JhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVkOyB9Ci0g
ICAgICAgIAotICAgICAgICB2b2lkIHNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGRv
dWJsZSBkdXJhdGlvbkluU2Vjb25kcykgeyBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRz
ID0gZHVyYXRpb25JblNlY29uZHM7IH0KLSAgICAgICAgZG91YmxlIHBhc3N3b3JkRWNob0R1cmF0
aW9uSW5TZWNvbmRzKCkgY29uc3QgeyByZXR1cm4gbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vj
b25kczsgfQotCiAjaWYgVVNFKFNBRkFSSV9USEVNRSkKICAgICAgICAgLy8gV2luZG93cyBkZWJ1
Z2dpbmcgcHJlZiAoZ2xvYmFsKSBmb3Igc3dpdGNoaW5nIGJldHdlZW4gdGhlIEFxdWEgbG9vayBh
bmQgYSBuYXRpdmUgd2luZG93cyBsb29rLgogICAgICAgICBzdGF0aWMgdm9pZCBzZXRTaG91bGRQ
YWludE5hdGl2ZUNvbnRyb2xzKGJvb2wpOwpAQCAtNTY4LDY4ICsyOTAsMTEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgdm9pZCBzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnMo
Ym9vbCBmbGFnKTsKICAgICAgICAgc3RhdGljIGJvb2wgdXNlc092ZXJsYXlTY3JvbGxiYXJzKCk7
CiAKLSAgICAgICAgdm9pZCBzZXRWaXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkKGJvb2wgZW5hYmxl
ZCkgeyBtX3Zpc3VhbFdvcmRNb3ZlbWVudEVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJv
b2wgdmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlzdWFsV29y
ZE1vdmVtZW50RW5hYmxlZDsgfQotCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgICAgICB2
b2lkIHNldFNob3VsZERpc3BsYXlTdWJ0aXRsZXMoYm9vbCBmbGFnKSB7IG1fc2hvdWxkRGlzcGxh
eVN1YnRpdGxlcyA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBzaG91bGREaXNwbGF5U3VidGl0bGVz
KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGREaXNwbGF5U3VidGl0bGVzOyB9Ci0KLSAgICAgICAg
dm9pZCBzZXRTaG91bGREaXNwbGF5Q2FwdGlvbnMoYm9vbCBmbGFnKSB7IG1fc2hvdWxkRGlzcGxh
eUNhcHRpb25zID0gZmxhZzsgfQotICAgICAgICBib29sIHNob3VsZERpc3BsYXlDYXB0aW9ucygp
IGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRGlzcGxheUNhcHRpb25zOyB9Ci0KLSAgICAgICAgdm9p
ZCBzZXRTaG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9ucyhib29sIGZsYWcpIHsgbV9zaG91bGRE
aXNwbGF5VGV4dERlc2NyaXB0aW9ucyA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBzaG91bGREaXNw
bGF5VGV4dERlc2NyaXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRGlzcGxheVRleHRE
ZXNjcmlwdGlvbnM7IH0KLSNlbmRpZgotCi0gICAgICAgIHZvaWQgc2V0U2Nyb2xsaW5nQ29vcmRp
bmF0b3JFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxl
ZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBzY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZDsgfQotCi0gICAg
ICAgIHZvaWQgc2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fbm90aWZp
Y2F0aW9uc0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgbm90aWZpY2F0aW9uc0Vu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX25vdGlmaWNhdGlvbnNFbmFibGVkOyB9Ci0KLSAgICAg
ICAgLy8gU29tZSBhcHBzIG5lZWRzIGlzTG9hZGluZ0luQVBJU2Vuc2UgdG8gYWNjb3VudCBmb3Ig
YWN0aXZlIHN1YnJlc291cmNlIGxvYWRlcnMuCi0gICAgICAgIHZvaWQgc2V0TmVlZHNJc0xvYWRp
bmdJbkFQSVNlbnNlUXVpcmsoYm9vbCBlbmFibGVkKSB7IG1fbmVlZHNJc0xvYWRpbmdJbkFQSVNl
bnNlUXVpcmsgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgbmVlZHNJc0xvYWRpbmdJbkFQSVNl
bnNlUXVpcmsoKSBjb25zdCB7IHJldHVybiBtX25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJr
OyB9Ci0KICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgICAgICB2b2lkIHNldFRvdWNoRXZl
bnRFbXVsYXRpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3RvdWNoRXZlbnRFbXVsYXRpb25F
bmFibGVkID0gZW5hYmxlZDsgfQogICAgICAgICBib29sIGlzVG91Y2hFdmVudEVtdWxhdGlvbkVu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkOyB9CiAj
ZW5kaWYKIAotICAgICAgICB2b2lkIHNldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKGJv
b2wgZW5hYmxlZCkgeyBtX3Nob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID0gZW5hYmxlZDsg
fQotICAgICAgICBib29sIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbjsgfQotCi0gICAgICAgIHZvaWQg
c2V0V2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcihib29sIGZsYWcpIHsgbV93
YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yID0gZmxhZzsgfQotICAgICAgICBi
b29sIHdhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IoKSBjb25zdCB7IHJldHVy
biBtX3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3I7IH0KLQotICAgICAgICB2
b2lkIHNldEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzKGRv
dWJsZSB0aW1lb3V0KSB7IG1faW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJ
blNlY29uZHMgPSB0aW1lb3V0OyB9Ci0gICAgICAgIGRvdWJsZSBpbmNyZW1lbnRhbFJlbmRlcmlu
Z1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcygpIGNvbnN0IHsgcmV0dXJuIG1faW5jcmVtZW50
YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHM7IH0KLQotICAgICAgICB2b2lk
IHNldFJlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fcmVxdWVz
dEFuaW1hdGlvbkZyYW1lRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCByZXF1ZXN0
QW5pbWF0aW9uRnJhbWVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0QW5pbWF0aW9u
RnJhbWVFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXREZXZpY2VTdXBwb3J0c1RvdWNoKGJv
b2wgZW5hYmxlZCkgeyBtX2RldmljZVN1cHBvcnRzVG91Y2ggPSBlbmFibGVkOyB9Ci0gICAgICAg
IGJvb2wgZGV2aWNlU3VwcG9ydHNUb3VjaCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU3VwcG9y
dHNUb3VjaDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNNb3VzZShib29sIGVu
YWJsZWQpIHsgbV9kZXZpY2VTdXBwb3J0c01vdXNlID0gZW5hYmxlZDsgfQotICAgICAgICBib29s
IGRldmljZVN1cHBvcnRzTW91c2UoKSBjb25zdCB7IHJldHVybiBtX2RldmljZVN1cHBvcnRzTW91
c2U7IH0KLQotICAgICAgICB2b2lkIHNldE5lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsoYm9v
bCBuZWVkc1F1aXJrKSB7IG1fbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyayA9IG5lZWRzUXVp
cms7IH0KLSAgICAgICAgYm9vbCBuZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKCkgY29uc3Qg
eyByZXR1cm4gbV9uZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrOyB9Ci0KLSAgICAgICAgdm9p
ZCBzZXRGaXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dChib29sIGNyZWF0ZXMpIHsg
bV9maXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dCA9IGNyZWF0ZXM7IH0KLSAgICAg
ICAgYm9vbCBmaXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0
dXJuIG1fZml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQ7IH0KLQotICAgICAgICB2
b2lkIHNldFN5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fc3luY1hI
UkluRG9jdW1lbnRzRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBzeW5jWEhSSW5E
b2N1bWVudHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zeW5jWEhSSW5Eb2N1bWVudHNFbmFi
bGVkOyB9Ci0KLSAgICAgICAgLy8gV2hlbiBlbmFibGVkLCB3aW5kb3cuYmx1cigpIGRvZXMgbm90
IGNoYW5nZSBmb2N1cywgYW5kCi0gICAgICAgIC8vIHdpbmRvdy5mb2N1cygpIG9ubHkgY2hhbmdl
cyBmb2N1cyB3aGVuIGludm9rZWQgZnJvbSB0aGUgY29udGV4dCB0aGF0Ci0gICAgICAgIC8vIGNy
ZWF0ZWQgdGhlIHdpbmRvdy4KLSAgICAgICAgdm9pZCBzZXRXaW5kb3dGb2N1c1Jlc3RyaWN0ZWQo
Ym9vbCByZXN0cmljdGVkKSB7IG1fd2luZG93Rm9jdXNSZXN0cmljdGVkID0gcmVzdHJpY3RlZDsg
fQotICAgICAgICBib29sIHdpbmRvd0ZvY3VzUmVzdHJpY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
d2luZG93Rm9jdXNSZXN0cmljdGVkOyB9Ci0KICAgICAgICAgdm9pZCBzZXRTdG9yYWdlQmxvY2tp
bmdQb2xpY3koU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSk7CiAgICAgICAg
IFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9s
aWN5KCkgY29uc3QgeyByZXR1cm4gbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3k7IH0KIApAQCAtNjQx
LDE4ICszMDYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBib29sIHNo
b3VsZFJlc3BlY3RQcmlvcml0eUluQ1NTQXR0cmlidXRlU2V0dGVycygpOwogI2VuZGlmCiAKLSAg
ICAgICAgdm9pZCBzZXRDb29raWVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2Nvb2tpZUVuYWJs
ZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgY29va2llRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fY29va2llRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGlhZ25vc3RpY0xvZ2dp
bmdFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCA9IGVu
YWJsZWQ7IH0KLSAgICAgICAgYm9vbCBkaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0
QXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoYm9vbCBlbmFibGVkKSB7IG1fYXBwbHlQ
YWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYXBw
bHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSBjb25zdCB7IHJldHVybiBtX2FwcGx5UGFn
ZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRQbHVnSW5TbmFw
c2hvdHRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3BsdWdJblNuYXBzaG90dGluZ0VuYWJs
ZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgcGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZDsgfQotCiAgICAgcHJp
dmF0ZToKICAgICAgICAgZXhwbGljaXQgU2V0dGluZ3MoUGFnZSopOwogCkBAIC02NjAsOSArMzEz
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIFBhZ2UqIG1fcGFnZTsKIAotICAg
ICAgICBTdHJpbmcgbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZTsKLSAgICAgICAgU3RyaW5nIG1f
ZnRwRGlyZWN0b3J5VGVtcGxhdGVQYXRoOwotICAgICAgICBTdHJpbmcgbV9sb2NhbFN0b3JhZ2VE
YXRhYmFzZVBhdGg7CiAgICAgICAgIFN0cmluZyBtX21lZGlhVHlwZU92ZXJyaWRlOwogICAgICAg
ICBLVVJMIG1fdXNlclN0eWxlU2hlZXRMb2NhdGlvbjsKICAgICAgICAgU2NyaXB0Rm9udEZhbWls
eU1hcCBtX3N0YW5kYXJkRm9udEZhbWlseU1hcDsKQEAgLTY3MiwyMyArMzIyLDExIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgU2NyaXB0Rm9udEZhbWlseU1hcCBtX2N1cnNpdmVGb250
RmFtaWx5TWFwOwogICAgICAgICBTY3JpcHRGb250RmFtaWx5TWFwIG1fZmFudGFzeUZvbnRGYW1p
bHlNYXA7CiAgICAgICAgIFNjcmlwdEZvbnRGYW1pbHlNYXAgbV9waWN0b2dyYXBoRm9udEZhbWls
eU1hcDsKLSAgICAgICAgRWRpdGFibGVMaW5rQmVoYXZpb3IgbV9lZGl0YWJsZUxpbmtCZWhhdmlv
cjsKLSAgICAgICAgVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBtX3RleHRE
aXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I7Ci0gICAgICAgIGRvdWJsZSBtX3Bhc3N3
b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzOwogICAgICAgICBpbnQgbV9taW5pbXVtRm9udFNpemU7
CiAgICAgICAgIGludCBtX21pbmltdW1Mb2dpY2FsRm9udFNpemU7CiAgICAgICAgIGludCBtX2Rl
ZmF1bHRGb250U2l6ZTsKICAgICAgICAgaW50IG1fZGVmYXVsdEZpeGVkRm9udFNpemU7CiAgICAg
ICAgIGJvb2wgbV9zY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZDsKLSAgICAgICAgaW50IG1f
dmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb247Ci0gICAgICAgIGludCBtX21pbmlt
dW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZTsKLSAgICAgICAgaW50IG1fbGF5b3V0RmFsbGJhY2tX
aWR0aDsKLSAgICAgICAgc2l6ZV90IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7Ci0gICAgICAg
IGludCBtX2RldmljZVdpZHRoOwotICAgICAgICBpbnQgbV9kZXZpY2VIZWlnaHQ7Ci0gICAgICAg
IHVuc2lnbmVkIG1fc2Vzc2lvblN0b3JhZ2VRdW90YTsKLSAgICAgICAgdW5zaWduZWQgbV9lZGl0
aW5nQmVoYXZpb3JUeXBlOwotICAgICAgICB1bnNpZ25lZCBtX21heGltdW1IVE1MUGFyc2VyRE9N
VHJlZURlcHRoOwogICAgICAgICBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5
IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5OwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAg
ICAgICAgIGZsb2F0IG1fdGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3I7CkBAIC02OTYsNTgg
KzMzNCwyNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV90ZXh0QXV0b3Np
emluZ0VuYWJsZWQgOiAxOwogI2VuZGlmCiAgICAgICAgIEludFNpemUgbV9yZXNvbHV0aW9uRGVu
c2l0eVBlckluY2hPdmVycmlkZTsKKworICAgICAgICBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVT
CisKICAgICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIDogMTsKICAgICAg
ICAgYm9vbCBtX2lzSmF2YUVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5hYmxl
ZEZvckxvY2FsRmlsZXMgOiAxOwogICAgICAgICBib29sIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNh
bGx5IDogMTsKLSAgICAgICAgYm9vbCBtX2xvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRp
bmdTZXR0aW5nIDogMTsKICAgICAgICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQgOiAx
OwotICAgICAgICBib29sIG1fY2FyZXRCcm93c2luZ0VuYWJsZWQgOiAxOwogICAgICAgICBib29s
IG1fYXJlSW1hZ2VzRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc01lZGlhRW5hYmxlZCA6
IDE7CiAgICAgICAgIGJvb2wgbV9hcmVQbHVnaW5zRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wg
bV9sb2NhbFN0b3JhZ2VFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzU2NyaXB0RW5hYmxl
ZCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc1dlYlNlY3VyaXR5RW5hYmxlZCA6IDE7Ci0gICAgICAg
IGJvb2wgbV9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczogMTsKLSAgICAgICAgYm9v
bCBtX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczogMTsKLSAgICAgICAgYm9vbCBtX2phdmFT
Y3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgOiAxOwotICAgICAgICBib29sIG1fc3Vw
cG9ydHNNdWx0aXBsZVdpbmRvd3MgOiAxOwotICAgICAgICBib29sIG1famF2YVNjcmlwdENhbkFj
Y2Vzc0NsaXBib2FyZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9zaG91bGRQcmludEJhY2tncm91bmRz
IDogMTsKICAgICAgICAgYm9vbCBtX3RleHRBcmVhc0FyZVJlc2l6YWJsZSA6IDE7Ci0jaWYgRU5B
QkxFKERBU0hCT0FSRF9TVVBQT1JUKQotICAgICAgICBib29sIG1fdXNlc0Rhc2hib2FyZEJhY2t3
YXJkQ29tcGF0aWJpbGl0eU1vZGUgOiAxOwotI2VuZGlmCiAgICAgICAgIGJvb2wgbV9uZWVkc0Fk
b2JlRnJhbWVSZWxvYWRpbmdRdWlyayA6IDE7Ci0gICAgICAgIGJvb2wgbV9uZWVkc0tleWJvYXJk
RXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcyA6IDE7Ci0gICAgICAgIGJvb2wgbV90cmVhdHNBbnlU
ZXh0Q1NTTGlua0FzU3R5bGVzaGVldCA6IDE7Ci0gICAgICAgIGJvb2wgbV9uZWVkc0xlb3BhcmRN
YWlsUXVpcmtzIDogMTsKICAgICAgICAgYm9vbCBtX2lzRE9NUGFzdGVBbGxvd2VkIDogMTsKLSAg
ICAgICAgYm9vbCBtX3Nocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQgOiAxOwogICAgICAgICBi
b29sIG1fdXNlc1BhZ2VDYWNoZSA6IDE7Ci0gICAgICAgIGJvb2wgbV9wYWdlQ2FjaGVTdXBwb3J0
c1BsdWdpbnMgOiAxOwotICAgICAgICBib29sIG1fc2hvd3NVUkxzSW5Ub29sVGlwcyA6IDE7Ci0g
ICAgICAgIGJvb2wgbV9zaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCA6IDE7Ci0gICAgICAg
IGJvb2wgbV9mb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzIDogMTsKLSAgICAgICAgYm9vbCBtX2Rl
dmVsb3BlckV4dHJhc0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1famF2YVNjcmlwdEV4cGVy
aW1lbnRzRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9hdXRob3JBbmRVc2VyU3R5bGVzRW5h
YmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA6IDE7CiAg
ICAgICAgIHVuc2lnbmVkIG1fZm9udFJlbmRlcmluZ01vZGUgOiAxOwotICAgICAgICBib29sIG1f
ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCA6IDE7Ci0jaWYgRU5BQkxFKFdFQl9BUkNISVZFKQotICAg
ICAgICBib29sIG1fd2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQgOiAxOwotI2VuZGlmCi0gICAg
ICAgIGJvb2wgbV9sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkIDogMTsKICAgICAgICAg
Ym9vbCBtX2luQXBwbGljYXRpb25DaHJvbWVNb2RlIDogMTsKLSAgICAgICAgYm9vbCBtX29mZmxp
bmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9lbmZvcmNl
Q1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZSA6IDE7Ci0gICAgICAgIGJvb2wgbV91c2VzRW5jb2Rp
bmdEZXRlY3RvciA6IDE7Ci0gICAgICAgIGJvb2wgbV9hbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93
cyA6IDE7Ci0gICAgICAgIGJvb2wgbV9jYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nIDogMTsK
LSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQgOiAxOwotICAgICAgICBi
b29sIG1fYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc0NT
U0N1c3RvbUZpbHRlckVuYWJsZWQgOiAxOwogI2lmIEVOQUJMRShDU1NfU1RJQ0tZX1BPU0lUSU9O
KQogICAgICAgICBib29sIG1fY3NzU3RpY2t5UG9zaXRpb25FbmFibGVkIDogMTsKQEAgLTc1OCw5
NyArMzY0LDI0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxF
UykKICAgICAgICAgYm9vbCBtX2Nzc1ZhcmlhYmxlc0VuYWJsZWQgOiAxOwogI2VuZGlmCi0gICAg
ICAgIGJvb2wgbV9yZWdpb25CYXNlZENvbHVtbnNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBt
X2Nzc0dyaWRMYXlvdXRFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2Rvd25sb2FkYWJsZUJp
bmFyeUZvbnRzRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV94c3NBdWRpdG9yRW5hYmxlZCA6
IDE7CiAgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA6IDE7Ci0g
ICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFi
bGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5z
Zm9ybXNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JWaWRlb0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0ZvclBsdWdpbnNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JDYW52YXNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JBbmltYXRpb25FbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wg
bV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQgOiAxOyAv
LyBXb3JrcyBvbmx5IGluIGNvbmp1bmN0aW9uIHdpdGggZm9yY2VDb21wb3NpdGluZ01vZGUKICAg
ICAgICAgYm9vbCBtX3Nob3dEZWJ1Z0JvcmRlcnMgOiAxOwogICAgICAgICBib29sIG1fc2hvd1Jl
cGFpbnRDb3VudGVyIDogMTsKLSAgICAgICAgYm9vbCBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlv
bnNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX3dlYkdMRW5hYmxlZCA6IDE7Ci0gICAgICAg
IGJvb2wgbV93ZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1f
b3BlbkdMTXVsdGlzYW1wbGluZ0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fcHJpdmlsZWdl
ZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fd2ViQXVkaW9FbmFi
bGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ2FudmFzMmRFbmFibGVkIDogMTsK
LSAgICAgICAgYm9vbCBtX2RlZmVycmVkQ2FudmFzMmRFbmFibGVkIDogMTsKLSAgICAgICAgYm9v
bCBtX2xvYWREZWZlcnJpbmdFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX3RpbGVkQmFja2lu
Z1N0b3JlRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9wYWdpbmF0ZUR1cmluZ0xheW91dEVu
YWJsZWQgOiAxOwogICAgICAgICBib29sIG1fZG5zUHJlZmV0Y2hpbmdFbmFibGVkIDogMTsKLSNp
ZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgICAgIGJvb2wgbV9mdWxsU2NyZWVuQVBJRW5h
YmxlZCA6IDE7Ci0jZW5kaWYKLSAgICAgICAgYm9vbCBtX2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX3VuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQg
OiAxOwotICAgICAgICBib29sIG1fbWVtb3J5SW5mb0VuYWJsZWQgOiAxOwotICAgICAgICBib29s
IG1fcXVhbnRpemVkTWVtb3J5SW5mb0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1faW50ZXJh
Y3RpdmVGb3JtVmFsaWRhdGlvbiA6IDE7Ci0gICAgICAgIGJvb2wgbV91c2VQcmVIVE1MNVBhcnNl
clF1aXJrcyA6IDE7Ci0gICAgICAgIGJvb2wgbV9oeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQgOiAx
OwotICAgICAgICBib29sIG1fY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlz
YWJsZWQgOiAxOwotICAgICAgICBib29sIG1fZm9yY2VDb21wb3NpdGluZ01vZGUgOiAxOwotICAg
ICAgICBib29sIG1fc2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50
IDogMTsKLSAgICAgICAgYm9vbCBtX2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUg
OiAxOwotICAgICAgICBib29sIG1fYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQgOiAxOwot
ICAgICAgICBib29sIG1fYWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQgOiAxOwogI2lmIEVO
QUJMRShTTU9PVEhfU0NST0xMSU5HKQogICAgICAgICBib29sIG1fc2Nyb2xsQW5pbWF0b3JFbmFi
bGVkIDogMTsKICNlbmRpZgotICAgICAgICBib29sIG1fbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNl
ckdlc3R1cmUgOiAxOwotICAgICAgICBib29sIG1fbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSA6
IDE7Ci0gICAgICAgIGJvb2wgbV9wYXNzd29yZEVjaG9FbmFibGVkIDogMTsKLSAgICAgICAgYm9v
bCBtX3N1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZyA6IDE7Ci0gICAgICAgIGJvb2wgbV9i
YWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV92aXN1YWxX
b3JkTW92ZW1lbnRFbmFibGVkIDogMTsKLQotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAg
ICAgYm9vbCBtX3Nob3VsZERpc3BsYXlTdWJ0aXRsZXMgOiAxOwotICAgICAgICBib29sIG1fc2hv
dWxkRGlzcGxheUNhcHRpb25zIDogMTsKLSAgICAgICAgYm9vbCBtX3Nob3VsZERpc3BsYXlUZXh0
RGVzY3JpcHRpb25zIDogMTsKLSNlbmRpZgotICAgICAgICBib29sIG1fc2Nyb2xsaW5nQ29vcmRp
bmF0b3JFbmFibGVkIDogMTsKLQotICAgICAgICBib29sIG1fbm90aWZpY2F0aW9uc0VuYWJsZWQg
OiAxOwotICAgICAgICBib29sIG1fbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmsgOiAxOwog
CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICAgICAgYm9vbCBtX3RvdWNoRXZlbnRFbXVs
YXRpb25FbmFibGVkIDogMTsKICNlbmRpZgotICAgICAgICBib29sIG1fc2hvdWxkUmVzcGVjdElt
YWdlT3JpZW50YXRpb24gOiAxOwotICAgICAgICBib29sIG1fd2FudHNCYWxhbmNlZFNldERlZmVy
c0xvYWRpbmdCZWhhdmlvciA6IDE7Ci0gICAgICAgIGJvb2wgbV9yZXF1ZXN0QW5pbWF0aW9uRnJh
bWVFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2RldmljZVN1cHBvcnRzVG91Y2ggOiAxOwot
ICAgICAgICBib29sIG1fZGV2aWNlU3VwcG9ydHNNb3VzZSA6IDE7Ci0gICAgICAgIGJvb2wgbV9u
ZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrIDogMTsKLQotICAgICAgICBib29sIG1fZml4ZWRQ
b3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQgOiAxOwotICAgICAgICBib29sIG1fc3luY1hI
UkluRG9jdW1lbnRzRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9jb29raWVFbmFibGVkIDog
MTsKLQotICAgICAgICBib29sIG1fd2luZG93Rm9jdXNSZXN0cmljdGVkIDogMTsKLQotICAgICAg
ICBib29sIG1fZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkIDogMTsKLQogICAgICAgICBib29sIG1f
c2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCA6IDE7CiAKLSAgICAgICAgYm9vbCBt
X2FwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yIDogMTsKLSAgICAgICAgYm9vbCBtX3Bs
dWdJblNuYXBzaG90dGluZ0VuYWJsZWQgOiAxOwotCiAgICAgICAgIFRpbWVyPFNldHRpbmdzPiBt
X3NldEltYWdlTG9hZGluZ1NldHRpbmdzVGltZXI7CiAgICAgICAgIHZvaWQgaW1hZ2VMb2FkaW5n
U2V0dGluZ3NUaW1lckZpcmVkKFRpbWVyPFNldHRpbmdzPiopOwogCi0gICAgICAgIGRvdWJsZSBt
X2luY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzOwotCiAgICAg
ICAgIHN0YXRpYyBkb3VibGUgZ0RlZmF1bHRNaW5ET01UaW1lckludGVydmFsOwogICAgICAgICBz
dGF0aWMgZG91YmxlIGdEZWZhdWx0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I5ZDAwOWRmZjM2MWMxODQ1MDE1OThkY2U5N2Nk
MTUzYTliYmZhMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaW4KQEAgLTAsMCArMSwxNTYgQEAKKyMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBnbG9iYWwg
c2V0dGluZ3MuCisjIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgY3VzdG9tIGdldHRlcnMvc2V0dGVy
cy4KKworZGVmYXVsdFRleHRFbmNvZGluZ05hbWUgdHlwZT1TdHJpbmcKK2Z0cERpcmVjdG9yeVRl
bXBsYXRlUGF0aCB0eXBlPVN0cmluZworbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoIHR5cGU9U3Ry
aW5nCitlZGl0YWJsZUxpbmtCZWhhdmlvciB0eXBlPUVkaXRhYmxlTGlua0JlaGF2aW9yLCBpbml0
aWFsPUVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcgordGV4dERpcmVjdGlvblN1Ym1lbnVJbmNs
dXNpb25CZWhhdmlvciB0eXBlPVRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3Is
IGluaXRpYWw9VGV4dERpcmVjdGlvblN1Ym1lbnVBdXRvbWF0aWNhbGx5SW5jbHVkZWQKK3Bhc3N3
b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzIHR5cGU9ZG91YmxlLCBpbml0aWFsPTEKKworIyBTZXRz
IHRoZSBtYWduaWZpY2F0aW9uIHZhbHVlIGZvciB2YWxpZGF0aW9uIG1lc3NhZ2UgdGltZXIuICBJ
ZiB0aGUKKyMgbWFnbmlmaWNhdGlvbiB2YWx1ZSBpcyBOLCBhIHZhbGlkYXRpb24gbWVzc2FnZSBk
aXNhcHBlYXJzIGF1dG9tYXRpY2FsbHkgYWZ0ZXIKKyMgPG1lc3NhZ2UgbGVuZ3RoPiAqIE4gLyAx
MDAwIHNlY29uZHMuICBJZiBOIGlzIGVxdWFsIHRvIG9yIGxlc3MgdGhhbiAwLCBhCisjIHZhbGlk
YXRpb24gbWVzc2FnZSBkb2Vzbid0IGRpc2FwcGVhcnMgYXV0b21hdGljYWx5LgordmFsaWRhdGlv
bk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb24gdHlwZT1pbnQsIGluaXRpYWw9NTAKKworIyBOdW1i
ZXIgb2YgcGl4ZWxzIGJlbG93IHdoaWNoIDJEIGNhbnZhcyBpcyByZW5kZXJlZCBpbiBzb2Z0d2Fy
ZQorIyBldmVuIGlmIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiBpcyBlbmFibGVkLgorIyBIYXJkd2Fy
ZSBhY2NlbGVyYXRpb24gaXMgdXNlZnVsIGZvciBsYXJnZSBjYW52YXNlcyB3aGVyZSBpdCBjYW4g
YXZvaWQgdGhlCisjIHBpeGVsIGJhbmR3aWR0aCBiZXR3ZWVuIHRoZSBDUFUgYW5kIEdQVS4gQnV0
IEdQVSBhY2NlbGVyYXRpb24gY29tZXMgYXQKKyMgYSBwcmljZSAtIGV4dHJhIGJhY2stYnVmZmVy
IGFuZCB0ZXh0dXJlIGNvcHkuIFNtYWxsIGNhbnZhc2VzIGFyZSBhbHNvCisjIHdpZGVseSB1c2Vk
IGZvciBzdHlsaXplZCBmb250cy4gQW50aS1hbGlhc2luZyB0ZXh0IGluIGhhcmR3YXJlIGF0IHRo
YXQKKyMgc2NhbGUgaXMgZ2VuZXJhbGx5IHNsb3dlci4gU28gYmVsb3cgYSBjZXJ0YWluIHNpemUg
aXQgaXMgYmV0dGVyIHRvCisjIGRyYXcgY2FudmFzIGluIHNvZnR3YXJlLgorbWluaW11bUFjY2Vs
ZXJhdGVkMmRDYW52YXNTaXplIHR5cGU9aW50LCBpbml0aWFsPTI1NyoyNTYKKworbGF5b3V0RmFs
bGJhY2tXaWR0aCB0eXBlPWludCwgaW5pdGlhbD05ODAKK21heGltdW1EZWNvZGVkSW1hZ2VTaXpl
IHR5cGU9c2l6ZV90LCBpbml0aWFsPW51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpCitkZXZp
Y2VXaWR0aCB0eXBlPWludCwgaW5pdGlhbD0wCitkZXZpY2VIZWlnaHQgdHlwZT1pbnQsIGluaXRp
YWw9MAorCisjIEFsbG93IGNsaWVudHMgY29uY2VybmVkIHdpdGggbWVtb3J5IGNvbnN1bXB0aW9u
IHRvIHNldCBhIHF1b3RhIG9uIHNlc3Npb24gc3RvcmFnZQorIyBzaW5jZSB0aGUgbWVtb3J5IHVz
ZWQgd29uJ3QgYmUgcmVsZWFzZWQgdW50aWwgdGhlIFBhZ2UgaXMgZGVzdHJveWVkLgorc2Vzc2lv
blN0b3JhZ2VRdW90YSB0eXBlPXVuc2lnbmVkLCBpbml0aWFsPVN0b3JhZ2VNYXA6Om5vUXVvdGEK
KworZWRpdGluZ0JlaGF2aW9yVHlwZSB0eXBlPUVkaXRpbmdCZWhhdmlvclR5cGUsIGluaXRpYWw9
ZWRpdGluZ0JlaGF2aW9yVHlwZUZvclBsYXRmb3JtKCkKK21heGltdW1IVE1MUGFyc2VyRE9NVHJl
ZURlcHRoIHR5cGU9dW5zaWduZWQsIGluaXRpYWw9ZGVmYXVsdE1heGltdW1IVE1MUGFyc2VyRE9N
VHJlZURlcHRoCisKKyMgVGhpcyBzZXR0aW5nIG9ubHkgYWZmZWN0cyBzaXRlIGljb24gaW1hZ2Ug
bG9hZGluZyBpZiBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgc2V0dGluZyBpcyBmYWxzZSBhbmQg
dGhpcyBzZXR0aW5nIGlzIHRydWUuCisjIEFsbCBvdGhlciBwZXJtdXRhdGlvbnMgc3RpbGwgaGVl
ZCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgc2V0dGluZy4KK2xvYWRzU2l0ZUljb25zSWdub3Jp
bmdJbWFnZUxvYWRpbmdTZXR0aW5nIGluaXRpYWw9ZmFsc2UKKworY2FyZXRCcm93c2luZ0VuYWJs
ZWQgaW5pdGlhbD1mYWxzZQorbG9jYWxTdG9yYWdlRW5hYmxlZCBpbml0aWFsPWZhbHNlCithbGxv
d1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyBpbml0aWFsPXRydWUKK2FsbG93RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMcyBpbml0aWFsPXRydWUKK2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9t
YXRpY2FsbHkgaW5pdGlhbD1mYWxzZQorc3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MgaW5pdGlhbD10
cnVlCitqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIGluaXRpYWw9ZmFsc2UKK3Nob3VsZFBy
aW50QmFja2dyb3VuZHMgaW5pdGlhbD1mYWxzZQordXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0
aWJpbGl0eU1vZGUgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9REFTSEJPQVJEX1NVUFBPUlQK
KworIyBUaGlzIGlzIGEgcXVpcmsgd2UgYXJlIHByby1hY3RpdmVseSBhcHBseWluZyB0byBvbGQg
YXBwbGljYXRpb25zLiBJdCBjaGFuZ2VzIGtleWJvYXJkIGV2ZW50IGRpc3BhdGNoaW5nLAorIyBt
YWtpbmcga2V5SWRlbnRpZmllciBhdmFpbGFibGUgb24ga2V5cHJlc3MgZXZlbnRzLCBtYWtpbmcg
Y2hhckNvZGUgYXZhaWxhYmxlIG9uIGtleWRvd24va2V5dXAgZXZlbnRzLAorIyBhbmQgZ2V0dGlu
ZyBrZXlwcmVzcyBkaXNwYXRjaGVkIGluIG1vcmUgY2FzZXMuCituZWVkc0tleWJvYXJkRXZlbnRE
aXNhbWJpZ3VhdGlvblF1aXJrcyBpbml0aWFsPWZhbHNlCisKK3RyZWF0c0FueVRleHRDU1NMaW5r
QXNTdHlsZXNoZWV0IGluaXRpYWw9ZmFsc2UKK25lZWRzTGVvcGFyZE1haWxRdWlya3MgaW5pdGlh
bD1mYWxzZQorc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCBpbml0aWFsPXRydWUKK3BhZ2VD
YWNoZVN1cHBvcnRzUGx1Z2lucyBpbml0aWFsPWZhbHNlCitzaG93c1VSTHNJblRvb2xUaXBzIGlu
aXRpYWw9ZmFsc2UKK3Nob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0IGluaXRpYWw9ZmFsc2UK
K2ZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3MgaW5pdGlhbD1mYWxzZQorZGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZCBpbml0aWFsPWZhbHNlCitqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkIGluaXRp
YWw9ZmFsc2UKK25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGluaXRpYWw9ZmFsc2UKK3dlYkFyY2hp
dmVEZWJ1Z01vZGVFbmFibGVkIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPVdFQl9BUkNISVZF
Citsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKK29mZmxpbmVX
ZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCBpbml0aWFsPWZhbHNlCitlbmZvcmNlQ1NTTUlNRVR5
cGVJbk5vUXVpcmtzTW9kZSBpbml0aWFsPXRydWUKK3VzZXNFbmNvZGluZ0RldGVjdG9yIGluaXRp
YWw9ZmFsc2UKK2FsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzIGluaXRpYWw9ZmFsc2UKK2NhbnZh
c1VzZXNBY2NlbGVyYXRlZERyYXdpbmcgaW5pdGlhbD1mYWxzZQorYWNjZWxlcmF0ZWREcmF3aW5n
RW5hYmxlZCBpbml0aWFsPWZhbHNlCithY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkIGluaXRpYWw9
ZmFsc2UKK3JlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorY3NzR3JpZExh
eW91dEVuYWJsZWQgaW5pdGlhbD1mYWxzZQorCisjIEZJWE1FOiBUaGlzIHNob3VsZCByZWFsbHkg
YmUgZGlzYWJsZWQgYnkgZGVmYXVsdCBhcyBpdCBtYWtlcyBwbGF0Zm9ybXMgdGhhdCBkb24ndCBz
dXBwb3J0IHRoZSBmZWF0dXJlIGRvd25sb2FkIGZpbGVzCisjIHRoZXkgY2FuJ3QgdXNlIGJ5LiBM
ZWF2aW5nIGVuYWJsZWQgZm9yIG5vdyB0byBub3QgY2hhbmdlIGV4aXN0aW5nIGJlaGF2aW9yLgor
ZG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkIGluaXRpYWw9dHJ1ZQorCit4c3NBdWRpdG9y
RW5hYmxlZCBpbml0aWFsPWZhbHNlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yM0RUcmFuc2Zv
cm1zRW5hYmxlZCBpbml0aWFsPXRydWUKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0Vu
YWJsZWQgaW5pdGlhbD10cnVlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJs
ZWQgaW5pdGlhbD10cnVlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQ2FudmFzRW5hYmxlZCBp
bml0aWFsPXRydWUKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JBbmltYXRpb25FbmFibGVkIGlu
aXRpYWw9dHJ1ZQorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVk
IGluaXRpYWw9ZmFsc2UKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVu
YWJsZWQgaW5pdGlhbD1mYWxzZQorCisjIFdvcmtzIG9ubHkgaW4gY29uanVuY3Rpb24gd2l0aCBm
b3JjZUNvbXBvc2l0aW5nTW9kZS4KK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxl
RnJhbWVzRW5hYmxlZCBpbml0aWFsPWZhbHNlCisKK2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNF
bmFibGVkIGluaXRpYWw9ZmFsc2UKK3dlYkdMRW5hYmxlZCBpbml0aWFsPWZhbHNlCit3ZWJHTEVy
cm9yc1RvQ29uc29sZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQorb3BlbkdMTXVsdGlzYW1wbGluZ0Vu
YWJsZWQgaW5pdGlhbD10cnVlCitwcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZCBpbml0
aWFsPWZhbHNlCithY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCBpbml0aWFsPWZhbHNlCitkZWZl
cnJlZDJkQ2FudmFzRW5hYmxlZCBpbml0aWFsPWZhbHNlCitsb2FkRGVmZXJyaW5nRW5hYmxlZCBp
bml0aWFsPXRydWUKK3dlYkF1ZGlvRW5hYmxlZCBpbml0aWFsPWZhbHNlCitwYWdpbmF0ZUR1cmlu
Z0xheW91dEVuYWJsZWQgaW5pdGlhbD1mYWxzZQorZnVsbFNjcmVlbkVuYWJsZWQgaW5pdGlhbD1m
YWxzZSwgY29uZGl0aW9uYWw9RlVMTFNDUkVFTl9BUEkKK2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKK21lbW9yeUluZm9FbmFibGVkIGluaXRpYWw9ZmFsc2UK
K3F1YW50aXplZE1lbW9yeUluZm9FbmFibGVkIGluaXRpYWw9ZmFsc2UKKworIyBUaGlzIGZlYXR1
cmUgcmVxdWlyZXMgYW4gaW1wbGVtZW50YXRpb24gb2YgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQu
CitpbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZCBpbml0aWFsPWZhbHNlCisKK3VzZVBy
ZUhUTUw1UGFyc2VyUXVpcmtzIGluaXRpYWw9ZmFsc2UKK2h5cGVybGlua0F1ZGl0aW5nRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCitjcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNh
YmxlZCBpbml0aWFsPWZhbHNlCitmb3JjZUNvbXBvc2l0aW5nTW9kZSBpbml0aWFsPWZhbHNlCitz
aG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQgaW5pdGlhbD1mYWxz
ZQorZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSBpbml0aWFsPWZhbHNlCithbGxv
d0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCBpbml0aWFsPXRydWUKK2FsbG93UnVubmluZ09mSW5z
ZWN1cmVDb250ZW50IGluaXRpYWw9dHJ1ZQorbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1
cmUgaW5pdGlhbD1mYWxzZQorbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSBpbml0aWFsPXRydWUK
K3Bhc3N3b3JkRWNob0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorc3VwcHJlc3Nlc0luY3JlbWVudGFs
UmVuZGVyaW5nIGluaXRpYWw9ZmFsc2UKK2luY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25U
aW1lb3V0SW5TZWNvbmRzIHR5cGU9ZG91YmxlLCBpbml0aWFsPWRlZmF1bHRJbmNyZW1lbnRhbFJl
bmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcworYmFja3NwYWNlS2V5TmF2aWdhdGlv
bkVuYWJsZWQgaW5pdGlhbD10cnVlCit2aXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkIGluaXRpYWw9
ZmFsc2UKK3Nob3VsZERpc3BsYXlTdWJ0aXRsZXMgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9
VklERU9fVFJBQ0sKK3Nob3VsZERpc3BsYXlDYXB0aW9ucyBpbml0aWFsPWZhbHNlLCBjb25kaXRp
b25hbD1WSURFT19UUkFDSworc2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnMgaW5pdGlhbD1m
YWxzZSwgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKK3Njcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCitub3RpZmljYXRpb25zRW5hYmxlZCBpbml0aWFsPXRydWUKKworIyBT
b21lIGFwcHMgbmVlZHMgaXNMb2FkaW5nSW5BUElTZW5zZSB0byBhY2NvdW50IGZvciBhY3RpdmUg
c3VicmVzb3VyY2UgbG9hZGVycy4KK25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrIGluaXRp
YWw9ZmFsc2UKKworc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gaW5pdGlhbD1mYWxzZQor
d2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvciBpbml0aWFsPWZhbHNlCityZXF1
ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkIGluaXRpYWw9dHJ1ZQorZGV2aWNlU3VwcG9ydHNUb3Vj
aCBpbml0aWFsPWZhbHNlCitkZXZpY2VTdXBwb3J0c01vdXNlIGluaXRpYWw9dHJ1ZQorbmVlZHNE
aWRGaW5pc2hMb2FkT3JkZXJRdWlyayBpbml0aWFsPWZhbHNlCitmaXhlZFBvc2l0aW9uQ3JlYXRl
c1N0YWNraW5nQ29udGV4dCBpbml0aWFsPWZhbHNlCitzeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVk
IGluaXRpYWw9dHJ1ZQorY29va2llRW5hYmxlZCBpbml0aWFsPXRydWUKKworIyBXaGVuIGVuYWJs
ZWQsIHdpbmRvdy5ibHVyKCkgZG9lcyBub3QgY2hhbmdlIGZvY3VzLCBhbmQKKyMgd2luZG93LmZv
Y3VzKCkgb25seSBjaGFuZ2VzIGZvY3VzIHdoZW4gaW52b2tlZCBmcm9tIHRoZSBjb250ZXh0IHRo
YXQKKyMgY3JlYXRlZCB0aGUgd2luZG93Lgord2luZG93Rm9jdXNSZXN0cmljdGVkIGluaXRpYWw9
dHJ1ZQorCitkaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorYXBwbHlQYWdl
U2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IgaW5pdGlhbD1mYWxzZQorcGx1Z0luU25hcHNob3R0aW5n
RW5hYmxlZCBpbml0aWFsPWZhbHNlCitmcmFtZUZsYXR0ZW5pbmdFbmFibGVkIGluaXRpYWw9ZmFs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQpp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTljYzBmY2Uw
MGI2Mjk0ZjNjNDEyYzAyNjE4ZTE1ZDM3MGMyMDkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWtlX3NldHRpbmdzLnBsCkBAIC0wLDAgKzEsMjU1IEBACisjIS91c3Iv
YmluL3BlcmwgLXcKKworIyBDb3B5cmlnaHQgKEMpIDIwMTIgVG9ueSBDaGFuZyA8dG9ueUBjaHJv
bWl1bS5vcmc+CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFLCBJTkMu
IGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
IyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyMgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
IyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK3VzZSBzdHJpY3Q7CisKK3Vz
ZSBJbkZpbGVzQ29tcGlsZXI7CisKK215ICVkZWZhdWx0UGFyYW1ldGVycyA9ICgKKyk7CisKK3N1
YiBkZWZhdWx0SXRlbUZhY3RvcnkKK3sKKyAgICByZXR1cm4gKAorICAgICAgICAnY29uZGl0aW9u
YWwnID0+IDAsCisgICAgICAgICdpbml0aWFsJyA9PiAnJywKKyAgICAgICAgJ3R5cGUnID0+ICdi
b29sJworICAgICk7Cit9CisKK215ICRJbkNvbXBpbGVyID0gSW5GaWxlc0NvbXBpbGVyLT5uZXco
XCVkZWZhdWx0UGFyYW1ldGVycywgXCZkZWZhdWx0SXRlbUZhY3RvcnkpOworCitteSAkb3V0cHV0
RGlyID0gJEluQ29tcGlsZXItPmluaXRpYWxpemVGcm9tQ29tbWFuZExpbmUoKTsKKyRJbkNvbXBp
bGVyLT5jb21waWxlKFwmZ2VuZXJhdGVDb2RlKTsKKworc3ViIGdlbmVyYXRlQ29kZSgpCit7Cisg
ICAgbXkgJHBhcnNlZFBhcmFtZXRlcnNSZWYgPSBzaGlmdDsKKyAgICBteSAkcGFyc2VkSXRlbXNS
ZWYgPSBzaGlmdDsKKworICAgIGdlbmVyYXRlSGVhZGVyKCRwYXJzZWRJdGVtc1JlZik7Cit9CisK
K3N1YiBnZW5lcmF0ZUhlYWRlcigkKQoreworICAgIG15ICRwYXJzZWRJdGVtc1JlZiA9IHNoaWZ0
OworCisgICAgbXkgJXBhcnNlZEl0ZW1zID0gJXsgJHBhcnNlZEl0ZW1zUmVmIH07CisgICAgbXkg
JG91dHB1dEZpbGUgPSAiJG91dHB1dERpci9TZXR0aW5nc01hY3Jvcy5oIjsKKworICAgIG15ICV1
bmNvbmRpdGlvbmFsU2V0dGluZ3MgPSAoKTsKKyAgICBteSAlc2V0dGluZ3NCeUNvbmRpdGlvbmFs
ID0gKCk7CisKKyAgICBmb3IgbXkgJHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXBhcnNlZEl0ZW1z
KSB7CisgICAgICAgIG15ICRjb25kaXRpb25hbCA9ICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9
eyJjb25kaXRpb25hbCJ9OworCisgICAgICAgIGlmICgkY29uZGl0aW9uYWwpIHsKKyAgICAgICAg
ICAgIGlmICghZGVmaW5lZCgkc2V0dGluZ3NCeUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH0pKSB7
CisgICAgICAgICAgICAgICAgJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9ID0g
KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkc2V0dGluZ3NCeUNvbmRpdGlvbmFseyRj
b25kaXRpb25hbH17JHNldHRpbmdOYW1lfSA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAkdW5jb25kaXRpb25hbFNldHRpbmdzeyRzZXR0aW5nTmFtZX0gPSAxOworICAgICAgICB9
CisgICAgfQorCisgICAgb3BlbiBteSAkZmlsZSwgIj4kb3V0cHV0RmlsZSIgb3IgZGllICJGYWls
ZWQgdG8gb3BlbiBmaWxlOiAkISI7CisKKyAgICBwcmludCAkZmlsZSAkSW5Db21waWxlci0+bGlj
ZW5zZSgpOworCisgICAgIyBGSVhNRTogU29ydCBieSB0eXBlIHNvIGJvb2xzIGNvbWUgbGFzdCBh
bmQgYXJlIGJpdCBwYWNrZWQuCisKKyAgICBwcmludCAkZmlsZSAiI2lmbmRlZiBTZXR0aW5nc01h
Y3Jvc19oXG4iOworICAgIHByaW50ICRmaWxlICIjZGVmaW5lIFNldHRpbmdzTWFjcm9zX2hcblxu
IjsKKworICAgIHByaW50Q29uZGl0aW9uYWxNYWNyb3MoJGZpbGUsIFwlc2V0dGluZ3NCeUNvbmRp
dGlvbmFsLCAkcGFyc2VkSXRlbXNSZWYpOworCisgICAgcHJpbnRHZXR0ZXJzQW5kU2V0dGVycygk
ZmlsZSwgXCV1bmNvbmRpdGlvbmFsU2V0dGluZ3MsIFwlc2V0dGluZ3NCeUNvbmRpdGlvbmFsLCAk
cGFyc2VkSXRlbXNSZWYpOworICAgIHByaW50TWVtYmVyVmFyaWFibGVzKCRmaWxlLCBcJXVuY29u
ZGl0aW9uYWxTZXR0aW5ncywgXCVzZXR0aW5nc0J5Q29uZGl0aW9uYWwsICRwYXJzZWRJdGVtc1Jl
Zik7CisgICAgcHJpbnRJbml0aWFsaXplckxpc3QoJGZpbGUsIFwldW5jb25kaXRpb25hbFNldHRp
bmdzLCBcJXNldHRpbmdzQnlDb25kaXRpb25hbCwgJHBhcnNlZEl0ZW1zUmVmKTsKKworICAgIHBy
aW50ICRmaWxlICIjZW5kaWYgLy8gU2V0dGluZ3NNYWNyb3NfaFxuIjsKKworICAgIGNsb3NlICRm
aWxlOworfQorCitzdWIgcHJpbnRDb25kaXRpb25hbE1hY3JvcygkJCQpCit7CisgICAgbXkgKCRm
aWxlLCAkc2V0dGluZ3NCeUNvbmRpdGlvbmFsUmVmLCAkcGFyc2VkSXRlbXNSZWYpID0gQF87Cisg
ICAgbXkgJXBhcnNlZEl0ZW1zID0gJXsgJHBhcnNlZEl0ZW1zUmVmIH07CisgICAgbXkgJXNldHRp
bmdzQnlDb25kaXRpb25hbCA9ICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxSZWYgfTsKKworICAg
IGZvciBteSAkY29uZGl0aW9uYWwgKHNvcnQga2V5cyAlc2V0dGluZ3NCeUNvbmRpdGlvbmFsKSB7
CisgICAgICAgIG15ICRwcmVmZXJyZWRDb25kaXRpb25hbCA9ICRJbkNvbXBpbGVyLT5wcmVmZXJy
ZWRDb25kaXRpb25hbCgkY29uZGl0aW9uYWwpOworICAgICAgICBwcmludCAkZmlsZSAiI2lmICIg
LiAkSW5Db21waWxlci0+Y29uZGl0aW9uYWxTdHJpbmdGcm9tQXR0cmlidXRlVmFsdWUoJGNvbmRp
dGlvbmFsKSAuICJcbiI7CisKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJy
ZWRDb25kaXRpb25hbH1fU0VUVElOR1NfR0VUVEVSX0FORF9TRVRURVJTIFxcXG4iOworICAgICAg
ICBmb3IgbXkgJHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXsgJHNldHRpbmdzQnlDb25kaXRpb25h
bHskY29uZGl0aW9uYWx9IH0pIHsKKyAgICAgICAgICAgIHByaW50R2V0dGVyQW5kU2V0dGVyKCRm
aWxlLCAkc2V0dGluZ05hbWUsICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0pOwor
ICAgICAgICB9CisgICAgICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgJHtwcmVmZXJyZWRDb25k
aXRpb25hbH1fU0VUVElOR1NfR0VUVEVSX0FORF9TRVRURVJTXG4iOworCisgICAgICAgIHByaW50
ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX05PTl9CT09M
X01FTUJFUl9WQVJJQUJMRVMgXFxcbiI7CisgICAgICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNv
cnQga2V5cyAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH0gfSkgeworICAg
ICAgICAgICAgbXkgJHR5cGUgPSAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9Owor
ICAgICAgICAgICAgbmV4dCBpZiAkdHlwZSBlcSAiYm9vbCI7CisgICAgICAgICAgICBwcmludCAk
ZmlsZSAiICAgICR0eXBlIG1fJHNldHRpbmdOYW1lOyBcXFxuIgorICAgICAgICB9CisgICAgICAg
IHByaW50ICRmaWxlICIvLyBFbmQgb2YgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1Nf
Tk9OX0JPT0xfTUVNQkVSX1ZBUklBQkxFU1xuIjsKKworICAgICAgICBwcmludCAkZmlsZSAiI2Rl
ZmluZSAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19CT09MX01FTUJFUl9WQVJJQUJM
RVMgXFxcbiI7CisgICAgICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5cyAleyAkc2V0
dGluZ3NCeUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH0gfSkgeworICAgICAgICAgICAgbmV4dCBp
ZiAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9IG5lICJib29sIjsKKyAgICAgICAg
ICAgIHByaW50ICRmaWxlICIgICAgYm9vbCBtXyRzZXR0aW5nTmFtZSA6IDE7IFxcXG4iCisgICAg
ICAgIH0KKyAgICAgICAgcHJpbnQgJGZpbGUgIi8vIEVuZCBvZiAke3ByZWZlcnJlZENvbmRpdGlv
bmFsfV9TRVRUSU5HU19CT09MX01FTUJFUl9WQVJJQUJMRVNcbiI7CisKKyAgICAgICAgcHJpbnQg
JGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfTk9OX0JPT0xf
SU5JVElBTElaRVJTIFxcXG4iOworICAgICAgICBmb3IgbXkgJHNldHRpbmdOYW1lIChzb3J0IGtl
eXMgJXsgJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9IH0pIHsKKyAgICAgICAg
ICAgIG5leHQgaWYgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifSBlcSAiYm9vbCI7
CisgICAgICAgICAgICBwcmludEluaXRpYWxpemVyKCRmaWxlLCAkc2V0dGluZ05hbWUsICRwYXJz
ZWRJdGVtc1JlZik7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgJGZpbGUgIi8vIEVuZCBvZiAk
e3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19OT05fQk9PTF9JTklUSUFMSVpFUlNcbiI7
CisKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1f
U0VUVElOR1NfQk9PTF9JTklUSUFMSVpFUlMgXFxcbiI7CisgICAgICAgIGZvciBteSAkc2V0dGlu
Z05hbWUgKHNvcnQga2V5cyAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH0g
fSkgeworICAgICAgICAgICAgbmV4dCBpZiAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlw
ZSJ9IG5lICJib29sIjsKKyAgICAgICAgICAgIHByaW50SW5pdGlhbGl6ZXIoJGZpbGUsICRzZXR0
aW5nTmFtZSwgJHBhcnNlZEl0ZW1zUmVmKTsKKyAgICAgICAgfQorICAgICAgICBwcmludCAkZmls
ZSAiLy8gRW5kIG9mICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0JPT0xfSU5JVElB
TElaRVJTXG4iOworCisgICAgICAgIHByaW50ICRmaWxlICIjZWxzZVxuIjsKKyAgICAgICAgcHJp
bnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfR0VUVEVS
X0FORF9TRVRURVJTXG4iOworICAgICAgICBwcmludCAkZmlsZSAiI2RlZmluZSAke3ByZWZlcnJl
ZENvbmRpdGlvbmFsfV9TRVRUSU5HU19OT05fQk9PTF9NRU1CRVJfVkFSSUFCTEVTXG4iOworICAg
ICAgICBwcmludCAkZmlsZSAiI2RlZmluZSAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5H
U19CT09MX01FTUJFUl9WQVJJQUJMRVNcbiI7CisgICAgICAgIHByaW50ICRmaWxlICIjZGVmaW5l
ICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX05PTl9CT09MX0lOSVRJQUxJWkVSU1xu
IjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1f
U0VUVElOR1NfQk9PTF9JTklUSUFMSVpFUlNcbiI7CisgICAgICAgIHByaW50ICRmaWxlICIjZW5k
aWZcbiI7CisgICAgICAgIHByaW50ICRmaWxlICJcbiI7CisgICAgfQorfQorCitzdWIgcHJpbnRH
ZXR0ZXJzQW5kU2V0dGVycygkJCQkKQoreworICAgIG15ICgkZmlsZSwgJHVuY29uZGl0aW9uYWxT
ZXR0aW5nc1JlZiwgJHNldHRpbmdzQnlDb25kaXRpb25hbFJlZiwgJHBhcnNlZEl0ZW1zUmVmKSA9
IEBfOworICAgIG15ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworICAgIG15
ICV1bmNvbmRpdGlvbmFsU2V0dGluZ3MgPSAleyAkdW5jb25kaXRpb25hbFNldHRpbmdzUmVmIH07
CisgICAgbXkgJXNldHRpbmdzQnlDb25kaXRpb25hbCA9ICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9u
YWxSZWYgfTsKKworICAgIHByaW50ICRmaWxlICIjZGVmaW5lIFNFVFRJTkdTX0dFVFRFUlNfQU5E
X1NFVFRFUlMgXFxcbiI7CisgICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV1bmNv
bmRpdGlvbmFsU2V0dGluZ3MpIHsKKyAgICAgICAgcHJpbnRHZXR0ZXJBbmRTZXR0ZXIoJGZpbGUs
ICRzZXR0aW5nTmFtZSwgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifSk7CisgICAg
fQorICAgIGZvciBteSAkY29uZGl0aW9uYWwgKHNvcnQga2V5cyAlc2V0dGluZ3NCeUNvbmRpdGlv
bmFsKSB7CisgICAgICAgIG15ICRwcmVmZXJyZWRDb25kaXRpb25hbCA9ICRJbkNvbXBpbGVyLT5w
cmVmZXJyZWRDb25kaXRpb25hbCgkY29uZGl0aW9uYWwpOworICAgICAgICBwcmludCAkZmlsZSAi
ICAgICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0dFVFRFUl9BTkRfU0VUVEVSUyBc
XFxuIjsKKyAgICB9CisgICAgcHJpbnQgJGZpbGUgIi8vIEVuZCBvZiBTRVRUSU5HU19HRVRURVJT
X0FORF9TRVRURVJTLlxuXG4iOworfQorCitzdWIgcHJpbnRNZW1iZXJWYXJpYWJsZXMoJCQkJCkK
K3sKKyAgICBteSAoJGZpbGUsICR1bmNvbmRpdGlvbmFsU2V0dGluZ3NSZWYsICRzZXR0aW5nc0J5
Q29uZGl0aW9uYWxSZWYsICRwYXJzZWRJdGVtc1JlZikgPSBAXzsKKyAgICBteSAlcGFyc2VkSXRl
bXMgPSAleyAkcGFyc2VkSXRlbXNSZWYgfTsKKyAgICBteSAldW5jb25kaXRpb25hbFNldHRpbmdz
ID0gJXsgJHVuY29uZGl0aW9uYWxTZXR0aW5nc1JlZiB9OworICAgIG15ICVzZXR0aW5nc0J5Q29u
ZGl0aW9uYWwgPSAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFsUmVmIH07CisKKyAgICBwcmludCAk
ZmlsZSAiI2RlZmluZSBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTIFxcXG4iOworICAgICMgV2Ug
bGlzdCB0aGUgYm9vbHMgbGFzdCBzbyB3ZSBjYW4gYml0IHBhY2sgdGhlbS4KKyAgICBmb3IgbXkg
JHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXVuY29uZGl0aW9uYWxTZXR0aW5ncykgeworICAgICAg
ICBteSAkdHlwZSA9ICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn07CisgICAgICAg
IG5leHQgaWYgJHR5cGUgZXEgImJvb2wiOworICAgICAgICBwcmludCAkZmlsZSAiICAgICR0eXBl
IG1fJHNldHRpbmdOYW1lOyBcXFxuIgorICAgIH0KKyAgICBmb3IgbXkgJGNvbmRpdGlvbmFsIChz
b3J0IGtleXMgJXNldHRpbmdzQnlDb25kaXRpb25hbCkgeworICAgICAgICBteSAkcHJlZmVycmVk
Q29uZGl0aW9uYWwgPSAkSW5Db21waWxlci0+cHJlZmVycmVkQ29uZGl0aW9uYWwoJGNvbmRpdGlv
bmFsKTsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9T
RVRUSU5HU19OT05fQk9PTF9NRU1CRVJfVkFSSUFCTEVTIFxcXG4iOworICAgIH0KKyAgICBmb3Ig
bXkgJHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXVuY29uZGl0aW9uYWxTZXR0aW5ncykgeworICAg
ICAgICBuZXh0IGlmICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0gbmUgImJvb2wi
OworICAgICAgICBwcmludCAkZmlsZSAiICAgIGJvb2wgbV8kc2V0dGluZ05hbWUgOiAxOyBcXFxu
IgorICAgIH0KKyAgICBmb3IgbXkgJGNvbmRpdGlvbmFsIChzb3J0IGtleXMgJXNldHRpbmdzQnlD
b25kaXRpb25hbCkgeworICAgICAgICBteSAkcHJlZmVycmVkQ29uZGl0aW9uYWwgPSAkSW5Db21w
aWxlci0+cHJlZmVycmVkQ29uZGl0aW9uYWwoJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcHJpbnQg
JGZpbGUgIiAgICAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19CT09MX01FTUJFUl9W
QVJJQUJMRVMgXFxcbiI7CisgICAgfQorICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgU0VUVElO
R1NfTUVNQkVSX1ZBUklBQkxFUy5cblxuIjsKK30KKworc3ViIHByaW50R2V0dGVyQW5kU2V0dGVy
KCQkJCkKK3sKKyAgICBteSAoJGZpbGUsICRzZXR0aW5nTmFtZSwgJHR5cGUpID0gQF87CisgICAg
bXkgJHNldHRlckZ1bmN0aW9uTmFtZSA9ICJzZXQiIC4gJHNldHRpbmdOYW1lOworICAgIHN1YnN0
cigkc2V0dGVyRnVuY3Rpb25OYW1lLCAzLCAxKSA9IHVjKHN1YnN0cigkc2V0dGVyRnVuY3Rpb25O
YW1lLCAzLCAxKSk7CisgICAgaWYgKHN1YnN0cigkc2V0dGluZ05hbWUsIDAsIDMpIGVxICJjc3Mi
IHx8IHN1YnN0cigkc2V0dGluZ05hbWUsIDAsIDMpIGVxICJ4c3MiIHx8IHN1YnN0cigkc2V0dGlu
Z05hbWUsIDAsIDMpIGVxICJmdHAiKSB7CisgICAgICAgIHN1YnN0cigkc2V0dGVyRnVuY3Rpb25O
YW1lLCAzLCAzKSA9IHVjKHN1YnN0cigkc2V0dGVyRnVuY3Rpb25OYW1lLCAzLCAzKSk7CisgICAg
fQorICAgIGlmIChsYyhzdWJzdHIoJHR5cGUsIDAsIDEpKSBlcSBzdWJzdHIoJHR5cGUsIDAsIDEp
KSB7CisgICAgICAgIHByaW50ICRmaWxlICIgICAgJHR5cGUgJHNldHRpbmdOYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV8kc2V0dGluZ05hbWU7IH0gXFxcbiI7CisgICAgICAgIHByaW50ICRmaWxlICIg
ICAgdm9pZCAkc2V0dGVyRnVuY3Rpb25OYW1lKCR0eXBlICRzZXR0aW5nTmFtZSkgeyBtXyRzZXR0
aW5nTmFtZSA9ICRzZXR0aW5nTmFtZTsgfSBcXFxuIjsKKyAgICB9IGVsc2UgeworICAgICAgICBw
cmludCAkZmlsZSAiICAgIGNvbnN0ICR0eXBlJiAkc2V0dGluZ05hbWUoKSB7IHJldHVybiBtXyRz
ZXR0aW5nTmFtZTsgfSBcXFxuIjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICB2b2lkICRzZXR0
ZXJGdW5jdGlvbk5hbWUoY29uc3QgJHR5cGUmICRzZXR0aW5nTmFtZSkgeyBtXyRzZXR0aW5nTmFt
ZSA9ICRzZXR0aW5nTmFtZTsgfSBcXFxuIjsKKyAgICB9Cit9CisKK3N1YiBwcmludEluaXRpYWxp
emVyTGlzdCgkJCQkKQoreworICAgIG15ICgkZmlsZSwgJHVuY29uZGl0aW9uYWxTZXR0aW5nc1Jl
ZiwgJHNldHRpbmdzQnlDb25kaXRpb25hbFJlZiwgJHBhcnNlZEl0ZW1zUmVmKSA9IEBfOworICAg
IG15ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworICAgIG15ICV1bmNvbmRp
dGlvbmFsU2V0dGluZ3MgPSAleyAkdW5jb25kaXRpb25hbFNldHRpbmdzUmVmIH07CisgICAgbXkg
JXNldHRpbmdzQnlDb25kaXRpb25hbCA9ICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxSZWYgfTsK
KworICAgIHByaW50ICRmaWxlICIjZGVmaW5lIFNFVFRJTkdTX0lOSVRJQUxJWkVSX0xJU1QgXFxc
biI7CisgICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV1bmNvbmRpdGlvbmFsU2V0
dGluZ3MpIHsKKyAgICAgICAgbmV4dCBpZiAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlw
ZSJ9IGVxICJib29sIjsKKyAgICAgICAgcHJpbnRJbml0aWFsaXplcigkZmlsZSwgJHNldHRpbmdO
YW1lLCAkcGFyc2VkSXRlbXNSZWYpOworICAgIH0KKyAgICBmb3IgbXkgJGNvbmRpdGlvbmFsIChz
b3J0IGtleXMgJXNldHRpbmdzQnlDb25kaXRpb25hbCkgeworICAgICAgICBteSAkcHJlZmVycmVk
Q29uZGl0aW9uYWwgPSAkSW5Db21waWxlci0+cHJlZmVycmVkQ29uZGl0aW9uYWwoJGNvbmRpdGlv
bmFsKTsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9T
RVRUSU5HU19OT05fQk9PTF9JTklUSUFMSVpFUlMgXFxcbiI7CisgICAgfQorICAgIGZvciBteSAk
c2V0dGluZ05hbWUgKHNvcnQga2V5cyAldW5jb25kaXRpb25hbFNldHRpbmdzKSB7CisgICAgICAg
IG5leHQgaWYgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifSBuZSAiYm9vbCI7Cisg
ICAgICAgIHByaW50SW5pdGlhbGl6ZXIoJGZpbGUsICRzZXR0aW5nTmFtZSwgJHBhcnNlZEl0ZW1z
UmVmKTsKKyAgICB9CisgICAgZm9yIG15ICRjb25kaXRpb25hbCAoc29ydCBrZXlzICVzZXR0aW5n
c0J5Q29uZGl0aW9uYWwpIHsKKyAgICAgICAgbXkgJHByZWZlcnJlZENvbmRpdGlvbmFsID0gJElu
Q29tcGlsZXItPnByZWZlcnJlZENvbmRpdGlvbmFsKCRjb25kaXRpb25hbCk7CisgICAgICAgIHBy
aW50ICRmaWxlICIgICAgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfQk9PTF9JTklU
SUFMSVpFUlMgXFxcbiI7CisgICAgfQorICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgU0VUVElO
R1NfSU5JVElBTElaRVJfTElTVC5cblxuIjsKK30KKworc3ViIHByaW50SW5pdGlhbGl6ZXIoJCQk
KQoreworICAgIG15ICgkZmlsZSwgJHNldHRpbmdOYW1lLCAkcGFyc2VkSXRlbXNSZWYpID0gQF87
CisgICAgbXkgJXBhcnNlZEl0ZW1zID0gJXsgJHBhcnNlZEl0ZW1zUmVmIH07CisKKyAgICBteSAk
aW5pdGlhbFZhbHVlID0gJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17ImluaXRpYWwifTsKKyAg
ICBteSAkdHlwZSA9ICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn07CisgICAgZGll
ICJNdXN0IHByb3ZpZGUgYW4gaW5pdGlhbCB2YWx1ZSBmb3IgJHNldHRpbmdOYW1lLiIgaWYgKCRp
bml0aWFsVmFsdWUgZXEgJycgJiYgbGMoc3Vic3RyKCR0eXBlLCAwLCAxKSkgZXEgc3Vic3RyKCR0
eXBlLCAwLCAxKSk7CisgICAgcmV0dXJuIGlmICgkaW5pdGlhbFZhbHVlIGVxICcnKTsKKyAgICBw
cmludCAkZmlsZSAiICAgICwgbV8kc2V0dGluZ05hbWUoJGluaXRpYWxWYWx1ZSkgXFxcbiIKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UgYi9Tb3VyY2UvY21h
a2UvV2ViS2l0TWFjcm9zLmNtYWtlCmluZGV4IDliYTk4OGY5ZWUxNTA2NmQwODQ3MjQ2MTAwMzBm
ZjBjMGI1M2VmZjUuLmM4MTM4YTk2YWJiMTk0MDczM2VkYWU4MjU5ZTRhMTAwZGY2ZmI4ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKKysrIGIvU291cmNlL2Nt
YWtlL1dlYktpdE1hY3Jvcy5jbWFrZQpAQCAtOTYsNiArOTYsMTggQEAgTUFDUk8gKEdFTkVSQVRF
X0VYQ0VQVElPTl9DT0RFX0RFU0NSSVBUSU9OIF9pbmZpbGUgX291dGZpbGUpCiBFTkRNQUNSTyAo
KQogCiAKK01BQ1JPIChHRU5FUkFURV9TRVRUSU5HU19NQUNST1MgX2luZmlsZSBfb3V0ZmlsZSkK
KyAgICBTRVQoTkFNRVNfR0VORVJBVE9SICR7V0VCQ09SRV9ESVJ9L3BhZ2UvbWFrZV9zZXR0aW5n
cy5wbCkKKworICAgIEFERF9DVVNUT01fQ09NTUFORCgKKyAgICAgICAgT1VUUFVUICAke0RFUklW
RURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfb3V0ZmlsZX0KKyAgICAgICAgTUFJTl9ERVBFTkRF
TkNZICR7X2luZmlsZX0KKyAgICAgICAgREVQRU5EUyAke05BTUVTX0dFTkVSQVRPUn0gJHtTQ1JJ
UFRTX0JJTkRJTkdTfQorICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAtSSR7V0VC
Q09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMgJHtOQU1FU19HRU5FUkFUT1J9IC0taW5wdXQgJHtf
aW5maWxlfSAtLW91dHB1dERpciAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KKyAgICAg
ICAgVkVSQkFUSU0pCitFTkRNQUNSTyAoKQorCisKIE1BQ1JPIChHRU5FUkFURV9ET01fTkFNRVMg
X25hbWVzcGFjZSBfYXR0cnMpCiAgICAgU0VUKE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElS
fS9kb20vbWFrZV9uYW1lcy5wbCkKICAgICBTRVQoX2FyZ3VtZW50cyAgLS1hdHRycyAke19hdHRy
c30pCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
ZGU1ZDYxOTQ2OGFjMTNjM2MxZWZiZjE1ZGE4MjdjNWQ4NjkwMzMyNC4uMjY2NTBjNjJiZmFiZGUx
OGI1NDNhMDQ0ODlmYWI4NTgwMGQ0MzFmZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTExLTEyICBUb255IENo
YW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2VuZXJhdGUgU2V0dGluZ3MgZnJv
bSBhIC5pbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAg
IEFkZCB0aGUgZ2VuZXJhdGVkIFdlYkNvcmUgZmlsZXMgdG8gdGhlIGluY2x1ZGUgZGlyLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0OgorCiAyMDEyLTExLTEzICBEaW1pdHJpIEdsYXprb3Yg
IDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjEzNDQ0OS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50
eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CmluZGV4IDE2M2VkYzc1M2I3
M2Y0ZDA1YmY3YTRlYzIxZTlmZmIwNWJmYTc1N2YuLjcwMDFjMTg0NTI0MTg0NDEyMmM3Y2NhYjhk
OTE0NGMxOWFiOTNjYWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0
cy50eHQKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dApAQCAtMyw2ICsz
LDcgQEAgU0VUKFRFU1RXRUJLSVRBUElfRElSICIke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSSIp
CiBJTkNMVURFX0RJUkVDVE9SSUVTKCR7Q01BS0VfQklOQVJZX0RJUn0KICAgICAke1RFU1RXRUJL
SVRBUElfRElSfQogICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlCisgICAgJHtERVJJVkVE
X1NPVVJDRVNfV0VCQ09SRV9ESVJ9CiAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9
L2luY2x1ZGUKICAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0KICAgICAke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vQVBJCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMu
dHh0IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dAppbmRleCAyZDdkNTBl
NmMwYTdjYWUyM2YxN2EzOWI4NmNmYTdmODZlYmRkMzY2Li44NDQwNGU4NDg0ZmEyOGJlN2M2MTEx
NmJkMTZkY2ZhMGI3ZDU5MjVhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NN
YWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQK
QEAgLTQwLDYgKzQwLDcgQEAgU0VUKFdlYktpdFRlc3RSdW5uZXJfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9lZmwKICAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0Mvc291cAogICAgICR7V1RGX0RJUn0KKyAgICAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0KICAgICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0v
aW5jbHVkZQogICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9pbmNsdWRlCiAgICAg
JHtERVJJVkVEX1NPVVJDRVNfRElSfS9JbmplY3RlZEJ1bmRsZQpkaWZmIC0tZ2l0IGEvQ2hhbmdl
TG9nIGIvQ2hhbmdlTG9nCmluZGV4IDU2YTQ5OTNhNmU0OThiZDg1N2Y1NzI0NDI4NDY3Mjk1MDFk
MTQ0YmUuLjdhYjNlY2E1N2VlNTdhMjE4NmU5NDlhOGQ2OTczY2FiZjM1MjY3NTggMTAwNjQ0Ci0t
LSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMS0x
MiAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEdlbmVyYXRlIFNl
dHRpbmdzIGZyb20gYSAuaW4gZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAwMzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4K
KworICAgICAgICBHZW5lcmF0ZSBTZXR0aW5nc01hY3Jvcy5oIGZvciBjbWFrZS4KKworICAgICAg
ICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2U6CisKIDIwMTItMTEtMTMgIEh1Z28g
UGFyZW50ZSBMaW1hICA8aHVnby5saW1hQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgRmluZEdM
SUIuY21ha2UgZmFpbHMgZG8gZmluZCBnbGliIGdtb2R1bGUgbW9kdWxlLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174021</attachid>
            <date>2012-11-13 16:19:11 -0800</date>
            <delta_ts>2012-11-14 10:17:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100393-20121113161712.patch</filename>
            <type>text/plain</type>
            <size>105904</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdiNDlhMjA0YmM0MDUz
MGE3MjM4ODk2ODFkNmU5MmE3OTU3MjhiOC4uMTI1Y2NiZDBmNzcyMmJlZjE0YzcwOGNlMTY4NGI4
NjhmNjY3MDY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTExLTEyICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2VuZXJhdGUgU2V0dGluZ3Mg
ZnJvbSBhIC5pbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAg
ICAgIEdlbmVyYXRlIG1vc3Qgc2V0dGluZ3MgZnJvbSBhbiAuaW4gZmlsZSB0byByZWR1Y2UgaHVt
YW4gbWlzdGFrZXMgYW5kCisgICAgICAgIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGFkZC9yZW1vdmUg
bmV3IHNldHRpbmdzLgorCisgICAgICAgIEkgb25seSBtb3ZlZCBzZXR0aW5ncyB0aGF0IGFyZSBl
YXN5IHRvIG1vdmUgYXQgdGhpcyBwb2ludC4gIFRoZXJlIGFyZSBtYW55IG1vcmUgdGhhdAorICAg
ICAgICBoYXZlIHNvbWUgbWlub3IgbmFtaW5nIGluY29uc2lzdGVuY2llcyB0aGF0IHdlIGNhbiBh
bHNvIG1vdmUgdG8gU2V0dGluZ3MuaW4sIGJ1dCBJJ2xsCisgICAgICAgIGRvIHRoYXQgaW4gYSBm
b2xsb3cgdXAgcGF0Y2guCisKKyAgICAgICAgVGhpcyBkb2Vzbid0IGdlbmVyYXRlIFNldHRpbmdJ
bnRlcm5hbHMuKiB5ZXQtLSB3ZSBjYW4gZG8gdGhhdCBpbiBhIGZvbGxvdyB1cCBwYXRjaC4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMgYSByZWZhY3Rvci4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IFJ1biBtYWtlX3Nl
dHRpbmdzLnBsLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnByaTogUnVuIG1ha2Vfc2V0dGlu
Z3MucGwuCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IFJ1biBtYWtlX3NldHRpbmdzLnBsLgor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5leHAuaW46
IFJlbW92ZSBmdW5jdGlvbnMgdGhhdCBhcmUgbm93IGlubGluZSBpbiB0aGUgaGVhZGVyLgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOiBSdW4gYWN0aW9uX21ha2VuYW1lcy5weSwg
d2hpY2ggd2lsbCBydW4gbWFrZV9zZXR0aW5ncy5wbC4KKyAgICAgICAgKiBXZWJDb3JlLmd5cC9z
Y3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHk6CisgICAgICAgIChtYWluKTogQWxsb3cgbWFrZV9z
ZXR0aW5ncy5wbC4KKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOiBSZW1vdmUgZnVuY3Rpb25zIHRo
YXQgYXJlIG5vdyBpbmxpbmUgaW4gdGhlIGhlYWRlci4KKyAgICAgICAgKiBodG1sL1ZhbGlkYXRp
b25NZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25NZXNzYWdlOjpzZXRN
ZXNzYWdlRE9NQW5kU3RhcnRUaW1lcik6IEZpeCBhIHR5cG8gaW4gIm1hZ25pZmljYXRpb24iLgor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6
OlNldHRpbmdzKTogUmVwbGFjZSBnZW5lcmF0ZWQgc2V0dGluZ3Mgd2l0aCBTRVRUSU5HU19JTklU
SUFMSVpFUl9MSVNULgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFNldHRp
bmdzKTogUmVwbGFjZSBnZW5lcmF0ZWQgc2V0dGluZ3Mgd2l0aCBTRVRUSU5HU19HRVRURVJTX0FO
RF9TRVRURVJTIGFuZCBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTLgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuaW46IEFkZGVkLgorICAgICAgICAqIHBhZ2UvbWFrZV9zZXR0aW5ncy5wbDogQWRk
ZWQuCisgICAgICAgIChkZWZhdWx0SXRlbUZhY3RvcnkpOgorICAgICAgICAoZ2VuZXJhdGVDb2Rl
KToKKyAgICAgICAgKGdlbmVyYXRlSGVhZGVyKTogVXNlIGEgc2ltaWxhciBtb2RlbCBhcyBtYWtl
X25hbWVzLnBsLgorICAgICAgICAocHJpbnRDb25kaXRpb25hbE1hY3Jvcyk6CisgICAgICAgIChw
cmludEdldHRlcnNBbmRTZXR0ZXJzKToKKyAgICAgICAgKHByaW50TWVtYmVyVmFyaWFibGVzKToK
KyAgICAgICAgKHByaW50R2V0dGVyQW5kU2V0dGVyKToKKyAgICAgICAgKHByaW50SW5pdGlhbGl6
ZXJMaXN0KToKKyAgICAgICAgKHByaW50SW5pdGlhbGl6ZXIpOgorCiAyMDEyLTExLTEzICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggMzA3MDcyYmY3ZTQzOGM4YzM4NmI0ODhiZTUxOTVmOGFjMzk2NDhh
Mi4uZGJkMzg2NzdmMzliZTUwZGM4ZWQzOTYwMjRjNTY4YjZmYWE3ZGU1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTI4OTYsNiArMjg5NiwxMCBAQCBHRU5FUkFURV9FWENFUFRJT05fQ09ERV9E
RVNDUklQVElPTigke1dFQkNPUkVfRElSfS9kb20vRE9NRXhjZXB0aW9ucy5pbiBFeGNlcHRpbwog
TElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS9FeGNlcHRpb25Db2RlRGVzY3JpcHRpb24uY3BwKQogCiAKK0dFTkVSQVRFX1NFVFRJTkdTX01B
Q1JPUygke1dFQkNPUkVfRElSfS9wYWdlL1NldHRpbmdzLmluIFNldHRpbmdzTWFjcm9zLmgpCitM
SVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9
L1NldHRpbmdzTWFjcm9zLmgpCisKKwogR0VORVJBVEVfRk9OVF9OQU1FUygke1dFQkNPUkVfRElS
fS9jc3MvV2ViS2l0Rm9udEZhbWlseU5hbWVzLmluKQogTElTVChBUFBFTkQgV2ViQ29yZV9TT1VS
Q0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9XZWJLaXRGb250RmFtaWx5TmFtZXMu
Y3BwKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0YzY0Yzg5NTFiYWQ2Y2I3
MDRjNTBlZmViMDM5YjA4NTIzODVhMDg0Li5mZGYwZTFlODZjY2U1ZmU1ZjViZjAxMzc1YmRmOTYw
M2YyYzUxM2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTkyNSw2ICs5MjUs
MTMgQEAgTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwIE1hdGhNTE5hbWVzLmNwcCA6IGRvbS9tYWtl
X25hbWVzLnBsIG1hdGhtbC9tYXRodGFncy5pbgogCiAjIC0tLS0tLS0tCiAKK2FsbCA6IFNldHRp
bmdzTWFjcm9zLmgKKworU2V0dGluZ3NNYWNyb3MuaCA6IHBhZ2UvbWFrZV9zZXR0aW5ncy5wbCBw
YWdlL1NldHRpbmdzLmluCisJcGVybCAtSSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwg
LS1pbnB1dCAkKFdlYkNvcmUpL3BhZ2UvU2V0dGluZ3MuaW4KKworIyAtLS0tLS0tLQorCiAjIENv
bW1vbiBnZW5lcmF0b3IgdGhpbmdzCiAKIEdFTkVSQVRFX1NDUklQVFMgPSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5wcmkKaW5kZXggOWY2OWVmNDNjNWQyM2Y3MmY5ZDBmYjlkMGZmMzViNGVhY2U1
ODVjZS4uOTNlZWIyNDc0ZTY4YjBhYjU3M2MwMmFkNTY4MjZmOWY2NjZkZjc4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtNDcsNiArNDcsOCBAQCBFVkVOVF9UQVJHRVRfRkFDVE9S
WSA9ICQkUFdEL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KIAogRE9NX0VYQ0VQVElPTlMgPSAk
JFBXRC9kb20vRE9NRXhjZXB0aW9ucy5pbgogCitTRVRUSU5HU19NQUNST1MgPSAkJFBXRC9wYWdl
L1NldHRpbmdzLmluCisKIENPTE9SREFUQV9HUEVSRiA9ICQkUFdEL3BsYXRmb3JtL0NvbG9yRGF0
YS5ncGVyZgogCiBXQUxET0NTU1BST1BTID0gJCRQV0QvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4K
QEAgLTg2Nyw2ICs4NjksMTQgQEAgZXhjZXB0aW9uY29kZWRlc2NyaXB0aW9uLmNvbW1hbmRzID0g
cGVybCAtSSQkUFdEL2JpbmRpbmdzL3NjcmlwdHMgJCRleGNlcHRpb25jb2QKIGV4Y2VwdGlvbmNv
ZGVkZXNjcmlwdGlvbi5kZXBlbmRzID0gJCRQV0QvZG9tL21ha2VfZG9tX2V4Y2VwdGlvbnMucGwg
JCRET01fRVhDRVBUSU9OUwogR0VORVJBVE9SUyArPSBleGNlcHRpb25jb2RlZGVzY3JpcHRpb24K
IAorIyBHRU5FUkFUT1IgNS1IOgorc2V0dGluZ3NtYWNyb3Mub3V0cHV0ID0gU2V0dGluZ3NNYWNy
b3MuaAorc2V0dGluZ3NtYWNyb3MuaW5wdXQgPSBTRVRUSU5HU19NQUNST1MKK3NldHRpbmdzbWFj
cm9zLnNjcmlwdCA9ICQkUFdEL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbAorc2V0dGluZ3NtYWNyb3Mu
Y29tbWFuZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAkJHNldHRpbmdzbWFjcm9z
LnNjcmlwdCAtLWlucHV0ICQkU0VUVElOR1NfTUFDUk9TIC0tb3V0cHV0RGlyICR7UU1BS0VfRlVO
Q19GSUxFX09VVF9QQVRIfQorc2V0dGluZ3NtYWNyb3MuZGVwZW5kcyA9ICQkUFdEL3BhZ2UvbWFr
ZV9zZXR0aW5ncy5wbCAkJFNFVFRJTkdTX01BQ1JPUworR0VORVJBVE9SUyArPSBzZXR0aW5nc21h
Y3JvcworCiAjIEdFTkVSQVRPUiA4LUE6CiBlbnRpdGllcy5vdXRwdXQgPSBIVE1MRW50aXR5VGFi
bGUuY3BwCiBlbnRpdGllcy5pbnB1dCA9IEhUTUxfRU5USVRJRVMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
aW5kZXggMzU2ZGVkZjY1NDliMmM1MzdlNjVlZmUzNTk1MjMzNmRlNzZiY2QxMC4uYWY4NDk1ZjU0
ZmIzOTE1N2UxMWQ5NGU0ZTA2NjRiMmQ1MzJhZWFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAg
LTUwNCw2ICs1MDQsOSBAQCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0V2ZW50VGFyZ2V0SGVhZGVy
cy5oIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXZlbnRUYXJnZXRJbgogRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9FeGNlcHRpb25Db2RlRGVzY3JpcHRpb24uY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uLmggRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FeGNl
cHRpb25IZWFkZXJzLmggRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FeGNlcHRpb25JbnRlcmZhY2Vz
Lmg6ICQoV2ViQ29yZSkvZG9tL21ha2VfZG9tX2V4Y2VwdGlvbnMucGwgJChXZWJDb3JlKS9kb20v
RE9NRXhjZXB0aW9ucy5pbgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGlu
Z3Mvc2NyaXB0cyAkPCAtLWlucHV0ICQoV2ViQ29yZSkvZG9tL0RPTUV4Y2VwdGlvbnMuaW4gLS1v
dXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAorRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9TZXR0aW5nc01hY3Jvcy5oOiAkKFdlYkNvcmUpL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbCAkKFdl
YkNvcmUpL3BhZ2UvU2V0dGluZ3MuaW4KKwkkKEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUp
L2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1pbnB1dCAkKFdlYkNvcmUpL3BhZ2UvU2V0dGluZ3MuaW4g
LS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKKwogIyBBbGwgV2ViIEluc3BlY3Rv
ciBnZW5lcmF0ZWQgZmlsZXMgYXJlIGNyZWF0ZWQgd2l0aCB0aGlzIG9uZSBjYWxsIHRvIENvZGVH
ZW5lcmF0b3JJbnNwZWN0b3IucHkKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSW5zcGVjdG9yUHJv
dG9jb2xWZXJzaW9uLmggOiAkKFdlYkNvcmUpL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiAkKFdl
YkNvcmUpL2luc3BlY3Rvci9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtdmVyc2lvbgogCSQo
QU1fVl9HRU4pJChQWVRIT04pICQoV2ViQ29yZSkvaW5zcGVjdG9yL2dlbmVyYXRlLWluc3BlY3Rv
ci1wcm90b2NvbC12ZXJzaW9uIC1vICQoR0VOU09VUkNFU19XRUJDT1JFKS9JbnNwZWN0b3JQcm90
b2NvbFZlcnNpb24uaCAkKFdlYkNvcmUpL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtODA3
LDYgKzgxMCw4IEBAIEVYVFJBX0RJU1QgKz0gXAogCVNvdXJjZS9XZWJDb3JlL21ha2UtaGFzaC10
b29scy5wbCBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL21hdGhhdHRycy5pbiBcCiAJU291cmNl
L1dlYkNvcmUvbWF0aG1sL21hdGh0YWdzLmluIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL21ha2Vf
c2V0dGluZ3MucGwgXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZiBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9tYWMvbWFrZS1jaGFyc2V0LXRhYmxlLnBsIFwKIAlTb3VyY2UvV2ViQ29yZS9z
dmcvc3ZnYXR0cnMuaW4gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZWRiYjE1
NTZjMWE3Zjc3NmJmNjM2MWNmMjFmNGYwMGM4YzcwMWVhMC4uYWFmYzM4YTJjMjBjNDVhMGM5MDI2
MTljMDFiOGMwMzdiMjM0OWRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0x
MTQ3LDYgKzExNDcsNyBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvTWF0aE1MRWxlbWVudEZhY3RvcnkuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9NYXRoTUxOYW1lcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvTWF0aE1MTmFt
ZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9TZXR0aW5nc01hY3Jvcy5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL1NWR0VsZW1lbnRGYWN0b3J5LmNwcCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9TVkdOYW1lcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvVXNlckFn
ZW50R3RrLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBiYWM2YWFhMzI4YjdhZTYwZWE4ZWRl
YWVkZDMwZDU4NmI4MWNhNzFjLi4wYjY1ZTg2Y2EyYjExYzdmMDgyZTYxZDZjMjY5NDMwMWNiN2Iz
MDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtOTEzLDcgKzkxMyw2IEBAIF9fWk43V2ViQ29y
ZThHcmFkaWVudDEyYWRkQ29sb3JTdG9wRWZSS05TXzVDb2xvckUKIF9fWk43V2ViQ29yZThHcmFk
aWVudEMxRVJLTlNfMTBGbG9hdFBvaW50RVMzXwogX19aTjdXZWJDb3JlOFBvc2l0aW9uQzFFTjNX
VEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVFRUVpTlMwXzEwQW5jaG9yVHlwZUUKIF9fWk43V2ViQ29y
ZThTZXR0aW5nczE0c2V0SmF2YUVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMTVzZXRX
ZWJHTEVuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMTZzZXRJbWFnZXNFbmFibGVkRWIK
IF9fWk43V2ViQ29yZThTZXR0aW5nczE2c2V0U2NyaXB0RW5hYmxlZEViCiBfX1pON1dlYkNvcmU4
U2V0dGluZ3MxNnNldFVzZXNQYWdlQ2FjaGVFYgpAQCAtOTIzLDc3ICs5MjIsMzkgQEAgX19aTjdX
ZWJDb3JlOFNldHRpbmdzMThzZXREZWZhdWx0Rm9udFNpemVFaQogX19aTjdXZWJDb3JlOFNldHRp
bmdzMThzZXRGaXhlZEZvbnRGYW1pbHlFUktOM1dURjEyQXRvbWljU3RyaW5nRTExVVNjcmlwdENv
ZGUKIF9fWk43V2ViQ29yZThTZXR0aW5nczE4c2V0TWluaW11bUZvbnRTaXplRWkKIF9fWk43V2Vi
Q29yZThTZXR0aW5nczE4c2V0U2VyaWZGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0Ux
MVVTY3JpcHRDb2RlCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MxOHNldFdlYkF1ZGlvRW5hYmxlZEVi
CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MxOW1pbkRPTVRpbWVySW50ZXJ2YWxFdgogX19aTjdXZWJD
b3JlOFNldHRpbmdzMTlzZXRTaG93RGVidWdCb3JkZXJzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5n
czIwc2V0Q3Vyc2l2ZUZvbnRGYW1pbHlFUktOM1dURjEyQXRvbWljU3RyaW5nRTExVVNjcmlwdENv
ZGUKIF9fWk43V2ViQ29yZThTZXR0aW5nczIwc2V0RmFudGFzeUZvbnRGYW1pbHlFUktOM1dURjEy
QXRvbWljU3RyaW5nRTExVVNjcmlwdENvZGUKLV9fWk43V2ViQ29yZThTZXR0aW5nczIwc2V0WFNT
QXVkaXRvckVuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFtb2NrU2Nyb2xsYmFyc0Vu
YWJsZWRFdgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRTaG93UmVwYWludENvdW50ZXJFYgog
X19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRTdGFuZGFyZEZvbnRGYW1pbHlFUktOM1dURjEyQXRv
bWljU3RyaW5nRTExVVNjcmlwdENvZGUKIF9fWk43V2ViQ29yZThTZXR0aW5nczIxc2V0V2ViU2Vj
dXJpdHlFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0TG9jYWxTdG9yYWdlRW5h
YmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldE1pbkRPTVRpbWVySW50ZXJ2YWxFZAog
X19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRTYW5zU2VyaWZGb250RmFtaWx5RVJLTjNXVEYxMkF0
b21pY1N0cmluZ0UxMVVTY3JpcHRDb2RlCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNlc3Np
b25TdG9yYWdlUXVvdGFFagotX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRTaG93c1VSTHNJblRv
b2xUaXBzRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWRF
YgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXREZWZhdWx0Rml4ZWRGb250U2l6ZUVpCi1fX1pO
N1dlYkNvcmU4U2V0dGluZ3MyM3NldEVkaXRhYmxlTGlua0JlaGF2aW9yRU5TXzIwRWRpdGFibGVM
aW5rQmVoYXZpb3JFCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldExvYWREZWZlcnJpbmdFbmFi
bGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0UGljdG9ncmFwaEZvbnRGYW1pbHlFUktO
M1dURjEyQXRvbWljU3RyaW5nRTExVVNjcmlwdENvZGUKLV9fWk43V2ViQ29yZThTZXR0aW5nczIz
c2V0VXNlc0VuY29kaW5nRGV0ZWN0b3JFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRBcHBs
aWNhdGlvbkNocm9tZU1vZGVFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRETlNQcmVmZXRj
aGluZ0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRNb2NrU2Nyb2xsYmFyc0Vu
YWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnNF
YgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3lFTlNfMTRT
ZWN1cml0eU9yaWdpbjIxU3RvcmFnZUJsb2NraW5nUG9saWN5RQogX19aTjdXZWJDb3JlOFNldHRp
bmdzMjRzZXRUZXh0QXJlYXNBcmVSZXNpemFibGVFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjVz
ZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldE1pbmltdW1M
b2dpY2FsRm9udFNpemVFaQotX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXROZWVkc0xlb3BhcmRN
YWlsUXVpcmtzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldFNob3VsZFByaW50QmFja2dyb3VuZHNF
YgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uRVJLTlNf
NEtVUkxFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNmRlZmF1bHRNaW5ET01UaW1lckludGVydmFs
RXYKLV9fWk43V2ViQ29yZThTZXR0aW5nczI2c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWVFUktO
M1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyNnNldE5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0RlRQRGlyZWN0b3J5VGVtcGxhdGVQ
YXRoRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRKYXZhRW5hYmxl
ZEZvckxvY2FsRmlsZXNFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRMb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHlFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRMb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGhFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyN3NldFNwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyOHNldERPTVRpbWVy
QWxpZ25tZW50SW50ZXJ2YWxFZAotX19aTjdXZWJDb3JlOFNldHRpbmdzMjhzZXRGb3JjZUZUUERp
cmVjdG9yeUxpc3RpbmdzRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI5c2V0QWNjZWxlcmF0ZWQy
ZENhbnZhc0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjlzZXRBdXRob3JBbmRVc2Vy
U3R5bGVzRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyOXNldERlZmF1bHRNaW5ET01U
aW1lckludGVydmFsRWQKLV9fWk43V2ViQ29yZThTZXR0aW5nczI5c2V0V2ViQXJjaGl2ZURlYnVn
TW9kZUVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzBzZXRBbGxvd0ZpbGVBY2Nlc3NG
cm9tRmlsZVVSTHNFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzFzZXRDYW52YXNVc2VzQWNjZWxl
cmF0ZWREcmF3aW5nRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczMxc2V0SmF2YVNjcmlwdENhbkFj
Y2Vzc0NsaXBib2FyZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzMXNldEphdmFTY3JpcHRFeHBl
cmltZW50c0VuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzFzZXRTaHJpbmtzU3RhbmRh
bG9uZUltYWdlc1RvRml0RWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczMyZGVmYXVsdERPTVRpbWVy
QWxpZ25tZW50SW50ZXJ2YWxFdgogX19aTjdXZWJDb3JlOFNldHRpbmdzMzJzZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMnNldE5lZWRzQWRv
YmVGcmFtZVJlbG9hZGluZ1F1aXJrRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczMyc2V0U2NyZWVu
Rm9udFN1YnN0aXR1dGlvbkVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzJzZXRTaG93
c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzM3NldERv
d25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzNHNl
dExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdz
MzVzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0ViCi1fX1pON1dlYkNvcmU4U2V0
dGluZ3MzNXNldEVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlRWIKLV9fWk43V2ViQ29y
ZThTZXR0aW5nczM1c2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWRFYgotX19aTjdX
ZWJDb3JlOFNldHRpbmdzMzVzZXRUcmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldEViCi1f
X1pON1dlYkNvcmU4U2V0dGluZ3MzNnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxl
ZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzN3NldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2
ZVRvRnJhbWVFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMzdzZXRTY3JvbGxpbmdQZXJmb3JtYW5j
ZUxvZ2dpbmdFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczQwc2V0SmF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseUViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNldFRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JFTlNfMzdUZXh0RGlyZWN0aW9uU3Vi
bWVudUluY2x1c2lvbkJlaGF2aW9yRQotX19aTjdXZWJDb3JlOFNldHRpbmdzNDFzZXROZWVkc0tl
eWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrc0ViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3M0
NHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nRWIKIF9fWk43V2Vi
Q29yZThTZXR0aW5nczQ1c2V0U2hvdWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0
ZXJzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIxc2V0UmVzb2x1dGlvbk92ZXJyaWRlRVJLTlNf
N0ludFNpemVFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMHNldE1lZGlhVHlwZU92ZXJyaWRlRVJL
TjNXVEY2U3RyaW5nRQpAQCAtMjI0OSw3ICsyMjEwLDYgQEAgX19aTks3V2ViQ29yZTE1Q29udGV4
dE1lbnVJdGVtN2VuYWJsZWRFdgogX19aTks3V2ViQ29yZThEb2N1bWVudDE2YW5ub3RhdGVkUmVn
aW9uc0V2CiAjZW5kaWYKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCi1fX1pON1dlYkNv
cmU4U2V0dGluZ3M0MXNldFVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlRWIK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXAvV2ViQ29yZS5neXAKaW5kZXggYjFiNjQ0MGQ0ZWU2YmQ4ODlkYmMxYzYwNmM3NzIyMjQ1Yjk4
ZWZmNi4uNDEzYmUwZWUyMDM5ZDA3MmRlN2JhNTIzZDIyOGQxMjk2MGNiMDJhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAgLTg3OSw2ICs4NzksMjMgQEAKICAgICAg
ICAgICBdLAogICAgICAgICB9LAogICAgICAgICB7CisgICAgICAgICAgJ2FjdGlvbl9uYW1lJzog
J1NldHRpbmdzJywKKyAgICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAgJy4uL3BhZ2Uv
bWFrZV9zZXR0aW5ncy5wbCcsCisgICAgICAgICAgICAnLi4vcGFnZS9TZXR0aW5ncy5pbicsCisg
ICAgICAgICAgXSwKKyAgICAgICAgICAnb3V0cHV0cyc6IFsKKyAgICAgICAgICAgICc8KFNIQVJF
RF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvU2V0dGluZ3NNYWNyb3MuaCcsCisgICAgICAgICAg
XSwKKyAgICAgICAgICAnYWN0aW9uJzogWworICAgICAgICAgICAgJ3B5dGhvbicsCisgICAgICAg
ICAgICAnc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5JywKKyAgICAgICAgICAgICc8QChfb3V0
cHV0cyknLAorICAgICAgICAgICAgJy0tJywKKyAgICAgICAgICAgICc8QChfaW5wdXRzKScsCisg
ICAgICAgICAgXSwKKyAgICAgICAgfSwKKyAgICAgICAgewogICAgICAgICAgICdhY3Rpb25fbmFt
ZSc6ICdVc2VyQWdlbnRTdHlsZVNoZWV0cycsCiAgICAgICAgICAgJ3ZhcmlhYmxlcyc6IHsKICAg
ICAgICAgICAgICdzY3JpcHRzJzogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5IGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5CmluZGV4IDlhZmQ4ZTg4NWU5OTZhYzUw
ZTY3ZjhlZjQwMjk5MzQxNmQ2YjE0NWMuLmExYTQxMGYxZWE1MGMzMTU0MmVhZDUxYmQzYWUwNDZl
MWM1ZWMxOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMv
YWN0aW9uX21ha2VuYW1lcy5weQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3Jp
cHRzL2FjdGlvbl9tYWtlbmFtZXMucHkKQEAgLTExNywyMiArMTE3LDE3IEBAIGRlZiBtYWluKGFy
Z3MpOgogICAgICAgICBpbnB1dEFicyA9IG9zLnBhdGguYWJzcGF0aChpbnB1dCkKICAgICAgICAg
aW5wdXRBYnNQb3NpeCA9IGlucHV0QWJzLnJlcGxhY2Uob3MucGF0aC5zZXAsIHBvc2l4cGF0aC5z
ZXApCiAgICAgICAgIGlucHV0QmFzZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKGlucHV0KQotICAg
ICAgICBpZiBpbnB1dEJhc2VuYW1lID09ICdtYWtlX25hbWVzLnBsJyBcCi0gICAgICAgICAgICBv
ciBpbnB1dEJhc2VuYW1lID09ICdtYWtlX2V2ZW50X2ZhY3RvcnkucGwnIFwKLSAgICAgICAgICAg
IG9yIGlucHV0QmFzZW5hbWUgPT0gJ21ha2VfZG9tX2V4Y2VwdGlvbnMucGwnOgorICAgICAgICBp
ZiBpbnB1dEJhc2VuYW1lIGluICgnbWFrZV9uYW1lcy5wbCcsICdtYWtlX2V2ZW50X2ZhY3Rvcnku
cGwnLCAnbWFrZV9kb21fZXhjZXB0aW9ucy5wbCcsICdtYWtlX3NldHRpbmdzLnBsJyk6CiAgICAg
ICAgICAgICBhc3NlcnQgbWFrZU5hbWVzSW5wdXQgPT0gTm9uZQogICAgICAgICAgICAgbWFrZU5h
bWVzSW5wdXQgPSBpbnB1dEFicwotICAgICAgICBlbGlmIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgo
J1RhZ05hbWVzLmluJykgXAotICAgICAgICAgICAgIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgo
J3RhZ3MuaW4nKToKKyAgICAgICAgZWxpZiBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdUYWdOYW1l
cy5pbicpIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ3RhZ3MuaW4nKToKICAgICAgICAgICAg
IGFzc2VydCB0YWdJbnB1dCA9PSBOb25lCiAgICAgICAgICAgICB0YWdJbnB1dCA9IGlucHV0QWJz
UG9zaXgKLSAgICAgICAgZWxpZiBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdBdHRyaWJ1dGVOYW1l
cy5pbicpIFwKLSAgICAgICAgICAgICBvciBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdhdHRycy5p
bicpOgorICAgICAgICBlbGlmIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ0F0dHJpYnV0ZU5hbWVz
LmluJykgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgnYXR0cnMuaW4nKToKICAgICAgICAgICAg
IGFzc2VydCBhdHRySW5wdXQgPT0gTm9uZQogICAgICAgICAgICAgYXR0cklucHV0ID0gaW5wdXRB
YnNQb3NpeAotICAgICAgICBlbGlmIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ0V2ZW50VGFyZ2V0
RmFjdG9yeS5pbicpIFwKLSAgICAgICAgICAgIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ0V2
ZW50TmFtZXMuaW4nKSBcCi0gICAgICAgICAgICBvciBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdE
T01FeGNlcHRpb25zLmluJyk6CisgICAgICAgIGVsaWYgKGlucHV0QmFzZW5hbWUuZW5kc3dpdGgo
J0V2ZW50VGFyZ2V0RmFjdG9yeS5pbicpIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ0V2ZW50
TmFtZXMuaW4nKQorICAgICAgICAgICAgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgnRE9NRXhj
ZXB0aW9ucy5pbicpIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ1NldHRpbmdzLmluJykpOgog
ICAgICAgICAgICAgZXZlbnRzSW5wdXQgPSBpbnB1dEFic1Bvc2l4CiAgICAgICAgIGVsaWYgaW5w
dXRCYXNlbmFtZS5lbmRzd2l0aCgnTmFtZXMuaW4nKToKICAgICAgICAgICAgIG9wdGlvbnMuYXBw
ZW5kKGlucHV0QWJzUG9zaXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9y
ZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCA1MDNlYmQ3MzEzZjY1MzNk
ODAxMDhkOGQ5MTI0MjdjODk5ZDFhYjA1Li4wZTZiMTU4Y2RhMDZkYzkyYzYyNTIxNTYwM2ZkYWYw
MTUzMzE4ZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTUyMyw3ICs1MjMsNiBAQCBfX1pOM1dU
RjlIYXNoVGFibGVJUE43V2ViQ29yZTRQYWdlRVMzX05TXzE3SWRlbnRpdHlFeHRyYWN0b3JJUzNf
RUVOU183UHRySGFzaElTMwogX19aTjNXVEY5SGFzaFRhYmxlSVBON1dlYkNvcmU0UGFnZUVTM19O
U18xN0lkZW50aXR5RXh0cmFjdG9ySVMzX0VFTlNfN1B0ckhhc2hJUzNfRUVOU18xMEhhc2hUcmFp
dHNJUzNfRUVTOV9FNmV4cGFuZEV2CiBfX1pON1dlYkNvcmUxMlBsdWdpbkhhbHRlckMxRU4zV1RG
MTBQYXNzT3duUHRySU5TXzE4UGx1Z2luSGFsdGVyQ2xpZW50RUVFCiBfX1pON1dlYkNvcmU0UGFn
ZTE2c2V0Q2FuU3RhcnRNZWRpYUViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyN3NldExvY2FsU3Rv
cmFnZURhdGFiYXNlUGF0aEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTVGcmFtZTZjcmVh
dGVFUE5TXzRQYWdlRVBOU18yMUhUTUxGcmFtZU93bmVyRWxlbWVudEVQTlNfMTdGcmFtZUxvYWRl
ckNsaWVudEUKIF9fWk43V2ViQ29yZTVGcmFtZUMyRVBOU180UGFnZUVQTlNfMjFIVE1MRnJhbWVP
d25lckVsZW1lbnRFUE5TXzE3RnJhbWVMb2FkZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxMUZyYW1l
TG9hZGVyQzFFUE5TXzVGcmFtZUVQTlNfMTdGcmFtZUxvYWRlckNsaWVudEUKQEAgLTE0MzQsNDAg
KzE0MzMsMjQgQEAgX19aTjNXVEY5SGFzaFRhYmxlSVBON1dlYkNvcmU4RG9jdW1lbnRFUzNfTlNf
MTdJZGVudGl0eUV4dHJhY3RvcklTM19FRU5TXzdQdHJIYXMKIF9fWk4zV1RGOUhhc2hUYWJsZUlQ
TjdXZWJDb3JlOERvY3VtZW50RVMzX05TXzE3SWRlbnRpdHlFeHRyYWN0b3JJUzNfRUVOU183UHRy
SGFzaElTM19FRU5TXzEwSGFzaFRyYWl0c0lTM19FRVM5X0U2ZXhwYW5kRXYKIF9fWk43V2ViQ29y
ZThTZXR0aW5nczIzc2V0RGVmYXVsdEZpeGVkRm9udFNpemVFaQogX19aTjdXZWJDb3JlOFNldHRp
bmdzMThzZXREZWZhdWx0Rm9udFNpemVFaQotX19aTjdXZWJDb3JlOFNldHRpbmdzMjZzZXREZWZh
dWx0VGV4dEVuY29kaW5nTmFtZUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZThTZXR0aW5n
czIzc2V0VXNlc0VuY29kaW5nRGV0ZWN0b3JFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjBzZXRG
YW50YXN5Rm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MxOHNldEZpeGVkRm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdFCi1fX1pON1dl
YkNvcmU4U2V0dGluZ3MyOHNldEZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3NFYgotX19aTjdXZWJD
b3JlOFNldHRpbmdzMjdzZXRGVFBEaXJlY3RvcnlUZW1wbGF0ZVBhdGhFUktOM1dURjZTdHJpbmdF
CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MxNHNldEphdmFFbmFibGVkRWIKIF9fWk43V2ViQ29yZThT
ZXR0aW5nczIwc2V0SmF2YVNjcmlwdEVuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFz
ZXRXZWJTZWN1cml0eUVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzVzZXRBbGxvd1Vu
aXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0ViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzMHNldEFs
bG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0ViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNldEph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHlFYgogX19aTjdXZWJDb3JlOFNldHRp
bmdzMThzZXRNaW5pbXVtRm9udFNpemVFaQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXRNaW5p
bXVtTG9naWNhbEZvbnRTaXplRWkKIF9fWk43V2ViQ29yZThTZXR0aW5nczE3c2V0UGx1Z2luc0Vu
YWJsZWRFYgogX19aTjdXZWJDb3JlMTZBYnN0cmFjdERhdGFiYXNlMTRzZXRJc0F2YWlsYWJsZUVi
Ci1fX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldExvY2FsU3RvcmFnZUVuYWJsZWRFYgotX19aTjdX
ZWJDb3JlOFNldHRpbmdzMzVzZXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZEViCiBf
X1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldFByaXZhdGVCcm93c2luZ0VuYWJsZWRFYgogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjJzZXRTYW5zU2VyaWZGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0
cmluZ0UKIF9fWk43V2ViQ29yZThTZXR0aW5nczE4c2V0U2VyaWZGb250RmFtaWx5RVJLTjNXVEYx
MkF0b21pY1N0cmluZ0UKIF9fWk43V2ViQ29yZThTZXR0aW5nczIxc2V0U3RhbmRhcmRGb250RmFt
aWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0TG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5RWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczQ0c2V0TG9hZHNT
aXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmdFYgotX19aTjdXZWJDb3JlOFNldHRp
bmdzMjVzZXRTaG91bGRQcmludEJhY2tncm91bmRzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI0
c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI0c2V0VGV4
dEFyZWFzQXJlUmVzaXphYmxlRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczMxc2V0U2hyaW5rc1N0
YW5kYWxvbmVJbWFnZXNUb0ZpdEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldEVkaXRhYmxl
TGlua0JlaGF2aW9yRU5TXzIwRWRpdGFibGVMaW5rQmVoYXZpb3JFCi1fX1pON1dlYkNvcmU4U2V0
dGluZ3M0MHNldFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JFTlNfMzdUZXh0
RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yRQogX19aTjdXZWJDb3JlOFNldHRpbmdz
MThzZXRET01QYXN0ZUFsbG93ZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMTZzZXRVc2VzUGFn
ZUNhY2hlRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0U2hvd3NVUkxzSW5Ub29sVGlwc0Vi
Ci1fX1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldERldmVsb3BlckV4dHJhc0VuYWJsZWRFYgogX19a
TjdXZWJDb3JlOFNldHRpbmdzMjlzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZEViCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MyNHNldEFwcGxpY2F0aW9uQ2hyb21lTW9kZUViCiBfX1pON1dlYkNv
cmU4U2V0dGluZ3MyNXNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb25FUktOU180S1VSTEUKQEAgLTE0
NzUsMzIgKzE0NTgsMTYgQEAgX19aTjdXZWJDb3JlNFBhZ2UyOXVzZXJTdHlsZVNoZWV0TG9jYXRp
b25DaGFuZ2VkRXYKIF9fWk5LN1dlYkNvcmU0S1VSTDEwcHJvdG9jb2xJc0VQS2MKIF9fWk43V2Vi
Q29yZThEb2N1bWVudDE5dXBkYXRlUGFnZVVzZXJTaGVldEV2CiBfX1pON1dlYkNvcmU4U2V0dGlu
Z3MzMnNldE5lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrRWIKLV9fWk43V2ViQ29yZThTZXR0
aW5nczM1c2V0VHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXRFYgotX19aTjdXZWJDb3Jl
OFNldHRpbmdzNDFzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrc0ViCi1f
X1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldE5lZWRzTGVvcGFyZE1haWxRdWlya3NFYgogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjNzZXROZWVkc1RpZ2VyTWFpbFF1aXJrc0ViCi1fX1pON1dlYkNvcmU4
U2V0dGluZ3MyNnNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzRWIKLV9fWk43V2ViQ29yZThTZXR0
aW5nczI5c2V0V2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRp
bmdzMzRzZXRMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkRWIKLV9fWk43V2ViQ29yZThT
ZXR0aW5nczM2c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkRWIKLV9fWk43V2Vi
Q29yZThTZXR0aW5nczMxc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZEViCi1fX1pON1dl
YkNvcmU4U2V0dGluZ3MyMHNldFhTU0F1ZGl0b3JFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0
aW5nczM1c2V0RW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGVFYgogX19aTjdXZWJDb3Jl
OFNldHRpbmdzMjRzZXRETlNQcmVmZXRjaGluZ0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRp
bmdzMzJzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MyOHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRp
bmdzMzFzZXRDYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nRWIKIF9fWk43V2ViQ29yZThTZXR0
aW5nczE5c2V0U2hvd0RlYnVnQm9yZGVyc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFNo
b3dSZXBhaW50Q291bnRlckViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldFBsdWdpbkFsbG93
ZWRSdW5UaW1lRWoKIF9fWk43V2ViQ29yZTRQYWdlMjdwbHVnaW5BbGxvd2VkUnVuVGltZUNoYW5n
ZWRFdgotX19aTjdXZWJDb3JlOFNldHRpbmdzMThzZXRXZWJBdWRpb0VuYWJsZWRFYgotX19aTjdX
ZWJDb3JlOFNldHRpbmdzMTVzZXRXZWJHTEVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdz
MjlzZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZEViCiBfX1pON1dlYkNvcmUyN2FwcGxpY2F0
aW9uSXNBZG9iZUluc3RhbGxlckV2CiBfX1pON1dlYkNvcmVMMTltYWluQnVuZGxlSXNFcXVhbFRv
RVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRMb2FkRGVmZXJyaW5n
RW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldEZyYW1lRmxhdHRlbmluZ0VuYWJs
ZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWRF
YgogX19aTjdXZWJDb3JlMjJhcHBsaWNhdGlvbklzQXBwbGVNYWlsRXYKIF9fWk43V2ViQ29yZTIz
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UyMXNldERlZmF1bHRPcmlnaW5RdW90YUV4CkBAIC0yMjgx
LDcgKzIyNDgsNiBAQCBfX1pON1dlYkNvcmU1RnJhbWU5c2NhbGVQYWdlRWZSS05TXzhJbnRQb2lu
dEUKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcxN3NldFNjcm9sbFBvc2l0aW9uRVJLTlNfOEludFBv
aW50RQogX19aTjdXZWJDb3JlMTBTY3JvbGxWaWV3MTdzZXRTY3JvbGxQb3NpdGlvbkVSS05TXzhJ
bnRQb2ludEUKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzI1cGxhdGZvcm1TZXRTY3JvbGxQb3Np
dGlvbkVSS05TXzhJbnRQb2ludEUKLV9fWk43V2ViQ29yZThTZXR0aW5nczQxc2V0VXNlc0Rhc2hi
b2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGVFYgogX19aTjdXZWJDb3JlOUZyYW1lVHJlZTlj
bGVhck5hbWVFdgogX19aTks3V2ViQ29yZTRQYWdlOWdyb3VwTmFtZUV2CiBfX1pON1dlYkNvcmU4
U2V0dGluZ3MyMnNldE1pbkRPTVRpbWVySW50ZXJ2YWxFZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRiNGY3MGZjNTNiZDc0MWE4
MWY1MzFjZTc2M2ZhNDUxMjRlN2IzYTMuLjU0MzNiN2FhMTBiMWNhZmY4MjI2NmZkOWVlMWMxMWEw
ZDZmMDI1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTE2NjEsNiArMTY2MSw4IEBACiAJCTUzMTc2MTIzMTNDNTE2NjkwMDI2
RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTMxNzYxMjExM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxl
eGlibGVCb3hEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNTNDODI5OEQxM0Q4RDkyNzAwREUyREVCIC8qIFJlbmRlckZsZXhpYmxlQm94LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzQzgyOThC
MTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJveC5jcHAgKi87IH07CiAJCTUzQzgy
OThFMTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJveC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNDODI5OEMxM0Q4RDkyNzAwREUyREVC
IC8qIFJlbmRlckZsZXhpYmxlQm94LmggKi87IH07CisJCTUzRUY3NjZCMTY1MzBBNjEwMDRDQkU0
OSAvKiBTZXR0aW5nc01hY3Jvcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTNFRjc2NkExNjUzMEE2MTAwNENCRTQ5IC8qIFNldHRpbmdzTWFjcm9zLmgg
Ki87IH07CisJCTUzRUY3NjZDMTY1MzE5OTQwMDRDQkU0OSAvKiBTZXR0aW5nc01hY3Jvcy5oIGlu
IENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTNFRjc2NkExNjUzMEE2MTAwNENCRTQ5IC8qIFNldHRpbmdzTWFjcm9zLmggKi87IH07CiAJ
CTU1MEEwQkM5MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM3MDg1RjYwMzkwMDcz
NTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLzsgfTsKIAkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1
M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTcwQjc4
QkYxNjUwQ0U4MTAwMURCRTFCIC8qIFNlbGVjdFJ1bGVGZWF0dXJlU2V0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MEI3OEJEMTY1MENFODEwMDFE
QkUxQiAvKiBTZWxlY3RSdWxlRmVhdHVyZVNldC5jcHAgKi87IH07CkBAIC0zNDM4LDcgKzM0NDAs
NiBAQAogCQk5NzEyQTVBRTE1MDA0RURBMDA0OEFGMTAgLyogRE9NV2luZG93SW5kZXhlZERhdGFi
YXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEy
QTU1NTE1MDA0RURBMDA0OEFGMTAgLyogRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmggKi87IH07
CiAJCTk3MTJBNUIwMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJBbnkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1NTcxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQkFueS5jcHAgKi87IH07CiAJCTk3MTJBNUIxMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJB
bnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJB
NTU4MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJBbnkuaCAqLzsgfTsKLQkJOTcxMkE1RTUxNTAwNEVE
QTAwNDhBRjEwIC8qIElEQkJhY2tpbmdTdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4QzE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFj
a2luZ1N0b3JlLmNwcCAqLzsgfTsKIAkJOTcxMkE1QjMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkJh
Y2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTcxMkE1NUExNTAwNEVEQTAwNDhBRjEwIC8qIElEQkJhY2tpbmdTdG9yZS5oICovOyB9Owog
CQk5NzEyQTVCNDE1MDA0RURBMDA0OEFGMTAgLyogSURCQ2FsbGJhY2tzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU1QjE1MDA0RURBMDA0OEFG
MTAgLyogSURCQ2FsbGJhY2tzLmggKi87IH07CiAJCTk3MTJBNUI1MTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTcxMkE1NUMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkN1cnNvci5jcHAgKi87IH07CkBA
IC0zNDc4LDYgKzM0NzksNyBAQAogCQk5NzEyQTVERjE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5
UGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcx
MkE1ODYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVBhdGguaCAqLzsgfTsKIAkJOTcxMkE1RTIx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVJhbmdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTg5MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJL
ZXlSYW5nZS5jcHAgKi87IH07CiAJCTk3MTJBNUUzMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlS
YW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcx
MkE1OEExNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVJhbmdlLmggKi87IH07CisJCTk3MTJBNUU1
MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJCYWNraW5nU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1OEMxNTAwNEVEQTAwNDhBRjEwIC8q
IElEQkJhY2tpbmdTdG9yZS5jcHAgKi87IH07CiAJCTk3MTJBNUU3MTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJMZXZlbERCQ29kaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk3MTJBNThFMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJMZXZlbERCQ29kaW5n
LmNwcCAqLzsgfTsKIAkJOTcxMkE1RTgxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkxldmVsREJDb2Rp
bmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJB
NThGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJMZXZlbERCQ29kaW5nLmggKi87IH07CiAJCTk3MTJB
NUU5MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU5MDE1MDA0RURBMDA0OEFGMTAg
LyogSURCT2JqZWN0U3RvcmUuY3BwICovOyB9OwpAQCAtNjY1OSw2ICs2NjYxLDcgQEAKIAkJCWRz
dFBhdGggPSBWZXJzaW9ucy9BL1ByaXZhdGVIZWFkZXJzOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9
IDE7CiAJCQlmaWxlcyA9ICgKKwkJCQk1M0VGNzY2QzE2NTMxOTk0MDA0Q0JFNDkgLyogU2V0dGlu
Z3NNYWNyb3MuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTVERjdGNUMyMEYw
MUY5MkEwMDUyNkI0QiAvKiBDU1NQcm9wZXJ0eU5hbWVzLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVh
ZGVycyAqLywKIAkJCQk4NTM4RjAzMDBBRDcxQ0RCMDA2QTgxRDEgLyogRE9NQWJzdHJhY3RWaWV3
LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQkxQzExQ0NCQzBBQTYwOTM3MDBE
QURCMjAgLyogRE9NQXR0ci5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCkBAIC04ODky
LDYgKzg4OTUsNyBAQAogCQk1MzE3NjEyMTEzQzUxNjY5MDAyNkU0NTQgLyogU3R5bGVGbGV4aWJs
ZUJveERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVGbGV4aWJs
ZUJveERhdGEuaDsgcGF0aCA9IHN0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzQzgyOThCMTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJG
bGV4aWJsZUJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJGbGV4aWJsZUJveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzQzgyOThD
MTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJveC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJGbGV4aWJsZUJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1M0VGNzY2QTE2NTMwQTYxMDA0Q0JFNDkgLyogU2V0dGluZ3NNYWNyb3MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2V0dGluZ3NNYWNyb3MuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTUwQTBCQzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxp
ZmllZE5hbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUXVhbGlmaWVkTmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYg
LyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NzBCNzhCRDE2NTBDRTgxMDAxREJFMUIg
LyogU2VsZWN0UnVsZUZlYXR1cmVTZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2VsZWN0UnVsZUZlYXR1cmVTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTA3MTEsNyArMTA3MTUsNiBAQAogCQk5NzEyQTU4QTE1MDA0RURBMDA0OEFGMTAg
LyogSURCS2V5UmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURCS2V5
UmFuZ2UuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNThCMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlS
YW5nZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gSURCS2V5UmFuZ2UuaWRsOyBwYXRoID0g
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NzEyQTU4QzE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFja2luZ1N0b3JlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElEQkJhY2tpbmdTdG9yZS5jcHA7
IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5NzEyQTU4RDE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFja2lu
Z1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQkJhY2tpbmdTdG9y
ZS5oOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNThFMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJMZXZl
bERCQ29kaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElEQkxl
dmVsREJDb2RpbmcuY3BwOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGlu
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNThGMTUwMDRFREEwMDQ4
QUYxMCAvKiBJREJMZXZlbERCQ29kaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IElEQkxldmVsREJDb2RpbmcuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVs
REJDb2RpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcxMkE1OTAxNTAwNEVE
QTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IElEQk9iamVjdFN0b3JlLmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NjIx
LDYgKzE1NjI0LDcgQEAKIAkJCQk0NEEyOEFBQjEyREZCOEFDMDBBRTkyM0IgLyogTWF0aE1MRWxl
bWVudEZhY3RvcnkuaCAqLywKIAkJCQlGQUJFNzJGQzEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1M
TmFtZXMuY3BwICovLAogCQkJCTQ0QTI4QUFFMTJERkI4QkYwMEFFOTIzQiAvKiBNYXRoTUxOYW1l
cy5oICovLAorCQkJCTUzRUY3NjZBMTY1MzBBNjEwMDRDQkU0OSAvKiBTZXR0aW5nc01hY3Jvcy5o
ICovLAogCQkJCTY1NjU4MUU2MDlEMTUwOEQwMDBFNjFENyAvKiBTVkdFbGVtZW50RmFjdG9yeS5j
cHAgKi8sCiAJCQkJNjU2NTgxRTcwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR0VsZW1lbnRGYWN0b3J5
LmggKi8sCiAJCQkJNjU2NTgxRTgwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR05hbWVzLmNwcCAqLywK
QEAgLTI1NzIxLDYgKzI1NzI1LDcgQEAKIAkJCQlFMTQyNEM5NDE2NEI1MkM4MDBGMzJENDAgLyog
Q29va2llSmFyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDExRENCMTE2NEMzOUE4MDBENDlCQzEg
LyogV2lkdGhDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcwQjc4QzAxNjUwQ0U4MTAwMURC
RTFCIC8qIFNlbGVjdFJ1bGVGZWF0dXJlU2V0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1M0VGNzY2
QjE2NTMwQTYxMDA0Q0JFNDkgLyogU2V0dGluZ3NNYWNyb3MuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRleCA2MWExNjQxOGZjZjEy
NzExMjYwYzY1Mzc3NTc5ZjY3ZDEzNmI4NWE4Li41M2VjN2U0MzgzNTgwZDhhYmQwYmQ4YmRlYzk4
ZTEyZDVjYTgyZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25N
ZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNw
cApAQCAtMTM5LDcgKzEzOSw3IEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OnNldE1lc3NhZ2VE
T01BbmRTdGFydFRpbWVyKFRpbWVyPFZhbGlkYXRpb25NZXNzYWdlPiopCiAgICAgICAgICAgICBt
X21lc3NhZ2VIZWFkaW5nLT5zZXRJbm5lclRleHQobGluZXNbaV0sIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgIH0KIAotICAgIGludCBtYWduaWZpY2F0aW9uID0gZG9jLT5wYWdlKCkgPyBkb2Mt
PnBhZ2UoKS0+c2V0dGluZ3MoKS0+dmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ2luaWZpY2F0aW9u
KCkgOiAtMTsKKyAgICBpbnQgbWFnbmlmaWNhdGlvbiA9IGRvYy0+cGFnZSgpID8gZG9jLT5wYWdl
KCktPnNldHRpbmdzKCktPnZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKCkgOiAt
MTsKICAgICBpZiAobWFnbmlmaWNhdGlvbiA8PSAwKQogICAgICAgICBtX3RpbWVyLmNsZWFyKCk7
CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IGNlNzY2OWE2ZDdmMDgz
OGJmYTBmYTZlZGFlMjExZDEzMmVkMmM4NGYuLmQyNGExYzA5YmI2OTFkNWU5NDE0ODQ3ZGJmZjNj
NGVkODg1ZWViMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC0xMjksMjMgKzEyOSwx
MSBAQCBzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHBy
ZXNzaW9uVGltZW91dEluU2Vjb25kcyA9IDU7CiBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFn
ZSkKICAgICA6IG1fcGFnZSgwKQogICAgICwgbV9tZWRpYVR5cGVPdmVycmlkZSgic2NyZWVuIikK
LSAgICAsIG1fZWRpdGFibGVMaW5rQmVoYXZpb3IoRWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9y
KQotICAgICwgbV90ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKFRleHREaXJl
Y3Rpb25TdWJtZW51QXV0b21hdGljYWxseUluY2x1ZGVkKQotICAgICwgbV9wYXNzd29yZEVjaG9E
dXJhdGlvbkluU2Vjb25kcygxKQogICAgICwgbV9taW5pbXVtRm9udFNpemUoMCkKICAgICAsIG1f
bWluaW11bUxvZ2ljYWxGb250U2l6ZSgwKQogICAgICwgbV9kZWZhdWx0Rm9udFNpemUoMCkKICAg
ICAsIG1fZGVmYXVsdEZpeGVkRm9udFNpemUoMCkKICAgICAsIG1fc2NyZWVuRm9udFN1YnN0aXR1
dGlvbkVuYWJsZWQodHJ1ZSkKLSAgICAsIG1fdmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmlj
YXRpb24oNTApCi0gICAgLCBtX21pbmltdW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZSgyNTcgKiAy
NTYpCi0gICAgLCBtX2xheW91dEZhbGxiYWNrV2lkdGgoOTgwKQotICAgICwgbV9tYXhpbXVtRGVj
b2RlZEltYWdlU2l6ZShudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkKLSAgICAsIG1fZGV2
aWNlV2lkdGgoMCkKLSAgICAsIG1fZGV2aWNlSGVpZ2h0KDApCi0gICAgLCBtX3Nlc3Npb25TdG9y
YWdlUXVvdGEoU3RvcmFnZU1hcDo6bm9RdW90YSkKLSAgICAsIG1fZWRpdGluZ0JlaGF2aW9yVHlw
ZShlZGl0aW5nQmVoYXZpb3JUeXBlRm9yUGxhdGZvcm0oKSkKLSAgICAsIG1fbWF4aW11bUhUTUxQ
YXJzZXJET01UcmVlRGVwdGgoZGVmYXVsdE1heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoKQog
ICAgICwgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3koU2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3Rv
cmFnZSkKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgICwgbV90ZXh0QXV0b3Npemlu
Z0ZvbnRTY2FsZUZhY3RvcigxKQpAQCAtMTU2LDU4ICsxNDQsMjQgQEAgU2V0dGluZ3M6OlNldHRp
bmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX3RleHRBdXRvc2l6aW5nRW5hYmxlZChmYWxzZSkKICNl
bmRpZgogI2VuZGlmCisgICAgU0VUVElOR1NfSU5JVElBTElaRVJfTElTVAogICAgICwgbV9pc1Nw
YXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNKYXZhRW5hYmxlZChmYWxz
ZSkKICAgICAsIG1faXNKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXModHJ1ZSkKICAgICAsIG1fbG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGZhbHNlKQotICAgICwgbV9sb2Fkc1NpdGVJY29uc0lnbm9y
aW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhmYWxzZSkKICAgICAsIG1fcHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChmYWxzZSkKLSAgICAsIG1fY2FyZXRCcm93c2luZ0VuYWJsZWQoZmFsc2UpCiAgICAgLCBt
X2FyZUltYWdlc0VuYWJsZWQodHJ1ZSkKICAgICAsIG1faXNNZWRpYUVuYWJsZWQodHJ1ZSkKICAg
ICAsIG1fYXJlUGx1Z2luc0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2xvY2FsU3RvcmFnZUVuYWJs
ZWQoZmFsc2UpCiAgICAgLCBtX2lzU2NyaXB0RW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNXZWJT
ZWN1cml0eUVuYWJsZWQodHJ1ZSkKLSAgICAsIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmls
ZVVSTHModHJ1ZSkKLSAgICAsIG1fYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKHRydWUpCi0g
ICAgLCBtX2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoZmFsc2UpCi0gICAg
LCBtX3N1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKHRydWUpCi0gICAgLCBtX2phdmFTY3JpcHRDYW5B
Y2Nlc3NDbGlwYm9hcmQoZmFsc2UpCi0gICAgLCBtX3Nob3VsZFByaW50QmFja2dyb3VuZHMoZmFs
c2UpCiAgICAgLCBtX3RleHRBcmVhc0FyZVJlc2l6YWJsZShmYWxzZSkKLSNpZiBFTkFCTEUoREFT
SEJPQVJEX1NVUFBPUlQpCi0gICAgLCBtX3VzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxp
dHlNb2RlKGZhbHNlKQotI2VuZGlmCiAgICAgLCBtX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1
aXJrKGZhbHNlKQotICAgICwgbV9uZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJr
cyhmYWxzZSkKLSAgICAsIG1fdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQoZmFsc2Up
Ci0gICAgLCBtX25lZWRzTGVvcGFyZE1haWxRdWlya3MoZmFsc2UpCiAgICAgLCBtX2lzRE9NUGFz
dGVBbGxvd2VkKGZhbHNlKQotICAgICwgbV9zaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KHRy
dWUpCiAgICAgLCBtX3VzZXNQYWdlQ2FjaGUoZmFsc2UpCi0gICAgLCBtX3BhZ2VDYWNoZVN1cHBv
cnRzUGx1Z2lucyhmYWxzZSkKLSAgICAsIG1fc2hvd3NVUkxzSW5Ub29sVGlwcyhmYWxzZSkKLSAg
ICAsIG1fc2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQoZmFsc2UpCi0gICAgLCBtX2ZvcmNl
RlRQRGlyZWN0b3J5TGlzdGluZ3MoZmFsc2UpCi0gICAgLCBtX2RldmVsb3BlckV4dHJhc0VuYWJs
ZWQoZmFsc2UpCi0gICAgLCBtX2phdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQoZmFsc2UpCiAg
ICAgLCBtX2F1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKHRydWUpCi0gICAgLCBtX25lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzKGZhbHNlKQogICAgICwgbV9mb250UmVuZGVyaW5nTW9kZSgwKQotICAg
ICwgbV9mcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGZhbHNlKQotI2lmIEVOQUJMRShXRUJfQVJDSElW
RSkKLSAgICAsIG1fd2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQoZmFsc2UpCi0jZW5kaWYKLSAg
ICAsIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1faW5B
cHBsaWNhdGlvbkNocm9tZU1vZGUoZmFsc2UpCi0gICAgLCBtX29mZmxpbmVXZWJBcHBsaWNhdGlv
bkNhY2hlRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJr
c01vZGUodHJ1ZSkKLSAgICAsIG1fdXNlc0VuY29kaW5nRGV0ZWN0b3IoZmFsc2UpCi0gICAgLCBt
X2FsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzKGZhbHNlKQotICAgICwgbV9jYW52YXNVc2VzQWNj
ZWxlcmF0ZWREcmF3aW5nKGZhbHNlKQotICAgICwgbV9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVk
KGZhbHNlKQotICAgICwgbV9hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGZhbHNlKQogICAgICwg
bV9pc0NTU0N1c3RvbUZpbHRlckVuYWJsZWQoZmFsc2UpCiAjaWYgRU5BQkxFKENTU19TVElDS1lf
UE9TSVRJT04pCiAgICAgLCBtX2Nzc1N0aWNreVBvc2l0aW9uRW5hYmxlZCh0cnVlKQpAQCAtMjE4
LDkwICsxNzIsMjQgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAjaWYgRU5BQkxF
KENTU19WQVJJQUJMRVMpCiAgICAgLCBtX2Nzc1ZhcmlhYmxlc0VuYWJsZWQoZmFsc2UpCiAjZW5k
aWYKLSAgICAsIG1fcmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fY3Nz
R3JpZExheW91dEVuYWJsZWQoZmFsc2UpCi0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJlYWxs
eSBiZSBkaXNhYmxlZCBieSBkZWZhdWx0IGFzIGl0IG1ha2VzIHBsYXRmb3JtcyB0aGF0IGRvbid0
IHN1cHBvcnQgdGhlIGZlYXR1cmUgZG93bmxvYWQgZmlsZXMKLSAgICAvLyB0aGV5IGNhbid0IHVz
ZSBieS4gTGVhdmluZyBlbmFibGVkIGZvciBub3cgdG8gbm90IGNoYW5nZSBleGlzdGluZyBiZWhh
dmlvci4KLSAgICAsIG1fZG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkKHRydWUpCi0gICAg
LCBtX3hzc0F1ZGl0b3JFbmFibGVkKGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZCh0cnVlKQotICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yM0RUcmFu
c2Zvcm1zRW5hYmxlZCh0cnVlKQotICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlk
ZW9FbmFibGVkKHRydWUpCi0gICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JQbHVnaW5z
RW5hYmxlZCh0cnVlKQotICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQ2FudmFzRW5h
YmxlZCh0cnVlKQotICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5h
YmxlZCh0cnVlKQotICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlv
bkVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxh
YmxlRnJhbWVzRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc2hvd0RlYnVnQm9yZGVycyhmYWxzZSkK
ICAgICAsIG1fc2hvd1JlcGFpbnRDb3VudGVyKGZhbHNlKQotICAgICwgbV9leHBlcmltZW50YWxO
b3RpZmljYXRpb25zRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fd2ViR0xFbmFibGVkKGZhbHNlKQot
ICAgICwgbV93ZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX29wZW5H
TE11bHRpc2FtcGxpbmdFbmFibGVkKHRydWUpCi0gICAgLCBtX3ByaXZpbGVnZWRXZWJHTEV4dGVu
c2lvbnNFbmFibGVkKGZhbHNlKQotICAgICwgbV93ZWJBdWRpb0VuYWJsZWQoZmFsc2UpCi0gICAg
LCBtX2FjY2VsZXJhdGVkQ2FudmFzMmRFbmFibGVkKGZhbHNlKQotICAgICwgbV9kZWZlcnJlZENh
bnZhczJkRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fbG9hZERlZmVycmluZ0VuYWJsZWQodHJ1ZSkK
ICAgICAsIG1fdGlsZWRCYWNraW5nU3RvcmVFbmFibGVkKGZhbHNlKQotICAgICwgbV9wYWdpbmF0
ZUR1cmluZ0xheW91dEVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2Ruc1ByZWZldGNoaW5nRW5hYmxl
ZChmYWxzZSkKLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgLCBtX2Z1bGxTY3JlZW5B
UElFbmFibGVkKGZhbHNlKQotI2VuZGlmCi0gICAgLCBtX2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKGZhbHNlKQogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCiAgICAgLCBt
X3VuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQodHJ1ZSkKICNlbHNlCiAgICAgLCBtX3VuaWZpZWRU
ZXh0Q2hlY2tlckVuYWJsZWQoZmFsc2UpCiAjZW5kaWYKLSAgICAsIG1fbWVtb3J5SW5mb0VuYWJs
ZWQoZmFsc2UpCi0gICAgLCBtX3F1YW50aXplZE1lbW9yeUluZm9FbmFibGVkKGZhbHNlKQotICAg
ICwgbV9pbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uKGZhbHNlKQotICAgICwgbV91c2VQcmVIVE1M
NVBhcnNlclF1aXJrcyhmYWxzZSkKLSAgICAsIG1faHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKGZh
bHNlKQotICAgICwgbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNhYmxl
ZChmYWxzZSkKLSAgICAsIG1fZm9yY2VDb21wb3NpdGluZ01vZGUoZmFsc2UpCi0gICAgLCBtX3No
b3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudChmYWxzZSkKLSAgICAs
IG1fZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShmYWxzZSkKLSAgICAsIG1fYWxs
b3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSkKLSAgICAsIG1fYWxsb3dSdW5uaW5nT2ZJ
bnNlY3VyZUNvbnRlbnQodHJ1ZSkKICNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKICAgICAs
IG1fc2Nyb2xsQW5pbWF0b3JFbmFibGVkKHRydWUpCiAjZW5kaWYKLSAgICAsIG1fbWVkaWFQbGF5
YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoZmFsc2UpCi0gICAgLCBtX21lZGlhUGxheWJhY2tBbGxv
d3NJbmxpbmUodHJ1ZSkKLSAgICAsIG1fcGFzc3dvcmRFY2hvRW5hYmxlZChmYWxzZSkKLSAgICAs
IG1fc3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nKGZhbHNlKQotICAgICwgbV9iYWNrc3Bh
Y2VLZXlOYXZpZ2F0aW9uRW5hYmxlZCh0cnVlKQotICAgICwgbV92aXN1YWxXb3JkTW92ZW1lbnRF
bmFibGVkKGZhbHNlKQotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAsIG1fc2hvdWxkRGlz
cGxheVN1YnRpdGxlcyhmYWxzZSkKLSAgICAsIG1fc2hvdWxkRGlzcGxheUNhcHRpb25zKGZhbHNl
KQotICAgICwgbV9zaG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9ucyhmYWxzZSkKLSNlbmRpZgot
ICAgICwgbV9zY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX25vdGlm
aWNhdGlvbnNFbmFibGVkKHRydWUpCi0gICAgLCBtX25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1
aXJrKGZhbHNlKQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgLCBtX3RvdWNoRXZlbnRF
bXVsYXRpb25FbmFibGVkKGZhbHNlKQogI2VuZGlmCi0gICAgLCBtX3Nob3VsZFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uKGZhbHNlKQotICAgICwgbV93YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGlu
Z0JlaGF2aW9yKGZhbHNlKQotICAgICwgbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkKHRy
dWUpCi0gICAgLCBtX2RldmljZVN1cHBvcnRzVG91Y2goZmFsc2UpCi0gICAgLCBtX2RldmljZVN1
cHBvcnRzTW91c2UodHJ1ZSkKLSAgICAsIG1fbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyayhm
YWxzZSkKLSAgICAsIG1fZml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoZmFsc2Up
Ci0gICAgLCBtX3N5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQodHJ1ZSkKLSAgICAsIG1fY29va2ll
RW5hYmxlZCh0cnVlKQotICAgICwgbV93aW5kb3dGb2N1c1Jlc3RyaWN0ZWQodHJ1ZSkKLSAgICAs
IG1fZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9zY3JvbGxpbmdQZXJm
b3JtYW5jZUxvZ2dpbmdFbmFibGVkKGZhbHNlKQotICAgICwgbV9hcHBseVBhZ2VTY2FsZUZhY3Rv
ckluQ29tcG9zaXRvcihmYWxzZSkKLSAgICAsIG1fcGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZChm
YWxzZSkKICAgICAsIG1fc2V0SW1hZ2VMb2FkaW5nU2V0dGluZ3NUaW1lcih0aGlzLCAmU2V0dGlu
Z3M6OmltYWdlTG9hZGluZ1NldHRpbmdzVGltZXJGaXJlZCkKLSAgICAsIG1faW5jcmVtZW50YWxS
ZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMoZGVmYXVsdEluY3JlbWVudGFsUmVu
ZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzKQogewogICAgIC8vIEEgRnJhbWUgbWF5
IG5vdCBoYXZlIGJlZW4gY3JlYXRlZCB5ZXQsIHNvIHdlIGluaXRpYWxpemUgdGhlIEF0b21pY1N0
cmluZwogICAgIC8vIGhhc2ggYmVmb3JlIHRyeWluZyB0byB1c2UgaXQuCkBAIC01MDgsMTEgKzM5
Niw2IEBAIHZvaWQgU2V0dGluZ3M6OmltYWdlTG9hZGluZ1NldHRpbmdzVGltZXJGaXJlZChUaW1l
cjxTZXR0aW5ncz4qKQogICAgIHNldEltYWdlTG9hZGluZ1NldHRpbmdzKG1fcGFnZSk7CiB9CiAK
LXZvaWQgU2V0dGluZ3M6OnNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0
aW5nKGJvb2wgbG9hZHNTaXRlSWNvbnMpCi17Ci0gICAgbV9sb2Fkc1NpdGVJY29uc0lnbm9yaW5n
SW1hZ2VMb2FkaW5nU2V0dGluZyA9IGxvYWRzU2l0ZUljb25zOwotfQotCiB2b2lkIFNldHRpbmdz
OjpzZXRTY3JpcHRFbmFibGVkKGJvb2wgaXNTY3JpcHRFbmFibGVkKQogewogICAgIG1faXNTY3Jp
cHRFbmFibGVkID0gaXNTY3JpcHRFbmFibGVkOwpAQCAtNTIzLDE2ICs0MDYsNiBAQCB2b2lkIFNl
dHRpbmdzOjpzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCBpc1dlYlNlY3VyaXR5RW5hYmxlZCkK
ICAgICBtX2lzV2ViU2VjdXJpdHlFbmFibGVkID0gaXNXZWJTZWN1cml0eUVuYWJsZWQ7CiB9CiAK
LXZvaWQgU2V0dGluZ3M6OnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wg
YWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMpCi17Ci0gICAgbV9hbGxvd1VuaXZlcnNh
bEFjY2Vzc0Zyb21GaWxlVVJMcyA9IGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzOwot
fQotCi12b2lkIFNldHRpbmdzOjpzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoYm9vbCBh
bGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMpCi17Ci0gICAgbV9hbGxvd0ZpbGVBY2Nlc3NGcm9t
RmlsZVVSTHMgPSBhbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHM7Ci19Ci0KIHZvaWQgU2V0dGlu
Z3M6OnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChib29sIGlzU3BhdGlhbE5hdmlnYXRpb25F
bmFibGVkKQogewogICAgIG1faXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQgPSBpc1NwYXRpYWxO
YXZpZ2F0aW9uRW5hYmxlZDsKQEAgLTU2NiwxNiArNDM5LDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0
UGx1Z2luc0VuYWJsZWQoYm9vbCBhcmVQbHVnaW5zRW5hYmxlZCkKICAgICBtX2FyZVBsdWdpbnNF
bmFibGVkID0gYXJlUGx1Z2luc0VuYWJsZWQ7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldExvY2Fs
U3RvcmFnZUVuYWJsZWQoYm9vbCBsb2NhbFN0b3JhZ2VFbmFibGVkKQotewotICAgIG1fbG9jYWxT
dG9yYWdlRW5hYmxlZCA9IGxvY2FsU3RvcmFnZUVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6
OnNldFNlc3Npb25TdG9yYWdlUXVvdGEodW5zaWduZWQgc2Vzc2lvblN0b3JhZ2VRdW90YSkKLXsK
LSAgICBtX3Nlc3Npb25TdG9yYWdlUXVvdGEgPSBzZXNzaW9uU3RvcmFnZVF1b3RhOwotfQotCiB2
b2lkIFNldHRpbmdzOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCkKIHsKICAgICAvLyBGSVhNRSBodHRwOi8vd2Via2l0Lm9yZy9iLzY3ODcwOiBU
aGUgcHJpdmF0ZSBicm93c2luZyBzdG9yYWdlIHNlc3Npb24gYW5kIGNvb2tpZSBwcml2YXRlCkBA
IC02MDEsMjYgKzQ2NCw2IEBAIHZvaWQgU2V0dGluZ3M6OnNldFByaXZhdGVCcm93c2luZ0VuYWJs
ZWQoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQogICAgIG1fcGFnZS0+cHJpdmF0ZUJyb3dz
aW5nU3RhdGVDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldEphdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5KQotewotICAgIG1famF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxs
eSA9IGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHk7Ci19Ci0KLXZvaWQgU2V0
dGluZ3M6OnNldFN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKGJvb2wgc3VwcG9ydHNNdWx0aXBsZVdp
bmRvd3MpCi17Ci0gICAgbV9zdXBwb3J0c011bHRpcGxlV2luZG93cyA9IHN1cHBvcnRzTXVsdGlw
bGVXaW5kb3dzOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xp
cGJvYXJkKGJvb2wgamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCkKLXsKLSAgICBtX2phdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQgPSBqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkOwot
fQotCi12b2lkIFNldHRpbmdzOjpzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShjb25zdCBTdHJp
bmcmIGRlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKQotewotICAgIG1fZGVmYXVsdFRleHRFbmNvZGlu
Z05hbWUgPSBkZWZhdWx0VGV4dEVuY29kaW5nTmFtZTsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0
VXNlclN0eWxlU2hlZXRMb2NhdGlvbihjb25zdCBLVVJMJiB1c2VyU3R5bGVTaGVldExvY2F0aW9u
KQogewogICAgIGlmIChtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb24gPT0gdXNlclN0eWxlU2hlZXRM
b2NhdGlvbikKQEAgLTYzMSwxNiArNDc0LDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0VXNlclN0eWxl
U2hlZXRMb2NhdGlvbihjb25zdCBLVVJMJiB1c2VyU3R5bGVTaGVldExvY2F0aW9uKQogICAgIG1f
cGFnZS0+dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQoKTsKIH0KIAotdm9pZCBTZXR0aW5n
czo6c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShib29sIGZpeGVkRWxlbWVu
dHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUpCi17Ci0gICAgbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVs
YXRpdmVUb0ZyYW1lID0gZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZTsKLX0KLQot
dm9pZCBTZXR0aW5nczo6c2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhib29sIHNob3VsZFByaW50
QmFja2dyb3VuZHMpCi17Ci0gICAgbV9zaG91bGRQcmludEJhY2tncm91bmRzID0gc2hvdWxkUHJp
bnRCYWNrZ3JvdW5kczsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0VGV4dEFyZWFzQXJlUmVzaXph
YmxlKGJvb2wgdGV4dEFyZWFzQXJlUmVzaXphYmxlKQogewogICAgIGlmIChtX3RleHRBcmVhc0Fy
ZVJlc2l6YWJsZSA9PSB0ZXh0QXJlYXNBcmVSZXNpemFibGUpCkBAIC02NTAsMjMgKzQ4Myw2IEBA
IHZvaWQgU2V0dGluZ3M6OnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShib29sIHRleHRBcmVhc0Fy
ZVJlc2l6YWJsZSkKICAgICBtX3BhZ2UtPnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygp
OwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihFZGl0YWJsZUxp
bmtCZWhhdmlvciBlZGl0YWJsZUxpbmtCZWhhdmlvcikKLXsKLSAgICBtX2VkaXRhYmxlTGlua0Jl
aGF2aW9yID0gZWRpdGFibGVMaW5rQmVoYXZpb3I7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IoVGV4dERpcmVjdGlvblN1Ym1lbnVJ
bmNsdXNpb25CZWhhdmlvciBiZWhhdmlvcikKLXsKLSAgICBtX3RleHREaXJlY3Rpb25TdWJtZW51
SW5jbHVzaW9uQmVoYXZpb3IgPSBiZWhhdmlvcjsKLX0KLQotI2lmIEVOQUJMRShEQVNIQk9BUkRf
U1VQUE9SVCkKLXZvaWQgU2V0dGluZ3M6OnNldFVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGli
aWxpdHlNb2RlKGJvb2wgdXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUpCi17
Ci0gICAgbV91c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSA9IHVzZXNEYXNo
Ym9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlOwotfQotI2VuZGlmCi0KIC8vIEZJWE1FOiBU
aGlzIHF1aXJrIGlzIG5lZWRlZCBiZWNhdXNlIG9mIFJhZGFyIDQ2NzQ1MzcgYW5kIDUyMTEyNzEu
IFdlIG5lZWQgdG8gcGhhc2UgaXQgb3V0IG9uY2UgQWRvYmUKIC8vIGNhbiBmaXggdGhlIGJ1ZyBm
cm9tIHRoZWlyIGVuZC4KIHZvaWQgU2V0dGluZ3M6OnNldE5lZWRzQWRvYmVGcmFtZVJlbG9hZGlu
Z1F1aXJrKGJvb2wgc2hvdWxkTm90UmVsb2FkSUZyYW1lc0ZvclVuY2hhbmdlZFNSQykKQEAgLTY3
NCwyNCArNDkwLDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5n
UXVpcmsoYm9vbCBzaG91bGROb3RSZWxvYWRJRnJhbWVzRm9yVW4KICAgICBtX25lZWRzQWRvYmVG
cmFtZVJlbG9hZGluZ1F1aXJrID0gc2hvdWxkTm90UmVsb2FkSUZyYW1lc0ZvclVuY2hhbmdlZFNS
QzsKIH0KIAotLy8gVGhpcyBpcyBhIHF1aXJrIHdlIGFyZSBwcm8tYWN0aXZlbHkgYXBwbHlpbmcg
dG8gb2xkIGFwcGxpY2F0aW9ucy4gSXQgY2hhbmdlcyBrZXlib2FyZCBldmVudCBkaXNwYXRjaGlu
ZywKLS8vIG1ha2luZyBrZXlJZGVudGlmaWVyIGF2YWlsYWJsZSBvbiBrZXlwcmVzcyBldmVudHMs
IG1ha2luZyBjaGFyQ29kZSBhdmFpbGFibGUgb24ga2V5ZG93bi9rZXl1cCBldmVudHMsCi0vLyBh
bmQgZ2V0dGluZyBrZXlwcmVzcyBkaXNwYXRjaGVkIGluIG1vcmUgY2FzZXMuCi12b2lkIFNldHRp
bmdzOjpzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcyhib29sIG5lZWRz
UXVpcmtzKQotewotICAgIG1fbmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3Mg
PSBuZWVkc1F1aXJrczsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0VHJlYXRzQW55VGV4dENTU0xp
bmtBc1N0eWxlc2hlZXQoYm9vbCB0cmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldCkKLXsK
LSAgICBtX3RyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0ID0gdHJlYXRzQW55VGV4dENT
U0xpbmtBc1N0eWxlc2hlZXQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldE5lZWRzTGVvcGFyZE1h
aWxRdWlya3MoYm9vbCBuZWVkc1F1aXJrcykKLXsKLSAgICBtX25lZWRzTGVvcGFyZE1haWxRdWly
a3MgPSBuZWVkc1F1aXJrczsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0RE9NUGFzdGVBbGxvd2Vk
KGJvb2wgRE9NUGFzdGVBbGxvd2VkKQogewogICAgIG1faXNET01QYXN0ZUFsbG93ZWQgPSBET01Q
YXN0ZUFsbG93ZWQ7CkBAIC03NTIsNDEgKzU1MCw2IEBAIHZvaWQgU2V0dGluZ3M6OnNldFVzZXNQ
YWdlQ2FjaGUoYm9vbCB1c2VzUGFnZUNhY2hlKQogICAgIH0KIH0KIAotdm9pZCBTZXR0aW5nczo6
c2V0U2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdChib29sIHNocmlua3NTdGFuZGFsb25lSW1h
Z2VzVG9GaXQpCi17Ci0gICAgbV9zaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0ID0gc2hyaW5r
c1N0YW5kYWxvbmVJbWFnZXNUb0ZpdDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0U2hvd3NVUkxz
SW5Ub29sVGlwcyhib29sIHNob3dzVVJMc0luVG9vbFRpcHMpCi17Ci0gICAgbV9zaG93c1VSTHNJ
blRvb2xUaXBzID0gc2hvd3NVUkxzSW5Ub29sVGlwczsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0
U2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQoYm9vbCBzaG93c1Rvb2xUaXBGb3JUcnVuY2F0
ZWRUZXh0KQotewotICAgIG1fc2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQgPSBzaG93c1Rv
b2xUaXBGb3JUcnVuY2F0ZWRUZXh0OwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRGVFBEaXJlY3Rv
cnlUZW1wbGF0ZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQotewotICAgIG1fZnRwRGlyZWN0b3J5
VGVtcGxhdGVQYXRoID0gcGF0aDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0Rm9yY2VGVFBEaXJl
Y3RvcnlMaXN0aW5ncyhib29sIGZvcmNlKQotewotICAgIG1fZm9yY2VGVFBEaXJlY3RvcnlMaXN0
aW5ncyA9IGZvcmNlOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXREZXZlbG9wZXJFeHRyYXNFbmFi
bGVkKGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCkKLXsKLSAgICBtX2RldmVsb3BlckV4dHJh
c0VuYWJsZWQgPSBkZXZlbG9wZXJFeHRyYXNFbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpz
ZXRKYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKGJvb2wgamF2YVNjcmlwdEV4cGVyaW1lbnRz
RW5hYmxlZCkKLXsKLSAgICBtX2phdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQgPSBqYXZhU2Ny
aXB0RXhwZXJpbWVudHNFbmFibGVkOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRBdXRob3JBbmRV
c2VyU3R5bGVzRW5hYmxlZChib29sIGF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKQogewogICAg
IGlmIChtX2F1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkID09IGF1dGhvckFuZFVzZXJTdHlsZXNF
bmFibGVkKQpAQCAtODA5LDQ4ICs1NzIsMTEgQEAgRm9udFJlbmRlcmluZ01vZGUgU2V0dGluZ3M6
OmZvbnRSZW5kZXJpbmdNb2RlKCkgY29uc3QKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Rm9udFJl
bmRlcmluZ01vZGU+KG1fZm9udFJlbmRlcmluZ01vZGUpOwogfQogCi12b2lkIFNldHRpbmdzOjpz
ZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhib29sIG5lZWRzUXVpcmtzKQotewotICAgIG1fbmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MgPSBuZWVkc1F1aXJrczsKLX0KLQotdm9pZCBTZXR0aW5nczo6
c2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChib29sIGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQpCi17
Ci0gICAgbV9mcmFtZUZsYXR0ZW5pbmdFbmFibGVkID0gZnJhbWVGbGF0dGVuaW5nRW5hYmxlZDsK
LX0KLQotI2lmIEVOQUJMRShXRUJfQVJDSElWRSkKLXZvaWQgU2V0dGluZ3M6OnNldFdlYkFyY2hp
dmVEZWJ1Z01vZGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3dlYkFyY2hpdmVEZWJ1
Z01vZGVFbmFibGVkID0gZW5hYmxlZDsKLX0KLSNlbmRpZgotCi12b2lkIFNldHRpbmdzOjpzZXRM
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2xv
Y2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRp
bmdzOjpzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQotewot
ICAgIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoID0gcGF0aDsKLX0KLQogdm9pZCBTZXR0aW5n
czo6c2V0QXBwbGljYXRpb25DaHJvbWVNb2RlKGJvb2wgbW9kZSkKIHsKICAgICBtX2luQXBwbGlj
YXRpb25DaHJvbWVNb2RlID0gbW9kZTsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0T2ZmbGluZVdl
YkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX29mZmxpbmVX
ZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6
OnNldEVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlKGJvb2wgZW5mb3JjZUNTU01JTUVU
eXBlSW5Ob1F1aXJrc01vZGUpCi17Ci0gICAgbV9lbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtz
TW9kZSA9IGVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlOwotfQotCiAjaWYgVVNFKFNB
RkFSSV9USEVNRSkKIHZvaWQgU2V0dGluZ3M6OnNldFNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMo
Ym9vbCBzaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKQogewpAQCAtODU4LDExICs1ODQsNiBAQCB2
b2lkIFNldHRpbmdzOjpzZXRTaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKGJvb2wgc2hvdWxkUGFp
bnROYXRpdmVDb250cm9scykKIH0KICNlbmRpZgogCi12b2lkIFNldHRpbmdzOjpzZXRVc2VzRW5j
b2RpbmdEZXRlY3Rvcihib29sIHVzZXNFbmNvZGluZ0RldGVjdG9yKQotewotICAgIG1fdXNlc0Vu
Y29kaW5nRGV0ZWN0b3IgPSB1c2VzRW5jb2RpbmdEZXRlY3RvcjsKLX0KLQogdm9pZCBTZXR0aW5n
czo6c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGJvb2wgZG5zUHJlZmV0Y2hpbmdFbmFibGVkKQog
ewogICAgIGlmIChtX2Ruc1ByZWZldGNoaW5nRW5hYmxlZCA9PSBkbnNQcmVmZXRjaGluZ0VuYWJs
ZWQpCkBAIC04NzIsMjYgKzU5Myw2IEBAIHZvaWQgU2V0dGluZ3M6OnNldEROU1ByZWZldGNoaW5n
RW5hYmxlZChib29sIGRuc1ByZWZldGNoaW5nRW5hYmxlZCkKICAgICBtX3BhZ2UtPmRuc1ByZWZl
dGNoaW5nU3RhdGVDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldEFsbG93U2NyaXB0
c1RvQ2xvc2VXaW5kb3dzKGJvb2wgYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MpCi17Ci0gICAg
bV9hbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cyA9IGFsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dz
OwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRDYXJldEJyb3dzaW5nRW5hYmxlZChib29sIGNhcmV0
QnJvd3NpbmdFbmFibGVkKQotewotICAgIG1fY2FyZXRCcm93c2luZ0VuYWJsZWQgPSBjYXJldEJy
b3dzaW5nRW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0RG93bmxvYWRhYmxlQmluYXJ5
Rm9udHNFbmFibGVkKGJvb2wgZG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkKQotewotICAg
IG1fZG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkID0gZG93bmxvYWRhYmxlQmluYXJ5Rm9u
dHNFbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRYU1NBdWRpdG9yRW5hYmxlZChib29s
IHhzc0F1ZGl0b3JFbmFibGVkKQotewotICAgIG1feHNzQXVkaXRvckVuYWJsZWQgPSB4c3NBdWRp
dG9yRW5hYmxlZDsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAgIGlmIChtX2FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdFbmFibGVkID09IGVuYWJsZWQpCkBAIC05MDEsMzYgKzYwMiw2IEBAIHZvaWQgU2V0dGluZ3M6
OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBtX3Bh
Z2UtPnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOwogfQogCi12b2lkIFNldHRpbmdz
OjpzZXRDYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBt
X2NhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmcgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRp
bmdzOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yM0RUcmFuc2Zvcm1zRW5hYmxlZChib29s
IGVuYWJsZWQpCi17Ci0gICAgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yM0RUcmFuc2Zvcm1z
RW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGlu
Z3M6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JQbHVnaW5zRW5hYmxlZChib29sIGVuYWJs
ZWQpCi17Ci0gICAgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQgPSBl
bmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
Q2FudmFzRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9hY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yQ2FudmFzRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JBbmltYXRpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsK
LSAgICBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JBbmltYXRpb25FbmFibGVkID0gZW5hYmxl
ZDsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0U2hvd0RlYnVnQm9yZGVycyhib29sIGVuYWJsZWQp
CiB7CiAgICAgaWYgKG1fc2hvd0RlYnVnQm9yZGVycyA9PSBlbmFibGVkKQpAQCAtOTQ5LDExICs2
MjAsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRTaG93UmVwYWludENvdW50ZXIoYm9vbCBlbmFibGVk
KQogICAgIG1fcGFnZS0+c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7CiB9CiAKLXZv
aWQgU2V0dGluZ3M6OnNldEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wgZW5h
YmxlZCkKLXsKLSAgICBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkID0gZW5hYmxl
ZDsKLX0KLQogI2lmIFBMQVRGT1JNKFdJTikgfHwgKE9TKFdJTkRPV1MpICYmIFBMQVRGT1JNKFdY
KSkKIHZvaWQgU2V0dGluZ3M6OnNldFNob3VsZFVzZUhpZ2hSZXNvbHV0aW9uVGltZXJzKGJvb2wg
c2hvdWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnMpCiB7CkBAIC05NjEsNTEgKzYyNyw2IEBAIHZv
aWQgU2V0dGluZ3M6OnNldFNob3VsZFVzZUhpZ2hSZXNvbHV0aW9uVGltZXJzKGJvb2wgc2hvdWxk
VXNlSGlnaFJlc29sdXRpb25UaW1lCiB9CiAjZW5kaWYKIAotdm9pZCBTZXR0aW5nczo6c2V0V2Vi
QXVkaW9FbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3dlYkF1ZGlvRW5hYmxlZCA9IGVu
YWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFdlYkdMRW5hYmxlZChib29sIGVuYWJsZWQp
Ci17Ci0gICAgbV93ZWJHTEVuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpz
ZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fd2Vi
R0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6
c2V0T3BlbkdMTXVsdGlzYW1wbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fb3Bl
bkdMTXVsdGlzYW1wbGluZ0VuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpz
ZXRQcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAg
bV9wcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQg
U2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsK
LSAgICBtX2FjY2VsZXJhdGVkQ2FudmFzMmRFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBT
ZXR0aW5nczo6c2V0RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAg
IG1fZGVmZXJyZWRDYW52YXMyZEVuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdz
OjpzZXRNaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUoaW50IG51bVBpeGVscykKLXsKLSAg
ICBtX21pbmltdW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZSA9IG51bVBpeGVsczsKLX0KLQotdm9p
ZCBTZXR0aW5nczo6c2V0TG9hZERlZmVycmluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAg
IG1fbG9hZERlZmVycmluZ0VuYWJsZWQgPSBlbmFibGVkOwotfQotCiB2b2lkIFNldHRpbmdzOjpz
ZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSBlbmFibGVkKQogewogICAgIGlmIChtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9PSBlbmFi
bGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IGYwNTNmNTQxZWQ1MGI5MjQ3MzQzMTExNzEy
ZGNlOGVmODBmNTFiN2QuLmYzMjBkNDU2YjE2ZmNjZTM5NTA0ZDM0MjdmZWVmMDdmOWQxYTAyZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJbnRT
aXplLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisj
aW5jbHVkZSAiU2V0dGluZ3NNYWNyb3MuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBAIC0x
MzMsMTEgKzEzNCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRMb2Fk
c0ltYWdlc0F1dG9tYXRpY2FsbHkoYm9vbCk7CiAgICAgICAgIGJvb2wgbG9hZHNJbWFnZXNBdXRv
bWF0aWNhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHk7IH0K
IAotICAgICAgICAvLyBUaGlzIHNldHRpbmcgb25seSBhZmZlY3RzIHNpdGUgaWNvbiBpbWFnZSBs
b2FkaW5nIGlmIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nIGlzIGZhbHNlIGFuZCB0
aGlzIHNldHRpbmcgaXMgdHJ1ZS4KLSAgICAgICAgLy8gQWxsIG90aGVyIHBlcm11dGF0aW9ucyBz
dGlsbCBoZWVkIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nLgotICAgICAgICB2b2lk
IHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wpOwotICAg
ICAgICBib29sIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKCkgY29u
c3QgeyByZXR1cm4gbV9sb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZzsg
fQotCiAgICAgICAgIHZvaWQgc2V0U2NyaXB0RW5hYmxlZChib29sKTsKICAgICAgICAgLy8gSW5z
dGVhZCBvZiBjYWxsaW5nIGlzU2NyaXB0RW5hYmxlZCBkaXJlY3RseSwgcGxlYXNlIGNvbnNpZGVy
IGNhbGxpbmcKICAgICAgICAgLy8gU2NyaXB0Q29udHJvbGxlcjo6Y2FuRXhlY3V0ZVNjcmlwdHMs
IHdoaWNoIHRha2VzIHRoaW5ncyBsaWtlIHRoZQpAQCAtMTQ3LDIwICsxNDMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0V2ViU2VjdXJpdHlFbmFibGVkKGJvb2wpOwog
ICAgICAgICBib29sIGlzV2ViU2VjdXJpdHlFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1dl
YlNlY3VyaXR5RW5hYmxlZDsgfQogCi0gICAgICAgIHZvaWQgc2V0QWxsb3dVbml2ZXJzYWxBY2Nl
c3NGcm9tRmlsZVVSTHMoYm9vbCk7Ci0gICAgICAgIGJvb2wgYWxsb3dVbml2ZXJzYWxBY2Nlc3NG
cm9tRmlsZVVSTHMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZp
bGVVUkxzOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMo
Ym9vbCk7Ci0gICAgICAgIGJvb2wgYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKCkgY29uc3Qg
eyByZXR1cm4gbV9hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHM7IH0KLQotICAgICAgICB2b2lk
IHNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCk7Ci0gICAgICAg
IGJvb2wgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSgpIGNvbnN0IHsgcmV0
dXJuIG1famF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTsgfQotCi0gICAgICAg
IHZvaWQgc2V0U3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MoYm9vbCk7Ci0gICAgICAgIGJvb2wgc3Vw
cG9ydHNNdWx0aXBsZVdpbmRvd3MoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRzTXVsdGlwbGVX
aW5kb3dzOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJk
KGJvb2wpOwotICAgICAgICBib29sIGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoKSBjb25z
dCB7IHJldHVybiBtX2phdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQ7IH0KKyAgICAgICAgU0VU
VElOR1NfR0VUVEVSU19BTkRfU0VUVEVSUwogCiAgICAgICAgIHZvaWQgc2V0U3BhdGlhbE5hdmln
YXRpb25FbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIGlzU3BhdGlhbE5hdmlnYXRpb25FbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZDsgfQpAQCAt
MTgxLDE1ICsxNjQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0UGx1
Z2luc0VuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgYXJlUGx1Z2luc0VuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX2FyZVBsdWdpbnNFbmFibGVkOyB9CiAKLSAgICAgICAgdm9pZCBzZXRMb2Nh
bFN0b3JhZ2VFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGxvY2FsU3RvcmFnZUVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3RvcmFnZUVuYWJsZWQ7IH0KLQotICAgICAgICAvLyBB
bGxvdyBjbGllbnRzIGNvbmNlcm5lZCB3aXRoIG1lbW9yeSBjb25zdW1wdGlvbiB0byBzZXQgYSBx
dW90YSBvbiBzZXNzaW9uIHN0b3JhZ2UKLSAgICAgICAgLy8gc2luY2UgdGhlIG1lbW9yeSB1c2Vk
IHdvbid0IGJlIHJlbGVhc2VkIHVudGlsIHRoZSBQYWdlIGlzIGRlc3Ryb3llZC4KLSAgICAgICAg
Ly8gRGVmYXVsdCBpcyBub1F1b3RhLgotICAgICAgICB2b2lkIHNldFNlc3Npb25TdG9yYWdlUXVv
dGEodW5zaWduZWQpOwotICAgICAgICB1bnNpZ25lZCBzZXNzaW9uU3RvcmFnZVF1b3RhKCkgY29u
c3QgeyByZXR1cm4gbV9zZXNzaW9uU3RvcmFnZVF1b3RhOyB9Ci0KICAgICAgICAgLy8gV2hlbiB0
aGlzIG9wdGlvbiBpcyBzZXQsIFdlYkNvcmUgd2lsbCBhdm9pZCBzdG9yaW5nIGFueSByZWNvcmQg
b2YgYnJvd3NpbmcgYWN0aXZpdHkKICAgICAgICAgLy8gdGhhdCBtYXkgcGVyc2lzdCBvbiBkaXNr
IG9yIHJlbWFpbiBkaXNwbGF5ZWQgd2hlbiB0aGUgb3B0aW9uIGlzIHJlc2V0LgogICAgICAgICAv
LyBUaGlzIG9wdGlvbiBkb2VzIG5vdCBhZmZlY3QgdGhlIHN0b3JhZ2Ugb2Ygc3VjaCBpbmZvcm1h
dGlvbiBpbiBSQU0uCkBAIC0yMDYsNTMgKzE4MCwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sKTsKICAgICAgICAgYm9v
bCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlQnJvd3Np
bmdFbmFibGVkOyB9CiAKLSAgICAgICAgdm9pZCBzZXRDYXJldEJyb3dzaW5nRW5hYmxlZChib29s
KTsKLSAgICAgICAgYm9vbCBjYXJldEJyb3dzaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2FyZXRCcm93c2luZ0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldERlZmF1bHRUZXh0RW5j
b2RpbmdOYW1lKGNvbnN0IFN0cmluZyYpOwotICAgICAgICBjb25zdCBTdHJpbmcmIGRlZmF1bHRU
ZXh0RW5jb2RpbmdOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFt
ZTsgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRVc2VzRW5jb2RpbmdEZXRlY3Rvcihib29s
KTsKLSAgICAgICAgYm9vbCB1c2VzRW5jb2RpbmdEZXRlY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1f
dXNlc0VuY29kaW5nRGV0ZWN0b3I7IH0KLQogICAgICAgICB2b2lkIHNldEROU1ByZWZldGNoaW5n
RW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBkbnNQcmVmZXRjaGluZ0VuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX2Ruc1ByZWZldGNoaW5nRW5hYmxlZDsgfQogCiAgICAgICAgIHZvaWQgc2V0
VXNlclN0eWxlU2hlZXRMb2NhdGlvbihjb25zdCBLVVJMJik7CiAgICAgICAgIGNvbnN0IEtVUkwm
IHVzZXJTdHlsZVNoZWV0TG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3VzZXJTdHlsZVNoZWV0
TG9jYXRpb247IH0KIAotICAgICAgICB2b2lkIHNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2
ZVRvRnJhbWUoYm9vbCk7Ci0gICAgICAgIGJvb2wgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZl
VG9GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9G
cmFtZTsgfQotCi0gICAgICAgIHZvaWQgc2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhib29sKTsK
LSAgICAgICAgYm9vbCBzaG91bGRQcmludEJhY2tncm91bmRzKCkgY29uc3QgeyByZXR1cm4gbV9z
aG91bGRQcmludEJhY2tncm91bmRzOyB9Ci0KICAgICAgICAgdm9pZCBzZXRUZXh0QXJlYXNBcmVS
ZXNpemFibGUoYm9vbCk7CiAgICAgICAgIGJvb2wgdGV4dEFyZWFzQXJlUmVzaXphYmxlKCkgY29u
c3QgeyByZXR1cm4gbV90ZXh0QXJlYXNBcmVSZXNpemFibGU7IH0KIAotICAgICAgICB2b2lkIHNl
dEVkaXRhYmxlTGlua0JlaGF2aW9yKEVkaXRhYmxlTGlua0JlaGF2aW9yKTsKLSAgICAgICAgRWRp
dGFibGVMaW5rQmVoYXZpb3IgZWRpdGFibGVMaW5rQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBt
X2VkaXRhYmxlTGlua0JlaGF2aW9yOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRUZXh0RGlyZWN0aW9u
U3VibWVudUluY2x1c2lvbkJlaGF2aW9yKFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVo
YXZpb3IpOwotICAgICAgICBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yIHRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBtX3Rl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I7IH0KLQotI2lmIEVOQUJMRShEQVNI
Qk9BUkRfU1VQUE9SVCkKLSAgICAgICAgdm9pZCBzZXRVc2VzRGFzaGJvYXJkQmFja3dhcmRDb21w
YXRpYmlsaXR5TW9kZShib29sKTsKLSAgICAgICAgYm9vbCB1c2VzRGFzaGJvYXJkQmFja3dhcmRD
b21wYXRpYmlsaXR5TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc0Rhc2hib2FyZEJhY2t3YXJk
Q29tcGF0aWJpbGl0eU1vZGU7IH0KLSNlbmRpZgotICAgICAgICAKICAgICAgICAgdm9pZCBzZXRO
ZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayhib29sKTsKICAgICAgICAgYm9vbCBuZWVkc0Fj
cm9iYXRGcmFtZVJlbG9hZGluZ1F1aXJrKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0Fkb2JlRnJh
bWVSZWxvYWRpbmdRdWlyazsgfQogCi0gICAgICAgIHZvaWQgc2V0TmVlZHNLZXlib2FyZEV2ZW50
RGlzYW1iaWd1YXRpb25RdWlya3MoYm9vbCk7Ci0gICAgICAgIGJvb2wgbmVlZHNLZXlib2FyZEV2
ZW50RGlzYW1iaWd1YXRpb25RdWlya3MoKSBjb25zdCB7IHJldHVybiBtX25lZWRzS2V5Ym9hcmRF
dmVudERpc2FtYmlndWF0aW9uUXVpcmtzOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRUcmVhdHNBbnlU
ZXh0Q1NTTGlua0FzU3R5bGVzaGVldChib29sKTsKLSAgICAgICAgYm9vbCB0cmVhdHNBbnlUZXh0
Q1NTTGlua0FzU3R5bGVzaGVldCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJlYXRzQW55VGV4dENTU0xp
bmtBc1N0eWxlc2hlZXQ7IH0KLQotICAgICAgICB2b2lkIHNldE5lZWRzTGVvcGFyZE1haWxRdWly
a3MoYm9vbCk7Ci0gICAgICAgIGJvb2wgbmVlZHNMZW9wYXJkTWFpbFF1aXJrcygpIGNvbnN0IHsg
cmV0dXJuIG1fbmVlZHNMZW9wYXJkTWFpbFF1aXJrczsgfQotCiAgICAgICAgIHZvaWQgc2V0RE9N
UGFzdGVBbGxvd2VkKGJvb2wpOwogICAgICAgICBib29sIGlzRE9NUGFzdGVBbGxvd2VkKCkgY29u
c3QgeyByZXR1cm4gbV9pc0RPTVBhc3RlQWxsb3dlZDsgfQogICAgICAgICAKQEAgLTI3MSw4NiAr
MjEwLDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRVc2VzUGFnZUNh
Y2hlKGJvb2wpOwogICAgICAgICBib29sIHVzZXNQYWdlQ2FjaGUoKSBjb25zdCB7IHJldHVybiBt
X3VzZXNQYWdlQ2FjaGU7IH0KICAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0UGFnZUNhY2hlU3Vw
cG9ydHNQbHVnaW5zKGJvb2wgcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKSB7IG1fcGFnZUNhY2hl
U3VwcG9ydHNQbHVnaW5zID0gcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zOyB9Ci0gICAgICAgIGJv
b2wgcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlQ2FjaGVT
dXBwb3J0c1BsdWdpbnM7IH0KLQotICAgICAgICB2b2lkIHNldFNocmlua3NTdGFuZGFsb25lSW1h
Z2VzVG9GaXQoYm9vbCk7Ci0gICAgICAgIGJvb2wgc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0Zp
dCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdDsgfQotCi0g
ICAgICAgIHZvaWQgc2V0U2hvd3NVUkxzSW5Ub29sVGlwcyhib29sKTsKLSAgICAgICAgYm9vbCBz
aG93c1VSTHNJblRvb2xUaXBzKCkgY29uc3QgeyByZXR1cm4gbV9zaG93c1VSTHNJblRvb2xUaXBz
OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRTaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dChib29s
KTsKLSAgICAgICAgYm9vbCBzaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCgpIGNvbnN0IHsg
cmV0dXJuIG1fc2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQ7IH0KLQotICAgICAgICB2b2lk
IHNldEZUUERpcmVjdG9yeVRlbXBsYXRlUGF0aChjb25zdCBTdHJpbmcmKTsKLSAgICAgICAgY29u
c3QgU3RyaW5nJiBmdHBEaXJlY3RvcnlUZW1wbGF0ZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2Z0
cERpcmVjdG9yeVRlbXBsYXRlUGF0aDsgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRGb3Jj
ZUZUUERpcmVjdG9yeUxpc3RpbmdzKGJvb2wpOwotICAgICAgICBib29sIGZvcmNlRlRQRGlyZWN0
b3J5TGlzdGluZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3M7
IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29s
KTsKLSAgICAgICAgYm9vbCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9kZXZlbG9wZXJFeHRyYXNFbmFibGVkOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldEph
dmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgamF2YVNjcmlw
dEV4cGVyaW1lbnRzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1famF2YVNjcmlwdEV4cGVyaW1l
bnRzRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChi
b29sKTsKLSAgICAgICAgYm9vbCBmcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9mcmFtZUZsYXR0ZW5pbmdFbmFibGVkOyB9Ci0KICAgICAgICAgdm9pZCBzZXRBdXRob3JB
bmRVc2VyU3R5bGVzRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBhdXRob3JBbmRVc2VyU3R5
bGVzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ7
IH0KICAgICAgICAgCiAgICAgICAgIHZvaWQgc2V0Rm9udFJlbmRlcmluZ01vZGUoRm9udFJlbmRl
cmluZ01vZGUgbW9kZSk7CiAgICAgICAgIEZvbnRSZW5kZXJpbmdNb2RlIGZvbnRSZW5kZXJpbmdN
b2RlKCkgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBzZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhi
b29sKTsKLSAgICAgICAgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0IHsgcmV0
dXJuIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7IH0KLQotI2lmIEVOQUJMRShXRUJfQVJDSElW
RSkKLSAgICAgICAgdm9pZCBzZXRXZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZChib29sKTsKLSAg
ICAgICAgYm9vbCB3ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
d2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQ7IH0KLSNlbmRpZgotCi0gICAgICAgIHZvaWQgc2V0
TG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBsb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbEZpbGVD
b250ZW50U25pZmZpbmdFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VE
YXRhYmFzZVBhdGgoY29uc3QgU3RyaW5nJik7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgbG9jYWxT
dG9yYWdlRGF0YWJhc2VQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbFN0b3JhZ2VEYXRhYmFz
ZVBhdGg7IH0KLQogICAgICAgICB2b2lkIHNldEFwcGxpY2F0aW9uQ2hyb21lTW9kZShib29sKTsK
ICAgICAgICAgYm9vbCBpbkFwcGxpY2F0aW9uQ2hyb21lTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aW5BcHBsaWNhdGlvbkNocm9tZU1vZGU7IH0KIAotICAgICAgICB2b2lkIHNldE9mZmxpbmVXZWJB
cHBsaWNhdGlvbkNhY2hlRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBvZmZsaW5lV2ViQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX29mZmxpbmVXZWJBcHBsaWNh
dGlvbkNhY2hlRW5hYmxlZDsgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRFbmZvcmNlQ1NT
TUlNRVR5cGVJbk5vUXVpcmtzTW9kZShib29sKTsKLSAgICAgICAgYm9vbCBlbmZvcmNlQ1NTTUlN
RVR5cGVJbk5vUXVpcmtzTW9kZSgpIHsgcmV0dXJuIG1fZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1
aXJrc01vZGU7IH0KLQotICAgICAgICB2b2lkIHNldE1heGltdW1EZWNvZGVkSW1hZ2VTaXplKHNp
emVfdCBzaXplKSB7IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemUgPSBzaXplOyB9Ci0gICAgICAg
IHNpemVfdCBtYXhpbXVtRGVjb2RlZEltYWdlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4aW11
bURlY29kZWRJbWFnZVNpemU7IH0KLQotICAgICAgICB2b2lkIHNldEFsbG93U2NyaXB0c1RvQ2xv
c2VXaW5kb3dzKGJvb2wpOwotICAgICAgICBib29sIGFsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dz
KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93czsgfQotCi0gICAg
ICAgIHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yVHlwZShFZGl0aW5nQmVoYXZpb3JUeXBlIGJlaGF2
aW9yKSB7IG1fZWRpdGluZ0JlaGF2aW9yVHlwZSA9IGJlaGF2aW9yOyB9Ci0gICAgICAgIEVkaXRp
bmdCZWhhdmlvclR5cGUgZWRpdGluZ0JlaGF2aW9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRp
Y19jYXN0PEVkaXRpbmdCZWhhdmlvclR5cGU+KG1fZWRpdGluZ0JlaGF2aW9yVHlwZSk7IH0KLQot
ICAgICAgICB2b2lkIHNldERvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZChib29sKTsKLSAg
ICAgICAgYm9vbCBkb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX2Rvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0
WFNTQXVkaXRvckVuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgeHNzQXVkaXRvckVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX3hzc0F1ZGl0b3JFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBz
ZXRDYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nKGJvb2wpOwotICAgICAgICBib29sIGNhbnZh
c1VzZXNBY2NlbGVyYXRlZERyYXdpbmcoKSBjb25zdCB7IHJldHVybiBtX2NhbnZhc1VzZXNBY2Nl
bGVyYXRlZERyYXdpbmc7IH0KLQotICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0Vu
YWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCA9IGVuYWJs
ZWQ7IH0KLSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRB
Y2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkRmls
dGVyc0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRGaWx0ZXJz
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZDsgfQot
CiAgICAgICAgIHZvaWQgc2V0Q1NTQ3VzdG9tRmlsdGVyRW5hYmxlZChib29sIGVuYWJsZWQpIHsg
bV9pc0NTU0N1c3RvbUZpbHRlckVuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgICAgIGJvb2wgaXND
U1NDdXN0b21GaWx0ZXJFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0NTU0N1c3RvbUZpbHRl
ckVuYWJsZWQ7IH0KIApAQCAtMzc4LDE4NCArMjQ2LDM4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgYm9vbCBjc3NWYXJpYWJsZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICNlbmRpZgogCi0gICAgICAgIHZvaWQgc2V0UmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZChi
b29sIGVuYWJsZWQpIHsgbV9yZWdpb25CYXNlZENvbHVtbnNFbmFibGVkID0gZW5hYmxlZDsgfQot
ICAgICAgICBib29sIHJlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X3JlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldENTU0dyaWRM
YXlvdXRFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2Nzc0dyaWRMYXlvdXRFbmFibGVkID0gZW5h
YmxlZDsgfQotICAgICAgICBib29sIGNzc0dyaWRMYXlvdXRFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9jc3NHcmlkTGF5b3V0RW5hYmxlZDsgfQotCiAgICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkOyB9CiAKLSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yM0RU
cmFuc2Zvcm1zRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yM0RUcmFuc2Zvcm1zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wg
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQg
c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkKGJvb2wpOwotICAgICAg
ICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JQbHVnaW5zRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkOyB9Ci0KLSAg
ICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQ2FudmFzRW5hYmxlZChib29s
KTsKLSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQ2FudmFzRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQ7
IH0KLQotICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JBbmltYXRpb25F
bmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JBbmlt
YXRpb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
QW5pbWF0aW9uRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAg
Ym9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxl
ZDsgfQotCi0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFi
bGVGcmFtZXNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBhY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxlZDsg
fQotCi0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Ny
b2xsRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3Zl
cmZsb3dTY3JvbGxFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQ7IH07Ci0KICAgICAg
ICAgdm9pZCBzZXRTaG93RGVidWdCb3JkZXJzKGJvb2wpOwogICAgICAgICBib29sIHNob3dEZWJ1
Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBtX3Nob3dEZWJ1Z0JvcmRlcnM7IH0KIAogICAgICAg
ICB2b2lkIHNldFNob3dSZXBhaW50Q291bnRlcihib29sKTsKICAgICAgICAgYm9vbCBzaG93UmVw
YWludENvdW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3Nob3dSZXBhaW50Q291bnRlcjsgfQogCi0g
ICAgICAgIHZvaWQgc2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoYm9vbCk7Ci0g
ICAgICAgIGJvb2wgZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkOyB9Ci0KICNpZiBQTEFURk9S
TShXSU4pIHx8IChPUyhXSU5ET1dTKSAmJiBQTEFURk9STShXWCkpCiAgICAgICAgIHN0YXRpYyB2
b2lkIHNldFNob3VsZFVzZUhpZ2hSZXNvbHV0aW9uVGltZXJzKGJvb2wpOwogICAgICAgICBzdGF0
aWMgYm9vbCBzaG91bGRVc2VIaWdoUmVzb2x1dGlvblRpbWVycygpIHsgcmV0dXJuIGdTaG91bGRV
c2VIaWdoUmVzb2x1dGlvblRpbWVyczsgfQogI2VuZGlmCiAKLSAgICAgICAgdm9pZCBzZXRXZWJB
dWRpb0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgd2ViQXVkaW9FbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV93ZWJBdWRpb0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldFdlYkdMRW5h
YmxlZChib29sKTsKLSAgICAgICAgYm9vbCB3ZWJHTEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X3dlYkdMRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVF
bmFibGVkKGJvb2wpOwotICAgICAgICBib29sIHdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fd2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkOyB9Ci0KLSAgICAg
ICAgdm9pZCBzZXRPcGVuR0xNdWx0aXNhbXBsaW5nRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9v
bCBvcGVuR0xNdWx0aXNhbXBsaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbkdMTXVs
dGlzYW1wbGluZ0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldFByaXZpbGVnZWRXZWJHTEV4
dGVuc2lvbnNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIHByaXZpbGVnZWRXZWJHTEV4dGVu
c2lvbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25z
RW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQo
Ym9vbCk7Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2FjY2VsZXJhdGVkQ2FudmFzMmRFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBz
ZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBkZWZlcnJlZDJk
Q2FudmFzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXJyZWRDYW52YXMyZEVuYWJsZWQ7
IH0KLQotICAgICAgICAvLyBOdW1iZXIgb2YgcGl4ZWxzIGJlbG93IHdoaWNoIDJEIGNhbnZhcyBp
cyByZW5kZXJlZCBpbiBzb2Z0d2FyZQotICAgICAgICAvLyBldmVuIGlmIGhhcmR3YXJlIGFjY2Vs
ZXJhdGlvbiBpcyBlbmFibGVkLgotICAgICAgICAvLyBIYXJkd2FyZSBhY2NlbGVyYXRpb24gaXMg
dXNlZnVsIGZvciBsYXJnZSBjYW52YXNlcyB3aGVyZSBpdCBjYW4gYXZvaWQgdGhlCi0gICAgICAg
IC8vIHBpeGVsIGJhbmR3aWR0aCBiZXR3ZWVuIHRoZSBDUFUgYW5kIEdQVS4gQnV0IEdQVSBhY2Nl
bGVyYXRpb24gY29tZXMgYXQKLSAgICAgICAgLy8gYSBwcmljZSAtIGV4dHJhIGJhY2stYnVmZmVy
IGFuZCB0ZXh0dXJlIGNvcHkuIFNtYWxsIGNhbnZhc2VzIGFyZSBhbHNvCi0gICAgICAgIC8vIHdp
ZGVseSB1c2VkIGZvciBzdHlsaXplZCBmb250cy4gQW50aS1hbGlhc2luZyB0ZXh0IGluIGhhcmR3
YXJlIGF0IHRoYXQKLSAgICAgICAgLy8gc2NhbGUgaXMgZ2VuZXJhbGx5IHNsb3dlci4gU28gYmVs
b3cgYSBjZXJ0YWluIHNpemUgaXQgaXMgYmV0dGVyIHRvCi0gICAgICAgIC8vIGRyYXcgY2FudmFz
IGluIHNvZnR3YXJlLgotICAgICAgICB2b2lkIHNldE1pbmltdW1BY2NlbGVyYXRlZDJkQ2FudmFz
U2l6ZShpbnQpOwotICAgICAgICBpbnQgbWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9taW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemU7IH0KLQotICAg
ICAgICB2b2lkIHNldExvYWREZWZlcnJpbmdFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGxv
YWREZWZlcnJpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkRGVmZXJyaW5nRW5hYmxl
ZDsgfQotICAgICAgICAKICAgICAgICAgdm9pZCBzZXRUaWxlZEJhY2tpbmdTdG9yZUVuYWJsZWQo
Ym9vbCk7CiAgICAgICAgIGJvb2wgdGlsZWRCYWNraW5nU3RvcmVFbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV90aWxlZEJhY2tpbmdTdG9yZUVuYWJsZWQ7IH0KIAotICAgICAgICB2b2lkIHNldFBh
Z2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZChib29sIGZsYWcpIHsgbV9wYWdpbmF0ZUR1cmluZ0xh
eW91dEVuYWJsZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgcGFnaW5hdGVEdXJpbmdMYXlvdXRF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQ7IH0K
LQotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICAgICAgdm9pZCBzZXRGdWxsU2NyZWVu
RW5hYmxlZChib29sIGZsYWcpIHsgbV9mdWxsU2NyZWVuQVBJRW5hYmxlZCA9IGZsYWc7IH0KLSAg
ICAgICAgYm9vbCBmdWxsU2NyZWVuRW5hYmxlZCgpIGNvbnN0ICB7IHJldHVybiBtX2Z1bGxTY3Jl
ZW5BUElFbmFibGVkOyB9Ci0jZW5kaWYKLQogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgICAg
IHN0YXRpYyB2b2lkIHNldEFWRm91bmRhdGlvbkVuYWJsZWQoYm9vbCBmbGFnKSB7IGdBVkZvdW5k
YXRpb25FbmFibGVkID0gZmxhZzsgfQogICAgICAgICBzdGF0aWMgYm9vbCBpc0FWRm91bmRhdGlv
bkVuYWJsZWQoKSB7IHJldHVybiBnQVZGb3VuZGF0aW9uRW5hYmxlZDsgfQogI2VuZGlmCiAKLSAg
ICAgICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sIGZsYWcp
IHsgbV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCA9IGZsYWc7IH0KLSAgICAgICAg
Ym9vbCBhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGNvbnN0ICB7IHJldHVybiBt
X2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOyB9Ci0KICAgICAgICAgdm9pZCBzZXRV
bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKGJvb2wgZmxhZykgeyBtX3VuaWZpZWRUZXh0Q2hlY2tl
ckVuYWJsZWQgPSBmbGFnOyB9CiAgICAgICAgIGJvb2wgdW5pZmllZFRleHRDaGVja2VyRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pZmllZFRleHRDaGVja2VyRW5hYmxlZDsgfQogCi0gICAg
ICAgIHZvaWQgc2V0TWVtb3J5SW5mb0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1fbWVtb3J5SW5mb0Vu
YWJsZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgbWVtb3J5SW5mb0VuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX21lbW9yeUluZm9FbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRRdWFudGl6
ZWRNZW1vcnlJbmZvRW5hYmxlZChib29sIGZsYWcpIHsgbV9xdWFudGl6ZWRNZW1vcnlJbmZvRW5h
YmxlZCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBxdWFudGl6ZWRNZW1vcnlJbmZvRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fcXVhbnRpemVkTWVtb3J5SW5mb0VuYWJsZWQ7IH0KLQotICAgICAg
ICAvLyBUaGlzIGZlYXR1cmUgcmVxdWlyZXMgYW4gaW1wbGVtZW50YXRpb24gb2YgVmFsaWRhdGlv
bk1lc3NhZ2VDbGllbnQuCi0gICAgICAgIHZvaWQgc2V0SW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlv
bkVuYWJsZWQoYm9vbCBmbGFnKSB7IG1faW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbiA9IGZsYWc7
IH0KLSAgICAgICAgYm9vbCBpbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1faW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbjsgfQotCi0gICAgICAgIC8vIFNl
dHMgdGhlIG1hZ2luaWNhdGlvbiB2YWx1ZSBmb3IgdmFsaWRhdGlvbiBtZXNzYWdlIHRpbWVyLgot
ICAgICAgICAvLyBJZiB0aGUgbWFnaW5pY2F0aW9uIHZhbHVlIGlzIE4sIGEgdmFsaWRhdGlvbiBt
ZXNzYWdlIGRpc2FwcGVhcnMKLSAgICAgICAgLy8gYXV0b21hdGljYWxseSBhZnRlciA8bWVzc2Fn
ZSBsZW5ndGg+ICogTiAvIDEwMDAgc2Vjb25kcy4gSWYgTiBpcwotICAgICAgICAvLyBlcXVhbCB0
byBvciBsZXNzIHRoYW4gMCwgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgZG9lc24ndCBkaXNhcHBlYXJz
Ci0gICAgICAgIC8vIGF1dG9tYXRpY2FseS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgNTAuCi0gICAg
ICAgIHZvaWQgc2V0VmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb24oaW50IG5ld1Zh
bHVlKSB7IG1fdmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb24gPSBuZXdWYWx1ZTsg
fQotICAgICAgICBpbnQgdmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ2luaWZpY2F0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV92YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbjsgfQotICAg
ICAgICAKLSAgICAgICAgdm9pZCBzZXRVc2VQcmVIVE1MNVBhcnNlclF1aXJrcyhib29sIGZsYWcp
IHsgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCB1c2VQ
cmVIVE1MNVBhcnNlclF1aXJrcygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlUHJlSFRNTDVQYXJzZXJR
dWlya3M7IH0KLQogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZGVmYXVsdE1heGltdW1I
VE1MUGFyc2VyRE9NVHJlZURlcHRoID0gNTEyOwotICAgICAgICB2b2lkIHNldE1heGltdW1IVE1M
UGFyc2VyRE9NVHJlZURlcHRoKHVuc2lnbmVkIG1heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRo
KSB7IG1fbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGggPSBtYXhpbXVtSFRNTFBhcnNlckRP
TVRyZWVEZXB0aDsgfQotICAgICAgICB1bnNpZ25lZCBtYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVE
ZXB0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGg7IH0K
LQotICAgICAgICB2b2lkIHNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChib29sIGZsYWcpIHsg
bV9oeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgaHlwZXJs
aW5rQXVkaXRpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9oeXBlcmxpbmtBdWRpdGluZ0Vu
YWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldENyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRD
U1NSdWxlc0Rpc2FibGVkKGJvb2wgZmxhZykgeyBtX2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNo
ZWRDU1NSdWxlc0Rpc2FibGVkID0gZmxhZzsgfQotICAgICAgICBib29sIGNyb3NzT3JpZ2luQ2hl
Y2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkKCkgY29uc3QgeyByZXR1cm4gbV9jcm9zc09y
aWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNhYmxlZDsgfQotICAgICAgICAKLSAgICAg
ICAgdm9pZCBzZXRMYXlvdXRGYWxsYmFja1dpZHRoKGludCB3aWR0aCkgeyBtX2xheW91dEZhbGxi
YWNrV2lkdGggPSB3aWR0aDsgfQotICAgICAgICBpbnQgbGF5b3V0RmFsbGJhY2tXaWR0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGF5b3V0RmFsbGJhY2tXaWR0aDsgfQotCi0gICAgICAgIHZvaWQgc2V0
RGV2aWNlV2lkdGgoaW50IHdpZHRoKSB7IG1fZGV2aWNlV2lkdGggPSB3aWR0aDsgfQotICAgICAg
ICBpbnQgZGV2aWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2RldmljZVdpZHRoOyB9Ci0KLSAg
ICAgICAgdm9pZCBzZXREZXZpY2VIZWlnaHQoaW50IGhlaWdodCkgeyBtX2RldmljZUhlaWdodCA9
IGhlaWdodDsgfQotICAgICAgICBpbnQgZGV2aWNlSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9k
ZXZpY2VIZWlnaHQ7IH0KLQotICAgICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJv
b2wgZmxhZykgeyBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlID0gZmxhZzsgfQotICAgICAgICBib29s
IGZvcmNlQ29tcG9zaXRpbmdNb2RlKCkgeyByZXR1cm4gbV9mb3JjZUNvbXBvc2l0aW5nTW9kZTsg
fQotCi0gICAgICAgIHZvaWQgc2V0U2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0
eURvY3VtZW50KGJvb2wgZmxhZykgeyBtX3Nob3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFs
RW1wdHlEb2N1bWVudCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBzaG91bGRJbmplY3RVc2VyU2Ny
aXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSB7IHJldHVybiBtX3Nob3VsZEluamVjdFVzZXJT
Y3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudDsgfQotCi0gICAgICAgIHZvaWQgc2V0QWxsb3dE
aXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQoYm9vbCBmbGFnKSB7IG1fYWxsb3dEaXNwbGF5T2ZJbnNl
Y3VyZUNvbnRlbnQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgYWxsb3dEaXNwbGF5T2ZJbnNlY3Vy
ZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50
OyB9Ci0gICAgICAgIHZvaWQgc2V0QWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQoYm9vbCBm
bGFnKSB7IG1fYWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQgPSBmbGFnOyB9Ci0gICAgICAg
IGJvb2wgYWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2Fs
bG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50OyB9CiAKICNpZiBFTkFCTEUoU01PT1RIX1NDUk9M
TElORykKICAgICAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxBbmltYXRvcihib29sIGZsYWcpIHsg
bV9zY3JvbGxBbmltYXRvckVuYWJsZWQgPSBmbGFnOyB9CiAgICAgICAgIGJvb2wgc2Nyb2xsQW5p
bWF0b3JFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxBbmltYXRvckVuYWJsZWQ7IH0K
ICNlbmRpZgogCi0gICAgICAgIHZvaWQgc2V0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1
cmUoYm9vbCBmbGFnKSB7IG1fbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSBmbGFn
OyB9OwotICAgICAgICBib29sIG1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKCkgY29u
c3QgeyByZXR1cm4gbV9tZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZTsgfQotCi0gICAg
ICAgIHZvaWQgc2V0TWVkaWFQbGF5YmFja0FsbG93c0lubGluZShib29sIGZsYWcpIHsgbV9tZWRp
YVBsYXliYWNrQWxsb3dzSW5saW5lID0gZmxhZzsgfTsKLSAgICAgICAgYm9vbCBtZWRpYVBsYXli
YWNrQWxsb3dzSW5saW5lKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVBsYXliYWNrQWxsb3dzSW5s
aW5lOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9FbmFibGVkKGJvb2wgZmxhZykg
eyBtX3Bhc3N3b3JkRWNob0VuYWJsZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgcGFzc3dvcmRF
Y2hvRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFzc3dvcmRFY2hvRW5hYmxlZDsgfQotCi0g
ICAgICAgIHZvaWQgc2V0U3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nKGJvb2wgZmxhZykg
eyBtX3N1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZyA9IGZsYWc7IH0KLSAgICAgICAgYm9v
bCBzdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiBtX3N1cHBy
ZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZzsgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRC
YWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZChib29sIGZsYWcpIHsgbV9iYWNrc3BhY2VLZXlO
YXZpZ2F0aW9uRW5hYmxlZCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBiYWNrc3BhY2VLZXlOYXZp
Z2F0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja3NwYWNlS2V5TmF2aWdhdGlvbkVu
YWJsZWQ7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hvRHVyYXRpb25J
blNlY29uZHMoZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRzKSB7IG1fcGFzc3dvcmRFY2hvRHVyYXRp
b25JblNlY29uZHMgPSBkdXJhdGlvbkluU2Vjb25kczsgfQotICAgICAgICBkb3VibGUgcGFzc3dv
cmRFY2hvRHVyYXRpb25JblNlY29uZHMoKSBjb25zdCB7IHJldHVybiBtX3Bhc3N3b3JkRWNob0R1
cmF0aW9uSW5TZWNvbmRzOyB9Ci0KICNpZiBVU0UoU0FGQVJJX1RIRU1FKQogICAgICAgICAvLyBX
aW5kb3dzIGRlYnVnZ2luZyBwcmVmIChnbG9iYWwpIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiB0aGUg
QXF1YSBsb29rIGFuZCBhIG5hdGl2ZSB3aW5kb3dzIGxvb2suCiAgICAgICAgIHN0YXRpYyB2b2lk
IHNldFNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMoYm9vbCk7CkBAIC01NjgsNjggKzI5MCwxMSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyB2b2lkIHNldFVzZXNPdmVybGF5
U2Nyb2xsYmFycyhib29sIGZsYWcpOwogICAgICAgICBzdGF0aWMgYm9vbCB1c2VzT3ZlcmxheVNj
cm9sbGJhcnMoKTsKIAotICAgICAgICB2b2lkIHNldFZpc3VhbFdvcmRNb3ZlbWVudEVuYWJsZWQo
Ym9vbCBlbmFibGVkKSB7IG1fdmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZCA9IGVuYWJsZWQ7IH0K
LSAgICAgICAgYm9vbCB2aXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV92aXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkOyB9Ci0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
Ci0gICAgICAgIHZvaWQgc2V0U2hvdWxkRGlzcGxheVN1YnRpdGxlcyhib29sIGZsYWcpIHsgbV9z
aG91bGREaXNwbGF5U3VidGl0bGVzID0gZmxhZzsgfQotICAgICAgICBib29sIHNob3VsZERpc3Bs
YXlTdWJ0aXRsZXMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZERpc3BsYXlTdWJ0aXRsZXM7IH0K
LQotICAgICAgICB2b2lkIHNldFNob3VsZERpc3BsYXlDYXB0aW9ucyhib29sIGZsYWcpIHsgbV9z
aG91bGREaXNwbGF5Q2FwdGlvbnMgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgc2hvdWxkRGlzcGxh
eUNhcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGREaXNwbGF5Q2FwdGlvbnM7IH0KLQot
ICAgICAgICB2b2lkIHNldFNob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zKGJvb2wgZmxhZykg
eyBtX3Nob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zID0gZmxhZzsgfQotICAgICAgICBib29s
IHNob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRE
aXNwbGF5VGV4dERlc2NyaXB0aW9uczsgfQotI2VuZGlmCi0KLSAgICAgICAgdm9pZCBzZXRTY3Jv
bGxpbmdDb29yZGluYXRvckVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fc2Nyb2xsaW5nQ29vcmRp
bmF0b3JFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIHNjcm9sbGluZ0Nvb3JkaW5h
dG9yRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVk
OyB9Ci0KLSAgICAgICAgdm9pZCBzZXROb3RpZmljYXRpb25zRW5hYmxlZChib29sIGVuYWJsZWQp
IHsgbV9ub3RpZmljYXRpb25zRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBub3Rp
ZmljYXRpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uc0VuYWJsZWQ7
IH0KLQotICAgICAgICAvLyBTb21lIGFwcHMgbmVlZHMgaXNMb2FkaW5nSW5BUElTZW5zZSB0byBh
Y2NvdW50IGZvciBhY3RpdmUgc3VicmVzb3VyY2UgbG9hZGVycy4KLSAgICAgICAgdm9pZCBzZXRO
ZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyayhib29sIGVuYWJsZWQpIHsgbV9uZWVkc0lzTG9h
ZGluZ0luQVBJU2Vuc2VRdWlyayA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBuZWVkc0lzTG9h
ZGluZ0luQVBJU2Vuc2VRdWlyaygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNJc0xvYWRpbmdJbkFQ
SVNlbnNlUXVpcms7IH0KLQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgICAgIHZvaWQg
c2V0VG91Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fdG91Y2hFdmVu
dEVtdWxhdGlvbkVuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgICAgIGJvb2wgaXNUb3VjaEV2ZW50
RW11bGF0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hFdmVudEVtdWxhdGlvbkVu
YWJsZWQ7IH0KICNlbmRpZgogCi0gICAgICAgIHZvaWQgc2V0U2hvdWxkUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24oYm9vbCBlbmFibGVkKSB7IG1fc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24g
PSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24o
KSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uOyB9Ci0KLSAg
ICAgICAgdm9pZCBzZXRXYW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yKGJvb2wg
ZmxhZykgeyBtX3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IgPSBmbGFnOyB9
Ci0gICAgICAgIGJvb2wgd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcigpIGNv
bnN0IHsgcmV0dXJuIG1fd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcjsgfQot
Ci0gICAgICAgIHZvaWQgc2V0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJ
blNlY29uZHMoZG91YmxlIHRpbWVvdXQpIHsgbV9pbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNz
aW9uVGltZW91dEluU2Vjb25kcyA9IHRpbWVvdXQ7IH0KLSAgICAgICAgZG91YmxlIGluY3JlbWVu
dGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzKCkgY29uc3QgeyByZXR1cm4g
bV9pbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kczsgfQotCi0g
ICAgICAgIHZvaWQgc2V0UmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZChib29sIGVuYWJsZWQp
IHsgbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBi
b29sIHJlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3JlcXVl
c3RBbmltYXRpb25GcmFtZUVuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldERldmljZVN1cHBv
cnRzVG91Y2goYm9vbCBlbmFibGVkKSB7IG1fZGV2aWNlU3VwcG9ydHNUb3VjaCA9IGVuYWJsZWQ7
IH0KLSAgICAgICAgYm9vbCBkZXZpY2VTdXBwb3J0c1RvdWNoKCkgY29uc3QgeyByZXR1cm4gbV9k
ZXZpY2VTdXBwb3J0c1RvdWNoOyB9Ci0KLSAgICAgICAgdm9pZCBzZXREZXZpY2VTdXBwb3J0c01v
dXNlKGJvb2wgZW5hYmxlZCkgeyBtX2RldmljZVN1cHBvcnRzTW91c2UgPSBlbmFibGVkOyB9Ci0g
ICAgICAgIGJvb2wgZGV2aWNlU3VwcG9ydHNNb3VzZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNl
U3VwcG9ydHNNb3VzZTsgfQotCi0gICAgICAgIHZvaWQgc2V0TmVlZHNEaWRGaW5pc2hMb2FkT3Jk
ZXJRdWlyayhib29sIG5lZWRzUXVpcmspIHsgbV9uZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJr
ID0gbmVlZHNRdWlyazsgfQotICAgICAgICBib29sIG5lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVp
cmsoKSBjb25zdCB7IHJldHVybiBtX25lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcms7IH0KLQot
ICAgICAgICB2b2lkIHNldEZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0KGJvb2wg
Y3JlYXRlcykgeyBtX2ZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0ID0gY3JlYXRl
czsgfQotICAgICAgICBib29sIGZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0KCkg
Y29uc3QgeyByZXR1cm4gbV9maXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dDsgfQot
Ci0gICAgICAgIHZvaWQgc2V0U3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZChib29sIGVuYWJsZWQp
IHsgbV9zeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29s
IHN5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3N5bmNYSFJJbkRv
Y3VtZW50c0VuYWJsZWQ7IH0KLQotICAgICAgICAvLyBXaGVuIGVuYWJsZWQsIHdpbmRvdy5ibHVy
KCkgZG9lcyBub3QgY2hhbmdlIGZvY3VzLCBhbmQKLSAgICAgICAgLy8gd2luZG93LmZvY3VzKCkg
b25seSBjaGFuZ2VzIGZvY3VzIHdoZW4gaW52b2tlZCBmcm9tIHRoZSBjb250ZXh0IHRoYXQKLSAg
ICAgICAgLy8gY3JlYXRlZCB0aGUgd2luZG93LgotICAgICAgICB2b2lkIHNldFdpbmRvd0ZvY3Vz
UmVzdHJpY3RlZChib29sIHJlc3RyaWN0ZWQpIHsgbV93aW5kb3dGb2N1c1Jlc3RyaWN0ZWQgPSBy
ZXN0cmljdGVkOyB9Ci0gICAgICAgIGJvb2wgd2luZG93Rm9jdXNSZXN0cmljdGVkKCkgY29uc3Qg
eyByZXR1cm4gbV93aW5kb3dGb2N1c1Jlc3RyaWN0ZWQ7IH0KLQogICAgICAgICB2b2lkIHNldFN0
b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5
KTsKICAgICAgICAgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdl
QmxvY2tpbmdQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsg
fQogCkBAIC02NDEsMTggKzMwNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3Rh
dGljIGJvb2wgc2hvdWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzKCk7CiAj
ZW5kaWYKIAotICAgICAgICB2b2lkIHNldENvb2tpZUVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1f
Y29va2llRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBjb29raWVFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9jb29raWVFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXREaWFn
bm9zdGljTG9nZ2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fZGlhZ25vc3RpY0xvZ2dpbmdF
bmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGRpYWdub3N0aWNMb2dnaW5nRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkOyB9Ci0KLSAgICAg
ICAgdm9pZCBzZXRBcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcihib29sIGVuYWJsZWQp
IHsgbV9hcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvciA9IGVuYWJsZWQ7IH0KLSAgICAg
ICAgYm9vbCBhcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpIGNvbnN0IHsgcmV0dXJu
IG1fYXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3I7IH0KLQotICAgICAgICB2b2lkIHNl
dFBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fcGx1Z0luU25hcHNo
b3R0aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBwbHVnSW5TbmFwc2hvdHRp
bmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkOyB9
Ci0KICAgICBwcml2YXRlOgogICAgICAgICBleHBsaWNpdCBTZXR0aW5ncyhQYWdlKik7CiAKQEAg
LTY2MCw5ICszMTMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgUGFnZSogbV9w
YWdlOwogCi0gICAgICAgIFN0cmluZyBtX2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1lOwotICAgICAg
ICBTdHJpbmcgbV9mdHBEaXJlY3RvcnlUZW1wbGF0ZVBhdGg7Ci0gICAgICAgIFN0cmluZyBtX2xv
Y2FsU3RvcmFnZURhdGFiYXNlUGF0aDsKICAgICAgICAgU3RyaW5nIG1fbWVkaWFUeXBlT3ZlcnJp
ZGU7CiAgICAgICAgIEtVUkwgbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOwogICAgICAgICBTY3Jp
cHRGb250RmFtaWx5TWFwIG1fc3RhbmRhcmRGb250RmFtaWx5TWFwOwpAQCAtNjcyLDIzICszMjIs
MTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBTY3JpcHRGb250RmFtaWx5TWFwIG1f
Y3Vyc2l2ZUZvbnRGYW1pbHlNYXA7CiAgICAgICAgIFNjcmlwdEZvbnRGYW1pbHlNYXAgbV9mYW50
YXN5Rm9udEZhbWlseU1hcDsKICAgICAgICAgU2NyaXB0Rm9udEZhbWlseU1hcCBtX3BpY3RvZ3Jh
cGhGb250RmFtaWx5TWFwOwotICAgICAgICBFZGl0YWJsZUxpbmtCZWhhdmlvciBtX2VkaXRhYmxl
TGlua0JlaGF2aW9yOwotICAgICAgICBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2
aW9yIG1fdGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjsKLSAgICAgICAgZG91
YmxlIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHM7CiAgICAgICAgIGludCBtX21pbmlt
dW1Gb250U2l6ZTsKICAgICAgICAgaW50IG1fbWluaW11bUxvZ2ljYWxGb250U2l6ZTsKICAgICAg
ICAgaW50IG1fZGVmYXVsdEZvbnRTaXplOwogICAgICAgICBpbnQgbV9kZWZhdWx0Rml4ZWRGb250
U2l6ZTsKICAgICAgICAgYm9vbCBtX3NjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkOwotICAg
ICAgICBpbnQgbV92YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbjsKLSAgICAgICAg
aW50IG1fbWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplOwotICAgICAgICBpbnQgbV9sYXlv
dXRGYWxsYmFja1dpZHRoOwotICAgICAgICBzaXplX3QgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6
ZTsKLSAgICAgICAgaW50IG1fZGV2aWNlV2lkdGg7Ci0gICAgICAgIGludCBtX2RldmljZUhlaWdo
dDsKLSAgICAgICAgdW5zaWduZWQgbV9zZXNzaW9uU3RvcmFnZVF1b3RhOwotICAgICAgICB1bnNp
Z25lZCBtX2VkaXRpbmdCZWhhdmlvclR5cGU7Ci0gICAgICAgIHVuc2lnbmVkIG1fbWF4aW11bUhU
TUxQYXJzZXJET01UcmVlRGVwdGg7CiAgICAgICAgIFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3kgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3k7CiAjaWYgRU5BQkxFKFRFWFRfQVVU
T1NJWklORykKICAgICAgICAgZmxvYXQgbV90ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcjsK
QEAgLTY5Niw1OCArMzM0LDI2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBt
X3RleHRBdXRvc2l6aW5nRW5hYmxlZCA6IDE7CiAjZW5kaWYKICAgICAgICAgSW50U2l6ZSBtX3Jl
c29sdXRpb25EZW5zaXR5UGVySW5jaE92ZXJyaWRlOworCisgICAgICAgIFNFVFRJTkdTX01FTUJF
Ul9WQVJJQUJMRVMKKwogICAgICAgICBib29sIG1faXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQg
OiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9p
c0phdmFFbmFibGVkRm9yTG9jYWxGaWxlcyA6IDE7CiAgICAgICAgIGJvb2wgbV9sb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHkgOiAxOwotICAgICAgICBib29sIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmlu
Z0ltYWdlTG9hZGluZ1NldHRpbmcgOiAxOwogICAgICAgICBib29sIG1fcHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9jYXJldEJyb3dzaW5nRW5hYmxlZCA6IDE7CiAg
ICAgICAgIGJvb2wgbV9hcmVJbWFnZXNFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzTWVk
aWFFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2FyZVBsdWdpbnNFbmFibGVkIDogMTsKLSAg
ICAgICAgYm9vbCBtX2xvY2FsU3RvcmFnZUVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNT
Y3JpcHRFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzV2ViU2VjdXJpdHlFbmFibGVkIDog
MTsKLSAgICAgICAgYm9vbCBtX2FsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzOiAxOwot
ICAgICAgICBib29sIG1fYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzOiAxOwotICAgICAgICBi
b29sIG1famF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA6IDE7Ci0gICAgICAg
IGJvb2wgbV9zdXBwb3J0c011bHRpcGxlV2luZG93cyA6IDE7Ci0gICAgICAgIGJvb2wgbV9qYXZh
U2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIDogMTsKLSAgICAgICAgYm9vbCBtX3Nob3VsZFByaW50
QmFja2dyb3VuZHMgOiAxOwogICAgICAgICBib29sIG1fdGV4dEFyZWFzQXJlUmVzaXphYmxlIDog
MTsKLSNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCi0gICAgICAgIGJvb2wgbV91c2VzRGFz
aGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSA6IDE7Ci0jZW5kaWYKICAgICAgICAgYm9v
bCBtX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrIDogMTsKLSAgICAgICAgYm9vbCBtX25l
ZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzIDogMTsKLSAgICAgICAgYm9vbCBt
X3RyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0IDogMTsKLSAgICAgICAgYm9vbCBtX25l
ZWRzTGVvcGFyZE1haWxRdWlya3MgOiAxOwogICAgICAgICBib29sIG1faXNET01QYXN0ZUFsbG93
ZWQgOiAxOwotICAgICAgICBib29sIG1fc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCA6IDE7
CiAgICAgICAgIGJvb2wgbV91c2VzUGFnZUNhY2hlIDogMTsKLSAgICAgICAgYm9vbCBtX3BhZ2VD
YWNoZVN1cHBvcnRzUGx1Z2lucyA6IDE7Ci0gICAgICAgIGJvb2wgbV9zaG93c1VSTHNJblRvb2xU
aXBzIDogMTsKLSAgICAgICAgYm9vbCBtX3Nob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0IDog
MTsKLSAgICAgICAgYm9vbCBtX2ZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3MgOiAxOwotICAgICAg
ICBib29sIG1fZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9qYXZh
U2NyaXB0RXhwZXJpbWVudHNFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2F1dGhvckFuZFVz
ZXJTdHlsZXNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX25lZWRzU2l0ZVNwZWNpZmljUXVp
cmtzIDogMTsKICAgICAgICAgdW5zaWduZWQgbV9mb250UmVuZGVyaW5nTW9kZSA6IDE7Ci0gICAg
ICAgIGJvb2wgbV9mcmFtZUZsYXR0ZW5pbmdFbmFibGVkIDogMTsKLSNpZiBFTkFCTEUoV0VCX0FS
Q0hJVkUpCi0gICAgICAgIGJvb2wgbV93ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZCA6IDE7Ci0j
ZW5kaWYKLSAgICAgICAgYm9vbCBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQgOiAx
OwogICAgICAgICBib29sIG1faW5BcHBsaWNhdGlvbkNocm9tZU1vZGUgOiAxOwotICAgICAgICBi
b29sIG1fb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkIDogMTsKLSAgICAgICAgYm9v
bCBtX2VuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlIDogMTsKLSAgICAgICAgYm9vbCBt
X3VzZXNFbmNvZGluZ0RldGVjdG9yIDogMTsKLSAgICAgICAgYm9vbCBtX2FsbG93U2NyaXB0c1Rv
Q2xvc2VXaW5kb3dzIDogMTsKLSAgICAgICAgYm9vbCBtX2NhbnZhc1VzZXNBY2NlbGVyYXRlZERy
YXdpbmcgOiAxOwotICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCA6IDE7
Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkIDogMTsKICAgICAgICAg
Ym9vbCBtX2lzQ1NTQ3VzdG9tRmlsdGVyRW5hYmxlZCA6IDE7CiAjaWYgRU5BQkxFKENTU19TVElD
S1lfUE9TSVRJT04pCiAgICAgICAgIGJvb2wgbV9jc3NTdGlja3lQb3NpdGlvbkVuYWJsZWQgOiAx
OwpAQCAtNzU4LDk3ICszNjQsMjQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShD
U1NfVkFSSUFCTEVTKQogICAgICAgICBib29sIG1fY3NzVmFyaWFibGVzRW5hYmxlZCA6IDE7CiAj
ZW5kaWYKLSAgICAgICAgYm9vbCBtX3JlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQgOiAxOwotICAg
ICAgICBib29sIG1fY3NzR3JpZExheW91dEVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fZG93
bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX3hzc0F1ZGl0
b3JFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbEVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0ZvcjNEVHJhbnNmb3Jtc0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQgOiAxOwotICAgICAgICBib29s
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkIDogMTsKLSAg
ICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5h
YmxlZCA6IDE7IC8vIFdvcmtzIG9ubHkgaW4gY29uanVuY3Rpb24gd2l0aCBmb3JjZUNvbXBvc2l0
aW5nTW9kZQogICAgICAgICBib29sIG1fc2hvd0RlYnVnQm9yZGVycyA6IDE7CiAgICAgICAgIGJv
b2wgbV9zaG93UmVwYWludENvdW50ZXIgOiAxOwotICAgICAgICBib29sIG1fZXhwZXJpbWVudGFs
Tm90aWZpY2F0aW9uc0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fd2ViR0xFbmFibGVkIDog
MTsKLSAgICAgICAgYm9vbCBtX3dlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZCA6IDE7Ci0gICAg
ICAgIGJvb2wgbV9vcGVuR0xNdWx0aXNhbXBsaW5nRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wg
bV9wcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV93
ZWJBdWRpb0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDYW52YXMyZEVu
YWJsZWQgOiAxOwotICAgICAgICBib29sIG1fZGVmZXJyZWRDYW52YXMyZEVuYWJsZWQgOiAxOwot
ICAgICAgICBib29sIG1fbG9hZERlZmVycmluZ0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1f
dGlsZWRCYWNraW5nU3RvcmVFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX3BhZ2luYXRlRHVy
aW5nTGF5b3V0RW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9kbnNQcmVmZXRjaGluZ0VuYWJs
ZWQgOiAxOwotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICAgICAgYm9vbCBtX2Z1bGxT
Y3JlZW5BUElFbmFibGVkIDogMTsKLSNlbmRpZgotICAgICAgICBib29sIG1fYXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fdW5pZmllZFRleHRDaGVj
a2VyRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9tZW1vcnlJbmZvRW5hYmxlZCA6IDE7Ci0g
ICAgICAgIGJvb2wgbV9xdWFudGl6ZWRNZW1vcnlJbmZvRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJv
b2wgbV9pbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uIDogMTsKLSAgICAgICAgYm9vbCBtX3VzZVBy
ZUhUTUw1UGFyc2VyUXVpcmtzIDogMTsKLSAgICAgICAgYm9vbCBtX2h5cGVybGlua0F1ZGl0aW5n
RW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVk
Q1NTUnVsZXNEaXNhYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9k
ZSA6IDE7Ci0gICAgICAgIGJvb2wgbV9zaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVt
cHR5RG9jdW1lbnQgOiAxOwotICAgICAgICBib29sIG1fZml4ZWRFbGVtZW50c0xheW91dFJlbGF0
aXZlVG9GcmFtZSA6IDE7Ci0gICAgICAgIGJvb2wgbV9hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29u
dGVudCA6IDE7Ci0gICAgICAgIGJvb2wgbV9hbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCA6
IDE7CiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiAgICAgICAgIGJvb2wgbV9zY3JvbGxB
bmltYXRvckVuYWJsZWQgOiAxOwogI2VuZGlmCi0gICAgICAgIGJvb2wgbV9tZWRpYVBsYXliYWNr
UmVxdWlyZXNVc2VyR2VzdHVyZSA6IDE7Ci0gICAgICAgIGJvb2wgbV9tZWRpYVBsYXliYWNrQWxs
b3dzSW5saW5lIDogMTsKLSAgICAgICAgYm9vbCBtX3Bhc3N3b3JkRWNob0VuYWJsZWQgOiAxOwot
ICAgICAgICBib29sIG1fc3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nIDogMTsKLSAgICAg
ICAgYm9vbCBtX2JhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVkIDogMTsKLSAgICAgICAgYm9v
bCBtX3Zpc3VhbFdvcmRNb3ZlbWVudEVuYWJsZWQgOiAxOwotCi0jaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQotICAgICAgICBib29sIG1fc2hvdWxkRGlzcGxheVN1YnRpdGxlcyA6IDE7Ci0gICAgICAg
IGJvb2wgbV9zaG91bGREaXNwbGF5Q2FwdGlvbnMgOiAxOwotICAgICAgICBib29sIG1fc2hvdWxk
RGlzcGxheVRleHREZXNjcmlwdGlvbnMgOiAxOwotI2VuZGlmCi0gICAgICAgIGJvb2wgbV9zY3Jv
bGxpbmdDb29yZGluYXRvckVuYWJsZWQgOiAxOwotCi0gICAgICAgIGJvb2wgbV9ub3RpZmljYXRp
b25zRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VR
dWlyayA6IDE7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgICAgICBib29sIG1fdG91
Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQgOiAxOwogI2VuZGlmCi0gICAgICAgIGJvb2wgbV9zaG91
bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA6IDE7Ci0gICAgICAgIGJvb2wgbV93YW50c0JhbGFu
Y2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yIDogMTsKLSAgICAgICAgYm9vbCBtX3JlcXVlc3RB
bmltYXRpb25GcmFtZUVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fZGV2aWNlU3VwcG9ydHNU
b3VjaCA6IDE7Ci0gICAgICAgIGJvb2wgbV9kZXZpY2VTdXBwb3J0c01vdXNlIDogMTsKLSAgICAg
ICAgYm9vbCBtX25lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsgOiAxOwotCi0gICAgICAgIGJv
b2wgbV9maXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dCA6IDE7Ci0gICAgICAgIGJv
b2wgbV9zeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2Nvb2tp
ZUVuYWJsZWQgOiAxOwotCi0gICAgICAgIGJvb2wgbV93aW5kb3dGb2N1c1Jlc3RyaWN0ZWQgOiAx
OwotCi0gICAgICAgIGJvb2wgbV9kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQgOiAxOwotCiAgICAg
ICAgIGJvb2wgbV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkIDogMTsKIAotICAg
ICAgICBib29sIG1fYXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IgOiAxOwotICAgICAg
ICBib29sIG1fcGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCA6IDE7Ci0KICAgICAgICAgVGltZXI8
U2V0dGluZ3M+IG1fc2V0SW1hZ2VMb2FkaW5nU2V0dGluZ3NUaW1lcjsKICAgICAgICAgdm9pZCBp
bWFnZUxvYWRpbmdTZXR0aW5nc1RpbWVyRmlyZWQoVGltZXI8U2V0dGluZ3M+Kik7CiAKLSAgICAg
ICAgZG91YmxlIG1faW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29u
ZHM7Ci0KICAgICAgICAgc3RhdGljIGRvdWJsZSBnRGVmYXVsdE1pbkRPTVRpbWVySW50ZXJ2YWw7
CiAgICAgICAgIHN0YXRpYyBkb3VibGUgZ0RlZmF1bHRET01UaW1lckFsaWdubWVudEludGVydmFs
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjlkMDA5ZGZmMzYxYzE4NDUw
MTU5OGRjZTk3Y2QxNTNhOWJiZmEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5pbgpAQCAtMCwwICsxLDE1NiBAQAorIyBGSVhNRTogQWRkIHN1cHBvcnQg
Zm9yIGdsb2JhbCBzZXR0aW5ncy4KKyMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBjdXN0b20gZ2V0
dGVycy9zZXR0ZXJzLgorCitkZWZhdWx0VGV4dEVuY29kaW5nTmFtZSB0eXBlPVN0cmluZworZnRw
RGlyZWN0b3J5VGVtcGxhdGVQYXRoIHR5cGU9U3RyaW5nCitsb2NhbFN0b3JhZ2VEYXRhYmFzZVBh
dGggdHlwZT1TdHJpbmcKK2VkaXRhYmxlTGlua0JlaGF2aW9yIHR5cGU9RWRpdGFibGVMaW5rQmVo
YXZpb3IsIGluaXRpYWw9RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yCit0ZXh0RGlyZWN0aW9u
U3VibWVudUluY2x1c2lvbkJlaGF2aW9yIHR5cGU9VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNp
b25CZWhhdmlvciwgaW5pdGlhbD1UZXh0RGlyZWN0aW9uU3VibWVudUF1dG9tYXRpY2FsbHlJbmNs
dWRlZAorcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMgdHlwZT1kb3VibGUsIGluaXRpYWw9
MQorCisjIFNldHMgdGhlIG1hZ25pZmljYXRpb24gdmFsdWUgZm9yIHZhbGlkYXRpb24gbWVzc2Fn
ZSB0aW1lci4gIElmIHRoZQorIyBtYWduaWZpY2F0aW9uIHZhbHVlIGlzIE4sIGEgdmFsaWRhdGlv
biBtZXNzYWdlIGRpc2FwcGVhcnMgYXV0b21hdGljYWxseSBhZnRlcgorIyA8bWVzc2FnZSBsZW5n
dGg+ICogTiAvIDEwMDAgc2Vjb25kcy4gIElmIE4gaXMgZXF1YWwgdG8gb3IgbGVzcyB0aGFuIDAs
IGEKKyMgdmFsaWRhdGlvbiBtZXNzYWdlIGRvZXNuJ3QgZGlzYXBwZWFycyBhdXRvbWF0aWNhbHku
Cit2YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbiB0eXBlPWludCwgaW5pdGlhbD01
MAorCisjIE51bWJlciBvZiBwaXhlbHMgYmVsb3cgd2hpY2ggMkQgY2FudmFzIGlzIHJlbmRlcmVk
IGluIHNvZnR3YXJlCisjIGV2ZW4gaWYgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIGlzIGVuYWJsZWQu
CisjIEhhcmR3YXJlIGFjY2VsZXJhdGlvbiBpcyB1c2VmdWwgZm9yIGxhcmdlIGNhbnZhc2VzIHdo
ZXJlIGl0IGNhbiBhdm9pZCB0aGUKKyMgcGl4ZWwgYmFuZHdpZHRoIGJldHdlZW4gdGhlIENQVSBh
bmQgR1BVLiBCdXQgR1BVIGFjY2VsZXJhdGlvbiBjb21lcyBhdAorIyBhIHByaWNlIC0gZXh0cmEg
YmFjay1idWZmZXIgYW5kIHRleHR1cmUgY29weS4gU21hbGwgY2FudmFzZXMgYXJlIGFsc28KKyMg
d2lkZWx5IHVzZWQgZm9yIHN0eWxpemVkIGZvbnRzLiBBbnRpLWFsaWFzaW5nIHRleHQgaW4gaGFy
ZHdhcmUgYXQgdGhhdAorIyBzY2FsZSBpcyBnZW5lcmFsbHkgc2xvd2VyLiBTbyBiZWxvdyBhIGNl
cnRhaW4gc2l6ZSBpdCBpcyBiZXR0ZXIgdG8KKyMgZHJhdyBjYW52YXMgaW4gc29mdHdhcmUuCitt
aW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUgdHlwZT1pbnQsIGluaXRpYWw9MjU3KjI1Ngor
CitsYXlvdXRGYWxsYmFja1dpZHRoIHR5cGU9aW50LCBpbml0aWFsPTk4MAorbWF4aW11bURlY29k
ZWRJbWFnZVNpemUgdHlwZT1zaXplX3QsIGluaXRpYWw9bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6
bWF4KCkKK2RldmljZVdpZHRoIHR5cGU9aW50LCBpbml0aWFsPTAKK2RldmljZUhlaWdodCB0eXBl
PWludCwgaW5pdGlhbD0wCisKKyMgQWxsb3cgY2xpZW50cyBjb25jZXJuZWQgd2l0aCBtZW1vcnkg
Y29uc3VtcHRpb24gdG8gc2V0IGEgcXVvdGEgb24gc2Vzc2lvbiBzdG9yYWdlCisjIHNpbmNlIHRo
ZSBtZW1vcnkgdXNlZCB3b24ndCBiZSByZWxlYXNlZCB1bnRpbCB0aGUgUGFnZSBpcyBkZXN0cm95
ZWQuCitzZXNzaW9uU3RvcmFnZVF1b3RhIHR5cGU9dW5zaWduZWQsIGluaXRpYWw9U3RvcmFnZU1h
cDo6bm9RdW90YQorCitlZGl0aW5nQmVoYXZpb3JUeXBlIHR5cGU9RWRpdGluZ0JlaGF2aW9yVHlw
ZSwgaW5pdGlhbD1lZGl0aW5nQmVoYXZpb3JUeXBlRm9yUGxhdGZvcm0oKQorbWF4aW11bUhUTUxQ
YXJzZXJET01UcmVlRGVwdGggdHlwZT11bnNpZ25lZCwgaW5pdGlhbD1kZWZhdWx0TWF4aW11bUhU
TUxQYXJzZXJET01UcmVlRGVwdGgKKworIyBUaGlzIHNldHRpbmcgb25seSBhZmZlY3RzIHNpdGUg
aWNvbiBpbWFnZSBsb2FkaW5nIGlmIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nIGlz
IGZhbHNlIGFuZCB0aGlzIHNldHRpbmcgaXMgdHJ1ZS4KKyMgQWxsIG90aGVyIHBlcm11dGF0aW9u
cyBzdGlsbCBoZWVkIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nLgorbG9hZHNTaXRl
SWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcgaW5pdGlhbD1mYWxzZQorCitjYXJldEJy
b3dzaW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlCitsb2NhbFN0b3JhZ2VFbmFibGVkIGluaXRpYWw9
ZmFsc2UKK2FsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzIGluaXRpYWw9dHJ1ZQorYWxs
b3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzIGluaXRpYWw9dHJ1ZQoramF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseSBpbml0aWFsPWZhbHNlCitzdXBwb3J0c011bHRpcGxlV2luZG93
cyBpbml0aWFsPXRydWUKK2phdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQgaW5pdGlhbD1mYWxz
ZQorc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyBpbml0aWFsPWZhbHNlCit1c2VzRGFzaGJvYXJkQmFj
a3dhcmRDb21wYXRpYmlsaXR5TW9kZSBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1EQVNIQk9B
UkRfU1VQUE9SVAorCisjIFRoaXMgaXMgYSBxdWlyayB3ZSBhcmUgcHJvLWFjdGl2ZWx5IGFwcGx5
aW5nIHRvIG9sZCBhcHBsaWNhdGlvbnMuIEl0IGNoYW5nZXMga2V5Ym9hcmQgZXZlbnQgZGlzcGF0
Y2hpbmcsCisjIG1ha2luZyBrZXlJZGVudGlmaWVyIGF2YWlsYWJsZSBvbiBrZXlwcmVzcyBldmVu
dHMsIG1ha2luZyBjaGFyQ29kZSBhdmFpbGFibGUgb24ga2V5ZG93bi9rZXl1cCBldmVudHMsCisj
IGFuZCBnZXR0aW5nIGtleXByZXNzIGRpc3BhdGNoZWQgaW4gbW9yZSBjYXNlcy4KK25lZWRzS2V5
Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzIGluaXRpYWw9ZmFsc2UKKwordHJlYXRzQW55
VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQgaW5pdGlhbD1mYWxzZQorbmVlZHNMZW9wYXJkTWFpbFF1
aXJrcyBpbml0aWFsPWZhbHNlCitzaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0IGluaXRpYWw9
dHJ1ZQorcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zIGluaXRpYWw9ZmFsc2UKK3Nob3dzVVJMc0lu
VG9vbFRpcHMgaW5pdGlhbD1mYWxzZQorc2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQgaW5p
dGlhbD1mYWxzZQorZm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5ncyBpbml0aWFsPWZhbHNlCitkZXZl
bG9wZXJFeHRyYXNFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2phdmFTY3JpcHRFeHBlcmltZW50c0Vu
YWJsZWQgaW5pdGlhbD1mYWxzZQorbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgaW5pdGlhbD1mYWxz
ZQord2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9
V0VCX0FSQ0hJVkUKK2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQgaW5pdGlhbD1mYWxz
ZQorb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2VuZm9y
Y2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlIGluaXRpYWw9dHJ1ZQordXNlc0VuY29kaW5nRGV0
ZWN0b3IgaW5pdGlhbD1mYWxzZQorYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MgaW5pdGlhbD1m
YWxzZQorY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZyBpbml0aWFsPWZhbHNlCithY2NlbGVy
YXRlZERyYXdpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2FjY2VsZXJhdGVkRmlsdGVyc0VuYWJs
ZWQgaW5pdGlhbD1mYWxzZQorcmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCBpbml0aWFsPWZhbHNl
Citjc3NHcmlkTGF5b3V0RW5hYmxlZCBpbml0aWFsPWZhbHNlCisKKyMgRklYTUU6IFRoaXMgc2hv
dWxkIHJlYWxseSBiZSBkaXNhYmxlZCBieSBkZWZhdWx0IGFzIGl0IG1ha2VzIHBsYXRmb3JtcyB0
aGF0IGRvbid0IHN1cHBvcnQgdGhlIGZlYXR1cmUgZG93bmxvYWQgZmlsZXMKKyMgdGhleSBjYW4n
dCB1c2UgYnkuIExlYXZpbmcgZW5hYmxlZCBmb3Igbm93IHRvIG5vdCBjaGFuZ2UgZXhpc3Rpbmcg
YmVoYXZpb3IuCitkb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQgaW5pdGlhbD10cnVlCisK
K3hzc0F1ZGl0b3JFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3IzRFRyYW5zZm9ybXNFbmFibGVkIGluaXRpYWw9dHJ1ZQorYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0ZvclZpZGVvRW5hYmxlZCBpbml0aWFsPXRydWUKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JQ
bHVnaW5zRW5hYmxlZCBpbml0aWFsPXRydWUKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52
YXNFbmFibGVkIGluaXRpYWw9dHJ1ZQorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlv
bkVuYWJsZWQgaW5pdGlhbD10cnVlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3Np
dGlvbkVuYWJsZWQgaW5pdGlhbD1mYWxzZQorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJm
bG93U2Nyb2xsRW5hYmxlZCBpbml0aWFsPWZhbHNlCisKKyMgV29ya3Mgb25seSBpbiBjb25qdW5j
dGlvbiB3aXRoIGZvcmNlQ29tcG9zaXRpbmdNb2RlLgorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zv
clNjcm9sbGFibGVGcmFtZXNFbmFibGVkIGluaXRpYWw9ZmFsc2UKKworZXhwZXJpbWVudGFsTm90
aWZpY2F0aW9uc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQord2ViR0xFbmFibGVkIGluaXRpYWw9ZmFs
c2UKK3dlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZCBpbml0aWFsPWZhbHNlCitvcGVuR0xNdWx0
aXNhbXBsaW5nRW5hYmxlZCBpbml0aWFsPXRydWUKK3ByaXZpbGVnZWRXZWJHTEV4dGVuc2lvbnNF
bmFibGVkIGluaXRpYWw9ZmFsc2UKK2FjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkIGluaXRpYWw9
ZmFsc2UKK2RlZmVycmVkMmRDYW52YXNFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2xvYWREZWZlcnJp
bmdFbmFibGVkIGluaXRpYWw9dHJ1ZQord2ViQXVkaW9FbmFibGVkIGluaXRpYWw9ZmFsc2UKK3Bh
Z2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZCBpbml0aWFsPWZhbHNlCitmdWxsU2NyZWVuRW5hYmxl
ZCBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1GVUxMU0NSRUVOX0FQSQorYXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorbWVtb3J5SW5mb0VuYWJsZWQgaW5p
dGlhbD1mYWxzZQorcXVhbnRpemVkTWVtb3J5SW5mb0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorCisj
IFRoaXMgZmVhdHVyZSByZXF1aXJlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBWYWxpZGF0aW9uTWVz
c2FnZUNsaWVudC4KK2ludGVyYWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkIGluaXRpYWw9ZmFs
c2UKKwordXNlUHJlSFRNTDVQYXJzZXJRdWlya3MgaW5pdGlhbD1mYWxzZQoraHlwZXJsaW5rQXVk
aXRpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRD
U1NSdWxlc0Rpc2FibGVkIGluaXRpYWw9ZmFsc2UKK2ZvcmNlQ29tcG9zaXRpbmdNb2RlIGluaXRp
YWw9ZmFsc2UKK3Nob3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudCBp
bml0aWFsPWZhbHNlCitmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lIGluaXRpYWw9
ZmFsc2UKK2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50IGluaXRpYWw9dHJ1ZQorYWxsb3dS
dW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQgaW5pdGlhbD10cnVlCittZWRpYVBsYXliYWNrUmVxdWly
ZXNVc2VyR2VzdHVyZSBpbml0aWFsPWZhbHNlCittZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lIGlu
aXRpYWw9dHJ1ZQorcGFzc3dvcmRFY2hvRW5hYmxlZCBpbml0aWFsPWZhbHNlCitzdXBwcmVzc2Vz
SW5jcmVtZW50YWxSZW5kZXJpbmcgaW5pdGlhbD1mYWxzZQoraW5jcmVtZW50YWxSZW5kZXJpbmdT
dXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMgdHlwZT1kb3VibGUsIGluaXRpYWw9ZGVmYXVsdElu
Y3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzCitiYWNrc3BhY2VL
ZXlOYXZpZ2F0aW9uRW5hYmxlZCBpbml0aWFsPXRydWUKK3Zpc3VhbFdvcmRNb3ZlbWVudEVuYWJs
ZWQgaW5pdGlhbD1mYWxzZQorc2hvdWxkRGlzcGxheVN1YnRpdGxlcyBpbml0aWFsPWZhbHNlLCBj
b25kaXRpb25hbD1WSURFT19UUkFDSworc2hvdWxkRGlzcGxheUNhcHRpb25zIGluaXRpYWw9ZmFs
c2UsIGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCitzaG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9u
cyBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1WSURFT19UUkFDSworc2Nyb2xsaW5nQ29vcmRp
bmF0b3JFbmFibGVkIGluaXRpYWw9ZmFsc2UKK25vdGlmaWNhdGlvbnNFbmFibGVkIGluaXRpYWw9
dHJ1ZQorCisjIFNvbWUgYXBwcyBuZWVkcyBpc0xvYWRpbmdJbkFQSVNlbnNlIHRvIGFjY291bnQg
Zm9yIGFjdGl2ZSBzdWJyZXNvdXJjZSBsb2FkZXJzLgorbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNl
UXVpcmsgaW5pdGlhbD1mYWxzZQorCitzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiBpbml0
aWFsPWZhbHNlCit3YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yIGluaXRpYWw9
ZmFsc2UKK3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQgaW5pdGlhbD10cnVlCitkZXZpY2VT
dXBwb3J0c1RvdWNoIGluaXRpYWw9ZmFsc2UKK2RldmljZVN1cHBvcnRzTW91c2UgaW5pdGlhbD10
cnVlCituZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrIGluaXRpYWw9ZmFsc2UKK2ZpeGVkUG9z
aXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0IGluaXRpYWw9ZmFsc2UKK3N5bmNYSFJJbkRvY3Vt
ZW50c0VuYWJsZWQgaW5pdGlhbD10cnVlCitjb29raWVFbmFibGVkIGluaXRpYWw9dHJ1ZQorCisj
IFdoZW4gZW5hYmxlZCwgd2luZG93LmJsdXIoKSBkb2VzIG5vdCBjaGFuZ2UgZm9jdXMsIGFuZAor
IyB3aW5kb3cuZm9jdXMoKSBvbmx5IGNoYW5nZXMgZm9jdXMgd2hlbiBpbnZva2VkIGZyb20gdGhl
IGNvbnRleHQgdGhhdAorIyBjcmVhdGVkIHRoZSB3aW5kb3cuCit3aW5kb3dGb2N1c1Jlc3RyaWN0
ZWQgaW5pdGlhbD10cnVlCisKK2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCBpbml0aWFsPWZhbHNl
CithcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvciBpbml0aWFsPWZhbHNlCitwbHVnSW5T
bmFwc2hvdHRpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2ZyYW1lRmxhdHRlbmluZ0VuYWJsZWQg
aW5pdGlhbD1mYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWtlX3NldHRp
bmdzLnBsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWtlX3NldHRpbmdzLnBsCm5ldyBmaWxlIG1v
ZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ5OWNjMGZjZTAwYjYyOTRmM2M0MTJjMDI2MThlMTVkMzcwYzIwOTIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21ha2Vfc2V0dGluZ3MucGwKQEAgLTAsMCArMSwyNTUg
QEAKKyMhL3Vzci9iaW4vcGVybCAtdworCisjIENvcHlyaWdodCAoQykgMjAxMiBUb255IENoYW5n
IDx0b255QGNocm9taXVtLm9yZz4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBH
T09HTEUsIElOQy4gYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorIyBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisjIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwordXNlIHN0
cmljdDsKKwordXNlIEluRmlsZXNDb21waWxlcjsKKworbXkgJWRlZmF1bHRQYXJhbWV0ZXJzID0g
KAorKTsKKworc3ViIGRlZmF1bHRJdGVtRmFjdG9yeQoreworICAgIHJldHVybiAoCisgICAgICAg
ICdjb25kaXRpb25hbCcgPT4gMCwKKyAgICAgICAgJ2luaXRpYWwnID0+ICcnLAorICAgICAgICAn
dHlwZScgPT4gJ2Jvb2wnCisgICAgKTsKK30KKworbXkgJEluQ29tcGlsZXIgPSBJbkZpbGVzQ29t
cGlsZXItPm5ldyhcJWRlZmF1bHRQYXJhbWV0ZXJzLCBcJmRlZmF1bHRJdGVtRmFjdG9yeSk7CisK
K215ICRvdXRwdXREaXIgPSAkSW5Db21waWxlci0+aW5pdGlhbGl6ZUZyb21Db21tYW5kTGluZSgp
OworJEluQ29tcGlsZXItPmNvbXBpbGUoXCZnZW5lcmF0ZUNvZGUpOworCitzdWIgZ2VuZXJhdGVD
b2RlKCkKK3sKKyAgICBteSAkcGFyc2VkUGFyYW1ldGVyc1JlZiA9IHNoaWZ0OworICAgIG15ICRw
YXJzZWRJdGVtc1JlZiA9IHNoaWZ0OworCisgICAgZ2VuZXJhdGVIZWFkZXIoJHBhcnNlZEl0ZW1z
UmVmKTsKK30KKworc3ViIGdlbmVyYXRlSGVhZGVyKCQpCit7CisgICAgbXkgJHBhcnNlZEl0ZW1z
UmVmID0gc2hpZnQ7CisKKyAgICBteSAlcGFyc2VkSXRlbXMgPSAleyAkcGFyc2VkSXRlbXNSZWYg
fTsKKyAgICBteSAkb3V0cHV0RmlsZSA9ICIkb3V0cHV0RGlyL1NldHRpbmdzTWFjcm9zLmgiOwor
CisgICAgbXkgJXVuY29uZGl0aW9uYWxTZXR0aW5ncyA9ICgpOworICAgIG15ICVzZXR0aW5nc0J5
Q29uZGl0aW9uYWwgPSAoKTsKKworICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5cyAl
cGFyc2VkSXRlbXMpIHsKKyAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJHBhcnNlZEl0ZW1zeyRz
ZXR0aW5nTmFtZX17ImNvbmRpdGlvbmFsIn07CisKKyAgICAgICAgaWYgKCRjb25kaXRpb25hbCkg
eworICAgICAgICAgICAgaWYgKCFkZWZpbmVkKCRzZXR0aW5nc0J5Q29uZGl0aW9uYWx7JGNvbmRp
dGlvbmFsfSkpIHsKKyAgICAgICAgICAgICAgICAkc2V0dGluZ3NCeUNvbmRpdGlvbmFseyRjb25k
aXRpb25hbH0gPSAoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRzZXR0aW5nc0J5Q29u
ZGl0aW9uYWx7JGNvbmRpdGlvbmFsfXskc2V0dGluZ05hbWV9ID0gMTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICR1bmNvbmRpdGlvbmFsU2V0dGluZ3N7JHNldHRpbmdOYW1lfSA9IDE7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBvcGVuIG15ICRmaWxlLCAiPiRvdXRwdXRGaWxlIiBv
ciBkaWUgIkZhaWxlZCB0byBvcGVuIGZpbGU6ICQhIjsKKworICAgIHByaW50ICRmaWxlICRJbkNv
bXBpbGVyLT5saWNlbnNlKCk7CisKKyAgICAjIEZJWE1FOiBTb3J0IGJ5IHR5cGUgc28gYm9vbHMg
Y29tZSBsYXN0IGFuZCBhcmUgYml0IHBhY2tlZC4KKworICAgIHByaW50ICRmaWxlICIjaWZuZGVm
IFNldHRpbmdzTWFjcm9zX2hcbiI7CisgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgU2V0dGluZ3NN
YWNyb3NfaFxuXG4iOworCisgICAgcHJpbnRDb25kaXRpb25hbE1hY3JvcygkZmlsZSwgXCVzZXR0
aW5nc0J5Q29uZGl0aW9uYWwsICRwYXJzZWRJdGVtc1JlZik7CisKKyAgICBwcmludEdldHRlcnNB
bmRTZXR0ZXJzKCRmaWxlLCBcJXVuY29uZGl0aW9uYWxTZXR0aW5ncywgXCVzZXR0aW5nc0J5Q29u
ZGl0aW9uYWwsICRwYXJzZWRJdGVtc1JlZik7CisgICAgcHJpbnRNZW1iZXJWYXJpYWJsZXMoJGZp
bGUsIFwldW5jb25kaXRpb25hbFNldHRpbmdzLCBcJXNldHRpbmdzQnlDb25kaXRpb25hbCwgJHBh
cnNlZEl0ZW1zUmVmKTsKKyAgICBwcmludEluaXRpYWxpemVyTGlzdCgkZmlsZSwgXCV1bmNvbmRp
dGlvbmFsU2V0dGluZ3MsIFwlc2V0dGluZ3NCeUNvbmRpdGlvbmFsLCAkcGFyc2VkSXRlbXNSZWYp
OworCisgICAgcHJpbnQgJGZpbGUgIiNlbmRpZiAvLyBTZXR0aW5nc01hY3Jvc19oXG4iOworCisg
ICAgY2xvc2UgJGZpbGU7Cit9CisKK3N1YiBwcmludENvbmRpdGlvbmFsTWFjcm9zKCQkJCkKK3sK
KyAgICBteSAoJGZpbGUsICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxSZWYsICRwYXJzZWRJdGVtc1Jl
ZikgPSBAXzsKKyAgICBteSAlcGFyc2VkSXRlbXMgPSAleyAkcGFyc2VkSXRlbXNSZWYgfTsKKyAg
ICBteSAlc2V0dGluZ3NCeUNvbmRpdGlvbmFsID0gJXsgJHNldHRpbmdzQnlDb25kaXRpb25hbFJl
ZiB9OworCisgICAgZm9yIG15ICRjb25kaXRpb25hbCAoc29ydCBrZXlzICVzZXR0aW5nc0J5Q29u
ZGl0aW9uYWwpIHsKKyAgICAgICAgbXkgJHByZWZlcnJlZENvbmRpdGlvbmFsID0gJEluQ29tcGls
ZXItPnByZWZlcnJlZENvbmRpdGlvbmFsKCRjb25kaXRpb25hbCk7CisgICAgICAgIHByaW50ICRm
aWxlICIjaWYgIiAuICRJbkNvbXBpbGVyLT5jb25kaXRpb25hbFN0cmluZ0Zyb21BdHRyaWJ1dGVW
YWx1ZSgkY29uZGl0aW9uYWwpIC4gIlxuIjsKKworICAgICAgICBwcmludCAkZmlsZSAiI2RlZmlu
ZSAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19HRVRURVJfQU5EX1NFVFRFUlMgXFxc
biI7CisgICAgICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5cyAleyAkc2V0dGluZ3NC
eUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH0gfSkgeworICAgICAgICAgICAgcHJpbnRHZXR0ZXJB
bmRTZXR0ZXIoJGZpbGUsICRzZXR0aW5nTmFtZSwgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17
InR5cGUifSk7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgJGZpbGUgIi8vIEVuZCBvZiAke3By
ZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19HRVRURVJfQU5EX1NFVFRFUlNcbiI7CisKKyAg
ICAgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElO
R1NfTk9OX0JPT0xfTUVNQkVSX1ZBUklBQkxFUyBcXFxuIjsKKyAgICAgICAgZm9yIG15ICRzZXR0
aW5nTmFtZSAoc29ydCBrZXlzICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWx7JGNvbmRpdGlvbmFs
fSB9KSB7CisgICAgICAgICAgICBteSAkdHlwZSA9ICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9
eyJ0eXBlIn07CisgICAgICAgICAgICBuZXh0IGlmICR0eXBlIGVxICJib29sIjsKKyAgICAgICAg
ICAgIHByaW50ICRmaWxlICIgICAgJHR5cGUgbV8kc2V0dGluZ05hbWU7IFxcXG4iCisgICAgICAg
IH0KKyAgICAgICAgcHJpbnQgJGZpbGUgIi8vIEVuZCBvZiAke3ByZWZlcnJlZENvbmRpdGlvbmFs
fV9TRVRUSU5HU19OT05fQk9PTF9NRU1CRVJfVkFSSUFCTEVTXG4iOworCisgICAgICAgIHByaW50
ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0JPT0xfTUVN
QkVSX1ZBUklBQkxFUyBcXFxuIjsKKyAgICAgICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBr
ZXlzICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWx7JGNvbmRpdGlvbmFsfSB9KSB7CisgICAgICAg
ICAgICBuZXh0IGlmICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0gbmUgImJvb2wi
OworICAgICAgICAgICAgcHJpbnQgJGZpbGUgIiAgICBib29sIG1fJHNldHRpbmdOYW1lIDogMTsg
XFxcbiIKKyAgICAgICAgfQorICAgICAgICBwcmludCAkZmlsZSAiLy8gRW5kIG9mICR7cHJlZmVy
cmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0JPT0xfTUVNQkVSX1ZBUklBQkxFU1xuIjsKKworICAg
ICAgICBwcmludCAkZmlsZSAiI2RlZmluZSAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5H
U19OT05fQk9PTF9JTklUSUFMSVpFUlMgXFxcbiI7CisgICAgICAgIGZvciBteSAkc2V0dGluZ05h
bWUgKHNvcnQga2V5cyAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH0gfSkg
eworICAgICAgICAgICAgbmV4dCBpZiAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9
IGVxICJib29sIjsKKyAgICAgICAgICAgIHByaW50SW5pdGlhbGl6ZXIoJGZpbGUsICRzZXR0aW5n
TmFtZSwgJHBhcnNlZEl0ZW1zUmVmKTsKKyAgICAgICAgfQorICAgICAgICBwcmludCAkZmlsZSAi
Ly8gRW5kIG9mICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX05PTl9CT09MX0lOSVRJ
QUxJWkVSU1xuIjsKKworICAgICAgICBwcmludCAkZmlsZSAiI2RlZmluZSAke3ByZWZlcnJlZENv
bmRpdGlvbmFsfV9TRVRUSU5HU19CT09MX0lOSVRJQUxJWkVSUyBcXFxuIjsKKyAgICAgICAgZm9y
IG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWx7JGNv
bmRpdGlvbmFsfSB9KSB7CisgICAgICAgICAgICBuZXh0IGlmICRwYXJzZWRJdGVtc3skc2V0dGlu
Z05hbWV9eyJ0eXBlIn0gbmUgImJvb2wiOworICAgICAgICAgICAgcHJpbnRJbml0aWFsaXplcigk
ZmlsZSwgJHNldHRpbmdOYW1lLCAkcGFyc2VkSXRlbXNSZWYpOworICAgICAgICB9CisgICAgICAg
IHByaW50ICRmaWxlICIvLyBFbmQgb2YgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1Nf
Qk9PTF9JTklUSUFMSVpFUlNcbiI7CisKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNlbHNlXG4iOwor
ICAgICAgICBwcmludCAkZmlsZSAiI2RlZmluZSAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRU
SU5HU19HRVRURVJfQU5EX1NFVFRFUlNcbiI7CisgICAgICAgIHByaW50ICRmaWxlICIjZGVmaW5l
ICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX05PTl9CT09MX01FTUJFUl9WQVJJQUJM
RVNcbiI7CisgICAgICAgIHByaW50ICRmaWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0aW9u
YWx9X1NFVFRJTkdTX0JPT0xfTUVNQkVSX1ZBUklBQkxFU1xuIjsKKyAgICAgICAgcHJpbnQgJGZp
bGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfTk9OX0JPT0xfSU5J
VElBTElaRVJTXG4iOworICAgICAgICBwcmludCAkZmlsZSAiI2RlZmluZSAke3ByZWZlcnJlZENv
bmRpdGlvbmFsfV9TRVRUSU5HU19CT09MX0lOSVRJQUxJWkVSU1xuIjsKKyAgICAgICAgcHJpbnQg
JGZpbGUgIiNlbmRpZlxuIjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIlxuIjsKKyAgICB9Cit9CisK
K3N1YiBwcmludEdldHRlcnNBbmRTZXR0ZXJzKCQkJCQpCit7CisgICAgbXkgKCRmaWxlLCAkdW5j
b25kaXRpb25hbFNldHRpbmdzUmVmLCAkc2V0dGluZ3NCeUNvbmRpdGlvbmFsUmVmLCAkcGFyc2Vk
SXRlbXNSZWYpID0gQF87CisgICAgbXkgJXBhcnNlZEl0ZW1zID0gJXsgJHBhcnNlZEl0ZW1zUmVm
IH07CisgICAgbXkgJXVuY29uZGl0aW9uYWxTZXR0aW5ncyA9ICV7ICR1bmNvbmRpdGlvbmFsU2V0
dGluZ3NSZWYgfTsKKyAgICBteSAlc2V0dGluZ3NCeUNvbmRpdGlvbmFsID0gJXsgJHNldHRpbmdz
QnlDb25kaXRpb25hbFJlZiB9OworCisgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgU0VUVElOR1Nf
R0VUVEVSU19BTkRfU0VUVEVSUyBcXFxuIjsKKyAgICBmb3IgbXkgJHNldHRpbmdOYW1lIChzb3J0
IGtleXMgJXVuY29uZGl0aW9uYWxTZXR0aW5ncykgeworICAgICAgICBwcmludEdldHRlckFuZFNl
dHRlcigkZmlsZSwgJHNldHRpbmdOYW1lLCAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlw
ZSJ9KTsKKyAgICB9CisgICAgZm9yIG15ICRjb25kaXRpb25hbCAoc29ydCBrZXlzICVzZXR0aW5n
c0J5Q29uZGl0aW9uYWwpIHsKKyAgICAgICAgbXkgJHByZWZlcnJlZENvbmRpdGlvbmFsID0gJElu
Q29tcGlsZXItPnByZWZlcnJlZENvbmRpdGlvbmFsKCRjb25kaXRpb25hbCk7CisgICAgICAgIHBy
aW50ICRmaWxlICIgICAgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfR0VUVEVSX0FO
RF9TRVRURVJTIFxcXG4iOworICAgIH0KKyAgICBwcmludCAkZmlsZSAiLy8gRW5kIG9mIFNFVFRJ
TkdTX0dFVFRFUlNfQU5EX1NFVFRFUlMuXG5cbiI7Cit9CisKK3N1YiBwcmludE1lbWJlclZhcmlh
YmxlcygkJCQkKQoreworICAgIG15ICgkZmlsZSwgJHVuY29uZGl0aW9uYWxTZXR0aW5nc1JlZiwg
JHNldHRpbmdzQnlDb25kaXRpb25hbFJlZiwgJHBhcnNlZEl0ZW1zUmVmKSA9IEBfOworICAgIG15
ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworICAgIG15ICV1bmNvbmRpdGlv
bmFsU2V0dGluZ3MgPSAleyAkdW5jb25kaXRpb25hbFNldHRpbmdzUmVmIH07CisgICAgbXkgJXNl
dHRpbmdzQnlDb25kaXRpb25hbCA9ICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxSZWYgfTsKKwor
ICAgIHByaW50ICRmaWxlICIjZGVmaW5lIFNFVFRJTkdTX01FTUJFUl9WQVJJQUJMRVMgXFxcbiI7
CisgICAgIyBXZSBsaXN0IHRoZSBib29scyBsYXN0IHNvIHdlIGNhbiBiaXQgcGFjayB0aGVtLgor
ICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5cyAldW5jb25kaXRpb25hbFNldHRpbmdz
KSB7CisgICAgICAgIG15ICR0eXBlID0gJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUi
fTsKKyAgICAgICAgbmV4dCBpZiAkdHlwZSBlcSAiYm9vbCI7CisgICAgICAgIHByaW50ICRmaWxl
ICIgICAgJHR5cGUgbV8kc2V0dGluZ05hbWU7IFxcXG4iCisgICAgfQorICAgIGZvciBteSAkY29u
ZGl0aW9uYWwgKHNvcnQga2V5cyAlc2V0dGluZ3NCeUNvbmRpdGlvbmFsKSB7CisgICAgICAgIG15
ICRwcmVmZXJyZWRDb25kaXRpb25hbCA9ICRJbkNvbXBpbGVyLT5wcmVmZXJyZWRDb25kaXRpb25h
bCgkY29uZGl0aW9uYWwpOworICAgICAgICBwcmludCAkZmlsZSAiICAgICR7cHJlZmVycmVkQ29u
ZGl0aW9uYWx9X1NFVFRJTkdTX05PTl9CT09MX01FTUJFUl9WQVJJQUJMRVMgXFxcbiI7CisgICAg
fQorICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5cyAldW5jb25kaXRpb25hbFNldHRp
bmdzKSB7CisgICAgICAgIG5leHQgaWYgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUi
fSBuZSAiYm9vbCI7CisgICAgICAgIHByaW50ICRmaWxlICIgICAgYm9vbCBtXyRzZXR0aW5nTmFt
ZSA6IDE7IFxcXG4iCisgICAgfQorICAgIGZvciBteSAkY29uZGl0aW9uYWwgKHNvcnQga2V5cyAl
c2V0dGluZ3NCeUNvbmRpdGlvbmFsKSB7CisgICAgICAgIG15ICRwcmVmZXJyZWRDb25kaXRpb25h
bCA9ICRJbkNvbXBpbGVyLT5wcmVmZXJyZWRDb25kaXRpb25hbCgkY29uZGl0aW9uYWwpOworICAg
ICAgICBwcmludCAkZmlsZSAiICAgICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0JP
T0xfTUVNQkVSX1ZBUklBQkxFUyBcXFxuIjsKKyAgICB9CisgICAgcHJpbnQgJGZpbGUgIi8vIEVu
ZCBvZiBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTLlxuXG4iOworfQorCitzdWIgcHJpbnRHZXR0
ZXJBbmRTZXR0ZXIoJCQkKQoreworICAgIG15ICgkZmlsZSwgJHNldHRpbmdOYW1lLCAkdHlwZSkg
PSBAXzsKKyAgICBteSAkc2V0dGVyRnVuY3Rpb25OYW1lID0gInNldCIgLiAkc2V0dGluZ05hbWU7
CisgICAgc3Vic3RyKCRzZXR0ZXJGdW5jdGlvbk5hbWUsIDMsIDEpID0gdWMoc3Vic3RyKCRzZXR0
ZXJGdW5jdGlvbk5hbWUsIDMsIDEpKTsKKyAgICBpZiAoc3Vic3RyKCRzZXR0aW5nTmFtZSwgMCwg
MykgZXEgImNzcyIgfHwgc3Vic3RyKCRzZXR0aW5nTmFtZSwgMCwgMykgZXEgInhzcyIgfHwgc3Vi
c3RyKCRzZXR0aW5nTmFtZSwgMCwgMykgZXEgImZ0cCIpIHsKKyAgICAgICAgc3Vic3RyKCRzZXR0
ZXJGdW5jdGlvbk5hbWUsIDMsIDMpID0gdWMoc3Vic3RyKCRzZXR0ZXJGdW5jdGlvbk5hbWUsIDMs
IDMpKTsKKyAgICB9CisgICAgaWYgKGxjKHN1YnN0cigkdHlwZSwgMCwgMSkpIGVxIHN1YnN0cigk
dHlwZSwgMCwgMSkpIHsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICAkdHlwZSAkc2V0dGluZ05h
bWUoKSBjb25zdCB7IHJldHVybiBtXyRzZXR0aW5nTmFtZTsgfSBcXFxuIjsKKyAgICAgICAgcHJp
bnQgJGZpbGUgIiAgICB2b2lkICRzZXR0ZXJGdW5jdGlvbk5hbWUoJHR5cGUgJHNldHRpbmdOYW1l
KSB7IG1fJHNldHRpbmdOYW1lID0gJHNldHRpbmdOYW1lOyB9IFxcXG4iOworICAgIH0gZWxzZSB7
CisgICAgICAgIHByaW50ICRmaWxlICIgICAgY29uc3QgJHR5cGUmICRzZXR0aW5nTmFtZSgpIHsg
cmV0dXJuIG1fJHNldHRpbmdOYW1lOyB9IFxcXG4iOworICAgICAgICBwcmludCAkZmlsZSAiICAg
IHZvaWQgJHNldHRlckZ1bmN0aW9uTmFtZShjb25zdCAkdHlwZSYgJHNldHRpbmdOYW1lKSB7IG1f
JHNldHRpbmdOYW1lID0gJHNldHRpbmdOYW1lOyB9IFxcXG4iOworICAgIH0KK30KKworc3ViIHBy
aW50SW5pdGlhbGl6ZXJMaXN0KCQkJCQpCit7CisgICAgbXkgKCRmaWxlLCAkdW5jb25kaXRpb25h
bFNldHRpbmdzUmVmLCAkc2V0dGluZ3NCeUNvbmRpdGlvbmFsUmVmLCAkcGFyc2VkSXRlbXNSZWYp
ID0gQF87CisgICAgbXkgJXBhcnNlZEl0ZW1zID0gJXsgJHBhcnNlZEl0ZW1zUmVmIH07CisgICAg
bXkgJXVuY29uZGl0aW9uYWxTZXR0aW5ncyA9ICV7ICR1bmNvbmRpdGlvbmFsU2V0dGluZ3NSZWYg
fTsKKyAgICBteSAlc2V0dGluZ3NCeUNvbmRpdGlvbmFsID0gJXsgJHNldHRpbmdzQnlDb25kaXRp
b25hbFJlZiB9OworCisgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgU0VUVElOR1NfSU5JVElBTEla
RVJfTElTVCBcXFxuIjsKKyAgICBmb3IgbXkgJHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXVuY29u
ZGl0aW9uYWxTZXR0aW5ncykgeworICAgICAgICBuZXh0IGlmICRwYXJzZWRJdGVtc3skc2V0dGlu
Z05hbWV9eyJ0eXBlIn0gZXEgImJvb2wiOworICAgICAgICBwcmludEluaXRpYWxpemVyKCRmaWxl
LCAkc2V0dGluZ05hbWUsICRwYXJzZWRJdGVtc1JlZik7CisgICAgfQorICAgIGZvciBteSAkY29u
ZGl0aW9uYWwgKHNvcnQga2V5cyAlc2V0dGluZ3NCeUNvbmRpdGlvbmFsKSB7CisgICAgICAgIG15
ICRwcmVmZXJyZWRDb25kaXRpb25hbCA9ICRJbkNvbXBpbGVyLT5wcmVmZXJyZWRDb25kaXRpb25h
bCgkY29uZGl0aW9uYWwpOworICAgICAgICBwcmludCAkZmlsZSAiICAgICR7cHJlZmVycmVkQ29u
ZGl0aW9uYWx9X1NFVFRJTkdTX05PTl9CT09MX0lOSVRJQUxJWkVSUyBcXFxuIjsKKyAgICB9Cisg
ICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV1bmNvbmRpdGlvbmFsU2V0dGluZ3Mp
IHsKKyAgICAgICAgbmV4dCBpZiAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9IG5l
ICJib29sIjsKKyAgICAgICAgcHJpbnRJbml0aWFsaXplcigkZmlsZSwgJHNldHRpbmdOYW1lLCAk
cGFyc2VkSXRlbXNSZWYpOworICAgIH0KKyAgICBmb3IgbXkgJGNvbmRpdGlvbmFsIChzb3J0IGtl
eXMgJXNldHRpbmdzQnlDb25kaXRpb25hbCkgeworICAgICAgICBteSAkcHJlZmVycmVkQ29uZGl0
aW9uYWwgPSAkSW5Db21waWxlci0+cHJlZmVycmVkQ29uZGl0aW9uYWwoJGNvbmRpdGlvbmFsKTsK
KyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5H
U19CT09MX0lOSVRJQUxJWkVSUyBcXFxuIjsKKyAgICB9CisgICAgcHJpbnQgJGZpbGUgIi8vIEVu
ZCBvZiBTRVRUSU5HU19JTklUSUFMSVpFUl9MSVNULlxuXG4iOworfQorCitzdWIgcHJpbnRJbml0
aWFsaXplcigkJCQpCit7CisgICAgbXkgKCRmaWxlLCAkc2V0dGluZ05hbWUsICRwYXJzZWRJdGVt
c1JlZikgPSBAXzsKKyAgICBteSAlcGFyc2VkSXRlbXMgPSAleyAkcGFyc2VkSXRlbXNSZWYgfTsK
KworICAgIG15ICRpbml0aWFsVmFsdWUgPSAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsiaW5p
dGlhbCJ9OworICAgIG15ICR0eXBlID0gJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUi
fTsKKyAgICBkaWUgIk11c3QgcHJvdmlkZSBhbiBpbml0aWFsIHZhbHVlIGZvciAkc2V0dGluZ05h
bWUuIiBpZiAoJGluaXRpYWxWYWx1ZSBlcSAnJyAmJiBsYyhzdWJzdHIoJHR5cGUsIDAsIDEpKSBl
cSBzdWJzdHIoJHR5cGUsIDAsIDEpKTsKKyAgICByZXR1cm4gaWYgKCRpbml0aWFsVmFsdWUgZXEg
JycpOworICAgIHByaW50ICRmaWxlICIgICAgLCBtXyRzZXR0aW5nTmFtZSgkaW5pdGlhbFZhbHVl
KSBcXFxuIgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZSBi
L1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKaW5kZXggOWJhOTg4ZjllZTE1MDY2ZDA4
NDcyNDYxMDAzMGZmMGMwYjUzZWZmNS4uYzgxMzhhOTZhYmIxOTQwNzMzZWRhZTgyNTllNGExMDBk
ZjZmYjhlNiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQorKysg
Yi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCkBAIC05Niw2ICs5NiwxOCBAQCBNQUNS
TyAoR0VORVJBVEVfRVhDRVBUSU9OX0NPREVfREVTQ1JJUFRJT04gX2luZmlsZSBfb3V0ZmlsZSkK
IEVORE1BQ1JPICgpCiAKIAorTUFDUk8gKEdFTkVSQVRFX1NFVFRJTkdTX01BQ1JPUyBfaW5maWxl
IF9vdXRmaWxlKQorICAgIFNFVChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vcGFnZS9t
YWtlX3NldHRpbmdzLnBsKQorCisgICAgQUREX0NVU1RPTV9DT01NQU5EKAorICAgICAgICBPVVRQ
VVQgICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19vdXRmaWxlfQorICAgICAgICBN
QUlOX0RFUEVOREVOQ1kgJHtfaW5maWxlfQorICAgICAgICBERVBFTkRTICR7TkFNRVNfR0VORVJB
VE9SfSAke1NDUklQVFNfQklORElOR1N9CisgICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFC
TEV9IC1JJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cyAke05BTUVTX0dFTkVSQVRPUn0g
LS1pbnB1dCAke19pbmZpbGV9IC0tb3V0cHV0RGlyICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVf
RElSfQorICAgICAgICBWRVJCQVRJTSkKK0VORE1BQ1JPICgpCisKKwogTUFDUk8gKEdFTkVSQVRF
X0RPTV9OQU1FUyBfbmFtZXNwYWNlIF9hdHRycykKICAgICBTRVQoTkFNRVNfR0VORVJBVE9SICR7
V0VCQ09SRV9ESVJ9L2RvbS9tYWtlX25hbWVzLnBsKQogICAgIFNFVChfYXJndW1lbnRzICAtLWF0
dHJzICR7X2F0dHJzfSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBkZTVkNjE5NDY4YWMxM2MzYzFlZmJmMTVkYTgyN2M1ZDg2OTAzMzI0Li4yNjY1
MGM2MmJmYWJkZTE4YjU0M2EwNDQ4OWZhYjg1ODAwZDQzMWZkIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTEt
MTIgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBHZW5lcmF0ZSBT
ZXR0aW5ncyBmcm9tIGEgLmluIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMDM5MworCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
CisKKyAgICAgICAgQWRkIHRoZSBnZW5lcmF0ZWQgV2ViQ29yZSBmaWxlcyB0byB0aGUgaW5jbHVk
ZSBkaXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQ6CisKIDIwMTItMTEtMTMgIERpbWl0
cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTM0NDQ5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9D
TWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKaW5kZXgg
MTYzZWRjNzUzYjczZjRkMDViZjdhNGVjMjFlOWZmYjA1YmZhNzU3Zi4uNzAwMWMxODQ1MjQxODQ0
MTIyYzdjY2FiOGQ5MTQ0YzE5YWI5M2NhYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0
CkBAIC0zLDYgKzMsNyBAQCBTRVQoVEVTVFdFQktJVEFQSV9ESVIgIiR7VE9PTFNfRElSfS9UZXN0
V2ViS2l0QVBJIikKIElOQ0xVREVfRElSRUNUT1JJRVMoJHtDTUFLRV9CSU5BUllfRElSfQogICAg
ICR7VEVTVFdFQktJVEFQSV9ESVJ9CiAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UKKyAg
ICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KICAgICAke0RFUklWRURfU09VUkNFU19X
RUJLSVQyX0RJUn0vaW5jbHVkZQogICAgICR7SkFWQVNDUklQVENPUkVfRElSfQogICAgICR7SkFW
QVNDUklQVENPUkVfRElSfS9BUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Q01ha2VMaXN0cy50eHQgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDJkN2Q1MGU2YzBhN2NhZTIzZjE3YTM5Yjg2Y2ZhN2Y4NmViZGQzNjYuLjg0NDA0ZTg0ODRm
YTI4YmU3YzYxMTE2YmQxNmRjZmEwYjdkNTkyNWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFr
ZUxpc3RzLnR4dApAQCAtNDAsNiArNDAsNyBAQCBTRVQoV2ViS2l0VGVzdFJ1bm5lcl9JTkNMVURF
X0RJUkVDVE9SSUVTCiAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL2VmbAogICAg
ICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9zb3VwCiAgICAgJHtXVEZfRElSfQorICAg
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfQogICAgICR7REVSSVZFRF9TT1VSQ0VTX1dF
QkNPUkVfRElSfS9pbmNsdWRlCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L2lu
Y2x1ZGUKICAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L0luamVjdGVkQnVuZGxlCmRpZmYgLS1n
aXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggNTZhNDk5M2E2ZTQ5OGJkODU3ZjU3MjQ0
Mjg0NjcyOTUwMWQxNDRiZS4uN2FiM2VjYTU3ZWU1N2EyMTg2ZTk0OWE4ZDY5NzNjYWJmMzUyNjc1
OCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTExLTEyICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
R2VuZXJhdGUgU2V0dGluZ3MgZnJvbSBhIC5pbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgorCisgICAgICAgIEdlbmVyYXRlIFNldHRpbmdzTWFjcm9zLmggZm9yIGNtYWtl
LgorCisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZToKKwogMjAxMi0x
MS0xMyAgSHVnbyBQYXJlbnRlIExpbWEgIDxodWdvLmxpbWFAb3BlbmJvc3NhLm9yZz4KIAogICAg
ICAgICBGaW5kR0xJQi5jbWFrZSBmYWlscyBkbyBmaW5kIGdsaWIgZ21vZHVsZSBtb2R1bGUuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174191</attachid>
            <date>2012-11-14 10:17:23 -0800</date>
            <delta_ts>2012-11-15 13:41:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100393-20121114101522.patch</filename>
            <type>text/plain</type>
            <size>102272</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzhjMTcyOTU5NThjMTU1
MjEwYjM5Y2MyMmJmOTJhYjY4Yzg0NjMxNC4uZjdjZWI2ZmFiYjM5YTM2ZDhjZjgzN2EzZTU3NzM3
Mjk5YzJkZTVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTExLTE0ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2VuZXJhdGUgU2V0dGluZ3Mg
ZnJvbSBhIC5pbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAg
ICAgIEdlbmVyYXRlIG1vc3Qgc2V0dGluZ3MgZnJvbSBhbiAuaW4gZmlsZSB0byByZWR1Y2UgaHVt
YW4gbWlzdGFrZXMgYW5kCisgICAgICAgIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGFkZC9yZW1vdmUg
bmV3IHNldHRpbmdzLgorCisgICAgICAgIEkgb25seSBtb3ZlZCBzZXR0aW5ncyB0aGF0IGFyZSBl
YXN5IHRvIG1vdmUgYXQgdGhpcyBwb2ludC4gIFRoZXJlIGFyZSBtYW55IG1vcmUgdGhhdAorICAg
ICAgICBoYXZlIHNvbWUgbWlub3IgbmFtaW5nIGluY29uc2lzdGVuY2llcyB0aGF0IHdlIGNhbiBh
bHNvIG1vdmUgdG8gU2V0dGluZ3MuaW4sIGJ1dCBJJ2xsCisgICAgICAgIGRvIHRoYXQgaW4gYSBm
b2xsb3cgdXAgcGF0Y2guCisKKyAgICAgICAgVGhpcyBkb2Vzbid0IGdlbmVyYXRlIFNldHRpbmdJ
bnRlcm5hbHMuKiB5ZXQtLSB3ZSBjYW4gZG8gdGhhdCBpbiBhIGZvbGxvdyB1cCBwYXRjaC4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMgYSByZWZhY3Rvci4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IFJ1biBtYWtlX3Nl
dHRpbmdzLnBsLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnByaTogUnVuIG1ha2Vfc2V0dGlu
Z3MucGwuCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IFJ1biBtYWtlX3NldHRpbmdzLnBsLgor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5leHAuaW46
IFJlbW92ZSBmdW5jdGlvbnMgdGhhdCBhcmUgbm93IGlubGluZSBpbiB0aGUgaGVhZGVyLgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOiBSdW4gYWN0aW9uX21ha2VuYW1lcy5weSwg
d2hpY2ggd2lsbCBydW4gbWFrZV9zZXR0aW5ncy5wbC4KKyAgICAgICAgKiBXZWJDb3JlLmd5cC9z
Y3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHk6CisgICAgICAgIChtYWluKTogQWxsb3cgbWFrZV9z
ZXR0aW5ncy5wbC4KKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOiBSZW1vdmUgZnVuY3Rpb25zIHRo
YXQgYXJlIG5vdyBpbmxpbmUgaW4gdGhlIGhlYWRlci4KKyAgICAgICAgKiBodG1sL1ZhbGlkYXRp
b25NZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25NZXNzYWdlOjpzZXRN
ZXNzYWdlRE9NQW5kU3RhcnRUaW1lcik6IEZpeCBhIHR5cG8gaW4gIm1hZ25pZmljYXRpb24iLgor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6
OlNldHRpbmdzKTogUmVwbGFjZSBnZW5lcmF0ZWQgc2V0dGluZ3Mgd2l0aCBTRVRUSU5HU19JTklU
SUFMSVpFUl9MSVNULgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFNldHRp
bmdzKTogUmVwbGFjZSBnZW5lcmF0ZWQgc2V0dGluZ3Mgd2l0aCBTRVRUSU5HU19HRVRURVJTX0FO
RF9TRVRURVJTIGFuZCBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTLgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuaW46IEFkZGVkLgorICAgICAgICAqIHBhZ2UvbWFrZV9zZXR0aW5ncy5wbDogQWRk
ZWQuCisgICAgICAgIChkZWZhdWx0SXRlbUZhY3RvcnkpOgorICAgICAgICAoZ2VuZXJhdGVDb2Rl
KToKKyAgICAgICAgKGdlbmVyYXRlSGVhZGVyKTogVXNlIGEgc2ltaWxhciBtb2RlbCBhcyBtYWtl
X25hbWVzLnBsLgorICAgICAgICAocHJpbnRDb25kaXRpb25hbE1hY3Jvcyk6CisgICAgICAgIChw
cmludEdldHRlcnNBbmRTZXR0ZXJzKToKKyAgICAgICAgKHByaW50TWVtYmVyVmFyaWFibGVzKToK
KyAgICAgICAgKHByaW50R2V0dGVyQW5kU2V0dGVyKToKKyAgICAgICAgKHByaW50SW5pdGlhbGl6
ZXJMaXN0KToKKyAgICAgICAgKHByaW50SW5pdGlhbGl6ZXIpOgorCiAyMDEyLTExLTE0ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtRdF0gVXNl
IGEgbm9kZSBpbWFnZSBpZiB0aGVyZSBpcyBubyBkcmFnIGltYWdlIHNldCBmb3IgRHJhZyZEcm9w
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGYzZDg2YTIxYjBmNTg3MWU0NmY2YTJlZjdmYmI1MjVl
NmU5OTdkYzMuLmUwYzM1NWE2ZmNjNjMxZTVhODUyZDZkOTQ1ODZkNDdmYzMwYTc4MTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0yODk1LDYgKzI4OTUsMTAgQEAgR0VORVJBVEVfRVhDRVBUSU9O
X0NPREVfREVTQ1JJUFRJT04oJHtXRUJDT1JFX0RJUn0vZG9tL0RPTUV4Y2VwdGlvbnMuaW4gRXhj
ZXB0aW8KIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJD
T1JFX0RJUn0vRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uLmNwcCkKIAogCitHRU5FUkFURV9TRVRU
SU5HU19NQUNST1MoJHtXRUJDT1JFX0RJUn0vcGFnZS9TZXR0aW5ncy5pbiBTZXR0aW5nc01hY3Jv
cy5oKQorTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS9TZXR0aW5nc01hY3Jvcy5oKQorCisKIEdFTkVSQVRFX0ZPTlRfTkFNRVMoJHtXRUJD
T1JFX0RJUn0vY3NzL1dlYktpdEZvbnRGYW1pbHlOYW1lcy5pbikKIExJU1QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vV2ViS2l0Rm9udEZhbWls
eU5hbWVzLmNwcCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNGM2NGM4OTUx
YmFkNmNiNzA0YzUwZWZlYjAzOWIwODUyMzg1YTA4NC4uZmRmMGUxZTg2Y2NlNWZlNWY1YmYwMTM3
NWJkZjk2MDNmMmM1MTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC05MjUs
NiArOTI1LDEzIEBAIE1hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcCBNYXRoTUxOYW1lcy5jcHAgOiBk
b20vbWFrZV9uYW1lcy5wbCBtYXRobWwvbWF0aHRhZ3MuaW4KIAogIyAtLS0tLS0tLQogCithbGwg
OiBTZXR0aW5nc01hY3Jvcy5oCisKK1NldHRpbmdzTWFjcm9zLmggOiBwYWdlL21ha2Vfc2V0dGlu
Z3MucGwgcGFnZS9TZXR0aW5ncy5pbgorCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3Jp
cHRzICQ8IC0taW5wdXQgJChXZWJDb3JlKS9wYWdlL1NldHRpbmdzLmluCisKKyMgLS0tLS0tLS0K
KwogIyBDb21tb24gZ2VuZXJhdG9yIHRoaW5ncwogCiBHRU5FUkFURV9TQ1JJUFRTID0gXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IDlmNjllZjQzYzVkMjNmNzJmOWQwZmI5ZDBmZjM1
YjRlYWNlNTg1Y2UuLjkzZWViMjQ3NGU2OGIwYWI1NzNjMDJhZDU2ODI2ZjlmNjY2ZGY3OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTQ3LDYgKzQ3LDggQEAgRVZFTlRfVEFSR0VU
X0ZBQ1RPUlkgPSAkJFBXRC9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCiAKIERPTV9FWENFUFRJ
T05TID0gJCRQV0QvZG9tL0RPTUV4Y2VwdGlvbnMuaW4KIAorU0VUVElOR1NfTUFDUk9TID0gJCRQ
V0QvcGFnZS9TZXR0aW5ncy5pbgorCiBDT0xPUkRBVEFfR1BFUkYgPSAkJFBXRC9wbGF0Zm9ybS9D
b2xvckRhdGEuZ3BlcmYKIAogV0FMRE9DU1NQUk9QUyA9ICQkUFdEL2Nzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluCkBAIC04NjcsNiArODY5LDE0IEBAIGV4Y2VwdGlvbmNvZGVkZXNjcmlwdGlvbi5jb21t
YW5kcyA9IHBlcmwgLUkkJFBXRC9iaW5kaW5ncy9zY3JpcHRzICQkZXhjZXB0aW9uY29kCiBleGNl
cHRpb25jb2RlZGVzY3JpcHRpb24uZGVwZW5kcyA9ICQkUFdEL2RvbS9tYWtlX2RvbV9leGNlcHRp
b25zLnBsICQkRE9NX0VYQ0VQVElPTlMKIEdFTkVSQVRPUlMgKz0gZXhjZXB0aW9uY29kZWRlc2Ny
aXB0aW9uCiAKKyMgR0VORVJBVE9SIDUtSDoKK3NldHRpbmdzbWFjcm9zLm91dHB1dCA9IFNldHRp
bmdzTWFjcm9zLmgKK3NldHRpbmdzbWFjcm9zLmlucHV0ID0gU0VUVElOR1NfTUFDUk9TCitzZXR0
aW5nc21hY3Jvcy5zY3JpcHQgPSAkJFBXRC9wYWdlL21ha2Vfc2V0dGluZ3MucGwKK3NldHRpbmdz
bWFjcm9zLmNvbW1hbmRzID0gcGVybCAtSSQkUFdEL2JpbmRpbmdzL3NjcmlwdHMgJCRzZXR0aW5n
c21hY3Jvcy5zY3JpcHQgLS1pbnB1dCAkJFNFVFRJTkdTX01BQ1JPUyAtLW91dHB1dERpciAke1FN
QUtFX0ZVTkNfRklMRV9PVVRfUEFUSH0KK3NldHRpbmdzbWFjcm9zLmRlcGVuZHMgPSAkJFBXRC9w
YWdlL21ha2Vfc2V0dGluZ3MucGwgJCRTRVRUSU5HU19NQUNST1MKK0dFTkVSQVRPUlMgKz0gc2V0
dGluZ3NtYWNyb3MKKwogIyBHRU5FUkFUT1IgOC1BOgogZW50aXRpZXMub3V0cHV0ID0gSFRNTEVu
dGl0eVRhYmxlLmNwcAogZW50aXRpZXMuaW5wdXQgPSBIVE1MX0VOVElUSUVTCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IDM1NmRlZGY2NTQ5YjJjNTM3ZTY1ZWZlMzU5NTIzMzZkZTc2YmNkMTAuLmFm
ODQ5NWY1NGZiMzkxNTdlMTFkOTRlNGUwNjY0YjJkNTMyYWVhYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCkBAIC01MDQsNiArNTA0LDkgQEAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FdmVudFRhcmdl
dEhlYWRlcnMuaCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0V2ZW50VGFyZ2V0SW4KIERlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uLmNwcCBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0V4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbi5oIERlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvRXhjZXB0aW9uSGVhZGVycy5oIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXhjZXB0aW9uSW50
ZXJmYWNlcy5oOiAkKFdlYkNvcmUpL2RvbS9tYWtlX2RvbV9leGNlcHRpb25zLnBsICQoV2ViQ29y
ZSkvZG9tL0RPTUV4Y2VwdGlvbnMuaW4KIAkkKEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUp
L2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1pbnB1dCAkKFdlYkNvcmUpL2RvbS9ET01FeGNlcHRpb25z
LmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNfV0VCQ09SRSkiCiAKK0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvU2V0dGluZ3NNYWNyb3MuaDogJChXZWJDb3JlKS9wYWdlL21ha2Vfc2V0dGluZ3Mu
cGwgJChXZWJDb3JlKS9wYWdlL1NldHRpbmdzLmluCisJJChBTV9WX0dFTikkKFBFUkwpIC1JJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0taW5wdXQgJChXZWJDb3JlKS9wYWdlL1NldHRp
bmdzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNfV0VCQ09SRSkiCisKICMgQWxsIFdlYiBJ
bnNwZWN0b3IgZ2VuZXJhdGVkIGZpbGVzIGFyZSBjcmVhdGVkIHdpdGggdGhpcyBvbmUgY2FsbCB0
byBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5CiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0luc3Bl
Y3RvclByb3RvY29sVmVyc2lvbi5oIDogJChXZWJDb3JlKS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpz
b24gJChXZWJDb3JlKS9pbnNwZWN0b3IvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLXZlcnNp
b24KIAkkKEFNX1ZfR0VOKSQoUFlUSE9OKSAkKFdlYkNvcmUpL2luc3BlY3Rvci9nZW5lcmF0ZS1p
bnNwZWN0b3ItcHJvdG9jb2wtdmVyc2lvbiAtbyAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvSW5zcGVj
dG9yUHJvdG9jb2xWZXJzaW9uLmggJChXZWJDb3JlKS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24K
QEAgLTgwNyw2ICs4MTAsOCBAQCBFWFRSQV9ESVNUICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9tYWtl
LWhhc2gtdG9vbHMucGwgXAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRoYXR0cnMuaW4gXAog
CVNvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRodGFncy5pbiBcCisJU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWtlX3NldHRpbmdzLnBsIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYgXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvbWFjL21ha2UtY2hhcnNldC10YWJsZS5wbCBcCiAJU291cmNlL1dl
YkNvcmUvc3ZnL3N2Z2F0dHJzLmluIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IDViZjFmMjFjNjkxNjk1ZmNiZTYyYTQzMjUyMTNjY2M0ZDQzZjgyYjIuLjgzOGUwNWFlNjQxYTNl
MTc0NjJjMTI4MTgwZmVkNDNjNTYxNWZkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtMTE0Nyw2ICsxMTQ3LDcgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL01hdGhNTEVsZW1lbnRGYWN0b3J5LmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvTWF0aE1MTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL01h
dGhNTE5hbWVzLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU2V0dGluZ3NNYWNyb3MuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9TVkdFbGVtZW50RmFjdG9yeS5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvU1ZHTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1VzZXJBZ2VudEd0ay5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYmFjNmFhYTMyOGI3YWU2
MGVhOGVkZWFlZGQzMGQ1ODZiODFjYTcxYy4uMGI2NWU4NmNhMmIxMWM3ZjA4MmU2MWQ2YzI2OTQz
MDFjYjdiMzAwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTkxMyw3ICs5MTMsNiBAQCBfX1pO
N1dlYkNvcmU4R3JhZGllbnQxMmFkZENvbG9yU3RvcEVmUktOU181Q29sb3JFCiBfX1pON1dlYkNv
cmU4R3JhZGllbnRDMUVSS05TXzEwRmxvYXRQb2ludEVTM18KIF9fWk43V2ViQ29yZThQb3NpdGlv
bkMxRU4zV1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFaU5TMF8xMEFuY2hvclR5cGVFCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MxNHNldEphdmFFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5n
czE1c2V0V2ViR0xFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczE2c2V0SW1hZ2VzRW5h
YmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MxNnNldFNjcmlwdEVuYWJsZWRFYgogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMTZzZXRVc2VzUGFnZUNhY2hlRWIKQEAgLTkyMyw3NyArOTIyLDM5IEBA
IF9fWk43V2ViQ29yZThTZXR0aW5nczE4c2V0RGVmYXVsdEZvbnRTaXplRWkKIF9fWk43V2ViQ29y
ZThTZXR0aW5nczE4c2V0Rml4ZWRGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0UxMVVT
Y3JpcHRDb2RlCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MxOHNldE1pbmltdW1Gb250U2l6ZUVpCiBf
X1pON1dlYkNvcmU4U2V0dGluZ3MxOHNldFNlcmlmRm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNT
dHJpbmdFMTFVU2NyaXB0Q29kZQotX19aTjdXZWJDb3JlOFNldHRpbmdzMThzZXRXZWJBdWRpb0Vu
YWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMTltaW5ET01UaW1lckludGVydmFsRXYKIF9f
Wk43V2ViQ29yZThTZXR0aW5nczE5c2V0U2hvd0RlYnVnQm9yZGVyc0ViCiBfX1pON1dlYkNvcmU4
U2V0dGluZ3MyMHNldEN1cnNpdmVGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0UxMVVT
Y3JpcHRDb2RlCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMHNldEZhbnRhc3lGb250RmFtaWx5RVJL
TjNXVEYxMkF0b21pY1N0cmluZ0UxMVVTY3JpcHRDb2RlCi1fX1pON1dlYkNvcmU4U2V0dGluZ3My
MHNldFhTU0F1ZGl0b3JFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIxbW9ja1Njcm9s
bGJhcnNFbmFibGVkRXYKIF9fWk43V2ViQ29yZThTZXR0aW5nczIxc2V0U2hvd1JlcGFpbnRDb3Vu
dGVyRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIxc2V0U3RhbmRhcmRGb250RmFtaWx5RVJLTjNX
VEYxMkF0b21pY1N0cmluZ0UxMVVTY3JpcHRDb2RlCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNl
dFdlYlNlY3VyaXR5RW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldExvY2FsU3Rv
cmFnZUVuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRNaW5ET01UaW1lckludGVy
dmFsRWQKIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0U2Fuc1NlcmlmRm9udEZhbWlseUVSS04z
V1RGMTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0Q29kZQotX19aTjdXZWJDb3JlOFNldHRpbmdzMjJz
ZXRTZXNzaW9uU3RvcmFnZVF1b3RhRWoKLV9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0U2hvd3NV
UkxzSW5Ub29sVGlwc0ViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldENhcmV0QnJvd3NpbmdF
bmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0RGVmYXVsdEZpeGVkRm9udFNpemVF
aQotX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRFZGl0YWJsZUxpbmtCZWhhdmlvckVOU18yMEVk
aXRhYmxlTGlua0JlaGF2aW9yRQotX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRMb2FkRGVmZXJy
aW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldFBpY3RvZ3JhcGhGb250RmFt
aWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0UxMVVTY3JpcHRDb2RlCi1fX1pON1dlYkNvcmU4U2V0
dGluZ3MyM3NldFVzZXNFbmNvZGluZ0RldGVjdG9yRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI0
c2V0QXBwbGljYXRpb25DaHJvbWVNb2RlRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI0c2V0RE5T
UHJlZmV0Y2hpbmdFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI0c2V0TW9ja1Njcm9s
bGJhcnNFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI0c2V0VXNlc092ZXJsYXlTY3Jv
bGxiYXJzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI0c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5
RU5TXzE0U2VjdXJpdHlPcmlnaW4yMVN0b3JhZ2VCbG9ja2luZ1BvbGljeUUKIF9fWk43V2ViQ29y
ZThTZXR0aW5nczI0c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlRWIKLV9fWk43V2ViQ29yZThTZXR0
aW5nczI1c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3My
NXNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXRN
aW5pbXVtTG9naWNhbEZvbnRTaXplRWkKLV9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0TmVlZHNM
ZW9wYXJkTWFpbFF1aXJrc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNXNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXRTaG91bGRQcmludEJhY2tn
cm91bmRzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI1c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlv
bkVSS05TXzRLVVJMRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjZkZWZhdWx0TWluRE9NVGltZXJJ
bnRlcnZhbEV2Ci1fX1pON1dlYkNvcmU4U2V0dGluZ3MyNnNldERlZmF1bHRUZXh0RW5jb2RpbmdO
YW1lRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlOFNldHRpbmdzMjZzZXROZWVkc1NpdGVT
cGVjaWZpY1F1aXJrc0ViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyN3NldEZUUERpcmVjdG9yeVRl
bXBsYXRlUGF0aEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0SmF2
YUVuYWJsZWRGb3JMb2NhbEZpbGVzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0TG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5RWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0TG9jYWxTdG9y
YWdlRGF0YWJhc2VQYXRoRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjdz
ZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjhzZXRE
T01UaW1lckFsaWdubWVudEludGVydmFsRWQKLV9fWk43V2ViQ29yZThTZXR0aW5nczI4c2V0Rm9y
Y2VGVFBEaXJlY3RvcnlMaXN0aW5nc0ViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyOXNldEFjY2Vs
ZXJhdGVkMmRDYW52YXNFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI5c2V0QXV0aG9y
QW5kVXNlclN0eWxlc0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjlzZXREZWZhdWx0
TWluRE9NVGltZXJJbnRlcnZhbEVkCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyOXNldFdlYkFyY2hp
dmVEZWJ1Z01vZGVFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczMwc2V0QWxsb3dGaWxl
QWNjZXNzRnJvbUZpbGVVUkxzRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczMxc2V0Q2FudmFzVXNl
c0FjY2VsZXJhdGVkRHJhd2luZ0ViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzMXNldEphdmFTY3Jp
cHRDYW5BY2Nlc3NDbGlwYm9hcmRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzFzZXRKYXZhU2Ny
aXB0RXhwZXJpbWVudHNFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczMxc2V0U2hyaW5r
c1N0YW5kYWxvbmVJbWFnZXNUb0ZpdEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMmRlZmF1bHRE
T01UaW1lckFsaWdubWVudEludGVydmFsRXYKIF9fWk43V2ViQ29yZThTZXR0aW5nczMyc2V0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMzJzZXRO
ZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlya0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMnNl
dFNjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczMy
c2V0U2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdz
MzNzZXREb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRp
bmdzMzRzZXRMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkRWIKLV9fWk43V2ViQ29yZThT
ZXR0aW5nczM1c2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNFYgotX19aTjdXZWJD
b3JlOFNldHRpbmdzMzVzZXRFbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZUViCi1fX1pO
N1dlYkNvcmU4U2V0dGluZ3MzNXNldEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkRWIK
LV9fWk43V2ViQ29yZThTZXR0aW5nczM1c2V0VHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hl
ZXRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzZzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNo
ZUVuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMzdzZXRGaXhlZEVsZW1lbnRzTGF5b3V0
UmVsYXRpdmVUb0ZyYW1lRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczM3c2V0U2Nyb2xsaW5nUGVy
Zm9ybWFuY2VMb2dnaW5nRW5hYmxlZEViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNldEphdmFT
Y3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHlFYgotX19aTjdXZWJDb3JlOFNldHRpbmdz
NDBzZXRUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yRU5TXzM3VGV4dERpcmVj
dGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvckUKLV9fWk43V2ViQ29yZThTZXR0aW5nczQxc2V0
TmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3NFYgotX19aTjdXZWJDb3JlOFNl
dHRpbmdzNDRzZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZ0ViCiBf
X1pON1dlYkNvcmU4U2V0dGluZ3M0NXNldFNob3VsZFJlc3BlY3RQcmlvcml0eUluQ1NTQXR0cmli
dXRlU2V0dGVyc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFJlc29sdXRpb25PdmVycmlk
ZUVSS05TXzdJbnRTaXplRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjBzZXRNZWRpYVR5cGVPdmVy
cmlkZUVSS04zV1RGNlN0cmluZ0UKQEAgLTIyNDksNyArMjIxMCw2IEBAIF9fWk5LN1dlYkNvcmUx
NUNvbnRleHRNZW51SXRlbTdlbmFibGVkRXYKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQxNmFubm90
YXRlZFJlZ2lvbnNFdgogI2VuZGlmCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQotX19a
TjdXZWJDb3JlOFNldHRpbmdzNDFzZXRVc2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5
TW9kZUViCiAjZW5kaWYKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cCBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCmluZGV4IDdiZjg0Y2ViMTZmYzRhZGRlMjkwYmUwZDg2ZjUw
ODhjMWYxMjEzMzguLmM3Mzg1NTY5Y2QzN2E2MGZkNzQ0YjY1NGE5N2ZjYWIwNDAyODc5ZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCkBAIC04NzksNiArODc5LDIzIEBA
CiAgICAgICAgICAgXSwKICAgICAgICAgfSwKICAgICAgICAgeworICAgICAgICAgICdhY3Rpb25f
bmFtZSc6ICdTZXR0aW5ncycsCisgICAgICAgICAgJ2lucHV0cyc6IFsKKyAgICAgICAgICAgICcu
Li9wYWdlL21ha2Vfc2V0dGluZ3MucGwnLAorICAgICAgICAgICAgJy4uL3BhZ2UvU2V0dGluZ3Mu
aW4nLAorICAgICAgICAgIF0sCisgICAgICAgICAgJ291dHB1dHMnOiBbCisgICAgICAgICAgICAn
PChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L1NldHRpbmdzTWFjcm9zLmgnLAorICAg
ICAgICAgIF0sCisgICAgICAgICAgJ2FjdGlvbic6IFsKKyAgICAgICAgICAgICdweXRob24nLAor
ICAgICAgICAgICAgJ3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5weScsCisgICAgICAgICAgICAn
PEAoX291dHB1dHMpJywKKyAgICAgICAgICAgICctLScsCisgICAgICAgICAgICAnPEAoX2lucHV0
cyknLAorICAgICAgICAgIF0sCisgICAgICAgIH0sCisgICAgICAgIHsKICAgICAgICAgICAnYWN0
aW9uX25hbWUnOiAnVXNlckFnZW50U3R5bGVTaGVldHMnLAogICAgICAgICAgICd2YXJpYWJsZXMn
OiB7CiAgICAgICAgICAgICAnc2NyaXB0cyc6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5weSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX21ha2VuYW1lcy5weQppbmRleCA5YWZkOGU4ODVl
OTk2YWM1MGU2N2Y4ZWY0MDI5OTM0MTZkNmIxNDVjLi5hMWE0MTBmMWVhNTBjMzE1NDJlYWQ1MWJk
M2FlMDQ2ZTFjNWVjMTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9z
Y3JpcHRzL2FjdGlvbl9tYWtlbmFtZXMucHkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXAvc2NyaXB0cy9hY3Rpb25fbWFrZW5hbWVzLnB5CkBAIC0xMTcsMjIgKzExNywxNyBAQCBkZWYg
bWFpbihhcmdzKToKICAgICAgICAgaW5wdXRBYnMgPSBvcy5wYXRoLmFic3BhdGgoaW5wdXQpCiAg
ICAgICAgIGlucHV0QWJzUG9zaXggPSBpbnB1dEFicy5yZXBsYWNlKG9zLnBhdGguc2VwLCBwb3Np
eHBhdGguc2VwKQogICAgICAgICBpbnB1dEJhc2VuYW1lID0gb3MucGF0aC5iYXNlbmFtZShpbnB1
dCkKLSAgICAgICAgaWYgaW5wdXRCYXNlbmFtZSA9PSAnbWFrZV9uYW1lcy5wbCcgXAotICAgICAg
ICAgICAgb3IgaW5wdXRCYXNlbmFtZSA9PSAnbWFrZV9ldmVudF9mYWN0b3J5LnBsJyBcCi0gICAg
ICAgICAgICBvciBpbnB1dEJhc2VuYW1lID09ICdtYWtlX2RvbV9leGNlcHRpb25zLnBsJzoKKyAg
ICAgICAgaWYgaW5wdXRCYXNlbmFtZSBpbiAoJ21ha2VfbmFtZXMucGwnLCAnbWFrZV9ldmVudF9m
YWN0b3J5LnBsJywgJ21ha2VfZG9tX2V4Y2VwdGlvbnMucGwnLCAnbWFrZV9zZXR0aW5ncy5wbCcp
OgogICAgICAgICAgICAgYXNzZXJ0IG1ha2VOYW1lc0lucHV0ID09IE5vbmUKICAgICAgICAgICAg
IG1ha2VOYW1lc0lucHV0ID0gaW5wdXRBYnMKLSAgICAgICAgZWxpZiBpbnB1dEJhc2VuYW1lLmVu
ZHN3aXRoKCdUYWdOYW1lcy5pbicpIFwKLSAgICAgICAgICAgICBvciBpbnB1dEJhc2VuYW1lLmVu
ZHN3aXRoKCd0YWdzLmluJyk6CisgICAgICAgIGVsaWYgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgn
VGFnTmFtZXMuaW4nKSBvciBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCd0YWdzLmluJyk6CiAgICAg
ICAgICAgICBhc3NlcnQgdGFnSW5wdXQgPT0gTm9uZQogICAgICAgICAgICAgdGFnSW5wdXQgPSBp
bnB1dEFic1Bvc2l4Ci0gICAgICAgIGVsaWYgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgnQXR0cmli
dXRlTmFtZXMuaW4nKSBcCi0gICAgICAgICAgICAgb3IgaW5wdXRCYXNlbmFtZS5lbmRzd2l0aCgn
YXR0cnMuaW4nKToKKyAgICAgICAgZWxpZiBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdBdHRyaWJ1
dGVOYW1lcy5pbicpIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ2F0dHJzLmluJyk6CiAgICAg
ICAgICAgICBhc3NlcnQgYXR0cklucHV0ID09IE5vbmUKICAgICAgICAgICAgIGF0dHJJbnB1dCA9
IGlucHV0QWJzUG9zaXgKLSAgICAgICAgZWxpZiBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdFdmVu
dFRhcmdldEZhY3RvcnkuaW4nKSBcCi0gICAgICAgICAgICBvciBpbnB1dEJhc2VuYW1lLmVuZHN3
aXRoKCdFdmVudE5hbWVzLmluJykgXAotICAgICAgICAgICAgb3IgaW5wdXRCYXNlbmFtZS5lbmRz
d2l0aCgnRE9NRXhjZXB0aW9ucy5pbicpOgorICAgICAgICBlbGlmIChpbnB1dEJhc2VuYW1lLmVu
ZHN3aXRoKCdFdmVudFRhcmdldEZhY3RvcnkuaW4nKSBvciBpbnB1dEJhc2VuYW1lLmVuZHN3aXRo
KCdFdmVudE5hbWVzLmluJykKKyAgICAgICAgICAgIG9yIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgo
J0RPTUV4Y2VwdGlvbnMuaW4nKSBvciBpbnB1dEJhc2VuYW1lLmVuZHN3aXRoKCdTZXR0aW5ncy5p
bicpKToKICAgICAgICAgICAgIGV2ZW50c0lucHV0ID0gaW5wdXRBYnNQb3NpeAogICAgICAgICBl
bGlmIGlucHV0QmFzZW5hbWUuZW5kc3dpdGgoJ05hbWVzLmluJyk6CiAgICAgICAgICAgICBvcHRp
b25zLmFwcGVuZChpbnB1dEFic1Bvc2l4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggN2NiYTNlY2E0
ZTk2Y2NmNzA1MTU5MmQzMDg3MmIzOGEyOThhODJhNS4uZGUxYTYzMTY1ZTRkY2EyM2Y1MTExODM1
OTZjMGQ0NTMwM2RlOWI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRl
cgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC01MjMsNyArNTIzLDYgQEAg
X19aTjNXVEY5SGFzaFRhYmxlSVBON1dlYkNvcmU0UGFnZUVTM19OU18xN0lkZW50aXR5RXh0cmFj
dG9ySVMzX0VFTlNfN1B0ckhhc2hJUzMKIF9fWk4zV1RGOUhhc2hUYWJsZUlQTjdXZWJDb3JlNFBh
Z2VFUzNfTlNfMTdJZGVudGl0eUV4dHJhY3RvcklTM19FRU5TXzdQdHJIYXNoSVMzX0VFTlNfMTBI
YXNoVHJhaXRzSVMzX0VFUzlfRTZleHBhbmRFdgogX19aTjdXZWJDb3JlMTJQbHVnaW5IYWx0ZXJD
MUVOM1dURjEwUGFzc093blB0cklOU18xOFBsdWdpbkhhbHRlckNsaWVudEVFRQogX19aTjdXZWJD
b3JlNFBhZ2UxNnNldENhblN0YXJ0TWVkaWFFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRM
b2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGhFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU1RnJh
bWU2Y3JlYXRlRVBOU180UGFnZUVQTlNfMjFIVE1MRnJhbWVPd25lckVsZW1lbnRFUE5TXzE3RnJh
bWVMb2FkZXJDbGllbnRFCiBfX1pON1dlYkNvcmU1RnJhbWVDMkVQTlNfNFBhZ2VFUE5TXzIxSFRN
TEZyYW1lT3duZXJFbGVtZW50RVBOU18xN0ZyYW1lTG9hZGVyQ2xpZW50RQogX19aTjdXZWJDb3Jl
MTFGcmFtZUxvYWRlckMxRVBOU181RnJhbWVFUE5TXzE3RnJhbWVMb2FkZXJDbGllbnRFCkBAIC0x
NDM0LDQwICsxNDMzLDI0IEBAIF9fWk4zV1RGOUhhc2hUYWJsZUlQTjdXZWJDb3JlOERvY3VtZW50
RVMzX05TXzE3SWRlbnRpdHlFeHRyYWN0b3JJUzNfRUVOU183UHRySGFzCiBfX1pOM1dURjlIYXNo
VGFibGVJUE43V2ViQ29yZThEb2N1bWVudEVTM19OU18xN0lkZW50aXR5RXh0cmFjdG9ySVMzX0VF
TlNfN1B0ckhhc2hJUzNfRUVOU18xMEhhc2hUcmFpdHNJUzNfRUVTOV9FNmV4cGFuZEV2CiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MyM3NldERlZmF1bHRGaXhlZEZvbnRTaXplRWkKIF9fWk43V2ViQ29y
ZThTZXR0aW5nczE4c2V0RGVmYXVsdEZvbnRTaXplRWkKLV9fWk43V2ViQ29yZThTZXR0aW5nczI2
c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWVFUktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmU4
U2V0dGluZ3MyM3NldFVzZXNFbmNvZGluZ0RldGVjdG9yRWIKIF9fWk43V2ViQ29yZThTZXR0aW5n
czIwc2V0RmFudGFzeUZvbnRGYW1pbHlFUktOM1dURjEyQXRvbWljU3RyaW5nRQogX19aTjdXZWJD
b3JlOFNldHRpbmdzMThzZXRGaXhlZEZvbnRGYW1pbHlFUktOM1dURjEyQXRvbWljU3RyaW5nRQot
X19aTjdXZWJDb3JlOFNldHRpbmdzMjhzZXRGb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzRWIKLV9f
Wk43V2ViQ29yZThTZXR0aW5nczI3c2V0RlRQRGlyZWN0b3J5VGVtcGxhdGVQYXRoRVJLTjNXVEY2
U3RyaW5nRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMTRzZXRKYXZhRW5hYmxlZEViCiBfX1pON1dl
YkNvcmU4U2V0dGluZ3MyMHNldEphdmFTY3JpcHRFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0
aW5nczIxc2V0V2ViU2VjdXJpdHlFbmFibGVkRWIKLV9fWk43V2ViQ29yZThTZXR0aW5nczM1c2V0
QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNFYgotX19aTjdXZWJDb3JlOFNldHRpbmdz
MzBzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNFYgotX19aTjdXZWJDb3JlOFNldHRpbmdz
NDBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5RWIKIF9fWk43V2ViQ29y
ZThTZXR0aW5nczE4c2V0TWluaW11bUZvbnRTaXplRWkKIF9fWk43V2ViQ29yZThTZXR0aW5nczI1
c2V0TWluaW11bUxvZ2ljYWxGb250U2l6ZUVpCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MxN3NldFBs
dWdpbnNFbmFibGVkRWIKIF9fWk43V2ViQ29yZTE2QWJzdHJhY3REYXRhYmFzZTE0c2V0SXNBdmFp
bGFibGVFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRMb2NhbFN0b3JhZ2VFbmFibGVkRWIK
LV9fWk43V2ViQ29yZThTZXR0aW5nczM1c2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJs
ZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkRWIK
IF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0U2Fuc1NlcmlmRm9udEZhbWlseUVSS04zV1RGMTJB
dG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MxOHNldFNlcmlmRm9udEZhbWlseUVS
S04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFN0YW5kYXJk
Rm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3My
N3NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseUViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3M0NHNl
dExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nRWIKLV9fWk43V2ViQ29y
ZThTZXR0aW5nczI1c2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kc0ViCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MyNHNldFVzZXNPdmVybGF5U2Nyb2xsYmFyc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3My
NHNldFRleHRBcmVhc0FyZVJlc2l6YWJsZUViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MzMXNldFNo
cmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRF
ZGl0YWJsZUxpbmtCZWhhdmlvckVOU18yMEVkaXRhYmxlTGlua0JlaGF2aW9yRQotX19aTjdXZWJD
b3JlOFNldHRpbmdzNDBzZXRUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yRU5T
XzM3VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvckUKIF9fWk43V2ViQ29yZThT
ZXR0aW5nczE4c2V0RE9NUGFzdGVBbGxvd2VkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczE2c2V0
VXNlc1BhZ2VDYWNoZUViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNob3dzVVJMc0luVG9v
bFRpcHNFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVk
RWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI5c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWRF
YgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRBcHBsaWNhdGlvbkNocm9tZU1vZGVFYgogX19a
TjdXZWJDb3JlOFNldHRpbmdzMjVzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uRVJLTlNfNEtVUkxF
CkBAIC0xNDc1LDMyICsxNDU4LDE2IEBAIF9fWk43V2ViQ29yZTRQYWdlMjl1c2VyU3R5bGVTaGVl
dExvY2F0aW9uQ2hhbmdlZEV2CiBfX1pOSzdXZWJDb3JlNEtVUkwxMHByb3RvY29sSXNFUEtjCiBf
X1pON1dlYkNvcmU4RG9jdW1lbnQxOXVwZGF0ZVBhZ2VVc2VyU2hlZXRFdgogX19aTjdXZWJDb3Jl
OFNldHRpbmdzMzJzZXROZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlya0ViCi1fX1pON1dlYkNv
cmU4U2V0dGluZ3MzNXNldFRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0RWIKLV9fWk43
V2ViQ29yZThTZXR0aW5nczQxc2V0TmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWly
a3NFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXROZWVkc0xlb3BhcmRNYWlsUXVpcmtzRWIK
IF9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0TmVlZHNUaWdlck1haWxRdWlya3NFYgotX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjZzZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrc0ViCi1fX1pON1dlYkNv
cmU4U2V0dGluZ3MyOXNldFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkRWIKLV9fWk43V2ViQ29y
ZThTZXR0aW5nczM0c2V0TG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZEViCi1fX1pON1dl
YkNvcmU4U2V0dGluZ3MzNnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZEViCi1f
X1pON1dlYkNvcmU4U2V0dGluZ3MzMXNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmRFYgot
X19aTjdXZWJDb3JlOFNldHRpbmdzMjBzZXRYU1NBdWRpdG9yRW5hYmxlZEViCi1fX1pON1dlYkNv
cmU4U2V0dGluZ3MzNXNldEVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlRWIKIF9fWk43
V2ViQ29yZThTZXR0aW5nczI0c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkRWIKIF9fWk43V2ViQ29y
ZThTZXR0aW5nczMyc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWRFYgogX19aTjdXZWJD
b3JlOFNldHRpbmdzMjhzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkRWIKLV9fWk43V2ViQ29y
ZThTZXR0aW5nczMxc2V0Q2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZ0ViCiBfX1pON1dlYkNv
cmU4U2V0dGluZ3MxOXNldFNob3dEZWJ1Z0JvcmRlcnNFYgogX19aTjdXZWJDb3JlOFNldHRpbmdz
MjFzZXRTaG93UmVwYWludENvdW50ZXJFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRQbHVn
aW5BbGxvd2VkUnVuVGltZUVqCiBfX1pON1dlYkNvcmU0UGFnZTI3cGx1Z2luQWxsb3dlZFJ1blRp
bWVDaGFuZ2VkRXYKLV9fWk43V2ViQ29yZThTZXR0aW5nczE4c2V0V2ViQXVkaW9FbmFibGVkRWIK
LV9fWk43V2ViQ29yZThTZXR0aW5nczE1c2V0V2ViR0xFbmFibGVkRWIKLV9fWk43V2ViQ29yZThT
ZXR0aW5nczI5c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWRFYgogX19aTjdXZWJDb3JlMjdh
cHBsaWNhdGlvbklzQWRvYmVJbnN0YWxsZXJFdgogX19aTjdXZWJDb3JlTDE5bWFpbkJ1bmRsZUlz
RXF1YWxUb0VSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0TG9hZERl
ZmVycmluZ0VuYWJsZWRFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXRGcmFtZUZsYXR0ZW5p
bmdFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0U3BhdGlhbE5hdmlnYXRpb25F
bmFibGVkRWIKIF9fWk43V2ViQ29yZTIyYXBwbGljYXRpb25Jc0FwcGxlTWFpbEV2CiBfX1pON1dl
YkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMjFzZXREZWZhdWx0T3JpZ2luUXVvdGFFeApA
QCAtMjI4MSw3ICsyMjQ4LDYgQEAgX19aTjdXZWJDb3JlNUZyYW1lOXNjYWxlUGFnZUVmUktOU184
SW50UG9pbnRFCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MTdzZXRTY3JvbGxQb3NpdGlvbkVSS05T
XzhJbnRQb2ludEUKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzE3c2V0U2Nyb2xsUG9zaXRpb25F
UktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcyNXBsYXRmb3JtU2V0U2Ny
b2xsUG9zaXRpb25FUktOU184SW50UG9pbnRFCi1fX1pON1dlYkNvcmU4U2V0dGluZ3M0MXNldFVz
ZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlRWIKIF9fWk43V2ViQ29yZTlGcmFt
ZVRyZWU5Y2xlYXJOYW1lRXYKIF9fWk5LN1dlYkNvcmU0UGFnZTlncm91cE5hbWVFdgogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjJzZXRNaW5ET01UaW1lckludGVydmFsRWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2YzRhMjI3ZTdm
NzkwNjJjNjFmZmZiOTRlNWQ3MzdkMGRiM2Y1ZjI5Li5jYTRjMWRlMTY0YzkyM2YxNjBjMzhlMDFm
ZDU3OTZmMTYzNWUwYjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjYzLDYgKzE2NjMsOCBAQAogCQk1MzE3NjEyMzEzQzUx
NjY5MDAyNkU0NTQgLyogU3R5bGVGbGV4aWJsZUJveERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMTc2MTIxMTNDNTE2NjkwMDI2RTQ1NCAvKiBT
dHlsZUZsZXhpYmxlQm94RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTUzQzgyOThEMTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJGbGV4aWJs
ZUJveC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
M0M4Mjk4QjEzRDhEOTI3MDBERTJERUIgLyogUmVuZGVyRmxleGlibGVCb3guY3BwICovOyB9Owog
CQk1M0M4Mjk4RTEzRDhEOTI3MDBERTJERUIgLyogUmVuZGVyRmxleGlibGVCb3guaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzQzgyOThDMTNEOEQ5Mjcw
MERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJveC5oICovOyB9OworCQk1M0VGNzY2QjE2NTMwQTYx
MDA0Q0JFNDkgLyogU2V0dGluZ3NNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUzRUY3NjZBMTY1MzBBNjEwMDRDQkU0OSAvKiBTZXR0aW5nc01h
Y3Jvcy5oICovOyB9OworCQk1M0VGNzY2QzE2NTMxOTk0MDA0Q0JFNDkgLyogU2V0dGluZ3NNYWNy
b3MuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUzRUY3NjZBMTY1MzBBNjEwMDRDQkU0OSAvKiBTZXR0aW5nc01hY3Jvcy5oICov
OyB9OwogCQk1NTBBMEJDOTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTBBMEJDNzA4NUY2
MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi87IH07CiAJCTU1MEEwQkNBMDg1RjYw
MzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVk
TmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTU3MEI3OEJGMTY1MENFODEwMDFEQkUxQiAvKiBTZWxlY3RSdWxlRmVhdHVyZVNldC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBCNzhCRDE2NTBD
RTgxMDAxREJFMUIgLyogU2VsZWN0UnVsZUZlYXR1cmVTZXQuY3BwICovOyB9OwpAQCAtNjY1OSw2
ICs2NjYxLDcgQEAKIAkJCWRzdFBhdGggPSBWZXJzaW9ucy9BL1ByaXZhdGVIZWFkZXJzOwogCQkJ
ZHN0U3ViZm9sZGVyU3BlYyA9IDE7CiAJCQlmaWxlcyA9ICgKKwkJCQk1M0VGNzY2QzE2NTMxOTk0
MDA0Q0JFNDkgLyogU2V0dGluZ3NNYWNyb3MuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
LAogCQkJCTVERjdGNUMyMEYwMUY5MkEwMDUyNkI0QiAvKiBDU1NQcm9wZXJ0eU5hbWVzLmggaW4g
Q29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQk4NTM4RjAzMDBBRDcxQ0RCMDA2QTgxRDEg
LyogRE9NQWJzdHJhY3RWaWV3LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQkx
QzExQ0NCQzBBQTYwOTM3MDBEQURCMjAgLyogRE9NQXR0ci5oIGluIENvcHkgR2VuZXJhdGVkIEhl
YWRlcnMgKi8sCkBAIC04ODk0LDYgKzg4OTcsNyBAQAogCQk1MzE3NjEyMTEzQzUxNjY5MDAyNkU0
NTQgLyogU3R5bGVGbGV4aWJsZUJveERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gU3R5bGVGbGV4aWJsZUJveERhdGEuaDsgcGF0aCA9IHN0eWxlL1N0eWxlRmxleGlibGVC
b3hEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzQzgyOThCMTNEOEQ5Mjcw
MERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW5kZXJGbGV4aWJsZUJveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUzQzgyOThDMTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJveC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJGbGV4aWJsZUJveC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1M0VGNzY2QTE2NTMwQTYxMDA0Q0JFNDkgLyog
U2V0dGluZ3NNYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2V0dGlu
Z3NNYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTUwQTBCQzcwODVGNjAz
OTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUXVhbGlmaWVkTmFtZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTBBMEJD
ODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NzBCNzhC
RDE2NTBDRTgxMDAxREJFMUIgLyogU2VsZWN0UnVsZUZlYXR1cmVTZXQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VsZWN0UnVsZUZlYXR1cmVTZXQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU2MjEsNiArMTU2MjUsNyBAQAogCQkJCTQ0QTI4
QUFCMTJERkI4QUMwMEFFOTIzQiAvKiBNYXRoTUxFbGVtZW50RmFjdG9yeS5oICovLAogCQkJCUZB
QkU3MkZDMTA1OUMyMTEwMEQ5OTlERCAvKiBNYXRoTUxOYW1lcy5jcHAgKi8sCiAJCQkJNDRBMjhB
QUUxMkRGQjhCRjAwQUU5MjNCIC8qIE1hdGhNTE5hbWVzLmggKi8sCisJCQkJNTNFRjc2NkExNjUz
MEE2MTAwNENCRTQ5IC8qIFNldHRpbmdzTWFjcm9zLmggKi8sCiAJCQkJNjU2NTgxRTYwOUQxNTA4
RDAwMEU2MUQ3IC8qIFNWR0VsZW1lbnRGYWN0b3J5LmNwcCAqLywKIAkJCQk2NTY1ODFFNzA5RDE1
MDhEMDAwRTYxRDcgLyogU1ZHRWxlbWVudEZhY3RvcnkuaCAqLywKIAkJCQk2NTY1ODFFODA5RDE1
MDhEMDAwRTYxRDcgLyogU1ZHTmFtZXMuY3BwICovLApAQCAtMjU3MjEsNiArMjU3MjYsNyBAQAog
CQkJCTE0MTFEQ0IxMTY0QzM5QTgwMEQ0OUJDMSAvKiBXaWR0aENhY2hlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1NzBCNzhDMDE2NTBDRTgxMDAxREJFMUIgLyogU2VsZWN0UnVsZUZlYXR1cmVTZXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFFNTAwODQ3MTY1MTZBRDgwMEI3RTA5OCAvKiBSZW5kZXJU
aGVtZU1hY1NoYXJlZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTNFRjc2NkIxNjUzMEE2MTAwNENC
RTQ5IC8qIFNldHRpbmdzTWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKaW5kZXggNjFhMTY0MThmY2YxMjcxMTI2MGM2NTM3NzU3
OWY2N2QxMzZiODVhOC4uNTNlYzdlNDM4MzU4MGQ4YWJkMGJkOGJkZWM5OGUxMmQ1Y2E4MmYyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTEzOSw3ICsx
MzksNyBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpzZXRNZXNzYWdlRE9NQW5kU3RhcnRUaW1l
cihUaW1lcjxWYWxpZGF0aW9uTWVzc2FnZT4qKQogICAgICAgICAgICAgbV9tZXNzYWdlSGVhZGlu
Zy0+c2V0SW5uZXJUZXh0KGxpbmVzW2ldLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICB9CiAK
LSAgICBpbnQgbWFnbmlmaWNhdGlvbiA9IGRvYy0+cGFnZSgpID8gZG9jLT5wYWdlKCktPnNldHRp
bmdzKCktPnZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWdpbmlmaWNhdGlvbigpIDogLTE7CisgICAg
aW50IG1hZ25pZmljYXRpb24gPSBkb2MtPnBhZ2UoKSA/IGRvYy0+cGFnZSgpLT5zZXR0aW5ncygp
LT52YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbigpIDogLTE7CiAgICAgaWYgKG1h
Z25pZmljYXRpb24gPD0gMCkKICAgICAgICAgbV90aW1lci5jbGVhcigpOwogICAgIGVsc2Ugewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBjZTc2NjlhNmQ3ZjA4MzhiZmEwZmE2ZWRhZTIx
MWQxMzJlZDJjODRmLi5kMjRhMWMwOWJiNjkxZDVlOTQxNDg0N2RiZmYzYzRlZDg4NWVlYjJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTI5LDIzICsxMjksMTEgQEAgc3RhdGljIGNv
bnN0IGRvdWJsZSBkZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJ
blNlY29uZHMgPSA1OwogU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgOiBtX3Bh
Z2UoMCkKICAgICAsIG1fbWVkaWFUeXBlT3ZlcnJpZGUoInNjcmVlbiIpCi0gICAgLCBtX2VkaXRh
YmxlTGlua0JlaGF2aW9yKEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcikKLSAgICAsIG1fdGV4
dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcihUZXh0RGlyZWN0aW9uU3VibWVudUF1
dG9tYXRpY2FsbHlJbmNsdWRlZCkKLSAgICAsIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29u
ZHMoMSkKICAgICAsIG1fbWluaW11bUZvbnRTaXplKDApCiAgICAgLCBtX21pbmltdW1Mb2dpY2Fs
Rm9udFNpemUoMCkKICAgICAsIG1fZGVmYXVsdEZvbnRTaXplKDApCiAgICAgLCBtX2RlZmF1bHRG
aXhlZEZvbnRTaXplKDApCiAgICAgLCBtX3NjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkKHRy
dWUpCi0gICAgLCBtX3ZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKDUwKQotICAg
ICwgbV9taW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUoMjU3ICogMjU2KQotICAgICwgbV9s
YXlvdXRGYWxsYmFja1dpZHRoKDk4MCkKLSAgICAsIG1fbWF4aW11bURlY29kZWRJbWFnZVNpemUo
bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpCi0gICAgLCBtX2RldmljZVdpZHRoKDApCi0g
ICAgLCBtX2RldmljZUhlaWdodCgwKQotICAgICwgbV9zZXNzaW9uU3RvcmFnZVF1b3RhKFN0b3Jh
Z2VNYXA6Om5vUXVvdGEpCi0gICAgLCBtX2VkaXRpbmdCZWhhdmlvclR5cGUoZWRpdGluZ0JlaGF2
aW9yVHlwZUZvclBsYXRmb3JtKCkpCi0gICAgLCBtX21heGltdW1IVE1MUGFyc2VyRE9NVHJlZURl
cHRoKGRlZmF1bHRNYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCkKICAgICAsIG1fc3RvcmFn
ZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2UpCiAjaWYgRU5B
QkxFKFRFWFRfQVVUT1NJWklORykKICAgICAsIG1fdGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0
b3IoMSkKQEAgLTE1Niw1OCArMTQ0LDI0IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdl
KQogICAgICwgbV90ZXh0QXV0b3NpemluZ0VuYWJsZWQoZmFsc2UpCiAjZW5kaWYKICNlbmRpZgor
ICAgIFNFVFRJTkdTX0lOSVRJQUxJWkVSX0xJU1QKICAgICAsIG1faXNTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lzSmF2YUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lz
SmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzKHRydWUpCiAgICAgLCBtX2xvYWRzSW1hZ2VzQXV0b21h
dGljYWxseShmYWxzZSkKLSAgICAsIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGlu
Z1NldHRpbmcoZmFsc2UpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQoZmFsc2UpCi0g
ICAgLCBtX2NhcmV0QnJvd3NpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9hcmVJbWFnZXNFbmFi
bGVkKHRydWUpCiAgICAgLCBtX2lzTWVkaWFFbmFibGVkKHRydWUpCiAgICAgLCBtX2FyZVBsdWdp
bnNFbmFibGVkKGZhbHNlKQotICAgICwgbV9sb2NhbFN0b3JhZ2VFbmFibGVkKGZhbHNlKQogICAg
ICwgbV9pc1NjcmlwdEVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lzV2ViU2VjdXJpdHlFbmFibGVk
KHRydWUpCi0gICAgLCBtX2FsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKHRydWUpCi0g
ICAgLCBtX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVlKQotICAgICwgbV9qYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGZhbHNlKQotICAgICwgbV9zdXBwb3J0c011
bHRpcGxlV2luZG93cyh0cnVlKQotICAgICwgbV9qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJk
KGZhbHNlKQotICAgICwgbV9zaG91bGRQcmludEJhY2tncm91bmRzKGZhbHNlKQogICAgICwgbV90
ZXh0QXJlYXNBcmVSZXNpemFibGUoZmFsc2UpCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JU
KQotICAgICwgbV91c2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZShmYWxzZSkK
LSNlbmRpZgogICAgICwgbV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayhmYWxzZSkKLSAg
ICAsIG1fbmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MoZmFsc2UpCi0gICAg
LCBtX3RyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0KGZhbHNlKQotICAgICwgbV9uZWVk
c0xlb3BhcmRNYWlsUXVpcmtzKGZhbHNlKQogICAgICwgbV9pc0RPTVBhc3RlQWxsb3dlZChmYWxz
ZSkKLSAgICAsIG1fc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCh0cnVlKQogICAgICwgbV91
c2VzUGFnZUNhY2hlKGZhbHNlKQotICAgICwgbV9wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoZmFs
c2UpCi0gICAgLCBtX3Nob3dzVVJMc0luVG9vbFRpcHMoZmFsc2UpCi0gICAgLCBtX3Nob3dzVG9v
bFRpcE92ZXJUcnVuY2F0ZWRUZXh0KGZhbHNlKQotICAgICwgbV9mb3JjZUZUUERpcmVjdG9yeUxp
c3RpbmdzKGZhbHNlKQotICAgICwgbV9kZXZlbG9wZXJFeHRyYXNFbmFibGVkKGZhbHNlKQotICAg
ICwgbV9qYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKGZhbHNlKQogICAgICwgbV9hdXRob3JB
bmRVc2VyU3R5bGVzRW5hYmxlZCh0cnVlKQotICAgICwgbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cyhmYWxzZSkKICAgICAsIG1fZm9udFJlbmRlcmluZ01vZGUoMCkKLSAgICAsIG1fZnJhbWVGbGF0
dGVuaW5nRW5hYmxlZChmYWxzZSkKLSNpZiBFTkFCTEUoV0VCX0FSQ0hJVkUpCi0gICAgLCBtX3dl
YkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKGZhbHNlKQotI2VuZGlmCi0gICAgLCBtX2xvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2luQXBwbGljYXRpb25DaHJv
bWVNb2RlKGZhbHNlKQotICAgICwgbV9vZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQo
ZmFsc2UpCi0gICAgLCBtX2VuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlKHRydWUpCi0g
ICAgLCBtX3VzZXNFbmNvZGluZ0RldGVjdG9yKGZhbHNlKQotICAgICwgbV9hbGxvd1NjcmlwdHNU
b0Nsb3NlV2luZG93cyhmYWxzZSkKLSAgICAsIG1fY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2lu
ZyhmYWxzZSkKLSAgICAsIG1fYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChmYWxzZSkKLSAgICAs
IG1fYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNDU1NDdXN0b21G
aWx0ZXJFbmFibGVkKGZhbHNlKQogI2lmIEVOQUJMRShDU1NfU1RJQ0tZX1BPU0lUSU9OKQogICAg
ICwgbV9jc3NTdGlja3lQb3NpdGlvbkVuYWJsZWQodHJ1ZSkKQEAgLTIxOCw5MCArMTcyLDI0IEBA
IFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogI2lmIEVOQUJMRShDU1NfVkFSSUFCTEVT
KQogICAgICwgbV9jc3NWYXJpYWJsZXNFbmFibGVkKGZhbHNlKQogI2VuZGlmCi0gICAgLCBtX3Jl
Z2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2Nzc0dyaWRMYXlvdXRFbmFi
bGVkKGZhbHNlKQotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZWFsbHkgYmUgZGlzYWJsZWQg
YnkgZGVmYXVsdCBhcyBpdCBtYWtlcyBwbGF0Zm9ybXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZSBm
ZWF0dXJlIGRvd25sb2FkIGZpbGVzCi0gICAgLy8gdGhleSBjYW4ndCB1c2UgYnkuIExlYXZpbmcg
ZW5hYmxlZCBmb3Igbm93IHRvIG5vdCBjaGFuZ2UgZXhpc3RpbmcgYmVoYXZpb3IuCi0gICAgLCBt
X2Rvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCh0cnVlKQotICAgICwgbV94c3NBdWRpdG9y
RW5hYmxlZChmYWxzZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQodHJ1
ZSkKLSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJsZWQo
dHJ1ZSkKLSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZCh0cnVl
KQotICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQodHJ1ZSkK
LSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQodHJ1ZSkKLSAg
ICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQodHJ1ZSkKLSAg
ICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKGZhbHNl
KQotICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJs
ZWQoZmFsc2UpCiAgICAgLCBtX3Nob3dEZWJ1Z0JvcmRlcnMoZmFsc2UpCiAgICAgLCBtX3Nob3dS
ZXBhaW50Q291bnRlcihmYWxzZSkKLSAgICAsIG1fZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0Vu
YWJsZWQoZmFsc2UpCi0gICAgLCBtX3dlYkdMRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fd2ViR0xF
cnJvcnNUb0NvbnNvbGVFbmFibGVkKGZhbHNlKQotICAgICwgbV9vcGVuR0xNdWx0aXNhbXBsaW5n
RW5hYmxlZCh0cnVlKQotICAgICwgbV9wcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZChm
YWxzZSkKLSAgICAsIG1fd2ViQXVkaW9FbmFibGVkKGZhbHNlKQotICAgICwgbV9hY2NlbGVyYXRl
ZENhbnZhczJkRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fZGVmZXJyZWRDYW52YXMyZEVuYWJsZWQo
ZmFsc2UpCi0gICAgLCBtX2xvYWREZWZlcnJpbmdFbmFibGVkKHRydWUpCiAgICAgLCBtX3RpbGVk
QmFja2luZ1N0b3JlRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fcGFnaW5hdGVEdXJpbmdMYXlvdXRF
bmFibGVkKGZhbHNlKQogICAgICwgbV9kbnNQcmVmZXRjaGluZ0VuYWJsZWQoZmFsc2UpCi0jaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgICwgbV9mdWxsU2NyZWVuQVBJRW5hYmxlZChmYWxz
ZSkKLSNlbmRpZgotICAgICwgbV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChmYWxz
ZSkKICNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQogICAgICwgbV91bmlmaWVkVGV4dENo
ZWNrZXJFbmFibGVkKHRydWUpCiAjZWxzZQogICAgICwgbV91bmlmaWVkVGV4dENoZWNrZXJFbmFi
bGVkKGZhbHNlKQogI2VuZGlmCi0gICAgLCBtX21lbW9yeUluZm9FbmFibGVkKGZhbHNlKQotICAg
ICwgbV9xdWFudGl6ZWRNZW1vcnlJbmZvRW5hYmxlZChmYWxzZSkKLSAgICAsIG1faW50ZXJhY3Rp
dmVGb3JtVmFsaWRhdGlvbihmYWxzZSkKLSAgICAsIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3Mo
ZmFsc2UpCi0gICAgLCBtX2h5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChmYWxzZSkKLSAgICAsIG1f
Y3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQoZmFsc2UpCi0gICAg
LCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlKGZhbHNlKQotICAgICwgbV9zaG91bGRJbmplY3RVc2Vy
U2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQoZmFsc2UpCi0gICAgLCBtX2ZpeGVkRWxlbWVu
dHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoZmFsc2UpCi0gICAgLCBtX2FsbG93RGlzcGxheU9mSW5z
ZWN1cmVDb250ZW50KHRydWUpCi0gICAgLCBtX2FsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50
KHRydWUpCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiAgICAgLCBtX3Njcm9sbEFuaW1h
dG9yRW5hYmxlZCh0cnVlKQogI2VuZGlmCi0gICAgLCBtX21lZGlhUGxheWJhY2tSZXF1aXJlc1Vz
ZXJHZXN0dXJlKGZhbHNlKQotICAgICwgbV9tZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lKHRydWUp
Ci0gICAgLCBtX3Bhc3N3b3JkRWNob0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX3N1cHByZXNzZXNJ
bmNyZW1lbnRhbFJlbmRlcmluZyhmYWxzZSkKLSAgICAsIG1fYmFja3NwYWNlS2V5TmF2aWdhdGlv
bkVuYWJsZWQodHJ1ZSkKLSAgICAsIG1fdmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZChmYWxzZSkK
LSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgLCBtX3Nob3VsZERpc3BsYXlTdWJ0aXRsZXMo
ZmFsc2UpCi0gICAgLCBtX3Nob3VsZERpc3BsYXlDYXB0aW9ucyhmYWxzZSkKLSAgICAsIG1fc2hv
dWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnMoZmFsc2UpCi0jZW5kaWYKLSAgICAsIG1fc2Nyb2xs
aW5nQ29vcmRpbmF0b3JFbmFibGVkKGZhbHNlKQotICAgICwgbV9ub3RpZmljYXRpb25zRW5hYmxl
ZCh0cnVlKQotICAgICwgbV9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyayhmYWxzZSkKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgICwgbV90b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxl
ZChmYWxzZSkKICNlbmRpZgotICAgICwgbV9zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbihm
YWxzZSkKLSAgICAsIG1fd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcihmYWxz
ZSkKLSAgICAsIG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCh0cnVlKQotICAgICwgbV9k
ZXZpY2VTdXBwb3J0c1RvdWNoKGZhbHNlKQotICAgICwgbV9kZXZpY2VTdXBwb3J0c01vdXNlKHRy
dWUpCi0gICAgLCBtX25lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsoZmFsc2UpCi0gICAgLCBt
X2ZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0KGZhbHNlKQotICAgICwgbV9zeW5j
WEhSSW5Eb2N1bWVudHNFbmFibGVkKHRydWUpCi0gICAgLCBtX2Nvb2tpZUVuYWJsZWQodHJ1ZSkK
LSAgICAsIG1fd2luZG93Rm9jdXNSZXN0cmljdGVkKHRydWUpCi0gICAgLCBtX2RpYWdub3N0aWNM
b2dnaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5n
RW5hYmxlZChmYWxzZSkKLSAgICAsIG1fYXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Io
ZmFsc2UpCi0gICAgLCBtX3BsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQoZmFsc2UpCiAgICAgLCBt
X3NldEltYWdlTG9hZGluZ1NldHRpbmdzVGltZXIodGhpcywgJlNldHRpbmdzOjppbWFnZUxvYWRp
bmdTZXR0aW5nc1RpbWVyRmlyZWQpCi0gICAgLCBtX2luY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJl
c3Npb25UaW1lb3V0SW5TZWNvbmRzKGRlZmF1bHRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNz
aW9uVGltZW91dEluU2Vjb25kcykKIHsKICAgICAvLyBBIEZyYW1lIG1heSBub3QgaGF2ZSBiZWVu
IGNyZWF0ZWQgeWV0LCBzbyB3ZSBpbml0aWFsaXplIHRoZSBBdG9taWNTdHJpbmcKICAgICAvLyBo
YXNoIGJlZm9yZSB0cnlpbmcgdG8gdXNlIGl0LgpAQCAtNTA4LDExICszOTYsNiBAQCB2b2lkIFNl
dHRpbmdzOjppbWFnZUxvYWRpbmdTZXR0aW5nc1RpbWVyRmlyZWQoVGltZXI8U2V0dGluZ3M+KikK
ICAgICBzZXRJbWFnZUxvYWRpbmdTZXR0aW5ncyhtX3BhZ2UpOwogfQogCi12b2lkIFNldHRpbmdz
OjpzZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhib29sIGxvYWRz
U2l0ZUljb25zKQotewotICAgIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1Nl
dHRpbmcgPSBsb2Fkc1NpdGVJY29uczsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0U2NyaXB0RW5h
YmxlZChib29sIGlzU2NyaXB0RW5hYmxlZCkKIHsKICAgICBtX2lzU2NyaXB0RW5hYmxlZCA9IGlz
U2NyaXB0RW5hYmxlZDsKQEAgLTUyMywxNiArNDA2LDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0V2Vi
U2VjdXJpdHlFbmFibGVkKGJvb2wgaXNXZWJTZWN1cml0eUVuYWJsZWQpCiAgICAgbV9pc1dlYlNl
Y3VyaXR5RW5hYmxlZCA9IGlzV2ViU2VjdXJpdHlFbmFibGVkOwogfQogCi12b2lkIFNldHRpbmdz
OjpzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhib29sIGFsbG93VW5pdmVyc2Fs
QWNjZXNzRnJvbUZpbGVVUkxzKQotewotICAgIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmls
ZVVSTHMgPSBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczsKLX0KLQotdm9pZCBTZXR0
aW5nczo6c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wgYWxsb3dGaWxlQWNjZXNz
RnJvbUZpbGVVUkxzKQotewotICAgIG1fYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzID0gYWxs
b3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRTcGF0aWFs
TmF2aWdhdGlvbkVuYWJsZWQoYm9vbCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCkKIHsKICAg
ICBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkID0gaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJs
ZWQ7CkBAIC01NjYsMTYgKzQzOSw2IEBAIHZvaWQgU2V0dGluZ3M6OnNldFBsdWdpbnNFbmFibGVk
KGJvb2wgYXJlUGx1Z2luc0VuYWJsZWQpCiAgICAgbV9hcmVQbHVnaW5zRW5hYmxlZCA9IGFyZVBs
dWdpbnNFbmFibGVkOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VFbmFibGVk
KGJvb2wgbG9jYWxTdG9yYWdlRW5hYmxlZCkKLXsKLSAgICBtX2xvY2FsU3RvcmFnZUVuYWJsZWQg
PSBsb2NhbFN0b3JhZ2VFbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRTZXNzaW9uU3Rv
cmFnZVF1b3RhKHVuc2lnbmVkIHNlc3Npb25TdG9yYWdlUXVvdGEpCi17Ci0gICAgbV9zZXNzaW9u
U3RvcmFnZVF1b3RhID0gc2Vzc2lvblN0b3JhZ2VRdW90YTsKLX0KLQogdm9pZCBTZXR0aW5nczo6
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCiB7
CiAgICAgLy8gRklYTUUgaHR0cDovL3dlYmtpdC5vcmcvYi82Nzg3MDogVGhlIHByaXZhdGUgYnJv
d3Npbmcgc3RvcmFnZSBzZXNzaW9uIGFuZCBjb29raWUgcHJpdmF0ZQpAQCAtNjAxLDI2ICs0NjQs
NiBAQCB2b2lkIFNldHRpbmdzOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZCkKICAgICBtX3BhZ2UtPnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdl
ZCgpOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5KGJvb2wgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSkKLXsK
LSAgICBtX2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBqYXZhU2NyaXB0
Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRTdXBw
b3J0c011bHRpcGxlV2luZG93cyhib29sIHN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKQotewotICAg
IG1fc3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MgPSBzdXBwb3J0c011bHRpcGxlV2luZG93czsKLX0K
LQotdm9pZCBTZXR0aW5nczo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChib29sIGph
dmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQpCi17Ci0gICAgbV9qYXZhU2NyaXB0Q2FuQWNjZXNz
Q2xpcGJvYXJkID0gamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDsKLX0KLQotdm9pZCBTZXR0
aW5nczo6c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoY29uc3QgU3RyaW5nJiBkZWZhdWx0VGV4
dEVuY29kaW5nTmFtZSkKLXsKLSAgICBtX2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1lID0gZGVmYXVs
dFRleHRFbmNvZGluZ05hbWU7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldFVzZXJTdHlsZVNoZWV0
TG9jYXRpb24oY29uc3QgS1VSTCYgdXNlclN0eWxlU2hlZXRMb2NhdGlvbikKIHsKICAgICBpZiAo
bV91c2VyU3R5bGVTaGVldExvY2F0aW9uID09IHVzZXJTdHlsZVNoZWV0TG9jYXRpb24pCkBAIC02
MzEsMTYgKzQ3NCw2IEBAIHZvaWQgU2V0dGluZ3M6OnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24o
Y29uc3QgS1VSTCYgdXNlclN0eWxlU2hlZXRMb2NhdGlvbikKICAgICBtX3BhZ2UtPnVzZXJTdHls
ZVNoZWV0TG9jYXRpb25DaGFuZ2VkKCk7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldEZpeGVkRWxl
bWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoYm9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRp
dmVUb0ZyYW1lKQotewotICAgIG1fZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSA9
IGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWU7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6
OnNldFNob3VsZFByaW50QmFja2dyb3VuZHMoYm9vbCBzaG91bGRQcmludEJhY2tncm91bmRzKQot
ewotICAgIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyA9IHNob3VsZFByaW50QmFja2dyb3VuZHM7
Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShib29sIHRleHRB
cmVhc0FyZVJlc2l6YWJsZSkKIHsKICAgICBpZiAobV90ZXh0QXJlYXNBcmVSZXNpemFibGUgPT0g
dGV4dEFyZWFzQXJlUmVzaXphYmxlKQpAQCAtNjUwLDIzICs0ODMsNiBAQCB2b2lkIFNldHRpbmdz
OjpzZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoYm9vbCB0ZXh0QXJlYXNBcmVSZXNpemFibGUpCiAg
ICAgbV9wYWdlLT5zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKIH0KIAotdm9pZCBT
ZXR0aW5nczo6c2V0RWRpdGFibGVMaW5rQmVoYXZpb3IoRWRpdGFibGVMaW5rQmVoYXZpb3IgZWRp
dGFibGVMaW5rQmVoYXZpb3IpCi17Ci0gICAgbV9lZGl0YWJsZUxpbmtCZWhhdmlvciA9IGVkaXRh
YmxlTGlua0JlaGF2aW9yOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRUZXh0RGlyZWN0aW9uU3Vi
bWVudUluY2x1c2lvbkJlaGF2aW9yKFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZp
b3IgYmVoYXZpb3IpCi17Ci0gICAgbV90ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2
aW9yID0gYmVoYXZpb3I7Ci19Ci0KLSNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCi12b2lk
IFNldHRpbmdzOjpzZXRVc2VzRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZShib29s
IHVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKQotewotICAgIG1fdXNlc0Rh
c2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUgPSB1c2VzRGFzaGJvYXJkQmFja3dhcmRD
b21wYXRpYmlsaXR5TW9kZTsKLX0KLSNlbmRpZgotCiAvLyBGSVhNRTogVGhpcyBxdWlyayBpcyBu
ZWVkZWQgYmVjYXVzZSBvZiBSYWRhciA0Njc0NTM3IGFuZCA1MjExMjcxLiBXZSBuZWVkIHRvIHBo
YXNlIGl0IG91dCBvbmNlIEFkb2JlCiAvLyBjYW4gZml4IHRoZSBidWcgZnJvbSB0aGVpciBlbmQu
CiB2b2lkIFNldHRpbmdzOjpzZXROZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayhib29sIHNo
b3VsZE5vdFJlbG9hZElGcmFtZXNGb3JVbmNoYW5nZWRTUkMpCkBAIC02NzQsMjQgKzQ5MCw2IEBA
IHZvaWQgU2V0dGluZ3M6OnNldE5lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrKGJvb2wgc2hv
dWxkTm90UmVsb2FkSUZyYW1lc0ZvclVuCiAgICAgbV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdR
dWlyayA9IHNob3VsZE5vdFJlbG9hZElGcmFtZXNGb3JVbmNoYW5nZWRTUkM7CiB9CiAKLS8vIFRo
aXMgaXMgYSBxdWlyayB3ZSBhcmUgcHJvLWFjdGl2ZWx5IGFwcGx5aW5nIHRvIG9sZCBhcHBsaWNh
dGlvbnMuIEl0IGNoYW5nZXMga2V5Ym9hcmQgZXZlbnQgZGlzcGF0Y2hpbmcsCi0vLyBtYWtpbmcg
a2V5SWRlbnRpZmllciBhdmFpbGFibGUgb24ga2V5cHJlc3MgZXZlbnRzLCBtYWtpbmcgY2hhckNv
ZGUgYXZhaWxhYmxlIG9uIGtleWRvd24va2V5dXAgZXZlbnRzLAotLy8gYW5kIGdldHRpbmcga2V5
cHJlc3MgZGlzcGF0Y2hlZCBpbiBtb3JlIGNhc2VzLgotdm9pZCBTZXR0aW5nczo6c2V0TmVlZHNL
ZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MoYm9vbCBuZWVkc1F1aXJrcykKLXsKLSAg
ICBtX25lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzID0gbmVlZHNRdWlya3M7
Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0
KGJvb2wgdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQpCi17Ci0gICAgbV90cmVhdHNB
bnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldCA9IHRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNo
ZWV0OwotfQotCi12b2lkIFNldHRpbmdzOjpzZXROZWVkc0xlb3BhcmRNYWlsUXVpcmtzKGJvb2wg
bmVlZHNRdWlya3MpCi17Ci0gICAgbV9uZWVkc0xlb3BhcmRNYWlsUXVpcmtzID0gbmVlZHNRdWly
a3M7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldERPTVBhc3RlQWxsb3dlZChib29sIERPTVBhc3Rl
QWxsb3dlZCkKIHsKICAgICBtX2lzRE9NUGFzdGVBbGxvd2VkID0gRE9NUGFzdGVBbGxvd2VkOwpA
QCAtNzUyLDQxICs1NTAsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRVc2VzUGFnZUNhY2hlKGJvb2wg
dXNlc1BhZ2VDYWNoZSkKICAgICB9CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldFNocmlua3NTdGFu
ZGFsb25lSW1hZ2VzVG9GaXQoYm9vbCBzaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KQotewot
ICAgIG1fc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCA9IHNocmlua3NTdGFuZGFsb25lSW1h
Z2VzVG9GaXQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFNob3dzVVJMc0luVG9vbFRpcHMoYm9v
bCBzaG93c1VSTHNJblRvb2xUaXBzKQotewotICAgIG1fc2hvd3NVUkxzSW5Ub29sVGlwcyA9IHNo
b3dzVVJMc0luVG9vbFRpcHM7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldFNob3dzVG9vbFRpcE92
ZXJUcnVuY2F0ZWRUZXh0KGJvb2wgc2hvd3NUb29sVGlwRm9yVHJ1bmNhdGVkVGV4dCkKLXsKLSAg
ICBtX3Nob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0ID0gc2hvd3NUb29sVGlwRm9yVHJ1bmNh
dGVkVGV4dDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0RlRQRGlyZWN0b3J5VGVtcGxhdGVQYXRo
KGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAgICBtX2Z0cERpcmVjdG9yeVRlbXBsYXRlUGF0aCA9
IHBhdGg7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3Mo
Ym9vbCBmb3JjZSkKLXsKLSAgICBtX2ZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3MgPSBmb3JjZTsK
LX0KLQotdm9pZCBTZXR0aW5nczo6c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sIGRldmVs
b3BlckV4dHJhc0VuYWJsZWQpCi17Ci0gICAgbV9kZXZlbG9wZXJFeHRyYXNFbmFibGVkID0gZGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0SmF2YVNjcmlwdEV4
cGVyaW1lbnRzRW5hYmxlZChib29sIGphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQpCi17Ci0g
ICAgbV9qYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkID0gamF2YVNjcmlwdEV4cGVyaW1lbnRz
RW5hYmxlZDsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJs
ZWQoYm9vbCBhdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCkKIHsKICAgICBpZiAobV9hdXRob3JB
bmRVc2VyU3R5bGVzRW5hYmxlZCA9PSBhdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCkKQEAgLTgw
OSw0OCArNTcyLDExIEBAIEZvbnRSZW5kZXJpbmdNb2RlIFNldHRpbmdzOjpmb250UmVuZGVyaW5n
TW9kZSgpIGNvbnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEZvbnRSZW5kZXJpbmdNb2RlPiht
X2ZvbnRSZW5kZXJpbmdNb2RlKTsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0TmVlZHNTaXRlU3Bl
Y2lmaWNRdWlya3MoYm9vbCBuZWVkc1F1aXJrcykKLXsKLSAgICBtX25lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzID0gbmVlZHNRdWlya3M7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWQoYm9vbCBmcmFtZUZsYXR0ZW5pbmdFbmFibGVkKQotewotICAgIG1fZnJhbWVG
bGF0dGVuaW5nRW5hYmxlZCA9IGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ7Ci19Ci0KLSNpZiBFTkFC
TEUoV0VCX0FSQ0hJVkUpCi12b2lkIFNldHRpbmdzOjpzZXRXZWJBcmNoaXZlRGVidWdNb2RlRW5h
YmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV93ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZCA9
IGVuYWJsZWQ7Ci19Ci0jZW5kaWYKLQotdm9pZCBTZXR0aW5nczo6c2V0TG9jYWxGaWxlQ29udGVu
dFNuaWZmaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9sb2NhbEZpbGVDb250ZW50
U25pZmZpbmdFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0TG9jYWxT
dG9yYWdlRGF0YWJhc2VQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAgICBtX2xvY2FsU3Rv
cmFnZURhdGFiYXNlUGF0aCA9IHBhdGg7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldEFwcGxpY2F0
aW9uQ2hyb21lTW9kZShib29sIG1vZGUpCiB7CiAgICAgbV9pbkFwcGxpY2F0aW9uQ2hyb21lTW9k
ZSA9IG1vZGU7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNh
Y2hlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9vZmZsaW5lV2ViQXBwbGljYXRpb25D
YWNoZUVuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRFbmZvcmNlQ1NT
TUlNRVR5cGVJbk5vUXVpcmtzTW9kZShib29sIGVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NN
b2RlKQotewotICAgIG1fZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUgPSBlbmZvcmNl
Q1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZTsKLX0KLQogI2lmIFVTRShTQUZBUklfVEhFTUUpCiB2
b2lkIFNldHRpbmdzOjpzZXRTaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKGJvb2wgc2hvdWxkUGFp
bnROYXRpdmVDb250cm9scykKIHsKQEAgLTg1OCwxMSArNTg0LDYgQEAgdm9pZCBTZXR0aW5nczo6
c2V0U2hvdWxkUGFpbnROYXRpdmVDb250cm9scyhib29sIHNob3VsZFBhaW50TmF0aXZlQ29udHJv
bHMpCiB9CiAjZW5kaWYKIAotdm9pZCBTZXR0aW5nczo6c2V0VXNlc0VuY29kaW5nRGV0ZWN0b3Io
Ym9vbCB1c2VzRW5jb2RpbmdEZXRlY3RvcikKLXsKLSAgICBtX3VzZXNFbmNvZGluZ0RldGVjdG9y
ID0gdXNlc0VuY29kaW5nRGV0ZWN0b3I7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldEROU1ByZWZl
dGNoaW5nRW5hYmxlZChib29sIGRuc1ByZWZldGNoaW5nRW5hYmxlZCkKIHsKICAgICBpZiAobV9k
bnNQcmVmZXRjaGluZ0VuYWJsZWQgPT0gZG5zUHJlZmV0Y2hpbmdFbmFibGVkKQpAQCAtODcyLDI2
ICs1OTMsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoYm9vbCBk
bnNQcmVmZXRjaGluZ0VuYWJsZWQpCiAgICAgbV9wYWdlLT5kbnNQcmVmZXRjaGluZ1N0YXRlQ2hh
bmdlZCgpOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRBbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93
cyhib29sIGFsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzKQotewotICAgIG1fYWxsb3dTY3JpcHRz
VG9DbG9zZVdpbmRvd3MgPSBhbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93czsKLX0KLQotdm9pZCBT
ZXR0aW5nczo6c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9vbCBjYXJldEJyb3dzaW5nRW5hYmxl
ZCkKLXsKLSAgICBtX2NhcmV0QnJvd3NpbmdFbmFibGVkID0gY2FyZXRCcm93c2luZ0VuYWJsZWQ7
Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldERvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZChi
b29sIGRvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCkKLXsKLSAgICBtX2Rvd25sb2FkYWJs
ZUJpbmFyeUZvbnRzRW5hYmxlZCA9IGRvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZDsKLX0K
LQotdm9pZCBTZXR0aW5nczo6c2V0WFNTQXVkaXRvckVuYWJsZWQoYm9vbCB4c3NBdWRpdG9yRW5h
YmxlZCkKLXsKLSAgICBtX3hzc0F1ZGl0b3JFbmFibGVkID0geHNzQXVkaXRvckVuYWJsZWQ7Ci19
Ci0KIHZvaWQgU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKIHsKICAgICBpZiAobV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9PSBl
bmFibGVkKQpAQCAtOTAxLDM2ICs2MDIsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbV9wYWdlLT5zZXROZWVkc1Jl
Y2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKIH0KIAotdm9pZCBTZXR0aW5nczo6c2V0Q2FudmFzVXNl
c0FjY2VsZXJhdGVkRHJhd2luZyhib29sIGVuYWJsZWQpCi17Ci0gICAgbV9jYW52YXNVc2VzQWNj
ZWxlcmF0ZWREcmF3aW5nID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewot
ICAgIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJsZWQgPSBlbmFi
bGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlk
ZW9FbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JWaWRlb0VuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1f
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclBsdWdpbnNFbmFibGVkID0gZW5hYmxlZDsKLX0KLQot
dm9pZCBTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQotewotICAgIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0Vu
YWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9hY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KIHZvaWQg
U2V0dGluZ3M6OnNldFNob3dEZWJ1Z0JvcmRlcnMoYm9vbCBlbmFibGVkKQogewogICAgIGlmICht
X3Nob3dEZWJ1Z0JvcmRlcnMgPT0gZW5hYmxlZCkKQEAgLTk0OSwxMSArNjIwLDYgQEAgdm9pZCBT
ZXR0aW5nczo6c2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wgZW5hYmxlZCkKICAgICBtX3BhZ2Ut
PnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOwogfQogCi12b2lkIFNldHRpbmdzOjpz
ZXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAg
bV9leHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KICNpZiBQ
TEFURk9STShXSU4pIHx8IChPUyhXSU5ET1dTKSAmJiBQTEFURk9STShXWCkpCiB2b2lkIFNldHRp
bmdzOjpzZXRTaG91bGRVc2VIaWdoUmVzb2x1dGlvblRpbWVycyhib29sIHNob3VsZFVzZUhpZ2hS
ZXNvbHV0aW9uVGltZXJzKQogewpAQCAtOTYxLDUxICs2MjcsNiBAQCB2b2lkIFNldHRpbmdzOjpz
ZXRTaG91bGRVc2VIaWdoUmVzb2x1dGlvblRpbWVycyhib29sIHNob3VsZFVzZUhpZ2hSZXNvbHV0
aW9uVGltZQogfQogI2VuZGlmCiAKLXZvaWQgU2V0dGluZ3M6OnNldFdlYkF1ZGlvRW5hYmxlZChi
b29sIGVuYWJsZWQpCi17Ci0gICAgbV93ZWJBdWRpb0VuYWJsZWQgPSBlbmFibGVkOwotfQotCi12
b2lkIFNldHRpbmdzOjpzZXRXZWJHTEVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fd2Vi
R0xFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0V2ViR0xFcnJvcnNU
b0NvbnNvbGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3dlYkdMRXJyb3JzVG9Db25z
b2xlRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldE9wZW5HTE11bHRp
c2FtcGxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX29wZW5HTE11bHRpc2FtcGxp
bmdFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0UHJpdmlsZWdlZFdl
YkdMRXh0ZW5zaW9uc0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fcHJpdmlsZWdlZFdl
YkdMRXh0ZW5zaW9uc0VuYWJsZWQgPSBlbmFibGVkOwotfQotCi12b2lkIFNldHRpbmdzOjpzZXRB
Y2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9hY2NlbGVy
YXRlZENhbnZhczJkRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNldERl
ZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2RlZmVycmVkQ2Fu
dmFzMmRFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotdm9pZCBTZXR0aW5nczo6c2V0TWluaW11bUFj
Y2VsZXJhdGVkMmRDYW52YXNTaXplKGludCBudW1QaXhlbHMpCi17Ci0gICAgbV9taW5pbXVtQWNj
ZWxlcmF0ZWQyZENhbnZhc1NpemUgPSBudW1QaXhlbHM7Ci19Ci0KLXZvaWQgU2V0dGluZ3M6OnNl
dExvYWREZWZlcnJpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2xvYWREZWZlcnJp
bmdFbmFibGVkID0gZW5hYmxlZDsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0U3RvcmFnZUJsb2Nr
aW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgZW5hYmxlZCkK
IHsKICAgICBpZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gZW5hYmxlZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaAppbmRleCBmMDUzZjU0MWVkNTBiOTI0NzM0MzExMTcxMmRjZThlZjgwZjUxYjdk
Li5mMzIwZDQ1NmIxNmZjY2UzOTUwNGQzNDI3ZmVlZjA3ZjlkMWEwMmY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1
ZGUgIktVUkwuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlNldHRp
bmdzTWFjcm9zLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAtMTMzLDExICsxMzQsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0
aWNhbGx5KGJvb2wpOwogICAgICAgICBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpIGNv
bnN0IHsgcmV0dXJuIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OyB9CiAKLSAgICAgICAgLy8g
VGhpcyBzZXR0aW5nIG9ubHkgYWZmZWN0cyBzaXRlIGljb24gaW1hZ2UgbG9hZGluZyBpZiBsb2Fk
c0ltYWdlc0F1dG9tYXRpY2FsbHkgc2V0dGluZyBpcyBmYWxzZSBhbmQgdGhpcyBzZXR0aW5nIGlz
IHRydWUuCi0gICAgICAgIC8vIEFsbCBvdGhlciBwZXJtdXRhdGlvbnMgc3RpbGwgaGVlZCBsb2Fk
c0ltYWdlc0F1dG9tYXRpY2FsbHkgc2V0dGluZy4KLSAgICAgICAgdm9pZCBzZXRMb2Fkc1NpdGVJ
Y29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhib29sKTsKLSAgICAgICAgYm9vbCBsb2Fk
c1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
bG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmc7IH0KLQogICAgICAgICB2
b2lkIHNldFNjcmlwdEVuYWJsZWQoYm9vbCk7CiAgICAgICAgIC8vIEluc3RlYWQgb2YgY2FsbGlu
ZyBpc1NjcmlwdEVuYWJsZWQgZGlyZWN0bHksIHBsZWFzZSBjb25zaWRlciBjYWxsaW5nCiAgICAg
ICAgIC8vIFNjcmlwdENvbnRyb2xsZXI6OmNhbkV4ZWN1dGVTY3JpcHRzLCB3aGljaCB0YWtlcyB0
aGluZ3MgbGlrZSB0aGUKQEAgLTE0NywyMCArMTQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2b2lkIHNldFdlYlNlY3VyaXR5RW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBp
c1dlYlNlY3VyaXR5RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNXZWJTZWN1cml0eUVuYWJs
ZWQ7IH0KIAotICAgICAgICB2b2lkIHNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxz
KGJvb2wpOwotICAgICAgICBib29sIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKCkg
Y29uc3QgeyByZXR1cm4gbV9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczsgfQotCi0g
ICAgICAgIHZvaWQgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wpOwotICAgICAg
ICBib29sIGFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxs
b3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRKYXZhU2NyaXB0
Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpOwotICAgICAgICBib29sIGphdmFTY3Jp
cHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKSBjb25zdCB7IHJldHVybiBtX2phdmFTY3Jp
cHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHk7IH0KLQotICAgICAgICB2b2lkIHNldFN1cHBv
cnRzTXVsdGlwbGVXaW5kb3dzKGJvb2wpOwotICAgICAgICBib29sIHN1cHBvcnRzTXVsdGlwbGVX
aW5kb3dzKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c011bHRpcGxlV2luZG93czsgfQotCi0g
ICAgICAgIHZvaWQgc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChib29sKTsKLSAgICAg
ICAgYm9vbCBqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKCkgY29uc3QgeyByZXR1cm4gbV9q
YXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkOyB9CisgICAgICAgIFNFVFRJTkdTX0dFVFRFUlNf
QU5EX1NFVFRFUlMKIAogICAgICAgICB2b2lkIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChi
b29sKTsKICAgICAgICAgYm9vbCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1faXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ7IH0KQEAgLTE4MSwxNSArMTY0LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGJv
b2wpOwogICAgICAgICBib29sIGFyZVBsdWdpbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9h
cmVQbHVnaW5zRW5hYmxlZDsgfQogCi0gICAgICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlRW5hYmxl
ZChib29sKTsKLSAgICAgICAgYm9vbCBsb2NhbFN0b3JhZ2VFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9sb2NhbFN0b3JhZ2VFbmFibGVkOyB9Ci0KLSAgICAgICAgLy8gQWxsb3cgY2xpZW50cyBj
b25jZXJuZWQgd2l0aCBtZW1vcnkgY29uc3VtcHRpb24gdG8gc2V0IGEgcXVvdGEgb24gc2Vzc2lv
biBzdG9yYWdlCi0gICAgICAgIC8vIHNpbmNlIHRoZSBtZW1vcnkgdXNlZCB3b24ndCBiZSByZWxl
YXNlZCB1bnRpbCB0aGUgUGFnZSBpcyBkZXN0cm95ZWQuCi0gICAgICAgIC8vIERlZmF1bHQgaXMg
bm9RdW90YS4KLSAgICAgICAgdm9pZCBzZXRTZXNzaW9uU3RvcmFnZVF1b3RhKHVuc2lnbmVkKTsK
LSAgICAgICAgdW5zaWduZWQgc2Vzc2lvblN0b3JhZ2VRdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2Vzc2lvblN0b3JhZ2VRdW90YTsgfQotCiAgICAgICAgIC8vIFdoZW4gdGhpcyBvcHRpb24gaXMg
c2V0LCBXZWJDb3JlIHdpbGwgYXZvaWQgc3RvcmluZyBhbnkgcmVjb3JkIG9mIGJyb3dzaW5nIGFj
dGl2aXR5CiAgICAgICAgIC8vIHRoYXQgbWF5IHBlcnNpc3Qgb24gZGlzayBvciByZW1haW4gZGlz
cGxheWVkIHdoZW4gdGhlIG9wdGlvbiBpcyByZXNldC4KICAgICAgICAgLy8gVGhpcyBvcHRpb24g
ZG9lcyBub3QgYWZmZWN0IHRoZSBzdG9yYWdlIG9mIHN1Y2ggaW5mb3JtYXRpb24gaW4gUkFNLgpA
QCAtMjA2LDUzICsxODAsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNl
dFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgcHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDsgfQog
Ci0gICAgICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJv
b2wgY2FyZXRCcm93c2luZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2NhcmV0QnJvd3NpbmdF
bmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShjb25z
dCBTdHJpbmcmKTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBkZWZhdWx0VGV4dEVuY29kaW5nTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdFRleHRFbmNvZGluZ05hbWU7IH0KLSAgICAgICAg
Ci0gICAgICAgIHZvaWQgc2V0VXNlc0VuY29kaW5nRGV0ZWN0b3IoYm9vbCk7Ci0gICAgICAgIGJv
b2wgdXNlc0VuY29kaW5nRGV0ZWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3VzZXNFbmNvZGluZ0Rl
dGVjdG9yOyB9Ci0KICAgICAgICAgdm9pZCBzZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoYm9vbCk7
CiAgICAgICAgIGJvb2wgZG5zUHJlZmV0Y2hpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9k
bnNQcmVmZXRjaGluZ0VuYWJsZWQ7IH0KIAogICAgICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0
TG9jYXRpb24oY29uc3QgS1VSTCYpOwogICAgICAgICBjb25zdCBLVVJMJiB1c2VyU3R5bGVTaGVl
dExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOyB9CiAK
LSAgICAgICAgdm9pZCBzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJvb2wp
OwotICAgICAgICBib29sIGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSBjb25z
dCB7IHJldHVybiBtX2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWU7IH0KLQotICAg
ICAgICB2b2lkIHNldFNob3VsZFByaW50QmFja2dyb3VuZHMoYm9vbCk7Ci0gICAgICAgIGJvb2wg
c2hvdWxkUHJpbnRCYWNrZ3JvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkUHJpbnRCYWNr
Z3JvdW5kczsgfQotCiAgICAgICAgIHZvaWQgc2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKGJvb2wp
OwogICAgICAgICBib29sIHRleHRBcmVhc0FyZVJlc2l6YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGV4dEFyZWFzQXJlUmVzaXphYmxlOyB9CiAKLSAgICAgICAgdm9pZCBzZXRFZGl0YWJsZUxpbmtC
ZWhhdmlvcihFZGl0YWJsZUxpbmtCZWhhdmlvcik7Ci0gICAgICAgIEVkaXRhYmxlTGlua0JlaGF2
aW9yIGVkaXRhYmxlTGlua0JlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9lZGl0YWJsZUxpbmtC
ZWhhdmlvcjsgfQotCi0gICAgICAgIHZvaWQgc2V0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNp
b25CZWhhdmlvcihUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKTsKLSAgICAg
ICAgVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciB0ZXh0RGlyZWN0aW9uU3Vi
bWVudUluY2x1c2lvbkJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0RGlyZWN0aW9uU3Vi
bWVudUluY2x1c2lvbkJlaGF2aW9yOyB9Ci0KLSNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQp
Ci0gICAgICAgIHZvaWQgc2V0VXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUo
Ym9vbCk7Ci0gICAgICAgIGJvb2wgdXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1v
ZGUoKSBjb25zdCB7IHJldHVybiBtX3VzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlN
b2RlOyB9Ci0jZW5kaWYKLSAgICAgICAgCiAgICAgICAgIHZvaWQgc2V0TmVlZHNBZG9iZUZyYW1l
UmVsb2FkaW5nUXVpcmsoYm9vbCk7CiAgICAgICAgIGJvb2wgbmVlZHNBY3JvYmF0RnJhbWVSZWxv
YWRpbmdRdWlyaygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVp
cms7IH0KIAotICAgICAgICB2b2lkIHNldE5lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9u
UXVpcmtzKGJvb2wpOwotICAgICAgICBib29sIG5lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0
aW9uUXVpcmtzKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3Vh
dGlvblF1aXJrczsgfQotCi0gICAgICAgIHZvaWQgc2V0VHJlYXRzQW55VGV4dENTU0xpbmtBc1N0
eWxlc2hlZXQoYm9vbCk7Ci0gICAgICAgIGJvb2wgdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxl
c2hlZXQoKSBjb25zdCB7IHJldHVybiBtX3RyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0
OyB9Ci0KLSAgICAgICAgdm9pZCBzZXROZWVkc0xlb3BhcmRNYWlsUXVpcmtzKGJvb2wpOwotICAg
ICAgICBib29sIG5lZWRzTGVvcGFyZE1haWxRdWlya3MoKSBjb25zdCB7IHJldHVybiBtX25lZWRz
TGVvcGFyZE1haWxRdWlya3M7IH0KLQogICAgICAgICB2b2lkIHNldERPTVBhc3RlQWxsb3dlZChi
b29sKTsKICAgICAgICAgYm9vbCBpc0RPTVBhc3RlQWxsb3dlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNET01QYXN0ZUFsbG93ZWQ7IH0KICAgICAgICAgCkBAIC0yNzEsODYgKzIxMCwxNSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0VXNlc1BhZ2VDYWNoZShib29sKTsKICAg
ICAgICAgYm9vbCB1c2VzUGFnZUNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV91c2VzUGFnZUNhY2hl
OyB9CiAgICAgICAgIAotICAgICAgICB2b2lkIHNldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyhi
b29sIHBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucykgeyBtX3BhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lu
cyA9IHBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2luczsgfQotICAgICAgICBib29sIHBhZ2VDYWNoZVN1
cHBvcnRzUGx1Z2lucygpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5z
OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KGJvb2wp
OwotICAgICAgICBib29sIHNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoKSBjb25zdCB7IHJl
dHVybiBtX3Nocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQ7IH0KLQotICAgICAgICB2b2lkIHNl
dFNob3dzVVJMc0luVG9vbFRpcHMoYm9vbCk7Ci0gICAgICAgIGJvb2wgc2hvd3NVUkxzSW5Ub29s
VGlwcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd3NVUkxzSW5Ub29sVGlwczsgfQotCi0gICAgICAg
IHZvaWQgc2V0U2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQoYm9vbCk7Ci0gICAgICAgIGJv
b2wgc2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQoKSBjb25zdCB7IHJldHVybiBtX3Nob3dz
VG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRGVFBEaXJlY3Rv
cnlUZW1wbGF0ZVBhdGgoY29uc3QgU3RyaW5nJik7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgZnRw
RGlyZWN0b3J5VGVtcGxhdGVQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9mdHBEaXJlY3RvcnlUZW1w
bGF0ZVBhdGg7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0Rm9yY2VGVFBEaXJlY3RvcnlM
aXN0aW5ncyhib29sKTsKLSAgICAgICAgYm9vbCBmb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzKCkg
Y29uc3QgeyByZXR1cm4gbV9mb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzOyB9Ci0gICAgICAgIAot
ICAgICAgICB2b2lkIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJv
b2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZDsgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRKYXZhU2NyaXB0RXhwZXJp
bWVudHNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGphdmFTY3JpcHRFeHBlcmltZW50c0Vu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2phdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQ7IH0K
LQotICAgICAgICB2b2lkIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgICAg
IGJvb2wgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVGbGF0
dGVuaW5nRW5hYmxlZDsgfQotCiAgICAgICAgIHZvaWQgc2V0QXV0aG9yQW5kVXNlclN0eWxlc0Vu
YWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX2F1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkOyB9CiAgICAgICAgIAog
ICAgICAgICB2b2lkIHNldEZvbnRSZW5kZXJpbmdNb2RlKEZvbnRSZW5kZXJpbmdNb2RlIG1vZGUp
OwogICAgICAgICBGb250UmVuZGVyaW5nTW9kZSBmb250UmVuZGVyaW5nTW9kZSgpIGNvbnN0Owog
Ci0gICAgICAgIHZvaWQgc2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoYm9vbCk7Ci0gICAgICAg
IGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdCB7IHJldHVybiBtX25lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzOyB9Ci0KLSNpZiBFTkFCTEUoV0VCX0FSQ0hJVkUpCi0gICAgICAgIHZv
aWQgc2V0V2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgd2Vi
QXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3dlYkFyY2hpdmVEZWJ1
Z01vZGVFbmFibGVkOyB9Ci0jZW5kaWYKLQotICAgICAgICB2b2lkIHNldExvY2FsRmlsZUNvbnRl
bnRTbmlmZmluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgbG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5n
RW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKGNv
bnN0IFN0cmluZyYpOwotICAgICAgICBjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURhdGFiYXNl
UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoOyB9Ci0KICAg
ICAgICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNocm9tZU1vZGUoYm9vbCk7CiAgICAgICAgIGJvb2wg
aW5BcHBsaWNhdGlvbkNocm9tZU1vZGUoKSBjb25zdCB7IHJldHVybiBtX2luQXBwbGljYXRpb25D
aHJvbWVNb2RlOyB9CiAKLSAgICAgICAgdm9pZCBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNo
ZUVuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9vZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJs
ZWQ7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0RW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1
aXJrc01vZGUoYm9vbCk7Ci0gICAgICAgIGJvb2wgZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJr
c01vZGUoKSB7IHJldHVybiBtX2VuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlOyB9Ci0K
LSAgICAgICAgdm9pZCBzZXRNYXhpbXVtRGVjb2RlZEltYWdlU2l6ZShzaXplX3Qgc2l6ZSkgeyBt
X21heGltdW1EZWNvZGVkSW1hZ2VTaXplID0gc2l6ZTsgfQotICAgICAgICBzaXplX3QgbWF4aW11
bURlY29kZWRJbWFnZVNpemUoKSBjb25zdCB7IHJldHVybiBtX21heGltdW1EZWNvZGVkSW1hZ2VT
aXplOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cyhib29s
KTsKLSAgICAgICAgYm9vbCBhbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cygpIGNvbnN0IHsgcmV0
dXJuIG1fYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3M7IH0KLQotICAgICAgICB2b2lkIHNldEVk
aXRpbmdCZWhhdmlvclR5cGUoRWRpdGluZ0JlaGF2aW9yVHlwZSBiZWhhdmlvcikgeyBtX2VkaXRp
bmdCZWhhdmlvclR5cGUgPSBiZWhhdmlvcjsgfQotICAgICAgICBFZGl0aW5nQmVoYXZpb3JUeXBl
IGVkaXRpbmdCZWhhdmlvclR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFZGl0aW5n
QmVoYXZpb3JUeXBlPihtX2VkaXRpbmdCZWhhdmlvclR5cGUpOyB9Ci0KLSAgICAgICAgdm9pZCBz
ZXREb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgZG93
bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kb3dubG9hZGFi
bGVCaW5hcnlGb250c0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldFhTU0F1ZGl0b3JFbmFi
bGVkKGJvb2wpOwotICAgICAgICBib29sIHhzc0F1ZGl0b3JFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV94c3NBdWRpdG9yRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0Q2FudmFzVXNlc0Fj
Y2VsZXJhdGVkRHJhd2luZyhib29sKTsKLSAgICAgICAgYm9vbCBjYW52YXNVc2VzQWNjZWxlcmF0
ZWREcmF3aW5nKCkgY29uc3QgeyByZXR1cm4gbV9jYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5n
OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5h
YmxlZCkgeyBtX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAg
IGJvb2wgYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0
ZXJzRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkID0g
ZW5hYmxlZDsgfQotICAgICAgICBib29sIGFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX2FjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQ7IH0KLQogICAgICAgICB2b2lk
IHNldENTU0N1c3RvbUZpbHRlckVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1faXNDU1NDdXN0b21G
aWx0ZXJFbmFibGVkID0gZW5hYmxlZDsgfQogICAgICAgICBib29sIGlzQ1NTQ3VzdG9tRmlsdGVy
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDU1NDdXN0b21GaWx0ZXJFbmFibGVkOyB9CiAK
QEAgLTM3OCwxODQgKzI0NiwzOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
Y3NzVmFyaWFibGVzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAot
ICAgICAgICB2b2lkIHNldFJlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7
IG1fcmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBy
ZWdpb25CYXNlZENvbHVtbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZWdpb25CYXNlZENv
bHVtbnNFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChi
b29sIGVuYWJsZWQpIHsgbV9jc3NHcmlkTGF5b3V0RW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAg
ICAgYm9vbCBjc3NHcmlkTGF5b3V0RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY3NzR3JpZExh
eW91dEVuYWJsZWQ7IH0KLQogICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkKGJvb2wpOwogICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsgfQogCi0g
ICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJs
ZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNm
b3Jtc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3Iz
RFRyYW5zZm9ybXNFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yVmlkZW9FbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdGb3JQbHVnaW5zRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBhY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdGb3JQbHVnaW5zRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJv
b2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckNhbnZhc0VuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JDYW52YXNFbmFibGVkOyB9Ci0KLSAgICAgICAg
dm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZChib29sKTsK
LSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJs
ZWQ7IH0KLQotICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBv
c2l0aW9uRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
Rml4ZWRQb3NpdGlvbkVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9h
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQ7IH0KLQotICAgICAg
ICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxl
ZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZy
YW1lc0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQ7IH0KLQotICAgICAgICB2
b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoYm9v
bCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
T3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkOyB9OwotCiAgICAgICAgIHZvaWQgc2V0U2hv
d0RlYnVnQm9yZGVycyhib29sKTsKICAgICAgICAgYm9vbCBzaG93RGVidWdCb3JkZXJzKCkgY29u
c3QgeyByZXR1cm4gbV9zaG93RGVidWdCb3JkZXJzOyB9CiAKICAgICAgICAgdm9pZCBzZXRTaG93
UmVwYWludENvdW50ZXIoYm9vbCk7CiAgICAgICAgIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKCkg
Y29uc3QgeyByZXR1cm4gbV9zaG93UmVwYWludENvdW50ZXI7IH0KIAotICAgICAgICB2b2lkIHNl
dEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wpOwotICAgICAgICBib29sIGV4
cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9leHBlcmlt
ZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZDsgfQotCiAjaWYgUExBVEZPUk0oV0lOKSB8fCAoT1Mo
V0lORE9XUykgJiYgUExBVEZPUk0oV1gpKQogICAgICAgICBzdGF0aWMgdm9pZCBzZXRTaG91bGRV
c2VIaWdoUmVzb2x1dGlvblRpbWVycyhib29sKTsKICAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxk
VXNlSGlnaFJlc29sdXRpb25UaW1lcnMoKSB7IHJldHVybiBnU2hvdWxkVXNlSGlnaFJlc29sdXRp
b25UaW1lcnM7IH0KICNlbmRpZgogCi0gICAgICAgIHZvaWQgc2V0V2ViQXVkaW9FbmFibGVkKGJv
b2wpOwotICAgICAgICBib29sIHdlYkF1ZGlvRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vi
QXVkaW9FbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRXZWJHTEVuYWJsZWQoYm9vbCk7Ci0g
ICAgICAgIGJvb2wgd2ViR0xFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV93ZWJHTEVuYWJsZWQ7
IH0KLQotICAgICAgICB2b2lkIHNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChib29sKTsK
LSAgICAgICAgYm9vbCB3ZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX3dlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0T3Bl
bkdMTXVsdGlzYW1wbGluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgb3BlbkdMTXVsdGlz
YW1wbGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX29wZW5HTE11bHRpc2FtcGxpbmdFbmFi
bGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRQcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxl
ZChib29sKTsKLSAgICAgICAgYm9vbCBwcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQ7IH0KLQot
ICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGJvb2wpOwotICAgICAg
ICBib29sIGFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2Nl
bGVyYXRlZENhbnZhczJkRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGVmZXJyZWQyZENh
bnZhc0VuYWJsZWQoYm9vbCk7Ci0gICAgICAgIGJvb2wgZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2RlZmVycmVkQ2FudmFzMmRFbmFibGVkOyB9Ci0KLSAgICAgICAg
Ly8gTnVtYmVyIG9mIHBpeGVscyBiZWxvdyB3aGljaCAyRCBjYW52YXMgaXMgcmVuZGVyZWQgaW4g
c29mdHdhcmUKLSAgICAgICAgLy8gZXZlbiBpZiBoYXJkd2FyZSBhY2NlbGVyYXRpb24gaXMgZW5h
YmxlZC4KLSAgICAgICAgLy8gSGFyZHdhcmUgYWNjZWxlcmF0aW9uIGlzIHVzZWZ1bCBmb3IgbGFy
Z2UgY2FudmFzZXMgd2hlcmUgaXQgY2FuIGF2b2lkIHRoZQotICAgICAgICAvLyBwaXhlbCBiYW5k
d2lkdGggYmV0d2VlbiB0aGUgQ1BVIGFuZCBHUFUuIEJ1dCBHUFUgYWNjZWxlcmF0aW9uIGNvbWVz
IGF0Ci0gICAgICAgIC8vIGEgcHJpY2UgLSBleHRyYSBiYWNrLWJ1ZmZlciBhbmQgdGV4dHVyZSBj
b3B5LiBTbWFsbCBjYW52YXNlcyBhcmUgYWxzbwotICAgICAgICAvLyB3aWRlbHkgdXNlZCBmb3Ig
c3R5bGl6ZWQgZm9udHMuIEFudGktYWxpYXNpbmcgdGV4dCBpbiBoYXJkd2FyZSBhdCB0aGF0Ci0g
ICAgICAgIC8vIHNjYWxlIGlzIGdlbmVyYWxseSBzbG93ZXIuIFNvIGJlbG93IGEgY2VydGFpbiBz
aXplIGl0IGlzIGJldHRlciB0bwotICAgICAgICAvLyBkcmF3IGNhbnZhcyBpbiBzb2Z0d2FyZS4K
LSAgICAgICAgdm9pZCBzZXRNaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUoaW50KTsKLSAg
ICAgICAgaW50IG1pbmltdW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRM
b2FkRGVmZXJyaW5nRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBsb2FkRGVmZXJyaW5nRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZERlZmVycmluZ0VuYWJsZWQ7IH0KLSAgICAgICAg
CiAgICAgICAgIHZvaWQgc2V0VGlsZWRCYWNraW5nU3RvcmVFbmFibGVkKGJvb2wpOwogICAgICAg
ICBib29sIHRpbGVkQmFja2luZ1N0b3JlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGlsZWRC
YWNraW5nU3RvcmVFbmFibGVkOyB9CiAKLSAgICAgICAgdm9pZCBzZXRQYWdpbmF0ZUR1cmluZ0xh
eW91dEVuYWJsZWQoYm9vbCBmbGFnKSB7IG1fcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkID0g
ZmxhZzsgfQotICAgICAgICBib29sIHBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkOyB9Ci0KLSNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCi0gICAgICAgIHZvaWQgc2V0RnVsbFNjcmVlbkVuYWJsZWQoYm9vbCBm
bGFnKSB7IG1fZnVsbFNjcmVlbkFQSUVuYWJsZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgZnVs
bFNjcmVlbkVuYWJsZWQoKSBjb25zdCAgeyByZXR1cm4gbV9mdWxsU2NyZWVuQVBJRW5hYmxlZDsg
fQotI2VuZGlmCi0KICNpZiBVU0UoQVZGT1VOREFUSU9OKQogICAgICAgICBzdGF0aWMgdm9pZCBz
ZXRBVkZvdW5kYXRpb25FbmFibGVkKGJvb2wgZmxhZykgeyBnQVZGb3VuZGF0aW9uRW5hYmxlZCA9
IGZsYWc7IH0KICAgICAgICAgc3RhdGljIGJvb2wgaXNBVkZvdW5kYXRpb25FbmFibGVkKCkgeyBy
ZXR1cm4gZ0FWRm91bmRhdGlvbkVuYWJsZWQ7IH0KICNlbmRpZgogCi0gICAgICAgIHZvaWQgc2V0
QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1fYXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgYXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBjb25zdCAgeyByZXR1cm4gbV9hc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZDsgfQotCiAgICAgICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVj
a2VyRW5hYmxlZChib29sIGZsYWcpIHsgbV91bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkID0gZmxh
ZzsgfQogICAgICAgICBib29sIHVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX3VuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQ7IH0KIAotICAgICAgICB2b2lkIHNldE1l
bW9yeUluZm9FbmFibGVkKGJvb2wgZmxhZykgeyBtX21lbW9yeUluZm9FbmFibGVkID0gZmxhZzsg
fQotICAgICAgICBib29sIG1lbW9yeUluZm9FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tZW1v
cnlJbmZvRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0UXVhbnRpemVkTWVtb3J5SW5mb0Vu
YWJsZWQoYm9vbCBmbGFnKSB7IG1fcXVhbnRpemVkTWVtb3J5SW5mb0VuYWJsZWQgPSBmbGFnOyB9
Ci0gICAgICAgIGJvb2wgcXVhbnRpemVkTWVtb3J5SW5mb0VuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX3F1YW50aXplZE1lbW9yeUluZm9FbmFibGVkOyB9Ci0KLSAgICAgICAgLy8gVGhpcyBmZWF0
dXJlIHJlcXVpcmVzIGFuIGltcGxlbWVudGF0aW9uIG9mIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50
LgotICAgICAgICB2b2lkIHNldEludGVyYWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkKGJvb2wg
ZmxhZykgeyBtX2ludGVyYWN0aXZlRm9ybVZhbGlkYXRpb24gPSBmbGFnOyB9Ci0gICAgICAgIGJv
b2wgaW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lu
dGVyYWN0aXZlRm9ybVZhbGlkYXRpb247IH0KLQotICAgICAgICAvLyBTZXRzIHRoZSBtYWdpbmlj
YXRpb24gdmFsdWUgZm9yIHZhbGlkYXRpb24gbWVzc2FnZSB0aW1lci4KLSAgICAgICAgLy8gSWYg
dGhlIG1hZ2luaWNhdGlvbiB2YWx1ZSBpcyBOLCBhIHZhbGlkYXRpb24gbWVzc2FnZSBkaXNhcHBl
YXJzCi0gICAgICAgIC8vIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgPG1lc3NhZ2UgbGVuZ3RoPiAqIE4g
LyAxMDAwIHNlY29uZHMuIElmIE4gaXMKLSAgICAgICAgLy8gZXF1YWwgdG8gb3IgbGVzcyB0aGFu
IDAsIGEgdmFsaWRhdGlvbiBtZXNzYWdlIGRvZXNuJ3QgZGlzYXBwZWFycwotICAgICAgICAvLyBh
dXRvbWF0aWNhbHkuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDUwLgotICAgICAgICB2b2lkIHNldFZh
bGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKGludCBuZXdWYWx1ZSkgeyBtX3ZhbGlk
YXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uID0gbmV3VmFsdWU7IH0KLSAgICAgICAgaW50
IHZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWdpbmlmaWNhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
dmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb247IH0KLSAgICAgICAgCi0gICAgICAg
IHZvaWQgc2V0VXNlUHJlSFRNTDVQYXJzZXJRdWlya3MoYm9vbCBmbGFnKSB7IG1fdXNlUHJlSFRN
TDVQYXJzZXJRdWlya3MgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgdXNlUHJlSFRNTDVQYXJzZXJR
dWlya3MoKSBjb25zdCB7IHJldHVybiBtX3VzZVByZUhUTUw1UGFyc2VyUXVpcmtzOyB9Ci0KICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGRlZmF1bHRNYXhpbXVtSFRNTFBhcnNlckRPTVRy
ZWVEZXB0aCA9IDUxMjsKLSAgICAgICAgdm9pZCBzZXRNYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVE
ZXB0aCh1bnNpZ25lZCBtYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCkgeyBtX21heGltdW1I
VE1MUGFyc2VyRE9NVHJlZURlcHRoID0gbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGg7IH0K
LSAgICAgICAgdW5zaWduZWQgbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgoKSBjb25zdCB7
IHJldHVybiBtX21heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoOyB9Ci0KLSAgICAgICAgdm9p
ZCBzZXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1faHlwZXJsaW5rQXVk
aXRpbmdFbmFibGVkID0gZmxhZzsgfQotICAgICAgICBib29sIGh5cGVybGlua0F1ZGl0aW5nRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkOyB9Ci0KLSAg
ICAgICAgdm9pZCBzZXRDcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNhYmxl
ZChib29sIGZsYWcpIHsgbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNh
YmxlZCA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBjcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVk
Q1NTUnVsZXNEaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY3Jvc3NPcmlnaW5DaGVja0luR2V0
TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQ7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0TGF5
b3V0RmFsbGJhY2tXaWR0aChpbnQgd2lkdGgpIHsgbV9sYXlvdXRGYWxsYmFja1dpZHRoID0gd2lk
dGg7IH0KLSAgICAgICAgaW50IGxheW91dEZhbGxiYWNrV2lkdGgoKSBjb25zdCB7IHJldHVybiBt
X2xheW91dEZhbGxiYWNrV2lkdGg7IH0KLQotICAgICAgICB2b2lkIHNldERldmljZVdpZHRoKGlu
dCB3aWR0aCkgeyBtX2RldmljZVdpZHRoID0gd2lkdGg7IH0KLSAgICAgICAgaW50IGRldmljZVdp
ZHRoKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VXaWR0aDsgfQotCi0gICAgICAgIHZvaWQgc2V0
RGV2aWNlSGVpZ2h0KGludCBoZWlnaHQpIHsgbV9kZXZpY2VIZWlnaHQgPSBoZWlnaHQ7IH0KLSAg
ICAgICAgaW50IGRldmljZUhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlSGVpZ2h0OyB9
Ci0KLSAgICAgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGZsYWcpIHsgbV9m
b3JjZUNvbXBvc2l0aW5nTW9kZSA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBmb3JjZUNvbXBvc2l0
aW5nTW9kZSgpIHsgcmV0dXJuIG1fZm9yY2VDb21wb3NpdGluZ01vZGU7IH0KLQotICAgICAgICB2
b2lkIHNldFNob3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudChib29s
IGZsYWcpIHsgbV9zaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQg
PSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgc2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxF
bXB0eURvY3VtZW50KCkgeyByZXR1cm4gbV9zaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlh
bEVtcHR5RG9jdW1lbnQ7IH0KLQotICAgICAgICB2b2lkIHNldEFsbG93RGlzcGxheU9mSW5zZWN1
cmVDb250ZW50KGJvb2wgZmxhZykgeyBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50ID0g
ZmxhZzsgfQotICAgICAgICBib29sIGFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KCkgY29u
c3QgeyByZXR1cm4gbV9hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudDsgfQotICAgICAgICB2
b2lkIHNldEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KGJvb2wgZmxhZykgeyBtX2FsbG93
UnVubmluZ09mSW5zZWN1cmVDb250ZW50ID0gZmxhZzsgfQotICAgICAgICBib29sIGFsbG93UnVu
bmluZ09mSW5zZWN1cmVDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd1J1bm5pbmdPZklu
c2VjdXJlQ29udGVudDsgfQogCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiAgICAgICAg
IHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoYm9vbCBmbGFnKSB7IG1fc2Nyb2xsQW5pbWF0
b3JFbmFibGVkID0gZmxhZzsgfQogICAgICAgICBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsQW5pbWF0b3JFbmFibGVkOyB9CiAjZW5kaWYKIAotICAg
ICAgICB2b2lkIHNldE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKGJvb2wgZmxhZykg
eyBtX21lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gZmxhZzsgfTsKLSAgICAgICAg
Ym9vbCBtZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmU7IH0KLQotICAgICAgICB2b2lkIHNldE1l
ZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUoYm9vbCBmbGFnKSB7IG1fbWVkaWFQbGF5YmFja0FsbG93
c0lubGluZSA9IGZsYWc7IH07Ci0gICAgICAgIGJvb2wgbWVkaWFQbGF5YmFja0FsbG93c0lubGlu
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFQbGF5YmFja0FsbG93c0lubGluZTsgfQotCi0gICAg
ICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hvRW5hYmxlZChib29sIGZsYWcpIHsgbV9wYXNzd29yZEVj
aG9FbmFibGVkID0gZmxhZzsgfQotICAgICAgICBib29sIHBhc3N3b3JkRWNob0VuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX3Bhc3N3b3JkRWNob0VuYWJsZWQ7IH0KLQotICAgICAgICB2b2lkIHNl
dFN1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZyhib29sIGZsYWcpIHsgbV9zdXBwcmVzc2Vz
SW5jcmVtZW50YWxSZW5kZXJpbmcgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgc3VwcHJlc3Nlc0lu
Y3JlbWVudGFsUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwcmVzc2VzSW5jcmVtZW50
YWxSZW5kZXJpbmc7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0QmFja3NwYWNlS2V5TmF2
aWdhdGlvbkVuYWJsZWQoYm9vbCBmbGFnKSB7IG1fYmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJs
ZWQgPSBmbGFnOyB9Ci0gICAgICAgIGJvb2wgYmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2JhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVkOyB9Ci0gICAg
ICAgIAotICAgICAgICB2b2lkIHNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGRvdWJs
ZSBkdXJhdGlvbkluU2Vjb25kcykgeyBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzID0g
ZHVyYXRpb25JblNlY29uZHM7IH0KLSAgICAgICAgZG91YmxlIHBhc3N3b3JkRWNob0R1cmF0aW9u
SW5TZWNvbmRzKCkgY29uc3QgeyByZXR1cm4gbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25k
czsgfQotCiAjaWYgVVNFKFNBRkFSSV9USEVNRSkKICAgICAgICAgLy8gV2luZG93cyBkZWJ1Z2dp
bmcgcHJlZiAoZ2xvYmFsKSBmb3Igc3dpdGNoaW5nIGJldHdlZW4gdGhlIEFxdWEgbG9vayBhbmQg
YSBuYXRpdmUgd2luZG93cyBsb29rLgogICAgICAgICBzdGF0aWMgdm9pZCBzZXRTaG91bGRQYWlu
dE5hdGl2ZUNvbnRyb2xzKGJvb2wpOwpAQCAtNTY4LDY4ICsyOTAsMTEgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBzdGF0aWMgdm9pZCBzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnMoYm9v
bCBmbGFnKTsKICAgICAgICAgc3RhdGljIGJvb2wgdXNlc092ZXJsYXlTY3JvbGxiYXJzKCk7CiAK
LSAgICAgICAgdm9pZCBzZXRWaXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkKGJvb2wgZW5hYmxlZCkg
eyBtX3Zpc3VhbFdvcmRNb3ZlbWVudEVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wg
dmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlzdWFsV29yZE1v
dmVtZW50RW5hYmxlZDsgfQotCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgICAgICB2b2lk
IHNldFNob3VsZERpc3BsYXlTdWJ0aXRsZXMoYm9vbCBmbGFnKSB7IG1fc2hvdWxkRGlzcGxheVN1
YnRpdGxlcyA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBzaG91bGREaXNwbGF5U3VidGl0bGVzKCkg
Y29uc3QgeyByZXR1cm4gbV9zaG91bGREaXNwbGF5U3VidGl0bGVzOyB9Ci0KLSAgICAgICAgdm9p
ZCBzZXRTaG91bGREaXNwbGF5Q2FwdGlvbnMoYm9vbCBmbGFnKSB7IG1fc2hvdWxkRGlzcGxheUNh
cHRpb25zID0gZmxhZzsgfQotICAgICAgICBib29sIHNob3VsZERpc3BsYXlDYXB0aW9ucygpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvdWxkRGlzcGxheUNhcHRpb25zOyB9Ci0KLSAgICAgICAgdm9pZCBz
ZXRTaG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9ucyhib29sIGZsYWcpIHsgbV9zaG91bGREaXNw
bGF5VGV4dERlc2NyaXB0aW9ucyA9IGZsYWc7IH0KLSAgICAgICAgYm9vbCBzaG91bGREaXNwbGF5
VGV4dERlc2NyaXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRGlzcGxheVRleHREZXNj
cmlwdGlvbnM7IH0KLSNlbmRpZgotCi0gICAgICAgIHZvaWQgc2V0U2Nyb2xsaW5nQ29vcmRpbmF0
b3JFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZCA9
IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBzY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZDsgfQotCi0gICAgICAg
IHZvaWQgc2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fbm90aWZpY2F0
aW9uc0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgbm90aWZpY2F0aW9uc0VuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX25vdGlmaWNhdGlvbnNFbmFibGVkOyB9Ci0KLSAgICAgICAg
Ly8gU29tZSBhcHBzIG5lZWRzIGlzTG9hZGluZ0luQVBJU2Vuc2UgdG8gYWNjb3VudCBmb3IgYWN0
aXZlIHN1YnJlc291cmNlIGxvYWRlcnMuCi0gICAgICAgIHZvaWQgc2V0TmVlZHNJc0xvYWRpbmdJ
bkFQSVNlbnNlUXVpcmsoYm9vbCBlbmFibGVkKSB7IG1fbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNl
UXVpcmsgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNl
UXVpcmsoKSBjb25zdCB7IHJldHVybiBtX25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrOyB9
Ci0KICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgICAgICB2b2lkIHNldFRvdWNoRXZlbnRF
bXVsYXRpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3RvdWNoRXZlbnRFbXVsYXRpb25FbmFi
bGVkID0gZW5hYmxlZDsgfQogICAgICAgICBib29sIGlzVG91Y2hFdmVudEVtdWxhdGlvbkVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkOyB9CiAjZW5k
aWYKIAotICAgICAgICB2b2lkIHNldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKGJvb2wg
ZW5hYmxlZCkgeyBtX3Nob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID0gZW5hYmxlZDsgfQot
ICAgICAgICBib29sIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbjsgfQotCi0gICAgICAgIHZvaWQgc2V0
V2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcihib29sIGZsYWcpIHsgbV93YW50
c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yID0gZmxhZzsgfQotICAgICAgICBib29s
IHdhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBt
X3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3I7IH0KLQotICAgICAgICB2b2lk
IHNldEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzKGRvdWJs
ZSB0aW1lb3V0KSB7IG1faW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNl
Y29uZHMgPSB0aW1lb3V0OyB9Ci0gICAgICAgIGRvdWJsZSBpbmNyZW1lbnRhbFJlbmRlcmluZ1N1
cHByZXNzaW9uVGltZW91dEluU2Vjb25kcygpIGNvbnN0IHsgcmV0dXJuIG1faW5jcmVtZW50YWxS
ZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHM7IH0KLQotICAgICAgICB2b2lkIHNl
dFJlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fcmVxdWVzdEFu
aW1hdGlvbkZyYW1lRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCByZXF1ZXN0QW5p
bWF0aW9uRnJhbWVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0QW5pbWF0aW9uRnJh
bWVFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXREZXZpY2VTdXBwb3J0c1RvdWNoKGJvb2wg
ZW5hYmxlZCkgeyBtX2RldmljZVN1cHBvcnRzVG91Y2ggPSBlbmFibGVkOyB9Ci0gICAgICAgIGJv
b2wgZGV2aWNlU3VwcG9ydHNUb3VjaCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU3VwcG9ydHNU
b3VjaDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNNb3VzZShib29sIGVuYWJs
ZWQpIHsgbV9kZXZpY2VTdXBwb3J0c01vdXNlID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGRl
dmljZVN1cHBvcnRzTW91c2UoKSBjb25zdCB7IHJldHVybiBtX2RldmljZVN1cHBvcnRzTW91c2U7
IH0KLQotICAgICAgICB2b2lkIHNldE5lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsoYm9vbCBu
ZWVkc1F1aXJrKSB7IG1fbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyayA9IG5lZWRzUXVpcms7
IH0KLSAgICAgICAgYm9vbCBuZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKCkgY29uc3QgeyBy
ZXR1cm4gbV9uZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrOyB9Ci0KLSAgICAgICAgdm9pZCBz
ZXRGaXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dChib29sIGNyZWF0ZXMpIHsgbV9m
aXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dCA9IGNyZWF0ZXM7IH0KLSAgICAgICAg
Ym9vbCBmaXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJu
IG1fZml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQ7IH0KLQotICAgICAgICB2b2lk
IHNldFN5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fc3luY1hIUklu
RG9jdW1lbnRzRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBzeW5jWEhSSW5Eb2N1
bWVudHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVk
OyB9Ci0KLSAgICAgICAgLy8gV2hlbiBlbmFibGVkLCB3aW5kb3cuYmx1cigpIGRvZXMgbm90IGNo
YW5nZSBmb2N1cywgYW5kCi0gICAgICAgIC8vIHdpbmRvdy5mb2N1cygpIG9ubHkgY2hhbmdlcyBm
b2N1cyB3aGVuIGludm9rZWQgZnJvbSB0aGUgY29udGV4dCB0aGF0Ci0gICAgICAgIC8vIGNyZWF0
ZWQgdGhlIHdpbmRvdy4KLSAgICAgICAgdm9pZCBzZXRXaW5kb3dGb2N1c1Jlc3RyaWN0ZWQoYm9v
bCByZXN0cmljdGVkKSB7IG1fd2luZG93Rm9jdXNSZXN0cmljdGVkID0gcmVzdHJpY3RlZDsgfQot
ICAgICAgICBib29sIHdpbmRvd0ZvY3VzUmVzdHJpY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lu
ZG93Rm9jdXNSZXN0cmljdGVkOyB9Ci0KICAgICAgICAgdm9pZCBzZXRTdG9yYWdlQmxvY2tpbmdQ
b2xpY3koU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSk7CiAgICAgICAgIFNl
Y3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9saWN5
KCkgY29uc3QgeyByZXR1cm4gbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3k7IH0KIApAQCAtNjQxLDE4
ICszMDYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBib29sIHNob3Vs
ZFJlc3BlY3RQcmlvcml0eUluQ1NTQXR0cmlidXRlU2V0dGVycygpOwogI2VuZGlmCiAKLSAgICAg
ICAgdm9pZCBzZXRDb29raWVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2Nvb2tpZUVuYWJsZWQg
PSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgY29va2llRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fY29va2llRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0RGlhZ25vc3RpY0xvZ2dpbmdF
bmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCA9IGVuYWJs
ZWQ7IH0KLSAgICAgICAgYm9vbCBkaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQgc2V0QXBw
bHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoYm9vbCBlbmFibGVkKSB7IG1fYXBwbHlQYWdl
U2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYXBwbHlQ
YWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSBjb25zdCB7IHJldHVybiBtX2FwcGx5UGFnZVNj
YWxlRmFjdG9ySW5Db21wb3NpdG9yOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRQbHVnSW5TbmFwc2hv
dHRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3BsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQg
PSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgcGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fcGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZDsgfQotCiAgICAgcHJpdmF0
ZToKICAgICAgICAgZXhwbGljaXQgU2V0dGluZ3MoUGFnZSopOwogCkBAIC02NjAsOSArMzEzLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIFBhZ2UqIG1fcGFnZTsKIAotICAgICAg
ICBTdHJpbmcgbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZTsKLSAgICAgICAgU3RyaW5nIG1fZnRw
RGlyZWN0b3J5VGVtcGxhdGVQYXRoOwotICAgICAgICBTdHJpbmcgbV9sb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGg7CiAgICAgICAgIFN0cmluZyBtX21lZGlhVHlwZU92ZXJyaWRlOwogICAgICAgICBL
VVJMIG1fdXNlclN0eWxlU2hlZXRMb2NhdGlvbjsKICAgICAgICAgU2NyaXB0Rm9udEZhbWlseU1h
cCBtX3N0YW5kYXJkRm9udEZhbWlseU1hcDsKQEAgLTY3MiwyMyArMzIyLDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgU2NyaXB0Rm9udEZhbWlseU1hcCBtX2N1cnNpdmVGb250RmFt
aWx5TWFwOwogICAgICAgICBTY3JpcHRGb250RmFtaWx5TWFwIG1fZmFudGFzeUZvbnRGYW1pbHlN
YXA7CiAgICAgICAgIFNjcmlwdEZvbnRGYW1pbHlNYXAgbV9waWN0b2dyYXBoRm9udEZhbWlseU1h
cDsKLSAgICAgICAgRWRpdGFibGVMaW5rQmVoYXZpb3IgbV9lZGl0YWJsZUxpbmtCZWhhdmlvcjsK
LSAgICAgICAgVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBtX3RleHREaXJl
Y3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I7Ci0gICAgICAgIGRvdWJsZSBtX3Bhc3N3b3Jk
RWNob0R1cmF0aW9uSW5TZWNvbmRzOwogICAgICAgICBpbnQgbV9taW5pbXVtRm9udFNpemU7CiAg
ICAgICAgIGludCBtX21pbmltdW1Mb2dpY2FsRm9udFNpemU7CiAgICAgICAgIGludCBtX2RlZmF1
bHRGb250U2l6ZTsKICAgICAgICAgaW50IG1fZGVmYXVsdEZpeGVkRm9udFNpemU7CiAgICAgICAg
IGJvb2wgbV9zY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZDsKLSAgICAgICAgaW50IG1fdmFs
aWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb247Ci0gICAgICAgIGludCBtX21pbmltdW1B
Y2NlbGVyYXRlZDJkQ2FudmFzU2l6ZTsKLSAgICAgICAgaW50IG1fbGF5b3V0RmFsbGJhY2tXaWR0
aDsKLSAgICAgICAgc2l6ZV90IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7Ci0gICAgICAgIGlu
dCBtX2RldmljZVdpZHRoOwotICAgICAgICBpbnQgbV9kZXZpY2VIZWlnaHQ7Ci0gICAgICAgIHVu
c2lnbmVkIG1fc2Vzc2lvblN0b3JhZ2VRdW90YTsKLSAgICAgICAgdW5zaWduZWQgbV9lZGl0aW5n
QmVoYXZpb3JUeXBlOwotICAgICAgICB1bnNpZ25lZCBtX21heGltdW1IVE1MUGFyc2VyRE9NVHJl
ZURlcHRoOwogICAgICAgICBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IG1f
c3RvcmFnZUJsb2NraW5nUG9saWN5OwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAg
ICAgIGZsb2F0IG1fdGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3I7CkBAIC02OTYsNTggKzMz
NCwyNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV90ZXh0QXV0b3Npemlu
Z0VuYWJsZWQgOiAxOwogI2VuZGlmCiAgICAgICAgIEludFNpemUgbV9yZXNvbHV0aW9uRGVuc2l0
eVBlckluY2hPdmVycmlkZTsKKworICAgICAgICBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTCisK
ICAgICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIDogMTsKICAgICAgICAg
Ym9vbCBtX2lzSmF2YUVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5hYmxlZEZv
ckxvY2FsRmlsZXMgOiAxOwogICAgICAgICBib29sIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
IDogMTsKLSAgICAgICAgYm9vbCBtX2xvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdT
ZXR0aW5nIDogMTsKICAgICAgICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQgOiAxOwot
ICAgICAgICBib29sIG1fY2FyZXRCcm93c2luZ0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1f
YXJlSW1hZ2VzRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc01lZGlhRW5hYmxlZCA6IDE7
CiAgICAgICAgIGJvb2wgbV9hcmVQbHVnaW5zRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9s
b2NhbFN0b3JhZ2VFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzU2NyaXB0RW5hYmxlZCA6
IDE7CiAgICAgICAgIGJvb2wgbV9pc1dlYlNlY3VyaXR5RW5hYmxlZCA6IDE7Ci0gICAgICAgIGJv
b2wgbV9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczogMTsKLSAgICAgICAgYm9vbCBt
X2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczogMTsKLSAgICAgICAgYm9vbCBtX2phdmFTY3Jp
cHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgOiAxOwotICAgICAgICBib29sIG1fc3VwcG9y
dHNNdWx0aXBsZVdpbmRvd3MgOiAxOwotICAgICAgICBib29sIG1famF2YVNjcmlwdENhbkFjY2Vz
c0NsaXBib2FyZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9zaG91bGRQcmludEJhY2tncm91bmRzIDog
MTsKICAgICAgICAgYm9vbCBtX3RleHRBcmVhc0FyZVJlc2l6YWJsZSA6IDE7Ci0jaWYgRU5BQkxF
KERBU0hCT0FSRF9TVVBQT1JUKQotICAgICAgICBib29sIG1fdXNlc0Rhc2hib2FyZEJhY2t3YXJk
Q29tcGF0aWJpbGl0eU1vZGUgOiAxOwotI2VuZGlmCiAgICAgICAgIGJvb2wgbV9uZWVkc0Fkb2Jl
RnJhbWVSZWxvYWRpbmdRdWlyayA6IDE7Ci0gICAgICAgIGJvb2wgbV9uZWVkc0tleWJvYXJkRXZl
bnREaXNhbWJpZ3VhdGlvblF1aXJrcyA6IDE7Ci0gICAgICAgIGJvb2wgbV90cmVhdHNBbnlUZXh0
Q1NTTGlua0FzU3R5bGVzaGVldCA6IDE7Ci0gICAgICAgIGJvb2wgbV9uZWVkc0xlb3BhcmRNYWls
UXVpcmtzIDogMTsKICAgICAgICAgYm9vbCBtX2lzRE9NUGFzdGVBbGxvd2VkIDogMTsKLSAgICAg
ICAgYm9vbCBtX3Nocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQgOiAxOwogICAgICAgICBib29s
IG1fdXNlc1BhZ2VDYWNoZSA6IDE7Ci0gICAgICAgIGJvb2wgbV9wYWdlQ2FjaGVTdXBwb3J0c1Bs
dWdpbnMgOiAxOwotICAgICAgICBib29sIG1fc2hvd3NVUkxzSW5Ub29sVGlwcyA6IDE7Ci0gICAg
ICAgIGJvb2wgbV9zaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCA6IDE7Ci0gICAgICAgIGJv
b2wgbV9mb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzIDogMTsKLSAgICAgICAgYm9vbCBtX2RldmVs
b3BlckV4dHJhc0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1famF2YVNjcmlwdEV4cGVyaW1l
bnRzRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9hdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxl
ZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA6IDE7CiAgICAg
ICAgIHVuc2lnbmVkIG1fZm9udFJlbmRlcmluZ01vZGUgOiAxOwotICAgICAgICBib29sIG1fZnJh
bWVGbGF0dGVuaW5nRW5hYmxlZCA6IDE7Ci0jaWYgRU5BQkxFKFdFQl9BUkNISVZFKQotICAgICAg
ICBib29sIG1fd2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQgOiAxOwotI2VuZGlmCi0gICAgICAg
IGJvb2wgbV9sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkIDogMTsKICAgICAgICAgYm9v
bCBtX2luQXBwbGljYXRpb25DaHJvbWVNb2RlIDogMTsKLSAgICAgICAgYm9vbCBtX29mZmxpbmVX
ZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9lbmZvcmNlQ1NT
TUlNRVR5cGVJbk5vUXVpcmtzTW9kZSA6IDE7Ci0gICAgICAgIGJvb2wgbV91c2VzRW5jb2RpbmdE
ZXRlY3RvciA6IDE7Ci0gICAgICAgIGJvb2wgbV9hbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cyA6
IDE7Ci0gICAgICAgIGJvb2wgbV9jYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nIDogMTsKLSAg
ICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQgOiAxOwotICAgICAgICBib29s
IG1fYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc0NTU0N1
c3RvbUZpbHRlckVuYWJsZWQgOiAxOwogI2lmIEVOQUJMRShDU1NfU1RJQ0tZX1BPU0lUSU9OKQog
ICAgICAgICBib29sIG1fY3NzU3RpY2t5UG9zaXRpb25FbmFibGVkIDogMTsKQEAgLTc1OCw5NyAr
MzY0LDI0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxFUykK
ICAgICAgICAgYm9vbCBtX2Nzc1ZhcmlhYmxlc0VuYWJsZWQgOiAxOwogI2VuZGlmCi0gICAgICAg
IGJvb2wgbV9yZWdpb25CYXNlZENvbHVtbnNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2Nz
c0dyaWRMYXlvdXRFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2Rvd25sb2FkYWJsZUJpbmFy
eUZvbnRzRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV94c3NBdWRpdG9yRW5hYmxlZCA6IDE7
CiAgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA6IDE7Ci0gICAg
ICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVk
IDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9y
bXNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JW
aWRlb0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zv
clBsdWdpbnNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdGb3JDYW52YXNFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JBbmltYXRpb25FbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9h
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQgOiAxOyAvLyBX
b3JrcyBvbmx5IGluIGNvbmp1bmN0aW9uIHdpdGggZm9yY2VDb21wb3NpdGluZ01vZGUKICAgICAg
ICAgYm9vbCBtX3Nob3dEZWJ1Z0JvcmRlcnMgOiAxOwogICAgICAgICBib29sIG1fc2hvd1JlcGFp
bnRDb3VudGVyIDogMTsKLSAgICAgICAgYm9vbCBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNF
bmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX3dlYkdMRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJv
b2wgbV93ZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fb3Bl
bkdMTXVsdGlzYW1wbGluZ0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fcHJpdmlsZWdlZFdl
YkdMRXh0ZW5zaW9uc0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fd2ViQXVkaW9FbmFibGVk
IDogMTsKLSAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ2FudmFzMmRFbmFibGVkIDogMTsKLSAg
ICAgICAgYm9vbCBtX2RlZmVycmVkQ2FudmFzMmRFbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBt
X2xvYWREZWZlcnJpbmdFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX3RpbGVkQmFja2luZ1N0
b3JlRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9wYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJs
ZWQgOiAxOwogICAgICAgICBib29sIG1fZG5zUHJlZmV0Y2hpbmdFbmFibGVkIDogMTsKLSNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgICAgIGJvb2wgbV9mdWxsU2NyZWVuQVBJRW5hYmxl
ZCA6IDE7Ci0jZW5kaWYKLSAgICAgICAgYm9vbCBtX2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX3VuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQgOiAx
OwotICAgICAgICBib29sIG1fbWVtb3J5SW5mb0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1f
cXVhbnRpemVkTWVtb3J5SW5mb0VuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1faW50ZXJhY3Rp
dmVGb3JtVmFsaWRhdGlvbiA6IDE7Ci0gICAgICAgIGJvb2wgbV91c2VQcmVIVE1MNVBhcnNlclF1
aXJrcyA6IDE7Ci0gICAgICAgIGJvb2wgbV9oeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQgOiAxOwot
ICAgICAgICBib29sIG1fY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJs
ZWQgOiAxOwotICAgICAgICBib29sIG1fZm9yY2VDb21wb3NpdGluZ01vZGUgOiAxOwotICAgICAg
ICBib29sIG1fc2hvdWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50IDog
MTsKLSAgICAgICAgYm9vbCBtX2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUgOiAx
OwotICAgICAgICBib29sIG1fYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQgOiAxOwotICAg
ICAgICBib29sIG1fYWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQgOiAxOwogI2lmIEVOQUJM
RShTTU9PVEhfU0NST0xMSU5HKQogICAgICAgICBib29sIG1fc2Nyb2xsQW5pbWF0b3JFbmFibGVk
IDogMTsKICNlbmRpZgotICAgICAgICBib29sIG1fbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdl
c3R1cmUgOiAxOwotICAgICAgICBib29sIG1fbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSA6IDE7
Ci0gICAgICAgIGJvb2wgbV9wYXNzd29yZEVjaG9FbmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBt
X3N1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZyA6IDE7Ci0gICAgICAgIGJvb2wgbV9iYWNr
c3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV92aXN1YWxXb3Jk
TW92ZW1lbnRFbmFibGVkIDogMTsKLQotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAgICAg
Ym9vbCBtX3Nob3VsZERpc3BsYXlTdWJ0aXRsZXMgOiAxOwotICAgICAgICBib29sIG1fc2hvdWxk
RGlzcGxheUNhcHRpb25zIDogMTsKLSAgICAgICAgYm9vbCBtX3Nob3VsZERpc3BsYXlUZXh0RGVz
Y3JpcHRpb25zIDogMTsKLSNlbmRpZgotICAgICAgICBib29sIG1fc2Nyb2xsaW5nQ29vcmRpbmF0
b3JFbmFibGVkIDogMTsKLQotICAgICAgICBib29sIG1fbm90aWZpY2F0aW9uc0VuYWJsZWQgOiAx
OwotICAgICAgICBib29sIG1fbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmsgOiAxOwogCiAj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICAgICAgYm9vbCBtX3RvdWNoRXZlbnRFbXVsYXRp
b25FbmFibGVkIDogMTsKICNlbmRpZgotICAgICAgICBib29sIG1fc2hvdWxkUmVzcGVjdEltYWdl
T3JpZW50YXRpb24gOiAxOwotICAgICAgICBib29sIG1fd2FudHNCYWxhbmNlZFNldERlZmVyc0xv
YWRpbmdCZWhhdmlvciA6IDE7Ci0gICAgICAgIGJvb2wgbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVF
bmFibGVkIDogMTsKLSAgICAgICAgYm9vbCBtX2RldmljZVN1cHBvcnRzVG91Y2ggOiAxOwotICAg
ICAgICBib29sIG1fZGV2aWNlU3VwcG9ydHNNb3VzZSA6IDE7Ci0gICAgICAgIGJvb2wgbV9uZWVk
c0RpZEZpbmlzaExvYWRPcmRlclF1aXJrIDogMTsKLQotICAgICAgICBib29sIG1fZml4ZWRQb3Np
dGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQgOiAxOwotICAgICAgICBib29sIG1fc3luY1hIUklu
RG9jdW1lbnRzRW5hYmxlZCA6IDE7Ci0gICAgICAgIGJvb2wgbV9jb29raWVFbmFibGVkIDogMTsK
LQotICAgICAgICBib29sIG1fd2luZG93Rm9jdXNSZXN0cmljdGVkIDogMTsKLQotICAgICAgICBi
b29sIG1fZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkIDogMTsKLQogICAgICAgICBib29sIG1fc2Ny
b2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCA6IDE7CiAKLSAgICAgICAgYm9vbCBtX2Fw
cGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yIDogMTsKLSAgICAgICAgYm9vbCBtX3BsdWdJ
blNuYXBzaG90dGluZ0VuYWJsZWQgOiAxOwotCiAgICAgICAgIFRpbWVyPFNldHRpbmdzPiBtX3Nl
dEltYWdlTG9hZGluZ1NldHRpbmdzVGltZXI7CiAgICAgICAgIHZvaWQgaW1hZ2VMb2FkaW5nU2V0
dGluZ3NUaW1lckZpcmVkKFRpbWVyPFNldHRpbmdzPiopOwogCi0gICAgICAgIGRvdWJsZSBtX2lu
Y3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzOwotCiAgICAgICAg
IHN0YXRpYyBkb3VibGUgZ0RlZmF1bHRNaW5ET01UaW1lckludGVydmFsOwogICAgICAgICBzdGF0
aWMgZG91YmxlIGdEZWZhdWx0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I5ZDAwOWRmZjM2MWMxODQ1MDE1OThkY2U5N2NkMTUz
YTliYmZhMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aW4KQEAgLTAsMCArMSwxNTYgQEAKKyMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBnbG9iYWwgc2V0
dGluZ3MuCisjIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgY3VzdG9tIGdldHRlcnMvc2V0dGVycy4K
KworZGVmYXVsdFRleHRFbmNvZGluZ05hbWUgdHlwZT1TdHJpbmcKK2Z0cERpcmVjdG9yeVRlbXBs
YXRlUGF0aCB0eXBlPVN0cmluZworbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoIHR5cGU9U3RyaW5n
CitlZGl0YWJsZUxpbmtCZWhhdmlvciB0eXBlPUVkaXRhYmxlTGlua0JlaGF2aW9yLCBpbml0aWFs
PUVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcgordGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNp
b25CZWhhdmlvciB0eXBlPVRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IsIGlu
aXRpYWw9VGV4dERpcmVjdGlvblN1Ym1lbnVBdXRvbWF0aWNhbGx5SW5jbHVkZWQKK3Bhc3N3b3Jk
RWNob0R1cmF0aW9uSW5TZWNvbmRzIHR5cGU9ZG91YmxlLCBpbml0aWFsPTEKKworIyBTZXRzIHRo
ZSBtYWduaWZpY2F0aW9uIHZhbHVlIGZvciB2YWxpZGF0aW9uIG1lc3NhZ2UgdGltZXIuICBJZiB0
aGUKKyMgbWFnbmlmaWNhdGlvbiB2YWx1ZSBpcyBOLCBhIHZhbGlkYXRpb24gbWVzc2FnZSBkaXNh
cHBlYXJzIGF1dG9tYXRpY2FsbHkgYWZ0ZXIKKyMgPG1lc3NhZ2UgbGVuZ3RoPiAqIE4gLyAxMDAw
IHNlY29uZHMuICBJZiBOIGlzIGVxdWFsIHRvIG9yIGxlc3MgdGhhbiAwLCBhCisjIHZhbGlkYXRp
b24gbWVzc2FnZSBkb2Vzbid0IGRpc2FwcGVhcnMgYXV0b21hdGljYWx5LgordmFsaWRhdGlvbk1l
c3NhZ2VUaW1lck1hZ25pZmljYXRpb24gdHlwZT1pbnQsIGluaXRpYWw9NTAKKworIyBOdW1iZXIg
b2YgcGl4ZWxzIGJlbG93IHdoaWNoIDJEIGNhbnZhcyBpcyByZW5kZXJlZCBpbiBzb2Z0d2FyZQor
IyBldmVuIGlmIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiBpcyBlbmFibGVkLgorIyBIYXJkd2FyZSBh
Y2NlbGVyYXRpb24gaXMgdXNlZnVsIGZvciBsYXJnZSBjYW52YXNlcyB3aGVyZSBpdCBjYW4gYXZv
aWQgdGhlCisjIHBpeGVsIGJhbmR3aWR0aCBiZXR3ZWVuIHRoZSBDUFUgYW5kIEdQVS4gQnV0IEdQ
VSBhY2NlbGVyYXRpb24gY29tZXMgYXQKKyMgYSBwcmljZSAtIGV4dHJhIGJhY2stYnVmZmVyIGFu
ZCB0ZXh0dXJlIGNvcHkuIFNtYWxsIGNhbnZhc2VzIGFyZSBhbHNvCisjIHdpZGVseSB1c2VkIGZv
ciBzdHlsaXplZCBmb250cy4gQW50aS1hbGlhc2luZyB0ZXh0IGluIGhhcmR3YXJlIGF0IHRoYXQK
KyMgc2NhbGUgaXMgZ2VuZXJhbGx5IHNsb3dlci4gU28gYmVsb3cgYSBjZXJ0YWluIHNpemUgaXQg
aXMgYmV0dGVyIHRvCisjIGRyYXcgY2FudmFzIGluIHNvZnR3YXJlLgorbWluaW11bUFjY2VsZXJh
dGVkMmRDYW52YXNTaXplIHR5cGU9aW50LCBpbml0aWFsPTI1NyoyNTYKKworbGF5b3V0RmFsbGJh
Y2tXaWR0aCB0eXBlPWludCwgaW5pdGlhbD05ODAKK21heGltdW1EZWNvZGVkSW1hZ2VTaXplIHR5
cGU9c2l6ZV90LCBpbml0aWFsPW51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpCitkZXZpY2VX
aWR0aCB0eXBlPWludCwgaW5pdGlhbD0wCitkZXZpY2VIZWlnaHQgdHlwZT1pbnQsIGluaXRpYWw9
MAorCisjIEFsbG93IGNsaWVudHMgY29uY2VybmVkIHdpdGggbWVtb3J5IGNvbnN1bXB0aW9uIHRv
IHNldCBhIHF1b3RhIG9uIHNlc3Npb24gc3RvcmFnZQorIyBzaW5jZSB0aGUgbWVtb3J5IHVzZWQg
d29uJ3QgYmUgcmVsZWFzZWQgdW50aWwgdGhlIFBhZ2UgaXMgZGVzdHJveWVkLgorc2Vzc2lvblN0
b3JhZ2VRdW90YSB0eXBlPXVuc2lnbmVkLCBpbml0aWFsPVN0b3JhZ2VNYXA6Om5vUXVvdGEKKwor
ZWRpdGluZ0JlaGF2aW9yVHlwZSB0eXBlPUVkaXRpbmdCZWhhdmlvclR5cGUsIGluaXRpYWw9ZWRp
dGluZ0JlaGF2aW9yVHlwZUZvclBsYXRmb3JtKCkKK21heGltdW1IVE1MUGFyc2VyRE9NVHJlZURl
cHRoIHR5cGU9dW5zaWduZWQsIGluaXRpYWw9ZGVmYXVsdE1heGltdW1IVE1MUGFyc2VyRE9NVHJl
ZURlcHRoCisKKyMgVGhpcyBzZXR0aW5nIG9ubHkgYWZmZWN0cyBzaXRlIGljb24gaW1hZ2UgbG9h
ZGluZyBpZiBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgc2V0dGluZyBpcyBmYWxzZSBhbmQgdGhp
cyBzZXR0aW5nIGlzIHRydWUuCisjIEFsbCBvdGhlciBwZXJtdXRhdGlvbnMgc3RpbGwgaGVlZCBs
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgc2V0dGluZy4KK2xvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdTZXR0aW5nIGluaXRpYWw9ZmFsc2UKKworY2FyZXRCcm93c2luZ0VuYWJsZWQg
aW5pdGlhbD1mYWxzZQorbG9jYWxTdG9yYWdlRW5hYmxlZCBpbml0aWFsPWZhbHNlCithbGxvd1Vu
aXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyBpbml0aWFsPXRydWUKK2FsbG93RmlsZUFjY2Vzc0Zy
b21GaWxlVVJMcyBpbml0aWFsPXRydWUKK2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRp
Y2FsbHkgaW5pdGlhbD1mYWxzZQorc3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MgaW5pdGlhbD10cnVl
CitqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIGluaXRpYWw9ZmFsc2UKK3Nob3VsZFByaW50
QmFja2dyb3VuZHMgaW5pdGlhbD1mYWxzZQordXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJp
bGl0eU1vZGUgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9REFTSEJPQVJEX1NVUFBPUlQKKwor
IyBUaGlzIGlzIGEgcXVpcmsgd2UgYXJlIHByby1hY3RpdmVseSBhcHBseWluZyB0byBvbGQgYXBw
bGljYXRpb25zLiBJdCBjaGFuZ2VzIGtleWJvYXJkIGV2ZW50IGRpc3BhdGNoaW5nLAorIyBtYWtp
bmcga2V5SWRlbnRpZmllciBhdmFpbGFibGUgb24ga2V5cHJlc3MgZXZlbnRzLCBtYWtpbmcgY2hh
ckNvZGUgYXZhaWxhYmxlIG9uIGtleWRvd24va2V5dXAgZXZlbnRzLAorIyBhbmQgZ2V0dGluZyBr
ZXlwcmVzcyBkaXNwYXRjaGVkIGluIG1vcmUgY2FzZXMuCituZWVkc0tleWJvYXJkRXZlbnREaXNh
bWJpZ3VhdGlvblF1aXJrcyBpbml0aWFsPWZhbHNlCisKK3RyZWF0c0FueVRleHRDU1NMaW5rQXNT
dHlsZXNoZWV0IGluaXRpYWw9ZmFsc2UKK25lZWRzTGVvcGFyZE1haWxRdWlya3MgaW5pdGlhbD1m
YWxzZQorc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCBpbml0aWFsPXRydWUKK3BhZ2VDYWNo
ZVN1cHBvcnRzUGx1Z2lucyBpbml0aWFsPWZhbHNlCitzaG93c1VSTHNJblRvb2xUaXBzIGluaXRp
YWw9ZmFsc2UKK3Nob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0IGluaXRpYWw9ZmFsc2UKK2Zv
cmNlRlRQRGlyZWN0b3J5TGlzdGluZ3MgaW5pdGlhbD1mYWxzZQorZGV2ZWxvcGVyRXh0cmFzRW5h
YmxlZCBpbml0aWFsPWZhbHNlCitqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkIGluaXRpYWw9
ZmFsc2UKK25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGluaXRpYWw9ZmFsc2UKK3dlYkFyY2hpdmVE
ZWJ1Z01vZGVFbmFibGVkIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPVdFQl9BUkNISVZFCits
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKK29mZmxpbmVXZWJB
cHBsaWNhdGlvbkNhY2hlRW5hYmxlZCBpbml0aWFsPWZhbHNlCitlbmZvcmNlQ1NTTUlNRVR5cGVJ
bk5vUXVpcmtzTW9kZSBpbml0aWFsPXRydWUKK3VzZXNFbmNvZGluZ0RldGVjdG9yIGluaXRpYWw9
ZmFsc2UKK2FsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzIGluaXRpYWw9ZmFsc2UKK2NhbnZhc1Vz
ZXNBY2NlbGVyYXRlZERyYXdpbmcgaW5pdGlhbD1mYWxzZQorYWNjZWxlcmF0ZWREcmF3aW5nRW5h
YmxlZCBpbml0aWFsPWZhbHNlCithY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkIGluaXRpYWw9ZmFs
c2UKK3JlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorY3NzR3JpZExheW91
dEVuYWJsZWQgaW5pdGlhbD1mYWxzZQorCisjIEZJWE1FOiBUaGlzIHNob3VsZCByZWFsbHkgYmUg
ZGlzYWJsZWQgYnkgZGVmYXVsdCBhcyBpdCBtYWtlcyBwbGF0Zm9ybXMgdGhhdCBkb24ndCBzdXBw
b3J0IHRoZSBmZWF0dXJlIGRvd25sb2FkIGZpbGVzCisjIHRoZXkgY2FuJ3QgdXNlIGJ5LiBMZWF2
aW5nIGVuYWJsZWQgZm9yIG5vdyB0byBub3QgY2hhbmdlIGV4aXN0aW5nIGJlaGF2aW9yLgorZG93
bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkIGluaXRpYWw9dHJ1ZQorCit4c3NBdWRpdG9yRW5h
YmxlZCBpbml0aWFsPWZhbHNlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yM0RUcmFuc2Zvcm1z
RW5hYmxlZCBpbml0aWFsPXRydWUKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0VuYWJs
ZWQgaW5pdGlhbD10cnVlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yUGx1Z2luc0VuYWJsZWQg
aW5pdGlhbD10cnVlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQ2FudmFzRW5hYmxlZCBpbml0
aWFsPXRydWUKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JBbmltYXRpb25FbmFibGVkIGluaXRp
YWw9dHJ1ZQorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkIGlu
aXRpYWw9ZmFsc2UKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJs
ZWQgaW5pdGlhbD1mYWxzZQorCisjIFdvcmtzIG9ubHkgaW4gY29uanVuY3Rpb24gd2l0aCBmb3Jj
ZUNvbXBvc2l0aW5nTW9kZS4KK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJh
bWVzRW5hYmxlZCBpbml0aWFsPWZhbHNlCisKK2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFi
bGVkIGluaXRpYWw9ZmFsc2UKK3dlYkdMRW5hYmxlZCBpbml0aWFsPWZhbHNlCit3ZWJHTEVycm9y
c1RvQ29uc29sZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQorb3BlbkdMTXVsdGlzYW1wbGluZ0VuYWJs
ZWQgaW5pdGlhbD10cnVlCitwcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZCBpbml0aWFs
PWZhbHNlCithY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCBpbml0aWFsPWZhbHNlCitkZWZlcnJl
ZDJkQ2FudmFzRW5hYmxlZCBpbml0aWFsPWZhbHNlCitsb2FkRGVmZXJyaW5nRW5hYmxlZCBpbml0
aWFsPXRydWUKK3dlYkF1ZGlvRW5hYmxlZCBpbml0aWFsPWZhbHNlCitwYWdpbmF0ZUR1cmluZ0xh
eW91dEVuYWJsZWQgaW5pdGlhbD1mYWxzZQorZnVsbFNjcmVlbkVuYWJsZWQgaW5pdGlhbD1mYWxz
ZSwgY29uZGl0aW9uYWw9RlVMTFNDUkVFTl9BUEkKK2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkIGluaXRpYWw9ZmFsc2UKK21lbW9yeUluZm9FbmFibGVkIGluaXRpYWw9ZmFsc2UKK3F1
YW50aXplZE1lbW9yeUluZm9FbmFibGVkIGluaXRpYWw9ZmFsc2UKKworIyBUaGlzIGZlYXR1cmUg
cmVxdWlyZXMgYW4gaW1wbGVtZW50YXRpb24gb2YgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuCitp
bnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZCBpbml0aWFsPWZhbHNlCisKK3VzZVByZUhU
TUw1UGFyc2VyUXVpcmtzIGluaXRpYWw9ZmFsc2UKK2h5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCBp
bml0aWFsPWZhbHNlCitjcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNhYmxl
ZCBpbml0aWFsPWZhbHNlCitmb3JjZUNvbXBvc2l0aW5nTW9kZSBpbml0aWFsPWZhbHNlCitzaG91
bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQgaW5pdGlhbD1mYWxzZQor
Zml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSBpbml0aWFsPWZhbHNlCithbGxvd0Rp
c3BsYXlPZkluc2VjdXJlQ29udGVudCBpbml0aWFsPXRydWUKK2FsbG93UnVubmluZ09mSW5zZWN1
cmVDb250ZW50IGluaXRpYWw9dHJ1ZQorbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUg
aW5pdGlhbD1mYWxzZQorbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSBpbml0aWFsPXRydWUKK3Bh
c3N3b3JkRWNob0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorc3VwcHJlc3Nlc0luY3JlbWVudGFsUmVu
ZGVyaW5nIGluaXRpYWw9ZmFsc2UKK2luY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1l
b3V0SW5TZWNvbmRzIHR5cGU9ZG91YmxlLCBpbml0aWFsPWRlZmF1bHRJbmNyZW1lbnRhbFJlbmRl
cmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcworYmFja3NwYWNlS2V5TmF2aWdhdGlvbkVu
YWJsZWQgaW5pdGlhbD10cnVlCit2aXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkIGluaXRpYWw9ZmFs
c2UKK3Nob3VsZERpc3BsYXlTdWJ0aXRsZXMgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9VklE
RU9fVFJBQ0sKK3Nob3VsZERpc3BsYXlDYXB0aW9ucyBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25h
bD1WSURFT19UUkFDSworc2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnMgaW5pdGlhbD1mYWxz
ZSwgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKK3Njcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZCBp
bml0aWFsPWZhbHNlCitub3RpZmljYXRpb25zRW5hYmxlZCBpbml0aWFsPXRydWUKKworIyBTb21l
IGFwcHMgbmVlZHMgaXNMb2FkaW5nSW5BUElTZW5zZSB0byBhY2NvdW50IGZvciBhY3RpdmUgc3Vi
cmVzb3VyY2UgbG9hZGVycy4KK25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrIGluaXRpYWw9
ZmFsc2UKKworc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gaW5pdGlhbD1mYWxzZQord2Fu
dHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvciBpbml0aWFsPWZhbHNlCityZXF1ZXN0
QW5pbWF0aW9uRnJhbWVFbmFibGVkIGluaXRpYWw9dHJ1ZQorZGV2aWNlU3VwcG9ydHNUb3VjaCBp
bml0aWFsPWZhbHNlCitkZXZpY2VTdXBwb3J0c01vdXNlIGluaXRpYWw9dHJ1ZQorbmVlZHNEaWRG
aW5pc2hMb2FkT3JkZXJRdWlyayBpbml0aWFsPWZhbHNlCitmaXhlZFBvc2l0aW9uQ3JlYXRlc1N0
YWNraW5nQ29udGV4dCBpbml0aWFsPWZhbHNlCitzeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkIGlu
aXRpYWw9dHJ1ZQorY29va2llRW5hYmxlZCBpbml0aWFsPXRydWUKKworIyBXaGVuIGVuYWJsZWQs
IHdpbmRvdy5ibHVyKCkgZG9lcyBub3QgY2hhbmdlIGZvY3VzLCBhbmQKKyMgd2luZG93LmZvY3Vz
KCkgb25seSBjaGFuZ2VzIGZvY3VzIHdoZW4gaW52b2tlZCBmcm9tIHRoZSBjb250ZXh0IHRoYXQK
KyMgY3JlYXRlZCB0aGUgd2luZG93Lgord2luZG93Rm9jdXNSZXN0cmljdGVkIGluaXRpYWw9dHJ1
ZQorCitkaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorYXBwbHlQYWdlU2Nh
bGVGYWN0b3JJbkNvbXBvc2l0b3IgaW5pdGlhbD1mYWxzZQorcGx1Z0luU25hcHNob3R0aW5nRW5h
YmxlZCBpbml0aWFsPWZhbHNlCitmcmFtZUZsYXR0ZW5pbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFrZV9zZXR0aW5ncy5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTljYzBmY2UwMGI2
Mjk0ZjNjNDEyYzAyNjE4ZTE1ZDM3MGMyMDkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWtlX3NldHRpbmdzLnBsCkBAIC0wLDAgKzEsMjU1IEBACisjIS91c3IvYmlu
L3BlcmwgLXcKKworIyBDb3B5cmlnaHQgKEMpIDIwMTIgVG9ueSBDaGFuZyA8dG9ueUBjaHJvbWl1
bS5vcmc+CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFLCBJTkMuIGBB
UyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorIyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyMgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorIyBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK3VzZSBzdHJpY3Q7CisKK3VzZSBJ
bkZpbGVzQ29tcGlsZXI7CisKK215ICVkZWZhdWx0UGFyYW1ldGVycyA9ICgKKyk7CisKK3N1YiBk
ZWZhdWx0SXRlbUZhY3RvcnkKK3sKKyAgICByZXR1cm4gKAorICAgICAgICAnY29uZGl0aW9uYWwn
ID0+IDAsCisgICAgICAgICdpbml0aWFsJyA9PiAnJywKKyAgICAgICAgJ3R5cGUnID0+ICdib29s
JworICAgICk7Cit9CisKK215ICRJbkNvbXBpbGVyID0gSW5GaWxlc0NvbXBpbGVyLT5uZXcoXCVk
ZWZhdWx0UGFyYW1ldGVycywgXCZkZWZhdWx0SXRlbUZhY3RvcnkpOworCitteSAkb3V0cHV0RGly
ID0gJEluQ29tcGlsZXItPmluaXRpYWxpemVGcm9tQ29tbWFuZExpbmUoKTsKKyRJbkNvbXBpbGVy
LT5jb21waWxlKFwmZ2VuZXJhdGVDb2RlKTsKKworc3ViIGdlbmVyYXRlQ29kZSgpCit7CisgICAg
bXkgJHBhcnNlZFBhcmFtZXRlcnNSZWYgPSBzaGlmdDsKKyAgICBteSAkcGFyc2VkSXRlbXNSZWYg
PSBzaGlmdDsKKworICAgIGdlbmVyYXRlSGVhZGVyKCRwYXJzZWRJdGVtc1JlZik7Cit9CisKK3N1
YiBnZW5lcmF0ZUhlYWRlcigkKQoreworICAgIG15ICRwYXJzZWRJdGVtc1JlZiA9IHNoaWZ0Owor
CisgICAgbXkgJXBhcnNlZEl0ZW1zID0gJXsgJHBhcnNlZEl0ZW1zUmVmIH07CisgICAgbXkgJG91
dHB1dEZpbGUgPSAiJG91dHB1dERpci9TZXR0aW5nc01hY3Jvcy5oIjsKKworICAgIG15ICV1bmNv
bmRpdGlvbmFsU2V0dGluZ3MgPSAoKTsKKyAgICBteSAlc2V0dGluZ3NCeUNvbmRpdGlvbmFsID0g
KCk7CisKKyAgICBmb3IgbXkgJHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXBhcnNlZEl0ZW1zKSB7
CisgICAgICAgIG15ICRjb25kaXRpb25hbCA9ICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJj
b25kaXRpb25hbCJ9OworCisgICAgICAgIGlmICgkY29uZGl0aW9uYWwpIHsKKyAgICAgICAgICAg
IGlmICghZGVmaW5lZCgkc2V0dGluZ3NCeUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH0pKSB7Cisg
ICAgICAgICAgICAgICAgJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9ID0gKCk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkc2V0dGluZ3NCeUNvbmRpdGlvbmFseyRjb25k
aXRpb25hbH17JHNldHRpbmdOYW1lfSA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAkdW5jb25kaXRpb25hbFNldHRpbmdzeyRzZXR0aW5nTmFtZX0gPSAxOworICAgICAgICB9Cisg
ICAgfQorCisgICAgb3BlbiBteSAkZmlsZSwgIj4kb3V0cHV0RmlsZSIgb3IgZGllICJGYWlsZWQg
dG8gb3BlbiBmaWxlOiAkISI7CisKKyAgICBwcmludCAkZmlsZSAkSW5Db21waWxlci0+bGljZW5z
ZSgpOworCisgICAgIyBGSVhNRTogU29ydCBieSB0eXBlIHNvIGJvb2xzIGNvbWUgbGFzdCBhbmQg
YXJlIGJpdCBwYWNrZWQuCisKKyAgICBwcmludCAkZmlsZSAiI2lmbmRlZiBTZXR0aW5nc01hY3Jv
c19oXG4iOworICAgIHByaW50ICRmaWxlICIjZGVmaW5lIFNldHRpbmdzTWFjcm9zX2hcblxuIjsK
KworICAgIHByaW50Q29uZGl0aW9uYWxNYWNyb3MoJGZpbGUsIFwlc2V0dGluZ3NCeUNvbmRpdGlv
bmFsLCAkcGFyc2VkSXRlbXNSZWYpOworCisgICAgcHJpbnRHZXR0ZXJzQW5kU2V0dGVycygkZmls
ZSwgXCV1bmNvbmRpdGlvbmFsU2V0dGluZ3MsIFwlc2V0dGluZ3NCeUNvbmRpdGlvbmFsLCAkcGFy
c2VkSXRlbXNSZWYpOworICAgIHByaW50TWVtYmVyVmFyaWFibGVzKCRmaWxlLCBcJXVuY29uZGl0
aW9uYWxTZXR0aW5ncywgXCVzZXR0aW5nc0J5Q29uZGl0aW9uYWwsICRwYXJzZWRJdGVtc1JlZik7
CisgICAgcHJpbnRJbml0aWFsaXplckxpc3QoJGZpbGUsIFwldW5jb25kaXRpb25hbFNldHRpbmdz
LCBcJXNldHRpbmdzQnlDb25kaXRpb25hbCwgJHBhcnNlZEl0ZW1zUmVmKTsKKworICAgIHByaW50
ICRmaWxlICIjZW5kaWYgLy8gU2V0dGluZ3NNYWNyb3NfaFxuIjsKKworICAgIGNsb3NlICRmaWxl
OworfQorCitzdWIgcHJpbnRDb25kaXRpb25hbE1hY3JvcygkJCQpCit7CisgICAgbXkgKCRmaWxl
LCAkc2V0dGluZ3NCeUNvbmRpdGlvbmFsUmVmLCAkcGFyc2VkSXRlbXNSZWYpID0gQF87CisgICAg
bXkgJXBhcnNlZEl0ZW1zID0gJXsgJHBhcnNlZEl0ZW1zUmVmIH07CisgICAgbXkgJXNldHRpbmdz
QnlDb25kaXRpb25hbCA9ICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxSZWYgfTsKKworICAgIGZv
ciBteSAkY29uZGl0aW9uYWwgKHNvcnQga2V5cyAlc2V0dGluZ3NCeUNvbmRpdGlvbmFsKSB7Cisg
ICAgICAgIG15ICRwcmVmZXJyZWRDb25kaXRpb25hbCA9ICRJbkNvbXBpbGVyLT5wcmVmZXJyZWRD
b25kaXRpb25hbCgkY29uZGl0aW9uYWwpOworICAgICAgICBwcmludCAkZmlsZSAiI2lmICIgLiAk
SW5Db21waWxlci0+Y29uZGl0aW9uYWxTdHJpbmdGcm9tQXR0cmlidXRlVmFsdWUoJGNvbmRpdGlv
bmFsKSAuICJcbiI7CisKKyAgICAgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRD
b25kaXRpb25hbH1fU0VUVElOR1NfR0VUVEVSX0FORF9TRVRURVJTIFxcXG4iOworICAgICAgICBm
b3IgbXkgJHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXsgJHNldHRpbmdzQnlDb25kaXRpb25hbHsk
Y29uZGl0aW9uYWx9IH0pIHsKKyAgICAgICAgICAgIHByaW50R2V0dGVyQW5kU2V0dGVyKCRmaWxl
LCAkc2V0dGluZ05hbWUsICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0pOworICAg
ICAgICB9CisgICAgICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgJHtwcmVmZXJyZWRDb25kaXRp
b25hbH1fU0VUVElOR1NfR0VUVEVSX0FORF9TRVRURVJTXG4iOworCisgICAgICAgIHByaW50ICRm
aWxlICIjZGVmaW5lICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX05PTl9CT09MX01F
TUJFUl9WQVJJQUJMRVMgXFxcbiI7CisgICAgICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQg
a2V5cyAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH0gfSkgeworICAgICAg
ICAgICAgbXkgJHR5cGUgPSAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9OworICAg
ICAgICAgICAgbmV4dCBpZiAkdHlwZSBlcSAiYm9vbCI7CisgICAgICAgICAgICBwcmludCAkZmls
ZSAiICAgICR0eXBlIG1fJHNldHRpbmdOYW1lOyBcXFxuIgorICAgICAgICB9CisgICAgICAgIHBy
aW50ICRmaWxlICIvLyBFbmQgb2YgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfTk9O
X0JPT0xfTUVNQkVSX1ZBUklBQkxFU1xuIjsKKworICAgICAgICBwcmludCAkZmlsZSAiI2RlZmlu
ZSAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19CT09MX01FTUJFUl9WQVJJQUJMRVMg
XFxcbiI7CisgICAgICAgIGZvciBteSAkc2V0dGluZ05hbWUgKHNvcnQga2V5cyAleyAkc2V0dGlu
Z3NCeUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH0gfSkgeworICAgICAgICAgICAgbmV4dCBpZiAk
cGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9IG5lICJib29sIjsKKyAgICAgICAgICAg
IHByaW50ICRmaWxlICIgICAgYm9vbCBtXyRzZXR0aW5nTmFtZSA6IDE7IFxcXG4iCisgICAgICAg
IH0KKyAgICAgICAgcHJpbnQgJGZpbGUgIi8vIEVuZCBvZiAke3ByZWZlcnJlZENvbmRpdGlvbmFs
fV9TRVRUSU5HU19CT09MX01FTUJFUl9WQVJJQUJMRVNcbiI7CisKKyAgICAgICAgcHJpbnQgJGZp
bGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfTk9OX0JPT0xfSU5J
VElBTElaRVJTIFxcXG4iOworICAgICAgICBmb3IgbXkgJHNldHRpbmdOYW1lIChzb3J0IGtleXMg
JXsgJHNldHRpbmdzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9IH0pIHsKKyAgICAgICAgICAg
IG5leHQgaWYgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifSBlcSAiYm9vbCI7Cisg
ICAgICAgICAgICBwcmludEluaXRpYWxpemVyKCRmaWxlLCAkc2V0dGluZ05hbWUsICRwYXJzZWRJ
dGVtc1JlZik7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgJGZpbGUgIi8vIEVuZCBvZiAke3By
ZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19OT05fQk9PTF9JTklUSUFMSVpFUlNcbiI7CisK
KyAgICAgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VU
VElOR1NfQk9PTF9JTklUSUFMSVpFUlMgXFxcbiI7CisgICAgICAgIGZvciBteSAkc2V0dGluZ05h
bWUgKHNvcnQga2V5cyAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH0gfSkg
eworICAgICAgICAgICAgbmV4dCBpZiAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9
IG5lICJib29sIjsKKyAgICAgICAgICAgIHByaW50SW5pdGlhbGl6ZXIoJGZpbGUsICRzZXR0aW5n
TmFtZSwgJHBhcnNlZEl0ZW1zUmVmKTsKKyAgICAgICAgfQorICAgICAgICBwcmludCAkZmlsZSAi
Ly8gRW5kIG9mICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0JPT0xfSU5JVElBTEla
RVJTXG4iOworCisgICAgICAgIHByaW50ICRmaWxlICIjZWxzZVxuIjsKKyAgICAgICAgcHJpbnQg
JGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfR0VUVEVSX0FO
RF9TRVRURVJTXG4iOworICAgICAgICBwcmludCAkZmlsZSAiI2RlZmluZSAke3ByZWZlcnJlZENv
bmRpdGlvbmFsfV9TRVRUSU5HU19OT05fQk9PTF9NRU1CRVJfVkFSSUFCTEVTXG4iOworICAgICAg
ICBwcmludCAkZmlsZSAiI2RlZmluZSAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19C
T09MX01FTUJFUl9WQVJJQUJMRVNcbiI7CisgICAgICAgIHByaW50ICRmaWxlICIjZGVmaW5lICR7
cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX05PTl9CT09MX0lOSVRJQUxJWkVSU1xuIjsK
KyAgICAgICAgcHJpbnQgJGZpbGUgIiNkZWZpbmUgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VU
VElOR1NfQk9PTF9JTklUSUFMSVpFUlNcbiI7CisgICAgICAgIHByaW50ICRmaWxlICIjZW5kaWZc
biI7CisgICAgICAgIHByaW50ICRmaWxlICJcbiI7CisgICAgfQorfQorCitzdWIgcHJpbnRHZXR0
ZXJzQW5kU2V0dGVycygkJCQkKQoreworICAgIG15ICgkZmlsZSwgJHVuY29uZGl0aW9uYWxTZXR0
aW5nc1JlZiwgJHNldHRpbmdzQnlDb25kaXRpb25hbFJlZiwgJHBhcnNlZEl0ZW1zUmVmKSA9IEBf
OworICAgIG15ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworICAgIG15ICV1
bmNvbmRpdGlvbmFsU2V0dGluZ3MgPSAleyAkdW5jb25kaXRpb25hbFNldHRpbmdzUmVmIH07Cisg
ICAgbXkgJXNldHRpbmdzQnlDb25kaXRpb25hbCA9ICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxS
ZWYgfTsKKworICAgIHByaW50ICRmaWxlICIjZGVmaW5lIFNFVFRJTkdTX0dFVFRFUlNfQU5EX1NF
VFRFUlMgXFxcbiI7CisgICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV1bmNvbmRp
dGlvbmFsU2V0dGluZ3MpIHsKKyAgICAgICAgcHJpbnRHZXR0ZXJBbmRTZXR0ZXIoJGZpbGUsICRz
ZXR0aW5nTmFtZSwgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifSk7CisgICAgfQor
ICAgIGZvciBteSAkY29uZGl0aW9uYWwgKHNvcnQga2V5cyAlc2V0dGluZ3NCeUNvbmRpdGlvbmFs
KSB7CisgICAgICAgIG15ICRwcmVmZXJyZWRDb25kaXRpb25hbCA9ICRJbkNvbXBpbGVyLT5wcmVm
ZXJyZWRDb25kaXRpb25hbCgkY29uZGl0aW9uYWwpOworICAgICAgICBwcmludCAkZmlsZSAiICAg
ICR7cHJlZmVycmVkQ29uZGl0aW9uYWx9X1NFVFRJTkdTX0dFVFRFUl9BTkRfU0VUVEVSUyBcXFxu
IjsKKyAgICB9CisgICAgcHJpbnQgJGZpbGUgIi8vIEVuZCBvZiBTRVRUSU5HU19HRVRURVJTX0FO
RF9TRVRURVJTLlxuXG4iOworfQorCitzdWIgcHJpbnRNZW1iZXJWYXJpYWJsZXMoJCQkJCkKK3sK
KyAgICBteSAoJGZpbGUsICR1bmNvbmRpdGlvbmFsU2V0dGluZ3NSZWYsICRzZXR0aW5nc0J5Q29u
ZGl0aW9uYWxSZWYsICRwYXJzZWRJdGVtc1JlZikgPSBAXzsKKyAgICBteSAlcGFyc2VkSXRlbXMg
PSAleyAkcGFyc2VkSXRlbXNSZWYgfTsKKyAgICBteSAldW5jb25kaXRpb25hbFNldHRpbmdzID0g
JXsgJHVuY29uZGl0aW9uYWxTZXR0aW5nc1JlZiB9OworICAgIG15ICVzZXR0aW5nc0J5Q29uZGl0
aW9uYWwgPSAleyAkc2V0dGluZ3NCeUNvbmRpdGlvbmFsUmVmIH07CisKKyAgICBwcmludCAkZmls
ZSAiI2RlZmluZSBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTIFxcXG4iOworICAgICMgV2UgbGlz
dCB0aGUgYm9vbHMgbGFzdCBzbyB3ZSBjYW4gYml0IHBhY2sgdGhlbS4KKyAgICBmb3IgbXkgJHNl
dHRpbmdOYW1lIChzb3J0IGtleXMgJXVuY29uZGl0aW9uYWxTZXR0aW5ncykgeworICAgICAgICBt
eSAkdHlwZSA9ICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn07CisgICAgICAgIG5l
eHQgaWYgJHR5cGUgZXEgImJvb2wiOworICAgICAgICBwcmludCAkZmlsZSAiICAgICR0eXBlIG1f
JHNldHRpbmdOYW1lOyBcXFxuIgorICAgIH0KKyAgICBmb3IgbXkgJGNvbmRpdGlvbmFsIChzb3J0
IGtleXMgJXNldHRpbmdzQnlDb25kaXRpb25hbCkgeworICAgICAgICBteSAkcHJlZmVycmVkQ29u
ZGl0aW9uYWwgPSAkSW5Db21waWxlci0+cHJlZmVycmVkQ29uZGl0aW9uYWwoJGNvbmRpdGlvbmFs
KTsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRU
SU5HU19OT05fQk9PTF9NRU1CRVJfVkFSSUFCTEVTIFxcXG4iOworICAgIH0KKyAgICBmb3IgbXkg
JHNldHRpbmdOYW1lIChzb3J0IGtleXMgJXVuY29uZGl0aW9uYWxTZXR0aW5ncykgeworICAgICAg
ICBuZXh0IGlmICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn0gbmUgImJvb2wiOwor
ICAgICAgICBwcmludCAkZmlsZSAiICAgIGJvb2wgbV8kc2V0dGluZ05hbWUgOiAxOyBcXFxuIgor
ICAgIH0KKyAgICBmb3IgbXkgJGNvbmRpdGlvbmFsIChzb3J0IGtleXMgJXNldHRpbmdzQnlDb25k
aXRpb25hbCkgeworICAgICAgICBteSAkcHJlZmVycmVkQ29uZGl0aW9uYWwgPSAkSW5Db21waWxl
ci0+cHJlZmVycmVkQ29uZGl0aW9uYWwoJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcHJpbnQgJGZp
bGUgIiAgICAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRUSU5HU19CT09MX01FTUJFUl9WQVJJ
QUJMRVMgXFxcbiI7CisgICAgfQorICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgU0VUVElOR1Nf
TUVNQkVSX1ZBUklBQkxFUy5cblxuIjsKK30KKworc3ViIHByaW50R2V0dGVyQW5kU2V0dGVyKCQk
JCkKK3sKKyAgICBteSAoJGZpbGUsICRzZXR0aW5nTmFtZSwgJHR5cGUpID0gQF87CisgICAgbXkg
JHNldHRlckZ1bmN0aW9uTmFtZSA9ICJzZXQiIC4gJHNldHRpbmdOYW1lOworICAgIHN1YnN0cigk
c2V0dGVyRnVuY3Rpb25OYW1lLCAzLCAxKSA9IHVjKHN1YnN0cigkc2V0dGVyRnVuY3Rpb25OYW1l
LCAzLCAxKSk7CisgICAgaWYgKHN1YnN0cigkc2V0dGluZ05hbWUsIDAsIDMpIGVxICJjc3MiIHx8
IHN1YnN0cigkc2V0dGluZ05hbWUsIDAsIDMpIGVxICJ4c3MiIHx8IHN1YnN0cigkc2V0dGluZ05h
bWUsIDAsIDMpIGVxICJmdHAiKSB7CisgICAgICAgIHN1YnN0cigkc2V0dGVyRnVuY3Rpb25OYW1l
LCAzLCAzKSA9IHVjKHN1YnN0cigkc2V0dGVyRnVuY3Rpb25OYW1lLCAzLCAzKSk7CisgICAgfQor
ICAgIGlmIChsYyhzdWJzdHIoJHR5cGUsIDAsIDEpKSBlcSBzdWJzdHIoJHR5cGUsIDAsIDEpKSB7
CisgICAgICAgIHByaW50ICRmaWxlICIgICAgJHR5cGUgJHNldHRpbmdOYW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV8kc2V0dGluZ05hbWU7IH0gXFxcbiI7CisgICAgICAgIHByaW50ICRmaWxlICIgICAg
dm9pZCAkc2V0dGVyRnVuY3Rpb25OYW1lKCR0eXBlICRzZXR0aW5nTmFtZSkgeyBtXyRzZXR0aW5n
TmFtZSA9ICRzZXR0aW5nTmFtZTsgfSBcXFxuIjsKKyAgICB9IGVsc2UgeworICAgICAgICBwcmlu
dCAkZmlsZSAiICAgIGNvbnN0ICR0eXBlJiAkc2V0dGluZ05hbWUoKSB7IHJldHVybiBtXyRzZXR0
aW5nTmFtZTsgfSBcXFxuIjsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICB2b2lkICRzZXR0ZXJG
dW5jdGlvbk5hbWUoY29uc3QgJHR5cGUmICRzZXR0aW5nTmFtZSkgeyBtXyRzZXR0aW5nTmFtZSA9
ICRzZXR0aW5nTmFtZTsgfSBcXFxuIjsKKyAgICB9Cit9CisKK3N1YiBwcmludEluaXRpYWxpemVy
TGlzdCgkJCQkKQoreworICAgIG15ICgkZmlsZSwgJHVuY29uZGl0aW9uYWxTZXR0aW5nc1JlZiwg
JHNldHRpbmdzQnlDb25kaXRpb25hbFJlZiwgJHBhcnNlZEl0ZW1zUmVmKSA9IEBfOworICAgIG15
ICVwYXJzZWRJdGVtcyA9ICV7ICRwYXJzZWRJdGVtc1JlZiB9OworICAgIG15ICV1bmNvbmRpdGlv
bmFsU2V0dGluZ3MgPSAleyAkdW5jb25kaXRpb25hbFNldHRpbmdzUmVmIH07CisgICAgbXkgJXNl
dHRpbmdzQnlDb25kaXRpb25hbCA9ICV7ICRzZXR0aW5nc0J5Q29uZGl0aW9uYWxSZWYgfTsKKwor
ICAgIHByaW50ICRmaWxlICIjZGVmaW5lIFNFVFRJTkdTX0lOSVRJQUxJWkVSX0xJU1QgXFxcbiI7
CisgICAgZm9yIG15ICRzZXR0aW5nTmFtZSAoc29ydCBrZXlzICV1bmNvbmRpdGlvbmFsU2V0dGlu
Z3MpIHsKKyAgICAgICAgbmV4dCBpZiAkcGFyc2VkSXRlbXN7JHNldHRpbmdOYW1lfXsidHlwZSJ9
IGVxICJib29sIjsKKyAgICAgICAgcHJpbnRJbml0aWFsaXplcigkZmlsZSwgJHNldHRpbmdOYW1l
LCAkcGFyc2VkSXRlbXNSZWYpOworICAgIH0KKyAgICBmb3IgbXkgJGNvbmRpdGlvbmFsIChzb3J0
IGtleXMgJXNldHRpbmdzQnlDb25kaXRpb25hbCkgeworICAgICAgICBteSAkcHJlZmVycmVkQ29u
ZGl0aW9uYWwgPSAkSW5Db21waWxlci0+cHJlZmVycmVkQ29uZGl0aW9uYWwoJGNvbmRpdGlvbmFs
KTsKKyAgICAgICAgcHJpbnQgJGZpbGUgIiAgICAke3ByZWZlcnJlZENvbmRpdGlvbmFsfV9TRVRU
SU5HU19OT05fQk9PTF9JTklUSUFMSVpFUlMgXFxcbiI7CisgICAgfQorICAgIGZvciBteSAkc2V0
dGluZ05hbWUgKHNvcnQga2V5cyAldW5jb25kaXRpb25hbFNldHRpbmdzKSB7CisgICAgICAgIG5l
eHQgaWYgJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17InR5cGUifSBuZSAiYm9vbCI7CisgICAg
ICAgIHByaW50SW5pdGlhbGl6ZXIoJGZpbGUsICRzZXR0aW5nTmFtZSwgJHBhcnNlZEl0ZW1zUmVm
KTsKKyAgICB9CisgICAgZm9yIG15ICRjb25kaXRpb25hbCAoc29ydCBrZXlzICVzZXR0aW5nc0J5
Q29uZGl0aW9uYWwpIHsKKyAgICAgICAgbXkgJHByZWZlcnJlZENvbmRpdGlvbmFsID0gJEluQ29t
cGlsZXItPnByZWZlcnJlZENvbmRpdGlvbmFsKCRjb25kaXRpb25hbCk7CisgICAgICAgIHByaW50
ICRmaWxlICIgICAgJHtwcmVmZXJyZWRDb25kaXRpb25hbH1fU0VUVElOR1NfQk9PTF9JTklUSUFM
SVpFUlMgXFxcbiI7CisgICAgfQorICAgIHByaW50ICRmaWxlICIvLyBFbmQgb2YgU0VUVElOR1Nf
SU5JVElBTElaRVJfTElTVC5cblxuIjsKK30KKworc3ViIHByaW50SW5pdGlhbGl6ZXIoJCQkKQor
eworICAgIG15ICgkZmlsZSwgJHNldHRpbmdOYW1lLCAkcGFyc2VkSXRlbXNSZWYpID0gQF87Cisg
ICAgbXkgJXBhcnNlZEl0ZW1zID0gJXsgJHBhcnNlZEl0ZW1zUmVmIH07CisKKyAgICBteSAkaW5p
dGlhbFZhbHVlID0gJHBhcnNlZEl0ZW1zeyRzZXR0aW5nTmFtZX17ImluaXRpYWwifTsKKyAgICBt
eSAkdHlwZSA9ICRwYXJzZWRJdGVtc3skc2V0dGluZ05hbWV9eyJ0eXBlIn07CisgICAgZGllICJN
dXN0IHByb3ZpZGUgYW4gaW5pdGlhbCB2YWx1ZSBmb3IgJHNldHRpbmdOYW1lLiIgaWYgKCRpbml0
aWFsVmFsdWUgZXEgJycgJiYgbGMoc3Vic3RyKCR0eXBlLCAwLCAxKSkgZXEgc3Vic3RyKCR0eXBl
LCAwLCAxKSk7CisgICAgcmV0dXJuIGlmICgkaW5pdGlhbFZhbHVlIGVxICcnKTsKKyAgICBwcmlu
dCAkZmlsZSAiICAgICwgbV8kc2V0dGluZ05hbWUoJGluaXRpYWxWYWx1ZSkgXFxcbiIKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UgYi9Tb3VyY2UvY21ha2Uv
V2ViS2l0TWFjcm9zLmNtYWtlCmluZGV4IDliYTk4OGY5ZWUxNTA2NmQwODQ3MjQ2MTAwMzBmZjBj
MGI1M2VmZjUuLmM4MTM4YTk2YWJiMTk0MDczM2VkYWU4MjU5ZTRhMTAwZGY2ZmI4ZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKKysrIGIvU291cmNlL2NtYWtl
L1dlYktpdE1hY3Jvcy5jbWFrZQpAQCAtOTYsNiArOTYsMTggQEAgTUFDUk8gKEdFTkVSQVRFX0VY
Q0VQVElPTl9DT0RFX0RFU0NSSVBUSU9OIF9pbmZpbGUgX291dGZpbGUpCiBFTkRNQUNSTyAoKQog
CiAKK01BQ1JPIChHRU5FUkFURV9TRVRUSU5HU19NQUNST1MgX2luZmlsZSBfb3V0ZmlsZSkKKyAg
ICBTRVQoTkFNRVNfR0VORVJBVE9SICR7V0VCQ09SRV9ESVJ9L3BhZ2UvbWFrZV9zZXR0aW5ncy5w
bCkKKworICAgIEFERF9DVVNUT01fQ09NTUFORCgKKyAgICAgICAgT1VUUFVUICAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vJHtfb3V0ZmlsZX0KKyAgICAgICAgTUFJTl9ERVBFTkRFTkNZ
ICR7X2luZmlsZX0KKyAgICAgICAgREVQRU5EUyAke05BTUVTX0dFTkVSQVRPUn0gJHtTQ1JJUFRT
X0JJTkRJTkdTfQorICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAtSSR7V0VCQ09S
RV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMgJHtOQU1FU19HRU5FUkFUT1J9IC0taW5wdXQgJHtfaW5m
aWxlfSAtLW91dHB1dERpciAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KKyAgICAgICAg
VkVSQkFUSU0pCitFTkRNQUNSTyAoKQorCisKIE1BQ1JPIChHRU5FUkFURV9ET01fTkFNRVMgX25h
bWVzcGFjZSBfYXR0cnMpCiAgICAgU0VUKE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElSfS9k
b20vbWFrZV9uYW1lcy5wbCkKICAgICBTRVQoX2FyZ3VtZW50cyAgLS1hdHRycyAke19hdHRyc30p
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDI4
YWM4NjNkYmFkMjBmZTUzYjZiZWM4NGE0NTAzZWRlMmJlNjE2MS4uYWJkYzA2NTg4YTE5Y2Q4ZGYw
ODI3OWVjODg3NWI2OGQ3N2RkNjg4YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTExLTE0ICBUb255IENoYW5n
ICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2VuZXJhdGUgU2V0dGluZ3MgZnJvbSBh
IC5pbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIEFk
ZCB0aGUgZ2VuZXJhdGVkIFdlYkNvcmUgZmlsZXMgdG8gdGhlIGluY2x1ZGUgZGlyLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0NNYWtlTGlzdHMudHh0OgorCiAyMDEyLTExLTE0ICBKw6Fub3MgQmFkaWNzICA8amJh
ZGljc0BpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgW1F0XVtBUk1dIEZpeCAnbnVsbHB0cicg
aXMgYSBrZXl3b3JkIGluIEMrKzExIFstV2MrKzB4LWNvbXBhdF0gd2FybmluZwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvQ01ha2VMaXN0cy50eHQKaW5kZXggMTYzZWRjNzUzYjczZjRkMDViZjdhNGVjMjFlOWZmYjA1
YmZhNzU3Zi4uNzAwMWMxODQ1MjQxODQ0MTIyYzdjY2FiOGQ5MTQ0YzE5YWI5M2NhYSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CkBAIC0zLDYgKzMsNyBAQCBTRVQoVEVTVFdFQktJVEFQ
SV9ESVIgIiR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJIikKIElOQ0xVREVfRElSRUNUT1JJRVMo
JHtDTUFLRV9CSU5BUllfRElSfQogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9CiAgICAgJHtDTUFL
RV9TT1VSQ0VfRElSfS9Tb3VyY2UKKyAgICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0K
ICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vaW5jbHVkZQogICAgICR7SkFWQVND
UklQVENPUkVfRElSfQogICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9BUEkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0NNYWtlTGlzdHMudHh0CmluZGV4IDJkN2Q1MGU2YzBhN2NhZTIzZjE3YTM5Yjg2Y2Zh
N2Y4NmViZGQzNjYuLjg0NDA0ZTg0ODRmYTI4YmU3YzYxMTE2YmQxNmRjZmEwYjdkNTkyNWEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dApAQCAtNDAsNiArNDAsNyBAQCBTRVQo
V2ViS2l0VGVzdFJ1bm5lcl9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL2VmbAogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9z
b3VwCiAgICAgJHtXVEZfRElSfQorICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfQog
ICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9pbmNsdWRlCiAgICAgJHtERVJJVkVE
X1NPVVJDRVNfV0VCS0lUMl9ESVJ9L2luY2x1ZGUKICAgICAke0RFUklWRURfU09VUkNFU19ESVJ9
L0luamVjdGVkQnVuZGxlCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXgg
ZTYyOGU2NDI0ZDhhNjljYTM5NGJjM2Y5Mzk3ZTQwNTFhY2U0MDE0Mi4uZDk5M2YzYzA4NGZmNzY3
ZGVkNzIwM2M5MmRlOWZkNWJmM2U5N2ZjZiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTExLTE0ICBUb255IENoYW5nICA8dG9ueUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2VuZXJhdGUgU2V0dGluZ3MgZnJvbSBhIC5pbiBmaWxl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAzOTMK
KworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIEdlbmVyYXRlIFNl
dHRpbmdzTWFjcm9zLmggZm9yIGNtYWtlLgorCisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktp
dE1hY3Jvcy5jbWFrZToKKwogMjAxMi0xMS0xNCAgS3l1bmdUYWUgS2ltICA8a3RmLmtpbUBzYW1z
dW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBUdXJuIG9uIGVycm9yIG9uIHdhcm5pbmdzIGZvciAi
c2lnbi1jb21wYXJlIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>