<?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>177029</bug_id>
          
          <creation_ts>2017-09-15 17:09:24 -0700</creation_ts>
          <short_desc>[Mac] Upstream miscellaneous WebKitSystemInterface functions</short_desc>
          <delta_ts>2017-09-27 12:26:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>joepeck</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1349582</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-09-15 17:09:24 -0700</bug_when>
    <thetext>[Mac] Upload miscellaneous WebKitSystemInterface functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349590</commentid>
    <comment_count>1</comment_count>
      <attachid>320975</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-09-15 17:22:31 -0700</bug_when>
    <thetext>Created attachment 320975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349619</commentid>
    <comment_count>2</comment_count>
      <attachid>320988</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-09-15 21:28:29 -0700</bug_when>
    <thetext>Created attachment 320988
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349620</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-15 21:29:47 -0700</bug_when>
    <thetext>Attachment 320988 did not pass style-queue:


ERROR: Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:36:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h:36:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:4686:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/NSMenuSPI.h:65:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/NSMenuSPI.h:67:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/NSMenuSPI.h:68:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/NSMenuSPI.h:69:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/NSMenuSPI.h:70:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/NSMenuSPI.h:72:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/NSMenuSPI.h:74:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 10 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349625</commentid>
    <comment_count>4</comment_count>
      <attachid>320991</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-09-15 21:44:43 -0700</bug_when>
    <thetext>Created attachment 320991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349628</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-15 21:47:07 -0700</bug_when>
    <thetext>Attachment 320991 did not pass style-queue:


ERROR: Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:36:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h:36:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:4686:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 3 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349630</commentid>
    <comment_count>6</comment_count>
      <attachid>320993</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-09-15 21:58:42 -0700</bug_when>
    <thetext>Created attachment 320993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349631</commentid>
    <comment_count>7</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-15 22:00:29 -0700</bug_when>
    <thetext>Attachment 320993 did not pass style-queue:


ERROR: Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:36:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h:36:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:4686:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 3 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349632</commentid>
    <comment_count>8</comment_count>
      <attachid>320994</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-09-15 22:07:09 -0700</bug_when>
    <thetext>Created attachment 320994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349633</commentid>
    <comment_count>9</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-15 22:09:55 -0700</bug_when>
    <thetext>Attachment 320994 did not pass style-queue:


ERROR: Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:36:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h:36:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:4686:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 3 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349679</commentid>
    <comment_count>10</comment_count>
      <attachid>321009</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-09-16 13:45:42 -0700</bug_when>
    <thetext>Created attachment 321009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349680</commentid>
    <comment_count>11</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-16 13:48:04 -0700</bug_when>
    <thetext>Attachment 321009 did not pass style-queue:


ERROR: Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:38:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h:36:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:4686:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 3 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349683</commentid>
    <comment_count>12</comment_count>
      <attachid>321011</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-09-16 14:13:10 -0700</bug_when>
    <thetext>Created attachment 321011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349685</commentid>
    <comment_count>13</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-16 14:15:34 -0700</bug_when>
    <thetext>Attachment 321011 did not pass style-queue:


ERROR: Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:38:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h:36:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:4687:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 3 in 38 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349686</commentid>
    <comment_count>14</comment_count>
      <attachid>321013</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-09-16 14:33:53 -0700</bug_when>
    <thetext>Created attachment 321013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349687</commentid>
    <comment_count>15</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-16 14:36:24 -0700</bug_when>
    <thetext>Attachment 321013 did not pass style-queue:


ERROR: Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:38:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h:36:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:4687:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 3 in 38 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349691</commentid>
    <comment_count>16</comment_count>
      <attachid>321015</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-09-16 15:08:11 -0700</bug_when>
    <thetext>Created attachment 321015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349692</commentid>
    <comment_count>17</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-16 15:10:55 -0700</bug_when>
    <thetext>Attachment 321015 did not pass style-queue:


ERROR: Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:38:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h:36:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:4687:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 3 in 38 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349693</commentid>
    <comment_count>18</comment_count>
      <attachid>321016</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-09-16 15:36:11 -0700</bug_when>
    <thetext>Created attachment 321016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349694</commentid>
    <comment_count>19</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-16 15:38:44 -0700</bug_when>
    <thetext>Attachment 321016 did not pass style-queue:


ERROR: Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:38:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h:36:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:4687:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 3 in 39 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349706</commentid>
    <comment_count>20</comment_count>
      <attachid>321022</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-09-16 20:29:47 -0700</bug_when>
    <thetext>Created attachment 321022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349707</commentid>
    <comment_count>21</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-16 20:32:38 -0700</bug_when>
    <thetext>Attachment 321022 did not pass style-queue:


ERROR: Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:38:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h:36:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:4687:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 3 in 39 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349924</commentid>
    <comment_count>22</comment_count>
      <attachid>321022</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-18 09:21:32 -0700</bug_when>
    <thetext>Comment on attachment 321022
Patch

Clearing flags on attachment: 321022

Committed r222150: &lt;http://trac.webkit.org/changeset/222150&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349925</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-18 09:21:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353374</commentid>
    <comment_count>24</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:26:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693269&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320975</attachid>
            <date>2017-09-15 17:22:31 -0700</date>
            <delta_ts>2017-09-15 21:28:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177029-20170915172230.patch</filename>
            <type>text/plain</type>
            <size>88810</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWZhODg1MTBjMDRjMWMy
NzI4NTQzMWVhYTRmODI5NWY3NzcxOGNkZS4uZmM3OTczOGEzNmVlNDFjMDg1NThiNTQwZDQyYThl
MzBlMTMwZmU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQgbWlzY2Vs
bGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWc6IFVzZWQgLWZvcmNlX2xvYWQgb2YgbGliUEFMIGluc3RlYWQgb2YgLU9iakMuIFRo
aXMgZm9yY2VzCisgICAgICAgIHRoZSBsaW5rZXIgdG8gaW5jbHVkZSBib3RoIE9iamVjdGl2ZS1D
IGFuZCBDIFBBTCBzeW1ib2xzIGluIFdlYkNvcmUuIFRoaXMgaXMgbmVlZGVkIGZvcgorICAgICAg
ICBQQUw6OnBvcFVwTWVudSwgd2hpY2ggaXMgdXNlZCBieSBXZWJLaXQgYW5kIFdlYktpdExlZ2Fj
eSBidXQgbm90IFdlYkNvcmUuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3Ry
aW5nc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNo
V2ViKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6ZWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKToKKyAgICAgICAgKFdlYkNv
cmU6OmVsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpyZWJv
dW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6
OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6V0tDb3JlQ3Vyc29yX2Nv
cmVDdXJzb3JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvcmVDdXJzb3JDbGFzcyk6
CisgICAgICAgIChXZWJDb3JlOjpjb3JlQ3Vyc29yQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6
Y3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3Ig
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBhaW50VGV4dEFyZWEpOgorCiAyMDE3LTA5LTE0ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSVENEYXRhQ2hhbm5lbCBjb25uZWN0aXZp
dHkgaXNzdWVzIGluIFNhZmFyaSAxMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggZTQ0MDZmN2FmYjk0
MjkwNTM4NzM4YzlkNDU0MWE3MWMwZmYyMDY3Mi4uYTIyMzZhYTU5YmE0Y2FjZmUzYWNkN2I2OTFj
M2I2YWYzMThjMjAwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTct
MDktMTUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIFVw
bG9hZCBtaXNjZWxsYW5lb3VzIFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzAyOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUEFMLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5o
OgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQSS5oLgor
ICAgICAgICAqIHBhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaDoKKyAgICAgICAgKiBwYWwvc3Bp
L21hYy9OU0NlbGxTUEkuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
Y2YvQ0ZVdGlsaXRpZXNTUEkuaC4KKyAgICAgICAgKiBwYWwvc3BpL21hYy9OU01lbnVTUEkuaDoK
KyAgICAgICAgKiBwYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaC4KKyAgICAgICAgKiBw
YWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmg6CisgICAgICAgICogcGFsL3N5c3RlbS9jZi9E
ZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAoUEFMOjpkZWZhdWx0U2VhcmNo
UHJvdmlkZXJEaXNwbGF5TmFtZSk6CisgICAgICAgICogcGFsL3N5c3RlbS9jZi9EZWZhdWx0U2Vh
cmNoUHJvdmlkZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2Yv
Q0ZVdGlsaXRpZXNTUEkuaC4KKyAgICAgICAgKiBwYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEku
aC4KKyAgICAgICAgKiBwYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUubW06IEFkZGVkLgorICAgICAg
ICAoUEFMOjpwb3BVcE1lbnUpOgorCiAyMDE3LTA5LTEzICBBbmR5IEVzdGVzICA8YWVzdGVzQGFw
cGxlLmNvbT4KIAogICAgICAgICBbQ0ZdIFVwc3RyZWFtIENGTmV0d29yay1yZWxhdGVkIFdlYktp
dFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTU0MmYxZDg2YjVmN2E3MDNh
YWI4NmMwYjEyNjE4MjFiNmRmYjdmMS4uMzlmODlhZTZhMTVjYjFmODM5NTM1NGRkZTBhNzhkYTYy
MDQ3ZDE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxNy0wOS0xNSAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gVXBsb2FkIG1pc2NlbGxhbmVv
dXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1By
b2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXpl
UHJvY2Vzc05hbWUpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NN
YWMubW06CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNz
TmFtZSk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvbWFjL1N0b3JhZ2VQcm9jZXNzTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChX
ZWJLaXQ6OnRyYWNraW5nQXJlYU9wdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6bWlnaHRCZWdpblNjcm9sbFdoaWxlSW5hY3RpdmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVu
dVByb3h5TWFjOjpzaG93UG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRz
Y2FwZVBsdWdpbjo6cG9wVXBDb250ZXh0TWVudSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6aGFuZGxl
Q29udGV4dE1lbnVFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdlcyk6CisKIDIwMTctMDkt
MTQgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjIyMjAzMy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCA2ODcxODRlZjUyYjY0MDcwOWZiNGJlNGE0ZmZlODliYzlmMDQyMDc4Li4xYTY4MDAwZTQ2MTM4
NjE0M2VkMmM3NDg4ZmM2M2MxODY0YWFhNDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjggQEAKKzIwMTctMDktMTUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgorCisgICAgICAgIFtNYWNdIFVwbG9hZCBtaXNjZWxsYW5lb3VzIFdlYktpdFN5c3RlbUlu
dGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NzAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0
ZS5tbToKKyAgICAgICAgKC1bV2ViRGVmYXVsdFVJRGVsZWdhdGUgbWVudUl0ZW1XaXRoVGFnOnRh
cmdldDpyZXByZXNlbnRlZE9iamVjdDpdKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRz
Y2FwZVBsdWdpbkhvc3RQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5I
b3N0UHJveHk6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5KToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnNob3cpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKElu
aXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3
Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBzZXREYXRhU291cmNlOl0pOgorICAgICAgICAo
LVtXZWJIVE1MVmlldyBhdHRhY2hSb290TGF5ZXI6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJW
aWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWly
a10pOgorICAgICAgICAoLVtXZWJWaWV3IF9uZWVkc0xpbmtFbGVtZW50VGV4dENTU1F1aXJrXSk6
CisgICAgICAgICgtW1dlYlZpZXcgX25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrXSk6Cisg
ICAgICAgICgtW1dlYlZpZXcgX25lZWRzRnJhbWVMb2FkRGVsZWdhdGVSZXRhaW5RdWlya10pOgor
ICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6CisKIDIwMTctMDktMTQg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10g
QWRkIFByaXZhdGVTeW1ib2xNb2RlOjp7SW5jbHVkZSxFeGNsdWRlfSBmb3IgUHJvcGVydHlOYW1l
QXJyYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmln
CmluZGV4IDc2NjY3YmFlNzQwNDcxZDc0NWE5NTEyMjA1ZWIxY2Y0OWQ3YTMyMzUuLmIwM2RkNGNl
OGEyMzZiNzNlODg5OGU3ZjlkYmQzOGY1ZmFjYzgyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUv
Q29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwpAQCAtNzcsNyArNzcsNyBAQCBMSUJXRUJS
VENfTElCUkFSWV9ESVJfVVNFX09WRVJSSURFX0ZSQU1FV09SS1NfRElSX05PID0gJChXRUJDT1JF
X0ZSQU1FV09SS1NfRElSKQogTElCV0VCUlRDX0xJQlJBUllfRElSX1VTRV9PVkVSUklERV9GUkFN
RVdPUktTX0RJUl9ZRVMgPSAkKFdLX09WRVJSSURFX0ZSQU1FV09SS1NfRElSKTsKIAogT1RIRVJf
TERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdLX1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdT
KSAkKFdLX1VOREVGSU5FRF9TWU1CT0xTX0xERkxBR1MpICQoT1RIRVJfTERGTEFHU19QTEFURk9S
TSk7Ci1PVEhFUl9MREZMQUdTX0JBU0UgPSAtbHNxbGl0ZTMgLWxvYmpjIC1sQU5HTEUgLWZyYW1l
d29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBNZXRhbCAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3Jl
VGVzdFN1cHBvcnQgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0TGVnYWN5IC1PYmpDOworT1RIRVJf
TERGTEFHU19CQVNFID0gLWxzcWxpdGUzIC1sb2JqYyAtbEFOR0xFIC1mcmFtZXdvcmsgQ29yZUF1
ZGlvIC1mcmFtZXdvcmsgTWV0YWwgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0
IC1hbGxvd2FibGVfY2xpZW50IFdlYktpdExlZ2FjeSAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvbGliUEFMLmE7CiAvLyBGSVhNRTogUmVkdWNlIHRoZSBudW1iZXIgb2YgYWxsb3dh
YmxlX2NsaWVudCA8cmRhcjovL3Byb2JsZW0vMzE4MjM5Njk+CiBPVEhFUl9MREZMQUdTX0JBU0Vf
aW9zID0gJChPVEhFUl9MREZMQUdTX0JBU0UpIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdv
cmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9u
IC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIE1vYmlsZUNvcmVTZXJ2aWNlcyAtZnJhbWV3
b3JrIE9wZW5HTEVTIC1sTW9iaWxlR2VzdGFsdCAkKFdLX0lPU19CSU5DT01QQVRfTERGTEFHUykg
LWFsbG93YWJsZV9jbGllbnQgV2ViS2l0IC1hbGxvd2FibGVfY2xpZW50IGlUdW5lc1UgLWFsbG93
YWJsZV9jbGllbnQgQ2FzYWJsYW5jYSAtYWxsb3dhYmxlX2NsaWVudCBSZW1vdGUgLWFsbG93YWJs
ZV9jbGllbnQgVFZCb29rcyAtYWxsb3dhYmxlX2NsaWVudCBEdW1wUmVuZGVyVHJlZSAtYWxsb3dh
YmxlX2NsaWVudCBXZWJLaXRUZXN0UnVubmVyIC1hbGxvd2FibGVfY2xpZW50IFRlc3RXZWJLaXRB
UEk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1pcGhvbmVvcypdID0gJChPVEhFUl9MREZM
QUdTX0JBU0VfaW9zKSAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIEdyYXBoaWNzU2Vy
dmljZXMgJChMSUJXRUJSVENfTERGTEFHUyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFM
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjVkOTA3MTNkYzhjOTllYjY1NmIwMzZi
ZGE5MzIyNTVlNzk4ZDUyNC4uMDQ1MWY4YjM2NzU0YzZiMjQ0ZDg5YjRkM2ZkOTgzYTg4ZTVmOTQz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTA2LDYgKzEwNiwxMiBAQAogCQlBMTA4MjZGOTFGNTc2MjkyMDA0NzcyQUMgLyog
V2ViUGFuZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMDgyNkY3MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5oICovOyB9OwogCQlBMTA4MjZG
QTFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTA4MjZGODFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFu
ZWwubW0gKi87IH07CiAJCUExMDgyNkZFMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJ
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTA4MjZG
RDFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFwaGljc1NQSS5oICovOyB9OworCQlBMTE3NUI0QjFG
NkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJ
LmggKi87IH07CisJCUExMTc1QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRDMUY2QjMz
NzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsKKwkJQTExNzVCNEYxRjZCMzM3MzAwQzRC
OUYwIC8qIFBvcHVwTWVudS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExMTc1QjREMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gKi87IH07
CisJCUExMTc1QjU3MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjU1MUY2
QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCAqLzsgfTsKKwkJQTExNzVC
NTgxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI1NjFGNkI0NzA1MDBD
NEI5RjAgLyogRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJQTExNzVCNUExRjZC
NEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Ny
b2xsVmlld1NQSS5oICovOyB9OwogCQlBMUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRh
dGFTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
RjU1RENFMUY1NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEy
MTFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmlu
Zy5oICovOyB9OwogCQlBMzBENDEyMjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMUYxRjBE
RDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCAqLzsgfTsKQEAgLTIyNyw2ICsyMzMsMTIgQEAK
IAkJQTEwODI2RjcxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlBhbmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMDgyNkY4MUY1NzYy
OTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlBhbmVs
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTA4MjZGRDFGNThBNDMzMDA0Nzcy
QUMgLyogTlNHcmFwaGljc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0dyYXBoaWNzU1BJLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExMTc1QjRBMUY2QjJEN0UwMEM0QjlGMCAvKiBO
U0NlbGxTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNDZWxsU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUExMTc1QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEx
MTc1QjREMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQb3B1cE1lbnUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExMTc1QjU1
MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUExMTc1QjU2MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmll
d1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOU1Njcm9sbFZpZXdTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTFGNTVEQ0UxRjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1ldGFkYXRhU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBLaWxsUmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBMzBENDExRjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS2lsbFJpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMzA1LDYgKzMxNyw3IEBACiAJCQkJMEMyREExMjgxRjNCRUI0OTAwREJD
MzE3IC8qIElPUmV0dXJuU1BJLmggKi8sCiAJCQkJMEMyREExMjkxRjNCRUI0OTAwREJDMzE3IC8q
IElPU3VyZmFjZVNQSS5oICovLAogCQkJCTBDMkRBMTJBMUYzQkVCNDkwMERCQzMxNyAvKiBJT1R5
cGVzU1BJLmggKi8sCisJCQkJMEM1QUY5MTIxRjQzQTRDNzAwMkVBQzAyIC8qIExhdW5jaFNlcnZp
Y2VzU1BJLmggKi8sCiAJCQkJMEMyREExMkIxRjNCRUI0OTAwREJDMzE3IC8qIExpbmtQcmVzZW50
YXRpb25TUEkuaCAqLywKIAkJCQkwQzJEQTEyQzFGM0JFQjQ5MDBEQkMzMTcgLyogTWFjaFZNU1BJ
LmggKi8sCiAJCQkJMEMyREExMkQxRjNCRUI0OTAwREJDMzE3IC8qIE5FRmlsdGVyU291cmNlU1BJ
LmggKi8sCkBAIC0zMzQsNyArMzQ3LDYgQEAKIAkJCQkwQzVBRjkwRjFGNDNBNEM3MDAyRUFDMDIg
LyogQ29yZVVJU1BJLmggKi8sCiAJCQkJMEM1QUY5MTAxRjQzQTRDNzAwMkVBQzAyIC8qIERhdGFE
ZXRlY3RvcnNVSVNQSS5oICovLAogCQkJCTBDNUFGOTExMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFw
aGljc1NlcnZpY2VzU1BJLmggKi8sCi0JCQkJMEM1QUY5MTIxRjQzQTRDNzAwMkVBQzAyIC8qIExh
dW5jaFNlcnZpY2VzU1BJLmggKi8sCiAJCQkJMEM1QUY5MTMxRjQzQTRDNzAwMkVBQzAyIC8qIE1l
ZGlhUGxheWVyU1BJLmggKi8sCiAJCQkJMEM1QUY5MTQxRjQzQTRDNzAwMkVBQzAyIC8qIE1vYmls
ZUdlc3RhbHRTUEkuaCAqLywKIAkJCQkwQzVBRjkxNTFGNDNBNEM3MDAyRUFDMDIgLyogT3BlbkdM
RVNTUEkuaCAqLywKQEAgLTM1Nyw2ICszNjksNyBAQAogCQkJCUExRjU1RENFMUY1NTI4RUMwMEVE
Qjc1RiAvKiBNZXRhZGF0YVNQSS5oICovLAogCQkJCTBDNzc4NTc0MUY0NTEzMEYwMEY0RUJCNiAv
KiBOU0FjY2Vzc2liaWxpdHlTUEkuaCAqLywKIAkJCQkwQzc3ODU3NTFGNDUxMzBGMDBGNEVCQjYg
LyogTlNBcHBsaWNhdGlvblNQSS5oICovLAorCQkJCUExMTc1QjRBMUY2QjJEN0UwMEM0QjlGMCAv
KiBOU0NlbGxTUEkuaCAqLywKIAkJCQkwQzc3ODU3NjFGNDUxMzBGMDBGNEVCQjYgLyogTlNFdmVu
dFNQSS5oICovLAogCQkJCTBDNzc4NTc3MUY0NTEzMEYwMEY0RUJCNiAvKiBOU0ZvbnRTUEkuaCAq
LywKIAkJCQlBMTA4MjZGRDFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFwaGljc1NQSS5oICovLApA
QCAtMzY4LDYgKzM4MSw3IEBACiAJCQkJMEM3Nzg1N0MxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Ny
b2xsZXJJbXBTUEkuaCAqLywKIAkJCQkwQzc3ODU3RDFGNDUxMzBGMDBGNEVCQjYgLyogTlNTY3Jv
bGxpbmdJbnB1dEZpbHRlclNQSS5oICovLAogCQkJCTBDNzc4NTdFMUY0NTEzMEYwMEY0RUJCNiAv
KiBOU1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvclNQSS5oICovLAorCQkJCUExMTc1QjU5MUY2
QjRBODQwMEM0QjlGMCAvKiBOU1Njcm9sbFZpZXdTUEkuaCAqLywKIAkJCQkwQzc3ODU3RjFGNDUx
MzBGMDBGNEVCQjYgLyogTlNTaGFyaW5nU2VydmljZVBpY2tlclNQSS5oICovLAogCQkJCTBDNzc4
NTgwMUY0NTEzMEYwMEY0RUJCNiAvKiBOU1NoYXJpbmdTZXJ2aWNlU1BJLmggKi8sCiAJCQkJMEM3
Nzg1ODExRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU3BlbGxDaGVja2VyU1BJLmggKi8sCkBAIC00NDcs
NiArNDYxLDE1IEBACiAJCQlwYXRoID0gQ29uZmlndXJhdGlvbnM7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OworCQlBMTE3NUI1NDFGNkI0NkQ2MDBDNEI5RjAgLyogY2YgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUExMTc1QjU2MUY2QjQ3
MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwICovLAorCQkJCUExMTc1QjU1
MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCAqLywKKwkJCSk7CisJ
CQlwYXRoID0gY2Y7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlBMzBENDEx
RDFGMEREMEFDMDBCNzE5NTQgLyogdGV4dCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC00NjgsNiArNDkxLDcgQEAKIAkJQTM3ODhFOUYxRjA1QjdDRTAwNjc5
NDI1IC8qIHN5c3RlbSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJQTExNzVCNTQxRjZCNDZENjAwQzRCOUYwIC8qIGNmICovLAogCQkJCUEzQUI2RTVEMUYz
RDFFMjgwMDlDMTRCMSAvKiBjb2NvYSAqLywKIAkJCQlBMzc4OEVBMDFGMDVCN0UyMDA2Nzk0MjUg
LyogbWFjICovLAogCQkJCUEzQUI2RTUxMUYzRDFEQzUwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVy
LmNwcCAqLywKQEAgLTQ4Myw2ICs1MDcsOCBAQAogCQlBMzc4OEVBMDFGMDVCN0UyMDA2Nzk0MjUg
LyogbWFjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlB
MTE3NUI0QzFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51LmggKi8sCisJCQkJQTExNzVCNEQx
RjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAqLywKIAkJCQlBMzc4OEU5RDFGMDVCNzhF
MDA2Nzk0MjUgLyogU291bmRNYWMubW0gKi8sCiAJCQkJQTNBQjZFNjIxRjNEMjE3RjAwOUMxNEIx
IC8qIFN5c3RlbVNsZWVwTGlzdGVuZXJNYWMuaCAqLywKIAkJCQlBM0FCNkU2MzFGM0QyMTdGMDA5
QzE0QjEgLyogU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5tbSAqLywKQEAgLTUyNSw2ICs1NTEsNyBA
QAogCQkJCTBDMkRBMTQxMUYzQkVCNDkwMERCQzMxNyAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEM3Nzg1OEExRjQ1MTMwRjAwRjRFQkI2IC8qIERhdGFEZXRl
Y3RvcnNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFBMUY0M0E0QzcwMDJFQUMwMiAv
KiBEYXRhRGV0ZWN0b3JzVUlTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMTc1QjU3MUY2QjQ3
MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBDMkQ5RTczMUVFRjVBRjYwMERCQzMxNyAvKiBFeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExMDI2NTg3MUY1Njc0NjEwMEI0Qzg0NCAvKiBGb3VuZGF0aW9uU1BJLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwQzVBRjkxQjFGNDNBNEM3MDAyRUFDMDIgLyogR3JhcGhpY3NTZXJ2aWNl
c1NQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC01MzUsMTIgKzU2MiwxMiBAQAogCQkJCTBDMkRBMTQz
MUYzQkVCNDkwMERCQzMxNyAvKiBJT1BTTGliU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJE
QTE0NDFGM0JFQjQ5MDBEQkMzMTcgLyogSU9SZXR1cm5TUEkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBDMkRBMTQ1MUYzQkVCNDkwMERCQzMxNyAvKiBJT1N1cmZhY2VTUEkuaCBpbiBIZWFkZXJzICov
LAotCQkJCTA3Mzc3QURDMUY1Nzc3RDkwMDI3RjE2RCAvKiBMb2dnZXJIZWxwZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBDMkRBMTQ2MUYzQkVCNDkwMERCQzMxNyAvKiBJT1R5cGVzU1BJLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBMzBENDEyMTFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuaCBp
biBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFDMUY0M0E0QzcwMDJFQUMwMiAvKiBMYXVuY2hTZXJ2
aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNDcxRjNCRUI0OTAwREJDMzE3IC8q
IExpbmtQcmVzZW50YXRpb25TUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MDhBQzMzMUY0Qzg3
NEIwMDFGNzg4RiAvKiBMb2dnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3Mzc3QURDMUY1Nzc3
RDkwMDI3RjE2RCAvKiBMb2dnZXJIZWxwZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThC
MUY0NTEzMEYwMEY0RUJCNiAvKiBMb29rdXBTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRB
MTQ4MUYzQkVCNDkwMERCQzMxNyAvKiBNYWNoVk1TUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBD
NUFGOTFEMUY0M0E0QzcwMDJFQUMwMiAvKiBNZWRpYVBsYXllclNQSS5oIGluIEhlYWRlcnMgKi8s
CkBAIC01NTMsNiArNTgwLDcgQEAKIAkJCQkwQzJEQTE0QTFGM0JFQjQ5MDBEQkMzMTcgLyogTlNB
dHRyaWJ1dGVkU3RyaW5nU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0QjFGM0JFQjQ5
MDBEQkMzMTcgLyogTlNCdXR0b25DZWxsU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0
QzFGM0JFQjQ5MDBEQkMzMTcgLyogTlNDYWxlbmRhckRhdGVTUEkuaCBpbiBIZWFkZXJzICovLAor
CQkJCUExMTc1QjRCMUY2QjJEN0UwMEM0QjlGMCAvKiBOU0NlbGxTUEkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBDMkRBMTREMUYzQkVCNDkwMERCQzMxNyAvKiBOU0NvbG9yU1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzc3ODU4RjFGNDUxMzBGMDBGNEVCQjYgLyogTlNFdmVudFNQSS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEMyREExNEUxRjNCRUI0OTAwREJDMzE3IC8qIE5TRXh0ZW5zaW9uU1BJ
LmggaW4gSGVhZGVycyAqLywKQEAgLTU2Nyw2ICs1OTUsNyBAQAogCQkJCTBDNzc4NTk1MUY0NTEz
MEYwMEY0RUJCNiAvKiBOU1Njcm9sbGVySW1wU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3
ODU5NjFGNDUxMzBGMDBGNEVCQjYgLyogTlNTY3JvbGxpbmdJbnB1dEZpbHRlclNQSS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEM3Nzg1OTcxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsaW5nTW9t
ZW50dW1DYWxjdWxhdG9yU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQlBMTE3NUI1QTFGNkI0QTg0
MDBDNEI5RjAgLyogTlNTY3JvbGxWaWV3U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5
ODFGNDUxMzBGMDBGNEVCQjYgLyogTlNTaGFyaW5nU2VydmljZVBpY2tlclNQSS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEM3Nzg1OTkxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2hhcmluZ1NlcnZpY2VT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTlBMUY0NTEzMEYwMEY0RUJCNiAvKiBOU1Nw
ZWxsQ2hlY2tlclNQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC01ODEsNiArNjEwLDcgQEAKIAkJCQkw
QzVBRjkxRjFGNDNBNEM3MDAyRUFDMDIgLyogT3BlbkdMRVNTUEkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBDMkRBMTU1MUYzQkVCNDkwMERCQzMxNyAvKiBQYXNzS2l0U1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwQzc3ODU5RTFGNDUxMzBGMDBGNEVCQjYgLyogUElQU1BJLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBMTE3NUI0RTFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzJEQTE1NjFGM0JFQjQ5MDBEQkMzMTcgLyogcHRocmVhZFNQSS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEM3Nzg1OUYxRjQ1MTMwRjAwRjRFQkI2IC8qIFFUS2l0U1BJLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwQzJEQTE1NzFGM0JFQjQ5MDBEQkMzMTcgLyogUXVhcnR6Q29yZVNQ
SS5oIGluIEhlYWRlcnMgKi8sCkBAIC02ODgsOCArNzE4LDEwIEBACiAJCQlidWlsZEFjdGlvbk1h
c2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJMUMwOUQwNTYxRTMxQzQ2NTAwNzI1
RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlB
MTE3NUI1ODFGNkI0NzA1MDBDNEI5RjAgLyogRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUEzMEQ0MTIyMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBMzBENDEyNTFGMEREMTJEMDBCNzE5NTQgLyogS2lsbFJpbmdN
YWMubW0gaW4gU291cmNlcyAqLywKKwkJCQlBMTE3NUI0RjFGNkIzMzczMDBDNEI5RjAgLyogUG9w
dXBNZW51Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNDNjZDREMxRjQ2MkQ2QTAwOUU2RUU5IC8q
IFNlc3Npb25JRC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBM0FCNkU1MjFGM0QxREM1MDA5QzE0
QjEgLyogU2xlZXBEaXNhYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBM0FCNkU2MDFGM0Qx
RTM5MDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlckNvY29hLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmgKaW5kZXggZmM4
Y2Q3OTI3NjJiZjBhNzYyMGExMmFjZjEyMGZhMzA5YTM3OGZmYy4uZjUwNmNiMjZhMWRjYWEwY2Q1
MThlMmE5ZThjZDVhZWY4N2NiM2NmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZi9DRlV0aWxpdGllc1NQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDcgKzI4LDE2IEBACiAjaW5jbHVkZSA8Q29yZUZvdW5k
YXRpb24vQ29yZUZvdW5kYXRpb24uaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisK
ICNpbXBvcnQgPENvcmVGb3VuZGF0aW9uL0NGUHJpdi5oPgorCisjZWxzZQorCit0eXBlZGVmIENG
X0VOVU0oQ0ZJbmRleCwgQ0ZTeXN0ZW1WZXJzaW9uKSB7CisgICAgQ0ZTeXN0ZW1WZXJzaW9uTGlv
biA9IDcsCisgICAgQ0ZTeXN0ZW1WZXJzaW9uTW91bnRhaW5MaW9uID0gOCwKK307CisKICNlbmRp
ZgogCiBXVEZfRVhURVJOX0NfQkVHSU4KQEAgLTM3LDUgKzQ2LDExIEBAIENGRGljdGlvbmFyeVJl
ZiBfQ0ZDb3B5U3lzdGVtVmVyc2lvbkRpY3Rpb25hcnkodm9pZCk7CiBleHRlcm4gY29uc3QgQ0ZT
dHJpbmdSZWYgX2tDRlN5c3RlbVZlcnNpb25Qcm9kdWN0VmVyc2lvbktleTsKIGV4dGVybiBjb25z
dCBDRlN0cmluZ1JlZiBfa0NGU3lzdGVtVmVyc2lvbkJ1aWxkVmVyc2lvbktleTsKIAorZXh0ZXJu
IGNvbnN0IENGU3RyaW5nUmVmIGtDRldlYlNlcnZpY2VzVHlwZVdlYlNlYXJjaDsKK2V4dGVybiBj
b25zdCBDRlN0cmluZ1JlZiBrQ0ZXZWJTZXJ2aWNlc1Byb3ZpZGVyRGVmYXVsdERpc3BsYXlOYW1l
S2V5OworQ0ZEaWN0aW9uYXJ5UmVmIF9DRldlYlNlcnZpY2VzQ29weVByb3ZpZGVySW5mbyhDRlN0
cmluZ1JlZiBzZXJ2aWNlVHlwZSwgQm9vbGVhbiogb3V0SXNVc2VyU2VsZWN0aW9uKTsKKworQm9v
bGVhbiBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlN0cmluZ1JlZiBidW5kbGVJRCwgaW50
IGxpbmtlZE9uQW5PbGRlclN5c3RlbVRoYW4sIGRvdWJsZSB2ZXJzaW9uTnVtYmVyTGVzc1RoYW4p
OworCiBXVEZfRVhURVJOX0NfRU5ECiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwYTBlYTNiNWIwMzk1
YzVhOTMxMjVkMzViOTA5NzY1ZmQ0MjBhMmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oCkBAIC0wLDAgKzEsNzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0IDxGb3VuZGF0aW9u
L0ZvdW5kYXRpb24uaD4KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpZiBQTEFU
Rk9STShNQUMpCisjaW1wb3J0IDxMYXVuY2hTZXJ2aWNlcy9MYXVuY2hTZXJ2aWNlc1ByaXYuaD4K
KyNlbGlmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9MYXVuY2hT
ZXJ2aWNlc1ByaXYuaD4KKyNlbmRpZgorCisjZW5kaWYKKworQGNsYXNzIExTQXBwTGluazsKK3R5
cGVkZWYgdm9pZCAoXkxTQXBwTGlua0NvbXBsZXRpb25IYW5kbGVyKShMU0FwcExpbmsgKmFwcExp
bmssIE5TRXJyb3IgKmVycm9yKTsKK3R5cGVkZWYgdm9pZCAoXkxTQXBwTGlua09wZW5Db21wbGV0
aW9uSGFuZGxlcikoQk9PTCBzdWNjZXNzLCBOU0Vycm9yICplcnJvcik7CisKKyNpZiAhVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKworQGludGVyZmFjZSBMU1Jlc291cmNlUHJveHkgOiBOU09iamVj
dCA8TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGluZz4KK0BlbmQKKworQGludGVyZmFjZSBMU0J1bmRs
ZVByb3h5IDogTFNSZXNvdXJjZVByb3h5IDxOU1NlY3VyZUNvZGluZz4KK0BlbmQKKworQGludGVy
ZmFjZSBMU0FwcGxpY2F0aW9uUHJveHkgOiBMU0J1bmRsZVByb3h5IDxOU1NlY3VyZUNvZGluZz4K
Ky0gKE5TU3RyaW5nICopbG9jYWxpemVkTmFtZUZvckNvbnRleHQ6KE5TU3RyaW5nICopY29udGV4
dDsKK0BlbmQKKworQGludGVyZmFjZSBMU0FwcExpbmsgOiBOU09iamVjdCA8TlNTZWN1cmVDb2Rp
bmc+CitAZW5kCisKK0BpbnRlcmZhY2UgTFNBcHBMaW5rICgpCisrICh2b2lkKWdldEFwcExpbmtX
aXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxldGlvbkhhbmRsZXI6KExTQXBwTGlua0NvbXBsZXRp
b25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyOworKyAodm9pZClvcGVuV2l0aFVSTDooTlNVUkwg
KilhVVJMIGNvbXBsZXRpb25IYW5kbGVyOihMU0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIp
Y29tcGxldGlvbkhhbmRsZXI7CistICh2b2lkKW9wZW5JbldlYkJyb3dzZXI6KEJPT0wpaW5XZWJC
cm93c2VyIHNldEFwcHJvcHJpYXRlT3BlblN0cmF0ZWd5QW5kV2ViQnJvd3NlclN0YXRlOihOU0Rp
Y3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopc3RhdGUgY29tcGxldGlvbkhhbmRsZXI6KExTQXBw
TGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxlcjsKK0Bwcm9wZXJ0eSAo
cmVhZG9ubHksIHN0cm9uZykgTFNBcHBsaWNhdGlvblByb3h5ICp0YXJnZXRBcHBsaWNhdGlvblBy
b3h5OworQGVuZAorCitlbnVtIExTU2Vzc2lvbklEIHsKKyAgICBrTFNEZWZhdWx0U2Vzc2lvbklE
ID0gLTIsCit9OworCisjZW5kaWYKKworV1RGX0VYVEVSTl9DX0JFR0lOCisKK09TU3RhdHVzIF9M
U1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKExTU2Vzc2lvbklELCBMU0FTTlJlZiwgQ0ZT
dHJpbmdSZWYga2V5VG9TZXRSZWYsIENGVHlwZVJlZiB2YWx1ZVRvU2V0UmVmLCBDRkRpY3Rpb25h
cnlSZWYqIG5ld0luZm9ybWF0aW9uRGljdFJlZik7CitMU0FTTlJlZiBfTFNHZXRDdXJyZW50QXBw
bGljYXRpb25BU04oKTsKKworZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rTFNEaXNwbGF5TmFt
ZUtleTsKKworV1RGX0VYVEVSTl9DX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9pb3MvTGF1bmNoU2VydmljZXNTUEkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZTZhOGIyZTRmY2JlZTE1MTFlOGMwYzQzYjdhYmQ1Nzg1MjI4MTgyMy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9pb3MvTGF1bmNoU2VydmljZXNTUEkuaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3Vu
ZGF0aW9uLmg+Ci0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotCi0jaW1wb3J0IDxNb2Jp
bGVDb3JlU2VydmljZXMvTFNBcHBMaW5rUHJpdi5oPgotCi0jZW5kaWYKLQotQGNsYXNzIExTQXBw
TGluazsKLXR5cGVkZWYgdm9pZCAoXkxTQXBwTGlua0NvbXBsZXRpb25IYW5kbGVyKShMU0FwcExp
bmsgKmFwcExpbmssIE5TRXJyb3IgKmVycm9yKTsKLXR5cGVkZWYgdm9pZCAoXkxTQXBwTGlua09w
ZW5Db21wbGV0aW9uSGFuZGxlcikoQk9PTCBzdWNjZXNzLCBOU0Vycm9yICplcnJvcik7Ci0KLSNp
ZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLQotQGludGVyZmFjZSBMU1Jlc291cmNlUHJveHkg
OiBOU09iamVjdCA8TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGluZz4KLUBlbmQKLQotQGludGVyZmFj
ZSBMU0J1bmRsZVByb3h5IDogTFNSZXNvdXJjZVByb3h5IDxOU1NlY3VyZUNvZGluZz4KLUBlbmQK
LQotQGludGVyZmFjZSBMU0FwcGxpY2F0aW9uUHJveHkgOiBMU0J1bmRsZVByb3h5IDxOU1NlY3Vy
ZUNvZGluZz4KLS0gKE5TU3RyaW5nICopbG9jYWxpemVkTmFtZUZvckNvbnRleHQ6KE5TU3RyaW5n
ICopY29udGV4dDsKLUBlbmQKLQotQGludGVyZmFjZSBMU0FwcExpbmsgOiBOU09iamVjdCA8TlNT
ZWN1cmVDb2Rpbmc+Ci1AZW5kCi0KLUBpbnRlcmZhY2UgTFNBcHBMaW5rICgpCi0rICh2b2lkKWdl
dEFwcExpbmtXaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxldGlvbkhhbmRsZXI6KExTQXBwTGlu
a0NvbXBsZXRpb25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyOwotKyAodm9pZClvcGVuV2l0aFVS
TDooTlNVUkwgKilhVVJMIGNvbXBsZXRpb25IYW5kbGVyOihMU0FwcExpbmtPcGVuQ29tcGxldGlv
bkhhbmRsZXIpY29tcGxldGlvbkhhbmRsZXI7Ci0tICh2b2lkKW9wZW5JbldlYkJyb3dzZXI6KEJP
T0wpaW5XZWJCcm93c2VyIHNldEFwcHJvcHJpYXRlT3BlblN0cmF0ZWd5QW5kV2ViQnJvd3NlclN0
YXRlOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopc3RhdGUgY29tcGxldGlvbkhhbmRs
ZXI6KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxlcjsKLUBw
cm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgTFNBcHBsaWNhdGlvblByb3h5ICp0YXJnZXRBcHBs
aWNhdGlvblByb3h5OwotQGVuZAotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oCmluZGV4IGEzNTViOTRmZTYzMDkyZWY1YWNkMGI1Yzk1
ZTAzZGQ0NmU5NTM4MTUuLjdkNmJhODkzMGFlM2U1NDhhZjhhODkzYWM4YjAwYWJiMzg5ODdkNDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaApA
QCAtMjgsMTAgKzI4LDU5IEBACiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2luY2x1
ZGUgPEhJU2VydmljZXMvQVhUZXh0TWFya2VyLmg+CisjaW5jbHVkZSA8SElTZXJ2aWNlcy9Db3Jl
Q3Vyc29yLmg+CiAjaW5jbHVkZSA8SElTZXJ2aWNlcy9Db3JlRHJhZy5oPgogCiAjZWxzZQogCit0
eXBlZGVmIENGX0VOVU0oU0ludDMyLCBDb3JlQ3Vyc29yVHlwZSkgeworICAgIGtDb3JlQ3Vyc29y
Rmlyc3RDdXJzb3IgPSAwLAorICAgIGtDb3JlQ3Vyc29yQXJyb3cgPSBrQ29yZUN1cnNvckZpcnN0
Q3Vyc29yLAorICAgIGtDb3JlQ3Vyc29ySUJlYW0sCisgICAga0NvcmVDdXJzb3JNYWtlQWxpYXMs
CisgICAga0NvcmVDdXJzb3JOb3RBbGxvd2VkLAorICAgIGtDb3JlQ3Vyc29yQnVzeUJ1dENsaWNr
YWJsZSwKKyAgICBrQ29yZUN1cnNvckNvcHksCisgICAga0NvcmVDdXJzb3JTY3JlZW5TaG90U2Vs
ZWN0aW9uID0gNywKKyAgICBrQ29yZUN1cnNvclNjcmVlblNob3RTZWxlY3Rpb25Ub0NsaXAsCisg
ICAga0NvcmVDdXJzb3JTY3JlZW5TaG90V2luZG93LAorICAgIGtDb3JlQ3Vyc29yU2NyZWVuU2hv
dFdpbmRvd1RvQ2xpcCwKKyAgICBrQ29yZUN1cnNvckNsb3NlZEhhbmQsCisgICAga0NvcmVDdXJz
b3JPcGVuSGFuZCwKKyAgICBrQ29yZUN1cnNvclBvaW50aW5nSGFuZCwKKyAgICBrQ29yZUN1cnNv
ckNvdW50aW5nVXBIYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdEb3duSGFuZCwKKyAgICBr
Q29yZUN1cnNvckNvdW50aW5nVXBBbmREb3duSGFuZCwKKyAgICBrQ29yZUN1cnNvclJlc2l6ZUxl
ZnQsCisgICAga0NvcmVDdXJzb3JSZXNpemVSaWdodCwKKyAgICBrQ29yZUN1cnNvclJlc2l6ZUxl
ZnRSaWdodCwKKyAgICBrQ29yZUN1cnNvckNyb3NzLAorICAgIGtDb3JlQ3Vyc29yUmVzaXplVXAs
CisgICAga0NvcmVDdXJzb3JSZXNpemVEb3duLAorICAgIGtDb3JlQ3Vyc29yUmVzaXplVXBEb3du
LAorICAgIGtDb3JlQ3Vyc29yQ29udGV4dHVhbE1lbnUsCisgICAga0NvcmVDdXJzb3JQb29mLAor
ICAgIGtDb3JlQ3Vyc29ySUJlYW1WZXJ0aWNhbCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6
ZUVhc3QsCisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVFYXN0V2VzdCwKKyAgICBrQ29yZUN1
cnNvcldpbmRvd1Jlc2l6ZU5vcnRoRWFzdCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5v
cnRoRWFzdFNvdXRoV2VzdCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoLAorICAg
IGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhTb3V0aCwKKyAgICBrQ29yZUN1cnNvcldpbmRv
d1Jlc2l6ZU5vcnRoV2VzdCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoV2VzdFNv
dXRoRWFzdCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZVNvdXRoRWFzdCwKKyAgICBrQ29y
ZUN1cnNvcldpbmRvd1Jlc2l6ZVNvdXRoLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291
dGhXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplV2VzdCwKKyAgICBrQ29yZUN1cnNv
cldpbmRvd01vdmUsCisgICAga0NvcmVDdXJzb3JIZWxwLAorICAgIGtDb3JlQ3Vyc29yQ2VsbCwK
KyAgICBrQ29yZUN1cnNvclpvb21JbiwKKyAgICBrQ29yZUN1cnNvclpvb21PdXQsCisgICAga0Nv
cmVDdXJzb3JMYXN0Q3Vyc29yID0ga0NvcmVDdXJzb3Jab29tT3V0Cit9OworCiBlbnVtIHsKICAg
ICBrQ29yZURyYWdJbWFnZVNwZWNWZXJzaW9uT25lID0gMSwKIH07CkBAIC02OCw1ICsxMTcsNiBA
QCBDRlR5cGVJRCBBWFRleHRNYXJrZXJSYW5nZUdldFR5cGVJRCgpOwogQ29yZURyYWdSZWYgQ29y
ZURyYWdHZXRDdXJyZW50RHJhZygpOwogT1NTdGF0dXMgQ29yZURyYWdTZXRJbWFnZShDb3JlRHJh
Z1JlZiwgQ0dQb2ludCBpbWFnZU9mZnNldCwgQ29yZURyYWdJbWFnZVNwZWMqLCBDR1NSZWdpb25P
YmogaW1hZ2VTaGFwZSwgZmxvYXQgb3ZlcmFsbEFscGhhKTsKIGNvbnN0IFVJbnQ4KiBBWFRleHRN
YXJrZXJHZXRCeXRlUHRyKEFYVGV4dE1hcmtlclJlZik7CitDRlJ1bkxvb3BTb3VyY2VSZWYgTVNI
Q3JlYXRlTUlHU2VydmVyU291cmNlKENGQWxsb2NhdG9yUmVmLCBDRkluZGV4IG9yZGVyLCBtaWdf
c3Vic3lzdGVtX3Qgc3ViX3N5c3RlbSwgTVNIQ3JlYXRlT3B0aW9ucywgbWFjaF9wb3J0X3QsIHZv
aWQqIHVzZXJfZGF0YSk7CiAKIFdURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU0NlbGxTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL21hYy9OU0NlbGxTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTMzZGEzZDNkZmJiYTdjYjA2M2Y2
MGVkNDc5MTAxZTg2NjkzODY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvbWFjL05TQ2VsbFNQSS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEFw
cEtpdC9OU0NlbGxfUHJpdmF0ZS5oPgorCisjZW5kaWYKKworV1RGX0VYVEVSTl9DX0JFR0lOCisK
K3ZvaWQgX05TRHJhd0NhcmJvblRoZW1lTGlzdEJveChOU1JlY3QsIEJPT0wgZW5hYmxlZCwgQk9P
TCBmbGlwcGVkLCBCT09MIHRleHR1cmVkKTsKKworV1RGX0VYVEVSTl9DX0VORApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TTWVudVNQSS5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvbWFjL05TTWVudVNQSS5oCmluZGV4IDFmNWU3YmM2NmEwMDMyMTk0
ODIyMDRjNDgxOTk0MWVkM2I0ZmE1ZmYuLmExMmVkZjI2Y2E0MTM5ZjI3MjZhYmQxZjlkZDAwMjY2
NjQ5ZjRjYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU01l
bnVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNNZW51U1BJLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjksNyArMjksOSBAQAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorV1RGX0VYVEVS
Tl9DX0JFR0lOCiAjaW1wb3J0IDxBcHBLaXQvTlNNZW51X1ByaXZhdGUuaD4KK1dURl9FWFRFUk5f
Q19FTkQKIAogI2Vsc2UKIApAQCAtMzgsNiArNDAsMTAgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgTlNNZW51VHlwZSkgewogICAgIE5TTWVudVR5cGVDb250ZXh0TWVudSwKIH07CiAKK2Vu
dW0geworICAgIE5TUG9wVXBNZW51SXNQb3B1cEJ1dHRvbiA9IDB4NDAKK30KKwogQGludGVyZmFj
ZSBOU01lbnUgKCkKICsgKE5TTWVudVR5cGUpbWVudVR5cGVGb3JFdmVudDooTlNFdmVudCAqKWV2
ZW50OwogQGVuZApAQCAtNTYsNCArNjIsMTUgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
TlNNZW51VHlwZSkgewogCiAjZW5kaWYKIAotI2VuZGlmCitXVEZfRVhURVJOX0NfQkVHSU4KKwor
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgTlNQb3BVcE1lbnVQb3B1cEJ1dHRvbkJvdW5kczsKK2V4
dGVybiBOU1N0cmluZyAqIGNvbnN0IE5TUG9wVXBNZW51UG9wdXBCdXR0b25MYWJlbE9mZnNldDsK
K2V4dGVybiBOU1N0cmluZyAqIGNvbnN0IE5TUG9wVXBNZW51UG9wdXBCdXR0b25TaXplOworZXh0
ZXJuIE5TU3RyaW5nICogY29uc3QgTlNQb3BVcE1lbnVQb3B1cEJ1dHRvbldpZGdldDsKKwordm9p
ZCBfTlNQb3BVcENhcmJvbk1lbnUzKE5TTWVudSAqLCBOU1dpbmRvdyAqLCBOU1ZpZXcgKm93bmVy
VmlldywgTlNQb2ludCBzY3JlZW5Qb2ludCwgTlNJbnRlZ2VyIGNoZWNrZWRJdGVtLCBOU0ZvbnQg
KiwgQ0dGbG9hdCBtaW5XaWR0aCwgTlNTdHJpbmcgKnJ1bkxvb3BNb2RlLCBOU1BvcFVwTWVudUZs
YWdzLCBOU0RpY3Rpb25hcnkgKm9wdGlvbnMpOworCitXVEZfRVhURVJOX0NfRU5ECisKKyNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9tYWMvTlNTY3JvbGxWaWV3U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
TlNTY3JvbGxWaWV3U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2IwZWY3YWY1OGUzMmU0OGJmMTdlMDYyMmJl
ODdiNWZkMGM0ZWRmOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxB
cHBLaXQvTlNTY3JvbGxWaWV3X1ByaXZhdGUuaD4KKworI2VuZGlmCisKK1dURl9FWFRFUk5fQ19C
RUdJTgorCitDR0Zsb2F0IF9OU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YShDR0Zsb2F0IGluaXRp
YWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0aWFsVmVsb2NpdHksIENHRmxvYXQgZWxhcHNlZFRpbWUp
OworQ0dGbG9hdCBfTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoQ0dGbG9hdCBkZWx0YSk7
CitDR0Zsb2F0IF9OU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YShDR0Zsb2F0IGRlbHRhKTsK
KworV1RGX0VYVEVSTl9DX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21h
Yy9OU1Njcm9sbGVySW1wU1BJLmgKaW5kZXggMDQ5MmMxYWI2MTk1NmNiMTk2MWM5ZWE3YjI3NzE1
NzM3ODFkNTUzMy4uMTg3MDQ5NmUwN2MyMGYyZWI5YWI1YWZhZDcxZTlkYjFkYWQxYTJmNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTE0OSw0ICsxNDksMTAgQEAgdHlwZWRlZiBOU1VJbnRlZ2VyIE5TT3ZlcmxheVNjcm9sbGVyU3Rh
dGU7CiAKICNlbmRpZgogCitXVEZfRVhURVJOX0NfQkVHSU4KKworTlNTY3JvbGxlclN0eWxlIF9O
U1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpOworCitXVEZfRVhURVJOX0NfRU5ECisKICNlbmRp
ZiAvLyBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0
ZW0vY2YvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ4NjcyMjlh
OGYxYWMzZTY1N2YwZGE1ZmEzNzQ4MzM3OTVlN2ZiNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAKQEAg
LTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCIKKworI2luY2x1ZGUgIkNGVXRpbGl0aWVzU1BJLmgi
CisjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KKworbmFtZXNwYWNl
IFBBTCB7CisKK1JldGFpblB0cjxDRlN0cmluZ1JlZj4gZGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlz
cGxheU5hbWUoKQoreworICAgIGF1dG8gcHJvdmlkZXJJbmZvID0gYWRvcHRDRihfQ0ZXZWJTZXJ2
aWNlc0NvcHlQcm92aWRlckluZm8oa0NGV2ViU2VydmljZXNUeXBlV2ViU2VhcmNoLCBudWxscHRy
KSk7CisgICAgaWYgKCFwcm92aWRlckluZm8pCisgICAgICAgIHJldHVybiBDRlNUUigiR29vZ2xl
Iik7CisKKyAgICBDRlR5cGVSZWYgZGlzcGxheU5hbWUgPSBDRkRpY3Rpb25hcnlHZXRWYWx1ZShw
cm92aWRlckluZm8uZ2V0KCksIGtDRldlYlNlcnZpY2VzUHJvdmlkZXJEZWZhdWx0RGlzcGxheU5h
bWVLZXkpOworICAgIGlmICghZGlzcGxheU5hbWUpCisgICAgICAgIHJldHVybiBDRlNUUigiR29v
Z2xlIik7CisKKyAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQoZGlzcGxheU5hbWUpID09IENGU3RyaW5n
R2V0VHlwZUlEKCkpOworICAgIHJldHVybiBhZG9wdENGKENGU3RyaW5nQ3JlYXRlQ29weShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAoQ0ZTdHJpbmdSZWYpZGlzcGxheU5hbWUpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgUEFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9j
Zi9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVt
L2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjZmNmZDgzN2I3NjA5YzY0
MzI3ZTc1NTk4MGQ2ZDRmZjk5MmZiZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3N5c3RlbS9jZi9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuaApAQCAtMCwwICsxLDM0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CisKK25hbWVzcGFjZSBQQUwgeworCitQQUxfRVhQT1JUIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gZGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUoKTsKKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwZWJmN2Q2
OWMwNDJiM2ZiZTM0YWRkZDEyMDY5OTRhNDQxOWU4ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51LmgKQEAgLTAsMCArMSwzMiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KKworbmFtZXNwYWNlIFBB
TCB7CisKK1BBTF9FWFBPUlQgdm9pZCBwb3BVcE1lbnUoTlNNZW51ICosIE5TUG9pbnQgbG9jYXRp
b24sIGZsb2F0IHdpZHRoLCBOU1ZpZXcgKiwgaW50IHNlbGVjdGVkSXRlbSwgTlNGb250ICosIE5T
Q29udHJvbFNpemUsIGJvb2wgdXNlc0N1c3RvbUFwcGVhcmFuY2UpOworCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1tIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjMz
NTc1ZGMzNGU3NjFlODYxY2JiNDUyODdiNzMzZjJjZDRhYzIzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbQpAQCAtMCwwICsx
LDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQb3B1cE1l
bnUuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAiTlNNZW51U1BJLmgiCisjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0BpbnRlcmZhY2UgTlNNZW51IChXZWJQcml2YXRlKQor
LSAoaWQpX21lbnVJbXBsOworQGVuZAorCitAaW50ZXJmYWNlIE5TT2JqZWN0IChXZWJQcml2YXRl
KQorLSAodm9pZClwb3BVcE1lbnU6KE5TTWVudSopbWVudSBhdExvY2F0aW9uOihOU1BvaW50KWxv
Y2F0aW9uIHdpZHRoOihDR0Zsb2F0KXdpZHRoIGZvclZpZXc6KE5TVmlldyopdmlldyB3aXRoU2Vs
ZWN0ZWRJdGVtOihOU0ludGVnZXIpc2VsZWN0ZWRJdGVtIHdpdGhGb250OihOU0ZvbnQqKWZvbnQg
d2l0aEZsYWdzOihOU1BvcFVwTWVudUZsYWdzKWZsYWdzIHdpdGhPcHRpb25zOihOU0RpY3Rpb25h
cnkgKilvcHRpb25zOworQGVuZAorCituYW1lc3BhY2UgUEFMIHsKKwordm9pZCBwb3BVcE1lbnUo
TlNNZW51ICptZW51LCBOU1BvaW50IGxvY2F0aW9uLCBmbG9hdCB3aWR0aCwgTlNWaWV3ICp2aWV3
LCBpbnQgc2VsZWN0ZWRJdGVtLCBOU0ZvbnQgKmZvbnQsIE5TQ29udHJvbFNpemUgY29udHJvbFNp
emUsIGJvb2wgdXNlc0N1c3RvbUFwcGVhcmFuY2UpCit7CisgICAgTlNSZWN0IGFkanVzdGVkUG9w
dXBCb3VuZHMgPSBbdmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpbdmlldyBjb252ZXJ0
UmVjdDp2aWV3LmJvdW5kcyB0b1ZpZXc6bmlsXV07CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgaWYgKGNvbnRyb2xTaXplICE9IE5TTWluaUNvbnRyb2xTaXplKSB7Cisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIGFkanVzdGVkUG9wdXBCb3VuZHMu
b3JpZ2luLnggLT0gMzsKKyAgICAgICAgYWRqdXN0ZWRQb3B1cEJvdW5kcy5vcmlnaW4ueSAtPSAx
OworICAgICAgICBhZGp1c3RlZFBvcHVwQm91bmRzLnNpemUud2lkdGggKz0gNjsKKyAgICB9CisK
KyAgICAvLyBUaGVzZSBudW1iZXJzIHdlcmUgZXh0cmFjdGVkIGZyb20gdmlzdWFsIGluc3BlY3Rp
b24gYXMgdGhlIG1lbnUgYW5pbWF0ZXMgc2h1dC4KKyAgICBOU1NpemUgbGFiZWxPZmZzZXQgPSBO
U01ha2VTaXplKDExLCAxKTsKKyAgICBpZiAobWVudS51c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0
aW9uID09IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0VG9MZWZ0KQorICAgICAg
ICBsYWJlbE9mZnNldCA9IE5TTWFrZVNpemUoMjQsIDEpOworCisgICAgYXV0byBvcHRpb25zID0g
YWRvcHROUyhbQHsKKyAgICAgICAgTlNQb3BVcE1lbnVQb3B1cEJ1dHRvbkJvdW5kcyA6IFtOU1Zh
bHVlIHZhbHVlV2l0aFJlY3Q6YWRqdXN0ZWRQb3B1cEJvdW5kc10sCisgICAgICAgIE5TUG9wVXBN
ZW51UG9wdXBCdXR0b25MYWJlbE9mZnNldCA6IFtOU1ZhbHVlIHZhbHVlV2l0aFNpemU6bGFiZWxP
ZmZzZXRdLAorICAgICAgICBOU1BvcFVwTWVudVBvcHVwQnV0dG9uU2l6ZSA6IEAoY29udHJvbFNp
emUpCisgICAgfSBtdXRhYmxlQ29weV0pOworCisgICAgaWYgKHVzZXNDdXN0b21BcHBlYXJhbmNl
KQorICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6QCIiIGZvcktleTpOU1BvcFVwTWVudVBvcHVw
QnV0dG9uV2lkZ2V0XTsKKworICAgIFtbbWVudSBfbWVudUltcGxdIHBvcFVwTWVudTptZW51IGF0
TG9jYXRpb246bG9jYXRpb24gd2lkdGg6d2lkdGggZm9yVmlldzp2aWV3IHdpdGhTZWxlY3RlZEl0
ZW06c2VsZWN0ZWRJdGVtIHdpdGhGb250OmZvbnQgd2l0aEZsYWdzOih1c2VzQ3VzdG9tQXBwZWFy
YW5jZSA/IDAgOiBOU1BvcFVwTWVudUlzUG9wdXBCdXR0b24pIHdpdGhPcHRpb25zOm9wdGlvbnMu
Z2V0KCldOworfQorCit9IC8vIG5hbWVzcGFjZSBQQUwKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0
cmluZ3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0
cmluZ3NDb2NvYS5tbQppbmRleCAxMjliNmUyZDUwZDUyMTZkYjVhNDY4NzY2YzE0ZmQ4MmVhNTNi
Yzc3Li4zMzQxZmEyY2JmZjMwY2NkNzIxMjY1OWU1YTNjMmE2NDM2NmJkMTczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29h
Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTIzLDE1ICsyMywxNiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJMb2NhbGl6ZWRTdHJp
bmdzLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkxvY2FsaXplZFN0cmluZ3MuaCIK
IAotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5oIgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgorI2ltcG9ydCAiV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCA8cGFsL3N5c3RlbS9jZi9EZWZhdWx0U2Vh
cmNoUHJvdmlkZXIuaD4KKyNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW1wb3J0IDx3dGYv
TWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjYsNyArNjcsNyBA
QCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQoKQogCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKIHsKLSAgICBhdXRvIHNlYXJjaFByb3ZpZGVy
TmFtZSA9IGFkb3B0Q0Yod2tDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUoKSk7
CisgICAgYXV0byBzZWFyY2hQcm92aWRlck5hbWUgPSBQQUw6OmRlZmF1bHRTZWFyY2hQcm92aWRl
ckRpc3BsYXlOYW1lKCk7CiAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
U1RSSU5HKCJTZWFyY2ggd2l0aCAlQCIsICJTZWFyY2ggd2l0aCBzZWFyY2ggcHJvdmlkZXIgY29u
dGV4dCBtZW51IGl0ZW0gd2l0aCBwcm92aWRlciBuYW1lIGluc2VydGVkIiksIHNlYXJjaFByb3Zp
ZGVyTmFtZS5nZXQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IGVlM2U1MzdmYjhjMmI2ODcwZTYxZGZkMjM5NzYw
N2VjN2YxZjRiMWEuLmQzNzllMjQ3NGQxNjY2NTRhNGMxMjljY2NiMGYxZWRlM2U2MzI1ZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5t
bQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTQtMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTIzLDIwICsyMywyNCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTY3JvbGxDb250
cm9sbGVyLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlNjcm9sbENvbnRyb2xsZXIu
aCIKIAotI2luY2x1ZGUgIkxheW91dFNpemUuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZl
bnQuaCIKLSNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiV2hl
ZWxFdmVudFRlc3RUcmlnZ2VyLmgiCi0jaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgotI2luY2x1ZGUg
PHN5cy90aW1lLmg+Ci0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0ICJMYXlv
dXRTaXplLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKKyNpbXBvcnQgIldlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgIldoZWVsRXZlbnRUZXN0VHJpZ2dlci5oIgor
I2ltcG9ydCA8c3lzL3N5c2N0bC5oPgorI2ltcG9ydCA8c3lzL3RpbWUuaD4KKyNpbXBvcnQgPHd0
Zi9DdXJyZW50VGltZS5oPgogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKLSNpbmNsdWRl
ICJTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oIgotI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgi
CisjaW1wb3J0ICJTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oIgorI2ltcG9ydCAiU2Nyb2xsYWJs
ZUFyZWEuaCIKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8cGFsL3NwaS9t
YWMvTlNTY3JvbGxWaWV3U1BJLmg+CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSVUJCRVJfQkFORElO
RykgfHwgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKQEAgLTUyLDE3ICs1NiwxNyBAQCBzdGF0aWMg
Y29uc3QgZmxvYXQgcnViYmVyYmFuZE1pbmltdW1SZXF1aXJlZERlbHRhQmVmb3JlU3RyZXRjaCA9
IDEwOwogI2lmIFBMQVRGT1JNKE1BQykKIHN0YXRpYyBmbG9hdCBlbGFzdGljRGVsdGFGb3JUaW1l
RGVsdGEoZmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBmbG9hdCBpbml0aWFsVmVsb2NpdHksIGZsb2F0
IGVsYXBzZWRUaW1lKQogewotICAgIHJldHVybiB3a05TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRh
KGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFZlbG9jaXR5LCBlbGFwc2VkVGltZSk7CisgICAgcmV0
dXJuIF9OU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YShpbml0aWFsUG9zaXRpb24sIGluaXRpYWxW
ZWxvY2l0eSwgZWxhcHNlZFRpbWUpOwogfQogCiBzdGF0aWMgZmxvYXQgZWxhc3RpY0RlbHRhRm9y
UmVib3VuZERlbHRhKGZsb2F0IGRlbHRhKQogewotICAgIHJldHVybiB3a05TRWxhc3RpY0RlbHRh
Rm9yUmVib3VuZERlbHRhKGRlbHRhKTsKKyAgICByZXR1cm4gX05TRWxhc3RpY0RlbHRhRm9yUmVi
b3VuZERlbHRhKGRlbHRhKTsKIH0KIAogc3RhdGljIGZsb2F0IHJlYm91bmREZWx0YUZvckVsYXN0
aWNEZWx0YShmbG9hdCBkZWx0YSkKIHsKLSAgICByZXR1cm4gd2tOU1JlYm91bmREZWx0YUZvckVs
YXN0aWNEZWx0YShkZWx0YSk7CisgICAgcmV0dXJuIF9OU1JlYm91bmREZWx0YUZvckVsYXN0aWNE
ZWx0YShkZWx0YSk7CiB9CiAKIHN0YXRpYyBmbG9hdCBzY3JvbGxXaGVlbE11bHRpcGxpZXIoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAKaW5kZXggZjQyNTc5NzAxMGRjYTIzNzcwYjhmZTQ2MDViYzQ5YjBmNGQ2MDhh
MC4uYzY5NDZkNmRmZDNiY2UzYTFmODYyNGEzOTRiYzY4NjlkN2QyYzNkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI0LDcgKzI0LDYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KICNpbmNsdWRl
ICJHcmFwaGljc0xheWVyQ0EuaCIKIAogI2lmIFVTRShDQSkKQEAgLTQ3LDYgKzQ2LDcgQEAKICNp
bmNsdWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRlIDxRdWFydHpD
b3JlL0NBVHJhbnNmb3JtM0QuaD4KICNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDxwYWwv
c3BpL2NmL0NGVXRpbGl0aWVzU1BJLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KQEAgLTI5ODgsNyArMjk4OCw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVhdGVUcmFu
c2Zvcm1BbmltYXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlCiAgICAgICAg
IC8vIG9uIG9yIGJlZm9yZSBTbm93IExlb3BhcmQuCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGZp
eCBoYXMgbm90IGJlZW4gYWRkZWQgdG8gUXVhcnR6Q29yZSBvbiBXaW5kb3dzIHlldCAoPHJkYXI6
Ly9wcm9ibGVtLzkxMTIyMzM+KSBzbyB3ZSBleHBlY3QgdGhlCiAgICAgICAgIC8vIHJldmVyc2Vk
IGFuaW1hdGlvbiBiZWhhdmlvcgotICAgICAgICBzdGF0aWMgYm9vbCBleGVjdXRhYmxlV2FzTGlu
a2VkT25PckJlZm9yZVNub3dMZW9wYXJkID0gd2tFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9y
ZVNub3dMZW9wYXJkKCk7CisgICAgICAgIHN0YXRpYyBib29sIGV4ZWN1dGFibGVXYXNMaW5rZWRP
bk9yQmVmb3JlU25vd0xlb3BhcmQgPSAhX0NGRXhlY3V0YWJsZUxpbmtlZE9uT3JBZnRlcihDRlN5
c3RlbVZlcnNpb25MaW9uKTsKICAgICAgICAgaWYgKCFleGVjdXRhYmxlV2FzTGlua2VkT25PckJl
Zm9yZVNub3dMZW9wYXJkKQogICAgICAgICAgICAgcmV2ZXJzZUFuaW1hdGlvbkxpc3QgPSBmYWxz
ZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNv
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KaW5kZXgg
YWEzNDVlODhlNDgxMThjNDY4N2I5ZWVmYmZjNzMyMThkYzQ3MDcwYy4uNDE3MmUyMjI2OGMzZGM0
MWRhNTYwZTRlNGMyOGZjNjdjZTgyYzFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0N1cnNvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
Q3Vyc29yTWFjLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3LDggQEAKICNpbXBvcnQgIkN1cnNvci5o
IgogCiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxvYmpjL3J1
bnRpbWUuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaD4KICNpbXBvcnQg
PHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+
CiAKQEAgLTM3LDYgKzM5LDEzOSBAQCBAaW1wbGVtZW50YXRpb24gV2ViQ29yZUN1cnNvckJ1bmRs
ZQogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitzdGF0aWMgTlNDdXJzb3IgKmJ1
c3lCdXRDbGlja2FibGVOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqbWFrZUFsaWFzTlNDdXJz
b3I7CitzdGF0aWMgTlNDdXJzb3IgKm1vdmVOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVz
aXplRWFzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVFYXN0V2VzdE5TQ3Vyc29y
Oworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVOb3J0aE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29y
ICpyZXNpemVOb3J0aFNvdXRoTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRo
ZWFzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVOb3J0aGVhc3RTb3V0aHdlc3RO
U0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplTm9ydGh3ZXN0TlNDdXJzb3I7CitzdGF0
aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRod2VzdFNvdXRoZWFzdE5TQ3Vyc29yOworc3RhdGljIE5T
Q3Vyc29yICpyZXNpemVTb3V0aE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVTb3V0
aGVhc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplU291dGh3ZXN0TlNDdXJzb3I7
CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZVdlc3ROU0N1cnNvcjsKKworc3RhdGljIE5TQ3Vyc29y
ICpjZWxsTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKmhlbHBOU0N1cnNvcjsKK3N0YXRpYyBO
U0N1cnNvciAqem9vbUluTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnpvb21PdXROU0N1cnNv
cjsKKworc3RhdGljIE5TSW50ZWdlciBXS0NvcmVDdXJzb3JfY29yZUN1cnNvclR5cGUoaWQgc2Vs
ZiwgU0VMKQoreworICAgIGlmIChzZWxmID09IGJ1c3lCdXRDbGlja2FibGVOU0N1cnNvcikKKyAg
ICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yQnVzeUJ1dENsaWNrYWJsZTsKKyAgICBpZiAoc2VsZiA9
PSBtYWtlQWxpYXNOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yTWFrZUFsaWFz
OworICAgIGlmIChzZWxmID09IG1vdmVOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vy
c29yV2luZG93TW92ZTsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVFYXN0TlNDdXJzb3IpCisgICAg
ICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZUVhc3Q7CisgICAgaWYgKHNlbGYgPT0g
cmVzaXplRWFzdFdlc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93
UmVzaXplRWFzdFdlc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGhOU0N1cnNvcikKKyAg
ICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGg7CisgICAgaWYgKHNlbGYg
PT0gcmVzaXplTm9ydGhTb3V0aE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JX
aW5kb3dSZXNpemVOb3J0aFNvdXRoOworICAgIGlmIChzZWxmID09IHJlc2l6ZU5vcnRoZWFzdE5T
Q3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aEVhc3Q7
CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGhlYXN0U291dGh3ZXN0TlNDdXJzb3IpCisgICAg
ICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoRWFzdFNvdXRoV2VzdDsKKyAg
ICBpZiAoc2VsZiA9PSByZXNpemVOb3J0aHdlc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtD
b3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0OworICAgIGlmIChzZWxmID09IHJlc2l6ZU5v
cnRod2VzdFNvdXRoZWFzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5k
b3dSZXNpemVOb3J0aFdlc3RTb3V0aEVhc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplU291dGhO
U0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291dGg7Cisg
ICAgaWYgKHNlbGYgPT0gcmVzaXplU291dGhlYXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBr
Q29yZUN1cnNvcldpbmRvd1Jlc2l6ZVNvdXRoRWFzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVT
b3V0aHdlc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXpl
U291dGhXZXN0OworICAgIGlmIChzZWxmID09IHJlc2l6ZVdlc3ROU0N1cnNvcikKKyAgICAgICAg
cmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplV2VzdDsKKyAgICBpZiAoc2VsZiA9PSBjZWxs
TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvckNlbGw7CisgICAgaWYgKHNlbGYg
PT0gaGVscE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JIZWxwOworICAgIGlm
IChzZWxmID09IHpvb21Jbk5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3Jab29t
SW47CisgICAgaWYgKHNlbGYgPT0gem9vbU91dE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0Nv
cmVDdXJzb3Jab29tT3V0OworICAgIAorICAgIHJldHVybiBOU05vdEZvdW5kOworfQorCitzdGF0
aWMgQ2xhc3MgY3JlYXRlQ29yZUN1cnNvckNsYXNzKHZvaWQpCit7CisgICAgQ2xhc3MgY29yZUN1
cnNvckNsYXNzID0gb2JqY19hbGxvY2F0ZUNsYXNzUGFpcihbTlNDdXJzb3IgY2xhc3NdLCAiV0tD
b3JlQ3Vyc29yIiwgMCk7CisgICAgU0VMIGNvcmVDdXJzb3JUeXBlID0gTlNTZWxlY3RvckZyb21T
dHJpbmcoQCJfY29yZUN1cnNvclR5cGUiKTsKKyAgICBjbGFzc19hZGRNZXRob2QoY29yZUN1cnNv
ckNsYXNzLCBjb3JlQ3Vyc29yVHlwZSwgKElNUClXS0NvcmVDdXJzb3JfY29yZUN1cnNvclR5cGUs
IG1ldGhvZF9nZXRUeXBlRW5jb2RpbmcoY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2QoW05TQ3Vyc29y
IGNsYXNzXSwgY29yZUN1cnNvclR5cGUpKSk7CisgICAgb2JqY19yZWdpc3RlckNsYXNzUGFpcihj
b3JlQ3Vyc29yQ2xhc3MpOworICAgIHJldHVybiBjb3JlQ3Vyc29yQ2xhc3M7Cit9CisKK3N0YXRp
YyBDbGFzcyBjb3JlQ3Vyc29yQ2xhc3Modm9pZCkKK3sKKyAgICBDbGFzcyBjb3JlQ3Vyc29yQ2xh
c3MgPSBvYmpjX2xvb2tVcENsYXNzKCJXS0NvcmVDdXJzb3IiKTsKKyAgICBpZiAoIWNvcmVDdXJz
b3JDbGFzcykKKyAgICAgICAgY29yZUN1cnNvckNsYXNzID0gY3JlYXRlQ29yZUN1cnNvckNsYXNz
KCk7CisgICAgcmV0dXJuIGNvcmVDdXJzb3JDbGFzczsKK30KKworc3RhdGljIE5TQ3Vyc29yICpj
dXJzb3IoY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgICBOU0N1cnNvciAqKnNsb3QgPSAwOworICAg
IAorICAgIGlmICghc3RyY21wKG5hbWUsICJCdXN5QnV0Q2xpY2thYmxlIikpCisgICAgICAgIHNs
b3QgPSAmYnVzeUJ1dENsaWNrYWJsZU5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFt
ZSwgIk1ha2VBbGlhcyIpKQorICAgICAgICBzbG90ID0gJm1ha2VBbGlhc05TQ3Vyc29yOworICAg
IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIk1vdmUiKSkKKyAgICAgICAgc2xvdCA9ICZtb3ZlTlND
dXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplRWFzdCIpKQorICAgICAg
ICBzbG90ID0gJnJlc2l6ZUVhc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUs
ICJSZXNpemVFYXN0V2VzdCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZUVhc3RXZXN0TlNDdXJz
b3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGgiKSkKKyAgICAgICAg
c2xvdCA9ICZyZXNpemVOb3J0aE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwg
IlJlc2l6ZU5vcnRoU291dGgiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aFNvdXRoTlND
dXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGhlYXN0IikpCisg
ICAgICAgIHNsb3QgPSAmcmVzaXplTm9ydGhlYXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0
cmNtcChuYW1lLCAiUmVzaXplTm9ydGhlYXN0U291dGh3ZXN0IikpCisgICAgICAgIHNsb3QgPSAm
cmVzaXplTm9ydGhlYXN0U291dGh3ZXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChu
YW1lLCAiUmVzaXplTm9ydGh3ZXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplTm9ydGh3ZXN0
TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGh3ZXN0U291
dGhlYXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplTm9ydGh3ZXN0U291dGhlYXN0TlNDdXJz
b3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplU291dGgiKSkKKyAgICAgICAg
c2xvdCA9ICZyZXNpemVTb3V0aE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwg
IlJlc2l6ZVNvdXRoZWFzdCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZVNvdXRoZWFzdE5TQ3Vy
c29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZVNvdXRod2VzdCIpKQorICAg
ICAgICBzbG90ID0gJnJlc2l6ZVNvdXRod2VzdE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJj
bXAobmFtZSwgIlJlc2l6ZVdlc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVXZXN0TlNDdXJz
b3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiQ2VsbCIpKQorICAgICAgICBzbG90ID0g
JmNlbGxOU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJIZWxwIikpCisgICAg
ICAgIHNsb3QgPSAmaGVscE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlpv
b21JbiIpKQorICAgICAgICBzbG90ID0gJnpvb21Jbk5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFz
dHJjbXAobmFtZSwgIlpvb21PdXQiKSkKKyAgICAgICAgc2xvdCA9ICZ6b29tT3V0TlNDdXJzb3I7
CisgICAgCisgICAgaWYgKCFzbG90KQorICAgICAgICByZXR1cm4gbmlsOworICAgIAorICAgIGlm
ICghKnNsb3QpCisgICAgICAgICpzbG90ID0gW1tjb3JlQ3Vyc29yQ2xhc3MoKSBhbGxvY10gaW5p
dF07CisgICAgcmV0dXJuICpzbG90OworfQogCiAvLyBTaW1wbGUgTlNDdXJzb3IgY2FsbHMgc2hv
dWxkbid0IG5lZWQgcHJvdGVjdGlvbiwKIC8vIGJ1dCBjcmVhdGluZyBhIGN1cnNvciB3aXRoIGEg
YmFkIGltYWdlIG1pZ2h0IHRocm93LgpAQCAtMTAzLDcyICsyMzgsNzIgQEAgdm9pZCBDdXJzb3I6
OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl
IEN1cnNvcjo6V2FpdDoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJCdXN5
QnV0Q2xpY2thYmxlIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIkJ1c3lC
dXRDbGlja2FibGUiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6SGVscDoK
LSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJIZWxwIik7CisgICAgICAgIG1f
cGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIkhlbHAiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBj
YXNlIEN1cnNvcjo6TW92ZToKICAgICBjYXNlIEN1cnNvcjo6TWlkZGxlUGFubmluZzoKLSAgICAg
ICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJNb3ZlIik7CisgICAgICAgIG1fcGxhdGZv
cm1DdXJzb3IgPSBjdXJzb3IoIk1vdmUiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1
cnNvcjo6RWFzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6RWFzdFBhbm5pbmc6Ci0gICAgICAg
IG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplRWFzdCIpOworICAgICAgICBtX3Bs
YXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVFYXN0Iik7CiAgICAgICAgIGJyZWFrOwogCiAg
ICAgY2FzZSBDdXJzb3I6Ok5vcnRoUmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFBhbm5p
bmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGgiKTsK
KyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplTm9ydGgiKTsKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhFYXN0UmVzaXplOgogICAgIGNhc2Ug
Q3Vyc29yOjpOb3J0aEVhc3RQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tD
dXJzb3IoIlJlc2l6ZU5vcnRoZWFzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vy
c29yKCJSZXNpemVOb3J0aGVhc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNv
cjo6Tm9ydGhXZXN0UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFdlc3RQYW5uaW5nOgot
ICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRod2VzdCIpOwor
ICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0aHdlc3QiKTsKICAg
ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6U291dGhSZXNpemU6CiAgICAgY2FzZSBD
dXJzb3I6OlNvdXRoUGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29y
KCJSZXNpemVTb3V0aCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNp
emVTb3V0aCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpTb3V0aEVhc3RS
ZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoRWFzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplU291dGhlYXN0Iik7CisgICAgICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZVNvdXRoZWFzdCIpOwogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQ3Vyc29yOjpTb3V0aFdlc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OlNv
dXRoV2VzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVz
aXplU291dGh3ZXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6
ZVNvdXRod2VzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpXZXN0UmVz
aXplOgogICAgIGNhc2UgQ3Vyc29yOjpXZXN0UGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1
cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVXZXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3Ig
PSBjdXJzb3IoIlJlc2l6ZVdlc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNv
cjo6Tm9ydGhTb3V0aFJlc2l6ZToKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29y
KCJSZXNpemVOb3J0aFNvdXRoIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3Io
IlJlc2l6ZU5vcnRoU291dGgiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6
RWFzdFdlc3RSZXNpemU6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVz
aXplRWFzdFdlc3QiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXpl
RWFzdFdlc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhFYXN0
U291dGhXZXN0UmVzaXplOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJl
c2l6ZU5vcnRoZWFzdFNvdXRod2VzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vy
c29yKCJSZXNpemVOb3J0aGVhc3RTb3V0aHdlc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBj
YXNlIEN1cnNvcjo6Tm9ydGhXZXN0U291dGhFYXN0UmVzaXplOgotICAgICAgICBtX3BsYXRmb3Jt
Q3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRod2VzdFNvdXRoZWFzdCIpOworICAgICAgICBt
X3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0aHdlc3RTb3V0aGVhc3QiKTsKICAg
ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Q29sdW1uUmVzaXplOgpAQCAtMTg0LDcg
KzMxOSw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAg
ICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OkNlbGw6Ci0gICAgICAgIG1fcGxhdGZvcm1D
dXJzb3IgPSB3a0N1cnNvcigiQ2VsbCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vy
c29yKCJDZWxsIik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OkNvbnRleHRN
ZW51OgpAQCAtMTkyLDExICszMjcsMTEgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vy
c29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6QWxpYXM6Ci0g
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiTWFrZUFsaWFzIik7CisgICAgICAg
IG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIk1ha2VBbGlhcyIpOwogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQ3Vyc29yOjpQcm9ncmVzczoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9
IHdrQ3Vyc29yKCJCdXN5QnV0Q2xpY2thYmxlIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3Ig
PSBjdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl
IEN1cnNvcjo6Tm9Ecm9wOgpAQCAtMjE2LDExICszNTEsMTEgQEAgdm9pZCBDdXJzb3I6OmVuc3Vy
ZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNv
cjo6Wm9vbUluOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlpvb21JbiIp
OworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJab29tSW4iKTsKICAgICAgICAg
YnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Wm9vbU91dDoKLSAgICAgICAgbV9wbGF0Zm9ybUN1
cnNvciA9IHdrQ3Vyc29yKCJab29tT3V0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBj
dXJzb3IoIlpvb21PdXQiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6R3Jh
YjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVt
SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5oCmluZGV4IDllY2MzNDFjNTE2MjMxMTQzOWM0MmU3YmRmYTIwN2RlNjdkMDQ1MWIu
Ljk3MTY2YjZlMzhkMDZkZWYyZWY4NTdjODBhMzRlZmM4NjIwYjEzY2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaApAQCAt
MTIzLDcgKzEyMyw2IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgd2tQYXR0ZXJuVGlsaW5nQ29uc3Rh
bnRTcGFjaW5nCiB9IHdrUGF0dGVyblRpbGluZzsKICNpZiAhUExBVEZPUk0oSU9TKQotZXh0ZXJu
IHZvaWQgKCp3a0RyYXdCZXplbGVkVGV4dEFyZWEpKE5TUmVjdCwgQk9PTCBlbmFibGVkKTsKIGV4
dGVybiB2b2lkICgqd2tEcmF3TWVkaWFTbGlkZXJUcmFjaykoQ0dDb250ZXh0UmVmIGNvbnRleHQs
IENHUmVjdCByZWN0LCBmbG9hdCB0aW1lTG9hZGVkLCBmbG9hdCBjdXJyZW50VGltZSwKICAgICBm
bG9hdCBkdXJhdGlvbiwgdW5zaWduZWQgc3RhdGUpOwogZXh0ZXJuIHZvaWQgKCp3a0RyYXdNZWRp
YVVJUGFydCkoaW50IHBhcnQsIENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1JlY3QgcmVjdCwgdW5z
aWduZWQgc3RhdGUpOwpAQCAtMTM1LDE0ICsxMzQsNiBAQCBleHRlcm4gdm9pZCAoKndrTWVhc3Vy
ZU1lZGlhVUlQYXJ0KShpbnQgcGFydCwgQ0dSZWN0ICpib3VuZHMsIENHU2l6ZSAqbmF0dXJhbFNp
egogZXh0ZXJuIHZvaWQgKCp3a1NldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdFbmFibGVk
KShCT09MKTsKIGV4dGVybiB2b2lkKiB3a0dldEh5cGhlbmF0aW9uTG9jYXRpb25CZWZvcmVJbmRl
eDsKICNlbmRpZgotCi0jaWYgIVBMQVRGT1JNKElPUykKLWV4dGVybiBib29sICgqd2tFeGVjdXRh
YmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKSh2b2lkKTsKLQotZXh0ZXJuIENGU3Ry
aW5nUmVmICgqd2tDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpKHZvaWQpOwot
Ci1leHRlcm4gTlNDdXJzb3IgKigqd2tDdXJzb3IpKGNvbnN0IGNoYXIqKTsKLSNlbmRpZiAvLyAh
UExBVEZPUk0oSU9TKQogICAgIAogI2lmICFQTEFURk9STShJT1MpCiBleHRlcm4gTlNBcnJheSAq
KCp3a1NwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMpKHZvaWQpOwpAQCAtMTU1LDEy
ICsxNDYsNiBAQCBleHRlcm4gdm9pZCAoKndrU2V0TGF5ZXJDb250ZW50c1NjYWxlKShDQUxheWVy
ICopOwogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGVVJMU3RvcmFnZVNlc3Npb24qIENGVVJM
U3RvcmFnZVNlc3Npb25SZWY7CiAKLSNpZiAhUExBVEZPUk0oSU9TKQotZXh0ZXJuIENHRmxvYXQg
KCp3a05TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKShDR0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwg
Q0dGbG9hdCBpbml0aWFsVmVsb2NpdHksIENHRmxvYXQgZWxhcHNlZFRpbWUpOwotZXh0ZXJuIENH
RmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKShDR0Zsb2F0IGRlbHRhKTsK
LWV4dGVybiBDR0Zsb2F0ICgqd2tOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSkoQ0dGbG9h
dCBkZWx0YSk7Ci0jZW5kaWYKLQogdHlwZWRlZiBlbnVtIHsKICAgICB3a0V4dGVybmFsUGxheWJh
Y2tUeXBlTm9uZSwKICAgICB3a0V4dGVybmFsUGxheWJhY2tUeXBlQWlyUGxheSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0K
aW5kZXggMzUxMGQ5OWJjZjU3ZjY1YzAxODk2Njk1NDI2NWUyYjg5YmFlZWM4OS4uYTRjMmQ4ODc5
NDNkNDk4ZmZjMTJlZjE4MWMwODRhMWY1YjBlMGUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTMwLDcgKzMw
LDYgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLXZvaWQgKCp3a0Ry
YXdCZXplbGVkVGV4dEFyZWEpKE5TUmVjdCwgQk9PTCBlbmFibGVkKTsKIHZvaWQgKCp3a0RyYXdN
ZWRpYVNsaWRlclRyYWNrKShDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IHJlY3QsIGZsb2F0
IHRpbWVMb2FkZWQsIGZsb2F0IGN1cnJlbnRUaW1lLAogICAgIGZsb2F0IGR1cmF0aW9uLCB1bnNp
Z25lZCBzdGF0ZSk7CiBCT09MICgqd2tIaXRUZXN0TWVkaWFVSVBhcnQpKGludCBwYXJ0LCBDR1Jl
Y3QgYm91bmRzLCBDR1BvaW50IHBvaW50KTsKQEAgLTQyLDIyICs0MSwxMSBAQCB2b2lkICgqd2tQ
b3B1cE1lbnUpKE5TTWVudSosIE5TUG9pbnQgbG9jYXRpb24sIGZsb2F0IHdpZHRoLCBOU1ZpZXcq
LCBpbnQgc2VsZWN0ZQogCiB2b2lkKiB3a0dldEh5cGhlbmF0aW9uTG9jYXRpb25CZWZvcmVJbmRl
eDsKIAotYm9vbCAoKndrRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCko
dm9pZCk7Ci0KIENGU3RyaW5nUmVmICgqd2tDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxh
eU5hbWUpKHZvaWQpOwogCi1OU0N1cnNvciAqKCp3a0N1cnNvcikoY29uc3QgY2hhciopOwotCiBO
U0FycmF5ICooKndrU3BlZWNoU3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycykodm9pZCk7CiBO
U1N0cmluZyAqKCp3a1NwZWVjaFN5bnRoZXNpc0dldERlZmF1bHRWb2ljZUlkZW50aWZpZXJGb3JM
b2NhbGUpKE5TTG9jYWxlICopOwogCi0KLSNpZiAhUExBVEZPUk0oSU9TKQotQ0dGbG9hdCAoKndr
TlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEpKENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zs
b2F0IGluaXRpYWxWZWxvY2l0eSwgQ0dGbG9hdCBlbGFwc2VkVGltZSk7Ci1DR0Zsb2F0ICgqd2tO
U0VsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSkoQ0dGbG9hdCBkZWx0YSk7Ci1DR0Zsb2F0ICgq
d2tOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSkoQ0dGbG9hdCBkZWx0YSk7Ci0jZW5kaWYK
LQogaW50ICgqd2tFeGVybmFsRGV2aWNlVHlwZUZvclBsYXllcikoQVZQbGF5ZXIgKik7CiBOU1N0
cmluZyAqKCp3a0V4ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZUZvclBsYXllcikoQVZQbGF5ZXIgKik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCA5M2U4
ZDYxOTcxNzYxNzVkOGNjYjM2ZTE5Y2ZlZmJhOWM0ODY1NWVmLi5mMDBjODM5N2I1OGE0MWFhOTMx
MjhhMjI2YWFlNzVhNmZiOWFjNTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tCkBAIC03NCw2ICs3NCw3IEBACiAjaW1wb3J0IDxtYXRoLmg+CiAjaW1wb3J0
IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9O
U0NvbG9yU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0NlbGxTUEkuaD4KICNpbXBvcnQg
PHBhbC9zcGkvbWFjL05TU2hhcmluZ1NlcnZpY2VQaWNrZXJTUEkuaD4KICNpbXBvcnQgPHd0Zi9N
YXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC04ODQsNyArODg1LDcg
QEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6YWRqdXN0VGV4dEZpZWxkU3R5bGUoU3R5bGVSZXNvbHZl
ciYsIFJlbmRlclN0eWxlJiwgY29uc3QgRWwKIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50VGV4
dEFyZWEoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgRmxvYXRSZWN0JiByKQogewogICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBs
b2NhbENvbnRleHQocGFpbnRJbmZvLmNvbnRleHQoKSk7Ci0gICAgd2tEcmF3QmV6ZWxlZFRleHRB
cmVhKHIsIGlzRW5hYmxlZChvKSAmJiAhaXNSZWFkT25seUNvbnRyb2wobykpOworICAgIF9OU0Ry
YXdDYXJib25UaGVtZUxpc3RCb3gociwgaXNFbmFibGVkKG8pICYmICFpc1JlYWRPbmx5Q29udHJv
bChvKSwgWUVTLCBZRVMpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vzc01hYy5tbQppbmRleCA2
Zjc1Mjk1MmU3NmMzNDg3YjJhY2EwZDJkZTExMzVhYWMzZGFlZTg3Li4xMzhiZTZiOGZmYzc0Mzg4
NTAxYTUxOGViYWYwMjQyZjlmMTI5MjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vzc01hYy5tbQpAQCAtNDIsNiArNDIsNyBAQAog
I2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxub3RpZnkuaD4KICNp
bXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L0xhdW5jaFNlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDxzeXNleGl0cy5oPgogI2ltcG9ydCA8d3Rm
L01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CkBAIC01OSw3ICs2MCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNz
KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVyCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIE5TU3RyaW5nICphcHBsaWNhdGlv
bk5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIlQCBOZXR3
b3JraW5nIiwgInZpc2libGUgbmFtZSBvZiB0aGUgbmV0d29yayBwcm9jZXNzLiBUaGUgYXJndW1l
bnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiksIChOU1N0cmluZyAqKXBhcmFtZXRlcnMudWlQ
cm9jZXNzTmFtZV07Ci0gICAgV0tTZXRWaXNpYmxlQXBwbGljYXRpb25OYW1lKChDRlN0cmluZ1Jl
ZilhcHBsaWNhdGlvbk5hbWUpOworICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVt
KGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBfa0xT
RGlzcGxheU5hbWVLZXksIChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUsIG51bGxwdHIpOwog
fQogCiBzdGF0aWMgdm9pZCBvdmVycmlkZVN5c3RlbVByb3hpZXMoY29uc3QgU3RyaW5nJiBodHRw
UHJveHksIGNvbnN0IFN0cmluZyYgaHR0cHNQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQv
UGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQppbmRleCAyNGQyNmVkMWU2NzQz
YWVjNTU3YThmNzY0ODliNjczODA0MTdmZDA1Li5kYjBjMzA2ZjA2MmU3ZGY5M2UxMzlhZGRlMDQ2
YjlhOGJmOTdkZjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFj
L1BsdWdpblByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21h
Yy9QbHVnaW5Qcm9jZXNzTWFjLm1tCkBAIC02MjIsOSArNjIyLDkgQEAgdm9pZCBQbHVnaW5Qcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxp
emF0aW9uUGEKIHZvaWQgUGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0
IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAg
ICBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6
V0VCX1VJX1NUUklORygiJUAgKCVAIEludGVybmV0IHBsdWctaW4pIiwgInZpc2libGUgbmFtZSBv
ZiB0aGUgcGx1Zy1pbiBob3N0IHByb2Nlc3MuIFRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgcGx1
Zy1pbiBuYW1lIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1l
LiIpLCBbWyhOU1N0cmluZyAqKW1fcGx1Z2luUGF0aCBsYXN0UGF0aENvbXBvbmVudF0gc3RyaW5n
QnlEZWxldGluZ1BhdGhFeHRlbnNpb25dLCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vz
c05hbWVdOwotICAgIFdLU2V0VmlzaWJsZUFwcGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBw
bGljYXRpb25OYW1lKTsKKyAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNE
ZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3Bs
YXlOYW1lS2V5LCAoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lLCBudWxscHRyKTsKICAgICBp
ZiAoIW1fcGx1Z2luQnVuZGxlSWRlbnRpZmllci5pc0VtcHR5KCkpCi0gICAgICAgIFdLU2V0QXBw
bGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTUGx1Z0luQnVuZGxlSWRlbnRpZmllcktleSwgbV9w
bHVnaW5CdW5kbGVJZGVudGlmaWVyLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgICAgICBf
TFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNH
ZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwga0xTUGx1Z0luQnVuZGxlSWRlbnRpZmllcktleSwg
bV9wbHVnaW5CdW5kbGVJZGVudGlmaWVyLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIG51bGxwdHIp
OwogfQogCiB2b2lkIFBsdWdpblByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxk
UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgU2FuZGJveEluaXRp
YWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21hYy9TdG9yYWdlUHJvY2Vzc01hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvbWFjL1N0b3JhZ2VQcm9jZXNzTWFjLm1tCmluZGV4IGMw
Mzg4NjBmOGYxNDNjMGRjZmZjOTNhNTI3NjZkNjM0NTQ3NDFmMzkuLmUzOTY4MWFjNzRhZmVkMWQ2
ZjQ5ZmJjOGU1MzA1YmZjNWM0MzZhNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvbWFjL1N0b3JhZ2VQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvbWFjL1N0b3JhZ2VQcm9jZXNzTWFjLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBv
cnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJp
bmdzLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHBhbC9z
cGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKQEAgLTQ3LDcgKzQ4LDcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nl
c3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXIKIHZvaWQgU3RvcmFn
ZVByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgTlNTdHJpbmcgKmFwcGxpY2F0
aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAIFN0
b3JhZ2UiLCAidmlzaWJsZSBuYW1lIG9mIHRoZSBzdG9yYWdlIHByb2Nlc3MuIFRoZSBhcmd1bWVu
dCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVBy
b2Nlc3NOYW1lXTsKLSAgICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVm
KWFwcGxpY2F0aW9uTmFtZSk7CisgICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0o
a0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9rTFNE
aXNwbGF5TmFtZUtleSwgKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSwgbnVsbHB0cik7CiB9
CiAKIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJv
Y2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgU2FuZGJveEluaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDhmNzIyODZjNWFiNjU2Yzk2ZTRlNGUw
MTVkNTlmNzRmMWYxYzdjZDkuLjM5NGVmOTNlY2Q2YjQ3ZTQ1MGE3MzFiZTlkNzc1NWNlYjNhZjJj
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtOTQsNiArOTQsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNBY2Nlc3NpYmlsaXR5U1BJ
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0FwcGxpY2F0aW9uU1BJLmg+CiAjaW1wb3J0IDxw
YWwvc3BpL21hYy9OU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmg+CisjaW1w
b3J0IDxwYWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21h
Yy9OU1NwZWxsQ2hlY2tlclNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNUZXh0RmluZGVy
U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1dpbmRvd1NQSS5oPgpAQCAtMTI1OSw3ICsx
MjYwLDcgQEAgc3RhdGljIE5TVHJhY2tpbmdBcmVhT3B0aW9ucyB0cmFja2luZ0FyZWFPcHRpb25z
KCkKIHsKICAgICAvLyBMZWdhY3kgc3R5bGUgc2Nyb2xsYmFycyBoYXZlIGRlc2lnbiBkZXRhaWxz
IHRoYXQgcmVseSBvbiB0cmFja2luZyB0aGUgbW91c2UgYWxsIHRoZSB0aW1lLgogICAgIE5TVHJh
Y2tpbmdBcmVhT3B0aW9ucyBvcHRpb25zID0gTlNUcmFja2luZ01vdXNlTW92ZWQgfCBOU1RyYWNr
aW5nTW91c2VFbnRlcmVkQW5kRXhpdGVkIHwgTlNUcmFja2luZ0luVmlzaWJsZVJlY3QgfCBOU1Ry
YWNraW5nQ3Vyc29yVXBkYXRlOwotICAgIGlmIChXS1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgp
ID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSkKKyAgICBpZiAoX05TUmVjb21tZW5kZWRTY3JvbGxl
clN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlTGVnYWN5KQogICAgICAgICBvcHRpb25zIHw9IE5T
VHJhY2tpbmdBY3RpdmVBbHdheXM7CiAgICAgZWxzZQogICAgICAgICBvcHRpb25zIHw9IE5TVHJh
Y2tpbmdBY3RpdmVJbktleVdpbmRvdzsKQEAgLTE5NDUsNyArMTk0Niw3IEBAIGJvb2wgV2ViVmll
d0ltcGw6Om1pZ2h0QmVnaW5EcmFnV2hpbGVJbmFjdGl2ZSgpCiBib29sIFdlYlZpZXdJbXBsOjpt
aWdodEJlZ2luU2Nyb2xsV2hpbGVJbmFjdGl2ZSgpCiB7CiAgICAgLy8gTGVnYWN5IHN0eWxlIHNj
cm9sbGJhcnMgaGF2ZSBkZXNpZ24gZGV0YWlscyB0aGF0IHJlbHkgb24gdHJhY2tpbmcgdGhlIG1v
dXNlIGFsbCB0aGUgdGltZS4KLSAgICBpZiAoV0tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9
PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kpCisgICAgaWYgKF9OU1JlY29tbWVuZGVkU2Nyb2xsZXJT
dHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViUG9wdXBNZW51UHJveHlNYWMubW0KaW5kZXggN2Q2Y2IzZWRhMWQwODljODc0NWFiMzRhMDFj
M2NiNmNmZWZlM2MyMS4uMTI0MWJkOGQ5ZTFiNzAxN2YwOWQ0YzRjNGZmOWVhMzAxOWM3NmJkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94
eU1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIK
ICNpbXBvcnQgIldlYlBvcHVwSXRlbS5oIgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNl
Lmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKQEAgLTE2NSw3ICsxNjYsNyBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5
TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4
dAogICAgIH0KIAogICAgIFJlZjxXZWJQb3B1cE1lbnVQcm94eU1hYz4gcHJvdGVjdCgqdGhpcyk7
Ci0gICAgV0tQb3B1cE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dpZHRoKHJlY3QpKSwg
ZHVtbXlWaWV3LmdldCgpLCBzZWxlY3RlZEluZGV4LCBmb250LCBjb250cm9sU2l6ZSwgZGF0YS5o
aWRlQXJyb3dzKTsKKyAgICBQQUw6OnBvcFVwTWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRmKE5T
V2lkdGgocmVjdCkpLCBkdW1teVZpZXcuZ2V0KCksIHNlbGVjdGVkSW5kZXgsIGZvbnQsIGNvbnRy
b2xTaXplLCBkYXRhLmhpZGVBcnJvd3MpOwogCiAgICAgW21fcG9wdXAgZGlzbWlzc1BvcFVwXTsK
ICAgICBbZHVtbXlWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFj
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNj
YXBlUGx1Z2luTWFjLm1tCmluZGV4IGEzMTIwZTYyNTM4M2JlYjJhZjcwNzAyNzBmNDdmODU4OTkz
MGMyMDYuLmQyOTFhMTE0M2NjMzFlY2QxM2M4ZWJiODIyNTMyY2E3ZWYxMWM5ZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2Fw
ZVBsdWdpbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KQEAgLTM4LDYgKzM4LDcgQEAKICNpbXBvcnQg
PFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1w
b3J0IDxwYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05T
TWVudVNQSS5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYv
dGV4dC9TdHJpbmdWaWV3Lmg+CiAKQEAgLTE1OCw3ICsxNTksNiBAQCBOUEJvb2wgTmV0c2NhcGVQ
bHVnaW46OmNvbnZlcnRQb2ludChkb3VibGUgc291cmNlWCwgZG91YmxlIHNvdXJjZVksIE5QQ29v
cmRpbmF0ZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotCiBOUEVycm9yIE5ldHNjYXBlUGx1Z2lu
Ojpwb3BVcENvbnRleHRNZW51KE5QTWVudSogbnBNZW51KQogewogICAgIGlmICghbV9jdXJyZW50
TW91c2VFdmVudCkKQEAgLTE2OCw3ICsxNjgsNyBAQCBOUEVycm9yIE5ldHNjYXBlUGx1Z2luOjpw
b3BVcENvbnRleHRNZW51KE5QTWVudSogbnBNZW51KQogICAgIGlmICghY29udmVydFBvaW50KG1f
Y3VycmVudE1vdXNlRXZlbnQtPmRhdGEubW91c2UucGx1Z2luWCwgbV9jdXJyZW50TW91c2VFdmVu
dC0+ZGF0YS5tb3VzZS5wbHVnaW5ZLCBOUENvb3JkaW5hdGVTcGFjZVBsdWdpbiwgc2NyZWVuWCwg
c2NyZWVuWSwgTlBDb29yZGluYXRlU3BhY2VTY3JlZW4pKQogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKIAotICAgIFdLUG9wdXBDb250ZXh0TWVudShyZWludGVycHJldF9jYXN0PE5TTWVu
dSAqPihucE1lbnUpLCBOU01ha2VQb2ludChzY3JlZW5YLCBzY3JlZW5ZKSk7CisgICAgX05TUG9w
VXBDYXJib25NZW51MyhyZWludGVycHJldF9jYXN0PE5TTWVudSAqPihucE1lbnUpLCBuaWwsIG5p
bCwgTlNNYWtlUG9pbnQoc2NyZWVuWCwgc2NyZWVuWSksIC0xLCBuaWwsIDAsIG5pbCwgTlNQb3BV
cE1lbnVUeXBlQ29udGV4dCwgbmlsKTsKICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1t
CmluZGV4IDkyN2M4YWM0M2QyNWQ2ZjdjN2I4Nzg1NjY2NjA3YmQyNzNiM2ViYTEuLmFmY2ZmYTUx
NzQ1YjI1YjllNzQwNDI4MzA3ZmFjZWQ1NDhkZWNhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTEsIDIwMTIsIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04
MSw2ICs4MSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5oPgog
I2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0Nv
cmVHcmFwaGljc1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNNZW51U1BJLmg+CiAjaW1w
b3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbXBvcnQgPHd0Zi9VVUlELmg+CiAKQEAgLTE1ODUs
NyArMTU4Niw3IEBAIGJvb2wgUERGUGx1Z2luOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KGNvbnN0
IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQogICAgIEludFBvaW50IHBvaW50ID0gZnJhbWVWaWV3LT5j
b250ZW50c1RvU2NyZWVuKEludFJlY3QoZnJhbWVWaWV3LT53aW5kb3dUb0NvbnRlbnRzKGV2ZW50
LnBvc2l0aW9uKCkpLCBJbnRTaXplKCkpKS5sb2NhdGlvbigpOwogICAgIAogICAgIGlmIChOU01l
bnUgKm5zTWVudSA9IFttX3BkZkxheWVyQ29udHJvbGxlciBtZW51Rm9yRXZlbnQ6bnNFdmVudEZv
cldlYk1vdXNlRXZlbnQoZXZlbnQpXSkgewotICAgICAgICBXS1BvcHVwQ29udGV4dE1lbnUobnNN
ZW51LCBwb2ludCk7CisgICAgICAgIF9OU1BvcFVwQ2FyYm9uTWVudTMobnNNZW51LCBuaWwsIG5p
bCwgcG9pbnQsIC0xLCBuaWwsIDAsIG5pbCwgTlNQb3BVcE1lbnVUeXBlQ29udGV4dCwgbmlsKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUlu
dGVyZmFjZS5tbQppbmRleCBhNjFiODQxNDUzMDM0ZmI5YzljYWI4NGJlZjZlYWFkMTAxNGJlMDJj
Li5iOWFjMzk2YmIwMzZkNTVkNzEyYzIyNzQ4MmFmYTNmYzk3NzMwOTM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVy
ZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtMzcsMjQgKzM3LDEwIEBAIHZvaWQgSW5pdFdlYkNv
cmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAKICAgICBkaXNwYXRjaF9vbmNlKCZpbml0T25j
ZSwgXnsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgICAgICBJTklUKERyYXdCZXplbGVkVGV4dEFy
ZWEpOwogICAgICAgICBJTklUKERyYXdNZWRpYVNsaWRlclRyYWNrKTsKICAgICAgICAgSU5JVChE
cmF3TWVkaWFVSVBhcnQpOwogICAgICAgICBJTklUKEhpdFRlc3RNZWRpYVVJUGFydCk7CiAgICAg
ICAgIElOSVQoTWVhc3VyZU1lZGlhVUlQYXJ0KTsKLSAgICAgICAgSU5JVChFeGVjdXRhYmxlV2Fz
TGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKTsKLSAgICAgICAgSU5JVChDb3B5RGVmYXVsdFNl
YXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOwotICAgICAgICBJTklUKEN1cnNvcik7Ci0gICAgICAg
IElOSVQoU3BlZWNoU3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycyk7Ci0gICAgICAgIElOSVQo
U3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxvY2FsZSk7Ci0gICAg
ICAgIElOSVQoTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEpOwotICAgICAgICBJTklUKE5TRWxh
c3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKTsKLSAgICAgICAgSU5JVChOU1JlYm91bmREZWx0YUZv
ckVsYXN0aWNEZWx0YSk7CiAjZW5kaWYKLQotICAgICAgICBJTklUKEV4ZXJuYWxEZXZpY2VUeXBl
Rm9yUGxheWVyKTsKLSAgICAgICAgSU5JVChFeGVybmFsRGV2aWNlRGlzcGxheU5hbWVGb3JQbGF5
ZXIpOwotCi0gICAgICAgIElOSVQoUXVlcnlEZWNvZGVyQXZhaWxhYmlsaXR5KTsKICAgICB9KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tCmluZGV4IDdjMzVkOGU5MGI3OTFjOTQyNjE5ZmRjZjc2NjAzYzliNDMwZWUwMmEuLjQzYjc5
NjY2ZDE1MWU5ZGEyOTdhYzY5ZjJkMDlhZGY4MDIxMWRiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTk0LDcgKzE5NCw3
IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJv
Y2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVyCiAgICAgICAgIGFwcGxpY2F0aW9uTmFtZSA9IFtO
U1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAIFdlYiBJbnNwZWN0b3Ii
LCAiVmlzaWJsZSBuYW1lIG9mIFdlYiBJbnNwZWN0b3IncyB3ZWIgcHJvY2Vzcy4gVGhlIGFyZ3Vt
ZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiIpLCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVp
UHJvY2Vzc05hbWVdOwogICAgIGVsc2UKICAgICAgICAgYXBwbGljYXRpb25OYW1lID0gW05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX1NUUklORygiJUAgV2ViIENvbnRlbnQiLCAiVmlz
aWJsZSBuYW1lIG9mIHRoZSB3ZWIgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNh
dGlvbiBuYW1lLiIpLCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwotICAg
IFdLU2V0VmlzaWJsZUFwcGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1l
KTsKKyAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lv
bklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5LCAo
Q0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lLCBudWxscHRyKTsKICNlbmRpZgogfQogCkBAIC0z
OTQsNyArMzk0LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdlcygpCiAgICAg
fQogCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRD
SF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgW2FjdGl2ZVBhZ2VVUkxzXSB7Ci0gICAgICAg
IFdLU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oQ0ZTVFIoIkxTQWN0aXZlUGFnZVVzZXJW
aXNpYmxlT3JpZ2luc0tleSIpLCAoX19icmlkZ2UgQ0ZBcnJheVJlZilhY3RpdmVQYWdlVVJMcy5n
ZXQoKSk7CisgICAgICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1
bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBDRlNUUigiTFNBY3Rp
dmVQYWdlVXNlclZpc2libGVPcmlnaW5zS2V5IiksIChfX2JyaWRnZSBDRkFycmF5UmVmKWFjdGl2
ZVBhZ2VVUkxzLmdldCgpLCBudWxscHRyKTsKICAgICB9KTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29u
dGV4dE1lbnVEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxl
Z2F0ZXMvV2ViRGVmYXVsdENvbnRleHRNZW51RGVsZWdhdGUubW0KaW5kZXggMDI2NWJmMGM1MWE5
ZjE4NzE1OTY1NTVkNjkwN2Y5MDIzNzBlNzk1Ny4uM2FjY2YyMmRlOGE4YTM3ZjY2MjY3MGU2NmZk
MGE2MDIyNTQ1MmFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVs
dERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRDb250ZXh0TWVudURl
bGVnYXRlLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC01MSw2ICs1MSw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NLmg+CiAj
aW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVt
SW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRl
ci5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KIAogQGltcGxlbWVudGF0aW9uIFdlYkRl
ZmF1bHRVSURlbGVnYXRlIChXZWJDb250ZXh0TWVudSkKQEAgLTkxLDcgKzkyLDcgQEAgLSAoTlNN
ZW51SXRlbSAqKW1lbnVJdGVtV2l0aFRhZzooaW50KXRhZyB0YXJnZXQ6KGlkKXRhcmdldCByZXBy
ZXNlbnRlZE9iamVjdDooaWQKICAgICAgICAgICAgIGFjdGlvbiA9IEBzZWxlY3Rvcihfc2VhcmNo
V2l0aFNwb3RsaWdodEZyb21NZW51Oik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBXZWJNZW51SXRlbVRhZ1NlYXJjaFdlYjogewotICAgICAgICAgICAgUmV0YWluUHRyPENGU3Ry
aW5nUmVmPiBzZWFyY2hQcm92aWRlck5hbWUgPSBhZG9wdENGKFdLQ29weURlZmF1bHRTZWFyY2hQ
cm92aWRlckRpc3BsYXlOYW1lKCkpOworICAgICAgICAgICAgYXV0byBzZWFyY2hQcm92aWRlck5h
bWUgPSBQQUw6OmRlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKCk7CiAgICAgICAgICAg
ICB0aXRsZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OlVJX1NUUklOR19JTlRFUk5BTCgi
U2VhcmNoIHdpdGggJUAiLCAiU2VhcmNoIHdpdGggc2VhcmNoIHByb3ZpZGVyIGNvbnRleHQgbWVu
dSBpdGVtIHdpdGggcHJvdmlkZXIgbmFtZSBpbnNlcnRlZCIpLCBzZWFyY2hQcm92aWRlck5hbWUu
Z2V0KCldOwogICAgICAgICAgICAgYWN0aW9uID0gQHNlbGVjdG9yKF9zZWFyY2hXaXRoR29vZ2xl
RnJvbU1lbnU6KTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQ
cm94eS5tbQppbmRleCAxOWIzOGFlMmU4MzQzMjdkZDY3MzM4NjE3YjYxN2U4OTdkNzY4ZDliLi4z
ODRhNTkxZWZlMTc4MjYxOWVhMmQ4ZGRlYTE1MDBmZDk1ZGYyY2QwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94
eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA4LTIwMTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00MSw2ICs0MSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1l
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0lkZW50aWZpZXJSZXAuaD4KICNpbXBvcnQgPFdlYkNvcmUv
U2NyaXB0Q29udHJvbGxlci5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5o
PgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIGV4dGVybiAiQyIgewpAQCAtMTE3
LDcgKzExOCw3IEBAIE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpOZXRzY2FwZVBsdWdpbkhvc3RQ
cm94eShtYWNoX3BvcnRfdCBjbGllbnRQb3J0LCBtYWNoX3BvCiAgICAgCiAgICAgQ0ZSdW5Mb29w
QWRkU291cmNlKENGUnVuTG9vcEdldEN1cnJlbnQoKSwgZGVhdGhQb3J0U291cmNlLmdldCgpLCBr
Q0ZSdW5Mb29wRGVmYXVsdE1vZGUpOwogICAgIAotICAgIG1fY2xpZW50UG9ydFNvdXJjZSA9IGFk
b3B0Q0YoV0tDcmVhdGVNSUdTZXJ2ZXJTb3VyY2UoKG1pZ19zdWJzeXN0ZW1fdCkmV0tXZWJLaXRQ
bHVnaW5DbGllbnRfc3Vic3lzdGVtLCBtX2NsaWVudFBvcnQpKTsKKyAgICBtX2NsaWVudFBvcnRT
b3VyY2UgPSBhZG9wdENGKE1TSENyZWF0ZU1JR1NlcnZlclNvdXJjZShudWxscHRyLCAwLCAobWln
X3N1YnN5c3RlbV90KSZXS1dlYktpdFBsdWdpbkNsaWVudF9zdWJzeXN0ZW0sIDAsIG1fY2xpZW50
UG9ydCwgbnVsbHB0cikpOwogICAgIENGUnVuTG9vcEFkZFNvdXJjZShDRlJ1bkxvb3BHZXRDdXJy
ZW50KCksIG1fY2xpZW50UG9ydFNvdXJjZS5nZXQoKSwga0NGUnVuTG9vcERlZmF1bHRNb2RlKTsK
ICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpLCBtX2NsaWVudFBv
cnRTb3VyY2UuZ2V0KCksIChDRlN0cmluZ1JlZilOU0V2ZW50VHJhY2tpbmdSdW5Mb29wTW9kZSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Q
b3B1cE1lbnVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Q
b3B1cE1lbnVNYWMubW0KaW5kZXggY2M1ZjgxZGZkNjU2ZmM4ZTczNWQxODU3ZjVhZTg1MzhkMDc0
ZmUxNC4uODFjZjRjNzVkMjA5Y2JjZjFjNDcxZjEzY2UzY2U0ZjBmMWIxMGMyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1h
Yy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIw
MTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUG9wdXBNZW51Q2xpZW50Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0
ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oPgogI2lt
cG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CkBAIC0yMTcsNyArMjE4LDcgQEAgdm9pZCBQb3B1cE1lbnVNYWM6OnNob3coY29uc3QgSW50
UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiAgICAgICAgIGJyZWFrOwogICAgIH0K
IAotICAgIFdLUG9wdXBNZW51KG1lbnUsIGxvY2F0aW9uLCByb3VuZGYoTlNXaWR0aChyKSksIGR1
bW15Vmlldy5nZXQoKSwgaW5kZXgsIHRvTlNGb250KGZvbnQpLCBjb250cm9sU2l6ZSwgIW1fY2xp
ZW50LT5tZW51U3R5bGUoKS5oYXNEZWZhdWx0QXBwZWFyYW5jZSgpKTsKKyAgICBQQUw6OnBvcFVw
TWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRmKE5TV2lkdGgocikpLCBkdW1teVZpZXcuZ2V0KCks
IGluZGV4LCB0b05TRm9udChmb250KSwgY29udHJvbFNpemUsICFtX2NsaWVudC0+bWVudVN0eWxl
KCkuaGFzRGVmYXVsdEFwcGVhcmFuY2UoKSk7CiAKICAgICBbbV9wb3B1cCBkaXNtaXNzUG9wVXBd
OwogICAgIFtkdW1teVZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld107CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZh
Y2UubW0KaW5kZXggMDYyMDJjZWVkYWNkYjcwMTk3Y2JlMTBiODNjNmVmNzUyNTJkZDA2NS4uYTk5
Mjk4YmY2ODBkYWViMzA3Yjg0YjIxYWM3MDU0MDQ2ZDgzN2RhZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVy
ZmFjZS5tbQpAQCAtNDMsMzEgKzQzLDExIEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2Uodm9pZCkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICBJTklU
KERyYXdCZXplbGVkVGV4dEFyZWEpOwogICAgIElOSVQoRHJhd01lZGlhVUlQYXJ0KTsKICAgICBJ
TklUKERyYXdNZWRpYVNsaWRlclRyYWNrKTsKICAgICBJTklUKEhpdFRlc3RNZWRpYVVJUGFydCk7
CiAgICAgSU5JVChNZWFzdXJlTWVkaWFVSVBhcnQpOwogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0o
SU9TKQotICAgIElOSVQoRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCk7
Ci0gICAgSU5JVChDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOwotICAgIElO
SVQoQ3Vyc29yKTsKLSAgICBJTklUKFNwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMp
OwotICAgIElOSVQoU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxv
Y2FsZSk7Ci0jZW5kaWYKLQotI2lmICFQTEFURk9STShJT1MpCi0gICAgSU5JVChOU0VsYXN0aWNE
ZWx0YUZvclRpbWVEZWx0YSk7Ci0gICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0
YSk7Ci0gICAgSU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7Ci0jZW5kaWYKLQot
ICAgIElOSVQoRXhlcm5hbERldmljZVR5cGVGb3JQbGF5ZXIpOwotICAgIElOSVQoRXhlcm5hbERl
dmljZURpc3BsYXlOYW1lRm9yUGxheWVyKTsKLQotICAgIElOSVQoUXVlcnlEZWNvZGVyQXZhaWxh
YmlsaXR5KTsKLQogICAgIGRpZEluaXQgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMjc0YTE2ODcwNTc0NTQ0MTRhYjky
OTc1YTVjMDQ4YzYwZWU1YTU4YS4uYThjYzljMWRkOWM2NTU4N2RiYmI5MjI2YjE5YTM5YzQ5NGI4
ZWJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3
Lm1tCkBAIC0xMzEsNiArMTMxLDcgQEAKICNpbXBvcnQgPGRsZmNuLmg+CiAjaW1wb3J0IDxsaW1p
dHM+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oPgor
I2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvTlNTcGVsbENoZWNrZXJTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TVmlld1NQ
SS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaD4KQEAgLTQ2ODIsNyArNDY4
Myw3IEBAIC0gKHZvaWQpc2V0RGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3VyY2UK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFfcHJpdmF0ZS0+aW5zdGFsbGVkVHJhY2tpbmdB
cmVhKSB7CiAgICAgICAgIE5TVHJhY2tpbmdBcmVhT3B0aW9ucyBvcHRpb25zID0gTlNUcmFja2lu
Z01vdXNlTW92ZWQgfCBOU1RyYWNraW5nTW91c2VFbnRlcmVkQW5kRXhpdGVkIHwgTlNUcmFja2lu
Z0luVmlzaWJsZVJlY3QgfCBOU1RyYWNraW5nQ3Vyc29yVXBkYXRlOwotICAgICAgICBpZiAoV0tS
ZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kKKyAgICAg
ICAgaWYgKF9OU1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxl
Z2FjeQogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICAgICAgICAgIHx8IFtbc2Vs
ZiBfd2ViVmlld10gX2Rhc2hib2FyZEJlaGF2aW9yOldlYkRhc2hib2FyZEJlaGF2aW9yQWx3YXlz
U2VuZE1vdXNlRXZlbnRzVG9BbGxXaW5kb3dzXQogI2VuZGlmCkBAIC02MzU0LDcgKzYzNTUsNyBA
QCAtICh2b2lkKWF0dGFjaFJvb3RMYXllcjooQ0FMYXllciAqKWxheWVyCiAgICAgaWYgKFtbc2Vs
ZiBfd2ViVmlld10gX3Bvc3RzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlvbnNdKQog
ICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmlj
YXRpb25OYW1lOl9XZWJWaWV3RGlkU3RhcnRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTm90aWZpY2F0
aW9uIG9iamVjdDpbc2VsZiBfd2ViVmlld10gdXNlckluZm86bmlsXTsKIAotICAgIGlmIChXS0V4
ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlTGlvbigpKQorICAgIGlmICghX0NGRXhlY3V0YWJs
ZUxpbmtlZE9uT3JBZnRlcihDRlN5c3RlbVZlcnNpb25Nb3VudGFpbkxpb24pKQogICAgICAgICBb
dmlld0xheWVyIHNldEdlb21ldHJ5RmxpcHBlZDpZRVNdOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYWQyOWE4MjI1Mjk4OWM2NmE2NWY2NTg5
NGY0ZTg2MTEzNTE5MWMzMC4uNGU4YjgyMTYxMWI4ODhkNDdlNjI4ZGRlZjlkM2JlYjU5ODUxOGYy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjA5
LDYgKzIwOSw3IEBACiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8b2JqYy9ydW50
aW1lLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgorI2ltcG9ydCA8cGFs
L3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU1RvdWNo
QmFyU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQ
SS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNSZXNwb25kZXJTUEkuaD4KQEAgLTI2MDksMTYg
KzI2MTAsMTYgQEAgLSAoaWQpX2Zvcm1EZWxlZ2F0ZUZvclNlbGVjdG9yOihTRUwpc2VsZWN0b3IK
ICNpZiAhUExBVEZPUk0oSU9TKQogLSAoQk9PTClfbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVp
cmsKIHsKLSAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gV0tBcHBWZXJzaW9uQ2hlY2tMZXNz
VGhhbihAImNvbS5hZG9iZS5BY3JvYmF0IiwgLTEsIDkuMCkKLSAgICAgICAgfHwgV0tBcHBWZXJz
aW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5BY3JvYmF0LlBybyIsIC0xLCA5LjApCi0gICAg
ICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuUmVhZGVyIiwgLTEs
IDkuMCkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5k
aXN0aWxsZXIiLCAtMSwgOS4wKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFu
KEAiY29tLmFkb2JlLkNvbnRyaWJ1dGUiLCAtMSwgNC4yKQotICAgICAgICB8fCBXS0FwcFZlcnNp
b25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLmRyZWFtd2VhdmVyLTkuMCIsIC0xLCA5LjEpCi0g
ICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20ubWFjcm9tZWRpYS5maXJl
d29ya3MiLCAtMSwgOS4xKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAi
Y29tLmFkb2JlLkluQ29weSIsIC0xLCA1LjEpCi0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNr
TGVzc1RoYW4oQCJjb20uYWRvYmUuSW5EZXNpZ24iLCAtMSwgNS4xKQotICAgICAgICB8fCBXS0Fw
cFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLlNvdW5kYm9vdGgiLCAtMSwgMik7Cisg
ICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENG
U1RSKCJjb20uYWRvYmUuQWNyb2JhdCIpLCAtMSwgOS4wKQorICAgICAgICB8fCBfQ0ZBcHBWZXJz
aW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLkFjcm9iYXQuUHJvIiksIC0xLCA5LjAp
CisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUu
UmVhZGVyIiksIC0xLCA5LjApCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFu
KENGU1RSKCJjb20uYWRvYmUuZGlzdGlsbGVyIiksIC0xLCA5LjApCisgICAgICAgIHx8IF9DRkFw
cFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuQ29udHJpYnV0ZSIpLCAtMSwg
NC4yKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFk
b2JlLmRyZWFtd2VhdmVyLTkuMCIpLCAtMSwgOS4xKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9u
Q2hlY2tMZXNzVGhhbihDRlNUUigiY29tLm1hY3JvbWVkaWEuZmlyZXdvcmtzIiksIC0xLCA5LjEp
CisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUu
SW5Db3B5IiksIC0xLCA1LjEpCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFu
KENGU1RSKCJjb20uYWRvYmUuSW5EZXNpZ24iKSwgLTEsIDUuMSkKKyAgICAgICAgfHwgX0NGQXBw
VmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5Tb3VuZGJvb3RoIiksIC0xLCAy
KTsKIAogICAgIHJldHVybiBuZWVkc1F1aXJrOwogfQpAQCAtMjYyNiwxMyArMjYyNywxMyBAQCAt
IChCT09MKV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyawogLSAoQk9PTClfbmVlZHNMaW5r
RWxlbWVudFRleHRDU1NRdWlyawogewogICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSAhV2Vi
S2l0TGlua2VkT25PckFmdGVyKFdFQktJVF9GSVJTVF9WRVJTSU9OX1dJVEhPVVRfTElOS19FTEVN
RU5UX1RFWFRfQ1NTX1FVSVJLKQotICAgICAgICAmJiBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFu
KEAiY29tLmUtZnJvbnRpZXIuc2hhZGUxMCIsIC0xLCAxMC42KTsKKyAgICAgICAgJiYgX0NGQXBw
VmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5lLWZyb250aWVyLnNoYWRlMTAiKSwgLTEs
IDEwLjYpOwogICAgIHJldHVybiBuZWVkc1F1aXJrOwogfQogCiAtIChCT09MKV9uZWVkc0lzTG9h
ZGluZ0luQVBJU2Vuc2VRdWlyawogewotICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSBXS0Fw
cFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFwcGxlLmlBZFByb2R1Y2VyIiwgLTEsIDIuMSk7
CisgICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFu
KENGU1RSKCJjb20uYXBwbGUuaUFkUHJvZHVjZXIiKSwgLTEsIDIuMSk7CiAgICAgCiAgICAgcmV0
dXJuIG5lZWRzUXVpcms7CiB9CkBAIC0yNjQ1LDcgKzI2NDYsNyBAQCAtIChCT09MKV9uZWVkc0tl
eWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcwogCiAtIChCT09MKV9uZWVkc0ZyYW1lTG9h
ZERlbGVnYXRlUmV0YWluUXVpcmsKIHsKLSAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gV0tB
cHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5lcXVpbnV4LmlTYWxlNSIsIC0xLCA1LjYpOyAg
ICAKKyAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1Ro
YW4oQ0ZTVFIoImNvbS5lcXVpbnV4LmlTYWxlNSIpLCAtMSwgNS42KTsKICAgICByZXR1cm4gbmVl
ZHNRdWlyazsKIH0KIApAQCAtMjkyNyw3ICsyOTI4LDcgQEAgLSAodm9pZClfcHJlZmVyZW5jZXND
aGFuZ2VkOihXZWJQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCiAgICAgc2V0dGluZ3Muc2V0TmVl
ZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsoW3NlbGYgX25lZWRzQWRvYmVGcmFtZVJlbG9hZGlu
Z1F1aXJrXSk7CiAgICAgc2V0dGluZ3Muc2V0VHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hl
ZXQoW3NlbGYgX25lZWRzTGlua0VsZW1lbnRUZXh0Q1NTUXVpcmtdKTsKICAgICBzZXR0aW5ncy5z
ZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcyhbc2VsZiBfbmVlZHNLZXli
b2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3NdKTsKLSAgICBzZXR0aW5ncy5zZXRFbmZvcmNl
Q1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZSghV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNv
bS5hcHBsZS5pV2ViIiwgLTEsIDIuMSkpOworICAgIHNldHRpbmdzLnNldEVuZm9yY2VDU1NNSU1F
VHlwZUluTm9RdWlya3NNb2RlKCFfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29t
LmFwcGxlLmlXZWIiKSwgLTEsIDIuMSkpOwogICAgIHNldHRpbmdzLnNldE5lZWRzSXNMb2FkaW5n
SW5BUElTZW5zZVF1aXJrKFtzZWxmIF9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlya10pOwog
ICAgIHNldHRpbmdzLnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShbcHJlZmVyZW5jZXMgdGV4dEFy
ZWFzQXJlUmVzaXphYmxlXSk7CiAgICAgc2V0dGluZ3Muc2V0RXhwZXJpbWVudGFsTm90aWZpY2F0
aW9uc0VuYWJsZWQoW3ByZWZlcmVuY2VzIGV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVk
XSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320988</attachid>
            <date>2017-09-15 21:28:29 -0700</date>
            <delta_ts>2017-09-15 21:44:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177029-20170915212828.patch</filename>
            <type>text/plain</type>
            <size>87109</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRhMDI0YTAxYjFiZjQy
OGFjOWFmNzIwZmJiOGY3NjQyNmRlZGM1OC4uODdhYWJmOGFhZjNkZjM0MWM4YTIyMjI0YjAwOWJk
NDEyNDA3MTk2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQgbWlzY2Vs
bGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWc6IFVzZWQgLWZvcmNlX2xvYWQgb2YgbGliUEFMIGluc3RlYWQgb2YgLU9iakMuIFRo
aXMgZm9yY2VzCisgICAgICAgIHRoZSBsaW5rZXIgdG8gaW5jbHVkZSBib3RoIE9iamVjdGl2ZS1D
IGFuZCBDIFBBTCBzeW1ib2xzIGluIFdlYkNvcmUuIFRoaXMgaXMgbmVlZGVkIGZvcgorICAgICAg
ICBQQUw6OnBvcFVwTWVudSwgd2hpY2ggaXMgdXNlZCBieSBXZWJLaXQgYW5kIFdlYktpdExlZ2Fj
eSBidXQgbm90IFdlYkNvcmUuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3Ry
aW5nc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNo
V2ViKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6ZWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKToKKyAgICAgICAgKFdlYkNv
cmU6OmVsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpyZWJv
dW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6
OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6V0tDb3JlQ3Vyc29yX2Nv
cmVDdXJzb3JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvcmVDdXJzb3JDbGFzcyk6
CisgICAgICAgIChXZWJDb3JlOjpjb3JlQ3Vyc29yQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6
Y3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3Ig
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBhaW50VGV4dEFyZWEpOgorCiAyMDE3LTA5LTE1ICBTYWlkIEFib3UtSGFs
bGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgY2FsbGluZyBT
dHJpbmc6OmZvcm1hdCgpIGluIFBsYXRmb3JtQ0FGaWx0ZXJzOjpzZXRGaWx0ZXJzT25MYXllcigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwppbmRleCAyNTIzYjY4MjM1MDRlZWM3Zjc4NzBhMGEyNjBkMjMwNTFh
ZTNiYjkzLi5iODc3NTQyNzc3YzJiYjVlMmE1NjI2Mzg2ZjE4MTZiNjk5NWE2YTBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNy0wOS0xNSAgQW5keSBFc3RlcyAgPGFl
c3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gVXBsb2FkIG1pc2NlbGxhbmVvdXMgV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmg6CisgICAgICAgICogcGFsL3NwaS9j
b2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJLmguCisgICAgICAgICogcGFsL3NwaS9tYWMv
SElTZXJ2aWNlc1NQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TQ2VsbFNQSS5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgor
ICAgICAgICAqIHBhbC9zcGkvbWFjL05TTWVudVNQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFj
L05TU2Nyb2xsVmlld1NQSS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TU2Nyb2xsZXJJ
bXBTUEkuaDoKKyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVz
U1BJLmguCisgICAgICAgIChQQUw6OmRlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKToK
KyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAg
ICAgICAqIHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBhbC9zeXN0
ZW0vbWFjL1BvcHVwTWVudS5tbTogQWRkZWQuCisgICAgICAgIChQQUw6OnBvcFVwTWVudSk6CisK
IDIwMTctMDktMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IHRoZSBtYWNPUyBDTWFrZSBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNDAyZjFlM2M4NjM5
ZGJmZDIyY2Q1OWI4ZDY2YzAxNjg5OTZlMDYxLi42M2I5ZGFhYThhMTMzOTk1ZGI5OTgyNjZlYjVh
ZGEwODE2OGQ3MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQgbWlzY2Vs
bGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9OZXR3
b3JrUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRp
YWxpemVQcm9jZXNzTmFtZSk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJv
Y2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVBy
b2Nlc3NOYW1lKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVByb2Nlc3NN
YWMubW06CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vz
c05hbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAg
ICAgKFdlYktpdDo6dHJhY2tpbmdBcmVhT3B0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjptaWdodEJlZ2luU2Nyb2xsV2hpbGVJbmFjdGl2ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9w
dXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChXZWJLaXQ6
Ok5ldHNjYXBlUGx1Z2luOjpwb3BVcENvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpo
YW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3Rl
bUludGVyZmFjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKToKKwogMjAx
Ny0wOS0xNSAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAgICAgV1RG
OiB1c2UgRm9yd2FyZC5oIHdoZW4gYXBwcm9wcmlhdGUgaW5zdGVhZCBvZiBWZWN0b3IuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDhkOThkNDAwNjY2YmRhMmE5MTE2YzQyNDAyZTEw
NDY0NTYyMjg1MDcuLmNlNDVjYTk0YzcyNmQ4NjYxZTIwYTg2MDUxOTBiMjhkZGY1YmJjYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAxNy0wOS0xNSAg
QW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01hY10gVXBsb2FkIG1p
c2NlbGxhbmVvdXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZWZhdWx0RGVsZWdhdGVzL1dl
YkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJEZWZhdWx0VUlE
ZWxlZ2F0ZSBtZW51SXRlbVdpdGhUYWc6dGFyZ2V0OnJlcHJlc2VudGVkT2JqZWN0Ol0pOgorICAg
ICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5Ib3N0UHJv
eHkpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbToKKyAgICAgICAg
KFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVt
SW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNl
dERhdGFTb3VyY2U6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0dGFjaFJvb3RMYXllcjpd
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX25l
ZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX25lZWRz
TGlua0VsZW1lbnRUZXh0Q1NTUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNJc0xv
YWRpbmdJbkFQSVNlbnNlUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNGcmFtZUxv
YWREZWxlZ2F0ZVJldGFpblF1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2Vz
Q2hhbmdlZDpdKToKKworMjAxNy0wOS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+
CisKICAgICAgICAgW0NvY29hXSBVcHN0cmVhbSBNZWRpYVJlbW90ZSBhbmQgVmlkZW9Ub29sYm94
IFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Njk1MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwppbmRleCA3NjY2N2JhZTc0MDQ3MWQ3NDVhOTUx
MjIwNWViMWNmNDlkN2EzMjM1Li5iMDNkZDRjZThhMjM2YjczZTg4OThlN2Y5ZGJkMzhmNWZhY2M4
MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25m
aWcKQEAgLTc3LDcgKzc3LDcgQEAgTElCV0VCUlRDX0xJQlJBUllfRElSX1VTRV9PVkVSUklERV9G
UkFNRVdPUktTX0RJUl9OTyA9ICQoV0VCQ09SRV9GUkFNRVdPUktTX0RJUikKIExJQldFQlJUQ19M
SUJSQVJZX0RJUl9VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfWUVTID0gJChXS19PVkVSUklE
RV9GUkFNRVdPUktTX0RJUik7CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19S
RUxPQ0FUQUJMRV9GUkFNRVdPUktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9MU19MREZM
QUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk0pOwotT1RIRVJfTERGTEFHU19CQVNFID0gLWxz
cWxpdGUzIC1sb2JqYyAtbEFOR0xFIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgTWV0
YWwgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVfY2xpZW50
IFdlYktpdExlZ2FjeSAtT2JqQzsKK09USEVSX0xERkxBR1NfQkFTRSA9IC1sc3FsaXRlMyAtbG9i
amMgLWxBTkdMRSAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIE1ldGFsIC1hbGxvd2Fi
bGVfY2xpZW50IFdlYkNvcmVUZXN0U3VwcG9ydCAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRMZWdh
Y3kgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlBBTC5hOwogLy8gRklYTUU6
IFJlZHVjZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnQgPHJkYXI6Ly9wcm9ibGVtLzMx
ODIzOTY5PgogT1RIRVJfTERGTEFHU19CQVNFX2lvcyA9ICQoT1RIRVJfTERGTEFHU19CQVNFKSAt
ZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENv
cmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29y
ayBNb2JpbGVDb3JlU2VydmljZXMgLWZyYW1ld29yayBPcGVuR0xFUyAtbE1vYmlsZUdlc3RhbHQg
JChXS19JT1NfQklOQ09NUEFUX0xERkxBR1MpIC1hbGxvd2FibGVfY2xpZW50IFdlYktpdCAtYWxs
b3dhYmxlX2NsaWVudCBpVHVuZXNVIC1hbGxvd2FibGVfY2xpZW50IENhc2FibGFuY2EgLWFsbG93
YWJsZV9jbGllbnQgUmVtb3RlIC1hbGxvd2FibGVfY2xpZW50IFRWQm9va3MgLWFsbG93YWJsZV9j
bGllbnQgRHVtcFJlbmRlclRyZWUgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0VGVzdFJ1bm5lciAt
YWxsb3dhYmxlX2NsaWVudCBUZXN0V2ViS2l0QVBJOwogT1RIRVJfTERGTEFHU19QTEFURk9STVtz
ZGs9aXBob25lb3MqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgLWZyYW1ld29yayBJT1N1
cmZhY2UgLWZyYW1ld29yayBHcmFwaGljc1NlcnZpY2VzICQoTElCV0VCUlRDX0xERkxBR1MpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGNhYjE0Y2Q0YTdmZGIxYjdlZjRlYjg1NWRkYTlhZWFkNWVhOGM0OWIuLmJjY2U5MjYxNTM4
MmFiZmNhYzExYzkyNzUwNjRjY2I4OTUwYjRkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNyw2ICsxMDcsMTIgQEAKIAkJ
QTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8q
IFdlYlBhbmVsLm1tICovOyB9OwogCQlBMTA4MjZGRTFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFw
aGljc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTEwODI2RkQxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCAqLzsgfTsKIAkJQTEx
NzVCNDkxRjZBRkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNDgxRjZBRkY4RTAwQzRC
OUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovOyB9OworCQlBMTE3NUI0QjFGNkIyRDdFMDBD
NEI5RjAgLyogTlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggKi87IH07
CisJCUExMTc1QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRDMUY2QjMzNzMwMEM0QjlG
MCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsKKwkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYwIC8qIFBv
cHVwTWVudS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMTc1QjREMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gKi87IH07CisJCUExMTc1
QjU3MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjU1MUY2QjQ3MDUwMEM0
QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCAqLzsgfTsKKwkJQTExNzVCNTgxRjZCNDcw
NTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI1NjFGNkI0NzA1MDBDNEI5RjAgLyog
RGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJQTExNzVCNUExRjZCNEE4NDAwQzRC
OUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQ
SS5oICovOyB9OwogCQlBMUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1RENFMUY1
NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFGMEREMEVB
MDBCNzE5NTQgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9
OwogCQlBMzBENDEyMjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMUYxRjBERDBFQTAwQjcx
OTU0IC8qIEtpbGxSaW5nLmNwcCAqLzsgfTsKQEAgLTIyOSw2ICsyMzUsMTIgQEAKIAkJQTEwODI2
RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMDgyNkZEMUY1OEE0
MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TR3JhcGhpY3NT
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNzVCNDgxRjZBRkY4RTAwQzRC
OUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hTeW50aGVz
aXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEExRjZCMkQ3RTAw
QzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0NlbGxTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEMxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVw
TWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFBvcHVwTWVudS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92
aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTE3NUI1OTFGNkI0QTg0MDBDNEI5RjAgLyog
TlNTY3JvbGxWaWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TU2Nyb2xsVmlld1NQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYgLyogTWV0
YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0YWRhdGFTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLaWxsUmluZy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDcsNiArMzE5LDcgQEAKIAkJCQkwQzJEQTEyODFG
M0JFQjQ5MDBEQkMzMTcgLyogSU9SZXR1cm5TUEkuaCAqLywKIAkJCQkwQzJEQTEyOTFGM0JFQjQ5
MDBEQkMzMTcgLyogSU9TdXJmYWNlU1BJLmggKi8sCiAJCQkJMEMyREExMkExRjNCRUI0OTAwREJD
MzE3IC8qIElPVHlwZXNTUEkuaCAqLywKKwkJCQkwQzVBRjkxMjFGNDNBNEM3MDAyRUFDMDIgLyog
TGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzJEQTEyQjFGM0JFQjQ5MDBEQkMzMTcgLyog
TGlua1ByZXNlbnRhdGlvblNQSS5oICovLAogCQkJCTBDMkRBMTJDMUYzQkVCNDkwMERCQzMxNyAv
KiBNYWNoVk1TUEkuaCAqLywKIAkJCQkwQzJEQTEyRDFGM0JFQjQ5MDBEQkMzMTcgLyogTkVGaWx0
ZXJTb3VyY2VTUEkuaCAqLywKQEAgLTMzNiw3ICszNDksNiBAQAogCQkJCTBDNUFGOTBGMUY0M0E0
QzcwMDJFQUMwMiAvKiBDb3JlVUlTUEkuaCAqLywKIAkJCQkwQzVBRjkxMDFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggKi8sCiAJCQkJMEM1QUY5MTExRjQzQTRDNzAwMkVB
QzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCAqLywKLQkJCQkwQzVBRjkxMjFGNDNBNEM3MDAy
RUFDMDIgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzVBRjkxMzFGNDNBNEM3MDAy
RUFDMDIgLyogTWVkaWFQbGF5ZXJTUEkuaCAqLywKIAkJCQkwQzVBRjkxNDFGNDNBNEM3MDAyRUFD
MDIgLyogTW9iaWxlR2VzdGFsdFNQSS5oICovLAogCQkJCTBDNUFGOTE1MUY0M0E0QzcwMDJFQUMw
MiAvKiBPcGVuR0xFU1NQSS5oICovLApAQCAtMzU5LDYgKzM3MSw3IEBACiAJCQkJQTFGNTVEQ0Ux
RjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzQxRjQ1MTMw
RjAwRjRFQkI2IC8qIE5TQWNjZXNzaWJpbGl0eVNQSS5oICovLAogCQkJCTBDNzc4NTc1MUY0NTEz
MEYwMEY0RUJCNiAvKiBOU0FwcGxpY2F0aW9uU1BJLmggKi8sCisJCQkJQTExNzVCNEExRjZCMkQ3
RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovLAogCQkJCTBDNzc4NTc2MUY0NTEzMEYwMEY0RUJC
NiAvKiBOU0V2ZW50U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzcxRjQ1MTMwRjAwRjRFQkI2IC8qIE5T
Rm9udFNQSS5oICovLAogCQkJCUExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNz
U1BJLmggKi8sCkBAIC0zNzAsNiArMzgzLDcgQEAKIAkJCQkwQzc3ODU3QzFGNDUxMzBGMDBGNEVC
QjYgLyogTlNTY3JvbGxlckltcFNQSS5oICovLAogCQkJCTBDNzc4NTdEMUY0NTEzMEYwMEY0RUJC
NiAvKiBOU1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggKi8sCiAJCQkJMEM3Nzg1N0UxRjQ1MTMw
RjAwRjRFQkI2IC8qIE5TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yU1BJLmggKi8sCisJCQkJ
QTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oICovLAogCQkJCTBD
Nzc4NTdGMUY0NTEzMEYwMEY0RUJCNiAvKiBOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggKi8s
CiAJCQkJMEM3Nzg1ODAxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2hhcmluZ1NlcnZpY2VTUEkuaCAq
LywKIAkJCQkwQzc3ODU4MTFGNDUxMzBGMDBGNEVCQjYgLyogTlNTcGVsbENoZWNrZXJTUEkuaCAq
LywKQEAgLTQ1MCw2ICs0NjQsMTUgQEAKIAkJCXBhdGggPSBDb25maWd1cmF0aW9uczsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUExMTc1QjU0MUY2QjQ2RDYwMEM0QjlGMCAv
KiBjZiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQTEx
NzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgKi8sCisJ
CQkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICov
LAorCQkJKTsKKwkJCXBhdGggPSBjZjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCUEzMEQ0MTFEMUYwREQwQUMwMEI3MTk1NCAvKiB0ZXh0ICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTQ3MSw2ICs0OTQsNyBAQAogCQlBMzc4OEU5RjFG
MDVCN0NFMDA2Nzk0MjUgLyogc3lzdGVtICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQlBMTE3NUI1NDFGNkI0NkQ2MDBDNEI5RjAgLyogY2YgKi8sCiAJCQkJ
QTNBQjZFNUQxRjNEMUUyODAwOUMxNEIxIC8qIGNvY29hICovLAogCQkJCUEzNzg4RUEwMUYwNUI3
RTIwMDY3OTQyNSAvKiBtYWMgKi8sCiAJCQkJQTNBQjZFNTExRjNEMURDNTAwOUMxNEIxIC8qIFNs
ZWVwRGlzYWJsZXIuY3BwICovLApAQCAtNDg2LDYgKzUxMCw4IEBACiAJCUEzNzg4RUEwMUYwNUI3
RTIwMDY3OTQyNSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCUExMTc1QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLywKKwkJ
CQlBMTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tICovLAogCQkJCUEzNzg4
RTlEMUYwNUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1hYy5tbSAqLywKIAkJCQlBM0FCNkU2MjFGM0Qy
MTdGMDA5QzE0QjEgLyogU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oICovLAogCQkJCUEzQUI2RTYz
MUYzRDIxN0YwMDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tICovLApAQCAtNTI4
LDYgKzU1NCw3IEBACiAJCQkJMEMyREExNDExRjNCRUI0OTAwREJDMzE3IC8qIERhdGFEZXRlY3Rv
cnNDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVCQjYg
LyogRGF0YURldGVjdG9yc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUExRjQzQTRD
NzAwMkVBQzAyIC8qIERhdGFEZXRlY3RvcnNVSVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEx
NzVCNTcxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyRDlFNzMxRUVGNUFGNjAwREJDMzE3IC8qIEV4cG9ydE1hY3Jvcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTEwMjY1ODcxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5kYXRpb25T
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFCMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFw
aGljc1NlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTU1Niw2ICs1ODMsNyBAQAogCQkJ
CTBDMkRBMTRBMUYzQkVCNDkwMERCQzMxNyAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDMkRBMTRCMUYzQkVCNDkwMERCQzMxNyAvKiBOU0J1dHRvbkNlbGxT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTRDMUYzQkVCNDkwMERCQzMxNyAvKiBOU0Nh
bGVuZGFyRGF0ZVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTExNzVCNEIxRjZCMkQ3RTAwQzRC
OUYwIC8qIE5TQ2VsbFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNEQxRjNCRUI0OTAw
REJDMzE3IC8qIE5TQ29sb3JTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThGMUY0NTEz
MEYwMEY0RUJCNiAvKiBOU0V2ZW50U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0RTFG
M0JFQjQ5MDBEQkMzMTcgLyogTlNFeHRlbnNpb25TUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTcw
LDYgKzU5OCw3IEBACiAJCQkJMEM3Nzg1OTUxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsZXJJ
bXBTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk2MUY0NTEzMEYwMEY0RUJCNiAvKiBO
U1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5NzFG
NDUxMzBGMDBGNEVCQjYgLyogTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JTUEkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUExMTc1QjVBMUY2QjRBODQwMEM0QjlGMCAvKiBOU1Njcm9sbFZpZXdT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk4MUY0NTEzMEYwMEY0RUJCNiAvKiBOU1No
YXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5OTFGNDUx
MzBGMDBGNEVCQjYgLyogTlNTaGFyaW5nU2VydmljZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEM3Nzg1OUExRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU3BlbGxDaGVja2VyU1BJLmggaW4gSGVhZGVy
cyAqLywKQEAgLTU4NCw2ICs2MTMsNyBAQAogCQkJCTBDNUFGOTFGMUY0M0E0QzcwMDJFQUMwMiAv
KiBPcGVuR0xFU1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNTUxRjNCRUI0OTAwREJD
MzE3IC8qIFBhc3NLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTlFMUY0NTEzMEYw
MEY0RUJCNiAvKiBQSVBTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMTc1QjRFMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU2MUYzQkVC
NDkwMERCQzMxNyAvKiBwdGhyZWFkU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5RjFG
NDUxMzBGMDBGNEVCQjYgLyogUVRLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU3
MUYzQkVCNDkwMERCQzMxNyAvKiBRdWFydHpDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTY5
Miw4ICs3MjIsMTAgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxl
cyA9ICgKIAkJCQkxQzA5RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9u
Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExMTc1QjU4MUY2QjQ3MDUwMEM0QjlGMCAv
KiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTMwRDQxMjIx
RjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0
MTI1MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUExMTc1QjRGMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBM0M2NkNEQzFGNDYyRDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUEzQUI2RTUyMUYzRDFEQzUwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUEzQUI2RTYwMUYzRDFFMzkwMDlDMTRCMSAvKiBTbGVlcERpc2Fi
bGVyQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaAppbmRleCBmYzhjZDc5Mjc2MmJmMGE3NjIwYTEyYWNmMTIw
ZmEzMDlhMzc4ZmZjLi5mNTA2Y2IyNmExZGNhYTBjZDUxOGUyYTllOGNkNWFlZjg3Y2IzY2Y3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NyArMjgsMTYgQEAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgog
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24v
Q0ZQcml2Lmg+CisKKyNlbHNlCisKK3R5cGVkZWYgQ0ZfRU5VTShDRkluZGV4LCBDRlN5c3RlbVZl
cnNpb24pIHsKKyAgICBDRlN5c3RlbVZlcnNpb25MaW9uID0gNywKKyAgICBDRlN5c3RlbVZlcnNp
b25Nb3VudGFpbkxpb24gPSA4LAorfTsKKwogI2VuZGlmCiAKIFdURl9FWFRFUk5fQ19CRUdJTgpA
QCAtMzcsNSArNDYsMTEgQEAgQ0ZEaWN0aW9uYXJ5UmVmIF9DRkNvcHlTeXN0ZW1WZXJzaW9uRGlj
dGlvbmFyeSh2b2lkKTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGU3lzdGVtVmVyc2lv
blByb2R1Y3RWZXJzaW9uS2V5OwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZTeXN0ZW1W
ZXJzaW9uQnVpbGRWZXJzaW9uS2V5OwogCitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NGV2Vi
U2VydmljZXNUeXBlV2ViU2VhcmNoOworZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDRldlYlNl
cnZpY2VzUHJvdmlkZXJEZWZhdWx0RGlzcGxheU5hbWVLZXk7CitDRkRpY3Rpb25hcnlSZWYgX0NG
V2ViU2VydmljZXNDb3B5UHJvdmlkZXJJbmZvKENGU3RyaW5nUmVmIHNlcnZpY2VUeXBlLCBCb29s
ZWFuKiBvdXRJc1VzZXJTZWxlY3Rpb24pOworCitCb29sZWFuIF9DRkFwcFZlcnNpb25DaGVja0xl
c3NUaGFuKENGU3RyaW5nUmVmIGJ1bmRsZUlELCBpbnQgbGlua2VkT25Bbk9sZGVyU3lzdGVtVGhh
biwgZG91YmxlIHZlcnNpb25OdW1iZXJMZXNzVGhhbik7CisKIFdURl9FWFRFUk5fQ19FTkQKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTGF1bmNoU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2Vz
U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTBhMGVhM2I1YjAzOTVjNWE5MzEyNWQzNWI5MDk3NjVmZDQyMGEy
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0xh
dW5jaFNlcnZpY2VzU1BJLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCisjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbXBvcnQgPExhdW5j
aFNlcnZpY2VzL0xhdW5jaFNlcnZpY2VzUHJpdi5oPgorI2VsaWYgUExBVEZPUk0oSU9TKQorI2lt
cG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL0xhdW5jaFNlcnZpY2VzUHJpdi5oPgorI2VuZGlmCisK
KyNlbmRpZgorCitAY2xhc3MgTFNBcHBMaW5rOwordHlwZWRlZiB2b2lkICheTFNBcHBMaW5rQ29t
cGxldGlvbkhhbmRsZXIpKExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAqZXJyb3IpOwordHlw
ZWRlZiB2b2lkICheTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKShCT09MIHN1Y2Nlc3Ms
IE5TRXJyb3IgKmVycm9yKTsKKworI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCitAaW50
ZXJmYWNlIExTUmVzb3VyY2VQcm94eSA6IE5TT2JqZWN0IDxOU0NvcHlpbmcsIE5TU2VjdXJlQ29k
aW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExTQnVuZGxlUHJveHkgOiBMU1Jlc291cmNlUHJveHkg
PE5TU2VjdXJlQ29kaW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExTQXBwbGljYXRpb25Qcm94eSA6
IExTQnVuZGxlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgorLSAoTlNTdHJpbmcgKilsb2NhbGl6ZWRO
YW1lRm9yQ29udGV4dDooTlNTdHJpbmcgKiljb250ZXh0OworQGVuZAorCitAaW50ZXJmYWNlIExT
QXBwTGluayA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KK0BlbmQKKworQGludGVyZmFjZSBM
U0FwcExpbmsgKCkKKysgKHZvaWQpZ2V0QXBwTGlua1dpdGhVUkw6KE5TVVJMICopYVVSTCBjb21w
bGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpY29tcGxldGlvbkhhbmRs
ZXI7CisrICh2b2lkKW9wZW5XaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxldGlvbkhhbmRsZXI6
KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZv
aWQpb3BlbkluV2ViQnJvd3NlcjooQk9PTClpbldlYkJyb3dzZXIgc2V0QXBwcm9wcmlhdGVPcGVu
U3RyYXRlZ3lBbmRXZWJCcm93c2VyU3RhdGU6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4g
KilzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVy
KWNvbXBsZXRpb25IYW5kbGVyOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBMU0FwcGxp
Y2F0aW9uUHJveHkgKnRhcmdldEFwcGxpY2F0aW9uUHJveHk7CitAZW5kCisKK2VudW0gTFNTZXNz
aW9uSUQgeworICAgIGtMU0RlZmF1bHRTZXNzaW9uSUQgPSAtMiwKK307CisKKyNlbmRpZgorCitX
VEZfRVhURVJOX0NfQkVHSU4KKworT1NTdGF0dXMgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlv
bkl0ZW0oTFNTZXNzaW9uSUQsIExTQVNOUmVmLCBDRlN0cmluZ1JlZiBrZXlUb1NldFJlZiwgQ0ZU
eXBlUmVmIHZhbHVlVG9TZXRSZWYsIENGRGljdGlvbmFyeVJlZiogbmV3SW5mb3JtYXRpb25EaWN0
UmVmKTsKK0xTQVNOUmVmIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpOworCitleHRlcm4g
Y29uc3QgQ0ZTdHJpbmdSZWYgX2tMU0Rpc3BsYXlOYW1lS2V5OworCitXVEZfRVhURVJOX0NfRU5E
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTGF1bmNoU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQ
SS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNmE4YjJlNGZjYmVlMTUxMWU4YzBj
NDNiN2FiZDU3ODUyMjgxODIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQ
SS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KLQotI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCi0KLSNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9MU0FwcExpbmtQ
cml2Lmg+Ci0KLSNlbmRpZgotCi1AY2xhc3MgTFNBcHBMaW5rOwotdHlwZWRlZiB2b2lkICheTFNB
cHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpKExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAqZXJy
b3IpOwotdHlwZWRlZiB2b2lkICheTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKShCT09M
IHN1Y2Nlc3MsIE5TRXJyb3IgKmVycm9yKTsKLQotI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQotCi1AaW50ZXJmYWNlIExTUmVzb3VyY2VQcm94eSA6IE5TT2JqZWN0IDxOU0NvcHlpbmcsIE5T
U2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50ZXJmYWNlIExTQnVuZGxlUHJveHkgOiBMU1Jlc291
cmNlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50ZXJmYWNlIExTQXBwbGljYXRp
b25Qcm94eSA6IExTQnVuZGxlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgotLSAoTlNTdHJpbmcgKils
b2NhbGl6ZWROYW1lRm9yQ29udGV4dDooTlNTdHJpbmcgKiljb250ZXh0OwotQGVuZAotCi1AaW50
ZXJmYWNlIExTQXBwTGluayA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KLUBlbmQKLQotQGlu
dGVyZmFjZSBMU0FwcExpbmsgKCkKLSsgKHZvaWQpZ2V0QXBwTGlua1dpdGhVUkw6KE5TVVJMICop
YVVSTCBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpY29tcGxl
dGlvbkhhbmRsZXI7Ci0rICh2b2lkKW9wZW5XaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxldGlv
bkhhbmRsZXI6KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxl
cjsKLS0gKHZvaWQpb3BlbkluV2ViQnJvd3NlcjooQk9PTClpbldlYkJyb3dzZXIgc2V0QXBwcm9w
cmlhdGVPcGVuU3RyYXRlZ3lBbmRXZWJCcm93c2VyU3RhdGU6KE5TRGljdGlvbmFyeTxOU1N0cmlu
ZyAqLCBpZD4gKilzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBsZXRp
b25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyOwotQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25n
KSBMU0FwcGxpY2F0aW9uUHJveHkgKnRhcmdldEFwcGxpY2F0aW9uUHJveHk7Ci1AZW5kCi0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmgK
aW5kZXggYTM1NWI5NGZlNjMwOTJlZjVhY2QwYjVjOTVlMDNkZDQ2ZTk1MzgxNS4uN2Q2YmE4OTMw
YWUzZTU0OGFmOGE4OTNhYzhiMDBhYmIzODk4N2Q0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oCkBAIC0yOCwxMCArMjgsNTkgQEAKICNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaW5jbHVkZSA8SElTZXJ2aWNlcy9BWFRleHRNYXJr
ZXIuaD4KKyNpbmNsdWRlIDxISVNlcnZpY2VzL0NvcmVDdXJzb3IuaD4KICNpbmNsdWRlIDxISVNl
cnZpY2VzL0NvcmVEcmFnLmg+CiAKICNlbHNlCiAKK3R5cGVkZWYgQ0ZfRU5VTShTSW50MzIsIENv
cmVDdXJzb3JUeXBlKSB7CisgICAga0NvcmVDdXJzb3JGaXJzdEN1cnNvciA9IDAsCisgICAga0Nv
cmVDdXJzb3JBcnJvdyA9IGtDb3JlQ3Vyc29yRmlyc3RDdXJzb3IsCisgICAga0NvcmVDdXJzb3JJ
QmVhbSwKKyAgICBrQ29yZUN1cnNvck1ha2VBbGlhcywKKyAgICBrQ29yZUN1cnNvck5vdEFsbG93
ZWQsCisgICAga0NvcmVDdXJzb3JCdXN5QnV0Q2xpY2thYmxlLAorICAgIGtDb3JlQ3Vyc29yQ29w
eSwKKyAgICBrQ29yZUN1cnNvclNjcmVlblNob3RTZWxlY3Rpb24gPSA3LAorICAgIGtDb3JlQ3Vy
c29yU2NyZWVuU2hvdFNlbGVjdGlvblRvQ2xpcCwKKyAgICBrQ29yZUN1cnNvclNjcmVlblNob3RX
aW5kb3csCisgICAga0NvcmVDdXJzb3JTY3JlZW5TaG90V2luZG93VG9DbGlwLAorICAgIGtDb3Jl
Q3Vyc29yQ2xvc2VkSGFuZCwKKyAgICBrQ29yZUN1cnNvck9wZW5IYW5kLAorICAgIGtDb3JlQ3Vy
c29yUG9pbnRpbmdIYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdVcEhhbmQsCisgICAga0Nv
cmVDdXJzb3JDb3VudGluZ0Rvd25IYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdVcEFuZERv
d25IYW5kLAorICAgIGtDb3JlQ3Vyc29yUmVzaXplTGVmdCwKKyAgICBrQ29yZUN1cnNvclJlc2l6
ZVJpZ2h0LAorICAgIGtDb3JlQ3Vyc29yUmVzaXplTGVmdFJpZ2h0LAorICAgIGtDb3JlQ3Vyc29y
Q3Jvc3MsCisgICAga0NvcmVDdXJzb3JSZXNpemVVcCwKKyAgICBrQ29yZUN1cnNvclJlc2l6ZURv
d24sCisgICAga0NvcmVDdXJzb3JSZXNpemVVcERvd24sCisgICAga0NvcmVDdXJzb3JDb250ZXh0
dWFsTWVudSwKKyAgICBrQ29yZUN1cnNvclBvb2YsCisgICAga0NvcmVDdXJzb3JJQmVhbVZlcnRp
Y2FsLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplRWFzdCwKKyAgICBrQ29yZUN1cnNvcldp
bmRvd1Jlc2l6ZUVhc3RXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhFYXN0
LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhFYXN0U291dGhXZXN0LAorICAgIGtD
b3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGgsCisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVO
b3J0aFNvdXRoLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0LAorICAgIGtD
b3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0U291dGhFYXN0LAorICAgIGtDb3JlQ3Vyc29y
V2luZG93UmVzaXplU291dGhFYXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291dGgs
CisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aFdlc3QsCisgICAga0NvcmVDdXJzb3JX
aW5kb3dSZXNpemVXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93TW92ZSwKKyAgICBrQ29yZUN1
cnNvckhlbHAsCisgICAga0NvcmVDdXJzb3JDZWxsLAorICAgIGtDb3JlQ3Vyc29yWm9vbUluLAor
ICAgIGtDb3JlQ3Vyc29yWm9vbU91dCwKKyAgICBrQ29yZUN1cnNvckxhc3RDdXJzb3IgPSBrQ29y
ZUN1cnNvclpvb21PdXQKK307CisKIGVudW0gewogICAgIGtDb3JlRHJhZ0ltYWdlU3BlY1ZlcnNp
b25PbmUgPSAxLAogfTsKQEAgLTY4LDUgKzExNyw2IEBAIENGVHlwZUlEIEFYVGV4dE1hcmtlclJh
bmdlR2V0VHlwZUlEKCk7CiBDb3JlRHJhZ1JlZiBDb3JlRHJhZ0dldEN1cnJlbnREcmFnKCk7CiBP
U1N0YXR1cyBDb3JlRHJhZ1NldEltYWdlKENvcmVEcmFnUmVmLCBDR1BvaW50IGltYWdlT2Zmc2V0
LCBDb3JlRHJhZ0ltYWdlU3BlYyosIENHU1JlZ2lvbk9iaiBpbWFnZVNoYXBlLCBmbG9hdCBvdmVy
YWxsQWxwaGEpOwogY29uc3QgVUludDgqIEFYVGV4dE1hcmtlckdldEJ5dGVQdHIoQVhUZXh0TWFy
a2VyUmVmKTsKK0NGUnVuTG9vcFNvdXJjZVJlZiBNU0hDcmVhdGVNSUdTZXJ2ZXJTb3VyY2UoQ0ZB
bGxvY2F0b3JSZWYsIENGSW5kZXggb3JkZXIsIG1pZ19zdWJzeXN0ZW1fdCBzdWJfc3lzdGVtLCBN
U0hDcmVhdGVPcHRpb25zLCBtYWNoX3BvcnRfdCwgdm9pZCogdXNlcl9kYXRhKTsKIAogV1RGX0VY
VEVSTl9DX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05T
Q2VsbFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TQ2VsbFNQSS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZhMzNkYTNkM2RmYmJhN2NiMDYzZjYwZWQ0NzkxMDFlODY2OTM4NjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNDZWxsU1BJLmgK
QEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QXBwS2l0L05TQ2VsbF9Qcml2YXRlLmg+CisK
KyNlbmRpZgorCitXVEZfRVhURVJOX0NfQkVHSU4KKwordm9pZCBfTlNEcmF3Q2FyYm9uVGhlbWVM
aXN0Qm94KE5TUmVjdCwgQk9PTCBlbmFibGVkLCBCT09MIGZsaXBwZWQsIEJPT0wgdGV4dHVyZWQp
OworCitXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9tYWMvTlNNZW51U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNN
ZW51U1BJLmgKaW5kZXggMWY1ZTdiYzY2YTAwMzIxOTQ4MjIwNGM0ODE5OTQxZWQzYjRmYTVmZi4u
YTEyZWRmMjZjYTQxMzlmMjcyNmFiZDFmOWRkMDAyNjY2NDlmNGNjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TTWVudVNQSS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL21hYy9OU01lbnVTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw3ICsyOSw5IEBACiAKICNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQogCitXVEZfRVhURVJOX0NfQkVHSU4KICNpbXBvcnQgPEFwcEtp
dC9OU01lbnVfUHJpdmF0ZS5oPgorV1RGX0VYVEVSTl9DX0VORAogCiAjZWxzZQogCkBAIC0zOCw2
ICs0MCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBOU01lbnVUeXBlKSB7CiAgICAg
TlNNZW51VHlwZUNvbnRleHRNZW51LAogfTsKIAorZW51bSB7CisgICAgTlNQb3BVcE1lbnVJc1Bv
cHVwQnV0dG9uID0gMHg0MAorfQorCiBAaW50ZXJmYWNlIE5TTWVudSAoKQogKyAoTlNNZW51VHlw
ZSltZW51VHlwZUZvckV2ZW50OihOU0V2ZW50ICopZXZlbnQ7CiBAZW5kCkBAIC01Niw0ICs2Miwx
NSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBOU01lbnVUeXBlKSB7CiAKICNlbmRpZgog
Ci0jZW5kaWYKK1dURl9FWFRFUk5fQ19CRUdJTgorCitleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBO
U1BvcFVwTWVudVBvcHVwQnV0dG9uQm91bmRzOworZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgTlNQ
b3BVcE1lbnVQb3B1cEJ1dHRvbkxhYmVsT2Zmc2V0OworZXh0ZXJuIE5TU3RyaW5nICogY29uc3Qg
TlNQb3BVcE1lbnVQb3B1cEJ1dHRvblNpemU7CitleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBOU1Bv
cFVwTWVudVBvcHVwQnV0dG9uV2lkZ2V0OworCit2b2lkIF9OU1BvcFVwQ2FyYm9uTWVudTMoTlNN
ZW51ICosIE5TV2luZG93ICosIE5TVmlldyAqb3duZXJWaWV3LCBOU1BvaW50IHNjcmVlblBvaW50
LCBOU0ludGVnZXIgY2hlY2tlZEl0ZW0sIE5TRm9udCAqLCBDR0Zsb2F0IG1pbldpZHRoLCBOU1N0
cmluZyAqcnVuTG9vcE1vZGUsIE5TUG9wVXBNZW51RmxhZ3MsIE5TRGljdGlvbmFyeSAqb3B0aW9u
cyk7CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jYjBlZjdhZjU4ZTMyZTQ4YmYxN2UwNjIyYmU4N2I1ZmQwYzRlZGY4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsVmlld1NQSS5o
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEFwcEtpdC9OU1Njcm9sbFZpZXdfUHJpdmF0
ZS5oPgorCisjZW5kaWYKKworV1RGX0VYVEVSTl9DX0JFR0lOCisKK0NHRmxvYXQgX05TRWxhc3Rp
Y0RlbHRhRm9yVGltZURlbHRhKENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGluaXRp
YWxWZWxvY2l0eSwgQ0dGbG9hdCBlbGFwc2VkVGltZSk7CitDR0Zsb2F0IF9OU0VsYXN0aWNEZWx0
YUZvclJlYm91bmREZWx0YShDR0Zsb2F0IGRlbHRhKTsKK0NHRmxvYXQgX05TUmVib3VuZERlbHRh
Rm9yRWxhc3RpY0RlbHRhKENHRmxvYXQgZGVsdGEpOworCitXVEZfRVhURVJOX0NfRU5ECmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5o
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaAppbmRl
eCAwNDkyYzFhYjYxOTU2Y2IxOTYxYzllYTdiMjc3MTU3Mzc4MWQ1NTMzLi4xODcwNDk2ZTA3YzIw
ZjJlYjlhYjVhZmFkNzFlOWRiMWRhZDFhMmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQ5LDQgKzE0OSwxMCBAQCB0eXBlZGVm
IE5TVUludGVnZXIgTlNPdmVybGF5U2Nyb2xsZXJTdGF0ZTsKIAogI2VuZGlmCiAKK1dURl9FWFRF
Uk5fQ19CRUdJTgorCitOU1Njcm9sbGVyU3R5bGUgX05TUmVjb21tZW5kZWRTY3JvbGxlclN0eWxl
KCk7CisKK1dURl9FWFRFUk5fQ19FTkQKKwogI2VuZGlmIC8vIFVTRShBUFBLSVQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9jZi9EZWZhdWx0U2VhcmNoUHJvdmlk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vY2YvRGVmYXVsdFNlYXJjaFBy
b3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDg2NzIyOWE4ZjFhYzNlNjU3ZjBkYTVmYTM3NDgzMzc5
NWU3ZmI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0v
Y2YvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRlZmF1bHRTZWFyY2hQcm92aWRlci5o
IgorCisjaW5jbHVkZSAiQ0ZVdGlsaXRpZXNTUEkuaCIKKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlv
bi9Db3JlRm91bmRhdGlvbi5oPgorCituYW1lc3BhY2UgUEFMIHsKKworUmV0YWluUHRyPENGU3Ry
aW5nUmVmPiBkZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpCit7CisgICAgYXV0byBw
cm92aWRlckluZm8gPSBhZG9wdENGKF9DRldlYlNlcnZpY2VzQ29weVByb3ZpZGVySW5mbyhrQ0ZX
ZWJTZXJ2aWNlc1R5cGVXZWJTZWFyY2gsIG51bGxwdHIpKTsKKyAgICBpZiAoIXByb3ZpZGVySW5m
bykKKyAgICAgICAgcmV0dXJuIENGU1RSKCJHb29nbGUiKTsKKworICAgIENGVHlwZVJlZiBkaXNw
bGF5TmFtZSA9IENGRGljdGlvbmFyeUdldFZhbHVlKHByb3ZpZGVySW5mby5nZXQoKSwga0NGV2Vi
U2VydmljZXNQcm92aWRlckRlZmF1bHREaXNwbGF5TmFtZUtleSk7CisgICAgaWYgKCFkaXNwbGF5
TmFtZSkKKyAgICAgICAgcmV0dXJuIENGU1RSKCJHb29nbGUiKTsKKworICAgIEFTU0VSVChDRkdl
dFR5cGVJRChkaXNwbGF5TmFtZSkgPT0gQ0ZTdHJpbmdHZXRUeXBlSUQoKSk7CisgICAgcmV0dXJu
IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIChDRlN0cmlu
Z1JlZilkaXNwbGF5TmFtZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBQQUwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5o
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vY2YvRGVmYXVsdFNlYXJjaFByb3ZpZGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmNmY2ZkODM3Yjc2MDljNjQzMjdlNzU1OTgwZDZkNGZmOTkyZmJmNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL2NmL0RlZmF1
bHRTZWFyY2hQcm92aWRlci5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFBBTCB7CisK
K1BBTF9FWFBPUlQgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBkZWZhdWx0U2VhcmNoUHJvdmlkZXJE
aXNwbGF5TmFtZSgpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5
c3RlbS9tYWMvUG9wdXBNZW51LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMv
UG9wdXBNZW51LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBlYmY3ZDY5YzA0MmIzZmJlMzRhZGRkMTIwNjk5NGE0
NDE5ZThmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVt
L21hYy9Qb3B1cE1lbnUuaApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8
QXBwS2l0L0FwcEtpdC5oPgorCituYW1lc3BhY2UgUEFMIHsKKworUEFMX0VYUE9SVCB2b2lkIHBv
cFVwTWVudShOU01lbnUgKiwgTlNQb2ludCBsb2NhdGlvbiwgZmxvYXQgd2lkdGgsIE5TVmlldyAq
LCBpbnQgc2VsZWN0ZWRJdGVtLCBOU0ZvbnQgKiwgTlNDb250cm9sU2l6ZSwgYm9vbCB1c2VzQ3Vz
dG9tQXBwZWFyYW5jZSk7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3lzdGVtL21hYy9Qb3B1cE1lbnUubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9t
YWMvUG9wdXBNZW51Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyMzM1NzVkYzM0ZTc2MWU4NjFjYmI0NTI4N2I3
MzNmMmNkNGFjMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5
c3RlbS9tYWMvUG9wdXBNZW51Lm1tCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlBvcHVwTWVudS5oIgorCisjaWYgUExBVEZPUk0oTUFD
KQorCisjaW1wb3J0ICJOU01lbnVTUEkuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKwor
QGludGVyZmFjZSBOU01lbnUgKFdlYlByaXZhdGUpCistIChpZClfbWVudUltcGw7CitAZW5kCisK
K0BpbnRlcmZhY2UgTlNPYmplY3QgKFdlYlByaXZhdGUpCistICh2b2lkKXBvcFVwTWVudTooTlNN
ZW51KiltZW51IGF0TG9jYXRpb246KE5TUG9pbnQpbG9jYXRpb24gd2lkdGg6KENHRmxvYXQpd2lk
dGggZm9yVmlldzooTlNWaWV3Kil2aWV3IHdpdGhTZWxlY3RlZEl0ZW06KE5TSW50ZWdlcilzZWxl
Y3RlZEl0ZW0gd2l0aEZvbnQ6KE5TRm9udCopZm9udCB3aXRoRmxhZ3M6KE5TUG9wVXBNZW51Rmxh
Z3MpZmxhZ3Mgd2l0aE9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKW9wdGlvbnM7CitAZW5kCisKK25h
bWVzcGFjZSBQQUwgeworCit2b2lkIHBvcFVwTWVudShOU01lbnUgKm1lbnUsIE5TUG9pbnQgbG9j
YXRpb24sIGZsb2F0IHdpZHRoLCBOU1ZpZXcgKnZpZXcsIGludCBzZWxlY3RlZEl0ZW0sIE5TRm9u
dCAqZm9udCwgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZSwgYm9vbCB1c2VzQ3VzdG9tQXBwZWFy
YW5jZSkKK3sKKyAgICBOU1JlY3QgYWRqdXN0ZWRQb3B1cEJvdW5kcyA9IFt2aWV3LndpbmRvdyBj
b252ZXJ0UmVjdFRvU2NyZWVuOlt2aWV3IGNvbnZlcnRSZWN0OnZpZXcuYm91bmRzIHRvVmlldzpu
aWxdXTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBpZiAoY29udHJv
bFNpemUgIT0gTlNNaW5pQ29udHJvbFNpemUpIHsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgYWRqdXN0ZWRQb3B1cEJvdW5kcy5vcmlnaW4ueCAtPSAzOworICAgICAgICBh
ZGp1c3RlZFBvcHVwQm91bmRzLm9yaWdpbi55IC09IDE7CisgICAgICAgIGFkanVzdGVkUG9wdXBC
b3VuZHMuc2l6ZS53aWR0aCArPSA2OworICAgIH0KKworICAgIC8vIFRoZXNlIG51bWJlcnMgd2Vy
ZSBleHRyYWN0ZWQgZnJvbSB2aXN1YWwgaW5zcGVjdGlvbiBhcyB0aGUgbWVudSBhbmltYXRlcyBz
aHV0LgorICAgIE5TU2l6ZSBsYWJlbE9mZnNldCA9IE5TTWFrZVNpemUoMTEsIDEpOworICAgIGlm
IChtZW51LnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gPT0gTlNVc2VySW50ZXJmYWNlTGF5
b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnQpCisgICAgICAgIGxhYmVsT2Zmc2V0ID0gTlNNYWtlU2l6
ZSgyNCwgMSk7CisKKyAgICBhdXRvIG9wdGlvbnMgPSBhZG9wdE5TKFtAeworICAgICAgICBOU1Bv
cFVwTWVudVBvcHVwQnV0dG9uQm91bmRzIDogW05TVmFsdWUgdmFsdWVXaXRoUmVjdDphZGp1c3Rl
ZFBvcHVwQm91bmRzXSwKKyAgICAgICAgTlNQb3BVcE1lbnVQb3B1cEJ1dHRvbkxhYmVsT2Zmc2V0
IDogW05TVmFsdWUgdmFsdWVXaXRoU2l6ZTpsYWJlbE9mZnNldF0sCisgICAgICAgIE5TUG9wVXBN
ZW51UG9wdXBCdXR0b25TaXplIDogQChjb250cm9sU2l6ZSkKKyAgICB9IG11dGFibGVDb3B5XSk7
CisKKyAgICBpZiAodXNlc0N1c3RvbUFwcGVhcmFuY2UpCisgICAgICAgIFtvcHRpb25zIHNldE9i
amVjdDpAIiIgZm9yS2V5Ok5TUG9wVXBNZW51UG9wdXBCdXR0b25XaWRnZXRdOworCisgICAgW1tt
ZW51IF9tZW51SW1wbF0gcG9wVXBNZW51Om1lbnUgYXRMb2NhdGlvbjpsb2NhdGlvbiB3aWR0aDp3
aWR0aCBmb3JWaWV3OnZpZXcgd2l0aFNlbGVjdGVkSXRlbTpzZWxlY3RlZEl0ZW0gd2l0aEZvbnQ6
Zm9udCB3aXRoRmxhZ3M6KHVzZXNDdXN0b21BcHBlYXJhbmNlID8gMCA6IE5TUG9wVXBNZW51SXNQ
b3B1cEJ1dHRvbikgd2l0aE9wdGlvbnM6b3B0aW9ucy5nZXQoKV07Cit9CisKK30gLy8gbmFtZXNw
YWNlIFBBTAorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCmluZGV4IDEyOWI2
ZTJkNTBkNTIxNmRiNWE0Njg3NjZjMTRmZDgyZWE1M2JjNzcuLjMzNDFmYTJjYmZmMzBjY2Q3MjEy
NjU5ZTVhM2MyYTY0MzY2YmQxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMTUgKzIzLDE2IEBA
CiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNpbXBvcnQgImNvbmZpZy5o
IgorI2ltcG9ydCAiTG9jYWxpemVkU3RyaW5ncy5oIgogCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKLSNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbXBvcnQg
Ik5vdEltcGxlbWVudGVkLmgiCisjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisj
aW1wb3J0IDxwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oPgorI2ltcG9ydCA8
d3RmL0Fzc2VydGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC02Niw3ICs2Nyw3IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTZWFyY2hJblNwb3RsaWdodCgpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hX
ZWIoKQogewotICAgIGF1dG8gc2VhcmNoUHJvdmlkZXJOYW1lID0gYWRvcHRDRih3a0NvcHlEZWZh
dWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKKyAgICBhdXRvIHNlYXJjaFByb3ZpZGVy
TmFtZSA9IFBBTDo6ZGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUoKTsKICAgICByZXR1
cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwg
IlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3Zp
ZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5k
ZXggZWUzZTUzN2ZiOGMyYjY4NzBlNjFkZmQyMzk3NjA3ZWM3ZjFmNGIxYS4uZDM3OWUyNDc0ZDE2
NjY1NGE0YzEyOWNjY2IwZjFlZGUzZTYzMjVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMjAgKzIzLDI0
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlNjcm9sbENvbnRyb2xsZXIuaCIKKyNpbXBvcnQgImNvbmZp
Zy5oIgorI2ltcG9ydCAiU2Nyb2xsQ29udHJvbGxlci5oIgogCi0jaW5jbHVkZSAiTGF5b3V0U2l6
ZS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgotI2luY2x1ZGUgIldlYkNvcmVT
eXN0ZW1JbnRlcmZhY2UuaCIKLSNpbmNsdWRlICJXaGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKLSNp
bmNsdWRlIDxzeXMvc3lzY3RsLmg+Ci0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgIkxheW91dFNpemUuaCIKKyNpbXBvcnQgIlBsYXRm
b3JtV2hlZWxFdmVudC5oIgorI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgorI2lt
cG9ydCAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCisjaW1wb3J0IDxzeXMvc3lzY3RsLmg+Cisj
aW1wb3J0IDxzeXMvdGltZS5oPgorI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKICNpZiBF
TkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQotI2luY2x1ZGUgIlNjcm9sbFNuYXBBbmltYXRvclN0YXRl
LmgiCi0jaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKKyNpbXBvcnQgIlNjcm9sbFNuYXBBbmlt
YXRvclN0YXRlLmgiCisjaW1wb3J0ICJTY3JvbGxhYmxlQXJlYS5oIgorI2VuZGlmCisKKyNpZiBQ
TEFURk9STShNQUMpCisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaD4KICNl
bmRpZgogCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSB8fCBFTkFCTEUoQ1NTX1NDUk9MTF9T
TkFQKQpAQCAtNTIsMTcgKzU2LDE3IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBydWJiZXJiYW5kTWlu
aW11bVJlcXVpcmVkRGVsdGFCZWZvcmVTdHJldGNoID0gMTA7CiAjaWYgUExBVEZPUk0oTUFDKQog
c3RhdGljIGZsb2F0IGVsYXN0aWNEZWx0YUZvclRpbWVEZWx0YShmbG9hdCBpbml0aWFsUG9zaXRp
b24sIGZsb2F0IGluaXRpYWxWZWxvY2l0eSwgZmxvYXQgZWxhcHNlZFRpbWUpCiB7Ci0gICAgcmV0
dXJuIHdrTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEoaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFs
VmVsb2NpdHksIGVsYXBzZWRUaW1lKTsKKyAgICByZXR1cm4gX05TRWxhc3RpY0RlbHRhRm9yVGlt
ZURlbHRhKGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFZlbG9jaXR5LCBlbGFwc2VkVGltZSk7CiB9
CiAKIHN0YXRpYyBmbG9hdCBlbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoZmxvYXQgZGVsdGEp
CiB7Ci0gICAgcmV0dXJuIHdrTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoZGVsdGEpOwor
ICAgIHJldHVybiBfTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoZGVsdGEpOwogfQogCiBz
dGF0aWMgZmxvYXQgcmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKGZsb2F0IGRlbHRhKQogewot
ICAgIHJldHVybiB3a05TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKGRlbHRhKTsKKyAgICBy
ZXR1cm4gX05TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKGRlbHRhKTsKIH0KIAogc3RhdGlj
IGZsb2F0IHNjcm9sbFdoZWVsTXVsdGlwbGllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBmNDI1Nzk3
MDEwZGNhMjM3NzBiOGZlNDYwNWJjNDliMGY0ZDYwOGEwLi5jNjk0NmQ2ZGZkM2JjZTNhMWY4NjI0
YTM5NGJjNjg2OWQ3ZDJjM2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsNyArMjQsNiBAQAogICovCiAK
ICNpbmNsdWRlICJjb25maWcuaCIKLQogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDQS5oIgogCiAj
aWYgVVNFKENBKQpAQCAtNDcsNiArNDYsNyBAQAogI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9y
bU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ0FUcmFuc2Zvcm0zRC5oPgogI2lu
Y2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaD4K
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMjk4OCw3ICsyOTg4LDcgQEAg
Ym9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJh
bWVzKGNvbnN0IEtleWZyYW1lVmFsdWUKICAgICAgICAgLy8gb24gb3IgYmVmb3JlIFNub3cgTGVv
cGFyZC4KICAgICAgICAgLy8gRklYTUU6IFRoaXMgZml4IGhhcyBub3QgYmVlbiBhZGRlZCB0byBR
dWFydHpDb3JlIG9uIFdpbmRvd3MgeWV0ICg8cmRhcjovL3Byb2JsZW0vOTExMjIzMz4pIHNvIHdl
IGV4cGVjdCB0aGUKICAgICAgICAgLy8gcmV2ZXJzZWQgYW5pbWF0aW9uIGJlaGF2aW9yCi0gICAg
ICAgIHN0YXRpYyBib29sIGV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQg
PSB3a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQoKTsKKyAgICAgICAg
c3RhdGljIGJvb2wgZXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCA9ICFf
Q0ZFeGVjdXRhYmxlTGlua2VkT25PckFmdGVyKENGU3lzdGVtVmVyc2lvbkxpb24pOwogICAgICAg
ICBpZiAoIWV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpCiAgICAgICAg
ICAgICByZXZlcnNlQW5pbWF0aW9uTGlzdCA9IGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQppbmRleCBhYTM0NWU4OGU0ODExOGM0Njg3YjllZWZi
ZmM3MzIxOGRjNDcwNzBjLi40MTcyZTIyMjY4YzNkYzQxZGE1NjBlNGU0YzI4ZmM2N2NlODJjMWQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjcsNiArMjcsOCBAQAogI2ltcG9ydCAiQ3Vyc29yLmgiCiAKICNpbXBvcnQgIldlYkNvcmVTeXN0
ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgPG9iamMvcnVudGltZS5oPgorI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvSElTZXJ2aWNlc1NQSS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMu
aD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtMzcsNiArMzksMTM5IEBAIEBp
bXBsZW1lbnRhdGlvbiBXZWJDb3JlQ3Vyc29yQnVuZGxlCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKKyAgICAKK3N0YXRpYyBOU0N1cnNvciAqYnVzeUJ1dENsaWNrYWJsZU5TQ3Vyc29yOwor
c3RhdGljIE5TQ3Vyc29yICptYWtlQWxpYXNOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqbW92
ZU5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVFYXN0TlNDdXJzb3I7CitzdGF0aWMg
TlNDdXJzb3IgKnJlc2l6ZUVhc3RXZXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6
ZU5vcnRoTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRoU291dGhOU0N1cnNv
cjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplTm9ydGhlYXN0TlNDdXJzb3I7CitzdGF0aWMgTlND
dXJzb3IgKnJlc2l6ZU5vcnRoZWFzdFNvdXRod2VzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29y
ICpyZXNpemVOb3J0aHdlc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplTm9ydGh3
ZXN0U291dGhlYXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZVNvdXRoTlNDdXJz
b3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZVNvdXRoZWFzdE5TQ3Vyc29yOworc3RhdGljIE5T
Q3Vyc29yICpyZXNpemVTb3V0aHdlc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXpl
V2VzdE5TQ3Vyc29yOworCitzdGF0aWMgTlNDdXJzb3IgKmNlbGxOU0N1cnNvcjsKK3N0YXRpYyBO
U0N1cnNvciAqaGVscE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICp6b29tSW5OU0N1cnNvcjsK
K3N0YXRpYyBOU0N1cnNvciAqem9vbU91dE5TQ3Vyc29yOworCitzdGF0aWMgTlNJbnRlZ2VyIFdL
Q29yZUN1cnNvcl9jb3JlQ3Vyc29yVHlwZShpZCBzZWxmLCBTRUwpCit7CisgICAgaWYgKHNlbGYg
PT0gYnVzeUJ1dENsaWNrYWJsZU5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JC
dXN5QnV0Q2xpY2thYmxlOworICAgIGlmIChzZWxmID09IG1ha2VBbGlhc05TQ3Vyc29yKQorICAg
ICAgICByZXR1cm4ga0NvcmVDdXJzb3JNYWtlQWxpYXM7CisgICAgaWYgKHNlbGYgPT0gbW92ZU5T
Q3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dNb3ZlOworICAgIGlmIChz
ZWxmID09IHJlc2l6ZUVhc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2lu
ZG93UmVzaXplRWFzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVFYXN0V2VzdE5TQ3Vyc29yKQor
ICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVFYXN0V2VzdDsKKyAgICBpZiAo
c2VsZiA9PSByZXNpemVOb3J0aE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JX
aW5kb3dSZXNpemVOb3J0aDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVOb3J0aFNvdXRoTlNDdXJz
b3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoU291dGg7Cisg
ICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGhlYXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBr
Q29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoRWFzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVO
b3J0aGVhc3RTb3V0aHdlc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2lu
ZG93UmVzaXplTm9ydGhFYXN0U291dGhXZXN0OworICAgIGlmIChzZWxmID09IHJlc2l6ZU5vcnRo
d2VzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0
aFdlc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGh3ZXN0U291dGhlYXN0TlNDdXJzb3Ip
CisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoV2VzdFNvdXRoRWFz
dDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVTb3V0aE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4g
a0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVTb3V0
aGVhc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291
dGhFYXN0OworICAgIGlmIChzZWxmID09IHJlc2l6ZVNvdXRod2VzdE5TQ3Vyc29yKQorICAgICAg
ICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aFdlc3Q7CisgICAgaWYgKHNlbGYg
PT0gcmVzaXplV2VzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dS
ZXNpemVXZXN0OworICAgIGlmIChzZWxmID09IGNlbGxOU0N1cnNvcikKKyAgICAgICAgcmV0dXJu
IGtDb3JlQ3Vyc29yQ2VsbDsKKyAgICBpZiAoc2VsZiA9PSBoZWxwTlNDdXJzb3IpCisgICAgICAg
IHJldHVybiBrQ29yZUN1cnNvckhlbHA7CisgICAgaWYgKHNlbGYgPT0gem9vbUluTlNDdXJzb3Ip
CisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvclpvb21JbjsKKyAgICBpZiAoc2VsZiA9PSB6b29t
T3V0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvclpvb21PdXQ7CisgICAgCisg
ICAgcmV0dXJuIE5TTm90Rm91bmQ7Cit9CisKK3N0YXRpYyBDbGFzcyBjcmVhdGVDb3JlQ3Vyc29y
Q2xhc3Modm9pZCkKK3sKKyAgICBDbGFzcyBjb3JlQ3Vyc29yQ2xhc3MgPSBvYmpjX2FsbG9jYXRl
Q2xhc3NQYWlyKFtOU0N1cnNvciBjbGFzc10sICJXS0NvcmVDdXJzb3IiLCAwKTsKKyAgICBTRUwg
Y29yZUN1cnNvclR5cGUgPSBOU1NlbGVjdG9yRnJvbVN0cmluZyhAIl9jb3JlQ3Vyc29yVHlwZSIp
OworICAgIGNsYXNzX2FkZE1ldGhvZChjb3JlQ3Vyc29yQ2xhc3MsIGNvcmVDdXJzb3JUeXBlLCAo
SU1QKVdLQ29yZUN1cnNvcl9jb3JlQ3Vyc29yVHlwZSwgbWV0aG9kX2dldFR5cGVFbmNvZGluZyhj
bGFzc19nZXRJbnN0YW5jZU1ldGhvZChbTlNDdXJzb3IgY2xhc3NdLCBjb3JlQ3Vyc29yVHlwZSkp
KTsKKyAgICBvYmpjX3JlZ2lzdGVyQ2xhc3NQYWlyKGNvcmVDdXJzb3JDbGFzcyk7CisgICAgcmV0
dXJuIGNvcmVDdXJzb3JDbGFzczsKK30KKworc3RhdGljIENsYXNzIGNvcmVDdXJzb3JDbGFzcyh2
b2lkKQoreworICAgIENsYXNzIGNvcmVDdXJzb3JDbGFzcyA9IG9iamNfbG9va1VwQ2xhc3MoIldL
Q29yZUN1cnNvciIpOworICAgIGlmICghY29yZUN1cnNvckNsYXNzKQorICAgICAgICBjb3JlQ3Vy
c29yQ2xhc3MgPSBjcmVhdGVDb3JlQ3Vyc29yQ2xhc3MoKTsKKyAgICByZXR1cm4gY29yZUN1cnNv
ckNsYXNzOworfQorCitzdGF0aWMgTlNDdXJzb3IgKmN1cnNvcihjb25zdCBjaGFyICpuYW1lKQor
eworICAgIE5TQ3Vyc29yICoqc2xvdCA9IDA7CisgICAgCisgICAgaWYgKCFzdHJjbXAobmFtZSwg
IkJ1c3lCdXRDbGlja2FibGUiKSkKKyAgICAgICAgc2xvdCA9ICZidXN5QnV0Q2xpY2thYmxlTlND
dXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiTWFrZUFsaWFzIikpCisgICAgICAg
IHNsb3QgPSAmbWFrZUFsaWFzTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAi
TW92ZSIpKQorICAgICAgICBzbG90ID0gJm1vdmVOU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3Ry
Y21wKG5hbWUsICJSZXNpemVFYXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplRWFzdE5TQ3Vy
c29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZUVhc3RXZXN0IikpCisgICAg
ICAgIHNsb3QgPSAmcmVzaXplRWFzdFdlc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21w
KG5hbWUsICJSZXNpemVOb3J0aCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZU5vcnRoTlNDdXJz
b3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGhTb3V0aCIpKQorICAg
ICAgICBzbG90ID0gJnJlc2l6ZU5vcnRoU291dGhOU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3Ry
Y21wKG5hbWUsICJSZXNpemVOb3J0aGVhc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0
aGVhc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVOb3J0aGVh
c3RTb3V0aHdlc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aGVhc3RTb3V0aHdlc3RO
U0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVOb3J0aHdlc3QiKSkK
KyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aHdlc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICgh
c3RyY21wKG5hbWUsICJSZXNpemVOb3J0aHdlc3RTb3V0aGVhc3QiKSkKKyAgICAgICAgc2xvdCA9
ICZyZXNpemVOb3J0aHdlc3RTb3V0aGVhc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21w
KG5hbWUsICJSZXNpemVTb3V0aCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZVNvdXRoTlNDdXJz
b3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplU291dGhlYXN0IikpCisgICAg
ICAgIHNsb3QgPSAmcmVzaXplU291dGhlYXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNt
cChuYW1lLCAiUmVzaXplU291dGh3ZXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplU291dGh3
ZXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplV2VzdCIpKQor
ICAgICAgICBzbG90ID0gJnJlc2l6ZVdlc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21w
KG5hbWUsICJDZWxsIikpCisgICAgICAgIHNsb3QgPSAmY2VsbE5TQ3Vyc29yOworICAgIGVsc2Ug
aWYgKCFzdHJjbXAobmFtZSwgIkhlbHAiKSkKKyAgICAgICAgc2xvdCA9ICZoZWxwTlNDdXJzb3I7
CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiWm9vbUluIikpCisgICAgICAgIHNsb3QgPSAm
em9vbUluTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiWm9vbU91dCIpKQor
ICAgICAgICBzbG90ID0gJnpvb21PdXROU0N1cnNvcjsKKyAgICAKKyAgICBpZiAoIXNsb3QpCisg
ICAgICAgIHJldHVybiBuaWw7CisgICAgCisgICAgaWYgKCEqc2xvdCkKKyAgICAgICAgKnNsb3Qg
PSBbW2NvcmVDdXJzb3JDbGFzcygpIGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4gKnNsb3Q7Cit9
CiAKIC8vIFNpbXBsZSBOU0N1cnNvciBjYWxscyBzaG91bGRuJ3QgbmVlZCBwcm90ZWN0aW9uLAog
Ly8gYnV0IGNyZWF0aW5nIGEgY3Vyc29yIHdpdGggYSBiYWQgaW1hZ2UgbWlnaHQgdGhyb3cuCkBA
IC0xMDMsNzIgKzIzOCw3MiBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBj
b25zdAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpXYWl0OgotICAgICAgICBt
X3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKKyAgICAgICAg
bV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiQnVzeUJ1dENsaWNrYWJsZSIpOwogICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpIZWxwOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29y
ID0gd2tDdXJzb3IoIkhlbHAiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigi
SGVscCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpNb3ZlOgogICAgIGNh
c2UgQ3Vyc29yOjpNaWRkbGVQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tD
dXJzb3IoIk1vdmUiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiTW92ZSIp
OwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpFYXN0UmVzaXplOgogICAgIGNh
c2UgQ3Vyc29yOjpFYXN0UGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vy
c29yKCJSZXNpemVFYXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJl
c2l6ZUVhc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhSZXNp
emU6CiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoUGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1
cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29y
ID0gY3Vyc29yKCJSZXNpemVOb3J0aCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vy
c29yOjpOb3J0aEVhc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoRWFzdFBhbm5pbmc6
Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGhlYXN0Iik7
CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRoZWFzdCIpOwog
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFdlc3RSZXNpemU6CiAgICAg
Y2FzZSBDdXJzb3I6Ok5vcnRoV2VzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3Ig
PSB3a0N1cnNvcigiUmVzaXplTm9ydGh3ZXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3Ig
PSBjdXJzb3IoIlJlc2l6ZU5vcnRod2VzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
Q3Vyc29yOjpTb3V0aFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6U291dGhQYW5uaW5nOgotICAg
ICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZVNvdXRoIik7CisgICAgICAg
IG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZVNvdXRoIik7CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoRWFzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6
U291dGhFYXN0UGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJS
ZXNpemVTb3V0aGVhc3QiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVz
aXplU291dGhlYXN0Iik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OlNvdXRo
V2VzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6U291dGhXZXN0UGFubmluZzoKLSAgICAgICAg
bV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVTb3V0aHdlc3QiKTsKKyAgICAgICAg
bV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplU291dGh3ZXN0Iik7CiAgICAgICAgIGJy
ZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6Oldlc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6Oldl
c3RQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZVdl
c3QiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplV2VzdCIpOwog
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFNvdXRoUmVzaXplOgotICAg
ICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRoU291dGgiKTsKKyAg
ICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplTm9ydGhTb3V0aCIpOwogICAg
ICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpFYXN0V2VzdFJlc2l6ZToKLSAgICAgICAg
bV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVFYXN0V2VzdCIpOworICAgICAgICBt
X3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVFYXN0V2VzdCIpOwogICAgICAgICBicmVh
azsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aEVhc3RTb3V0aFdlc3RSZXNpemU6Ci0gICAgICAg
IG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGhlYXN0U291dGh3ZXN0Iik7
CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRoZWFzdFNvdXRo
d2VzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFdlc3RTb3V0
aEVhc3RSZXNpemU6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXpl
Tm9ydGh3ZXN0U291dGhlYXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3Io
IlJlc2l6ZU5vcnRod2VzdFNvdXRoZWFzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
Q3Vyc29yOjpDb2x1bW5SZXNpemU6CkBAIC0xODQsNyArMzE5LDcgQEAgdm9pZCBDdXJzb3I6OmVu
c3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1
cnNvcjo6Q2VsbDoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJDZWxsIik7
CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIkNlbGwiKTsKICAgICAgICAgYnJl
YWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Q29udGV4dE1lbnU6CkBAIC0xOTIsMTEgKzMyNywxMSBA
QCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBicmVh
azsKIAogICAgIGNhc2UgQ3Vyc29yOjpBbGlhczoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9
IHdrQ3Vyc29yKCJNYWtlQWxpYXMiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNv
cigiTWFrZUFsaWFzIik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OlByb2dy
ZXNzOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIkJ1c3lCdXRDbGlja2Fi
bGUiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiQnVzeUJ1dENsaWNrYWJs
ZSIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb0Ryb3A6CkBAIC0yMTYs
MTEgKzM1MSwxMSBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAog
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpab29tSW46Ci0gICAgICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiWm9vbUluIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSBjdXJzb3IoIlpvb21JbiIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29y
Ojpab29tT3V0OgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlpvb21PdXQi
KTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiWm9vbU91dCIpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpHcmFiOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKaW5kZXggYWNlMjk4YzEy
ZjgyMGVkNTBkNjljZmVmNjUxNjMwZDA4NGMwNTJmZS4uNTVmY2ExMjgxNjJmNjM4MjAxNTZmYTIx
MWIyN2I3YWQyY2YxOTUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCkBAIC0xMjMsNyArMTIzLDYgQEAgdHlwZWRlZiBl
bnVtIHsKICAgICB3a1BhdHRlcm5UaWxpbmdDb25zdGFudFNwYWNpbmcKIH0gd2tQYXR0ZXJuVGls
aW5nOwogI2lmICFQTEFURk9STShJT1MpCi1leHRlcm4gdm9pZCAoKndrRHJhd0JlemVsZWRUZXh0
QXJlYSkoTlNSZWN0LCBCT09MIGVuYWJsZWQpOwogZXh0ZXJuIHZvaWQgKCp3a0RyYXdNZWRpYVNs
aWRlclRyYWNrKShDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IHJlY3QsIGZsb2F0IHRpbWVM
b2FkZWQsIGZsb2F0IGN1cnJlbnRUaW1lLAogICAgIGZsb2F0IGR1cmF0aW9uLCB1bnNpZ25lZCBz
dGF0ZSk7CiBleHRlcm4gdm9pZCAoKndrRHJhd01lZGlhVUlQYXJ0KShpbnQgcGFydCwgQ0dDb250
ZXh0UmVmIGNvbnRleHQsIENHUmVjdCByZWN0LCB1bnNpZ25lZCBzdGF0ZSk7CkBAIC0xMzYsMjQg
KzEzNSwxMCBAQCBleHRlcm4gdm9pZCAoKndrU2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2lu
Z0VuYWJsZWQpKEJPT0wpOwogZXh0ZXJuIHZvaWQqIHdrR2V0SHlwaGVuYXRpb25Mb2NhdGlvbkJl
Zm9yZUluZGV4OwogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQotZXh0ZXJuIGJvb2wgKCp3
a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpKHZvaWQpOwotCi1leHRl
cm4gQ0ZTdHJpbmdSZWYgKCp3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSko
dm9pZCk7Ci0KLWV4dGVybiBOU0N1cnNvciAqKCp3a0N1cnNvcikoY29uc3QgY2hhciopOwotI2Vu
ZGlmIC8vICFQTEFURk9STShJT1MpCi0KICNpZiBQTEFURk9STShJT1MpCiBleHRlcm4gdm9pZCAo
KndrU2V0TGF5ZXJDb250ZW50c1NjYWxlKShDQUxheWVyICopOwogI2VuZGlmCiAKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IF9fQ0ZVUkxTdG9yYWdlU2Vzc2lvbiogQ0ZVUkxTdG9yYWdlU2Vzc2lvblJl
ZjsKIAotI2lmICFQTEFURk9STShJT1MpCi1leHRlcm4gQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVs
dGFGb3JUaW1lRGVsdGEpKENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGluaXRpYWxW
ZWxvY2l0eSwgQ0dGbG9hdCBlbGFwc2VkVGltZSk7Ci1leHRlcm4gQ0dGbG9hdCAoKndrTlNFbGFz
dGljRGVsdGFGb3JSZWJvdW5kRGVsdGEpKENHRmxvYXQgZGVsdGEpOwotZXh0ZXJuIENHRmxvYXQg
KCp3a05TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLSNlbmRp
ZgotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5
c3RlbUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLm1tCmluZGV4IDM1MDczMTliNWRkOGE3ZTcwNmZlNjMxM2QwNDFmMzg0OTA4
MDA4YTMuLjhmYmIxZDNkOGM4ODY4YzI0NTRmMzA5YzY5ZTA2NDAwZjNkZmY5NmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNl
Lm1tCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5o
PgogCi12b2lkICgqd2tEcmF3QmV6ZWxlZFRleHRBcmVhKShOU1JlY3QsIEJPT0wgZW5hYmxlZCk7
CiB2b2lkICgqd2tEcmF3TWVkaWFTbGlkZXJUcmFjaykoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENH
UmVjdCByZWN0LCBmbG9hdCB0aW1lTG9hZGVkLCBmbG9hdCBjdXJyZW50VGltZSwKICAgICBmbG9h
dCBkdXJhdGlvbiwgdW5zaWduZWQgc3RhdGUpOwogQk9PTCAoKndrSGl0VGVzdE1lZGlhVUlQYXJ0
KShpbnQgcGFydCwgQ0dSZWN0IGJvdW5kcywgQ0dQb2ludCBwb2ludCk7CkBAIC00MiwxNCArNDEs
NCBAQCB2b2lkICgqd2tQb3B1cE1lbnUpKE5TTWVudSosIE5TUG9pbnQgbG9jYXRpb24sIGZsb2F0
IHdpZHRoLCBOU1ZpZXcqLCBpbnQgc2VsZWN0ZQogCiB2b2lkKiB3a0dldEh5cGhlbmF0aW9uTG9j
YXRpb25CZWZvcmVJbmRleDsKIAotYm9vbCAoKndrRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZv
cmVTbm93TGVvcGFyZCkodm9pZCk7Ci0KIENGU3RyaW5nUmVmICgqd2tDb3B5RGVmYXVsdFNlYXJj
aFByb3ZpZGVyRGlzcGxheU5hbWUpKHZvaWQpOwotCi1OU0N1cnNvciAqKCp3a0N1cnNvcikoY29u
c3QgY2hhciopOwotCi0jaWYgIVBMQVRGT1JNKElPUykKLUNHRmxvYXQgKCp3a05TRWxhc3RpY0Rl
bHRhRm9yVGltZURlbHRhKShDR0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0aWFs
VmVsb2NpdHksIENHRmxvYXQgZWxhcHNlZFRpbWUpOwotQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVs
dGFGb3JSZWJvdW5kRGVsdGEpKENHRmxvYXQgZGVsdGEpOwotQ0dGbG9hdCAoKndrTlNSZWJvdW5k
RGVsdGFGb3JFbGFzdGljRGVsdGEpKENHRmxvYXQgZGVsdGEpOwotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggOTNlOGQ2MTk3MTc2MTc1ZDhj
Y2IzNmUxOWNmZWZiYTljNDg2NTVlZi4uZjAwYzgzOTdiNThhNDFhYTkzMTI4YTIyNmFhZTc1YTZm
YjlhYzU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpA
QCAtNzQsNiArNzQsNyBAQAogI2ltcG9ydCA8bWF0aC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNDb2xvclNQSS5oPgor
I2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNDZWxsU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9O
U1NoYXJpbmdTZXJ2aWNlUGlja2VyU1BJLmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgog
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpAQCAtODg0LDcgKzg4NSw3IEBAIHZvaWQgUmVuZGVy
VGhlbWVNYWM6OmFkanVzdFRleHRGaWVsZFN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHls
ZSYsIGNvbnN0IEVsCiBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFRleHRBcmVhKGNvbnN0IFJl
bmRlck9iamVjdCYgbywgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVj
dCYgcikKIHsKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDb250ZXh0KHBh
aW50SW5mby5jb250ZXh0KCkpOwotICAgIHdrRHJhd0JlemVsZWRUZXh0QXJlYShyLCBpc0VuYWJs
ZWQobykgJiYgIWlzUmVhZE9ubHlDb250cm9sKG8pKTsKKyAgICBfTlNEcmF3Q2FyYm9uVGhlbWVM
aXN0Qm94KHIsIGlzRW5hYmxlZChvKSAmJiAhaXNSZWFkT25seUNvbnRyb2wobyksIFlFUywgWUVT
KTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KaW5kZXggNmY3NTI5NTJlNzZjMzQ4
N2IyYWNhMGQyZGUxMTM1YWFjM2RhZWU4Ny4uMTM4YmU2YjhmZmM3NDM4ODUwMWE1MThlYmFmMDI0
MmY5ZjEyOTI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMv
TmV0d29ya1Byb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9t
YWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KQEAgLTQyLDYgKzQyLDcgQEAKICNpbXBvcnQgPFdlYktp
dFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8bm90aWZ5Lmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L2NmL0NGTmV0d29ya1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNl
c1NQSS5oPgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KICNpbXBvcnQgPHd0Zi9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTksNyArNjAs
NyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcgogdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlh
bGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYgcGFyYW1ldGVycykKIHsKICAgICBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lID0gW05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX1NUUklORygiJUAgTmV0d29ya2luZyIsICJ2aXNp
YmxlIG5hbWUgb2YgdGhlIG5ldHdvcmsgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBs
aWNhdGlvbiBuYW1lLiIpLCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwot
ICAgIFdLU2V0VmlzaWJsZUFwcGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25O
YW1lKTsKKyAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vz
c2lvbklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5
LCAoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lLCBudWxscHRyKTsKIH0KIAogc3RhdGljIHZv
aWQgb3ZlcnJpZGVTeXN0ZW1Qcm94aWVzKGNvbnN0IFN0cmluZyYgaHR0cFByb3h5LCBjb25zdCBT
dHJpbmcmIGh0dHBzUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nl
c3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3Mv
bWFjL1BsdWdpblByb2Nlc3NNYWMubW0KaW5kZXggMjRkMjZlZDFlNjc0M2FlYzU1N2E4Zjc2NDg5
YjY3MzgwNDE3ZmQwNS4uZGIwYzMwNmYwNjJlN2RmOTNlMTM5YWRkZTA0NmI5YThiZjk3ZGY3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNz
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vz
c01hYy5tbQpAQCAtNjIyLDkgKzYyMiw5IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6cGxhdGZvcm1J
bml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhCiB2b2lk
IFBsdWdpblByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgTlNTdHJpbmcgKmFw
cGxpY2F0aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkco
IiVAICglQCBJbnRlcm5ldCBwbHVnLWluKSIsICJ2aXNpYmxlIG5hbWUgb2YgdGhlIHBsdWctaW4g
aG9zdCBwcm9jZXNzLiBUaGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlIHBsdWctaW4gbmFtZSBhbmQg
dGhlIHNlY29uZCBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgW1soTlNTdHJp
bmcgKiltX3BsdWdpblBhdGggbGFzdFBhdGhDb21wb25lbnRdIHN0cmluZ0J5RGVsZXRpbmdQYXRo
RXh0ZW5zaW9uXSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsKLSAgICBX
S1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7
CisgICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25J
RCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9rTFNEaXNwbGF5TmFtZUtleSwgKENG
U3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSwgbnVsbHB0cik7CiAgICAgaWYgKCFtX3BsdWdpbkJ1
bmRsZUlkZW50aWZpZXIuaXNFbXB0eSgpKQotICAgICAgICBXS1NldEFwcGxpY2F0aW9uSW5mb3Jt
YXRpb25JdGVtKGtMU1BsdWdJbkJ1bmRsZUlkZW50aWZpZXJLZXksIG1fcGx1Z2luQnVuZGxlSWRl
bnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyAgICAgICAgX0xTU2V0QXBwbGljYXRp
b25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxp
Y2F0aW9uQVNOKCksIGtMU1BsdWdJbkJ1bmRsZUlkZW50aWZpZXJLZXksIG1fcGx1Z2luQnVuZGxl
SWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBudWxscHRyKTsKIH0KIAogdm9pZCBQ
bHVnaW5Qcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmIHNhbmRib3hQYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL21hYy9TdG9yYWdlUHJvY2Vzc01hYy5tbQppbmRleCBjMDM4ODYwZjhmMTQzYzBk
Y2ZmYzkzYTUyNzY2ZDYzNDU0NzQxZjM5Li5lMzk2ODFhYzc0YWZlZDFkNmY0OWZiYzhlNTMwNWJm
YzVjNDM2YTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21hYy9T
dG9yYWdlUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21h
Yy9TdG9yYWdlUHJvY2Vzc01hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0Zp
bGVTeXN0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9y
dCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xhdW5j
aFNlcnZpY2VzU1BJLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00Nyw3ICs0
OCw3IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxk
UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVyCiB2b2lkIFN0b3JhZ2VQcm9jZXNzOjppbml0
aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWUgPSBbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIlQCBTdG9yYWdlIiwgInZpc2li
bGUgbmFtZSBvZiB0aGUgc3RvcmFnZSBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxp
Y2F0aW9uIG5hbWUuIiksIChOU1N0cmluZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZV07Ci0g
ICAgV0tTZXRWaXNpYmxlQXBwbGljYXRpb25OYW1lKChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5h
bWUpOworICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRTZXNz
aW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBfa0xTRGlzcGxheU5hbWVLZXks
IChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUsIG51bGxwdHIpOwogfQogCiB2b2lkIFN0b3Jh
Z2VQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMmIHNhbmRib3hQYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQppbmRleCA5OTgwZTE1ZTJmOTkyNjZhYjA5YjhhNWEwMWJhN2VkNzg3YTVi
NTA1Li4wMTU1Y2IxOGIxNTE0MzlhMGYxM2IyM2FhZGFhZDYxNzcxYzZlNTkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTk0LDYgKzk0LDcg
QEAKICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TQWNjZXNzaWJpbGl0eVNQSS5oPgogI2ltcG9ydCA8
cGFsL3NwaS9tYWMvTlNBcHBsaWNhdGlvblNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNJ
bW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplclNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9t
YWMvTlNTY3JvbGxlckltcFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTcGVsbENoZWNr
ZXJTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TVGV4dEZpbmRlclNQSS5oPgogI2ltcG9y
dCA8cGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaD4KQEAgLTEyNTksNyArMTI2MCw3IEBAIHN0YXRp
YyBOU1RyYWNraW5nQXJlYU9wdGlvbnMgdHJhY2tpbmdBcmVhT3B0aW9ucygpCiB7CiAgICAgLy8g
TGVnYWN5IHN0eWxlIHNjcm9sbGJhcnMgaGF2ZSBkZXNpZ24gZGV0YWlscyB0aGF0IHJlbHkgb24g
dHJhY2tpbmcgdGhlIG1vdXNlIGFsbCB0aGUgdGltZS4KICAgICBOU1RyYWNraW5nQXJlYU9wdGlv
bnMgb3B0aW9ucyA9IE5TVHJhY2tpbmdNb3VzZU1vdmVkIHwgTlNUcmFja2luZ01vdXNlRW50ZXJl
ZEFuZEV4aXRlZCB8IE5TVHJhY2tpbmdJblZpc2libGVSZWN0IHwgTlNUcmFja2luZ0N1cnNvclVw
ZGF0ZTsKLSAgICBpZiAoV0tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVy
U3R5bGVMZWdhY3kpCisgICAgaWYgKF9OU1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5T
U2Nyb2xsZXJTdHlsZUxlZ2FjeSkKICAgICAgICAgb3B0aW9ucyB8PSBOU1RyYWNraW5nQWN0aXZl
QWx3YXlzOwogICAgIGVsc2UKICAgICAgICAgb3B0aW9ucyB8PSBOU1RyYWNraW5nQWN0aXZlSW5L
ZXlXaW5kb3c7CkBAIC0xOTQ1LDcgKzE5NDYsNyBAQCBib29sIFdlYlZpZXdJbXBsOjptaWdodEJl
Z2luRHJhZ1doaWxlSW5hY3RpdmUoKQogYm9vbCBXZWJWaWV3SW1wbDo6bWlnaHRCZWdpblNjcm9s
bFdoaWxlSW5hY3RpdmUoKQogewogICAgIC8vIExlZ2FjeSBzdHlsZSBzY3JvbGxiYXJzIGhhdmUg
ZGVzaWduIGRldGFpbHMgdGhhdCByZWx5IG9uIHRyYWNraW5nIHRoZSBtb3VzZSBhbGwgdGhlIHRp
bWUuCi0gICAgaWYgKFdLUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0
eWxlTGVnYWN5KQorICAgIGlmIChfTlNSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Nj
cm9sbGVyU3R5bGVMZWdhY3kpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVu
dVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVBy
b3h5TWFjLm1tCmluZGV4IDdkNmNiM2VkYTFkMDg5Yzg3NDVhYjM0YTAxYzNjYjZjZmVmZTNjMjEu
LjEyNDFiZDhkOWUxYjcwMTdmMDlkNGM0YzRmZjllYTMwMTljNzZiZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzQsNiArMzQsNyBAQAogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXZWJQ
b3B1cEl0ZW0uaCIKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8
cGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CkBAIC0xNjUsNyArMTY2LDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVw
TWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICB9CiAKICAg
ICBSZWY8V2ViUG9wdXBNZW51UHJveHlNYWM+IHByb3RlY3QoKnRoaXMpOwotICAgIFdLUG9wdXBN
ZW51KG1lbnUsIGxvY2F0aW9uLCByb3VuZGYoTlNXaWR0aChyZWN0KSksIGR1bW15Vmlldy5nZXQo
KSwgc2VsZWN0ZWRJbmRleCwgZm9udCwgY29udHJvbFNpemUsIGRhdGEuaGlkZUFycm93cyk7Cisg
ICAgUEFMOjpwb3BVcE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dpZHRoKHJlY3QpKSwg
ZHVtbXlWaWV3LmdldCgpLCBzZWxlY3RlZEluZGV4LCBmb250LCBjb250cm9sU2l6ZSwgZGF0YS5o
aWRlQXJyb3dzKTsKIAogICAgIFttX3BvcHVwIGRpc21pc3NQb3BVcF07CiAgICAgW2R1bW15Vmll
dyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5t
bQppbmRleCBhMzEyMGU2MjUzODNiZWIyYWY3MDcwMjcwZjQ3Zjg1ODk5MzBjMjA2Li5kMjkxYTEx
NDNjYzMxZWNkMTNjOGViYjgyMjUzMmNhN2VmMTFjOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNj
YXBlUGx1Z2luTWFjLm1tCkBAIC0zOCw2ICszOCw3IEBACiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9ydCA8cGFsL3NwaS9t
YWMvSElUb29sYm94U1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU01lbnVTUEkuaD4KICNp
bXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nVmll
dy5oPgogCkBAIC0xNTgsNyArMTU5LDYgQEAgTlBCb29sIE5ldHNjYXBlUGx1Z2luOjpjb252ZXJ0
UG9pbnQoZG91YmxlIHNvdXJjZVgsIGRvdWJsZSBzb3VyY2VZLCBOUENvb3JkaW5hdGUKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLQogTlBFcnJvciBOZXRzY2FwZVBsdWdpbjo6cG9wVXBDb250ZXh0
TWVudShOUE1lbnUqIG5wTWVudSkKIHsKICAgICBpZiAoIW1fY3VycmVudE1vdXNlRXZlbnQpCkBA
IC0xNjgsNyArMTY4LDcgQEAgTlBFcnJvciBOZXRzY2FwZVBsdWdpbjo6cG9wVXBDb250ZXh0TWVu
dShOUE1lbnUqIG5wTWVudSkKICAgICBpZiAoIWNvbnZlcnRQb2ludChtX2N1cnJlbnRNb3VzZUV2
ZW50LT5kYXRhLm1vdXNlLnBsdWdpblgsIG1fY3VycmVudE1vdXNlRXZlbnQtPmRhdGEubW91c2Uu
cGx1Z2luWSwgTlBDb29yZGluYXRlU3BhY2VQbHVnaW4sIHNjcmVlblgsIHNjcmVlblksIE5QQ29v
cmRpbmF0ZVNwYWNlU2NyZWVuKSkKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKLSAg
ICBXS1BvcHVwQ29udGV4dE1lbnUocmVpbnRlcnByZXRfY2FzdDxOU01lbnUgKj4obnBNZW51KSwg
TlNNYWtlUG9pbnQoc2NyZWVuWCwgc2NyZWVuWSkpOworICAgIF9OU1BvcFVwQ2FyYm9uTWVudTMo
cmVpbnRlcnByZXRfY2FzdDxOU01lbnUgKj4obnBNZW51KSwgbmlsLCBuaWwsIE5TTWFrZVBvaW50
KHNjcmVlblgsIHNjcmVlblkpLCAtMSwgbmlsLCAwLCBuaWwsIE5TUG9wVXBNZW51VHlwZUNvbnRl
eHQsIG5pbCk7CiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCA5MjdjOGFj
NDNkMjVkNmY3YzdiODc4NTY2NjYwN2JkMjczYjNlYmExLi5hZmNmZmE1MTc0NWIyNWI5ZTc0MDQy
ODMwN2ZhY2VkNTQ4ZGVjYWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA5LCAyMDExLCAyMDEyLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODEsNiArODEsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuaD4KICNpbXBvcnQgPFdlYktp
dFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEku
aD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9ydCA8d3RmL0N1cnJl
bnRUaW1lLmg+CiAjaW1wb3J0IDx3dGYvVVVJRC5oPgogCkBAIC0xNTg1LDcgKzE1ODYsNyBAQCBi
b29sIFBERlBsdWdpbjo6aGFuZGxlQ29udGV4dE1lbnVFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50
JiBldmVudCkKICAgICBJbnRQb2ludCBwb2ludCA9IGZyYW1lVmlldy0+Y29udGVudHNUb1NjcmVl
bihJbnRSZWN0KGZyYW1lVmlldy0+d2luZG93VG9Db250ZW50cyhldmVudC5wb3NpdGlvbigpKSwg
SW50U2l6ZSgpKSkubG9jYXRpb24oKTsKICAgICAKICAgICBpZiAoTlNNZW51ICpuc01lbnUgPSBb
bV9wZGZMYXllckNvbnRyb2xsZXIgbWVudUZvckV2ZW50Om5zRXZlbnRGb3JXZWJNb3VzZUV2ZW50
KGV2ZW50KV0pIHsKLSAgICAgICAgV0tQb3B1cENvbnRleHRNZW51KG5zTWVudSwgcG9pbnQpOwor
ICAgICAgICBfTlNQb3BVcENhcmJvbk1lbnUzKG5zTWVudSwgbmlsLCBuaWwsIHBvaW50LCAtMSwg
bmlsLCAwLCBuaWwsIE5TUG9wVXBNZW51VHlwZUNvbnRleHQsIG5pbCk7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5k
ZXggNmQxZGQ3MzM5MTllZDRmNDg2MzdkNjdjZTYxNWRjNmZkMDQ3MTIyNy4uYjlhYzM5NmJiMDM2
ZDU1ZDcxMmMyMjc0ODJhZmEzZmM5NzczMDkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0KQEAgLTM3LDE3ICszNywxMCBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKHZvaWQpCiAgICAgCiAgICAgZGlzcGF0Y2hfb25jZSgmaW5pdE9uY2UsIF57CiAjaWYgIVBM
QVRGT1JNKElPUykKLSAgICAgICAgSU5JVChEcmF3QmV6ZWxlZFRleHRBcmVhKTsKICAgICAgICAg
SU5JVChEcmF3TWVkaWFTbGlkZXJUcmFjayk7CiAgICAgICAgIElOSVQoRHJhd01lZGlhVUlQYXJ0
KTsKICAgICAgICAgSU5JVChIaXRUZXN0TWVkaWFVSVBhcnQpOwogICAgICAgICBJTklUKE1lYXN1
cmVNZWRpYVVJUGFydCk7Ci0gICAgICAgIElOSVQoRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZv
cmVTbm93TGVvcGFyZCk7Ci0gICAgICAgIElOSVQoQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRp
c3BsYXlOYW1lKTsKLSAgICAgICAgSU5JVChDdXJzb3IpOwotICAgICAgICBJTklUKE5TRWxhc3Rp
Y0RlbHRhRm9yVGltZURlbHRhKTsKLSAgICAgICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclJlYm91
bmREZWx0YSk7Ci0gICAgICAgIElOSVQoTlNSZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOwog
I2VuZGlmCiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA3YzM1ZDhlOTBiNzkxYzk0MjYxOWZkY2Y3NjYwM2M5
YjQzMGVlMDJhLi40M2I3OTY2NmQxNTFlOWRhMjk3YWM2OWYyZDA5YWRmODAyMTFkYmFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0K
QEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFt
ZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcgogICAgICAgICBhcHBs
aWNhdGlvbk5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIl
QCBXZWIgSW5zcGVjdG9yIiwgIlZpc2libGUgbmFtZSBvZiBXZWIgSW5zcGVjdG9yJ3Mgd2ViIHBy
b2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgKE5TU3RyaW5n
ICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsKICAgICBlbHNlCiAgICAgICAgIGFwcGxpY2F0
aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAIFdl
YiBDb250ZW50IiwgIlZpc2libGUgbmFtZSBvZiB0aGUgd2ViIHByb2Nlc3MuIFRoZSBhcmd1bWVu
dCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVBy
b2Nlc3NOYW1lXTsKLSAgICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVm
KWFwcGxpY2F0aW9uTmFtZSk7CisgICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0o
a0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9rTFNE
aXNwbGF5TmFtZUtleSwgKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSwgbnVsbHB0cik7CiAj
ZW5kaWYKIH0KIApAQCAtMzk0LDcgKzM5NCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlQWN0
aXZlUGFnZXMoKQogICAgIH0KIAogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9i
YWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIFthY3RpdmVQYWdl
VVJMc10gewotICAgICAgICBXS1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKENGU1RSKCJM
U0FjdGl2ZVBhZ2VVc2VyVmlzaWJsZU9yaWdpbnNLZXkiKSwgKF9fYnJpZGdlIENGQXJyYXlSZWYp
YWN0aXZlUGFnZVVSTHMuZ2V0KCkpOworICAgICAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0
aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04o
KSwgQ0ZTVFIoIkxTQWN0aXZlUGFnZVVzZXJWaXNpYmxlT3JpZ2luc0tleSIpLCAoX19icmlkZ2Ug
Q0ZBcnJheVJlZilhY3RpdmVQYWdlVVJMcy5nZXQoKSwgbnVsbHB0cik7CiAgICAgfSk7CiAjZW5k
aWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0
ZXMvV2ViRGVmYXVsdENvbnRleHRNZW51RGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tCmlu
ZGV4IDAyNjViZjBjNTFhOWYxODcxNTk2NTU1ZDY5MDdmOTAyMzcwZTc5NTcuLjNhY2NmMjJkZThh
OGEzN2Y2NjI2NzBlNjZmZDBhNjAyMjU0NTJhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdENvbnRleHRNZW51RGVsZWdhdGUu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZh
dWx0Q29udGV4dE1lbnVEZWxlZ2F0ZS5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEsNiArNTEsNyBAQAogI2ltcG9ydCA8V2ViS2l0
TGVnYWN5L0RPTS5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTVByaXZhdGUuaD4KICNpbXBv
cnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8cGFsL3N5c3RlbS9jZi9EZWZh
dWx0U2VhcmNoUHJvdmlkZXIuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIEBpbXBs
ZW1lbnRhdGlvbiBXZWJEZWZhdWx0VUlEZWxlZ2F0ZSAoV2ViQ29udGV4dE1lbnUpCkBAIC05MSw3
ICs5Miw3IEBAIC0gKE5TTWVudUl0ZW0gKiltZW51SXRlbVdpdGhUYWc6KGludCl0YWcgdGFyZ2V0
OihpZCl0YXJnZXQgcmVwcmVzZW50ZWRPYmplY3Q6KGlkCiAgICAgICAgICAgICBhY3Rpb24gPSBA
c2VsZWN0b3IoX3NlYXJjaFdpdGhTcG90bGlnaHRGcm9tTWVudTopOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgV2ViTWVudUl0ZW1UYWdTZWFyY2hXZWI6IHsKLSAgICAgICAgICAg
IFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2VhcmNoUHJvdmlkZXJOYW1lID0gYWRvcHRDRihXS0Nv
cHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgICAgIGF1dG8g
c2VhcmNoUHJvdmlkZXJOYW1lID0gUEFMOjpkZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFt
ZSgpOwogICAgICAgICAgICAgdGl0bGUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpVSV9T
VFJJTkdfSU5URVJOQUwoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92
aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2Vh
cmNoUHJvdmlkZXJOYW1lLmdldCgpXTsKICAgICAgICAgICAgIGFjdGlvbiA9IEBzZWxlY3Rvcihf
c2VhcmNoV2l0aEdvb2dsZUZyb21NZW51Oik7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SG9zdFByb3h5Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KaW5kZXggMTliMzhhZTJlODM0MzI3ZGQ2NzMzODYxN2I2
MTdlODk3ZDc2OGQ5Yi4uMzg0YTU5MWVmZTE3ODI2MTllYTJkOGRkZWExNTAwZmQ5NWRmMmNkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2Nh
cGVQbHVnaW5Ib3N0UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFj
L0hJU2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBleHRl
cm4gIkMiIHsKQEAgLTExNyw3ICsxMTgsNyBAQCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0
c2NhcGVQbHVnaW5Ib3N0UHJveHkobWFjaF9wb3J0X3QgY2xpZW50UG9ydCwgbWFjaF9wbwogICAg
IAogICAgIENGUnVuTG9vcEFkZFNvdXJjZShDRlJ1bkxvb3BHZXRDdXJyZW50KCksIGRlYXRoUG9y
dFNvdXJjZS5nZXQoKSwga0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKICAgICAKLSAgICBtX2NsaWVu
dFBvcnRTb3VyY2UgPSBhZG9wdENGKFdLQ3JlYXRlTUlHU2VydmVyU291cmNlKChtaWdfc3Vic3lz
dGVtX3QpJldLV2ViS2l0UGx1Z2luQ2xpZW50X3N1YnN5c3RlbSwgbV9jbGllbnRQb3J0KSk7Cisg
ICAgbV9jbGllbnRQb3J0U291cmNlID0gYWRvcHRDRihNU0hDcmVhdGVNSUdTZXJ2ZXJTb3VyY2Uo
bnVsbHB0ciwgMCwgKG1pZ19zdWJzeXN0ZW1fdCkmV0tXZWJLaXRQbHVnaW5DbGllbnRfc3Vic3lz
dGVtLCAwLCBtX2NsaWVudFBvcnQsIG51bGxwdHIpKTsKICAgICBDRlJ1bkxvb3BBZGRTb3VyY2Uo
Q0ZSdW5Mb29wR2V0Q3VycmVudCgpLCBtX2NsaWVudFBvcnRTb3VyY2UuZ2V0KCksIGtDRlJ1bkxv
b3BEZWZhdWx0TW9kZSk7CiAgICAgQ0ZSdW5Mb29wQWRkU291cmNlKENGUnVuTG9vcEdldEN1cnJl
bnQoKSwgbV9jbGllbnRQb3J0U291cmNlLmdldCgpLCAoQ0ZTdHJpbmdSZWYpTlNFdmVudFRyYWNr
aW5nUnVuTG9vcE1vZGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCmluZGV4IGNjNWY4MWRmZDY1NmZjOGU3MzVk
MTg1N2Y1YWU4NTM4ZDA3NGZlMTQuLjgxY2Y0Yzc1ZDIwOWNiY2YxYzQ3MWYxM2NlM2NlNGYwZjFi
MTBjMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1BvcHVwTWVudU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9Qb3B1cE1lbnVNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA4LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BvcHVwTWVudUNsaWVudC5oPgogI2lt
cG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL21hYy9Q
b3B1cE1lbnUuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMjE3LDcgKzIxOCw3IEBAIHZvaWQgUG9wdXBNZW51TWFj
OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogICAgICAg
ICBicmVhazsKICAgICB9CiAKLSAgICBXS1BvcHVwTWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRm
KE5TV2lkdGgocikpLCBkdW1teVZpZXcuZ2V0KCksIGluZGV4LCB0b05TRm9udChmb250KSwgY29u
dHJvbFNpemUsICFtX2NsaWVudC0+bWVudVN0eWxlKCkuaGFzRGVmYXVsdEFwcGVhcmFuY2UoKSk7
CisgICAgUEFMOjpwb3BVcE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dpZHRoKHIpKSwg
ZHVtbXlWaWV3LmdldCgpLCBpbmRleCwgdG9OU0ZvbnQoZm9udCksIGNvbnRyb2xTaXplLCAhbV9j
bGllbnQtPm1lbnVTdHlsZSgpLmhhc0RlZmF1bHRBcHBlYXJhbmNlKCkpOwogCiAgICAgW21fcG9w
dXAgZGlzbWlzc1BvcFVwXTsKICAgICBbZHVtbXlWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lz
dGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViU3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IGJmNzE2Yjc1N2IwYzU5NzM3Zjg4MzEwMmVhNTA1
ODU5MzAwMjM3ZWEuLmE5OTI5OGJmNjgwZGFlYjMwN2I4NGIyMWFjNzA1NDA0NmQ4MzdkYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3Rl
bUludGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTQzLDI0ICs0MywxMSBAQCB2b2lkIEluaXRXZWJD
b3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIHJldHVybjsKIAogI2lmICFQTEFURk9S
TShJT1MpCi0gICAgSU5JVChEcmF3QmV6ZWxlZFRleHRBcmVhKTsKICAgICBJTklUKERyYXdNZWRp
YVVJUGFydCk7CiAgICAgSU5JVChEcmF3TWVkaWFTbGlkZXJUcmFjayk7CiAgICAgSU5JVChIaXRU
ZXN0TWVkaWFVSVBhcnQpOwogICAgIElOSVQoTWVhc3VyZU1lZGlhVUlQYXJ0KTsKICNlbmRpZgog
Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICBJTklUKEV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVm
b3JlU25vd0xlb3BhcmQpOwotICAgIElOSVQoQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3Bs
YXlOYW1lKTsKLSAgICBJTklUKEN1cnNvcik7Ci0jZW5kaWYKLQotI2lmICFQTEFURk9STShJT1Mp
Ci0gICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YSk7Ci0gICAgSU5JVChOU0VsYXN0
aWNEZWx0YUZvclJlYm91bmREZWx0YSk7Ci0gICAgSU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0
aWNEZWx0YSk7Ci0jZW5kaWYKLQogICAgIGRpZEluaXQgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMjc0YTE2ODcwNTc0
NTQ0MTRhYjkyOTc1YTVjMDQ4YzYwZWU1YTU4YS4uYThjYzljMWRkOWM2NTU4N2RiYmI5MjI2YjE5
YTM5YzQ5NGI4ZWJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkhUTUxWaWV3Lm1tCkBAIC0xMzEsNiArMTMxLDcgQEAKICNpbXBvcnQgPGRsZmNuLmg+CiAjaW1w
b3J0IDxsaW1pdHM+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5n
c1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oPgogI2ltcG9y
dCA8cGFsL3NwaS9tYWMvTlNTcGVsbENoZWNrZXJTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFj
L05TVmlld1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaD4KQEAgLTQ2
ODIsNyArNDY4Myw3IEBAIC0gKHZvaWQpc2V0RGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWRh
dGFTb3VyY2UKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFfcHJpdmF0ZS0+aW5zdGFsbGVk
VHJhY2tpbmdBcmVhKSB7CiAgICAgICAgIE5TVHJhY2tpbmdBcmVhT3B0aW9ucyBvcHRpb25zID0g
TlNUcmFja2luZ01vdXNlTW92ZWQgfCBOU1RyYWNraW5nTW91c2VFbnRlcmVkQW5kRXhpdGVkIHwg
TlNUcmFja2luZ0luVmlzaWJsZVJlY3QgfCBOU1RyYWNraW5nQ3Vyc29yVXBkYXRlOwotICAgICAg
ICBpZiAoV0tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdh
Y3kKKyAgICAgICAgaWYgKF9OU1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xs
ZXJTdHlsZUxlZ2FjeQogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICAgICAgICAg
IHx8IFtbc2VsZiBfd2ViVmlld10gX2Rhc2hib2FyZEJlaGF2aW9yOldlYkRhc2hib2FyZEJlaGF2
aW9yQWx3YXlzU2VuZE1vdXNlRXZlbnRzVG9BbGxXaW5kb3dzXQogI2VuZGlmCkBAIC02MzU0LDcg
KzYzNTUsNyBAQCAtICh2b2lkKWF0dGFjaFJvb3RMYXllcjooQ0FMYXllciAqKWxheWVyCiAgICAg
aWYgKFtbc2VsZiBfd2ViVmlld10gX3Bvc3RzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNh
dGlvbnNdKQogICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBv
c3ROb3RpZmljYXRpb25OYW1lOl9XZWJWaWV3RGlkU3RhcnRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Tm90aWZpY2F0aW9uIG9iamVjdDpbc2VsZiBfd2ViVmlld10gdXNlckluZm86bmlsXTsKIAotICAg
IGlmIChXS0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlTGlvbigpKQorICAgIGlmICghX0NG
RXhlY3V0YWJsZUxpbmtlZE9uT3JBZnRlcihDRlN5c3RlbVZlcnNpb25Nb3VudGFpbkxpb24pKQog
ICAgICAgICBbdmlld0xheWVyIHNldEdlb21ldHJ5RmxpcHBlZDpZRVNdOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYWQyOWE4MjI1Mjk4OWM2
NmE2NWY2NTg5NGY0ZTg2MTEzNTE5MWMzMC4uNGU4YjgyMTYxMWI4ODhkNDdlNjI4ZGRlZjlkM2Jl
YjU5ODUxOGYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQpAQCAtMjA5LDYgKzIwOSw3IEBACiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8
b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgorI2lt
cG9ydCA8cGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2Nv
YS9OU1RvdWNoQmFyU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVN
YXBwaW5nc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNSZXNwb25kZXJTUEkuaD4KQEAg
LTI2MDksMTYgKzI2MTAsMTYgQEAgLSAoaWQpX2Zvcm1EZWxlZ2F0ZUZvclNlbGVjdG9yOihTRUwp
c2VsZWN0b3IKICNpZiAhUExBVEZPUk0oSU9TKQogLSAoQk9PTClfbmVlZHNBZG9iZUZyYW1lUmVs
b2FkaW5nUXVpcmsKIHsKLSAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gV0tBcHBWZXJzaW9u
Q2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5BY3JvYmF0IiwgLTEsIDkuMCkKLSAgICAgICAgfHwg
V0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5BY3JvYmF0LlBybyIsIC0xLCA5
LjApCi0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuUmVh
ZGVyIiwgLTEsIDkuMCkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNv
bS5hZG9iZS5kaXN0aWxsZXIiLCAtMSwgOS4wKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVj
a0xlc3NUaGFuKEAiY29tLmFkb2JlLkNvbnRyaWJ1dGUiLCAtMSwgNC4yKQotICAgICAgICB8fCBX
S0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLmRyZWFtd2VhdmVyLTkuMCIsIC0x
LCA5LjEpCi0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20ubWFjcm9t
ZWRpYS5maXJld29ya3MiLCAtMSwgOS4xKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xl
c3NUaGFuKEAiY29tLmFkb2JlLkluQ29weSIsIC0xLCA1LjEpCi0gICAgICAgIHx8IFdLQXBwVmVy
c2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuSW5EZXNpZ24iLCAtMSwgNS4xKQotICAgICAg
ICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLlNvdW5kYm9vdGgiLCAt
MSwgMik7CisgICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVja0xl
c3NUaGFuKENGU1RSKCJjb20uYWRvYmUuQWNyb2JhdCIpLCAtMSwgOS4wKQorICAgICAgICB8fCBf
Q0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLkFjcm9iYXQuUHJvIiks
IC0xLCA5LjApCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJj
b20uYWRvYmUuUmVhZGVyIiksIC0xLCA5LjApCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVj
a0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuZGlzdGlsbGVyIiksIC0xLCA5LjApCisgICAgICAg
IHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuQ29udHJpYnV0
ZSIpLCAtMSwgNC4yKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNU
UigiY29tLmFkb2JlLmRyZWFtd2VhdmVyLTkuMCIpLCAtMSwgOS4xKQorICAgICAgICB8fCBfQ0ZB
cHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLm1hY3JvbWVkaWEuZmlyZXdvcmtzIiks
IC0xLCA5LjEpCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJj
b20uYWRvYmUuSW5Db3B5IiksIC0xLCA1LjEpCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVj
a0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuSW5EZXNpZ24iKSwgLTEsIDUuMSkKKyAgICAgICAg
fHwgX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5Tb3VuZGJvb3Ro
IiksIC0xLCAyKTsKIAogICAgIHJldHVybiBuZWVkc1F1aXJrOwogfQpAQCAtMjYyNiwxMyArMjYy
NywxMyBAQCAtIChCT09MKV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyawogLSAoQk9PTClf
bmVlZHNMaW5rRWxlbWVudFRleHRDU1NRdWlyawogewogICAgIHN0YXRpYyBCT09MIG5lZWRzUXVp
cmsgPSAhV2ViS2l0TGlua2VkT25PckFmdGVyKFdFQktJVF9GSVJTVF9WRVJTSU9OX1dJVEhPVVRf
TElOS19FTEVNRU5UX1RFWFRfQ1NTX1FVSVJLKQotICAgICAgICAmJiBXS0FwcFZlcnNpb25DaGVj
a0xlc3NUaGFuKEAiY29tLmUtZnJvbnRpZXIuc2hhZGUxMCIsIC0xLCAxMC42KTsKKyAgICAgICAg
JiYgX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5lLWZyb250aWVyLnNoYWRl
MTAiKSwgLTEsIDEwLjYpOwogICAgIHJldHVybiBuZWVkc1F1aXJrOwogfQogCiAtIChCT09MKV9u
ZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyawogewotICAgIHN0YXRpYyBCT09MIG5lZWRzUXVp
cmsgPSBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFwcGxlLmlBZFByb2R1Y2VyIiwg
LTEsIDIuMSk7CisgICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVj
a0xlc3NUaGFuKENGU1RSKCJjb20uYXBwbGUuaUFkUHJvZHVjZXIiKSwgLTEsIDIuMSk7CiAgICAg
CiAgICAgcmV0dXJuIG5lZWRzUXVpcms7CiB9CkBAIC0yNjQ1LDcgKzI2NDYsNyBAQCAtIChCT09M
KV9uZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcwogCiAtIChCT09MKV9uZWVk
c0ZyYW1lTG9hZERlbGVnYXRlUmV0YWluUXVpcmsKIHsKLSAgICBzdGF0aWMgQk9PTCBuZWVkc1F1
aXJrID0gV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5lcXVpbnV4LmlTYWxlNSIsIC0x
LCA1LjYpOyAgICAKKyAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gX0NGQXBwVmVyc2lvbkNo
ZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5lcXVpbnV4LmlTYWxlNSIpLCAtMSwgNS42KTsKICAgICBy
ZXR1cm4gbmVlZHNRdWlyazsKIH0KIApAQCAtMjkyNyw3ICsyOTI4LDcgQEAgLSAodm9pZClfcHJl
ZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCiAgICAgc2V0dGlu
Z3Muc2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsoW3NlbGYgX25lZWRzQWRvYmVGcmFt
ZVJlbG9hZGluZ1F1aXJrXSk7CiAgICAgc2V0dGluZ3Muc2V0VHJlYXRzQW55VGV4dENTU0xpbmtB
c1N0eWxlc2hlZXQoW3NlbGYgX25lZWRzTGlua0VsZW1lbnRUZXh0Q1NTUXVpcmtdKTsKICAgICBz
ZXR0aW5ncy5zZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcyhbc2VsZiBf
bmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3NdKTsKLSAgICBzZXR0aW5ncy5z
ZXRFbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZSghV0tBcHBWZXJzaW9uQ2hlY2tMZXNz
VGhhbihAImNvbS5hcHBsZS5pV2ViIiwgLTEsIDIuMSkpOworICAgIHNldHRpbmdzLnNldEVuZm9y
Y2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlKCFfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihD
RlNUUigiY29tLmFwcGxlLmlXZWIiKSwgLTEsIDIuMSkpOwogICAgIHNldHRpbmdzLnNldE5lZWRz
SXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrKFtzZWxmIF9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VR
dWlya10pOwogICAgIHNldHRpbmdzLnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShbcHJlZmVyZW5j
ZXMgdGV4dEFyZWFzQXJlUmVzaXphYmxlXSk7CiAgICAgc2V0dGluZ3Muc2V0RXhwZXJpbWVudGFs
Tm90aWZpY2F0aW9uc0VuYWJsZWQoW3ByZWZlcmVuY2VzIGV4cGVyaW1lbnRhbE5vdGlmaWNhdGlv
bnNFbmFibGVkXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320991</attachid>
            <date>2017-09-15 21:44:43 -0700</date>
            <delta_ts>2017-09-15 21:58:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177029-20170915214442.patch</filename>
            <type>text/plain</type>
            <size>87158</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRhMDI0YTAxYjFiZjQy
OGFjOWFmNzIwZmJiOGY3NjQyNmRlZGM1OC4uODdhYWJmOGFhZjNkZjM0MWM4YTIyMjI0YjAwOWJk
NDEyNDA3MTk2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQgbWlzY2Vs
bGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWc6IFVzZWQgLWZvcmNlX2xvYWQgb2YgbGliUEFMIGluc3RlYWQgb2YgLU9iakMuIFRo
aXMgZm9yY2VzCisgICAgICAgIHRoZSBsaW5rZXIgdG8gaW5jbHVkZSBib3RoIE9iamVjdGl2ZS1D
IGFuZCBDIFBBTCBzeW1ib2xzIGluIFdlYkNvcmUuIFRoaXMgaXMgbmVlZGVkIGZvcgorICAgICAg
ICBQQUw6OnBvcFVwTWVudSwgd2hpY2ggaXMgdXNlZCBieSBXZWJLaXQgYW5kIFdlYktpdExlZ2Fj
eSBidXQgbm90IFdlYkNvcmUuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3Ry
aW5nc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNo
V2ViKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6ZWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKToKKyAgICAgICAgKFdlYkNv
cmU6OmVsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpyZWJv
dW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6
OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6V0tDb3JlQ3Vyc29yX2Nv
cmVDdXJzb3JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvcmVDdXJzb3JDbGFzcyk6
CisgICAgICAgIChXZWJDb3JlOjpjb3JlQ3Vyc29yQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6
Y3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3Ig
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBhaW50VGV4dEFyZWEpOgorCiAyMDE3LTA5LTE1ICBTYWlkIEFib3UtSGFs
bGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgY2FsbGluZyBT
dHJpbmc6OmZvcm1hdCgpIGluIFBsYXRmb3JtQ0FGaWx0ZXJzOjpzZXRGaWx0ZXJzT25MYXllcigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwppbmRleCAyNTIzYjY4MjM1MDRlZWM3Zjc4NzBhMGEyNjBkMjMwNTFh
ZTNiYjkzLi5iODc3NTQyNzc3YzJiYjVlMmE1NjI2Mzg2ZjE4MTZiNjk5NWE2YTBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNy0wOS0xNSAgQW5keSBFc3RlcyAgPGFl
c3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gVXBsb2FkIG1pc2NlbGxhbmVvdXMgV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmg6CisgICAgICAgICogcGFsL3NwaS9j
b2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJLmguCisgICAgICAgICogcGFsL3NwaS9tYWMv
SElTZXJ2aWNlc1NQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TQ2VsbFNQSS5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgor
ICAgICAgICAqIHBhbC9zcGkvbWFjL05TTWVudVNQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFj
L05TU2Nyb2xsVmlld1NQSS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TU2Nyb2xsZXJJ
bXBTUEkuaDoKKyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVz
U1BJLmguCisgICAgICAgIChQQUw6OmRlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKToK
KyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAg
ICAgICAqIHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBhbC9zeXN0
ZW0vbWFjL1BvcHVwTWVudS5tbTogQWRkZWQuCisgICAgICAgIChQQUw6OnBvcFVwTWVudSk6CisK
IDIwMTctMDktMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IHRoZSBtYWNPUyBDTWFrZSBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNDAyZjFlM2M4NjM5
ZGJmZDIyY2Q1OWI4ZDY2YzAxNjg5OTZlMDYxLi42M2I5ZGFhYThhMTMzOTk1ZGI5OTgyNjZlYjVh
ZGEwODE2OGQ3MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQgbWlzY2Vs
bGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9OZXR3
b3JrUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRp
YWxpemVQcm9jZXNzTmFtZSk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJv
Y2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVBy
b2Nlc3NOYW1lKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVByb2Nlc3NN
YWMubW06CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vz
c05hbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAg
ICAgKFdlYktpdDo6dHJhY2tpbmdBcmVhT3B0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjptaWdodEJlZ2luU2Nyb2xsV2hpbGVJbmFjdGl2ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9w
dXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChXZWJLaXQ6
Ok5ldHNjYXBlUGx1Z2luOjpwb3BVcENvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpo
YW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3Rl
bUludGVyZmFjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKToKKwogMjAx
Ny0wOS0xNSAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAgICAgV1RG
OiB1c2UgRm9yd2FyZC5oIHdoZW4gYXBwcm9wcmlhdGUgaW5zdGVhZCBvZiBWZWN0b3IuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDhkOThkNDAwNjY2YmRhMmE5MTE2YzQyNDAyZTEw
NDY0NTYyMjg1MDcuLmNlNDVjYTk0YzcyNmQ4NjYxZTIwYTg2MDUxOTBiMjhkZGY1YmJjYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAxNy0wOS0xNSAg
QW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01hY10gVXBsb2FkIG1p
c2NlbGxhbmVvdXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZWZhdWx0RGVsZWdhdGVzL1dl
YkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJEZWZhdWx0VUlE
ZWxlZ2F0ZSBtZW51SXRlbVdpdGhUYWc6dGFyZ2V0OnJlcHJlc2VudGVkT2JqZWN0Ol0pOgorICAg
ICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5Ib3N0UHJv
eHkpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbToKKyAgICAgICAg
KFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVt
SW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNl
dERhdGFTb3VyY2U6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0dGFjaFJvb3RMYXllcjpd
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX25l
ZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX25lZWRz
TGlua0VsZW1lbnRUZXh0Q1NTUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNJc0xv
YWRpbmdJbkFQSVNlbnNlUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNGcmFtZUxv
YWREZWxlZ2F0ZVJldGFpblF1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2Vz
Q2hhbmdlZDpdKToKKworMjAxNy0wOS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+
CisKICAgICAgICAgW0NvY29hXSBVcHN0cmVhbSBNZWRpYVJlbW90ZSBhbmQgVmlkZW9Ub29sYm94
IFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Njk1MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwppbmRleCA3NjY2N2JhZTc0MDQ3MWQ3NDVhOTUx
MjIwNWViMWNmNDlkN2EzMjM1Li5iMDNkZDRjZThhMjM2YjczZTg4OThlN2Y5ZGJkMzhmNWZhY2M4
MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25m
aWcKQEAgLTc3LDcgKzc3LDcgQEAgTElCV0VCUlRDX0xJQlJBUllfRElSX1VTRV9PVkVSUklERV9G
UkFNRVdPUktTX0RJUl9OTyA9ICQoV0VCQ09SRV9GUkFNRVdPUktTX0RJUikKIExJQldFQlJUQ19M
SUJSQVJZX0RJUl9VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfWUVTID0gJChXS19PVkVSUklE
RV9GUkFNRVdPUktTX0RJUik7CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19S
RUxPQ0FUQUJMRV9GUkFNRVdPUktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9MU19MREZM
QUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk0pOwotT1RIRVJfTERGTEFHU19CQVNFID0gLWxz
cWxpdGUzIC1sb2JqYyAtbEFOR0xFIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgTWV0
YWwgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVfY2xpZW50
IFdlYktpdExlZ2FjeSAtT2JqQzsKK09USEVSX0xERkxBR1NfQkFTRSA9IC1sc3FsaXRlMyAtbG9i
amMgLWxBTkdMRSAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIE1ldGFsIC1hbGxvd2Fi
bGVfY2xpZW50IFdlYkNvcmVUZXN0U3VwcG9ydCAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRMZWdh
Y3kgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlBBTC5hOwogLy8gRklYTUU6
IFJlZHVjZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnQgPHJkYXI6Ly9wcm9ibGVtLzMx
ODIzOTY5PgogT1RIRVJfTERGTEFHU19CQVNFX2lvcyA9ICQoT1RIRVJfTERGTEFHU19CQVNFKSAt
ZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENv
cmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29y
ayBNb2JpbGVDb3JlU2VydmljZXMgLWZyYW1ld29yayBPcGVuR0xFUyAtbE1vYmlsZUdlc3RhbHQg
JChXS19JT1NfQklOQ09NUEFUX0xERkxBR1MpIC1hbGxvd2FibGVfY2xpZW50IFdlYktpdCAtYWxs
b3dhYmxlX2NsaWVudCBpVHVuZXNVIC1hbGxvd2FibGVfY2xpZW50IENhc2FibGFuY2EgLWFsbG93
YWJsZV9jbGllbnQgUmVtb3RlIC1hbGxvd2FibGVfY2xpZW50IFRWQm9va3MgLWFsbG93YWJsZV9j
bGllbnQgRHVtcFJlbmRlclRyZWUgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0VGVzdFJ1bm5lciAt
YWxsb3dhYmxlX2NsaWVudCBUZXN0V2ViS2l0QVBJOwogT1RIRVJfTERGTEFHU19QTEFURk9STVtz
ZGs9aXBob25lb3MqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgLWZyYW1ld29yayBJT1N1
cmZhY2UgLWZyYW1ld29yayBHcmFwaGljc1NlcnZpY2VzICQoTElCV0VCUlRDX0xERkxBR1MpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGNhYjE0Y2Q0YTdmZGIxYjdlZjRlYjg1NWRkYTlhZWFkNWVhOGM0OWIuLmJjY2U5MjYxNTM4
MmFiZmNhYzExYzkyNzUwNjRjY2I4OTUwYjRkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNyw2ICsxMDcsMTIgQEAKIAkJ
QTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8q
IFdlYlBhbmVsLm1tICovOyB9OwogCQlBMTA4MjZGRTFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFw
aGljc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTEwODI2RkQxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCAqLzsgfTsKIAkJQTEx
NzVCNDkxRjZBRkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNDgxRjZBRkY4RTAwQzRC
OUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovOyB9OworCQlBMTE3NUI0QjFGNkIyRDdFMDBD
NEI5RjAgLyogTlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggKi87IH07
CisJCUExMTc1QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRDMUY2QjMzNzMwMEM0QjlG
MCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsKKwkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYwIC8qIFBv
cHVwTWVudS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMTc1QjREMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gKi87IH07CisJCUExMTc1
QjU3MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjU1MUY2QjQ3MDUwMEM0
QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCAqLzsgfTsKKwkJQTExNzVCNTgxRjZCNDcw
NTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI1NjFGNkI0NzA1MDBDNEI5RjAgLyog
RGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJQTExNzVCNUExRjZCNEE4NDAwQzRC
OUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQ
SS5oICovOyB9OwogCQlBMUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1RENFMUY1
NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFGMEREMEVB
MDBCNzE5NTQgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9
OwogCQlBMzBENDEyMjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMUYxRjBERDBFQTAwQjcx
OTU0IC8qIEtpbGxSaW5nLmNwcCAqLzsgfTsKQEAgLTIyOSw2ICsyMzUsMTIgQEAKIAkJQTEwODI2
RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMDgyNkZEMUY1OEE0
MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TR3JhcGhpY3NT
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNzVCNDgxRjZBRkY4RTAwQzRC
OUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hTeW50aGVz
aXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEExRjZCMkQ3RTAw
QzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0NlbGxTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEMxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVw
TWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFBvcHVwTWVudS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92
aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTE3NUI1OTFGNkI0QTg0MDBDNEI5RjAgLyog
TlNTY3JvbGxWaWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TU2Nyb2xsVmlld1NQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYgLyogTWV0
YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0YWRhdGFTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLaWxsUmluZy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDcsNiArMzE5LDcgQEAKIAkJCQkwQzJEQTEyODFG
M0JFQjQ5MDBEQkMzMTcgLyogSU9SZXR1cm5TUEkuaCAqLywKIAkJCQkwQzJEQTEyOTFGM0JFQjQ5
MDBEQkMzMTcgLyogSU9TdXJmYWNlU1BJLmggKi8sCiAJCQkJMEMyREExMkExRjNCRUI0OTAwREJD
MzE3IC8qIElPVHlwZXNTUEkuaCAqLywKKwkJCQkwQzVBRjkxMjFGNDNBNEM3MDAyRUFDMDIgLyog
TGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzJEQTEyQjFGM0JFQjQ5MDBEQkMzMTcgLyog
TGlua1ByZXNlbnRhdGlvblNQSS5oICovLAogCQkJCTBDMkRBMTJDMUYzQkVCNDkwMERCQzMxNyAv
KiBNYWNoVk1TUEkuaCAqLywKIAkJCQkwQzJEQTEyRDFGM0JFQjQ5MDBEQkMzMTcgLyogTkVGaWx0
ZXJTb3VyY2VTUEkuaCAqLywKQEAgLTMzNiw3ICszNDksNiBAQAogCQkJCTBDNUFGOTBGMUY0M0E0
QzcwMDJFQUMwMiAvKiBDb3JlVUlTUEkuaCAqLywKIAkJCQkwQzVBRjkxMDFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggKi8sCiAJCQkJMEM1QUY5MTExRjQzQTRDNzAwMkVB
QzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCAqLywKLQkJCQkwQzVBRjkxMjFGNDNBNEM3MDAy
RUFDMDIgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzVBRjkxMzFGNDNBNEM3MDAy
RUFDMDIgLyogTWVkaWFQbGF5ZXJTUEkuaCAqLywKIAkJCQkwQzVBRjkxNDFGNDNBNEM3MDAyRUFD
MDIgLyogTW9iaWxlR2VzdGFsdFNQSS5oICovLAogCQkJCTBDNUFGOTE1MUY0M0E0QzcwMDJFQUMw
MiAvKiBPcGVuR0xFU1NQSS5oICovLApAQCAtMzU5LDYgKzM3MSw3IEBACiAJCQkJQTFGNTVEQ0Ux
RjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzQxRjQ1MTMw
RjAwRjRFQkI2IC8qIE5TQWNjZXNzaWJpbGl0eVNQSS5oICovLAogCQkJCTBDNzc4NTc1MUY0NTEz
MEYwMEY0RUJCNiAvKiBOU0FwcGxpY2F0aW9uU1BJLmggKi8sCisJCQkJQTExNzVCNEExRjZCMkQ3
RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovLAogCQkJCTBDNzc4NTc2MUY0NTEzMEYwMEY0RUJC
NiAvKiBOU0V2ZW50U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzcxRjQ1MTMwRjAwRjRFQkI2IC8qIE5T
Rm9udFNQSS5oICovLAogCQkJCUExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNz
U1BJLmggKi8sCkBAIC0zNzAsNiArMzgzLDcgQEAKIAkJCQkwQzc3ODU3QzFGNDUxMzBGMDBGNEVC
QjYgLyogTlNTY3JvbGxlckltcFNQSS5oICovLAogCQkJCTBDNzc4NTdEMUY0NTEzMEYwMEY0RUJC
NiAvKiBOU1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggKi8sCiAJCQkJMEM3Nzg1N0UxRjQ1MTMw
RjAwRjRFQkI2IC8qIE5TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yU1BJLmggKi8sCisJCQkJ
QTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oICovLAogCQkJCTBD
Nzc4NTdGMUY0NTEzMEYwMEY0RUJCNiAvKiBOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggKi8s
CiAJCQkJMEM3Nzg1ODAxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2hhcmluZ1NlcnZpY2VTUEkuaCAq
LywKIAkJCQkwQzc3ODU4MTFGNDUxMzBGMDBGNEVCQjYgLyogTlNTcGVsbENoZWNrZXJTUEkuaCAq
LywKQEAgLTQ1MCw2ICs0NjQsMTUgQEAKIAkJCXBhdGggPSBDb25maWd1cmF0aW9uczsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUExMTc1QjU0MUY2QjQ2RDYwMEM0QjlGMCAv
KiBjZiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQTEx
NzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgKi8sCisJ
CQkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICov
LAorCQkJKTsKKwkJCXBhdGggPSBjZjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCUEzMEQ0MTFEMUYwREQwQUMwMEI3MTk1NCAvKiB0ZXh0ICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTQ3MSw2ICs0OTQsNyBAQAogCQlBMzc4OEU5RjFG
MDVCN0NFMDA2Nzk0MjUgLyogc3lzdGVtICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQlBMTE3NUI1NDFGNkI0NkQ2MDBDNEI5RjAgLyogY2YgKi8sCiAJCQkJ
QTNBQjZFNUQxRjNEMUUyODAwOUMxNEIxIC8qIGNvY29hICovLAogCQkJCUEzNzg4RUEwMUYwNUI3
RTIwMDY3OTQyNSAvKiBtYWMgKi8sCiAJCQkJQTNBQjZFNTExRjNEMURDNTAwOUMxNEIxIC8qIFNs
ZWVwRGlzYWJsZXIuY3BwICovLApAQCAtNDg2LDYgKzUxMCw4IEBACiAJCUEzNzg4RUEwMUYwNUI3
RTIwMDY3OTQyNSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCUExMTc1QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLywKKwkJ
CQlBMTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tICovLAogCQkJCUEzNzg4
RTlEMUYwNUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1hYy5tbSAqLywKIAkJCQlBM0FCNkU2MjFGM0Qy
MTdGMDA5QzE0QjEgLyogU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oICovLAogCQkJCUEzQUI2RTYz
MUYzRDIxN0YwMDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tICovLApAQCAtNTI4
LDYgKzU1NCw3IEBACiAJCQkJMEMyREExNDExRjNCRUI0OTAwREJDMzE3IC8qIERhdGFEZXRlY3Rv
cnNDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVCQjYg
LyogRGF0YURldGVjdG9yc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUExRjQzQTRD
NzAwMkVBQzAyIC8qIERhdGFEZXRlY3RvcnNVSVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEx
NzVCNTcxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyRDlFNzMxRUVGNUFGNjAwREJDMzE3IC8qIEV4cG9ydE1hY3Jvcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTEwMjY1ODcxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5kYXRpb25T
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFCMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFw
aGljc1NlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTU1Niw2ICs1ODMsNyBAQAogCQkJ
CTBDMkRBMTRBMUYzQkVCNDkwMERCQzMxNyAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDMkRBMTRCMUYzQkVCNDkwMERCQzMxNyAvKiBOU0J1dHRvbkNlbGxT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTRDMUYzQkVCNDkwMERCQzMxNyAvKiBOU0Nh
bGVuZGFyRGF0ZVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTExNzVCNEIxRjZCMkQ3RTAwQzRC
OUYwIC8qIE5TQ2VsbFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNEQxRjNCRUI0OTAw
REJDMzE3IC8qIE5TQ29sb3JTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThGMUY0NTEz
MEYwMEY0RUJCNiAvKiBOU0V2ZW50U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0RTFG
M0JFQjQ5MDBEQkMzMTcgLyogTlNFeHRlbnNpb25TUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTcw
LDYgKzU5OCw3IEBACiAJCQkJMEM3Nzg1OTUxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsZXJJ
bXBTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk2MUY0NTEzMEYwMEY0RUJCNiAvKiBO
U1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5NzFG
NDUxMzBGMDBGNEVCQjYgLyogTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JTUEkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUExMTc1QjVBMUY2QjRBODQwMEM0QjlGMCAvKiBOU1Njcm9sbFZpZXdT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk4MUY0NTEzMEYwMEY0RUJCNiAvKiBOU1No
YXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5OTFGNDUx
MzBGMDBGNEVCQjYgLyogTlNTaGFyaW5nU2VydmljZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEM3Nzg1OUExRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU3BlbGxDaGVja2VyU1BJLmggaW4gSGVhZGVy
cyAqLywKQEAgLTU4NCw2ICs2MTMsNyBAQAogCQkJCTBDNUFGOTFGMUY0M0E0QzcwMDJFQUMwMiAv
KiBPcGVuR0xFU1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNTUxRjNCRUI0OTAwREJD
MzE3IC8qIFBhc3NLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTlFMUY0NTEzMEYw
MEY0RUJCNiAvKiBQSVBTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMTc1QjRFMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU2MUYzQkVC
NDkwMERCQzMxNyAvKiBwdGhyZWFkU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5RjFG
NDUxMzBGMDBGNEVCQjYgLyogUVRLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU3
MUYzQkVCNDkwMERCQzMxNyAvKiBRdWFydHpDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTY5
Miw4ICs3MjIsMTAgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxl
cyA9ICgKIAkJCQkxQzA5RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9u
Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExMTc1QjU4MUY2QjQ3MDUwMEM0QjlGMCAv
KiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTMwRDQxMjIx
RjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0
MTI1MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUExMTc1QjRGMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBM0M2NkNEQzFGNDYyRDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUEzQUI2RTUyMUYzRDFEQzUwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUEzQUI2RTYwMUYzRDFFMzkwMDlDMTRCMSAvKiBTbGVlcERpc2Fi
bGVyQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaAppbmRleCBmYzhjZDc5Mjc2MmJmMGE3NjIwYTEyYWNmMTIw
ZmEzMDlhMzc4ZmZjLi5mNTA2Y2IyNmExZGNhYTBjZDUxOGUyYTllOGNkNWFlZjg3Y2IzY2Y3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NyArMjgsMTYgQEAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgog
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24v
Q0ZQcml2Lmg+CisKKyNlbHNlCisKK3R5cGVkZWYgQ0ZfRU5VTShDRkluZGV4LCBDRlN5c3RlbVZl
cnNpb24pIHsKKyAgICBDRlN5c3RlbVZlcnNpb25MaW9uID0gNywKKyAgICBDRlN5c3RlbVZlcnNp
b25Nb3VudGFpbkxpb24gPSA4LAorfTsKKwogI2VuZGlmCiAKIFdURl9FWFRFUk5fQ19CRUdJTgpA
QCAtMzcsNSArNDYsMTEgQEAgQ0ZEaWN0aW9uYXJ5UmVmIF9DRkNvcHlTeXN0ZW1WZXJzaW9uRGlj
dGlvbmFyeSh2b2lkKTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGU3lzdGVtVmVyc2lv
blByb2R1Y3RWZXJzaW9uS2V5OwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZTeXN0ZW1W
ZXJzaW9uQnVpbGRWZXJzaW9uS2V5OwogCitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NGV2Vi
U2VydmljZXNUeXBlV2ViU2VhcmNoOworZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDRldlYlNl
cnZpY2VzUHJvdmlkZXJEZWZhdWx0RGlzcGxheU5hbWVLZXk7CitDRkRpY3Rpb25hcnlSZWYgX0NG
V2ViU2VydmljZXNDb3B5UHJvdmlkZXJJbmZvKENGU3RyaW5nUmVmIHNlcnZpY2VUeXBlLCBCb29s
ZWFuKiBvdXRJc1VzZXJTZWxlY3Rpb24pOworCitCb29sZWFuIF9DRkFwcFZlcnNpb25DaGVja0xl
c3NUaGFuKENGU3RyaW5nUmVmIGJ1bmRsZUlELCBpbnQgbGlua2VkT25Bbk9sZGVyU3lzdGVtVGhh
biwgZG91YmxlIHZlcnNpb25OdW1iZXJMZXNzVGhhbik7CisKIFdURl9FWFRFUk5fQ19FTkQKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTGF1bmNoU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2Vz
U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTBhMGVhM2I1YjAzOTVjNWE5MzEyNWQzNWI5MDk3NjVmZDQyMGEy
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0xh
dW5jaFNlcnZpY2VzU1BJLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCisjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbXBvcnQgPExhdW5j
aFNlcnZpY2VzL0xhdW5jaFNlcnZpY2VzUHJpdi5oPgorI2VsaWYgUExBVEZPUk0oSU9TKQorI2lt
cG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL0xhdW5jaFNlcnZpY2VzUHJpdi5oPgorI2VuZGlmCisK
KyNlbmRpZgorCitAY2xhc3MgTFNBcHBMaW5rOwordHlwZWRlZiB2b2lkICheTFNBcHBMaW5rQ29t
cGxldGlvbkhhbmRsZXIpKExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAqZXJyb3IpOwordHlw
ZWRlZiB2b2lkICheTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKShCT09MIHN1Y2Nlc3Ms
IE5TRXJyb3IgKmVycm9yKTsKKworI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCitAaW50
ZXJmYWNlIExTUmVzb3VyY2VQcm94eSA6IE5TT2JqZWN0IDxOU0NvcHlpbmcsIE5TU2VjdXJlQ29k
aW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExTQnVuZGxlUHJveHkgOiBMU1Jlc291cmNlUHJveHkg
PE5TU2VjdXJlQ29kaW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExTQXBwbGljYXRpb25Qcm94eSA6
IExTQnVuZGxlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgorLSAoTlNTdHJpbmcgKilsb2NhbGl6ZWRO
YW1lRm9yQ29udGV4dDooTlNTdHJpbmcgKiljb250ZXh0OworQGVuZAorCitAaW50ZXJmYWNlIExT
QXBwTGluayA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KK0BlbmQKKworQGludGVyZmFjZSBM
U0FwcExpbmsgKCkKKysgKHZvaWQpZ2V0QXBwTGlua1dpdGhVUkw6KE5TVVJMICopYVVSTCBjb21w
bGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpY29tcGxldGlvbkhhbmRs
ZXI7CisrICh2b2lkKW9wZW5XaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxldGlvbkhhbmRsZXI6
KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZv
aWQpb3BlbkluV2ViQnJvd3NlcjooQk9PTClpbldlYkJyb3dzZXIgc2V0QXBwcm9wcmlhdGVPcGVu
U3RyYXRlZ3lBbmRXZWJCcm93c2VyU3RhdGU6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4g
KilzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVy
KWNvbXBsZXRpb25IYW5kbGVyOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBMU0FwcGxp
Y2F0aW9uUHJveHkgKnRhcmdldEFwcGxpY2F0aW9uUHJveHk7CitAZW5kCisKK2VudW0gTFNTZXNz
aW9uSUQgeworICAgIGtMU0RlZmF1bHRTZXNzaW9uSUQgPSAtMiwKK307CisKKyNlbmRpZgorCitX
VEZfRVhURVJOX0NfQkVHSU4KKworT1NTdGF0dXMgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlv
bkl0ZW0oTFNTZXNzaW9uSUQsIExTQVNOUmVmLCBDRlN0cmluZ1JlZiBrZXlUb1NldFJlZiwgQ0ZU
eXBlUmVmIHZhbHVlVG9TZXRSZWYsIENGRGljdGlvbmFyeVJlZiogbmV3SW5mb3JtYXRpb25EaWN0
UmVmKTsKK0xTQVNOUmVmIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpOworCitleHRlcm4g
Y29uc3QgQ0ZTdHJpbmdSZWYgX2tMU0Rpc3BsYXlOYW1lS2V5OworCitXVEZfRVhURVJOX0NfRU5E
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTGF1bmNoU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQ
SS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNmE4YjJlNGZjYmVlMTUxMWU4YzBj
NDNiN2FiZDU3ODUyMjgxODIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQ
SS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KLQotI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCi0KLSNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9MU0FwcExpbmtQ
cml2Lmg+Ci0KLSNlbmRpZgotCi1AY2xhc3MgTFNBcHBMaW5rOwotdHlwZWRlZiB2b2lkICheTFNB
cHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpKExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAqZXJy
b3IpOwotdHlwZWRlZiB2b2lkICheTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKShCT09M
IHN1Y2Nlc3MsIE5TRXJyb3IgKmVycm9yKTsKLQotI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQotCi1AaW50ZXJmYWNlIExTUmVzb3VyY2VQcm94eSA6IE5TT2JqZWN0IDxOU0NvcHlpbmcsIE5T
U2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50ZXJmYWNlIExTQnVuZGxlUHJveHkgOiBMU1Jlc291
cmNlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50ZXJmYWNlIExTQXBwbGljYXRp
b25Qcm94eSA6IExTQnVuZGxlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgotLSAoTlNTdHJpbmcgKils
b2NhbGl6ZWROYW1lRm9yQ29udGV4dDooTlNTdHJpbmcgKiljb250ZXh0OwotQGVuZAotCi1AaW50
ZXJmYWNlIExTQXBwTGluayA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KLUBlbmQKLQotQGlu
dGVyZmFjZSBMU0FwcExpbmsgKCkKLSsgKHZvaWQpZ2V0QXBwTGlua1dpdGhVUkw6KE5TVVJMICop
YVVSTCBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpY29tcGxl
dGlvbkhhbmRsZXI7Ci0rICh2b2lkKW9wZW5XaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxldGlv
bkhhbmRsZXI6KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxl
cjsKLS0gKHZvaWQpb3BlbkluV2ViQnJvd3NlcjooQk9PTClpbldlYkJyb3dzZXIgc2V0QXBwcm9w
cmlhdGVPcGVuU3RyYXRlZ3lBbmRXZWJCcm93c2VyU3RhdGU6KE5TRGljdGlvbmFyeTxOU1N0cmlu
ZyAqLCBpZD4gKilzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBsZXRp
b25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyOwotQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25n
KSBMU0FwcGxpY2F0aW9uUHJveHkgKnRhcmdldEFwcGxpY2F0aW9uUHJveHk7Ci1AZW5kCi0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmgK
aW5kZXggYTM1NWI5NGZlNjMwOTJlZjVhY2QwYjVjOTVlMDNkZDQ2ZTk1MzgxNS4uN2Q2YmE4OTMw
YWUzZTU0OGFmOGE4OTNhYzhiMDBhYmIzODk4N2Q0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oCkBAIC0yOCwxMCArMjgsNTkgQEAKICNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaW5jbHVkZSA8SElTZXJ2aWNlcy9BWFRleHRNYXJr
ZXIuaD4KKyNpbmNsdWRlIDxISVNlcnZpY2VzL0NvcmVDdXJzb3IuaD4KICNpbmNsdWRlIDxISVNl
cnZpY2VzL0NvcmVEcmFnLmg+CiAKICNlbHNlCiAKK3R5cGVkZWYgQ0ZfRU5VTShTSW50MzIsIENv
cmVDdXJzb3JUeXBlKSB7CisgICAga0NvcmVDdXJzb3JGaXJzdEN1cnNvciA9IDAsCisgICAga0Nv
cmVDdXJzb3JBcnJvdyA9IGtDb3JlQ3Vyc29yRmlyc3RDdXJzb3IsCisgICAga0NvcmVDdXJzb3JJ
QmVhbSwKKyAgICBrQ29yZUN1cnNvck1ha2VBbGlhcywKKyAgICBrQ29yZUN1cnNvck5vdEFsbG93
ZWQsCisgICAga0NvcmVDdXJzb3JCdXN5QnV0Q2xpY2thYmxlLAorICAgIGtDb3JlQ3Vyc29yQ29w
eSwKKyAgICBrQ29yZUN1cnNvclNjcmVlblNob3RTZWxlY3Rpb24gPSA3LAorICAgIGtDb3JlQ3Vy
c29yU2NyZWVuU2hvdFNlbGVjdGlvblRvQ2xpcCwKKyAgICBrQ29yZUN1cnNvclNjcmVlblNob3RX
aW5kb3csCisgICAga0NvcmVDdXJzb3JTY3JlZW5TaG90V2luZG93VG9DbGlwLAorICAgIGtDb3Jl
Q3Vyc29yQ2xvc2VkSGFuZCwKKyAgICBrQ29yZUN1cnNvck9wZW5IYW5kLAorICAgIGtDb3JlQ3Vy
c29yUG9pbnRpbmdIYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdVcEhhbmQsCisgICAga0Nv
cmVDdXJzb3JDb3VudGluZ0Rvd25IYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdVcEFuZERv
d25IYW5kLAorICAgIGtDb3JlQ3Vyc29yUmVzaXplTGVmdCwKKyAgICBrQ29yZUN1cnNvclJlc2l6
ZVJpZ2h0LAorICAgIGtDb3JlQ3Vyc29yUmVzaXplTGVmdFJpZ2h0LAorICAgIGtDb3JlQ3Vyc29y
Q3Jvc3MsCisgICAga0NvcmVDdXJzb3JSZXNpemVVcCwKKyAgICBrQ29yZUN1cnNvclJlc2l6ZURv
d24sCisgICAga0NvcmVDdXJzb3JSZXNpemVVcERvd24sCisgICAga0NvcmVDdXJzb3JDb250ZXh0
dWFsTWVudSwKKyAgICBrQ29yZUN1cnNvclBvb2YsCisgICAga0NvcmVDdXJzb3JJQmVhbVZlcnRp
Y2FsLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplRWFzdCwKKyAgICBrQ29yZUN1cnNvcldp
bmRvd1Jlc2l6ZUVhc3RXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhFYXN0
LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhFYXN0U291dGhXZXN0LAorICAgIGtD
b3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGgsCisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVO
b3J0aFNvdXRoLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0LAorICAgIGtD
b3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0U291dGhFYXN0LAorICAgIGtDb3JlQ3Vyc29y
V2luZG93UmVzaXplU291dGhFYXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291dGgs
CisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aFdlc3QsCisgICAga0NvcmVDdXJzb3JX
aW5kb3dSZXNpemVXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93TW92ZSwKKyAgICBrQ29yZUN1
cnNvckhlbHAsCisgICAga0NvcmVDdXJzb3JDZWxsLAorICAgIGtDb3JlQ3Vyc29yWm9vbUluLAor
ICAgIGtDb3JlQ3Vyc29yWm9vbU91dCwKKyAgICBrQ29yZUN1cnNvckxhc3RDdXJzb3IgPSBrQ29y
ZUN1cnNvclpvb21PdXQKK307CisKIGVudW0gewogICAgIGtDb3JlRHJhZ0ltYWdlU3BlY1ZlcnNp
b25PbmUgPSAxLAogfTsKQEAgLTY4LDUgKzExNyw2IEBAIENGVHlwZUlEIEFYVGV4dE1hcmtlclJh
bmdlR2V0VHlwZUlEKCk7CiBDb3JlRHJhZ1JlZiBDb3JlRHJhZ0dldEN1cnJlbnREcmFnKCk7CiBP
U1N0YXR1cyBDb3JlRHJhZ1NldEltYWdlKENvcmVEcmFnUmVmLCBDR1BvaW50IGltYWdlT2Zmc2V0
LCBDb3JlRHJhZ0ltYWdlU3BlYyosIENHU1JlZ2lvbk9iaiBpbWFnZVNoYXBlLCBmbG9hdCBvdmVy
YWxsQWxwaGEpOwogY29uc3QgVUludDgqIEFYVGV4dE1hcmtlckdldEJ5dGVQdHIoQVhUZXh0TWFy
a2VyUmVmKTsKK0NGUnVuTG9vcFNvdXJjZVJlZiBNU0hDcmVhdGVNSUdTZXJ2ZXJTb3VyY2UoQ0ZB
bGxvY2F0b3JSZWYsIENGSW5kZXggb3JkZXIsIG1pZ19zdWJzeXN0ZW1fdCBzdWJfc3lzdGVtLCBN
U0hDcmVhdGVPcHRpb25zLCBtYWNoX3BvcnRfdCwgdm9pZCogdXNlcl9kYXRhKTsKIAogV1RGX0VY
VEVSTl9DX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05T
Q2VsbFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TQ2VsbFNQSS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZhMzNkYTNkM2RmYmJhN2NiMDYzZjYwZWQ0NzkxMDFlODY2OTM4NjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNDZWxsU1BJLmgK
QEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QXBwS2l0L05TQ2VsbF9Qcml2YXRlLmg+CisK
KyNlbmRpZgorCitXVEZfRVhURVJOX0NfQkVHSU4KKwordm9pZCBfTlNEcmF3Q2FyYm9uVGhlbWVM
aXN0Qm94KE5TUmVjdCwgQk9PTCBlbmFibGVkLCBCT09MIGZsaXBwZWQsIEJPT0wgdGV4dHVyZWQp
OworCitXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9tYWMvTlNNZW51U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNN
ZW51U1BJLmgKaW5kZXggMWY1ZTdiYzY2YTAwMzIxOTQ4MjIwNGM0ODE5OTQxZWQzYjRmYTVmZi4u
ZjY4ZmQ5NjU0ZDBjMTdjZWI1ZjdiNGE1MjRlOThmYWNkNWVhZDg1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TTWVudVNQSS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL21hYy9OU01lbnVTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw3ICsyOSw5IEBACiAKICNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQogCitXVEZfRVhURVJOX0NfQkVHSU4KICNpbXBvcnQgPEFwcEtp
dC9OU01lbnVfUHJpdmF0ZS5oPgorV1RGX0VYVEVSTl9DX0VORAogCiAjZWxzZQogCkBAIC0zOCw2
ICs0MCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBOU01lbnVUeXBlKSB7CiAgICAg
TlNNZW51VHlwZUNvbnRleHRNZW51LAogfTsKIAorZW51bSB7CisgICAgTlNQb3BVcE1lbnVJc1Bv
cHVwQnV0dG9uID0gMHg0MAorfTsKKwogQGludGVyZmFjZSBOU01lbnUgKCkKICsgKE5TTWVudVR5
cGUpbWVudVR5cGVGb3JFdmVudDooTlNFdmVudCAqKWV2ZW50OwogQGVuZApAQCAtNTYsNCArNjIs
MTUgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTlNNZW51VHlwZSkgewogCiAjZW5kaWYK
IAotI2VuZGlmCitXVEZfRVhURVJOX0NfQkVHSU4KKworZXh0ZXJuIE5TU3RyaW5nICogY29uc3Qg
TlNQb3BVcE1lbnVQb3B1cEJ1dHRvbkJvdW5kczsKK2V4dGVybiBOU1N0cmluZyAqIGNvbnN0IE5T
UG9wVXBNZW51UG9wdXBCdXR0b25MYWJlbE9mZnNldDsKK2V4dGVybiBOU1N0cmluZyAqIGNvbnN0
IE5TUG9wVXBNZW51UG9wdXBCdXR0b25TaXplOworZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgTlNQ
b3BVcE1lbnVQb3B1cEJ1dHRvbldpZGdldDsKKwordm9pZCBfTlNQb3BVcENhcmJvbk1lbnUzKE5T
TWVudSAqLCBOU1dpbmRvdyAqLCBOU1ZpZXcgKm93bmVyVmlldywgTlNQb2ludCBzY3JlZW5Qb2lu
dCwgTlNJbnRlZ2VyIGNoZWNrZWRJdGVtLCBOU0ZvbnQgKiwgQ0dGbG9hdCBtaW5XaWR0aCwgTlNT
dHJpbmcgKnJ1bkxvb3BNb2RlLCBOU1BvcFVwTWVudUZsYWdzLCBOU0RpY3Rpb25hcnkgKm9wdGlv
bnMpOworCitXVEZfRVhURVJOX0NfRU5ECisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNTY3JvbGxWaWV3U1BJLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNTY3JvbGxWaWV3U1BJLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2IwZWY3YWY1OGUzMmU0OGJmMTdlMDYyMmJlODdiNWZkMGM0ZWRmOAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEku
aApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxBcHBLaXQvTlNTY3JvbGxWaWV3X1ByaXZh
dGUuaD4KKworI2VuZGlmCisKK1dURl9FWFRFUk5fQ19CRUdJTgorCitDR0Zsb2F0IF9OU0VsYXN0
aWNEZWx0YUZvclRpbWVEZWx0YShDR0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0
aWFsVmVsb2NpdHksIENHRmxvYXQgZWxhcHNlZFRpbWUpOworQ0dGbG9hdCBfTlNFbGFzdGljRGVs
dGFGb3JSZWJvdW5kRGVsdGEoQ0dGbG9hdCBkZWx0YSk7CitDR0Zsb2F0IF9OU1JlYm91bmREZWx0
YUZvckVsYXN0aWNEZWx0YShDR0Zsb2F0IGRlbHRhKTsKKworV1RGX0VYVEVSTl9DX0VORApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEku
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmgKaW5k
ZXggMDQ5MmMxYWI2MTk1NmNiMTk2MWM5ZWE3YjI3NzE1NzM3ODFkNTUzMy4uMTg3MDQ5NmUwN2My
MGYyZWI5YWI1YWZhZDcxZTlkYjFkYWQxYTJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE0OSw0ICsxNDksMTAgQEAgdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TT3ZlcmxheVNjcm9sbGVyU3RhdGU7CiAKICNlbmRpZgogCitXVEZfRVhU
RVJOX0NfQkVHSU4KKworTlNTY3JvbGxlclN0eWxlIF9OU1JlY29tbWVuZGVkU2Nyb2xsZXJTdHls
ZSgpOworCitXVEZfRVhURVJOX0NfRU5ECisKICNlbmRpZiAvLyBVU0UoQVBQS0lUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vY2YvRGVmYXVsdFNlYXJjaFByb3Zp
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQ
cm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ4NjcyMjlhOGYxYWMzZTY1N2YwZGE1ZmEzNzQ4MzM3
OTVlN2ZiNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVt
L2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZWZhdWx0U2VhcmNoUHJvdmlkZXIu
aCIKKworI2luY2x1ZGUgIkNGVXRpbGl0aWVzU1BJLmgiCisjaW5jbHVkZSA8Q29yZUZvdW5kYXRp
b24vQ29yZUZvdW5kYXRpb24uaD4KKworbmFtZXNwYWNlIFBBTCB7CisKK1JldGFpblB0cjxDRlN0
cmluZ1JlZj4gZGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUoKQoreworICAgIGF1dG8g
cHJvdmlkZXJJbmZvID0gYWRvcHRDRihfQ0ZXZWJTZXJ2aWNlc0NvcHlQcm92aWRlckluZm8oa0NG
V2ViU2VydmljZXNUeXBlV2ViU2VhcmNoLCBudWxscHRyKSk7CisgICAgaWYgKCFwcm92aWRlcklu
Zm8pCisgICAgICAgIHJldHVybiBDRlNUUigiR29vZ2xlIik7CisKKyAgICBDRlR5cGVSZWYgZGlz
cGxheU5hbWUgPSBDRkRpY3Rpb25hcnlHZXRWYWx1ZShwcm92aWRlckluZm8uZ2V0KCksIGtDRldl
YlNlcnZpY2VzUHJvdmlkZXJEZWZhdWx0RGlzcGxheU5hbWVLZXkpOworICAgIGlmICghZGlzcGxh
eU5hbWUpCisgICAgICAgIHJldHVybiBDRlNUUigiR29vZ2xlIik7CisKKyAgICBBU1NFUlQoQ0ZH
ZXRUeXBlSUQoZGlzcGxheU5hbWUpID09IENGU3RyaW5nR2V0VHlwZUlEKCkpOworICAgIHJldHVy
biBhZG9wdENGKENGU3RyaW5nQ3JlYXRlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ0ZTdHJp
bmdSZWYpZGlzcGxheU5hbWUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgUEFMCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9jZi9EZWZhdWx0U2VhcmNoUHJvdmlkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZjZmNmZDgzN2I3NjA5YzY0MzI3ZTc1NTk4MGQ2ZDRmZjk5MmZiZjUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9jZi9EZWZh
dWx0U2VhcmNoUHJvdmlkZXIuaApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBQQUwgewor
CitQQUxfRVhQT1JUIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZGVmYXVsdFNlYXJjaFByb3ZpZGVy
RGlzcGxheU5hbWUoKTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
eXN0ZW0vbWFjL1BvcHVwTWVudS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFj
L1BvcHVwTWVudS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0NzVhYjdiN2IyN2JkOWQwNjNjZWM5YmU1NTY2MWM5
NTJlZjJhZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3Rl
bS9tYWMvUG9wdXBNZW51LmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBQTEFU
Rk9STShNQUMpCisKKyNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KKworbmFtZXNwYWNlIFBBTCB7
CisKK1BBTF9FWFBPUlQgdm9pZCBwb3BVcE1lbnUoTlNNZW51ICosIE5TUG9pbnQgbG9jYXRpb24s
IGZsb2F0IHdpZHRoLCBOU1ZpZXcgKiwgaW50IHNlbGVjdGVkSXRlbSwgTlNGb250ICosIE5TQ29u
dHJvbFNpemUsIGJvb2wgdXNlc0N1c3RvbUFwcGVhcmFuY2UpOworCit9CisKKyNlbmRpZiAvLyBQ
TEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9t
YWMvUG9wdXBNZW51Lm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVw
TWVudS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yMjMzNTc1ZGMzNGU3NjFlODYxY2JiNDUyODdiNzMzZjJjZDRh
YzIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFj
L1BvcHVwTWVudS5tbQpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJQb3B1cE1lbnUuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2lt
cG9ydCAiTlNNZW51U1BJLmgiCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0BpbnRlcmZh
Y2UgTlNNZW51IChXZWJQcml2YXRlKQorLSAoaWQpX21lbnVJbXBsOworQGVuZAorCitAaW50ZXJm
YWNlIE5TT2JqZWN0IChXZWJQcml2YXRlKQorLSAodm9pZClwb3BVcE1lbnU6KE5TTWVudSopbWVu
dSBhdExvY2F0aW9uOihOU1BvaW50KWxvY2F0aW9uIHdpZHRoOihDR0Zsb2F0KXdpZHRoIGZvclZp
ZXc6KE5TVmlldyopdmlldyB3aXRoU2VsZWN0ZWRJdGVtOihOU0ludGVnZXIpc2VsZWN0ZWRJdGVt
IHdpdGhGb250OihOU0ZvbnQqKWZvbnQgd2l0aEZsYWdzOihOU1BvcFVwTWVudUZsYWdzKWZsYWdz
IHdpdGhPcHRpb25zOihOU0RpY3Rpb25hcnkgKilvcHRpb25zOworQGVuZAorCituYW1lc3BhY2Ug
UEFMIHsKKwordm9pZCBwb3BVcE1lbnUoTlNNZW51ICptZW51LCBOU1BvaW50IGxvY2F0aW9uLCBm
bG9hdCB3aWR0aCwgTlNWaWV3ICp2aWV3LCBpbnQgc2VsZWN0ZWRJdGVtLCBOU0ZvbnQgKmZvbnQs
IE5TQ29udHJvbFNpemUgY29udHJvbFNpemUsIGJvb2wgdXNlc0N1c3RvbUFwcGVhcmFuY2UpCit7
CisgICAgTlNSZWN0IGFkanVzdGVkUG9wdXBCb3VuZHMgPSBbdmlldy53aW5kb3cgY29udmVydFJl
Y3RUb1NjcmVlbjpbdmlldyBjb252ZXJ0UmVjdDp2aWV3LmJvdW5kcyB0b1ZpZXc6bmlsXV07Cisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgaWYgKGNvbnRyb2xTaXplICE9
IE5TTWluaUNvbnRyb2xTaXplKSB7CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgIGFkanVzdGVkUG9wdXBCb3VuZHMub3JpZ2luLnggLT0gMzsKKyAgICAgICAgYWRqdXN0ZWRQ
b3B1cEJvdW5kcy5vcmlnaW4ueSAtPSAxOworICAgICAgICBhZGp1c3RlZFBvcHVwQm91bmRzLnNp
emUud2lkdGggKz0gNjsKKyAgICB9CisKKyAgICAvLyBUaGVzZSBudW1iZXJzIHdlcmUgZXh0cmFj
dGVkIGZyb20gdmlzdWFsIGluc3BlY3Rpb24gYXMgdGhlIG1lbnUgYW5pbWF0ZXMgc2h1dC4KKyAg
ICBOU1NpemUgbGFiZWxPZmZzZXQgPSBOU01ha2VTaXplKDExLCAxKTsKKyAgICBpZiAobWVudS51
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uID09IE5TVXNlckludGVyZmFjZUxheW91dERpcmVj
dGlvblJpZ2h0VG9MZWZ0KQorICAgICAgICBsYWJlbE9mZnNldCA9IE5TTWFrZVNpemUoMjQsIDEp
OworCisgICAgYXV0byBvcHRpb25zID0gYWRvcHROUyhbQHsKKyAgICAgICAgTlNQb3BVcE1lbnVQ
b3B1cEJ1dHRvbkJvdW5kcyA6IFtOU1ZhbHVlIHZhbHVlV2l0aFJlY3Q6YWRqdXN0ZWRQb3B1cEJv
dW5kc10sCisgICAgICAgIE5TUG9wVXBNZW51UG9wdXBCdXR0b25MYWJlbE9mZnNldCA6IFtOU1Zh
bHVlIHZhbHVlV2l0aFNpemU6bGFiZWxPZmZzZXRdLAorICAgICAgICBOU1BvcFVwTWVudVBvcHVw
QnV0dG9uU2l6ZSA6IEAoY29udHJvbFNpemUpCisgICAgfSBtdXRhYmxlQ29weV0pOworCisgICAg
aWYgKHVzZXNDdXN0b21BcHBlYXJhbmNlKQorICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6QCIi
IGZvcktleTpOU1BvcFVwTWVudVBvcHVwQnV0dG9uV2lkZ2V0XTsKKworICAgIFtbbWVudSBfbWVu
dUltcGxdIHBvcFVwTWVudTptZW51IGF0TG9jYXRpb246bG9jYXRpb24gd2lkdGg6d2lkdGggZm9y
Vmlldzp2aWV3IHdpdGhTZWxlY3RlZEl0ZW06c2VsZWN0ZWRJdGVtIHdpdGhGb250OmZvbnQgd2l0
aEZsYWdzOih1c2VzQ3VzdG9tQXBwZWFyYW5jZSA/IDAgOiBOU1BvcFVwTWVudUlzUG9wdXBCdXR0
b24pIHdpdGhPcHRpb25zOm9wdGlvbnMuZ2V0KCldOworfQorCit9IC8vIG5hbWVzcGFjZSBQQUwK
KworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQppbmRleCAxMjliNmUyZDUwZDUy
MTZkYjVhNDY4NzY2YzE0ZmQ4MmVhNTNiYzc3Li4zMzQxZmEyY2JmZjMwY2NkNzIxMjY1OWU1YTNj
MmE2NDM2NmJkMTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9M
b2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDE1ICsyMywxNiBAQAogICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIkxvY2FsaXplZFN0cmluZ3MuaCIKIAotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0j
aW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0ICJOb3RJbXBs
ZW1lbnRlZC5oIgorI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCA8
cGFsL3N5c3RlbS9jZi9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuaD4KKyNpbXBvcnQgPHd0Zi9Bc3Nl
cnRpb25zLmg+CisjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNjYsNyArNjcsNyBAQCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNo
SW5TcG90bGlnaHQoKQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKIHsK
LSAgICBhdXRvIHNlYXJjaFByb3ZpZGVyTmFtZSA9IGFkb3B0Q0Yod2tDb3B5RGVmYXVsdFNlYXJj
aFByb3ZpZGVyRGlzcGxheU5hbWUoKSk7CisgICAgYXV0byBzZWFyY2hQcm92aWRlck5hbWUgPSBQ
QUw6OmRlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKCk7CiAgICAgcmV0dXJuIGZvcm1h
dExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCJTZWFyY2ggd2l0aCAlQCIsICJTZWFyY2gg
d2l0aCBzZWFyY2ggcHJvdmlkZXIgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBwcm92aWRlciBuYW1l
IGluc2VydGVkIiksIHNlYXJjaFByb3ZpZGVyTmFtZS5nZXQoKSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IGVlM2U1
MzdmYjhjMmI2ODcwZTYxZGZkMjM5NzYwN2VjN2YxZjRiMWEuLmQzNzllMjQ3NGQxNjY2NTRhNGMx
MjljY2NiMGYxZWRlM2U2MzI1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTQtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDIwICsyMywyNCBAQAogICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJTY3JvbGxDb250cm9sbGVyLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIlNjcm9sbENvbnRyb2xsZXIuaCIKIAotI2luY2x1ZGUgIkxheW91dFNpemUuaCIKLSNp
bmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKLSNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50
ZXJmYWNlLmgiCi0jaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCi0jaW5jbHVkZSA8
c3lzL3N5c2N0bC5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0jaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CisjaW1wb3J0ICJMYXlvdXRTaXplLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdoZWVs
RXZlbnQuaCIKKyNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgIldo
ZWVsRXZlbnRUZXN0VHJpZ2dlci5oIgorI2ltcG9ydCA8c3lzL3N5c2N0bC5oPgorI2ltcG9ydCA8
c3lzL3RpbWUuaD4KKyNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgogCiAjaWYgRU5BQkxFKENT
U19TQ1JPTExfU05BUCkKLSNpbmNsdWRlICJTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oIgotI2lu
Y2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCisjaW1wb3J0ICJTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZS5oIgorI2ltcG9ydCAiU2Nyb2xsYWJsZUFyZWEuaCIKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
TUFDKQorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTY3JvbGxWaWV3U1BJLmg+CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShSVUJCRVJfQkFORElORykgfHwgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKQEAg
LTUyLDE3ICs1NiwxNyBAQCBzdGF0aWMgY29uc3QgZmxvYXQgcnViYmVyYmFuZE1pbmltdW1SZXF1
aXJlZERlbHRhQmVmb3JlU3RyZXRjaCA9IDEwOwogI2lmIFBMQVRGT1JNKE1BQykKIHN0YXRpYyBm
bG9hdCBlbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEoZmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBmbG9h
dCBpbml0aWFsVmVsb2NpdHksIGZsb2F0IGVsYXBzZWRUaW1lKQogewotICAgIHJldHVybiB3a05T
RWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFZlbG9jaXR5
LCBlbGFwc2VkVGltZSk7CisgICAgcmV0dXJuIF9OU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YShp
bml0aWFsUG9zaXRpb24sIGluaXRpYWxWZWxvY2l0eSwgZWxhcHNlZFRpbWUpOwogfQogCiBzdGF0
aWMgZmxvYXQgZWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKGZsb2F0IGRlbHRhKQogewotICAg
IHJldHVybiB3a05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKGRlbHRhKTsKKyAgICByZXR1
cm4gX05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKGRlbHRhKTsKIH0KIAogc3RhdGljIGZs
b2F0IHJlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YShmbG9hdCBkZWx0YSkKIHsKLSAgICByZXR1
cm4gd2tOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YShkZWx0YSk7CisgICAgcmV0dXJuIF9O
U1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YShkZWx0YSk7CiB9CiAKIHN0YXRpYyBmbG9hdCBz
Y3JvbGxXaGVlbE11bHRpcGxpZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggZjQyNTc5NzAxMGRjYTIz
NzcwYjhmZTQ2MDViYzQ5YjBmNGQ2MDhhMC4uYzY5NDZkNmRmZDNiY2UzYTFmODYyNGEzOTRiYzY4
NjlkN2QyYzNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDcgKzI0LDYgQEAKICAqLwogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCi0KICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ0EuaCIKIAogI2lmIFVTRShD
QSkKQEAgLTQ3LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRp
b24uaCIKICNpbmNsdWRlIDxRdWFydHpDb3JlL0NBVHJhbnNmb3JtM0QuaD4KICNpbmNsdWRlIDxs
aW1pdHMuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmg+CiAjaW5jbHVk
ZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTI5ODgsNyArMjk4OCw3IEBAIGJvb2wgR3Jh
cGhpY3NMYXllckNBOjpjcmVhdGVUcmFuc2Zvcm1BbmltYXRpb25zRnJvbUtleWZyYW1lcyhjb25z
dCBLZXlmcmFtZVZhbHVlCiAgICAgICAgIC8vIG9uIG9yIGJlZm9yZSBTbm93IExlb3BhcmQuCiAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIGZpeCBoYXMgbm90IGJlZW4gYWRkZWQgdG8gUXVhcnR6Q29y
ZSBvbiBXaW5kb3dzIHlldCAoPHJkYXI6Ly9wcm9ibGVtLzkxMTIyMzM+KSBzbyB3ZSBleHBlY3Qg
dGhlCiAgICAgICAgIC8vIHJldmVyc2VkIGFuaW1hdGlvbiBiZWhhdmlvcgotICAgICAgICBzdGF0
aWMgYm9vbCBleGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkID0gd2tFeGVj
dXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKCk7CisgICAgICAgIHN0YXRpYyBi
b29sIGV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQgPSAhX0NGRXhlY3V0
YWJsZUxpbmtlZE9uT3JBZnRlcihDRlN5c3RlbVZlcnNpb25MaW9uKTsKICAgICAgICAgaWYgKCFl
eGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKQogICAgICAgICAgICAgcmV2
ZXJzZUFuaW1hdGlvbkxpc3QgPSBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9DdXJzb3JNYWMubW0KaW5kZXggYWEzNDVlODhlNDgxMThjNDY4N2I5ZWVmYmZjNzMyMThk
YzQ3MDcwYy4uNDE3MmUyMjI2OGMzZGM0MWRhNTYwZTRlNGMyOGZjNjdjZTgyYzFkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3
LDggQEAKICNpbXBvcnQgIkN1cnNvci5oIgogCiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLmgiCisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJ
U2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1w
b3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTM3LDYgKzM5LDEzOSBAQCBAaW1wbGVtZW50
YXRpb24gV2ViQ29yZUN1cnNvckJ1bmRsZQogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgCitzdGF0aWMgTlNDdXJzb3IgKmJ1c3lCdXRDbGlja2FibGVOU0N1cnNvcjsKK3N0YXRpYyBO
U0N1cnNvciAqbWFrZUFsaWFzTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKm1vdmVOU0N1cnNv
cjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplRWFzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29y
ICpyZXNpemVFYXN0V2VzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVOb3J0aE5T
Q3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVOb3J0aFNvdXRoTlNDdXJzb3I7CitzdGF0
aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRoZWFzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpy
ZXNpemVOb3J0aGVhc3RTb3V0aHdlc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXpl
Tm9ydGh3ZXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRod2VzdFNvdXRo
ZWFzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVTb3V0aE5TQ3Vyc29yOworc3Rh
dGljIE5TQ3Vyc29yICpyZXNpemVTb3V0aGVhc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAq
cmVzaXplU291dGh3ZXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZVdlc3ROU0N1
cnNvcjsKKworc3RhdGljIE5TQ3Vyc29yICpjZWxsTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3Ig
KmhlbHBOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqem9vbUluTlNDdXJzb3I7CitzdGF0aWMg
TlNDdXJzb3IgKnpvb21PdXROU0N1cnNvcjsKKworc3RhdGljIE5TSW50ZWdlciBXS0NvcmVDdXJz
b3JfY29yZUN1cnNvclR5cGUoaWQgc2VsZiwgU0VMKQoreworICAgIGlmIChzZWxmID09IGJ1c3lC
dXRDbGlja2FibGVOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yQnVzeUJ1dENs
aWNrYWJsZTsKKyAgICBpZiAoc2VsZiA9PSBtYWtlQWxpYXNOU0N1cnNvcikKKyAgICAgICAgcmV0
dXJuIGtDb3JlQ3Vyc29yTWFrZUFsaWFzOworICAgIGlmIChzZWxmID09IG1vdmVOU0N1cnNvcikK
KyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93TW92ZTsKKyAgICBpZiAoc2VsZiA9PSBy
ZXNpemVFYXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6
ZUVhc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplRWFzdFdlc3ROU0N1cnNvcikKKyAgICAgICAg
cmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplRWFzdFdlc3Q7CisgICAgaWYgKHNlbGYgPT0g
cmVzaXplTm9ydGhOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVz
aXplTm9ydGg7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGhTb3V0aE5TQ3Vyc29yKQorICAg
ICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aFNvdXRoOworICAgIGlmIChz
ZWxmID09IHJlc2l6ZU5vcnRoZWFzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJz
b3JXaW5kb3dSZXNpemVOb3J0aEVhc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGhlYXN0
U291dGh3ZXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6
ZU5vcnRoRWFzdFNvdXRoV2VzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVOb3J0aHdlc3ROU0N1
cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0Owor
ICAgIGlmIChzZWxmID09IHJlc2l6ZU5vcnRod2VzdFNvdXRoZWFzdE5TQ3Vyc29yKQorICAgICAg
ICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aFdlc3RTb3V0aEVhc3Q7CisgICAg
aWYgKHNlbGYgPT0gcmVzaXplU291dGhOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vy
c29yV2luZG93UmVzaXplU291dGg7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplU291dGhlYXN0TlND
dXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZVNvdXRoRWFzdDsK
KyAgICBpZiAoc2VsZiA9PSByZXNpemVTb3V0aHdlc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJu
IGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291dGhXZXN0OworICAgIGlmIChzZWxmID09IHJlc2l6
ZVdlc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplV2Vz
dDsKKyAgICBpZiAoc2VsZiA9PSBjZWxsTlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1
cnNvckNlbGw7CisgICAgaWYgKHNlbGYgPT0gaGVscE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4g
a0NvcmVDdXJzb3JIZWxwOworICAgIGlmIChzZWxmID09IHpvb21Jbk5TQ3Vyc29yKQorICAgICAg
ICByZXR1cm4ga0NvcmVDdXJzb3Jab29tSW47CisgICAgaWYgKHNlbGYgPT0gem9vbU91dE5TQ3Vy
c29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3Jab29tT3V0OworICAgIAorICAgIHJldHVy
biBOU05vdEZvdW5kOworfQorCitzdGF0aWMgQ2xhc3MgY3JlYXRlQ29yZUN1cnNvckNsYXNzKHZv
aWQpCit7CisgICAgQ2xhc3MgY29yZUN1cnNvckNsYXNzID0gb2JqY19hbGxvY2F0ZUNsYXNzUGFp
cihbTlNDdXJzb3IgY2xhc3NdLCAiV0tDb3JlQ3Vyc29yIiwgMCk7CisgICAgU0VMIGNvcmVDdXJz
b3JUeXBlID0gTlNTZWxlY3RvckZyb21TdHJpbmcoQCJfY29yZUN1cnNvclR5cGUiKTsKKyAgICBj
bGFzc19hZGRNZXRob2QoY29yZUN1cnNvckNsYXNzLCBjb3JlQ3Vyc29yVHlwZSwgKElNUClXS0Nv
cmVDdXJzb3JfY29yZUN1cnNvclR5cGUsIG1ldGhvZF9nZXRUeXBlRW5jb2RpbmcoY2xhc3NfZ2V0
SW5zdGFuY2VNZXRob2QoW05TQ3Vyc29yIGNsYXNzXSwgY29yZUN1cnNvclR5cGUpKSk7CisgICAg
b2JqY19yZWdpc3RlckNsYXNzUGFpcihjb3JlQ3Vyc29yQ2xhc3MpOworICAgIHJldHVybiBjb3Jl
Q3Vyc29yQ2xhc3M7Cit9CisKK3N0YXRpYyBDbGFzcyBjb3JlQ3Vyc29yQ2xhc3Modm9pZCkKK3sK
KyAgICBDbGFzcyBjb3JlQ3Vyc29yQ2xhc3MgPSBvYmpjX2xvb2tVcENsYXNzKCJXS0NvcmVDdXJz
b3IiKTsKKyAgICBpZiAoIWNvcmVDdXJzb3JDbGFzcykKKyAgICAgICAgY29yZUN1cnNvckNsYXNz
ID0gY3JlYXRlQ29yZUN1cnNvckNsYXNzKCk7CisgICAgcmV0dXJuIGNvcmVDdXJzb3JDbGFzczsK
K30KKworc3RhdGljIE5TQ3Vyc29yICpjdXJzb3IoY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgICBO
U0N1cnNvciAqKnNsb3QgPSAwOworICAgIAorICAgIGlmICghc3RyY21wKG5hbWUsICJCdXN5QnV0
Q2xpY2thYmxlIikpCisgICAgICAgIHNsb3QgPSAmYnVzeUJ1dENsaWNrYWJsZU5TQ3Vyc29yOwor
ICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIk1ha2VBbGlhcyIpKQorICAgICAgICBzbG90ID0g
Jm1ha2VBbGlhc05TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIk1vdmUiKSkK
KyAgICAgICAgc2xvdCA9ICZtb3ZlTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1l
LCAiUmVzaXplRWFzdCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZUVhc3ROU0N1cnNvcjsKKyAg
ICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVFYXN0V2VzdCIpKQorICAgICAgICBzbG90
ID0gJnJlc2l6ZUVhc3RXZXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAi
UmVzaXplTm9ydGgiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aE5TQ3Vyc29yOworICAg
IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZU5vcnRoU291dGgiKSkKKyAgICAgICAgc2xv
dCA9ICZyZXNpemVOb3J0aFNvdXRoTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1l
LCAiUmVzaXplTm9ydGhlYXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplTm9ydGhlYXN0TlND
dXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGhlYXN0U291dGh3
ZXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplTm9ydGhlYXN0U291dGh3ZXN0TlNDdXJzb3I7
CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGh3ZXN0IikpCisgICAgICAg
IHNsb3QgPSAmcmVzaXplTm9ydGh3ZXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChu
YW1lLCAiUmVzaXplTm9ydGh3ZXN0U291dGhlYXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXpl
Tm9ydGh3ZXN0U291dGhlYXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAi
UmVzaXplU291dGgiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVTb3V0aE5TQ3Vyc29yOworICAg
IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZVNvdXRoZWFzdCIpKQorICAgICAgICBzbG90
ID0gJnJlc2l6ZVNvdXRoZWFzdE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwg
IlJlc2l6ZVNvdXRod2VzdCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZVNvdXRod2VzdE5TQ3Vy
c29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZVdlc3QiKSkKKyAgICAgICAg
c2xvdCA9ICZyZXNpemVXZXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAi
Q2VsbCIpKQorICAgICAgICBzbG90ID0gJmNlbGxOU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3Ry
Y21wKG5hbWUsICJIZWxwIikpCisgICAgICAgIHNsb3QgPSAmaGVscE5TQ3Vyc29yOworICAgIGVs
c2UgaWYgKCFzdHJjbXAobmFtZSwgIlpvb21JbiIpKQorICAgICAgICBzbG90ID0gJnpvb21Jbk5T
Q3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlpvb21PdXQiKSkKKyAgICAgICAg
c2xvdCA9ICZ6b29tT3V0TlNDdXJzb3I7CisgICAgCisgICAgaWYgKCFzbG90KQorICAgICAgICBy
ZXR1cm4gbmlsOworICAgIAorICAgIGlmICghKnNsb3QpCisgICAgICAgICpzbG90ID0gW1tjb3Jl
Q3Vyc29yQ2xhc3MoKSBhbGxvY10gaW5pdF07CisgICAgcmV0dXJuICpzbG90OworfQogCiAvLyBT
aW1wbGUgTlNDdXJzb3IgY2FsbHMgc2hvdWxkbid0IG5lZWQgcHJvdGVjdGlvbiwKIC8vIGJ1dCBj
cmVhdGluZyBhIGN1cnNvciB3aXRoIGEgYmFkIGltYWdlIG1pZ2h0IHRocm93LgpAQCAtMTAzLDcy
ICsyMzgsNzIgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAg
ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6V2FpdDoKLSAgICAgICAgbV9wbGF0Zm9y
bUN1cnNvciA9IHdrQ3Vyc29yKCJCdXN5QnV0Q2xpY2thYmxlIik7CisgICAgICAgIG1fcGxhdGZv
cm1DdXJzb3IgPSBjdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIEN1cnNvcjo6SGVscDoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vy
c29yKCJIZWxwIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIkhlbHAiKTsK
ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6TW92ZToKICAgICBjYXNlIEN1cnNv
cjo6TWlkZGxlUGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJN
b3ZlIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIk1vdmUiKTsKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6RWFzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNv
cjo6RWFzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVz
aXplRWFzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVFYXN0
Iik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoUmVzaXplOgogICAg
IGNhc2UgQ3Vyc29yOjpOb3J0aFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3
a0N1cnNvcigiUmVzaXplTm9ydGgiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNv
cigiUmVzaXplTm9ydGgiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9y
dGhFYXN0UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aEVhc3RQYW5uaW5nOgotICAgICAg
ICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRoZWFzdCIpOworICAgICAg
ICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0aGVhc3QiKTsKICAgICAgICAg
YnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhXZXN0UmVzaXplOgogICAgIGNhc2UgQ3Vy
c29yOjpOb3J0aFdlc3RQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJz
b3IoIlJlc2l6ZU5vcnRod2VzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29y
KCJSZXNpemVOb3J0aHdlc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6
U291dGhSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoUGFubmluZzoKLSAgICAgICAgbV9w
bGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVTb3V0aCIpOworICAgICAgICBtX3BsYXRm
b3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVTb3V0aCIpOwogICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgQ3Vyc29yOjpTb3V0aEVhc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoRWFz
dFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplU291
dGhlYXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZVNvdXRo
ZWFzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpTb3V0aFdlc3RSZXNp
emU6CiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoV2VzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZv
cm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplU291dGh3ZXN0Iik7CisgICAgICAgIG1fcGxhdGZv
cm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZVNvdXRod2VzdCIpOwogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgQ3Vyc29yOjpXZXN0UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpXZXN0UGFubmlu
ZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVXZXN0Iik7Cisg
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZVdlc3QiKTsKICAgICAgICAg
YnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhTb3V0aFJlc2l6ZToKLSAgICAgICAgbV9w
bGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aFNvdXRoIik7CisgICAgICAgIG1f
cGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRoU291dGgiKTsKICAgICAgICAgYnJl
YWs7CiAKICAgICBjYXNlIEN1cnNvcjo6RWFzdFdlc3RSZXNpemU6Ci0gICAgICAgIG1fcGxhdGZv
cm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplRWFzdFdlc3QiKTsKKyAgICAgICAgbV9wbGF0Zm9y
bUN1cnNvciA9IGN1cnNvcigiUmVzaXplRWFzdFdlc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIEN1cnNvcjo6Tm9ydGhFYXN0U291dGhXZXN0UmVzaXplOgotICAgICAgICBtX3BsYXRm
b3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRoZWFzdFNvdXRod2VzdCIpOworICAgICAg
ICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0aGVhc3RTb3V0aHdlc3QiKTsK
ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhXZXN0U291dGhFYXN0UmVz
aXplOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRod2Vz
dFNvdXRoZWFzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVO
b3J0aHdlc3RTb3V0aGVhc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6
Q29sdW1uUmVzaXplOgpAQCAtMTg0LDcgKzMxOSw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0
Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OkNl
bGw6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiQ2VsbCIpOworICAgICAg
ICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJDZWxsIik7CiAgICAgICAgIGJyZWFrOwogCiAg
ICAgY2FzZSBDdXJzb3I6OkNvbnRleHRNZW51OgpAQCAtMTkyLDExICszMjcsMTEgQEAgdm9pZCBD
dXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIEN1cnNvcjo6QWxpYXM6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNv
cigiTWFrZUFsaWFzIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIk1ha2VB
bGlhcyIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpQcm9ncmVzczoKLSAg
ICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJCdXN5QnV0Q2xpY2thYmxlIik7Cisg
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKICAg
ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9Ecm9wOgpAQCAtMjE2LDExICszNTEs
MTEgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAg
YnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Wm9vbUluOgotICAgICAgICBtX3BsYXRmb3JtQ3Vy
c29yID0gd2tDdXJzb3IoIlpvb21JbiIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vy
c29yKCJab29tSW4iKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Wm9vbU91
dDoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJab29tT3V0Iik7CisgICAg
ICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlpvb21PdXQiKTsKICAgICAgICAgYnJlYWs7
CiAKICAgICBjYXNlIEN1cnNvcjo6R3JhYjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCmluZGV4IGFjZTI5OGMxMmY4MjBlZDUw
ZDY5Y2ZlZjY1MTYzMGQwODRjMDUyZmUuLjU1ZmNhMTI4MTYyZjYzODIwMTU2ZmEyMTFiMjdiN2Fk
MmNmMTk1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaApAQCAtMTIzLDcgKzEyMyw2IEBAIHR5cGVkZWYgZW51bSB7CiAg
ICAgd2tQYXR0ZXJuVGlsaW5nQ29uc3RhbnRTcGFjaW5nCiB9IHdrUGF0dGVyblRpbGluZzsKICNp
ZiAhUExBVEZPUk0oSU9TKQotZXh0ZXJuIHZvaWQgKCp3a0RyYXdCZXplbGVkVGV4dEFyZWEpKE5T
UmVjdCwgQk9PTCBlbmFibGVkKTsKIGV4dGVybiB2b2lkICgqd2tEcmF3TWVkaWFTbGlkZXJUcmFj
aykoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCByZWN0LCBmbG9hdCB0aW1lTG9hZGVkLCBm
bG9hdCBjdXJyZW50VGltZSwKICAgICBmbG9hdCBkdXJhdGlvbiwgdW5zaWduZWQgc3RhdGUpOwog
ZXh0ZXJuIHZvaWQgKCp3a0RyYXdNZWRpYVVJUGFydCkoaW50IHBhcnQsIENHQ29udGV4dFJlZiBj
b250ZXh0LCBDR1JlY3QgcmVjdCwgdW5zaWduZWQgc3RhdGUpOwpAQCAtMTM2LDI0ICsxMzUsMTAg
QEAgZXh0ZXJuIHZvaWQgKCp3a1NldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdFbmFibGVk
KShCT09MKTsKIGV4dGVybiB2b2lkKiB3a0dldEh5cGhlbmF0aW9uTG9jYXRpb25CZWZvcmVJbmRl
eDsKICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKElPUykKLWV4dGVybiBib29sICgqd2tFeGVjdXRh
YmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKSh2b2lkKTsKLQotZXh0ZXJuIENGU3Ry
aW5nUmVmICgqd2tDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpKHZvaWQpOwot
Ci1leHRlcm4gTlNDdXJzb3IgKigqd2tDdXJzb3IpKGNvbnN0IGNoYXIqKTsKLSNlbmRpZiAvLyAh
UExBVEZPUk0oSU9TKQotCiAjaWYgUExBVEZPUk0oSU9TKQogZXh0ZXJuIHZvaWQgKCp3a1NldExh
eWVyQ29udGVudHNTY2FsZSkoQ0FMYXllciAqKTsKICNlbmRpZgogCiB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBfX0NGVVJMU3RvcmFnZVNlc3Npb24qIENGVVJMU3RvcmFnZVNlc3Npb25SZWY7CiAKLSNp
ZiAhUExBVEZPUk0oSU9TKQotZXh0ZXJuIENHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yVGlt
ZURlbHRhKShDR0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0aWFsVmVsb2NpdHks
IENHRmxvYXQgZWxhcHNlZFRpbWUpOwotZXh0ZXJuIENHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRh
Rm9yUmVib3VuZERlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLWV4dGVybiBDR0Zsb2F0ICgqd2tOU1Jl
Ym91bmREZWx0YUZvckVsYXN0aWNEZWx0YSkoQ0dGbG9hdCBkZWx0YSk7Ci0jZW5kaWYKLQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVy
ZmFjZS5tbQppbmRleCAzNTA3MzE5YjVkZDhhN2U3MDZmZTYzMTNkMDQxZjM4NDkwODAwOGEzLi44
ZmJiMWQzZDhjODg2OGMyNDU0ZjMwOWM2OWUwNjQwMGYzZGZmOTZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQpAQCAt
MzAsNyArMzAsNiBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotdm9p
ZCAoKndrRHJhd0JlemVsZWRUZXh0QXJlYSkoTlNSZWN0LCBCT09MIGVuYWJsZWQpOwogdm9pZCAo
KndrRHJhd01lZGlhU2xpZGVyVHJhY2spKENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1JlY3QgcmVj
dCwgZmxvYXQgdGltZUxvYWRlZCwgZmxvYXQgY3VycmVudFRpbWUsCiAgICAgZmxvYXQgZHVyYXRp
b24sIHVuc2lnbmVkIHN0YXRlKTsKIEJPT0wgKCp3a0hpdFRlc3RNZWRpYVVJUGFydCkoaW50IHBh
cnQsIENHUmVjdCBib3VuZHMsIENHUG9pbnQgcG9pbnQpOwpAQCAtNDIsMTQgKzQxLDQgQEAgdm9p
ZCAoKndrUG9wdXBNZW51KShOU01lbnUqLCBOU1BvaW50IGxvY2F0aW9uLCBmbG9hdCB3aWR0aCwg
TlNWaWV3KiwgaW50IHNlbGVjdGUKIAogdm9pZCogd2tHZXRIeXBoZW5hdGlvbkxvY2F0aW9uQmVm
b3JlSW5kZXg7CiAKLWJvb2wgKCp3a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xl
b3BhcmQpKHZvaWQpOwotCiBDRlN0cmluZ1JlZiAoKndrQ29weURlZmF1bHRTZWFyY2hQcm92aWRl
ckRpc3BsYXlOYW1lKSh2b2lkKTsKLQotTlNDdXJzb3IgKigqd2tDdXJzb3IpKGNvbnN0IGNoYXIq
KTsKLQotI2lmICFQTEFURk9STShJT1MpCi1DR0Zsb2F0ICgqd2tOU0VsYXN0aWNEZWx0YUZvclRp
bWVEZWx0YSkoQ0dGbG9hdCBpbml0aWFsUG9zaXRpb24sIENHRmxvYXQgaW5pdGlhbFZlbG9jaXR5
LCBDR0Zsb2F0IGVsYXBzZWRUaW1lKTsKLUNHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yUmVi
b3VuZERlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLUNHRmxvYXQgKCp3a05TUmVib3VuZERlbHRhRm9y
RWxhc3RpY0RlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDkzZThkNjE5NzE3NjE3NWQ4Y2NiMzZlMTlj
ZmVmYmE5YzQ4NjU1ZWYuLmYwMGM4Mzk3YjU4YTQxYWE5MzEyOGEyMjZhYWU3NWE2ZmI5YWM1NGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTc0LDYg
Kzc0LDcgQEAKICNpbXBvcnQgPG1hdGguaD4KICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBo
aWNzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4KKyNpbXBvcnQg
PHBhbC9zcGkvbWFjL05TQ2VsbFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTaGFyaW5n
U2VydmljZVBpY2tlclNQSS5oPgogI2ltcG9ydCA8d3RmL01hdGhFeHRyYXMuaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTg4NCw3ICs4ODUsNyBAQCB2b2lkIFJlbmRlclRoZW1lTWFj
OjphZGp1c3RUZXh0RmllbGRTdHlsZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmLCBjb25z
dCBFbAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRUZXh0QXJlYShjb25zdCBSZW5kZXJPYmpl
Y3QmIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QmIHIpCiB7
CiAgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dChwYWludEluZm8u
Y29udGV4dCgpKTsKLSAgICB3a0RyYXdCZXplbGVkVGV4dEFyZWEociwgaXNFbmFibGVkKG8pICYm
ICFpc1JlYWRPbmx5Q29udHJvbChvKSk7CisgICAgX05TRHJhd0NhcmJvblRoZW1lTGlzdEJveChy
LCBpc0VuYWJsZWQobykgJiYgIWlzUmVhZE9ubHlDb250cm9sKG8pLCBZRVMsIFlFUyk7CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL21hYy9OZXR3b3JrUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCmluZGV4IDZmNzUyOTUyZTc2YzM0ODdiMmFjYTBk
MmRlMTEzNWFhYzNkYWVlODcuLjEzOGJlNmI4ZmZjNzQzODg1MDFhNTE4ZWJhZjAyNDJmOWYxMjky
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQ
cm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdv
cmtQcm9jZXNzTWFjLm1tCkBAIC00Miw2ICs0Miw3IEBACiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4KICNpbXBvcnQgPG5vdGlmeS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5l
dHdvcmtTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4K
ICNpbXBvcnQgPHN5c2V4aXRzLmg+CiAjaW1wb3J0IDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVy
Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTU5LDcgKzYwLDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXIKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVQcm9j
ZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCiB7CiAgICAgTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAIE5ldHdvcmtpbmciLCAidmlzaWJsZSBuYW1l
IG9mIHRoZSBuZXR3b3JrIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24g
bmFtZS4iKSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsKLSAgICBXS1Nl
dFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7Cisg
ICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwg
X0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9rTFNEaXNwbGF5TmFtZUtleSwgKENGU3Ry
aW5nUmVmKWFwcGxpY2F0aW9uTmFtZSwgbnVsbHB0cik7CiB9CiAKIHN0YXRpYyB2b2lkIG92ZXJy
aWRlU3lzdGVtUHJveGllcyhjb25zdCBTdHJpbmcmIGh0dHBQcm94eSwgY29uc3QgU3RyaW5nJiBo
dHRwc1Byb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9Q
bHVnaW5Qcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVn
aW5Qcm9jZXNzTWFjLm1tCmluZGV4IDI0ZDI2ZWQxZTY3NDNhZWM1NTdhOGY3NjQ4OWI2NzM4MDQx
N2ZkMDUuLmRiMGMzMDZmMDYyZTdkZjkzZTEzOWFkZGUwNDZiOWE4YmY5N2RmNzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0K
QEAgLTYyMiw5ICs2MjIsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYQogdm9pZCBQbHVnaW5Q
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIE5TU3RyaW5nICphcHBsaWNhdGlv
bk5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIlQCAoJUAg
SW50ZXJuZXQgcGx1Zy1pbikiLCAidmlzaWJsZSBuYW1lIG9mIHRoZSBwbHVnLWluIGhvc3QgcHJv
Y2Vzcy4gVGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBwbHVnLWluIG5hbWUgYW5kIHRoZSBzZWNv
bmQgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiksIFtbKE5TU3RyaW5nICopbV9w
bHVnaW5QYXRoIGxhc3RQYXRoQ29tcG9uZW50XSBzdHJpbmdCeURlbGV0aW5nUGF0aEV4dGVuc2lv
bl0sIChOU1N0cmluZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZV07Ci0gICAgV0tTZXRWaXNp
YmxlQXBwbGljYXRpb25OYW1lKChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUpOworICAgIF9M
U1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dl
dEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBfa0xTRGlzcGxheU5hbWVLZXksIChDRlN0cmluZ1Jl
ZilhcHBsaWNhdGlvbk5hbWUsIG51bGxwdHIpOwogICAgIGlmICghbV9wbHVnaW5CdW5kbGVJZGVu
dGlmaWVyLmlzRW1wdHkoKSkKLSAgICAgICAgV0tTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRl
bShrTFNQbHVnSW5CdW5kbGVJZGVudGlmaWVyS2V5LCBtX3BsdWdpbkJ1bmRsZUlkZW50aWZpZXIu
Y3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CisgICAgICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3Jt
YXRpb25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFT
TigpLCBrTFNQbHVnSW5CdW5kbGVJZGVudGlmaWVyS2V5LCBtX3BsdWdpbkJ1bmRsZUlkZW50aWZp
ZXIuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgbnVsbHB0cik7CiB9CiAKIHZvaWQgUGx1Z2luUHJv
Y2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBz
YW5kYm94UGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvbWFjL1N0b3JhZ2VQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9tYWMvU3RvcmFnZVByb2Nlc3NNYWMubW0KaW5kZXggYzAzODg2MGY4ZjE0M2MwZGNmZmM5M2E1
Mjc2NmQ2MzQ1NDc0MWYzOS4uZTM5NjgxYWM3NGFmZWQxZDZmNDlmYmM4ZTUzMDViZmM1YzQzNmE3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVBy
b2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFn
ZVByb2Nlc3NNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVt
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYktp
dFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNl
c1NQSS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDcsNyArNDgsNyBAQCB2
b2lkIFN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtZXRlcgogdm9pZCBTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6ZVBy
b2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKIHsKICAgICBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX1NUUklORygiJUAgU3RvcmFnZSIsICJ2aXNpYmxlIG5hbWUg
b2YgdGhlIHN0b3JhZ2UgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBu
YW1lLiIpLCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwotICAgIFdLU2V0
VmlzaWJsZUFwcGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lKTsKKyAg
ICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBf
TFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5LCAoQ0ZTdHJp
bmdSZWYpYXBwbGljYXRpb25OYW1lLCBudWxscHRyKTsKIH0KIAogdm9pZCBTdG9yYWdlUHJvY2Vz
czo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5k
Ym94UGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KaW5kZXggOTk4MGUxNWUyZjk5MjY2YWIwOWI4YTVhMDFiYTdlZDc4N2E1YjUwNS4uMDE1
NWNiMThiMTUxNDM5YTBmMTNiMjNhYWRhYWQ2MTc3MWM2ZTU5MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05NCw2ICs5NCw3IEBACiAjaW1w
b3J0IDxwYWwvc3BpL21hYy9OU0FjY2Vzc2liaWxpdHlTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkv
bWFjL05TQXBwbGljYXRpb25TUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TSW1tZWRpYXRl
QWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2Ny
b2xsZXJJbXBTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU3BlbGxDaGVja2VyU1BJLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1RleHRGaW5kZXJTUEkuaD4KICNpbXBvcnQgPHBhbC9z
cGkvbWFjL05TV2luZG93U1BJLmg+CkBAIC0xMjU5LDcgKzEyNjAsNyBAQCBzdGF0aWMgTlNUcmFj
a2luZ0FyZWFPcHRpb25zIHRyYWNraW5nQXJlYU9wdGlvbnMoKQogewogICAgIC8vIExlZ2FjeSBz
dHlsZSBzY3JvbGxiYXJzIGhhdmUgZGVzaWduIGRldGFpbHMgdGhhdCByZWx5IG9uIHRyYWNraW5n
IHRoZSBtb3VzZSBhbGwgdGhlIHRpbWUuCiAgICAgTlNUcmFja2luZ0FyZWFPcHRpb25zIG9wdGlv
bnMgPSBOU1RyYWNraW5nTW91c2VNb3ZlZCB8IE5TVHJhY2tpbmdNb3VzZUVudGVyZWRBbmRFeGl0
ZWQgfCBOU1RyYWNraW5nSW5WaXNpYmxlUmVjdCB8IE5TVHJhY2tpbmdDdXJzb3JVcGRhdGU7Ci0g
ICAgaWYgKFdLUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlTGVn
YWN5KQorICAgIGlmIChfTlNSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVy
U3R5bGVMZWdhY3kpCiAgICAgICAgIG9wdGlvbnMgfD0gTlNUcmFja2luZ0FjdGl2ZUFsd2F5czsK
ICAgICBlbHNlCiAgICAgICAgIG9wdGlvbnMgfD0gTlNUcmFja2luZ0FjdGl2ZUluS2V5V2luZG93
OwpAQCAtMTk0NSw3ICsxOTQ2LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6bWlnaHRCZWdpbkRyYWdX
aGlsZUluYWN0aXZlKCkKIGJvb2wgV2ViVmlld0ltcGw6Om1pZ2h0QmVnaW5TY3JvbGxXaGlsZUlu
YWN0aXZlKCkKIHsKICAgICAvLyBMZWdhY3kgc3R5bGUgc2Nyb2xsYmFycyBoYXZlIGRlc2lnbiBk
ZXRhaWxzIHRoYXQgcmVseSBvbiB0cmFja2luZyB0aGUgbW91c2UgYWxsIHRoZSB0aW1lLgotICAg
IGlmIChXS1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2Fj
eSkKKyAgICBpZiAoX05TUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0
eWxlTGVnYWN5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5t
bQppbmRleCA3ZDZjYjNlZGExZDA4OWM4NzQ1YWIzNGEwMWMzY2I2Y2ZlZmUzYzIxLi4xMjQxYmQ4
ZDllMWI3MDE3ZjA5ZDRjNGM0ZmY5ZWEzMDE5Yzc2YmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiV2ViUG9wdXBJdGVt
LmgiCiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHBhbC9zeXN0
ZW0vbWFjL1BvcHVwTWVudS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTY1
LDcgKzE2Niw3IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29u
c3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgfQogCiAgICAgUmVmPFdl
YlBvcHVwTWVudVByb3h5TWFjPiBwcm90ZWN0KCp0aGlzKTsKLSAgICBXS1BvcHVwTWVudShtZW51
LCBsb2NhdGlvbiwgcm91bmRmKE5TV2lkdGgocmVjdCkpLCBkdW1teVZpZXcuZ2V0KCksIHNlbGVj
dGVkSW5kZXgsIGZvbnQsIGNvbnRyb2xTaXplLCBkYXRhLmhpZGVBcnJvd3MpOworICAgIFBBTDo6
cG9wVXBNZW51KG1lbnUsIGxvY2F0aW9uLCByb3VuZGYoTlNXaWR0aChyZWN0KSksIGR1bW15Vmll
dy5nZXQoKSwgc2VsZWN0ZWRJbmRleCwgZm9udCwgY29udHJvbFNpemUsIGRhdGEuaGlkZUFycm93
cyk7CiAKICAgICBbbV9wb3B1cCBkaXNtaXNzUG9wVXBdOwogICAgIFtkdW1teVZpZXcgcmVtb3Zl
RnJvbVN1cGVydmlld107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KaW5kZXgg
YTMxMjBlNjI1MzgzYmViMmFmNzA3MDI3MGY0N2Y4NTg5OTMwYzIwNi4uZDI5MWExMTQzY2MzMWVj
ZDEzYzhlYmI4MjI1MzJjYTdlZjExYzlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdp
bk1hYy5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNl
Lmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJVG9v
bGJveFNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNNZW51U1BJLmg+CiAjaW1wb3J0IDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIApA
QCAtMTU4LDcgKzE1OSw2IEBAIE5QQm9vbCBOZXRzY2FwZVBsdWdpbjo6Y29udmVydFBvaW50KGRv
dWJsZSBzb3VyY2VYLCBkb3VibGUgc291cmNlWSwgTlBDb29yZGluYXRlCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi0KIE5QRXJyb3IgTmV0c2NhcGVQbHVnaW46OnBvcFVwQ29udGV4dE1lbnUoTlBN
ZW51KiBucE1lbnUpCiB7CiAgICAgaWYgKCFtX2N1cnJlbnRNb3VzZUV2ZW50KQpAQCAtMTY4LDcg
KzE2OCw3IEBAIE5QRXJyb3IgTmV0c2NhcGVQbHVnaW46OnBvcFVwQ29udGV4dE1lbnUoTlBNZW51
KiBucE1lbnUpCiAgICAgaWYgKCFjb252ZXJ0UG9pbnQobV9jdXJyZW50TW91c2VFdmVudC0+ZGF0
YS5tb3VzZS5wbHVnaW5YLCBtX2N1cnJlbnRNb3VzZUV2ZW50LT5kYXRhLm1vdXNlLnBsdWdpblks
IE5QQ29vcmRpbmF0ZVNwYWNlUGx1Z2luLCBzY3JlZW5YLCBzY3JlZW5ZLCBOUENvb3JkaW5hdGVT
cGFjZVNjcmVlbikpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCi0gICAgV0tQb3B1
cENvbnRleHRNZW51KHJlaW50ZXJwcmV0X2Nhc3Q8TlNNZW51ICo+KG5wTWVudSksIE5TTWFrZVBv
aW50KHNjcmVlblgsIHNjcmVlblkpKTsKKyAgICBfTlNQb3BVcENhcmJvbk1lbnUzKHJlaW50ZXJw
cmV0X2Nhc3Q8TlNNZW51ICo+KG5wTWVudSksIG5pbCwgbmlsLCBOU01ha2VQb2ludChzY3JlZW5Y
LCBzY3JlZW5ZKSwgLTEsIG5pbCwgMCwgbmlsLCBOU1BvcFVwTWVudVR5cGVDb250ZXh0LCBuaWwp
OwogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggOTI3YzhhYzQzZDI1ZDZm
N2M3Yjg3ODU2NjY2MDdiZDI3M2IzZWJhMS4uYWZjZmZhNTE3NDViMjViOWU3NDA0MjgzMDdmYWNl
ZDU0OGRlY2FhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OSwgMjAxMSwgMjAxMiwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTgxLDYgKzgxLDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CisjaW1w
b3J0IDxwYWwvc3BpL21hYy9OU01lbnVTUEkuaD4KICNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5o
PgogI2ltcG9ydCA8d3RmL1VVSUQuaD4KIApAQCAtMTU4NSw3ICsxNTg2LDcgQEAgYm9vbCBQREZQ
bHVnaW46OmhhbmRsZUNvbnRleHRNZW51RXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQp
CiAgICAgSW50UG9pbnQgcG9pbnQgPSBmcmFtZVZpZXctPmNvbnRlbnRzVG9TY3JlZW4oSW50UmVj
dChmcmFtZVZpZXctPndpbmRvd1RvQ29udGVudHMoZXZlbnQucG9zaXRpb24oKSksIEludFNpemUo
KSkpLmxvY2F0aW9uKCk7CiAgICAgCiAgICAgaWYgKE5TTWVudSAqbnNNZW51ID0gW21fcGRmTGF5
ZXJDb250cm9sbGVyIG1lbnVGb3JFdmVudDpuc0V2ZW50Rm9yV2ViTW91c2VFdmVudChldmVudCld
KSB7Ci0gICAgICAgIFdLUG9wdXBDb250ZXh0TWVudShuc01lbnUsIHBvaW50KTsKKyAgICAgICAg
X05TUG9wVXBDYXJib25NZW51Myhuc01lbnUsIG5pbCwgbmlsLCBwb2ludCwgLTEsIG5pbCwgMCwg
bmlsLCBOU1BvcFVwTWVudVR5cGVDb250ZXh0LCBuaWwpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IDZkMWRk
NzMzOTE5ZWQ0ZjQ4NjM3ZDY3Y2U2MTVkYzZmZDA0NzEyMjcuLmI5YWMzOTZiYjAzNmQ1NWQ3MTJj
MjI3NDgyYWZhM2ZjOTc3MzA5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1t
CkBAIC0zNywxNyArMzcsMTAgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lk
KQogICAgIAogICAgIGRpc3BhdGNoX29uY2UoJmluaXRPbmNlLCBeewogI2lmICFQTEFURk9STShJ
T1MpCi0gICAgICAgIElOSVQoRHJhd0JlemVsZWRUZXh0QXJlYSk7CiAgICAgICAgIElOSVQoRHJh
d01lZGlhU2xpZGVyVHJhY2spOwogICAgICAgICBJTklUKERyYXdNZWRpYVVJUGFydCk7CiAgICAg
ICAgIElOSVQoSGl0VGVzdE1lZGlhVUlQYXJ0KTsKICAgICAgICAgSU5JVChNZWFzdXJlTWVkaWFV
SVBhcnQpOwotICAgICAgICBJTklUKEV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xl
b3BhcmQpOwotICAgICAgICBJTklUKENvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFt
ZSk7Ci0gICAgICAgIElOSVQoQ3Vyc29yKTsKLSAgICAgICAgSU5JVChOU0VsYXN0aWNEZWx0YUZv
clRpbWVEZWx0YSk7Ci0gICAgICAgIElOSVQoTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEp
OwotICAgICAgICBJTklUKE5TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKTsKICNlbmRpZgog
ICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KaW5kZXggN2MzNWQ4ZTkwYjc5MWM5NDI2MTlmZGNmNzY2MDNjOWI0MzBlZTAy
YS4uNDNiNzk2NjZkMTUxZTlkYTI5N2FjNjlmMmQwOWFkZjgwMjExZGJhYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0xOTQs
NyArMTk0LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3Qg
Q2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXIKICAgICAgICAgYXBwbGljYXRpb25O
YW1lID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX1NUUklORygiJUAgV2ViIElu
c3BlY3RvciIsICJWaXNpYmxlIG5hbWUgb2YgV2ViIEluc3BlY3RvcidzIHdlYiBwcm9jZXNzLiBU
aGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiksIChOU1N0cmluZyAqKXBhcmFt
ZXRlcnMudWlQcm9jZXNzTmFtZV07CiAgICAgZWxzZQogICAgICAgICBhcHBsaWNhdGlvbk5hbWUg
PSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIlQCBXZWIgQ29udGVu
dCIsICJWaXNpYmxlIG5hbWUgb2YgdGhlIHdlYiBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhl
IGFwcGxpY2F0aW9uIG5hbWUuIiksIChOU1N0cmluZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFt
ZV07Ci0gICAgV0tTZXRWaXNpYmxlQXBwbGljYXRpb25OYW1lKChDRlN0cmluZ1JlZilhcHBsaWNh
dGlvbk5hbWUpOworICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1
bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBfa0xTRGlzcGxheU5h
bWVLZXksIChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUsIG51bGxwdHIpOwogI2VuZGlmCiB9
CiAKQEAgLTM5NCw3ICszOTQsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2Vz
KCkKICAgICB9CiAKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVl
KERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApLCBbYWN0aXZlUGFnZVVSTHNdIHsK
LSAgICAgICAgV0tTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShDRlNUUigiTFNBY3RpdmVQ
YWdlVXNlclZpc2libGVPcmlnaW5zS2V5IiksIChfX2JyaWRnZSBDRkFycmF5UmVmKWFjdGl2ZVBh
Z2VVUkxzLmdldCgpKTsKKyAgICAgICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0o
a0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIENGU1RS
KCJMU0FjdGl2ZVBhZ2VVc2VyVmlzaWJsZU9yaWdpbnNLZXkiKSwgKF9fYnJpZGdlIENGQXJyYXlS
ZWYpYWN0aXZlUGFnZVVSTHMuZ2V0KCksIG51bGxwdHIpOwogICAgIH0pOwogI2VuZGlmCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRl
ZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVm
YXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0ZS5tbQppbmRleCAwMjY1
YmYwYzUxYTlmMTg3MTU5NjU1NWQ2OTA3ZjkwMjM3MGU3OTU3Li4zYWNjZjIyZGU4YThhMzdmNjYy
NjcwZTY2ZmQwYTYwMjI1NDUyYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdENvbnRl
eHRNZW51RGVsZWdhdGUubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTUxLDYgKzUxLDcgQEAKICNpbXBvcnQgPFdlYktpdExlZ2FjeS9E
T00uaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHBhbC9zeXN0ZW0vY2YvRGVmYXVsdFNlYXJj
aFByb3ZpZGVyLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBAaW1wbGVtZW50YXRp
b24gV2ViRGVmYXVsdFVJRGVsZWdhdGUgKFdlYkNvbnRleHRNZW51KQpAQCAtOTEsNyArOTIsNyBA
QCAtIChOU01lbnVJdGVtICopbWVudUl0ZW1XaXRoVGFnOihpbnQpdGFnIHRhcmdldDooaWQpdGFy
Z2V0IHJlcHJlc2VudGVkT2JqZWN0OihpZAogICAgICAgICAgICAgYWN0aW9uID0gQHNlbGVjdG9y
KF9zZWFyY2hXaXRoU3BvdGxpZ2h0RnJvbU1lbnU6KTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFdlYk1lbnVJdGVtVGFnU2VhcmNoV2ViOiB7Ci0gICAgICAgICAgICBSZXRhaW5Q
dHI8Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZSA9IGFkb3B0Q0YoV0tDb3B5RGVmYXVs
dFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUoKSk7CisgICAgICAgICAgICBhdXRvIHNlYXJjaFBy
b3ZpZGVyTmFtZSA9IFBBTDo6ZGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUoKTsKICAg
ICAgICAgICAgIHRpdGxlID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6VUlfU1RSSU5HX0lO
VEVSTkFMKCJTZWFyY2ggd2l0aCAlQCIsICJTZWFyY2ggd2l0aCBzZWFyY2ggcHJvdmlkZXIgY29u
dGV4dCBtZW51IGl0ZW0gd2l0aCBwcm92aWRlciBuYW1lIGluc2VydGVkIiksIHNlYXJjaFByb3Zp
ZGVyTmFtZS5nZXQoKV07CiAgICAgICAgICAgICBhY3Rpb24gPSBAc2VsZWN0b3IoX3NlYXJjaFdp
dGhHb29nbGVGcm9tTWVudTopOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94
eS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1
Z2luSG9zdFByb3h5Lm1tCmluZGV4IDE5YjM4YWUyZTgzNDMyN2RkNjczMzg2MTdiNjE3ZTg5N2Q3
NjhkOWIuLjM4NGE1OTFlZmUxNzgyNjE5ZWEyZDhkZGVhMTUwMGZkOTVkZjJjZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SG9zdFByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVk
L05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDgtMjAxNyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvSWRlbnRpZmllclJlcC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9ISVNlcnZp
Y2VzU1BJLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogZXh0ZXJuICJDIiB7
CkBAIC0xMTcsNyArMTE4LDcgQEAgTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHk6Ok5ldHNjYXBlUGx1
Z2luSG9zdFByb3h5KG1hY2hfcG9ydF90IGNsaWVudFBvcnQsIG1hY2hfcG8KICAgICAKICAgICBD
RlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpLCBkZWF0aFBvcnRTb3VyY2Uu
Z2V0KCksIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7CiAgICAgCi0gICAgbV9jbGllbnRQb3J0U291
cmNlID0gYWRvcHRDRihXS0NyZWF0ZU1JR1NlcnZlclNvdXJjZSgobWlnX3N1YnN5c3RlbV90KSZX
S1dlYktpdFBsdWdpbkNsaWVudF9zdWJzeXN0ZW0sIG1fY2xpZW50UG9ydCkpOworICAgIG1fY2xp
ZW50UG9ydFNvdXJjZSA9IGFkb3B0Q0YoTVNIQ3JlYXRlTUlHU2VydmVyU291cmNlKG51bGxwdHIs
IDAsIChtaWdfc3Vic3lzdGVtX3QpJldLV2ViS2l0UGx1Z2luQ2xpZW50X3N1YnN5c3RlbSwgMCwg
bV9jbGllbnRQb3J0LCBudWxscHRyKSk7CiAgICAgQ0ZSdW5Mb29wQWRkU291cmNlKENGUnVuTG9v
cEdldEN1cnJlbnQoKSwgbV9jbGllbnRQb3J0U291cmNlLmdldCgpLCBrQ0ZSdW5Mb29wRGVmYXVs
dE1vZGUpOwogICAgIENGUnVuTG9vcEFkZFNvdXJjZShDRlJ1bkxvb3BHZXRDdXJyZW50KCksIG1f
Y2xpZW50UG9ydFNvdXJjZS5nZXQoKSwgKENGU3RyaW5nUmVmKU5TRXZlbnRUcmFja2luZ1J1bkxv
b3BNb2RlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1BvcHVwTWVudU1hYy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1BvcHVwTWVudU1hYy5tbQppbmRleCBjYzVmODFkZmQ2NTZmYzhlNzM1ZDE4NTdmNWFl
ODUzOGQwNzRmZTE0Li44MWNmNGM3NWQyMDljYmNmMWM0NzFmMTNjZTNjZTRmMGYxYjEwYzJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1l
bnVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9w
dXBNZW51TWFjLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwOCwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
UGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Qb3B1cE1lbnVDbGllbnQuaD4KICNpbXBvcnQgPFdl
YktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8cGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51
Lmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKQEAgLTIxNyw3ICsyMTgsNyBAQCB2b2lkIFBvcHVwTWVudU1hYzo6c2hvdyhj
b25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKICAgICAgICAgYnJlYWs7
CiAgICAgfQogCi0gICAgV0tQb3B1cE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dpZHRo
KHIpKSwgZHVtbXlWaWV3LmdldCgpLCBpbmRleCwgdG9OU0ZvbnQoZm9udCksIGNvbnRyb2xTaXpl
LCAhbV9jbGllbnQtPm1lbnVTdHlsZSgpLmhhc0RlZmF1bHRBcHBlYXJhbmNlKCkpOworICAgIFBB
TDo6cG9wVXBNZW51KG1lbnUsIGxvY2F0aW9uLCByb3VuZGYoTlNXaWR0aChyKSksIGR1bW15Vmll
dy5nZXQoKSwgaW5kZXgsIHRvTlNGb250KGZvbnQpLCBjb250cm9sU2l6ZSwgIW1fY2xpZW50LT5t
ZW51U3R5bGUoKS5oYXNEZWZhdWx0QXBwZWFyYW5jZSgpKTsKIAogICAgIFttX3BvcHVwIGRpc21p
c3NQb3BVcF07CiAgICAgW2R1bW15VmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVy
ZmFjZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3Rl
bUludGVyZmFjZS5tbQppbmRleCBiZjcxNmI3NTdiMGM1OTczN2Y4ODMxMDJlYTUwNTg1OTMwMDIz
N2VhLi5hOTkyOThiZjY4MGRhZWIzMDdiODRiMjFhYzcwNTQwNDZkODM3ZGFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZh
Y2UubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lz
dGVtSW50ZXJmYWNlLm1tCkBAIC00MywyNCArNDMsMTEgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3Rl
bUludGVyZmFjZSh2b2lkKQogICAgICAgICByZXR1cm47CiAKICNpZiAhUExBVEZPUk0oSU9TKQot
ICAgIElOSVQoRHJhd0JlemVsZWRUZXh0QXJlYSk7CiAgICAgSU5JVChEcmF3TWVkaWFVSVBhcnQp
OwogICAgIElOSVQoRHJhd01lZGlhU2xpZGVyVHJhY2spOwogICAgIElOSVQoSGl0VGVzdE1lZGlh
VUlQYXJ0KTsKICAgICBJTklUKE1lYXN1cmVNZWRpYVVJUGFydCk7CiAjZW5kaWYKIAotI2lmICFQ
TEFURk9STShJT1MpCi0gICAgSU5JVChFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dM
ZW9wYXJkKTsKLSAgICBJTklUKENvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSk7
Ci0gICAgSU5JVChDdXJzb3IpOwotI2VuZGlmCi0KLSNpZiAhUExBVEZPUk0oSU9TKQotICAgIElO
SVQoTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEpOwotICAgIElOSVQoTlNFbGFzdGljRGVsdGFG
b3JSZWJvdW5kRGVsdGEpOwotICAgIElOSVQoTlNSZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEp
OwotI2VuZGlmCi0KICAgICBkaWRJbml0ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDI3NGExNjg3MDU3NDU0NDE0YWI5
Mjk3NWE1YzA0OGM2MGVlNWE1OGEuLmE4Y2M5YzFkZDljNjU1ODdkYmJiOTIyNmIxOWEzOWM0OTRi
OGViZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbQpAQCAtMTMxLDYgKzEzMSw3IEBACiAjaW1wb3J0IDxkbGZjbi5oPgogI2ltcG9ydCA8bGlt
aXRzPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU1VSTEZpbGVUeXBlTWFwcGluZ3NTUEkuaD4K
KyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaD4KICNpbXBvcnQgPHBhbC9z
cGkvbWFjL05TU3BlbGxDaGVja2VyU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1ZpZXdT
UEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TV2luZG93U1BJLmg+CkBAIC00NjgyLDcgKzQ2
ODMsNyBAQCAtICh2b2lkKXNldERhdGFTb3VyY2U6KFdlYkRhdGFTb3VyY2UgKilkYXRhU291cmNl
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmICghX3ByaXZhdGUtPmluc3RhbGxlZFRyYWNraW5n
QXJlYSkgewogICAgICAgICBOU1RyYWNraW5nQXJlYU9wdGlvbnMgb3B0aW9ucyA9IE5TVHJhY2tp
bmdNb3VzZU1vdmVkIHwgTlNUcmFja2luZ01vdXNlRW50ZXJlZEFuZEV4aXRlZCB8IE5TVHJhY2tp
bmdJblZpc2libGVSZWN0IHwgTlNUcmFja2luZ0N1cnNvclVwZGF0ZTsKLSAgICAgICAgaWYgKFdL
UmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlTGVnYWN5CisgICAg
ICAgIGlmIChfTlNSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVM
ZWdhY3kKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgICAgICAgICB8fCBbW3Nl
bGYgX3dlYlZpZXddIF9kYXNoYm9hcmRCZWhhdmlvcjpXZWJEYXNoYm9hcmRCZWhhdmlvckFsd2F5
c1NlbmRNb3VzZUV2ZW50c1RvQWxsV2luZG93c10KICNlbmRpZgpAQCAtNjM1NCw3ICs2MzU1LDcg
QEAgLSAodm9pZClhdHRhY2hSb290TGF5ZXI6KENBTGF5ZXIgKilsYXllcgogICAgIGlmIChbW3Nl
bGYgX3dlYlZpZXddIF9wb3N0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdOb3RpZmljYXRpb25zXSkK
ICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZp
Y2F0aW9uTmFtZTpfV2ViVmlld0RpZFN0YXJ0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNh
dGlvbiBvYmplY3Q6W3NlbGYgX3dlYlZpZXddIHVzZXJJbmZvOm5pbF07CiAKLSAgICBpZiAoV0tF
eGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZUxpb24oKSkKKyAgICBpZiAoIV9DRkV4ZWN1dGFi
bGVMaW5rZWRPbk9yQWZ0ZXIoQ0ZTeXN0ZW1WZXJzaW9uTW91bnRhaW5MaW9uKSkKICAgICAgICAg
W3ZpZXdMYXllciBzZXRHZW9tZXRyeUZsaXBwZWQ6WUVTXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGFkMjlhODIyNTI5ODljNjZhNjVmNjU4
OTRmNGU4NjExMzUxOTFjMzAuLjRlOGI4MjE2MTFiODg4ZDQ3ZTYyOGRkZWY5ZDNiZWI1OTg1MThm
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIw
OSw2ICsyMDksNyBAQAogI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KICNpbXBvcnQgPG9iamMvcnVu
dGltZS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KKyNpbXBvcnQgPHBh
bC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNUb3Vj
aEJhclNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU1VSTEZpbGVUeXBlTWFwcGluZ3NT
UEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TUmVzcG9uZGVyU1BJLmg+CkBAIC0yNjA5LDE2
ICsyNjEwLDE2IEBAIC0gKGlkKV9mb3JtRGVsZWdhdGVGb3JTZWxlY3RvcjooU0VMKXNlbGVjdG9y
CiAjaWYgIVBMQVRGT1JNKElPUykKIC0gKEJPT0wpX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1
aXJrCiB7Ci0gICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IFdLQXBwVmVyc2lvbkNoZWNrTGVz
c1RoYW4oQCJjb20uYWRvYmUuQWNyb2JhdCIsIC0xLCA5LjApCi0gICAgICAgIHx8IFdLQXBwVmVy
c2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuQWNyb2JhdC5Qcm8iLCAtMSwgOS4wKQotICAg
ICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLlJlYWRlciIsIC0x
LCA5LjApCi0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUu
ZGlzdGlsbGVyIiwgLTEsIDkuMCkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhh
bihAImNvbS5hZG9iZS5Db250cmlidXRlIiwgLTEsIDQuMikKLSAgICAgICAgfHwgV0tBcHBWZXJz
aW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5kcmVhbXdlYXZlci05LjAiLCAtMSwgOS4xKQot
ICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLm1hY3JvbWVkaWEuZmly
ZXdvcmtzIiwgLTEsIDkuMSkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihA
ImNvbS5hZG9iZS5JbkNvcHkiLCAtMSwgNS4xKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVj
a0xlc3NUaGFuKEAiY29tLmFkb2JlLkluRGVzaWduIiwgLTEsIDUuMSkKLSAgICAgICAgfHwgV0tB
cHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5Tb3VuZGJvb3RoIiwgLTEsIDIpOwor
ICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihD
RlNUUigiY29tLmFkb2JlLkFjcm9iYXQiKSwgLTEsIDkuMCkKKyAgICAgICAgfHwgX0NGQXBwVmVy
c2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5BY3JvYmF0LlBybyIpLCAtMSwgOS4w
KQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2Jl
LlJlYWRlciIpLCAtMSwgOS4wKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhh
bihDRlNUUigiY29tLmFkb2JlLmRpc3RpbGxlciIpLCAtMSwgOS4wKQorICAgICAgICB8fCBfQ0ZB
cHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLkNvbnRyaWJ1dGUiKSwgLTEs
IDQuMikKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5h
ZG9iZS5kcmVhbXdlYXZlci05LjAiKSwgLTEsIDkuMSkKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lv
bkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5tYWNyb21lZGlhLmZpcmV3b3JrcyIpLCAtMSwgOS4x
KQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2Jl
LkluQ29weSIpLCAtMSwgNS4xKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhh
bihDRlNUUigiY29tLmFkb2JlLkluRGVzaWduIiksIC0xLCA1LjEpCisgICAgICAgIHx8IF9DRkFw
cFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuU291bmRib290aCIpLCAtMSwg
Mik7CiAKICAgICByZXR1cm4gbmVlZHNRdWlyazsKIH0KQEAgLTI2MjYsMTMgKzI2MjcsMTMgQEAg
LSAoQk9PTClfbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsKIC0gKEJPT0wpX25lZWRzTGlu
a0VsZW1lbnRUZXh0Q1NTUXVpcmsKIHsKICAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gIVdl
YktpdExpbmtlZE9uT3JBZnRlcihXRUJLSVRfRklSU1RfVkVSU0lPTl9XSVRIT1VUX0xJTktfRUxF
TUVOVF9URVhUX0NTU19RVUlSSykKLSAgICAgICAgJiYgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhh
bihAImNvbS5lLWZyb250aWVyLnNoYWRlMTAiLCAtMSwgMTAuNik7CisgICAgICAgICYmIF9DRkFw
cFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uZS1mcm9udGllci5zaGFkZTEwIiksIC0x
LCAxMC42KTsKICAgICByZXR1cm4gbmVlZHNRdWlyazsKIH0KIAogLSAoQk9PTClfbmVlZHNJc0xv
YWRpbmdJbkFQSVNlbnNlUXVpcmsKIHsKLSAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gV0tB
cHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hcHBsZS5pQWRQcm9kdWNlciIsIC0xLCAyLjEp
OworICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhh
bihDRlNUUigiY29tLmFwcGxlLmlBZFByb2R1Y2VyIiksIC0xLCAyLjEpOwogICAgIAogICAgIHJl
dHVybiBuZWVkc1F1aXJrOwogfQpAQCAtMjY0NSw3ICsyNjQ2LDcgQEAgLSAoQk9PTClfbmVlZHNL
ZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MKIAogLSAoQk9PTClfbmVlZHNGcmFtZUxv
YWREZWxlZ2F0ZVJldGFpblF1aXJrCiB7Ci0gICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IFdL
QXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uZXF1aW51eC5pU2FsZTUiLCAtMSwgNS42KTsg
ICAgCisgICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVja0xlc3NU
aGFuKENGU1RSKCJjb20uZXF1aW51eC5pU2FsZTUiKSwgLTEsIDUuNik7CiAgICAgcmV0dXJuIG5l
ZWRzUXVpcms7CiB9CiAKQEAgLTI5MjcsNyArMjkyOCw3IEBAIC0gKHZvaWQpX3ByZWZlcmVuY2Vz
Q2hhbmdlZDooV2ViUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcwogICAgIHNldHRpbmdzLnNldE5l
ZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrKFtzZWxmIF9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRp
bmdRdWlya10pOwogICAgIHNldHRpbmdzLnNldFRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNo
ZWV0KFtzZWxmIF9uZWVkc0xpbmtFbGVtZW50VGV4dENTU1F1aXJrXSk7CiAgICAgc2V0dGluZ3Mu
c2V0TmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MoW3NlbGYgX25lZWRzS2V5
Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzXSk7Ci0gICAgc2V0dGluZ3Muc2V0RW5mb3Jj
ZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUoIVdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJj
b20uYXBwbGUuaVdlYiIsIC0xLCAyLjEpKTsKKyAgICBzZXR0aW5ncy5zZXRFbmZvcmNlQ1NTTUlN
RVR5cGVJbk5vUXVpcmtzTW9kZSghX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNv
bS5hcHBsZS5pV2ViIiksIC0xLCAyLjEpKTsKICAgICBzZXR0aW5ncy5zZXROZWVkc0lzTG9hZGlu
Z0luQVBJU2Vuc2VRdWlyayhbc2VsZiBfbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmtdKTsK
ICAgICBzZXR0aW5ncy5zZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoW3ByZWZlcmVuY2VzIHRleHRB
cmVhc0FyZVJlc2l6YWJsZV0pOwogICAgIHNldHRpbmdzLnNldEV4cGVyaW1lbnRhbE5vdGlmaWNh
dGlvbnNFbmFibGVkKFtwcmVmZXJlbmNlcyBleHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxl
ZF0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320993</attachid>
            <date>2017-09-15 21:58:42 -0700</date>
            <delta_ts>2017-09-15 22:07:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177029-20170915215841.patch</filename>
            <type>text/plain</type>
            <size>87199</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRhMDI0YTAxYjFiZjQy
OGFjOWFmNzIwZmJiOGY3NjQyNmRlZGM1OC4uODdhYWJmOGFhZjNkZjM0MWM4YTIyMjI0YjAwOWJk
NDEyNDA3MTk2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQgbWlzY2Vs
bGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWc6IFVzZWQgLWZvcmNlX2xvYWQgb2YgbGliUEFMIGluc3RlYWQgb2YgLU9iakMuIFRo
aXMgZm9yY2VzCisgICAgICAgIHRoZSBsaW5rZXIgdG8gaW5jbHVkZSBib3RoIE9iamVjdGl2ZS1D
IGFuZCBDIFBBTCBzeW1ib2xzIGluIFdlYkNvcmUuIFRoaXMgaXMgbmVlZGVkIGZvcgorICAgICAg
ICBQQUw6OnBvcFVwTWVudSwgd2hpY2ggaXMgdXNlZCBieSBXZWJLaXQgYW5kIFdlYktpdExlZ2Fj
eSBidXQgbm90IFdlYkNvcmUuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3Ry
aW5nc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNo
V2ViKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6ZWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKToKKyAgICAgICAgKFdlYkNv
cmU6OmVsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpyZWJv
dW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6
OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6V0tDb3JlQ3Vyc29yX2Nv
cmVDdXJzb3JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvcmVDdXJzb3JDbGFzcyk6
CisgICAgICAgIChXZWJDb3JlOjpjb3JlQ3Vyc29yQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6
Y3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3Ig
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBhaW50VGV4dEFyZWEpOgorCiAyMDE3LTA5LTE1ICBTYWlkIEFib3UtSGFs
bGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgY2FsbGluZyBT
dHJpbmc6OmZvcm1hdCgpIGluIFBsYXRmb3JtQ0FGaWx0ZXJzOjpzZXRGaWx0ZXJzT25MYXllcigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwppbmRleCAyNTIzYjY4MjM1MDRlZWM3Zjc4NzBhMGEyNjBkMjMwNTFh
ZTNiYjkzLi5iODc3NTQyNzc3YzJiYjVlMmE1NjI2Mzg2ZjE4MTZiNjk5NWE2YTBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNy0wOS0xNSAgQW5keSBFc3RlcyAgPGFl
c3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gVXBsb2FkIG1pc2NlbGxhbmVvdXMgV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmg6CisgICAgICAgICogcGFsL3NwaS9j
b2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJLmguCisgICAgICAgICogcGFsL3NwaS9tYWMv
SElTZXJ2aWNlc1NQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TQ2VsbFNQSS5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgor
ICAgICAgICAqIHBhbC9zcGkvbWFjL05TTWVudVNQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFj
L05TU2Nyb2xsVmlld1NQSS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TU2Nyb2xsZXJJ
bXBTUEkuaDoKKyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVz
U1BJLmguCisgICAgICAgIChQQUw6OmRlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKToK
KyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAg
ICAgICAqIHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBhbC9zeXN0
ZW0vbWFjL1BvcHVwTWVudS5tbTogQWRkZWQuCisgICAgICAgIChQQUw6OnBvcFVwTWVudSk6CisK
IDIwMTctMDktMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IHRoZSBtYWNPUyBDTWFrZSBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNDAyZjFlM2M4NjM5
ZGJmZDIyY2Q1OWI4ZDY2YzAxNjg5OTZlMDYxLi42M2I5ZGFhYThhMTMzOTk1ZGI5OTgyNjZlYjVh
ZGEwODE2OGQ3MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQgbWlzY2Vs
bGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9OZXR3
b3JrUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRp
YWxpemVQcm9jZXNzTmFtZSk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJv
Y2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVBy
b2Nlc3NOYW1lKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVByb2Nlc3NN
YWMubW06CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vz
c05hbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAg
ICAgKFdlYktpdDo6dHJhY2tpbmdBcmVhT3B0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjptaWdodEJlZ2luU2Nyb2xsV2hpbGVJbmFjdGl2ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9w
dXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChXZWJLaXQ6
Ok5ldHNjYXBlUGx1Z2luOjpwb3BVcENvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpo
YW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3Rl
bUludGVyZmFjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKToKKwogMjAx
Ny0wOS0xNSAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAgICAgV1RG
OiB1c2UgRm9yd2FyZC5oIHdoZW4gYXBwcm9wcmlhdGUgaW5zdGVhZCBvZiBWZWN0b3IuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDhkOThkNDAwNjY2YmRhMmE5MTE2YzQyNDAyZTEw
NDY0NTYyMjg1MDcuLmNlNDVjYTk0YzcyNmQ4NjYxZTIwYTg2MDUxOTBiMjhkZGY1YmJjYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAxNy0wOS0xNSAg
QW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01hY10gVXBsb2FkIG1p
c2NlbGxhbmVvdXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZWZhdWx0RGVsZWdhdGVzL1dl
YkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJEZWZhdWx0VUlE
ZWxlZ2F0ZSBtZW51SXRlbVdpdGhUYWc6dGFyZ2V0OnJlcHJlc2VudGVkT2JqZWN0Ol0pOgorICAg
ICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5Ib3N0UHJv
eHkpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbToKKyAgICAgICAg
KFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVt
SW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNl
dERhdGFTb3VyY2U6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0dGFjaFJvb3RMYXllcjpd
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX25l
ZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX25lZWRz
TGlua0VsZW1lbnRUZXh0Q1NTUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNJc0xv
YWRpbmdJbkFQSVNlbnNlUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNGcmFtZUxv
YWREZWxlZ2F0ZVJldGFpblF1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2Vz
Q2hhbmdlZDpdKToKKworMjAxNy0wOS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+
CisKICAgICAgICAgW0NvY29hXSBVcHN0cmVhbSBNZWRpYVJlbW90ZSBhbmQgVmlkZW9Ub29sYm94
IFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Njk1MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwppbmRleCA3NjY2N2JhZTc0MDQ3MWQ3NDVhOTUx
MjIwNWViMWNmNDlkN2EzMjM1Li5iMDNkZDRjZThhMjM2YjczZTg4OThlN2Y5ZGJkMzhmNWZhY2M4
MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25m
aWcKQEAgLTc3LDcgKzc3LDcgQEAgTElCV0VCUlRDX0xJQlJBUllfRElSX1VTRV9PVkVSUklERV9G
UkFNRVdPUktTX0RJUl9OTyA9ICQoV0VCQ09SRV9GUkFNRVdPUktTX0RJUikKIExJQldFQlJUQ19M
SUJSQVJZX0RJUl9VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfWUVTID0gJChXS19PVkVSUklE
RV9GUkFNRVdPUktTX0RJUik7CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19S
RUxPQ0FUQUJMRV9GUkFNRVdPUktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9MU19MREZM
QUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk0pOwotT1RIRVJfTERGTEFHU19CQVNFID0gLWxz
cWxpdGUzIC1sb2JqYyAtbEFOR0xFIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgTWV0
YWwgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVfY2xpZW50
IFdlYktpdExlZ2FjeSAtT2JqQzsKK09USEVSX0xERkxBR1NfQkFTRSA9IC1sc3FsaXRlMyAtbG9i
amMgLWxBTkdMRSAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIE1ldGFsIC1hbGxvd2Fi
bGVfY2xpZW50IFdlYkNvcmVUZXN0U3VwcG9ydCAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRMZWdh
Y3kgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlBBTC5hOwogLy8gRklYTUU6
IFJlZHVjZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnQgPHJkYXI6Ly9wcm9ibGVtLzMx
ODIzOTY5PgogT1RIRVJfTERGTEFHU19CQVNFX2lvcyA9ICQoT1RIRVJfTERGTEFHU19CQVNFKSAt
ZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENv
cmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29y
ayBNb2JpbGVDb3JlU2VydmljZXMgLWZyYW1ld29yayBPcGVuR0xFUyAtbE1vYmlsZUdlc3RhbHQg
JChXS19JT1NfQklOQ09NUEFUX0xERkxBR1MpIC1hbGxvd2FibGVfY2xpZW50IFdlYktpdCAtYWxs
b3dhYmxlX2NsaWVudCBpVHVuZXNVIC1hbGxvd2FibGVfY2xpZW50IENhc2FibGFuY2EgLWFsbG93
YWJsZV9jbGllbnQgUmVtb3RlIC1hbGxvd2FibGVfY2xpZW50IFRWQm9va3MgLWFsbG93YWJsZV9j
bGllbnQgRHVtcFJlbmRlclRyZWUgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0VGVzdFJ1bm5lciAt
YWxsb3dhYmxlX2NsaWVudCBUZXN0V2ViS2l0QVBJOwogT1RIRVJfTERGTEFHU19QTEFURk9STVtz
ZGs9aXBob25lb3MqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgLWZyYW1ld29yayBJT1N1
cmZhY2UgLWZyYW1ld29yayBHcmFwaGljc1NlcnZpY2VzICQoTElCV0VCUlRDX0xERkxBR1MpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGNhYjE0Y2Q0YTdmZGIxYjdlZjRlYjg1NWRkYTlhZWFkNWVhOGM0OWIuLmJjY2U5MjYxNTM4
MmFiZmNhYzExYzkyNzUwNjRjY2I4OTUwYjRkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNyw2ICsxMDcsMTIgQEAKIAkJ
QTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8q
IFdlYlBhbmVsLm1tICovOyB9OwogCQlBMTA4MjZGRTFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFw
aGljc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTEwODI2RkQxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCAqLzsgfTsKIAkJQTEx
NzVCNDkxRjZBRkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNDgxRjZBRkY4RTAwQzRC
OUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovOyB9OworCQlBMTE3NUI0QjFGNkIyRDdFMDBD
NEI5RjAgLyogTlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggKi87IH07
CisJCUExMTc1QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRDMUY2QjMzNzMwMEM0QjlG
MCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsKKwkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYwIC8qIFBv
cHVwTWVudS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMTc1QjREMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gKi87IH07CisJCUExMTc1
QjU3MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjU1MUY2QjQ3MDUwMEM0
QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCAqLzsgfTsKKwkJQTExNzVCNTgxRjZCNDcw
NTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI1NjFGNkI0NzA1MDBDNEI5RjAgLyog
RGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJQTExNzVCNUExRjZCNEE4NDAwQzRC
OUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQ
SS5oICovOyB9OwogCQlBMUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1RENFMUY1
NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFGMEREMEVB
MDBCNzE5NTQgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9
OwogCQlBMzBENDEyMjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMUYxRjBERDBFQTAwQjcx
OTU0IC8qIEtpbGxSaW5nLmNwcCAqLzsgfTsKQEAgLTIyOSw2ICsyMzUsMTIgQEAKIAkJQTEwODI2
RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMDgyNkZEMUY1OEE0
MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TR3JhcGhpY3NT
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNzVCNDgxRjZBRkY4RTAwQzRC
OUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hTeW50aGVz
aXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEExRjZCMkQ3RTAw
QzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0NlbGxTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEMxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVw
TWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFBvcHVwTWVudS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92
aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTE3NUI1OTFGNkI0QTg0MDBDNEI5RjAgLyog
TlNTY3JvbGxWaWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TU2Nyb2xsVmlld1NQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYgLyogTWV0
YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0YWRhdGFTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLaWxsUmluZy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDcsNiArMzE5LDcgQEAKIAkJCQkwQzJEQTEyODFG
M0JFQjQ5MDBEQkMzMTcgLyogSU9SZXR1cm5TUEkuaCAqLywKIAkJCQkwQzJEQTEyOTFGM0JFQjQ5
MDBEQkMzMTcgLyogSU9TdXJmYWNlU1BJLmggKi8sCiAJCQkJMEMyREExMkExRjNCRUI0OTAwREJD
MzE3IC8qIElPVHlwZXNTUEkuaCAqLywKKwkJCQkwQzVBRjkxMjFGNDNBNEM3MDAyRUFDMDIgLyog
TGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzJEQTEyQjFGM0JFQjQ5MDBEQkMzMTcgLyog
TGlua1ByZXNlbnRhdGlvblNQSS5oICovLAogCQkJCTBDMkRBMTJDMUYzQkVCNDkwMERCQzMxNyAv
KiBNYWNoVk1TUEkuaCAqLywKIAkJCQkwQzJEQTEyRDFGM0JFQjQ5MDBEQkMzMTcgLyogTkVGaWx0
ZXJTb3VyY2VTUEkuaCAqLywKQEAgLTMzNiw3ICszNDksNiBAQAogCQkJCTBDNUFGOTBGMUY0M0E0
QzcwMDJFQUMwMiAvKiBDb3JlVUlTUEkuaCAqLywKIAkJCQkwQzVBRjkxMDFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggKi8sCiAJCQkJMEM1QUY5MTExRjQzQTRDNzAwMkVB
QzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCAqLywKLQkJCQkwQzVBRjkxMjFGNDNBNEM3MDAy
RUFDMDIgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzVBRjkxMzFGNDNBNEM3MDAy
RUFDMDIgLyogTWVkaWFQbGF5ZXJTUEkuaCAqLywKIAkJCQkwQzVBRjkxNDFGNDNBNEM3MDAyRUFD
MDIgLyogTW9iaWxlR2VzdGFsdFNQSS5oICovLAogCQkJCTBDNUFGOTE1MUY0M0E0QzcwMDJFQUMw
MiAvKiBPcGVuR0xFU1NQSS5oICovLApAQCAtMzU5LDYgKzM3MSw3IEBACiAJCQkJQTFGNTVEQ0Ux
RjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzQxRjQ1MTMw
RjAwRjRFQkI2IC8qIE5TQWNjZXNzaWJpbGl0eVNQSS5oICovLAogCQkJCTBDNzc4NTc1MUY0NTEz
MEYwMEY0RUJCNiAvKiBOU0FwcGxpY2F0aW9uU1BJLmggKi8sCisJCQkJQTExNzVCNEExRjZCMkQ3
RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovLAogCQkJCTBDNzc4NTc2MUY0NTEzMEYwMEY0RUJC
NiAvKiBOU0V2ZW50U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzcxRjQ1MTMwRjAwRjRFQkI2IC8qIE5T
Rm9udFNQSS5oICovLAogCQkJCUExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNz
U1BJLmggKi8sCkBAIC0zNzAsNiArMzgzLDcgQEAKIAkJCQkwQzc3ODU3QzFGNDUxMzBGMDBGNEVC
QjYgLyogTlNTY3JvbGxlckltcFNQSS5oICovLAogCQkJCTBDNzc4NTdEMUY0NTEzMEYwMEY0RUJC
NiAvKiBOU1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggKi8sCiAJCQkJMEM3Nzg1N0UxRjQ1MTMw
RjAwRjRFQkI2IC8qIE5TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yU1BJLmggKi8sCisJCQkJ
QTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oICovLAogCQkJCTBD
Nzc4NTdGMUY0NTEzMEYwMEY0RUJCNiAvKiBOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggKi8s
CiAJCQkJMEM3Nzg1ODAxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2hhcmluZ1NlcnZpY2VTUEkuaCAq
LywKIAkJCQkwQzc3ODU4MTFGNDUxMzBGMDBGNEVCQjYgLyogTlNTcGVsbENoZWNrZXJTUEkuaCAq
LywKQEAgLTQ1MCw2ICs0NjQsMTUgQEAKIAkJCXBhdGggPSBDb25maWd1cmF0aW9uczsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUExMTc1QjU0MUY2QjQ2RDYwMEM0QjlGMCAv
KiBjZiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQTEx
NzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgKi8sCisJ
CQkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICov
LAorCQkJKTsKKwkJCXBhdGggPSBjZjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCUEzMEQ0MTFEMUYwREQwQUMwMEI3MTk1NCAvKiB0ZXh0ICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTQ3MSw2ICs0OTQsNyBAQAogCQlBMzc4OEU5RjFG
MDVCN0NFMDA2Nzk0MjUgLyogc3lzdGVtICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQlBMTE3NUI1NDFGNkI0NkQ2MDBDNEI5RjAgLyogY2YgKi8sCiAJCQkJ
QTNBQjZFNUQxRjNEMUUyODAwOUMxNEIxIC8qIGNvY29hICovLAogCQkJCUEzNzg4RUEwMUYwNUI3
RTIwMDY3OTQyNSAvKiBtYWMgKi8sCiAJCQkJQTNBQjZFNTExRjNEMURDNTAwOUMxNEIxIC8qIFNs
ZWVwRGlzYWJsZXIuY3BwICovLApAQCAtNDg2LDYgKzUxMCw4IEBACiAJCUEzNzg4RUEwMUYwNUI3
RTIwMDY3OTQyNSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCUExMTc1QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLywKKwkJ
CQlBMTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tICovLAogCQkJCUEzNzg4
RTlEMUYwNUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1hYy5tbSAqLywKIAkJCQlBM0FCNkU2MjFGM0Qy
MTdGMDA5QzE0QjEgLyogU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oICovLAogCQkJCUEzQUI2RTYz
MUYzRDIxN0YwMDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tICovLApAQCAtNTI4
LDYgKzU1NCw3IEBACiAJCQkJMEMyREExNDExRjNCRUI0OTAwREJDMzE3IC8qIERhdGFEZXRlY3Rv
cnNDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVCQjYg
LyogRGF0YURldGVjdG9yc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUExRjQzQTRD
NzAwMkVBQzAyIC8qIERhdGFEZXRlY3RvcnNVSVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEx
NzVCNTcxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyRDlFNzMxRUVGNUFGNjAwREJDMzE3IC8qIEV4cG9ydE1hY3Jvcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTEwMjY1ODcxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5kYXRpb25T
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFCMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFw
aGljc1NlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTU1Niw2ICs1ODMsNyBAQAogCQkJ
CTBDMkRBMTRBMUYzQkVCNDkwMERCQzMxNyAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDMkRBMTRCMUYzQkVCNDkwMERCQzMxNyAvKiBOU0J1dHRvbkNlbGxT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTRDMUYzQkVCNDkwMERCQzMxNyAvKiBOU0Nh
bGVuZGFyRGF0ZVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTExNzVCNEIxRjZCMkQ3RTAwQzRC
OUYwIC8qIE5TQ2VsbFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNEQxRjNCRUI0OTAw
REJDMzE3IC8qIE5TQ29sb3JTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThGMUY0NTEz
MEYwMEY0RUJCNiAvKiBOU0V2ZW50U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0RTFG
M0JFQjQ5MDBEQkMzMTcgLyogTlNFeHRlbnNpb25TUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTcw
LDYgKzU5OCw3IEBACiAJCQkJMEM3Nzg1OTUxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsZXJJ
bXBTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk2MUY0NTEzMEYwMEY0RUJCNiAvKiBO
U1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5NzFG
NDUxMzBGMDBGNEVCQjYgLyogTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JTUEkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUExMTc1QjVBMUY2QjRBODQwMEM0QjlGMCAvKiBOU1Njcm9sbFZpZXdT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk4MUY0NTEzMEYwMEY0RUJCNiAvKiBOU1No
YXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5OTFGNDUx
MzBGMDBGNEVCQjYgLyogTlNTaGFyaW5nU2VydmljZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEM3Nzg1OUExRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU3BlbGxDaGVja2VyU1BJLmggaW4gSGVhZGVy
cyAqLywKQEAgLTU4NCw2ICs2MTMsNyBAQAogCQkJCTBDNUFGOTFGMUY0M0E0QzcwMDJFQUMwMiAv
KiBPcGVuR0xFU1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNTUxRjNCRUI0OTAwREJD
MzE3IC8qIFBhc3NLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTlFMUY0NTEzMEYw
MEY0RUJCNiAvKiBQSVBTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMTc1QjRFMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU2MUYzQkVC
NDkwMERCQzMxNyAvKiBwdGhyZWFkU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5RjFG
NDUxMzBGMDBGNEVCQjYgLyogUVRLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU3
MUYzQkVCNDkwMERCQzMxNyAvKiBRdWFydHpDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTY5
Miw4ICs3MjIsMTAgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxl
cyA9ICgKIAkJCQkxQzA5RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9u
Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExMTc1QjU4MUY2QjQ3MDUwMEM0QjlGMCAv
KiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTMwRDQxMjIx
RjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0
MTI1MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUExMTc1QjRGMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBM0M2NkNEQzFGNDYyRDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUEzQUI2RTUyMUYzRDFEQzUwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUEzQUI2RTYwMUYzRDFFMzkwMDlDMTRCMSAvKiBTbGVlcERpc2Fi
bGVyQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaAppbmRleCBmYzhjZDc5Mjc2MmJmMGE3NjIwYTEyYWNmMTIw
ZmEzMDlhMzc4ZmZjLi5mNTA2Y2IyNmExZGNhYTBjZDUxOGUyYTllOGNkNWFlZjg3Y2IzY2Y3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NyArMjgsMTYgQEAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgog
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24v
Q0ZQcml2Lmg+CisKKyNlbHNlCisKK3R5cGVkZWYgQ0ZfRU5VTShDRkluZGV4LCBDRlN5c3RlbVZl
cnNpb24pIHsKKyAgICBDRlN5c3RlbVZlcnNpb25MaW9uID0gNywKKyAgICBDRlN5c3RlbVZlcnNp
b25Nb3VudGFpbkxpb24gPSA4LAorfTsKKwogI2VuZGlmCiAKIFdURl9FWFRFUk5fQ19CRUdJTgpA
QCAtMzcsNSArNDYsMTEgQEAgQ0ZEaWN0aW9uYXJ5UmVmIF9DRkNvcHlTeXN0ZW1WZXJzaW9uRGlj
dGlvbmFyeSh2b2lkKTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGU3lzdGVtVmVyc2lv
blByb2R1Y3RWZXJzaW9uS2V5OwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZTeXN0ZW1W
ZXJzaW9uQnVpbGRWZXJzaW9uS2V5OwogCitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NGV2Vi
U2VydmljZXNUeXBlV2ViU2VhcmNoOworZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDRldlYlNl
cnZpY2VzUHJvdmlkZXJEZWZhdWx0RGlzcGxheU5hbWVLZXk7CitDRkRpY3Rpb25hcnlSZWYgX0NG
V2ViU2VydmljZXNDb3B5UHJvdmlkZXJJbmZvKENGU3RyaW5nUmVmIHNlcnZpY2VUeXBlLCBCb29s
ZWFuKiBvdXRJc1VzZXJTZWxlY3Rpb24pOworCitCb29sZWFuIF9DRkFwcFZlcnNpb25DaGVja0xl
c3NUaGFuKENGU3RyaW5nUmVmIGJ1bmRsZUlELCBpbnQgbGlua2VkT25Bbk9sZGVyU3lzdGVtVGhh
biwgZG91YmxlIHZlcnNpb25OdW1iZXJMZXNzVGhhbik7CisKIFdURl9FWFRFUk5fQ19FTkQKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTGF1bmNoU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2Vz
U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTBhMGVhM2I1YjAzOTVjNWE5MzEyNWQzNWI5MDk3NjVmZDQyMGEy
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0xh
dW5jaFNlcnZpY2VzU1BJLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCisjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbXBvcnQgPExhdW5j
aFNlcnZpY2VzL0xhdW5jaFNlcnZpY2VzUHJpdi5oPgorI2VsaWYgUExBVEZPUk0oSU9TKQorI2lt
cG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL0xhdW5jaFNlcnZpY2VzUHJpdi5oPgorI2VuZGlmCisK
KyNlbmRpZgorCitAY2xhc3MgTFNBcHBMaW5rOwordHlwZWRlZiB2b2lkICheTFNBcHBMaW5rQ29t
cGxldGlvbkhhbmRsZXIpKExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAqZXJyb3IpOwordHlw
ZWRlZiB2b2lkICheTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKShCT09MIHN1Y2Nlc3Ms
IE5TRXJyb3IgKmVycm9yKTsKKworI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCitAaW50
ZXJmYWNlIExTUmVzb3VyY2VQcm94eSA6IE5TT2JqZWN0IDxOU0NvcHlpbmcsIE5TU2VjdXJlQ29k
aW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExTQnVuZGxlUHJveHkgOiBMU1Jlc291cmNlUHJveHkg
PE5TU2VjdXJlQ29kaW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExTQXBwbGljYXRpb25Qcm94eSA6
IExTQnVuZGxlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgorLSAoTlNTdHJpbmcgKilsb2NhbGl6ZWRO
YW1lRm9yQ29udGV4dDooTlNTdHJpbmcgKiljb250ZXh0OworQGVuZAorCitAaW50ZXJmYWNlIExT
QXBwTGluayA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KK0BlbmQKKworQGludGVyZmFjZSBM
U0FwcExpbmsgKCkKKysgKHZvaWQpZ2V0QXBwTGlua1dpdGhVUkw6KE5TVVJMICopYVVSTCBjb21w
bGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpY29tcGxldGlvbkhhbmRs
ZXI7CisrICh2b2lkKW9wZW5XaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxldGlvbkhhbmRsZXI6
KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZv
aWQpb3BlbkluV2ViQnJvd3NlcjooQk9PTClpbldlYkJyb3dzZXIgc2V0QXBwcm9wcmlhdGVPcGVu
U3RyYXRlZ3lBbmRXZWJCcm93c2VyU3RhdGU6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4g
KilzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVy
KWNvbXBsZXRpb25IYW5kbGVyOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBMU0FwcGxp
Y2F0aW9uUHJveHkgKnRhcmdldEFwcGxpY2F0aW9uUHJveHk7CitAZW5kCisKK2VudW0gTFNTZXNz
aW9uSUQgeworICAgIGtMU0RlZmF1bHRTZXNzaW9uSUQgPSAtMiwKK307CisKKyNlbmRpZgorCitX
VEZfRVhURVJOX0NfQkVHSU4KKworT1NTdGF0dXMgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlv
bkl0ZW0oTFNTZXNzaW9uSUQsIExTQVNOUmVmLCBDRlN0cmluZ1JlZiBrZXlUb1NldFJlZiwgQ0ZU
eXBlUmVmIHZhbHVlVG9TZXRSZWYsIENGRGljdGlvbmFyeVJlZiogbmV3SW5mb3JtYXRpb25EaWN0
UmVmKTsKK0xTQVNOUmVmIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpOworCitleHRlcm4g
Y29uc3QgQ0ZTdHJpbmdSZWYgX2tMU0Rpc3BsYXlOYW1lS2V5OworCitXVEZfRVhURVJOX0NfRU5E
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTGF1bmNoU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQ
SS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNmE4YjJlNGZjYmVlMTUxMWU4YzBj
NDNiN2FiZDU3ODUyMjgxODIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQ
SS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KLQotI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCi0KLSNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9MU0FwcExpbmtQ
cml2Lmg+Ci0KLSNlbmRpZgotCi1AY2xhc3MgTFNBcHBMaW5rOwotdHlwZWRlZiB2b2lkICheTFNB
cHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpKExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAqZXJy
b3IpOwotdHlwZWRlZiB2b2lkICheTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKShCT09M
IHN1Y2Nlc3MsIE5TRXJyb3IgKmVycm9yKTsKLQotI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQotCi1AaW50ZXJmYWNlIExTUmVzb3VyY2VQcm94eSA6IE5TT2JqZWN0IDxOU0NvcHlpbmcsIE5T
U2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50ZXJmYWNlIExTQnVuZGxlUHJveHkgOiBMU1Jlc291
cmNlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50ZXJmYWNlIExTQXBwbGljYXRp
b25Qcm94eSA6IExTQnVuZGxlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgotLSAoTlNTdHJpbmcgKils
b2NhbGl6ZWROYW1lRm9yQ29udGV4dDooTlNTdHJpbmcgKiljb250ZXh0OwotQGVuZAotCi1AaW50
ZXJmYWNlIExTQXBwTGluayA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KLUBlbmQKLQotQGlu
dGVyZmFjZSBMU0FwcExpbmsgKCkKLSsgKHZvaWQpZ2V0QXBwTGlua1dpdGhVUkw6KE5TVVJMICop
YVVSTCBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpY29tcGxl
dGlvbkhhbmRsZXI7Ci0rICh2b2lkKW9wZW5XaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxldGlv
bkhhbmRsZXI6KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxl
cjsKLS0gKHZvaWQpb3BlbkluV2ViQnJvd3NlcjooQk9PTClpbldlYkJyb3dzZXIgc2V0QXBwcm9w
cmlhdGVPcGVuU3RyYXRlZ3lBbmRXZWJCcm93c2VyU3RhdGU6KE5TRGljdGlvbmFyeTxOU1N0cmlu
ZyAqLCBpZD4gKilzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBsZXRp
b25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyOwotQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25n
KSBMU0FwcGxpY2F0aW9uUHJveHkgKnRhcmdldEFwcGxpY2F0aW9uUHJveHk7Ci1AZW5kCi0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmgK
aW5kZXggYTM1NWI5NGZlNjMwOTJlZjVhY2QwYjVjOTVlMDNkZDQ2ZTk1MzgxNS4uN2Q2YmE4OTMw
YWUzZTU0OGFmOGE4OTNhYzhiMDBhYmIzODk4N2Q0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oCkBAIC0yOCwxMCArMjgsNTkgQEAKICNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaW5jbHVkZSA8SElTZXJ2aWNlcy9BWFRleHRNYXJr
ZXIuaD4KKyNpbmNsdWRlIDxISVNlcnZpY2VzL0NvcmVDdXJzb3IuaD4KICNpbmNsdWRlIDxISVNl
cnZpY2VzL0NvcmVEcmFnLmg+CiAKICNlbHNlCiAKK3R5cGVkZWYgQ0ZfRU5VTShTSW50MzIsIENv
cmVDdXJzb3JUeXBlKSB7CisgICAga0NvcmVDdXJzb3JGaXJzdEN1cnNvciA9IDAsCisgICAga0Nv
cmVDdXJzb3JBcnJvdyA9IGtDb3JlQ3Vyc29yRmlyc3RDdXJzb3IsCisgICAga0NvcmVDdXJzb3JJ
QmVhbSwKKyAgICBrQ29yZUN1cnNvck1ha2VBbGlhcywKKyAgICBrQ29yZUN1cnNvck5vdEFsbG93
ZWQsCisgICAga0NvcmVDdXJzb3JCdXN5QnV0Q2xpY2thYmxlLAorICAgIGtDb3JlQ3Vyc29yQ29w
eSwKKyAgICBrQ29yZUN1cnNvclNjcmVlblNob3RTZWxlY3Rpb24gPSA3LAorICAgIGtDb3JlQ3Vy
c29yU2NyZWVuU2hvdFNlbGVjdGlvblRvQ2xpcCwKKyAgICBrQ29yZUN1cnNvclNjcmVlblNob3RX
aW5kb3csCisgICAga0NvcmVDdXJzb3JTY3JlZW5TaG90V2luZG93VG9DbGlwLAorICAgIGtDb3Jl
Q3Vyc29yQ2xvc2VkSGFuZCwKKyAgICBrQ29yZUN1cnNvck9wZW5IYW5kLAorICAgIGtDb3JlQ3Vy
c29yUG9pbnRpbmdIYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdVcEhhbmQsCisgICAga0Nv
cmVDdXJzb3JDb3VudGluZ0Rvd25IYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdVcEFuZERv
d25IYW5kLAorICAgIGtDb3JlQ3Vyc29yUmVzaXplTGVmdCwKKyAgICBrQ29yZUN1cnNvclJlc2l6
ZVJpZ2h0LAorICAgIGtDb3JlQ3Vyc29yUmVzaXplTGVmdFJpZ2h0LAorICAgIGtDb3JlQ3Vyc29y
Q3Jvc3MsCisgICAga0NvcmVDdXJzb3JSZXNpemVVcCwKKyAgICBrQ29yZUN1cnNvclJlc2l6ZURv
d24sCisgICAga0NvcmVDdXJzb3JSZXNpemVVcERvd24sCisgICAga0NvcmVDdXJzb3JDb250ZXh0
dWFsTWVudSwKKyAgICBrQ29yZUN1cnNvclBvb2YsCisgICAga0NvcmVDdXJzb3JJQmVhbVZlcnRp
Y2FsLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplRWFzdCwKKyAgICBrQ29yZUN1cnNvcldp
bmRvd1Jlc2l6ZUVhc3RXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhFYXN0
LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhFYXN0U291dGhXZXN0LAorICAgIGtD
b3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGgsCisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVO
b3J0aFNvdXRoLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0LAorICAgIGtD
b3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0U291dGhFYXN0LAorICAgIGtDb3JlQ3Vyc29y
V2luZG93UmVzaXplU291dGhFYXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291dGgs
CisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aFdlc3QsCisgICAga0NvcmVDdXJzb3JX
aW5kb3dSZXNpemVXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93TW92ZSwKKyAgICBrQ29yZUN1
cnNvckhlbHAsCisgICAga0NvcmVDdXJzb3JDZWxsLAorICAgIGtDb3JlQ3Vyc29yWm9vbUluLAor
ICAgIGtDb3JlQ3Vyc29yWm9vbU91dCwKKyAgICBrQ29yZUN1cnNvckxhc3RDdXJzb3IgPSBrQ29y
ZUN1cnNvclpvb21PdXQKK307CisKIGVudW0gewogICAgIGtDb3JlRHJhZ0ltYWdlU3BlY1ZlcnNp
b25PbmUgPSAxLAogfTsKQEAgLTY4LDUgKzExNyw2IEBAIENGVHlwZUlEIEFYVGV4dE1hcmtlclJh
bmdlR2V0VHlwZUlEKCk7CiBDb3JlRHJhZ1JlZiBDb3JlRHJhZ0dldEN1cnJlbnREcmFnKCk7CiBP
U1N0YXR1cyBDb3JlRHJhZ1NldEltYWdlKENvcmVEcmFnUmVmLCBDR1BvaW50IGltYWdlT2Zmc2V0
LCBDb3JlRHJhZ0ltYWdlU3BlYyosIENHU1JlZ2lvbk9iaiBpbWFnZVNoYXBlLCBmbG9hdCBvdmVy
YWxsQWxwaGEpOwogY29uc3QgVUludDgqIEFYVGV4dE1hcmtlckdldEJ5dGVQdHIoQVhUZXh0TWFy
a2VyUmVmKTsKK0NGUnVuTG9vcFNvdXJjZVJlZiBNU0hDcmVhdGVNSUdTZXJ2ZXJTb3VyY2UoQ0ZB
bGxvY2F0b3JSZWYsIENGSW5kZXggb3JkZXIsIG1pZ19zdWJzeXN0ZW1fdCBzdWJfc3lzdGVtLCBN
U0hDcmVhdGVPcHRpb25zLCBtYWNoX3BvcnRfdCwgdm9pZCogdXNlcl9kYXRhKTsKIAogV1RGX0VY
VEVSTl9DX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05T
Q2VsbFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TQ2VsbFNQSS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZhMzNkYTNkM2RmYmJhN2NiMDYzZjYwZWQ0NzkxMDFlODY2OTM4NjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNDZWxsU1BJLmgK
QEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QXBwS2l0L05TQ2VsbF9Qcml2YXRlLmg+CisK
KyNlbmRpZgorCitXVEZfRVhURVJOX0NfQkVHSU4KKwordm9pZCBfTlNEcmF3Q2FyYm9uVGhlbWVM
aXN0Qm94KE5TUmVjdCwgQk9PTCBlbmFibGVkLCBCT09MIGZsaXBwZWQsIEJPT0wgdGV4dHVyZWQp
OworCitXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9tYWMvTlNNZW51U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNN
ZW51U1BJLmgKaW5kZXggMWY1ZTdiYzY2YTAwMzIxOTQ4MjIwNGM0ODE5OTQxZWQzYjRmYTVmZi4u
NDdmNzY1NWNjOWUxNWI3NGI0ODZhZmMwNmZiZDVkMjc0OTY2YzZhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TTWVudVNQSS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL21hYy9OU01lbnVTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw3ICsyOSw5IEBACiAKICNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQogCitXVEZfRVhURVJOX0NfQkVHSU4KICNpbXBvcnQgPEFwcEtp
dC9OU01lbnVfUHJpdmF0ZS5oPgorV1RGX0VYVEVSTl9DX0VORAogCiAjZWxzZQogCkBAIC0zOCw2
ICs0MCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBOU01lbnVUeXBlKSB7CiAgICAg
TlNNZW51VHlwZUNvbnRleHRNZW51LAogfTsKIAorZW51bSB7CisgICAgTlNQb3BVcE1lbnVJc1Bv
cHVwQnV0dG9uID0gMHg0MCwKK307CisKIEBpbnRlcmZhY2UgTlNNZW51ICgpCiArIChOU01lbnVU
eXBlKW1lbnVUeXBlRm9yRXZlbnQ6KE5TRXZlbnQgKilldmVudDsKIEBlbmQKQEAgLTU2LDQgKzYy
LDE3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TTWVudVR5cGUpIHsKIAogI2VuZGlm
CiAKLSNlbmRpZgordHlwZWRlZiBOU1VJbnRlZ2VyIE5TUG9wVXBNZW51RmxhZ3M7CisKK1dURl9F
WFRFUk5fQ19CRUdJTgorCitleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBOU1BvcFVwTWVudVBvcHVw
QnV0dG9uQm91bmRzOworZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgTlNQb3BVcE1lbnVQb3B1cEJ1
dHRvbkxhYmVsT2Zmc2V0OworZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgTlNQb3BVcE1lbnVQb3B1
cEJ1dHRvblNpemU7CitleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBOU1BvcFVwTWVudVBvcHVwQnV0
dG9uV2lkZ2V0OworCit2b2lkIF9OU1BvcFVwQ2FyYm9uTWVudTMoTlNNZW51ICosIE5TV2luZG93
ICosIE5TVmlldyAqb3duZXJWaWV3LCBOU1BvaW50IHNjcmVlblBvaW50LCBOU0ludGVnZXIgY2hl
Y2tlZEl0ZW0sIE5TRm9udCAqLCBDR0Zsb2F0IG1pbldpZHRoLCBOU1N0cmluZyAqcnVuTG9vcE1v
ZGUsIE5TUG9wVXBNZW51RmxhZ3MsIE5TRGljdGlvbmFyeSAqb3B0aW9ucyk7CisKK1dURl9FWFRF
Uk5fQ19FTkQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaCBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjBlZjdhZjU4
ZTMyZTQ4YmYxN2UwNjIyYmU4N2I1ZmQwYzRlZGY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsVmlld1NQSS5oCkBAIC0wLDAgKzEsNDAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCisKKyNpbXBvcnQgPEFwcEtpdC9OU1Njcm9sbFZpZXdfUHJpdmF0ZS5oPgorCisjZW5kaWYK
KworV1RGX0VYVEVSTl9DX0JFR0lOCisKK0NHRmxvYXQgX05TRWxhc3RpY0RlbHRhRm9yVGltZURl
bHRhKENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGluaXRpYWxWZWxvY2l0eSwgQ0dG
bG9hdCBlbGFwc2VkVGltZSk7CitDR0Zsb2F0IF9OU0VsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0
YShDR0Zsb2F0IGRlbHRhKTsKK0NHRmxvYXQgX05TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRh
KENHRmxvYXQgZGVsdGEpOworCitXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaAppbmRleCAwNDkyYzFhYjYxOTU2
Y2IxOTYxYzllYTdiMjc3MTU3Mzc4MWQ1NTMzLi4xODcwNDk2ZTA3YzIwZjJlYjlhYjVhZmFkNzFl
OWRiMWRhZDFhMmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
TlNTY3JvbGxlckltcFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9O
U1Njcm9sbGVySW1wU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
Ni0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMTQ5LDQgKzE0OSwxMCBAQCB0eXBlZGVmIE5TVUludGVnZXIgTlNP
dmVybGF5U2Nyb2xsZXJTdGF0ZTsKIAogI2VuZGlmCiAKK1dURl9FWFRFUk5fQ19CRUdJTgorCitO
U1Njcm9sbGVyU3R5bGUgX05TUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCk7CisKK1dURl9FWFRF
Uk5fQ19FTkQKKwogI2VuZGlmIC8vIFVTRShBUFBLSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3N5c3RlbS9jZi9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vY2YvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41NDg2NzIyOWE4ZjFhYzNlNjU3ZjBkYTVmYTM3NDgzMzc5NWU3ZmI1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vY2YvRGVmYXVsdFNlYXJj
aFByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkRlZmF1bHRTZWFyY2hQcm92aWRlci5oIgorCisjaW5jbHVkZSAi
Q0ZVdGlsaXRpZXNTUEkuaCIKKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlv
bi5oPgorCituYW1lc3BhY2UgUEFMIHsKKworUmV0YWluUHRyPENGU3RyaW5nUmVmPiBkZWZhdWx0
U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpCit7CisgICAgYXV0byBwcm92aWRlckluZm8gPSBh
ZG9wdENGKF9DRldlYlNlcnZpY2VzQ29weVByb3ZpZGVySW5mbyhrQ0ZXZWJTZXJ2aWNlc1R5cGVX
ZWJTZWFyY2gsIG51bGxwdHIpKTsKKyAgICBpZiAoIXByb3ZpZGVySW5mbykKKyAgICAgICAgcmV0
dXJuIENGU1RSKCJHb29nbGUiKTsKKworICAgIENGVHlwZVJlZiBkaXNwbGF5TmFtZSA9IENGRGlj
dGlvbmFyeUdldFZhbHVlKHByb3ZpZGVySW5mby5nZXQoKSwga0NGV2ViU2VydmljZXNQcm92aWRl
ckRlZmF1bHREaXNwbGF5TmFtZUtleSk7CisgICAgaWYgKCFkaXNwbGF5TmFtZSkKKyAgICAgICAg
cmV0dXJuIENGU1RSKCJHb29nbGUiKTsKKworICAgIEFTU0VSVChDRkdldFR5cGVJRChkaXNwbGF5
TmFtZSkgPT0gQ0ZTdHJpbmdHZXRUeXBlSUQoKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZTdHJp
bmdDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIChDRlN0cmluZ1JlZilkaXNwbGF5TmFt
ZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBQQUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zeXN0ZW0vY2YvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmNmY2ZkODM3Yjc2MDljNjQzMjdlNzU1OTgwZDZkNGZmOTkyZmJmNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRl
ci5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFBBTCB7CisKK1BBTF9FWFBPUlQgUmV0
YWluUHRyPENGU3RyaW5nUmVmPiBkZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpOwor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBN
ZW51LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODQ3NWFiN2I3YjI3YmQ5ZDA2M2NlYzliZTU1NjYxYzk1MmVmMmFlNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUu
aApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFBMQVRGT1JNKE1BQykKKworI2lt
cG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorCituYW1lc3BhY2UgUEFMIHsKKworUEFMX0VYUE9SVCB2
b2lkIHBvcFVwTWVudShOU01lbnUgKiwgTlNQb2ludCBsb2NhdGlvbiwgZmxvYXQgd2lkdGgsIE5T
VmlldyAqLCBpbnQgc2VsZWN0ZWRJdGVtLCBOU0ZvbnQgKiwgTlNDb250cm9sU2l6ZSwgYm9vbCB1
c2VzQ3VzdG9tQXBwZWFyYW5jZSk7CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIyMzM1NzVkYzM0ZTc2MWU4NjFjYmI0NTI4N2I3MzNmMmNkNGFjMjMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1tCkBA
IC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlBvcHVwTWVudS5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJOU01lbnVTUEku
aCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGludGVyZmFjZSBOU01lbnUgKFdlYlBy
aXZhdGUpCistIChpZClfbWVudUltcGw7CitAZW5kCisKK0BpbnRlcmZhY2UgTlNPYmplY3QgKFdl
YlByaXZhdGUpCistICh2b2lkKXBvcFVwTWVudTooTlNNZW51KiltZW51IGF0TG9jYXRpb246KE5T
UG9pbnQpbG9jYXRpb24gd2lkdGg6KENHRmxvYXQpd2lkdGggZm9yVmlldzooTlNWaWV3Kil2aWV3
IHdpdGhTZWxlY3RlZEl0ZW06KE5TSW50ZWdlcilzZWxlY3RlZEl0ZW0gd2l0aEZvbnQ6KE5TRm9u
dCopZm9udCB3aXRoRmxhZ3M6KE5TUG9wVXBNZW51RmxhZ3MpZmxhZ3Mgd2l0aE9wdGlvbnM6KE5T
RGljdGlvbmFyeSAqKW9wdGlvbnM7CitAZW5kCisKK25hbWVzcGFjZSBQQUwgeworCit2b2lkIHBv
cFVwTWVudShOU01lbnUgKm1lbnUsIE5TUG9pbnQgbG9jYXRpb24sIGZsb2F0IHdpZHRoLCBOU1Zp
ZXcgKnZpZXcsIGludCBzZWxlY3RlZEl0ZW0sIE5TRm9udCAqZm9udCwgTlNDb250cm9sU2l6ZSBj
b250cm9sU2l6ZSwgYm9vbCB1c2VzQ3VzdG9tQXBwZWFyYW5jZSkKK3sKKyAgICBOU1JlY3QgYWRq
dXN0ZWRQb3B1cEJvdW5kcyA9IFt2aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOlt2aWV3
IGNvbnZlcnRSZWN0OnZpZXcuYm91bmRzIHRvVmlldzpuaWxdXTsKKyNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBpZiAoY29udHJvbFNpemUgIT0gTlNNaW5pQ29udHJvbFNp
emUpIHsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgYWRqdXN0ZWRQb3B1
cEJvdW5kcy5vcmlnaW4ueCAtPSAzOworICAgICAgICBhZGp1c3RlZFBvcHVwQm91bmRzLm9yaWdp
bi55IC09IDE7CisgICAgICAgIGFkanVzdGVkUG9wdXBCb3VuZHMuc2l6ZS53aWR0aCArPSA2Owor
ICAgIH0KKworICAgIC8vIFRoZXNlIG51bWJlcnMgd2VyZSBleHRyYWN0ZWQgZnJvbSB2aXN1YWwg
aW5zcGVjdGlvbiBhcyB0aGUgbWVudSBhbmltYXRlcyBzaHV0LgorICAgIE5TU2l6ZSBsYWJlbE9m
ZnNldCA9IE5TTWFrZVNpemUoMTEsIDEpOworICAgIGlmIChtZW51LnVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb24gPT0gTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnQp
CisgICAgICAgIGxhYmVsT2Zmc2V0ID0gTlNNYWtlU2l6ZSgyNCwgMSk7CisKKyAgICBhdXRvIG9w
dGlvbnMgPSBhZG9wdE5TKFtAeworICAgICAgICBOU1BvcFVwTWVudVBvcHVwQnV0dG9uQm91bmRz
IDogW05TVmFsdWUgdmFsdWVXaXRoUmVjdDphZGp1c3RlZFBvcHVwQm91bmRzXSwKKyAgICAgICAg
TlNQb3BVcE1lbnVQb3B1cEJ1dHRvbkxhYmVsT2Zmc2V0IDogW05TVmFsdWUgdmFsdWVXaXRoU2l6
ZTpsYWJlbE9mZnNldF0sCisgICAgICAgIE5TUG9wVXBNZW51UG9wdXBCdXR0b25TaXplIDogQChj
b250cm9sU2l6ZSkKKyAgICB9IG11dGFibGVDb3B5XSk7CisKKyAgICBpZiAodXNlc0N1c3RvbUFw
cGVhcmFuY2UpCisgICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpAIiIgZm9yS2V5Ok5TUG9wVXBN
ZW51UG9wdXBCdXR0b25XaWRnZXRdOworCisgICAgW1ttZW51IF9tZW51SW1wbF0gcG9wVXBNZW51
Om1lbnUgYXRMb2NhdGlvbjpsb2NhdGlvbiB3aWR0aDp3aWR0aCBmb3JWaWV3OnZpZXcgd2l0aFNl
bGVjdGVkSXRlbTpzZWxlY3RlZEl0ZW0gd2l0aEZvbnQ6Zm9udCB3aXRoRmxhZ3M6KHVzZXNDdXN0
b21BcHBlYXJhbmNlID8gMCA6IE5TUG9wVXBNZW51SXNQb3B1cEJ1dHRvbikgd2l0aE9wdGlvbnM6
b3B0aW9ucy5nZXQoKV07Cit9CisKK30gLy8gbmFtZXNwYWNlIFBBTAorCisjZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9j
YWxpemVkU3RyaW5nc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9j
YWxpemVkU3RyaW5nc0NvY29hLm1tCmluZGV4IDEyOWI2ZTJkNTBkNTIxNmRiNWE0Njg3NjZjMTRm
ZDgyZWE1M2JjNzcuLjMzNDFmYTJjYmZmMzBjY2Q3MjEyNjU5ZTVhM2MyYTY0MzY2YmQxNzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3ND
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJp
bmdzQ29jb2EubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAy
MDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjMsMTUgKzIzLDE2IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkxvY2Fs
aXplZFN0cmluZ3MuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiTG9jYWxpemVkU3Ry
aW5ncy5oIgogCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbXBvcnQgIk5vdEltcGxlbWVudGVkLmgiCisjaW1w
b3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxwYWwvc3lzdGVtL2NmL0Rl
ZmF1bHRTZWFyY2hQcm92aWRlci5oPgorI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbXBv
cnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Niw3
ICs2Nyw3IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCiAK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQogewotICAgIGF1dG8gc2VhcmNo
UHJvdmlkZXJOYW1lID0gYWRvcHRDRih3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5
TmFtZSgpKTsKKyAgICBhdXRvIHNlYXJjaFByb3ZpZGVyTmFtZSA9IFBBTDo6ZGVmYXVsdFNlYXJj
aFByb3ZpZGVyRGlzcGxheU5hbWUoKTsKICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5n
KFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92
aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2Vh
cmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggZWUzZTUzN2ZiOGMyYjY4NzBlNjFk
ZmQyMzk3NjA3ZWM3ZjFmNGIxYS4uZDM3OWUyNDc0ZDE2NjY1NGE0YzEyOWNjY2IwZjFlZGUzZTYz
MjVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29u
dHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250
cm9sbGVyLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAx
NC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMjAgKzIzLDI0IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNj
cm9sbENvbnRyb2xsZXIuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiU2Nyb2xsQ29u
dHJvbGxlci5oIgogCi0jaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgotI2luY2x1ZGUgIlBsYXRmb3Jt
V2hlZWxFdmVudC5oIgotI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKLSNpbmNs
dWRlICJXaGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKLSNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+Ci0j
aW5jbHVkZSA8c3lzL3RpbWUuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBv
cnQgIkxheW91dFNpemUuaCIKKyNpbXBvcnQgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2ltcG9y
dCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCAiV2hlZWxFdmVudFRlc3RUcmln
Z2VyLmgiCisjaW1wb3J0IDxzeXMvc3lzY3RsLmg+CisjaW1wb3J0IDxzeXMvdGltZS5oPgorI2lt
cG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQot
I2luY2x1ZGUgIlNjcm9sbFNuYXBBbmltYXRvclN0YXRlLmgiCi0jaW5jbHVkZSAiU2Nyb2xsYWJs
ZUFyZWEuaCIKKyNpbXBvcnQgIlNjcm9sbFNuYXBBbmltYXRvclN0YXRlLmgiCisjaW1wb3J0ICJT
Y3JvbGxhYmxlQXJlYS5oIgorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisjaW1wb3J0IDxw
YWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaD4KICNlbmRpZgogCiAjaWYgRU5BQkxFKFJVQkJF
Ul9CQU5ESU5HKSB8fCBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQpAQCAtNTIsMTcgKzU2LDE3IEBA
IHN0YXRpYyBjb25zdCBmbG9hdCBydWJiZXJiYW5kTWluaW11bVJlcXVpcmVkRGVsdGFCZWZvcmVT
dHJldGNoID0gMTA7CiAjaWYgUExBVEZPUk0oTUFDKQogc3RhdGljIGZsb2F0IGVsYXN0aWNEZWx0
YUZvclRpbWVEZWx0YShmbG9hdCBpbml0aWFsUG9zaXRpb24sIGZsb2F0IGluaXRpYWxWZWxvY2l0
eSwgZmxvYXQgZWxhcHNlZFRpbWUpCiB7Ci0gICAgcmV0dXJuIHdrTlNFbGFzdGljRGVsdGFGb3JU
aW1lRGVsdGEoaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsVmVsb2NpdHksIGVsYXBzZWRUaW1lKTsK
KyAgICByZXR1cm4gX05TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKGluaXRpYWxQb3NpdGlvbiwg
aW5pdGlhbFZlbG9jaXR5LCBlbGFwc2VkVGltZSk7CiB9CiAKIHN0YXRpYyBmbG9hdCBlbGFzdGlj
RGVsdGFGb3JSZWJvdW5kRGVsdGEoZmxvYXQgZGVsdGEpCiB7Ci0gICAgcmV0dXJuIHdrTlNFbGFz
dGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoZGVsdGEpOworICAgIHJldHVybiBfTlNFbGFzdGljRGVs
dGFGb3JSZWJvdW5kRGVsdGEoZGVsdGEpOwogfQogCiBzdGF0aWMgZmxvYXQgcmVib3VuZERlbHRh
Rm9yRWxhc3RpY0RlbHRhKGZsb2F0IGRlbHRhKQogewotICAgIHJldHVybiB3a05TUmVib3VuZERl
bHRhRm9yRWxhc3RpY0RlbHRhKGRlbHRhKTsKKyAgICByZXR1cm4gX05TUmVib3VuZERlbHRhRm9y
RWxhc3RpY0RlbHRhKGRlbHRhKTsKIH0KIAogc3RhdGljIGZsb2F0IHNjcm9sbFdoZWVsTXVsdGlw
bGllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBmNDI1Nzk3MDEwZGNhMjM3NzBiOGZlNDYwNWJjNDli
MGY0ZDYwOGEwLi5jNjk0NmQ2ZGZkM2JjZTNhMWY4NjI0YTM5NGJjNjg2OWQ3ZDJjM2RkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjQsNyArMjQsNiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQog
I2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDQS5oIgogCiAjaWYgVVNFKENBKQpAQCAtNDcsNiArNDYs
NyBAQAogI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUg
PFF1YXJ0ekNvcmUvQ0FUcmFuc2Zvcm0zRC5oPgogI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1
ZGUgPHBhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgpAQCAtMjk4OCw3ICsyOTg4LDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmNy
ZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWUK
ICAgICAgICAgLy8gb24gb3IgYmVmb3JlIFNub3cgTGVvcGFyZC4KICAgICAgICAgLy8gRklYTUU6
IFRoaXMgZml4IGhhcyBub3QgYmVlbiBhZGRlZCB0byBRdWFydHpDb3JlIG9uIFdpbmRvd3MgeWV0
ICg8cmRhcjovL3Byb2JsZW0vOTExMjIzMz4pIHNvIHdlIGV4cGVjdCB0aGUKICAgICAgICAgLy8g
cmV2ZXJzZWQgYW5pbWF0aW9uIGJlaGF2aW9yCi0gICAgICAgIHN0YXRpYyBib29sIGV4ZWN1dGFi
bGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQgPSB3a0V4ZWN1dGFibGVXYXNMaW5rZWRP
bk9yQmVmb3JlU25vd0xlb3BhcmQoKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZXhlY3V0YWJsZVdh
c0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCA9ICFfQ0ZFeGVjdXRhYmxlTGlua2VkT25PckFm
dGVyKENGU3lzdGVtVmVyc2lvbkxpb24pOwogICAgICAgICBpZiAoIWV4ZWN1dGFibGVXYXNMaW5r
ZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpCiAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uTGlz
dCA9IGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvQ3Vyc29yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5t
bQppbmRleCBhYTM0NWU4OGU0ODExOGM0Njg3YjllZWZiZmM3MzIxOGRjNDcwNzBjLi40MTcyZTIy
MjY4YzNkYzQxZGE1NjBlNGU0YzI4ZmM2N2NlODJjMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9DdXJzb3JNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNiArMjcsOCBAQAogI2ltcG9ydCAi
Q3Vyc29yLmgiCiAKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQg
PG9iamMvcnVudGltZS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oPgog
I2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KIApAQCAtMzcsNiArMzksMTM5IEBAIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQ3Vy
c29yQnVuZGxlCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK3N0YXRpYyBOU0N1
cnNvciAqYnVzeUJ1dENsaWNrYWJsZU5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICptYWtlQWxp
YXNOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqbW92ZU5TQ3Vyc29yOworc3RhdGljIE5TQ3Vy
c29yICpyZXNpemVFYXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZUVhc3RXZXN0
TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRoTlNDdXJzb3I7CitzdGF0aWMg
TlNDdXJzb3IgKnJlc2l6ZU5vcnRoU291dGhOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVz
aXplTm9ydGhlYXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRoZWFzdFNv
dXRod2VzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVOb3J0aHdlc3ROU0N1cnNv
cjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplTm9ydGh3ZXN0U291dGhlYXN0TlNDdXJzb3I7Citz
dGF0aWMgTlNDdXJzb3IgKnJlc2l6ZVNvdXRoTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJl
c2l6ZVNvdXRoZWFzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVTb3V0aHdlc3RO
U0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplV2VzdE5TQ3Vyc29yOworCitzdGF0aWMg
TlNDdXJzb3IgKmNlbGxOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqaGVscE5TQ3Vyc29yOwor
c3RhdGljIE5TQ3Vyc29yICp6b29tSW5OU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqem9vbU91
dE5TQ3Vyc29yOworCitzdGF0aWMgTlNJbnRlZ2VyIFdLQ29yZUN1cnNvcl9jb3JlQ3Vyc29yVHlw
ZShpZCBzZWxmLCBTRUwpCit7CisgICAgaWYgKHNlbGYgPT0gYnVzeUJ1dENsaWNrYWJsZU5TQ3Vy
c29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JCdXN5QnV0Q2xpY2thYmxlOworICAgIGlm
IChzZWxmID09IG1ha2VBbGlhc05TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JN
YWtlQWxpYXM7CisgICAgaWYgKHNlbGYgPT0gbW92ZU5TQ3Vyc29yKQorICAgICAgICByZXR1cm4g
a0NvcmVDdXJzb3JXaW5kb3dNb3ZlOworICAgIGlmIChzZWxmID09IHJlc2l6ZUVhc3ROU0N1cnNv
cikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplRWFzdDsKKyAgICBpZiAo
c2VsZiA9PSByZXNpemVFYXN0V2VzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJz
b3JXaW5kb3dSZXNpemVFYXN0V2VzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVOb3J0aE5TQ3Vy
c29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aDsKKyAgICBp
ZiAoc2VsZiA9PSByZXNpemVOb3J0aFNvdXRoTlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29y
ZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoU291dGg7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9y
dGhlYXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5v
cnRoRWFzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVOb3J0aGVhc3RTb3V0aHdlc3ROU0N1cnNv
cikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhFYXN0U291dGhX
ZXN0OworICAgIGlmIChzZWxmID09IHJlc2l6ZU5vcnRod2VzdE5TQ3Vyc29yKQorICAgICAgICBy
ZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aFdlc3Q7CisgICAgaWYgKHNlbGYgPT0g
cmVzaXplTm9ydGh3ZXN0U291dGhlYXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1
cnNvcldpbmRvd1Jlc2l6ZU5vcnRoV2VzdFNvdXRoRWFzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNp
emVTb3V0aE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVT
b3V0aDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVTb3V0aGVhc3ROU0N1cnNvcikKKyAgICAgICAg
cmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291dGhFYXN0OworICAgIGlmIChzZWxmID09
IHJlc2l6ZVNvdXRod2VzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5k
b3dSZXNpemVTb3V0aFdlc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplV2VzdE5TQ3Vyc29yKQor
ICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVXZXN0OworICAgIGlmIChzZWxm
ID09IGNlbGxOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yQ2VsbDsKKyAgICBp
ZiAoc2VsZiA9PSBoZWxwTlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvckhlbHA7
CisgICAgaWYgKHNlbGYgPT0gem9vbUluTlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1
cnNvclpvb21JbjsKKyAgICBpZiAoc2VsZiA9PSB6b29tT3V0TlNDdXJzb3IpCisgICAgICAgIHJl
dHVybiBrQ29yZUN1cnNvclpvb21PdXQ7CisgICAgCisgICAgcmV0dXJuIE5TTm90Rm91bmQ7Cit9
CisKK3N0YXRpYyBDbGFzcyBjcmVhdGVDb3JlQ3Vyc29yQ2xhc3Modm9pZCkKK3sKKyAgICBDbGFz
cyBjb3JlQ3Vyc29yQ2xhc3MgPSBvYmpjX2FsbG9jYXRlQ2xhc3NQYWlyKFtOU0N1cnNvciBjbGFz
c10sICJXS0NvcmVDdXJzb3IiLCAwKTsKKyAgICBTRUwgY29yZUN1cnNvclR5cGUgPSBOU1NlbGVj
dG9yRnJvbVN0cmluZyhAIl9jb3JlQ3Vyc29yVHlwZSIpOworICAgIGNsYXNzX2FkZE1ldGhvZChj
b3JlQ3Vyc29yQ2xhc3MsIGNvcmVDdXJzb3JUeXBlLCAoSU1QKVdLQ29yZUN1cnNvcl9jb3JlQ3Vy
c29yVHlwZSwgbWV0aG9kX2dldFR5cGVFbmNvZGluZyhjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChb
TlNDdXJzb3IgY2xhc3NdLCBjb3JlQ3Vyc29yVHlwZSkpKTsKKyAgICBvYmpjX3JlZ2lzdGVyQ2xh
c3NQYWlyKGNvcmVDdXJzb3JDbGFzcyk7CisgICAgcmV0dXJuIGNvcmVDdXJzb3JDbGFzczsKK30K
Kworc3RhdGljIENsYXNzIGNvcmVDdXJzb3JDbGFzcyh2b2lkKQoreworICAgIENsYXNzIGNvcmVD
dXJzb3JDbGFzcyA9IG9iamNfbG9va1VwQ2xhc3MoIldLQ29yZUN1cnNvciIpOworICAgIGlmICgh
Y29yZUN1cnNvckNsYXNzKQorICAgICAgICBjb3JlQ3Vyc29yQ2xhc3MgPSBjcmVhdGVDb3JlQ3Vy
c29yQ2xhc3MoKTsKKyAgICByZXR1cm4gY29yZUN1cnNvckNsYXNzOworfQorCitzdGF0aWMgTlND
dXJzb3IgKmN1cnNvcihjb25zdCBjaGFyICpuYW1lKQoreworICAgIE5TQ3Vyc29yICoqc2xvdCA9
IDA7CisgICAgCisgICAgaWYgKCFzdHJjbXAobmFtZSwgIkJ1c3lCdXRDbGlja2FibGUiKSkKKyAg
ICAgICAgc2xvdCA9ICZidXN5QnV0Q2xpY2thYmxlTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0
cmNtcChuYW1lLCAiTWFrZUFsaWFzIikpCisgICAgICAgIHNsb3QgPSAmbWFrZUFsaWFzTlNDdXJz
b3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiTW92ZSIpKQorICAgICAgICBzbG90ID0g
Jm1vdmVOU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVFYXN0Iikp
CisgICAgICAgIHNsb3QgPSAmcmVzaXplRWFzdE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJj
bXAobmFtZSwgIlJlc2l6ZUVhc3RXZXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplRWFzdFdl
c3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVOb3J0aCIpKQor
ICAgICAgICBzbG90ID0gJnJlc2l6ZU5vcnRoTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNt
cChuYW1lLCAiUmVzaXplTm9ydGhTb3V0aCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZU5vcnRo
U291dGhOU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVOb3J0aGVh
c3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aGVhc3ROU0N1cnNvcjsKKyAgICBlbHNl
IGlmICghc3RyY21wKG5hbWUsICJSZXNpemVOb3J0aGVhc3RTb3V0aHdlc3QiKSkKKyAgICAgICAg
c2xvdCA9ICZyZXNpemVOb3J0aGVhc3RTb3V0aHdlc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICgh
c3RyY21wKG5hbWUsICJSZXNpemVOb3J0aHdlc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVO
b3J0aHdlc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVOb3J0
aHdlc3RTb3V0aGVhc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aHdlc3RTb3V0aGVh
c3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVTb3V0aCIpKQor
ICAgICAgICBzbG90ID0gJnJlc2l6ZVNvdXRoTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNt
cChuYW1lLCAiUmVzaXplU291dGhlYXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplU291dGhl
YXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplU291dGh3ZXN0
IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplU291dGh3ZXN0TlNDdXJzb3I7CisgICAgZWxzZSBp
ZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplV2VzdCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZVdl
c3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJDZWxsIikpCisgICAgICAg
IHNsb3QgPSAmY2VsbE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIkhlbHAi
KSkKKyAgICAgICAgc2xvdCA9ICZoZWxwTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChu
YW1lLCAiWm9vbUluIikpCisgICAgICAgIHNsb3QgPSAmem9vbUluTlNDdXJzb3I7CisgICAgZWxz
ZSBpZiAoIXN0cmNtcChuYW1lLCAiWm9vbU91dCIpKQorICAgICAgICBzbG90ID0gJnpvb21PdXRO
U0N1cnNvcjsKKyAgICAKKyAgICBpZiAoIXNsb3QpCisgICAgICAgIHJldHVybiBuaWw7CisgICAg
CisgICAgaWYgKCEqc2xvdCkKKyAgICAgICAgKnNsb3QgPSBbW2NvcmVDdXJzb3JDbGFzcygpIGFs
bG9jXSBpbml0XTsKKyAgICByZXR1cm4gKnNsb3Q7Cit9CiAKIC8vIFNpbXBsZSBOU0N1cnNvciBj
YWxscyBzaG91bGRuJ3QgbmVlZCBwcm90ZWN0aW9uLAogLy8gYnV0IGNyZWF0aW5nIGEgY3Vyc29y
IHdpdGggYSBiYWQgaW1hZ2UgbWlnaHQgdGhyb3cuCkBAIC0xMDMsNzIgKzIzOCw3MiBAQCB2b2lk
IEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgQ3Vyc29yOjpXYWl0OgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJz
b3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNv
cigiQnVzeUJ1dENsaWNrYWJsZSIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29y
OjpIZWxwOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIkhlbHAiKTsKKyAg
ICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiSGVscCIpOwogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQ3Vyc29yOjpNb3ZlOgogICAgIGNhc2UgQ3Vyc29yOjpNaWRkbGVQYW5uaW5n
OgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIk1vdmUiKTsKKyAgICAgICAg
bV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiTW92ZSIpOwogICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgQ3Vyc29yOjpFYXN0UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpFYXN0UGFubmluZzoK
LSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVFYXN0Iik7CisgICAg
ICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZUVhc3QiKTsKICAgICAgICAgYnJl
YWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6Ok5v
cnRoUGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVO
b3J0aCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0aCIp
OwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aEVhc3RSZXNpemU6CiAg
ICAgY2FzZSBDdXJzb3I6Ok5vcnRoRWFzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGhlYXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRoZWFzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNh
c2UgQ3Vyc29yOjpOb3J0aFdlc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoV2VzdFBh
bm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGh3
ZXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRod2Vz
dCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpTb3V0aFJlc2l6ZToKICAg
ICBjYXNlIEN1cnNvcjo6U291dGhQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0g
d2tDdXJzb3IoIlJlc2l6ZVNvdXRoIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJz
b3IoIlJlc2l6ZVNvdXRoIik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OlNv
dXRoRWFzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6U291dGhFYXN0UGFubmluZzoKLSAgICAg
ICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVTb3V0aGVhc3QiKTsKKyAgICAg
ICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplU291dGhlYXN0Iik7CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoV2VzdFJlc2l6ZToKICAgICBjYXNlIEN1
cnNvcjo6U291dGhXZXN0UGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vy
c29yKCJSZXNpemVTb3V0aHdlc3QiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNv
cigiUmVzaXplU291dGh3ZXN0Iik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6
Oldlc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6Oldlc3RQYW5uaW5nOgotICAgICAgICBtX3Bs
YXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZVdlc3QiKTsKKyAgICAgICAgbV9wbGF0Zm9y
bUN1cnNvciA9IGN1cnNvcigiUmVzaXplV2VzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNh
c2UgQ3Vyc29yOjpOb3J0aFNvdXRoUmVzaXplOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0g
d2tDdXJzb3IoIlJlc2l6ZU5vcnRoU291dGgiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9
IGN1cnNvcigiUmVzaXplTm9ydGhTb3V0aCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
Q3Vyc29yOjpFYXN0V2VzdFJlc2l6ZToKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vy
c29yKCJSZXNpemVFYXN0V2VzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29y
KCJSZXNpemVFYXN0V2VzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpO
b3J0aEVhc3RTb3V0aFdlc3RSZXNpemU6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1
cnNvcigiUmVzaXplTm9ydGhlYXN0U291dGh3ZXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRoZWFzdFNvdXRod2VzdCIpOwogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFdlc3RTb3V0aEVhc3RSZXNpemU6Ci0gICAgICAgIG1f
cGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGh3ZXN0U291dGhlYXN0Iik7Cisg
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRod2VzdFNvdXRoZWFz
dCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpDb2x1bW5SZXNpemU6CkBA
IC0xODQsNyArMzE5LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29u
c3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Q2VsbDoKLSAgICAgICAgbV9w
bGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJDZWxsIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSBjdXJzb3IoIkNlbGwiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6
Q29udGV4dE1lbnU6CkBAIC0xOTIsMTEgKzMyNywxMSBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxh
dGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpB
bGlhczoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJNYWtlQWxpYXMiKTsK
KyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiTWFrZUFsaWFzIik7CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OlByb2dyZXNzOgotICAgICAgICBtX3BsYXRmb3Jt
Q3Vyc29yID0gd2tDdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKKyAgICAgICAgbV9wbGF0Zm9y
bUN1cnNvciA9IGN1cnNvcigiQnVzeUJ1dENsaWNrYWJsZSIpOwogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgQ3Vyc29yOjpOb0Ryb3A6CkBAIC0yMTYsMTEgKzM1MSwxMSBAQCB2b2lkIEN1cnNv
cjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBicmVhazsKIAogICAgIGNh
c2UgQ3Vyc29yOjpab29tSW46Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigi
Wm9vbUluIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlpvb21JbiIpOwog
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpab29tT3V0OgotICAgICAgICBtX3Bs
YXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlpvb21PdXQiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1
cnNvciA9IGN1cnNvcigiWm9vbU91dCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vy
c29yOjpHcmFiOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLmgKaW5kZXggYWNlMjk4YzEyZjgyMGVkNTBkNjljZmVmNjUxNjMwZDA4
NGMwNTJmZS4uNTVmY2ExMjgxNjJmNjM4MjAxNTZmYTIxMWIyN2I3YWQyY2YxOTUyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oCkBAIC0xMjMsNyArMTIzLDYgQEAgdHlwZWRlZiBlbnVtIHsKICAgICB3a1BhdHRlcm5UaWxp
bmdDb25zdGFudFNwYWNpbmcKIH0gd2tQYXR0ZXJuVGlsaW5nOwogI2lmICFQTEFURk9STShJT1Mp
Ci1leHRlcm4gdm9pZCAoKndrRHJhd0JlemVsZWRUZXh0QXJlYSkoTlNSZWN0LCBCT09MIGVuYWJs
ZWQpOwogZXh0ZXJuIHZvaWQgKCp3a0RyYXdNZWRpYVNsaWRlclRyYWNrKShDR0NvbnRleHRSZWYg
Y29udGV4dCwgQ0dSZWN0IHJlY3QsIGZsb2F0IHRpbWVMb2FkZWQsIGZsb2F0IGN1cnJlbnRUaW1l
LAogICAgIGZsb2F0IGR1cmF0aW9uLCB1bnNpZ25lZCBzdGF0ZSk7CiBleHRlcm4gdm9pZCAoKndr
RHJhd01lZGlhVUlQYXJ0KShpbnQgcGFydCwgQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCBy
ZWN0LCB1bnNpZ25lZCBzdGF0ZSk7CkBAIC0xMzYsMjQgKzEzNSwxMCBAQCBleHRlcm4gdm9pZCAo
KndrU2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpKEJPT0wpOwogZXh0ZXJu
IHZvaWQqIHdrR2V0SHlwaGVuYXRpb25Mb2NhdGlvbkJlZm9yZUluZGV4OwogI2VuZGlmCiAKLSNp
ZiAhUExBVEZPUk0oSU9TKQotZXh0ZXJuIGJvb2wgKCp3a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9y
QmVmb3JlU25vd0xlb3BhcmQpKHZvaWQpOwotCi1leHRlcm4gQ0ZTdHJpbmdSZWYgKCp3a0NvcHlE
ZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSkodm9pZCk7Ci0KLWV4dGVybiBOU0N1cnNv
ciAqKCp3a0N1cnNvcikoY29uc3QgY2hhciopOwotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCi0K
ICNpZiBQTEFURk9STShJT1MpCiBleHRlcm4gdm9pZCAoKndrU2V0TGF5ZXJDb250ZW50c1NjYWxl
KShDQUxheWVyICopOwogI2VuZGlmCiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZVUkxTdG9y
YWdlU2Vzc2lvbiogQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZjsKIAotI2lmICFQTEFURk9STShJT1Mp
Ci1leHRlcm4gQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEpKENHRmxvYXQg
aW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGluaXRpYWxWZWxvY2l0eSwgQ0dGbG9hdCBlbGFwc2Vk
VGltZSk7Ci1leHRlcm4gQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEp
KENHRmxvYXQgZGVsdGEpOwotZXh0ZXJuIENHRmxvYXQgKCp3a05TUmVib3VuZERlbHRhRm9yRWxh
c3RpY0RlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLSNlbmRpZgotCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IDM1
MDczMTliNWRkOGE3ZTcwNmZlNjMxM2QwNDFmMzg0OTA4MDA4YTMuLjhmYmIxZDNkOGM4ODY4YzI0
NTRmMzA5YzY5ZTA2NDAwZjNkZmY5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCkBAIC0zMCw3ICszMCw2IEBACiAK
ICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi12b2lkICgqd2tEcmF3QmV6ZWxl
ZFRleHRBcmVhKShOU1JlY3QsIEJPT0wgZW5hYmxlZCk7CiB2b2lkICgqd2tEcmF3TWVkaWFTbGlk
ZXJUcmFjaykoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCByZWN0LCBmbG9hdCB0aW1lTG9h
ZGVkLCBmbG9hdCBjdXJyZW50VGltZSwKICAgICBmbG9hdCBkdXJhdGlvbiwgdW5zaWduZWQgc3Rh
dGUpOwogQk9PTCAoKndrSGl0VGVzdE1lZGlhVUlQYXJ0KShpbnQgcGFydCwgQ0dSZWN0IGJvdW5k
cywgQ0dQb2ludCBwb2ludCk7CkBAIC00MiwxNCArNDEsNCBAQCB2b2lkICgqd2tQb3B1cE1lbnUp
KE5TTWVudSosIE5TUG9pbnQgbG9jYXRpb24sIGZsb2F0IHdpZHRoLCBOU1ZpZXcqLCBpbnQgc2Vs
ZWN0ZQogCiB2b2lkKiB3a0dldEh5cGhlbmF0aW9uTG9jYXRpb25CZWZvcmVJbmRleDsKIAotYm9v
bCAoKndrRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCkodm9pZCk7Ci0K
IENGU3RyaW5nUmVmICgqd2tDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpKHZv
aWQpOwotCi1OU0N1cnNvciAqKCp3a0N1cnNvcikoY29uc3QgY2hhciopOwotCi0jaWYgIVBMQVRG
T1JNKElPUykKLUNHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKShDR0Zsb2F0
IGluaXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0aWFsVmVsb2NpdHksIENHRmxvYXQgZWxhcHNl
ZFRpbWUpOwotQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEpKENHRmxv
YXQgZGVsdGEpOwotQ0dGbG9hdCAoKndrTlNSZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpKENH
RmxvYXQgZGVsdGEpOwotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0KaW5kZXggOTNlOGQ2MTk3MTc2MTc1ZDhjY2IzNmUxOWNmZWZiYTljNDg2NTVlZi4u
ZjAwYzgzOTdiNThhNDFhYTkzMTI4YTIyNmFhZTc1YTZmYjlhYzU0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtNzQsNiArNzQsNyBAQAogI2ltcG9y
dCA8bWF0aC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvTlNDb2xvclNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlND
ZWxsU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1NoYXJpbmdTZXJ2aWNlUGlja2VyU1BJ
Lmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgpAQCAtODg0LDcgKzg4NSw3IEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdFRleHRGaWVs
ZFN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYsIGNvbnN0IEVsCiBib29sIFJlbmRl
clRoZW1lTWFjOjpwYWludFRleHRBcmVhKGNvbnN0IFJlbmRlck9iamVjdCYgbywgY29uc3QgUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdCYgcikKIHsKICAgICBMb2NhbEN1cnJl
bnRHcmFwaGljc0NvbnRleHQgbG9jYWxDb250ZXh0KHBhaW50SW5mby5jb250ZXh0KCkpOwotICAg
IHdrRHJhd0JlemVsZWRUZXh0QXJlYShyLCBpc0VuYWJsZWQobykgJiYgIWlzUmVhZE9ubHlDb250
cm9sKG8pKTsKKyAgICBfTlNEcmF3Q2FyYm9uVGhlbWVMaXN0Qm94KHIsIGlzRW5hYmxlZChvKSAm
JiAhaXNSZWFkT25seUNvbnRyb2wobyksIFlFUywgWUVTKTsKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQ
cm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1By
b2Nlc3NNYWMubW0KaW5kZXggNmY3NTI5NTJlNzZjMzQ4N2IyYWNhMGQyZGUxMTM1YWFjM2RhZWU4
Ny4uMTM4YmU2YjhmZmM3NDM4ODUwMWE1MThlYmFmMDI0MmY5ZjEyOTI1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0K
QEAgLTQyLDYgKzQyLDcgQEAKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2lt
cG9ydCA8bm90aWZ5Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgorI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oPgogI2ltcG9ydCA8c3lzZXhp
dHMuaD4KICNpbXBvcnQgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbXBvcnQgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTksNyArNjAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
Ojppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcgogdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENo
aWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBO
U1N0cmluZyAqYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6V0VC
X1VJX1NUUklORygiJUAgTmV0d29ya2luZyIsICJ2aXNpYmxlIG5hbWUgb2YgdGhlIG5ldHdvcmsg
cHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiIpLCAoTlNTdHJp
bmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwotICAgIFdLU2V0VmlzaWJsZUFwcGxpY2F0
aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lKTsKKyAgICBfTFNTZXRBcHBsaWNh
dGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRDdXJyZW50QXBw
bGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5LCAoQ0ZTdHJpbmdSZWYpYXBwbGljYXRp
b25OYW1lLCBudWxscHRyKTsKIH0KIAogc3RhdGljIHZvaWQgb3ZlcnJpZGVTeXN0ZW1Qcm94aWVz
KGNvbnN0IFN0cmluZyYgaHR0cFByb3h5LCBjb25zdCBTdHJpbmcmIGh0dHBzUHJveHkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0K
aW5kZXggMjRkMjZlZDFlNjc0M2FlYzU1N2E4Zjc2NDg5YjY3MzgwNDE3ZmQwNS4uZGIwYzMwNmYw
NjJlN2RmOTNlMTM5YWRkZTA0NmI5YThiZjk3ZGY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQpAQCAtNjIyLDkgKzYyMiw5
IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyhjb25zdCBD
aGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhCiB2b2lkIFBsdWdpblByb2Nlc3M6OmluaXRpYWxp
emVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCiB7CiAgICAgTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZSA9IFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAICglQCBJbnRlcm5ldCBwbHVnLWlu
KSIsICJ2aXNpYmxlIG5hbWUgb2YgdGhlIHBsdWctaW4gaG9zdCBwcm9jZXNzLiBUaGUgZmlyc3Qg
YXJndW1lbnQgaXMgdGhlIHBsdWctaW4gbmFtZSBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCBpcyB0
aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgW1soTlNTdHJpbmcgKiltX3BsdWdpblBhdGggbGFzdFBh
dGhDb21wb25lbnRdIHN0cmluZ0J5RGVsZXRpbmdQYXRoRXh0ZW5zaW9uXSwgKE5TU3RyaW5nICop
cGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsKLSAgICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5h
bWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CisgICAgX0xTU2V0QXBwbGljYXRpb25J
bmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0
aW9uQVNOKCksIF9rTFNEaXNwbGF5TmFtZUtleSwgKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFt
ZSwgbnVsbHB0cik7CiAgICAgaWYgKCFtX3BsdWdpbkJ1bmRsZUlkZW50aWZpZXIuaXNFbXB0eSgp
KQotICAgICAgICBXS1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU1BsdWdJbkJ1bmRs
ZUlkZW50aWZpZXJLZXksIG1fcGx1Z2luQnVuZGxlSWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygp
LmdldCgpKTsKKyAgICAgICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVm
YXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIGtMU1BsdWdJbkJ1
bmRsZUlkZW50aWZpZXJLZXksIG1fcGx1Z2luQnVuZGxlSWRlbnRpZmllci5jcmVhdGVDRlN0cmlu
ZygpLmdldCgpLCBudWxscHRyKTsKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzOjppbml0aWFsaXpl
U2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHNhbmRib3hQYXJhbWV0ZXJz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVBy
b2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21hYy9TdG9yYWdlUHJv
Y2Vzc01hYy5tbQppbmRleCBjMDM4ODYwZjhmMTQzYzBkY2ZmYzkzYTUyNzY2ZDYzNDU0NzQxZjM5
Li5lMzk2ODFhYzc0YWZlZDFkNmY0OWZiYzhlNTMwNWJmYzVjNDM2YTc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21hYy9TdG9yYWdlUHJvY2Vzc01hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21hYy9TdG9yYWdlUHJvY2Vzc01hYy5tbQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
Myw2ICszMyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbXBvcnQgPFdl
YkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNl
Lmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00Nyw3ICs0OCw3IEBAIHZvaWQgU3RvcmFnZVByb2Nl
c3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFy
YW1ldGVyCiB2b2lkIFN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3Qg
Q2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAg
IE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpX
RUJfVUlfU1RSSU5HKCIlQCBTdG9yYWdlIiwgInZpc2libGUgbmFtZSBvZiB0aGUgc3RvcmFnZSBw
cm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiksIChOU1N0cmlu
ZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZV07Ci0gICAgV0tTZXRWaXNpYmxlQXBwbGljYXRp
b25OYW1lKChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUpOworICAgIF9MU1NldEFwcGxpY2F0
aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBs
aWNhdGlvbkFTTigpLCBfa0xTRGlzcGxheU5hbWVLZXksIChDRlN0cmluZ1JlZilhcHBsaWNhdGlv
bk5hbWUsIG51bGxwdHIpOwogfQogCiB2b2lkIFN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXplU2Fu
ZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHNhbmRib3hQYXJhbWV0ZXJzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA5OTgw
ZTE1ZTJmOTkyNjZhYjA5YjhhNWEwMWJhN2VkNzg3YTViNTA1Li4wMTU1Y2IxOGIxNTE0MzlhMGYx
M2IyM2FhZGFhZDYxNzcxYzZlNTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTk0LDYgKzk0LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkvbWFj
L05TQWNjZXNzaWJpbGl0eVNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNBcHBsaWNhdGlv
blNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVj
b2duaXplclNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oPgog
I2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTcGVsbENoZWNrZXJTUEkuaD4KICNpbXBvcnQgPHBhbC9z
cGkvbWFjL05TVGV4dEZpbmRlclNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNXaW5kb3dT
UEkuaD4KQEAgLTEyNTksNyArMTI2MCw3IEBAIHN0YXRpYyBOU1RyYWNraW5nQXJlYU9wdGlvbnMg
dHJhY2tpbmdBcmVhT3B0aW9ucygpCiB7CiAgICAgLy8gTGVnYWN5IHN0eWxlIHNjcm9sbGJhcnMg
aGF2ZSBkZXNpZ24gZGV0YWlscyB0aGF0IHJlbHkgb24gdHJhY2tpbmcgdGhlIG1vdXNlIGFsbCB0
aGUgdGltZS4KICAgICBOU1RyYWNraW5nQXJlYU9wdGlvbnMgb3B0aW9ucyA9IE5TVHJhY2tpbmdN
b3VzZU1vdmVkIHwgTlNUcmFja2luZ01vdXNlRW50ZXJlZEFuZEV4aXRlZCB8IE5TVHJhY2tpbmdJ
blZpc2libGVSZWN0IHwgTlNUcmFja2luZ0N1cnNvclVwZGF0ZTsKLSAgICBpZiAoV0tSZWNvbW1l
bmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kpCisgICAgaWYgKF9O
U1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSkKICAg
ICAgICAgb3B0aW9ucyB8PSBOU1RyYWNraW5nQWN0aXZlQWx3YXlzOwogICAgIGVsc2UKICAgICAg
ICAgb3B0aW9ucyB8PSBOU1RyYWNraW5nQWN0aXZlSW5LZXlXaW5kb3c7CkBAIC0xOTQ1LDcgKzE5
NDYsNyBAQCBib29sIFdlYlZpZXdJbXBsOjptaWdodEJlZ2luRHJhZ1doaWxlSW5hY3RpdmUoKQog
Ym9vbCBXZWJWaWV3SW1wbDo6bWlnaHRCZWdpblNjcm9sbFdoaWxlSW5hY3RpdmUoKQogewogICAg
IC8vIExlZ2FjeSBzdHlsZSBzY3JvbGxiYXJzIGhhdmUgZGVzaWduIGRldGFpbHMgdGhhdCByZWx5
IG9uIHRyYWNraW5nIHRoZSBtb3VzZSBhbGwgdGhlIHRpbWUuCi0gICAgaWYgKFdLUmVjb21tZW5k
ZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlTGVnYWN5KQorICAgIGlmIChfTlNS
ZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCmluZGV4IDdkNmNiM2Vk
YTFkMDg5Yzg3NDVhYjM0YTAxYzNjYjZjZmVmZTNjMjEuLjEyNDFiZDhkOWUxYjcwMTdmMDlkNGM0
YzRmZjllYTMwMTljNzZiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAi
U3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXZWJQb3B1cEl0ZW0uaCIKICNpbXBvcnQgPFdl
YktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8cGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xNjUsNyArMTY2LDcgQEAgdm9p
ZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0
LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICB9CiAKICAgICBSZWY8V2ViUG9wdXBNZW51UHJveHlN
YWM+IHByb3RlY3QoKnRoaXMpOwotICAgIFdLUG9wdXBNZW51KG1lbnUsIGxvY2F0aW9uLCByb3Vu
ZGYoTlNXaWR0aChyZWN0KSksIGR1bW15Vmlldy5nZXQoKSwgc2VsZWN0ZWRJbmRleCwgZm9udCwg
Y29udHJvbFNpemUsIGRhdGEuaGlkZUFycm93cyk7CisgICAgUEFMOjpwb3BVcE1lbnUobWVudSwg
bG9jYXRpb24sIHJvdW5kZihOU1dpZHRoKHJlY3QpKSwgZHVtbXlWaWV3LmdldCgpLCBzZWxlY3Rl
ZEluZGV4LCBmb250LCBjb250cm9sU2l6ZSwgZGF0YS5oaWRlQXJyb3dzKTsKIAogICAgIFttX3Bv
cHVwIGRpc21pc3NQb3BVcF07CiAgICAgW2R1bW15VmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21h
Yy9OZXRzY2FwZVBsdWdpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQppbmRleCBhMzEyMGU2MjUzODNiZWIy
YWY3MDcwMjcwZjQ3Zjg1ODk5MzBjMjA2Li5kMjkxYTExNDNjYzMxZWNkMTNjOGViYjgyMjUzMmNh
N2VmMTFjOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCkBAIC0zOCw2
ICszOCw3IEBACiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPG9i
amMvcnVudGltZS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CisjaW1w
b3J0IDxwYWwvc3BpL21hYy9OU01lbnVTUEkuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCkBAIC0xNTgsNyArMTU5LDYg
QEAgTlBCb29sIE5ldHNjYXBlUGx1Z2luOjpjb252ZXJ0UG9pbnQoZG91YmxlIHNvdXJjZVgsIGRv
dWJsZSBzb3VyY2VZLCBOUENvb3JkaW5hdGUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLQogTlBF
cnJvciBOZXRzY2FwZVBsdWdpbjo6cG9wVXBDb250ZXh0TWVudShOUE1lbnUqIG5wTWVudSkKIHsK
ICAgICBpZiAoIW1fY3VycmVudE1vdXNlRXZlbnQpCkBAIC0xNjgsNyArMTY4LDcgQEAgTlBFcnJv
ciBOZXRzY2FwZVBsdWdpbjo6cG9wVXBDb250ZXh0TWVudShOUE1lbnUqIG5wTWVudSkKICAgICBp
ZiAoIWNvbnZlcnRQb2ludChtX2N1cnJlbnRNb3VzZUV2ZW50LT5kYXRhLm1vdXNlLnBsdWdpblgs
IG1fY3VycmVudE1vdXNlRXZlbnQtPmRhdGEubW91c2UucGx1Z2luWSwgTlBDb29yZGluYXRlU3Bh
Y2VQbHVnaW4sIHNjcmVlblgsIHNjcmVlblksIE5QQ29vcmRpbmF0ZVNwYWNlU2NyZWVuKSkKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKLSAgICBXS1BvcHVwQ29udGV4dE1lbnUocmVp
bnRlcnByZXRfY2FzdDxOU01lbnUgKj4obnBNZW51KSwgTlNNYWtlUG9pbnQoc2NyZWVuWCwgc2Ny
ZWVuWSkpOworICAgIF9OU1BvcFVwQ2FyYm9uTWVudTMocmVpbnRlcnByZXRfY2FzdDxOU01lbnUg
Kj4obnBNZW51KSwgbmlsLCBuaWwsIE5TTWFrZVBvaW50KHNjcmVlblgsIHNjcmVlblkpLCAtMSwg
bmlsLCAwLCBuaWwsIE5TUG9wVXBNZW51VHlwZUNvbnRleHQsIG5pbCk7CiAgICAgcmV0dXJuIE5Q
RVJSX05PX0VSUk9SOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5tbQppbmRleCA5MjdjOGFjNDNkMjVkNmY3YzdiODc4NTY2NjYwN2Jk
MjczYjNlYmExLi5hZmNmZmE1MTc0NWIyNWI5ZTc0MDQyODMwN2ZhY2VkNTQ4ZGVjYWExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0K
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDExLCAyMDEyLCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtODEsNiArODEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XaGVlbEV2
ZW50VGVzdFRyaWdnZXIuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2lt
cG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFj
L05TTWVudVNQSS5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW1wb3J0IDx3dGYv
VVVJRC5oPgogCkBAIC0xNTg1LDcgKzE1ODYsNyBAQCBib29sIFBERlBsdWdpbjo6aGFuZGxlQ29u
dGV4dE1lbnVFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKICAgICBJbnRQb2ludCBw
b2ludCA9IGZyYW1lVmlldy0+Y29udGVudHNUb1NjcmVlbihJbnRSZWN0KGZyYW1lVmlldy0+d2lu
ZG93VG9Db250ZW50cyhldmVudC5wb3NpdGlvbigpKSwgSW50U2l6ZSgpKSkubG9jYXRpb24oKTsK
ICAgICAKICAgICBpZiAoTlNNZW51ICpuc01lbnUgPSBbbV9wZGZMYXllckNvbnRyb2xsZXIgbWVu
dUZvckV2ZW50Om5zRXZlbnRGb3JXZWJNb3VzZUV2ZW50KGV2ZW50KV0pIHsKLSAgICAgICAgV0tQ
b3B1cENvbnRleHRNZW51KG5zTWVudSwgcG9pbnQpOworICAgICAgICBfTlNQb3BVcENhcmJvbk1l
bnUzKG5zTWVudSwgbmlsLCBuaWwsIHBvaW50LCAtMSwgbmlsLCAwLCBuaWwsIE5TUG9wVXBNZW51
VHlwZUNvbnRleHQsIG5pbCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggNmQxZGQ3MzM5MTllZDRmNDg2Mzdk
NjdjZTYxNWRjNmZkMDQ3MTIyNy4uYjlhYzM5NmJiMDM2ZDU1ZDcxMmMyMjc0ODJhZmEzZmM5Nzcz
MDkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTM3LDE3ICszNywx
MCBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgCiAgICAgZGlz
cGF0Y2hfb25jZSgmaW5pdE9uY2UsIF57CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAgICAgSU5J
VChEcmF3QmV6ZWxlZFRleHRBcmVhKTsKICAgICAgICAgSU5JVChEcmF3TWVkaWFTbGlkZXJUcmFj
ayk7CiAgICAgICAgIElOSVQoRHJhd01lZGlhVUlQYXJ0KTsKICAgICAgICAgSU5JVChIaXRUZXN0
TWVkaWFVSVBhcnQpOwogICAgICAgICBJTklUKE1lYXN1cmVNZWRpYVVJUGFydCk7Ci0gICAgICAg
IElOSVQoRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCk7Ci0gICAgICAg
IElOSVQoQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKTsKLSAgICAgICAgSU5J
VChDdXJzb3IpOwotICAgICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKTsKLSAg
ICAgICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk7Ci0gICAgICAgIElOSVQo
TlNSZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOwogI2VuZGlmCiAgICAgfSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRl
eCA3YzM1ZDhlOTBiNzkxYzk0MjYxOWZkY2Y3NjYwM2M5YjQzMGVlMDJhLi40M2I3OTY2NmQxNTFl
OWRhMjk3YWM2OWYyZDA5YWRmODAyMTFkYmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lk
IFdlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0
aWFsaXphdGlvblBhcmFtZXRlcgogICAgICAgICBhcHBsaWNhdGlvbk5hbWUgPSBbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIlQCBXZWIgSW5zcGVjdG9yIiwgIlZpc2li
bGUgbmFtZSBvZiBXZWIgSW5zcGVjdG9yJ3Mgd2ViIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0
aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NO
YW1lXTsKICAgICBlbHNlCiAgICAgICAgIGFwcGxpY2F0aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAIFdlYiBDb250ZW50IiwgIlZpc2libGUgbmFt
ZSBvZiB0aGUgd2ViIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFt
ZS4iKSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsKLSAgICBXS1NldFZp
c2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CisgICAg
X0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xT
R2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9rTFNEaXNwbGF5TmFtZUtleSwgKENGU3RyaW5n
UmVmKWFwcGxpY2F0aW9uTmFtZSwgbnVsbHB0cik7CiAjZW5kaWYKIH0KIApAQCAtMzk0LDcgKzM5
NCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlQWN0aXZlUGFnZXMoKQogICAgIH0KIAogICAg
IGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVf
UFJJT1JJVFlfREVGQVVMVCwgMCksIFthY3RpdmVQYWdlVVJMc10gewotICAgICAgICBXS1NldEFw
cGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKENGU1RSKCJMU0FjdGl2ZVBhZ2VVc2VyVmlzaWJsZU9y
aWdpbnNLZXkiKSwgKF9fYnJpZGdlIENGQXJyYXlSZWYpYWN0aXZlUGFnZVVSTHMuZ2V0KCkpOwor
ICAgICAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lv
bklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgQ0ZTVFIoIkxTQWN0aXZlUGFnZVVz
ZXJWaXNpYmxlT3JpZ2luc0tleSIpLCAoX19icmlkZ2UgQ0ZBcnJheVJlZilhY3RpdmVQYWdlVVJM
cy5nZXQoKSwgbnVsbHB0cik7CiAgICAgfSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdENvbnRleHRNZW51
RGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dl
YkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tCmluZGV4IDAyNjViZjBjNTFhOWYxODcxNTk2
NTU1ZDY5MDdmOTAyMzcwZTc5NTcuLjNhY2NmMjJkZThhOGEzN2Y2NjI2NzBlNjZmZDBhNjAyMjU0
NTJhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0
ZXMvV2ViRGVmYXVsdENvbnRleHRNZW51RGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0ZS5t
bQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNTEsNiArNTEsNyBAQAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTS5oPgogI2ltcG9ydCA8
V2ViS2l0TGVnYWN5L0RPTVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFj
ZS5oPgorI2ltcG9ydCA8cGFsL3N5c3RlbS9jZi9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuaD4KICNp
bXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJEZWZhdWx0VUlE
ZWxlZ2F0ZSAoV2ViQ29udGV4dE1lbnUpCkBAIC05MSw3ICs5Miw3IEBAIC0gKE5TTWVudUl0ZW0g
KiltZW51SXRlbVdpdGhUYWc6KGludCl0YWcgdGFyZ2V0OihpZCl0YXJnZXQgcmVwcmVzZW50ZWRP
YmplY3Q6KGlkCiAgICAgICAgICAgICBhY3Rpb24gPSBAc2VsZWN0b3IoX3NlYXJjaFdpdGhTcG90
bGlnaHRGcm9tTWVudTopOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViTWVu
dUl0ZW1UYWdTZWFyY2hXZWI6IHsKLSAgICAgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4g
c2VhcmNoUHJvdmlkZXJOYW1lID0gYWRvcHRDRihXS0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJE
aXNwbGF5TmFtZSgpKTsKKyAgICAgICAgICAgIGF1dG8gc2VhcmNoUHJvdmlkZXJOYW1lID0gUEFM
OjpkZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpOwogICAgICAgICAgICAgdGl0bGUg
PSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpVSV9TVFJJTkdfSU5URVJOQUwoIlNlYXJjaCB3
aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3
aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpXTsK
ICAgICAgICAgICAgIGFjdGlvbiA9IEBzZWxlY3Rvcihfc2VhcmNoV2l0aEdvb2dsZUZyb21NZW51
Oik7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0K
aW5kZXggMTliMzhhZTJlODM0MzI3ZGQ2NzMzODYxN2I2MTdlODk3ZDc2OGQ5Yi4uMzg0YTU5MWVm
ZTE3ODI2MTllYTJkOGRkZWExNTAwZmQ5NWRmMmNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5I
b3N0UHJveHkubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjcmlwdENv
bnRyb2xsZXIuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaD4KICNpbXBv
cnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBleHRlcm4gIkMiIHsKQEAgLTExNyw3ICsxMTgs
NyBAQCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkobWFj
aF9wb3J0X3QgY2xpZW50UG9ydCwgbWFjaF9wbwogICAgIAogICAgIENGUnVuTG9vcEFkZFNvdXJj
ZShDRlJ1bkxvb3BHZXRDdXJyZW50KCksIGRlYXRoUG9ydFNvdXJjZS5nZXQoKSwga0NGUnVuTG9v
cERlZmF1bHRNb2RlKTsKICAgICAKLSAgICBtX2NsaWVudFBvcnRTb3VyY2UgPSBhZG9wdENGKFdL
Q3JlYXRlTUlHU2VydmVyU291cmNlKChtaWdfc3Vic3lzdGVtX3QpJldLV2ViS2l0UGx1Z2luQ2xp
ZW50X3N1YnN5c3RlbSwgbV9jbGllbnRQb3J0KSk7CisgICAgbV9jbGllbnRQb3J0U291cmNlID0g
YWRvcHRDRihNU0hDcmVhdGVNSUdTZXJ2ZXJTb3VyY2UobnVsbHB0ciwgMCwgKG1pZ19zdWJzeXN0
ZW1fdCkmV0tXZWJLaXRQbHVnaW5DbGllbnRfc3Vic3lzdGVtLCAwLCBtX2NsaWVudFBvcnQsIG51
bGxwdHIpKTsKICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpLCBt
X2NsaWVudFBvcnRTb3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7CiAgICAgQ0ZS
dW5Mb29wQWRkU291cmNlKENGUnVuTG9vcEdldEN1cnJlbnQoKSwgbV9jbGllbnRQb3J0U291cmNl
LmdldCgpLCAoQ0ZTdHJpbmdSZWYpTlNFdmVudFRyYWNraW5nUnVuTG9vcE1vZGUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51
TWFjLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51
TWFjLm1tCmluZGV4IGNjNWY4MWRmZDY1NmZjOGU3MzVkMTg1N2Y1YWU4NTM4ZDA3NGZlMTQuLjgx
Y2Y0Yzc1ZDIwOWNiY2YxYzQ3MWYxM2NlM2NlNGYwZjFiMTBjMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4LCAyMDEwLCAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1BvcHVwTWVudUNsaWVudC5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJm
YWNlLmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUuaD4KICNpbXBvcnQgPHd0
Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAt
MjE3LDcgKzIxOCw3IEBAIHZvaWQgUG9wdXBNZW51TWFjOjpzaG93KGNvbnN0IEludFJlY3QmIHIs
IEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBX
S1BvcHVwTWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRmKE5TV2lkdGgocikpLCBkdW1teVZpZXcu
Z2V0KCksIGluZGV4LCB0b05TRm9udChmb250KSwgY29udHJvbFNpemUsICFtX2NsaWVudC0+bWVu
dVN0eWxlKCkuaGFzRGVmYXVsdEFwcGVhcmFuY2UoKSk7CisgICAgUEFMOjpwb3BVcE1lbnUobWVu
dSwgbG9jYXRpb24sIHJvdW5kZihOU1dpZHRoKHIpKSwgZHVtbXlWaWV3LmdldCgpLCBpbmRleCwg
dG9OU0ZvbnQoZm9udCksIGNvbnRyb2xTaXplLCAhbV9jbGllbnQtPm1lbnVTdHlsZSgpLmhhc0Rl
ZmF1bHRBcHBlYXJhbmNlKCkpOwogCiAgICAgW21fcG9wdXAgZGlzbWlzc1BvcFVwXTsKICAgICBb
ZHVtbXlWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCmlu
ZGV4IGJmNzE2Yjc1N2IwYzU5NzM3Zjg4MzEwMmVhNTA1ODU5MzAwMjM3ZWEuLmE5OTI5OGJmNjgw
ZGFlYjMwN2I4NGIyMWFjNzA1NDA0NmQ4MzdkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0K
QEAgLTQzLDI0ICs0MywxMSBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQp
CiAgICAgICAgIHJldHVybjsKIAogI2lmICFQTEFURk9STShJT1MpCi0gICAgSU5JVChEcmF3QmV6
ZWxlZFRleHRBcmVhKTsKICAgICBJTklUKERyYXdNZWRpYVVJUGFydCk7CiAgICAgSU5JVChEcmF3
TWVkaWFTbGlkZXJUcmFjayk7CiAgICAgSU5JVChIaXRUZXN0TWVkaWFVSVBhcnQpOwogICAgIElO
SVQoTWVhc3VyZU1lZGlhVUlQYXJ0KTsKICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKElPUykKLSAg
ICBJTklUKEV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpOwotICAgIElO
SVQoQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKTsKLSAgICBJTklUKEN1cnNv
cik7Ci0jZW5kaWYKLQotI2lmICFQTEFURk9STShJT1MpCi0gICAgSU5JVChOU0VsYXN0aWNEZWx0
YUZvclRpbWVEZWx0YSk7Ci0gICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk7
Ci0gICAgSU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7Ci0jZW5kaWYKLQogICAg
IGRpZEluaXQgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0KaW5kZXggMjc0YTE2ODcwNTc0NTQ0MTRhYjkyOTc1YTVjMDQ4YzYwZWU1
YTU4YS4uYThjYzljMWRkOWM2NTU4N2RiYmI5MjI2YjE5YTM5YzQ5NGI4ZWJkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0xMzEsNiAr
MTMxLDcgQEAKICNpbXBvcnQgPGRsZmNuLmg+CiAjaW1wb3J0IDxsaW1pdHM+CiAjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oPgorI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvTlNTY3JvbGxlckltcFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTcGVsbENo
ZWNrZXJTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TVmlld1NQSS5oPgogI2ltcG9ydCA8
cGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaD4KQEAgLTQ2ODIsNyArNDY4Myw3IEBAIC0gKHZvaWQp
c2V0RGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3VyY2UKICNpZiBQTEFURk9STShN
QUMpCiAgICAgaWYgKCFfcHJpdmF0ZS0+aW5zdGFsbGVkVHJhY2tpbmdBcmVhKSB7CiAgICAgICAg
IE5TVHJhY2tpbmdBcmVhT3B0aW9ucyBvcHRpb25zID0gTlNUcmFja2luZ01vdXNlTW92ZWQgfCBO
U1RyYWNraW5nTW91c2VFbnRlcmVkQW5kRXhpdGVkIHwgTlNUcmFja2luZ0luVmlzaWJsZVJlY3Qg
fCBOU1RyYWNraW5nQ3Vyc29yVXBkYXRlOwotICAgICAgICBpZiAoV0tSZWNvbW1lbmRlZFNjcm9s
bGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kKKyAgICAgICAgaWYgKF9OU1JlY29t
bWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeQogI2lmIEVOQUJM
RShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICAgICAgICAgIHx8IFtbc2VsZiBfd2ViVmlld10gX2Rh
c2hib2FyZEJlaGF2aW9yOldlYkRhc2hib2FyZEJlaGF2aW9yQWx3YXlzU2VuZE1vdXNlRXZlbnRz
VG9BbGxXaW5kb3dzXQogI2VuZGlmCkBAIC02MzU0LDcgKzYzNTUsNyBAQCAtICh2b2lkKWF0dGFj
aFJvb3RMYXllcjooQ0FMYXllciAqKWxheWVyCiAgICAgaWYgKFtbc2VsZiBfd2ViVmlld10gX3Bv
c3RzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlvbnNdKQogICAgICAgICBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOl9XZWJW
aWV3RGlkU3RhcnRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTm90aWZpY2F0aW9uIG9iamVjdDpbc2Vs
ZiBfd2ViVmlld10gdXNlckluZm86bmlsXTsKIAotICAgIGlmIChXS0V4ZWN1dGFibGVXYXNMaW5r
ZWRPbk9yQmVmb3JlTGlvbigpKQorICAgIGlmICghX0NGRXhlY3V0YWJsZUxpbmtlZE9uT3JBZnRl
cihDRlN5c3RlbVZlcnNpb25Nb3VudGFpbkxpb24pKQogICAgICAgICBbdmlld0xheWVyIHNldEdl
b21ldHJ5RmxpcHBlZDpZRVNdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KaW5kZXggYWQyOWE4MjI1Mjk4OWM2NmE2NWY2NTg5NGY0ZTg2MTEzNTE5MWMz
MC4uNGU4YjgyMTYxMWI4ODhkNDdlNjI4ZGRlZjlkM2JlYjU5ODUxOGYyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjA5LDYgKzIwOSw3IEBACiAj
aW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0
IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jZi9DRlV0aWxp
dGllc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU1RvdWNoQmFyU1BJLmg+CiAjaW1w
b3J0IDxwYWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oPgogI2ltcG9ydCA8
cGFsL3NwaS9tYWMvTlNSZXNwb25kZXJTUEkuaD4KQEAgLTI2MDksMTYgKzI2MTAsMTYgQEAgLSAo
aWQpX2Zvcm1EZWxlZ2F0ZUZvclNlbGVjdG9yOihTRUwpc2VsZWN0b3IKICNpZiAhUExBVEZPUk0o
SU9TKQogLSAoQk9PTClfbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsKIHsKLSAgICBzdGF0
aWMgQk9PTCBuZWVkc1F1aXJrID0gV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9i
ZS5BY3JvYmF0IiwgLTEsIDkuMCkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhh
bihAImNvbS5hZG9iZS5BY3JvYmF0LlBybyIsIC0xLCA5LjApCi0gICAgICAgIHx8IFdLQXBwVmVy
c2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuUmVhZGVyIiwgLTEsIDkuMCkKLSAgICAgICAg
fHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5kaXN0aWxsZXIiLCAtMSwg
OS4wKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLkNv
bnRyaWJ1dGUiLCAtMSwgNC4yKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFu
KEAiY29tLmFkb2JlLmRyZWFtd2VhdmVyLTkuMCIsIC0xLCA5LjEpCi0gICAgICAgIHx8IFdLQXBw
VmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20ubWFjcm9tZWRpYS5maXJld29ya3MiLCAtMSwgOS4x
KQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLkluQ29w
eSIsIC0xLCA1LjEpCi0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20u
YWRvYmUuSW5EZXNpZ24iLCAtMSwgNS4xKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xl
c3NUaGFuKEAiY29tLmFkb2JlLlNvdW5kYm9vdGgiLCAtMSwgMik7CisgICAgc3RhdGljIEJPT0wg
bmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUu
QWNyb2JhdCIpLCAtMSwgOS4wKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhh
bihDRlNUUigiY29tLmFkb2JlLkFjcm9iYXQuUHJvIiksIC0xLCA5LjApCisgICAgICAgIHx8IF9D
RkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuUmVhZGVyIiksIC0xLCA5
LjApCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRv
YmUuZGlzdGlsbGVyIiksIC0xLCA5LjApCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xl
c3NUaGFuKENGU1RSKCJjb20uYWRvYmUuQ29udHJpYnV0ZSIpLCAtMSwgNC4yKQorICAgICAgICB8
fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLmRyZWFtd2VhdmVy
LTkuMCIpLCAtMSwgOS4xKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihD
RlNUUigiY29tLm1hY3JvbWVkaWEuZmlyZXdvcmtzIiksIC0xLCA5LjEpCisgICAgICAgIHx8IF9D
RkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuSW5Db3B5IiksIC0xLCA1
LjEpCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRv
YmUuSW5EZXNpZ24iKSwgLTEsIDUuMSkKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lvbkNoZWNrTGVz
c1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5Tb3VuZGJvb3RoIiksIC0xLCAyKTsKIAogICAgIHJldHVy
biBuZWVkc1F1aXJrOwogfQpAQCAtMjYyNiwxMyArMjYyNywxMyBAQCAtIChCT09MKV9uZWVkc0Fk
b2JlRnJhbWVSZWxvYWRpbmdRdWlyawogLSAoQk9PTClfbmVlZHNMaW5rRWxlbWVudFRleHRDU1NR
dWlyawogewogICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSAhV2ViS2l0TGlua2VkT25PckFm
dGVyKFdFQktJVF9GSVJTVF9WRVJTSU9OX1dJVEhPVVRfTElOS19FTEVNRU5UX1RFWFRfQ1NTX1FV
SVJLKQotICAgICAgICAmJiBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmUtZnJvbnRp
ZXIuc2hhZGUxMCIsIC0xLCAxMC42KTsKKyAgICAgICAgJiYgX0NGQXBwVmVyc2lvbkNoZWNrTGVz
c1RoYW4oQ0ZTVFIoImNvbS5lLWZyb250aWVyLnNoYWRlMTAiKSwgLTEsIDEwLjYpOwogICAgIHJl
dHVybiBuZWVkc1F1aXJrOwogfQogCiAtIChCT09MKV9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VR
dWlyawogewotICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSBXS0FwcFZlcnNpb25DaGVja0xl
c3NUaGFuKEAiY29tLmFwcGxlLmlBZFByb2R1Y2VyIiwgLTEsIDIuMSk7CisgICAgc3RhdGljIEJP
T0wgbmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYXBw
bGUuaUFkUHJvZHVjZXIiKSwgLTEsIDIuMSk7CiAgICAgCiAgICAgcmV0dXJuIG5lZWRzUXVpcms7
CiB9CkBAIC0yNjQ1LDcgKzI2NDYsNyBAQCAtIChCT09MKV9uZWVkc0tleWJvYXJkRXZlbnREaXNh
bWJpZ3VhdGlvblF1aXJrcwogCiAtIChCT09MKV9uZWVkc0ZyYW1lTG9hZERlbGVnYXRlUmV0YWlu
UXVpcmsKIHsKLSAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gV0tBcHBWZXJzaW9uQ2hlY2tM
ZXNzVGhhbihAImNvbS5lcXVpbnV4LmlTYWxlNSIsIC0xLCA1LjYpOyAgICAKKyAgICBzdGF0aWMg
Qk9PTCBuZWVkc1F1aXJrID0gX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5l
cXVpbnV4LmlTYWxlNSIpLCAtMSwgNS42KTsKICAgICByZXR1cm4gbmVlZHNRdWlyazsKIH0KIApA
QCAtMjkyNyw3ICsyOTI4LDcgQEAgLSAodm9pZClfcHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVm
ZXJlbmNlcyAqKXByZWZlcmVuY2VzCiAgICAgc2V0dGluZ3Muc2V0TmVlZHNBZG9iZUZyYW1lUmVs
b2FkaW5nUXVpcmsoW3NlbGYgX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrXSk7CiAgICAg
c2V0dGluZ3Muc2V0VHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQoW3NlbGYgX25lZWRz
TGlua0VsZW1lbnRUZXh0Q1NTUXVpcmtdKTsKICAgICBzZXR0aW5ncy5zZXROZWVkc0tleWJvYXJk
RXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcyhbc2VsZiBfbmVlZHNLZXlib2FyZEV2ZW50RGlzYW1i
aWd1YXRpb25RdWlya3NdKTsKLSAgICBzZXR0aW5ncy5zZXRFbmZvcmNlQ1NTTUlNRVR5cGVJbk5v
UXVpcmtzTW9kZSghV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hcHBsZS5pV2ViIiwg
LTEsIDIuMSkpOworICAgIHNldHRpbmdzLnNldEVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NN
b2RlKCFfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFwcGxlLmlXZWIiKSwg
LTEsIDIuMSkpOwogICAgIHNldHRpbmdzLnNldE5lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJr
KFtzZWxmIF9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlya10pOwogICAgIHNldHRpbmdzLnNl
dFRleHRBcmVhc0FyZVJlc2l6YWJsZShbcHJlZmVyZW5jZXMgdGV4dEFyZWFzQXJlUmVzaXphYmxl
XSk7CiAgICAgc2V0dGluZ3Muc2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoW3By
ZWZlcmVuY2VzIGV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320994</attachid>
            <date>2017-09-15 22:07:09 -0700</date>
            <delta_ts>2017-09-16 13:45:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177029-20170915220708.patch</filename>
            <type>text/plain</type>
            <size>87493</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRhMDI0YTAxYjFiZjQy
OGFjOWFmNzIwZmJiOGY3NjQyNmRlZGM1OC4uODdhYWJmOGFhZjNkZjM0MWM4YTIyMjI0YjAwOWJk
NDEyNDA3MTk2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQgbWlzY2Vs
bGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWc6IFVzZWQgLWZvcmNlX2xvYWQgb2YgbGliUEFMIGluc3RlYWQgb2YgLU9iakMuIFRo
aXMgZm9yY2VzCisgICAgICAgIHRoZSBsaW5rZXIgdG8gaW5jbHVkZSBib3RoIE9iamVjdGl2ZS1D
IGFuZCBDIFBBTCBzeW1ib2xzIGluIFdlYkNvcmUuIFRoaXMgaXMgbmVlZGVkIGZvcgorICAgICAg
ICBQQUw6OnBvcFVwTWVudSwgd2hpY2ggaXMgdXNlZCBieSBXZWJLaXQgYW5kIFdlYktpdExlZ2Fj
eSBidXQgbm90IFdlYkNvcmUuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3Ry
aW5nc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNo
V2ViKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6ZWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKToKKyAgICAgICAgKFdlYkNv
cmU6OmVsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpyZWJv
dW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6
OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6V0tDb3JlQ3Vyc29yX2Nv
cmVDdXJzb3JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvcmVDdXJzb3JDbGFzcyk6
CisgICAgICAgIChXZWJDb3JlOjpjb3JlQ3Vyc29yQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6
Y3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3Ig
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBhaW50VGV4dEFyZWEpOgorCiAyMDE3LTA5LTE1ICBTYWlkIEFib3UtSGFs
bGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgY2FsbGluZyBT
dHJpbmc6OmZvcm1hdCgpIGluIFBsYXRmb3JtQ0FGaWx0ZXJzOjpzZXRGaWx0ZXJzT25MYXllcigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwppbmRleCAyNTIzYjY4MjM1MDRlZWM3Zjc4NzBhMGEyNjBkMjMwNTFh
ZTNiYjkzLi5iODc3NTQyNzc3YzJiYjVlMmE1NjI2Mzg2ZjE4MTZiNjk5NWE2YTBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNy0wOS0xNSAgQW5keSBFc3RlcyAgPGFl
c3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gVXBsb2FkIG1pc2NlbGxhbmVvdXMgV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmg6CisgICAgICAgICogcGFsL3NwaS9j
b2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJLmguCisgICAgICAgICogcGFsL3NwaS9tYWMv
SElTZXJ2aWNlc1NQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TQ2VsbFNQSS5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgor
ICAgICAgICAqIHBhbC9zcGkvbWFjL05TTWVudVNQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFj
L05TU2Nyb2xsVmlld1NQSS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TU2Nyb2xsZXJJ
bXBTUEkuaDoKKyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVz
U1BJLmguCisgICAgICAgIChQQUw6OmRlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKToK
KyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAg
ICAgICAqIHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBhbC9zeXN0
ZW0vbWFjL1BvcHVwTWVudS5tbTogQWRkZWQuCisgICAgICAgIChQQUw6OnBvcFVwTWVudSk6CisK
IDIwMTctMDktMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IHRoZSBtYWNPUyBDTWFrZSBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNDAyZjFlM2M4NjM5
ZGJmZDIyY2Q1OWI4ZDY2YzAxNjg5OTZlMDYxLi42M2I5ZGFhYThhMTMzOTk1ZGI5OTgyNjZlYjVh
ZGEwODE2OGQ3MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQgbWlzY2Vs
bGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9OZXR3
b3JrUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRp
YWxpemVQcm9jZXNzTmFtZSk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJv
Y2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVBy
b2Nlc3NOYW1lKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVByb2Nlc3NN
YWMubW06CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vz
c05hbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAg
ICAgKFdlYktpdDo6dHJhY2tpbmdBcmVhT3B0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjptaWdodEJlZ2luU2Nyb2xsV2hpbGVJbmFjdGl2ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9w
dXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChXZWJLaXQ6
Ok5ldHNjYXBlUGx1Z2luOjpwb3BVcENvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpo
YW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3Rl
bUludGVyZmFjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKToKKwogMjAx
Ny0wOS0xNSAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAgICAgV1RG
OiB1c2UgRm9yd2FyZC5oIHdoZW4gYXBwcm9wcmlhdGUgaW5zdGVhZCBvZiBWZWN0b3IuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDhkOThkNDAwNjY2YmRhMmE5MTE2YzQyNDAyZTEw
NDY0NTYyMjg1MDcuLmNlNDVjYTk0YzcyNmQ4NjYxZTIwYTg2MDUxOTBiMjhkZGY1YmJjYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAxNy0wOS0xNSAg
QW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01hY10gVXBsb2FkIG1p
c2NlbGxhbmVvdXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZWZhdWx0RGVsZWdhdGVzL1dl
YkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJEZWZhdWx0VUlE
ZWxlZ2F0ZSBtZW51SXRlbVdpdGhUYWc6dGFyZ2V0OnJlcHJlc2VudGVkT2JqZWN0Ol0pOgorICAg
ICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5Ib3N0UHJv
eHkpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbToKKyAgICAgICAg
KFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVt
SW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNl
dERhdGFTb3VyY2U6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0dGFjaFJvb3RMYXllcjpd
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX25l
ZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX25lZWRz
TGlua0VsZW1lbnRUZXh0Q1NTUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNJc0xv
YWRpbmdJbkFQSVNlbnNlUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNGcmFtZUxv
YWREZWxlZ2F0ZVJldGFpblF1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2Vz
Q2hhbmdlZDpdKToKKworMjAxNy0wOS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+
CisKICAgICAgICAgW0NvY29hXSBVcHN0cmVhbSBNZWRpYVJlbW90ZSBhbmQgVmlkZW9Ub29sYm94
IFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Njk1MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwppbmRleCA3NjY2N2JhZTc0MDQ3MWQ3NDVhOTUx
MjIwNWViMWNmNDlkN2EzMjM1Li5iMDNkZDRjZThhMjM2YjczZTg4OThlN2Y5ZGJkMzhmNWZhY2M4
MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25m
aWcKQEAgLTc3LDcgKzc3LDcgQEAgTElCV0VCUlRDX0xJQlJBUllfRElSX1VTRV9PVkVSUklERV9G
UkFNRVdPUktTX0RJUl9OTyA9ICQoV0VCQ09SRV9GUkFNRVdPUktTX0RJUikKIExJQldFQlJUQ19M
SUJSQVJZX0RJUl9VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfWUVTID0gJChXS19PVkVSUklE
RV9GUkFNRVdPUktTX0RJUik7CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19S
RUxPQ0FUQUJMRV9GUkFNRVdPUktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9MU19MREZM
QUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk0pOwotT1RIRVJfTERGTEFHU19CQVNFID0gLWxz
cWxpdGUzIC1sb2JqYyAtbEFOR0xFIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgTWV0
YWwgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVfY2xpZW50
IFdlYktpdExlZ2FjeSAtT2JqQzsKK09USEVSX0xERkxBR1NfQkFTRSA9IC1sc3FsaXRlMyAtbG9i
amMgLWxBTkdMRSAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIE1ldGFsIC1hbGxvd2Fi
bGVfY2xpZW50IFdlYkNvcmVUZXN0U3VwcG9ydCAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRMZWdh
Y3kgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlBBTC5hOwogLy8gRklYTUU6
IFJlZHVjZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnQgPHJkYXI6Ly9wcm9ibGVtLzMx
ODIzOTY5PgogT1RIRVJfTERGTEFHU19CQVNFX2lvcyA9ICQoT1RIRVJfTERGTEFHU19CQVNFKSAt
ZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENv
cmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29y
ayBNb2JpbGVDb3JlU2VydmljZXMgLWZyYW1ld29yayBPcGVuR0xFUyAtbE1vYmlsZUdlc3RhbHQg
JChXS19JT1NfQklOQ09NUEFUX0xERkxBR1MpIC1hbGxvd2FibGVfY2xpZW50IFdlYktpdCAtYWxs
b3dhYmxlX2NsaWVudCBpVHVuZXNVIC1hbGxvd2FibGVfY2xpZW50IENhc2FibGFuY2EgLWFsbG93
YWJsZV9jbGllbnQgUmVtb3RlIC1hbGxvd2FibGVfY2xpZW50IFRWQm9va3MgLWFsbG93YWJsZV9j
bGllbnQgRHVtcFJlbmRlclRyZWUgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0VGVzdFJ1bm5lciAt
YWxsb3dhYmxlX2NsaWVudCBUZXN0V2ViS2l0QVBJOwogT1RIRVJfTERGTEFHU19QTEFURk9STVtz
ZGs9aXBob25lb3MqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgLWZyYW1ld29yayBJT1N1
cmZhY2UgLWZyYW1ld29yayBHcmFwaGljc1NlcnZpY2VzICQoTElCV0VCUlRDX0xERkxBR1MpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGNhYjE0Y2Q0YTdmZGIxYjdlZjRlYjg1NWRkYTlhZWFkNWVhOGM0OWIuLmJjY2U5MjYxNTM4
MmFiZmNhYzExYzkyNzUwNjRjY2I4OTUwYjRkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNyw2ICsxMDcsMTIgQEAKIAkJ
QTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8q
IFdlYlBhbmVsLm1tICovOyB9OwogCQlBMTA4MjZGRTFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFw
aGljc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTEwODI2RkQxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCAqLzsgfTsKIAkJQTEx
NzVCNDkxRjZBRkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNDgxRjZBRkY4RTAwQzRC
OUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovOyB9OworCQlBMTE3NUI0QjFGNkIyRDdFMDBD
NEI5RjAgLyogTlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggKi87IH07
CisJCUExMTc1QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRDMUY2QjMzNzMwMEM0QjlG
MCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsKKwkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYwIC8qIFBv
cHVwTWVudS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMTc1QjREMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gKi87IH07CisJCUExMTc1
QjU3MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjU1MUY2QjQ3MDUwMEM0
QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCAqLzsgfTsKKwkJQTExNzVCNTgxRjZCNDcw
NTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI1NjFGNkI0NzA1MDBDNEI5RjAgLyog
RGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJQTExNzVCNUExRjZCNEE4NDAwQzRC
OUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQ
SS5oICovOyB9OwogCQlBMUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1RENFMUY1
NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFGMEREMEVB
MDBCNzE5NTQgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9
OwogCQlBMzBENDEyMjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMUYxRjBERDBFQTAwQjcx
OTU0IC8qIEtpbGxSaW5nLmNwcCAqLzsgfTsKQEAgLTIyOSw2ICsyMzUsMTIgQEAKIAkJQTEwODI2
RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMDgyNkZEMUY1OEE0
MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TR3JhcGhpY3NT
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNzVCNDgxRjZBRkY4RTAwQzRC
OUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hTeW50aGVz
aXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEExRjZCMkQ3RTAw
QzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0NlbGxTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEMxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVw
TWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFBvcHVwTWVudS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92
aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTE3NUI1OTFGNkI0QTg0MDBDNEI5RjAgLyog
TlNTY3JvbGxWaWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TU2Nyb2xsVmlld1NQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYgLyogTWV0
YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0YWRhdGFTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLaWxsUmluZy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDcsNiArMzE5LDcgQEAKIAkJCQkwQzJEQTEyODFG
M0JFQjQ5MDBEQkMzMTcgLyogSU9SZXR1cm5TUEkuaCAqLywKIAkJCQkwQzJEQTEyOTFGM0JFQjQ5
MDBEQkMzMTcgLyogSU9TdXJmYWNlU1BJLmggKi8sCiAJCQkJMEMyREExMkExRjNCRUI0OTAwREJD
MzE3IC8qIElPVHlwZXNTUEkuaCAqLywKKwkJCQkwQzVBRjkxMjFGNDNBNEM3MDAyRUFDMDIgLyog
TGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzJEQTEyQjFGM0JFQjQ5MDBEQkMzMTcgLyog
TGlua1ByZXNlbnRhdGlvblNQSS5oICovLAogCQkJCTBDMkRBMTJDMUYzQkVCNDkwMERCQzMxNyAv
KiBNYWNoVk1TUEkuaCAqLywKIAkJCQkwQzJEQTEyRDFGM0JFQjQ5MDBEQkMzMTcgLyogTkVGaWx0
ZXJTb3VyY2VTUEkuaCAqLywKQEAgLTMzNiw3ICszNDksNiBAQAogCQkJCTBDNUFGOTBGMUY0M0E0
QzcwMDJFQUMwMiAvKiBDb3JlVUlTUEkuaCAqLywKIAkJCQkwQzVBRjkxMDFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggKi8sCiAJCQkJMEM1QUY5MTExRjQzQTRDNzAwMkVB
QzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCAqLywKLQkJCQkwQzVBRjkxMjFGNDNBNEM3MDAy
RUFDMDIgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzVBRjkxMzFGNDNBNEM3MDAy
RUFDMDIgLyogTWVkaWFQbGF5ZXJTUEkuaCAqLywKIAkJCQkwQzVBRjkxNDFGNDNBNEM3MDAyRUFD
MDIgLyogTW9iaWxlR2VzdGFsdFNQSS5oICovLAogCQkJCTBDNUFGOTE1MUY0M0E0QzcwMDJFQUMw
MiAvKiBPcGVuR0xFU1NQSS5oICovLApAQCAtMzU5LDYgKzM3MSw3IEBACiAJCQkJQTFGNTVEQ0Ux
RjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzQxRjQ1MTMw
RjAwRjRFQkI2IC8qIE5TQWNjZXNzaWJpbGl0eVNQSS5oICovLAogCQkJCTBDNzc4NTc1MUY0NTEz
MEYwMEY0RUJCNiAvKiBOU0FwcGxpY2F0aW9uU1BJLmggKi8sCisJCQkJQTExNzVCNEExRjZCMkQ3
RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovLAogCQkJCTBDNzc4NTc2MUY0NTEzMEYwMEY0RUJC
NiAvKiBOU0V2ZW50U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzcxRjQ1MTMwRjAwRjRFQkI2IC8qIE5T
Rm9udFNQSS5oICovLAogCQkJCUExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNz
U1BJLmggKi8sCkBAIC0zNzAsNiArMzgzLDcgQEAKIAkJCQkwQzc3ODU3QzFGNDUxMzBGMDBGNEVC
QjYgLyogTlNTY3JvbGxlckltcFNQSS5oICovLAogCQkJCTBDNzc4NTdEMUY0NTEzMEYwMEY0RUJC
NiAvKiBOU1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggKi8sCiAJCQkJMEM3Nzg1N0UxRjQ1MTMw
RjAwRjRFQkI2IC8qIE5TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yU1BJLmggKi8sCisJCQkJ
QTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oICovLAogCQkJCTBD
Nzc4NTdGMUY0NTEzMEYwMEY0RUJCNiAvKiBOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggKi8s
CiAJCQkJMEM3Nzg1ODAxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2hhcmluZ1NlcnZpY2VTUEkuaCAq
LywKIAkJCQkwQzc3ODU4MTFGNDUxMzBGMDBGNEVCQjYgLyogTlNTcGVsbENoZWNrZXJTUEkuaCAq
LywKQEAgLTQ1MCw2ICs0NjQsMTUgQEAKIAkJCXBhdGggPSBDb25maWd1cmF0aW9uczsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUExMTc1QjU0MUY2QjQ2RDYwMEM0QjlGMCAv
KiBjZiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQTEx
NzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgKi8sCisJ
CQkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICov
LAorCQkJKTsKKwkJCXBhdGggPSBjZjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCUEzMEQ0MTFEMUYwREQwQUMwMEI3MTk1NCAvKiB0ZXh0ICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTQ3MSw2ICs0OTQsNyBAQAogCQlBMzc4OEU5RjFG
MDVCN0NFMDA2Nzk0MjUgLyogc3lzdGVtICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQlBMTE3NUI1NDFGNkI0NkQ2MDBDNEI5RjAgLyogY2YgKi8sCiAJCQkJ
QTNBQjZFNUQxRjNEMUUyODAwOUMxNEIxIC8qIGNvY29hICovLAogCQkJCUEzNzg4RUEwMUYwNUI3
RTIwMDY3OTQyNSAvKiBtYWMgKi8sCiAJCQkJQTNBQjZFNTExRjNEMURDNTAwOUMxNEIxIC8qIFNs
ZWVwRGlzYWJsZXIuY3BwICovLApAQCAtNDg2LDYgKzUxMCw4IEBACiAJCUEzNzg4RUEwMUYwNUI3
RTIwMDY3OTQyNSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCUExMTc1QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLywKKwkJ
CQlBMTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tICovLAogCQkJCUEzNzg4
RTlEMUYwNUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1hYy5tbSAqLywKIAkJCQlBM0FCNkU2MjFGM0Qy
MTdGMDA5QzE0QjEgLyogU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oICovLAogCQkJCUEzQUI2RTYz
MUYzRDIxN0YwMDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tICovLApAQCAtNTI4
LDYgKzU1NCw3IEBACiAJCQkJMEMyREExNDExRjNCRUI0OTAwREJDMzE3IC8qIERhdGFEZXRlY3Rv
cnNDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVCQjYg
LyogRGF0YURldGVjdG9yc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUExRjQzQTRD
NzAwMkVBQzAyIC8qIERhdGFEZXRlY3RvcnNVSVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEx
NzVCNTcxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyRDlFNzMxRUVGNUFGNjAwREJDMzE3IC8qIEV4cG9ydE1hY3Jvcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTEwMjY1ODcxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5kYXRpb25T
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFCMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFw
aGljc1NlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTU1Niw2ICs1ODMsNyBAQAogCQkJ
CTBDMkRBMTRBMUYzQkVCNDkwMERCQzMxNyAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDMkRBMTRCMUYzQkVCNDkwMERCQzMxNyAvKiBOU0J1dHRvbkNlbGxT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTRDMUYzQkVCNDkwMERCQzMxNyAvKiBOU0Nh
bGVuZGFyRGF0ZVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTExNzVCNEIxRjZCMkQ3RTAwQzRC
OUYwIC8qIE5TQ2VsbFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNEQxRjNCRUI0OTAw
REJDMzE3IC8qIE5TQ29sb3JTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThGMUY0NTEz
MEYwMEY0RUJCNiAvKiBOU0V2ZW50U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0RTFG
M0JFQjQ5MDBEQkMzMTcgLyogTlNFeHRlbnNpb25TUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTcw
LDYgKzU5OCw3IEBACiAJCQkJMEM3Nzg1OTUxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsZXJJ
bXBTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk2MUY0NTEzMEYwMEY0RUJCNiAvKiBO
U1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5NzFG
NDUxMzBGMDBGNEVCQjYgLyogTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JTUEkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUExMTc1QjVBMUY2QjRBODQwMEM0QjlGMCAvKiBOU1Njcm9sbFZpZXdT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk4MUY0NTEzMEYwMEY0RUJCNiAvKiBOU1No
YXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5OTFGNDUx
MzBGMDBGNEVCQjYgLyogTlNTaGFyaW5nU2VydmljZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEM3Nzg1OUExRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU3BlbGxDaGVja2VyU1BJLmggaW4gSGVhZGVy
cyAqLywKQEAgLTU4NCw2ICs2MTMsNyBAQAogCQkJCTBDNUFGOTFGMUY0M0E0QzcwMDJFQUMwMiAv
KiBPcGVuR0xFU1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNTUxRjNCRUI0OTAwREJD
MzE3IC8qIFBhc3NLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTlFMUY0NTEzMEYw
MEY0RUJCNiAvKiBQSVBTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMTc1QjRFMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU2MUYzQkVC
NDkwMERCQzMxNyAvKiBwdGhyZWFkU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5RjFG
NDUxMzBGMDBGNEVCQjYgLyogUVRLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU3
MUYzQkVCNDkwMERCQzMxNyAvKiBRdWFydHpDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTY5
Miw4ICs3MjIsMTAgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxl
cyA9ICgKIAkJCQkxQzA5RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9u
Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExMTc1QjU4MUY2QjQ3MDUwMEM0QjlGMCAv
KiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTMwRDQxMjIx
RjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0
MTI1MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUExMTc1QjRGMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBM0M2NkNEQzFGNDYyRDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUEzQUI2RTUyMUYzRDFEQzUwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUEzQUI2RTYwMUYzRDFFMzkwMDlDMTRCMSAvKiBTbGVlcERpc2Fi
bGVyQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaAppbmRleCBmYzhjZDc5Mjc2MmJmMGE3NjIwYTEyYWNmMTIw
ZmEzMDlhMzc4ZmZjLi5mNTA2Y2IyNmExZGNhYTBjZDUxOGUyYTllOGNkNWFlZjg3Y2IzY2Y3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NyArMjgsMTYgQEAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgog
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24v
Q0ZQcml2Lmg+CisKKyNlbHNlCisKK3R5cGVkZWYgQ0ZfRU5VTShDRkluZGV4LCBDRlN5c3RlbVZl
cnNpb24pIHsKKyAgICBDRlN5c3RlbVZlcnNpb25MaW9uID0gNywKKyAgICBDRlN5c3RlbVZlcnNp
b25Nb3VudGFpbkxpb24gPSA4LAorfTsKKwogI2VuZGlmCiAKIFdURl9FWFRFUk5fQ19CRUdJTgpA
QCAtMzcsNSArNDYsMTEgQEAgQ0ZEaWN0aW9uYXJ5UmVmIF9DRkNvcHlTeXN0ZW1WZXJzaW9uRGlj
dGlvbmFyeSh2b2lkKTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGU3lzdGVtVmVyc2lv
blByb2R1Y3RWZXJzaW9uS2V5OwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZTeXN0ZW1W
ZXJzaW9uQnVpbGRWZXJzaW9uS2V5OwogCitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NGV2Vi
U2VydmljZXNUeXBlV2ViU2VhcmNoOworZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDRldlYlNl
cnZpY2VzUHJvdmlkZXJEZWZhdWx0RGlzcGxheU5hbWVLZXk7CitDRkRpY3Rpb25hcnlSZWYgX0NG
V2ViU2VydmljZXNDb3B5UHJvdmlkZXJJbmZvKENGU3RyaW5nUmVmIHNlcnZpY2VUeXBlLCBCb29s
ZWFuKiBvdXRJc1VzZXJTZWxlY3Rpb24pOworCitCb29sZWFuIF9DRkFwcFZlcnNpb25DaGVja0xl
c3NUaGFuKENGU3RyaW5nUmVmIGJ1bmRsZUlELCBpbnQgbGlua2VkT25Bbk9sZGVyU3lzdGVtVGhh
biwgZG91YmxlIHZlcnNpb25OdW1iZXJMZXNzVGhhbik7CisKIFdURl9FWFRFUk5fQ19FTkQKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTGF1bmNoU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2Vz
U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTBhMGVhM2I1YjAzOTVjNWE5MzEyNWQzNWI5MDk3NjVmZDQyMGEy
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0xh
dW5jaFNlcnZpY2VzU1BJLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCisjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbXBvcnQgPExhdW5j
aFNlcnZpY2VzL0xhdW5jaFNlcnZpY2VzUHJpdi5oPgorI2VsaWYgUExBVEZPUk0oSU9TKQorI2lt
cG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL0xhdW5jaFNlcnZpY2VzUHJpdi5oPgorI2VuZGlmCisK
KyNlbmRpZgorCitAY2xhc3MgTFNBcHBMaW5rOwordHlwZWRlZiB2b2lkICheTFNBcHBMaW5rQ29t
cGxldGlvbkhhbmRsZXIpKExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAqZXJyb3IpOwordHlw
ZWRlZiB2b2lkICheTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKShCT09MIHN1Y2Nlc3Ms
IE5TRXJyb3IgKmVycm9yKTsKKworI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCitAaW50
ZXJmYWNlIExTUmVzb3VyY2VQcm94eSA6IE5TT2JqZWN0IDxOU0NvcHlpbmcsIE5TU2VjdXJlQ29k
aW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExTQnVuZGxlUHJveHkgOiBMU1Jlc291cmNlUHJveHkg
PE5TU2VjdXJlQ29kaW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExTQXBwbGljYXRpb25Qcm94eSA6
IExTQnVuZGxlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgorLSAoTlNTdHJpbmcgKilsb2NhbGl6ZWRO
YW1lRm9yQ29udGV4dDooTlNTdHJpbmcgKiljb250ZXh0OworQGVuZAorCitAaW50ZXJmYWNlIExT
QXBwTGluayA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KK0BlbmQKKworQGludGVyZmFjZSBM
U0FwcExpbmsgKCkKKysgKHZvaWQpZ2V0QXBwTGlua1dpdGhVUkw6KE5TVVJMICopYVVSTCBjb21w
bGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpY29tcGxldGlvbkhhbmRs
ZXI7CisrICh2b2lkKW9wZW5XaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxldGlvbkhhbmRsZXI6
KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZv
aWQpb3BlbkluV2ViQnJvd3NlcjooQk9PTClpbldlYkJyb3dzZXIgc2V0QXBwcm9wcmlhdGVPcGVu
U3RyYXRlZ3lBbmRXZWJCcm93c2VyU3RhdGU6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4g
KilzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVy
KWNvbXBsZXRpb25IYW5kbGVyOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBMU0FwcGxp
Y2F0aW9uUHJveHkgKnRhcmdldEFwcGxpY2F0aW9uUHJveHk7CitAZW5kCisKK2VudW0gTFNTZXNz
aW9uSUQgeworICAgIGtMU0RlZmF1bHRTZXNzaW9uSUQgPSAtMiwKK307CisKKyNlbmRpZgorCitX
VEZfRVhURVJOX0NfQkVHSU4KKworT1NTdGF0dXMgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlv
bkl0ZW0oTFNTZXNzaW9uSUQsIExTQVNOUmVmLCBDRlN0cmluZ1JlZiBrZXlUb1NldFJlZiwgQ0ZU
eXBlUmVmIHZhbHVlVG9TZXRSZWYsIENGRGljdGlvbmFyeVJlZiogbmV3SW5mb3JtYXRpb25EaWN0
UmVmKTsKK0xTQVNOUmVmIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpOworCitleHRlcm4g
Y29uc3QgQ0ZTdHJpbmdSZWYgX2tMU0Rpc3BsYXlOYW1lS2V5OworCitXVEZfRVhURVJOX0NfRU5E
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTGF1bmNoU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQ
SS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNmE4YjJlNGZjYmVlMTUxMWU4YzBj
NDNiN2FiZDU3ODUyMjgxODIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQ
SS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KLQotI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCi0KLSNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9MU0FwcExpbmtQ
cml2Lmg+Ci0KLSNlbmRpZgotCi1AY2xhc3MgTFNBcHBMaW5rOwotdHlwZWRlZiB2b2lkICheTFNB
cHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpKExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAqZXJy
b3IpOwotdHlwZWRlZiB2b2lkICheTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKShCT09M
IHN1Y2Nlc3MsIE5TRXJyb3IgKmVycm9yKTsKLQotI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQotCi1AaW50ZXJmYWNlIExTUmVzb3VyY2VQcm94eSA6IE5TT2JqZWN0IDxOU0NvcHlpbmcsIE5T
U2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50ZXJmYWNlIExTQnVuZGxlUHJveHkgOiBMU1Jlc291
cmNlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50ZXJmYWNlIExTQXBwbGljYXRp
b25Qcm94eSA6IExTQnVuZGxlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgotLSAoTlNTdHJpbmcgKils
b2NhbGl6ZWROYW1lRm9yQ29udGV4dDooTlNTdHJpbmcgKiljb250ZXh0OwotQGVuZAotCi1AaW50
ZXJmYWNlIExTQXBwTGluayA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KLUBlbmQKLQotQGlu
dGVyZmFjZSBMU0FwcExpbmsgKCkKLSsgKHZvaWQpZ2V0QXBwTGlua1dpdGhVUkw6KE5TVVJMICop
YVVSTCBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpY29tcGxl
dGlvbkhhbmRsZXI7Ci0rICh2b2lkKW9wZW5XaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxldGlv
bkhhbmRsZXI6KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxl
cjsKLS0gKHZvaWQpb3BlbkluV2ViQnJvd3NlcjooQk9PTClpbldlYkJyb3dzZXIgc2V0QXBwcm9w
cmlhdGVPcGVuU3RyYXRlZ3lBbmRXZWJCcm93c2VyU3RhdGU6KE5TRGljdGlvbmFyeTxOU1N0cmlu
ZyAqLCBpZD4gKilzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBsZXRp
b25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyOwotQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25n
KSBMU0FwcGxpY2F0aW9uUHJveHkgKnRhcmdldEFwcGxpY2F0aW9uUHJveHk7Ci1AZW5kCi0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmgK
aW5kZXggYTM1NWI5NGZlNjMwOTJlZjVhY2QwYjVjOTVlMDNkZDQ2ZTk1MzgxNS4uMDZmNGQ4ZjE4
YmE5ODI1MDRmNjQ2YzI2OGVkOGFkMzk0ZDY3YTdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oCkBAIC0yOCwxMCArMjgsNTkgQEAKICNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaW5jbHVkZSA8SElTZXJ2aWNlcy9BWFRleHRNYXJr
ZXIuaD4KKyNpbmNsdWRlIDxISVNlcnZpY2VzL0NvcmVDdXJzb3IuaD4KICNpbmNsdWRlIDxISVNl
cnZpY2VzL0NvcmVEcmFnLmg+CiAKICNlbHNlCiAKK3R5cGVkZWYgQ0ZfRU5VTShTSW50MzIsIENv
cmVDdXJzb3JUeXBlKSB7CisgICAga0NvcmVDdXJzb3JGaXJzdEN1cnNvciA9IDAsCisgICAga0Nv
cmVDdXJzb3JBcnJvdyA9IGtDb3JlQ3Vyc29yRmlyc3RDdXJzb3IsCisgICAga0NvcmVDdXJzb3JJ
QmVhbSwKKyAgICBrQ29yZUN1cnNvck1ha2VBbGlhcywKKyAgICBrQ29yZUN1cnNvck5vdEFsbG93
ZWQsCisgICAga0NvcmVDdXJzb3JCdXN5QnV0Q2xpY2thYmxlLAorICAgIGtDb3JlQ3Vyc29yQ29w
eSwKKyAgICBrQ29yZUN1cnNvclNjcmVlblNob3RTZWxlY3Rpb24gPSA3LAorICAgIGtDb3JlQ3Vy
c29yU2NyZWVuU2hvdFNlbGVjdGlvblRvQ2xpcCwKKyAgICBrQ29yZUN1cnNvclNjcmVlblNob3RX
aW5kb3csCisgICAga0NvcmVDdXJzb3JTY3JlZW5TaG90V2luZG93VG9DbGlwLAorICAgIGtDb3Jl
Q3Vyc29yQ2xvc2VkSGFuZCwKKyAgICBrQ29yZUN1cnNvck9wZW5IYW5kLAorICAgIGtDb3JlQ3Vy
c29yUG9pbnRpbmdIYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdVcEhhbmQsCisgICAga0Nv
cmVDdXJzb3JDb3VudGluZ0Rvd25IYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdVcEFuZERv
d25IYW5kLAorICAgIGtDb3JlQ3Vyc29yUmVzaXplTGVmdCwKKyAgICBrQ29yZUN1cnNvclJlc2l6
ZVJpZ2h0LAorICAgIGtDb3JlQ3Vyc29yUmVzaXplTGVmdFJpZ2h0LAorICAgIGtDb3JlQ3Vyc29y
Q3Jvc3MsCisgICAga0NvcmVDdXJzb3JSZXNpemVVcCwKKyAgICBrQ29yZUN1cnNvclJlc2l6ZURv
d24sCisgICAga0NvcmVDdXJzb3JSZXNpemVVcERvd24sCisgICAga0NvcmVDdXJzb3JDb250ZXh0
dWFsTWVudSwKKyAgICBrQ29yZUN1cnNvclBvb2YsCisgICAga0NvcmVDdXJzb3JJQmVhbVZlcnRp
Y2FsLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplRWFzdCwKKyAgICBrQ29yZUN1cnNvcldp
bmRvd1Jlc2l6ZUVhc3RXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhFYXN0
LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhFYXN0U291dGhXZXN0LAorICAgIGtD
b3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGgsCisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVO
b3J0aFNvdXRoLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0LAorICAgIGtD
b3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0U291dGhFYXN0LAorICAgIGtDb3JlQ3Vyc29y
V2luZG93UmVzaXplU291dGhFYXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291dGgs
CisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aFdlc3QsCisgICAga0NvcmVDdXJzb3JX
aW5kb3dSZXNpemVXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93TW92ZSwKKyAgICBrQ29yZUN1
cnNvckhlbHAsCisgICAga0NvcmVDdXJzb3JDZWxsLAorICAgIGtDb3JlQ3Vyc29yWm9vbUluLAor
ICAgIGtDb3JlQ3Vyc29yWm9vbU91dCwKKyAgICBrQ29yZUN1cnNvckxhc3RDdXJzb3IgPSBrQ29y
ZUN1cnNvclpvb21PdXQKK307CisKIGVudW0gewogICAgIGtDb3JlRHJhZ0ltYWdlU3BlY1ZlcnNp
b25PbmUgPSAxLAogfTsKQEAgLTU1LDYgKzEwNCw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9f
QVhUZXh0TWFya2VyKiBBWFRleHRNYXJrZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0FY
VGV4dE1hcmtlclJhbmdlKiBBWFRleHRNYXJrZXJSYW5nZVJlZjsKIHR5cGVkZWYgc3RydWN0IENv
cmVEcmFnSW1hZ2VTcGVjIENvcmVEcmFnSW1hZ2VTcGVjOwogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVl
Q29yZURyYWcqIENvcmVEcmFnUmVmOwordHlwZWRlZiBVSW50MzIgTVNIQ3JlYXRlT3B0aW9uczsK
IAogV1RGX0VYVEVSTl9DX0JFR0lOCiAKQEAgLTY4LDUgKzExOCw2IEBAIENGVHlwZUlEIEFYVGV4
dE1hcmtlclJhbmdlR2V0VHlwZUlEKCk7CiBDb3JlRHJhZ1JlZiBDb3JlRHJhZ0dldEN1cnJlbnRE
cmFnKCk7CiBPU1N0YXR1cyBDb3JlRHJhZ1NldEltYWdlKENvcmVEcmFnUmVmLCBDR1BvaW50IGlt
YWdlT2Zmc2V0LCBDb3JlRHJhZ0ltYWdlU3BlYyosIENHU1JlZ2lvbk9iaiBpbWFnZVNoYXBlLCBm
bG9hdCBvdmVyYWxsQWxwaGEpOwogY29uc3QgVUludDgqIEFYVGV4dE1hcmtlckdldEJ5dGVQdHIo
QVhUZXh0TWFya2VyUmVmKTsKK0NGUnVuTG9vcFNvdXJjZVJlZiBNU0hDcmVhdGVNSUdTZXJ2ZXJT
b3VyY2UoQ0ZBbGxvY2F0b3JSZWYsIENGSW5kZXggb3JkZXIsIG1pZ19zdWJzeXN0ZW1fdCBzdWJf
c3lzdGVtLCBNU0hDcmVhdGVPcHRpb25zLCBtYWNoX3BvcnRfdCwgdm9pZCogdXNlcl9kYXRhKTsK
IAogV1RGX0VYVEVSTl9DX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvbWFjL05TQ2VsbFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TQ2Vs
bFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZhMzNkYTNkM2RmYmJhN2NiMDYzZjYwZWQ0NzkxMDFlODY2OTM4
NjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlND
ZWxsU1BJLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QXBwS2l0L05TQ2VsbF9Qcml2
YXRlLmg+CisKKyNlbmRpZgorCitXVEZfRVhURVJOX0NfQkVHSU4KKwordm9pZCBfTlNEcmF3Q2Fy
Ym9uVGhlbWVMaXN0Qm94KE5TUmVjdCwgQk9PTCBlbmFibGVkLCBCT09MIGZsaXBwZWQsIEJPT0wg
dGV4dHVyZWQpOworCitXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9tYWMvTlNNZW51U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9tYWMvTlNNZW51U1BJLmgKaW5kZXggMWY1ZTdiYzY2YTAwMzIxOTQ4MjIwNGM0ODE5OTQxZWQz
YjRmYTVmZi4uNDdmNzY1NWNjOWUxNWI3NGI0ODZhZmMwNmZiZDVkMjc0OTY2YzZhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TTWVudVNQSS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU01lbnVTUEkuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw3ICsyOSw5IEBACiAK
ICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCitXVEZfRVhURVJOX0NfQkVHSU4KICNpbXBv
cnQgPEFwcEtpdC9OU01lbnVfUHJpdmF0ZS5oPgorV1RGX0VYVEVSTl9DX0VORAogCiAjZWxzZQog
CkBAIC0zOCw2ICs0MCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBOU01lbnVUeXBl
KSB7CiAgICAgTlNNZW51VHlwZUNvbnRleHRNZW51LAogfTsKIAorZW51bSB7CisgICAgTlNQb3BV
cE1lbnVJc1BvcHVwQnV0dG9uID0gMHg0MCwKK307CisKIEBpbnRlcmZhY2UgTlNNZW51ICgpCiAr
IChOU01lbnVUeXBlKW1lbnVUeXBlRm9yRXZlbnQ6KE5TRXZlbnQgKilldmVudDsKIEBlbmQKQEAg
LTU2LDQgKzYyLDE3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TTWVudVR5cGUpIHsK
IAogI2VuZGlmCiAKLSNlbmRpZgordHlwZWRlZiBOU1VJbnRlZ2VyIE5TUG9wVXBNZW51RmxhZ3M7
CisKK1dURl9FWFRFUk5fQ19CRUdJTgorCitleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBOU1BvcFVw
TWVudVBvcHVwQnV0dG9uQm91bmRzOworZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgTlNQb3BVcE1l
bnVQb3B1cEJ1dHRvbkxhYmVsT2Zmc2V0OworZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgTlNQb3BV
cE1lbnVQb3B1cEJ1dHRvblNpemU7CitleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBOU1BvcFVwTWVu
dVBvcHVwQnV0dG9uV2lkZ2V0OworCit2b2lkIF9OU1BvcFVwQ2FyYm9uTWVudTMoTlNNZW51ICos
IE5TV2luZG93ICosIE5TVmlldyAqb3duZXJWaWV3LCBOU1BvaW50IHNjcmVlblBvaW50LCBOU0lu
dGVnZXIgY2hlY2tlZEl0ZW0sIE5TRm9udCAqLCBDR0Zsb2F0IG1pbldpZHRoLCBOU1N0cmluZyAq
cnVuTG9vcE1vZGUsIE5TUG9wVXBNZW51RmxhZ3MsIE5TRGljdGlvbmFyeSAqb3B0aW9ucyk7CisK
K1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaCBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
YjBlZjdhZjU4ZTMyZTQ4YmYxN2UwNjIyYmU4N2I1ZmQwYzRlZGY4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsVmlld1NQSS5oCkBAIC0w
LDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEFwcEtpdC9OU1Njcm9sbFZpZXdfUHJpdmF0ZS5oPgor
CisjZW5kaWYKKworV1RGX0VYVEVSTl9DX0JFR0lOCisKK0NHRmxvYXQgX05TRWxhc3RpY0RlbHRh
Rm9yVGltZURlbHRhKENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGluaXRpYWxWZWxv
Y2l0eSwgQ0dGbG9hdCBlbGFwc2VkVGltZSk7CitDR0Zsb2F0IF9OU0VsYXN0aWNEZWx0YUZvclJl
Ym91bmREZWx0YShDR0Zsb2F0IGRlbHRhKTsKK0NHRmxvYXQgX05TUmVib3VuZERlbHRhRm9yRWxh
c3RpY0RlbHRhKENHRmxvYXQgZGVsdGEpOworCitXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaAppbmRleCAwNDky
YzFhYjYxOTU2Y2IxOTYxYzllYTdiMjc3MTU3Mzc4MWQ1NTMzLi4xODcwNDk2ZTA3YzIwZjJlYjlh
YjVhZmFkNzFlOWRiMWRhZDFhMmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQ5LDQgKzE0OSwxMCBAQCB0eXBlZGVmIE5TVUlu
dGVnZXIgTlNPdmVybGF5U2Nyb2xsZXJTdGF0ZTsKIAogI2VuZGlmCiAKK1dURl9FWFRFUk5fQ19C
RUdJTgorCitOU1Njcm9sbGVyU3R5bGUgX05TUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCk7CisK
K1dURl9FWFRFUk5fQ19FTkQKKwogI2VuZGlmIC8vIFVTRShBUFBLSVQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9jZi9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vY2YvRGVmYXVsdFNlYXJjaFByb3ZpZGVy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NDg2NzIyOWE4ZjFhYzNlNjU3ZjBkYTVmYTM3NDgzMzc5NWU3ZmI1
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vY2YvRGVm
YXVsdFNlYXJjaFByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRlZmF1bHRTZWFyY2hQcm92aWRlci5oIgorCisj
aW5jbHVkZSAiQ0ZVdGlsaXRpZXNTUEkuaCIKKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3Jl
Rm91bmRhdGlvbi5oPgorCituYW1lc3BhY2UgUEFMIHsKKworUmV0YWluUHRyPENGU3RyaW5nUmVm
PiBkZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpCit7CisgICAgYXV0byBwcm92aWRl
ckluZm8gPSBhZG9wdENGKF9DRldlYlNlcnZpY2VzQ29weVByb3ZpZGVySW5mbyhrQ0ZXZWJTZXJ2
aWNlc1R5cGVXZWJTZWFyY2gsIG51bGxwdHIpKTsKKyAgICBpZiAoIXByb3ZpZGVySW5mbykKKyAg
ICAgICAgcmV0dXJuIENGU1RSKCJHb29nbGUiKTsKKworICAgIENGVHlwZVJlZiBkaXNwbGF5TmFt
ZSA9IENGRGljdGlvbmFyeUdldFZhbHVlKHByb3ZpZGVySW5mby5nZXQoKSwga0NGV2ViU2Vydmlj
ZXNQcm92aWRlckRlZmF1bHREaXNwbGF5TmFtZUtleSk7CisgICAgaWYgKCFkaXNwbGF5TmFtZSkK
KyAgICAgICAgcmV0dXJuIENGU1RSKCJHb29nbGUiKTsKKworICAgIEFTU0VSVChDRkdldFR5cGVJ
RChkaXNwbGF5TmFtZSkgPT0gQ0ZTdHJpbmdHZXRUeXBlSUQoKSk7CisgICAgcmV0dXJuIGFkb3B0
Q0YoQ0ZTdHJpbmdDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIChDRlN0cmluZ1JlZilk
aXNwbGF5TmFtZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBQQUwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vY2YvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmNmY2ZkODM3Yjc2MDljNjQzMjdlNzU1OTgwZDZkNGZmOTkyZmJmNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFy
Y2hQcm92aWRlci5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFBBTCB7CisKK1BBTF9F
WFBPUlQgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBkZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5
TmFtZSgpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9t
YWMvUG9wdXBNZW51LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBN
ZW51LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODQ3NWFiN2I3YjI3YmQ5ZDA2M2NlYzliZTU1NjYxYzk1MmVmMmFl
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Q
b3B1cE1lbnUuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFBMQVRGT1JNKE1B
QykKKworI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorCituYW1lc3BhY2UgUEFMIHsKKworUEFM
X0VYUE9SVCB2b2lkIHBvcFVwTWVudShOU01lbnUgKiwgTlNQb2ludCBsb2NhdGlvbiwgZmxvYXQg
d2lkdGgsIE5TVmlldyAqLCBpbnQgc2VsZWN0ZWRJdGVtLCBOU0ZvbnQgKiwgTlNDb250cm9sU2l6
ZSwgYm9vbCB1c2VzQ3VzdG9tQXBwZWFyYW5jZSk7CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1
cE1lbnUubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIyMzM1NzVkYzM0ZTc2MWU4NjFjYmI0NTI4N2I3MzNmMmNkNGFjMjMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBN
ZW51Lm1tCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KyNpbXBvcnQgIlBvcHVwTWVudS5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJO
U01lbnVTUEkuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGludGVyZmFjZSBOU01l
bnUgKFdlYlByaXZhdGUpCistIChpZClfbWVudUltcGw7CitAZW5kCisKK0BpbnRlcmZhY2UgTlNP
YmplY3QgKFdlYlByaXZhdGUpCistICh2b2lkKXBvcFVwTWVudTooTlNNZW51KiltZW51IGF0TG9j
YXRpb246KE5TUG9pbnQpbG9jYXRpb24gd2lkdGg6KENHRmxvYXQpd2lkdGggZm9yVmlldzooTlNW
aWV3Kil2aWV3IHdpdGhTZWxlY3RlZEl0ZW06KE5TSW50ZWdlcilzZWxlY3RlZEl0ZW0gd2l0aEZv
bnQ6KE5TRm9udCopZm9udCB3aXRoRmxhZ3M6KE5TUG9wVXBNZW51RmxhZ3MpZmxhZ3Mgd2l0aE9w
dGlvbnM6KE5TRGljdGlvbmFyeSAqKW9wdGlvbnM7CitAZW5kCisKK25hbWVzcGFjZSBQQUwgewor
Cit2b2lkIHBvcFVwTWVudShOU01lbnUgKm1lbnUsIE5TUG9pbnQgbG9jYXRpb24sIGZsb2F0IHdp
ZHRoLCBOU1ZpZXcgKnZpZXcsIGludCBzZWxlY3RlZEl0ZW0sIE5TRm9udCAqZm9udCwgTlNDb250
cm9sU2l6ZSBjb250cm9sU2l6ZSwgYm9vbCB1c2VzQ3VzdG9tQXBwZWFyYW5jZSkKK3sKKyAgICBO
U1JlY3QgYWRqdXN0ZWRQb3B1cEJvdW5kcyA9IFt2aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2Ny
ZWVuOlt2aWV3IGNvbnZlcnRSZWN0OnZpZXcuYm91bmRzIHRvVmlldzpuaWxdXTsKKyNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBpZiAoY29udHJvbFNpemUgIT0gTlNNaW5p
Q29udHJvbFNpemUpIHsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgYWRq
dXN0ZWRQb3B1cEJvdW5kcy5vcmlnaW4ueCAtPSAzOworICAgICAgICBhZGp1c3RlZFBvcHVwQm91
bmRzLm9yaWdpbi55IC09IDE7CisgICAgICAgIGFkanVzdGVkUG9wdXBCb3VuZHMuc2l6ZS53aWR0
aCArPSA2OworICAgIH0KKworICAgIC8vIFRoZXNlIG51bWJlcnMgd2VyZSBleHRyYWN0ZWQgZnJv
bSB2aXN1YWwgaW5zcGVjdGlvbiBhcyB0aGUgbWVudSBhbmltYXRlcyBzaHV0LgorICAgIE5TU2l6
ZSBsYWJlbE9mZnNldCA9IE5TTWFrZVNpemUoMTEsIDEpOworICAgIGlmIChtZW51LnVzZXJJbnRl
cmZhY2VMYXlvdXREaXJlY3Rpb24gPT0gTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmln
aHRUb0xlZnQpCisgICAgICAgIGxhYmVsT2Zmc2V0ID0gTlNNYWtlU2l6ZSgyNCwgMSk7CisKKyAg
ICBhdXRvIG9wdGlvbnMgPSBhZG9wdE5TKFtAeworICAgICAgICBOU1BvcFVwTWVudVBvcHVwQnV0
dG9uQm91bmRzIDogW05TVmFsdWUgdmFsdWVXaXRoUmVjdDphZGp1c3RlZFBvcHVwQm91bmRzXSwK
KyAgICAgICAgTlNQb3BVcE1lbnVQb3B1cEJ1dHRvbkxhYmVsT2Zmc2V0IDogW05TVmFsdWUgdmFs
dWVXaXRoU2l6ZTpsYWJlbE9mZnNldF0sCisgICAgICAgIE5TUG9wVXBNZW51UG9wdXBCdXR0b25T
aXplIDogQChjb250cm9sU2l6ZSkKKyAgICB9IG11dGFibGVDb3B5XSk7CisKKyAgICBpZiAodXNl
c0N1c3RvbUFwcGVhcmFuY2UpCisgICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpAIiIgZm9yS2V5
Ok5TUG9wVXBNZW51UG9wdXBCdXR0b25XaWRnZXRdOworCisgICAgW1ttZW51IF9tZW51SW1wbF0g
cG9wVXBNZW51Om1lbnUgYXRMb2NhdGlvbjpsb2NhdGlvbiB3aWR0aDp3aWR0aCBmb3JWaWV3OnZp
ZXcgd2l0aFNlbGVjdGVkSXRlbTpzZWxlY3RlZEl0ZW0gd2l0aEZvbnQ6Zm9udCB3aXRoRmxhZ3M6
KHVzZXNDdXN0b21BcHBlYXJhbmNlID8gMCA6IE5TUG9wVXBNZW51SXNQb3B1cEJ1dHRvbikgd2l0
aE9wdGlvbnM6b3B0aW9ucy5nZXQoKV07Cit9CisKK30gLy8gbmFtZXNwYWNlIFBBTAorCisjZW5k
aWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCmluZGV4IDEyOWI2ZTJkNTBkNTIxNmRiNWE0
Njg3NjZjMTRmZDgyZWE1M2JjNzcuLjMzNDFmYTJjYmZmMzBjY2Q3MjEyNjU5ZTVhM2MyYTY0MzY2
YmQxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXpl
ZFN0cmluZ3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2Nh
bGl6ZWRTdHJpbmdzQ29jb2EubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMTUgKzIzLDE2IEBACiAgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiTG9j
YWxpemVkU3RyaW5ncy5oIgogCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRl
ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4K
LSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbXBvcnQgIk5vdEltcGxlbWVudGVk
LmgiCisjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxwYWwvc3lz
dGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oPgorI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMu
aD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC02Niw3ICs2Nyw3IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3Rs
aWdodCgpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQogewotICAgIGF1
dG8gc2VhcmNoUHJvdmlkZXJOYW1lID0gYWRvcHRDRih3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlk
ZXJEaXNwbGF5TmFtZSgpKTsKKyAgICBhdXRvIHNlYXJjaFByb3ZpZGVyTmFtZSA9IFBBTDo6ZGVm
YXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUoKTsKICAgICByZXR1cm4gZm9ybWF0TG9jYWxp
emVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNl
YXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0
ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggZWUzZTUzN2ZiOGMy
YjY4NzBlNjFkZmQyMzk3NjA3ZWM3ZjFmNGIxYS4uZDM3OWUyNDc0ZDE2NjY1NGE0YzEyOWNjY2Iw
ZjFlZGUzZTYzMjVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9T
Y3JvbGxDb250cm9sbGVyLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSwgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMjAgKzIzLDI0IEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIlNjcm9sbENvbnRyb2xsZXIuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
U2Nyb2xsQ29udHJvbGxlci5oIgogCi0jaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgotI2luY2x1ZGUg
IlBsYXRmb3JtV2hlZWxFdmVudC5oIgotI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
aCIKLSNpbmNsdWRlICJXaGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKLSNpbmNsdWRlIDxzeXMvc3lz
Y3RsLmg+Ci0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KKyNpbXBvcnQgIkxheW91dFNpemUuaCIKKyNpbXBvcnQgIlBsYXRmb3JtV2hlZWxFdmVudC5o
IgorI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCAiV2hlZWxFdmVu
dFRlc3RUcmlnZ2VyLmgiCisjaW1wb3J0IDxzeXMvc3lzY3RsLmg+CisjaW1wb3J0IDxzeXMvdGlt
ZS5oPgorI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9M
TF9TTkFQKQotI2luY2x1ZGUgIlNjcm9sbFNuYXBBbmltYXRvclN0YXRlLmgiCi0jaW5jbHVkZSAi
U2Nyb2xsYWJsZUFyZWEuaCIKKyNpbXBvcnQgIlNjcm9sbFNuYXBBbmltYXRvclN0YXRlLmgiCisj
aW1wb3J0ICJTY3JvbGxhYmxlQXJlYS5oIgorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisj
aW1wb3J0IDxwYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaD4KICNlbmRpZgogCiAjaWYgRU5B
QkxFKFJVQkJFUl9CQU5ESU5HKSB8fCBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQpAQCAtNTIsMTcg
KzU2LDE3IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBydWJiZXJiYW5kTWluaW11bVJlcXVpcmVkRGVs
dGFCZWZvcmVTdHJldGNoID0gMTA7CiAjaWYgUExBVEZPUk0oTUFDKQogc3RhdGljIGZsb2F0IGVs
YXN0aWNEZWx0YUZvclRpbWVEZWx0YShmbG9hdCBpbml0aWFsUG9zaXRpb24sIGZsb2F0IGluaXRp
YWxWZWxvY2l0eSwgZmxvYXQgZWxhcHNlZFRpbWUpCiB7Ci0gICAgcmV0dXJuIHdrTlNFbGFzdGlj
RGVsdGFGb3JUaW1lRGVsdGEoaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsVmVsb2NpdHksIGVsYXBz
ZWRUaW1lKTsKKyAgICByZXR1cm4gX05TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKGluaXRpYWxQ
b3NpdGlvbiwgaW5pdGlhbFZlbG9jaXR5LCBlbGFwc2VkVGltZSk7CiB9CiAKIHN0YXRpYyBmbG9h
dCBlbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoZmxvYXQgZGVsdGEpCiB7Ci0gICAgcmV0dXJu
IHdrTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoZGVsdGEpOworICAgIHJldHVybiBfTlNF
bGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoZGVsdGEpOwogfQogCiBzdGF0aWMgZmxvYXQgcmVi
b3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKGZsb2F0IGRlbHRhKQogewotICAgIHJldHVybiB3a05T
UmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKGRlbHRhKTsKKyAgICByZXR1cm4gX05TUmVib3Vu
ZERlbHRhRm9yRWxhc3RpY0RlbHRhKGRlbHRhKTsKIH0KIAogc3RhdGljIGZsb2F0IHNjcm9sbFdo
ZWVsTXVsdGlwbGllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBmNDI1Nzk3MDEwZGNhMjM3NzBiOGZl
NDYwNWJjNDliMGY0ZDYwOGEwLi5jNjk0NmQ2ZGZkM2JjZTNhMWY4NjI0YTM5NGJjNjg2OWQ3ZDJj
M2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsNyArMjQsNiBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKLQogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDQS5oIgogCiAjaWYgVVNFKENBKQpAQCAt
NDcsNiArNDYsNyBAQAogI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgog
I2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ0FUcmFuc2Zvcm0zRC5oPgogI2luY2x1ZGUgPGxpbWl0cy5o
PgorI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaD4KICNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMjk4OCw3ICsyOTg4LDcgQEAgYm9vbCBHcmFwaGljc0xh
eWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZy
YW1lVmFsdWUKICAgICAgICAgLy8gb24gb3IgYmVmb3JlIFNub3cgTGVvcGFyZC4KICAgICAgICAg
Ly8gRklYTUU6IFRoaXMgZml4IGhhcyBub3QgYmVlbiBhZGRlZCB0byBRdWFydHpDb3JlIG9uIFdp
bmRvd3MgeWV0ICg8cmRhcjovL3Byb2JsZW0vOTExMjIzMz4pIHNvIHdlIGV4cGVjdCB0aGUKICAg
ICAgICAgLy8gcmV2ZXJzZWQgYW5pbWF0aW9uIGJlaGF2aW9yCi0gICAgICAgIHN0YXRpYyBib29s
IGV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQgPSB3a0V4ZWN1dGFibGVX
YXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQoKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZXhl
Y3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCA9ICFfQ0ZFeGVjdXRhYmxlTGlu
a2VkT25PckFmdGVyKENGU3lzdGVtVmVyc2lvbkxpb24pOwogICAgICAgICBpZiAoIWV4ZWN1dGFi
bGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpCiAgICAgICAgICAgICByZXZlcnNlQW5p
bWF0aW9uTGlzdCA9IGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1
cnNvck1hYy5tbQppbmRleCBhYTM0NWU4OGU0ODExOGM0Njg3YjllZWZiZmM3MzIxOGRjNDcwNzBj
Li40MTcyZTIyMjY4YzNkYzQxZGE1NjBlNGU0YzI4ZmM2N2NlODJjMWQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNiArMjcsOCBAQAog
I2ltcG9ydCAiQ3Vyc29yLmgiCiAKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIK
KyNpbXBvcnQgPG9iamMvcnVudGltZS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElTZXJ2aWNl
c1NQSS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtMzcsNiArMzksMTM5IEBAIEBpbXBsZW1lbnRhdGlvbiBX
ZWJDb3JlQ3Vyc29yQnVuZGxlCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK3N0
YXRpYyBOU0N1cnNvciAqYnVzeUJ1dENsaWNrYWJsZU5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29y
ICptYWtlQWxpYXNOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqbW92ZU5TQ3Vyc29yOworc3Rh
dGljIE5TQ3Vyc29yICpyZXNpemVFYXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6
ZUVhc3RXZXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRoTlNDdXJzb3I7
CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRoU291dGhOU0N1cnNvcjsKK3N0YXRpYyBOU0N1
cnNvciAqcmVzaXplTm9ydGhlYXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5v
cnRoZWFzdFNvdXRod2VzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVOb3J0aHdl
c3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplTm9ydGh3ZXN0U291dGhlYXN0TlND
dXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZVNvdXRoTlNDdXJzb3I7CitzdGF0aWMgTlND
dXJzb3IgKnJlc2l6ZVNvdXRoZWFzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVT
b3V0aHdlc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplV2VzdE5TQ3Vyc29yOwor
CitzdGF0aWMgTlNDdXJzb3IgKmNlbGxOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqaGVscE5T
Q3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICp6b29tSW5OU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNv
ciAqem9vbU91dE5TQ3Vyc29yOworCitzdGF0aWMgTlNJbnRlZ2VyIFdLQ29yZUN1cnNvcl9jb3Jl
Q3Vyc29yVHlwZShpZCBzZWxmLCBTRUwpCit7CisgICAgaWYgKHNlbGYgPT0gYnVzeUJ1dENsaWNr
YWJsZU5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JCdXN5QnV0Q2xpY2thYmxl
OworICAgIGlmIChzZWxmID09IG1ha2VBbGlhc05TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0Nv
cmVDdXJzb3JNYWtlQWxpYXM7CisgICAgaWYgKHNlbGYgPT0gbW92ZU5TQ3Vyc29yKQorICAgICAg
ICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dNb3ZlOworICAgIGlmIChzZWxmID09IHJlc2l6ZUVh
c3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplRWFzdDsK
KyAgICBpZiAoc2VsZiA9PSByZXNpemVFYXN0V2VzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4g
a0NvcmVDdXJzb3JXaW5kb3dSZXNpemVFYXN0V2VzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVO
b3J0aE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0
aDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVOb3J0aFNvdXRoTlNDdXJzb3IpCisgICAgICAgIHJl
dHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoU291dGg7CisgICAgaWYgKHNlbGYgPT0g
cmVzaXplTm9ydGhlYXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRv
d1Jlc2l6ZU5vcnRoRWFzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVOb3J0aGVhc3RTb3V0aHdl
c3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhF
YXN0U291dGhXZXN0OworICAgIGlmIChzZWxmID09IHJlc2l6ZU5vcnRod2VzdE5TQ3Vyc29yKQor
ICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aFdlc3Q7CisgICAgaWYg
KHNlbGYgPT0gcmVzaXplTm9ydGh3ZXN0U291dGhlYXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVy
biBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoV2VzdFNvdXRoRWFzdDsKKyAgICBpZiAoc2Vs
ZiA9PSByZXNpemVTb3V0aE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5k
b3dSZXNpemVTb3V0aDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVTb3V0aGVhc3ROU0N1cnNvcikK
KyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291dGhFYXN0OworICAgIGlm
IChzZWxmID09IHJlc2l6ZVNvdXRod2VzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVD
dXJzb3JXaW5kb3dSZXNpemVTb3V0aFdlc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplV2VzdE5T
Q3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVXZXN0OworICAg
IGlmIChzZWxmID09IGNlbGxOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yQ2Vs
bDsKKyAgICBpZiAoc2VsZiA9PSBoZWxwTlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1
cnNvckhlbHA7CisgICAgaWYgKHNlbGYgPT0gem9vbUluTlNDdXJzb3IpCisgICAgICAgIHJldHVy
biBrQ29yZUN1cnNvclpvb21JbjsKKyAgICBpZiAoc2VsZiA9PSB6b29tT3V0TlNDdXJzb3IpCisg
ICAgICAgIHJldHVybiBrQ29yZUN1cnNvclpvb21PdXQ7CisgICAgCisgICAgcmV0dXJuIE5TTm90
Rm91bmQ7Cit9CisKK3N0YXRpYyBDbGFzcyBjcmVhdGVDb3JlQ3Vyc29yQ2xhc3Modm9pZCkKK3sK
KyAgICBDbGFzcyBjb3JlQ3Vyc29yQ2xhc3MgPSBvYmpjX2FsbG9jYXRlQ2xhc3NQYWlyKFtOU0N1
cnNvciBjbGFzc10sICJXS0NvcmVDdXJzb3IiLCAwKTsKKyAgICBTRUwgY29yZUN1cnNvclR5cGUg
PSBOU1NlbGVjdG9yRnJvbVN0cmluZyhAIl9jb3JlQ3Vyc29yVHlwZSIpOworICAgIGNsYXNzX2Fk
ZE1ldGhvZChjb3JlQ3Vyc29yQ2xhc3MsIGNvcmVDdXJzb3JUeXBlLCAoSU1QKVdLQ29yZUN1cnNv
cl9jb3JlQ3Vyc29yVHlwZSwgbWV0aG9kX2dldFR5cGVFbmNvZGluZyhjbGFzc19nZXRJbnN0YW5j
ZU1ldGhvZChbTlNDdXJzb3IgY2xhc3NdLCBjb3JlQ3Vyc29yVHlwZSkpKTsKKyAgICBvYmpjX3Jl
Z2lzdGVyQ2xhc3NQYWlyKGNvcmVDdXJzb3JDbGFzcyk7CisgICAgcmV0dXJuIGNvcmVDdXJzb3JD
bGFzczsKK30KKworc3RhdGljIENsYXNzIGNvcmVDdXJzb3JDbGFzcyh2b2lkKQoreworICAgIENs
YXNzIGNvcmVDdXJzb3JDbGFzcyA9IG9iamNfbG9va1VwQ2xhc3MoIldLQ29yZUN1cnNvciIpOwor
ICAgIGlmICghY29yZUN1cnNvckNsYXNzKQorICAgICAgICBjb3JlQ3Vyc29yQ2xhc3MgPSBjcmVh
dGVDb3JlQ3Vyc29yQ2xhc3MoKTsKKyAgICByZXR1cm4gY29yZUN1cnNvckNsYXNzOworfQorCitz
dGF0aWMgTlNDdXJzb3IgKmN1cnNvcihjb25zdCBjaGFyICpuYW1lKQoreworICAgIE5TQ3Vyc29y
ICoqc2xvdCA9IDA7CisgICAgCisgICAgaWYgKCFzdHJjbXAobmFtZSwgIkJ1c3lCdXRDbGlja2Fi
bGUiKSkKKyAgICAgICAgc2xvdCA9ICZidXN5QnV0Q2xpY2thYmxlTlNDdXJzb3I7CisgICAgZWxz
ZSBpZiAoIXN0cmNtcChuYW1lLCAiTWFrZUFsaWFzIikpCisgICAgICAgIHNsb3QgPSAmbWFrZUFs
aWFzTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiTW92ZSIpKQorICAgICAg
ICBzbG90ID0gJm1vdmVOU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNp
emVFYXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplRWFzdE5TQ3Vyc29yOworICAgIGVsc2Ug
aWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZUVhc3RXZXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVz
aXplRWFzdFdlc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVO
b3J0aCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZU5vcnRoTlNDdXJzb3I7CisgICAgZWxzZSBp
ZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGhTb3V0aCIpKQorICAgICAgICBzbG90ID0gJnJl
c2l6ZU5vcnRoU291dGhOU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNp
emVOb3J0aGVhc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aGVhc3ROU0N1cnNvcjsK
KyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVOb3J0aGVhc3RTb3V0aHdlc3QiKSkK
KyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aGVhc3RTb3V0aHdlc3ROU0N1cnNvcjsKKyAgICBl
bHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVOb3J0aHdlc3QiKSkKKyAgICAgICAgc2xvdCA9
ICZyZXNpemVOb3J0aHdlc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJS
ZXNpemVOb3J0aHdlc3RTb3V0aGVhc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aHdl
c3RTb3V0aGVhc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVT
b3V0aCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZVNvdXRoTlNDdXJzb3I7CisgICAgZWxzZSBp
ZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplU291dGhlYXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVz
aXplU291dGhlYXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXpl
U291dGh3ZXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplU291dGh3ZXN0TlNDdXJzb3I7Cisg
ICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplV2VzdCIpKQorICAgICAgICBzbG90ID0g
JnJlc2l6ZVdlc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJDZWxsIikp
CisgICAgICAgIHNsb3QgPSAmY2VsbE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFt
ZSwgIkhlbHAiKSkKKyAgICAgICAgc2xvdCA9ICZoZWxwTlNDdXJzb3I7CisgICAgZWxzZSBpZiAo
IXN0cmNtcChuYW1lLCAiWm9vbUluIikpCisgICAgICAgIHNsb3QgPSAmem9vbUluTlNDdXJzb3I7
CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiWm9vbU91dCIpKQorICAgICAgICBzbG90ID0g
Jnpvb21PdXROU0N1cnNvcjsKKyAgICAKKyAgICBpZiAoIXNsb3QpCisgICAgICAgIHJldHVybiBu
aWw7CisgICAgCisgICAgaWYgKCEqc2xvdCkKKyAgICAgICAgKnNsb3QgPSBbW2NvcmVDdXJzb3JD
bGFzcygpIGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4gKnNsb3Q7Cit9CiAKIC8vIFNpbXBsZSBO
U0N1cnNvciBjYWxscyBzaG91bGRuJ3QgbmVlZCBwcm90ZWN0aW9uLAogLy8gYnV0IGNyZWF0aW5n
IGEgY3Vyc29yIHdpdGggYSBiYWQgaW1hZ2UgbWlnaHQgdGhyb3cuCkBAIC0xMDMsNzIgKzIzOCw3
MiBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpXYWl0OgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29y
ID0gd2tDdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNv
ciA9IGN1cnNvcigiQnVzeUJ1dENsaWNrYWJsZSIpOwogICAgICAgICBicmVhazsKIAogICAgIGNh
c2UgQ3Vyc29yOjpIZWxwOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIkhl
bHAiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiSGVscCIpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpNb3ZlOgogICAgIGNhc2UgQ3Vyc29yOjpNaWRk
bGVQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIk1vdmUiKTsK
KyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiTW92ZSIpOwogICAgICAgICBicmVh
azsKIAogICAgIGNhc2UgQ3Vyc29yOjpFYXN0UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpFYXN0
UGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVFYXN0
Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZUVhc3QiKTsKICAg
ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhSZXNpemU6CiAgICAgY2FzZSBD
dXJzb3I6Ok5vcnRoUGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29y
KCJSZXNpemVOb3J0aCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNp
emVOb3J0aCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aEVhc3RS
ZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoRWFzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGhlYXN0Iik7CisgICAgICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRoZWFzdCIpOwogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFdlc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6Ok5v
cnRoV2VzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVz
aXplTm9ydGh3ZXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6
ZU5vcnRod2VzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpTb3V0aFJl
c2l6ZToKICAgICBjYXNlIEN1cnNvcjo6U291dGhQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3Jt
Q3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZVNvdXRoIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSBjdXJzb3IoIlJlc2l6ZVNvdXRoIik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBD
dXJzb3I6OlNvdXRoRWFzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6U291dGhFYXN0UGFubmlu
ZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVTb3V0aGVhc3Qi
KTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplU291dGhlYXN0Iik7
CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoV2VzdFJlc2l6ZToKICAg
ICBjYXNlIEN1cnNvcjo6U291dGhXZXN0UGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNv
ciA9IHdrQ3Vyc29yKCJSZXNpemVTb3V0aHdlc3QiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNv
ciA9IGN1cnNvcigiUmVzaXplU291dGh3ZXN0Iik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2Fz
ZSBDdXJzb3I6Oldlc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6Oldlc3RQYW5uaW5nOgotICAg
ICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZVdlc3QiKTsKKyAgICAgICAg
bV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplV2VzdCIpOwogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFNvdXRoUmVzaXplOgotICAgICAgICBtX3BsYXRmb3Jt
Q3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRoU291dGgiKTsKKyAgICAgICAgbV9wbGF0Zm9y
bUN1cnNvciA9IGN1cnNvcigiUmVzaXplTm9ydGhTb3V0aCIpOwogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgQ3Vyc29yOjpFYXN0V2VzdFJlc2l6ZToKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNv
ciA9IHdrQ3Vyc29yKCJSZXNpemVFYXN0V2VzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29y
ID0gY3Vyc29yKCJSZXNpemVFYXN0V2VzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
Q3Vyc29yOjpOb3J0aEVhc3RTb3V0aFdlc3RSZXNpemU6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGhlYXN0U291dGh3ZXN0Iik7CisgICAgICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRoZWFzdFNvdXRod2VzdCIpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFdlc3RTb3V0aEVhc3RSZXNpemU6Ci0g
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGh3ZXN0U291dGhl
YXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRod2Vz
dFNvdXRoZWFzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpDb2x1bW5S
ZXNpemU6CkBAIC0xODQsNyArMzE5LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vy
c29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Q2VsbDoKLSAg
ICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJDZWxsIik7CisgICAgICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSBjdXJzb3IoIkNlbGwiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl
IEN1cnNvcjo6Q29udGV4dE1lbnU6CkBAIC0xOTIsMTEgKzMyNywxMSBAQCB2b2lkIEN1cnNvcjo6
ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
Q3Vyc29yOjpBbGlhczoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJNYWtl
QWxpYXMiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiTWFrZUFsaWFzIik7
CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OlByb2dyZXNzOgotICAgICAgICBt
X3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKKyAgICAgICAg
bV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiQnVzeUJ1dENsaWNrYWJsZSIpOwogICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb0Ryb3A6CkBAIC0yMTYsMTEgKzM1MSwxMSBAQCB2
b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQ3Vyc29yOjpab29tSW46Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3
a0N1cnNvcigiWm9vbUluIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlpv
b21JbiIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpab29tT3V0OgotICAg
ICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlpvb21PdXQiKTsKKyAgICAgICAgbV9w
bGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiWm9vbU91dCIpOwogICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgQ3Vyc29yOjpHcmFiOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKaW5kZXggYWNlMjk4YzEyZjgyMGVkNTBkNjljZmVm
NjUxNjMwZDA4NGMwNTJmZS4uNTVmY2ExMjgxNjJmNjM4MjAxNTZmYTIxMWIyN2I3YWQyY2YxOTUy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5oCkBAIC0xMjMsNyArMTIzLDYgQEAgdHlwZWRlZiBlbnVtIHsKICAgICB3a1Bh
dHRlcm5UaWxpbmdDb25zdGFudFNwYWNpbmcKIH0gd2tQYXR0ZXJuVGlsaW5nOwogI2lmICFQTEFU
Rk9STShJT1MpCi1leHRlcm4gdm9pZCAoKndrRHJhd0JlemVsZWRUZXh0QXJlYSkoTlNSZWN0LCBC
T09MIGVuYWJsZWQpOwogZXh0ZXJuIHZvaWQgKCp3a0RyYXdNZWRpYVNsaWRlclRyYWNrKShDR0Nv
bnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IHJlY3QsIGZsb2F0IHRpbWVMb2FkZWQsIGZsb2F0IGN1
cnJlbnRUaW1lLAogICAgIGZsb2F0IGR1cmF0aW9uLCB1bnNpZ25lZCBzdGF0ZSk7CiBleHRlcm4g
dm9pZCAoKndrRHJhd01lZGlhVUlQYXJ0KShpbnQgcGFydCwgQ0dDb250ZXh0UmVmIGNvbnRleHQs
IENHUmVjdCByZWN0LCB1bnNpZ25lZCBzdGF0ZSk7CkBAIC0xMzYsMjQgKzEzNSwxMCBAQCBleHRl
cm4gdm9pZCAoKndrU2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpKEJPT0wp
OwogZXh0ZXJuIHZvaWQqIHdrR2V0SHlwaGVuYXRpb25Mb2NhdGlvbkJlZm9yZUluZGV4OwogI2Vu
ZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQotZXh0ZXJuIGJvb2wgKCp3a0V4ZWN1dGFibGVXYXNM
aW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpKHZvaWQpOwotCi1leHRlcm4gQ0ZTdHJpbmdSZWYg
KCp3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSkodm9pZCk7Ci0KLWV4dGVy
biBOU0N1cnNvciAqKCp3a0N1cnNvcikoY29uc3QgY2hhciopOwotI2VuZGlmIC8vICFQTEFURk9S
TShJT1MpCi0KICNpZiBQTEFURk9STShJT1MpCiBleHRlcm4gdm9pZCAoKndrU2V0TGF5ZXJDb250
ZW50c1NjYWxlKShDQUxheWVyICopOwogI2VuZGlmCiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9f
Q0ZVUkxTdG9yYWdlU2Vzc2lvbiogQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZjsKIAotI2lmICFQTEFU
Rk9STShJT1MpCi1leHRlcm4gQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEp
KENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGluaXRpYWxWZWxvY2l0eSwgQ0dGbG9h
dCBlbGFwc2VkVGltZSk7Ci1leHRlcm4gQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JSZWJv
dW5kRGVsdGEpKENHRmxvYXQgZGVsdGEpOwotZXh0ZXJuIENHRmxvYXQgKCp3a05TUmVib3VuZERl
bHRhRm9yRWxhc3RpY0RlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLSNlbmRpZgotCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1t
CmluZGV4IDM1MDczMTliNWRkOGE3ZTcwNmZlNjMxM2QwNDFmMzg0OTA4MDA4YTMuLjhmYmIxZDNk
OGM4ODY4YzI0NTRmMzA5YzY5ZTA2NDAwZjNkZmY5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCkBAIC0zMCw3ICsz
MCw2IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi12b2lkICgqd2tE
cmF3QmV6ZWxlZFRleHRBcmVhKShOU1JlY3QsIEJPT0wgZW5hYmxlZCk7CiB2b2lkICgqd2tEcmF3
TWVkaWFTbGlkZXJUcmFjaykoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCByZWN0LCBmbG9h
dCB0aW1lTG9hZGVkLCBmbG9hdCBjdXJyZW50VGltZSwKICAgICBmbG9hdCBkdXJhdGlvbiwgdW5z
aWduZWQgc3RhdGUpOwogQk9PTCAoKndrSGl0VGVzdE1lZGlhVUlQYXJ0KShpbnQgcGFydCwgQ0dS
ZWN0IGJvdW5kcywgQ0dQb2ludCBwb2ludCk7CkBAIC00MiwxNCArNDEsNCBAQCB2b2lkICgqd2tQ
b3B1cE1lbnUpKE5TTWVudSosIE5TUG9pbnQgbG9jYXRpb24sIGZsb2F0IHdpZHRoLCBOU1ZpZXcq
LCBpbnQgc2VsZWN0ZQogCiB2b2lkKiB3a0dldEh5cGhlbmF0aW9uTG9jYXRpb25CZWZvcmVJbmRl
eDsKIAotYm9vbCAoKndrRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCko
dm9pZCk7Ci0KIENGU3RyaW5nUmVmICgqd2tDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxh
eU5hbWUpKHZvaWQpOwotCi1OU0N1cnNvciAqKCp3a0N1cnNvcikoY29uc3QgY2hhciopOwotCi0j
aWYgIVBMQVRGT1JNKElPUykKLUNHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRh
KShDR0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0aWFsVmVsb2NpdHksIENHRmxv
YXQgZWxhcHNlZFRpbWUpOwotQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVs
dGEpKENHRmxvYXQgZGVsdGEpOwotQ0dGbG9hdCAoKndrTlNSZWJvdW5kRGVsdGFGb3JFbGFzdGlj
RGVsdGEpKENHRmxvYXQgZGVsdGEpOwotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMubW0KaW5kZXggOTNlOGQ2MTk3MTc2MTc1ZDhjY2IzNmUxOWNmZWZiYTlj
NDg2NTVlZi4uZjAwYzgzOTdiNThhNDFhYTkzMTI4YTIyNmFhZTc1YTZmYjlhYzU0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtNzQsNiArNzQsNyBA
QAogI2ltcG9ydCA8bWF0aC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEku
aD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNDb2xvclNQSS5oPgorI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvTlNDZWxsU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1NoYXJpbmdTZXJ2aWNl
UGlja2VyU1BJLmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgpAQCAtODg0LDcgKzg4NSw3IEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVz
dFRleHRGaWVsZFN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYsIGNvbnN0IEVsCiBi
b29sIFJlbmRlclRoZW1lTWFjOjpwYWludFRleHRBcmVhKGNvbnN0IFJlbmRlck9iamVjdCYgbywg
Y29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdCYgcikKIHsKICAgICBM
b2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDb250ZXh0KHBhaW50SW5mby5jb250ZXh0
KCkpOwotICAgIHdrRHJhd0JlemVsZWRUZXh0QXJlYShyLCBpc0VuYWJsZWQobykgJiYgIWlzUmVh
ZE9ubHlDb250cm9sKG8pKTsKKyAgICBfTlNEcmF3Q2FyYm9uVGhlbWVMaXN0Qm94KHIsIGlzRW5h
YmxlZChvKSAmJiAhaXNSZWFkT25seUNvbnRyb2wobyksIFlFUywgWUVTKTsKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFj
L05ldHdvcmtQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMv
TmV0d29ya1Byb2Nlc3NNYWMubW0KaW5kZXggNmY3NTI5NTJlNzZjMzQ4N2IyYWNhMGQyZGUxMTM1
YWFjM2RhZWU4Ny4uMTM4YmU2YjhmZmM3NDM4ODUwMWE1MThlYmFmMDI0MmY5ZjEyOTI1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nl
c3NNYWMubW0KQEAgLTQyLDYgKzQyLDcgQEAKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFj
ZS5oPgogI2ltcG9ydCA8bm90aWZ5Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQ
SS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oPgogI2ltcG9y
dCA8c3lzZXhpdHMuaD4KICNpbXBvcnQgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNp
bXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTksNyArNjAsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcgogdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1l
KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
IHsKICAgICBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6V0VCX1VJX1NUUklORygiJUAgTmV0d29ya2luZyIsICJ2aXNpYmxlIG5hbWUgb2YgdGhl
IG5ldHdvcmsgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiIp
LCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwotICAgIFdLU2V0VmlzaWJs
ZUFwcGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lKTsKKyAgICBfTFNT
ZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRD
dXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5LCAoQ0ZTdHJpbmdSZWYp
YXBwbGljYXRpb25OYW1lLCBudWxscHRyKTsKIH0KIAogc3RhdGljIHZvaWQgb3ZlcnJpZGVTeXN0
ZW1Qcm94aWVzKGNvbnN0IFN0cmluZyYgaHR0cFByb3h5LCBjb25zdCBTdHJpbmcmIGh0dHBzUHJv
eHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblBy
b2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nl
c3NNYWMubW0KaW5kZXggMjRkMjZlZDFlNjc0M2FlYzU1N2E4Zjc2NDg5YjY3MzgwNDE3ZmQwNS4u
ZGIwYzMwNmYwNjJlN2RmOTNlMTM5YWRkZTA0NmI5YThiZjk3ZGY3NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQpAQCAtNjIy
LDkgKzYyMiw5IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vz
cyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhCiB2b2lkIFBsdWdpblByb2Nlc3M6
OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZSA9
IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAICglQCBJbnRlcm5l
dCBwbHVnLWluKSIsICJ2aXNpYmxlIG5hbWUgb2YgdGhlIHBsdWctaW4gaG9zdCBwcm9jZXNzLiBU
aGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlIHBsdWctaW4gbmFtZSBhbmQgdGhlIHNlY29uZCBhcmd1
bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgW1soTlNTdHJpbmcgKiltX3BsdWdpblBh
dGggbGFzdFBhdGhDb21wb25lbnRdIHN0cmluZ0J5RGVsZXRpbmdQYXRoRXh0ZW5zaW9uXSwgKE5T
U3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsKLSAgICBXS1NldFZpc2libGVBcHBs
aWNhdGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CisgICAgX0xTU2V0QXBw
bGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVu
dEFwcGxpY2F0aW9uQVNOKCksIF9rTFNEaXNwbGF5TmFtZUtleSwgKENGU3RyaW5nUmVmKWFwcGxp
Y2F0aW9uTmFtZSwgbnVsbHB0cik7CiAgICAgaWYgKCFtX3BsdWdpbkJ1bmRsZUlkZW50aWZpZXIu
aXNFbXB0eSgpKQotICAgICAgICBXS1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU1Bs
dWdJbkJ1bmRsZUlkZW50aWZpZXJLZXksIG1fcGx1Z2luQnVuZGxlSWRlbnRpZmllci5jcmVhdGVD
RlN0cmluZygpLmdldCgpKTsKKyAgICAgICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0
ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIGtM
U1BsdWdJbkJ1bmRsZUlkZW50aWZpZXJLZXksIG1fcGx1Z2luQnVuZGxlSWRlbnRpZmllci5jcmVh
dGVDRlN0cmluZygpLmdldCgpLCBudWxscHRyKTsKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzOjpp
bml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHNhbmRib3hQ
YXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMv
U3RvcmFnZVByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21hYy9T
dG9yYWdlUHJvY2Vzc01hYy5tbQppbmRleCBjMDM4ODYwZjhmMTQzYzBkY2ZmYzkzYTUyNzY2ZDYz
NDU0NzQxZjM5Li5lMzk2ODFhYzc0YWZlZDFkNmY0OWZiYzhlNTMwNWJmYzVjNDM2YTc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21hYy9TdG9yYWdlUHJvY2Vzc01h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21hYy9TdG9yYWdlUHJvY2Vz
c01hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNp
bXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVt
SW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00Nyw3ICs0OCw3IEBAIHZvaWQgU3Rv
cmFnZVByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxp
emF0aW9uUGFyYW1ldGVyCiB2b2lkIFN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05h
bWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQogewogICAgIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIlQCBTdG9yYWdlIiwgInZpc2libGUgbmFtZSBvZiB0aGUg
c3RvcmFnZSBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiks
IChOU1N0cmluZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZV07Ci0gICAgV0tTZXRWaXNpYmxl
QXBwbGljYXRpb25OYW1lKChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUpOworICAgIF9MU1Nl
dEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1
cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBfa0xTRGlzcGxheU5hbWVLZXksIChDRlN0cmluZ1JlZilh
cHBsaWNhdGlvbk5hbWUsIG51bGxwdHIpOwogfQogCiB2b2lkIFN0b3JhZ2VQcm9jZXNzOjppbml0
aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHNhbmRib3hQYXJh
bWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpp
bmRleCA5OTgwZTE1ZTJmOTkyNjZhYjA5YjhhNWEwMWJhN2VkNzg3YTViNTA1Li4wMTU1Y2IxOGIx
NTE0MzlhMGYxM2IyM2FhZGFhZDYxNzcxYzZlNTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTk0LDYgKzk0LDcgQEAKICNpbXBvcnQgPHBh
bC9zcGkvbWFjL05TQWNjZXNzaWJpbGl0eVNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNB
cHBsaWNhdGlvblNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNJbW1lZGlhdGVBY3Rpb25H
ZXN0dXJlUmVjb2duaXplclNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTY3JvbGxlcklt
cFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTcGVsbENoZWNrZXJTUEkuaD4KICNpbXBv
cnQgPHBhbC9zcGkvbWFjL05TVGV4dEZpbmRlclNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMv
TlNXaW5kb3dTUEkuaD4KQEAgLTEyNTksNyArMTI2MCw3IEBAIHN0YXRpYyBOU1RyYWNraW5nQXJl
YU9wdGlvbnMgdHJhY2tpbmdBcmVhT3B0aW9ucygpCiB7CiAgICAgLy8gTGVnYWN5IHN0eWxlIHNj
cm9sbGJhcnMgaGF2ZSBkZXNpZ24gZGV0YWlscyB0aGF0IHJlbHkgb24gdHJhY2tpbmcgdGhlIG1v
dXNlIGFsbCB0aGUgdGltZS4KICAgICBOU1RyYWNraW5nQXJlYU9wdGlvbnMgb3B0aW9ucyA9IE5T
VHJhY2tpbmdNb3VzZU1vdmVkIHwgTlNUcmFja2luZ01vdXNlRW50ZXJlZEFuZEV4aXRlZCB8IE5T
VHJhY2tpbmdJblZpc2libGVSZWN0IHwgTlNUcmFja2luZ0N1cnNvclVwZGF0ZTsKLSAgICBpZiAo
V0tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kpCisg
ICAgaWYgKF9OU1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxl
Z2FjeSkKICAgICAgICAgb3B0aW9ucyB8PSBOU1RyYWNraW5nQWN0aXZlQWx3YXlzOwogICAgIGVs
c2UKICAgICAgICAgb3B0aW9ucyB8PSBOU1RyYWNraW5nQWN0aXZlSW5LZXlXaW5kb3c7CkBAIC0x
OTQ1LDcgKzE5NDYsNyBAQCBib29sIFdlYlZpZXdJbXBsOjptaWdodEJlZ2luRHJhZ1doaWxlSW5h
Y3RpdmUoKQogYm9vbCBXZWJWaWV3SW1wbDo6bWlnaHRCZWdpblNjcm9sbFdoaWxlSW5hY3RpdmUo
KQogewogICAgIC8vIExlZ2FjeSBzdHlsZSBzY3JvbGxiYXJzIGhhdmUgZGVzaWduIGRldGFpbHMg
dGhhdCByZWx5IG9uIHRyYWNraW5nIHRoZSBtb3VzZSBhbGwgdGhlIHRpbWUuCi0gICAgaWYgKFdL
UmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlTGVnYWN5KQorICAg
IGlmIChfTlNSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdh
Y3kpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCmluZGV4
IDdkNmNiM2VkYTFkMDg5Yzg3NDVhYjM0YTAxYzNjYjZjZmVmZTNjMjEuLjEyNDFiZDhkOWUxYjcw
MTdmMDlkNGM0YzRmZjllYTMwMTljNzZiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAog
I2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXZWJQb3B1cEl0ZW0uaCIKICNp
bXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8cGFsL3N5c3RlbS9tYWMv
UG9wdXBNZW51Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xNjUsNyArMTY2
LDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRS
ZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICB9CiAKICAgICBSZWY8V2ViUG9wdXBN
ZW51UHJveHlNYWM+IHByb3RlY3QoKnRoaXMpOwotICAgIFdLUG9wdXBNZW51KG1lbnUsIGxvY2F0
aW9uLCByb3VuZGYoTlNXaWR0aChyZWN0KSksIGR1bW15Vmlldy5nZXQoKSwgc2VsZWN0ZWRJbmRl
eCwgZm9udCwgY29udHJvbFNpemUsIGRhdGEuaGlkZUFycm93cyk7CisgICAgUEFMOjpwb3BVcE1l
bnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dpZHRoKHJlY3QpKSwgZHVtbXlWaWV3LmdldCgp
LCBzZWxlY3RlZEluZGV4LCBmb250LCBjb250cm9sU2l6ZSwgZGF0YS5oaWRlQXJyb3dzKTsKIAog
ICAgIFttX3BvcHVwIGRpc21pc3NQb3BVcF07CiAgICAgW2R1bW15VmlldyByZW1vdmVGcm9tU3Vw
ZXJ2aWV3XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQppbmRleCBhMzEyMGU2
MjUzODNiZWIyYWY3MDcwMjcwZjQ3Zjg1ODk5MzBjMjA2Li5kMjkxYTExNDNjYzMxZWNkMTNjOGVi
YjgyMjUzMmNhN2VmMTFjOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1t
CkBAIC0zOCw2ICszOCw3IEBACiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNp
bXBvcnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJ
Lmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU01lbnVTUEkuaD4KICNpbXBvcnQgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCkBAIC0xNTgs
NyArMTU5LDYgQEAgTlBCb29sIE5ldHNjYXBlUGx1Z2luOjpjb252ZXJ0UG9pbnQoZG91YmxlIHNv
dXJjZVgsIGRvdWJsZSBzb3VyY2VZLCBOUENvb3JkaW5hdGUKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLQogTlBFcnJvciBOZXRzY2FwZVBsdWdpbjo6cG9wVXBDb250ZXh0TWVudShOUE1lbnUqIG5w
TWVudSkKIHsKICAgICBpZiAoIW1fY3VycmVudE1vdXNlRXZlbnQpCkBAIC0xNjgsNyArMTY4LDcg
QEAgTlBFcnJvciBOZXRzY2FwZVBsdWdpbjo6cG9wVXBDb250ZXh0TWVudShOUE1lbnUqIG5wTWVu
dSkKICAgICBpZiAoIWNvbnZlcnRQb2ludChtX2N1cnJlbnRNb3VzZUV2ZW50LT5kYXRhLm1vdXNl
LnBsdWdpblgsIG1fY3VycmVudE1vdXNlRXZlbnQtPmRhdGEubW91c2UucGx1Z2luWSwgTlBDb29y
ZGluYXRlU3BhY2VQbHVnaW4sIHNjcmVlblgsIHNjcmVlblksIE5QQ29vcmRpbmF0ZVNwYWNlU2Ny
ZWVuKSkKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKLSAgICBXS1BvcHVwQ29udGV4
dE1lbnUocmVpbnRlcnByZXRfY2FzdDxOU01lbnUgKj4obnBNZW51KSwgTlNNYWtlUG9pbnQoc2Ny
ZWVuWCwgc2NyZWVuWSkpOworICAgIF9OU1BvcFVwQ2FyYm9uTWVudTMocmVpbnRlcnByZXRfY2Fz
dDxOU01lbnUgKj4obnBNZW51KSwgbmlsLCBuaWwsIE5TTWFrZVBvaW50KHNjcmVlblgsIHNjcmVl
blkpLCAtMSwgbmlsLCAwLCBuaWwsIE5TUG9wVXBNZW51VHlwZUNvbnRleHQsIG5pbCk7CiAgICAg
cmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCA5MjdjOGFjNDNkMjVkNmY3YzdiODc4
NTY2NjYwN2JkMjczYjNlYmExLi5hZmNmZmE1MTc0NWIyNWI5ZTc0MDQyODMwN2ZhY2VkNTQ4ZGVj
YWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW4ubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEx
LCAyMDEyLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODEsNiArODEsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFj
ZS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KKyNpbXBvcnQgPHBh
bC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW1w
b3J0IDx3dGYvVVVJRC5oPgogCkBAIC0xNTg1LDcgKzE1ODYsNyBAQCBib29sIFBERlBsdWdpbjo6
aGFuZGxlQ29udGV4dE1lbnVFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKICAgICBJ
bnRQb2ludCBwb2ludCA9IGZyYW1lVmlldy0+Y29udGVudHNUb1NjcmVlbihJbnRSZWN0KGZyYW1l
Vmlldy0+d2luZG93VG9Db250ZW50cyhldmVudC5wb3NpdGlvbigpKSwgSW50U2l6ZSgpKSkubG9j
YXRpb24oKTsKICAgICAKICAgICBpZiAoTlNNZW51ICpuc01lbnUgPSBbbV9wZGZMYXllckNvbnRy
b2xsZXIgbWVudUZvckV2ZW50Om5zRXZlbnRGb3JXZWJNb3VzZUV2ZW50KGV2ZW50KV0pIHsKLSAg
ICAgICAgV0tQb3B1cENvbnRleHRNZW51KG5zTWVudSwgcG9pbnQpOworICAgICAgICBfTlNQb3BV
cENhcmJvbk1lbnUzKG5zTWVudSwgbmlsLCBuaWwsIHBvaW50LCAtMSwgbmlsLCAwLCBuaWwsIE5T
UG9wVXBNZW51VHlwZUNvbnRleHQsIG5pbCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggNmQxZGQ3MzM5MTll
ZDRmNDg2MzdkNjdjZTYxNWRjNmZkMDQ3MTIyNy4uYjlhYzM5NmJiMDM2ZDU1ZDcxMmMyMjc0ODJh
ZmEzZmM5NzczMDkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTM3
LDE3ICszNywxMCBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAg
CiAgICAgZGlzcGF0Y2hfb25jZSgmaW5pdE9uY2UsIF57CiAjaWYgIVBMQVRGT1JNKElPUykKLSAg
ICAgICAgSU5JVChEcmF3QmV6ZWxlZFRleHRBcmVhKTsKICAgICAgICAgSU5JVChEcmF3TWVkaWFT
bGlkZXJUcmFjayk7CiAgICAgICAgIElOSVQoRHJhd01lZGlhVUlQYXJ0KTsKICAgICAgICAgSU5J
VChIaXRUZXN0TWVkaWFVSVBhcnQpOwogICAgICAgICBJTklUKE1lYXN1cmVNZWRpYVVJUGFydCk7
Ci0gICAgICAgIElOSVQoRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCk7
Ci0gICAgICAgIElOSVQoQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKTsKLSAg
ICAgICAgSU5JVChDdXJzb3IpOwotICAgICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yVGltZURl
bHRhKTsKLSAgICAgICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk7Ci0gICAg
ICAgIElOSVQoTlNSZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOwogI2VuZGlmCiAgICAgfSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQppbmRleCA3YzM1ZDhlOTBiNzkxYzk0MjYxOWZkY2Y3NjYwM2M5YjQzMGVlMDJhLi40M2I3
OTY2NmQxNTFlOWRhMjk3YWM2OWYyZDA5YWRmODAyMTFkYmFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTE5NCw3ICsxOTQs
NyBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcgogICAgICAgICBhcHBsaWNhdGlvbk5hbWUgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIlQCBXZWIgSW5zcGVjdG9y
IiwgIlZpc2libGUgbmFtZSBvZiBXZWIgSW5zcGVjdG9yJ3Mgd2ViIHByb2Nlc3MuIFRoZSBhcmd1
bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51
aVByb2Nlc3NOYW1lXTsKICAgICBlbHNlCiAgICAgICAgIGFwcGxpY2F0aW9uTmFtZSA9IFtOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAIFdlYiBDb250ZW50IiwgIlZp
c2libGUgbmFtZSBvZiB0aGUgd2ViIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGlj
YXRpb24gbmFtZS4iKSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsKLSAg
ICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFt
ZSk7CisgICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Np
b25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9rTFNEaXNwbGF5TmFtZUtleSwg
KENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSwgbnVsbHB0cik7CiAjZW5kaWYKIH0KIApAQCAt
Mzk0LDcgKzM5NCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlQWN0aXZlUGFnZXMoKQogICAg
IH0KIAogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFU
Q0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIFthY3RpdmVQYWdlVVJMc10gewotICAgICAg
ICBXS1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKENGU1RSKCJMU0FjdGl2ZVBhZ2VVc2Vy
VmlzaWJsZU9yaWdpbnNLZXkiKSwgKF9fYnJpZGdlIENGQXJyYXlSZWYpYWN0aXZlUGFnZVVSTHMu
Z2V0KCkpOworICAgICAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZh
dWx0U2Vzc2lvbklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgQ0ZTVFIoIkxTQWN0
aXZlUGFnZVVzZXJWaXNpYmxlT3JpZ2luc0tleSIpLCAoX19icmlkZ2UgQ0ZBcnJheVJlZilhY3Rp
dmVQYWdlVVJMcy5nZXQoKSwgbnVsbHB0cik7CiAgICAgfSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdENv
bnRleHRNZW51RGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVs
ZWdhdGVzL1dlYkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tCmluZGV4IDAyNjViZjBjNTFh
OWYxODcxNTk2NTU1ZDY5MDdmOTAyMzcwZTc5NTcuLjNhY2NmMjJkZThhOGEzN2Y2NjI2NzBlNjZm
ZDBhNjAyMjU0NTJhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1
bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdENvbnRleHRNZW51RGVsZWdhdGUubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVE
ZWxlZ2F0ZS5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNTEsNiArNTEsNyBAQAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTS5oPgog
I2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdFN5c3Rl
bUludGVyZmFjZS5oPgorI2ltcG9ydCA8cGFsL3N5c3RlbS9jZi9EZWZhdWx0U2VhcmNoUHJvdmlk
ZXIuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJE
ZWZhdWx0VUlEZWxlZ2F0ZSAoV2ViQ29udGV4dE1lbnUpCkBAIC05MSw3ICs5Miw3IEBAIC0gKE5T
TWVudUl0ZW0gKiltZW51SXRlbVdpdGhUYWc6KGludCl0YWcgdGFyZ2V0OihpZCl0YXJnZXQgcmVw
cmVzZW50ZWRPYmplY3Q6KGlkCiAgICAgICAgICAgICBhY3Rpb24gPSBAc2VsZWN0b3IoX3NlYXJj
aFdpdGhTcG90bGlnaHRGcm9tTWVudTopOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgV2ViTWVudUl0ZW1UYWdTZWFyY2hXZWI6IHsKLSAgICAgICAgICAgIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gc2VhcmNoUHJvdmlkZXJOYW1lID0gYWRvcHRDRihXS0NvcHlEZWZhdWx0U2VhcmNo
UHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgICAgIGF1dG8gc2VhcmNoUHJvdmlkZXJO
YW1lID0gUEFMOjpkZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpOwogICAgICAgICAg
ICAgdGl0bGUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpVSV9TVFJJTkdfSU5URVJOQUwo
IlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1l
bnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1l
LmdldCgpXTsKICAgICAgICAgICAgIGFjdGlvbiA9IEBzZWxlY3Rvcihfc2VhcmNoV2l0aEdvb2ds
ZUZyb21NZW51Oik7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0
UHJveHkubW0KaW5kZXggMTliMzhhZTJlODM0MzI3ZGQ2NzMzODYxN2I2MTdlODk3ZDc2OGQ5Yi4u
Mzg0YTU5MWVmZTE3ODI2MTllYTJkOGRkZWExNTAwZmQ5NWRmMmNkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJv
eHkubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2Nh
cGVQbHVnaW5Ib3N0UHJveHkubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOC0yMDE3IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFt
ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NjcmlwdENvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJU2VydmljZXNTUEku
aD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBleHRlcm4gIkMiIHsKQEAgLTEx
Nyw3ICsxMTgsNyBAQCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5Ib3N0
UHJveHkobWFjaF9wb3J0X3QgY2xpZW50UG9ydCwgbWFjaF9wbwogICAgIAogICAgIENGUnVuTG9v
cEFkZFNvdXJjZShDRlJ1bkxvb3BHZXRDdXJyZW50KCksIGRlYXRoUG9ydFNvdXJjZS5nZXQoKSwg
a0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKICAgICAKLSAgICBtX2NsaWVudFBvcnRTb3VyY2UgPSBh
ZG9wdENGKFdLQ3JlYXRlTUlHU2VydmVyU291cmNlKChtaWdfc3Vic3lzdGVtX3QpJldLV2ViS2l0
UGx1Z2luQ2xpZW50X3N1YnN5c3RlbSwgbV9jbGllbnRQb3J0KSk7CisgICAgbV9jbGllbnRQb3J0
U291cmNlID0gYWRvcHRDRihNU0hDcmVhdGVNSUdTZXJ2ZXJTb3VyY2UobnVsbHB0ciwgMCwgKG1p
Z19zdWJzeXN0ZW1fdCkmV0tXZWJLaXRQbHVnaW5DbGllbnRfc3Vic3lzdGVtLCAwLCBtX2NsaWVu
dFBvcnQsIG51bGxwdHIpKTsKICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0Q3Vy
cmVudCgpLCBtX2NsaWVudFBvcnRTb3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7
CiAgICAgQ0ZSdW5Mb29wQWRkU291cmNlKENGUnVuTG9vcEdldEN1cnJlbnQoKSwgbV9jbGllbnRQ
b3J0U291cmNlLmdldCgpLCAoQ0ZTdHJpbmdSZWYpTlNFdmVudFRyYWNraW5nUnVuTG9vcE1vZGUp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
UG9wdXBNZW51TWFjLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
UG9wdXBNZW51TWFjLm1tCmluZGV4IGNjNWY4MWRmZDY1NmZjOGU3MzVkMTg1N2Y1YWU4NTM4ZDA3
NGZlMTQuLjgxY2Y0Yzc1ZDIwOWNiY2YxYzQ3MWYxM2NlM2NlNGYwZjFiMTBjMmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVN
YWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4LCAy
MDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1BvcHVwTWVudUNsaWVudC5oPgogI2ltcG9ydCA8V2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUuaD4KICNp
bXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwpAQCAtMjE3LDcgKzIxOCw3IEBAIHZvaWQgUG9wdXBNZW51TWFjOjpzaG93KGNvbnN0IElu
dFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogICAgICAgICBicmVhazsKICAgICB9
CiAKLSAgICBXS1BvcHVwTWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRmKE5TV2lkdGgocikpLCBk
dW1teVZpZXcuZ2V0KCksIGluZGV4LCB0b05TRm9udChmb250KSwgY29udHJvbFNpemUsICFtX2Ns
aWVudC0+bWVudVN0eWxlKCkuaGFzRGVmYXVsdEFwcGVhcmFuY2UoKSk7CisgICAgUEFMOjpwb3BV
cE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dpZHRoKHIpKSwgZHVtbXlWaWV3LmdldCgp
LCBpbmRleCwgdG9OU0ZvbnQoZm9udCksIGNvbnRyb2xTaXplLCAhbV9jbGllbnQtPm1lbnVTdHls
ZSgpLmhhc0RlZmF1bHRBcHBlYXJhbmNlKCkpOwogCiAgICAgW21fcG9wdXAgZGlzbWlzc1BvcFVw
XTsKICAgICBbZHVtbXlWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJm
YWNlLm1tCmluZGV4IGJmNzE2Yjc1N2IwYzU5NzM3Zjg4MzEwMmVhNTA1ODU5MzAwMjM3ZWEuLmE5
OTI5OGJmNjgwZGFlYjMwN2I4NGIyMWFjNzA1NDA0NmQ4MzdkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0KQEAgLTQzLDI0ICs0MywxMSBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKHZvaWQpCiAgICAgICAgIHJldHVybjsKIAogI2lmICFQTEFURk9STShJT1MpCi0gICAgSU5J
VChEcmF3QmV6ZWxlZFRleHRBcmVhKTsKICAgICBJTklUKERyYXdNZWRpYVVJUGFydCk7CiAgICAg
SU5JVChEcmF3TWVkaWFTbGlkZXJUcmFjayk7CiAgICAgSU5JVChIaXRUZXN0TWVkaWFVSVBhcnQp
OwogICAgIElOSVQoTWVhc3VyZU1lZGlhVUlQYXJ0KTsKICNlbmRpZgogCi0jaWYgIVBMQVRGT1JN
KElPUykKLSAgICBJTklUKEV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQp
OwotICAgIElOSVQoQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKTsKLSAgICBJ
TklUKEN1cnNvcik7Ci0jZW5kaWYKLQotI2lmICFQTEFURk9STShJT1MpCi0gICAgSU5JVChOU0Vs
YXN0aWNEZWx0YUZvclRpbWVEZWx0YSk7Ci0gICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclJlYm91
bmREZWx0YSk7Ci0gICAgSU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7Ci0jZW5k
aWYKLQogICAgIGRpZEluaXQgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMjc0YTE2ODcwNTc0NTQ0MTRhYjkyOTc1YTVj
MDQ4YzYwZWU1YTU4YS4uYThjYzljMWRkOWM2NTU4N2RiYmI5MjI2YjE5YTM5YzQ5NGI4ZWJkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBA
IC0xMzEsNiArMTMxLDcgQEAKICNpbXBvcnQgPGRsZmNuLmg+CiAjaW1wb3J0IDxsaW1pdHM+CiAj
aW1wb3J0IDxwYWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oPgorI2ltcG9y
dCA8cGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMv
TlNTcGVsbENoZWNrZXJTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TVmlld1NQSS5oPgog
I2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaD4KQEAgLTQ2ODIsNyArNDY4Myw3IEBA
IC0gKHZvaWQpc2V0RGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3VyY2UKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgaWYgKCFfcHJpdmF0ZS0+aW5zdGFsbGVkVHJhY2tpbmdBcmVhKSB7
CiAgICAgICAgIE5TVHJhY2tpbmdBcmVhT3B0aW9ucyBvcHRpb25zID0gTlNUcmFja2luZ01vdXNl
TW92ZWQgfCBOU1RyYWNraW5nTW91c2VFbnRlcmVkQW5kRXhpdGVkIHwgTlNUcmFja2luZ0luVmlz
aWJsZVJlY3QgfCBOU1RyYWNraW5nQ3Vyc29yVXBkYXRlOwotICAgICAgICBpZiAoV0tSZWNvbW1l
bmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kKKyAgICAgICAgaWYg
KF9OU1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeQog
I2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICAgICAgICAgIHx8IFtbc2VsZiBfd2Vi
Vmlld10gX2Rhc2hib2FyZEJlaGF2aW9yOldlYkRhc2hib2FyZEJlaGF2aW9yQWx3YXlzU2VuZE1v
dXNlRXZlbnRzVG9BbGxXaW5kb3dzXQogI2VuZGlmCkBAIC02MzU0LDcgKzYzNTUsNyBAQCAtICh2
b2lkKWF0dGFjaFJvb3RMYXllcjooQ0FMYXllciAqKWxheWVyCiAgICAgaWYgKFtbc2VsZiBfd2Vi
Vmlld10gX3Bvc3RzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlvbnNdKQogICAgICAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25O
YW1lOl9XZWJWaWV3RGlkU3RhcnRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTm90aWZpY2F0aW9uIG9i
amVjdDpbc2VsZiBfd2ViVmlld10gdXNlckluZm86bmlsXTsKIAotICAgIGlmIChXS0V4ZWN1dGFi
bGVXYXNMaW5rZWRPbk9yQmVmb3JlTGlvbigpKQorICAgIGlmICghX0NGRXhlY3V0YWJsZUxpbmtl
ZE9uT3JBZnRlcihDRlN5c3RlbVZlcnNpb25Nb3VudGFpbkxpb24pKQogICAgICAgICBbdmlld0xh
eWVyIHNldEdlb21ldHJ5RmxpcHBlZDpZRVNdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYWQyOWE4MjI1Mjk4OWM2NmE2NWY2NTg5NGY0ZTg2
MTEzNTE5MWMzMC4uNGU4YjgyMTYxMWI4ODhkNDdlNjI4ZGRlZjlkM2JlYjU5ODUxOGYyOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjA5LDYgKzIw
OSw3IEBACiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9j
Zi9DRlV0aWxpdGllc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU1RvdWNoQmFyU1BJ
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oPgog
I2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNSZXNwb25kZXJTUEkuaD4KQEAgLTI2MDksMTYgKzI2MTAs
MTYgQEAgLSAoaWQpX2Zvcm1EZWxlZ2F0ZUZvclNlbGVjdG9yOihTRUwpc2VsZWN0b3IKICNpZiAh
UExBVEZPUk0oSU9TKQogLSAoQk9PTClfbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsKIHsK
LSAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihA
ImNvbS5hZG9iZS5BY3JvYmF0IiwgLTEsIDkuMCkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hl
Y2tMZXNzVGhhbihAImNvbS5hZG9iZS5BY3JvYmF0LlBybyIsIC0xLCA5LjApCi0gICAgICAgIHx8
IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuUmVhZGVyIiwgLTEsIDkuMCkK
LSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5kaXN0aWxs
ZXIiLCAtMSwgOS4wKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29t
LmFkb2JlLkNvbnRyaWJ1dGUiLCAtMSwgNC4yKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVj
a0xlc3NUaGFuKEAiY29tLmFkb2JlLmRyZWFtd2VhdmVyLTkuMCIsIC0xLCA5LjEpCi0gICAgICAg
IHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20ubWFjcm9tZWRpYS5maXJld29ya3Mi
LCAtMSwgOS4xKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFk
b2JlLkluQ29weSIsIC0xLCA1LjEpCi0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1Ro
YW4oQCJjb20uYWRvYmUuSW5EZXNpZ24iLCAtMSwgNS4xKQotICAgICAgICB8fCBXS0FwcFZlcnNp
b25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLlNvdW5kYm9vdGgiLCAtMSwgMik7CisgICAgc3Rh
dGljIEJPT0wgbmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJj
b20uYWRvYmUuQWNyb2JhdCIpLCAtMSwgOS4wKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hl
Y2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLkFjcm9iYXQuUHJvIiksIC0xLCA5LjApCisgICAg
ICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuUmVhZGVy
IiksIC0xLCA5LjApCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RS
KCJjb20uYWRvYmUuZGlzdGlsbGVyIiksIC0xLCA5LjApCisgICAgICAgIHx8IF9DRkFwcFZlcnNp
b25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuQ29udHJpYnV0ZSIpLCAtMSwgNC4yKQor
ICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLmRy
ZWFtd2VhdmVyLTkuMCIpLCAtMSwgOS4xKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tM
ZXNzVGhhbihDRlNUUigiY29tLm1hY3JvbWVkaWEuZmlyZXdvcmtzIiksIC0xLCA5LjEpCisgICAg
ICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuSW5Db3B5
IiksIC0xLCA1LjEpCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RS
KCJjb20uYWRvYmUuSW5EZXNpZ24iKSwgLTEsIDUuMSkKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lv
bkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5Tb3VuZGJvb3RoIiksIC0xLCAyKTsKIAog
ICAgIHJldHVybiBuZWVkc1F1aXJrOwogfQpAQCAtMjYyNiwxMyArMjYyNywxMyBAQCAtIChCT09M
KV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyawogLSAoQk9PTClfbmVlZHNMaW5rRWxlbWVu
dFRleHRDU1NRdWlyawogewogICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSAhV2ViS2l0TGlu
a2VkT25PckFmdGVyKFdFQktJVF9GSVJTVF9WRVJTSU9OX1dJVEhPVVRfTElOS19FTEVNRU5UX1RF
WFRfQ1NTX1FVSVJLKQotICAgICAgICAmJiBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29t
LmUtZnJvbnRpZXIuc2hhZGUxMCIsIC0xLCAxMC42KTsKKyAgICAgICAgJiYgX0NGQXBwVmVyc2lv
bkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5lLWZyb250aWVyLnNoYWRlMTAiKSwgLTEsIDEwLjYp
OwogICAgIHJldHVybiBuZWVkc1F1aXJrOwogfQogCiAtIChCT09MKV9uZWVkc0lzTG9hZGluZ0lu
QVBJU2Vuc2VRdWlyawogewotICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSBXS0FwcFZlcnNp
b25DaGVja0xlc3NUaGFuKEAiY29tLmFwcGxlLmlBZFByb2R1Y2VyIiwgLTEsIDIuMSk7CisgICAg
c3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RS
KCJjb20uYXBwbGUuaUFkUHJvZHVjZXIiKSwgLTEsIDIuMSk7CiAgICAgCiAgICAgcmV0dXJuIG5l
ZWRzUXVpcms7CiB9CkBAIC0yNjQ1LDcgKzI2NDYsNyBAQCAtIChCT09MKV9uZWVkc0tleWJvYXJk
RXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcwogCiAtIChCT09MKV9uZWVkc0ZyYW1lTG9hZERlbGVn
YXRlUmV0YWluUXVpcmsKIHsKLSAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gV0tBcHBWZXJz
aW9uQ2hlY2tMZXNzVGhhbihAImNvbS5lcXVpbnV4LmlTYWxlNSIsIC0xLCA1LjYpOyAgICAKKyAg
ICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZT
VFIoImNvbS5lcXVpbnV4LmlTYWxlNSIpLCAtMSwgNS42KTsKICAgICByZXR1cm4gbmVlZHNRdWly
azsKIH0KIApAQCAtMjkyNyw3ICsyOTI4LDcgQEAgLSAodm9pZClfcHJlZmVyZW5jZXNDaGFuZ2Vk
OihXZWJQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCiAgICAgc2V0dGluZ3Muc2V0TmVlZHNBZG9i
ZUZyYW1lUmVsb2FkaW5nUXVpcmsoW3NlbGYgX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJr
XSk7CiAgICAgc2V0dGluZ3Muc2V0VHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQoW3Nl
bGYgX25lZWRzTGlua0VsZW1lbnRUZXh0Q1NTUXVpcmtdKTsKICAgICBzZXR0aW5ncy5zZXROZWVk
c0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcyhbc2VsZiBfbmVlZHNLZXlib2FyZEV2
ZW50RGlzYW1iaWd1YXRpb25RdWlya3NdKTsKLSAgICBzZXR0aW5ncy5zZXRFbmZvcmNlQ1NTTUlN
RVR5cGVJbk5vUXVpcmtzTW9kZSghV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hcHBs
ZS5pV2ViIiwgLTEsIDIuMSkpOworICAgIHNldHRpbmdzLnNldEVuZm9yY2VDU1NNSU1FVHlwZUlu
Tm9RdWlya3NNb2RlKCFfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFwcGxl
LmlXZWIiKSwgLTEsIDIuMSkpOwogICAgIHNldHRpbmdzLnNldE5lZWRzSXNMb2FkaW5nSW5BUElT
ZW5zZVF1aXJrKFtzZWxmIF9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlya10pOwogICAgIHNl
dHRpbmdzLnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShbcHJlZmVyZW5jZXMgdGV4dEFyZWFzQXJl
UmVzaXphYmxlXSk7CiAgICAgc2V0dGluZ3Muc2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0Vu
YWJsZWQoW3ByZWZlcmVuY2VzIGV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321009</attachid>
            <date>2017-09-16 13:45:42 -0700</date>
            <delta_ts>2017-09-16 14:13:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177029-20170916134541.patch</filename>
            <type>text/plain</type>
            <size>87040</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRhMDI0YTAxYjFiZjQy
OGFjOWFmNzIwZmJiOGY3NjQyNmRlZGM1OC4uNjIzNWVmZjkxMDU2NGMwOGFkZjRiNGIwNTk0OGQz
NTY2NmY5ZDdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQgbWlzY2Vs
bGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWc6IFVzZWQgLWZvcmNlX2xvYWQgb2YgbGliUEFMIGluc3RlYWQgb2YgLU9iakMuIFRo
aXMgZm9yY2VzCisgICAgICAgIHRoZSBsaW5rZXIgdG8gbG9hZCBib3RoIE9iamVjdGl2ZS1DIGFu
ZCBDIFBBTCBzeW1ib2xzIGluIFdlYkNvcmUuIFRoaXMgY2hhbmdlIGlzIG5lZWRlZCBmb3IKKyAg
ICAgICAgUEFMOjpwb3BVcE1lbnUoKSwgd2hpY2ggaXMgdXNlZCBieSBXZWJLaXQgYW5kIFdlYktp
dExlZ2FjeSBidXQgbm90IFdlYkNvcmUuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTG9jYWxp
emVkU3RyaW5nc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
U2VhcmNoV2ViKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1t
OgorICAgICAgICAoV2ViQ29yZTo6ZWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKToKKyAgICAgICAg
KFdlYkNvcmU6OmVsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpyZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6V0tDb3JlQ3Vy
c29yX2NvcmVDdXJzb3JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvcmVDdXJzb3JD
bGFzcyk6CisgICAgICAgIChXZWJDb3JlOjpjb3JlQ3Vyc29yQ2xhc3MpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1D
dXJzb3IgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50VGV4dEFyZWEpOgorCiAyMDE3LTA5LTE1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgY2Fs
bGluZyBTdHJpbmc6OmZvcm1hdCgpIGluIFBsYXRmb3JtQ0FGaWx0ZXJzOjpzZXRGaWx0ZXJzT25M
YXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAyNTIzYjY4MjM1MDRlZWM3Zjc4NzBhMGEyNjBk
MjMwNTFhZTNiYjkzLi5iODc3NTQyNzc3YzJiYjVlMmE1NjI2Mzg2ZjE4MTZiNjk5NWE2YTBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNy0wOS0xNSAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gVXBsb2FkIG1pc2NlbGxhbmVv
dXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmg6CisgICAgICAgICogcGFs
L3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJLmguCisgICAgICAgICogcGFsL3Nw
aS9tYWMvSElTZXJ2aWNlc1NQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TQ2VsbFNQSS5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQ
SS5oLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TTWVudVNQSS5oOgorICAgICAgICAqIHBhbC9z
cGkvbWFjL05TU2Nyb2xsVmlld1NQSS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TU2Ny
b2xsZXJJbXBTUEkuaDoKKyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92
aWRlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRp
bGl0aWVzU1BJLmguCisgICAgICAgIChQQUw6OmRlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlO
YW1lKToKKyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5o
LgorICAgICAgICAqIHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBh
bC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbTogQWRkZWQuCisgICAgICAgIChQQUw6OnBvcFVwTWVu
dSk6CisKIDIwMTctMDktMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IHRoZSBtYWNPUyBDTWFrZSBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNDAyZjFl
M2M4NjM5ZGJmZDIyY2Q1OWI4ZDY2YzAxNjg5OTZlMDYxLi42M2I5ZGFhYThhMTMzOTk1ZGI5OTgy
NjZlYjVhZGEwODE2OGQ3MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA5LTE1
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQg
bWlzY2VsbGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21h
Yy9OZXR3b3JrUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1
Z2luUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlh
bGl6ZVByb2Nlc3NOYW1lKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVBy
b2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXpl
UHJvY2Vzc05hbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToK
KyAgICAgICAgKFdlYktpdDo6dHJhY2tpbmdBcmVhT3B0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjptaWdodEJlZ2luU2Nyb2xsV2hpbGVJbmFjdGl2ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpwb3BVcENvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1
Z2luOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29y
ZVN5c3RlbUludGVyZmFjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNz
TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKToK
KwogMjAxNy0wOS0xNSAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgV1RGOiB1c2UgRm9yd2FyZC5oIHdoZW4gYXBwcm9wcmlhdGUgaW5zdGVhZCBvZiBWZWN0b3Iu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDhkOThkNDAwNjY2YmRhMmE5MTE2YzQy
NDAyZTEwNDY0NTYyMjg1MDcuLmNlNDVjYTk0YzcyNmQ4NjYxZTIwYTg2MDUxOTBiMjhkZGY1YmJj
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAxNy0w
OS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01hY10gVXBs
b2FkIG1pc2NlbGxhbmVvdXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZWZhdWx0RGVsZWdh
dGVzL1dlYkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJEZWZh
dWx0VUlEZWxlZ2F0ZSBtZW51SXRlbVdpdGhUYWc6dGFyZ2V0OnJlcHJlc2VudGVkT2JqZWN0Ol0p
OgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tOgor
ICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5I
b3N0UHJveHkpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbToKKyAg
ICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Up
OgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxW
aWV3IHNldERhdGFTb3VyY2U6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0dGFjaFJvb3RM
YXllcjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZp
ZXcgX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcg
X25lZWRzTGlua0VsZW1lbnRUZXh0Q1NTUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVl
ZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNG
cmFtZUxvYWREZWxlZ2F0ZVJldGFpblF1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZl
cmVuY2VzQ2hhbmdlZDpdKToKKworMjAxNy0wOS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBs
ZS5jb20+CisKICAgICAgICAgW0NvY29hXSBVcHN0cmVhbSBNZWRpYVJlbW90ZSBhbmQgVmlkZW9U
b29sYm94IFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Njk1MwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnIGIvU291cmNlL1dlYkNv
cmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwppbmRleCA3NjY2N2JhZTc0MDQ3MWQ3
NDVhOTUxMjIwNWViMWNmNDlkN2EzMjM1Li5iMDNkZDRjZThhMjM2YjczZTg4OThlN2Y5ZGJkMzhm
NWZhY2M4MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJD
b3JlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWcKQEAgLTc3LDcgKzc3LDcgQEAgTElCV0VCUlRDX0xJQlJBUllfRElSX1VTRV9PVkVS
UklERV9GUkFNRVdPUktTX0RJUl9OTyA9ICQoV0VCQ09SRV9GUkFNRVdPUktTX0RJUikKIExJQldF
QlJUQ19MSUJSQVJZX0RJUl9VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfWUVTID0gJChXS19P
VkVSUklERV9GUkFNRVdPUktTX0RJUik7CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkg
JChXS19SRUxPQ0FUQUJMRV9GUkFNRVdPUktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9M
U19MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk0pOwotT1RIRVJfTERGTEFHU19CQVNF
ID0gLWxzcWxpdGUzIC1sb2JqYyAtbEFOR0xFIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdv
cmsgTWV0YWwgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVf
Y2xpZW50IFdlYktpdExlZ2FjeSAtT2JqQzsKK09USEVSX0xERkxBR1NfQkFTRSA9IC1sc3FsaXRl
MyAtbG9iamMgLWxBTkdMRSAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIE1ldGFsIC1h
bGxvd2FibGVfY2xpZW50IFdlYkNvcmVUZXN0U3VwcG9ydCAtYWxsb3dhYmxlX2NsaWVudCBXZWJL
aXRMZWdhY3kgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlBBTC5hOwogLy8g
RklYTUU6IFJlZHVjZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnQgPHJkYXI6Ly9wcm9i
bGVtLzMxODIzOTY5PgogT1RIRVJfTERGTEFHU19CQVNFX2lvcyA9ICQoT1RIRVJfTERGTEFHU19C
QVNFKSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3
b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZy
YW1ld29yayBNb2JpbGVDb3JlU2VydmljZXMgLWZyYW1ld29yayBPcGVuR0xFUyAtbE1vYmlsZUdl
c3RhbHQgJChXS19JT1NfQklOQ09NUEFUX0xERkxBR1MpIC1hbGxvd2FibGVfY2xpZW50IFdlYktp
dCAtYWxsb3dhYmxlX2NsaWVudCBpVHVuZXNVIC1hbGxvd2FibGVfY2xpZW50IENhc2FibGFuY2Eg
LWFsbG93YWJsZV9jbGllbnQgUmVtb3RlIC1hbGxvd2FibGVfY2xpZW50IFRWQm9va3MgLWFsbG93
YWJsZV9jbGllbnQgRHVtcFJlbmRlclRyZWUgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0VGVzdFJ1
bm5lciAtYWxsb3dhYmxlX2NsaWVudCBUZXN0V2ViS2l0QVBJOwogT1RIRVJfTERGTEFHU19QTEFU
Rk9STVtzZGs9aXBob25lb3MqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgLWZyYW1ld29y
ayBJT1N1cmZhY2UgLWZyYW1ld29yayBHcmFwaGljc1NlcnZpY2VzICQoTElCV0VCUlRDX0xERkxB
R1MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGNhYjE0Y2Q0YTdmZGIxYjdlZjRlYjg1NWRkYTlhZWFkNWVhOGM0OWIuLmYzM2M4
ZDE5NmYwYzZmZjJmZDViOTBhODExMzA0ZTA0YzkwZDFhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNyw2ICsxMDcsMTIg
QEAKIAkJQTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3
MkFDIC8qIFdlYlBhbmVsLm1tICovOyB9OwogCQlBMTA4MjZGRTFGNThBNDMzMDA0NzcyQUMgLyog
TlNHcmFwaGljc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTEwODI2RkQxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCAqLzsgfTsK
IAkJQTExNzVCNDkxRjZBRkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNDgxRjZBRkY4
RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovOyB9OworCQlBMTE3NUI0QjFGNkIy
RDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmgg
Ki87IH07CisJCUExMTc1QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRDMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsKKwkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYw
IC8qIFBvcHVwTWVudS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExMTc1QjREMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gKi87IH07CisJ
CUExMTc1QjU3MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjU1MUY2QjQ3
MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCAqLzsgfTsKKwkJQTExNzVCNTgx
RjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI1NjFGNkI0NzA1MDBDNEI5
RjAgLyogRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJQTExNzVCNUExRjZCNEE4
NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xs
Vmlld1NQSS5oICovOyB9OwogCQlBMUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFT
UEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1
RENFMUY1NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFG
MEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5o
ICovOyB9OwogCQlBMzBENDEyMjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMUYxRjBERDBF
QTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCAqLzsgfTsKQEAgLTIyOSw2ICsyMzUsMTIgQEAKIAkJ
QTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMDgyNkZE
MUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TR3Jh
cGhpY3NTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNzVCNDgxRjZBRkY4
RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hT
eW50aGVzaXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEExRjZC
MkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0NlbGxTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEMxRjZCMzM3MzAwQzRCOUYwIC8q
IFBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvcHVwTWVudS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFy
Y2hQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTE3NUI1OTFGNkI0QTg0MDBDNEI5
RjAgLyogTlNTY3JvbGxWaWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TU2Nyb2xsVmlld1NQSS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYg
LyogTWV0YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0YWRhdGFTUEkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5n
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmlu
Zy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLaWxsUmluZy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDcsNiArMzE5LDcgQEAKIAkJCQkwQzJE
QTEyODFGM0JFQjQ5MDBEQkMzMTcgLyogSU9SZXR1cm5TUEkuaCAqLywKIAkJCQkwQzJEQTEyOTFG
M0JFQjQ5MDBEQkMzMTcgLyogSU9TdXJmYWNlU1BJLmggKi8sCiAJCQkJMEMyREExMkExRjNCRUI0
OTAwREJDMzE3IC8qIElPVHlwZXNTUEkuaCAqLywKKwkJCQkwQzVBRjkxMjFGNDNBNEM3MDAyRUFD
MDIgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzJEQTEyQjFGM0JFQjQ5MDBEQkMz
MTcgLyogTGlua1ByZXNlbnRhdGlvblNQSS5oICovLAogCQkJCTBDMkRBMTJDMUYzQkVCNDkwMERC
QzMxNyAvKiBNYWNoVk1TUEkuaCAqLywKIAkJCQkwQzJEQTEyRDFGM0JFQjQ5MDBEQkMzMTcgLyog
TkVGaWx0ZXJTb3VyY2VTUEkuaCAqLywKQEAgLTMzNiw3ICszNDksNiBAQAogCQkJCTBDNUFGOTBG
MUY0M0E0QzcwMDJFQUMwMiAvKiBDb3JlVUlTUEkuaCAqLywKIAkJCQkwQzVBRjkxMDFGNDNBNEM3
MDAyRUFDMDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggKi8sCiAJCQkJMEM1QUY5MTExRjQzQTRD
NzAwMkVBQzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCAqLywKLQkJCQkwQzVBRjkxMjFGNDNB
NEM3MDAyRUFDMDIgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzVBRjkxMzFGNDNB
NEM3MDAyRUFDMDIgLyogTWVkaWFQbGF5ZXJTUEkuaCAqLywKIAkJCQkwQzVBRjkxNDFGNDNBNEM3
MDAyRUFDMDIgLyogTW9iaWxlR2VzdGFsdFNQSS5oICovLAogCQkJCTBDNUFGOTE1MUY0M0E0Qzcw
MDJFQUMwMiAvKiBPcGVuR0xFU1NQSS5oICovLApAQCAtMzU5LDYgKzM3MSw3IEBACiAJCQkJQTFG
NTVEQ0UxRjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzQx
RjQ1MTMwRjAwRjRFQkI2IC8qIE5TQWNjZXNzaWJpbGl0eVNQSS5oICovLAogCQkJCTBDNzc4NTc1
MUY0NTEzMEYwMEY0RUJCNiAvKiBOU0FwcGxpY2F0aW9uU1BJLmggKi8sCisJCQkJQTExNzVCNEEx
RjZCMkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovLAogCQkJCTBDNzc4NTc2MUY0NTEzMEYw
MEY0RUJCNiAvKiBOU0V2ZW50U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzcxRjQ1MTMwRjAwRjRFQkI2
IC8qIE5TRm9udFNQSS5oICovLAogCQkJCUExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dy
YXBoaWNzU1BJLmggKi8sCkBAIC0zNzAsNiArMzgzLDcgQEAKIAkJCQkwQzc3ODU3QzFGNDUxMzBG
MDBGNEVCQjYgLyogTlNTY3JvbGxlckltcFNQSS5oICovLAogCQkJCTBDNzc4NTdEMUY0NTEzMEYw
MEY0RUJCNiAvKiBOU1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggKi8sCiAJCQkJMEM3Nzg1N0Ux
RjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yU1BJLmggKi8s
CisJCQkJQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oICovLAog
CQkJCTBDNzc4NTdGMUY0NTEzMEYwMEY0RUJCNiAvKiBOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU1BJ
LmggKi8sCiAJCQkJMEM3Nzg1ODAxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2hhcmluZ1NlcnZpY2VT
UEkuaCAqLywKIAkJCQkwQzc3ODU4MTFGNDUxMzBGMDBGNEVCQjYgLyogTlNTcGVsbENoZWNrZXJT
UEkuaCAqLywKQEAgLTQ4Niw2ICs1MDAsMTAgQEAKIAkJQTM3ODhFQTAxRjA1QjdFMjAwNjc5NDI1
IC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
QTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgKi8s
CisJCQkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5o
ICovLAorCQkJCUExMTc1QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLywKKwkJ
CQlBMTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tICovLAogCQkJCUEzNzg4
RTlEMUYwNUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1hYy5tbSAqLywKIAkJCQlBM0FCNkU2MjFGM0Qy
MTdGMDA5QzE0QjEgLyogU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oICovLAogCQkJCUEzQUI2RTYz
MUYzRDIxN0YwMDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tICovLApAQCAtNTI4
LDYgKzU0Niw3IEBACiAJCQkJMEMyREExNDExRjNCRUI0OTAwREJDMzE3IC8qIERhdGFEZXRlY3Rv
cnNDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVCQjYg
LyogRGF0YURldGVjdG9yc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUExRjQzQTRD
NzAwMkVBQzAyIC8qIERhdGFEZXRlY3RvcnNVSVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEx
NzVCNTcxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyRDlFNzMxRUVGNUFGNjAwREJDMzE3IC8qIEV4cG9ydE1hY3Jvcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTEwMjY1ODcxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5kYXRpb25T
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFCMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFw
aGljc1NlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTU1Niw2ICs1NzUsNyBAQAogCQkJ
CTBDMkRBMTRBMUYzQkVCNDkwMERCQzMxNyAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDMkRBMTRCMUYzQkVCNDkwMERCQzMxNyAvKiBOU0J1dHRvbkNlbGxT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTRDMUYzQkVCNDkwMERCQzMxNyAvKiBOU0Nh
bGVuZGFyRGF0ZVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTExNzVCNEIxRjZCMkQ3RTAwQzRC
OUYwIC8qIE5TQ2VsbFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNEQxRjNCRUI0OTAw
REJDMzE3IC8qIE5TQ29sb3JTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThGMUY0NTEz
MEYwMEY0RUJCNiAvKiBOU0V2ZW50U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0RTFG
M0JFQjQ5MDBEQkMzMTcgLyogTlNFeHRlbnNpb25TUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTcw
LDYgKzU5MCw3IEBACiAJCQkJMEM3Nzg1OTUxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsZXJJ
bXBTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk2MUY0NTEzMEYwMEY0RUJCNiAvKiBO
U1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5NzFG
NDUxMzBGMDBGNEVCQjYgLyogTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JTUEkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUExMTc1QjVBMUY2QjRBODQwMEM0QjlGMCAvKiBOU1Njcm9sbFZpZXdT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk4MUY0NTEzMEYwMEY0RUJCNiAvKiBOU1No
YXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5OTFGNDUx
MzBGMDBGNEVCQjYgLyogTlNTaGFyaW5nU2VydmljZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEM3Nzg1OUExRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU3BlbGxDaGVja2VyU1BJLmggaW4gSGVhZGVy
cyAqLywKQEAgLTU4NCw2ICs2MDUsNyBAQAogCQkJCTBDNUFGOTFGMUY0M0E0QzcwMDJFQUMwMiAv
KiBPcGVuR0xFU1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNTUxRjNCRUI0OTAwREJD
MzE3IC8qIFBhc3NLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTlFMUY0NTEzMEYw
MEY0RUJCNiAvKiBQSVBTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMTc1QjRFMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU2MUYzQkVC
NDkwMERCQzMxNyAvKiBwdGhyZWFkU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5RjFG
NDUxMzBGMDBGNEVCQjYgLyogUVRLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU3
MUYzQkVCNDkwMERCQzMxNyAvKiBRdWFydHpDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTY5
Miw4ICs3MTQsMTAgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxl
cyA9ICgKIAkJCQkxQzA5RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9u
Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExMTc1QjU4MUY2QjQ3MDUwMEM0QjlGMCAv
KiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTMwRDQxMjIx
RjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0
MTI1MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUExMTc1QjRGMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBM0M2NkNEQzFGNDYyRDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUEzQUI2RTUyMUYzRDFEQzUwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUEzQUI2RTYwMUYzRDFFMzkwMDlDMTRCMSAvKiBTbGVlcERpc2Fi
bGVyQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaAppbmRleCBmYzhjZDc5Mjc2MmJmMGE3NjIwYTEyYWNmMTIw
ZmEzMDlhMzc4ZmZjLi5mNTA2Y2IyNmExZGNhYTBjZDUxOGUyYTllOGNkNWFlZjg3Y2IzY2Y3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NyArMjgsMTYgQEAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgog
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24v
Q0ZQcml2Lmg+CisKKyNlbHNlCisKK3R5cGVkZWYgQ0ZfRU5VTShDRkluZGV4LCBDRlN5c3RlbVZl
cnNpb24pIHsKKyAgICBDRlN5c3RlbVZlcnNpb25MaW9uID0gNywKKyAgICBDRlN5c3RlbVZlcnNp
b25Nb3VudGFpbkxpb24gPSA4LAorfTsKKwogI2VuZGlmCiAKIFdURl9FWFRFUk5fQ19CRUdJTgpA
QCAtMzcsNSArNDYsMTEgQEAgQ0ZEaWN0aW9uYXJ5UmVmIF9DRkNvcHlTeXN0ZW1WZXJzaW9uRGlj
dGlvbmFyeSh2b2lkKTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGU3lzdGVtVmVyc2lv
blByb2R1Y3RWZXJzaW9uS2V5OwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZTeXN0ZW1W
ZXJzaW9uQnVpbGRWZXJzaW9uS2V5OwogCitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NGV2Vi
U2VydmljZXNUeXBlV2ViU2VhcmNoOworZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDRldlYlNl
cnZpY2VzUHJvdmlkZXJEZWZhdWx0RGlzcGxheU5hbWVLZXk7CitDRkRpY3Rpb25hcnlSZWYgX0NG
V2ViU2VydmljZXNDb3B5UHJvdmlkZXJJbmZvKENGU3RyaW5nUmVmIHNlcnZpY2VUeXBlLCBCb29s
ZWFuKiBvdXRJc1VzZXJTZWxlY3Rpb24pOworCitCb29sZWFuIF9DRkFwcFZlcnNpb25DaGVja0xl
c3NUaGFuKENGU3RyaW5nUmVmIGJ1bmRsZUlELCBpbnQgbGlua2VkT25Bbk9sZGVyU3lzdGVtVGhh
biwgZG91YmxlIHZlcnNpb25OdW1iZXJMZXNzVGhhbik7CisKIFdURl9FWFRFUk5fQ19FTkQKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTGF1bmNoU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2Vz
U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTBhMGVhM2I1YjAzOTVjNWE5MzEyNWQzNWI5MDk3NjVmZDQyMGEy
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0xh
dW5jaFNlcnZpY2VzU1BJLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCisjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbXBvcnQgPExhdW5j
aFNlcnZpY2VzL0xhdW5jaFNlcnZpY2VzUHJpdi5oPgorI2VsaWYgUExBVEZPUk0oSU9TKQorI2lt
cG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL0xhdW5jaFNlcnZpY2VzUHJpdi5oPgorI2VuZGlmCisK
KyNlbmRpZgorCitAY2xhc3MgTFNBcHBMaW5rOwordHlwZWRlZiB2b2lkICheTFNBcHBMaW5rQ29t
cGxldGlvbkhhbmRsZXIpKExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAqZXJyb3IpOwordHlw
ZWRlZiB2b2lkICheTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKShCT09MIHN1Y2Nlc3Ms
IE5TRXJyb3IgKmVycm9yKTsKKworI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCitAaW50
ZXJmYWNlIExTUmVzb3VyY2VQcm94eSA6IE5TT2JqZWN0IDxOU0NvcHlpbmcsIE5TU2VjdXJlQ29k
aW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExTQnVuZGxlUHJveHkgOiBMU1Jlc291cmNlUHJveHkg
PE5TU2VjdXJlQ29kaW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExTQXBwbGljYXRpb25Qcm94eSA6
IExTQnVuZGxlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgorLSAoTlNTdHJpbmcgKilsb2NhbGl6ZWRO
YW1lRm9yQ29udGV4dDooTlNTdHJpbmcgKiljb250ZXh0OworQGVuZAorCitAaW50ZXJmYWNlIExT
QXBwTGluayA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KK0BlbmQKKworQGludGVyZmFjZSBM
U0FwcExpbmsgKCkKKysgKHZvaWQpZ2V0QXBwTGlua1dpdGhVUkw6KE5TVVJMICopYVVSTCBjb21w
bGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpY29tcGxldGlvbkhhbmRs
ZXI7CisrICh2b2lkKW9wZW5XaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxldGlvbkhhbmRsZXI6
KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZv
aWQpb3BlbkluV2ViQnJvd3NlcjooQk9PTClpbldlYkJyb3dzZXIgc2V0QXBwcm9wcmlhdGVPcGVu
U3RyYXRlZ3lBbmRXZWJCcm93c2VyU3RhdGU6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4g
KilzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVy
KWNvbXBsZXRpb25IYW5kbGVyOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBMU0FwcGxp
Y2F0aW9uUHJveHkgKnRhcmdldEFwcGxpY2F0aW9uUHJveHk7CitAZW5kCisKK2VudW0gTFNTZXNz
aW9uSUQgeworICAgIGtMU0RlZmF1bHRTZXNzaW9uSUQgPSAtMiwKK307CisKKyNlbmRpZgorCitX
VEZfRVhURVJOX0NfQkVHSU4KKworT1NTdGF0dXMgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlv
bkl0ZW0oTFNTZXNzaW9uSUQsIExTQVNOUmVmLCBDRlN0cmluZ1JlZiBrZXlUb1NldFJlZiwgQ0ZU
eXBlUmVmIHZhbHVlVG9TZXRSZWYsIENGRGljdGlvbmFyeVJlZiogbmV3SW5mb3JtYXRpb25EaWN0
UmVmKTsKK0xTQVNOUmVmIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpOworCitleHRlcm4g
Y29uc3QgQ0ZTdHJpbmdSZWYgX2tMU0Rpc3BsYXlOYW1lS2V5OworCitXVEZfRVhURVJOX0NfRU5E
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTGF1bmNoU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQ
SS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNmE4YjJlNGZjYmVlMTUxMWU4YzBj
NDNiN2FiZDU3ODUyMjgxODIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQ
SS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KLQotI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCi0KLSNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9MU0FwcExpbmtQ
cml2Lmg+Ci0KLSNlbmRpZgotCi1AY2xhc3MgTFNBcHBMaW5rOwotdHlwZWRlZiB2b2lkICheTFNB
cHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpKExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAqZXJy
b3IpOwotdHlwZWRlZiB2b2lkICheTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKShCT09M
IHN1Y2Nlc3MsIE5TRXJyb3IgKmVycm9yKTsKLQotI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQotCi1AaW50ZXJmYWNlIExTUmVzb3VyY2VQcm94eSA6IE5TT2JqZWN0IDxOU0NvcHlpbmcsIE5T
U2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50ZXJmYWNlIExTQnVuZGxlUHJveHkgOiBMU1Jlc291
cmNlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50ZXJmYWNlIExTQXBwbGljYXRp
b25Qcm94eSA6IExTQnVuZGxlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgotLSAoTlNTdHJpbmcgKils
b2NhbGl6ZWROYW1lRm9yQ29udGV4dDooTlNTdHJpbmcgKiljb250ZXh0OwotQGVuZAotCi1AaW50
ZXJmYWNlIExTQXBwTGluayA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KLUBlbmQKLQotQGlu
dGVyZmFjZSBMU0FwcExpbmsgKCkKLSsgKHZvaWQpZ2V0QXBwTGlua1dpdGhVUkw6KE5TVVJMICop
YVVSTCBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpY29tcGxl
dGlvbkhhbmRsZXI7Ci0rICh2b2lkKW9wZW5XaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxldGlv
bkhhbmRsZXI6KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxl
cjsKLS0gKHZvaWQpb3BlbkluV2ViQnJvd3NlcjooQk9PTClpbldlYkJyb3dzZXIgc2V0QXBwcm9w
cmlhdGVPcGVuU3RyYXRlZ3lBbmRXZWJCcm93c2VyU3RhdGU6KE5TRGljdGlvbmFyeTxOU1N0cmlu
ZyAqLCBpZD4gKilzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBsZXRp
b25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyOwotQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25n
KSBMU0FwcGxpY2F0aW9uUHJveHkgKnRhcmdldEFwcGxpY2F0aW9uUHJveHk7Ci1AZW5kCi0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmgK
aW5kZXggYTM1NWI5NGZlNjMwOTJlZjVhY2QwYjVjOTVlMDNkZDQ2ZTk1MzgxNS4uN2RlZGEyZjNj
N2EyNzU5NjEwNzAxZTQ0ZDgxZjE1MjFmZmRjM2RmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oCkBAIC0yNSwxMyArMjUsNjQgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgorCiAj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2luY2x1ZGUgPEhJU2VydmljZXMvQVhUZXh0
TWFya2VyLmg+CisjaW5jbHVkZSA8SElTZXJ2aWNlcy9Db3JlQ3Vyc29yLmg+CiAjaW5jbHVkZSA8
SElTZXJ2aWNlcy9Db3JlRHJhZy5oPgogCiAjZWxzZQogCit0eXBlZGVmIENGX0VOVU0oU0ludDMy
LCBDb3JlQ3Vyc29yVHlwZSkgeworICAgIGtDb3JlQ3Vyc29yRmlyc3RDdXJzb3IgPSAwLAorICAg
IGtDb3JlQ3Vyc29yQXJyb3cgPSBrQ29yZUN1cnNvckZpcnN0Q3Vyc29yLAorICAgIGtDb3JlQ3Vy
c29ySUJlYW0sCisgICAga0NvcmVDdXJzb3JNYWtlQWxpYXMsCisgICAga0NvcmVDdXJzb3JOb3RB
bGxvd2VkLAorICAgIGtDb3JlQ3Vyc29yQnVzeUJ1dENsaWNrYWJsZSwKKyAgICBrQ29yZUN1cnNv
ckNvcHksCisgICAga0NvcmVDdXJzb3JTY3JlZW5TaG90U2VsZWN0aW9uID0gNywKKyAgICBrQ29y
ZUN1cnNvclNjcmVlblNob3RTZWxlY3Rpb25Ub0NsaXAsCisgICAga0NvcmVDdXJzb3JTY3JlZW5T
aG90V2luZG93LAorICAgIGtDb3JlQ3Vyc29yU2NyZWVuU2hvdFdpbmRvd1RvQ2xpcCwKKyAgICBr
Q29yZUN1cnNvckNsb3NlZEhhbmQsCisgICAga0NvcmVDdXJzb3JPcGVuSGFuZCwKKyAgICBrQ29y
ZUN1cnNvclBvaW50aW5nSGFuZCwKKyAgICBrQ29yZUN1cnNvckNvdW50aW5nVXBIYW5kLAorICAg
IGtDb3JlQ3Vyc29yQ291bnRpbmdEb3duSGFuZCwKKyAgICBrQ29yZUN1cnNvckNvdW50aW5nVXBB
bmREb3duSGFuZCwKKyAgICBrQ29yZUN1cnNvclJlc2l6ZUxlZnQsCisgICAga0NvcmVDdXJzb3JS
ZXNpemVSaWdodCwKKyAgICBrQ29yZUN1cnNvclJlc2l6ZUxlZnRSaWdodCwKKyAgICBrQ29yZUN1
cnNvckNyb3NzLAorICAgIGtDb3JlQ3Vyc29yUmVzaXplVXAsCisgICAga0NvcmVDdXJzb3JSZXNp
emVEb3duLAorICAgIGtDb3JlQ3Vyc29yUmVzaXplVXBEb3duLAorICAgIGtDb3JlQ3Vyc29yQ29u
dGV4dHVhbE1lbnUsCisgICAga0NvcmVDdXJzb3JQb29mLAorICAgIGtDb3JlQ3Vyc29ySUJlYW1W
ZXJ0aWNhbCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZUVhc3QsCisgICAga0NvcmVDdXJz
b3JXaW5kb3dSZXNpemVFYXN0V2VzdCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRo
RWFzdCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoRWFzdFNvdXRoV2VzdCwKKyAg
ICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVz
aXplTm9ydGhTb3V0aCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoV2VzdCwKKyAg
ICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoV2VzdFNvdXRoRWFzdCwKKyAgICBrQ29yZUN1
cnNvcldpbmRvd1Jlc2l6ZVNvdXRoRWFzdCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZVNv
dXRoLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291dGhXZXN0LAorICAgIGtDb3JlQ3Vy
c29yV2luZG93UmVzaXplV2VzdCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd01vdmUsCisgICAga0Nv
cmVDdXJzb3JIZWxwLAorICAgIGtDb3JlQ3Vyc29yQ2VsbCwKKyAgICBrQ29yZUN1cnNvclpvb21J
biwKKyAgICBrQ29yZUN1cnNvclpvb21PdXQsCisgICAga0NvcmVDdXJzb3JMYXN0Q3Vyc29yID0g
a0NvcmVDdXJzb3Jab29tT3V0Cit9OworCiBlbnVtIHsKICAgICBrQ29yZURyYWdJbWFnZVNwZWNW
ZXJzaW9uT25lID0gMSwKIH07CkBAIC01NSw2ICsxMDYsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBfX0FYVGV4dE1hcmtlciogQVhUZXh0TWFya2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
X19BWFRleHRNYXJrZXJSYW5nZSogQVhUZXh0TWFya2VyUmFuZ2VSZWY7CiB0eXBlZGVmIHN0cnVj
dCBDb3JlRHJhZ0ltYWdlU3BlYyBDb3JlRHJhZ0ltYWdlU3BlYzsKIHR5cGVkZWYgc3RydWN0IE9w
YXF1ZUNvcmVEcmFnKiBDb3JlRHJhZ1JlZjsKK3R5cGVkZWYgVUludDMyIE1TSENyZWF0ZU9wdGlv
bnM7CiAKIFdURl9FWFRFUk5fQ19CRUdJTgogCkBAIC02OCw1ICsxMjAsNiBAQCBDRlR5cGVJRCBB
WFRleHRNYXJrZXJSYW5nZUdldFR5cGVJRCgpOwogQ29yZURyYWdSZWYgQ29yZURyYWdHZXRDdXJy
ZW50RHJhZygpOwogT1NTdGF0dXMgQ29yZURyYWdTZXRJbWFnZShDb3JlRHJhZ1JlZiwgQ0dQb2lu
dCBpbWFnZU9mZnNldCwgQ29yZURyYWdJbWFnZVNwZWMqLCBDR1NSZWdpb25PYmogaW1hZ2VTaGFw
ZSwgZmxvYXQgb3ZlcmFsbEFscGhhKTsKIGNvbnN0IFVJbnQ4KiBBWFRleHRNYXJrZXJHZXRCeXRl
UHRyKEFYVGV4dE1hcmtlclJlZik7CitDRlJ1bkxvb3BTb3VyY2VSZWYgTVNIQ3JlYXRlTUlHU2Vy
dmVyU291cmNlKENGQWxsb2NhdG9yUmVmLCBDRkluZGV4IG9yZGVyLCBtaWdfc3Vic3lzdGVtX3Qg
c3ViX3N5c3RlbSwgTVNIQ3JlYXRlT3B0aW9ucywgbWFjaF9wb3J0X3QsIHZvaWQqIHVzZXJfZGF0
YSk7CiAKIFdURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL21hYy9OU0NlbGxTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9O
U0NlbGxTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTMzZGEzZDNkZmJiYTdjYjA2M2Y2MGVkNDc5MTAxZTg2
NjkzODY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFj
L05TQ2VsbFNQSS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEFwcEtpdC9OU0NlbGxf
UHJpdmF0ZS5oPgorCisjZW5kaWYKKworV1RGX0VYVEVSTl9DX0JFR0lOCisKK3ZvaWQgX05TRHJh
d0NhcmJvblRoZW1lTGlzdEJveChOU1JlY3QsIEJPT0wgZW5hYmxlZCwgQk9PTCBmbGlwcGVkLCBC
T09MIHRleHR1cmVkKTsKKworV1RGX0VYVEVSTl9DX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvbWFjL05TTWVudVNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvbWFjL05TTWVudVNQSS5oCmluZGV4IDFmNWU3YmM2NmEwMDMyMTk0ODIyMDRjNDgxOTk0
MWVkM2I0ZmE1ZmYuLjQ3Zjc2NTVjYzllMTViNzRiNDg2YWZjMDZmYmQ1ZDI3NDk2NmM2YWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU01lbnVTUEkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNNZW51U1BJLmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNyArMjksOSBA
QAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorV1RGX0VYVEVSTl9DX0JFR0lOCiAj
aW1wb3J0IDxBcHBLaXQvTlNNZW51X1ByaXZhdGUuaD4KK1dURl9FWFRFUk5fQ19FTkQKIAogI2Vs
c2UKIApAQCAtMzgsNiArNDAsMTAgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTlNNZW51
VHlwZSkgewogICAgIE5TTWVudVR5cGVDb250ZXh0TWVudSwKIH07CiAKK2VudW0geworICAgIE5T
UG9wVXBNZW51SXNQb3B1cEJ1dHRvbiA9IDB4NDAsCit9OworCiBAaW50ZXJmYWNlIE5TTWVudSAo
KQogKyAoTlNNZW51VHlwZSltZW51VHlwZUZvckV2ZW50OihOU0V2ZW50ICopZXZlbnQ7CiBAZW5k
CkBAIC01Niw0ICs2MiwxNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBOU01lbnVUeXBl
KSB7CiAKICNlbmRpZgogCi0jZW5kaWYKK3R5cGVkZWYgTlNVSW50ZWdlciBOU1BvcFVwTWVudUZs
YWdzOworCitXVEZfRVhURVJOX0NfQkVHSU4KKworZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgTlNQ
b3BVcE1lbnVQb3B1cEJ1dHRvbkJvdW5kczsKK2V4dGVybiBOU1N0cmluZyAqIGNvbnN0IE5TUG9w
VXBNZW51UG9wdXBCdXR0b25MYWJlbE9mZnNldDsKK2V4dGVybiBOU1N0cmluZyAqIGNvbnN0IE5T
UG9wVXBNZW51UG9wdXBCdXR0b25TaXplOworZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgTlNQb3BV
cE1lbnVQb3B1cEJ1dHRvbldpZGdldDsKKwordm9pZCBfTlNQb3BVcENhcmJvbk1lbnUzKE5TTWVu
dSAqLCBOU1dpbmRvdyAqLCBOU1ZpZXcgKm93bmVyVmlldywgTlNQb2ludCBzY3JlZW5Qb2ludCwg
TlNJbnRlZ2VyIGNoZWNrZWRJdGVtLCBOU0ZvbnQgKiwgQ0dGbG9hdCBtaW5XaWR0aCwgTlNTdHJp
bmcgKnJ1bkxvb3BNb2RlLCBOU1BvcFVwTWVudUZsYWdzLCBOU0RpY3Rpb25hcnkgKm9wdGlvbnMp
OworCitXVEZfRVhURVJOX0NfRU5ECisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNTY3JvbGxWaWV3U1BJLmggYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNTY3JvbGxWaWV3U1BJLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2IwZWY3YWY1OGUzMmU0OGJmMTdlMDYyMmJlODdiNWZkMGM0ZWRmOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaApA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxBcHBLaXQvTlNTY3JvbGxWaWV3X1ByaXZhdGUu
aD4KKworI2VuZGlmCisKK1dURl9FWFRFUk5fQ19CRUdJTgorCitDR0Zsb2F0IF9OU0VsYXN0aWNE
ZWx0YUZvclRpbWVEZWx0YShDR0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0aWFs
VmVsb2NpdHksIENHRmxvYXQgZWxhcHNlZFRpbWUpOworQ0dGbG9hdCBfTlNFbGFzdGljRGVsdGFG
b3JSZWJvdW5kRGVsdGEoQ0dGbG9hdCBkZWx0YSk7CitDR0Zsb2F0IF9OU1JlYm91bmREZWx0YUZv
ckVsYXN0aWNEZWx0YShDR0Zsb2F0IGRlbHRhKTsKKworV1RGX0VYVEVSTl9DX0VORApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmgKaW5kZXgg
MDQ5MmMxYWI2MTk1NmNiMTk2MWM5ZWE3YjI3NzE1NzM3ODFkNTUzMy4uMTg3MDQ5NmUwN2MyMGYy
ZWI5YWI1YWZhZDcxZTlkYjFkYWQxYTJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE0OSw0ICsxNDksMTAgQEAgdHlwZWRlZiBO
U1VJbnRlZ2VyIE5TT3ZlcmxheVNjcm9sbGVyU3RhdGU7CiAKICNlbmRpZgogCitXVEZfRVhURVJO
X0NfQkVHSU4KKworTlNTY3JvbGxlclN0eWxlIF9OU1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgp
OworCitXVEZfRVhURVJOX0NfRU5ECisKICNlbmRpZiAvLyBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL0RlZmF1bHRTZWFyY2hQcm92aWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvRGVmYXVsdFNlYXJjaFBy
b3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTE2ZDZhYmJiYjM1YWU4N2MyZDllYWJhMTY5YzcyNGI1
ZDNkZTZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0v
bWFjL0RlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZWZhdWx0U2VhcmNoUHJvdmlkZXIu
aCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgIkNGVXRpbGl0aWVzU1BJLmgiCisj
aW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KKworbmFtZXNwYWNlIFBB
TCB7CisKK1JldGFpblB0cjxDRlN0cmluZ1JlZj4gZGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxh
eU5hbWUoKQoreworICAgIGF1dG8gcHJvdmlkZXJJbmZvID0gYWRvcHRDRihfQ0ZXZWJTZXJ2aWNl
c0NvcHlQcm92aWRlckluZm8oa0NGV2ViU2VydmljZXNUeXBlV2ViU2VhcmNoLCBudWxscHRyKSk7
CisgICAgaWYgKCFwcm92aWRlckluZm8pCisgICAgICAgIHJldHVybiBDRlNUUigiR29vZ2xlIik7
CisKKyAgICBDRlR5cGVSZWYgZGlzcGxheU5hbWUgPSBDRkRpY3Rpb25hcnlHZXRWYWx1ZShwcm92
aWRlckluZm8uZ2V0KCksIGtDRldlYlNlcnZpY2VzUHJvdmlkZXJEZWZhdWx0RGlzcGxheU5hbWVL
ZXkpOworICAgIGlmICghZGlzcGxheU5hbWUpCisgICAgICAgIHJldHVybiBDRlNUUigiR29vZ2xl
Iik7CisKKyAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQoZGlzcGxheU5hbWUpID09IENGU3RyaW5nR2V0
VHlwZUlEKCkpOworICAgIHJldHVybiBhZG9wdENGKENGU3RyaW5nQ3JlYXRlQ29weShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCAoQ0ZTdHJpbmdSZWYpZGlzcGxheU5hbWUpKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgUEFMCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmNmY2ZkODM3Yjc2MDljNjQzMjdlNzU1OTgwZDZkNGZmOTkyZmJmNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9EZWZhdWx0U2Vh
cmNoUHJvdmlkZXIuaApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBQQUwgeworCitQQUxf
RVhQT1JUIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxh
eU5hbWUoKTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0v
bWFjL1BvcHVwTWVudS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVw
TWVudS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg0NzVhYjdiN2IyN2JkOWQwNjNjZWM5YmU1NTY2MWM5NTJlZjJh
ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMv
UG9wdXBNZW51LmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBQTEFURk9STShN
QUMpCisKKyNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KKworbmFtZXNwYWNlIFBBTCB7CisKK1BB
TF9FWFBPUlQgdm9pZCBwb3BVcE1lbnUoTlNNZW51ICosIE5TUG9pbnQgbG9jYXRpb24sIGZsb2F0
IHdpZHRoLCBOU1ZpZXcgKiwgaW50IHNlbGVjdGVkSXRlbSwgTlNGb250ICosIE5TQ29udHJvbFNp
emUsIGJvb2wgdXNlc0N1c3RvbUFwcGVhcmFuY2UpOworCit9CisKKyNlbmRpZiAvLyBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9w
dXBNZW51Lm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMjMzNTc1ZGMzNGU3NjFlODYxY2JiNDUyODdiNzMzZjJjZDRhYzIzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVw
TWVudS5tbQpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJQb3B1cE1lbnUuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAi
TlNNZW51U1BJLmgiCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0BpbnRlcmZhY2UgTlNN
ZW51IChXZWJQcml2YXRlKQorLSAoaWQpX21lbnVJbXBsOworQGVuZAorCitAaW50ZXJmYWNlIE5T
T2JqZWN0IChXZWJQcml2YXRlKQorLSAodm9pZClwb3BVcE1lbnU6KE5TTWVudSopbWVudSBhdExv
Y2F0aW9uOihOU1BvaW50KWxvY2F0aW9uIHdpZHRoOihDR0Zsb2F0KXdpZHRoIGZvclZpZXc6KE5T
VmlldyopdmlldyB3aXRoU2VsZWN0ZWRJdGVtOihOU0ludGVnZXIpc2VsZWN0ZWRJdGVtIHdpdGhG
b250OihOU0ZvbnQqKWZvbnQgd2l0aEZsYWdzOihOU1BvcFVwTWVudUZsYWdzKWZsYWdzIHdpdGhP
cHRpb25zOihOU0RpY3Rpb25hcnkgKilvcHRpb25zOworQGVuZAorCituYW1lc3BhY2UgUEFMIHsK
Kwordm9pZCBwb3BVcE1lbnUoTlNNZW51ICptZW51LCBOU1BvaW50IGxvY2F0aW9uLCBmbG9hdCB3
aWR0aCwgTlNWaWV3ICp2aWV3LCBpbnQgc2VsZWN0ZWRJdGVtLCBOU0ZvbnQgKmZvbnQsIE5TQ29u
dHJvbFNpemUgY29udHJvbFNpemUsIGJvb2wgdXNlc0N1c3RvbUFwcGVhcmFuY2UpCit7CisgICAg
TlNSZWN0IGFkanVzdGVkUG9wdXBCb3VuZHMgPSBbdmlldy53aW5kb3cgY29udmVydFJlY3RUb1Nj
cmVlbjpbdmlldyBjb252ZXJ0UmVjdDp2aWV3LmJvdW5kcyB0b1ZpZXc6bmlsXV07CisjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgaWYgKGNvbnRyb2xTaXplICE9IE5TTWlu
aUNvbnRyb2xTaXplKSB7CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIGFk
anVzdGVkUG9wdXBCb3VuZHMub3JpZ2luLnggLT0gMzsKKyAgICAgICAgYWRqdXN0ZWRQb3B1cEJv
dW5kcy5vcmlnaW4ueSAtPSAxOworICAgICAgICBhZGp1c3RlZFBvcHVwQm91bmRzLnNpemUud2lk
dGggKz0gNjsKKyAgICB9CisKKyAgICAvLyBUaGVzZSBudW1iZXJzIHdlcmUgZXh0cmFjdGVkIGZy
b20gdmlzdWFsIGluc3BlY3Rpb24gYXMgdGhlIG1lbnUgYW5pbWF0ZXMgc2h1dC4KKyAgICBOU1Np
emUgbGFiZWxPZmZzZXQgPSBOU01ha2VTaXplKDExLCAxKTsKKyAgICBpZiAobWVudS51c2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uID09IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblJp
Z2h0VG9MZWZ0KQorICAgICAgICBsYWJlbE9mZnNldCA9IE5TTWFrZVNpemUoMjQsIDEpOworCisg
ICAgYXV0byBvcHRpb25zID0gYWRvcHROUyhbQHsKKyAgICAgICAgTlNQb3BVcE1lbnVQb3B1cEJ1
dHRvbkJvdW5kcyA6IFtOU1ZhbHVlIHZhbHVlV2l0aFJlY3Q6YWRqdXN0ZWRQb3B1cEJvdW5kc10s
CisgICAgICAgIE5TUG9wVXBNZW51UG9wdXBCdXR0b25MYWJlbE9mZnNldCA6IFtOU1ZhbHVlIHZh
bHVlV2l0aFNpemU6bGFiZWxPZmZzZXRdLAorICAgICAgICBOU1BvcFVwTWVudVBvcHVwQnV0dG9u
U2l6ZSA6IEAoY29udHJvbFNpemUpCisgICAgfSBtdXRhYmxlQ29weV0pOworCisgICAgaWYgKHVz
ZXNDdXN0b21BcHBlYXJhbmNlKQorICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6QCIiIGZvcktl
eTpOU1BvcFVwTWVudVBvcHVwQnV0dG9uV2lkZ2V0XTsKKworICAgIFtbbWVudSBfbWVudUltcGxd
IHBvcFVwTWVudTptZW51IGF0TG9jYXRpb246bG9jYXRpb24gd2lkdGg6d2lkdGggZm9yVmlldzp2
aWV3IHdpdGhTZWxlY3RlZEl0ZW06c2VsZWN0ZWRJdGVtIHdpdGhGb250OmZvbnQgd2l0aEZsYWdz
Oih1c2VzQ3VzdG9tQXBwZWFyYW5jZSA/IDAgOiBOU1BvcFVwTWVudUlzUG9wdXBCdXR0b24pIHdp
dGhPcHRpb25zOm9wdGlvbnMuZ2V0KCldOworfQorCit9IC8vIG5hbWVzcGFjZSBQQUwKKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQppbmRleCAxMjliNmUyZDUwZDUyMTZkYjVh
NDY4NzY2YzE0ZmQ4MmVhNTNiYzc3Li4xMmRkOGE3OGVmNDIxMWQ1MWI1N2ZlMGU4MWJlNDBmZTMw
Y2EyZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6
ZWRTdHJpbmdzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9j
YWxpemVkU3RyaW5nc0NvY29hLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDE1ICsyMywxNiBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkxv
Y2FsaXplZFN0cmluZ3MuaCIKIAotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVk
ZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+
Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0ICJOb3RJbXBsZW1lbnRl
ZC5oIgorI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCA8cGFsL3N5
c3RlbS9tYWMvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmg+CisjaW1wb3J0IDx3dGYvQXNzZXJ0aW9u
cy5oPgorI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTY2LDcgKzY3LDcgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3Bv
dGxpZ2h0KCkKIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpCiB7Ci0gICAg
YXV0byBzZWFyY2hQcm92aWRlck5hbWUgPSBhZG9wdENGKHdrQ29weURlZmF1bHRTZWFyY2hQcm92
aWRlckRpc3BsYXlOYW1lKCkpOworICAgIGF1dG8gc2VhcmNoUHJvdmlkZXJOYW1lID0gUEFMOjpk
ZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpOwogICAgIHJldHVybiBmb3JtYXRMb2Nh
bGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiU2VhcmNoIHdpdGggJUAiLCAiU2VhcmNoIHdpdGgg
c2VhcmNoIHByb3ZpZGVyIGNvbnRleHQgbWVudSBpdGVtIHdpdGggcHJvdmlkZXIgbmFtZSBpbnNl
cnRlZCIpLCBzZWFyY2hQcm92aWRlck5hbWUuZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQppbmRleCBlZTNlNTM3ZmI4
YzJiNjg3MGU2MWRmZDIzOTc2MDdlYzdmMWY0YjFhLi5kMzc5ZTI0NzRkMTY2NjU0YTRjMTI5Y2Nj
YjBmMWVkZTNlNjMyNWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9TY3JvbGxDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1Njcm9sbENvbnRyb2xsZXIubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDE0LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywyMCArMjMsMjQgQEAKICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiU2Nyb2xsQ29udHJvbGxlci5oIgorI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJTY3JvbGxDb250cm9sbGVyLmgiCiAKLSNpbmNsdWRlICJMYXlvdXRTaXplLmgiCi0jaW5jbHVk
ZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCi0jaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oIgotI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0VHJpZ2dlci5oIgotI2luY2x1ZGUgPHN5cy9z
eXNjdGwuaD4KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgorI2ltcG9ydCAiTGF5b3V0U2l6ZS5oIgorI2ltcG9ydCAiUGxhdGZvcm1XaGVlbEV2ZW50
LmgiCisjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0ICJXaGVlbEV2
ZW50VGVzdFRyaWdnZXIuaCIKKyNpbXBvcnQgPHN5cy9zeXNjdGwuaD4KKyNpbXBvcnQgPHN5cy90
aW1lLmg+CisjaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KIAogI2lmIEVOQUJMRShDU1NfU0NS
T0xMX1NOQVApCi0jaW5jbHVkZSAiU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUuaCIKLSNpbmNsdWRl
ICJTY3JvbGxhYmxlQXJlYS5oIgorI2ltcG9ydCAiU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUuaCIK
KyNpbXBvcnQgIlNjcm9sbGFibGVBcmVhLmgiCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykK
KyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2Nyb2xsVmlld1NQSS5oPgogI2VuZGlmCiAKICNpZiBF
TkFCTEUoUlVCQkVSX0JBTkRJTkcpIHx8IEVOQUJMRShDU1NfU0NST0xMX1NOQVApCkBAIC01Miwx
NyArNTYsMTcgQEAgc3RhdGljIGNvbnN0IGZsb2F0IHJ1YmJlcmJhbmRNaW5pbXVtUmVxdWlyZWRE
ZWx0YUJlZm9yZVN0cmV0Y2ggPSAxMDsKICNpZiBQTEFURk9STShNQUMpCiBzdGF0aWMgZmxvYXQg
ZWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKGZsb2F0IGluaXRpYWxQb3NpdGlvbiwgZmxvYXQgaW5p
dGlhbFZlbG9jaXR5LCBmbG9hdCBlbGFwc2VkVGltZSkKIHsKLSAgICByZXR1cm4gd2tOU0VsYXN0
aWNEZWx0YUZvclRpbWVEZWx0YShpbml0aWFsUG9zaXRpb24sIGluaXRpYWxWZWxvY2l0eSwgZWxh
cHNlZFRpbWUpOworICAgIHJldHVybiBfTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEoaW5pdGlh
bFBvc2l0aW9uLCBpbml0aWFsVmVsb2NpdHksIGVsYXBzZWRUaW1lKTsKIH0KIAogc3RhdGljIGZs
b2F0IGVsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YShmbG9hdCBkZWx0YSkKIHsKLSAgICByZXR1
cm4gd2tOU0VsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YShkZWx0YSk7CisgICAgcmV0dXJuIF9O
U0VsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YShkZWx0YSk7CiB9CiAKIHN0YXRpYyBmbG9hdCBy
ZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEoZmxvYXQgZGVsdGEpCiB7Ci0gICAgcmV0dXJuIHdr
TlNSZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEoZGVsdGEpOworICAgIHJldHVybiBfTlNSZWJv
dW5kRGVsdGFGb3JFbGFzdGljRGVsdGEoZGVsdGEpOwogfQogCiBzdGF0aWMgZmxvYXQgc2Nyb2xs
V2hlZWxNdWx0aXBsaWVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IGY0MjU3OTcwMTBkY2EyMzc3MGI4
ZmU0NjA1YmM0OWIwZjRkNjA4YTAuLmM2OTQ2ZDZkZmQzYmNlM2ExZjg2MjRhMzk0YmM2ODY5ZDdk
MmMzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw3ICsyNCw2IEBACiAgKi8KIAogI2luY2x1ZGUgImNv
bmZpZy5oIgotCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNBLmgiCiAKICNpZiBVU0UoQ0EpCkBA
IC00Nyw2ICs0Niw3IEBACiAjaW5jbHVkZSAiVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgi
CiAjaW5jbHVkZSA8UXVhcnR6Q29yZS9DQVRyYW5zZm9ybTNELmg+CiAjaW5jbHVkZSA8bGltaXRz
Lmg+CisjaW5jbHVkZSA8cGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oPgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC0yOTg4LDcgKzI5ODgsNyBAQCBib29sIEdyYXBoaWNz
TGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5
ZnJhbWVWYWx1ZQogICAgICAgICAvLyBvbiBvciBiZWZvcmUgU25vdyBMZW9wYXJkLgogICAgICAg
ICAvLyBGSVhNRTogVGhpcyBmaXggaGFzIG5vdCBiZWVuIGFkZGVkIHRvIFF1YXJ0ekNvcmUgb24g
V2luZG93cyB5ZXQgKDxyZGFyOi8vcHJvYmxlbS85MTEyMjMzPikgc28gd2UgZXhwZWN0IHRoZQog
ICAgICAgICAvLyByZXZlcnNlZCBhbmltYXRpb24gYmVoYXZpb3IKLSAgICAgICAgc3RhdGljIGJv
b2wgZXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCA9IHdrRXhlY3V0YWJs
ZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCgpOworICAgICAgICBzdGF0aWMgYm9vbCBl
eGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkID0gIV9DRkV4ZWN1dGFibGVM
aW5rZWRPbk9yQWZ0ZXIoQ0ZTeXN0ZW1WZXJzaW9uTGlvbik7CiAgICAgICAgIGlmICghZXhlY3V0
YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCkKICAgICAgICAgICAgIHJldmVyc2VB
bmltYXRpb25MaXN0ID0gZmFsc2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
Q3Vyc29yTWFjLm1tCmluZGV4IGFhMzQ1ZTg4ZTQ4MTE4YzQ2ODdiOWVlZmJmYzczMjE4ZGM0NzA3
MGMuLjQxNzJlMjIyNjhjM2RjNDFkYTU2MGU0ZTRjMjhmYzY3Y2U4MmMxZDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2ICsyNyw4IEBA
CiAjaW1wb3J0ICJDdXJzb3IuaCIKIAogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5o
IgorI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9ISVNlcnZp
Y2VzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogCkBAIC0zNyw2ICszOSwxMzkgQEAgQGltcGxlbWVudGF0aW9u
IFdlYkNvcmVDdXJzb3JCdW5kbGUKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAor
c3RhdGljIE5TQ3Vyc29yICpidXN5QnV0Q2xpY2thYmxlTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJz
b3IgKm1ha2VBbGlhc05TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICptb3ZlTlNDdXJzb3I7Citz
dGF0aWMgTlNDdXJzb3IgKnJlc2l6ZUVhc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVz
aXplRWFzdFdlc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplTm9ydGhOU0N1cnNv
cjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplTm9ydGhTb3V0aE5TQ3Vyc29yOworc3RhdGljIE5T
Q3Vyc29yICpyZXNpemVOb3J0aGVhc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXpl
Tm9ydGhlYXN0U291dGh3ZXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRo
d2VzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVOb3J0aHdlc3RTb3V0aGVhc3RO
U0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplU291dGhOU0N1cnNvcjsKK3N0YXRpYyBO
U0N1cnNvciAqcmVzaXplU291dGhlYXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6
ZVNvdXRod2VzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVXZXN0TlNDdXJzb3I7
CisKK3N0YXRpYyBOU0N1cnNvciAqY2VsbE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpoZWxw
TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnpvb21Jbk5TQ3Vyc29yOworc3RhdGljIE5TQ3Vy
c29yICp6b29tT3V0TlNDdXJzb3I7CisKK3N0YXRpYyBOU0ludGVnZXIgV0tDb3JlQ3Vyc29yX2Nv
cmVDdXJzb3JUeXBlKGlkIHNlbGYsIFNFTCkKK3sKKyAgICBpZiAoc2VsZiA9PSBidXN5QnV0Q2xp
Y2thYmxlTlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvckJ1c3lCdXRDbGlja2Fi
bGU7CisgICAgaWYgKHNlbGYgPT0gbWFrZUFsaWFzTlNDdXJzb3IpCisgICAgICAgIHJldHVybiBr
Q29yZUN1cnNvck1ha2VBbGlhczsKKyAgICBpZiAoc2VsZiA9PSBtb3ZlTlNDdXJzb3IpCisgICAg
ICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd01vdmU7CisgICAgaWYgKHNlbGYgPT0gcmVzaXpl
RWFzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVFYXN0
OworICAgIGlmIChzZWxmID09IHJlc2l6ZUVhc3RXZXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVy
biBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZUVhc3RXZXN0OworICAgIGlmIChzZWxmID09IHJlc2l6
ZU5vcnRoTlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5v
cnRoOworICAgIGlmIChzZWxmID09IHJlc2l6ZU5vcnRoU291dGhOU0N1cnNvcikKKyAgICAgICAg
cmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhTb3V0aDsKKyAgICBpZiAoc2VsZiA9
PSByZXNpemVOb3J0aGVhc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2lu
ZG93UmVzaXplTm9ydGhFYXN0OworICAgIGlmIChzZWxmID09IHJlc2l6ZU5vcnRoZWFzdFNvdXRo
d2VzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0
aEVhc3RTb3V0aFdlc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGh3ZXN0TlNDdXJzb3Ip
CisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoV2VzdDsKKyAgICBp
ZiAoc2VsZiA9PSByZXNpemVOb3J0aHdlc3RTb3V0aGVhc3ROU0N1cnNvcikKKyAgICAgICAgcmV0
dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0U291dGhFYXN0OworICAgIGlmIChz
ZWxmID09IHJlc2l6ZVNvdXRoTlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldp
bmRvd1Jlc2l6ZVNvdXRoOworICAgIGlmIChzZWxmID09IHJlc2l6ZVNvdXRoZWFzdE5TQ3Vyc29y
KQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aEVhc3Q7CisgICAg
aWYgKHNlbGYgPT0gcmVzaXplU291dGh3ZXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29y
ZUN1cnNvcldpbmRvd1Jlc2l6ZVNvdXRoV2VzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVXZXN0
TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZVdlc3Q7Cisg
ICAgaWYgKHNlbGYgPT0gY2VsbE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JD
ZWxsOworICAgIGlmIChzZWxmID09IGhlbHBOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3Jl
Q3Vyc29ySGVscDsKKyAgICBpZiAoc2VsZiA9PSB6b29tSW5OU0N1cnNvcikKKyAgICAgICAgcmV0
dXJuIGtDb3JlQ3Vyc29yWm9vbUluOworICAgIGlmIChzZWxmID09IHpvb21PdXROU0N1cnNvcikK
KyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yWm9vbU91dDsKKyAgICAKKyAgICByZXR1cm4gTlNO
b3RGb3VuZDsKK30KKworc3RhdGljIENsYXNzIGNyZWF0ZUNvcmVDdXJzb3JDbGFzcyh2b2lkKQor
eworICAgIENsYXNzIGNvcmVDdXJzb3JDbGFzcyA9IG9iamNfYWxsb2NhdGVDbGFzc1BhaXIoW05T
Q3Vyc29yIGNsYXNzXSwgIldLQ29yZUN1cnNvciIsIDApOworICAgIFNFTCBjb3JlQ3Vyc29yVHlw
ZSA9IE5TU2VsZWN0b3JGcm9tU3RyaW5nKEAiX2NvcmVDdXJzb3JUeXBlIik7CisgICAgY2xhc3Nf
YWRkTWV0aG9kKGNvcmVDdXJzb3JDbGFzcywgY29yZUN1cnNvclR5cGUsIChJTVApV0tDb3JlQ3Vy
c29yX2NvcmVDdXJzb3JUeXBlLCBtZXRob2RfZ2V0VHlwZUVuY29kaW5nKGNsYXNzX2dldEluc3Rh
bmNlTWV0aG9kKFtOU0N1cnNvciBjbGFzc10sIGNvcmVDdXJzb3JUeXBlKSkpOworICAgIG9iamNf
cmVnaXN0ZXJDbGFzc1BhaXIoY29yZUN1cnNvckNsYXNzKTsKKyAgICByZXR1cm4gY29yZUN1cnNv
ckNsYXNzOworfQorCitzdGF0aWMgQ2xhc3MgY29yZUN1cnNvckNsYXNzKHZvaWQpCit7CisgICAg
Q2xhc3MgY29yZUN1cnNvckNsYXNzID0gb2JqY19sb29rVXBDbGFzcygiV0tDb3JlQ3Vyc29yIik7
CisgICAgaWYgKCFjb3JlQ3Vyc29yQ2xhc3MpCisgICAgICAgIGNvcmVDdXJzb3JDbGFzcyA9IGNy
ZWF0ZUNvcmVDdXJzb3JDbGFzcygpOworICAgIHJldHVybiBjb3JlQ3Vyc29yQ2xhc3M7Cit9CisK
K3N0YXRpYyBOU0N1cnNvciAqY3Vyc29yKGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgTlNDdXJz
b3IgKipzbG90ID0gMDsKKyAgICAKKyAgICBpZiAoIXN0cmNtcChuYW1lLCAiQnVzeUJ1dENsaWNr
YWJsZSIpKQorICAgICAgICBzbG90ID0gJmJ1c3lCdXRDbGlja2FibGVOU0N1cnNvcjsKKyAgICBl
bHNlIGlmICghc3RyY21wKG5hbWUsICJNYWtlQWxpYXMiKSkKKyAgICAgICAgc2xvdCA9ICZtYWtl
QWxpYXNOU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJNb3ZlIikpCisgICAg
ICAgIHNsb3QgPSAmbW92ZU5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJl
c2l6ZUVhc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVFYXN0TlNDdXJzb3I7CisgICAgZWxz
ZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplRWFzdFdlc3QiKSkKKyAgICAgICAgc2xvdCA9ICZy
ZXNpemVFYXN0V2VzdE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6
ZU5vcnRoIikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplTm9ydGhOU0N1cnNvcjsKKyAgICBlbHNl
IGlmICghc3RyY21wKG5hbWUsICJSZXNpemVOb3J0aFNvdXRoIikpCisgICAgICAgIHNsb3QgPSAm
cmVzaXplTm9ydGhTb3V0aE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJl
c2l6ZU5vcnRoZWFzdCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZU5vcnRoZWFzdE5TQ3Vyc29y
OworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZU5vcnRoZWFzdFNvdXRod2VzdCIp
KQorICAgICAgICBzbG90ID0gJnJlc2l6ZU5vcnRoZWFzdFNvdXRod2VzdE5TQ3Vyc29yOworICAg
IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZU5vcnRod2VzdCIpKQorICAgICAgICBzbG90
ID0gJnJlc2l6ZU5vcnRod2VzdE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwg
IlJlc2l6ZU5vcnRod2VzdFNvdXRoZWFzdCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZU5vcnRo
d2VzdFNvdXRoZWFzdE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6
ZVNvdXRoIikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplU291dGhOU0N1cnNvcjsKKyAgICBlbHNl
IGlmICghc3RyY21wKG5hbWUsICJSZXNpemVTb3V0aGVhc3QiKSkKKyAgICAgICAgc2xvdCA9ICZy
ZXNpemVTb3V0aGVhc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNp
emVTb3V0aHdlc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVTb3V0aHdlc3ROU0N1cnNvcjsK
KyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVXZXN0IikpCisgICAgICAgIHNsb3Qg
PSAmcmVzaXplV2VzdE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIkNlbGwi
KSkKKyAgICAgICAgc2xvdCA9ICZjZWxsTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChu
YW1lLCAiSGVscCIpKQorICAgICAgICBzbG90ID0gJmhlbHBOU0N1cnNvcjsKKyAgICBlbHNlIGlm
ICghc3RyY21wKG5hbWUsICJab29tSW4iKSkKKyAgICAgICAgc2xvdCA9ICZ6b29tSW5OU0N1cnNv
cjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJab29tT3V0IikpCisgICAgICAgIHNsb3Qg
PSAmem9vbU91dE5TQ3Vyc29yOworICAgIAorICAgIGlmICghc2xvdCkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKyAgICAKKyAgICBpZiAoISpzbG90KQorICAgICAgICAqc2xvdCA9IFtbY29yZUN1cnNv
ckNsYXNzKCkgYWxsb2NdIGluaXRdOworICAgIHJldHVybiAqc2xvdDsKK30KIAogLy8gU2ltcGxl
IE5TQ3Vyc29yIGNhbGxzIHNob3VsZG4ndCBuZWVkIHByb3RlY3Rpb24sCiAvLyBidXQgY3JlYXRp
bmcgYSBjdXJzb3Igd2l0aCBhIGJhZCBpbWFnZSBtaWdodCB0aHJvdy4KQEAgLTEwMyw3MiArMjM4
LDcyIEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OldhaXQ6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSB3a0N1cnNvcigiQnVzeUJ1dENsaWNrYWJsZSIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vy
c29yID0gY3Vyc29yKCJCdXN5QnV0Q2xpY2thYmxlIik7CiAgICAgICAgIGJyZWFrOwogCiAgICAg
Y2FzZSBDdXJzb3I6OkhlbHA6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigi
SGVscCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJIZWxwIik7CiAgICAg
ICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6Ok1vdmU6CiAgICAgY2FzZSBDdXJzb3I6Ok1p
ZGRsZVBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiTW92ZSIp
OworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJNb3ZlIik7CiAgICAgICAgIGJy
ZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OkVhc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OkVh
c3RQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZUVh
c3QiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplRWFzdCIpOwog
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFJlc2l6ZToKICAgICBjYXNl
IEN1cnNvcjo6Tm9ydGhQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJz
b3IoIlJlc2l6ZU5vcnRoIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJl
c2l6ZU5vcnRoIik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoRWFz
dFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhFYXN0UGFubmluZzoKLSAgICAgICAgbV9w
bGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aGVhc3QiKTsKKyAgICAgICAgbV9w
bGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplTm9ydGhlYXN0Iik7CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoV2VzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6
Tm9ydGhXZXN0UGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJS
ZXNpemVOb3J0aHdlc3QiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVz
aXplTm9ydGh3ZXN0Iik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OlNvdXRo
UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpTb3V0aFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZv
cm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplU291dGgiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1
cnNvciA9IGN1cnNvcigiUmVzaXplU291dGgiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl
IEN1cnNvcjo6U291dGhFYXN0UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpTb3V0aEVhc3RQYW5u
aW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZVNvdXRoZWFz
dCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVTb3V0aGVhc3Qi
KTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6U291dGhXZXN0UmVzaXplOgog
ICAgIGNhc2UgQ3Vyc29yOjpTb3V0aFdlc3RQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vy
c29yID0gd2tDdXJzb3IoIlJlc2l6ZVNvdXRod2VzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vy
c29yID0gY3Vyc29yKCJSZXNpemVTb3V0aHdlc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBj
YXNlIEN1cnNvcjo6V2VzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6V2VzdFBhbm5pbmc6Ci0g
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplV2VzdCIpOworICAgICAg
ICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVXZXN0Iik7CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoU291dGhSZXNpemU6Ci0gICAgICAgIG1fcGxhdGZv
cm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGhTb3V0aCIpOworICAgICAgICBtX3BsYXRm
b3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0aFNvdXRoIik7CiAgICAgICAgIGJyZWFrOwog
CiAgICAgY2FzZSBDdXJzb3I6OkVhc3RXZXN0UmVzaXplOgotICAgICAgICBtX3BsYXRmb3JtQ3Vy
c29yID0gd2tDdXJzb3IoIlJlc2l6ZUVhc3RXZXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSBjdXJzb3IoIlJlc2l6ZUVhc3RXZXN0Iik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2Fz
ZSBDdXJzb3I6Ok5vcnRoRWFzdFNvdXRoV2VzdFJlc2l6ZToKLSAgICAgICAgbV9wbGF0Zm9ybUN1
cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aGVhc3RTb3V0aHdlc3QiKTsKKyAgICAgICAgbV9w
bGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplTm9ydGhlYXN0U291dGh3ZXN0Iik7CiAgICAg
ICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoV2VzdFNvdXRoRWFzdFJlc2l6ZToK
LSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aHdlc3RTb3V0
aGVhc3QiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplTm9ydGh3
ZXN0U291dGhlYXN0Iik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OkNvbHVt
blJlc2l6ZToKQEAgLTE4NCw3ICszMTksNyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1D
dXJzb3IoKSBjb25zdAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpDZWxsOgot
ICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIkNlbGwiKTsKKyAgICAgICAgbV9w
bGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiQ2VsbCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNh
c2UgQ3Vyc29yOjpDb250ZXh0TWVudToKQEAgLTE5MiwxMSArMzI3LDExIEBAIHZvaWQgQ3Vyc29y
OjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2Fz
ZSBDdXJzb3I6OkFsaWFzOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIk1h
a2VBbGlhcyIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJNYWtlQWxpYXMi
KTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6UHJvZ3Jlc3M6Ci0gICAgICAg
IG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiQnVzeUJ1dENsaWNrYWJsZSIpOworICAgICAg
ICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJCdXN5QnV0Q2xpY2thYmxlIik7CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6Ok5vRHJvcDoKQEAgLTIxNiwxMSArMzUxLDExIEBA
IHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBDdXJzb3I6Olpvb21JbjoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9
IHdrQ3Vyc29yKCJab29tSW4iKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigi
Wm9vbUluIik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6Olpvb21PdXQ6Ci0g
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiWm9vbU91dCIpOworICAgICAgICBt
X3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJab29tT3V0Iik7CiAgICAgICAgIGJyZWFrOwogCiAg
ICAgY2FzZSBDdXJzb3I6OkdyYWI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAppbmRleCBhY2UyOThjMTJmODIwZWQ1MGQ2OWNm
ZWY2NTE2MzBkMDg0YzA1MmZlLi41NWZjYTEyODE2MmY2MzgyMDE1NmZhMjExYjI3YjdhZDJjZjE5
NTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmgKQEAgLTEyMyw3ICsxMjMsNiBAQCB0eXBlZGVmIGVudW0gewogICAgIHdr
UGF0dGVyblRpbGluZ0NvbnN0YW50U3BhY2luZwogfSB3a1BhdHRlcm5UaWxpbmc7CiAjaWYgIVBM
QVRGT1JNKElPUykKLWV4dGVybiB2b2lkICgqd2tEcmF3QmV6ZWxlZFRleHRBcmVhKShOU1JlY3Qs
IEJPT0wgZW5hYmxlZCk7CiBleHRlcm4gdm9pZCAoKndrRHJhd01lZGlhU2xpZGVyVHJhY2spKENH
Q29udGV4dFJlZiBjb250ZXh0LCBDR1JlY3QgcmVjdCwgZmxvYXQgdGltZUxvYWRlZCwgZmxvYXQg
Y3VycmVudFRpbWUsCiAgICAgZmxvYXQgZHVyYXRpb24sIHVuc2lnbmVkIHN0YXRlKTsKIGV4dGVy
biB2b2lkICgqd2tEcmF3TWVkaWFVSVBhcnQpKGludCBwYXJ0LCBDR0NvbnRleHRSZWYgY29udGV4
dCwgQ0dSZWN0IHJlY3QsIHVuc2lnbmVkIHN0YXRlKTsKQEAgLTEzNiwyNCArMTM1LDEwIEBAIGV4
dGVybiB2b2lkICgqd2tTZXRDb29raWVTdG9yYWdlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkoQk9P
TCk7CiBleHRlcm4gdm9pZCogd2tHZXRIeXBoZW5hdGlvbkxvY2F0aW9uQmVmb3JlSW5kZXg7CiAj
ZW5kaWYKIAotI2lmICFQTEFURk9STShJT1MpCi1leHRlcm4gYm9vbCAoKndrRXhlY3V0YWJsZVdh
c0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCkodm9pZCk7Ci0KLWV4dGVybiBDRlN0cmluZ1Jl
ZiAoKndrQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKSh2b2lkKTsKLQotZXh0
ZXJuIE5TQ3Vyc29yICooKndrQ3Vyc29yKShjb25zdCBjaGFyKik7Ci0jZW5kaWYgLy8gIVBMQVRG
T1JNKElPUykKLQogI2lmIFBMQVRGT1JNKElPUykKIGV4dGVybiB2b2lkICgqd2tTZXRMYXllckNv
bnRlbnRzU2NhbGUpKENBTGF5ZXIgKik7CiAjZW5kaWYKIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
X19DRlVSTFN0b3JhZ2VTZXNzaW9uKiBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmOwogCi0jaWYgIVBM
QVRGT1JNKElPUykKLWV4dGVybiBDR0Zsb2F0ICgqd2tOU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0
YSkoQ0dGbG9hdCBpbml0aWFsUG9zaXRpb24sIENHRmxvYXQgaW5pdGlhbFZlbG9jaXR5LCBDR0Zs
b2F0IGVsYXBzZWRUaW1lKTsKLWV4dGVybiBDR0Zsb2F0ICgqd2tOU0VsYXN0aWNEZWx0YUZvclJl
Ym91bmREZWx0YSkoQ0dGbG9hdCBkZWx0YSk7Ci1leHRlcm4gQ0dGbG9hdCAoKndrTlNSZWJvdW5k
RGVsdGFGb3JFbGFzdGljRGVsdGEpKENHRmxvYXQgZGVsdGEpOwotI2VuZGlmCi0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNl
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
bW0KaW5kZXggMzUwNzMxOWI1ZGQ4YTdlNzA2ZmU2MzEzZDA0MWYzODQ5MDgwMDhhMy4uOGZiYjFk
M2Q4Yzg4NjhjMjQ1NGYzMDljNjllMDY0MDBmM2RmZjk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTMwLDcg
KzMwLDYgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLXZvaWQgKCp3
a0RyYXdCZXplbGVkVGV4dEFyZWEpKE5TUmVjdCwgQk9PTCBlbmFibGVkKTsKIHZvaWQgKCp3a0Ry
YXdNZWRpYVNsaWRlclRyYWNrKShDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IHJlY3QsIGZs
b2F0IHRpbWVMb2FkZWQsIGZsb2F0IGN1cnJlbnRUaW1lLAogICAgIGZsb2F0IGR1cmF0aW9uLCB1
bnNpZ25lZCBzdGF0ZSk7CiBCT09MICgqd2tIaXRUZXN0TWVkaWFVSVBhcnQpKGludCBwYXJ0LCBD
R1JlY3QgYm91bmRzLCBDR1BvaW50IHBvaW50KTsKQEAgLTQyLDE0ICs0MSw0IEBAIHZvaWQgKCp3
a1BvcHVwTWVudSkoTlNNZW51KiwgTlNQb2ludCBsb2NhdGlvbiwgZmxvYXQgd2lkdGgsIE5TVmll
dyosIGludCBzZWxlY3RlCiAKIHZvaWQqIHdrR2V0SHlwaGVuYXRpb25Mb2NhdGlvbkJlZm9yZUlu
ZGV4OwogCi1ib29sICgqd2tFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJk
KSh2b2lkKTsKLQogQ0ZTdHJpbmdSZWYgKCp3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNw
bGF5TmFtZSkodm9pZCk7Ci0KLU5TQ3Vyc29yICooKndrQ3Vyc29yKShjb25zdCBjaGFyKik7Ci0K
LSNpZiAhUExBVEZPUk0oSU9TKQotQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVs
dGEpKENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGluaXRpYWxWZWxvY2l0eSwgQ0dG
bG9hdCBlbGFwc2VkVGltZSk7Ci1DR0Zsb2F0ICgqd2tOU0VsYXN0aWNEZWx0YUZvclJlYm91bmRE
ZWx0YSkoQ0dGbG9hdCBkZWx0YSk7Ci1DR0Zsb2F0ICgqd2tOU1JlYm91bmREZWx0YUZvckVsYXN0
aWNEZWx0YSkoQ0dGbG9hdCBkZWx0YSk7Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCA5M2U4ZDYxOTcxNzYxNzVkOGNjYjM2ZTE5Y2ZlZmJh
OWM0ODY1NWVmLi5mMDBjODM5N2I1OGE0MWFhOTMxMjhhMjI2YWFlNzVhNmZiOWFjNTRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC03NCw2ICs3NCw3
IEBACiAjaW1wb3J0IDxtYXRoLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQ
SS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0NvbG9yU1BJLmg+CisjaW1wb3J0IDxwYWwv
c3BpL21hYy9OU0NlbGxTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2hhcmluZ1NlcnZp
Y2VQaWNrZXJTUEkuaD4KICNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYv
UmV0YWluUHRyLmg+CkBAIC04ODQsNyArODg1LDcgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6YWRq
dXN0VGV4dEZpZWxkU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiwgY29uc3QgRWwK
IGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50VGV4dEFyZWEoY29uc3QgUmVuZGVyT2JqZWN0JiBv
LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgRmxvYXRSZWN0JiByKQogewogICAg
IExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbENvbnRleHQocGFpbnRJbmZvLmNvbnRl
eHQoKSk7Ci0gICAgd2tEcmF3QmV6ZWxlZFRleHRBcmVhKHIsIGlzRW5hYmxlZChvKSAmJiAhaXNS
ZWFkT25seUNvbnRyb2wobykpOworICAgIF9OU0RyYXdDYXJib25UaGVtZUxpc3RCb3gociwgaXNF
bmFibGVkKG8pICYmICFpc1JlYWRPbmx5Q29udHJvbChvKSwgWUVTLCBZRVMpOwogICAgIHJldHVy
biBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9t
YWMvTmV0d29ya1Byb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21h
Yy9OZXR3b3JrUHJvY2Vzc01hYy5tbQppbmRleCA2Zjc1Mjk1MmU3NmMzNDg3YjJhY2EwZDJkZTEx
MzVhYWMzZGFlZTg3Li4xMzhiZTZiOGZmYzc0Mzg4NTAxYTUxOGViYWYwMjQyZjlmMTI5MjVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vz
c01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJv
Y2Vzc01hYy5tbQpAQCAtNDIsNiArNDIsNyBAQAogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJm
YWNlLmg+CiAjaW1wb3J0IDxub3RpZnkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3Jr
U1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmg+CiAjaW1w
b3J0IDxzeXNleGl0cy5oPgogI2ltcG9ydCA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgog
I2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01OSw3ICs2MCw3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxp
emF0aW9uUGFyYW1ldGVyCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05h
bWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQogewogICAgIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIlQCBOZXR3b3JraW5nIiwgInZpc2libGUgbmFtZSBvZiB0
aGUgbmV0d29yayBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUu
IiksIChOU1N0cmluZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZV07Ci0gICAgV0tTZXRWaXNp
YmxlQXBwbGljYXRpb25OYW1lKChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUpOworICAgIF9M
U1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dl
dEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBfa0xTRGlzcGxheU5hbWVLZXksIChDRlN0cmluZ1Jl
ZilhcHBsaWNhdGlvbk5hbWUsIG51bGxwdHIpOwogfQogCiBzdGF0aWMgdm9pZCBvdmVycmlkZVN5
c3RlbVByb3hpZXMoY29uc3QgU3RyaW5nJiBodHRwUHJveHksIGNvbnN0IFN0cmluZyYgaHR0cHNQ
cm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2lu
UHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJv
Y2Vzc01hYy5tbQppbmRleCAyNGQyNmVkMWU2NzQzYWVjNTU3YThmNzY0ODliNjczODA0MTdmZDA1
Li5kYjBjMzA2ZjA2MmU3ZGY5M2UxMzlhZGRlMDQ2YjlhOGJmOTdkZjc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCkBAIC02
MjIsOSArNjIyLDkgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQcm9j
ZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGEKIHZvaWQgUGx1Z2luUHJvY2Vz
czo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9u
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1l
ID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX1NUUklORygiJUAgKCVAIEludGVy
bmV0IHBsdWctaW4pIiwgInZpc2libGUgbmFtZSBvZiB0aGUgcGx1Zy1pbiBob3N0IHByb2Nlc3Mu
IFRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgcGx1Zy1pbiBuYW1lIGFuZCB0aGUgc2Vjb25kIGFy
Z3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiIpLCBbWyhOU1N0cmluZyAqKW1fcGx1Z2lu
UGF0aCBsYXN0UGF0aENvbXBvbmVudF0gc3RyaW5nQnlEZWxldGluZ1BhdGhFeHRlbnNpb25dLCAo
TlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwotICAgIFdLU2V0VmlzaWJsZUFw
cGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lKTsKKyAgICBfTFNTZXRB
cHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRDdXJy
ZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5LCAoQ0ZTdHJpbmdSZWYpYXBw
bGljYXRpb25OYW1lLCBudWxscHRyKTsKICAgICBpZiAoIW1fcGx1Z2luQnVuZGxlSWRlbnRpZmll
ci5pc0VtcHR5KCkpCi0gICAgICAgIFdLU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xT
UGx1Z0luQnVuZGxlSWRlbnRpZmllcktleSwgbV9wbHVnaW5CdW5kbGVJZGVudGlmaWVyLmNyZWF0
ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgICAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9u
SXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwg
a0xTUGx1Z0luQnVuZGxlSWRlbnRpZmllcktleSwgbV9wbHVnaW5CdW5kbGVJZGVudGlmaWVyLmNy
ZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIG51bGxwdHIpOwogfQogCiB2b2lkIFBsdWdpblByb2Nlc3M6
OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1l
dGVycyYgcGFyYW1ldGVycywgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJv
eFBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21h
Yy9TdG9yYWdlUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvbWFj
L1N0b3JhZ2VQcm9jZXNzTWFjLm1tCmluZGV4IGMwMzg4NjBmOGYxNDNjMGRjZmZjOTNhNTI3NjZk
NjM0NTQ3NDFmMzkuLmUzOTY4MWFjNzRhZmVkMWQ2ZjQ5ZmJjOGU1MzA1YmZjNWM0MzZhNzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvbWFjL1N0b3JhZ2VQcm9jZXNz
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvbWFjL1N0b3JhZ2VQcm9j
ZXNzTWFjLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0
ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEku
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQ3LDcgKzQ4LDcgQEAgdm9pZCBT
dG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXIKIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNz
TmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCiB7CiAgICAgTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdX
aXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAIFN0b3JhZ2UiLCAidmlzaWJsZSBuYW1lIG9mIHRo
ZSBzdG9yYWdlIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4i
KSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsKLSAgICBXS1NldFZpc2li
bGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CisgICAgX0xT
U2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0
Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9rTFNEaXNwbGF5TmFtZUtleSwgKENGU3RyaW5nUmVm
KWFwcGxpY2F0aW9uTmFtZSwgbnVsbHB0cik7CiB9CiAKIHZvaWQgU3RvcmFnZVByb2Nlc3M6Omlu
aXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYgcGFyYW1ldGVycywgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBh
cmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
CmluZGV4IDk5ODBlMTVlMmY5OTI2NmFiMDliOGE1YTAxYmE3ZWQ3ODdhNWI1MDUuLjAxNTVjYjE4
YjE1MTQzOWEwZjEzYjIzYWFkYWFkNjE3NzFjNmU1OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTQsNiArOTQsNyBAQAogI2ltcG9ydCA8
cGFsL3NwaS9tYWMvTlNBY2Nlc3NpYmlsaXR5U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9O
U0FwcGxpY2F0aW9uU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0ltbWVkaWF0ZUFjdGlv
bkdlc3R1cmVSZWNvZ25pemVyU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1Njcm9sbGVy
SW1wU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1NwZWxsQ2hlY2tlclNQSS5oPgogI2lt
cG9ydCA8cGFsL3NwaS9tYWMvTlNUZXh0RmluZGVyU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21h
Yy9OU1dpbmRvd1NQSS5oPgpAQCAtMTI1OSw3ICsxMjYwLDcgQEAgc3RhdGljIE5TVHJhY2tpbmdB
cmVhT3B0aW9ucyB0cmFja2luZ0FyZWFPcHRpb25zKCkKIHsKICAgICAvLyBMZWdhY3kgc3R5bGUg
c2Nyb2xsYmFycyBoYXZlIGRlc2lnbiBkZXRhaWxzIHRoYXQgcmVseSBvbiB0cmFja2luZyB0aGUg
bW91c2UgYWxsIHRoZSB0aW1lLgogICAgIE5TVHJhY2tpbmdBcmVhT3B0aW9ucyBvcHRpb25zID0g
TlNUcmFja2luZ01vdXNlTW92ZWQgfCBOU1RyYWNraW5nTW91c2VFbnRlcmVkQW5kRXhpdGVkIHwg
TlNUcmFja2luZ0luVmlzaWJsZVJlY3QgfCBOU1RyYWNraW5nQ3Vyc29yVXBkYXRlOwotICAgIGlm
IChXS1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSkK
KyAgICBpZiAoX05TUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxl
TGVnYWN5KQogICAgICAgICBvcHRpb25zIHw9IE5TVHJhY2tpbmdBY3RpdmVBbHdheXM7CiAgICAg
ZWxzZQogICAgICAgICBvcHRpb25zIHw9IE5TVHJhY2tpbmdBY3RpdmVJbktleVdpbmRvdzsKQEAg
LTE5NDUsNyArMTk0Niw3IEBAIGJvb2wgV2ViVmlld0ltcGw6Om1pZ2h0QmVnaW5EcmFnV2hpbGVJ
bmFjdGl2ZSgpCiBib29sIFdlYlZpZXdJbXBsOjptaWdodEJlZ2luU2Nyb2xsV2hpbGVJbmFjdGl2
ZSgpCiB7CiAgICAgLy8gTGVnYWN5IHN0eWxlIHNjcm9sbGJhcnMgaGF2ZSBkZXNpZ24gZGV0YWls
cyB0aGF0IHJlbHkgb24gdHJhY2tpbmcgdGhlIG1vdXNlIGFsbCB0aGUgdGltZS4KLSAgICBpZiAo
V0tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kpCisg
ICAgaWYgKF9OU1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxl
Z2FjeSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KaW5k
ZXggN2Q2Y2IzZWRhMWQwODljODc0NWFiMzRhMDFjM2NiNmNmZWZlM2MyMS4uMTI0MWJkOGQ5ZTFi
NzAxN2YwOWQ0YzRjNGZmOWVhMzAxOWM3NmJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNpbXBvcnQgIldlYlBvcHVwSXRlbS5oIgog
I2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL21h
Yy9Qb3B1cE1lbnUuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTE2NSw3ICsx
NjYsNyBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IElu
dFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogICAgIH0KIAogICAgIFJlZjxXZWJQb3B1
cE1lbnVQcm94eU1hYz4gcHJvdGVjdCgqdGhpcyk7Ci0gICAgV0tQb3B1cE1lbnUobWVudSwgbG9j
YXRpb24sIHJvdW5kZihOU1dpZHRoKHJlY3QpKSwgZHVtbXlWaWV3LmdldCgpLCBzZWxlY3RlZElu
ZGV4LCBmb250LCBjb250cm9sU2l6ZSwgZGF0YS5oaWRlQXJyb3dzKTsKKyAgICBQQUw6OnBvcFVw
TWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRmKE5TV2lkdGgocmVjdCkpLCBkdW1teVZpZXcuZ2V0
KCksIHNlbGVjdGVkSW5kZXgsIGZvbnQsIGNvbnRyb2xTaXplLCBkYXRhLmhpZGVBcnJvd3MpOwog
CiAgICAgW21fcG9wdXAgZGlzbWlzc1BvcFVwXTsKICAgICBbZHVtbXlWaWV3IHJlbW92ZUZyb21T
dXBlcnZpZXddOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCmluZGV4IGEzMTIw
ZTYyNTM4M2JlYjJhZjcwNzAyNzBmNDdmODU4OTkzMGMyMDYuLmQyOTFhMTE0M2NjMzFlY2QxM2M4
ZWJiODIyNTMyY2E3ZWYxMWM5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMu
bW0KQEAgLTM4LDYgKzM4LDcgQEAKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgog
I2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9ISVRvb2xib3hT
UEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9ydCA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKQEAgLTE1
OCw3ICsxNTksNiBAQCBOUEJvb2wgTmV0c2NhcGVQbHVnaW46OmNvbnZlcnRQb2ludChkb3VibGUg
c291cmNlWCwgZG91YmxlIHNvdXJjZVksIE5QQ29vcmRpbmF0ZQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotCiBOUEVycm9yIE5ldHNjYXBlUGx1Z2luOjpwb3BVcENvbnRleHRNZW51KE5QTWVudSog
bnBNZW51KQogewogICAgIGlmICghbV9jdXJyZW50TW91c2VFdmVudCkKQEAgLTE2OCw3ICsxNjgs
NyBAQCBOUEVycm9yIE5ldHNjYXBlUGx1Z2luOjpwb3BVcENvbnRleHRNZW51KE5QTWVudSogbnBN
ZW51KQogICAgIGlmICghY29udmVydFBvaW50KG1fY3VycmVudE1vdXNlRXZlbnQtPmRhdGEubW91
c2UucGx1Z2luWCwgbV9jdXJyZW50TW91c2VFdmVudC0+ZGF0YS5tb3VzZS5wbHVnaW5ZLCBOUENv
b3JkaW5hdGVTcGFjZVBsdWdpbiwgc2NyZWVuWCwgc2NyZWVuWSwgTlBDb29yZGluYXRlU3BhY2VT
Y3JlZW4pKQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAotICAgIFdLUG9wdXBDb250
ZXh0TWVudShyZWludGVycHJldF9jYXN0PE5TTWVudSAqPihucE1lbnUpLCBOU01ha2VQb2ludChz
Y3JlZW5YLCBzY3JlZW5ZKSk7CisgICAgX05TUG9wVXBDYXJib25NZW51MyhyZWludGVycHJldF9j
YXN0PE5TTWVudSAqPihucE1lbnUpLCBuaWwsIG5pbCwgTlNNYWtlUG9pbnQoc2NyZWVuWCwgc2Ny
ZWVuWSksIC0xLCBuaWwsIDAsIG5pbCwgTlNQb3BVcE1lbnVUeXBlQ29udGV4dCwgbmlsKTsKICAg
ICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDkyN2M4YWM0M2QyNWQ2ZjdjN2I4
Nzg1NjY2NjA3YmQyNzNiM2ViYTEuLmFmY2ZmYTUxNzQ1YjI1YjllNzQwNDI4MzA3ZmFjZWQ1NDhk
ZWNhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIw
MTEsIDIwMTIsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04MSw2ICs4MSw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJm
YWNlLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgorI2ltcG9ydCA8
cGFsL3NwaS9tYWMvTlNNZW51U1BJLmg+CiAjaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KICNp
bXBvcnQgPHd0Zi9VVUlELmg+CiAKQEAgLTE1ODUsNyArMTU4Niw3IEBAIGJvb2wgUERGUGx1Z2lu
OjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQogICAg
IEludFBvaW50IHBvaW50ID0gZnJhbWVWaWV3LT5jb250ZW50c1RvU2NyZWVuKEludFJlY3QoZnJh
bWVWaWV3LT53aW5kb3dUb0NvbnRlbnRzKGV2ZW50LnBvc2l0aW9uKCkpLCBJbnRTaXplKCkpKS5s
b2NhdGlvbigpOwogICAgIAogICAgIGlmIChOU01lbnUgKm5zTWVudSA9IFttX3BkZkxheWVyQ29u
dHJvbGxlciBtZW51Rm9yRXZlbnQ6bnNFdmVudEZvcldlYk1vdXNlRXZlbnQoZXZlbnQpXSkgewot
ICAgICAgICBXS1BvcHVwQ29udGV4dE1lbnUobnNNZW51LCBwb2ludCk7CisgICAgICAgIF9OU1Bv
cFVwQ2FyYm9uTWVudTMobnNNZW51LCBuaWwsIG5pbCwgcG9pbnQsIC0xLCBuaWwsIDAsIG5pbCwg
TlNQb3BVcE1lbnVUeXBlQ29udGV4dCwgbmlsKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQppbmRleCA2ZDFkZDczMzkx
OWVkNGY0ODYzN2Q2N2NlNjE1ZGM2ZmQwNDcxMjI3Li5iOWFjMzk2YmIwMzZkNTVkNzEyYzIyNzQ4
MmFmYTNmYzk3NzMwOTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAt
MzcsMTcgKzM3LDEwIEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAg
ICAKICAgICBkaXNwYXRjaF9vbmNlKCZpbml0T25jZSwgXnsKICNpZiAhUExBVEZPUk0oSU9TKQot
ICAgICAgICBJTklUKERyYXdCZXplbGVkVGV4dEFyZWEpOwogICAgICAgICBJTklUKERyYXdNZWRp
YVNsaWRlclRyYWNrKTsKICAgICAgICAgSU5JVChEcmF3TWVkaWFVSVBhcnQpOwogICAgICAgICBJ
TklUKEhpdFRlc3RNZWRpYVVJUGFydCk7CiAgICAgICAgIElOSVQoTWVhc3VyZU1lZGlhVUlQYXJ0
KTsKLSAgICAgICAgSU5JVChFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJk
KTsKLSAgICAgICAgSU5JVChDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOwot
ICAgICAgICBJTklUKEN1cnNvcik7Ci0gICAgICAgIElOSVQoTlNFbGFzdGljRGVsdGFGb3JUaW1l
RGVsdGEpOwotICAgICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKTsKLSAg
ICAgICAgSU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7CiAjZW5kaWYKICAgICB9
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tCmluZGV4IDdjMzVkOGU5MGI3OTFjOTQyNjE5ZmRjZjc2NjAzYzliNDMwZWUwMmEuLjQz
Yjc5NjY2ZDE1MWU5ZGEyOTdhYzY5ZjJkMDlhZGY4MDIxMWRiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTk0LDcgKzE5
NCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxk
UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVyCiAgICAgICAgIGFwcGxpY2F0aW9uTmFtZSA9
IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAIFdlYiBJbnNwZWN0
b3IiLCAiVmlzaWJsZSBuYW1lIG9mIFdlYiBJbnNwZWN0b3IncyB3ZWIgcHJvY2Vzcy4gVGhlIGFy
Z3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiIpLCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJz
LnVpUHJvY2Vzc05hbWVdOwogICAgIGVsc2UKICAgICAgICAgYXBwbGljYXRpb25OYW1lID0gW05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX1NUUklORygiJUAgV2ViIENvbnRlbnQiLCAi
VmlzaWJsZSBuYW1lIG9mIHRoZSB3ZWIgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBs
aWNhdGlvbiBuYW1lLiIpLCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwot
ICAgIFdLU2V0VmlzaWJsZUFwcGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25O
YW1lKTsKKyAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vz
c2lvbklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5
LCAoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lLCBudWxscHRyKTsKICNlbmRpZgogfQogCkBA
IC0zOTQsNyArMzk0LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdlcygpCiAg
ICAgfQogCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQ
QVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgW2FjdGl2ZVBhZ2VVUkxzXSB7Ci0gICAg
ICAgIFdLU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oQ0ZTVFIoIkxTQWN0aXZlUGFnZVVz
ZXJWaXNpYmxlT3JpZ2luc0tleSIpLCAoX19icmlkZ2UgQ0ZBcnJheVJlZilhY3RpdmVQYWdlVVJM
cy5nZXQoKSk7CisgICAgICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0Rl
ZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBDRlNUUigiTFNB
Y3RpdmVQYWdlVXNlclZpc2libGVPcmlnaW5zS2V5IiksIChfX2JyaWRnZSBDRkFycmF5UmVmKWFj
dGl2ZVBhZ2VVUkxzLmdldCgpLCBudWxscHRyKTsKICAgICB9KTsKICNlbmRpZgogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0
Q29udGV4dE1lbnVEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHRE
ZWxlZ2F0ZXMvV2ViRGVmYXVsdENvbnRleHRNZW51RGVsZWdhdGUubW0KaW5kZXggMDI2NWJmMGM1
MWE5ZjE4NzE1OTY1NTVkNjkwN2Y5MDIzNzBlNzk1Ny4uNjM5MmFiMDUxZjMzOTI0MzNhMDA3MGQ0
YmZjZDY0MmJkNDU3MWEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVm
YXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0ZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRDb250ZXh0TWVu
dURlbGVnYXRlLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC01MSw2ICs1MSw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NLmg+
CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL21hYy9EZWZhdWx0U2VhcmNoUHJv
dmlkZXIuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBX
ZWJEZWZhdWx0VUlEZWxlZ2F0ZSAoV2ViQ29udGV4dE1lbnUpCkBAIC05MSw3ICs5Miw3IEBAIC0g
KE5TTWVudUl0ZW0gKiltZW51SXRlbVdpdGhUYWc6KGludCl0YWcgdGFyZ2V0OihpZCl0YXJnZXQg
cmVwcmVzZW50ZWRPYmplY3Q6KGlkCiAgICAgICAgICAgICBhY3Rpb24gPSBAc2VsZWN0b3IoX3Nl
YXJjaFdpdGhTcG90bGlnaHRGcm9tTWVudTopOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgV2ViTWVudUl0ZW1UYWdTZWFyY2hXZWI6IHsKLSAgICAgICAgICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gc2VhcmNoUHJvdmlkZXJOYW1lID0gYWRvcHRDRihXS0NvcHlEZWZhdWx0U2Vh
cmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgICAgIGF1dG8gc2VhcmNoUHJvdmlk
ZXJOYW1lID0gUEFMOjpkZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpOwogICAgICAg
ICAgICAgdGl0bGUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpVSV9TVFJJTkdfSU5URVJO
QUwoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0
IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJO
YW1lLmdldCgpXTsKICAgICAgICAgICAgIGFjdGlvbiA9IEBzZWxlY3Rvcihfc2VhcmNoV2l0aEdv
b2dsZUZyb21NZW51Oik7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5I
b3N0UHJveHkubW0KaW5kZXggMTliMzhhZTJlODM0MzI3ZGQ2NzMzODYxN2I2MTdlODk3ZDc2OGQ5
Yi4uMzg0YTU5MWVmZTE3ODI2MTllYTJkOGRkZWExNTAwZmQ5NWRmMmNkMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0
UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOC0yMDE3IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9G
cmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJU2VydmljZXNT
UEkuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBleHRlcm4gIkMiIHsKQEAg
LTExNyw3ICsxMTgsNyBAQCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5I
b3N0UHJveHkobWFjaF9wb3J0X3QgY2xpZW50UG9ydCwgbWFjaF9wbwogICAgIAogICAgIENGUnVu
TG9vcEFkZFNvdXJjZShDRlJ1bkxvb3BHZXRDdXJyZW50KCksIGRlYXRoUG9ydFNvdXJjZS5nZXQo
KSwga0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKICAgICAKLSAgICBtX2NsaWVudFBvcnRTb3VyY2Ug
PSBhZG9wdENGKFdLQ3JlYXRlTUlHU2VydmVyU291cmNlKChtaWdfc3Vic3lzdGVtX3QpJldLV2Vi
S2l0UGx1Z2luQ2xpZW50X3N1YnN5c3RlbSwgbV9jbGllbnRQb3J0KSk7CisgICAgbV9jbGllbnRQ
b3J0U291cmNlID0gYWRvcHRDRihNU0hDcmVhdGVNSUdTZXJ2ZXJTb3VyY2UobnVsbHB0ciwgMCwg
KG1pZ19zdWJzeXN0ZW1fdCkmV0tXZWJLaXRQbHVnaW5DbGllbnRfc3Vic3lzdGVtLCAwLCBtX2Ns
aWVudFBvcnQsIG51bGxwdHIpKTsKICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0
Q3VycmVudCgpLCBtX2NsaWVudFBvcnRTb3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BEZWZhdWx0TW9k
ZSk7CiAgICAgQ0ZSdW5Mb29wQWRkU291cmNlKENGUnVuTG9vcEdldEN1cnJlbnQoKSwgbV9jbGll
bnRQb3J0U291cmNlLmdldCgpLCAoQ0ZTdHJpbmdSZWYpTlNFdmVudFRyYWNraW5nUnVuTG9vcE1v
ZGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvUG9wdXBNZW51TWFjLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvUG9wdXBNZW51TWFjLm1tCmluZGV4IGNjNWY4MWRmZDY1NmZjOGU3MzVkMTg1N2Y1YWU4NTM4
ZDA3NGZlMTQuLjgxY2Y0Yzc1ZDIwOWNiY2YxYzQ3MWYxM2NlM2NlNGYwZjFiMTBjMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1l
bnVNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4
LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYWdl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BvcHVwTWVudUNsaWVudC5oPgogI2ltcG9ydCA8V2ViS2l0
U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUuaD4K
ICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwpAQCAtMjE3LDcgKzIxOCw3IEBAIHZvaWQgUG9wdXBNZW51TWFjOjpzaG93KGNvbnN0
IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogICAgICAgICBicmVhazsKICAg
ICB9CiAKLSAgICBXS1BvcHVwTWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRmKE5TV2lkdGgocikp
LCBkdW1teVZpZXcuZ2V0KCksIGluZGV4LCB0b05TRm9udChmb250KSwgY29udHJvbFNpemUsICFt
X2NsaWVudC0+bWVudVN0eWxlKCkuaGFzRGVmYXVsdEFwcGVhcmFuY2UoKSk7CisgICAgUEFMOjpw
b3BVcE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dpZHRoKHIpKSwgZHVtbXlWaWV3Lmdl
dCgpLCBpbmRleCwgdG9OU0ZvbnQoZm9udCksIGNvbnRyb2xTaXplLCAhbV9jbGllbnQtPm1lbnVT
dHlsZSgpLmhhc0RlZmF1bHRBcHBlYXJhbmNlKCkpOwogCiAgICAgW21fcG9wdXAgZGlzbWlzc1Bv
cFVwXTsKICAgICBbZHVtbXlWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNl
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50
ZXJmYWNlLm1tCmluZGV4IGJmNzE2Yjc1N2IwYzU5NzM3Zjg4MzEwMmVhNTA1ODU5MzAwMjM3ZWEu
LmE5OTI5OGJmNjgwZGFlYjMwN2I4NGIyMWFjNzA1NDA0NmQ4MzdkYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1J
bnRlcmZhY2UubW0KQEAgLTQzLDI0ICs0MywxMSBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50
ZXJmYWNlKHZvaWQpCiAgICAgICAgIHJldHVybjsKIAogI2lmICFQTEFURk9STShJT1MpCi0gICAg
SU5JVChEcmF3QmV6ZWxlZFRleHRBcmVhKTsKICAgICBJTklUKERyYXdNZWRpYVVJUGFydCk7CiAg
ICAgSU5JVChEcmF3TWVkaWFTbGlkZXJUcmFjayk7CiAgICAgSU5JVChIaXRUZXN0TWVkaWFVSVBh
cnQpOwogICAgIElOSVQoTWVhc3VyZU1lZGlhVUlQYXJ0KTsKICNlbmRpZgogCi0jaWYgIVBMQVRG
T1JNKElPUykKLSAgICBJTklUKEV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3Bh
cmQpOwotICAgIElOSVQoQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKTsKLSAg
ICBJTklUKEN1cnNvcik7Ci0jZW5kaWYKLQotI2lmICFQTEFURk9STShJT1MpCi0gICAgSU5JVChO
U0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YSk7Ci0gICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclJl
Ym91bmREZWx0YSk7Ci0gICAgSU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7Ci0j
ZW5kaWYKLQogICAgIGRpZEluaXQgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMjc0YTE2ODcwNTc0NTQ0MTRhYjkyOTc1
YTVjMDQ4YzYwZWU1YTU4YS4uYThjYzljMWRkOWM2NTU4N2RiYmI5MjI2YjE5YTM5YzQ5NGI4ZWJk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
CkBAIC0xMzEsNiArMTMxLDcgQEAKICNpbXBvcnQgPGRsZmNuLmg+CiAjaW1wb3J0IDxsaW1pdHM+
CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oPgorI2lt
cG9ydCA8cGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9t
YWMvTlNTcGVsbENoZWNrZXJTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TVmlld1NQSS5o
PgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaD4KQEAgLTQ2ODIsNyArNDY4Myw3
IEBAIC0gKHZvaWQpc2V0RGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3VyY2UKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFfcHJpdmF0ZS0+aW5zdGFsbGVkVHJhY2tpbmdBcmVh
KSB7CiAgICAgICAgIE5TVHJhY2tpbmdBcmVhT3B0aW9ucyBvcHRpb25zID0gTlNUcmFja2luZ01v
dXNlTW92ZWQgfCBOU1RyYWNraW5nTW91c2VFbnRlcmVkQW5kRXhpdGVkIHwgTlNUcmFja2luZ0lu
VmlzaWJsZVJlY3QgfCBOU1RyYWNraW5nQ3Vyc29yVXBkYXRlOwotICAgICAgICBpZiAoV0tSZWNv
bW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kKKyAgICAgICAg
aWYgKF9OU1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2Fj
eQogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICAgICAgICAgIHx8IFtbc2VsZiBf
d2ViVmlld10gX2Rhc2hib2FyZEJlaGF2aW9yOldlYkRhc2hib2FyZEJlaGF2aW9yQWx3YXlzU2Vu
ZE1vdXNlRXZlbnRzVG9BbGxXaW5kb3dzXQogI2VuZGlmCkBAIC02MzU0LDcgKzYzNTUsNyBAQCAt
ICh2b2lkKWF0dGFjaFJvb3RMYXllcjooQ0FMYXllciAqKWxheWVyCiAgICAgaWYgKFtbc2VsZiBf
d2ViVmlld10gX3Bvc3RzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlvbnNdKQogICAg
ICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRp
b25OYW1lOl9XZWJWaWV3RGlkU3RhcnRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTm90aWZpY2F0aW9u
IG9iamVjdDpbc2VsZiBfd2ViVmlld10gdXNlckluZm86bmlsXTsKIAotICAgIGlmIChXS0V4ZWN1
dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlTGlvbigpKQorICAgIGlmICghX0NGRXhlY3V0YWJsZUxp
bmtlZE9uT3JBZnRlcihDRlN5c3RlbVZlcnNpb25Nb3VudGFpbkxpb24pKQogICAgICAgICBbdmll
d0xheWVyIHNldEdlb21ldHJ5RmxpcHBlZDpZRVNdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYWQyOWE4MjI1Mjk4OWM2NmE2NWY2NTg5NGY0
ZTg2MTEzNTE5MWMzMC4uNGU4YjgyMTYxMWI4ODhkNDdlNjI4ZGRlZjlkM2JlYjU5ODUxOGYyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjA5LDYg
KzIwOSw3IEBACiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1l
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgorI2ltcG9ydCA8cGFsL3Nw
aS9jZi9DRlV0aWxpdGllc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU1RvdWNoQmFy
U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5o
PgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNSZXNwb25kZXJTUEkuaD4KQEAgLTI2MDksMTYgKzI2
MTAsMTYgQEAgLSAoaWQpX2Zvcm1EZWxlZ2F0ZUZvclNlbGVjdG9yOihTRUwpc2VsZWN0b3IKICNp
ZiAhUExBVEZPUk0oSU9TKQogLSAoQk9PTClfbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsK
IHsKLSAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhh
bihAImNvbS5hZG9iZS5BY3JvYmF0IiwgLTEsIDkuMCkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9u
Q2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5BY3JvYmF0LlBybyIsIC0xLCA5LjApCi0gICAgICAg
IHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuUmVhZGVyIiwgLTEsIDku
MCkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5kaXN0
aWxsZXIiLCAtMSwgOS4wKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAi
Y29tLmFkb2JlLkNvbnRyaWJ1dGUiLCAtMSwgNC4yKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25D
aGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLmRyZWFtd2VhdmVyLTkuMCIsIC0xLCA5LjEpCi0gICAg
ICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20ubWFjcm9tZWRpYS5maXJld29y
a3MiLCAtMSwgOS4xKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29t
LmFkb2JlLkluQ29weSIsIC0xLCA1LjEpCi0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVz
c1RoYW4oQCJjb20uYWRvYmUuSW5EZXNpZ24iLCAtMSwgNS4xKQotICAgICAgICB8fCBXS0FwcFZl
cnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLlNvdW5kYm9vdGgiLCAtMSwgMik7CisgICAg
c3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RS
KCJjb20uYWRvYmUuQWNyb2JhdCIpLCAtMSwgOS4wKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9u
Q2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLkFjcm9iYXQuUHJvIiksIC0xLCA5LjApCisg
ICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuUmVh
ZGVyIiksIC0xLCA5LjApCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENG
U1RSKCJjb20uYWRvYmUuZGlzdGlsbGVyIiksIC0xLCA5LjApCisgICAgICAgIHx8IF9DRkFwcFZl
cnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuQ29udHJpYnV0ZSIpLCAtMSwgNC4y
KQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2Jl
LmRyZWFtd2VhdmVyLTkuMCIpLCAtMSwgOS4xKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hl
Y2tMZXNzVGhhbihDRlNUUigiY29tLm1hY3JvbWVkaWEuZmlyZXdvcmtzIiksIC0xLCA5LjEpCisg
ICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuSW5D
b3B5IiksIC0xLCA1LjEpCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENG
U1RSKCJjb20uYWRvYmUuSW5EZXNpZ24iKSwgLTEsIDUuMSkKKyAgICAgICAgfHwgX0NGQXBwVmVy
c2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5Tb3VuZGJvb3RoIiksIC0xLCAyKTsK
IAogICAgIHJldHVybiBuZWVkc1F1aXJrOwogfQpAQCAtMjYyNiwxMyArMjYyNywxMyBAQCAtIChC
T09MKV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyawogLSAoQk9PTClfbmVlZHNMaW5rRWxl
bWVudFRleHRDU1NRdWlyawogewogICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSAhV2ViS2l0
TGlua2VkT25PckFmdGVyKFdFQktJVF9GSVJTVF9WRVJTSU9OX1dJVEhPVVRfTElOS19FTEVNRU5U
X1RFWFRfQ1NTX1FVSVJLKQotICAgICAgICAmJiBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAi
Y29tLmUtZnJvbnRpZXIuc2hhZGUxMCIsIC0xLCAxMC42KTsKKyAgICAgICAgJiYgX0NGQXBwVmVy
c2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5lLWZyb250aWVyLnNoYWRlMTAiKSwgLTEsIDEw
LjYpOwogICAgIHJldHVybiBuZWVkc1F1aXJrOwogfQogCiAtIChCT09MKV9uZWVkc0lzTG9hZGlu
Z0luQVBJU2Vuc2VRdWlyawogewotICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSBXS0FwcFZl
cnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFwcGxlLmlBZFByb2R1Y2VyIiwgLTEsIDIuMSk7Cisg
ICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENG
U1RSKCJjb20uYXBwbGUuaUFkUHJvZHVjZXIiKSwgLTEsIDIuMSk7CiAgICAgCiAgICAgcmV0dXJu
IG5lZWRzUXVpcms7CiB9CkBAIC0yNjQ1LDcgKzI2NDYsNyBAQCAtIChCT09MKV9uZWVkc0tleWJv
YXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcwogCiAtIChCT09MKV9uZWVkc0ZyYW1lTG9hZERl
bGVnYXRlUmV0YWluUXVpcmsKIHsKLSAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gV0tBcHBW
ZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5lcXVpbnV4LmlTYWxlNSIsIC0xLCA1LjYpOyAgICAK
KyAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4o
Q0ZTVFIoImNvbS5lcXVpbnV4LmlTYWxlNSIpLCAtMSwgNS42KTsKICAgICByZXR1cm4gbmVlZHNR
dWlyazsKIH0KIApAQCAtMjkyNyw3ICsyOTI4LDcgQEAgLSAodm9pZClfcHJlZmVyZW5jZXNDaGFu
Z2VkOihXZWJQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCiAgICAgc2V0dGluZ3Muc2V0TmVlZHNB
ZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsoW3NlbGYgX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1
aXJrXSk7CiAgICAgc2V0dGluZ3Muc2V0VHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQo
W3NlbGYgX25lZWRzTGlua0VsZW1lbnRUZXh0Q1NTUXVpcmtdKTsKICAgICBzZXR0aW5ncy5zZXRO
ZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcyhbc2VsZiBfbmVlZHNLZXlib2Fy
ZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3NdKTsKLSAgICBzZXR0aW5ncy5zZXRFbmZvcmNlQ1NT
TUlNRVR5cGVJbk5vUXVpcmtzTW9kZSghV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5h
cHBsZS5pV2ViIiwgLTEsIDIuMSkpOworICAgIHNldHRpbmdzLnNldEVuZm9yY2VDU1NNSU1FVHlw
ZUluTm9RdWlya3NNb2RlKCFfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFw
cGxlLmlXZWIiKSwgLTEsIDIuMSkpOwogICAgIHNldHRpbmdzLnNldE5lZWRzSXNMb2FkaW5nSW5B
UElTZW5zZVF1aXJrKFtzZWxmIF9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlya10pOwogICAg
IHNldHRpbmdzLnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShbcHJlZmVyZW5jZXMgdGV4dEFyZWFz
QXJlUmVzaXphYmxlXSk7CiAgICAgc2V0dGluZ3Muc2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9u
c0VuYWJsZWQoW3ByZWZlcmVuY2VzIGV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkXSk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321011</attachid>
            <date>2017-09-16 14:13:10 -0700</date>
            <delta_ts>2017-09-16 14:33:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177029-20170916141309.patch</filename>
            <type>text/plain</type>
            <size>88813</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRhMDI0YTAxYjFiZjQy
OGFjOWFmNzIwZmJiOGY3NjQyNmRlZGM1OC4uNjIzNWVmZjkxMDU2NGMwOGFkZjRiNGIwNTk0OGQz
NTY2NmY5ZDdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQgbWlzY2Vs
bGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWc6IFVzZWQgLWZvcmNlX2xvYWQgb2YgbGliUEFMIGluc3RlYWQgb2YgLU9iakMuIFRo
aXMgZm9yY2VzCisgICAgICAgIHRoZSBsaW5rZXIgdG8gbG9hZCBib3RoIE9iamVjdGl2ZS1DIGFu
ZCBDIFBBTCBzeW1ib2xzIGluIFdlYkNvcmUuIFRoaXMgY2hhbmdlIGlzIG5lZWRlZCBmb3IKKyAg
ICAgICAgUEFMOjpwb3BVcE1lbnUoKSwgd2hpY2ggaXMgdXNlZCBieSBXZWJLaXQgYW5kIFdlYktp
dExlZ2FjeSBidXQgbm90IFdlYkNvcmUuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTG9jYWxp
emVkU3RyaW5nc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
U2VhcmNoV2ViKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1t
OgorICAgICAgICAoV2ViQ29yZTo6ZWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKToKKyAgICAgICAg
KFdlYkNvcmU6OmVsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpyZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6V0tDb3JlQ3Vy
c29yX2NvcmVDdXJzb3JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvcmVDdXJzb3JD
bGFzcyk6CisgICAgICAgIChXZWJDb3JlOjpjb3JlQ3Vyc29yQ2xhc3MpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1D
dXJzb3IgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50VGV4dEFyZWEpOgorCiAyMDE3LTA5LTE1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgY2Fs
bGluZyBTdHJpbmc6OmZvcm1hdCgpIGluIFBsYXRmb3JtQ0FGaWx0ZXJzOjpzZXRGaWx0ZXJzT25M
YXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAyNTIzYjY4MjM1MDRlZWM3Zjc4NzBhMGEyNjBk
MjMwNTFhZTNiYjkzLi5iODc3NTQyNzc3YzJiYjVlMmE1NjI2Mzg2ZjE4MTZiNjk5NWE2YTBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNy0wOS0xNSAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gVXBsb2FkIG1pc2NlbGxhbmVv
dXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmg6CisgICAgICAgICogcGFs
L3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJLmguCisgICAgICAgICogcGFsL3Nw
aS9tYWMvSElTZXJ2aWNlc1NQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TQ2VsbFNQSS5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQ
SS5oLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TTWVudVNQSS5oOgorICAgICAgICAqIHBhbC9z
cGkvbWFjL05TU2Nyb2xsVmlld1NQSS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TU2Ny
b2xsZXJJbXBTUEkuaDoKKyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92
aWRlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRp
bGl0aWVzU1BJLmguCisgICAgICAgIChQQUw6OmRlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlO
YW1lKToKKyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5o
LgorICAgICAgICAqIHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBh
bC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbTogQWRkZWQuCisgICAgICAgIChQQUw6OnBvcFVwTWVu
dSk6CisKIDIwMTctMDktMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IHRoZSBtYWNPUyBDTWFrZSBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNDAyZjFl
M2M4NjM5ZGJmZDIyY2Q1OWI4ZDY2YzAxNjg5OTZlMDYxLi42M2I5ZGFhYThhMTMzOTk1ZGI5OTgy
NjZlYjVhZGEwODE2OGQ3MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA5LTE1
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQg
bWlzY2VsbGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21h
Yy9OZXR3b3JrUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1
Z2luUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlh
bGl6ZVByb2Nlc3NOYW1lKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVBy
b2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXpl
UHJvY2Vzc05hbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToK
KyAgICAgICAgKFdlYktpdDo6dHJhY2tpbmdBcmVhT3B0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjptaWdodEJlZ2luU2Nyb2xsV2hpbGVJbmFjdGl2ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpwb3BVcENvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1
Z2luOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29y
ZVN5c3RlbUludGVyZmFjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNz
TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKToK
KwogMjAxNy0wOS0xNSAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgV1RGOiB1c2UgRm9yd2FyZC5oIHdoZW4gYXBwcm9wcmlhdGUgaW5zdGVhZCBvZiBWZWN0b3Iu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDhkOThkNDAwNjY2YmRhMmE5MTE2YzQy
NDAyZTEwNDY0NTYyMjg1MDcuLmNlNDVjYTk0YzcyNmQ4NjYxZTIwYTg2MDUxOTBiMjhkZGY1YmJj
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAxNy0w
OS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01hY10gVXBs
b2FkIG1pc2NlbGxhbmVvdXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZWZhdWx0RGVsZWdh
dGVzL1dlYkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJEZWZh
dWx0VUlEZWxlZ2F0ZSBtZW51SXRlbVdpdGhUYWc6dGFyZ2V0OnJlcHJlc2VudGVkT2JqZWN0Ol0p
OgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tOgor
ICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5I
b3N0UHJveHkpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbToKKyAg
ICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Up
OgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxW
aWV3IHNldERhdGFTb3VyY2U6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0dGFjaFJvb3RM
YXllcjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZp
ZXcgX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcg
X25lZWRzTGlua0VsZW1lbnRUZXh0Q1NTUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVl
ZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNG
cmFtZUxvYWREZWxlZ2F0ZVJldGFpblF1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZl
cmVuY2VzQ2hhbmdlZDpdKToKKworMjAxNy0wOS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBs
ZS5jb20+CisKICAgICAgICAgW0NvY29hXSBVcHN0cmVhbSBNZWRpYVJlbW90ZSBhbmQgVmlkZW9U
b29sYm94IFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Njk1MwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnIGIvU291cmNlL1dlYkNv
cmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwppbmRleCA3NjY2N2JhZTc0MDQ3MWQ3
NDVhOTUxMjIwNWViMWNmNDlkN2EzMjM1Li5iMDNkZDRjZThhMjM2YjczZTg4OThlN2Y5ZGJkMzhm
NWZhY2M4MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJD
b3JlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWcKQEAgLTc3LDcgKzc3LDcgQEAgTElCV0VCUlRDX0xJQlJBUllfRElSX1VTRV9PVkVS
UklERV9GUkFNRVdPUktTX0RJUl9OTyA9ICQoV0VCQ09SRV9GUkFNRVdPUktTX0RJUikKIExJQldF
QlJUQ19MSUJSQVJZX0RJUl9VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfWUVTID0gJChXS19P
VkVSUklERV9GUkFNRVdPUktTX0RJUik7CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkg
JChXS19SRUxPQ0FUQUJMRV9GUkFNRVdPUktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9M
U19MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk0pOwotT1RIRVJfTERGTEFHU19CQVNF
ID0gLWxzcWxpdGUzIC1sb2JqYyAtbEFOR0xFIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdv
cmsgTWV0YWwgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVf
Y2xpZW50IFdlYktpdExlZ2FjeSAtT2JqQzsKK09USEVSX0xERkxBR1NfQkFTRSA9IC1sc3FsaXRl
MyAtbG9iamMgLWxBTkdMRSAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIE1ldGFsIC1h
bGxvd2FibGVfY2xpZW50IFdlYkNvcmVUZXN0U3VwcG9ydCAtYWxsb3dhYmxlX2NsaWVudCBXZWJL
aXRMZWdhY3kgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlBBTC5hOwogLy8g
RklYTUU6IFJlZHVjZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnQgPHJkYXI6Ly9wcm9i
bGVtLzMxODIzOTY5PgogT1RIRVJfTERGTEFHU19CQVNFX2lvcyA9ICQoT1RIRVJfTERGTEFHU19C
QVNFKSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3
b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZy
YW1ld29yayBNb2JpbGVDb3JlU2VydmljZXMgLWZyYW1ld29yayBPcGVuR0xFUyAtbE1vYmlsZUdl
c3RhbHQgJChXS19JT1NfQklOQ09NUEFUX0xERkxBR1MpIC1hbGxvd2FibGVfY2xpZW50IFdlYktp
dCAtYWxsb3dhYmxlX2NsaWVudCBpVHVuZXNVIC1hbGxvd2FibGVfY2xpZW50IENhc2FibGFuY2Eg
LWFsbG93YWJsZV9jbGllbnQgUmVtb3RlIC1hbGxvd2FibGVfY2xpZW50IFRWQm9va3MgLWFsbG93
YWJsZV9jbGllbnQgRHVtcFJlbmRlclRyZWUgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0VGVzdFJ1
bm5lciAtYWxsb3dhYmxlX2NsaWVudCBUZXN0V2ViS2l0QVBJOwogT1RIRVJfTERGTEFHU19QTEFU
Rk9STVtzZGs9aXBob25lb3MqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgLWZyYW1ld29y
ayBJT1N1cmZhY2UgLWZyYW1ld29yayBHcmFwaGljc1NlcnZpY2VzICQoTElCV0VCUlRDX0xERkxB
R1MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGNhYjE0Y2Q0YTdmZGIxYjdlZjRlYjg1NWRkYTlhZWFkNWVhOGM0OWIuLmYzM2M4
ZDE5NmYwYzZmZjJmZDViOTBhODExMzA0ZTA0YzkwZDFhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNyw2ICsxMDcsMTIg
QEAKIAkJQTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3
MkFDIC8qIFdlYlBhbmVsLm1tICovOyB9OwogCQlBMTA4MjZGRTFGNThBNDMzMDA0NzcyQUMgLyog
TlNHcmFwaGljc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTEwODI2RkQxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCAqLzsgfTsK
IAkJQTExNzVCNDkxRjZBRkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNDgxRjZBRkY4
RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovOyB9OworCQlBMTE3NUI0QjFGNkIy
RDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmgg
Ki87IH07CisJCUExMTc1QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRDMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsKKwkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYw
IC8qIFBvcHVwTWVudS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExMTc1QjREMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gKi87IH07CisJ
CUExMTc1QjU3MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjU1MUY2QjQ3
MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCAqLzsgfTsKKwkJQTExNzVCNTgx
RjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI1NjFGNkI0NzA1MDBDNEI5
RjAgLyogRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJQTExNzVCNUExRjZCNEE4
NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xs
Vmlld1NQSS5oICovOyB9OwogCQlBMUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFT
UEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1
RENFMUY1NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFG
MEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5o
ICovOyB9OwogCQlBMzBENDEyMjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMUYxRjBERDBF
QTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCAqLzsgfTsKQEAgLTIyOSw2ICsyMzUsMTIgQEAKIAkJ
QTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMDgyNkZE
MUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TR3Jh
cGhpY3NTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNzVCNDgxRjZBRkY4
RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hT
eW50aGVzaXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEExRjZC
MkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0NlbGxTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEMxRjZCMzM3MzAwQzRCOUYwIC8q
IFBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvcHVwTWVudS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFy
Y2hQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTE3NUI1OTFGNkI0QTg0MDBDNEI5
RjAgLyogTlNTY3JvbGxWaWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TU2Nyb2xsVmlld1NQSS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYg
LyogTWV0YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0YWRhdGFTUEkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5n
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmlu
Zy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLaWxsUmluZy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDcsNiArMzE5LDcgQEAKIAkJCQkwQzJE
QTEyODFGM0JFQjQ5MDBEQkMzMTcgLyogSU9SZXR1cm5TUEkuaCAqLywKIAkJCQkwQzJEQTEyOTFG
M0JFQjQ5MDBEQkMzMTcgLyogSU9TdXJmYWNlU1BJLmggKi8sCiAJCQkJMEMyREExMkExRjNCRUI0
OTAwREJDMzE3IC8qIElPVHlwZXNTUEkuaCAqLywKKwkJCQkwQzVBRjkxMjFGNDNBNEM3MDAyRUFD
MDIgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzJEQTEyQjFGM0JFQjQ5MDBEQkMz
MTcgLyogTGlua1ByZXNlbnRhdGlvblNQSS5oICovLAogCQkJCTBDMkRBMTJDMUYzQkVCNDkwMERC
QzMxNyAvKiBNYWNoVk1TUEkuaCAqLywKIAkJCQkwQzJEQTEyRDFGM0JFQjQ5MDBEQkMzMTcgLyog
TkVGaWx0ZXJTb3VyY2VTUEkuaCAqLywKQEAgLTMzNiw3ICszNDksNiBAQAogCQkJCTBDNUFGOTBG
MUY0M0E0QzcwMDJFQUMwMiAvKiBDb3JlVUlTUEkuaCAqLywKIAkJCQkwQzVBRjkxMDFGNDNBNEM3
MDAyRUFDMDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggKi8sCiAJCQkJMEM1QUY5MTExRjQzQTRD
NzAwMkVBQzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCAqLywKLQkJCQkwQzVBRjkxMjFGNDNB
NEM3MDAyRUFDMDIgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzVBRjkxMzFGNDNB
NEM3MDAyRUFDMDIgLyogTWVkaWFQbGF5ZXJTUEkuaCAqLywKIAkJCQkwQzVBRjkxNDFGNDNBNEM3
MDAyRUFDMDIgLyogTW9iaWxlR2VzdGFsdFNQSS5oICovLAogCQkJCTBDNUFGOTE1MUY0M0E0Qzcw
MDJFQUMwMiAvKiBPcGVuR0xFU1NQSS5oICovLApAQCAtMzU5LDYgKzM3MSw3IEBACiAJCQkJQTFG
NTVEQ0UxRjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzQx
RjQ1MTMwRjAwRjRFQkI2IC8qIE5TQWNjZXNzaWJpbGl0eVNQSS5oICovLAogCQkJCTBDNzc4NTc1
MUY0NTEzMEYwMEY0RUJCNiAvKiBOU0FwcGxpY2F0aW9uU1BJLmggKi8sCisJCQkJQTExNzVCNEEx
RjZCMkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovLAogCQkJCTBDNzc4NTc2MUY0NTEzMEYw
MEY0RUJCNiAvKiBOU0V2ZW50U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzcxRjQ1MTMwRjAwRjRFQkI2
IC8qIE5TRm9udFNQSS5oICovLAogCQkJCUExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dy
YXBoaWNzU1BJLmggKi8sCkBAIC0zNzAsNiArMzgzLDcgQEAKIAkJCQkwQzc3ODU3QzFGNDUxMzBG
MDBGNEVCQjYgLyogTlNTY3JvbGxlckltcFNQSS5oICovLAogCQkJCTBDNzc4NTdEMUY0NTEzMEYw
MEY0RUJCNiAvKiBOU1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggKi8sCiAJCQkJMEM3Nzg1N0Ux
RjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yU1BJLmggKi8s
CisJCQkJQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oICovLAog
CQkJCTBDNzc4NTdGMUY0NTEzMEYwMEY0RUJCNiAvKiBOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU1BJ
LmggKi8sCiAJCQkJMEM3Nzg1ODAxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2hhcmluZ1NlcnZpY2VT
UEkuaCAqLywKIAkJCQkwQzc3ODU4MTFGNDUxMzBGMDBGNEVCQjYgLyogTlNTcGVsbENoZWNrZXJT
UEkuaCAqLywKQEAgLTQ4Niw2ICs1MDAsMTAgQEAKIAkJQTM3ODhFQTAxRjA1QjdFMjAwNjc5NDI1
IC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
QTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgKi8s
CisJCQkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5o
ICovLAorCQkJCUExMTc1QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLywKKwkJ
CQlBMTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tICovLAogCQkJCUEzNzg4
RTlEMUYwNUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1hYy5tbSAqLywKIAkJCQlBM0FCNkU2MjFGM0Qy
MTdGMDA5QzE0QjEgLyogU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oICovLAogCQkJCUEzQUI2RTYz
MUYzRDIxN0YwMDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tICovLApAQCAtNTI4
LDYgKzU0Niw3IEBACiAJCQkJMEMyREExNDExRjNCRUI0OTAwREJDMzE3IC8qIERhdGFEZXRlY3Rv
cnNDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVCQjYg
LyogRGF0YURldGVjdG9yc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUExRjQzQTRD
NzAwMkVBQzAyIC8qIERhdGFEZXRlY3RvcnNVSVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEx
NzVCNTcxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyRDlFNzMxRUVGNUFGNjAwREJDMzE3IC8qIEV4cG9ydE1hY3Jvcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTEwMjY1ODcxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5kYXRpb25T
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFCMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFw
aGljc1NlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTU1Niw2ICs1NzUsNyBAQAogCQkJ
CTBDMkRBMTRBMUYzQkVCNDkwMERCQzMxNyAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDMkRBMTRCMUYzQkVCNDkwMERCQzMxNyAvKiBOU0J1dHRvbkNlbGxT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTRDMUYzQkVCNDkwMERCQzMxNyAvKiBOU0Nh
bGVuZGFyRGF0ZVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTExNzVCNEIxRjZCMkQ3RTAwQzRC
OUYwIC8qIE5TQ2VsbFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNEQxRjNCRUI0OTAw
REJDMzE3IC8qIE5TQ29sb3JTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThGMUY0NTEz
MEYwMEY0RUJCNiAvKiBOU0V2ZW50U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0RTFG
M0JFQjQ5MDBEQkMzMTcgLyogTlNFeHRlbnNpb25TUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTcw
LDYgKzU5MCw3IEBACiAJCQkJMEM3Nzg1OTUxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsZXJJ
bXBTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk2MUY0NTEzMEYwMEY0RUJCNiAvKiBO
U1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5NzFG
NDUxMzBGMDBGNEVCQjYgLyogTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JTUEkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUExMTc1QjVBMUY2QjRBODQwMEM0QjlGMCAvKiBOU1Njcm9sbFZpZXdT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk4MUY0NTEzMEYwMEY0RUJCNiAvKiBOU1No
YXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5OTFGNDUx
MzBGMDBGNEVCQjYgLyogTlNTaGFyaW5nU2VydmljZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEM3Nzg1OUExRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU3BlbGxDaGVja2VyU1BJLmggaW4gSGVhZGVy
cyAqLywKQEAgLTU4NCw2ICs2MDUsNyBAQAogCQkJCTBDNUFGOTFGMUY0M0E0QzcwMDJFQUMwMiAv
KiBPcGVuR0xFU1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNTUxRjNCRUI0OTAwREJD
MzE3IC8qIFBhc3NLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTlFMUY0NTEzMEYw
MEY0RUJCNiAvKiBQSVBTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMTc1QjRFMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU2MUYzQkVC
NDkwMERCQzMxNyAvKiBwdGhyZWFkU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5RjFG
NDUxMzBGMDBGNEVCQjYgLyogUVRLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU3
MUYzQkVCNDkwMERCQzMxNyAvKiBRdWFydHpDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTY5
Miw4ICs3MTQsMTAgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxl
cyA9ICgKIAkJCQkxQzA5RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9u
Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExMTc1QjU4MUY2QjQ3MDUwMEM0QjlGMCAv
KiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTMwRDQxMjIx
RjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0
MTI1MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUExMTc1QjRGMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBM0M2NkNEQzFGNDYyRDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUEzQUI2RTUyMUYzRDFEQzUwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUEzQUI2RTYwMUYzRDFFMzkwMDlDMTRCMSAvKiBTbGVlcERpc2Fi
bGVyQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaAppbmRleCBmYzhjZDc5Mjc2MmJmMGE3NjIwYTEyYWNmMTIw
ZmEzMDlhMzc4ZmZjLi4yNDU5ODdjZDgyMTg0ZTI5OWZmOTZlM2Y0YWNjMWIyMTAxMGI5NzhmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NyArMjgsMTYgQEAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgog
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24v
Q0ZQcml2Lmg+CisKKyNlbHNlCisKK3R5cGVkZWYgQ0ZfRU5VTShDRkluZGV4LCBDRlN5c3RlbVZl
cnNpb24pIHsKKyAgICBDRlN5c3RlbVZlcnNpb25MaW9uID0gNywKKyAgICBDRlN5c3RlbVZlcnNp
b25Nb3VudGFpbkxpb24gPSA4LAorfTsKKwogI2VuZGlmCiAKIFdURl9FWFRFUk5fQ19CRUdJTgpA
QCAtMzcsNSArNDYsMTIgQEAgQ0ZEaWN0aW9uYXJ5UmVmIF9DRkNvcHlTeXN0ZW1WZXJzaW9uRGlj
dGlvbmFyeSh2b2lkKTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGU3lzdGVtVmVyc2lv
blByb2R1Y3RWZXJzaW9uS2V5OwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZTeXN0ZW1W
ZXJzaW9uQnVpbGRWZXJzaW9uS2V5OwogCitDRkRpY3Rpb25hcnlSZWYgX0NGV2ViU2VydmljZXND
b3B5UHJvdmlkZXJJbmZvKENGU3RyaW5nUmVmIHNlcnZpY2VUeXBlLCBCb29sZWFuKiBvdXRJc1Vz
ZXJTZWxlY3Rpb24pOworZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDRldlYlNlcnZpY2VzVHlw
ZVdlYlNlYXJjaDsKK2V4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ0ZXZWJTZXJ2aWNlc1Byb3Zp
ZGVyRGVmYXVsdERpc3BsYXlOYW1lS2V5OworCitCb29sZWFuIF9DRkFwcFZlcnNpb25DaGVja0xl
c3NUaGFuKENGU3RyaW5nUmVmIGJ1bmRsZUlELCBpbnQgbGlua2VkT25Bbk9sZGVyU3lzdGVtVGhh
biwgZG91YmxlIHZlcnNpb25OdW1iZXJMZXNzVGhhbik7CitCb29sZWFuIF9DRkV4ZWN1dGFibGVM
aW5rZWRPbk9yQWZ0ZXIoQ0ZTeXN0ZW1WZXJzaW9uKTsKKwogV1RGX0VYVEVSTl9DX0VORAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNl
c1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNT
UEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MGEwZWEzYjViMDM5NWM1YTkzMTI1ZDM1YjkwOTc2NWZkNDIwYTJi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTGF1
bmNoU2VydmljZXNTUEkuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQorCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8TGF1bmNo
U2VydmljZXMvTGF1bmNoU2VydmljZXNQcml2Lmg+CisjZWxpZiBQTEFURk9STShJT1MpCisjaW1w
b3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTGF1bmNoU2VydmljZXNQcml2Lmg+CisjZW5kaWYKKwor
I2VuZGlmCisKK0BjbGFzcyBMU0FwcExpbms7Cit0eXBlZGVmIHZvaWQgKF5MU0FwcExpbmtDb21w
bGV0aW9uSGFuZGxlcikoTFNBcHBMaW5rICphcHBMaW5rLCBOU0Vycm9yICplcnJvcik7Cit0eXBl
ZGVmIHZvaWQgKF5MU0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIpKEJPT0wgc3VjY2Vzcywg
TlNFcnJvciAqZXJyb3IpOworCisjaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKK0BpbnRl
cmZhY2UgTFNSZXNvdXJjZVByb3h5IDogTlNPYmplY3QgPE5TQ29weWluZywgTlNTZWN1cmVDb2Rp
bmc+CitAZW5kCisKK0BpbnRlcmZhY2UgTFNCdW5kbGVQcm94eSA6IExTUmVzb3VyY2VQcm94eSA8
TlNTZWN1cmVDb2Rpbmc+CitAZW5kCisKK0BpbnRlcmZhY2UgTFNBcHBsaWNhdGlvblByb3h5IDog
TFNCdW5kbGVQcm94eSA8TlNTZWN1cmVDb2Rpbmc+CistIChOU1N0cmluZyAqKWxvY2FsaXplZE5h
bWVGb3JDb250ZXh0OihOU1N0cmluZyAqKWNvbnRleHQ7CitAZW5kCisKK0BpbnRlcmZhY2UgTFNB
cHBMaW5rIDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExT
QXBwTGluayAoKQorKyAodm9pZClnZXRBcHBMaW5rV2l0aFVSTDooTlNVUkwgKilhVVJMIGNvbXBs
ZXRpb25IYW5kbGVyOihMU0FwcExpbmtDb21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxl
cjsKKysgKHZvaWQpb3BlbldpdGhVUkw6KE5TVVJMICopYVVSTCBjb21wbGV0aW9uSGFuZGxlcjoo
TFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9p
ZClvcGVuSW5XZWJCcm93c2VyOihCT09MKWluV2ViQnJvd3NlciBzZXRBcHByb3ByaWF0ZU9wZW5T
dHJhdGVneUFuZFdlYkJyb3dzZXJTdGF0ZTooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAq
KXN0YXRlIGNvbXBsZXRpb25IYW5kbGVyOihMU0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIp
Y29tcGxldGlvbkhhbmRsZXI7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIExTQXBwbGlj
YXRpb25Qcm94eSAqdGFyZ2V0QXBwbGljYXRpb25Qcm94eTsKK0BlbmQKKworZW51bSBMU1Nlc3Np
b25JRCB7CisgICAga0xTRGVmYXVsdFNlc3Npb25JRCA9IC0yLAorfTsKKworI2VuZGlmCisKK1dU
Rl9FWFRFUk5fQ19CRUdJTgorCitPU1N0YXR1cyBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9u
SXRlbShMU1Nlc3Npb25JRCwgTFNBU05SZWYsIENGU3RyaW5nUmVmIGtleVRvU2V0UmVmLCBDRlR5
cGVSZWYgdmFsdWVUb1NldFJlZiwgQ0ZEaWN0aW9uYXJ5UmVmKiBuZXdJbmZvcm1hdGlvbkRpY3RS
ZWYpOworTFNBU05SZWYgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCk7CisKK2V4dGVybiBj
b25zdCBDRlN0cmluZ1JlZiBfa0xTRGlzcGxheU5hbWVLZXk7CisKK1dURl9FWFRFUk5fQ19FTkQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNl
c1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJ
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2YThiMmU0ZmNiZWUxNTExZThjMGM0
M2I3YWJkNTc4NTIyODE4MjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJ
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotCi0jaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKLQotI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL0xTQXBwTGlua1By
aXYuaD4KLQotI2VuZGlmCi0KLUBjbGFzcyBMU0FwcExpbms7Ci10eXBlZGVmIHZvaWQgKF5MU0Fw
cExpbmtDb21wbGV0aW9uSGFuZGxlcikoTFNBcHBMaW5rICphcHBMaW5rLCBOU0Vycm9yICplcnJv
cik7Ci10eXBlZGVmIHZvaWQgKF5MU0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIpKEJPT0wg
c3VjY2VzcywgTlNFcnJvciAqZXJyb3IpOwotCi0jaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREsp
Ci0KLUBpbnRlcmZhY2UgTFNSZXNvdXJjZVByb3h5IDogTlNPYmplY3QgPE5TQ29weWluZywgTlNT
ZWN1cmVDb2Rpbmc+Ci1AZW5kCi0KLUBpbnRlcmZhY2UgTFNCdW5kbGVQcm94eSA6IExTUmVzb3Vy
Y2VQcm94eSA8TlNTZWN1cmVDb2Rpbmc+Ci1AZW5kCi0KLUBpbnRlcmZhY2UgTFNBcHBsaWNhdGlv
blByb3h5IDogTFNCdW5kbGVQcm94eSA8TlNTZWN1cmVDb2Rpbmc+Ci0tIChOU1N0cmluZyAqKWxv
Y2FsaXplZE5hbWVGb3JDb250ZXh0OihOU1N0cmluZyAqKWNvbnRleHQ7Ci1AZW5kCi0KLUBpbnRl
cmZhY2UgTFNBcHBMaW5rIDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50
ZXJmYWNlIExTQXBwTGluayAoKQotKyAodm9pZClnZXRBcHBMaW5rV2l0aFVSTDooTlNVUkwgKilh
VVJMIGNvbXBsZXRpb25IYW5kbGVyOihMU0FwcExpbmtDb21wbGV0aW9uSGFuZGxlciljb21wbGV0
aW9uSGFuZGxlcjsKLSsgKHZvaWQpb3BlbldpdGhVUkw6KE5TVVJMICopYVVSTCBjb21wbGV0aW9u
SGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVy
OwotLSAodm9pZClvcGVuSW5XZWJCcm93c2VyOihCT09MKWluV2ViQnJvd3NlciBzZXRBcHByb3By
aWF0ZU9wZW5TdHJhdGVneUFuZFdlYkJyb3dzZXJTdGF0ZTooTlNEaWN0aW9uYXJ5PE5TU3RyaW5n
ICosIGlkPiAqKXN0YXRlIGNvbXBsZXRpb25IYW5kbGVyOihMU0FwcExpbmtPcGVuQ29tcGxldGlv
bkhhbmRsZXIpY29tcGxldGlvbkhhbmRsZXI7Ci1AcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcp
IExTQXBwbGljYXRpb25Qcm94eSAqdGFyZ2V0QXBwbGljYXRpb25Qcm94eTsKLUBlbmQKLQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvSElTZXJ2aWNl
c1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaApp
bmRleCBhMzU1Yjk0ZmU2MzA5MmVmNWFjZDBiNWM5NWUwM2RkNDZlOTUzODE1Li43ZGVkYTJmM2M3
YTI3NTk2MTA3MDFlNDRkODFmMTUyMWZmZGMzZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmgKQEAgLTI1LDEzICsyNSw2NCBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CisKICNp
ZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaW5jbHVkZSA8SElTZXJ2aWNlcy9BWFRleHRN
YXJrZXIuaD4KKyNpbmNsdWRlIDxISVNlcnZpY2VzL0NvcmVDdXJzb3IuaD4KICNpbmNsdWRlIDxI
SVNlcnZpY2VzL0NvcmVEcmFnLmg+CiAKICNlbHNlCiAKK3R5cGVkZWYgQ0ZfRU5VTShTSW50MzIs
IENvcmVDdXJzb3JUeXBlKSB7CisgICAga0NvcmVDdXJzb3JGaXJzdEN1cnNvciA9IDAsCisgICAg
a0NvcmVDdXJzb3JBcnJvdyA9IGtDb3JlQ3Vyc29yRmlyc3RDdXJzb3IsCisgICAga0NvcmVDdXJz
b3JJQmVhbSwKKyAgICBrQ29yZUN1cnNvck1ha2VBbGlhcywKKyAgICBrQ29yZUN1cnNvck5vdEFs
bG93ZWQsCisgICAga0NvcmVDdXJzb3JCdXN5QnV0Q2xpY2thYmxlLAorICAgIGtDb3JlQ3Vyc29y
Q29weSwKKyAgICBrQ29yZUN1cnNvclNjcmVlblNob3RTZWxlY3Rpb24gPSA3LAorICAgIGtDb3Jl
Q3Vyc29yU2NyZWVuU2hvdFNlbGVjdGlvblRvQ2xpcCwKKyAgICBrQ29yZUN1cnNvclNjcmVlblNo
b3RXaW5kb3csCisgICAga0NvcmVDdXJzb3JTY3JlZW5TaG90V2luZG93VG9DbGlwLAorICAgIGtD
b3JlQ3Vyc29yQ2xvc2VkSGFuZCwKKyAgICBrQ29yZUN1cnNvck9wZW5IYW5kLAorICAgIGtDb3Jl
Q3Vyc29yUG9pbnRpbmdIYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdVcEhhbmQsCisgICAg
a0NvcmVDdXJzb3JDb3VudGluZ0Rvd25IYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdVcEFu
ZERvd25IYW5kLAorICAgIGtDb3JlQ3Vyc29yUmVzaXplTGVmdCwKKyAgICBrQ29yZUN1cnNvclJl
c2l6ZVJpZ2h0LAorICAgIGtDb3JlQ3Vyc29yUmVzaXplTGVmdFJpZ2h0LAorICAgIGtDb3JlQ3Vy
c29yQ3Jvc3MsCisgICAga0NvcmVDdXJzb3JSZXNpemVVcCwKKyAgICBrQ29yZUN1cnNvclJlc2l6
ZURvd24sCisgICAga0NvcmVDdXJzb3JSZXNpemVVcERvd24sCisgICAga0NvcmVDdXJzb3JDb250
ZXh0dWFsTWVudSwKKyAgICBrQ29yZUN1cnNvclBvb2YsCisgICAga0NvcmVDdXJzb3JJQmVhbVZl
cnRpY2FsLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplRWFzdCwKKyAgICBrQ29yZUN1cnNv
cldpbmRvd1Jlc2l6ZUVhc3RXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhF
YXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhFYXN0U291dGhXZXN0LAorICAg
IGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGgsCisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNp
emVOb3J0aFNvdXRoLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0LAorICAg
IGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0U291dGhFYXN0LAorICAgIGtDb3JlQ3Vy
c29yV2luZG93UmVzaXplU291dGhFYXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291
dGgsCisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aFdlc3QsCisgICAga0NvcmVDdXJz
b3JXaW5kb3dSZXNpemVXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93TW92ZSwKKyAgICBrQ29y
ZUN1cnNvckhlbHAsCisgICAga0NvcmVDdXJzb3JDZWxsLAorICAgIGtDb3JlQ3Vyc29yWm9vbUlu
LAorICAgIGtDb3JlQ3Vyc29yWm9vbU91dCwKKyAgICBrQ29yZUN1cnNvckxhc3RDdXJzb3IgPSBr
Q29yZUN1cnNvclpvb21PdXQKK307CisKIGVudW0gewogICAgIGtDb3JlRHJhZ0ltYWdlU3BlY1Zl
cnNpb25PbmUgPSAxLAogfTsKQEAgLTU1LDYgKzEwNiw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0
IF9fQVhUZXh0TWFya2VyKiBBWFRleHRNYXJrZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBf
X0FYVGV4dE1hcmtlclJhbmdlKiBBWFRleHRNYXJrZXJSYW5nZVJlZjsKIHR5cGVkZWYgc3RydWN0
IENvcmVEcmFnSW1hZ2VTcGVjIENvcmVEcmFnSW1hZ2VTcGVjOwogdHlwZWRlZiBzdHJ1Y3QgT3Bh
cXVlQ29yZURyYWcqIENvcmVEcmFnUmVmOwordHlwZWRlZiBVSW50MzIgTVNIQ3JlYXRlT3B0aW9u
czsKIAogV1RGX0VYVEVSTl9DX0JFR0lOCiAKQEAgLTY4LDUgKzEyMCw2IEBAIENGVHlwZUlEIEFY
VGV4dE1hcmtlclJhbmdlR2V0VHlwZUlEKCk7CiBDb3JlRHJhZ1JlZiBDb3JlRHJhZ0dldEN1cnJl
bnREcmFnKCk7CiBPU1N0YXR1cyBDb3JlRHJhZ1NldEltYWdlKENvcmVEcmFnUmVmLCBDR1BvaW50
IGltYWdlT2Zmc2V0LCBDb3JlRHJhZ0ltYWdlU3BlYyosIENHU1JlZ2lvbk9iaiBpbWFnZVNoYXBl
LCBmbG9hdCBvdmVyYWxsQWxwaGEpOwogY29uc3QgVUludDgqIEFYVGV4dE1hcmtlckdldEJ5dGVQ
dHIoQVhUZXh0TWFya2VyUmVmKTsKK0NGUnVuTG9vcFNvdXJjZVJlZiBNU0hDcmVhdGVNSUdTZXJ2
ZXJTb3VyY2UoQ0ZBbGxvY2F0b3JSZWYsIENGSW5kZXggb3JkZXIsIG1pZ19zdWJzeXN0ZW1fdCBz
dWJfc3lzdGVtLCBNU0hDcmVhdGVPcHRpb25zLCBtYWNoX3BvcnRfdCwgdm9pZCogdXNlcl9kYXRh
KTsKIAogV1RGX0VYVEVSTl9DX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvbWFjL05TQ2VsbFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05T
Q2VsbFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMzNkYTNkM2RmYmJhN2NiMDYzZjYwZWQ0NzkxMDFlODY2
OTM4NjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
TlNDZWxsU1BJLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QXBwS2l0L05TQ2VsbF9Q
cml2YXRlLmg+CisKKyNlbmRpZgorCitXVEZfRVhURVJOX0NfQkVHSU4KKwordm9pZCBfTlNEcmF3
Q2FyYm9uVGhlbWVMaXN0Qm94KE5TUmVjdCwgQk9PTCBlbmFibGVkLCBCT09MIGZsaXBwZWQsIEJP
T0wgdGV4dHVyZWQpOworCitXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9tYWMvTlNNZW51U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9tYWMvTlNNZW51U1BJLmgKaW5kZXggMWY1ZTdiYzY2YTAwMzIxOTQ4MjIwNGM0ODE5OTQx
ZWQzYjRmYTVmZi4uNDdmNzY1NWNjOWUxNWI3NGI0ODZhZmMwNmZiZDVkMjc0OTY2YzZhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TTWVudVNQSS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU01lbnVTUEkuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw3ICsyOSw5IEBA
CiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCitXVEZfRVhURVJOX0NfQkVHSU4KICNp
bXBvcnQgPEFwcEtpdC9OU01lbnVfUHJpdmF0ZS5oPgorV1RGX0VYVEVSTl9DX0VORAogCiAjZWxz
ZQogCkBAIC0zOCw2ICs0MCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBOU01lbnVU
eXBlKSB7CiAgICAgTlNNZW51VHlwZUNvbnRleHRNZW51LAogfTsKIAorZW51bSB7CisgICAgTlNQ
b3BVcE1lbnVJc1BvcHVwQnV0dG9uID0gMHg0MCwKK307CisKIEBpbnRlcmZhY2UgTlNNZW51ICgp
CiArIChOU01lbnVUeXBlKW1lbnVUeXBlRm9yRXZlbnQ6KE5TRXZlbnQgKilldmVudDsKIEBlbmQK
QEAgLTU2LDQgKzYyLDE3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TTWVudVR5cGUp
IHsKIAogI2VuZGlmCiAKLSNlbmRpZgordHlwZWRlZiBOU1VJbnRlZ2VyIE5TUG9wVXBNZW51Rmxh
Z3M7CisKK1dURl9FWFRFUk5fQ19CRUdJTgorCitleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBOU1Bv
cFVwTWVudVBvcHVwQnV0dG9uQm91bmRzOworZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgTlNQb3BV
cE1lbnVQb3B1cEJ1dHRvbkxhYmVsT2Zmc2V0OworZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgTlNQ
b3BVcE1lbnVQb3B1cEJ1dHRvblNpemU7CitleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBOU1BvcFVw
TWVudVBvcHVwQnV0dG9uV2lkZ2V0OworCit2b2lkIF9OU1BvcFVwQ2FyYm9uTWVudTMoTlNNZW51
ICosIE5TV2luZG93ICosIE5TVmlldyAqb3duZXJWaWV3LCBOU1BvaW50IHNjcmVlblBvaW50LCBO
U0ludGVnZXIgY2hlY2tlZEl0ZW0sIE5TRm9udCAqLCBDR0Zsb2F0IG1pbldpZHRoLCBOU1N0cmlu
ZyAqcnVuTG9vcE1vZGUsIE5TUG9wVXBNZW51RmxhZ3MsIE5TRGljdGlvbmFyeSAqb3B0aW9ucyk7
CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jYjBlZjdhZjU4ZTMyZTQ4YmYxN2UwNjIyYmU4N2I1ZmQwYzRlZGY4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsVmlld1NQSS5oCkBA
IC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEFwcEtpdC9OU1Njcm9sbFZpZXdfUHJpdmF0ZS5o
PgorCisjZW5kaWYKKworV1RGX0VYVEVSTl9DX0JFR0lOCisKK0NHRmxvYXQgX05TRWxhc3RpY0Rl
bHRhRm9yVGltZURlbHRhKENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGluaXRpYWxW
ZWxvY2l0eSwgQ0dGbG9hdCBlbGFwc2VkVGltZSk7CitDR0Zsb2F0IF9OU0VsYXN0aWNEZWx0YUZv
clJlYm91bmREZWx0YShDR0Zsb2F0IGRlbHRhKTsKK0NHRmxvYXQgX05TUmVib3VuZERlbHRhRm9y
RWxhc3RpY0RlbHRhKENHRmxvYXQgZGVsdGEpOworCitXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaAppbmRleCAw
NDkyYzFhYjYxOTU2Y2IxOTYxYzllYTdiMjc3MTU3Mzc4MWQ1NTMzLi4xODcwNDk2ZTA3YzIwZjJl
YjlhYjVhZmFkNzFlOWRiMWRhZDFhMmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQ5LDQgKzE0OSwxMCBAQCB0eXBlZGVmIE5T
VUludGVnZXIgTlNPdmVybGF5U2Nyb2xsZXJTdGF0ZTsKIAogI2VuZGlmCiAKK1dURl9FWFRFUk5f
Q19CRUdJTgorCitOU1Njcm9sbGVyU3R5bGUgX05TUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCk7
CisKK1dURl9FWFRFUk5fQ19FTkQKKwogI2VuZGlmIC8vIFVTRShBUFBLSVQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvRGVmYXVsdFNlYXJjaFByb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9EZWZhdWx0U2VhcmNoUHJv
dmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MTZkNmFiYmJiMzVhZTg3YzJkOWVhYmExNjljNzI0YjVk
M2RlNmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9t
YWMvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRlZmF1bHRTZWFyY2hQcm92aWRlci5o
IgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW5jbHVkZSAiQ0ZVdGlsaXRpZXNTUEkuaCIKKyNp
bmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorCituYW1lc3BhY2UgUEFM
IHsKKworUmV0YWluUHRyPENGU3RyaW5nUmVmPiBkZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5
TmFtZSgpCit7CisgICAgYXV0byBwcm92aWRlckluZm8gPSBhZG9wdENGKF9DRldlYlNlcnZpY2Vz
Q29weVByb3ZpZGVySW5mbyhrQ0ZXZWJTZXJ2aWNlc1R5cGVXZWJTZWFyY2gsIG51bGxwdHIpKTsK
KyAgICBpZiAoIXByb3ZpZGVySW5mbykKKyAgICAgICAgcmV0dXJuIENGU1RSKCJHb29nbGUiKTsK
KworICAgIENGVHlwZVJlZiBkaXNwbGF5TmFtZSA9IENGRGljdGlvbmFyeUdldFZhbHVlKHByb3Zp
ZGVySW5mby5nZXQoKSwga0NGV2ViU2VydmljZXNQcm92aWRlckRlZmF1bHREaXNwbGF5TmFtZUtl
eSk7CisgICAgaWYgKCFkaXNwbGF5TmFtZSkKKyAgICAgICAgcmV0dXJuIENGU1RSKCJHb29nbGUi
KTsKKworICAgIEFTU0VSVChDRkdldFR5cGVJRChkaXNwbGF5TmFtZSkgPT0gQ0ZTdHJpbmdHZXRU
eXBlSUQoKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVDb3B5KGtDRkFsbG9j
YXRvckRlZmF1bHQsIChDRlN0cmluZ1JlZilkaXNwbGF5TmFtZSkpOworfQorCit9IC8vIG5hbWVz
cGFjZSBQQUwKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mY2ZjZmQ4MzdiNzYwOWM2NDMyN2U3NTU5ODBkNmQ0ZmY5OTJmYmY1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL0RlZmF1bHRTZWFy
Y2hQcm92aWRlci5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFBBTCB7CisKK1BBTF9F
WFBPUlQgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBkZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5
TmFtZSgpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9t
YWMvUG9wdXBNZW51LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBN
ZW51LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODQ3NWFiN2I3YjI3YmQ5ZDA2M2NlYzliZTU1NjYxYzk1MmVmMmFl
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Q
b3B1cE1lbnUuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFBMQVRGT1JNKE1B
QykKKworI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorCituYW1lc3BhY2UgUEFMIHsKKworUEFM
X0VYUE9SVCB2b2lkIHBvcFVwTWVudShOU01lbnUgKiwgTlNQb2ludCBsb2NhdGlvbiwgZmxvYXQg
d2lkdGgsIE5TVmlldyAqLCBpbnQgc2VsZWN0ZWRJdGVtLCBOU0ZvbnQgKiwgTlNDb250cm9sU2l6
ZSwgYm9vbCB1c2VzQ3VzdG9tQXBwZWFyYW5jZSk7CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1
cE1lbnUubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIyMzM1NzVkYzM0ZTc2MWU4NjFjYmI0NTI4N2I3MzNmMmNkNGFjMjMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBN
ZW51Lm1tCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KyNpbXBvcnQgIlBvcHVwTWVudS5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJO
U01lbnVTUEkuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGludGVyZmFjZSBOU01l
bnUgKFdlYlByaXZhdGUpCistIChpZClfbWVudUltcGw7CitAZW5kCisKK0BpbnRlcmZhY2UgTlNP
YmplY3QgKFdlYlByaXZhdGUpCistICh2b2lkKXBvcFVwTWVudTooTlNNZW51KiltZW51IGF0TG9j
YXRpb246KE5TUG9pbnQpbG9jYXRpb24gd2lkdGg6KENHRmxvYXQpd2lkdGggZm9yVmlldzooTlNW
aWV3Kil2aWV3IHdpdGhTZWxlY3RlZEl0ZW06KE5TSW50ZWdlcilzZWxlY3RlZEl0ZW0gd2l0aEZv
bnQ6KE5TRm9udCopZm9udCB3aXRoRmxhZ3M6KE5TUG9wVXBNZW51RmxhZ3MpZmxhZ3Mgd2l0aE9w
dGlvbnM6KE5TRGljdGlvbmFyeSAqKW9wdGlvbnM7CitAZW5kCisKK25hbWVzcGFjZSBQQUwgewor
Cit2b2lkIHBvcFVwTWVudShOU01lbnUgKm1lbnUsIE5TUG9pbnQgbG9jYXRpb24sIGZsb2F0IHdp
ZHRoLCBOU1ZpZXcgKnZpZXcsIGludCBzZWxlY3RlZEl0ZW0sIE5TRm9udCAqZm9udCwgTlNDb250
cm9sU2l6ZSBjb250cm9sU2l6ZSwgYm9vbCB1c2VzQ3VzdG9tQXBwZWFyYW5jZSkKK3sKKyAgICBO
U1JlY3QgYWRqdXN0ZWRQb3B1cEJvdW5kcyA9IFt2aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2Ny
ZWVuOlt2aWV3IGNvbnZlcnRSZWN0OnZpZXcuYm91bmRzIHRvVmlldzpuaWxdXTsKKyNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBpZiAoY29udHJvbFNpemUgIT0gTlNNaW5p
Q29udHJvbFNpemUpIHsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgYWRq
dXN0ZWRQb3B1cEJvdW5kcy5vcmlnaW4ueCAtPSAzOworICAgICAgICBhZGp1c3RlZFBvcHVwQm91
bmRzLm9yaWdpbi55IC09IDE7CisgICAgICAgIGFkanVzdGVkUG9wdXBCb3VuZHMuc2l6ZS53aWR0
aCArPSA2OworICAgIH0KKworICAgIC8vIFRoZXNlIG51bWJlcnMgd2VyZSBleHRyYWN0ZWQgZnJv
bSB2aXN1YWwgaW5zcGVjdGlvbiBhcyB0aGUgbWVudSBhbmltYXRlcyBzaHV0LgorICAgIE5TU2l6
ZSBsYWJlbE9mZnNldCA9IE5TTWFrZVNpemUoMTEsIDEpOworICAgIGlmIChtZW51LnVzZXJJbnRl
cmZhY2VMYXlvdXREaXJlY3Rpb24gPT0gTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmln
aHRUb0xlZnQpCisgICAgICAgIGxhYmVsT2Zmc2V0ID0gTlNNYWtlU2l6ZSgyNCwgMSk7CisKKyAg
ICBhdXRvIG9wdGlvbnMgPSBhZG9wdE5TKFtAeworICAgICAgICBOU1BvcFVwTWVudVBvcHVwQnV0
dG9uQm91bmRzIDogW05TVmFsdWUgdmFsdWVXaXRoUmVjdDphZGp1c3RlZFBvcHVwQm91bmRzXSwK
KyAgICAgICAgTlNQb3BVcE1lbnVQb3B1cEJ1dHRvbkxhYmVsT2Zmc2V0IDogW05TVmFsdWUgdmFs
dWVXaXRoU2l6ZTpsYWJlbE9mZnNldF0sCisgICAgICAgIE5TUG9wVXBNZW51UG9wdXBCdXR0b25T
aXplIDogQChjb250cm9sU2l6ZSkKKyAgICB9IG11dGFibGVDb3B5XSk7CisKKyAgICBpZiAodXNl
c0N1c3RvbUFwcGVhcmFuY2UpCisgICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpAIiIgZm9yS2V5
Ok5TUG9wVXBNZW51UG9wdXBCdXR0b25XaWRnZXRdOworCisgICAgW1ttZW51IF9tZW51SW1wbF0g
cG9wVXBNZW51Om1lbnUgYXRMb2NhdGlvbjpsb2NhdGlvbiB3aWR0aDp3aWR0aCBmb3JWaWV3OnZp
ZXcgd2l0aFNlbGVjdGVkSXRlbTpzZWxlY3RlZEl0ZW0gd2l0aEZvbnQ6Zm9udCB3aXRoRmxhZ3M6
KHVzZXNDdXN0b21BcHBlYXJhbmNlID8gMCA6IE5TUG9wVXBNZW51SXNQb3B1cEJ1dHRvbikgd2l0
aE9wdGlvbnM6b3B0aW9ucy5nZXQoKV07Cit9CisKK30gLy8gbmFtZXNwYWNlIFBBTAorCisjZW5k
aWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCmluZGV4IDEyOWI2ZTJkNTBkNTIxNmRiNWE0
Njg3NjZjMTRmZDgyZWE1M2JjNzcuLjEyZGQ4YTc4ZWY0MjExZDUxYjU3ZmUwZTgxYmU0MGZlMzBj
YTJmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXpl
ZFN0cmluZ3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2Nh
bGl6ZWRTdHJpbmdzQ29jb2EubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMTUgKzIzLDE2IEBACiAgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiTG9j
YWxpemVkU3RyaW5ncy5oIgogCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRl
ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4K
LSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbXBvcnQgIk5vdEltcGxlbWVudGVk
LmgiCisjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxwYWwvc3lz
dGVtL21hYy9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuaD4KKyNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25z
Lmg+CisjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNjYsNyArNjcsNyBAQCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90
bGlnaHQoKQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKIHsKLSAgICBh
dXRvIHNlYXJjaFByb3ZpZGVyTmFtZSA9IGFkb3B0Q0Yod2tDb3B5RGVmYXVsdFNlYXJjaFByb3Zp
ZGVyRGlzcGxheU5hbWUoKSk7CisgICAgYXV0byBzZWFyY2hQcm92aWRlck5hbWUgPSBQQUw6OmRl
ZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKCk7CiAgICAgcmV0dXJuIGZvcm1hdExvY2Fs
aXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCJTZWFyY2ggd2l0aCAlQCIsICJTZWFyY2ggd2l0aCBz
ZWFyY2ggcHJvdmlkZXIgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBwcm92aWRlciBuYW1lIGluc2Vy
dGVkIiksIHNlYXJjaFByb3ZpZGVyTmFtZS5nZXQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IGVlM2U1MzdmYjhj
MmI2ODcwZTYxZGZkMjM5NzYwN2VjN2YxZjRiMWEuLmQzNzllMjQ3NGQxNjY2NTRhNGMxMjljY2Ni
MGYxZWRlM2U2MzI1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTQtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDIwICsyMywyNCBAQAogICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJTY3JvbGxDb250cm9sbGVyLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlNjcm9sbENvbnRyb2xsZXIuaCIKIAotI2luY2x1ZGUgIkxheW91dFNpemUuaCIKLSNpbmNsdWRl
ICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKLSNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNl
LmgiCi0jaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCi0jaW5jbHVkZSA8c3lzL3N5
c2N0bC5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CisjaW1wb3J0ICJMYXlvdXRTaXplLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdoZWVsRXZlbnQu
aCIKKyNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgIldoZWVsRXZl
bnRUZXN0VHJpZ2dlci5oIgorI2ltcG9ydCA8c3lzL3N5c2N0bC5oPgorI2ltcG9ydCA8c3lzL3Rp
bWUuaD4KKyNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgogCiAjaWYgRU5BQkxFKENTU19TQ1JP
TExfU05BUCkKLSNpbmNsdWRlICJTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oIgotI2luY2x1ZGUg
IlNjcm9sbGFibGVBcmVhLmgiCisjaW1wb3J0ICJTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oIgor
I2ltcG9ydCAiU2Nyb2xsYWJsZUFyZWEuaCIKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQor
I2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTY3JvbGxWaWV3U1BJLmg+CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShSVUJCRVJfQkFORElORykgfHwgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKQEAgLTUyLDE3
ICs1NiwxNyBAQCBzdGF0aWMgY29uc3QgZmxvYXQgcnViYmVyYmFuZE1pbmltdW1SZXF1aXJlZERl
bHRhQmVmb3JlU3RyZXRjaCA9IDEwOwogI2lmIFBMQVRGT1JNKE1BQykKIHN0YXRpYyBmbG9hdCBl
bGFzdGljRGVsdGFGb3JUaW1lRGVsdGEoZmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBmbG9hdCBpbml0
aWFsVmVsb2NpdHksIGZsb2F0IGVsYXBzZWRUaW1lKQogewotICAgIHJldHVybiB3a05TRWxhc3Rp
Y0RlbHRhRm9yVGltZURlbHRhKGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFZlbG9jaXR5LCBlbGFw
c2VkVGltZSk7CisgICAgcmV0dXJuIF9OU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YShpbml0aWFs
UG9zaXRpb24sIGluaXRpYWxWZWxvY2l0eSwgZWxhcHNlZFRpbWUpOwogfQogCiBzdGF0aWMgZmxv
YXQgZWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKGZsb2F0IGRlbHRhKQogewotICAgIHJldHVy
biB3a05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKGRlbHRhKTsKKyAgICByZXR1cm4gX05T
RWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKGRlbHRhKTsKIH0KIAogc3RhdGljIGZsb2F0IHJl
Ym91bmREZWx0YUZvckVsYXN0aWNEZWx0YShmbG9hdCBkZWx0YSkKIHsKLSAgICByZXR1cm4gd2tO
U1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YShkZWx0YSk7CisgICAgcmV0dXJuIF9OU1JlYm91
bmREZWx0YUZvckVsYXN0aWNEZWx0YShkZWx0YSk7CiB9CiAKIHN0YXRpYyBmbG9hdCBzY3JvbGxX
aGVlbE11bHRpcGxpZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggZjQyNTc5NzAxMGRjYTIzNzcwYjhm
ZTQ2MDViYzQ5YjBmNGQ2MDhhMC4uYzY5NDZkNmRmZDNiY2UzYTFmODYyNGEzOTRiYzY4NjlkN2Qy
YzNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDcgKzI0LDYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCi0KICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ0EuaCIKIAogI2lmIFVTRShDQSkKQEAg
LTQ3LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIK
ICNpbmNsdWRlIDxRdWFydHpDb3JlL0NBVHJhbnNmb3JtM0QuaD4KICNpbmNsdWRlIDxsaW1pdHMu
aD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmg+CiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTI5ODgsNyArMjk4OCw3IEBAIGJvb2wgR3JhcGhpY3NM
YXllckNBOjpjcmVhdGVUcmFuc2Zvcm1BbmltYXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBLZXlm
cmFtZVZhbHVlCiAgICAgICAgIC8vIG9uIG9yIGJlZm9yZSBTbm93IExlb3BhcmQuCiAgICAgICAg
IC8vIEZJWE1FOiBUaGlzIGZpeCBoYXMgbm90IGJlZW4gYWRkZWQgdG8gUXVhcnR6Q29yZSBvbiBX
aW5kb3dzIHlldCAoPHJkYXI6Ly9wcm9ibGVtLzkxMTIyMzM+KSBzbyB3ZSBleHBlY3QgdGhlCiAg
ICAgICAgIC8vIHJldmVyc2VkIGFuaW1hdGlvbiBiZWhhdmlvcgotICAgICAgICBzdGF0aWMgYm9v
bCBleGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkID0gd2tFeGVjdXRhYmxl
V2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKCk7CisgICAgICAgIHN0YXRpYyBib29sIGV4
ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQgPSAhX0NGRXhlY3V0YWJsZUxp
bmtlZE9uT3JBZnRlcihDRlN5c3RlbVZlcnNpb25MaW9uKTsKICAgICAgICAgaWYgKCFleGVjdXRh
YmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKQogICAgICAgICAgICAgcmV2ZXJzZUFu
aW1hdGlvbkxpc3QgPSBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9D
dXJzb3JNYWMubW0KaW5kZXggYWEzNDVlODhlNDgxMThjNDY4N2I5ZWVmYmZjNzMyMThkYzQ3MDcw
Yy4uNDE3MmUyMjI2OGMzZGM0MWRhNTYwZTRlNGMyOGZjNjdjZTgyYzFkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3LDggQEAK
ICNpbXBvcnQgIkN1cnNvci5oIgogCiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgi
CisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJU2Vydmlj
ZXNTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3
dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTM3LDYgKzM5LDEzOSBAQCBAaW1wbGVtZW50YXRpb24g
V2ViQ29yZUN1cnNvckJ1bmRsZQogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitz
dGF0aWMgTlNDdXJzb3IgKmJ1c3lCdXRDbGlja2FibGVOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNv
ciAqbWFrZUFsaWFzTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKm1vdmVOU0N1cnNvcjsKK3N0
YXRpYyBOU0N1cnNvciAqcmVzaXplRWFzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNp
emVFYXN0V2VzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVOb3J0aE5TQ3Vyc29y
Oworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVOb3J0aFNvdXRoTlNDdXJzb3I7CitzdGF0aWMgTlND
dXJzb3IgKnJlc2l6ZU5vcnRoZWFzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVO
b3J0aGVhc3RTb3V0aHdlc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplTm9ydGh3
ZXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRod2VzdFNvdXRoZWFzdE5T
Q3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVTb3V0aE5TQ3Vyc29yOworc3RhdGljIE5T
Q3Vyc29yICpyZXNpemVTb3V0aGVhc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXpl
U291dGh3ZXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZVdlc3ROU0N1cnNvcjsK
Kworc3RhdGljIE5TQ3Vyc29yICpjZWxsTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKmhlbHBO
U0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqem9vbUluTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJz
b3IgKnpvb21PdXROU0N1cnNvcjsKKworc3RhdGljIE5TSW50ZWdlciBXS0NvcmVDdXJzb3JfY29y
ZUN1cnNvclR5cGUoaWQgc2VsZiwgU0VMKQoreworICAgIGlmIChzZWxmID09IGJ1c3lCdXRDbGlj
a2FibGVOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yQnVzeUJ1dENsaWNrYWJs
ZTsKKyAgICBpZiAoc2VsZiA9PSBtYWtlQWxpYXNOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtD
b3JlQ3Vyc29yTWFrZUFsaWFzOworICAgIGlmIChzZWxmID09IG1vdmVOU0N1cnNvcikKKyAgICAg
ICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93TW92ZTsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVF
YXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZUVhc3Q7
CisgICAgaWYgKHNlbGYgPT0gcmVzaXplRWFzdFdlc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJu
IGtDb3JlQ3Vyc29yV2luZG93UmVzaXplRWFzdFdlc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXpl
Tm9ydGhOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9y
dGg7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGhTb3V0aE5TQ3Vyc29yKQorICAgICAgICBy
ZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aFNvdXRoOworICAgIGlmIChzZWxmID09
IHJlc2l6ZU5vcnRoZWFzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5k
b3dSZXNpemVOb3J0aEVhc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGhlYXN0U291dGh3
ZXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRo
RWFzdFNvdXRoV2VzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVOb3J0aHdlc3ROU0N1cnNvcikK
KyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0OworICAgIGlm
IChzZWxmID09IHJlc2l6ZU5vcnRod2VzdFNvdXRoZWFzdE5TQ3Vyc29yKQorICAgICAgICByZXR1
cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aFdlc3RTb3V0aEVhc3Q7CisgICAgaWYgKHNl
bGYgPT0gcmVzaXplU291dGhOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2lu
ZG93UmVzaXplU291dGg7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplU291dGhlYXN0TlNDdXJzb3Ip
CisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZVNvdXRoRWFzdDsKKyAgICBp
ZiAoc2VsZiA9PSByZXNpemVTb3V0aHdlc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3Jl
Q3Vyc29yV2luZG93UmVzaXplU291dGhXZXN0OworICAgIGlmIChzZWxmID09IHJlc2l6ZVdlc3RO
U0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplV2VzdDsKKyAg
ICBpZiAoc2VsZiA9PSBjZWxsTlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvckNl
bGw7CisgICAgaWYgKHNlbGYgPT0gaGVscE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVD
dXJzb3JIZWxwOworICAgIGlmIChzZWxmID09IHpvb21Jbk5TQ3Vyc29yKQorICAgICAgICByZXR1
cm4ga0NvcmVDdXJzb3Jab29tSW47CisgICAgaWYgKHNlbGYgPT0gem9vbU91dE5TQ3Vyc29yKQor
ICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3Jab29tT3V0OworICAgIAorICAgIHJldHVybiBOU05v
dEZvdW5kOworfQorCitzdGF0aWMgQ2xhc3MgY3JlYXRlQ29yZUN1cnNvckNsYXNzKHZvaWQpCit7
CisgICAgQ2xhc3MgY29yZUN1cnNvckNsYXNzID0gb2JqY19hbGxvY2F0ZUNsYXNzUGFpcihbTlND
dXJzb3IgY2xhc3NdLCAiV0tDb3JlQ3Vyc29yIiwgMCk7CisgICAgU0VMIGNvcmVDdXJzb3JUeXBl
ID0gTlNTZWxlY3RvckZyb21TdHJpbmcoQCJfY29yZUN1cnNvclR5cGUiKTsKKyAgICBjbGFzc19h
ZGRNZXRob2QoY29yZUN1cnNvckNsYXNzLCBjb3JlQ3Vyc29yVHlwZSwgKElNUClXS0NvcmVDdXJz
b3JfY29yZUN1cnNvclR5cGUsIG1ldGhvZF9nZXRUeXBlRW5jb2RpbmcoY2xhc3NfZ2V0SW5zdGFu
Y2VNZXRob2QoW05TQ3Vyc29yIGNsYXNzXSwgY29yZUN1cnNvclR5cGUpKSk7CisgICAgb2JqY19y
ZWdpc3RlckNsYXNzUGFpcihjb3JlQ3Vyc29yQ2xhc3MpOworICAgIHJldHVybiBjb3JlQ3Vyc29y
Q2xhc3M7Cit9CisKK3N0YXRpYyBDbGFzcyBjb3JlQ3Vyc29yQ2xhc3Modm9pZCkKK3sKKyAgICBD
bGFzcyBjb3JlQ3Vyc29yQ2xhc3MgPSBvYmpjX2xvb2tVcENsYXNzKCJXS0NvcmVDdXJzb3IiKTsK
KyAgICBpZiAoIWNvcmVDdXJzb3JDbGFzcykKKyAgICAgICAgY29yZUN1cnNvckNsYXNzID0gY3Jl
YXRlQ29yZUN1cnNvckNsYXNzKCk7CisgICAgcmV0dXJuIGNvcmVDdXJzb3JDbGFzczsKK30KKwor
c3RhdGljIE5TQ3Vyc29yICpjdXJzb3IoY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgICBOU0N1cnNv
ciAqKnNsb3QgPSAwOworICAgIAorICAgIGlmICghc3RyY21wKG5hbWUsICJCdXN5QnV0Q2xpY2th
YmxlIikpCisgICAgICAgIHNsb3QgPSAmYnVzeUJ1dENsaWNrYWJsZU5TQ3Vyc29yOworICAgIGVs
c2UgaWYgKCFzdHJjbXAobmFtZSwgIk1ha2VBbGlhcyIpKQorICAgICAgICBzbG90ID0gJm1ha2VB
bGlhc05TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIk1vdmUiKSkKKyAgICAg
ICAgc2xvdCA9ICZtb3ZlTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVz
aXplRWFzdCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZUVhc3ROU0N1cnNvcjsKKyAgICBlbHNl
IGlmICghc3RyY21wKG5hbWUsICJSZXNpemVFYXN0V2VzdCIpKQorICAgICAgICBzbG90ID0gJnJl
c2l6ZUVhc3RXZXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXpl
Tm9ydGgiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aE5TQ3Vyc29yOworICAgIGVsc2Ug
aWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZU5vcnRoU291dGgiKSkKKyAgICAgICAgc2xvdCA9ICZy
ZXNpemVOb3J0aFNvdXRoTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVz
aXplTm9ydGhlYXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplTm9ydGhlYXN0TlNDdXJzb3I7
CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGhlYXN0U291dGh3ZXN0Iikp
CisgICAgICAgIHNsb3QgPSAmcmVzaXplTm9ydGhlYXN0U291dGh3ZXN0TlNDdXJzb3I7CisgICAg
ZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGh3ZXN0IikpCisgICAgICAgIHNsb3Qg
PSAmcmVzaXplTm9ydGh3ZXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAi
UmVzaXplTm9ydGh3ZXN0U291dGhlYXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplTm9ydGh3
ZXN0U291dGhlYXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXpl
U291dGgiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVTb3V0aE5TQ3Vyc29yOworICAgIGVsc2Ug
aWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZVNvdXRoZWFzdCIpKQorICAgICAgICBzbG90ID0gJnJl
c2l6ZVNvdXRoZWFzdE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6
ZVNvdXRod2VzdCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZVNvdXRod2VzdE5TQ3Vyc29yOwor
ICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZVdlc3QiKSkKKyAgICAgICAgc2xvdCA9
ICZyZXNpemVXZXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiQ2VsbCIp
KQorICAgICAgICBzbG90ID0gJmNlbGxOU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5h
bWUsICJIZWxwIikpCisgICAgICAgIHNsb3QgPSAmaGVscE5TQ3Vyc29yOworICAgIGVsc2UgaWYg
KCFzdHJjbXAobmFtZSwgIlpvb21JbiIpKQorICAgICAgICBzbG90ID0gJnpvb21Jbk5TQ3Vyc29y
OworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlpvb21PdXQiKSkKKyAgICAgICAgc2xvdCA9
ICZ6b29tT3V0TlNDdXJzb3I7CisgICAgCisgICAgaWYgKCFzbG90KQorICAgICAgICByZXR1cm4g
bmlsOworICAgIAorICAgIGlmICghKnNsb3QpCisgICAgICAgICpzbG90ID0gW1tjb3JlQ3Vyc29y
Q2xhc3MoKSBhbGxvY10gaW5pdF07CisgICAgcmV0dXJuICpzbG90OworfQogCiAvLyBTaW1wbGUg
TlNDdXJzb3IgY2FsbHMgc2hvdWxkbid0IG5lZWQgcHJvdGVjdGlvbiwKIC8vIGJ1dCBjcmVhdGlu
ZyBhIGN1cnNvciB3aXRoIGEgYmFkIGltYWdlIG1pZ2h0IHRocm93LgpAQCAtMTAzLDcyICsyMzgs
NzIgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAg
YnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6V2FpdDoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNv
ciA9IHdrQ3Vyc29yKCJCdXN5QnV0Q2xpY2thYmxlIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSBjdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBj
YXNlIEN1cnNvcjo6SGVscDoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJI
ZWxwIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIkhlbHAiKTsKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6TW92ZToKICAgICBjYXNlIEN1cnNvcjo6TWlk
ZGxlUGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJNb3ZlIik7
CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIk1vdmUiKTsKICAgICAgICAgYnJl
YWs7CiAKICAgICBjYXNlIEN1cnNvcjo6RWFzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6RWFz
dFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplRWFz
dCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVFYXN0Iik7CiAg
ICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoUmVzaXplOgogICAgIGNhc2Ug
Q3Vyc29yOjpOb3J0aFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNv
cigiUmVzaXplTm9ydGgiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVz
aXplTm9ydGgiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhFYXN0
UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aEVhc3RQYW5uaW5nOgotICAgICAgICBtX3Bs
YXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRoZWFzdCIpOworICAgICAgICBtX3Bs
YXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0aGVhc3QiKTsKICAgICAgICAgYnJlYWs7
CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhXZXN0UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpO
b3J0aFdlc3RQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJl
c2l6ZU5vcnRod2VzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNp
emVOb3J0aHdlc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6U291dGhS
ZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoUGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9y
bUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVTb3V0aCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vy
c29yID0gY3Vyc29yKCJSZXNpemVTb3V0aCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
Q3Vyc29yOjpTb3V0aEVhc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoRWFzdFBhbm5p
bmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplU291dGhlYXN0
Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZVNvdXRoZWFzdCIp
OwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpTb3V0aFdlc3RSZXNpemU6CiAg
ICAgY2FzZSBDdXJzb3I6OlNvdXRoV2VzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSB3a0N1cnNvcigiUmVzaXplU291dGh3ZXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSBjdXJzb3IoIlJlc2l6ZVNvdXRod2VzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNh
c2UgQ3Vyc29yOjpXZXN0UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpXZXN0UGFubmluZzoKLSAg
ICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVXZXN0Iik7CisgICAgICAg
IG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZVdlc3QiKTsKICAgICAgICAgYnJlYWs7
CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhTb3V0aFJlc2l6ZToKLSAgICAgICAgbV9wbGF0Zm9y
bUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aFNvdXRoIik7CisgICAgICAgIG1fcGxhdGZv
cm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRoU291dGgiKTsKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIEN1cnNvcjo6RWFzdFdlc3RSZXNpemU6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSB3a0N1cnNvcigiUmVzaXplRWFzdFdlc3QiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNv
ciA9IGN1cnNvcigiUmVzaXplRWFzdFdlc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl
IEN1cnNvcjo6Tm9ydGhFYXN0U291dGhXZXN0UmVzaXplOgotICAgICAgICBtX3BsYXRmb3JtQ3Vy
c29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRoZWFzdFNvdXRod2VzdCIpOworICAgICAgICBtX3Bs
YXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0aGVhc3RTb3V0aHdlc3QiKTsKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhXZXN0U291dGhFYXN0UmVzaXplOgot
ICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRod2VzdFNvdXRo
ZWFzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0aHdl
c3RTb3V0aGVhc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Q29sdW1u
UmVzaXplOgpAQCAtMTg0LDcgKzMxOSw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1
cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OkNlbGw6Ci0g
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiQ2VsbCIpOworICAgICAgICBtX3Bs
YXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJDZWxsIik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2Fz
ZSBDdXJzb3I6OkNvbnRleHRNZW51OgpAQCAtMTkyLDExICszMjcsMTEgQEAgdm9pZCBDdXJzb3I6
OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl
IEN1cnNvcjo6QWxpYXM6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiTWFr
ZUFsaWFzIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIk1ha2VBbGlhcyIp
OwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpQcm9ncmVzczoKLSAgICAgICAg
bV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJCdXN5QnV0Q2xpY2thYmxlIik7CisgICAgICAg
IG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKICAgICAgICAg
YnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9Ecm9wOgpAQCAtMjE2LDExICszNTEsMTEgQEAg
dm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7
CiAKICAgICBjYXNlIEN1cnNvcjo6Wm9vbUluOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0g
d2tDdXJzb3IoIlpvb21JbiIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJa
b29tSW4iKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Wm9vbU91dDoKLSAg
ICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJab29tT3V0Iik7CisgICAgICAgIG1f
cGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlpvb21PdXQiKTsKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIEN1cnNvcjo6R3JhYjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCmluZGV4IGFjZTI5OGMxMmY4MjBlZDUwZDY5Y2Zl
ZjY1MTYzMGQwODRjMDUyZmUuLjU1ZmNhMTI4MTYyZjYzODIwMTU2ZmEyMTFiMjdiN2FkMmNmMTk1
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVt
SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0
ZW1JbnRlcmZhY2UuaApAQCAtMTIzLDcgKzEyMyw2IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgd2tQ
YXR0ZXJuVGlsaW5nQ29uc3RhbnRTcGFjaW5nCiB9IHdrUGF0dGVyblRpbGluZzsKICNpZiAhUExB
VEZPUk0oSU9TKQotZXh0ZXJuIHZvaWQgKCp3a0RyYXdCZXplbGVkVGV4dEFyZWEpKE5TUmVjdCwg
Qk9PTCBlbmFibGVkKTsKIGV4dGVybiB2b2lkICgqd2tEcmF3TWVkaWFTbGlkZXJUcmFjaykoQ0dD
b250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCByZWN0LCBmbG9hdCB0aW1lTG9hZGVkLCBmbG9hdCBj
dXJyZW50VGltZSwKICAgICBmbG9hdCBkdXJhdGlvbiwgdW5zaWduZWQgc3RhdGUpOwogZXh0ZXJu
IHZvaWQgKCp3a0RyYXdNZWRpYVVJUGFydCkoaW50IHBhcnQsIENHQ29udGV4dFJlZiBjb250ZXh0
LCBDR1JlY3QgcmVjdCwgdW5zaWduZWQgc3RhdGUpOwpAQCAtMTM2LDI0ICsxMzUsMTAgQEAgZXh0
ZXJuIHZvaWQgKCp3a1NldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdFbmFibGVkKShCT09M
KTsKIGV4dGVybiB2b2lkKiB3a0dldEh5cGhlbmF0aW9uTG9jYXRpb25CZWZvcmVJbmRleDsKICNl
bmRpZgogCi0jaWYgIVBMQVRGT1JNKElPUykKLWV4dGVybiBib29sICgqd2tFeGVjdXRhYmxlV2Fz
TGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKSh2b2lkKTsKLQotZXh0ZXJuIENGU3RyaW5nUmVm
ICgqd2tDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpKHZvaWQpOwotCi1leHRl
cm4gTlNDdXJzb3IgKigqd2tDdXJzb3IpKGNvbnN0IGNoYXIqKTsKLSNlbmRpZiAvLyAhUExBVEZP
Uk0oSU9TKQotCiAjaWYgUExBVEZPUk0oSU9TKQogZXh0ZXJuIHZvaWQgKCp3a1NldExheWVyQ29u
dGVudHNTY2FsZSkoQ0FMYXllciAqKTsKICNlbmRpZgogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBf
X0NGVVJMU3RvcmFnZVNlc3Npb24qIENGVVJMU3RvcmFnZVNlc3Npb25SZWY7CiAKLSNpZiAhUExB
VEZPUk0oSU9TKQotZXh0ZXJuIENHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRh
KShDR0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0aWFsVmVsb2NpdHksIENHRmxv
YXQgZWxhcHNlZFRpbWUpOwotZXh0ZXJuIENHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yUmVi
b3VuZERlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLWV4dGVybiBDR0Zsb2F0ICgqd2tOU1JlYm91bmRE
ZWx0YUZvckVsYXN0aWNEZWx0YSkoQ0dGbG9hdCBkZWx0YSk7Ci0jZW5kaWYKLQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5t
bQppbmRleCAzNTA3MzE5YjVkZDhhN2U3MDZmZTYzMTNkMDQxZjM4NDkwODAwOGEzLi44ZmJiMWQz
ZDhjODg2OGMyNDU0ZjMwOWM2OWUwNjQwMGYzZGZmOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQpAQCAtMzAsNyAr
MzAsNiBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotdm9pZCAoKndr
RHJhd0JlemVsZWRUZXh0QXJlYSkoTlNSZWN0LCBCT09MIGVuYWJsZWQpOwogdm9pZCAoKndrRHJh
d01lZGlhU2xpZGVyVHJhY2spKENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1JlY3QgcmVjdCwgZmxv
YXQgdGltZUxvYWRlZCwgZmxvYXQgY3VycmVudFRpbWUsCiAgICAgZmxvYXQgZHVyYXRpb24sIHVu
c2lnbmVkIHN0YXRlKTsKIEJPT0wgKCp3a0hpdFRlc3RNZWRpYVVJUGFydCkoaW50IHBhcnQsIENH
UmVjdCBib3VuZHMsIENHUG9pbnQgcG9pbnQpOwpAQCAtNDIsMTQgKzQxLDQgQEAgdm9pZCAoKndr
UG9wdXBNZW51KShOU01lbnUqLCBOU1BvaW50IGxvY2F0aW9uLCBmbG9hdCB3aWR0aCwgTlNWaWV3
KiwgaW50IHNlbGVjdGUKIAogdm9pZCogd2tHZXRIeXBoZW5hdGlvbkxvY2F0aW9uQmVmb3JlSW5k
ZXg7CiAKLWJvb2wgKCp3a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQp
KHZvaWQpOwotCiBDRlN0cmluZ1JlZiAoKndrQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3Bs
YXlOYW1lKSh2b2lkKTsKLQotTlNDdXJzb3IgKigqd2tDdXJzb3IpKGNvbnN0IGNoYXIqKTsKLQot
I2lmICFQTEFURk9STShJT1MpCi1DR0Zsb2F0ICgqd2tOU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0
YSkoQ0dGbG9hdCBpbml0aWFsUG9zaXRpb24sIENHRmxvYXQgaW5pdGlhbFZlbG9jaXR5LCBDR0Zs
b2F0IGVsYXBzZWRUaW1lKTsKLUNHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERl
bHRhKShDR0Zsb2F0IGRlbHRhKTsKLUNHRmxvYXQgKCp3a05TUmVib3VuZERlbHRhRm9yRWxhc3Rp
Y0RlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDkzZThkNjE5NzE3NjE3NWQ4Y2NiMzZlMTljZmVmYmE5
YzQ4NjU1ZWYuLmYwMGM4Mzk3YjU4YTQxYWE5MzEyOGEyMjZhYWU3NWE2ZmI5YWM1NGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTc0LDYgKzc0LDcg
QEAKICNpbXBvcnQgPG1hdGguaD4KICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJ
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQ29sb3JTUEkuaD4KKyNpbXBvcnQgPHBhbC9z
cGkvbWFjL05TQ2VsbFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTaGFyaW5nU2Vydmlj
ZVBpY2tlclNQSS5oPgogI2ltcG9ydCA8d3RmL01hdGhFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KQEAgLTg4NCw3ICs4ODUsNyBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1
c3RUZXh0RmllbGRTdHlsZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmLCBjb25zdCBFbAog
Ym9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRUZXh0QXJlYShjb25zdCBSZW5kZXJPYmplY3QmIG8s
IGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QmIHIpCiB7CiAgICAg
TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dChwYWludEluZm8uY29udGV4
dCgpKTsKLSAgICB3a0RyYXdCZXplbGVkVGV4dEFyZWEociwgaXNFbmFibGVkKG8pICYmICFpc1Jl
YWRPbmx5Q29udHJvbChvKSk7CisgICAgX05TRHJhd0NhcmJvblRoZW1lTGlzdEJveChyLCBpc0Vu
YWJsZWQobykgJiYgIWlzUmVhZE9ubHlDb250cm9sKG8pLCBZRVMsIFlFUyk7CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21h
Yy9OZXR3b3JrUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFj
L05ldHdvcmtQcm9jZXNzTWFjLm1tCmluZGV4IDZmNzUyOTUyZTc2YzM0ODdiMmFjYTBkMmRlMTEz
NWFhYzNkYWVlODcuLjEzOGJlNmI4ZmZjNzQzODg1MDFhNTE4ZWJhZjAyNDJmOWYxMjkyNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNz
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9j
ZXNzTWFjLm1tCkBAIC00Miw2ICs0Miw3IEBACiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UuaD4KICNpbXBvcnQgPG5vdGlmeS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtT
UEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4KICNpbXBv
cnQgPHN5c2V4aXRzLmg+CiAjaW1wb3J0IDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CiAj
aW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTU5LDcgKzYwLDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXIKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFt
ZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMp
CiB7CiAgICAgTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAIE5ldHdvcmtpbmciLCAidmlzaWJsZSBuYW1lIG9mIHRo
ZSBuZXR3b3JrIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4i
KSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsKLSAgICBXS1NldFZpc2li
bGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CisgICAgX0xT
U2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0
Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9rTFNEaXNwbGF5TmFtZUtleSwgKENGU3RyaW5nUmVm
KWFwcGxpY2F0aW9uTmFtZSwgbnVsbHB0cik7CiB9CiAKIHN0YXRpYyB2b2lkIG92ZXJyaWRlU3lz
dGVtUHJveGllcyhjb25zdCBTdHJpbmcmIGh0dHBQcm94eSwgY29uc3QgU3RyaW5nJiBodHRwc1By
b3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Q
cm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9j
ZXNzTWFjLm1tCmluZGV4IDI0ZDI2ZWQxZTY3NDNhZWM1NTdhOGY3NjQ4OWI2NzM4MDQxN2ZkMDUu
LmRiMGMzMDZmMDYyZTdkZjkzZTEzOWFkZGUwNDZiOWE4YmY5N2RmNzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KQEAgLTYy
Miw5ICs2MjIsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVByb2Nl
c3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYQogdm9pZCBQbHVnaW5Qcm9jZXNz
Ojppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWUg
PSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIlQCAoJUAgSW50ZXJu
ZXQgcGx1Zy1pbikiLCAidmlzaWJsZSBuYW1lIG9mIHRoZSBwbHVnLWluIGhvc3QgcHJvY2Vzcy4g
VGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBwbHVnLWluIG5hbWUgYW5kIHRoZSBzZWNvbmQgYXJn
dW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiksIFtbKE5TU3RyaW5nICopbV9wbHVnaW5Q
YXRoIGxhc3RQYXRoQ29tcG9uZW50XSBzdHJpbmdCeURlbGV0aW5nUGF0aEV4dGVuc2lvbl0sIChO
U1N0cmluZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZV07Ci0gICAgV0tTZXRWaXNpYmxlQXBw
bGljYXRpb25OYW1lKChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUpOworICAgIF9MU1NldEFw
cGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJl
bnRBcHBsaWNhdGlvbkFTTigpLCBfa0xTRGlzcGxheU5hbWVLZXksIChDRlN0cmluZ1JlZilhcHBs
aWNhdGlvbk5hbWUsIG51bGxwdHIpOwogICAgIGlmICghbV9wbHVnaW5CdW5kbGVJZGVudGlmaWVy
LmlzRW1wdHkoKSkKLSAgICAgICAgV0tTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNQ
bHVnSW5CdW5kbGVJZGVudGlmaWVyS2V5LCBtX3BsdWdpbkJ1bmRsZUlkZW50aWZpZXIuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSk7CisgICAgICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25J
dGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBr
TFNQbHVnSW5CdW5kbGVJZGVudGlmaWVyS2V5LCBtX3BsdWdpbkJ1bmRsZUlkZW50aWZpZXIuY3Jl
YXRlQ0ZTdHJpbmcoKS5nZXQoKSwgbnVsbHB0cik7CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6
aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94
UGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvbWFj
L1N0b3JhZ2VQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMv
U3RvcmFnZVByb2Nlc3NNYWMubW0KaW5kZXggYzAzODg2MGY4ZjE0M2MwZGNmZmM5M2E1Mjc2NmQ2
MzQ1NDc0MWYzOS4uZTM5NjgxYWM3NGFmZWQxZDZmNDlmYmM4ZTUzMDViZmM1YzQzNmE3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVByb2Nlc3NN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVByb2Nl
c3NNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYktpdFN5c3Rl
bUludGVyZmFjZS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5o
PgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDcsNyArNDgsNyBAQCB2b2lkIFN0
b3JhZ2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcgogdm9pZCBTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NO
YW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKIHsKICAgICBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0cmluZ1dp
dGhGb3JtYXQ6V0VCX1VJX1NUUklORygiJUAgU3RvcmFnZSIsICJ2aXNpYmxlIG5hbWUgb2YgdGhl
IHN0b3JhZ2UgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiIp
LCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwotICAgIFdLU2V0VmlzaWJs
ZUFwcGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lKTsKKyAgICBfTFNT
ZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRD
dXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5LCAoQ0ZTdHJpbmdSZWYp
YXBwbGljYXRpb25OYW1lLCBudWxscHRyKTsKIH0KIAogdm9pZCBTdG9yYWdlUHJvY2Vzczo6aW5p
dGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFy
YW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmln
YXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5tbQppbmRleCAzMjE0OGI5NTZjOTRmZjI4ODg5M2UxNmIyN2FiNTlmYjc0ZDdhYmIxLi5m
OGI5ZGIyNjVhOGEyNGM4NGIyODk5Nzg5ZWQzZmQ4ZWVhNWE0NWZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC03MSw3ICs3MSw3
IEBACiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogI2lmIEhBVkUoQVBQX0xJTktT
KQotI2ltcG9ydCA8cGFsL3NwaS9pb3MvTGF1bmNoU2VydmljZXNTUEkuaD4KKyNpbXBvcnQgPHBh
bC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4KICNlbmRpZgogCiAjaWYgVVNFKFFVSUNL
X0xPT0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmlu
ZGV4IDk5ODBlMTVlMmY5OTI2NmFiMDliOGE1YTAxYmE3ZWQ3ODdhNWI1MDUuLjAxNTVjYjE4YjE1
MTQzOWEwZjEzYjIzYWFkYWFkNjE3NzFjNmU1OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTQsNiArOTQsNyBAQAogI2ltcG9ydCA8cGFs
L3NwaS9tYWMvTlNBY2Nlc3NpYmlsaXR5U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0Fw
cGxpY2F0aW9uU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0ltbWVkaWF0ZUFjdGlvbkdl
c3R1cmVSZWNvZ25pemVyU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1Njcm9sbGVySW1w
U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1NwZWxsQ2hlY2tlclNQSS5oPgogI2ltcG9y
dCA8cGFsL3NwaS9tYWMvTlNUZXh0RmluZGVyU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9O
U1dpbmRvd1NQSS5oPgpAQCAtMTI1OSw3ICsxMjYwLDcgQEAgc3RhdGljIE5TVHJhY2tpbmdBcmVh
T3B0aW9ucyB0cmFja2luZ0FyZWFPcHRpb25zKCkKIHsKICAgICAvLyBMZWdhY3kgc3R5bGUgc2Ny
b2xsYmFycyBoYXZlIGRlc2lnbiBkZXRhaWxzIHRoYXQgcmVseSBvbiB0cmFja2luZyB0aGUgbW91
c2UgYWxsIHRoZSB0aW1lLgogICAgIE5TVHJhY2tpbmdBcmVhT3B0aW9ucyBvcHRpb25zID0gTlNU
cmFja2luZ01vdXNlTW92ZWQgfCBOU1RyYWNraW5nTW91c2VFbnRlcmVkQW5kRXhpdGVkIHwgTlNU
cmFja2luZ0luVmlzaWJsZVJlY3QgfCBOU1RyYWNraW5nQ3Vyc29yVXBkYXRlOwotICAgIGlmIChX
S1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSkKKyAg
ICBpZiAoX05TUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlTGVn
YWN5KQogICAgICAgICBvcHRpb25zIHw9IE5TVHJhY2tpbmdBY3RpdmVBbHdheXM7CiAgICAgZWxz
ZQogICAgICAgICBvcHRpb25zIHw9IE5TVHJhY2tpbmdBY3RpdmVJbktleVdpbmRvdzsKQEAgLTE5
NDUsNyArMTk0Niw3IEBAIGJvb2wgV2ViVmlld0ltcGw6Om1pZ2h0QmVnaW5EcmFnV2hpbGVJbmFj
dGl2ZSgpCiBib29sIFdlYlZpZXdJbXBsOjptaWdodEJlZ2luU2Nyb2xsV2hpbGVJbmFjdGl2ZSgp
CiB7CiAgICAgLy8gTGVnYWN5IHN0eWxlIHNjcm9sbGJhcnMgaGF2ZSBkZXNpZ24gZGV0YWlscyB0
aGF0IHJlbHkgb24gdHJhY2tpbmcgdGhlIG1vdXNlIGFsbCB0aGUgdGltZS4KLSAgICBpZiAoV0tS
ZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kpCisgICAg
aWYgKF9OU1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2Fj
eSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCmlu
ZGV4IGMzZTkyYTdlMTlkYWE4Y2VhNDMxYmI2NmU4YTE4NzE2ZDc5YWU4ZjYuLjljZTg0MTcxMzVi
ZTRmMzgyYTljNWJiMmViNjA1ZjliNWFkMzVjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCkBAIC00Nyw3ICs0Nyw3
IEBACiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEhBVkUoQVBQX0xJTktT
KQotI2ltcG9ydCA8cGFsL3NwaS9pb3MvTGF1bmNoU2VydmljZXNTUEkuaD4KKyNpbXBvcnQgPHBh
bC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4KICNlbmRpZgogCiAjaWYgSEFWRShTQUZB
UklfU0VSVklDRVNfRlJBTUVXT1JLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCmluZGV4IDdkNmNiM2VkYTFkMDg5Yzg3NDVhYjM0
YTAxYzNjYjZjZmVmZTNjMjEuLjEyNDFiZDhkOWUxYjcwMTdmMDlkNGM0YzRmZjllYTMwMTljNzZi
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQ
cm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51
UHJveHlNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVz
LmgiCiAjaW1wb3J0ICJXZWJQb3B1cEl0ZW0uaCIKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVy
ZmFjZS5oPgorI2ltcG9ydCA8cGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xNjUsNyArMTY2LDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVQ
cm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9u
IHRleHQKICAgICB9CiAKICAgICBSZWY8V2ViUG9wdXBNZW51UHJveHlNYWM+IHByb3RlY3QoKnRo
aXMpOwotICAgIFdLUG9wdXBNZW51KG1lbnUsIGxvY2F0aW9uLCByb3VuZGYoTlNXaWR0aChyZWN0
KSksIGR1bW15Vmlldy5nZXQoKSwgc2VsZWN0ZWRJbmRleCwgZm9udCwgY29udHJvbFNpemUsIGRh
dGEuaGlkZUFycm93cyk7CisgICAgUEFMOjpwb3BVcE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5k
ZihOU1dpZHRoKHJlY3QpKSwgZHVtbXlWaWV3LmdldCgpLCBzZWxlY3RlZEluZGV4LCBmb250LCBj
b250cm9sU2l6ZSwgZGF0YS5oaWRlQXJyb3dzKTsKIAogICAgIFttX3BvcHVwIGRpc21pc3NQb3BV
cF07CiAgICAgW2R1bW15VmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdp
bk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9O
ZXRzY2FwZVBsdWdpbk1hYy5tbQppbmRleCBhMzEyMGU2MjUzODNiZWIyYWY3MDcwMjcwZjQ3Zjg1
ODk5MzBjMjA2Li5kMjkxYTExNDNjYzMxZWNkMTNjOGViYjgyMjUzMmNhN2VmMTFjOWZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0
c2NhcGVQbHVnaW5NYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCkBAIC0zOCw2ICszOCw3IEBACiAjaW1w
b3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgog
I2ltcG9ydCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21h
Yy9OU01lbnVTUEkuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8
d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCkBAIC0xNTgsNyArMTU5LDYgQEAgTlBCb29sIE5ldHNj
YXBlUGx1Z2luOjpjb252ZXJ0UG9pbnQoZG91YmxlIHNvdXJjZVgsIGRvdWJsZSBzb3VyY2VZLCBO
UENvb3JkaW5hdGUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLQogTlBFcnJvciBOZXRzY2FwZVBs
dWdpbjo6cG9wVXBDb250ZXh0TWVudShOUE1lbnUqIG5wTWVudSkKIHsKICAgICBpZiAoIW1fY3Vy
cmVudE1vdXNlRXZlbnQpCkBAIC0xNjgsNyArMTY4LDcgQEAgTlBFcnJvciBOZXRzY2FwZVBsdWdp
bjo6cG9wVXBDb250ZXh0TWVudShOUE1lbnUqIG5wTWVudSkKICAgICBpZiAoIWNvbnZlcnRQb2lu
dChtX2N1cnJlbnRNb3VzZUV2ZW50LT5kYXRhLm1vdXNlLnBsdWdpblgsIG1fY3VycmVudE1vdXNl
RXZlbnQtPmRhdGEubW91c2UucGx1Z2luWSwgTlBDb29yZGluYXRlU3BhY2VQbHVnaW4sIHNjcmVl
blgsIHNjcmVlblksIE5QQ29vcmRpbmF0ZVNwYWNlU2NyZWVuKSkKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAKLSAgICBXS1BvcHVwQ29udGV4dE1lbnUocmVpbnRlcnByZXRfY2FzdDxO
U01lbnUgKj4obnBNZW51KSwgTlNNYWtlUG9pbnQoc2NyZWVuWCwgc2NyZWVuWSkpOworICAgIF9O
U1BvcFVwQ2FyYm9uTWVudTMocmVpbnRlcnByZXRfY2FzdDxOU01lbnUgKj4obnBNZW51KSwgbmls
LCBuaWwsIE5TTWFrZVBvaW50KHNjcmVlblgsIHNjcmVlblkpLCAtMSwgbmlsLCAwLCBuaWwsIE5T
UG9wVXBNZW51VHlwZUNvbnRleHQsIG5pbCk7CiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbQppbmRleCA5MjdjOGFjNDNkMjVkNmY3YzdiODc4NTY2NjYwN2JkMjczYjNlYmExLi5hZmNm
ZmE1MTc0NWIyNWI5ZTc0MDQyODMwN2ZhY2VkNTQ4ZGVjYWExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDExLCAyMDEyLCAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtODEsNiArODEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIu
aD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8cGFsL3NwaS9j
Zy9Db3JlR3JhcGhpY3NTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgog
I2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW1wb3J0IDx3dGYvVVVJRC5oPgogCkBAIC0x
NTg1LDcgKzE1ODYsNyBAQCBib29sIFBERlBsdWdpbjo6aGFuZGxlQ29udGV4dE1lbnVFdmVudChj
b25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKICAgICBJbnRQb2ludCBwb2ludCA9IGZyYW1lVmll
dy0+Y29udGVudHNUb1NjcmVlbihJbnRSZWN0KGZyYW1lVmlldy0+d2luZG93VG9Db250ZW50cyhl
dmVudC5wb3NpdGlvbigpKSwgSW50U2l6ZSgpKSkubG9jYXRpb24oKTsKICAgICAKICAgICBpZiAo
TlNNZW51ICpuc01lbnUgPSBbbV9wZGZMYXllckNvbnRyb2xsZXIgbWVudUZvckV2ZW50Om5zRXZl
bnRGb3JXZWJNb3VzZUV2ZW50KGV2ZW50KV0pIHsKLSAgICAgICAgV0tQb3B1cENvbnRleHRNZW51
KG5zTWVudSwgcG9pbnQpOworICAgICAgICBfTlNQb3BVcENhcmJvbk1lbnUzKG5zTWVudSwgbmls
LCBuaWwsIHBvaW50LCAtMSwgbmlsLCAwLCBuaWwsIE5TUG9wVXBNZW51VHlwZUNvbnRleHQsIG5p
bCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNl
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0
ZW1JbnRlcmZhY2UubW0KaW5kZXggNmQxZGQ3MzM5MTllZDRmNDg2MzdkNjdjZTYxNWRjNmZkMDQ3
MTIyNy4uYjlhYzM5NmJiMDM2ZDU1ZDcxMmMyMjc0ODJhZmEzZmM5NzczMDkzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1J
bnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTM3LDE3ICszNywxMCBAQCB2b2lkIEluaXRX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgCiAgICAgZGlzcGF0Y2hfb25jZSgmaW5p
dE9uY2UsIF57CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAgICAgSU5JVChEcmF3QmV6ZWxlZFRl
eHRBcmVhKTsKICAgICAgICAgSU5JVChEcmF3TWVkaWFTbGlkZXJUcmFjayk7CiAgICAgICAgIElO
SVQoRHJhd01lZGlhVUlQYXJ0KTsKICAgICAgICAgSU5JVChIaXRUZXN0TWVkaWFVSVBhcnQpOwog
ICAgICAgICBJTklUKE1lYXN1cmVNZWRpYVVJUGFydCk7Ci0gICAgICAgIElOSVQoRXhlY3V0YWJs
ZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCk7Ci0gICAgICAgIElOSVQoQ29weURlZmF1
bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKTsKLSAgICAgICAgSU5JVChDdXJzb3IpOwotICAg
ICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKTsKLSAgICAgICAgSU5JVChOU0Vs
YXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk7Ci0gICAgICAgIElOSVQoTlNSZWJvdW5kRGVsdGFG
b3JFbGFzdGljRGVsdGEpOwogI2VuZGlmCiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA3YzM1ZDhlOTBiNzkx
Yzk0MjYxOWZkY2Y3NjYwM2M5YjQzMGVlMDJhLi40M2I3OTY2NmQxNTFlOWRhMjk3YWM2OWYyZDA5
YWRmODAyMTFkYmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0KQEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIFdlYlByb2Nlc3M6Omlu
aXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcgogICAgICAgICBhcHBsaWNhdGlvbk5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpXRUJfVUlfU1RSSU5HKCIlQCBXZWIgSW5zcGVjdG9yIiwgIlZpc2libGUgbmFtZSBvZiBXZWIg
SW5zcGVjdG9yJ3Mgd2ViIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24g
bmFtZS4iKSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsKICAgICBlbHNl
CiAgICAgICAgIGFwcGxpY2F0aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldF
Ql9VSV9TVFJJTkcoIiVAIFdlYiBDb250ZW50IiwgIlZpc2libGUgbmFtZSBvZiB0aGUgd2ViIHBy
b2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgKE5TU3RyaW5n
ICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsKLSAgICBXS1NldFZpc2libGVBcHBsaWNhdGlv
bk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CisgICAgX0xTU2V0QXBwbGljYXRp
b25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxp
Y2F0aW9uQVNOKCksIF9rTFNEaXNwbGF5TmFtZUtleSwgKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9u
TmFtZSwgbnVsbHB0cik7CiAjZW5kaWYKIH0KIApAQCAtMzk0LDcgKzM5NCw3IEBAIHZvaWQgV2Vi
UHJvY2Vzczo6dXBkYXRlQWN0aXZlUGFnZXMoKQogICAgIH0KIAogICAgIGRpc3BhdGNoX2FzeW5j
KGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVM
VCwgMCksIFthY3RpdmVQYWdlVVJMc10gewotICAgICAgICBXS1NldEFwcGxpY2F0aW9uSW5mb3Jt
YXRpb25JdGVtKENGU1RSKCJMU0FjdGl2ZVBhZ2VVc2VyVmlzaWJsZU9yaWdpbnNLZXkiKSwgKF9f
YnJpZGdlIENGQXJyYXlSZWYpYWN0aXZlUGFnZVVSTHMuZ2V0KCkpOworICAgICAgICBfTFNTZXRB
cHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRDdXJy
ZW50QXBwbGljYXRpb25BU04oKSwgQ0ZTVFIoIkxTQWN0aXZlUGFnZVVzZXJWaXNpYmxlT3JpZ2lu
c0tleSIpLCAoX19icmlkZ2UgQ0ZBcnJheVJlZilhY3RpdmVQYWdlVVJMcy5nZXQoKSwgbnVsbHB0
cik7CiAgICAgfSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdENvbnRleHRNZW51RGVsZWdhdGUubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRDb250ZXh0
TWVudURlbGVnYXRlLm1tCmluZGV4IDAyNjViZjBjNTFhOWYxODcxNTk2NTU1ZDY5MDdmOTAyMzcw
ZTc5NTcuLjYzOTJhYjA1MWYzMzkyNDMzYTAwNzBkNGJmY2Q2NDJiZDQ1NzFhMmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdENv
bnRleHRNZW51RGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVs
dERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0ZS5tbQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEsNiArNTEsNyBA
QAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTS5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RP
TVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8
cGFsL3N5c3RlbS9tYWMvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmg+CiAjaW1wb3J0IDx3dGYvQXNz
ZXJ0aW9ucy5oPgogCiBAaW1wbGVtZW50YXRpb24gV2ViRGVmYXVsdFVJRGVsZWdhdGUgKFdlYkNv
bnRleHRNZW51KQpAQCAtOTEsNyArOTIsNyBAQCAtIChOU01lbnVJdGVtICopbWVudUl0ZW1XaXRo
VGFnOihpbnQpdGFnIHRhcmdldDooaWQpdGFyZ2V0IHJlcHJlc2VudGVkT2JqZWN0OihpZAogICAg
ICAgICAgICAgYWN0aW9uID0gQHNlbGVjdG9yKF9zZWFyY2hXaXRoU3BvdGxpZ2h0RnJvbU1lbnU6
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYk1lbnVJdGVtVGFnU2VhcmNo
V2ViOiB7Ci0gICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVy
TmFtZSA9IGFkb3B0Q0YoV0tDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUoKSk7
CisgICAgICAgICAgICBhdXRvIHNlYXJjaFByb3ZpZGVyTmFtZSA9IFBBTDo6ZGVmYXVsdFNlYXJj
aFByb3ZpZGVyRGlzcGxheU5hbWUoKTsKICAgICAgICAgICAgIHRpdGxlID0gW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6VUlfU1RSSU5HX0lOVEVSTkFMKCJTZWFyY2ggd2l0aCAlQCIsICJTZWFy
Y2ggd2l0aCBzZWFyY2ggcHJvdmlkZXIgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBwcm92aWRlciBu
YW1lIGluc2VydGVkIiksIHNlYXJjaFByb3ZpZGVyTmFtZS5nZXQoKV07CiAgICAgICAgICAgICBh
Y3Rpb24gPSBAc2VsZWN0b3IoX3NlYXJjaFdpdGhHb29nbGVGcm9tTWVudTopOwogICAgICAgICAg
ICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tCmluZGV4IDE5YjM4YWUy
ZTgzNDMyN2RkNjczMzg2MTdiNjE3ZTg5N2Q3NjhkOWIuLjM4NGE1OTFlZmUxNzgyNjE5ZWEyZDhk
ZGVhMTUwMGZkOTVkZjJjZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Bs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNyBBcHBsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQx
LDYgKzQxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUv
SWRlbnRpZmllclJlcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+Cisj
aW1wb3J0IDxwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIAogZXh0ZXJuICJDIiB7CkBAIC0xMTcsNyArMTE4LDcgQEAgTmV0c2NhcGVQ
bHVnaW5Ib3N0UHJveHk6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5KG1hY2hfcG9ydF90IGNsaWVu
dFBvcnQsIG1hY2hfcG8KICAgICAKICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0
Q3VycmVudCgpLCBkZWF0aFBvcnRTb3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7
CiAgICAgCi0gICAgbV9jbGllbnRQb3J0U291cmNlID0gYWRvcHRDRihXS0NyZWF0ZU1JR1NlcnZl
clNvdXJjZSgobWlnX3N1YnN5c3RlbV90KSZXS1dlYktpdFBsdWdpbkNsaWVudF9zdWJzeXN0ZW0s
IG1fY2xpZW50UG9ydCkpOworICAgIG1fY2xpZW50UG9ydFNvdXJjZSA9IGFkb3B0Q0YoTVNIQ3Jl
YXRlTUlHU2VydmVyU291cmNlKG51bGxwdHIsIDAsIChtaWdfc3Vic3lzdGVtX3QpJldLV2ViS2l0
UGx1Z2luQ2xpZW50X3N1YnN5c3RlbSwgMCwgbV9jbGllbnRQb3J0LCBudWxscHRyKSk7CiAgICAg
Q0ZSdW5Mb29wQWRkU291cmNlKENGUnVuTG9vcEdldEN1cnJlbnQoKSwgbV9jbGllbnRQb3J0U291
cmNlLmdldCgpLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUpOwogICAgIENGUnVuTG9vcEFkZFNvdXJj
ZShDRlJ1bkxvb3BHZXRDdXJyZW50KCksIG1fY2xpZW50UG9ydFNvdXJjZS5nZXQoKSwgKENGU3Ry
aW5nUmVmKU5TRXZlbnRUcmFja2luZ1J1bkxvb3BNb2RlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQppbmRleCBj
YzVmODFkZmQ2NTZmYzhlNzM1ZDE4NTdmNWFlODUzOGQwNzRmZTE0Li44MWNmNGM3NWQyMDljYmNm
MWM0NzFmMTNjZTNjZTRmMGYxYjEwYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTMzLDYg
KzMzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Qb3B1
cE1lbnVDbGllbnQuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9y
dCA8cGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhj
ZXB0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTIxNyw3ICsyMTgsNyBA
QCB2b2lkIFBvcHVwTWVudU1hYzo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYs
IGludCBpbmRleCkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgV0tQb3B1cE1lbnUobWVu
dSwgbG9jYXRpb24sIHJvdW5kZihOU1dpZHRoKHIpKSwgZHVtbXlWaWV3LmdldCgpLCBpbmRleCwg
dG9OU0ZvbnQoZm9udCksIGNvbnRyb2xTaXplLCAhbV9jbGllbnQtPm1lbnVTdHlsZSgpLmhhc0Rl
ZmF1bHRBcHBlYXJhbmNlKCkpOworICAgIFBBTDo6cG9wVXBNZW51KG1lbnUsIGxvY2F0aW9uLCBy
b3VuZGYoTlNXaWR0aChyKSksIGR1bW15Vmlldy5nZXQoKSwgaW5kZXgsIHRvTlNGb250KGZvbnQp
LCBjb250cm9sU2l6ZSwgIW1fY2xpZW50LT5tZW51U3R5bGUoKS5oYXNEZWZhdWx0QXBwZWFyYW5j
ZSgpKTsKIAogICAgIFttX3BvcHVwIGRpc21pc3NQb3BVcF07CiAgICAgW2R1bW15VmlldyByZW1v
dmVGcm9tU3VwZXJ2aWV3XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggZjliODcw
MjJiNjYxOWQxOTA4MTc2ZmExMTczYTBjOWI5OTU2YTFjMi4uODlmM2UwNjVlZTM3ZmNmZjMyN2U2
ZjI4YmM1NGI2MTRmYjQ5ZThkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTE1
NSw3ICsxNTUsNyBAQAogCiAjaWYgSEFWRShBUFBfTElOS1MpCiAjaW1wb3J0IDxXZWJDb3JlL1dl
YkNvcmVUaHJlYWRSdW4uaD4KLSNpbXBvcnQgPHBhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJ
Lmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmg+CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpp
bmRleCBiZjcxNmI3NTdiMGM1OTczN2Y4ODMxMDJlYTUwNTg1OTMwMDIzN2VhLi5hOTkyOThiZjY4
MGRhZWIzMDdiODRiMjFhYzcwNTQwNDZkODM3ZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1t
CkBAIC00MywyNCArNDMsMTEgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lk
KQogICAgICAgICByZXR1cm47CiAKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIElOSVQoRHJhd0Jl
emVsZWRUZXh0QXJlYSk7CiAgICAgSU5JVChEcmF3TWVkaWFVSVBhcnQpOwogICAgIElOSVQoRHJh
d01lZGlhU2xpZGVyVHJhY2spOwogICAgIElOSVQoSGl0VGVzdE1lZGlhVUlQYXJ0KTsKICAgICBJ
TklUKE1lYXN1cmVNZWRpYVVJUGFydCk7CiAjZW5kaWYKIAotI2lmICFQTEFURk9STShJT1MpCi0g
ICAgSU5JVChFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKTsKLSAgICBJ
TklUKENvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSk7Ci0gICAgSU5JVChDdXJz
b3IpOwotI2VuZGlmCi0KLSNpZiAhUExBVEZPUk0oSU9TKQotICAgIElOSVQoTlNFbGFzdGljRGVs
dGFGb3JUaW1lRGVsdGEpOwotICAgIElOSVQoTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEp
OwotICAgIElOSVQoTlNSZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOwotI2VuZGlmCi0KICAg
ICBkaWRJbml0ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDI3NGExNjg3MDU3NDU0NDE0YWI5Mjk3NWE1YzA0OGM2MGVl
NWE1OGEuLjhkM2Y5ZWJiZjgyN2ZlMTQ4ZGUyNDE2MDI5ZjNmZDZhYmUzMzEyZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMTMwLDcg
KzEzMCw5IEBACiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPGRs
ZmNuLmg+CiAjaW1wb3J0IDxsaW1pdHM+CisjaW1wb3J0IDxwYWwvc3BpL2NmL0NGVXRpbGl0aWVz
U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5o
PgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oPgogI2ltcG9ydCA8cGFs
L3NwaS9tYWMvTlNTcGVsbENoZWNrZXJTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TVmll
d1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaD4KQEAgLTQ2ODIsNyAr
NDY4NCw3IEBAIC0gKHZvaWQpc2V0RGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3Vy
Y2UKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFfcHJpdmF0ZS0+aW5zdGFsbGVkVHJhY2tp
bmdBcmVhKSB7CiAgICAgICAgIE5TVHJhY2tpbmdBcmVhT3B0aW9ucyBvcHRpb25zID0gTlNUcmFj
a2luZ01vdXNlTW92ZWQgfCBOU1RyYWNraW5nTW91c2VFbnRlcmVkQW5kRXhpdGVkIHwgTlNUcmFj
a2luZ0luVmlzaWJsZVJlY3QgfCBOU1RyYWNraW5nQ3Vyc29yVXBkYXRlOwotICAgICAgICBpZiAo
V0tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kKKyAg
ICAgICAgaWYgKF9OU1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHls
ZUxlZ2FjeQogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICAgICAgICAgIHx8IFtb
c2VsZiBfd2ViVmlld10gX2Rhc2hib2FyZEJlaGF2aW9yOldlYkRhc2hib2FyZEJlaGF2aW9yQWx3
YXlzU2VuZE1vdXNlRXZlbnRzVG9BbGxXaW5kb3dzXQogI2VuZGlmCkBAIC02MzU0LDcgKzYzNTYs
NyBAQCAtICh2b2lkKWF0dGFjaFJvb3RMYXllcjooQ0FMYXllciAqKWxheWVyCiAgICAgaWYgKFtb
c2VsZiBfd2ViVmlld10gX3Bvc3RzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlvbnNd
KQogICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3Rp
ZmljYXRpb25OYW1lOl9XZWJWaWV3RGlkU3RhcnRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTm90aWZp
Y2F0aW9uIG9iamVjdDpbc2VsZiBfd2ViVmlld10gdXNlckluZm86bmlsXTsKIAotICAgIGlmIChX
S0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlTGlvbigpKQorICAgIGlmICghX0NGRXhlY3V0
YWJsZUxpbmtlZE9uT3JBZnRlcihDRlN5c3RlbVZlcnNpb25Nb3VudGFpbkxpb24pKQogICAgICAg
ICBbdmlld0xheWVyIHNldEdlb21ldHJ5RmxpcHBlZDpZRVNdOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYWQyOWE4MjI1Mjk4OWM2NmE2NWY2
NTg5NGY0ZTg2MTEzNTE5MWMzMC4uNGU4YjgyMTYxMWI4ODhkNDdlNjI4ZGRlZjlkM2JlYjU5ODUx
OGYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAt
MjA5LDYgKzIwOSw3IEBACiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8b2JqYy9y
dW50aW1lLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgorI2ltcG9ydCA8
cGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU1Rv
dWNoQmFyU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5n
c1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNSZXNwb25kZXJTUEkuaD4KQEAgLTI2MDks
MTYgKzI2MTAsMTYgQEAgLSAoaWQpX2Zvcm1EZWxlZ2F0ZUZvclNlbGVjdG9yOihTRUwpc2VsZWN0
b3IKICNpZiAhUExBVEZPUk0oSU9TKQogLSAoQk9PTClfbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5n
UXVpcmsKIHsKLSAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gV0tBcHBWZXJzaW9uQ2hlY2tM
ZXNzVGhhbihAImNvbS5hZG9iZS5BY3JvYmF0IiwgLTEsIDkuMCkKLSAgICAgICAgfHwgV0tBcHBW
ZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5BY3JvYmF0LlBybyIsIC0xLCA5LjApCi0g
ICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuUmVhZGVyIiwg
LTEsIDkuMCkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9i
ZS5kaXN0aWxsZXIiLCAtMSwgOS4wKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NU
aGFuKEAiY29tLmFkb2JlLkNvbnRyaWJ1dGUiLCAtMSwgNC4yKQotICAgICAgICB8fCBXS0FwcFZl
cnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLmRyZWFtd2VhdmVyLTkuMCIsIC0xLCA5LjEp
Ci0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20ubWFjcm9tZWRpYS5m
aXJld29ya3MiLCAtMSwgOS4xKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFu
KEAiY29tLmFkb2JlLkluQ29weSIsIC0xLCA1LjEpCi0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNo
ZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuSW5EZXNpZ24iLCAtMSwgNS4xKQotICAgICAgICB8fCBX
S0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLlNvdW5kYm9vdGgiLCAtMSwgMik7
CisgICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFu
KENGU1RSKCJjb20uYWRvYmUuQWNyb2JhdCIpLCAtMSwgOS4wKQorICAgICAgICB8fCBfQ0ZBcHBW
ZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLkFjcm9iYXQuUHJvIiksIC0xLCA5
LjApCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRv
YmUuUmVhZGVyIiksIC0xLCA5LjApCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NU
aGFuKENGU1RSKCJjb20uYWRvYmUuZGlzdGlsbGVyIiksIC0xLCA5LjApCisgICAgICAgIHx8IF9D
RkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuQ29udHJpYnV0ZSIpLCAt
MSwgNC4yKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29t
LmFkb2JlLmRyZWFtd2VhdmVyLTkuMCIpLCAtMSwgOS4xKQorICAgICAgICB8fCBfQ0ZBcHBWZXJz
aW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLm1hY3JvbWVkaWEuZmlyZXdvcmtzIiksIC0xLCA5
LjEpCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRv
YmUuSW5Db3B5IiksIC0xLCA1LjEpCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NU
aGFuKENGU1RSKCJjb20uYWRvYmUuSW5EZXNpZ24iKSwgLTEsIDUuMSkKKyAgICAgICAgfHwgX0NG
QXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5Tb3VuZGJvb3RoIiksIC0x
LCAyKTsKIAogICAgIHJldHVybiBuZWVkc1F1aXJrOwogfQpAQCAtMjYyNiwxMyArMjYyNywxMyBA
QCAtIChCT09MKV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyawogLSAoQk9PTClfbmVlZHNM
aW5rRWxlbWVudFRleHRDU1NRdWlyawogewogICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSAh
V2ViS2l0TGlua2VkT25PckFmdGVyKFdFQktJVF9GSVJTVF9WRVJTSU9OX1dJVEhPVVRfTElOS19F
TEVNRU5UX1RFWFRfQ1NTX1FVSVJLKQotICAgICAgICAmJiBXS0FwcFZlcnNpb25DaGVja0xlc3NU
aGFuKEAiY29tLmUtZnJvbnRpZXIuc2hhZGUxMCIsIC0xLCAxMC42KTsKKyAgICAgICAgJiYgX0NG
QXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5lLWZyb250aWVyLnNoYWRlMTAiKSwg
LTEsIDEwLjYpOwogICAgIHJldHVybiBuZWVkc1F1aXJrOwogfQogCiAtIChCT09MKV9uZWVkc0lz
TG9hZGluZ0luQVBJU2Vuc2VRdWlyawogewotICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSBX
S0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFwcGxlLmlBZFByb2R1Y2VyIiwgLTEsIDIu
MSk7CisgICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVja0xlc3NU
aGFuKENGU1RSKCJjb20uYXBwbGUuaUFkUHJvZHVjZXIiKSwgLTEsIDIuMSk7CiAgICAgCiAgICAg
cmV0dXJuIG5lZWRzUXVpcms7CiB9CkBAIC0yNjQ1LDcgKzI2NDYsNyBAQCAtIChCT09MKV9uZWVk
c0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcwogCiAtIChCT09MKV9uZWVkc0ZyYW1l
TG9hZERlbGVnYXRlUmV0YWluUXVpcmsKIHsKLSAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0g
V0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5lcXVpbnV4LmlTYWxlNSIsIC0xLCA1LjYp
OyAgICAKKyAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gX0NGQXBwVmVyc2lvbkNoZWNrTGVz
c1RoYW4oQ0ZTVFIoImNvbS5lcXVpbnV4LmlTYWxlNSIpLCAtMSwgNS42KTsKICAgICByZXR1cm4g
bmVlZHNRdWlyazsKIH0KIApAQCAtMjkyNyw3ICsyOTI4LDcgQEAgLSAodm9pZClfcHJlZmVyZW5j
ZXNDaGFuZ2VkOihXZWJQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCiAgICAgc2V0dGluZ3Muc2V0
TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsoW3NlbGYgX25lZWRzQWRvYmVGcmFtZVJlbG9h
ZGluZ1F1aXJrXSk7CiAgICAgc2V0dGluZ3Muc2V0VHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxl
c2hlZXQoW3NlbGYgX25lZWRzTGlua0VsZW1lbnRUZXh0Q1NTUXVpcmtdKTsKICAgICBzZXR0aW5n
cy5zZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcyhbc2VsZiBfbmVlZHNL
ZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3NdKTsKLSAgICBzZXR0aW5ncy5zZXRFbmZv
cmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZSghV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihA
ImNvbS5hcHBsZS5pV2ViIiwgLTEsIDIuMSkpOworICAgIHNldHRpbmdzLnNldEVuZm9yY2VDU1NN
SU1FVHlwZUluTm9RdWlya3NNb2RlKCFfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigi
Y29tLmFwcGxlLmlXZWIiKSwgLTEsIDIuMSkpOwogICAgIHNldHRpbmdzLnNldE5lZWRzSXNMb2Fk
aW5nSW5BUElTZW5zZVF1aXJrKFtzZWxmIF9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlya10p
OwogICAgIHNldHRpbmdzLnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShbcHJlZmVyZW5jZXMgdGV4
dEFyZWFzQXJlUmVzaXphYmxlXSk7CiAgICAgc2V0dGluZ3Muc2V0RXhwZXJpbWVudGFsTm90aWZp
Y2F0aW9uc0VuYWJsZWQoW3ByZWZlcmVuY2VzIGV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFi
bGVkXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321013</attachid>
            <date>2017-09-16 14:33:53 -0700</date>
            <delta_ts>2017-09-16 15:08:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177029-20170916143352.patch</filename>
            <type>text/plain</type>
            <size>89061</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRhMDI0YTAxYjFiZjQy
OGFjOWFmNzIwZmJiOGY3NjQyNmRlZGM1OC4uNjIzNWVmZjkxMDU2NGMwOGFkZjRiNGIwNTk0OGQz
NTY2NmY5ZDdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQgbWlzY2Vs
bGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWc6IFVzZWQgLWZvcmNlX2xvYWQgb2YgbGliUEFMIGluc3RlYWQgb2YgLU9iakMuIFRo
aXMgZm9yY2VzCisgICAgICAgIHRoZSBsaW5rZXIgdG8gbG9hZCBib3RoIE9iamVjdGl2ZS1DIGFu
ZCBDIFBBTCBzeW1ib2xzIGluIFdlYkNvcmUuIFRoaXMgY2hhbmdlIGlzIG5lZWRlZCBmb3IKKyAg
ICAgICAgUEFMOjpwb3BVcE1lbnUoKSwgd2hpY2ggaXMgdXNlZCBieSBXZWJLaXQgYW5kIFdlYktp
dExlZ2FjeSBidXQgbm90IFdlYkNvcmUuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTG9jYWxp
emVkU3RyaW5nc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
U2VhcmNoV2ViKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1t
OgorICAgICAgICAoV2ViQ29yZTo6ZWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKToKKyAgICAgICAg
KFdlYkNvcmU6OmVsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpyZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6V0tDb3JlQ3Vy
c29yX2NvcmVDdXJzb3JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvcmVDdXJzb3JD
bGFzcyk6CisgICAgICAgIChXZWJDb3JlOjpjb3JlQ3Vyc29yQ2xhc3MpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1D
dXJzb3IgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50VGV4dEFyZWEpOgorCiAyMDE3LTA5LTE1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgY2Fs
bGluZyBTdHJpbmc6OmZvcm1hdCgpIGluIFBsYXRmb3JtQ0FGaWx0ZXJzOjpzZXRGaWx0ZXJzT25M
YXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAyNTIzYjY4MjM1MDRlZWM3Zjc4NzBhMGEyNjBk
MjMwNTFhZTNiYjkzLi5iODc3NTQyNzc3YzJiYjVlMmE1NjI2Mzg2ZjE4MTZiNjk5NWE2YTBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNy0wOS0xNSAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gVXBsb2FkIG1pc2NlbGxhbmVv
dXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmg6CisgICAgICAgICogcGFs
L3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJLmguCisgICAgICAgICogcGFsL3Nw
aS9tYWMvSElTZXJ2aWNlc1NQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TQ2VsbFNQSS5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQ
SS5oLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TTWVudVNQSS5oOgorICAgICAgICAqIHBhbC9z
cGkvbWFjL05TU2Nyb2xsVmlld1NQSS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TU2Ny
b2xsZXJJbXBTUEkuaDoKKyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92
aWRlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRp
bGl0aWVzU1BJLmguCisgICAgICAgIChQQUw6OmRlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlO
YW1lKToKKyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5o
LgorICAgICAgICAqIHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBh
bC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbTogQWRkZWQuCisgICAgICAgIChQQUw6OnBvcFVwTWVu
dSk6CisKIDIwMTctMDktMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IHRoZSBtYWNPUyBDTWFrZSBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNDAyZjFl
M2M4NjM5ZGJmZDIyY2Q1OWI4ZDY2YzAxNjg5OTZlMDYxLi42M2I5ZGFhYThhMTMzOTk1ZGI5OTgy
NjZlYjVhZGEwODE2OGQ3MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA5LTE1
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQg
bWlzY2VsbGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21h
Yy9OZXR3b3JrUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1
Z2luUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlh
bGl6ZVByb2Nlc3NOYW1lKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVBy
b2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXpl
UHJvY2Vzc05hbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToK
KyAgICAgICAgKFdlYktpdDo6dHJhY2tpbmdBcmVhT3B0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjptaWdodEJlZ2luU2Nyb2xsV2hpbGVJbmFjdGl2ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpwb3BVcENvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1
Z2luOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29y
ZVN5c3RlbUludGVyZmFjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNz
TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKToK
KwogMjAxNy0wOS0xNSAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgV1RGOiB1c2UgRm9yd2FyZC5oIHdoZW4gYXBwcm9wcmlhdGUgaW5zdGVhZCBvZiBWZWN0b3Iu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDhkOThkNDAwNjY2YmRhMmE5MTE2YzQy
NDAyZTEwNDY0NTYyMjg1MDcuLmNlNDVjYTk0YzcyNmQ4NjYxZTIwYTg2MDUxOTBiMjhkZGY1YmJj
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAxNy0w
OS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01hY10gVXBs
b2FkIG1pc2NlbGxhbmVvdXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZWZhdWx0RGVsZWdh
dGVzL1dlYkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJEZWZh
dWx0VUlEZWxlZ2F0ZSBtZW51SXRlbVdpdGhUYWc6dGFyZ2V0OnJlcHJlc2VudGVkT2JqZWN0Ol0p
OgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tOgor
ICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5I
b3N0UHJveHkpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbToKKyAg
ICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Up
OgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxW
aWV3IHNldERhdGFTb3VyY2U6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0dGFjaFJvb3RM
YXllcjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZp
ZXcgX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcg
X25lZWRzTGlua0VsZW1lbnRUZXh0Q1NTUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVl
ZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNG
cmFtZUxvYWREZWxlZ2F0ZVJldGFpblF1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZl
cmVuY2VzQ2hhbmdlZDpdKToKKworMjAxNy0wOS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBs
ZS5jb20+CisKICAgICAgICAgW0NvY29hXSBVcHN0cmVhbSBNZWRpYVJlbW90ZSBhbmQgVmlkZW9U
b29sYm94IFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Njk1MwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnIGIvU291cmNlL1dlYkNv
cmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwppbmRleCA3NjY2N2JhZTc0MDQ3MWQ3
NDVhOTUxMjIwNWViMWNmNDlkN2EzMjM1Li5iMDNkZDRjZThhMjM2YjczZTg4OThlN2Y5ZGJkMzhm
NWZhY2M4MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJD
b3JlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWcKQEAgLTc3LDcgKzc3LDcgQEAgTElCV0VCUlRDX0xJQlJBUllfRElSX1VTRV9PVkVS
UklERV9GUkFNRVdPUktTX0RJUl9OTyA9ICQoV0VCQ09SRV9GUkFNRVdPUktTX0RJUikKIExJQldF
QlJUQ19MSUJSQVJZX0RJUl9VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfWUVTID0gJChXS19P
VkVSUklERV9GUkFNRVdPUktTX0RJUik7CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkg
JChXS19SRUxPQ0FUQUJMRV9GUkFNRVdPUktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9M
U19MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk0pOwotT1RIRVJfTERGTEFHU19CQVNF
ID0gLWxzcWxpdGUzIC1sb2JqYyAtbEFOR0xFIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdv
cmsgTWV0YWwgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVf
Y2xpZW50IFdlYktpdExlZ2FjeSAtT2JqQzsKK09USEVSX0xERkxBR1NfQkFTRSA9IC1sc3FsaXRl
MyAtbG9iamMgLWxBTkdMRSAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIE1ldGFsIC1h
bGxvd2FibGVfY2xpZW50IFdlYkNvcmVUZXN0U3VwcG9ydCAtYWxsb3dhYmxlX2NsaWVudCBXZWJL
aXRMZWdhY3kgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlBBTC5hOwogLy8g
RklYTUU6IFJlZHVjZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnQgPHJkYXI6Ly9wcm9i
bGVtLzMxODIzOTY5PgogT1RIRVJfTERGTEFHU19CQVNFX2lvcyA9ICQoT1RIRVJfTERGTEFHU19C
QVNFKSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3
b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZy
YW1ld29yayBNb2JpbGVDb3JlU2VydmljZXMgLWZyYW1ld29yayBPcGVuR0xFUyAtbE1vYmlsZUdl
c3RhbHQgJChXS19JT1NfQklOQ09NUEFUX0xERkxBR1MpIC1hbGxvd2FibGVfY2xpZW50IFdlYktp
dCAtYWxsb3dhYmxlX2NsaWVudCBpVHVuZXNVIC1hbGxvd2FibGVfY2xpZW50IENhc2FibGFuY2Eg
LWFsbG93YWJsZV9jbGllbnQgUmVtb3RlIC1hbGxvd2FibGVfY2xpZW50IFRWQm9va3MgLWFsbG93
YWJsZV9jbGllbnQgRHVtcFJlbmRlclRyZWUgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0VGVzdFJ1
bm5lciAtYWxsb3dhYmxlX2NsaWVudCBUZXN0V2ViS2l0QVBJOwogT1RIRVJfTERGTEFHU19QTEFU
Rk9STVtzZGs9aXBob25lb3MqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgLWZyYW1ld29y
ayBJT1N1cmZhY2UgLWZyYW1ld29yayBHcmFwaGljc1NlcnZpY2VzICQoTElCV0VCUlRDX0xERkxB
R1MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGNhYjE0Y2Q0YTdmZGIxYjdlZjRlYjg1NWRkYTlhZWFkNWVhOGM0OWIuLmYzM2M4
ZDE5NmYwYzZmZjJmZDViOTBhODExMzA0ZTA0YzkwZDFhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNyw2ICsxMDcsMTIg
QEAKIAkJQTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3
MkFDIC8qIFdlYlBhbmVsLm1tICovOyB9OwogCQlBMTA4MjZGRTFGNThBNDMzMDA0NzcyQUMgLyog
TlNHcmFwaGljc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTEwODI2RkQxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCAqLzsgfTsK
IAkJQTExNzVCNDkxRjZBRkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNDgxRjZBRkY4
RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovOyB9OworCQlBMTE3NUI0QjFGNkIy
RDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmgg
Ki87IH07CisJCUExMTc1QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRDMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsKKwkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYw
IC8qIFBvcHVwTWVudS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExMTc1QjREMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gKi87IH07CisJ
CUExMTc1QjU3MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjU1MUY2QjQ3
MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCAqLzsgfTsKKwkJQTExNzVCNTgx
RjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI1NjFGNkI0NzA1MDBDNEI5
RjAgLyogRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJQTExNzVCNUExRjZCNEE4
NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xs
Vmlld1NQSS5oICovOyB9OwogCQlBMUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFT
UEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1
RENFMUY1NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFG
MEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5o
ICovOyB9OwogCQlBMzBENDEyMjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMUYxRjBERDBF
QTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCAqLzsgfTsKQEAgLTIyOSw2ICsyMzUsMTIgQEAKIAkJ
QTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMDgyNkZE
MUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TR3Jh
cGhpY3NTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNzVCNDgxRjZBRkY4
RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hT
eW50aGVzaXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEExRjZC
MkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0NlbGxTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEMxRjZCMzM3MzAwQzRCOUYwIC8q
IFBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvcHVwTWVudS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFy
Y2hQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTE3NUI1OTFGNkI0QTg0MDBDNEI5
RjAgLyogTlNTY3JvbGxWaWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TU2Nyb2xsVmlld1NQSS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYg
LyogTWV0YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0YWRhdGFTUEkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5n
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmlu
Zy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLaWxsUmluZy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDcsNiArMzE5LDcgQEAKIAkJCQkwQzJE
QTEyODFGM0JFQjQ5MDBEQkMzMTcgLyogSU9SZXR1cm5TUEkuaCAqLywKIAkJCQkwQzJEQTEyOTFG
M0JFQjQ5MDBEQkMzMTcgLyogSU9TdXJmYWNlU1BJLmggKi8sCiAJCQkJMEMyREExMkExRjNCRUI0
OTAwREJDMzE3IC8qIElPVHlwZXNTUEkuaCAqLywKKwkJCQkwQzVBRjkxMjFGNDNBNEM3MDAyRUFD
MDIgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzJEQTEyQjFGM0JFQjQ5MDBEQkMz
MTcgLyogTGlua1ByZXNlbnRhdGlvblNQSS5oICovLAogCQkJCTBDMkRBMTJDMUYzQkVCNDkwMERC
QzMxNyAvKiBNYWNoVk1TUEkuaCAqLywKIAkJCQkwQzJEQTEyRDFGM0JFQjQ5MDBEQkMzMTcgLyog
TkVGaWx0ZXJTb3VyY2VTUEkuaCAqLywKQEAgLTMzNiw3ICszNDksNiBAQAogCQkJCTBDNUFGOTBG
MUY0M0E0QzcwMDJFQUMwMiAvKiBDb3JlVUlTUEkuaCAqLywKIAkJCQkwQzVBRjkxMDFGNDNBNEM3
MDAyRUFDMDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggKi8sCiAJCQkJMEM1QUY5MTExRjQzQTRD
NzAwMkVBQzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCAqLywKLQkJCQkwQzVBRjkxMjFGNDNB
NEM3MDAyRUFDMDIgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzVBRjkxMzFGNDNB
NEM3MDAyRUFDMDIgLyogTWVkaWFQbGF5ZXJTUEkuaCAqLywKIAkJCQkwQzVBRjkxNDFGNDNBNEM3
MDAyRUFDMDIgLyogTW9iaWxlR2VzdGFsdFNQSS5oICovLAogCQkJCTBDNUFGOTE1MUY0M0E0Qzcw
MDJFQUMwMiAvKiBPcGVuR0xFU1NQSS5oICovLApAQCAtMzU5LDYgKzM3MSw3IEBACiAJCQkJQTFG
NTVEQ0UxRjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzQx
RjQ1MTMwRjAwRjRFQkI2IC8qIE5TQWNjZXNzaWJpbGl0eVNQSS5oICovLAogCQkJCTBDNzc4NTc1
MUY0NTEzMEYwMEY0RUJCNiAvKiBOU0FwcGxpY2F0aW9uU1BJLmggKi8sCisJCQkJQTExNzVCNEEx
RjZCMkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovLAogCQkJCTBDNzc4NTc2MUY0NTEzMEYw
MEY0RUJCNiAvKiBOU0V2ZW50U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzcxRjQ1MTMwRjAwRjRFQkI2
IC8qIE5TRm9udFNQSS5oICovLAogCQkJCUExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dy
YXBoaWNzU1BJLmggKi8sCkBAIC0zNzAsNiArMzgzLDcgQEAKIAkJCQkwQzc3ODU3QzFGNDUxMzBG
MDBGNEVCQjYgLyogTlNTY3JvbGxlckltcFNQSS5oICovLAogCQkJCTBDNzc4NTdEMUY0NTEzMEYw
MEY0RUJCNiAvKiBOU1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggKi8sCiAJCQkJMEM3Nzg1N0Ux
RjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yU1BJLmggKi8s
CisJCQkJQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oICovLAog
CQkJCTBDNzc4NTdGMUY0NTEzMEYwMEY0RUJCNiAvKiBOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU1BJ
LmggKi8sCiAJCQkJMEM3Nzg1ODAxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2hhcmluZ1NlcnZpY2VT
UEkuaCAqLywKIAkJCQkwQzc3ODU4MTFGNDUxMzBGMDBGNEVCQjYgLyogTlNTcGVsbENoZWNrZXJT
UEkuaCAqLywKQEAgLTQ4Niw2ICs1MDAsMTAgQEAKIAkJQTM3ODhFQTAxRjA1QjdFMjAwNjc5NDI1
IC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
QTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgKi8s
CisJCQkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5o
ICovLAorCQkJCUExMTc1QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLywKKwkJ
CQlBMTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tICovLAogCQkJCUEzNzg4
RTlEMUYwNUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1hYy5tbSAqLywKIAkJCQlBM0FCNkU2MjFGM0Qy
MTdGMDA5QzE0QjEgLyogU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oICovLAogCQkJCUEzQUI2RTYz
MUYzRDIxN0YwMDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tICovLApAQCAtNTI4
LDYgKzU0Niw3IEBACiAJCQkJMEMyREExNDExRjNCRUI0OTAwREJDMzE3IC8qIERhdGFEZXRlY3Rv
cnNDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVCQjYg
LyogRGF0YURldGVjdG9yc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUExRjQzQTRD
NzAwMkVBQzAyIC8qIERhdGFEZXRlY3RvcnNVSVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEx
NzVCNTcxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyRDlFNzMxRUVGNUFGNjAwREJDMzE3IC8qIEV4cG9ydE1hY3Jvcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTEwMjY1ODcxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5kYXRpb25T
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFCMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFw
aGljc1NlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTU1Niw2ICs1NzUsNyBAQAogCQkJ
CTBDMkRBMTRBMUYzQkVCNDkwMERCQzMxNyAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDMkRBMTRCMUYzQkVCNDkwMERCQzMxNyAvKiBOU0J1dHRvbkNlbGxT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTRDMUYzQkVCNDkwMERCQzMxNyAvKiBOU0Nh
bGVuZGFyRGF0ZVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTExNzVCNEIxRjZCMkQ3RTAwQzRC
OUYwIC8qIE5TQ2VsbFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNEQxRjNCRUI0OTAw
REJDMzE3IC8qIE5TQ29sb3JTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThGMUY0NTEz
MEYwMEY0RUJCNiAvKiBOU0V2ZW50U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0RTFG
M0JFQjQ5MDBEQkMzMTcgLyogTlNFeHRlbnNpb25TUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTcw
LDYgKzU5MCw3IEBACiAJCQkJMEM3Nzg1OTUxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsZXJJ
bXBTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk2MUY0NTEzMEYwMEY0RUJCNiAvKiBO
U1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5NzFG
NDUxMzBGMDBGNEVCQjYgLyogTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JTUEkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUExMTc1QjVBMUY2QjRBODQwMEM0QjlGMCAvKiBOU1Njcm9sbFZpZXdT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk4MUY0NTEzMEYwMEY0RUJCNiAvKiBOU1No
YXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5OTFGNDUx
MzBGMDBGNEVCQjYgLyogTlNTaGFyaW5nU2VydmljZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEM3Nzg1OUExRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU3BlbGxDaGVja2VyU1BJLmggaW4gSGVhZGVy
cyAqLywKQEAgLTU4NCw2ICs2MDUsNyBAQAogCQkJCTBDNUFGOTFGMUY0M0E0QzcwMDJFQUMwMiAv
KiBPcGVuR0xFU1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNTUxRjNCRUI0OTAwREJD
MzE3IC8qIFBhc3NLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTlFMUY0NTEzMEYw
MEY0RUJCNiAvKiBQSVBTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMTc1QjRFMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU2MUYzQkVC
NDkwMERCQzMxNyAvKiBwdGhyZWFkU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5RjFG
NDUxMzBGMDBGNEVCQjYgLyogUVRLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU3
MUYzQkVCNDkwMERCQzMxNyAvKiBRdWFydHpDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTY5
Miw4ICs3MTQsMTAgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxl
cyA9ICgKIAkJCQkxQzA5RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9u
Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExMTc1QjU4MUY2QjQ3MDUwMEM0QjlGMCAv
KiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTMwRDQxMjIx
RjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0
MTI1MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUExMTc1QjRGMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBM0M2NkNEQzFGNDYyRDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUEzQUI2RTUyMUYzRDFEQzUwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUEzQUI2RTYwMUYzRDFFMzkwMDlDMTRCMSAvKiBTbGVlcERpc2Fi
bGVyQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaAppbmRleCBmYzhjZDc5Mjc2MmJmMGE3NjIwYTEyYWNmMTIw
ZmEzMDlhMzc4ZmZjLi4yNDU5ODdjZDgyMTg0ZTI5OWZmOTZlM2Y0YWNjMWIyMTAxMGI5NzhmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NyArMjgsMTYgQEAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgog
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24v
Q0ZQcml2Lmg+CisKKyNlbHNlCisKK3R5cGVkZWYgQ0ZfRU5VTShDRkluZGV4LCBDRlN5c3RlbVZl
cnNpb24pIHsKKyAgICBDRlN5c3RlbVZlcnNpb25MaW9uID0gNywKKyAgICBDRlN5c3RlbVZlcnNp
b25Nb3VudGFpbkxpb24gPSA4LAorfTsKKwogI2VuZGlmCiAKIFdURl9FWFRFUk5fQ19CRUdJTgpA
QCAtMzcsNSArNDYsMTIgQEAgQ0ZEaWN0aW9uYXJ5UmVmIF9DRkNvcHlTeXN0ZW1WZXJzaW9uRGlj
dGlvbmFyeSh2b2lkKTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGU3lzdGVtVmVyc2lv
blByb2R1Y3RWZXJzaW9uS2V5OwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZTeXN0ZW1W
ZXJzaW9uQnVpbGRWZXJzaW9uS2V5OwogCitDRkRpY3Rpb25hcnlSZWYgX0NGV2ViU2VydmljZXND
b3B5UHJvdmlkZXJJbmZvKENGU3RyaW5nUmVmIHNlcnZpY2VUeXBlLCBCb29sZWFuKiBvdXRJc1Vz
ZXJTZWxlY3Rpb24pOworZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDRldlYlNlcnZpY2VzVHlw
ZVdlYlNlYXJjaDsKK2V4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ0ZXZWJTZXJ2aWNlc1Byb3Zp
ZGVyRGVmYXVsdERpc3BsYXlOYW1lS2V5OworCitCb29sZWFuIF9DRkFwcFZlcnNpb25DaGVja0xl
c3NUaGFuKENGU3RyaW5nUmVmIGJ1bmRsZUlELCBpbnQgbGlua2VkT25Bbk9sZGVyU3lzdGVtVGhh
biwgZG91YmxlIHZlcnNpb25OdW1iZXJMZXNzVGhhbik7CitCb29sZWFuIF9DRkV4ZWN1dGFibGVM
aW5rZWRPbk9yQWZ0ZXIoQ0ZTeXN0ZW1WZXJzaW9uKTsKKwogV1RGX0VYVEVSTl9DX0VORAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNl
c1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNT
UEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MGEwZWEzYjViMDM5NWM1YTkzMTI1ZDM1YjkwOTc2NWZkNDIwYTJi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTGF1
bmNoU2VydmljZXNTUEkuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQorCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8TGF1bmNo
U2VydmljZXMvTGF1bmNoU2VydmljZXNQcml2Lmg+CisjZWxpZiBQTEFURk9STShJT1MpCisjaW1w
b3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTGF1bmNoU2VydmljZXNQcml2Lmg+CisjZW5kaWYKKwor
I2VuZGlmCisKK0BjbGFzcyBMU0FwcExpbms7Cit0eXBlZGVmIHZvaWQgKF5MU0FwcExpbmtDb21w
bGV0aW9uSGFuZGxlcikoTFNBcHBMaW5rICphcHBMaW5rLCBOU0Vycm9yICplcnJvcik7Cit0eXBl
ZGVmIHZvaWQgKF5MU0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIpKEJPT0wgc3VjY2Vzcywg
TlNFcnJvciAqZXJyb3IpOworCisjaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKK0BpbnRl
cmZhY2UgTFNSZXNvdXJjZVByb3h5IDogTlNPYmplY3QgPE5TQ29weWluZywgTlNTZWN1cmVDb2Rp
bmc+CitAZW5kCisKK0BpbnRlcmZhY2UgTFNCdW5kbGVQcm94eSA6IExTUmVzb3VyY2VQcm94eSA8
TlNTZWN1cmVDb2Rpbmc+CitAZW5kCisKK0BpbnRlcmZhY2UgTFNBcHBsaWNhdGlvblByb3h5IDog
TFNCdW5kbGVQcm94eSA8TlNTZWN1cmVDb2Rpbmc+CistIChOU1N0cmluZyAqKWxvY2FsaXplZE5h
bWVGb3JDb250ZXh0OihOU1N0cmluZyAqKWNvbnRleHQ7CitAZW5kCisKK0BpbnRlcmZhY2UgTFNB
cHBMaW5rIDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExT
QXBwTGluayAoKQorKyAodm9pZClnZXRBcHBMaW5rV2l0aFVSTDooTlNVUkwgKilhVVJMIGNvbXBs
ZXRpb25IYW5kbGVyOihMU0FwcExpbmtDb21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxl
cjsKKysgKHZvaWQpb3BlbldpdGhVUkw6KE5TVVJMICopYVVSTCBjb21wbGV0aW9uSGFuZGxlcjoo
TFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9p
ZClvcGVuSW5XZWJCcm93c2VyOihCT09MKWluV2ViQnJvd3NlciBzZXRBcHByb3ByaWF0ZU9wZW5T
dHJhdGVneUFuZFdlYkJyb3dzZXJTdGF0ZTooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAq
KXN0YXRlIGNvbXBsZXRpb25IYW5kbGVyOihMU0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIp
Y29tcGxldGlvbkhhbmRsZXI7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIExTQXBwbGlj
YXRpb25Qcm94eSAqdGFyZ2V0QXBwbGljYXRpb25Qcm94eTsKK0BlbmQKKworZW51bSBMU1Nlc3Np
b25JRCB7CisgICAga0xTRGVmYXVsdFNlc3Npb25JRCA9IC0yLAorfTsKKworI2VuZGlmCisKK1dU
Rl9FWFRFUk5fQ19CRUdJTgorCitPU1N0YXR1cyBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9u
SXRlbShMU1Nlc3Npb25JRCwgTFNBU05SZWYsIENGU3RyaW5nUmVmIGtleVRvU2V0UmVmLCBDRlR5
cGVSZWYgdmFsdWVUb1NldFJlZiwgQ0ZEaWN0aW9uYXJ5UmVmKiBuZXdJbmZvcm1hdGlvbkRpY3RS
ZWYpOworTFNBU05SZWYgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCk7CisKK2V4dGVybiBj
b25zdCBDRlN0cmluZ1JlZiBfa0xTRGlzcGxheU5hbWVLZXk7CisKK1dURl9FWFRFUk5fQ19FTkQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNl
c1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJ
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2YThiMmU0ZmNiZWUxNTExZThjMGM0
M2I3YWJkNTc4NTIyODE4MjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJ
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotCi0jaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKLQotI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL0xTQXBwTGlua1By
aXYuaD4KLQotI2VuZGlmCi0KLUBjbGFzcyBMU0FwcExpbms7Ci10eXBlZGVmIHZvaWQgKF5MU0Fw
cExpbmtDb21wbGV0aW9uSGFuZGxlcikoTFNBcHBMaW5rICphcHBMaW5rLCBOU0Vycm9yICplcnJv
cik7Ci10eXBlZGVmIHZvaWQgKF5MU0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIpKEJPT0wg
c3VjY2VzcywgTlNFcnJvciAqZXJyb3IpOwotCi0jaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREsp
Ci0KLUBpbnRlcmZhY2UgTFNSZXNvdXJjZVByb3h5IDogTlNPYmplY3QgPE5TQ29weWluZywgTlNT
ZWN1cmVDb2Rpbmc+Ci1AZW5kCi0KLUBpbnRlcmZhY2UgTFNCdW5kbGVQcm94eSA6IExTUmVzb3Vy
Y2VQcm94eSA8TlNTZWN1cmVDb2Rpbmc+Ci1AZW5kCi0KLUBpbnRlcmZhY2UgTFNBcHBsaWNhdGlv
blByb3h5IDogTFNCdW5kbGVQcm94eSA8TlNTZWN1cmVDb2Rpbmc+Ci0tIChOU1N0cmluZyAqKWxv
Y2FsaXplZE5hbWVGb3JDb250ZXh0OihOU1N0cmluZyAqKWNvbnRleHQ7Ci1AZW5kCi0KLUBpbnRl
cmZhY2UgTFNBcHBMaW5rIDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50
ZXJmYWNlIExTQXBwTGluayAoKQotKyAodm9pZClnZXRBcHBMaW5rV2l0aFVSTDooTlNVUkwgKilh
VVJMIGNvbXBsZXRpb25IYW5kbGVyOihMU0FwcExpbmtDb21wbGV0aW9uSGFuZGxlciljb21wbGV0
aW9uSGFuZGxlcjsKLSsgKHZvaWQpb3BlbldpdGhVUkw6KE5TVVJMICopYVVSTCBjb21wbGV0aW9u
SGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVy
OwotLSAodm9pZClvcGVuSW5XZWJCcm93c2VyOihCT09MKWluV2ViQnJvd3NlciBzZXRBcHByb3By
aWF0ZU9wZW5TdHJhdGVneUFuZFdlYkJyb3dzZXJTdGF0ZTooTlNEaWN0aW9uYXJ5PE5TU3RyaW5n
ICosIGlkPiAqKXN0YXRlIGNvbXBsZXRpb25IYW5kbGVyOihMU0FwcExpbmtPcGVuQ29tcGxldGlv
bkhhbmRsZXIpY29tcGxldGlvbkhhbmRsZXI7Ci1AcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcp
IExTQXBwbGljYXRpb25Qcm94eSAqdGFyZ2V0QXBwbGljYXRpb25Qcm94eTsKLUBlbmQKLQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvSElTZXJ2aWNl
c1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaApp
bmRleCBhMzU1Yjk0ZmU2MzA5MmVmNWFjZDBiNWM5NWUwM2RkNDZlOTUzODE1Li43ZGVkYTJmM2M3
YTI3NTk2MTA3MDFlNDRkODFmMTUyMWZmZGMzZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmgKQEAgLTI1LDEzICsyNSw2NCBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CisKICNp
ZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaW5jbHVkZSA8SElTZXJ2aWNlcy9BWFRleHRN
YXJrZXIuaD4KKyNpbmNsdWRlIDxISVNlcnZpY2VzL0NvcmVDdXJzb3IuaD4KICNpbmNsdWRlIDxI
SVNlcnZpY2VzL0NvcmVEcmFnLmg+CiAKICNlbHNlCiAKK3R5cGVkZWYgQ0ZfRU5VTShTSW50MzIs
IENvcmVDdXJzb3JUeXBlKSB7CisgICAga0NvcmVDdXJzb3JGaXJzdEN1cnNvciA9IDAsCisgICAg
a0NvcmVDdXJzb3JBcnJvdyA9IGtDb3JlQ3Vyc29yRmlyc3RDdXJzb3IsCisgICAga0NvcmVDdXJz
b3JJQmVhbSwKKyAgICBrQ29yZUN1cnNvck1ha2VBbGlhcywKKyAgICBrQ29yZUN1cnNvck5vdEFs
bG93ZWQsCisgICAga0NvcmVDdXJzb3JCdXN5QnV0Q2xpY2thYmxlLAorICAgIGtDb3JlQ3Vyc29y
Q29weSwKKyAgICBrQ29yZUN1cnNvclNjcmVlblNob3RTZWxlY3Rpb24gPSA3LAorICAgIGtDb3Jl
Q3Vyc29yU2NyZWVuU2hvdFNlbGVjdGlvblRvQ2xpcCwKKyAgICBrQ29yZUN1cnNvclNjcmVlblNo
b3RXaW5kb3csCisgICAga0NvcmVDdXJzb3JTY3JlZW5TaG90V2luZG93VG9DbGlwLAorICAgIGtD
b3JlQ3Vyc29yQ2xvc2VkSGFuZCwKKyAgICBrQ29yZUN1cnNvck9wZW5IYW5kLAorICAgIGtDb3Jl
Q3Vyc29yUG9pbnRpbmdIYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdVcEhhbmQsCisgICAg
a0NvcmVDdXJzb3JDb3VudGluZ0Rvd25IYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdVcEFu
ZERvd25IYW5kLAorICAgIGtDb3JlQ3Vyc29yUmVzaXplTGVmdCwKKyAgICBrQ29yZUN1cnNvclJl
c2l6ZVJpZ2h0LAorICAgIGtDb3JlQ3Vyc29yUmVzaXplTGVmdFJpZ2h0LAorICAgIGtDb3JlQ3Vy
c29yQ3Jvc3MsCisgICAga0NvcmVDdXJzb3JSZXNpemVVcCwKKyAgICBrQ29yZUN1cnNvclJlc2l6
ZURvd24sCisgICAga0NvcmVDdXJzb3JSZXNpemVVcERvd24sCisgICAga0NvcmVDdXJzb3JDb250
ZXh0dWFsTWVudSwKKyAgICBrQ29yZUN1cnNvclBvb2YsCisgICAga0NvcmVDdXJzb3JJQmVhbVZl
cnRpY2FsLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplRWFzdCwKKyAgICBrQ29yZUN1cnNv
cldpbmRvd1Jlc2l6ZUVhc3RXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhF
YXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhFYXN0U291dGhXZXN0LAorICAg
IGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGgsCisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNp
emVOb3J0aFNvdXRoLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0LAorICAg
IGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0U291dGhFYXN0LAorICAgIGtDb3JlQ3Vy
c29yV2luZG93UmVzaXplU291dGhFYXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291
dGgsCisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aFdlc3QsCisgICAga0NvcmVDdXJz
b3JXaW5kb3dSZXNpemVXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93TW92ZSwKKyAgICBrQ29y
ZUN1cnNvckhlbHAsCisgICAga0NvcmVDdXJzb3JDZWxsLAorICAgIGtDb3JlQ3Vyc29yWm9vbUlu
LAorICAgIGtDb3JlQ3Vyc29yWm9vbU91dCwKKyAgICBrQ29yZUN1cnNvckxhc3RDdXJzb3IgPSBr
Q29yZUN1cnNvclpvb21PdXQKK307CisKIGVudW0gewogICAgIGtDb3JlRHJhZ0ltYWdlU3BlY1Zl
cnNpb25PbmUgPSAxLAogfTsKQEAgLTU1LDYgKzEwNiw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0
IF9fQVhUZXh0TWFya2VyKiBBWFRleHRNYXJrZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBf
X0FYVGV4dE1hcmtlclJhbmdlKiBBWFRleHRNYXJrZXJSYW5nZVJlZjsKIHR5cGVkZWYgc3RydWN0
IENvcmVEcmFnSW1hZ2VTcGVjIENvcmVEcmFnSW1hZ2VTcGVjOwogdHlwZWRlZiBzdHJ1Y3QgT3Bh
cXVlQ29yZURyYWcqIENvcmVEcmFnUmVmOwordHlwZWRlZiBVSW50MzIgTVNIQ3JlYXRlT3B0aW9u
czsKIAogV1RGX0VYVEVSTl9DX0JFR0lOCiAKQEAgLTY4LDUgKzEyMCw2IEBAIENGVHlwZUlEIEFY
VGV4dE1hcmtlclJhbmdlR2V0VHlwZUlEKCk7CiBDb3JlRHJhZ1JlZiBDb3JlRHJhZ0dldEN1cnJl
bnREcmFnKCk7CiBPU1N0YXR1cyBDb3JlRHJhZ1NldEltYWdlKENvcmVEcmFnUmVmLCBDR1BvaW50
IGltYWdlT2Zmc2V0LCBDb3JlRHJhZ0ltYWdlU3BlYyosIENHU1JlZ2lvbk9iaiBpbWFnZVNoYXBl
LCBmbG9hdCBvdmVyYWxsQWxwaGEpOwogY29uc3QgVUludDgqIEFYVGV4dE1hcmtlckdldEJ5dGVQ
dHIoQVhUZXh0TWFya2VyUmVmKTsKK0NGUnVuTG9vcFNvdXJjZVJlZiBNU0hDcmVhdGVNSUdTZXJ2
ZXJTb3VyY2UoQ0ZBbGxvY2F0b3JSZWYsIENGSW5kZXggb3JkZXIsIG1pZ19zdWJzeXN0ZW1fdCBz
dWJfc3lzdGVtLCBNU0hDcmVhdGVPcHRpb25zLCBtYWNoX3BvcnRfdCwgdm9pZCogdXNlcl9kYXRh
KTsKIAogV1RGX0VYVEVSTl9DX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvbWFjL05TQ2VsbFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05T
Q2VsbFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMzNkYTNkM2RmYmJhN2NiMDYzZjYwZWQ0NzkxMDFlODY2
OTM4NjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
TlNDZWxsU1BJLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QXBwS2l0L05TQ2VsbF9Q
cml2YXRlLmg+CisKKyNlbmRpZgorCitXVEZfRVhURVJOX0NfQkVHSU4KKwordm9pZCBfTlNEcmF3
Q2FyYm9uVGhlbWVMaXN0Qm94KE5TUmVjdCwgQk9PTCBlbmFibGVkLCBCT09MIGZsaXBwZWQsIEJP
T0wgdGV4dHVyZWQpOworCitXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9tYWMvTlNNZW51U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9tYWMvTlNNZW51U1BJLmgKaW5kZXggMWY1ZTdiYzY2YTAwMzIxOTQ4MjIwNGM0ODE5OTQx
ZWQzYjRmYTVmZi4uNTBkNTA5YzUwNTNhODJjZTcwOWM2Mjc5MTI0MDlkZGViNzQ4ZjNhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TTWVudVNQSS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU01lbnVTUEkuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw3ICsyOSw5IEBA
CiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCitXVEZfRVhURVJOX0NfQkVHSU4KICNp
bXBvcnQgPEFwcEtpdC9OU01lbnVfUHJpdmF0ZS5oPgorV1RGX0VYVEVSTl9DX0VORAogCiAjZWxz
ZQogCkBAIC0zOCw2ICs0MCwxNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBOU01lbnVU
eXBlKSB7CiAgICAgTlNNZW51VHlwZUNvbnRleHRNZW51LAogfTsKIAorZW51bSB7CisgICAgTlNQ
b3BVcE1lbnVUeXBlR2VuZXJpYywKKyAgICBOU1BvcFVwTWVudVR5cGVQb3BVcCwKKyAgICBOU1Bv
cFVwTWVudVR5cGVQdWxsc0Rvd24sCisgICAgTlNQb3BVcE1lbnVUeXBlTWFpbk1lbnUsCisgICAg
TlNQb3BVcE1lbnVUeXBlQ29udGV4dCwKKyAgICBOU1BvcFVwTWVudURlZmF1bHRUb1BvcFVwQ29u
dHJvbEZvbnQgPSAweDEwLAorICAgIE5TUG9wVXBNZW51UG9zaXRpb25SZWxhdGl2ZVRvUmlnaHRF
ZGdlID0gMHgyMCwKKyAgICBOU1BvcFVwTWVudUlzUG9wdXBCdXR0b24gPSAweDQwLAorfTsKKwog
QGludGVyZmFjZSBOU01lbnUgKCkKICsgKE5TTWVudVR5cGUpbWVudVR5cGVGb3JFdmVudDooTlNF
dmVudCAqKWV2ZW50OwogQGVuZApAQCAtNTYsNCArNjksMTcgQEAgdHlwZWRlZiBOU19FTlVNKE5T
SW50ZWdlciwgTlNNZW51VHlwZSkgewogCiAjZW5kaWYKIAotI2VuZGlmCit0eXBlZGVmIE5TVUlu
dGVnZXIgTlNQb3BVcE1lbnVGbGFnczsKKworV1RGX0VYVEVSTl9DX0JFR0lOCisKK2V4dGVybiBO
U1N0cmluZyAqIGNvbnN0IE5TUG9wVXBNZW51UG9wdXBCdXR0b25Cb3VuZHM7CitleHRlcm4gTlNT
dHJpbmcgKiBjb25zdCBOU1BvcFVwTWVudVBvcHVwQnV0dG9uTGFiZWxPZmZzZXQ7CitleHRlcm4g
TlNTdHJpbmcgKiBjb25zdCBOU1BvcFVwTWVudVBvcHVwQnV0dG9uU2l6ZTsKK2V4dGVybiBOU1N0
cmluZyAqIGNvbnN0IE5TUG9wVXBNZW51UG9wdXBCdXR0b25XaWRnZXQ7CisKK3ZvaWQgX05TUG9w
VXBDYXJib25NZW51MyhOU01lbnUgKiwgTlNXaW5kb3cgKiwgTlNWaWV3ICpvd25lclZpZXcsIE5T
UG9pbnQgc2NyZWVuUG9pbnQsIE5TSW50ZWdlciBjaGVja2VkSXRlbSwgTlNGb250ICosIENHRmxv
YXQgbWluV2lkdGgsIE5TU3RyaW5nICpydW5Mb29wTW9kZSwgTlNQb3BVcE1lbnVGbGFncywgTlNE
aWN0aW9uYXJ5ICpvcHRpb25zKTsKKworV1RGX0VYVEVSTl9DX0VORAorCisjZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05T
U2Nyb2xsVmlld1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xs
Vmlld1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiMGVmN2FmNThlMzJlNDhiZjE3ZTA2MjJiZTg3YjVmZDBj
NGVkZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
TlNTY3JvbGxWaWV3U1BJLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QXBwS2l0L05T
U2Nyb2xsVmlld19Qcml2YXRlLmg+CisKKyNlbmRpZgorCitXVEZfRVhURVJOX0NfQkVHSU4KKwor
Q0dGbG9hdCBfTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEoQ0dGbG9hdCBpbml0aWFsUG9zaXRp
b24sIENHRmxvYXQgaW5pdGlhbFZlbG9jaXR5LCBDR0Zsb2F0IGVsYXBzZWRUaW1lKTsKK0NHRmxv
YXQgX05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKENHRmxvYXQgZGVsdGEpOworQ0dGbG9h
dCBfTlNSZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEoQ0dGbG9hdCBkZWx0YSk7CisKK1dURl9F
WFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9O
U1Njcm9sbGVySW1wU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNTY3Jv
bGxlckltcFNQSS5oCmluZGV4IDA0OTJjMWFiNjE5NTZjYjE5NjFjOWVhN2IyNzcxNTczNzgxZDU1
MzMuLjE4NzA0OTZlMDdjMjBmMmViOWFiNWFmYWQ3MWU5ZGIxZGFkMWEyZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNDksNCAr
MTQ5LDEwIEBAIHR5cGVkZWYgTlNVSW50ZWdlciBOU092ZXJsYXlTY3JvbGxlclN0YXRlOwogCiAj
ZW5kaWYKIAorV1RGX0VYVEVSTl9DX0JFR0lOCisKK05TU2Nyb2xsZXJTdHlsZSBfTlNSZWNvbW1l
bmRlZFNjcm9sbGVyU3R5bGUoKTsKKworV1RGX0VYVEVSTl9DX0VORAorCiAjZW5kaWYgLy8gVVNF
KEFQUEtJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9E
ZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0v
bWFjL0RlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUxNmQ2YWJiYmIzNWFl
ODdjMmQ5ZWFiYTE2OWM3MjRiNWQzZGU2ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3lzdGVtL21hYy9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwCkBAIC0wLDAg
KzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGVm
YXVsdFNlYXJjaFByb3ZpZGVyLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJD
RlV0aWxpdGllc1NQSS5oIgorI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9u
Lmg+CisKK25hbWVzcGFjZSBQQUwgeworCitSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGRlZmF1bHRT
ZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKCkKK3sKKyAgICBhdXRvIHByb3ZpZGVySW5mbyA9IGFk
b3B0Q0YoX0NGV2ViU2VydmljZXNDb3B5UHJvdmlkZXJJbmZvKGtDRldlYlNlcnZpY2VzVHlwZVdl
YlNlYXJjaCwgbnVsbHB0cikpOworICAgIGlmICghcHJvdmlkZXJJbmZvKQorICAgICAgICByZXR1
cm4gQ0ZTVFIoIkdvb2dsZSIpOworCisgICAgQ0ZUeXBlUmVmIGRpc3BsYXlOYW1lID0gQ0ZEaWN0
aW9uYXJ5R2V0VmFsdWUocHJvdmlkZXJJbmZvLmdldCgpLCBrQ0ZXZWJTZXJ2aWNlc1Byb3ZpZGVy
RGVmYXVsdERpc3BsYXlOYW1lS2V5KTsKKyAgICBpZiAoIWRpc3BsYXlOYW1lKQorICAgICAgICBy
ZXR1cm4gQ0ZTVFIoIkdvb2dsZSIpOworCisgICAgQVNTRVJUKENGR2V0VHlwZUlEKGRpc3BsYXlO
YW1lKSA9PSBDRlN0cmluZ0dldFR5cGVJRCgpKTsKKyAgICByZXR1cm4gYWRvcHRDRihDRlN0cmlu
Z0NyZWF0ZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENGU3RyaW5nUmVmKWRpc3BsYXlOYW1l
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFBBTAorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL0RlZmF1bHRTZWFy
Y2hQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL0RlZmF1bHRT
ZWFyY2hQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjZmNmZDgzN2I3NjA5YzY0MzI3ZTc1NTk4MGQ2
ZDRmZjk5MmZiZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5
c3RlbS9tYWMvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCituYW1l
c3BhY2UgUEFMIHsKKworUEFMX0VYUE9SVCBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGRlZmF1bHRT
ZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKCk7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDc1YWI3YjdiMjdiZDlkMDYz
Y2VjOWJlNTU2NjFjOTUyZWYyYWU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CisKK25h
bWVzcGFjZSBQQUwgeworCitQQUxfRVhQT1JUIHZvaWQgcG9wVXBNZW51KE5TTWVudSAqLCBOU1Bv
aW50IGxvY2F0aW9uLCBmbG9hdCB3aWR0aCwgTlNWaWV3ICosIGludCBzZWxlY3RlZEl0ZW0sIE5T
Rm9udCAqLCBOU0NvbnRyb2xTaXplLCBib29sIHVzZXNDdXN0b21BcHBlYXJhbmNlKTsKKworfQor
CisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lz
dGVtL21hYy9Qb3B1cE1lbnUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjIzMzU3NWRjMzRlNzYxZTg2MWNiYjQ1
Mjg3YjczM2YyY2Q0YWMyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUubW0KQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUG9wdXBNZW51LmgiCisKKyNpZiBQTEFURk9S
TShNQUMpCisKKyNpbXBvcnQgIk5TTWVudVNQSS5oIgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgorCitAaW50ZXJmYWNlIE5TTWVudSAoV2ViUHJpdmF0ZSkKKy0gKGlkKV9tZW51SW1wbDsKK0Bl
bmQKKworQGludGVyZmFjZSBOU09iamVjdCAoV2ViUHJpdmF0ZSkKKy0gKHZvaWQpcG9wVXBNZW51
OihOU01lbnUqKW1lbnUgYXRMb2NhdGlvbjooTlNQb2ludClsb2NhdGlvbiB3aWR0aDooQ0dGbG9h
dCl3aWR0aCBmb3JWaWV3OihOU1ZpZXcqKXZpZXcgd2l0aFNlbGVjdGVkSXRlbTooTlNJbnRlZ2Vy
KXNlbGVjdGVkSXRlbSB3aXRoRm9udDooTlNGb250Kilmb250IHdpdGhGbGFnczooTlNQb3BVcE1l
bnVGbGFncylmbGFncyB3aXRoT3B0aW9uczooTlNEaWN0aW9uYXJ5ICopb3B0aW9uczsKK0BlbmQK
KworbmFtZXNwYWNlIFBBTCB7CisKK3ZvaWQgcG9wVXBNZW51KE5TTWVudSAqbWVudSwgTlNQb2lu
dCBsb2NhdGlvbiwgZmxvYXQgd2lkdGgsIE5TVmlldyAqdmlldywgaW50IHNlbGVjdGVkSXRlbSwg
TlNGb250ICpmb250LCBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplLCBib29sIHVzZXNDdXN0b21B
cHBlYXJhbmNlKQoreworICAgIE5TUmVjdCBhZGp1c3RlZFBvcHVwQm91bmRzID0gW3ZpZXcud2lu
ZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W3ZpZXcgY29udmVydFJlY3Q6dmlldy5ib3VuZHMgdG9W
aWV3Om5pbF1dOworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIGlmIChj
b250cm9sU2l6ZSAhPSBOU01pbmlDb250cm9sU2l6ZSkgeworI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICBhZGp1c3RlZFBvcHVwQm91bmRzLm9yaWdpbi54IC09IDM7CisgICAg
ICAgIGFkanVzdGVkUG9wdXBCb3VuZHMub3JpZ2luLnkgLT0gMTsKKyAgICAgICAgYWRqdXN0ZWRQ
b3B1cEJvdW5kcy5zaXplLndpZHRoICs9IDY7CisgICAgfQorCisgICAgLy8gVGhlc2UgbnVtYmVy
cyB3ZXJlIGV4dHJhY3RlZCBmcm9tIHZpc3VhbCBpbnNwZWN0aW9uIGFzIHRoZSBtZW51IGFuaW1h
dGVzIHNodXQuCisgICAgTlNTaXplIGxhYmVsT2Zmc2V0ID0gTlNNYWtlU2l6ZSgxMSwgMSk7Cisg
ICAgaWYgKG1lbnUudXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiA9PSBOU1VzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb25SaWdodFRvTGVmdCkKKyAgICAgICAgbGFiZWxPZmZzZXQgPSBOU01h
a2VTaXplKDI0LCAxKTsKKworICAgIGF1dG8gb3B0aW9ucyA9IGFkb3B0TlMoW0B7CisgICAgICAg
IE5TUG9wVXBNZW51UG9wdXBCdXR0b25Cb3VuZHMgOiBbTlNWYWx1ZSB2YWx1ZVdpdGhSZWN0OmFk
anVzdGVkUG9wdXBCb3VuZHNdLAorICAgICAgICBOU1BvcFVwTWVudVBvcHVwQnV0dG9uTGFiZWxP
ZmZzZXQgOiBbTlNWYWx1ZSB2YWx1ZVdpdGhTaXplOmxhYmVsT2Zmc2V0XSwKKyAgICAgICAgTlNQ
b3BVcE1lbnVQb3B1cEJ1dHRvblNpemUgOiBAKGNvbnRyb2xTaXplKQorICAgIH0gbXV0YWJsZUNv
cHldKTsKKworICAgIGlmICh1c2VzQ3VzdG9tQXBwZWFyYW5jZSkKKyAgICAgICAgW29wdGlvbnMg
c2V0T2JqZWN0OkAiIiBmb3JLZXk6TlNQb3BVcE1lbnVQb3B1cEJ1dHRvbldpZGdldF07CisKKyAg
ICBbW21lbnUgX21lbnVJbXBsXSBwb3BVcE1lbnU6bWVudSBhdExvY2F0aW9uOmxvY2F0aW9uIHdp
ZHRoOndpZHRoIGZvclZpZXc6dmlldyB3aXRoU2VsZWN0ZWRJdGVtOnNlbGVjdGVkSXRlbSB3aXRo
Rm9udDpmb250IHdpdGhGbGFnczoodXNlc0N1c3RvbUFwcGVhcmFuY2UgPyAwIDogTlNQb3BVcE1l
bnVJc1BvcHVwQnV0dG9uKSB3aXRoT3B0aW9uczpvcHRpb25zLmdldCgpXTsKK30KKworfSAvLyBu
YW1lc3BhY2UgUEFMCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KaW5kZXgg
MTI5YjZlMmQ1MGQ1MjE2ZGI1YTQ2ODc2NmMxNGZkODJlYTUzYmM3Ny4uMTJkZDhhNzhlZjQyMTFk
NTFiNTdmZTBlODFiZTQwZmUzMGNhMmY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywxNSArMjMs
MTYgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgorI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAKLSNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgotI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKLSNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2lt
cG9ydCAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
aCIKKyNpbXBvcnQgPHBhbC9zeXN0ZW0vbWFjL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oPgorI2lt
cG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Niw3ICs2Nyw3IEBAIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdT
ZWFyY2hXZWIoKQogewotICAgIGF1dG8gc2VhcmNoUHJvdmlkZXJOYW1lID0gYWRvcHRDRih3a0Nv
cHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKKyAgICBhdXRvIHNlYXJjaFBy
b3ZpZGVyTmFtZSA9IFBBTDo6ZGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUoKTsKICAg
ICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRo
ICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRo
IHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJv
bGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIu
bW0KaW5kZXggZWUzZTUzN2ZiOGMyYjY4NzBlNjFkZmQyMzk3NjA3ZWM3ZjFmNGIxYS4uZDM3OWUy
NDc0ZDE2NjY1NGE0YzEyOWNjY2IwZjFlZGUzZTYzMjVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMjAg
KzIzLDI0IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNjcm9sbENvbnRyb2xsZXIuaCIKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiU2Nyb2xsQ29udHJvbGxlci5oIgogCi0jaW5jbHVkZSAiTGF5
b3V0U2l6ZS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgotI2luY2x1ZGUgIldl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKLSNpbmNsdWRlICJXaGVlbEV2ZW50VGVzdFRyaWdnZXIu
aCIKLSNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+Ci0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgIkxheW91dFNpemUuaCIKKyNpbXBvcnQg
IlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5o
IgorI2ltcG9ydCAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCisjaW1wb3J0IDxzeXMvc3lzY3Rs
Lmg+CisjaW1wb3J0IDxzeXMvdGltZS5oPgorI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAK
ICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQotI2luY2x1ZGUgIlNjcm9sbFNuYXBBbmltYXRv
clN0YXRlLmgiCi0jaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKKyNpbXBvcnQgIlNjcm9sbFNu
YXBBbmltYXRvclN0YXRlLmgiCisjaW1wb3J0ICJTY3JvbGxhYmxlQXJlYS5oIgorI2VuZGlmCisK
KyNpZiBQTEFURk9STShNQUMpCisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEku
aD4KICNlbmRpZgogCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSB8fCBFTkFCTEUoQ1NTX1ND
Uk9MTF9TTkFQKQpAQCAtNTIsMTcgKzU2LDE3IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBydWJiZXJi
YW5kTWluaW11bVJlcXVpcmVkRGVsdGFCZWZvcmVTdHJldGNoID0gMTA7CiAjaWYgUExBVEZPUk0o
TUFDKQogc3RhdGljIGZsb2F0IGVsYXN0aWNEZWx0YUZvclRpbWVEZWx0YShmbG9hdCBpbml0aWFs
UG9zaXRpb24sIGZsb2F0IGluaXRpYWxWZWxvY2l0eSwgZmxvYXQgZWxhcHNlZFRpbWUpCiB7Ci0g
ICAgcmV0dXJuIHdrTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEoaW5pdGlhbFBvc2l0aW9uLCBp
bml0aWFsVmVsb2NpdHksIGVsYXBzZWRUaW1lKTsKKyAgICByZXR1cm4gX05TRWxhc3RpY0RlbHRh
Rm9yVGltZURlbHRhKGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFZlbG9jaXR5LCBlbGFwc2VkVGlt
ZSk7CiB9CiAKIHN0YXRpYyBmbG9hdCBlbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoZmxvYXQg
ZGVsdGEpCiB7Ci0gICAgcmV0dXJuIHdrTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoZGVs
dGEpOworICAgIHJldHVybiBfTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoZGVsdGEpOwog
fQogCiBzdGF0aWMgZmxvYXQgcmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKGZsb2F0IGRlbHRh
KQogewotICAgIHJldHVybiB3a05TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKGRlbHRhKTsK
KyAgICByZXR1cm4gX05TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKGRlbHRhKTsKIH0KIAog
c3RhdGljIGZsb2F0IHNjcm9sbFdoZWVsTXVsdGlwbGllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBm
NDI1Nzk3MDEwZGNhMjM3NzBiOGZlNDYwNWJjNDliMGY0ZDYwOGEwLi5jNjk0NmQ2ZGZkM2JjZTNh
MWY4NjI0YTM5NGJjNjg2OWQ3ZDJjM2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsNyArMjQsNiBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDQS5o
IgogCiAjaWYgVVNFKENBKQpAQCAtNDcsNiArNDYsNyBAQAogI2luY2x1ZGUgIlRyYW5zbGF0ZVRy
YW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ0FUcmFuc2Zvcm0zRC5o
PgogI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNT
UEkuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMjk4OCw3ICsyOTg4
LDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9t
S2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWUKICAgICAgICAgLy8gb24gb3IgYmVmb3JlIFNu
b3cgTGVvcGFyZC4KICAgICAgICAgLy8gRklYTUU6IFRoaXMgZml4IGhhcyBub3QgYmVlbiBhZGRl
ZCB0byBRdWFydHpDb3JlIG9uIFdpbmRvd3MgeWV0ICg8cmRhcjovL3Byb2JsZW0vOTExMjIzMz4p
IHNvIHdlIGV4cGVjdCB0aGUKICAgICAgICAgLy8gcmV2ZXJzZWQgYW5pbWF0aW9uIGJlaGF2aW9y
Ci0gICAgICAgIHN0YXRpYyBib29sIGV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xl
b3BhcmQgPSB3a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQoKTsKKyAg
ICAgICAgc3RhdGljIGJvb2wgZXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFy
ZCA9ICFfQ0ZFeGVjdXRhYmxlTGlua2VkT25PckFmdGVyKENGU3lzdGVtVmVyc2lvbkxpb24pOwog
ICAgICAgICBpZiAoIWV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpCiAg
ICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uTGlzdCA9IGZhbHNlOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQppbmRleCBhYTM0NWU4OGU0ODExOGM0Njg3
YjllZWZiZmM3MzIxOGRjNDcwNzBjLi40MTcyZTIyMjY4YzNkYzQxZGE1NjBlNGU0YzI4ZmM2N2Nl
ODJjMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjcsNiArMjcsOCBAQAogI2ltcG9ydCAiQ3Vyc29yLmgiCiAKICNpbXBvcnQgIldlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgPG9iamMvcnVudGltZS5oPgorI2ltcG9ydCA8
cGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2Vw
dGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtMzcsNiArMzksMTM5
IEBAIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQ3Vyc29yQnVuZGxlCiBAZW5kCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKKyAgICAKK3N0YXRpYyBOU0N1cnNvciAqYnVzeUJ1dENsaWNrYWJsZU5TQ3Vy
c29yOworc3RhdGljIE5TQ3Vyc29yICptYWtlQWxpYXNOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNv
ciAqbW92ZU5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVFYXN0TlNDdXJzb3I7Citz
dGF0aWMgTlNDdXJzb3IgKnJlc2l6ZUVhc3RXZXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3Ig
KnJlc2l6ZU5vcnRoTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRoU291dGhO
U0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplTm9ydGhlYXN0TlNDdXJzb3I7CitzdGF0
aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRoZWFzdFNvdXRod2VzdE5TQ3Vyc29yOworc3RhdGljIE5T
Q3Vyc29yICpyZXNpemVOb3J0aHdlc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXpl
Tm9ydGh3ZXN0U291dGhlYXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZVNvdXRo
TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZVNvdXRoZWFzdE5TQ3Vyc29yOworc3Rh
dGljIE5TQ3Vyc29yICpyZXNpemVTb3V0aHdlc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAq
cmVzaXplV2VzdE5TQ3Vyc29yOworCitzdGF0aWMgTlNDdXJzb3IgKmNlbGxOU0N1cnNvcjsKK3N0
YXRpYyBOU0N1cnNvciAqaGVscE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICp6b29tSW5OU0N1
cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqem9vbU91dE5TQ3Vyc29yOworCitzdGF0aWMgTlNJbnRl
Z2VyIFdLQ29yZUN1cnNvcl9jb3JlQ3Vyc29yVHlwZShpZCBzZWxmLCBTRUwpCit7CisgICAgaWYg
KHNlbGYgPT0gYnVzeUJ1dENsaWNrYWJsZU5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVD
dXJzb3JCdXN5QnV0Q2xpY2thYmxlOworICAgIGlmIChzZWxmID09IG1ha2VBbGlhc05TQ3Vyc29y
KQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JNYWtlQWxpYXM7CisgICAgaWYgKHNlbGYgPT0g
bW92ZU5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dNb3ZlOworICAg
IGlmIChzZWxmID09IHJlc2l6ZUVhc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vy
c29yV2luZG93UmVzaXplRWFzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVFYXN0V2VzdE5TQ3Vy
c29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVFYXN0V2VzdDsKKyAg
ICBpZiAoc2VsZiA9PSByZXNpemVOb3J0aE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVD
dXJzb3JXaW5kb3dSZXNpemVOb3J0aDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVOb3J0aFNvdXRo
TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoU291
dGg7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGhlYXN0TlNDdXJzb3IpCisgICAgICAgIHJl
dHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoRWFzdDsKKyAgICBpZiAoc2VsZiA9PSBy
ZXNpemVOb3J0aGVhc3RTb3V0aHdlc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vy
c29yV2luZG93UmVzaXplTm9ydGhFYXN0U291dGhXZXN0OworICAgIGlmIChzZWxmID09IHJlc2l6
ZU5vcnRod2VzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNp
emVOb3J0aFdlc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGh3ZXN0U291dGhlYXN0TlND
dXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoV2VzdFNv
dXRoRWFzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVTb3V0aE5TQ3Vyc29yKQorICAgICAgICBy
ZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aDsKKyAgICBpZiAoc2VsZiA9PSByZXNp
emVTb3V0aGVhc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVz
aXplU291dGhFYXN0OworICAgIGlmIChzZWxmID09IHJlc2l6ZVNvdXRod2VzdE5TQ3Vyc29yKQor
ICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aFdlc3Q7CisgICAgaWYg
KHNlbGYgPT0gcmVzaXplV2VzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JX
aW5kb3dSZXNpemVXZXN0OworICAgIGlmIChzZWxmID09IGNlbGxOU0N1cnNvcikKKyAgICAgICAg
cmV0dXJuIGtDb3JlQ3Vyc29yQ2VsbDsKKyAgICBpZiAoc2VsZiA9PSBoZWxwTlNDdXJzb3IpCisg
ICAgICAgIHJldHVybiBrQ29yZUN1cnNvckhlbHA7CisgICAgaWYgKHNlbGYgPT0gem9vbUluTlND
dXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvclpvb21JbjsKKyAgICBpZiAoc2VsZiA9
PSB6b29tT3V0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvclpvb21PdXQ7Cisg
ICAgCisgICAgcmV0dXJuIE5TTm90Rm91bmQ7Cit9CisKK3N0YXRpYyBDbGFzcyBjcmVhdGVDb3Jl
Q3Vyc29yQ2xhc3Modm9pZCkKK3sKKyAgICBDbGFzcyBjb3JlQ3Vyc29yQ2xhc3MgPSBvYmpjX2Fs
bG9jYXRlQ2xhc3NQYWlyKFtOU0N1cnNvciBjbGFzc10sICJXS0NvcmVDdXJzb3IiLCAwKTsKKyAg
ICBTRUwgY29yZUN1cnNvclR5cGUgPSBOU1NlbGVjdG9yRnJvbVN0cmluZyhAIl9jb3JlQ3Vyc29y
VHlwZSIpOworICAgIGNsYXNzX2FkZE1ldGhvZChjb3JlQ3Vyc29yQ2xhc3MsIGNvcmVDdXJzb3JU
eXBlLCAoSU1QKVdLQ29yZUN1cnNvcl9jb3JlQ3Vyc29yVHlwZSwgbWV0aG9kX2dldFR5cGVFbmNv
ZGluZyhjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChbTlNDdXJzb3IgY2xhc3NdLCBjb3JlQ3Vyc29y
VHlwZSkpKTsKKyAgICBvYmpjX3JlZ2lzdGVyQ2xhc3NQYWlyKGNvcmVDdXJzb3JDbGFzcyk7Cisg
ICAgcmV0dXJuIGNvcmVDdXJzb3JDbGFzczsKK30KKworc3RhdGljIENsYXNzIGNvcmVDdXJzb3JD
bGFzcyh2b2lkKQoreworICAgIENsYXNzIGNvcmVDdXJzb3JDbGFzcyA9IG9iamNfbG9va1VwQ2xh
c3MoIldLQ29yZUN1cnNvciIpOworICAgIGlmICghY29yZUN1cnNvckNsYXNzKQorICAgICAgICBj
b3JlQ3Vyc29yQ2xhc3MgPSBjcmVhdGVDb3JlQ3Vyc29yQ2xhc3MoKTsKKyAgICByZXR1cm4gY29y
ZUN1cnNvckNsYXNzOworfQorCitzdGF0aWMgTlNDdXJzb3IgKmN1cnNvcihjb25zdCBjaGFyICpu
YW1lKQoreworICAgIE5TQ3Vyc29yICoqc2xvdCA9IDA7CisgICAgCisgICAgaWYgKCFzdHJjbXAo
bmFtZSwgIkJ1c3lCdXRDbGlja2FibGUiKSkKKyAgICAgICAgc2xvdCA9ICZidXN5QnV0Q2xpY2th
YmxlTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiTWFrZUFsaWFzIikpCisg
ICAgICAgIHNsb3QgPSAmbWFrZUFsaWFzTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChu
YW1lLCAiTW92ZSIpKQorICAgICAgICBzbG90ID0gJm1vdmVOU0N1cnNvcjsKKyAgICBlbHNlIGlm
ICghc3RyY21wKG5hbWUsICJSZXNpemVFYXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplRWFz
dE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZUVhc3RXZXN0Iikp
CisgICAgICAgIHNsb3QgPSAmcmVzaXplRWFzdFdlc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICgh
c3RyY21wKG5hbWUsICJSZXNpemVOb3J0aCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZU5vcnRo
TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGhTb3V0aCIp
KQorICAgICAgICBzbG90ID0gJnJlc2l6ZU5vcnRoU291dGhOU0N1cnNvcjsKKyAgICBlbHNlIGlm
ICghc3RyY21wKG5hbWUsICJSZXNpemVOb3J0aGVhc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNp
emVOb3J0aGVhc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVO
b3J0aGVhc3RTb3V0aHdlc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aGVhc3RTb3V0
aHdlc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVOb3J0aHdl
c3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aHdlc3ROU0N1cnNvcjsKKyAgICBlbHNl
IGlmICghc3RyY21wKG5hbWUsICJSZXNpemVOb3J0aHdlc3RTb3V0aGVhc3QiKSkKKyAgICAgICAg
c2xvdCA9ICZyZXNpemVOb3J0aHdlc3RTb3V0aGVhc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICgh
c3RyY21wKG5hbWUsICJSZXNpemVTb3V0aCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZVNvdXRo
TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplU291dGhlYXN0Iikp
CisgICAgICAgIHNsb3QgPSAmcmVzaXplU291dGhlYXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAo
IXN0cmNtcChuYW1lLCAiUmVzaXplU291dGh3ZXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXpl
U291dGh3ZXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplV2Vz
dCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZVdlc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICgh
c3RyY21wKG5hbWUsICJDZWxsIikpCisgICAgICAgIHNsb3QgPSAmY2VsbE5TQ3Vyc29yOworICAg
IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIkhlbHAiKSkKKyAgICAgICAgc2xvdCA9ICZoZWxwTlND
dXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiWm9vbUluIikpCisgICAgICAgIHNs
b3QgPSAmem9vbUluTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiWm9vbU91
dCIpKQorICAgICAgICBzbG90ID0gJnpvb21PdXROU0N1cnNvcjsKKyAgICAKKyAgICBpZiAoIXNs
b3QpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgCisgICAgaWYgKCEqc2xvdCkKKyAgICAgICAg
KnNsb3QgPSBbW2NvcmVDdXJzb3JDbGFzcygpIGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4gKnNs
b3Q7Cit9CiAKIC8vIFNpbXBsZSBOU0N1cnNvciBjYWxscyBzaG91bGRuJ3QgbmVlZCBwcm90ZWN0
aW9uLAogLy8gYnV0IGNyZWF0aW5nIGEgY3Vyc29yIHdpdGggYSBiYWQgaW1hZ2UgbWlnaHQgdGhy
b3cuCkBAIC0xMDMsNzIgKzIzOCw3MiBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJz
b3IoKSBjb25zdAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpXYWl0OgotICAg
ICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKKyAg
ICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiQnVzeUJ1dENsaWNrYWJsZSIpOwogICAg
ICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpIZWxwOgotICAgICAgICBtX3BsYXRmb3Jt
Q3Vyc29yID0gd2tDdXJzb3IoIkhlbHAiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1
cnNvcigiSGVscCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpNb3ZlOgog
ICAgIGNhc2UgQ3Vyc29yOjpNaWRkbGVQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29y
ID0gd2tDdXJzb3IoIk1vdmUiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigi
TW92ZSIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpFYXN0UmVzaXplOgog
ICAgIGNhc2UgQ3Vyc29yOjpFYXN0UGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9
IHdrQ3Vyc29yKCJSZXNpemVFYXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJz
b3IoIlJlc2l6ZUVhc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9y
dGhSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoUGFubmluZzoKLSAgICAgICAgbV9wbGF0
Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aCIpOworICAgICAgICBtX3BsYXRmb3Jt
Q3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0aCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNh
c2UgQ3Vyc29yOjpOb3J0aEVhc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoRWFzdFBh
bm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGhl
YXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRoZWFz
dCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFdlc3RSZXNpemU6
CiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoV2VzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1D
dXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGh3ZXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1D
dXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRod2VzdCIpOwogICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgQ3Vyc29yOjpTb3V0aFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6U291dGhQYW5uaW5n
OgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZVNvdXRoIik7Cisg
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZVNvdXRoIik7CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoRWFzdFJlc2l6ZToKICAgICBjYXNlIEN1
cnNvcjo6U291dGhFYXN0UGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vy
c29yKCJSZXNpemVTb3V0aGVhc3QiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNv
cigiUmVzaXplU291dGhlYXN0Iik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6
OlNvdXRoV2VzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6U291dGhXZXN0UGFubmluZzoKLSAg
ICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVTb3V0aHdlc3QiKTsKKyAg
ICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplU291dGh3ZXN0Iik7CiAgICAg
ICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6Oldlc3RSZXNpemU6CiAgICAgY2FzZSBDdXJz
b3I6Oldlc3RQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJl
c2l6ZVdlc3QiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplV2Vz
dCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFNvdXRoUmVzaXpl
OgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRoU291dGgi
KTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplTm9ydGhTb3V0aCIp
OwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpFYXN0V2VzdFJlc2l6ZToKLSAg
ICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVFYXN0V2VzdCIpOworICAg
ICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVFYXN0V2VzdCIpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aEVhc3RTb3V0aFdlc3RSZXNpemU6Ci0g
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGhlYXN0U291dGh3
ZXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRoZWFz
dFNvdXRod2VzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFdl
c3RTb3V0aEVhc3RSZXNpemU6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigi
UmVzaXplTm9ydGh3ZXN0U291dGhlYXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBj
dXJzb3IoIlJlc2l6ZU5vcnRod2VzdFNvdXRoZWFzdCIpOwogICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgQ3Vyc29yOjpDb2x1bW5SZXNpemU6CkBAIC0xODQsNyArMzE5LDcgQEAgdm9pZCBDdXJz
b3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBj
YXNlIEN1cnNvcjo6Q2VsbDoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJD
ZWxsIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIkNlbGwiKTsKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Q29udGV4dE1lbnU6CkBAIC0xOTIsMTEgKzMy
NywxMSBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpBbGlhczoKLSAgICAgICAgbV9wbGF0Zm9ybUN1
cnNvciA9IHdrQ3Vyc29yKCJNYWtlQWxpYXMiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9
IGN1cnNvcigiTWFrZUFsaWFzIik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6
OlByb2dyZXNzOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIkJ1c3lCdXRD
bGlja2FibGUiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiQnVzeUJ1dENs
aWNrYWJsZSIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb0Ryb3A6CkBA
IC0yMTYsMTEgKzM1MSwxMSBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBj
b25zdAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpab29tSW46Ci0gICAgICAg
IG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiWm9vbUluIik7CisgICAgICAgIG1fcGxhdGZv
cm1DdXJzb3IgPSBjdXJzb3IoIlpvb21JbiIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
Q3Vyc29yOjpab29tT3V0OgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlpv
b21PdXQiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiWm9vbU91dCIpOwog
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpHcmFiOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKaW5kZXggYWNl
Mjk4YzEyZjgyMGVkNTBkNjljZmVmNjUxNjMwZDA4NGMwNTJmZS4uNTVmY2ExMjgxNjJmNjM4MjAx
NTZmYTIxMWIyN2I3YWQyY2YxOTUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCkBAIC0xMjMsNyArMTIzLDYgQEAgdHlw
ZWRlZiBlbnVtIHsKICAgICB3a1BhdHRlcm5UaWxpbmdDb25zdGFudFNwYWNpbmcKIH0gd2tQYXR0
ZXJuVGlsaW5nOwogI2lmICFQTEFURk9STShJT1MpCi1leHRlcm4gdm9pZCAoKndrRHJhd0JlemVs
ZWRUZXh0QXJlYSkoTlNSZWN0LCBCT09MIGVuYWJsZWQpOwogZXh0ZXJuIHZvaWQgKCp3a0RyYXdN
ZWRpYVNsaWRlclRyYWNrKShDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IHJlY3QsIGZsb2F0
IHRpbWVMb2FkZWQsIGZsb2F0IGN1cnJlbnRUaW1lLAogICAgIGZsb2F0IGR1cmF0aW9uLCB1bnNp
Z25lZCBzdGF0ZSk7CiBleHRlcm4gdm9pZCAoKndrRHJhd01lZGlhVUlQYXJ0KShpbnQgcGFydCwg
Q0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCByZWN0LCB1bnNpZ25lZCBzdGF0ZSk7CkBAIC0x
MzYsMjQgKzEzNSwxMCBAQCBleHRlcm4gdm9pZCAoKndrU2V0Q29va2llU3RvcmFnZVByaXZhdGVC
cm93c2luZ0VuYWJsZWQpKEJPT0wpOwogZXh0ZXJuIHZvaWQqIHdrR2V0SHlwaGVuYXRpb25Mb2Nh
dGlvbkJlZm9yZUluZGV4OwogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQotZXh0ZXJuIGJv
b2wgKCp3a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpKHZvaWQpOwot
Ci1leHRlcm4gQ0ZTdHJpbmdSZWYgKCp3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5
TmFtZSkodm9pZCk7Ci0KLWV4dGVybiBOU0N1cnNvciAqKCp3a0N1cnNvcikoY29uc3QgY2hhciop
OwotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCi0KICNpZiBQTEFURk9STShJT1MpCiBleHRlcm4g
dm9pZCAoKndrU2V0TGF5ZXJDb250ZW50c1NjYWxlKShDQUxheWVyICopOwogI2VuZGlmCiAKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZVUkxTdG9yYWdlU2Vzc2lvbiogQ0ZVUkxTdG9yYWdlU2Vz
c2lvblJlZjsKIAotI2lmICFQTEFURk9STShJT1MpCi1leHRlcm4gQ0dGbG9hdCAoKndrTlNFbGFz
dGljRGVsdGFGb3JUaW1lRGVsdGEpKENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGlu
aXRpYWxWZWxvY2l0eSwgQ0dGbG9hdCBlbGFwc2VkVGltZSk7Ci1leHRlcm4gQ0dGbG9hdCAoKndr
TlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEpKENHRmxvYXQgZGVsdGEpOwotZXh0ZXJuIENH
RmxvYXQgKCp3a05TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKShDR0Zsb2F0IGRlbHRhKTsK
LSNlbmRpZgotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IDM1MDczMTliNWRkOGE3ZTcwNmZlNjMxM2QwNDFm
Mzg0OTA4MDA4YTMuLjhmYmIxZDNkOGM4ODY4YzI0NTRmMzA5YzY5ZTA2NDAwZjNkZmY5NmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50
ZXJmYWNlLm1tCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRh
dGlvbi5oPgogCi12b2lkICgqd2tEcmF3QmV6ZWxlZFRleHRBcmVhKShOU1JlY3QsIEJPT0wgZW5h
YmxlZCk7CiB2b2lkICgqd2tEcmF3TWVkaWFTbGlkZXJUcmFjaykoQ0dDb250ZXh0UmVmIGNvbnRl
eHQsIENHUmVjdCByZWN0LCBmbG9hdCB0aW1lTG9hZGVkLCBmbG9hdCBjdXJyZW50VGltZSwKICAg
ICBmbG9hdCBkdXJhdGlvbiwgdW5zaWduZWQgc3RhdGUpOwogQk9PTCAoKndrSGl0VGVzdE1lZGlh
VUlQYXJ0KShpbnQgcGFydCwgQ0dSZWN0IGJvdW5kcywgQ0dQb2ludCBwb2ludCk7CkBAIC00Miwx
NCArNDEsNCBAQCB2b2lkICgqd2tQb3B1cE1lbnUpKE5TTWVudSosIE5TUG9pbnQgbG9jYXRpb24s
IGZsb2F0IHdpZHRoLCBOU1ZpZXcqLCBpbnQgc2VsZWN0ZQogCiB2b2lkKiB3a0dldEh5cGhlbmF0
aW9uTG9jYXRpb25CZWZvcmVJbmRleDsKIAotYm9vbCAoKndrRXhlY3V0YWJsZVdhc0xpbmtlZE9u
T3JCZWZvcmVTbm93TGVvcGFyZCkodm9pZCk7Ci0KIENGU3RyaW5nUmVmICgqd2tDb3B5RGVmYXVs
dFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpKHZvaWQpOwotCi1OU0N1cnNvciAqKCp3a0N1cnNv
cikoY29uc3QgY2hhciopOwotCi0jaWYgIVBMQVRGT1JNKElPUykKLUNHRmxvYXQgKCp3a05TRWxh
c3RpY0RlbHRhRm9yVGltZURlbHRhKShDR0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBp
bml0aWFsVmVsb2NpdHksIENHRmxvYXQgZWxhcHNlZFRpbWUpOwotQ0dGbG9hdCAoKndrTlNFbGFz
dGljRGVsdGFGb3JSZWJvdW5kRGVsdGEpKENHRmxvYXQgZGVsdGEpOwotQ0dGbG9hdCAoKndrTlNS
ZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpKENHRmxvYXQgZGVsdGEpOwotI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggOTNlOGQ2MTk3MTc2
MTc1ZDhjY2IzNmUxOWNmZWZiYTljNDg2NTVlZi4uZjAwYzgzOTdiNThhNDFhYTkzMTI4YTIyNmFh
ZTc1YTZmYjlhYzU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbQpAQCAtNzQsNiArNzQsNyBAQAogI2ltcG9ydCA8bWF0aC5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNDb2xvclNQ
SS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNDZWxsU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L21hYy9OU1NoYXJpbmdTZXJ2aWNlUGlja2VyU1BJLmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJh
cy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpAQCAtODg0LDcgKzg4NSw3IEBAIHZvaWQg
UmVuZGVyVGhlbWVNYWM6OmFkanVzdFRleHRGaWVsZFN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5k
ZXJTdHlsZSYsIGNvbnN0IEVsCiBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFRleHRBcmVhKGNv
bnN0IFJlbmRlck9iamVjdCYgbywgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZs
b2F0UmVjdCYgcikKIHsKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDb250
ZXh0KHBhaW50SW5mby5jb250ZXh0KCkpOwotICAgIHdrRHJhd0JlemVsZWRUZXh0QXJlYShyLCBp
c0VuYWJsZWQobykgJiYgIWlzUmVhZE9ubHlDb250cm9sKG8pKTsKKyAgICBfTlNEcmF3Q2FyYm9u
VGhlbWVMaXN0Qm94KHIsIGlzRW5hYmxlZChvKSAmJiAhaXNSZWFkT25seUNvbnRyb2wobyksIFlF
UywgWUVTKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KaW5kZXggNmY3NTI5NTJl
NzZjMzQ4N2IyYWNhMGQyZGUxMTM1YWFjM2RhZWU4Ny4uMTM4YmU2YjhmZmM3NDM4ODUwMWE1MThl
YmFmMDI0MmY5ZjEyOTI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KQEAgLTQyLDYgKzQyLDcgQEAKICNpbXBvcnQg
PFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8bm90aWZ5Lmg+CiAjaW1wb3J0IDxw
YWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hT
ZXJ2aWNlc1NQSS5oPgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KICNpbXBvcnQgPHd0Zi9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTks
NyArNjAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBD
aGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcgogdm9pZCBOZXR3b3JrUHJvY2Vzczo6
aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lID0g
W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX1NUUklORygiJUAgTmV0d29ya2luZyIs
ICJ2aXNpYmxlIG5hbWUgb2YgdGhlIG5ldHdvcmsgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRo
ZSBhcHBsaWNhdGlvbiBuYW1lLiIpLCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05h
bWVdOwotICAgIFdLU2V0VmlzaWJsZUFwcGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGlj
YXRpb25OYW1lKTsKKyAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZh
dWx0U2Vzc2lvbklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlO
YW1lS2V5LCAoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lLCBudWxscHRyKTsKIH0KIAogc3Rh
dGljIHZvaWQgb3ZlcnJpZGVTeXN0ZW1Qcm94aWVzKGNvbnN0IFN0cmluZyYgaHR0cFByb3h5LCBj
b25zdCBTdHJpbmcmIGh0dHBzUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdp
blByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblBy
b2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KaW5kZXggMjRkMjZlZDFlNjc0M2FlYzU1N2E4
Zjc2NDg5YjY3MzgwNDE3ZmQwNS4uZGIwYzMwNmYwNjJlN2RmOTNlMTM5YWRkZTA0NmI5YThiZjk3
ZGY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Q
cm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2lu
UHJvY2Vzc01hYy5tbQpAQCAtNjIyLDkgKzYyMiw5IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6cGxh
dGZvcm1Jbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBh
CiB2b2lkIFBsdWdpblByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgTlNTdHJp
bmcgKmFwcGxpY2F0aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9T
VFJJTkcoIiVAICglQCBJbnRlcm5ldCBwbHVnLWluKSIsICJ2aXNpYmxlIG5hbWUgb2YgdGhlIHBs
dWctaW4gaG9zdCBwcm9jZXNzLiBUaGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlIHBsdWctaW4gbmFt
ZSBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgW1so
TlNTdHJpbmcgKiltX3BsdWdpblBhdGggbGFzdFBhdGhDb21wb25lbnRdIHN0cmluZ0J5RGVsZXRp
bmdQYXRoRXh0ZW5zaW9uXSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsK
LSAgICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9u
TmFtZSk7CisgICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNl
c3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9rTFNEaXNwbGF5TmFtZUtl
eSwgKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSwgbnVsbHB0cik7CiAgICAgaWYgKCFtX3Bs
dWdpbkJ1bmRsZUlkZW50aWZpZXIuaXNFbXB0eSgpKQotICAgICAgICBXS1NldEFwcGxpY2F0aW9u
SW5mb3JtYXRpb25JdGVtKGtMU1BsdWdJbkJ1bmRsZUlkZW50aWZpZXJLZXksIG1fcGx1Z2luQnVu
ZGxlSWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyAgICAgICAgX0xTU2V0QXBw
bGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVu
dEFwcGxpY2F0aW9uQVNOKCksIGtMU1BsdWdJbkJ1bmRsZUlkZW50aWZpZXJLZXksIG1fcGx1Z2lu
QnVuZGxlSWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBudWxscHRyKTsKIH0KIAog
dm9pZCBQbHVnaW5Qcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlv
blBhcmFtZXRlcnMmIHNhbmRib3hQYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL21hYy9TdG9yYWdlUHJvY2Vzc01hYy5tbQppbmRleCBjMDM4ODYwZjhm
MTQzYzBkY2ZmYzkzYTUyNzY2ZDYzNDU0NzQxZjM5Li5lMzk2ODFhYzc0YWZlZDFkNmY0OWZiYzhl
NTMwNWJmYzVjNDM2YTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L21hYy9TdG9yYWdlUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL21hYy9TdG9yYWdlUHJvY2Vzc01hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL0ZpbGVTeXN0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgog
I2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L0xhdW5jaFNlcnZpY2VzU1BJLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00
Nyw3ICs0OCw3IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0
IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVyCiB2b2lkIFN0b3JhZ2VQcm9jZXNz
Ojppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWUg
PSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIlQCBTdG9yYWdlIiwg
InZpc2libGUgbmFtZSBvZiB0aGUgc3RvcmFnZSBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhl
IGFwcGxpY2F0aW9uIG5hbWUuIiksIChOU1N0cmluZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFt
ZV07Ci0gICAgV0tTZXRWaXNpYmxlQXBwbGljYXRpb25OYW1lKChDRlN0cmluZ1JlZilhcHBsaWNh
dGlvbk5hbWUpOworICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1
bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBfa0xTRGlzcGxheU5h
bWVLZXksIChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUsIG51bGxwdHIpOwogfQogCiB2b2lk
IFN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMmIHNhbmRib3hQYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCmluZGV4IDMyMTQ4Yjk1NmM5NGZmMjg4ODkzZTE2
YjI3YWI1OWZiNzRkN2FiYjEuLmY4YjlkYjI2NWE4YTI0Yzg0YjI4OTk3ODllZDNmZDhlZWE1YTQ1
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUubW0KQEAgLTcxLDcgKzcxLDcgQEAKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
CiAjaWYgSEFWRShBUFBfTElOS1MpCi0jaW1wb3J0IDxwYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNl
c1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oPgogI2Vu
ZGlmCiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KaW5kZXggOTk4MGUxNWUyZjk5MjY2YWIwOWI4YTVhMDFiYTdlZDc4
N2E1YjUwNS4uMDE1NWNiMThiMTUxNDM5YTBmMTNiMjNhYWRhYWQ2MTc3MWM2ZTU5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05NCw2ICs5
NCw3IEBACiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0FjY2Vzc2liaWxpdHlTUEkuaD4KICNpbXBv
cnQgPHBhbC9zcGkvbWFjL05TQXBwbGljYXRpb25TUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFj
L05TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaD4KKyNpbXBvcnQgPHBhbC9z
cGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU3BlbGxD
aGVja2VyU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1RleHRGaW5kZXJTUEkuaD4KICNp
bXBvcnQgPHBhbC9zcGkvbWFjL05TV2luZG93U1BJLmg+CkBAIC0xMjU5LDcgKzEyNjAsNyBAQCBz
dGF0aWMgTlNUcmFja2luZ0FyZWFPcHRpb25zIHRyYWNraW5nQXJlYU9wdGlvbnMoKQogewogICAg
IC8vIExlZ2FjeSBzdHlsZSBzY3JvbGxiYXJzIGhhdmUgZGVzaWduIGRldGFpbHMgdGhhdCByZWx5
IG9uIHRyYWNraW5nIHRoZSBtb3VzZSBhbGwgdGhlIHRpbWUuCiAgICAgTlNUcmFja2luZ0FyZWFP
cHRpb25zIG9wdGlvbnMgPSBOU1RyYWNraW5nTW91c2VNb3ZlZCB8IE5TVHJhY2tpbmdNb3VzZUVu
dGVyZWRBbmRFeGl0ZWQgfCBOU1RyYWNraW5nSW5WaXNpYmxlUmVjdCB8IE5TVHJhY2tpbmdDdXJz
b3JVcGRhdGU7Ci0gICAgaWYgKFdLUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3Jv
bGxlclN0eWxlTGVnYWN5KQorICAgIGlmIChfTlNSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9
PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kpCiAgICAgICAgIG9wdGlvbnMgfD0gTlNUcmFja2luZ0Fj
dGl2ZUFsd2F5czsKICAgICBlbHNlCiAgICAgICAgIG9wdGlvbnMgfD0gTlNUcmFja2luZ0FjdGl2
ZUluS2V5V2luZG93OwpAQCAtMTk0NSw3ICsxOTQ2LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6bWln
aHRCZWdpbkRyYWdXaGlsZUluYWN0aXZlKCkKIGJvb2wgV2ViVmlld0ltcGw6Om1pZ2h0QmVnaW5T
Y3JvbGxXaGlsZUluYWN0aXZlKCkKIHsKICAgICAvLyBMZWdhY3kgc3R5bGUgc2Nyb2xsYmFycyBo
YXZlIGRlc2lnbiBkZXRhaWxzIHRoYXQgcmVseSBvbiB0cmFja2luZyB0aGUgbW91c2UgYWxsIHRo
ZSB0aW1lLgotICAgIGlmIChXS1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xs
ZXJTdHlsZUxlZ2FjeSkKKyAgICBpZiAoX05TUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0g
TlNTY3JvbGxlclN0eWxlTGVnYWN5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlv
blNoZWV0QXNzaXN0YW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9u
U2hlZXRBc3Npc3RhbnQubW0KaW5kZXggYzNlOTJhN2UxOWRhYThjZWE0MzFiYjY2ZThhMTg3MTZk
NzlhZThmNi4uOWNlODQxNzEzNWJlNGYzODJhOWM1YmIyZWI2MDVmOWI1YWQzNWNkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAKICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiAjaWYgSEFWRShBUFBfTElOS1MpCi0jaW1wb3J0IDxwYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNl
c1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oPgogI2Vu
ZGlmCiAKICNpZiBIQVZFKFNBRkFSSV9TRVJWSUNFU19GUkFNRVdPUkspCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KaW5kZXggN2Q2
Y2IzZWRhMWQwODljODc0NWFiMzRhMDFjM2NiNmNmZWZlM2MyMS4uMTI0MWJkOGQ5ZTFiNzAxN2Yw
OWQ0YzRjNGZmOWVhMzAxOWM3NmJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2ICszNCw3IEBACiAjaW1w
b3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNpbXBvcnQgIldlYlBvcHVwSXRlbS5oIgogI2ltcG9y
dCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL21hYy9Qb3B1
cE1lbnUuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTE2NSw3ICsxNjYsNyBA
QCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3Qm
IHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogICAgIH0KIAogICAgIFJlZjxXZWJQb3B1cE1lbnVQ
cm94eU1hYz4gcHJvdGVjdCgqdGhpcyk7Ci0gICAgV0tQb3B1cE1lbnUobWVudSwgbG9jYXRpb24s
IHJvdW5kZihOU1dpZHRoKHJlY3QpKSwgZHVtbXlWaWV3LmdldCgpLCBzZWxlY3RlZEluZGV4LCBm
b250LCBjb250cm9sU2l6ZSwgZGF0YS5oaWRlQXJyb3dzKTsKKyAgICBQQUw6OnBvcFVwTWVudSht
ZW51LCBsb2NhdGlvbiwgcm91bmRmKE5TV2lkdGgocmVjdCkpLCBkdW1teVZpZXcuZ2V0KCksIHNl
bGVjdGVkSW5kZXgsIGZvbnQsIGNvbnRyb2xTaXplLCBkYXRhLmhpZGVBcnJvd3MpOwogCiAgICAg
W21fcG9wdXAgZGlzbWlzc1BvcFVwXTsKICAgICBbZHVtbXlWaWV3IHJlbW92ZUZyb21TdXBlcnZp
ZXddOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCmluZGV4IGEzMTIwZTYyNTM4
M2JlYjJhZjcwNzAyNzBmNDdmODU4OTkzMGMyMDYuLmQyOTFhMTE0M2NjMzFlY2QxM2M4ZWJiODIy
NTMyY2E3ZWYxMWM5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KQEAg
LTM4LDYgKzM4LDcgQEAKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9y
dCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaD4K
KyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKQEAgLTE1OCw3ICsx
NTksNiBAQCBOUEJvb2wgTmV0c2NhcGVQbHVnaW46OmNvbnZlcnRQb2ludChkb3VibGUgc291cmNl
WCwgZG91YmxlIHNvdXJjZVksIE5QQ29vcmRpbmF0ZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
CiBOUEVycm9yIE5ldHNjYXBlUGx1Z2luOjpwb3BVcENvbnRleHRNZW51KE5QTWVudSogbnBNZW51
KQogewogICAgIGlmICghbV9jdXJyZW50TW91c2VFdmVudCkKQEAgLTE2OCw3ICsxNjgsNyBAQCBO
UEVycm9yIE5ldHNjYXBlUGx1Z2luOjpwb3BVcENvbnRleHRNZW51KE5QTWVudSogbnBNZW51KQog
ICAgIGlmICghY29udmVydFBvaW50KG1fY3VycmVudE1vdXNlRXZlbnQtPmRhdGEubW91c2UucGx1
Z2luWCwgbV9jdXJyZW50TW91c2VFdmVudC0+ZGF0YS5tb3VzZS5wbHVnaW5ZLCBOUENvb3JkaW5h
dGVTcGFjZVBsdWdpbiwgc2NyZWVuWCwgc2NyZWVuWSwgTlBDb29yZGluYXRlU3BhY2VTY3JlZW4p
KQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAotICAgIFdLUG9wdXBDb250ZXh0TWVu
dShyZWludGVycHJldF9jYXN0PE5TTWVudSAqPihucE1lbnUpLCBOU01ha2VQb2ludChzY3JlZW5Y
LCBzY3JlZW5ZKSk7CisgICAgX05TUG9wVXBDYXJib25NZW51MyhyZWludGVycHJldF9jYXN0PE5T
TWVudSAqPihucE1lbnUpLCBuaWwsIG5pbCwgTlNNYWtlUG9pbnQoc2NyZWVuWCwgc2NyZWVuWSks
IC0xLCBuaWwsIDAsIG5pbCwgTlNQb3BVcE1lbnVUeXBlQ29udGV4dCwgbmlsKTsKICAgICByZXR1
cm4gTlBFUlJfTk9fRVJST1I7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDkyN2M4YWM0M2QyNWQ2ZjdjN2I4Nzg1NjY2
NjA3YmQyNzNiM2ViYTEuLmFmY2ZmYTUxNzQ1YjI1YjllNzQwNDI4MzA3ZmFjZWQ1NDhkZWNhYTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTEsIDIw
MTIsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC04MSw2ICs4MSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1do
ZWVsRXZlbnRUZXN0VHJpZ2dlci5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgorI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvTlNNZW51U1BJLmg+CiAjaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbXBvcnQg
PHd0Zi9VVUlELmg+CiAKQEAgLTE1ODUsNyArMTU4Niw3IEBAIGJvb2wgUERGUGx1Z2luOjpoYW5k
bGVDb250ZXh0TWVudUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQogICAgIEludFBv
aW50IHBvaW50ID0gZnJhbWVWaWV3LT5jb250ZW50c1RvU2NyZWVuKEludFJlY3QoZnJhbWVWaWV3
LT53aW5kb3dUb0NvbnRlbnRzKGV2ZW50LnBvc2l0aW9uKCkpLCBJbnRTaXplKCkpKS5sb2NhdGlv
bigpOwogICAgIAogICAgIGlmIChOU01lbnUgKm5zTWVudSA9IFttX3BkZkxheWVyQ29udHJvbGxl
ciBtZW51Rm9yRXZlbnQ6bnNFdmVudEZvcldlYk1vdXNlRXZlbnQoZXZlbnQpXSkgewotICAgICAg
ICBXS1BvcHVwQ29udGV4dE1lbnUobnNNZW51LCBwb2ludCk7CisgICAgICAgIF9OU1BvcFVwQ2Fy
Ym9uTWVudTMobnNNZW51LCBuaWwsIG5pbCwgcG9pbnQsIC0xLCBuaWwsIDAsIG5pbCwgTlNQb3BV
cE1lbnVUeXBlQ29udGV4dCwgbmlsKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQppbmRleCA2ZDFkZDczMzkxOWVkNGY0
ODYzN2Q2N2NlNjE1ZGM2ZmQwNDcxMjI3Li5iOWFjMzk2YmIwMzZkNTVkNzEyYzIyNzQ4MmFmYTNm
Yzk3NzMwOTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtMzcsMTcg
KzM3LDEwIEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAKICAg
ICBkaXNwYXRjaF9vbmNlKCZpbml0T25jZSwgXnsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgICAg
ICBJTklUKERyYXdCZXplbGVkVGV4dEFyZWEpOwogICAgICAgICBJTklUKERyYXdNZWRpYVNsaWRl
clRyYWNrKTsKICAgICAgICAgSU5JVChEcmF3TWVkaWFVSVBhcnQpOwogICAgICAgICBJTklUKEhp
dFRlc3RNZWRpYVVJUGFydCk7CiAgICAgICAgIElOSVQoTWVhc3VyZU1lZGlhVUlQYXJ0KTsKLSAg
ICAgICAgSU5JVChFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKTsKLSAg
ICAgICAgSU5JVChDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOwotICAgICAg
ICBJTklUKEN1cnNvcik7Ci0gICAgICAgIElOSVQoTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEp
OwotICAgICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKTsKLSAgICAgICAg
SU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7CiAjZW5kaWYKICAgICB9KTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
CmluZGV4IDdjMzVkOGU5MGI3OTFjOTQyNjE5ZmRjZjc2NjAzYzliNDMwZWUwMmEuLjQzYjc5NjY2
ZDE1MWU5ZGEyOTdhYzY5ZjJkMDlhZGY4MDIxMWRiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTk0LDcgKzE5NCw3IEBA
IHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVyCiAgICAgICAgIGFwcGxpY2F0aW9uTmFtZSA9IFtOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAIFdlYiBJbnNwZWN0b3IiLCAi
VmlzaWJsZSBuYW1lIG9mIFdlYiBJbnNwZWN0b3IncyB3ZWIgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50
IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiIpLCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJv
Y2Vzc05hbWVdOwogICAgIGVsc2UKICAgICAgICAgYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX1NUUklORygiJUAgV2ViIENvbnRlbnQiLCAiVmlzaWJs
ZSBuYW1lIG9mIHRoZSB3ZWIgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlv
biBuYW1lLiIpLCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwotICAgIFdL
U2V0VmlzaWJsZUFwcGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lKTsK
KyAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklE
LCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5LCAoQ0ZT
dHJpbmdSZWYpYXBwbGljYXRpb25OYW1lLCBudWxscHRyKTsKICNlbmRpZgogfQogCkBAIC0zOTQs
NyArMzk0LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdlcygpCiAgICAgfQog
CiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9R
VUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgW2FjdGl2ZVBhZ2VVUkxzXSB7Ci0gICAgICAgIFdL
U2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oQ0ZTVFIoIkxTQWN0aXZlUGFnZVVzZXJWaXNp
YmxlT3JpZ2luc0tleSIpLCAoX19icmlkZ2UgQ0ZBcnJheVJlZilhY3RpdmVQYWdlVVJMcy5nZXQo
KSk7CisgICAgICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRT
ZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBDRlNUUigiTFNBY3RpdmVQ
YWdlVXNlclZpc2libGVPcmlnaW5zS2V5IiksIChfX2JyaWRnZSBDRkFycmF5UmVmKWFjdGl2ZVBh
Z2VVUkxzLmdldCgpLCBudWxscHRyKTsKICAgICB9KTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4
dE1lbnVEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0
ZXMvV2ViRGVmYXVsdENvbnRleHRNZW51RGVsZWdhdGUubW0KaW5kZXggMDI2NWJmMGM1MWE5ZjE4
NzE1OTY1NTVkNjkwN2Y5MDIzNzBlNzk1Ny4uNjM5MmFiMDUxZjMzOTI0MzNhMDA3MGQ0YmZjZDY0
MmJkNDU3MWEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERl
bGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRDb250ZXh0TWVudURlbGVn
YXRlLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC01MSw2ICs1MSw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NLmg+CiAjaW1w
b3J0IDxXZWJLaXRMZWdhY3kvRE9NUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50
ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL21hYy9EZWZhdWx0U2VhcmNoUHJvdmlkZXIu
aD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJEZWZh
dWx0VUlEZWxlZ2F0ZSAoV2ViQ29udGV4dE1lbnUpCkBAIC05MSw3ICs5Miw3IEBAIC0gKE5TTWVu
dUl0ZW0gKiltZW51SXRlbVdpdGhUYWc6KGludCl0YWcgdGFyZ2V0OihpZCl0YXJnZXQgcmVwcmVz
ZW50ZWRPYmplY3Q6KGlkCiAgICAgICAgICAgICBhY3Rpb24gPSBAc2VsZWN0b3IoX3NlYXJjaFdp
dGhTcG90bGlnaHRGcm9tTWVudTopOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
V2ViTWVudUl0ZW1UYWdTZWFyY2hXZWI6IHsKLSAgICAgICAgICAgIFJldGFpblB0cjxDRlN0cmlu
Z1JlZj4gc2VhcmNoUHJvdmlkZXJOYW1lID0gYWRvcHRDRihXS0NvcHlEZWZhdWx0U2VhcmNoUHJv
dmlkZXJEaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgICAgIGF1dG8gc2VhcmNoUHJvdmlkZXJOYW1l
ID0gUEFMOjpkZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpOwogICAgICAgICAgICAg
dGl0bGUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpVSV9TVFJJTkdfSU5URVJOQUwoIlNl
YXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUg
aXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdl
dCgpXTsKICAgICAgICAgICAgIGFjdGlvbiA9IEBzZWxlY3Rvcihfc2VhcmNoV2l0aEdvb2dsZUZy
b21NZW51Oik7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJv
eHkubW0KaW5kZXggMTliMzhhZTJlODM0MzI3ZGQ2NzMzODYxN2I2MTdlODk3ZDc2OGQ5Yi4uMzg0
YTU5MWVmZTE3ODI2MTllYTJkOGRkZWExNTAwZmQ5NWRmMmNkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHku
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5Ib3N0UHJveHkubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OC0yMDE3IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Nj
cmlwdENvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaD4K
ICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBleHRlcm4gIkMiIHsKQEAgLTExNyw3
ICsxMTgsNyBAQCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5Ib3N0UHJv
eHkobWFjaF9wb3J0X3QgY2xpZW50UG9ydCwgbWFjaF9wbwogICAgIAogICAgIENGUnVuTG9vcEFk
ZFNvdXJjZShDRlJ1bkxvb3BHZXRDdXJyZW50KCksIGRlYXRoUG9ydFNvdXJjZS5nZXQoKSwga0NG
UnVuTG9vcERlZmF1bHRNb2RlKTsKICAgICAKLSAgICBtX2NsaWVudFBvcnRTb3VyY2UgPSBhZG9w
dENGKFdLQ3JlYXRlTUlHU2VydmVyU291cmNlKChtaWdfc3Vic3lzdGVtX3QpJldLV2ViS2l0UGx1
Z2luQ2xpZW50X3N1YnN5c3RlbSwgbV9jbGllbnRQb3J0KSk7CisgICAgbV9jbGllbnRQb3J0U291
cmNlID0gYWRvcHRDRihNU0hDcmVhdGVNSUdTZXJ2ZXJTb3VyY2UobnVsbHB0ciwgMCwgKG1pZ19z
dWJzeXN0ZW1fdCkmV0tXZWJLaXRQbHVnaW5DbGllbnRfc3Vic3lzdGVtLCAwLCBtX2NsaWVudFBv
cnQsIG51bGxwdHIpKTsKICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0Q3VycmVu
dCgpLCBtX2NsaWVudFBvcnRTb3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7CiAg
ICAgQ0ZSdW5Mb29wQWRkU291cmNlKENGUnVuTG9vcEdldEN1cnJlbnQoKSwgbV9jbGllbnRQb3J0
U291cmNlLmdldCgpLCAoQ0ZTdHJpbmdSZWYpTlNFdmVudFRyYWNraW5nUnVuTG9vcE1vZGUpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9w
dXBNZW51TWFjLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9w
dXBNZW51TWFjLm1tCmluZGV4IGNjNWY4MWRmZDY1NmZjOGU3MzVkMTg1N2Y1YWU4NTM4ZDA3NGZl
MTQuLjgxY2Y0Yzc1ZDIwOWNiY2YxYzQ3MWYxM2NlM2NlNGYwZjFiMTBjMmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMu
bW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4LCAyMDEw
LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BvcHVwTWVudUNsaWVudC5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVt
SW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUuaD4KICNpbXBv
cnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwpAQCAtMjE3LDcgKzIxOCw3IEBAIHZvaWQgUG9wdXBNZW51TWFjOjpzaG93KGNvbnN0IEludFJl
Y3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogICAgICAgICBicmVhazsKICAgICB9CiAK
LSAgICBXS1BvcHVwTWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRmKE5TV2lkdGgocikpLCBkdW1t
eVZpZXcuZ2V0KCksIGluZGV4LCB0b05TRm9udChmb250KSwgY29udHJvbFNpemUsICFtX2NsaWVu
dC0+bWVudVN0eWxlKCkuaGFzRGVmYXVsdEFwcGVhcmFuY2UoKSk7CisgICAgUEFMOjpwb3BVcE1l
bnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dpZHRoKHIpKSwgZHVtbXlWaWV3LmdldCgpLCBp
bmRleCwgdG9OU0ZvbnQoZm9udCksIGNvbnRyb2xTaXplLCAhbV9jbGllbnQtPm1lbnVTdHlsZSgp
Lmhhc0RlZmF1bHRBcHBlYXJhbmNlKCkpOwogCiAgICAgW21fcG9wdXAgZGlzbWlzc1BvcFVwXTsK
ICAgICBbZHVtbXlWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbQppbmRleCBmOWI4NzAyMmI2NjE5ZDE5MDgxNzZmYTExNzNhMGM5Yjk5NTZhMWMyLi44
OWYzZTA2NWVlMzdmY2ZmMzI3ZTZmMjhiYzU0YjYxNGZiNDllOGQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbQpAQCAtMTU1LDcgKzE1NSw3IEBACiAKICNpZiBIQVZFKEFQUF9MSU5LUykK
ICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVRocmVhZFJ1bi5oPgotI2ltcG9ydCA8cGFsL3NwaS9p
b3MvTGF1bmNoU2VydmljZXNTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1bmNoU2Vy
dmljZXNTUEkuaD4KICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVt
SW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IGJmNzE2Yjc1N2IwYzU5NzM3Zjg4MzEwMmVhNTA1ODU5
MzAwMjM3ZWEuLmE5OTI5OGJmNjgwZGFlYjMwN2I4NGIyMWFjNzA1NDA0NmQ4MzdkYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUlu
dGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTQzLDI0ICs0MywxMSBAQCB2b2lkIEluaXRXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIHJldHVybjsKIAogI2lmICFQTEFURk9STShJ
T1MpCi0gICAgSU5JVChEcmF3QmV6ZWxlZFRleHRBcmVhKTsKICAgICBJTklUKERyYXdNZWRpYVVJ
UGFydCk7CiAgICAgSU5JVChEcmF3TWVkaWFTbGlkZXJUcmFjayk7CiAgICAgSU5JVChIaXRUZXN0
TWVkaWFVSVBhcnQpOwogICAgIElOSVQoTWVhc3VyZU1lZGlhVUlQYXJ0KTsKICNlbmRpZgogCi0j
aWYgIVBMQVRGT1JNKElPUykKLSAgICBJTklUKEV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3Jl
U25vd0xlb3BhcmQpOwotICAgIElOSVQoQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlO
YW1lKTsKLSAgICBJTklUKEN1cnNvcik7Ci0jZW5kaWYKLQotI2lmICFQTEFURk9STShJT1MpCi0g
ICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YSk7Ci0gICAgSU5JVChOU0VsYXN0aWNE
ZWx0YUZvclJlYm91bmREZWx0YSk7Ci0gICAgSU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNE
ZWx0YSk7Ci0jZW5kaWYKLQogICAgIGRpZEluaXQgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMjc0YTE2ODcwNTc0NTQ0
MTRhYjkyOTc1YTVjMDQ4YzYwZWU1YTU4YS4uOGQzZjllYmJmODI3ZmUxNDhkZTI0MTYwMjlmM2Zk
NmFiZTMzMTJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tCkBAIC0xMzAsNyArMTMwLDkgQEAKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVy
ZmFjZS5oPgogI2ltcG9ydCA8ZGxmY24uaD4KICNpbXBvcnQgPGxpbWl0cz4KKyNpbXBvcnQgPHBh
bC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNVUkxG
aWxlVHlwZU1hcHBpbmdzU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1Njcm9sbGVySW1w
U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1NwZWxsQ2hlY2tlclNQSS5oPgogI2ltcG9y
dCA8cGFsL3NwaS9tYWMvTlNWaWV3U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1dpbmRv
d1NQSS5oPgpAQCAtNDY4Miw3ICs0Njg0LDcgQEAgLSAodm9pZClzZXREYXRhU291cmNlOihXZWJE
YXRhU291cmNlICopZGF0YVNvdXJjZQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoIV9wcml2
YXRlLT5pbnN0YWxsZWRUcmFja2luZ0FyZWEpIHsKICAgICAgICAgTlNUcmFja2luZ0FyZWFPcHRp
b25zIG9wdGlvbnMgPSBOU1RyYWNraW5nTW91c2VNb3ZlZCB8IE5TVHJhY2tpbmdNb3VzZUVudGVy
ZWRBbmRFeGl0ZWQgfCBOU1RyYWNraW5nSW5WaXNpYmxlUmVjdCB8IE5TVHJhY2tpbmdDdXJzb3JV
cGRhdGU7Ci0gICAgICAgIGlmIChXS1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Ny
b2xsZXJTdHlsZUxlZ2FjeQorICAgICAgICBpZiAoX05TUmVjb21tZW5kZWRTY3JvbGxlclN0eWxl
KCkgPT0gTlNTY3JvbGxlclN0eWxlTGVnYWN5CiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JU
KQogICAgICAgICAgICAgfHwgW1tzZWxmIF93ZWJWaWV3XSBfZGFzaGJvYXJkQmVoYXZpb3I6V2Vi
RGFzaGJvYXJkQmVoYXZpb3JBbHdheXNTZW5kTW91c2VFdmVudHNUb0FsbFdpbmRvd3NdCiAjZW5k
aWYKQEAgLTYzNTQsNyArNjM1Niw3IEBAIC0gKHZvaWQpYXR0YWNoUm9vdExheWVyOihDQUxheWVy
ICopbGF5ZXIKICAgICBpZiAoW1tzZWxmIF93ZWJWaWV3XSBfcG9zdHNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTm90aWZpY2F0aW9uc10pCiAgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6X1dlYlZpZXdEaWRTdGFydEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdOb3RpZmljYXRpb24gb2JqZWN0OltzZWxmIF93ZWJWaWV3XSB1c2VySW5m
bzpuaWxdOwogCi0gICAgaWYgKFdLRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVMaW9uKCkp
CisgICAgaWYgKCFfQ0ZFeGVjdXRhYmxlTGlua2VkT25PckFmdGVyKENGU3lzdGVtVmVyc2lvbk1v
dW50YWluTGlvbikpCiAgICAgICAgIFt2aWV3TGF5ZXIgc2V0R2VvbWV0cnlGbGlwcGVkOllFU107
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBh
ZDI5YTgyMjUyOTg5YzY2YTY1ZjY1ODk0ZjRlODYxMTM1MTkxYzMwLi40ZThiODIxNjExYjg4OGQ0
N2U2MjhkZGVmOWQzYmViNTk4NTE4ZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCkBAIC0yMDksNiArMjA5LDcgQEAKICNpbXBvcnQgPG1hY2gtby9keWxk
Lmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3
b3JrU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmg+CiAjaW1wb3J0
IDxwYWwvc3BpL2NvY29hL05TVG91Y2hCYXJTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2Ev
TlNVUkxGaWxlVHlwZU1hcHBpbmdzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1Jlc3Bv
bmRlclNQSS5oPgpAQCAtMjYwOSwxNiArMjYxMCwxNiBAQCAtIChpZClfZm9ybURlbGVnYXRlRm9y
U2VsZWN0b3I6KFNFTClzZWxlY3RvcgogI2lmICFQTEFURk9STShJT1MpCiAtIChCT09MKV9uZWVk
c0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyawogewotICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsg
PSBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLkFjcm9iYXQiLCAtMSwgOS4w
KQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLkFjcm9i
YXQuUHJvIiwgLTEsIDkuMCkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihA
ImNvbS5hZG9iZS5SZWFkZXIiLCAtMSwgOS4wKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVj
a0xlc3NUaGFuKEAiY29tLmFkb2JlLmRpc3RpbGxlciIsIC0xLCA5LjApCi0gICAgICAgIHx8IFdL
QXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuQ29udHJpYnV0ZSIsIC0xLCA0LjIp
Ci0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuZHJlYW13
ZWF2ZXItOS4wIiwgLTEsIDkuMSkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhh
bihAImNvbS5tYWNyb21lZGlhLmZpcmV3b3JrcyIsIC0xLCA5LjEpCi0gICAgICAgIHx8IFdLQXBw
VmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuSW5Db3B5IiwgLTEsIDUuMSkKLSAgICAg
ICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5JbkRlc2lnbiIsIC0x
LCA1LjEpCi0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUu
U291bmRib290aCIsIC0xLCAyKTsKKyAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gX0NGQXBw
VmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5BY3JvYmF0IiksIC0xLCA5LjAp
CisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUu
QWNyb2JhdC5Qcm8iKSwgLTEsIDkuMCkKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lvbkNoZWNrTGVz
c1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5SZWFkZXIiKSwgLTEsIDkuMCkKKyAgICAgICAgfHwgX0NG
QXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5kaXN0aWxsZXIiKSwgLTEs
IDkuMCkKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5h
ZG9iZS5Db250cmlidXRlIiksIC0xLCA0LjIpCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVj
a0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuZHJlYW13ZWF2ZXItOS4wIiksIC0xLCA5LjEpCisg
ICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20ubWFjcm9tZWRp
YS5maXJld29ya3MiKSwgLTEsIDkuMSkKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lvbkNoZWNrTGVz
c1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5JbkNvcHkiKSwgLTEsIDUuMSkKKyAgICAgICAgfHwgX0NG
QXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5JbkRlc2lnbiIpLCAtMSwg
NS4xKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFk
b2JlLlNvdW5kYm9vdGgiKSwgLTEsIDIpOwogCiAgICAgcmV0dXJuIG5lZWRzUXVpcms7CiB9CkBA
IC0yNjI2LDEzICsyNjI3LDEzIEBAIC0gKEJPT0wpX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1
aXJrCiAtIChCT09MKV9uZWVkc0xpbmtFbGVtZW50VGV4dENTU1F1aXJrCiB7CiAgICAgc3RhdGlj
IEJPT0wgbmVlZHNRdWlyayA9ICFXZWJLaXRMaW5rZWRPbk9yQWZ0ZXIoV0VCS0lUX0ZJUlNUX1ZF
UlNJT05fV0lUSE9VVF9MSU5LX0VMRU1FTlRfVEVYVF9DU1NfUVVJUkspCi0gICAgICAgICYmIFdL
QXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uZS1mcm9udGllci5zaGFkZTEwIiwgLTEsIDEw
LjYpOworICAgICAgICAmJiBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmUt
ZnJvbnRpZXIuc2hhZGUxMCIpLCAtMSwgMTAuNik7CiAgICAgcmV0dXJuIG5lZWRzUXVpcms7CiB9
CiAKIC0gKEJPT0wpX25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrCiB7Ci0gICAgc3RhdGlj
IEJPT0wgbmVlZHNRdWlyayA9IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYXBwbGUu
aUFkUHJvZHVjZXIiLCAtMSwgMi4xKTsKKyAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gX0NG
QXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hcHBsZS5pQWRQcm9kdWNlciIpLCAt
MSwgMi4xKTsKICAgICAKICAgICByZXR1cm4gbmVlZHNRdWlyazsKIH0KQEAgLTI2NDUsNyArMjY0
Niw3IEBAIC0gKEJPT0wpX25lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzCiAK
IC0gKEJPT0wpX25lZWRzRnJhbWVMb2FkRGVsZWdhdGVSZXRhaW5RdWlyawogewotICAgIHN0YXRp
YyBCT09MIG5lZWRzUXVpcmsgPSBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmVxdWlu
dXguaVNhbGU1IiwgLTEsIDUuNik7ICAgIAorICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSBf
Q0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmVxdWludXguaVNhbGU1IiksIC0x
LCA1LjYpOwogICAgIHJldHVybiBuZWVkc1F1aXJrOwogfQogCkBAIC0yOTI3LDcgKzI5MjgsNyBA
QCAtICh2b2lkKV9wcmVmZXJlbmNlc0NoYW5nZWQ6KFdlYlByZWZlcmVuY2VzICopcHJlZmVyZW5j
ZXMKICAgICBzZXR0aW5ncy5zZXROZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayhbc2VsZiBf
bmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmtdKTsKICAgICBzZXR0aW5ncy5zZXRUcmVhdHNB
bnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldChbc2VsZiBfbmVlZHNMaW5rRWxlbWVudFRleHRDU1NR
dWlya10pOwogICAgIHNldHRpbmdzLnNldE5lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9u
UXVpcmtzKFtzZWxmIF9uZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrc10pOwot
ICAgIHNldHRpbmdzLnNldEVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlKCFXS0FwcFZl
cnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFwcGxlLmlXZWIiLCAtMSwgMi4xKSk7CisgICAgc2V0
dGluZ3Muc2V0RW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUoIV9DRkFwcFZlcnNpb25D
aGVja0xlc3NUaGFuKENGU1RSKCJjb20uYXBwbGUuaVdlYiIpLCAtMSwgMi4xKSk7CiAgICAgc2V0
dGluZ3Muc2V0TmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmsoW3NlbGYgX25lZWRzSXNMb2Fk
aW5nSW5BUElTZW5zZVF1aXJrXSk7CiAgICAgc2V0dGluZ3Muc2V0VGV4dEFyZWFzQXJlUmVzaXph
YmxlKFtwcmVmZXJlbmNlcyB0ZXh0QXJlYXNBcmVSZXNpemFibGVdKTsKICAgICBzZXR0aW5ncy5z
ZXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZChbcHJlZmVyZW5jZXMgZXhwZXJpbWVu
dGFsTm90aWZpY2F0aW9uc0VuYWJsZWRdKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321015</attachid>
            <date>2017-09-16 15:08:11 -0700</date>
            <delta_ts>2017-09-16 15:36:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177029-20170916150811.patch</filename>
            <type>text/plain</type>
            <size>89163</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRhMDI0YTAxYjFiZjQy
OGFjOWFmNzIwZmJiOGY3NjQyNmRlZGM1OC4uNjIzNWVmZjkxMDU2NGMwOGFkZjRiNGIwNTk0OGQz
NTY2NmY5ZDdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQgbWlzY2Vs
bGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWc6IFVzZWQgLWZvcmNlX2xvYWQgb2YgbGliUEFMIGluc3RlYWQgb2YgLU9iakMuIFRo
aXMgZm9yY2VzCisgICAgICAgIHRoZSBsaW5rZXIgdG8gbG9hZCBib3RoIE9iamVjdGl2ZS1DIGFu
ZCBDIFBBTCBzeW1ib2xzIGluIFdlYkNvcmUuIFRoaXMgY2hhbmdlIGlzIG5lZWRlZCBmb3IKKyAg
ICAgICAgUEFMOjpwb3BVcE1lbnUoKSwgd2hpY2ggaXMgdXNlZCBieSBXZWJLaXQgYW5kIFdlYktp
dExlZ2FjeSBidXQgbm90IFdlYkNvcmUuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTG9jYWxp
emVkU3RyaW5nc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
U2VhcmNoV2ViKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1t
OgorICAgICAgICAoV2ViQ29yZTo6ZWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKToKKyAgICAgICAg
KFdlYkNvcmU6OmVsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpyZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6V0tDb3JlQ3Vy
c29yX2NvcmVDdXJzb3JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvcmVDdXJzb3JD
bGFzcyk6CisgICAgICAgIChXZWJDb3JlOjpjb3JlQ3Vyc29yQ2xhc3MpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1D
dXJzb3IgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50VGV4dEFyZWEpOgorCiAyMDE3LTA5LTE1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgY2Fs
bGluZyBTdHJpbmc6OmZvcm1hdCgpIGluIFBsYXRmb3JtQ0FGaWx0ZXJzOjpzZXRGaWx0ZXJzT25M
YXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAyNTIzYjY4MjM1MDRlZWM3Zjc4NzBhMGEyNjBk
MjMwNTFhZTNiYjkzLi5iODc3NTQyNzc3YzJiYjVlMmE1NjI2Mzg2ZjE4MTZiNjk5NWE2YTBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNy0wOS0xNSAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gVXBsb2FkIG1pc2NlbGxhbmVv
dXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmg6CisgICAgICAgICogcGFs
L3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJLmguCisgICAgICAgICogcGFsL3Nw
aS9tYWMvSElTZXJ2aWNlc1NQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TQ2VsbFNQSS5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQ
SS5oLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TTWVudVNQSS5oOgorICAgICAgICAqIHBhbC9z
cGkvbWFjL05TU2Nyb2xsVmlld1NQSS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TU2Ny
b2xsZXJJbXBTUEkuaDoKKyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92
aWRlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRp
bGl0aWVzU1BJLmguCisgICAgICAgIChQQUw6OmRlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlO
YW1lKToKKyAgICAgICAgKiBwYWwvc3lzdGVtL2NmL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5o
LgorICAgICAgICAqIHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oLgorICAgICAgICAqIHBh
bC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbTogQWRkZWQuCisgICAgICAgIChQQUw6OnBvcFVwTWVu
dSk6CisKIDIwMTctMDktMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IHRoZSBtYWNPUyBDTWFrZSBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNDAyZjFl
M2M4NjM5ZGJmZDIyY2Q1OWI4ZDY2YzAxNjg5OTZlMDYxLi42M2I5ZGFhYThhMTMzOTk1ZGI5OTgy
NjZlYjVhZGEwODE2OGQ3MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA5LTE1
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGxvYWQg
bWlzY2VsbGFuZW91cyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcwMjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21h
Yy9OZXR3b3JrUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1
Z2luUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlh
bGl6ZVByb2Nlc3NOYW1lKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVBy
b2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXpl
UHJvY2Vzc05hbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToK
KyAgICAgICAgKFdlYktpdDo6dHJhY2tpbmdBcmVhT3B0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjptaWdodEJlZ2luU2Nyb2xsV2hpbGVJbmFjdGl2ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpwb3BVcENvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1
Z2luOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29y
ZVN5c3RlbUludGVyZmFjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNz
TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKToK
KwogMjAxNy0wOS0xNSAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgV1RGOiB1c2UgRm9yd2FyZC5oIHdoZW4gYXBwcm9wcmlhdGUgaW5zdGVhZCBvZiBWZWN0b3Iu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDhkOThkNDAwNjY2YmRhMmE5MTE2YzQy
NDAyZTEwNDY0NTYyMjg1MDcuLmNlNDVjYTk0YzcyNmQ4NjYxZTIwYTg2MDUxOTBiMjhkZGY1YmJj
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAxNy0w
OS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01hY10gVXBs
b2FkIG1pc2NlbGxhbmVvdXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZWZhdWx0RGVsZWdh
dGVzL1dlYkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJEZWZh
dWx0VUlEZWxlZ2F0ZSBtZW51SXRlbVdpdGhUYWc6dGFyZ2V0OnJlcHJlc2VudGVkT2JqZWN0Ol0p
OgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tOgor
ICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5I
b3N0UHJveHkpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbToKKyAg
ICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Up
OgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxW
aWV3IHNldERhdGFTb3VyY2U6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0dGFjaFJvb3RM
YXllcjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZp
ZXcgX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcg
X25lZWRzTGlua0VsZW1lbnRUZXh0Q1NTUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVl
ZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNG
cmFtZUxvYWREZWxlZ2F0ZVJldGFpblF1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZl
cmVuY2VzQ2hhbmdlZDpdKToKKworMjAxNy0wOS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBs
ZS5jb20+CisKICAgICAgICAgW0NvY29hXSBVcHN0cmVhbSBNZWRpYVJlbW90ZSBhbmQgVmlkZW9U
b29sYm94IFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Njk1MwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnIGIvU291cmNlL1dlYkNv
cmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwppbmRleCA3NjY2N2JhZTc0MDQ3MWQ3
NDVhOTUxMjIwNWViMWNmNDlkN2EzMjM1Li5iMDNkZDRjZThhMjM2YjczZTg4OThlN2Y5ZGJkMzhm
NWZhY2M4MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJD
b3JlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWcKQEAgLTc3LDcgKzc3LDcgQEAgTElCV0VCUlRDX0xJQlJBUllfRElSX1VTRV9PVkVS
UklERV9GUkFNRVdPUktTX0RJUl9OTyA9ICQoV0VCQ09SRV9GUkFNRVdPUktTX0RJUikKIExJQldF
QlJUQ19MSUJSQVJZX0RJUl9VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfWUVTID0gJChXS19P
VkVSUklERV9GUkFNRVdPUktTX0RJUik7CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkg
JChXS19SRUxPQ0FUQUJMRV9GUkFNRVdPUktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9M
U19MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk0pOwotT1RIRVJfTERGTEFHU19CQVNF
ID0gLWxzcWxpdGUzIC1sb2JqYyAtbEFOR0xFIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdv
cmsgTWV0YWwgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVf
Y2xpZW50IFdlYktpdExlZ2FjeSAtT2JqQzsKK09USEVSX0xERkxBR1NfQkFTRSA9IC1sc3FsaXRl
MyAtbG9iamMgLWxBTkdMRSAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIE1ldGFsIC1h
bGxvd2FibGVfY2xpZW50IFdlYkNvcmVUZXN0U3VwcG9ydCAtYWxsb3dhYmxlX2NsaWVudCBXZWJL
aXRMZWdhY3kgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlBBTC5hOwogLy8g
RklYTUU6IFJlZHVjZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnQgPHJkYXI6Ly9wcm9i
bGVtLzMxODIzOTY5PgogT1RIRVJfTERGTEFHU19CQVNFX2lvcyA9ICQoT1RIRVJfTERGTEFHU19C
QVNFKSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3
b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZy
YW1ld29yayBNb2JpbGVDb3JlU2VydmljZXMgLWZyYW1ld29yayBPcGVuR0xFUyAtbE1vYmlsZUdl
c3RhbHQgJChXS19JT1NfQklOQ09NUEFUX0xERkxBR1MpIC1hbGxvd2FibGVfY2xpZW50IFdlYktp
dCAtYWxsb3dhYmxlX2NsaWVudCBpVHVuZXNVIC1hbGxvd2FibGVfY2xpZW50IENhc2FibGFuY2Eg
LWFsbG93YWJsZV9jbGllbnQgUmVtb3RlIC1hbGxvd2FibGVfY2xpZW50IFRWQm9va3MgLWFsbG93
YWJsZV9jbGllbnQgRHVtcFJlbmRlclRyZWUgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0VGVzdFJ1
bm5lciAtYWxsb3dhYmxlX2NsaWVudCBUZXN0V2ViS2l0QVBJOwogT1RIRVJfTERGTEFHU19QTEFU
Rk9STVtzZGs9aXBob25lb3MqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgLWZyYW1ld29y
ayBJT1N1cmZhY2UgLWZyYW1ld29yayBHcmFwaGljc1NlcnZpY2VzICQoTElCV0VCUlRDX0xERkxB
R1MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGNhYjE0Y2Q0YTdmZGIxYjdlZjRlYjg1NWRkYTlhZWFkNWVhOGM0OWIuLmYzM2M4
ZDE5NmYwYzZmZjJmZDViOTBhODExMzA0ZTA0YzkwZDFhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNyw2ICsxMDcsMTIg
QEAKIAkJQTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3
MkFDIC8qIFdlYlBhbmVsLm1tICovOyB9OwogCQlBMTA4MjZGRTFGNThBNDMzMDA0NzcyQUMgLyog
TlNHcmFwaGljc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTEwODI2RkQxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCAqLzsgfTsK
IAkJQTExNzVCNDkxRjZBRkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNDgxRjZBRkY4
RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovOyB9OworCQlBMTE3NUI0QjFGNkIy
RDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmgg
Ki87IH07CisJCUExMTc1QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRDMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsKKwkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYw
IC8qIFBvcHVwTWVudS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExMTc1QjREMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gKi87IH07CisJ
CUExMTc1QjU3MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjU1MUY2QjQ3
MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCAqLzsgfTsKKwkJQTExNzVCNTgx
RjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI1NjFGNkI0NzA1MDBDNEI5
RjAgLyogRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJQTExNzVCNUExRjZCNEE4
NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xs
Vmlld1NQSS5oICovOyB9OwogCQlBMUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFT
UEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1
RENFMUY1NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFG
MEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5o
ICovOyB9OwogCQlBMzBENDEyMjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMUYxRjBERDBF
QTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCAqLzsgfTsKQEAgLTIyOSw2ICsyMzUsMTIgQEAKIAkJ
QTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMDgyNkZE
MUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TR3Jh
cGhpY3NTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNzVCNDgxRjZBRkY4
RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hT
eW50aGVzaXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEExRjZC
MkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0NlbGxTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEMxRjZCMzM3MzAwQzRCOUYwIC8q
IFBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvcHVwTWVudS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFy
Y2hQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTE3NUI1OTFGNkI0QTg0MDBDNEI5
RjAgLyogTlNTY3JvbGxWaWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TU2Nyb2xsVmlld1NQSS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYg
LyogTWV0YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0YWRhdGFTUEkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5n
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmlu
Zy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLaWxsUmluZy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDcsNiArMzE5LDcgQEAKIAkJCQkwQzJE
QTEyODFGM0JFQjQ5MDBEQkMzMTcgLyogSU9SZXR1cm5TUEkuaCAqLywKIAkJCQkwQzJEQTEyOTFG
M0JFQjQ5MDBEQkMzMTcgLyogSU9TdXJmYWNlU1BJLmggKi8sCiAJCQkJMEMyREExMkExRjNCRUI0
OTAwREJDMzE3IC8qIElPVHlwZXNTUEkuaCAqLywKKwkJCQkwQzVBRjkxMjFGNDNBNEM3MDAyRUFD
MDIgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzJEQTEyQjFGM0JFQjQ5MDBEQkMz
MTcgLyogTGlua1ByZXNlbnRhdGlvblNQSS5oICovLAogCQkJCTBDMkRBMTJDMUYzQkVCNDkwMERC
QzMxNyAvKiBNYWNoVk1TUEkuaCAqLywKIAkJCQkwQzJEQTEyRDFGM0JFQjQ5MDBEQkMzMTcgLyog
TkVGaWx0ZXJTb3VyY2VTUEkuaCAqLywKQEAgLTMzNiw3ICszNDksNiBAQAogCQkJCTBDNUFGOTBG
MUY0M0E0QzcwMDJFQUMwMiAvKiBDb3JlVUlTUEkuaCAqLywKIAkJCQkwQzVBRjkxMDFGNDNBNEM3
MDAyRUFDMDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggKi8sCiAJCQkJMEM1QUY5MTExRjQzQTRD
NzAwMkVBQzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCAqLywKLQkJCQkwQzVBRjkxMjFGNDNB
NEM3MDAyRUFDMDIgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzVBRjkxMzFGNDNB
NEM3MDAyRUFDMDIgLyogTWVkaWFQbGF5ZXJTUEkuaCAqLywKIAkJCQkwQzVBRjkxNDFGNDNBNEM3
MDAyRUFDMDIgLyogTW9iaWxlR2VzdGFsdFNQSS5oICovLAogCQkJCTBDNUFGOTE1MUY0M0E0Qzcw
MDJFQUMwMiAvKiBPcGVuR0xFU1NQSS5oICovLApAQCAtMzU5LDYgKzM3MSw3IEBACiAJCQkJQTFG
NTVEQ0UxRjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzQx
RjQ1MTMwRjAwRjRFQkI2IC8qIE5TQWNjZXNzaWJpbGl0eVNQSS5oICovLAogCQkJCTBDNzc4NTc1
MUY0NTEzMEYwMEY0RUJCNiAvKiBOU0FwcGxpY2F0aW9uU1BJLmggKi8sCisJCQkJQTExNzVCNEEx
RjZCMkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovLAogCQkJCTBDNzc4NTc2MUY0NTEzMEYw
MEY0RUJCNiAvKiBOU0V2ZW50U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzcxRjQ1MTMwRjAwRjRFQkI2
IC8qIE5TRm9udFNQSS5oICovLAogCQkJCUExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dy
YXBoaWNzU1BJLmggKi8sCkBAIC0zNzAsNiArMzgzLDcgQEAKIAkJCQkwQzc3ODU3QzFGNDUxMzBG
MDBGNEVCQjYgLyogTlNTY3JvbGxlckltcFNQSS5oICovLAogCQkJCTBDNzc4NTdEMUY0NTEzMEYw
MEY0RUJCNiAvKiBOU1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggKi8sCiAJCQkJMEM3Nzg1N0Ux
RjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yU1BJLmggKi8s
CisJCQkJQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oICovLAog
CQkJCTBDNzc4NTdGMUY0NTEzMEYwMEY0RUJCNiAvKiBOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU1BJ
LmggKi8sCiAJCQkJMEM3Nzg1ODAxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2hhcmluZ1NlcnZpY2VT
UEkuaCAqLywKIAkJCQkwQzc3ODU4MTFGNDUxMzBGMDBGNEVCQjYgLyogTlNTcGVsbENoZWNrZXJT
UEkuaCAqLywKQEAgLTQ4Niw2ICs1MDAsMTAgQEAKIAkJQTM3ODhFQTAxRjA1QjdFMjAwNjc5NDI1
IC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
QTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgKi8s
CisJCQkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5o
ICovLAorCQkJCUExMTc1QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLywKKwkJ
CQlBMTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tICovLAogCQkJCUEzNzg4
RTlEMUYwNUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1hYy5tbSAqLywKIAkJCQlBM0FCNkU2MjFGM0Qy
MTdGMDA5QzE0QjEgLyogU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oICovLAogCQkJCUEzQUI2RTYz
MUYzRDIxN0YwMDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tICovLApAQCAtNTI4
LDYgKzU0Niw3IEBACiAJCQkJMEMyREExNDExRjNCRUI0OTAwREJDMzE3IC8qIERhdGFEZXRlY3Rv
cnNDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVCQjYg
LyogRGF0YURldGVjdG9yc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUExRjQzQTRD
NzAwMkVBQzAyIC8qIERhdGFEZXRlY3RvcnNVSVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEx
NzVCNTcxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyRDlFNzMxRUVGNUFGNjAwREJDMzE3IC8qIEV4cG9ydE1hY3Jvcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTEwMjY1ODcxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5kYXRpb25T
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFCMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFw
aGljc1NlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTU1Niw2ICs1NzUsNyBAQAogCQkJ
CTBDMkRBMTRBMUYzQkVCNDkwMERCQzMxNyAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDMkRBMTRCMUYzQkVCNDkwMERCQzMxNyAvKiBOU0J1dHRvbkNlbGxT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTRDMUYzQkVCNDkwMERCQzMxNyAvKiBOU0Nh
bGVuZGFyRGF0ZVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTExNzVCNEIxRjZCMkQ3RTAwQzRC
OUYwIC8qIE5TQ2VsbFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNEQxRjNCRUI0OTAw
REJDMzE3IC8qIE5TQ29sb3JTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThGMUY0NTEz
MEYwMEY0RUJCNiAvKiBOU0V2ZW50U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0RTFG
M0JFQjQ5MDBEQkMzMTcgLyogTlNFeHRlbnNpb25TUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTcw
LDYgKzU5MCw3IEBACiAJCQkJMEM3Nzg1OTUxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsZXJJ
bXBTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk2MUY0NTEzMEYwMEY0RUJCNiAvKiBO
U1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5NzFG
NDUxMzBGMDBGNEVCQjYgLyogTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JTUEkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUExMTc1QjVBMUY2QjRBODQwMEM0QjlGMCAvKiBOU1Njcm9sbFZpZXdT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTk4MUY0NTEzMEYwMEY0RUJCNiAvKiBOU1No
YXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5OTFGNDUx
MzBGMDBGNEVCQjYgLyogTlNTaGFyaW5nU2VydmljZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEM3Nzg1OUExRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU3BlbGxDaGVja2VyU1BJLmggaW4gSGVhZGVy
cyAqLywKQEAgLTU4NCw2ICs2MDUsNyBAQAogCQkJCTBDNUFGOTFGMUY0M0E0QzcwMDJFQUMwMiAv
KiBPcGVuR0xFU1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNTUxRjNCRUI0OTAwREJD
MzE3IC8qIFBhc3NLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTlFMUY0NTEzMEYw
MEY0RUJCNiAvKiBQSVBTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMTc1QjRFMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU2MUYzQkVC
NDkwMERCQzMxNyAvKiBwdGhyZWFkU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5RjFG
NDUxMzBGMDBGNEVCQjYgLyogUVRLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU3
MUYzQkVCNDkwMERCQzMxNyAvKiBRdWFydHpDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTY5
Miw4ICs3MTQsMTAgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxl
cyA9ICgKIAkJCQkxQzA5RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9u
Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExMTc1QjU4MUY2QjQ3MDUwMEM0QjlGMCAv
KiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTMwRDQxMjIx
RjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0
MTI1MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUExMTc1QjRGMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBM0M2NkNEQzFGNDYyRDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUEzQUI2RTUyMUYzRDFEQzUwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUEzQUI2RTYwMUYzRDFFMzkwMDlDMTRCMSAvKiBTbGVlcERpc2Fi
bGVyQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaAppbmRleCBmYzhjZDc5Mjc2MmJmMGE3NjIwYTEyYWNmMTIw
ZmEzMDlhMzc4ZmZjLi4yNDU5ODdjZDgyMTg0ZTI5OWZmOTZlM2Y0YWNjMWIyMTAxMGI5NzhmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NyArMjgsMTYgQEAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgog
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24v
Q0ZQcml2Lmg+CisKKyNlbHNlCisKK3R5cGVkZWYgQ0ZfRU5VTShDRkluZGV4LCBDRlN5c3RlbVZl
cnNpb24pIHsKKyAgICBDRlN5c3RlbVZlcnNpb25MaW9uID0gNywKKyAgICBDRlN5c3RlbVZlcnNp
b25Nb3VudGFpbkxpb24gPSA4LAorfTsKKwogI2VuZGlmCiAKIFdURl9FWFRFUk5fQ19CRUdJTgpA
QCAtMzcsNSArNDYsMTIgQEAgQ0ZEaWN0aW9uYXJ5UmVmIF9DRkNvcHlTeXN0ZW1WZXJzaW9uRGlj
dGlvbmFyeSh2b2lkKTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGU3lzdGVtVmVyc2lv
blByb2R1Y3RWZXJzaW9uS2V5OwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZTeXN0ZW1W
ZXJzaW9uQnVpbGRWZXJzaW9uS2V5OwogCitDRkRpY3Rpb25hcnlSZWYgX0NGV2ViU2VydmljZXND
b3B5UHJvdmlkZXJJbmZvKENGU3RyaW5nUmVmIHNlcnZpY2VUeXBlLCBCb29sZWFuKiBvdXRJc1Vz
ZXJTZWxlY3Rpb24pOworZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDRldlYlNlcnZpY2VzVHlw
ZVdlYlNlYXJjaDsKK2V4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ0ZXZWJTZXJ2aWNlc1Byb3Zp
ZGVyRGVmYXVsdERpc3BsYXlOYW1lS2V5OworCitCb29sZWFuIF9DRkFwcFZlcnNpb25DaGVja0xl
c3NUaGFuKENGU3RyaW5nUmVmIGJ1bmRsZUlELCBpbnQgbGlua2VkT25Bbk9sZGVyU3lzdGVtVGhh
biwgZG91YmxlIHZlcnNpb25OdW1iZXJMZXNzVGhhbik7CitCb29sZWFuIF9DRkV4ZWN1dGFibGVM
aW5rZWRPbk9yQWZ0ZXIoQ0ZTeXN0ZW1WZXJzaW9uKTsKKwogV1RGX0VYVEVSTl9DX0VORAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNl
c1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNT
UEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNTc2MGZjNjQ1NWZhZGYyNjBlNGIyYzJiNWJlNjIyYTA0MWRkNjhk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTGF1
bmNoU2VydmljZXNTUEkuaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQorCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8TGF1bmNo
U2VydmljZXMvTGF1bmNoU2VydmljZXNQcml2Lmg+CisjZWxpZiBQTEFURk9STShJT1MpCisjaW1w
b3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTGF1bmNoU2VydmljZXNQcml2Lmg+CisjZW5kaWYKKwor
I2VuZGlmCisKK0BjbGFzcyBMU0FwcExpbms7Cit0eXBlZGVmIHZvaWQgKF5MU0FwcExpbmtDb21w
bGV0aW9uSGFuZGxlcikoTFNBcHBMaW5rICphcHBMaW5rLCBOU0Vycm9yICplcnJvcik7Cit0eXBl
ZGVmIHZvaWQgKF5MU0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIpKEJPT0wgc3VjY2Vzcywg
TlNFcnJvciAqZXJyb3IpOworCisjaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKK0BpbnRl
cmZhY2UgTFNSZXNvdXJjZVByb3h5IDogTlNPYmplY3QgPE5TQ29weWluZywgTlNTZWN1cmVDb2Rp
bmc+CitAZW5kCisKK0BpbnRlcmZhY2UgTFNCdW5kbGVQcm94eSA6IExTUmVzb3VyY2VQcm94eSA8
TlNTZWN1cmVDb2Rpbmc+CitAZW5kCisKK0BpbnRlcmZhY2UgTFNBcHBsaWNhdGlvblByb3h5IDog
TFNCdW5kbGVQcm94eSA8TlNTZWN1cmVDb2Rpbmc+CistIChOU1N0cmluZyAqKWxvY2FsaXplZE5h
bWVGb3JDb250ZXh0OihOU1N0cmluZyAqKWNvbnRleHQ7CitAZW5kCisKK0BpbnRlcmZhY2UgTFNB
cHBMaW5rIDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExT
QXBwTGluayAoKQorKyAodm9pZClnZXRBcHBMaW5rV2l0aFVSTDooTlNVUkwgKilhVVJMIGNvbXBs
ZXRpb25IYW5kbGVyOihMU0FwcExpbmtDb21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxl
cjsKKysgKHZvaWQpb3BlbldpdGhVUkw6KE5TVVJMICopYVVSTCBjb21wbGV0aW9uSGFuZGxlcjoo
TFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9p
ZClvcGVuSW5XZWJCcm93c2VyOihCT09MKWluV2ViQnJvd3NlciBzZXRBcHByb3ByaWF0ZU9wZW5T
dHJhdGVneUFuZFdlYkJyb3dzZXJTdGF0ZTooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAq
KXN0YXRlIGNvbXBsZXRpb25IYW5kbGVyOihMU0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIp
Y29tcGxldGlvbkhhbmRsZXI7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIExTQXBwbGlj
YXRpb25Qcm94eSAqdGFyZ2V0QXBwbGljYXRpb25Qcm94eTsKK0BlbmQKKworZW51bSBMU1Nlc3Np
b25JRCB7CisgICAga0xTRGVmYXVsdFNlc3Npb25JRCA9IC0yLAorfTsKKworI2VuZGlmCisKK3R5
cGVkZWYgY29uc3Qgc3RydWN0IENGX0JSSURHRURfVFlQRShpZCkgX19MU0FTTiogTFNBU05SZWY7
Cit0eXBlZGVmIGVudW0gTFNTZXNzaW9uSUQgTFNTZXNzaW9uSUQ7CisKK1dURl9FWFRFUk5fQ19C
RUdJTgorCitPU1N0YXR1cyBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShMU1Nlc3Np
b25JRCwgTFNBU05SZWYsIENGU3RyaW5nUmVmIGtleVRvU2V0UmVmLCBDRlR5cGVSZWYgdmFsdWVU
b1NldFJlZiwgQ0ZEaWN0aW9uYXJ5UmVmKiBuZXdJbmZvcm1hdGlvbkRpY3RSZWYpOworTFNBU05S
ZWYgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCk7CisKK2V4dGVybiBjb25zdCBDRlN0cmlu
Z1JlZiBfa0xTRGlzcGxheU5hbWVLZXk7CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQSS5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2YThiMmU0ZmNiZWUxNTExZThjMGM0M2I3YWJkNTc4NTIy
ODE4MjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJLmgKKysrIC9kZXYv
bnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbXBv
cnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKLQotI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL0xTQXBwTGlua1ByaXYuaD4KLQotI2Vu
ZGlmCi0KLUBjbGFzcyBMU0FwcExpbms7Ci10eXBlZGVmIHZvaWQgKF5MU0FwcExpbmtDb21wbGV0
aW9uSGFuZGxlcikoTFNBcHBMaW5rICphcHBMaW5rLCBOU0Vycm9yICplcnJvcik7Ci10eXBlZGVm
IHZvaWQgKF5MU0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIpKEJPT0wgc3VjY2VzcywgTlNF
cnJvciAqZXJyb3IpOwotCi0jaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0KLUBpbnRlcmZh
Y2UgTFNSZXNvdXJjZVByb3h5IDogTlNPYmplY3QgPE5TQ29weWluZywgTlNTZWN1cmVDb2Rpbmc+
Ci1AZW5kCi0KLUBpbnRlcmZhY2UgTFNCdW5kbGVQcm94eSA6IExTUmVzb3VyY2VQcm94eSA8TlNT
ZWN1cmVDb2Rpbmc+Ci1AZW5kCi0KLUBpbnRlcmZhY2UgTFNBcHBsaWNhdGlvblByb3h5IDogTFNC
dW5kbGVQcm94eSA8TlNTZWN1cmVDb2Rpbmc+Ci0tIChOU1N0cmluZyAqKWxvY2FsaXplZE5hbWVG
b3JDb250ZXh0OihOU1N0cmluZyAqKWNvbnRleHQ7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgTFNBcHBM
aW5rIDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50ZXJmYWNlIExTQXBw
TGluayAoKQotKyAodm9pZClnZXRBcHBMaW5rV2l0aFVSTDooTlNVUkwgKilhVVJMIGNvbXBsZXRp
b25IYW5kbGVyOihMU0FwcExpbmtDb21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxlcjsK
LSsgKHZvaWQpb3BlbldpdGhVUkw6KE5TVVJMICopYVVSTCBjb21wbGV0aW9uSGFuZGxlcjooTFNB
cHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyOwotLSAodm9pZClv
cGVuSW5XZWJCcm93c2VyOihCT09MKWluV2ViQnJvd3NlciBzZXRBcHByb3ByaWF0ZU9wZW5TdHJh
dGVneUFuZFdlYkJyb3dzZXJTdGF0ZTooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKXN0
YXRlIGNvbXBsZXRpb25IYW5kbGVyOihMU0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIpY29t
cGxldGlvbkhhbmRsZXI7Ci1AcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIExTQXBwbGljYXRp
b25Qcm94eSAqdGFyZ2V0QXBwbGljYXRpb25Qcm94eTsKLUBlbmQKLQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaAppbmRleCBhMzU1Yjk0
ZmU2MzA5MmVmNWFjZDBiNWM5NWUwM2RkNDZlOTUzODE1Li43ZGVkYTJmM2M3YTI3NTk2MTA3MDFl
NDRkODFmMTUyMWZmZGMzZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9tYWMvSElTZXJ2aWNlc1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21h
Yy9ISVNlcnZpY2VzU1BJLmgKQEAgLTI1LDEzICsyNSw2NCBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CisKICNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQogCiAjaW5jbHVkZSA8SElTZXJ2aWNlcy9BWFRleHRNYXJrZXIuaD4KKyNp
bmNsdWRlIDxISVNlcnZpY2VzL0NvcmVDdXJzb3IuaD4KICNpbmNsdWRlIDxISVNlcnZpY2VzL0Nv
cmVEcmFnLmg+CiAKICNlbHNlCiAKK3R5cGVkZWYgQ0ZfRU5VTShTSW50MzIsIENvcmVDdXJzb3JU
eXBlKSB7CisgICAga0NvcmVDdXJzb3JGaXJzdEN1cnNvciA9IDAsCisgICAga0NvcmVDdXJzb3JB
cnJvdyA9IGtDb3JlQ3Vyc29yRmlyc3RDdXJzb3IsCisgICAga0NvcmVDdXJzb3JJQmVhbSwKKyAg
ICBrQ29yZUN1cnNvck1ha2VBbGlhcywKKyAgICBrQ29yZUN1cnNvck5vdEFsbG93ZWQsCisgICAg
a0NvcmVDdXJzb3JCdXN5QnV0Q2xpY2thYmxlLAorICAgIGtDb3JlQ3Vyc29yQ29weSwKKyAgICBr
Q29yZUN1cnNvclNjcmVlblNob3RTZWxlY3Rpb24gPSA3LAorICAgIGtDb3JlQ3Vyc29yU2NyZWVu
U2hvdFNlbGVjdGlvblRvQ2xpcCwKKyAgICBrQ29yZUN1cnNvclNjcmVlblNob3RXaW5kb3csCisg
ICAga0NvcmVDdXJzb3JTY3JlZW5TaG90V2luZG93VG9DbGlwLAorICAgIGtDb3JlQ3Vyc29yQ2xv
c2VkSGFuZCwKKyAgICBrQ29yZUN1cnNvck9wZW5IYW5kLAorICAgIGtDb3JlQ3Vyc29yUG9pbnRp
bmdIYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdVcEhhbmQsCisgICAga0NvcmVDdXJzb3JD
b3VudGluZ0Rvd25IYW5kLAorICAgIGtDb3JlQ3Vyc29yQ291bnRpbmdVcEFuZERvd25IYW5kLAor
ICAgIGtDb3JlQ3Vyc29yUmVzaXplTGVmdCwKKyAgICBrQ29yZUN1cnNvclJlc2l6ZVJpZ2h0LAor
ICAgIGtDb3JlQ3Vyc29yUmVzaXplTGVmdFJpZ2h0LAorICAgIGtDb3JlQ3Vyc29yQ3Jvc3MsCisg
ICAga0NvcmVDdXJzb3JSZXNpemVVcCwKKyAgICBrQ29yZUN1cnNvclJlc2l6ZURvd24sCisgICAg
a0NvcmVDdXJzb3JSZXNpemVVcERvd24sCisgICAga0NvcmVDdXJzb3JDb250ZXh0dWFsTWVudSwK
KyAgICBrQ29yZUN1cnNvclBvb2YsCisgICAga0NvcmVDdXJzb3JJQmVhbVZlcnRpY2FsLAorICAg
IGtDb3JlQ3Vyc29yV2luZG93UmVzaXplRWFzdCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6
ZUVhc3RXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhFYXN0LAorICAgIGtD
b3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhFYXN0U291dGhXZXN0LAorICAgIGtDb3JlQ3Vyc29y
V2luZG93UmVzaXplTm9ydGgsCisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aFNvdXRo
LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhXZXN0LAorICAgIGtDb3JlQ3Vyc29y
V2luZG93UmVzaXplTm9ydGhXZXN0U291dGhFYXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVz
aXplU291dGhFYXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291dGgsCisgICAga0Nv
cmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aFdlc3QsCisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNp
emVXZXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93TW92ZSwKKyAgICBrQ29yZUN1cnNvckhlbHAs
CisgICAga0NvcmVDdXJzb3JDZWxsLAorICAgIGtDb3JlQ3Vyc29yWm9vbUluLAorICAgIGtDb3Jl
Q3Vyc29yWm9vbU91dCwKKyAgICBrQ29yZUN1cnNvckxhc3RDdXJzb3IgPSBrQ29yZUN1cnNvclpv
b21PdXQKK307CisKIGVudW0gewogICAgIGtDb3JlRHJhZ0ltYWdlU3BlY1ZlcnNpb25PbmUgPSAx
LAogfTsKQEAgLTU1LDYgKzEwNiw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQVhUZXh0TWFy
a2VyKiBBWFRleHRNYXJrZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0FYVGV4dE1hcmtl
clJhbmdlKiBBWFRleHRNYXJrZXJSYW5nZVJlZjsKIHR5cGVkZWYgc3RydWN0IENvcmVEcmFnSW1h
Z2VTcGVjIENvcmVEcmFnSW1hZ2VTcGVjOwogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ29yZURyYWcq
IENvcmVEcmFnUmVmOwordHlwZWRlZiBVSW50MzIgTVNIQ3JlYXRlT3B0aW9uczsKIAogV1RGX0VY
VEVSTl9DX0JFR0lOCiAKQEAgLTY4LDUgKzEyMCw2IEBAIENGVHlwZUlEIEFYVGV4dE1hcmtlclJh
bmdlR2V0VHlwZUlEKCk7CiBDb3JlRHJhZ1JlZiBDb3JlRHJhZ0dldEN1cnJlbnREcmFnKCk7CiBP
U1N0YXR1cyBDb3JlRHJhZ1NldEltYWdlKENvcmVEcmFnUmVmLCBDR1BvaW50IGltYWdlT2Zmc2V0
LCBDb3JlRHJhZ0ltYWdlU3BlYyosIENHU1JlZ2lvbk9iaiBpbWFnZVNoYXBlLCBmbG9hdCBvdmVy
YWxsQWxwaGEpOwogY29uc3QgVUludDgqIEFYVGV4dE1hcmtlckdldEJ5dGVQdHIoQVhUZXh0TWFy
a2VyUmVmKTsKK0NGUnVuTG9vcFNvdXJjZVJlZiBNU0hDcmVhdGVNSUdTZXJ2ZXJTb3VyY2UoQ0ZB
bGxvY2F0b3JSZWYsIENGSW5kZXggb3JkZXIsIG1pZ19zdWJzeXN0ZW1fdCBzdWJfc3lzdGVtLCBN
U0hDcmVhdGVPcHRpb25zLCBtYWNoX3BvcnRfdCwgdm9pZCogdXNlcl9kYXRhKTsKIAogV1RGX0VY
VEVSTl9DX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05T
Q2VsbFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TQ2VsbFNQSS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZhMzNkYTNkM2RmYmJhN2NiMDYzZjYwZWQ0NzkxMDFlODY2OTM4NjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNDZWxsU1BJLmgK
QEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QXBwS2l0L05TQ2VsbF9Qcml2YXRlLmg+CisK
KyNlbmRpZgorCitXVEZfRVhURVJOX0NfQkVHSU4KKwordm9pZCBfTlNEcmF3Q2FyYm9uVGhlbWVM
aXN0Qm94KE5TUmVjdCwgQk9PTCBlbmFibGVkLCBCT09MIGZsaXBwZWQsIEJPT0wgdGV4dHVyZWQp
OworCitXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9tYWMvTlNNZW51U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNN
ZW51U1BJLmgKaW5kZXggMWY1ZTdiYzY2YTAwMzIxOTQ4MjIwNGM0ODE5OTQxZWQzYjRmYTVmZi4u
NTBkNTA5YzUwNTNhODJjZTcwOWM2Mjc5MTI0MDlkZGViNzQ4ZjNhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TTWVudVNQSS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL21hYy9OU01lbnVTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw3ICsyOSw5IEBACiAKICNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQogCitXVEZfRVhURVJOX0NfQkVHSU4KICNpbXBvcnQgPEFwcEtp
dC9OU01lbnVfUHJpdmF0ZS5oPgorV1RGX0VYVEVSTl9DX0VORAogCiAjZWxzZQogCkBAIC0zOCw2
ICs0MCwxNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBOU01lbnVUeXBlKSB7CiAgICAg
TlNNZW51VHlwZUNvbnRleHRNZW51LAogfTsKIAorZW51bSB7CisgICAgTlNQb3BVcE1lbnVUeXBl
R2VuZXJpYywKKyAgICBOU1BvcFVwTWVudVR5cGVQb3BVcCwKKyAgICBOU1BvcFVwTWVudVR5cGVQ
dWxsc0Rvd24sCisgICAgTlNQb3BVcE1lbnVUeXBlTWFpbk1lbnUsCisgICAgTlNQb3BVcE1lbnVU
eXBlQ29udGV4dCwKKyAgICBOU1BvcFVwTWVudURlZmF1bHRUb1BvcFVwQ29udHJvbEZvbnQgPSAw
eDEwLAorICAgIE5TUG9wVXBNZW51UG9zaXRpb25SZWxhdGl2ZVRvUmlnaHRFZGdlID0gMHgyMCwK
KyAgICBOU1BvcFVwTWVudUlzUG9wdXBCdXR0b24gPSAweDQwLAorfTsKKwogQGludGVyZmFjZSBO
U01lbnUgKCkKICsgKE5TTWVudVR5cGUpbWVudVR5cGVGb3JFdmVudDooTlNFdmVudCAqKWV2ZW50
OwogQGVuZApAQCAtNTYsNCArNjksMTcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTlNN
ZW51VHlwZSkgewogCiAjZW5kaWYKIAotI2VuZGlmCit0eXBlZGVmIE5TVUludGVnZXIgTlNQb3BV
cE1lbnVGbGFnczsKKworV1RGX0VYVEVSTl9DX0JFR0lOCisKK2V4dGVybiBOU1N0cmluZyAqIGNv
bnN0IE5TUG9wVXBNZW51UG9wdXBCdXR0b25Cb3VuZHM7CitleHRlcm4gTlNTdHJpbmcgKiBjb25z
dCBOU1BvcFVwTWVudVBvcHVwQnV0dG9uTGFiZWxPZmZzZXQ7CitleHRlcm4gTlNTdHJpbmcgKiBj
b25zdCBOU1BvcFVwTWVudVBvcHVwQnV0dG9uU2l6ZTsKK2V4dGVybiBOU1N0cmluZyAqIGNvbnN0
IE5TUG9wVXBNZW51UG9wdXBCdXR0b25XaWRnZXQ7CisKK3ZvaWQgX05TUG9wVXBDYXJib25NZW51
MyhOU01lbnUgKiwgTlNXaW5kb3cgKiwgTlNWaWV3ICpvd25lclZpZXcsIE5TUG9pbnQgc2NyZWVu
UG9pbnQsIE5TSW50ZWdlciBjaGVja2VkSXRlbSwgTlNGb250ICosIENHRmxvYXQgbWluV2lkdGgs
IE5TU3RyaW5nICpydW5Mb29wTW9kZSwgTlNQb3BVcE1lbnVGbGFncywgTlNEaWN0aW9uYXJ5ICpv
cHRpb25zKTsKKworV1RGX0VYVEVSTl9DX0VORAorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsVmlld1NQ
SS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsVmlld1NQSS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNiMGVmN2FmNThlMzJlNDhiZjE3ZTA2MjJiZTg3YjVmZDBjNGVkZjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNTY3JvbGxWaWV3
U1BJLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QXBwS2l0L05TU2Nyb2xsVmlld19Q
cml2YXRlLmg+CisKKyNlbmRpZgorCitXVEZfRVhURVJOX0NfQkVHSU4KKworQ0dGbG9hdCBfTlNF
bGFzdGljRGVsdGFGb3JUaW1lRGVsdGEoQ0dGbG9hdCBpbml0aWFsUG9zaXRpb24sIENHRmxvYXQg
aW5pdGlhbFZlbG9jaXR5LCBDR0Zsb2F0IGVsYXBzZWRUaW1lKTsKK0NHRmxvYXQgX05TRWxhc3Rp
Y0RlbHRhRm9yUmVib3VuZERlbHRhKENHRmxvYXQgZGVsdGEpOworQ0dGbG9hdCBfTlNSZWJvdW5k
RGVsdGFGb3JFbGFzdGljRGVsdGEoQ0dGbG9hdCBkZWx0YSk7CisKK1dURl9FWFRFUk5fQ19FTkQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbGVySW1w
U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5o
CmluZGV4IDA0OTJjMWFiNjE5NTZjYjE5NjFjOWVhN2IyNzcxNTczNzgxZDU1MzMuLjE4NzA0OTZl
MDdjMjBmMmViOWFiNWFmYWQ3MWU5ZGIxZGFkMWEyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNDksNCArMTQ5LDEwIEBAIHR5
cGVkZWYgTlNVSW50ZWdlciBOU092ZXJsYXlTY3JvbGxlclN0YXRlOwogCiAjZW5kaWYKIAorV1RG
X0VYVEVSTl9DX0JFR0lOCisKK05TU2Nyb2xsZXJTdHlsZSBfTlNSZWNvbW1lbmRlZFNjcm9sbGVy
U3R5bGUoKTsKKworV1RGX0VYVEVSTl9DX0VORAorCiAjZW5kaWYgLy8gVVNFKEFQUEtJVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9EZWZhdWx0U2VhcmNo
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL0RlZmF1bHRT
ZWFyY2hQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUxNmQ2YWJiYmIzNWFlODdjMmQ5ZWFiYTE2
OWM3MjRiNWQzZGU2ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3lzdGVtL21hYy9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGVmYXVsdFNlYXJjaFBy
b3ZpZGVyLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJDRlV0aWxpdGllc1NQ
SS5oIgorI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CisKK25hbWVz
cGFjZSBQQUwgeworCitSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGRlZmF1bHRTZWFyY2hQcm92aWRl
ckRpc3BsYXlOYW1lKCkKK3sKKyAgICBhdXRvIHByb3ZpZGVySW5mbyA9IGFkb3B0Q0YoX0NGV2Vi
U2VydmljZXNDb3B5UHJvdmlkZXJJbmZvKGtDRldlYlNlcnZpY2VzVHlwZVdlYlNlYXJjaCwgbnVs
bHB0cikpOworICAgIGlmICghcHJvdmlkZXJJbmZvKQorICAgICAgICByZXR1cm4gQ0ZTVFIoIkdv
b2dsZSIpOworCisgICAgQ0ZUeXBlUmVmIGRpc3BsYXlOYW1lID0gQ0ZEaWN0aW9uYXJ5R2V0VmFs
dWUocHJvdmlkZXJJbmZvLmdldCgpLCBrQ0ZXZWJTZXJ2aWNlc1Byb3ZpZGVyRGVmYXVsdERpc3Bs
YXlOYW1lS2V5KTsKKyAgICBpZiAoIWRpc3BsYXlOYW1lKQorICAgICAgICByZXR1cm4gQ0ZTVFIo
Ikdvb2dsZSIpOworCisgICAgQVNTRVJUKENGR2V0VHlwZUlEKGRpc3BsYXlOYW1lKSA9PSBDRlN0
cmluZ0dldFR5cGVJRCgpKTsKKyAgICByZXR1cm4gYWRvcHRDRihDRlN0cmluZ0NyZWF0ZUNvcHko
a0NGQWxsb2NhdG9yRGVmYXVsdCwgKENGU3RyaW5nUmVmKWRpc3BsYXlOYW1lKSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFBBTAorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL0RlZmF1bHRTZWFyY2hQcm92aWRlci5o
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL0RlZmF1bHRTZWFyY2hQcm92aWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZjZmNmZDgzN2I3NjA5YzY0MzI3ZTc1NTk4MGQ2ZDRmZjk5MmZiZjUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvRGVm
YXVsdFNlYXJjaFByb3ZpZGVyLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgUEFMIHsK
KworUEFMX0VYUE9SVCBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGRlZmF1bHRTZWFyY2hQcm92aWRl
ckRpc3BsYXlOYW1lKCk7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3lzdGVtL21hYy9Qb3B1cE1lbnUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21h
Yy9Qb3B1cE1lbnUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDc1YWI3YjdiMjdiZDlkMDYzY2VjOWJlNTU2NjFj
OTUyZWYyYWU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0
ZW0vbWFjL1BvcHVwTWVudS5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgUExB
VEZPUk0oTUFDKQorCisjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CisKK25hbWVzcGFjZSBQQUwg
eworCitQQUxfRVhQT1JUIHZvaWQgcG9wVXBNZW51KE5TTWVudSAqLCBOU1BvaW50IGxvY2F0aW9u
LCBmbG9hdCB3aWR0aCwgTlNWaWV3ICosIGludCBzZWxlY3RlZEl0ZW0sIE5TRm9udCAqLCBOU0Nv
bnRyb2xTaXplLCBib29sIHVzZXNDdXN0b21BcHBlYXJhbmNlKTsKKworfQorCisjZW5kaWYgLy8g
UExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0v
bWFjL1BvcHVwTWVudS5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1
cE1lbnUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjIzMzU3NWRjMzRlNzYxZTg2MWNiYjQ1Mjg3YjczM2YyY2Q0
YWMyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21h
Yy9Qb3B1cE1lbnUubW0KQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiUG9wdXBNZW51LmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNp
bXBvcnQgIk5TTWVudVNQSS5oIgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAaW50ZXJm
YWNlIE5TTWVudSAoV2ViUHJpdmF0ZSkKKy0gKGlkKV9tZW51SW1wbDsKK0BlbmQKKworQGludGVy
ZmFjZSBOU09iamVjdCAoV2ViUHJpdmF0ZSkKKy0gKHZvaWQpcG9wVXBNZW51OihOU01lbnUqKW1l
bnUgYXRMb2NhdGlvbjooTlNQb2ludClsb2NhdGlvbiB3aWR0aDooQ0dGbG9hdCl3aWR0aCBmb3JW
aWV3OihOU1ZpZXcqKXZpZXcgd2l0aFNlbGVjdGVkSXRlbTooTlNJbnRlZ2VyKXNlbGVjdGVkSXRl
bSB3aXRoRm9udDooTlNGb250Kilmb250IHdpdGhGbGFnczooTlNQb3BVcE1lbnVGbGFncylmbGFn
cyB3aXRoT3B0aW9uczooTlNEaWN0aW9uYXJ5ICopb3B0aW9uczsKK0BlbmQKKworbmFtZXNwYWNl
IFBBTCB7CisKK3ZvaWQgcG9wVXBNZW51KE5TTWVudSAqbWVudSwgTlNQb2ludCBsb2NhdGlvbiwg
ZmxvYXQgd2lkdGgsIE5TVmlldyAqdmlldywgaW50IHNlbGVjdGVkSXRlbSwgTlNGb250ICpmb250
LCBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplLCBib29sIHVzZXNDdXN0b21BcHBlYXJhbmNlKQor
eworICAgIE5TUmVjdCBhZGp1c3RlZFBvcHVwQm91bmRzID0gW3ZpZXcud2luZG93IGNvbnZlcnRS
ZWN0VG9TY3JlZW46W3ZpZXcgY29udmVydFJlY3Q6dmlldy5ib3VuZHMgdG9WaWV3Om5pbF1dOwor
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIGlmIChjb250cm9sU2l6ZSAh
PSBOU01pbmlDb250cm9sU2l6ZSkgeworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBhZGp1c3RlZFBvcHVwQm91bmRzLm9yaWdpbi54IC09IDM7CisgICAgICAgIGFkanVzdGVk
UG9wdXBCb3VuZHMub3JpZ2luLnkgLT0gMTsKKyAgICAgICAgYWRqdXN0ZWRQb3B1cEJvdW5kcy5z
aXplLndpZHRoICs9IDY7CisgICAgfQorCisgICAgLy8gVGhlc2UgbnVtYmVycyB3ZXJlIGV4dHJh
Y3RlZCBmcm9tIHZpc3VhbCBpbnNwZWN0aW9uIGFzIHRoZSBtZW51IGFuaW1hdGVzIHNodXQuCisg
ICAgTlNTaXplIGxhYmVsT2Zmc2V0ID0gTlNNYWtlU2l6ZSgxMSwgMSk7CisgICAgaWYgKG1lbnUu
dXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiA9PSBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb25SaWdodFRvTGVmdCkKKyAgICAgICAgbGFiZWxPZmZzZXQgPSBOU01ha2VTaXplKDI0LCAx
KTsKKworICAgIGF1dG8gb3B0aW9ucyA9IGFkb3B0TlMoW0B7CisgICAgICAgIE5TUG9wVXBNZW51
UG9wdXBCdXR0b25Cb3VuZHMgOiBbTlNWYWx1ZSB2YWx1ZVdpdGhSZWN0OmFkanVzdGVkUG9wdXBC
b3VuZHNdLAorICAgICAgICBOU1BvcFVwTWVudVBvcHVwQnV0dG9uTGFiZWxPZmZzZXQgOiBbTlNW
YWx1ZSB2YWx1ZVdpdGhTaXplOmxhYmVsT2Zmc2V0XSwKKyAgICAgICAgTlNQb3BVcE1lbnVQb3B1
cEJ1dHRvblNpemUgOiBAKGNvbnRyb2xTaXplKQorICAgIH0gbXV0YWJsZUNvcHldKTsKKworICAg
IGlmICh1c2VzQ3VzdG9tQXBwZWFyYW5jZSkKKyAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OkAi
IiBmb3JLZXk6TlNQb3BVcE1lbnVQb3B1cEJ1dHRvbldpZGdldF07CisKKyAgICBbW21lbnUgX21l
bnVJbXBsXSBwb3BVcE1lbnU6bWVudSBhdExvY2F0aW9uOmxvY2F0aW9uIHdpZHRoOndpZHRoIGZv
clZpZXc6dmlldyB3aXRoU2VsZWN0ZWRJdGVtOnNlbGVjdGVkSXRlbSB3aXRoRm9udDpmb250IHdp
dGhGbGFnczoodXNlc0N1c3RvbUFwcGVhcmFuY2UgPyAwIDogTlNQb3BVcE1lbnVJc1BvcHVwQnV0
dG9uKSB3aXRoT3B0aW9uczpvcHRpb25zLmdldCgpXTsKK30KKworfSAvLyBuYW1lc3BhY2UgUEFM
CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KaW5kZXggMTI5YjZlMmQ1MGQ1
MjE2ZGI1YTQ2ODc2NmMxNGZkODJlYTUzYmM3Ny4uMTJkZDhhNzhlZjQyMTFkNTFiNTdmZTBlODFi
ZTQwZmUzMGNhMmY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
TG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywxNSArMjMsMTYgQEAKICAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgorI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgot
I2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKLSNpbmNsdWRlIDx3dGYvQXNzZXJ0
aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2ltcG9ydCAiTm90SW1w
bGVtZW50ZWQuaCIKKyNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQg
PHBhbC9zeXN0ZW0vbWFjL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oPgorI2ltcG9ydCA8d3RmL0Fz
c2VydGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC02Niw3ICs2Nyw3IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFy
Y2hJblNwb3RsaWdodCgpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQog
ewotICAgIGF1dG8gc2VhcmNoUHJvdmlkZXJOYW1lID0gYWRvcHRDRih3a0NvcHlEZWZhdWx0U2Vh
cmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKKyAgICBhdXRvIHNlYXJjaFByb3ZpZGVyTmFtZSA9
IFBBTDo6ZGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUoKTsKICAgICByZXR1cm4gZm9y
bWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJj
aCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5h
bWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggZWUz
ZTUzN2ZiOGMyYjY4NzBlNjFkZmQyMzk3NjA3ZWM3ZjFmNGIxYS4uZDM3OWUyNDc0ZDE2NjY1NGE0
YzEyOWNjY2IwZjFlZGUzZTYzMjVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSwgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMjAgKzIzLDI0IEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIlNjcm9sbENvbnRyb2xsZXIuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiU2Nyb2xsQ29udHJvbGxlci5oIgogCi0jaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgot
I2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgotI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1J
bnRlcmZhY2UuaCIKLSNpbmNsdWRlICJXaGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKLSNpbmNsdWRl
IDxzeXMvc3lzY3RsLmg+Ci0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KKyNpbXBvcnQgIkxheW91dFNpemUuaCIKKyNpbXBvcnQgIlBsYXRmb3JtV2hl
ZWxFdmVudC5oIgorI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCAi
V2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCisjaW1wb3J0IDxzeXMvc3lzY3RsLmg+CisjaW1wb3J0
IDxzeXMvdGltZS5oPgorI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKICNpZiBFTkFCTEUo
Q1NTX1NDUk9MTF9TTkFQKQotI2luY2x1ZGUgIlNjcm9sbFNuYXBBbmltYXRvclN0YXRlLmgiCi0j
aW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKKyNpbXBvcnQgIlNjcm9sbFNuYXBBbmltYXRvclN0
YXRlLmgiCisjaW1wb3J0ICJTY3JvbGxhYmxlQXJlYS5oIgorI2VuZGlmCisKKyNpZiBQTEFURk9S
TShNQUMpCisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1Njcm9sbFZpZXdTUEkuaD4KICNlbmRpZgog
CiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSB8fCBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQpA
QCAtNTIsMTcgKzU2LDE3IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBydWJiZXJiYW5kTWluaW11bVJl
cXVpcmVkRGVsdGFCZWZvcmVTdHJldGNoID0gMTA7CiAjaWYgUExBVEZPUk0oTUFDKQogc3RhdGlj
IGZsb2F0IGVsYXN0aWNEZWx0YUZvclRpbWVEZWx0YShmbG9hdCBpbml0aWFsUG9zaXRpb24sIGZs
b2F0IGluaXRpYWxWZWxvY2l0eSwgZmxvYXQgZWxhcHNlZFRpbWUpCiB7Ci0gICAgcmV0dXJuIHdr
TlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEoaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsVmVsb2Np
dHksIGVsYXBzZWRUaW1lKTsKKyAgICByZXR1cm4gX05TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRh
KGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFZlbG9jaXR5LCBlbGFwc2VkVGltZSk7CiB9CiAKIHN0
YXRpYyBmbG9hdCBlbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoZmxvYXQgZGVsdGEpCiB7Ci0g
ICAgcmV0dXJuIHdrTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoZGVsdGEpOworICAgIHJl
dHVybiBfTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoZGVsdGEpOwogfQogCiBzdGF0aWMg
ZmxvYXQgcmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKGZsb2F0IGRlbHRhKQogewotICAgIHJl
dHVybiB3a05TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKGRlbHRhKTsKKyAgICByZXR1cm4g
X05TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKGRlbHRhKTsKIH0KIAogc3RhdGljIGZsb2F0
IHNjcm9sbFdoZWVsTXVsdGlwbGllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBmNDI1Nzk3MDEwZGNh
MjM3NzBiOGZlNDYwNWJjNDliMGY0ZDYwOGEwLi5jNjk0NmQ2ZGZkM2JjZTNhMWY4NjI0YTM5NGJj
Njg2OWQ3ZDJjM2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsNyArMjQsNiBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKLQogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDQS5oIgogCiAjaWYgVVNF
KENBKQpAQCAtNDcsNiArNDYsNyBAQAogI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJh
dGlvbi5oIgogI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ0FUcmFuc2Zvcm0zRC5oPgogI2luY2x1ZGUg
PGxpbWl0cy5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaD4KICNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMjk4OCw3ICsyOTg4LDcgQEAgYm9vbCBH
cmFwaGljc0xheWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNv
bnN0IEtleWZyYW1lVmFsdWUKICAgICAgICAgLy8gb24gb3IgYmVmb3JlIFNub3cgTGVvcGFyZC4K
ICAgICAgICAgLy8gRklYTUU6IFRoaXMgZml4IGhhcyBub3QgYmVlbiBhZGRlZCB0byBRdWFydHpD
b3JlIG9uIFdpbmRvd3MgeWV0ICg8cmRhcjovL3Byb2JsZW0vOTExMjIzMz4pIHNvIHdlIGV4cGVj
dCB0aGUKICAgICAgICAgLy8gcmV2ZXJzZWQgYW5pbWF0aW9uIGJlaGF2aW9yCi0gICAgICAgIHN0
YXRpYyBib29sIGV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQgPSB3a0V4
ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQoKTsKKyAgICAgICAgc3RhdGlj
IGJvb2wgZXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCA9ICFfQ0ZFeGVj
dXRhYmxlTGlua2VkT25PckFmdGVyKENGU3lzdGVtVmVyc2lvbkxpb24pOwogICAgICAgICBpZiAo
IWV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpCiAgICAgICAgICAgICBy
ZXZlcnNlQW5pbWF0aW9uTGlzdCA9IGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0N1cnNvck1hYy5tbQppbmRleCBhYTM0NWU4OGU0ODExOGM0Njg3YjllZWZiZmM3MzIx
OGRjNDcwNzBjLi40MTcyZTIyMjY4YzNkYzQxZGE1NjBlNGU0YzI4ZmM2N2NlODJjMWQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNiAr
MjcsOCBAQAogI2ltcG9ydCAiQ3Vyc29yLmgiCiAKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UuaCIKKyNpbXBvcnQgPG9iamMvcnVudGltZS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMv
SElTZXJ2aWNlc1NQSS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNp
bXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtMzcsNiArMzksMTM5IEBAIEBpbXBsZW1l
bnRhdGlvbiBXZWJDb3JlQ3Vyc29yQnVuZGxlCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
KyAgICAKK3N0YXRpYyBOU0N1cnNvciAqYnVzeUJ1dENsaWNrYWJsZU5TQ3Vyc29yOworc3RhdGlj
IE5TQ3Vyc29yICptYWtlQWxpYXNOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqbW92ZU5TQ3Vy
c29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVFYXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJz
b3IgKnJlc2l6ZUVhc3RXZXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRo
TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRoU291dGhOU0N1cnNvcjsKK3N0
YXRpYyBOU0N1cnNvciAqcmVzaXplTm9ydGhlYXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3Ig
KnJlc2l6ZU5vcnRoZWFzdFNvdXRod2VzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNp
emVOb3J0aHdlc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplTm9ydGh3ZXN0U291
dGhlYXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZVNvdXRoTlNDdXJzb3I7Citz
dGF0aWMgTlNDdXJzb3IgKnJlc2l6ZVNvdXRoZWFzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29y
ICpyZXNpemVTb3V0aHdlc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplV2VzdE5T
Q3Vyc29yOworCitzdGF0aWMgTlNDdXJzb3IgKmNlbGxOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNv
ciAqaGVscE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICp6b29tSW5OU0N1cnNvcjsKK3N0YXRp
YyBOU0N1cnNvciAqem9vbU91dE5TQ3Vyc29yOworCitzdGF0aWMgTlNJbnRlZ2VyIFdLQ29yZUN1
cnNvcl9jb3JlQ3Vyc29yVHlwZShpZCBzZWxmLCBTRUwpCit7CisgICAgaWYgKHNlbGYgPT0gYnVz
eUJ1dENsaWNrYWJsZU5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JCdXN5QnV0
Q2xpY2thYmxlOworICAgIGlmIChzZWxmID09IG1ha2VBbGlhc05TQ3Vyc29yKQorICAgICAgICBy
ZXR1cm4ga0NvcmVDdXJzb3JNYWtlQWxpYXM7CisgICAgaWYgKHNlbGYgPT0gbW92ZU5TQ3Vyc29y
KQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dNb3ZlOworICAgIGlmIChzZWxmID09
IHJlc2l6ZUVhc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVz
aXplRWFzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVFYXN0V2VzdE5TQ3Vyc29yKQorICAgICAg
ICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVFYXN0V2VzdDsKKyAgICBpZiAoc2VsZiA9
PSByZXNpemVOb3J0aE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dS
ZXNpemVOb3J0aDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVOb3J0aFNvdXRoTlNDdXJzb3IpCisg
ICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoU291dGg7CisgICAgaWYg
KHNlbGYgPT0gcmVzaXplTm9ydGhlYXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1
cnNvcldpbmRvd1Jlc2l6ZU5vcnRoRWFzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVOb3J0aGVh
c3RTb3V0aHdlc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVz
aXplTm9ydGhFYXN0U291dGhXZXN0OworICAgIGlmIChzZWxmID09IHJlc2l6ZU5vcnRod2VzdE5T
Q3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aFdlc3Q7
CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGh3ZXN0U291dGhlYXN0TlNDdXJzb3IpCisgICAg
ICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoV2VzdFNvdXRoRWFzdDsKKyAg
ICBpZiAoc2VsZiA9PSByZXNpemVTb3V0aE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVD
dXJzb3JXaW5kb3dSZXNpemVTb3V0aDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVTb3V0aGVhc3RO
U0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291dGhFYXN0
OworICAgIGlmIChzZWxmID09IHJlc2l6ZVNvdXRod2VzdE5TQ3Vyc29yKQorICAgICAgICByZXR1
cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aFdlc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVz
aXplV2VzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVX
ZXN0OworICAgIGlmIChzZWxmID09IGNlbGxOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3Jl
Q3Vyc29yQ2VsbDsKKyAgICBpZiAoc2VsZiA9PSBoZWxwTlNDdXJzb3IpCisgICAgICAgIHJldHVy
biBrQ29yZUN1cnNvckhlbHA7CisgICAgaWYgKHNlbGYgPT0gem9vbUluTlNDdXJzb3IpCisgICAg
ICAgIHJldHVybiBrQ29yZUN1cnNvclpvb21JbjsKKyAgICBpZiAoc2VsZiA9PSB6b29tT3V0TlND
dXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvclpvb21PdXQ7CisgICAgCisgICAgcmV0
dXJuIE5TTm90Rm91bmQ7Cit9CisKK3N0YXRpYyBDbGFzcyBjcmVhdGVDb3JlQ3Vyc29yQ2xhc3Mo
dm9pZCkKK3sKKyAgICBDbGFzcyBjb3JlQ3Vyc29yQ2xhc3MgPSBvYmpjX2FsbG9jYXRlQ2xhc3NQ
YWlyKFtOU0N1cnNvciBjbGFzc10sICJXS0NvcmVDdXJzb3IiLCAwKTsKKyAgICBTRUwgY29yZUN1
cnNvclR5cGUgPSBOU1NlbGVjdG9yRnJvbVN0cmluZyhAIl9jb3JlQ3Vyc29yVHlwZSIpOworICAg
IGNsYXNzX2FkZE1ldGhvZChjb3JlQ3Vyc29yQ2xhc3MsIGNvcmVDdXJzb3JUeXBlLCAoSU1QKVdL
Q29yZUN1cnNvcl9jb3JlQ3Vyc29yVHlwZSwgbWV0aG9kX2dldFR5cGVFbmNvZGluZyhjbGFzc19n
ZXRJbnN0YW5jZU1ldGhvZChbTlNDdXJzb3IgY2xhc3NdLCBjb3JlQ3Vyc29yVHlwZSkpKTsKKyAg
ICBvYmpjX3JlZ2lzdGVyQ2xhc3NQYWlyKGNvcmVDdXJzb3JDbGFzcyk7CisgICAgcmV0dXJuIGNv
cmVDdXJzb3JDbGFzczsKK30KKworc3RhdGljIENsYXNzIGNvcmVDdXJzb3JDbGFzcyh2b2lkKQor
eworICAgIENsYXNzIGNvcmVDdXJzb3JDbGFzcyA9IG9iamNfbG9va1VwQ2xhc3MoIldLQ29yZUN1
cnNvciIpOworICAgIGlmICghY29yZUN1cnNvckNsYXNzKQorICAgICAgICBjb3JlQ3Vyc29yQ2xh
c3MgPSBjcmVhdGVDb3JlQ3Vyc29yQ2xhc3MoKTsKKyAgICByZXR1cm4gY29yZUN1cnNvckNsYXNz
OworfQorCitzdGF0aWMgTlNDdXJzb3IgKmN1cnNvcihjb25zdCBjaGFyICpuYW1lKQoreworICAg
IE5TQ3Vyc29yICoqc2xvdCA9IDA7CisgICAgCisgICAgaWYgKCFzdHJjbXAobmFtZSwgIkJ1c3lC
dXRDbGlja2FibGUiKSkKKyAgICAgICAgc2xvdCA9ICZidXN5QnV0Q2xpY2thYmxlTlNDdXJzb3I7
CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiTWFrZUFsaWFzIikpCisgICAgICAgIHNsb3Qg
PSAmbWFrZUFsaWFzTlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiTW92ZSIp
KQorICAgICAgICBzbG90ID0gJm1vdmVOU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5h
bWUsICJSZXNpemVFYXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplRWFzdE5TQ3Vyc29yOwor
ICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZUVhc3RXZXN0IikpCisgICAgICAgIHNs
b3QgPSAmcmVzaXplRWFzdFdlc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUs
ICJSZXNpemVOb3J0aCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZU5vcnRoTlNDdXJzb3I7Cisg
ICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGhTb3V0aCIpKQorICAgICAgICBz
bG90ID0gJnJlc2l6ZU5vcnRoU291dGhOU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5h
bWUsICJSZXNpemVOb3J0aGVhc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aGVhc3RO
U0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVOb3J0aGVhc3RTb3V0
aHdlc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aGVhc3RTb3V0aHdlc3ROU0N1cnNv
cjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVOb3J0aHdlc3QiKSkKKyAgICAg
ICAgc2xvdCA9ICZyZXNpemVOb3J0aHdlc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21w
KG5hbWUsICJSZXNpemVOb3J0aHdlc3RTb3V0aGVhc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNp
emVOb3J0aHdlc3RTb3V0aGVhc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUs
ICJSZXNpemVTb3V0aCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZVNvdXRoTlNDdXJzb3I7Cisg
ICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplU291dGhlYXN0IikpCisgICAgICAgIHNs
b3QgPSAmcmVzaXplU291dGhlYXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1l
LCAiUmVzaXplU291dGh3ZXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplU291dGh3ZXN0TlND
dXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplV2VzdCIpKQorICAgICAg
ICBzbG90ID0gJnJlc2l6ZVdlc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUs
ICJDZWxsIikpCisgICAgICAgIHNsb3QgPSAmY2VsbE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFz
dHJjbXAobmFtZSwgIkhlbHAiKSkKKyAgICAgICAgc2xvdCA9ICZoZWxwTlNDdXJzb3I7CisgICAg
ZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiWm9vbUluIikpCisgICAgICAgIHNsb3QgPSAmem9vbUlu
TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiWm9vbU91dCIpKQorICAgICAg
ICBzbG90ID0gJnpvb21PdXROU0N1cnNvcjsKKyAgICAKKyAgICBpZiAoIXNsb3QpCisgICAgICAg
IHJldHVybiBuaWw7CisgICAgCisgICAgaWYgKCEqc2xvdCkKKyAgICAgICAgKnNsb3QgPSBbW2Nv
cmVDdXJzb3JDbGFzcygpIGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4gKnNsb3Q7Cit9CiAKIC8v
IFNpbXBsZSBOU0N1cnNvciBjYWxscyBzaG91bGRuJ3QgbmVlZCBwcm90ZWN0aW9uLAogLy8gYnV0
IGNyZWF0aW5nIGEgY3Vyc29yIHdpdGggYSBiYWQgaW1hZ2UgbWlnaHQgdGhyb3cuCkBAIC0xMDMs
NzIgKzIzOCw3MiBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAog
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpXYWl0OgotICAgICAgICBtX3BsYXRm
b3JtQ3Vyc29yID0gd2tDdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKKyAgICAgICAgbV9wbGF0
Zm9ybUN1cnNvciA9IGN1cnNvcigiQnVzeUJ1dENsaWNrYWJsZSIpOwogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQ3Vyc29yOjpIZWxwOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tD
dXJzb3IoIkhlbHAiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiSGVscCIp
OwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpNb3ZlOgogICAgIGNhc2UgQ3Vy
c29yOjpNaWRkbGVQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3Io
Ik1vdmUiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiTW92ZSIpOwogICAg
ICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpFYXN0UmVzaXplOgogICAgIGNhc2UgQ3Vy
c29yOjpFYXN0UGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJS
ZXNpemVFYXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZUVh
c3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhSZXNpemU6CiAg
ICAgY2FzZSBDdXJzb3I6Ok5vcnRoUGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9
IHdrQ3Vyc29yKCJSZXNpemVOb3J0aCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vy
c29yKCJSZXNpemVOb3J0aCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpO
b3J0aEVhc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoRWFzdFBhbm5pbmc6Ci0gICAg
ICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGhlYXN0Iik7CisgICAg
ICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRoZWFzdCIpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFdlc3RSZXNpemU6CiAgICAgY2FzZSBD
dXJzb3I6Ok5vcnRoV2VzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1
cnNvcigiUmVzaXplTm9ydGh3ZXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJz
b3IoIlJlc2l6ZU5vcnRod2VzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29y
OjpTb3V0aFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6U291dGhQYW5uaW5nOgotICAgICAgICBt
X3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZVNvdXRoIik7CisgICAgICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZVNvdXRoIik7CiAgICAgICAgIGJyZWFrOwogCiAg
ICAgY2FzZSBDdXJzb3I6OlNvdXRoRWFzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6U291dGhF
YXN0UGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVT
b3V0aGVhc3QiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplU291
dGhlYXN0Iik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoV2VzdFJl
c2l6ZToKICAgICBjYXNlIEN1cnNvcjo6U291dGhXZXN0UGFubmluZzoKLSAgICAgICAgbV9wbGF0
Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVTb3V0aHdlc3QiKTsKKyAgICAgICAgbV9wbGF0
Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplU291dGh3ZXN0Iik7CiAgICAgICAgIGJyZWFrOwog
CiAgICAgY2FzZSBDdXJzb3I6Oldlc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6Oldlc3RQYW5u
aW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZVdlc3QiKTsK
KyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplV2VzdCIpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFNvdXRoUmVzaXplOgotICAgICAgICBt
X3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRoU291dGgiKTsKKyAgICAgICAg
bV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplTm9ydGhTb3V0aCIpOwogICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpFYXN0V2VzdFJlc2l6ZToKLSAgICAgICAgbV9wbGF0
Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVFYXN0V2VzdCIpOworICAgICAgICBtX3BsYXRm
b3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVFYXN0V2VzdCIpOwogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgQ3Vyc29yOjpOb3J0aEVhc3RTb3V0aFdlc3RSZXNpemU6Ci0gICAgICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGhlYXN0U291dGh3ZXN0Iik7CisgICAg
ICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRoZWFzdFNvdXRod2VzdCIp
OwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFdlc3RTb3V0aEVhc3RS
ZXNpemU6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGh3
ZXN0U291dGhlYXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6
ZU5vcnRod2VzdFNvdXRoZWFzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29y
OjpDb2x1bW5SZXNpemU6CkBAIC0xODQsNyArMzE5LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBs
YXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6
Q2VsbDoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJDZWxsIik7CisgICAg
ICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIkNlbGwiKTsKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIEN1cnNvcjo6Q29udGV4dE1lbnU6CkBAIC0xOTIsMTEgKzMyNywxMSBAQCB2b2lk
IEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgQ3Vyc29yOjpBbGlhczoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vy
c29yKCJNYWtlQWxpYXMiKTsKKyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiTWFr
ZUFsaWFzIik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OlByb2dyZXNzOgot
ICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsK
KyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiQnVzeUJ1dENsaWNrYWJsZSIpOwog
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb0Ryb3A6CkBAIC0yMTYsMTEgKzM1
MSwxMSBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpab29tSW46Ci0gICAgICAgIG1fcGxhdGZvcm1D
dXJzb3IgPSB3a0N1cnNvcigiWm9vbUluIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBj
dXJzb3IoIlpvb21JbiIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpab29t
T3V0OgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlpvb21PdXQiKTsKKyAg
ICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiWm9vbU91dCIpOwogICAgICAgICBicmVh
azsKIAogICAgIGNhc2UgQ3Vyc29yOjpHcmFiOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKaW5kZXggYWNlMjk4YzEyZjgyMGVk
NTBkNjljZmVmNjUxNjMwZDA4NGMwNTJmZS4uNTVmY2ExMjgxNjJmNjM4MjAxNTZmYTIxMWIyN2I3
YWQyY2YxOTUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5oCkBAIC0xMjMsNyArMTIzLDYgQEAgdHlwZWRlZiBlbnVtIHsK
ICAgICB3a1BhdHRlcm5UaWxpbmdDb25zdGFudFNwYWNpbmcKIH0gd2tQYXR0ZXJuVGlsaW5nOwog
I2lmICFQTEFURk9STShJT1MpCi1leHRlcm4gdm9pZCAoKndrRHJhd0JlemVsZWRUZXh0QXJlYSko
TlNSZWN0LCBCT09MIGVuYWJsZWQpOwogZXh0ZXJuIHZvaWQgKCp3a0RyYXdNZWRpYVNsaWRlclRy
YWNrKShDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IHJlY3QsIGZsb2F0IHRpbWVMb2FkZWQs
IGZsb2F0IGN1cnJlbnRUaW1lLAogICAgIGZsb2F0IGR1cmF0aW9uLCB1bnNpZ25lZCBzdGF0ZSk7
CiBleHRlcm4gdm9pZCAoKndrRHJhd01lZGlhVUlQYXJ0KShpbnQgcGFydCwgQ0dDb250ZXh0UmVm
IGNvbnRleHQsIENHUmVjdCByZWN0LCB1bnNpZ25lZCBzdGF0ZSk7CkBAIC0xMzYsMjQgKzEzNSwx
MCBAQCBleHRlcm4gdm9pZCAoKndrU2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2luZ0VuYWJs
ZWQpKEJPT0wpOwogZXh0ZXJuIHZvaWQqIHdrR2V0SHlwaGVuYXRpb25Mb2NhdGlvbkJlZm9yZUlu
ZGV4OwogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQotZXh0ZXJuIGJvb2wgKCp3a0V4ZWN1
dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpKHZvaWQpOwotCi1leHRlcm4gQ0ZT
dHJpbmdSZWYgKCp3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSkodm9pZCk7
Ci0KLWV4dGVybiBOU0N1cnNvciAqKCp3a0N1cnNvcikoY29uc3QgY2hhciopOwotI2VuZGlmIC8v
ICFQTEFURk9STShJT1MpCi0KICNpZiBQTEFURk9STShJT1MpCiBleHRlcm4gdm9pZCAoKndrU2V0
TGF5ZXJDb250ZW50c1NjYWxlKShDQUxheWVyICopOwogI2VuZGlmCiAKIHR5cGVkZWYgY29uc3Qg
c3RydWN0IF9fQ0ZVUkxTdG9yYWdlU2Vzc2lvbiogQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZjsKIAot
I2lmICFQTEFURk9STShJT1MpCi1leHRlcm4gQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JU
aW1lRGVsdGEpKENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGluaXRpYWxWZWxvY2l0
eSwgQ0dGbG9hdCBlbGFwc2VkVGltZSk7Ci1leHRlcm4gQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVs
dGFGb3JSZWJvdW5kRGVsdGEpKENHRmxvYXQgZGVsdGEpOwotZXh0ZXJuIENHRmxvYXQgKCp3a05T
UmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLSNlbmRpZgotCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50
ZXJmYWNlLm1tCmluZGV4IDM1MDczMTliNWRkOGE3ZTcwNmZlNjMxM2QwNDFmMzg0OTA4MDA4YTMu
LjhmYmIxZDNkOGM4ODY4YzI0NTRmMzA5YzY5ZTA2NDAwZjNkZmY5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCkBA
IC0zMCw3ICszMCw2IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi12
b2lkICgqd2tEcmF3QmV6ZWxlZFRleHRBcmVhKShOU1JlY3QsIEJPT0wgZW5hYmxlZCk7CiB2b2lk
ICgqd2tEcmF3TWVkaWFTbGlkZXJUcmFjaykoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCBy
ZWN0LCBmbG9hdCB0aW1lTG9hZGVkLCBmbG9hdCBjdXJyZW50VGltZSwKICAgICBmbG9hdCBkdXJh
dGlvbiwgdW5zaWduZWQgc3RhdGUpOwogQk9PTCAoKndrSGl0VGVzdE1lZGlhVUlQYXJ0KShpbnQg
cGFydCwgQ0dSZWN0IGJvdW5kcywgQ0dQb2ludCBwb2ludCk7CkBAIC00MiwxNCArNDEsNCBAQCB2
b2lkICgqd2tQb3B1cE1lbnUpKE5TTWVudSosIE5TUG9pbnQgbG9jYXRpb24sIGZsb2F0IHdpZHRo
LCBOU1ZpZXcqLCBpbnQgc2VsZWN0ZQogCiB2b2lkKiB3a0dldEh5cGhlbmF0aW9uTG9jYXRpb25C
ZWZvcmVJbmRleDsKIAotYm9vbCAoKndrRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93
TGVvcGFyZCkodm9pZCk7Ci0KIENGU3RyaW5nUmVmICgqd2tDb3B5RGVmYXVsdFNlYXJjaFByb3Zp
ZGVyRGlzcGxheU5hbWUpKHZvaWQpOwotCi1OU0N1cnNvciAqKCp3a0N1cnNvcikoY29uc3QgY2hh
ciopOwotCi0jaWYgIVBMQVRGT1JNKElPUykKLUNHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9y
VGltZURlbHRhKShDR0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0aWFsVmVsb2Np
dHksIENHRmxvYXQgZWxhcHNlZFRpbWUpOwotQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JS
ZWJvdW5kRGVsdGEpKENHRmxvYXQgZGVsdGEpOwotQ0dGbG9hdCAoKndrTlNSZWJvdW5kRGVsdGFG
b3JFbGFzdGljRGVsdGEpKENHRmxvYXQgZGVsdGEpOwotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggOTNlOGQ2MTk3MTc2MTc1ZDhjY2IzNmUx
OWNmZWZiYTljNDg2NTVlZi4uZjAwYzgzOTdiNThhNDFhYTkzMTI4YTIyNmFhZTc1YTZmYjlhYzU0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtNzQs
NiArNzQsNyBAQAogI2ltcG9ydCA8bWF0aC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3Jh
cGhpY3NTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNDb2xvclNQSS5oPgorI2ltcG9y
dCA8cGFsL3NwaS9tYWMvTlNDZWxsU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1NoYXJp
bmdTZXJ2aWNlUGlja2VyU1BJLmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgogI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgpAQCAtODg0LDcgKzg4NSw3IEBAIHZvaWQgUmVuZGVyVGhlbWVN
YWM6OmFkanVzdFRleHRGaWVsZFN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYsIGNv
bnN0IEVsCiBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFRleHRBcmVhKGNvbnN0IFJlbmRlck9i
amVjdCYgbywgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdCYgcikK
IHsKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDb250ZXh0KHBhaW50SW5m
by5jb250ZXh0KCkpOwotICAgIHdrRHJhd0JlemVsZWRUZXh0QXJlYShyLCBpc0VuYWJsZWQobykg
JiYgIWlzUmVhZE9ubHlDb250cm9sKG8pKTsKKyAgICBfTlNEcmF3Q2FyYm9uVGhlbWVMaXN0Qm94
KHIsIGlzRW5hYmxlZChvKSAmJiAhaXNSZWFkT25seUNvbnRyb2wobyksIFlFUywgWUVTKTsKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KaW5kZXggNmY3NTI5NTJlNzZjMzQ4N2IyYWNh
MGQyZGUxMTM1YWFjM2RhZWU4Ny4uMTM4YmU2YjhmZmM3NDM4ODUwMWE1MThlYmFmMDI0MmY5ZjEy
OTI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29y
a1Byb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0
d29ya1Byb2Nlc3NNYWMubW0KQEAgLTQyLDYgKzQyLDcgQEAKICNpbXBvcnQgPFdlYktpdFN5c3Rl
bUludGVyZmFjZS5oPgogI2ltcG9ydCA8bm90aWZ5Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NG
TmV0d29ya1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5o
PgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KICNpbXBvcnQgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRs
ZXIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTksNyArNjAsNyBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtZXRlcgogdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVBy
b2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKIHsKICAgICBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX1NUUklORygiJUAgTmV0d29ya2luZyIsICJ2aXNpYmxlIG5h
bWUgb2YgdGhlIG5ldHdvcmsgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlv
biBuYW1lLiIpLCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwotICAgIFdL
U2V0VmlzaWJsZUFwcGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lKTsK
KyAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklE
LCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5LCAoQ0ZT
dHJpbmdSZWYpYXBwbGljYXRpb25OYW1lLCBudWxscHRyKTsKIH0KIAogc3RhdGljIHZvaWQgb3Zl
cnJpZGVTeXN0ZW1Qcm94aWVzKGNvbnN0IFN0cmluZyYgaHR0cFByb3h5LCBjb25zdCBTdHJpbmcm
IGh0dHBzUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFj
L1BsdWdpblByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1Bs
dWdpblByb2Nlc3NNYWMubW0KaW5kZXggMjRkMjZlZDFlNjc0M2FlYzU1N2E4Zjc2NDg5YjY3Mzgw
NDE3ZmQwNS4uZGIwYzMwNmYwNjJlN2RmOTNlMTM5YWRkZTA0NmI5YThiZjk3ZGY3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5t
bQpAQCAtNjIyLDkgKzYyMiw5IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhCiB2b2lkIFBsdWdp
blByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgTlNTdHJpbmcgKmFwcGxpY2F0
aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAICgl
QCBJbnRlcm5ldCBwbHVnLWluKSIsICJ2aXNpYmxlIG5hbWUgb2YgdGhlIHBsdWctaW4gaG9zdCBw
cm9jZXNzLiBUaGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlIHBsdWctaW4gbmFtZSBhbmQgdGhlIHNl
Y29uZCBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgW1soTlNTdHJpbmcgKilt
X3BsdWdpblBhdGggbGFzdFBhdGhDb21wb25lbnRdIHN0cmluZ0J5RGVsZXRpbmdQYXRoRXh0ZW5z
aW9uXSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsKLSAgICBXS1NldFZp
c2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CisgICAg
X0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xT
R2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9rTFNEaXNwbGF5TmFtZUtleSwgKENGU3RyaW5n
UmVmKWFwcGxpY2F0aW9uTmFtZSwgbnVsbHB0cik7CiAgICAgaWYgKCFtX3BsdWdpbkJ1bmRsZUlk
ZW50aWZpZXIuaXNFbXB0eSgpKQotICAgICAgICBXS1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25J
dGVtKGtMU1BsdWdJbkJ1bmRsZUlkZW50aWZpZXJLZXksIG1fcGx1Z2luQnVuZGxlSWRlbnRpZmll
ci5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyAgICAgICAgX0xTU2V0QXBwbGljYXRpb25JbmZv
cm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9u
QVNOKCksIGtMU1BsdWdJbkJ1bmRsZUlkZW50aWZpZXJLZXksIG1fcGx1Z2luQnVuZGxlSWRlbnRp
Zmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBudWxscHRyKTsKIH0KIAogdm9pZCBQbHVnaW5Q
cm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
IHNhbmRib3hQYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9tYWMvU3RvcmFnZVByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL21hYy9TdG9yYWdlUHJvY2Vzc01hYy5tbQppbmRleCBjMDM4ODYwZjhmMTQzYzBkY2ZmYzkz
YTUyNzY2ZDYzNDU0NzQxZjM5Li5lMzk2ODFhYzc0YWZlZDFkNmY0OWZiYzhlNTMwNWJmYzVjNDM2
YTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21hYy9TdG9yYWdl
UHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21hYy9TdG9y
YWdlUHJvY2Vzc01hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZpbGVTeXN0
ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8V2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZp
Y2VzU1BJLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00Nyw3ICs0OCw3IEBA
IHZvaWQgU3RvcmFnZVByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVyCiB2b2lkIFN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXpl
UHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzKQogewogICAgIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWUgPSBbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIlQCBTdG9yYWdlIiwgInZpc2libGUgbmFt
ZSBvZiB0aGUgc3RvcmFnZSBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9u
IG5hbWUuIiksIChOU1N0cmluZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZV07Ci0gICAgV0tT
ZXRWaXNpYmxlQXBwbGljYXRpb25OYW1lKChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUpOwor
ICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQs
IF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBfa0xTRGlzcGxheU5hbWVLZXksIChDRlN0
cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUsIG51bGxwdHIpOwogfQogCiB2b2lkIFN0b3JhZ2VQcm9j
ZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHNh
bmRib3hQYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvTmF2aWdhdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2
aWdhdGlvblN0YXRlLm1tCmluZGV4IDMyMTQ4Yjk1NmM5NGZmMjg4ODkzZTE2YjI3YWI1OWZiNzRk
N2FiYjEuLmY4YjlkYjI2NWE4YTI0Yzg0YjI4OTk3ODllZDNmZDhlZWE1YTQ1ZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KQEAgLTcx
LDcgKzcxLDcgQEAKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiAjaWYgSEFWRShB
UFBfTElOS1MpCi0jaW1wb3J0IDxwYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQSS5oPgorI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oPgogI2VuZGlmCiAKICNpZiBV
U0UoUVVJQ0tfTE9PSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KaW5kZXggOTk4MGUxNWUyZjk5MjY2YWIwOWI4YTVhMDFiYTdlZDc4N2E1YjUwNS4uMDE1
NWNiMThiMTUxNDM5YTBmMTNiMjNhYWRhYWQ2MTc3MWM2ZTU5MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05NCw2ICs5NCw3IEBACiAjaW1w
b3J0IDxwYWwvc3BpL21hYy9OU0FjY2Vzc2liaWxpdHlTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkv
bWFjL05TQXBwbGljYXRpb25TUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TSW1tZWRpYXRl
QWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2Ny
b2xsZXJJbXBTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU3BlbGxDaGVja2VyU1BJLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1RleHRGaW5kZXJTUEkuaD4KICNpbXBvcnQgPHBhbC9z
cGkvbWFjL05TV2luZG93U1BJLmg+CkBAIC0xMjU5LDcgKzEyNjAsNyBAQCBzdGF0aWMgTlNUcmFj
a2luZ0FyZWFPcHRpb25zIHRyYWNraW5nQXJlYU9wdGlvbnMoKQogewogICAgIC8vIExlZ2FjeSBz
dHlsZSBzY3JvbGxiYXJzIGhhdmUgZGVzaWduIGRldGFpbHMgdGhhdCByZWx5IG9uIHRyYWNraW5n
IHRoZSBtb3VzZSBhbGwgdGhlIHRpbWUuCiAgICAgTlNUcmFja2luZ0FyZWFPcHRpb25zIG9wdGlv
bnMgPSBOU1RyYWNraW5nTW91c2VNb3ZlZCB8IE5TVHJhY2tpbmdNb3VzZUVudGVyZWRBbmRFeGl0
ZWQgfCBOU1RyYWNraW5nSW5WaXNpYmxlUmVjdCB8IE5TVHJhY2tpbmdDdXJzb3JVcGRhdGU7Ci0g
ICAgaWYgKFdLUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlTGVn
YWN5KQorICAgIGlmIChfTlNSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVy
U3R5bGVMZWdhY3kpCiAgICAgICAgIG9wdGlvbnMgfD0gTlNUcmFja2luZ0FjdGl2ZUFsd2F5czsK
ICAgICBlbHNlCiAgICAgICAgIG9wdGlvbnMgfD0gTlNUcmFja2luZ0FjdGl2ZUluS2V5V2luZG93
OwpAQCAtMTk0NSw3ICsxOTQ2LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6bWlnaHRCZWdpbkRyYWdX
aGlsZUluYWN0aXZlKCkKIGJvb2wgV2ViVmlld0ltcGw6Om1pZ2h0QmVnaW5TY3JvbGxXaGlsZUlu
YWN0aXZlKCkKIHsKICAgICAvLyBMZWdhY3kgc3R5bGUgc2Nyb2xsYmFycyBoYXZlIGRlc2lnbiBk
ZXRhaWxzIHRoYXQgcmVseSBvbiB0cmFja2luZyB0aGUgbW91c2UgYWxsIHRoZSB0aW1lLgotICAg
IGlmIChXS1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2Fj
eSkKKyAgICBpZiAoX05TUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0
eWxlTGVnYWN5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0
YW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQubW0KaW5kZXggYzNlOTJhN2UxOWRhYThjZWE0MzFiYjY2ZThhMTg3MTZkNzlhZThmNi4uOWNl
ODQxNzEzNWJlNGYzODJhOWM1YmIyZWI2MDVmOWI1YWQzNWNkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KQEAgLTQ3
LDcgKzQ3LDcgQEAKICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgSEFWRShB
UFBfTElOS1MpCi0jaW1wb3J0IDxwYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQSS5oPgorI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oPgogI2VuZGlmCiAKICNpZiBI
QVZFKFNBRkFSSV9TRVJWSUNFU19GUkFNRVdPUkspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KaW5kZXggN2Q2Y2IzZWRhMWQwODlj
ODc0NWFiMzRhMDFjM2NiNmNmZWZlM2MyMS4uMTI0MWJkOGQ5ZTFiNzAxN2YwOWQ0YzRjNGZmOWVh
MzAxOWM3NmJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBv
cHVwTWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQ
b3B1cE1lbnVQcm94eU1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJTdHJpbmdV
dGlsaXRpZXMuaCIKICNpbXBvcnQgIldlYlBvcHVwSXRlbS5oIgogI2ltcG9ydCA8V2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTE2NSw3ICsxNjYsNyBAQCB2b2lkIFdlYlBv
cHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHRE
aXJlY3Rpb24gdGV4dAogICAgIH0KIAogICAgIFJlZjxXZWJQb3B1cE1lbnVQcm94eU1hYz4gcHJv
dGVjdCgqdGhpcyk7Ci0gICAgV0tQb3B1cE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dp
ZHRoKHJlY3QpKSwgZHVtbXlWaWV3LmdldCgpLCBzZWxlY3RlZEluZGV4LCBmb250LCBjb250cm9s
U2l6ZSwgZGF0YS5oaWRlQXJyb3dzKTsKKyAgICBQQUw6OnBvcFVwTWVudShtZW51LCBsb2NhdGlv
biwgcm91bmRmKE5TV2lkdGgocmVjdCkpLCBkdW1teVZpZXcuZ2V0KCksIHNlbGVjdGVkSW5kZXgs
IGZvbnQsIGNvbnRyb2xTaXplLCBkYXRhLmhpZGVBcnJvd3MpOwogCiAgICAgW21fcG9wdXAgZGlz
bWlzc1BvcFVwXTsKICAgICBbZHVtbXlWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNj
YXBlUGx1Z2luTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCmluZGV4IGEzMTIwZTYyNTM4M2JlYjJhZjcwNzAy
NzBmNDdmODU4OTkzMGMyMDYuLmQyOTFhMTE0M2NjMzFlY2QxM2M4ZWJiODIyNTMyY2E3ZWYxMWM5
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KQEAgLTM4LDYgKzM4LDcg
QEAKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8b2JqYy9ydW50
aW1lLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaD4KKyNpbXBvcnQgPHBh
bC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAj
aW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKQEAgLTE1OCw3ICsxNTksNiBAQCBOUEJv
b2wgTmV0c2NhcGVQbHVnaW46OmNvbnZlcnRQb2ludChkb3VibGUgc291cmNlWCwgZG91YmxlIHNv
dXJjZVksIE5QQ29vcmRpbmF0ZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotCiBOUEVycm9yIE5l
dHNjYXBlUGx1Z2luOjpwb3BVcENvbnRleHRNZW51KE5QTWVudSogbnBNZW51KQogewogICAgIGlm
ICghbV9jdXJyZW50TW91c2VFdmVudCkKQEAgLTE2OCw3ICsxNjgsNyBAQCBOUEVycm9yIE5ldHNj
YXBlUGx1Z2luOjpwb3BVcENvbnRleHRNZW51KE5QTWVudSogbnBNZW51KQogICAgIGlmICghY29u
dmVydFBvaW50KG1fY3VycmVudE1vdXNlRXZlbnQtPmRhdGEubW91c2UucGx1Z2luWCwgbV9jdXJy
ZW50TW91c2VFdmVudC0+ZGF0YS5tb3VzZS5wbHVnaW5ZLCBOUENvb3JkaW5hdGVTcGFjZVBsdWdp
biwgc2NyZWVuWCwgc2NyZWVuWSwgTlBDb29yZGluYXRlU3BhY2VTY3JlZW4pKQogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKIAotICAgIFdLUG9wdXBDb250ZXh0TWVudShyZWludGVycHJl
dF9jYXN0PE5TTWVudSAqPihucE1lbnUpLCBOU01ha2VQb2ludChzY3JlZW5YLCBzY3JlZW5ZKSk7
CisgICAgX05TUG9wVXBDYXJib25NZW51MyhyZWludGVycHJldF9jYXN0PE5TTWVudSAqPihucE1l
bnUpLCBuaWwsIG5pbCwgTlNNYWtlUG9pbnQoc2NyZWVuWCwgc2NyZWVuWSksIC0xLCBuaWwsIDAs
IG5pbCwgTlNQb3BVcE1lbnVUeXBlQ29udGV4dCwgbmlsKTsKICAgICByZXR1cm4gTlBFUlJfTk9f
RVJST1I7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYv
UERGUGx1Z2luLm1tCmluZGV4IDkyN2M4YWM0M2QyNWQ2ZjdjN2I4Nzg1NjY2NjA3YmQyNzNiM2Vi
YTEuLmFmY2ZmYTUxNzQ1YjI1YjllNzQwNDI4MzA3ZmFjZWQ1NDhkZWNhYTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTEsIDIwMTIsIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC04MSw2ICs4MSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1doZWVsRXZlbnRUZXN0
VHJpZ2dlci5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxw
YWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNNZW51
U1BJLmg+CiAjaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbXBvcnQgPHd0Zi9VVUlELmg+
CiAKQEAgLTE1ODUsNyArMTU4Niw3IEBAIGJvb2wgUERGUGx1Z2luOjpoYW5kbGVDb250ZXh0TWVu
dUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQogICAgIEludFBvaW50IHBvaW50ID0g
ZnJhbWVWaWV3LT5jb250ZW50c1RvU2NyZWVuKEludFJlY3QoZnJhbWVWaWV3LT53aW5kb3dUb0Nv
bnRlbnRzKGV2ZW50LnBvc2l0aW9uKCkpLCBJbnRTaXplKCkpKS5sb2NhdGlvbigpOwogICAgIAog
ICAgIGlmIChOU01lbnUgKm5zTWVudSA9IFttX3BkZkxheWVyQ29udHJvbGxlciBtZW51Rm9yRXZl
bnQ6bnNFdmVudEZvcldlYk1vdXNlRXZlbnQoZXZlbnQpXSkgewotICAgICAgICBXS1BvcHVwQ29u
dGV4dE1lbnUobnNNZW51LCBwb2ludCk7CisgICAgICAgIF9OU1BvcFVwQ2FyYm9uTWVudTMobnNN
ZW51LCBuaWwsIG5pbCwgcG9pbnQsIC0xLCBuaWwsIDAsIG5pbCwgTlNQb3BVcE1lbnVUeXBlQ29u
dGV4dCwgbmlsKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1J
bnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYlN5c3RlbUludGVyZmFjZS5tbQppbmRleCA2ZDFkZDczMzkxOWVkNGY0ODYzN2Q2N2NlNjE1
ZGM2ZmQwNDcxMjI3Li5iOWFjMzk2YmIwMzZkNTVkNzEyYzIyNzQ4MmFmYTNmYzk3NzMwOTM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YlN5c3RlbUludGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtMzcsMTcgKzM3LDEwIEBAIHZv
aWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAKICAgICBkaXNwYXRjaF9v
bmNlKCZpbml0T25jZSwgXnsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgICAgICBJTklUKERyYXdC
ZXplbGVkVGV4dEFyZWEpOwogICAgICAgICBJTklUKERyYXdNZWRpYVNsaWRlclRyYWNrKTsKICAg
ICAgICAgSU5JVChEcmF3TWVkaWFVSVBhcnQpOwogICAgICAgICBJTklUKEhpdFRlc3RNZWRpYVVJ
UGFydCk7CiAgICAgICAgIElOSVQoTWVhc3VyZU1lZGlhVUlQYXJ0KTsKLSAgICAgICAgSU5JVChF
eGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKTsKLSAgICAgICAgSU5JVChD
b3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOwotICAgICAgICBJTklUKEN1cnNv
cik7Ci0gICAgICAgIElOSVQoTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEpOwotICAgICAgICBJ
TklUKE5TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKTsKLSAgICAgICAgSU5JVChOU1JlYm91
bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7CiAjZW5kaWYKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDdjMzVk
OGU5MGI3OTFjOTQyNjE5ZmRjZjc2NjAzYzliNDMwZWUwMmEuLjQzYjc5NjY2ZDE1MWU5ZGEyOTdh
YzY5ZjJkMDlhZGY4MDIxMWRiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgV2ViUHJv
Y2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVyCiAgICAgICAgIGFwcGxpY2F0aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdX
aXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAIFdlYiBJbnNwZWN0b3IiLCAiVmlzaWJsZSBuYW1l
IG9mIFdlYiBJbnNwZWN0b3IncyB3ZWIgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBs
aWNhdGlvbiBuYW1lLiIpLCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwog
ICAgIGVsc2UKICAgICAgICAgYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6V0VCX1VJX1NUUklORygiJUAgV2ViIENvbnRlbnQiLCAiVmlzaWJsZSBuYW1lIG9mIHRo
ZSB3ZWIgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiIpLCAo
TlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwotICAgIFdLU2V0VmlzaWJsZUFw
cGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lKTsKKyAgICBfTFNTZXRB
cHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRDdXJy
ZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5LCAoQ0ZTdHJpbmdSZWYpYXBw
bGljYXRpb25OYW1lLCBudWxscHRyKTsKICNlbmRpZgogfQogCkBAIC0zOTQsNyArMzk0LDcgQEAg
dm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdlcygpCiAgICAgfQogCiAgICAgZGlzcGF0
Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklU
WV9ERUZBVUxULCAwKSwgW2FjdGl2ZVBhZ2VVUkxzXSB7Ci0gICAgICAgIFdLU2V0QXBwbGljYXRp
b25JbmZvcm1hdGlvbkl0ZW0oQ0ZTVFIoIkxTQWN0aXZlUGFnZVVzZXJWaXNpYmxlT3JpZ2luc0tl
eSIpLCAoX19icmlkZ2UgQ0ZBcnJheVJlZilhY3RpdmVQYWdlVVJMcy5nZXQoKSk7CisgICAgICAg
IF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9M
U0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBDRlNUUigiTFNBY3RpdmVQYWdlVXNlclZpc2li
bGVPcmlnaW5zS2V5IiksIChfX2JyaWRnZSBDRkFycmF5UmVmKWFjdGl2ZVBhZ2VVUkxzLmdldCgp
LCBudWxscHRyKTsKICAgICB9KTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0
ZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVs
dENvbnRleHRNZW51RGVsZWdhdGUubW0KaW5kZXggMDI2NWJmMGM1MWE5ZjE4NzE1OTY1NTVkNjkw
N2Y5MDIzNzBlNzk1Ny4uNjM5MmFiMDUxZjMzOTI0MzNhMDA3MGQ0YmZjZDY0MmJkNDU3MWEyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJE
ZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MSw2
ICs1MSw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NLmg+CiAjaW1wb3J0IDxXZWJLaXRM
ZWdhY3kvRE9NUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Cisj
aW1wb3J0IDxwYWwvc3lzdGVtL21hYy9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuaD4KICNpbXBvcnQg
PHd0Zi9Bc3NlcnRpb25zLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJEZWZhdWx0VUlEZWxlZ2F0
ZSAoV2ViQ29udGV4dE1lbnUpCkBAIC05MSw3ICs5Miw3IEBAIC0gKE5TTWVudUl0ZW0gKiltZW51
SXRlbVdpdGhUYWc6KGludCl0YWcgdGFyZ2V0OihpZCl0YXJnZXQgcmVwcmVzZW50ZWRPYmplY3Q6
KGlkCiAgICAgICAgICAgICBhY3Rpb24gPSBAc2VsZWN0b3IoX3NlYXJjaFdpdGhTcG90bGlnaHRG
cm9tTWVudTopOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViTWVudUl0ZW1U
YWdTZWFyY2hXZWI6IHsKLSAgICAgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2VhcmNo
UHJvdmlkZXJOYW1lID0gYWRvcHRDRihXS0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5
TmFtZSgpKTsKKyAgICAgICAgICAgIGF1dG8gc2VhcmNoUHJvdmlkZXJOYW1lID0gUEFMOjpkZWZh
dWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpOwogICAgICAgICAgICAgdGl0bGUgPSBbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpVSV9TVFJJTkdfSU5URVJOQUwoIlNlYXJjaCB3aXRoICVA
IiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHBy
b3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpXTsKICAgICAg
ICAgICAgIGFjdGlvbiA9IEBzZWxlY3Rvcihfc2VhcmNoV2l0aEdvb2dsZUZyb21NZW51Oik7CiAg
ICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Bs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KaW5kZXgg
MTliMzhhZTJlODM0MzI3ZGQ2NzMzODYxN2I2MTdlODk3ZDc2OGQ5Yi4uMzg0YTU5MWVmZTE3ODI2
MTllYTJkOGRkZWExNTAwZmQ5NWRmMmNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJv
eHkubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xs
ZXIuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBleHRlcm4gIkMiIHsKQEAgLTExNyw3ICsxMTgsNyBAQCBO
ZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkobWFjaF9wb3J0
X3QgY2xpZW50UG9ydCwgbWFjaF9wbwogICAgIAogICAgIENGUnVuTG9vcEFkZFNvdXJjZShDRlJ1
bkxvb3BHZXRDdXJyZW50KCksIGRlYXRoUG9ydFNvdXJjZS5nZXQoKSwga0NGUnVuTG9vcERlZmF1
bHRNb2RlKTsKICAgICAKLSAgICBtX2NsaWVudFBvcnRTb3VyY2UgPSBhZG9wdENGKFdLQ3JlYXRl
TUlHU2VydmVyU291cmNlKChtaWdfc3Vic3lzdGVtX3QpJldLV2ViS2l0UGx1Z2luQ2xpZW50X3N1
YnN5c3RlbSwgbV9jbGllbnRQb3J0KSk7CisgICAgbV9jbGllbnRQb3J0U291cmNlID0gYWRvcHRD
RihNU0hDcmVhdGVNSUdTZXJ2ZXJTb3VyY2UobnVsbHB0ciwgMCwgKG1pZ19zdWJzeXN0ZW1fdCkm
V0tXZWJLaXRQbHVnaW5DbGllbnRfc3Vic3lzdGVtLCAwLCBtX2NsaWVudFBvcnQsIG51bGxwdHIp
KTsKICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpLCBtX2NsaWVu
dFBvcnRTb3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7CiAgICAgQ0ZSdW5Mb29w
QWRkU291cmNlKENGUnVuTG9vcEdldEN1cnJlbnQoKSwgbV9jbGllbnRQb3J0U291cmNlLmdldCgp
LCAoQ0ZTdHJpbmdSZWYpTlNFdmVudFRyYWNraW5nUnVuTG9vcE1vZGUpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1t
CmluZGV4IGNjNWY4MWRmZDY1NmZjOGU3MzVkMTg1N2Y1YWU4NTM4ZDA3NGZlMTQuLjgxY2Y0Yzc1
ZDIwOWNiY2YxYzQ3MWYxM2NlM2NlNGYwZjFiMTBjMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4LCAyMDEwLCAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpA
QCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1BvcHVwTWVudUNsaWVudC5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+
CisjaW1wb3J0IDxwYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUuaD4KICNpbXBvcnQgPHd0Zi9CbG9j
a09iakNFeGNlcHRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMjE3LDcg
KzIxOCw3IEBAIHZvaWQgUG9wdXBNZW51TWFjOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1l
VmlldyogdiwgaW50IGluZGV4KQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBXS1BvcHVw
TWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRmKE5TV2lkdGgocikpLCBkdW1teVZpZXcuZ2V0KCks
IGluZGV4LCB0b05TRm9udChmb250KSwgY29udHJvbFNpemUsICFtX2NsaWVudC0+bWVudVN0eWxl
KCkuaGFzRGVmYXVsdEFwcGVhcmFuY2UoKSk7CisgICAgUEFMOjpwb3BVcE1lbnUobWVudSwgbG9j
YXRpb24sIHJvdW5kZihOU1dpZHRoKHIpKSwgZHVtbXlWaWV3LmdldCgpLCBpbmRleCwgdG9OU0Zv
bnQoZm9udCksIGNvbnRyb2xTaXplLCAhbV9jbGllbnQtPm1lbnVTdHlsZSgpLmhhc0RlZmF1bHRB
cHBlYXJhbmNlKCkpOwogCiAgICAgW21fcG9wdXAgZGlzbWlzc1BvcFVwXTsKICAgICBbZHVtbXlW
aWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRl
eCBmOWI4NzAyMmI2NjE5ZDE5MDgxNzZmYTExNzNhMGM5Yjk5NTZhMWMyLi44OWYzZTA2NWVlMzdm
Y2ZmMzI3ZTZmMjhiYzU0YjYxNGZiNDllOGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQpAQCAtMTU1LDcgKzE1NSw3IEBACiAKICNpZiBIQVZFKEFQUF9MSU5LUykKICNpbXBvcnQgPFdl
YkNvcmUvV2ViQ29yZVRocmVhZFJ1bi5oPgotI2ltcG9ydCA8cGFsL3NwaS9pb3MvTGF1bmNoU2Vy
dmljZXNTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4K
ICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJm
YWNlLm1tCmluZGV4IGJmNzE2Yjc1N2IwYzU5NzM3Zjg4MzEwMmVhNTA1ODU5MzAwMjM3ZWEuLmE5
OTI5OGJmNjgwZGFlYjMwN2I4NGIyMWFjNzA1NDA0NmQ4MzdkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0KQEAgLTQzLDI0ICs0MywxMSBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKHZvaWQpCiAgICAgICAgIHJldHVybjsKIAogI2lmICFQTEFURk9STShJT1MpCi0gICAgSU5J
VChEcmF3QmV6ZWxlZFRleHRBcmVhKTsKICAgICBJTklUKERyYXdNZWRpYVVJUGFydCk7CiAgICAg
SU5JVChEcmF3TWVkaWFTbGlkZXJUcmFjayk7CiAgICAgSU5JVChIaXRUZXN0TWVkaWFVSVBhcnQp
OwogICAgIElOSVQoTWVhc3VyZU1lZGlhVUlQYXJ0KTsKICNlbmRpZgogCi0jaWYgIVBMQVRGT1JN
KElPUykKLSAgICBJTklUKEV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQp
OwotICAgIElOSVQoQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKTsKLSAgICBJ
TklUKEN1cnNvcik7Ci0jZW5kaWYKLQotI2lmICFQTEFURk9STShJT1MpCi0gICAgSU5JVChOU0Vs
YXN0aWNEZWx0YUZvclRpbWVEZWx0YSk7Ci0gICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclJlYm91
bmREZWx0YSk7Ci0gICAgSU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7Ci0jZW5k
aWYKLQogICAgIGRpZEluaXQgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMjc0YTE2ODcwNTc0NTQ0MTRhYjkyOTc1YTVj
MDQ4YzYwZWU1YTU4YS4uOGQzZjllYmJmODI3ZmUxNDhkZTI0MTYwMjlmM2ZkNmFiZTMzMTJkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBA
IC0xMzAsNyArMTMwLDkgQEAKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2lt
cG9ydCA8ZGxmY24uaD4KICNpbXBvcnQgPGxpbWl0cz4KKyNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZV
dGlsaXRpZXNTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNVUkxGaWxlVHlwZU1hcHBp
bmdzU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmg+CiAjaW1w
b3J0IDxwYWwvc3BpL21hYy9OU1NwZWxsQ2hlY2tlclNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9t
YWMvTlNWaWV3U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1dpbmRvd1NQSS5oPgpAQCAt
NDY4Miw3ICs0Njg0LDcgQEAgLSAodm9pZClzZXREYXRhU291cmNlOihXZWJEYXRhU291cmNlICop
ZGF0YVNvdXJjZQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoIV9wcml2YXRlLT5pbnN0YWxs
ZWRUcmFja2luZ0FyZWEpIHsKICAgICAgICAgTlNUcmFja2luZ0FyZWFPcHRpb25zIG9wdGlvbnMg
PSBOU1RyYWNraW5nTW91c2VNb3ZlZCB8IE5TVHJhY2tpbmdNb3VzZUVudGVyZWRBbmRFeGl0ZWQg
fCBOU1RyYWNraW5nSW5WaXNpYmxlUmVjdCB8IE5TVHJhY2tpbmdDdXJzb3JVcGRhdGU7Ci0gICAg
ICAgIGlmIChXS1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxl
Z2FjeQorICAgICAgICBpZiAoX05TUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3Jv
bGxlclN0eWxlTGVnYWN5CiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgICAgICAg
ICAgfHwgW1tzZWxmIF93ZWJWaWV3XSBfZGFzaGJvYXJkQmVoYXZpb3I6V2ViRGFzaGJvYXJkQmVo
YXZpb3JBbHdheXNTZW5kTW91c2VFdmVudHNUb0FsbFdpbmRvd3NdCiAjZW5kaWYKQEAgLTYzNTQs
NyArNjM1Niw3IEBAIC0gKHZvaWQpYXR0YWNoUm9vdExheWVyOihDQUxheWVyICopbGF5ZXIKICAg
ICBpZiAoW1tzZWxmIF93ZWJWaWV3XSBfcG9zdHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nTm90aWZp
Y2F0aW9uc10pCiAgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
cG9zdE5vdGlmaWNhdGlvbk5hbWU6X1dlYlZpZXdEaWRTdGFydEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdOb3RpZmljYXRpb24gb2JqZWN0OltzZWxmIF93ZWJWaWV3XSB1c2VySW5mbzpuaWxdOwogCi0g
ICAgaWYgKFdLRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVMaW9uKCkpCisgICAgaWYgKCFf
Q0ZFeGVjdXRhYmxlTGlua2VkT25PckFmdGVyKENGU3lzdGVtVmVyc2lvbk1vdW50YWluTGlvbikp
CiAgICAgICAgIFt2aWV3TGF5ZXIgc2V0R2VvbWV0cnlGbGlwcGVkOllFU107CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBhZDI5YTgyMjUyOTg5
YzY2YTY1ZjY1ODk0ZjRlODYxMTM1MTkxYzMwLi40ZThiODIxNjExYjg4OGQ0N2U2MjhkZGVmOWQz
YmViNTk4NTE4ZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCkBAIC0yMDksNiArMjA5LDcgQEAKICNpbXBvcnQgPG1hY2gtby9keWxkLmg+CiAjaW1wb3J0
IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+Cisj
aW1wb3J0IDxwYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL05TVG91Y2hCYXJTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNVUkxGaWxlVHlw
ZU1hcHBpbmdzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1Jlc3BvbmRlclNQSS5oPgpA
QCAtMjYwOSwxNiArMjYxMCwxNiBAQCAtIChpZClfZm9ybURlbGVnYXRlRm9yU2VsZWN0b3I6KFNF
TClzZWxlY3RvcgogI2lmICFQTEFURk9STShJT1MpCiAtIChCT09MKV9uZWVkc0Fkb2JlRnJhbWVS
ZWxvYWRpbmdRdWlyawogewotICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSBXS0FwcFZlcnNp
b25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLkFjcm9iYXQiLCAtMSwgOS4wKQotICAgICAgICB8
fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLkFjcm9iYXQuUHJvIiwgLTEs
IDkuMCkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5S
ZWFkZXIiLCAtMSwgOS4wKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAi
Y29tLmFkb2JlLmRpc3RpbGxlciIsIC0xLCA5LjApCi0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNo
ZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuQ29udHJpYnV0ZSIsIC0xLCA0LjIpCi0gICAgICAgIHx8
IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuZHJlYW13ZWF2ZXItOS4wIiwg
LTEsIDkuMSkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5tYWNy
b21lZGlhLmZpcmV3b3JrcyIsIC0xLCA5LjEpCi0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNr
TGVzc1RoYW4oQCJjb20uYWRvYmUuSW5Db3B5IiwgLTEsIDUuMSkKLSAgICAgICAgfHwgV0tBcHBW
ZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5JbkRlc2lnbiIsIC0xLCA1LjEpCi0gICAg
ICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuU291bmRib290aCIs
IC0xLCAyKTsKKyAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gX0NGQXBwVmVyc2lvbkNoZWNr
TGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5BY3JvYmF0IiksIC0xLCA5LjApCisgICAgICAgIHx8
IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuQWNyb2JhdC5Qcm8i
KSwgLTEsIDkuMCkKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIo
ImNvbS5hZG9iZS5SZWFkZXIiKSwgLTEsIDkuMCkKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lvbkNo
ZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5kaXN0aWxsZXIiKSwgLTEsIDkuMCkKKyAgICAg
ICAgfHwgX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5Db250cmli
dXRlIiksIC0xLCA0LjIpCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENG
U1RSKCJjb20uYWRvYmUuZHJlYW13ZWF2ZXItOS4wIiksIC0xLCA5LjEpCisgICAgICAgIHx8IF9D
RkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20ubWFjcm9tZWRpYS5maXJld29ya3Mi
KSwgLTEsIDkuMSkKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIo
ImNvbS5hZG9iZS5JbkNvcHkiKSwgLTEsIDUuMSkKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lvbkNo
ZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5JbkRlc2lnbiIpLCAtMSwgNS4xKQorICAgICAg
ICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLlNvdW5kYm9v
dGgiKSwgLTEsIDIpOwogCiAgICAgcmV0dXJuIG5lZWRzUXVpcms7CiB9CkBAIC0yNjI2LDEzICsy
NjI3LDEzIEBAIC0gKEJPT0wpX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrCiAtIChCT09M
KV9uZWVkc0xpbmtFbGVtZW50VGV4dENTU1F1aXJrCiB7CiAgICAgc3RhdGljIEJPT0wgbmVlZHNR
dWlyayA9ICFXZWJLaXRMaW5rZWRPbk9yQWZ0ZXIoV0VCS0lUX0ZJUlNUX1ZFUlNJT05fV0lUSE9V
VF9MSU5LX0VMRU1FTlRfVEVYVF9DU1NfUVVJUkspCi0gICAgICAgICYmIFdLQXBwVmVyc2lvbkNo
ZWNrTGVzc1RoYW4oQCJjb20uZS1mcm9udGllci5zaGFkZTEwIiwgLTEsIDEwLjYpOworICAgICAg
ICAmJiBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmUtZnJvbnRpZXIuc2hh
ZGUxMCIpLCAtMSwgMTAuNik7CiAgICAgcmV0dXJuIG5lZWRzUXVpcms7CiB9CiAKIC0gKEJPT0wp
X25lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrCiB7Ci0gICAgc3RhdGljIEJPT0wgbmVlZHNR
dWlyayA9IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYXBwbGUuaUFkUHJvZHVjZXIi
LCAtMSwgMi4xKTsKKyAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gX0NGQXBwVmVyc2lvbkNo
ZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hcHBsZS5pQWRQcm9kdWNlciIpLCAtMSwgMi4xKTsKICAg
ICAKICAgICByZXR1cm4gbmVlZHNRdWlyazsKIH0KQEAgLTI2NDUsNyArMjY0Niw3IEBAIC0gKEJP
T0wpX25lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzCiAKIC0gKEJPT0wpX25l
ZWRzRnJhbWVMb2FkRGVsZWdhdGVSZXRhaW5RdWlyawogewotICAgIHN0YXRpYyBCT09MIG5lZWRz
UXVpcmsgPSBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmVxdWludXguaVNhbGU1Iiwg
LTEsIDUuNik7ICAgIAorICAgIHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSBfQ0ZBcHBWZXJzaW9u
Q2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmVxdWludXguaVNhbGU1IiksIC0xLCA1LjYpOwogICAg
IHJldHVybiBuZWVkc1F1aXJrOwogfQogCkBAIC0yOTI3LDcgKzI5MjgsNyBAQCAtICh2b2lkKV9w
cmVmZXJlbmNlc0NoYW5nZWQ6KFdlYlByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMKICAgICBzZXR0
aW5ncy5zZXROZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayhbc2VsZiBfbmVlZHNBZG9iZUZy
YW1lUmVsb2FkaW5nUXVpcmtdKTsKICAgICBzZXR0aW5ncy5zZXRUcmVhdHNBbnlUZXh0Q1NTTGlu
a0FzU3R5bGVzaGVldChbc2VsZiBfbmVlZHNMaW5rRWxlbWVudFRleHRDU1NRdWlya10pOwogICAg
IHNldHRpbmdzLnNldE5lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzKFtzZWxm
IF9uZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrc10pOwotICAgIHNldHRpbmdz
LnNldEVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlKCFXS0FwcFZlcnNpb25DaGVja0xl
c3NUaGFuKEAiY29tLmFwcGxlLmlXZWIiLCAtMSwgMi4xKSk7CisgICAgc2V0dGluZ3Muc2V0RW5m
b3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUoIV9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFu
KENGU1RSKCJjb20uYXBwbGUuaVdlYiIpLCAtMSwgMi4xKSk7CiAgICAgc2V0dGluZ3Muc2V0TmVl
ZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmsoW3NlbGYgX25lZWRzSXNMb2FkaW5nSW5BUElTZW5z
ZVF1aXJrXSk7CiAgICAgc2V0dGluZ3Muc2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKFtwcmVmZXJl
bmNlcyB0ZXh0QXJlYXNBcmVSZXNpemFibGVdKTsKICAgICBzZXR0aW5ncy5zZXRFeHBlcmltZW50
YWxOb3RpZmljYXRpb25zRW5hYmxlZChbcHJlZmVyZW5jZXMgZXhwZXJpbWVudGFsTm90aWZpY2F0
aW9uc0VuYWJsZWRdKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321016</attachid>
            <date>2017-09-16 15:36:11 -0700</date>
            <delta_ts>2017-09-16 20:29:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177029-20170916153610.patch</filename>
            <type>text/plain</type>
            <size>90284</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRhMDI0YTAxYjFiZjQy
OGFjOWFmNzIwZmJiOGY3NjQyNmRlZGM1OC4uOTE1OWMxYWE3ODFhMDFkMmRiZjEyMjk4MTlkNzFi
ZTk0NWUyOWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcHN0cmVhbSBtaXNj
ZWxsYW5lb3VzIFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzAyOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZzogVXNlZCAtZm9yY2VfbG9hZCBvZiBsaWJQQUwgaW5zdGVhZCBvZiAtT2JqQy4g
VGhpcyBmb3JjZXMKKyAgICAgICAgdGhlIGxpbmtlciB0byBsb2FkIGJvdGggT2JqZWN0aXZlLUMg
YW5kIEMgUEFMIHN5bWJvbHMgaW4gV2ViQ29yZS4gVGhpcyBjaGFuZ2UgaXMgbmVlZGVkIGZvcgor
ICAgICAgICBQQUw6OnBvcFVwTWVudSgpLCB3aGljaCBpcyB1c2VkIGJ5IFdlYktpdCBhbmQgV2Vi
S2l0TGVnYWN5IGJ1dCBub3QgV2ViQ29yZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Mb2Nh
bGl6ZWRTdHJpbmdzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdTZWFyY2hXZWIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIu
bW06CisgICAgICAgIChXZWJDb3JlOjplbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6ZWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKToKKyAgICAgICAgKFdlYkNv
cmU6OnJlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMpOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpXS0NvcmVD
dXJzb3JfY29yZUN1cnNvclR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ29yZUN1cnNv
ckNsYXNzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvcmVDdXJzb3JDbGFzcyk6CisgICAgICAgIChX
ZWJDb3JlOjpjdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yOjplbnN1cmVQbGF0Zm9y
bUN1cnNvciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5t
bToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRUZXh0QXJlYSk6CisKIDIwMTctMDktMTUgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCBj
YWxsaW5nIFN0cmluZzo6Zm9ybWF0KCkgaW4gUGxhdGZvcm1DQUZpbHRlcnM6OnNldEZpbHRlcnNP
bkxheWVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDI1MjNiNjgyMzUwNGVlYzdmNzg3MGEwYTI2
MGQyMzA1MWFlM2JiOTMuLjY1NzgzMDY4MjEwYTI2OGEzNzdkMGRlNDc3ZTVhYTRjYjk1Mjc0YTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE3LTA5LTE1ICBBbmR5IEVz
dGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcHN0cmVhbSBtaXNjZWxs
YW5lb3VzIFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzAyOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogcGFsL1BsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIHBhbC9z
cGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaDoKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0xhdW5jaFNl
cnZpY2VzU1BJLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3Mv
TGF1bmNoU2VydmljZXNTUEkuaC4KKyAgICAgICAgKiBwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJ
Lmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvTlNDZWxsU1BJLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmguCisgICAgICAgICogcGFs
L3NwaS9tYWMvTlNNZW51U1BJLmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvTlNTY3JvbGxWaWV3
U1BJLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0
aWVzU1BJLmguCisgICAgICAgICogcGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oOgorICAg
ICAgICAqIHBhbC9zeXN0ZW0vY2YvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaC4KKyAgICAg
ICAgKFBBTDo6ZGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOgorICAgICAgICAqIHBh
bC9zeXN0ZW0vY2YvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmguCisgICAgICAgICogcGFsL3N5
c3RlbS9tYWMvUG9wdXBNZW51Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NmL0NGVXRpbGl0aWVzU1BJLmguCisgICAgICAgICogcGFsL3N5c3RlbS9tYWMvUG9wdXBN
ZW51Lm1tOiBBZGRlZC4KKyAgICAgICAgKFBBTDo6cG9wVXBNZW51KToKKwogMjAxNy0wOS0xNSAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhl
IG1hY09TIENNYWtlIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE0MDJmMWUzYzg2MzlkYmZkMjJjZDU5Yjhk
NjZjMDE2ODk5NmUwNjEuLjFlOGMzZjVhMTFlOTljNTk5NTlhOTA4YjQ5MGE1MTE5NzE2OTc4ZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTctMDktMTUgIEFuZHkgRXN0ZXMgIDxhZXN0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIFVwc3RyZWFtIG1pc2NlbGxhbmVvdXMgV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NN
YWMubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vz
c05hbWUpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6
CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvbWFjL1N0b3JhZ2VQcm9jZXNzTWFjLm1tOgorICAg
ICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6
OnRyYWNraW5nQXJlYU9wdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWln
aHRCZWdpblNjcm9sbFdoaWxlSW5hY3RpdmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2Vi
UG9wdXBNZW51UHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5
TWFjOjpzaG93UG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBs
dWdpbjo6cG9wVXBDb250ZXh0TWVudSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6aGFuZGxlQ29udGV4
dE1lbnVFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdlcyk6CisKIDIwMTctMDktMTUgIEpG
IEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdURjogdXNlIEZvcndh
cmQuaCB3aGVuIGFwcHJvcHJpYXRlIGluc3RlYWQgb2YgVmVjdG9yLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwppbmRleCA4ZDk4ZDQwMDY2NmJkYTJhOTExNmM0MjQwMmUxMDQ2NDU2MjI4NTA3
Li42NDBiMmQ2OTFmMWFjMWNhYmIzNzk5MmYwMzExYzEzOGIxMjk4YzA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzAgQEAKIDIwMTctMDktMTUgIEFuZHkgRXN0ZXMg
IDxhZXN0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFtNYWNdIFVwc3RyZWFtIG1pc2NlbGxhbmVv
dXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRD
b250ZXh0TWVudURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJEZWZhdWx0VUlEZWxlZ2F0ZSBt
ZW51SXRlbVdpdGhUYWc6dGFyZ2V0OnJlcHJlc2VudGVkT2JqZWN0Ol0pOgorICAgICAgICAqIFBs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbToKKyAgICAgICAgKFBvcHVwTWVu
dU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNl
Lm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOgorICAgICAgICAqIFdl
YlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNldERhdGFTb3Vy
Y2U6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0dGFjaFJvb3RMYXllcjpdKToKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX25lZWRzQWRvYmVG
cmFtZVJlbG9hZGluZ1F1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX25lZWRzTGlua0VsZW1l
bnRUZXh0Q1NTUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNJc0xvYWRpbmdJbkFQ
SVNlbnNlUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNGcmFtZUxvYWREZWxlZ2F0
ZVJldGFpblF1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpd
KToKKworMjAxNy0wOS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKICAgICAg
ICAgW0NvY29hXSBVcHN0cmVhbSBNZWRpYVJlbW90ZSBhbmQgVmlkZW9Ub29sYm94IFdlYktpdFN5
c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3Njk1MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25m
aWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlv
bnMvV2ViQ29yZS54Y2NvbmZpZwppbmRleCA3NjY2N2JhZTc0MDQ3MWQ3NDVhOTUxMjIwNWViMWNm
NDlkN2EzMjM1Li5iMDNkZDRjZThhMjM2YjczZTg4OThlN2Y5ZGJkMzhmNWZhY2M4MmM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKQEAgLTc3
LDcgKzc3LDcgQEAgTElCV0VCUlRDX0xJQlJBUllfRElSX1VTRV9PVkVSUklERV9GUkFNRVdPUktT
X0RJUl9OTyA9ICQoV0VCQ09SRV9GUkFNRVdPUktTX0RJUikKIExJQldFQlJUQ19MSUJSQVJZX0RJ
Ul9VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfWUVTID0gJChXS19PVkVSUklERV9GUkFNRVdP
UktTX0RJUik7CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19SRUxPQ0FUQUJM
RV9GUkFNRVdPUktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9MU19MREZMQUdTKSAkKE9U
SEVSX0xERkxBR1NfUExBVEZPUk0pOwotT1RIRVJfTERGTEFHU19CQVNFID0gLWxzcWxpdGUzIC1s
b2JqYyAtbEFOR0xFIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgTWV0YWwgLWFsbG93
YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVfY2xpZW50IFdlYktpdExl
Z2FjeSAtT2JqQzsKK09USEVSX0xERkxBR1NfQkFTRSA9IC1sc3FsaXRlMyAtbG9iamMgLWxBTkdM
RSAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIE1ldGFsIC1hbGxvd2FibGVfY2xpZW50
IFdlYkNvcmVUZXN0U3VwcG9ydCAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRMZWdhY3kgLWZvcmNl
X2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlBBTC5hOwogLy8gRklYTUU6IFJlZHVjZSB0
aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnQgPHJkYXI6Ly9wcm9ibGVtLzMxODIzOTY5Pgog
T1RIRVJfTERGTEFHU19CQVNFX2lvcyA9ICQoT1RIRVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3Jr
IENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1m
cmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBNb2JpbGVD
b3JlU2VydmljZXMgLWZyYW1ld29yayBPcGVuR0xFUyAtbE1vYmlsZUdlc3RhbHQgJChXS19JT1Nf
QklOQ09NUEFUX0xERkxBR1MpIC1hbGxvd2FibGVfY2xpZW50IFdlYktpdCAtYWxsb3dhYmxlX2Ns
aWVudCBpVHVuZXNVIC1hbGxvd2FibGVfY2xpZW50IENhc2FibGFuY2EgLWFsbG93YWJsZV9jbGll
bnQgUmVtb3RlIC1hbGxvd2FibGVfY2xpZW50IFRWQm9va3MgLWFsbG93YWJsZV9jbGllbnQgRHVt
cFJlbmRlclRyZWUgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0VGVzdFJ1bm5lciAtYWxsb3dhYmxl
X2NsaWVudCBUZXN0V2ViS2l0QVBJOwogT1RIRVJfTERGTEFHU19QTEFURk9STVtzZGs9aXBob25l
b3MqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZy
YW1ld29yayBHcmFwaGljc1NlcnZpY2VzICQoTElCV0VCUlRDX0xERkxBR1MpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNhYjE0
Y2Q0YTdmZGIxYjdlZjRlYjg1NWRkYTlhZWFkNWVhOGM0OWIuLmYzM2M4ZDE5NmYwYzZmZjJmZDVi
OTBhODExMzA0ZTA0YzkwZDFhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNyw2ICsxMDcsMTIgQEAKIAkJQTEwODI2RkEx
RjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVs
Lm1tICovOyB9OwogCQlBMTA4MjZGRTFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFwaGljc1NQSS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RkQx
RjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCAqLzsgfTsKIAkJQTExNzVCNDkxRjZB
RkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNDgxRjZBRkY4RTAwQzRCOUYwIC8qIFNw
ZWVjaFN5bnRoZXNpc1NQSS5oICovOyB9OworCQlBMTE3NUI0QjFGNkIyRDdFMDBDNEI5RjAgLyog
TlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggKi87IH07CisJCUExMTc1
QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1
cE1lbnUuaCAqLzsgfTsKKwkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRE
MUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gKi87IH07CisJCUExMTc1QjU3MUY2QjQ3
MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjU1MUY2QjQ3MDUwMEM0QjlGMCAvKiBE
ZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCAqLzsgfTsKKwkJQTExNzVCNTgxRjZCNDcwNTAwQzRCOUYw
IC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI1NjFGNkI0NzA1MDBDNEI5RjAgLyogRGVmYXVsdFNl
YXJjaFByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJQTExNzVCNUExRjZCNEE4NDAwQzRCOUYwIC8qIE5T
U2Nyb2xsVmlld1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oICovOyB9
OwogCQlBMUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1RENFMUY1NTI4RUMwMEVE
Qjc1RiAvKiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFGMEREMEVBMDBCNzE5NTQg
LyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9OwogCQlBMzBE
NDEyMjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMUYxRjBERDBFQTAwQjcxOTU0IC8qIEtp
bGxSaW5nLmNwcCAqLzsgfTsKQEAgLTIyOSw2ICsyMzUsMTIgQEAKIAkJQTEwODI2RjgxRjU3NjI5
MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUGFuZWwu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMDgyNkZEMUY1OEE0MzMwMDQ3NzJB
QyAvKiBOU0dyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TR3JhcGhpY3NTUEkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNzVCNDgxRjZBRkY4RTAwQzRCOUYwIC8qIFNw
ZWVjaFN5bnRoZXNpc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hTeW50aGVzaXNTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEExRjZCMkQ3RTAwQzRCOUYwIC8q
IE5TQ2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0NlbGxTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEMxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFBvcHVwTWVudS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVC
NTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBMTE3NUI1OTFGNkI0QTg0MDBDNEI5RjAgLyogTlNTY3JvbGxW
aWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TU2Nyb2xsVmlld1NQSS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWV0YWRhdGFTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLaWxsUmluZy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zMDcsNiArMzE5LDcgQEAKIAkJCQkwQzJEQTEyODFGM0JFQjQ5MDBE
QkMzMTcgLyogSU9SZXR1cm5TUEkuaCAqLywKIAkJCQkwQzJEQTEyOTFGM0JFQjQ5MDBEQkMzMTcg
LyogSU9TdXJmYWNlU1BJLmggKi8sCiAJCQkJMEMyREExMkExRjNCRUI0OTAwREJDMzE3IC8qIElP
VHlwZXNTUEkuaCAqLywKKwkJCQkwQzVBRjkxMjFGNDNBNEM3MDAyRUFDMDIgLyogTGF1bmNoU2Vy
dmljZXNTUEkuaCAqLywKIAkJCQkwQzJEQTEyQjFGM0JFQjQ5MDBEQkMzMTcgLyogTGlua1ByZXNl
bnRhdGlvblNQSS5oICovLAogCQkJCTBDMkRBMTJDMUYzQkVCNDkwMERCQzMxNyAvKiBNYWNoVk1T
UEkuaCAqLywKIAkJCQkwQzJEQTEyRDFGM0JFQjQ5MDBEQkMzMTcgLyogTkVGaWx0ZXJTb3VyY2VT
UEkuaCAqLywKQEAgLTMzNiw3ICszNDksNiBAQAogCQkJCTBDNUFGOTBGMUY0M0E0QzcwMDJFQUMw
MiAvKiBDb3JlVUlTUEkuaCAqLywKIAkJCQkwQzVBRjkxMDFGNDNBNEM3MDAyRUFDMDIgLyogRGF0
YURldGVjdG9yc1VJU1BJLmggKi8sCiAJCQkJMEM1QUY5MTExRjQzQTRDNzAwMkVBQzAyIC8qIEdy
YXBoaWNzU2VydmljZXNTUEkuaCAqLywKLQkJCQkwQzVBRjkxMjFGNDNBNEM3MDAyRUFDMDIgLyog
TGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzVBRjkxMzFGNDNBNEM3MDAyRUFDMDIgLyog
TWVkaWFQbGF5ZXJTUEkuaCAqLywKIAkJCQkwQzVBRjkxNDFGNDNBNEM3MDAyRUFDMDIgLyogTW9i
aWxlR2VzdGFsdFNQSS5oICovLAogCQkJCTBDNUFGOTE1MUY0M0E0QzcwMDJFQUMwMiAvKiBPcGVu
R0xFU1NQSS5oICovLApAQCAtMzU5LDYgKzM3MSw3IEBACiAJCQkJQTFGNTVEQ0UxRjU1MjhFQzAw
RURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzQxRjQ1MTMwRjAwRjRFQkI2
IC8qIE5TQWNjZXNzaWJpbGl0eVNQSS5oICovLAogCQkJCTBDNzc4NTc1MUY0NTEzMEYwMEY0RUJC
NiAvKiBOU0FwcGxpY2F0aW9uU1BJLmggKi8sCisJCQkJQTExNzVCNEExRjZCMkQ3RTAwQzRCOUYw
IC8qIE5TQ2VsbFNQSS5oICovLAogCQkJCTBDNzc4NTc2MUY0NTEzMEYwMEY0RUJCNiAvKiBOU0V2
ZW50U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzcxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TRm9udFNQSS5o
ICovLAogCQkJCUExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi8s
CkBAIC0zNzAsNiArMzgzLDcgQEAKIAkJCQkwQzc3ODU3QzFGNDUxMzBGMDBGNEVCQjYgLyogTlNT
Y3JvbGxlckltcFNQSS5oICovLAogCQkJCTBDNzc4NTdEMUY0NTEzMEYwMEY0RUJCNiAvKiBOU1Nj
cm9sbGluZ0lucHV0RmlsdGVyU1BJLmggKi8sCiAJCQkJMEM3Nzg1N0UxRjQ1MTMwRjAwRjRFQkI2
IC8qIE5TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yU1BJLmggKi8sCisJCQkJQTExNzVCNTkx
RjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oICovLAogCQkJCTBDNzc4NTdGMUY0
NTEzMEYwMEY0RUJCNiAvKiBOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggKi8sCiAJCQkJMEM3
Nzg1ODAxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2hhcmluZ1NlcnZpY2VTUEkuaCAqLywKIAkJCQkw
Qzc3ODU4MTFGNDUxMzBGMDBGNEVCQjYgLyogTlNTcGVsbENoZWNrZXJTUEkuaCAqLywKQEAgLTQ4
Niw2ICs1MDAsMTAgQEAKIAkJQTM3ODhFQTAxRjA1QjdFMjAwNjc5NDI1IC8qIG1hYyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQTExNzVCNTYxRjZCNDcw
NTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgKi8sCisJCQkJQTExNzVCNTUx
RjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICovLAorCQkJCUExMTc1
QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLywKKwkJCQlBMTE3NUI0RDFGNkIz
MzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tICovLAogCQkJCUEzNzg4RTlEMUYwNUI3OEUwMDY3
OTQyNSAvKiBTb3VuZE1hYy5tbSAqLywKIAkJCQlBM0FCNkU2MjFGM0QyMTdGMDA5QzE0QjEgLyog
U3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oICovLAogCQkJCUEzQUI2RTYzMUYzRDIxN0YwMDlDMTRC
MSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tICovLApAQCAtNTI4LDYgKzU0Niw3IEBACiAJ
CQkJMEMyREExNDExRjNCRUI0OTAwREJDMzE3IC8qIERhdGFEZXRlY3RvcnNDb3JlU1BJLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVCQjYgLyogRGF0YURldGVjdG9y
c1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUExRjQzQTRDNzAwMkVBQzAyIC8qIERh
dGFEZXRlY3RvcnNVSVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTExNzVCNTcxRjZCNDcwNTAw
QzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMy
RDlFNzMxRUVGNUFGNjAwREJDMzE3IC8qIEV4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTEwMjY1ODcxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5kYXRpb25TUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBDNUFGOTFCMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFwaGljc1NlcnZpY2VzU1BJ
LmggaW4gSGVhZGVycyAqLywKQEAgLTU1Niw2ICs1NzUsNyBAQAogCQkJCTBDMkRBMTRBMUYzQkVC
NDkwMERCQzMxNyAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBDMkRBMTRCMUYzQkVCNDkwMERCQzMxNyAvKiBOU0J1dHRvbkNlbGxTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBDMkRBMTRDMUYzQkVCNDkwMERCQzMxNyAvKiBOU0NhbGVuZGFyRGF0ZVNQSS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQTExNzVCNEIxRjZCMkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQ
SS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNEQxRjNCRUI0OTAwREJDMzE3IC8qIE5TQ29s
b3JTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThGMUY0NTEzMEYwMEY0RUJCNiAvKiBO
U0V2ZW50U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0RTFGM0JFQjQ5MDBEQkMzMTcg
LyogTlNFeHRlbnNpb25TUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTcwLDYgKzU5MCw3IEBACiAJ
CQkJMEM3Nzg1OTUxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsZXJJbXBTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBDNzc4NTk2MUY0NTEzMEYwMEY0RUJCNiAvKiBOU1Njcm9sbGluZ0lucHV0
RmlsdGVyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5NzFGNDUxMzBGMDBGNEVCQjYg
LyogTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUExMTc1QjVBMUY2QjRBODQwMEM0QjlGMCAvKiBOU1Njcm9sbFZpZXdTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBDNzc4NTk4MUY0NTEzMEYwMEY0RUJCNiAvKiBOU1NoYXJpbmdTZXJ2aWNlUGlj
a2VyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5OTFGNDUxMzBGMDBGNEVCQjYgLyog
TlNTaGFyaW5nU2VydmljZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM3Nzg1OUExRjQ1MTMw
RjAwRjRFQkI2IC8qIE5TU3BlbGxDaGVja2VyU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTU4NCw2
ICs2MDUsNyBAQAogCQkJCTBDNUFGOTFGMUY0M0E0QzcwMDJFQUMwMiAvKiBPcGVuR0xFU1NQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNTUxRjNCRUI0OTAwREJDMzE3IC8qIFBhc3NLaXRT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTlFMUY0NTEzMEYwMEY0RUJCNiAvKiBQSVBT
UEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMTc1QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1
cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU2MUYzQkVCNDkwMERCQzMxNyAvKiBw
dGhyZWFkU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5RjFGNDUxMzBGMDBGNEVCQjYg
LyogUVRLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU3MUYzQkVCNDkwMERCQzMx
NyAvKiBRdWFydHpDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTY5Miw4ICs3MTQsMTAgQEAK
IAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQkxQzA5
RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUExMTc1QjU4MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNo
UHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTMwRDQxMjIxRjBERDBFQTAwQjcxOTU0
IC8qIEtpbGxSaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0MTI1MUYwREQxMkQwMEI3
MTk1NCAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUExMTc1QjRGMUY2QjMz
NzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gaW4gU291cmNlcyAqLywKIAkJCQlBM0M2NkNEQzFG
NDYyRDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzQUI2
RTUyMUYzRDFEQzUwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUEzQUI2RTYwMUYzRDFFMzkwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyQ29jb2EuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3Jt
TWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybU1hYy5jbWFrZQppbmRl
eCBkODczZDcyMjk3MTZlZGYzMzRkZjRiNTEwMGRiNmVhMzViYzgyZjZiLi45ZDU3ZmY3ODRmYzFk
ZDExNDkzNjIzZDY1MzZmYzM4YmY3NTc2YjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxh
dGZvcm1NYWMuY21ha2UKQEAgLTMsNiArMyw4IEBAIGxpc3QoQVBQRU5EIFBBTF9TT1VSQ0VTCiAK
ICAgICBzeXN0ZW0vY29jb2EvU2xlZXBEaXNhYmxlckNvY29hLmNwcAogCisgICAgc3lzdGVtL21h
Yy9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwCisgICAgc3lzdGVtL21hYy9Qb3B1cE1lbnUubW0K
ICAgICBzeXN0ZW0vbWFjL1NvdW5kTWFjLm1tCiAgICAgc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExp
c3RlbmVyTWFjLm1tCiAgICAgc3lzdGVtL21hYy9XZWJQYW5lbC5tbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmgKaW5kZXggZmM4Y2Q3OTI3NjJiZjBh
NzYyMGExMmFjZjEyMGZhMzA5YTM3OGZmYy4uMjQ1OTg3Y2Q4MjE4NGUyOTlmZjk2ZTNmNGFjYzFi
MjEwMTBiOTc4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZV
dGlsaXRpZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxp
dGllc1NQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI4LDcgKzI4LDE2IEBACiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZv
dW5kYXRpb24uaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKICNpbXBvcnQgPENv
cmVGb3VuZGF0aW9uL0NGUHJpdi5oPgorCisjZWxzZQorCit0eXBlZGVmIENGX0VOVU0oQ0ZJbmRl
eCwgQ0ZTeXN0ZW1WZXJzaW9uKSB7CisgICAgQ0ZTeXN0ZW1WZXJzaW9uTGlvbiA9IDcsCisgICAg
Q0ZTeXN0ZW1WZXJzaW9uTW91bnRhaW5MaW9uID0gOCwKK307CisKICNlbmRpZgogCiBXVEZfRVhU
RVJOX0NfQkVHSU4KQEAgLTM3LDUgKzQ2LDEyIEBAIENGRGljdGlvbmFyeVJlZiBfQ0ZDb3B5U3lz
dGVtVmVyc2lvbkRpY3Rpb25hcnkodm9pZCk7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYgX2tD
RlN5c3RlbVZlcnNpb25Qcm9kdWN0VmVyc2lvbktleTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1Jl
ZiBfa0NGU3lzdGVtVmVyc2lvbkJ1aWxkVmVyc2lvbktleTsKIAorQ0ZEaWN0aW9uYXJ5UmVmIF9D
RldlYlNlcnZpY2VzQ29weVByb3ZpZGVySW5mbyhDRlN0cmluZ1JlZiBzZXJ2aWNlVHlwZSwgQm9v
bGVhbiogb3V0SXNVc2VyU2VsZWN0aW9uKTsKK2V4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ0ZX
ZWJTZXJ2aWNlc1R5cGVXZWJTZWFyY2g7CitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NGV2Vi
U2VydmljZXNQcm92aWRlckRlZmF1bHREaXNwbGF5TmFtZUtleTsKKworQm9vbGVhbiBfQ0ZBcHBW
ZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlN0cmluZ1JlZiBidW5kbGVJRCwgaW50IGxpbmtlZE9uQW5P
bGRlclN5c3RlbVRoYW4sIGRvdWJsZSB2ZXJzaW9uTnVtYmVyTGVzc1RoYW4pOworQm9vbGVhbiBf
Q0ZFeGVjdXRhYmxlTGlua2VkT25PckFmdGVyKENGU3lzdGVtVmVyc2lvbik7CisKIFdURl9FWFRF
Uk5fQ19FTkQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
TGF1bmNoU2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0xh
dW5jaFNlcnZpY2VzU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU3NjBmYzY0NTVmYWRmMjYwZTRiMmMyYjVi
ZTYyMmEwNDFkZDY4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmgKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5o
PgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2lmIFBMQVRGT1JNKE1BQykKKyNp
bXBvcnQgPExhdW5jaFNlcnZpY2VzL0xhdW5jaFNlcnZpY2VzUHJpdi5oPgorI2VsaWYgUExBVEZP
Uk0oSU9TKQorI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL0xhdW5jaFNlcnZpY2VzUHJpdi5o
PgorI2VuZGlmCisKKyNlbmRpZgorCitAY2xhc3MgTFNBcHBMaW5rOwordHlwZWRlZiB2b2lkIChe
TFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpKExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAq
ZXJyb3IpOwordHlwZWRlZiB2b2lkICheTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKShC
T09MIHN1Y2Nlc3MsIE5TRXJyb3IgKmVycm9yKTsKKworI2lmICFVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQorCitAaW50ZXJmYWNlIExTUmVzb3VyY2VQcm94eSA6IE5TT2JqZWN0IDxOU0NvcHlpbmcs
IE5TU2VjdXJlQ29kaW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExTQnVuZGxlUHJveHkgOiBMU1Jl
c291cmNlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExTQXBwbGlj
YXRpb25Qcm94eSA6IExTQnVuZGxlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgorLSAoTlNTdHJpbmcg
Kilsb2NhbGl6ZWROYW1lRm9yQ29udGV4dDooTlNTdHJpbmcgKiljb250ZXh0OworQGVuZAorCitA
aW50ZXJmYWNlIExTQXBwTGluayA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KK0BlbmQKKwor
QGludGVyZmFjZSBMU0FwcExpbmsgKCkKKysgKHZvaWQpZ2V0QXBwTGlua1dpdGhVUkw6KE5TVVJM
ICopYVVSTCBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpY29t
cGxldGlvbkhhbmRsZXI7CisrICh2b2lkKW9wZW5XaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxl
dGlvbkhhbmRsZXI6KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFu
ZGxlcjsKKy0gKHZvaWQpb3BlbkluV2ViQnJvd3NlcjooQk9PTClpbldlYkJyb3dzZXIgc2V0QXBw
cm9wcmlhdGVPcGVuU3RyYXRlZ3lBbmRXZWJCcm93c2VyU3RhdGU6KE5TRGljdGlvbmFyeTxOU1N0
cmluZyAqLCBpZD4gKilzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBs
ZXRpb25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ry
b25nKSBMU0FwcGxpY2F0aW9uUHJveHkgKnRhcmdldEFwcGxpY2F0aW9uUHJveHk7CitAZW5kCisK
K2VudW0gTFNTZXNzaW9uSUQgeworICAgIGtMU0RlZmF1bHRTZXNzaW9uSUQgPSAtMiwKK307CisK
KyNlbmRpZgorCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBDRl9CUklER0VEX1RZUEUoaWQpIF9fTFNB
U04qIExTQVNOUmVmOwordHlwZWRlZiBlbnVtIExTU2Vzc2lvbklEIExTU2Vzc2lvbklEOworCitX
VEZfRVhURVJOX0NfQkVHSU4KKworT1NTdGF0dXMgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlv
bkl0ZW0oTFNTZXNzaW9uSUQsIExTQVNOUmVmLCBDRlN0cmluZ1JlZiBrZXlUb1NldFJlZiwgQ0ZU
eXBlUmVmIHZhbHVlVG9TZXRSZWYsIENGRGljdGlvbmFyeVJlZiogbmV3SW5mb3JtYXRpb25EaWN0
UmVmKTsKK0xTQVNOUmVmIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpOworCitleHRlcm4g
Y29uc3QgQ0ZTdHJpbmdSZWYgX2tMU0Rpc3BsYXlOYW1lS2V5OworCitXVEZfRVhURVJOX0NfRU5E
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTGF1bmNoU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQ
SS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNmE4YjJlNGZjYmVlMTUxMWU4YzBj
NDNiN2FiZDU3ODUyMjgxODIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQ
SS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KLQotI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCi0KLSNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9MU0FwcExpbmtQ
cml2Lmg+Ci0KLSNlbmRpZgotCi1AY2xhc3MgTFNBcHBMaW5rOwotdHlwZWRlZiB2b2lkICheTFNB
cHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpKExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAqZXJy
b3IpOwotdHlwZWRlZiB2b2lkICheTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKShCT09M
IHN1Y2Nlc3MsIE5TRXJyb3IgKmVycm9yKTsKLQotI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQotCi1AaW50ZXJmYWNlIExTUmVzb3VyY2VQcm94eSA6IE5TT2JqZWN0IDxOU0NvcHlpbmcsIE5T
U2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50ZXJmYWNlIExTQnVuZGxlUHJveHkgOiBMU1Jlc291
cmNlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgotQGVuZAotCi1AaW50ZXJmYWNlIExTQXBwbGljYXRp
b25Qcm94eSA6IExTQnVuZGxlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgotLSAoTlNTdHJpbmcgKils
b2NhbGl6ZWROYW1lRm9yQ29udGV4dDooTlNTdHJpbmcgKiljb250ZXh0OwotQGVuZAotCi1AaW50
ZXJmYWNlIExTQXBwTGluayA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KLUBlbmQKLQotQGlu
dGVyZmFjZSBMU0FwcExpbmsgKCkKLSsgKHZvaWQpZ2V0QXBwTGlua1dpdGhVUkw6KE5TVVJMICop
YVVSTCBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpY29tcGxl
dGlvbkhhbmRsZXI7Ci0rICh2b2lkKW9wZW5XaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxldGlv
bkhhbmRsZXI6KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxl
cjsKLS0gKHZvaWQpb3BlbkluV2ViQnJvd3NlcjooQk9PTClpbldlYkJyb3dzZXIgc2V0QXBwcm9w
cmlhdGVPcGVuU3RyYXRlZ3lBbmRXZWJCcm93c2VyU3RhdGU6KE5TRGljdGlvbmFyeTxOU1N0cmlu
ZyAqLCBpZD4gKilzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBsZXRp
b25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyOwotQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25n
KSBMU0FwcGxpY2F0aW9uUHJveHkgKnRhcmdldEFwcGxpY2F0aW9uUHJveHk7Ci1AZW5kCi0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmgK
aW5kZXggYTM1NWI5NGZlNjMwOTJlZjVhY2QwYjVjOTVlMDNkZDQ2ZTk1MzgxNS4uN2RlZGEyZjNj
N2EyNzU5NjEwNzAxZTQ0ZDgxZjE1MjFmZmRjM2RmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oCkBAIC0yNSwxMyArMjUsNjQgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgorCiAj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2luY2x1ZGUgPEhJU2VydmljZXMvQVhUZXh0
TWFya2VyLmg+CisjaW5jbHVkZSA8SElTZXJ2aWNlcy9Db3JlQ3Vyc29yLmg+CiAjaW5jbHVkZSA8
SElTZXJ2aWNlcy9Db3JlRHJhZy5oPgogCiAjZWxzZQogCit0eXBlZGVmIENGX0VOVU0oU0ludDMy
LCBDb3JlQ3Vyc29yVHlwZSkgeworICAgIGtDb3JlQ3Vyc29yRmlyc3RDdXJzb3IgPSAwLAorICAg
IGtDb3JlQ3Vyc29yQXJyb3cgPSBrQ29yZUN1cnNvckZpcnN0Q3Vyc29yLAorICAgIGtDb3JlQ3Vy
c29ySUJlYW0sCisgICAga0NvcmVDdXJzb3JNYWtlQWxpYXMsCisgICAga0NvcmVDdXJzb3JOb3RB
bGxvd2VkLAorICAgIGtDb3JlQ3Vyc29yQnVzeUJ1dENsaWNrYWJsZSwKKyAgICBrQ29yZUN1cnNv
ckNvcHksCisgICAga0NvcmVDdXJzb3JTY3JlZW5TaG90U2VsZWN0aW9uID0gNywKKyAgICBrQ29y
ZUN1cnNvclNjcmVlblNob3RTZWxlY3Rpb25Ub0NsaXAsCisgICAga0NvcmVDdXJzb3JTY3JlZW5T
aG90V2luZG93LAorICAgIGtDb3JlQ3Vyc29yU2NyZWVuU2hvdFdpbmRvd1RvQ2xpcCwKKyAgICBr
Q29yZUN1cnNvckNsb3NlZEhhbmQsCisgICAga0NvcmVDdXJzb3JPcGVuSGFuZCwKKyAgICBrQ29y
ZUN1cnNvclBvaW50aW5nSGFuZCwKKyAgICBrQ29yZUN1cnNvckNvdW50aW5nVXBIYW5kLAorICAg
IGtDb3JlQ3Vyc29yQ291bnRpbmdEb3duSGFuZCwKKyAgICBrQ29yZUN1cnNvckNvdW50aW5nVXBB
bmREb3duSGFuZCwKKyAgICBrQ29yZUN1cnNvclJlc2l6ZUxlZnQsCisgICAga0NvcmVDdXJzb3JS
ZXNpemVSaWdodCwKKyAgICBrQ29yZUN1cnNvclJlc2l6ZUxlZnRSaWdodCwKKyAgICBrQ29yZUN1
cnNvckNyb3NzLAorICAgIGtDb3JlQ3Vyc29yUmVzaXplVXAsCisgICAga0NvcmVDdXJzb3JSZXNp
emVEb3duLAorICAgIGtDb3JlQ3Vyc29yUmVzaXplVXBEb3duLAorICAgIGtDb3JlQ3Vyc29yQ29u
dGV4dHVhbE1lbnUsCisgICAga0NvcmVDdXJzb3JQb29mLAorICAgIGtDb3JlQ3Vyc29ySUJlYW1W
ZXJ0aWNhbCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZUVhc3QsCisgICAga0NvcmVDdXJz
b3JXaW5kb3dSZXNpemVFYXN0V2VzdCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRo
RWFzdCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoRWFzdFNvdXRoV2VzdCwKKyAg
ICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVz
aXplTm9ydGhTb3V0aCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoV2VzdCwKKyAg
ICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoV2VzdFNvdXRoRWFzdCwKKyAgICBrQ29yZUN1
cnNvcldpbmRvd1Jlc2l6ZVNvdXRoRWFzdCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZVNv
dXRoLAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291dGhXZXN0LAorICAgIGtDb3JlQ3Vy
c29yV2luZG93UmVzaXplV2VzdCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd01vdmUsCisgICAga0Nv
cmVDdXJzb3JIZWxwLAorICAgIGtDb3JlQ3Vyc29yQ2VsbCwKKyAgICBrQ29yZUN1cnNvclpvb21J
biwKKyAgICBrQ29yZUN1cnNvclpvb21PdXQsCisgICAga0NvcmVDdXJzb3JMYXN0Q3Vyc29yID0g
a0NvcmVDdXJzb3Jab29tT3V0Cit9OworCiBlbnVtIHsKICAgICBrQ29yZURyYWdJbWFnZVNwZWNW
ZXJzaW9uT25lID0gMSwKIH07CkBAIC01NSw2ICsxMDYsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBfX0FYVGV4dE1hcmtlciogQVhUZXh0TWFya2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
X19BWFRleHRNYXJrZXJSYW5nZSogQVhUZXh0TWFya2VyUmFuZ2VSZWY7CiB0eXBlZGVmIHN0cnVj
dCBDb3JlRHJhZ0ltYWdlU3BlYyBDb3JlRHJhZ0ltYWdlU3BlYzsKIHR5cGVkZWYgc3RydWN0IE9w
YXF1ZUNvcmVEcmFnKiBDb3JlRHJhZ1JlZjsKK3R5cGVkZWYgVUludDMyIE1TSENyZWF0ZU9wdGlv
bnM7CiAKIFdURl9FWFRFUk5fQ19CRUdJTgogCkBAIC02OCw1ICsxMjAsNiBAQCBDRlR5cGVJRCBB
WFRleHRNYXJrZXJSYW5nZUdldFR5cGVJRCgpOwogQ29yZURyYWdSZWYgQ29yZURyYWdHZXRDdXJy
ZW50RHJhZygpOwogT1NTdGF0dXMgQ29yZURyYWdTZXRJbWFnZShDb3JlRHJhZ1JlZiwgQ0dQb2lu
dCBpbWFnZU9mZnNldCwgQ29yZURyYWdJbWFnZVNwZWMqLCBDR1NSZWdpb25PYmogaW1hZ2VTaGFw
ZSwgZmxvYXQgb3ZlcmFsbEFscGhhKTsKIGNvbnN0IFVJbnQ4KiBBWFRleHRNYXJrZXJHZXRCeXRl
UHRyKEFYVGV4dE1hcmtlclJlZik7CitDRlJ1bkxvb3BTb3VyY2VSZWYgTVNIQ3JlYXRlTUlHU2Vy
dmVyU291cmNlKENGQWxsb2NhdG9yUmVmLCBDRkluZGV4IG9yZGVyLCBtaWdfc3Vic3lzdGVtX3Qg
c3ViX3N5c3RlbSwgTVNIQ3JlYXRlT3B0aW9ucywgbWFjaF9wb3J0X3QsIHZvaWQqIHVzZXJfZGF0
YSk7CiAKIFdURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL21hYy9OU0NlbGxTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9O
U0NlbGxTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTMzZGEzZDNkZmJiYTdjYjA2M2Y2MGVkNDc5MTAxZTg2
NjkzODY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFj
L05TQ2VsbFNQSS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEFwcEtpdC9OU0NlbGxf
UHJpdmF0ZS5oPgorCisjZW5kaWYKKworV1RGX0VYVEVSTl9DX0JFR0lOCisKK3ZvaWQgX05TRHJh
d0NhcmJvblRoZW1lTGlzdEJveChOU1JlY3QsIEJPT0wgZW5hYmxlZCwgQk9PTCBmbGlwcGVkLCBC
T09MIHRleHR1cmVkKTsKKworV1RGX0VYVEVSTl9DX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvbWFjL05TTWVudVNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvbWFjL05TTWVudVNQSS5oCmluZGV4IDFmNWU3YmM2NmEwMDMyMTk0ODIyMDRjNDgxOTk0
MWVkM2I0ZmE1ZmYuLjUwZDUwOWM1MDUzYTgyY2U3MDljNjI3OTEyNDA5ZGRlYjc0OGYzYWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU01lbnVTUEkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNNZW51U1BJLmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNyArMjksOSBA
QAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorV1RGX0VYVEVSTl9DX0JFR0lOCiAj
aW1wb3J0IDxBcHBLaXQvTlNNZW51X1ByaXZhdGUuaD4KK1dURl9FWFRFUk5fQ19FTkQKIAogI2Vs
c2UKIApAQCAtMzgsNiArNDAsMTcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTlNNZW51
VHlwZSkgewogICAgIE5TTWVudVR5cGVDb250ZXh0TWVudSwKIH07CiAKK2VudW0geworICAgIE5T
UG9wVXBNZW51VHlwZUdlbmVyaWMsCisgICAgTlNQb3BVcE1lbnVUeXBlUG9wVXAsCisgICAgTlNQ
b3BVcE1lbnVUeXBlUHVsbHNEb3duLAorICAgIE5TUG9wVXBNZW51VHlwZU1haW5NZW51LAorICAg
IE5TUG9wVXBNZW51VHlwZUNvbnRleHQsCisgICAgTlNQb3BVcE1lbnVEZWZhdWx0VG9Qb3BVcENv
bnRyb2xGb250ID0gMHgxMCwKKyAgICBOU1BvcFVwTWVudVBvc2l0aW9uUmVsYXRpdmVUb1JpZ2h0
RWRnZSA9IDB4MjAsCisgICAgTlNQb3BVcE1lbnVJc1BvcHVwQnV0dG9uID0gMHg0MCwKK307CisK
IEBpbnRlcmZhY2UgTlNNZW51ICgpCiArIChOU01lbnVUeXBlKW1lbnVUeXBlRm9yRXZlbnQ6KE5T
RXZlbnQgKilldmVudDsKIEBlbmQKQEAgLTU2LDQgKzY5LDE3IEBAIHR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIE5TTWVudVR5cGUpIHsKIAogI2VuZGlmCiAKLSNlbmRpZgordHlwZWRlZiBOU1VJ
bnRlZ2VyIE5TUG9wVXBNZW51RmxhZ3M7CisKK1dURl9FWFRFUk5fQ19CRUdJTgorCitleHRlcm4g
TlNTdHJpbmcgKiBjb25zdCBOU1BvcFVwTWVudVBvcHVwQnV0dG9uQm91bmRzOworZXh0ZXJuIE5T
U3RyaW5nICogY29uc3QgTlNQb3BVcE1lbnVQb3B1cEJ1dHRvbkxhYmVsT2Zmc2V0OworZXh0ZXJu
IE5TU3RyaW5nICogY29uc3QgTlNQb3BVcE1lbnVQb3B1cEJ1dHRvblNpemU7CitleHRlcm4gTlNT
dHJpbmcgKiBjb25zdCBOU1BvcFVwTWVudVBvcHVwQnV0dG9uV2lkZ2V0OworCit2b2lkIF9OU1Bv
cFVwQ2FyYm9uTWVudTMoTlNNZW51ICosIE5TV2luZG93ICosIE5TVmlldyAqb3duZXJWaWV3LCBO
U1BvaW50IHNjcmVlblBvaW50LCBOU0ludGVnZXIgY2hlY2tlZEl0ZW0sIE5TRm9udCAqLCBDR0Zs
b2F0IG1pbldpZHRoLCBOU1N0cmluZyAqcnVuTG9vcE1vZGUsIE5TUG9wVXBNZW51RmxhZ3MsIE5T
RGljdGlvbmFyeSAqb3B0aW9ucyk7CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9O
U1Njcm9sbFZpZXdTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9s
bFZpZXdTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjBlZjdhZjU4ZTMyZTQ4YmYxN2UwNjIyYmU4N2I1ZmQw
YzRlZGY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFj
L05TU2Nyb2xsVmlld1NQSS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEFwcEtpdC9O
U1Njcm9sbFZpZXdfUHJpdmF0ZS5oPgorCisjZW5kaWYKKworV1RGX0VYVEVSTl9DX0JFR0lOCisK
K0NHRmxvYXQgX05TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKENHRmxvYXQgaW5pdGlhbFBvc2l0
aW9uLCBDR0Zsb2F0IGluaXRpYWxWZWxvY2l0eSwgQ0dGbG9hdCBlbGFwc2VkVGltZSk7CitDR0Zs
b2F0IF9OU0VsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YShDR0Zsb2F0IGRlbHRhKTsKK0NHRmxv
YXQgX05TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKENHRmxvYXQgZGVsdGEpOworCitXVEZf
RVhURVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
TlNTY3JvbGxlckltcFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Ny
b2xsZXJJbXBTUEkuaAppbmRleCAwNDkyYzFhYjYxOTU2Y2IxOTYxYzllYTdiMjc3MTU3Mzc4MWQ1
NTMzLi4xODcwNDk2ZTA3YzIwZjJlYjlhYjVhZmFkNzFlOWRiMWRhZDFhMmY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQ5LDQg
KzE0OSwxMCBAQCB0eXBlZGVmIE5TVUludGVnZXIgTlNPdmVybGF5U2Nyb2xsZXJTdGF0ZTsKIAog
I2VuZGlmCiAKK1dURl9FWFRFUk5fQ19CRUdJTgorCitOU1Njcm9sbGVyU3R5bGUgX05TUmVjb21t
ZW5kZWRTY3JvbGxlclN0eWxlKCk7CisKK1dURl9FWFRFUk5fQ19FTkQKKwogI2VuZGlmIC8vIFVT
RShBUFBLSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMv
RGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVt
L21hYy9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MTZkNmFiYmJiMzVh
ZTg3YzJkOWVhYmExNjljNzI0YjVkM2RlNmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcApAQCAtMCww
ICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRl
ZmF1bHRTZWFyY2hQcm92aWRlci5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW5jbHVkZSAi
Q0ZVdGlsaXRpZXNTUEkuaCIKKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlv
bi5oPgorCituYW1lc3BhY2UgUEFMIHsKKworUmV0YWluUHRyPENGU3RyaW5nUmVmPiBkZWZhdWx0
U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpCit7CisgICAgYXV0byBwcm92aWRlckluZm8gPSBh
ZG9wdENGKF9DRldlYlNlcnZpY2VzQ29weVByb3ZpZGVySW5mbyhrQ0ZXZWJTZXJ2aWNlc1R5cGVX
ZWJTZWFyY2gsIG51bGxwdHIpKTsKKyAgICBpZiAoIXByb3ZpZGVySW5mbykKKyAgICAgICAgcmV0
dXJuIENGU1RSKCJHb29nbGUiKTsKKworICAgIENGVHlwZVJlZiBkaXNwbGF5TmFtZSA9IENGRGlj
dGlvbmFyeUdldFZhbHVlKHByb3ZpZGVySW5mby5nZXQoKSwga0NGV2ViU2VydmljZXNQcm92aWRl
ckRlZmF1bHREaXNwbGF5TmFtZUtleSk7CisgICAgaWYgKCFkaXNwbGF5TmFtZSkKKyAgICAgICAg
cmV0dXJuIENGU1RSKCJHb29nbGUiKTsKKworICAgIEFTU0VSVChDRkdldFR5cGVJRChkaXNwbGF5
TmFtZSkgPT0gQ0ZTdHJpbmdHZXRUeXBlSUQoKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZTdHJp
bmdDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIChDRlN0cmluZ1JlZilkaXNwbGF5TmFt
ZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBQQUwKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9EZWZhdWx0U2Vh
cmNoUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9EZWZhdWx0
U2VhcmNoUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mY2ZjZmQ4MzdiNzYwOWM2NDMyN2U3NTU5ODBk
NmQ0ZmY5OTJmYmY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
eXN0ZW0vbWFjL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFt
ZXNwYWNlIFBBTCB7CisKK1BBTF9FWFBPUlQgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBkZWZhdWx0
U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQ3NWFiN2I3YjI3YmQ5ZDA2
M2NlYzliZTU1NjYxYzk1MmVmMmFlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUuaApAQCAtMCwwICsxLDM2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorCitu
YW1lc3BhY2UgUEFMIHsKKworUEFMX0VYUE9SVCB2b2lkIHBvcFVwTWVudShOU01lbnUgKiwgTlNQ
b2ludCBsb2NhdGlvbiwgZmxvYXQgd2lkdGgsIE5TVmlldyAqLCBpbnQgc2VsZWN0ZWRJdGVtLCBO
U0ZvbnQgKiwgTlNDb250cm9sU2l6ZSwgYm9vbCB1c2VzQ3VzdG9tQXBwZWFyYW5jZSk7CisKK30K
KworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5
c3RlbS9tYWMvUG9wdXBNZW51Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyMzM1NzVkYzM0ZTc2MWU4NjFjYmI0
NTI4N2I3MzNmMmNkNGFjMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1tCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlBvcHVwTWVudS5oIgorCisjaWYgUExBVEZP
Uk0oTUFDKQorCisjaW1wb3J0ICJOU01lbnVTUEkuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KKworQGludGVyZmFjZSBOU01lbnUgKFdlYlByaXZhdGUpCistIChpZClfbWVudUltcGw7CitA
ZW5kCisKK0BpbnRlcmZhY2UgTlNPYmplY3QgKFdlYlByaXZhdGUpCistICh2b2lkKXBvcFVwTWVu
dTooTlNNZW51KiltZW51IGF0TG9jYXRpb246KE5TUG9pbnQpbG9jYXRpb24gd2lkdGg6KENHRmxv
YXQpd2lkdGggZm9yVmlldzooTlNWaWV3Kil2aWV3IHdpdGhTZWxlY3RlZEl0ZW06KE5TSW50ZWdl
cilzZWxlY3RlZEl0ZW0gd2l0aEZvbnQ6KE5TRm9udCopZm9udCB3aXRoRmxhZ3M6KE5TUG9wVXBN
ZW51RmxhZ3MpZmxhZ3Mgd2l0aE9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKW9wdGlvbnM7CitAZW5k
CisKK25hbWVzcGFjZSBQQUwgeworCit2b2lkIHBvcFVwTWVudShOU01lbnUgKm1lbnUsIE5TUG9p
bnQgbG9jYXRpb24sIGZsb2F0IHdpZHRoLCBOU1ZpZXcgKnZpZXcsIGludCBzZWxlY3RlZEl0ZW0s
IE5TRm9udCAqZm9udCwgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZSwgYm9vbCB1c2VzQ3VzdG9t
QXBwZWFyYW5jZSkKK3sKKyAgICBOU1JlY3QgYWRqdXN0ZWRQb3B1cEJvdW5kcyA9IFt2aWV3Lndp
bmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOlt2aWV3IGNvbnZlcnRSZWN0OnZpZXcuYm91bmRzIHRv
VmlldzpuaWxdXTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBpZiAo
Y29udHJvbFNpemUgIT0gTlNNaW5pQ29udHJvbFNpemUpIHsKKyNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICAgICAgYWRqdXN0ZWRQb3B1cEJvdW5kcy5vcmlnaW4ueCAtPSAzOworICAg
ICAgICBhZGp1c3RlZFBvcHVwQm91bmRzLm9yaWdpbi55IC09IDE7CisgICAgICAgIGFkanVzdGVk
UG9wdXBCb3VuZHMuc2l6ZS53aWR0aCArPSA2OworICAgIH0KKworICAgIC8vIFRoZXNlIG51bWJl
cnMgd2VyZSBleHRyYWN0ZWQgZnJvbSB2aXN1YWwgaW5zcGVjdGlvbiBhcyB0aGUgbWVudSBhbmlt
YXRlcyBzaHV0LgorICAgIE5TU2l6ZSBsYWJlbE9mZnNldCA9IE5TTWFrZVNpemUoMTEsIDEpOwor
ICAgIGlmIChtZW51LnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gPT0gTlNVc2VySW50ZXJm
YWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnQpCisgICAgICAgIGxhYmVsT2Zmc2V0ID0gTlNN
YWtlU2l6ZSgyNCwgMSk7CisKKyAgICBhdXRvIG9wdGlvbnMgPSBhZG9wdE5TKFtAeworICAgICAg
ICBOU1BvcFVwTWVudVBvcHVwQnV0dG9uQm91bmRzIDogW05TVmFsdWUgdmFsdWVXaXRoUmVjdDph
ZGp1c3RlZFBvcHVwQm91bmRzXSwKKyAgICAgICAgTlNQb3BVcE1lbnVQb3B1cEJ1dHRvbkxhYmVs
T2Zmc2V0IDogW05TVmFsdWUgdmFsdWVXaXRoU2l6ZTpsYWJlbE9mZnNldF0sCisgICAgICAgIE5T
UG9wVXBNZW51UG9wdXBCdXR0b25TaXplIDogQChjb250cm9sU2l6ZSkKKyAgICB9IG11dGFibGVD
b3B5XSk7CisKKyAgICBpZiAodXNlc0N1c3RvbUFwcGVhcmFuY2UpCisgICAgICAgIFtvcHRpb25z
IHNldE9iamVjdDpAIiIgZm9yS2V5Ok5TUG9wVXBNZW51UG9wdXBCdXR0b25XaWRnZXRdOworCisg
ICAgW1ttZW51IF9tZW51SW1wbF0gcG9wVXBNZW51Om1lbnUgYXRMb2NhdGlvbjpsb2NhdGlvbiB3
aWR0aDp3aWR0aCBmb3JWaWV3OnZpZXcgd2l0aFNlbGVjdGVkSXRlbTpzZWxlY3RlZEl0ZW0gd2l0
aEZvbnQ6Zm9udCB3aXRoRmxhZ3M6KHVzZXNDdXN0b21BcHBlYXJhbmNlID8gMCA6IE5TUG9wVXBN
ZW51SXNQb3B1cEJ1dHRvbikgd2l0aE9wdGlvbnM6b3B0aW9ucy5nZXQoKV07Cit9CisKK30gLy8g
bmFtZXNwYWNlIFBBTAorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCmluZGV4
IDEyOWI2ZTJkNTBkNTIxNmRiNWE0Njg3NjZjMTRmZDgyZWE1M2JjNzcuLjEyZGQ4YTc4ZWY0MjEx
ZDUxYjU3ZmUwZTgxYmU0MGZlMzBjYTJmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMTUgKzIz
LDE2IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiTG9jYWxpemVkU3RyaW5ncy5oIgogCi0jaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKLSNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNp
bXBvcnQgIk5vdEltcGxlbWVudGVkLmgiCisjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNl
LmgiCisjaW1wb3J0IDxwYWwvc3lzdGVtL21hYy9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuaD4KKyNp
bXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjYsNyArNjcsNyBAQCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQoKQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
U2VhcmNoV2ViKCkKIHsKLSAgICBhdXRvIHNlYXJjaFByb3ZpZGVyTmFtZSA9IGFkb3B0Q0Yod2tD
b3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUoKSk7CisgICAgYXV0byBzZWFyY2hQ
cm92aWRlck5hbWUgPSBQQUw6OmRlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKCk7CiAg
ICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCJTZWFyY2ggd2l0
aCAlQCIsICJTZWFyY2ggd2l0aCBzZWFyY2ggcHJvdmlkZXIgY29udGV4dCBtZW51IGl0ZW0gd2l0
aCBwcm92aWRlciBuYW1lIGluc2VydGVkIiksIHNlYXJjaFByb3ZpZGVyTmFtZS5nZXQoKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRy
b2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVy
Lm1tCmluZGV4IGVlM2U1MzdmYjhjMmI2ODcwZTYxZGZkMjM5NzYwN2VjN2YxZjRiMWEuLmQzNzll
MjQ3NGQxNjY2NTRhNGMxMjljY2NiMGYxZWRlM2U2MzI1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTQtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDIw
ICsyMywyNCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTY3JvbGxDb250cm9sbGVyLmgiCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIlNjcm9sbENvbnRyb2xsZXIuaCIKIAotI2luY2x1ZGUgIkxh
eW91dFNpemUuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKLSNpbmNsdWRlICJX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2Vy
LmgiCi0jaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0jaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0ICJMYXlvdXRTaXplLmgiCisjaW1wb3J0
ICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKKyNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
aCIKKyNpbXBvcnQgIldoZWVsRXZlbnRUZXN0VHJpZ2dlci5oIgorI2ltcG9ydCA8c3lzL3N5c2N0
bC5oPgorI2ltcG9ydCA8c3lzL3RpbWUuaD4KKyNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgog
CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKLSNpbmNsdWRlICJTY3JvbGxTbmFwQW5pbWF0
b3JTdGF0ZS5oIgotI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCisjaW1wb3J0ICJTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5oIgorI2ltcG9ydCAiU2Nyb2xsYWJsZUFyZWEuaCIKKyNlbmRpZgor
CisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTY3JvbGxWaWV3U1BJ
Lmg+CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykgfHwgRU5BQkxFKENTU19T
Q1JPTExfU05BUCkKQEAgLTUyLDE3ICs1NiwxNyBAQCBzdGF0aWMgY29uc3QgZmxvYXQgcnViYmVy
YmFuZE1pbmltdW1SZXF1aXJlZERlbHRhQmVmb3JlU3RyZXRjaCA9IDEwOwogI2lmIFBMQVRGT1JN
KE1BQykKIHN0YXRpYyBmbG9hdCBlbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEoZmxvYXQgaW5pdGlh
bFBvc2l0aW9uLCBmbG9hdCBpbml0aWFsVmVsb2NpdHksIGZsb2F0IGVsYXBzZWRUaW1lKQogewot
ICAgIHJldHVybiB3a05TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKGluaXRpYWxQb3NpdGlvbiwg
aW5pdGlhbFZlbG9jaXR5LCBlbGFwc2VkVGltZSk7CisgICAgcmV0dXJuIF9OU0VsYXN0aWNEZWx0
YUZvclRpbWVEZWx0YShpbml0aWFsUG9zaXRpb24sIGluaXRpYWxWZWxvY2l0eSwgZWxhcHNlZFRp
bWUpOwogfQogCiBzdGF0aWMgZmxvYXQgZWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKGZsb2F0
IGRlbHRhKQogewotICAgIHJldHVybiB3a05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKGRl
bHRhKTsKKyAgICByZXR1cm4gX05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKGRlbHRhKTsK
IH0KIAogc3RhdGljIGZsb2F0IHJlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YShmbG9hdCBkZWx0
YSkKIHsKLSAgICByZXR1cm4gd2tOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YShkZWx0YSk7
CisgICAgcmV0dXJuIF9OU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YShkZWx0YSk7CiB9CiAK
IHN0YXRpYyBmbG9hdCBzY3JvbGxXaGVlbE11bHRpcGxpZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXgg
ZjQyNTc5NzAxMGRjYTIzNzcwYjhmZTQ2MDViYzQ5YjBmNGQ2MDhhMC4uYzY5NDZkNmRmZDNiY2Uz
YTFmODYyNGEzOTRiYzY4NjlkN2QyYzNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDcgKzI0LDYgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ0Eu
aCIKIAogI2lmIFVTRShDQSkKQEAgLTQ3LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJUcmFuc2xhdGVU
cmFuc2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRlIDxRdWFydHpDb3JlL0NBVHJhbnNmb3JtM0Qu
aD4KICNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGVXRpbGl0aWVz
U1BJLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTI5ODgsNyArMjk4
OCw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVhdGVUcmFuc2Zvcm1BbmltYXRpb25zRnJv
bUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlCiAgICAgICAgIC8vIG9uIG9yIGJlZm9yZSBT
bm93IExlb3BhcmQuCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGZpeCBoYXMgbm90IGJlZW4gYWRk
ZWQgdG8gUXVhcnR6Q29yZSBvbiBXaW5kb3dzIHlldCAoPHJkYXI6Ly9wcm9ibGVtLzkxMTIyMzM+
KSBzbyB3ZSBleHBlY3QgdGhlCiAgICAgICAgIC8vIHJldmVyc2VkIGFuaW1hdGlvbiBiZWhhdmlv
cgotICAgICAgICBzdGF0aWMgYm9vbCBleGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dM
ZW9wYXJkID0gd2tFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKCk7Cisg
ICAgICAgIHN0YXRpYyBib29sIGV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3Bh
cmQgPSAhX0NGRXhlY3V0YWJsZUxpbmtlZE9uT3JBZnRlcihDRlN5c3RlbVZlcnNpb25MaW9uKTsK
ICAgICAgICAgaWYgKCFleGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKQog
ICAgICAgICAgICAgcmV2ZXJzZUFuaW1hdGlvbkxpc3QgPSBmYWxzZTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KaW5kZXggYWEzNDVlODhlNDgxMThjNDY4
N2I5ZWVmYmZjNzMyMThkYzQ3MDcwYy4uNDE3MmUyMjI2OGMzZGM0MWRhNTYwZTRlNGMyOGZjNjdj
ZTgyYzFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI3LDYgKzI3LDggQEAKICNpbXBvcnQgIkN1cnNvci5oIgogCiAjaW1wb3J0ICJXZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKyNpbXBvcnQg
PHBhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNl
cHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTM3LDYgKzM5LDEz
OSBAQCBAaW1wbGVtZW50YXRpb24gV2ViQ29yZUN1cnNvckJ1bmRsZQogQGVuZAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CisgICAgCitzdGF0aWMgTlNDdXJzb3IgKmJ1c3lCdXRDbGlja2FibGVOU0N1
cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqbWFrZUFsaWFzTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJz
b3IgKm1vdmVOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplRWFzdE5TQ3Vyc29yOwor
c3RhdGljIE5TQ3Vyc29yICpyZXNpemVFYXN0V2VzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29y
ICpyZXNpemVOb3J0aE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVOb3J0aFNvdXRo
TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRoZWFzdE5TQ3Vyc29yOworc3Rh
dGljIE5TQ3Vyc29yICpyZXNpemVOb3J0aGVhc3RTb3V0aHdlc3ROU0N1cnNvcjsKK3N0YXRpYyBO
U0N1cnNvciAqcmVzaXplTm9ydGh3ZXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6
ZU5vcnRod2VzdFNvdXRoZWFzdE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVTb3V0
aE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVTb3V0aGVhc3ROU0N1cnNvcjsKK3N0
YXRpYyBOU0N1cnNvciAqcmVzaXplU291dGh3ZXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3Ig
KnJlc2l6ZVdlc3ROU0N1cnNvcjsKKworc3RhdGljIE5TQ3Vyc29yICpjZWxsTlNDdXJzb3I7Citz
dGF0aWMgTlNDdXJzb3IgKmhlbHBOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqem9vbUluTlND
dXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnpvb21PdXROU0N1cnNvcjsKKworc3RhdGljIE5TSW50
ZWdlciBXS0NvcmVDdXJzb3JfY29yZUN1cnNvclR5cGUoaWQgc2VsZiwgU0VMKQoreworICAgIGlm
IChzZWxmID09IGJ1c3lCdXRDbGlja2FibGVOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3Jl
Q3Vyc29yQnVzeUJ1dENsaWNrYWJsZTsKKyAgICBpZiAoc2VsZiA9PSBtYWtlQWxpYXNOU0N1cnNv
cikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yTWFrZUFsaWFzOworICAgIGlmIChzZWxmID09
IG1vdmVOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93TW92ZTsKKyAg
ICBpZiAoc2VsZiA9PSByZXNpemVFYXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1
cnNvcldpbmRvd1Jlc2l6ZUVhc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplRWFzdFdlc3ROU0N1
cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplRWFzdFdlc3Q7Cisg
ICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGhOU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3Jl
Q3Vyc29yV2luZG93UmVzaXplTm9ydGg7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGhTb3V0
aE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aFNv
dXRoOworICAgIGlmIChzZWxmID09IHJlc2l6ZU5vcnRoZWFzdE5TQ3Vyc29yKQorICAgICAgICBy
ZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aEVhc3Q7CisgICAgaWYgKHNlbGYgPT0g
cmVzaXplTm9ydGhlYXN0U291dGh3ZXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1
cnNvcldpbmRvd1Jlc2l6ZU5vcnRoRWFzdFNvdXRoV2VzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNp
emVOb3J0aHdlc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVz
aXplTm9ydGhXZXN0OworICAgIGlmIChzZWxmID09IHJlc2l6ZU5vcnRod2VzdFNvdXRoZWFzdE5T
Q3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aFdlc3RT
b3V0aEVhc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplU291dGhOU0N1cnNvcikKKyAgICAgICAg
cmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291dGg7CisgICAgaWYgKHNlbGYgPT0gcmVz
aXplU291dGhlYXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jl
c2l6ZVNvdXRoRWFzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVTb3V0aHdlc3ROU0N1cnNvcikK
KyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplU291dGhXZXN0OworICAgIGlm
IChzZWxmID09IHJlc2l6ZVdlc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29y
V2luZG93UmVzaXplV2VzdDsKKyAgICBpZiAoc2VsZiA9PSBjZWxsTlNDdXJzb3IpCisgICAgICAg
IHJldHVybiBrQ29yZUN1cnNvckNlbGw7CisgICAgaWYgKHNlbGYgPT0gaGVscE5TQ3Vyc29yKQor
ICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JIZWxwOworICAgIGlmIChzZWxmID09IHpvb21Jbk5T
Q3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3Jab29tSW47CisgICAgaWYgKHNlbGYg
PT0gem9vbU91dE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3Jab29tT3V0Owor
ICAgIAorICAgIHJldHVybiBOU05vdEZvdW5kOworfQorCitzdGF0aWMgQ2xhc3MgY3JlYXRlQ29y
ZUN1cnNvckNsYXNzKHZvaWQpCit7CisgICAgQ2xhc3MgY29yZUN1cnNvckNsYXNzID0gb2JqY19h
bGxvY2F0ZUNsYXNzUGFpcihbTlNDdXJzb3IgY2xhc3NdLCAiV0tDb3JlQ3Vyc29yIiwgMCk7Cisg
ICAgU0VMIGNvcmVDdXJzb3JUeXBlID0gTlNTZWxlY3RvckZyb21TdHJpbmcoQCJfY29yZUN1cnNv
clR5cGUiKTsKKyAgICBjbGFzc19hZGRNZXRob2QoY29yZUN1cnNvckNsYXNzLCBjb3JlQ3Vyc29y
VHlwZSwgKElNUClXS0NvcmVDdXJzb3JfY29yZUN1cnNvclR5cGUsIG1ldGhvZF9nZXRUeXBlRW5j
b2RpbmcoY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2QoW05TQ3Vyc29yIGNsYXNzXSwgY29yZUN1cnNv
clR5cGUpKSk7CisgICAgb2JqY19yZWdpc3RlckNsYXNzUGFpcihjb3JlQ3Vyc29yQ2xhc3MpOwor
ICAgIHJldHVybiBjb3JlQ3Vyc29yQ2xhc3M7Cit9CisKK3N0YXRpYyBDbGFzcyBjb3JlQ3Vyc29y
Q2xhc3Modm9pZCkKK3sKKyAgICBDbGFzcyBjb3JlQ3Vyc29yQ2xhc3MgPSBvYmpjX2xvb2tVcENs
YXNzKCJXS0NvcmVDdXJzb3IiKTsKKyAgICBpZiAoIWNvcmVDdXJzb3JDbGFzcykKKyAgICAgICAg
Y29yZUN1cnNvckNsYXNzID0gY3JlYXRlQ29yZUN1cnNvckNsYXNzKCk7CisgICAgcmV0dXJuIGNv
cmVDdXJzb3JDbGFzczsKK30KKworc3RhdGljIE5TQ3Vyc29yICpjdXJzb3IoY29uc3QgY2hhciAq
bmFtZSkKK3sKKyAgICBOU0N1cnNvciAqKnNsb3QgPSAwOworICAgIAorICAgIGlmICghc3RyY21w
KG5hbWUsICJCdXN5QnV0Q2xpY2thYmxlIikpCisgICAgICAgIHNsb3QgPSAmYnVzeUJ1dENsaWNr
YWJsZU5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIk1ha2VBbGlhcyIpKQor
ICAgICAgICBzbG90ID0gJm1ha2VBbGlhc05TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAo
bmFtZSwgIk1vdmUiKSkKKyAgICAgICAgc2xvdCA9ICZtb3ZlTlNDdXJzb3I7CisgICAgZWxzZSBp
ZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplRWFzdCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZUVh
c3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVFYXN0V2VzdCIp
KQorICAgICAgICBzbG90ID0gJnJlc2l6ZUVhc3RXZXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAo
IXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGgiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0
aE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZU5vcnRoU291dGgi
KSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aFNvdXRoTlNDdXJzb3I7CisgICAgZWxzZSBp
ZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGhlYXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVz
aXplTm9ydGhlYXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXpl
Tm9ydGhlYXN0U291dGh3ZXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplTm9ydGhlYXN0U291
dGh3ZXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGh3
ZXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplTm9ydGh3ZXN0TlNDdXJzb3I7CisgICAgZWxz
ZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGh3ZXN0U291dGhlYXN0IikpCisgICAgICAg
IHNsb3QgPSAmcmVzaXplTm9ydGh3ZXN0U291dGhlYXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAo
IXN0cmNtcChuYW1lLCAiUmVzaXplU291dGgiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVTb3V0
aE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZVNvdXRoZWFzdCIp
KQorICAgICAgICBzbG90ID0gJnJlc2l6ZVNvdXRoZWFzdE5TQ3Vyc29yOworICAgIGVsc2UgaWYg
KCFzdHJjbXAobmFtZSwgIlJlc2l6ZVNvdXRod2VzdCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6
ZVNvdXRod2VzdE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZVdl
c3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVXZXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAo
IXN0cmNtcChuYW1lLCAiQ2VsbCIpKQorICAgICAgICBzbG90ID0gJmNlbGxOU0N1cnNvcjsKKyAg
ICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJIZWxwIikpCisgICAgICAgIHNsb3QgPSAmaGVscE5T
Q3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlpvb21JbiIpKQorICAgICAgICBz
bG90ID0gJnpvb21Jbk5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlpvb21P
dXQiKSkKKyAgICAgICAgc2xvdCA9ICZ6b29tT3V0TlNDdXJzb3I7CisgICAgCisgICAgaWYgKCFz
bG90KQorICAgICAgICByZXR1cm4gbmlsOworICAgIAorICAgIGlmICghKnNsb3QpCisgICAgICAg
ICpzbG90ID0gW1tjb3JlQ3Vyc29yQ2xhc3MoKSBhbGxvY10gaW5pdF07CisgICAgcmV0dXJuICpz
bG90OworfQogCiAvLyBTaW1wbGUgTlNDdXJzb3IgY2FsbHMgc2hvdWxkbid0IG5lZWQgcHJvdGVj
dGlvbiwKIC8vIGJ1dCBjcmVhdGluZyBhIGN1cnNvciB3aXRoIGEgYmFkIGltYWdlIG1pZ2h0IHRo
cm93LgpAQCAtMTAzLDcyICsyMzgsNzIgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vy
c29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6V2FpdDoKLSAg
ICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJCdXN5QnV0Q2xpY2thYmxlIik7Cisg
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKICAg
ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6SGVscDoKLSAgICAgICAgbV9wbGF0Zm9y
bUN1cnNvciA9IHdrQ3Vyc29yKCJIZWxwIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBj
dXJzb3IoIkhlbHAiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6TW92ZToK
ICAgICBjYXNlIEN1cnNvcjo6TWlkZGxlUGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNv
ciA9IHdrQ3Vyc29yKCJNb3ZlIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3Io
Ik1vdmUiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6RWFzdFJlc2l6ZToK
ICAgICBjYXNlIEN1cnNvcjo6RWFzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3Ig
PSB3a0N1cnNvcigiUmVzaXplRWFzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vy
c29yKCJSZXNpemVFYXN0Iik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6Ok5v
cnRoUmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFBhbm5pbmc6Ci0gICAgICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGgiKTsKKyAgICAgICAgbV9wbGF0Zm9y
bUN1cnNvciA9IGN1cnNvcigiUmVzaXplTm9ydGgiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBj
YXNlIEN1cnNvcjo6Tm9ydGhFYXN0UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aEVhc3RQ
YW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRo
ZWFzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0aGVh
c3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhXZXN0UmVzaXpl
OgogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFdlc3RQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3Jt
Q3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRod2VzdCIpOworICAgICAgICBtX3BsYXRmb3Jt
Q3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0aHdlc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIEN1cnNvcjo6U291dGhSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoUGFubmlu
ZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVTb3V0aCIpOwor
ICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVTb3V0aCIpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpTb3V0aEVhc3RSZXNpemU6CiAgICAgY2FzZSBD
dXJzb3I6OlNvdXRoRWFzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1
cnNvcigiUmVzaXplU291dGhlYXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJz
b3IoIlJlc2l6ZVNvdXRoZWFzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29y
OjpTb3V0aFdlc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoV2VzdFBhbm5pbmc6Ci0g
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplU291dGh3ZXN0Iik7Cisg
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZVNvdXRod2VzdCIpOwogICAg
ICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpXZXN0UmVzaXplOgogICAgIGNhc2UgQ3Vy
c29yOjpXZXN0UGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJS
ZXNpemVXZXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZVdl
c3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhTb3V0aFJlc2l6
ZToKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aFNvdXRo
Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRoU291dGgi
KTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6RWFzdFdlc3RSZXNpemU6Ci0g
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplRWFzdFdlc3QiKTsKKyAg
ICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplRWFzdFdlc3QiKTsKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhFYXN0U291dGhXZXN0UmVzaXplOgot
ICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRoZWFzdFNvdXRo
d2VzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0aGVh
c3RTb3V0aHdlc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhX
ZXN0U291dGhFYXN0UmVzaXplOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3Io
IlJlc2l6ZU5vcnRod2VzdFNvdXRoZWFzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0g
Y3Vyc29yKCJSZXNpemVOb3J0aHdlc3RTb3V0aGVhc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIEN1cnNvcjo6Q29sdW1uUmVzaXplOgpAQCAtMTg0LDcgKzMxOSw3IEBAIHZvaWQgQ3Vy
c29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogCiAgICAg
Y2FzZSBDdXJzb3I6OkNlbGw6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigi
Q2VsbCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJDZWxsIik7CiAgICAg
ICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OkNvbnRleHRNZW51OgpAQCAtMTkyLDExICsz
MjcsMTEgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6QWxpYXM6Ci0gICAgICAgIG1fcGxhdGZvcm1D
dXJzb3IgPSB3a0N1cnNvcigiTWFrZUFsaWFzIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3Ig
PSBjdXJzb3IoIk1ha2VBbGlhcyIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29y
OjpQcm9ncmVzczoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJCdXN5QnV0
Q2xpY2thYmxlIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIkJ1c3lCdXRD
bGlja2FibGUiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9Ecm9wOgpA
QCAtMjE2LDExICszNTEsMTEgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkg
Y29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Wm9vbUluOgotICAgICAg
ICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlpvb21JbiIpOworICAgICAgICBtX3BsYXRm
b3JtQ3Vyc29yID0gY3Vyc29yKCJab29tSW4iKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl
IEN1cnNvcjo6Wm9vbU91dDoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJa
b29tT3V0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlpvb21PdXQiKTsK
ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6R3JhYjoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCmluZGV4IGFj
ZTI5OGMxMmY4MjBlZDUwZDY5Y2ZlZjY1MTYzMGQwODRjMDUyZmUuLjU1ZmNhMTI4MTYyZjYzODIw
MTU2ZmEyMTFiMjdiN2FkMmNmMTk1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaApAQCAtMTIzLDcgKzEyMyw2IEBAIHR5
cGVkZWYgZW51bSB7CiAgICAgd2tQYXR0ZXJuVGlsaW5nQ29uc3RhbnRTcGFjaW5nCiB9IHdrUGF0
dGVyblRpbGluZzsKICNpZiAhUExBVEZPUk0oSU9TKQotZXh0ZXJuIHZvaWQgKCp3a0RyYXdCZXpl
bGVkVGV4dEFyZWEpKE5TUmVjdCwgQk9PTCBlbmFibGVkKTsKIGV4dGVybiB2b2lkICgqd2tEcmF3
TWVkaWFTbGlkZXJUcmFjaykoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCByZWN0LCBmbG9h
dCB0aW1lTG9hZGVkLCBmbG9hdCBjdXJyZW50VGltZSwKICAgICBmbG9hdCBkdXJhdGlvbiwgdW5z
aWduZWQgc3RhdGUpOwogZXh0ZXJuIHZvaWQgKCp3a0RyYXdNZWRpYVVJUGFydCkoaW50IHBhcnQs
IENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1JlY3QgcmVjdCwgdW5zaWduZWQgc3RhdGUpOwpAQCAt
MTM2LDI0ICsxMzUsMTAgQEAgZXh0ZXJuIHZvaWQgKCp3a1NldENvb2tpZVN0b3JhZ2VQcml2YXRl
QnJvd3NpbmdFbmFibGVkKShCT09MKTsKIGV4dGVybiB2b2lkKiB3a0dldEh5cGhlbmF0aW9uTG9j
YXRpb25CZWZvcmVJbmRleDsKICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKElPUykKLWV4dGVybiBi
b29sICgqd2tFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKSh2b2lkKTsK
LQotZXh0ZXJuIENGU3RyaW5nUmVmICgqd2tDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxh
eU5hbWUpKHZvaWQpOwotCi1leHRlcm4gTlNDdXJzb3IgKigqd2tDdXJzb3IpKGNvbnN0IGNoYXIq
KTsKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQotCiAjaWYgUExBVEZPUk0oSU9TKQogZXh0ZXJu
IHZvaWQgKCp3a1NldExheWVyQ29udGVudHNTY2FsZSkoQ0FMYXllciAqKTsKICNlbmRpZgogCiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGVVJMU3RvcmFnZVNlc3Npb24qIENGVVJMU3RvcmFnZVNl
c3Npb25SZWY7CiAKLSNpZiAhUExBVEZPUk0oSU9TKQotZXh0ZXJuIENHRmxvYXQgKCp3a05TRWxh
c3RpY0RlbHRhRm9yVGltZURlbHRhKShDR0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBp
bml0aWFsVmVsb2NpdHksIENHRmxvYXQgZWxhcHNlZFRpbWUpOwotZXh0ZXJuIENHRmxvYXQgKCp3
a05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLWV4dGVybiBD
R0Zsb2F0ICgqd2tOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSkoQ0dGbG9hdCBkZWx0YSk7
Ci0jZW5kaWYKLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5tbQppbmRleCAzNTA3MzE5YjVkZDhhN2U3MDZmZTYzMTNkMDQx
ZjM4NDkwODAwOGEzLi44ZmJiMWQzZDhjODg2OGMyNDU0ZjMwOWM2OWUwNjQwMGYzZGZmOTZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVy
ZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5tbQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5k
YXRpb24uaD4KIAotdm9pZCAoKndrRHJhd0JlemVsZWRUZXh0QXJlYSkoTlNSZWN0LCBCT09MIGVu
YWJsZWQpOwogdm9pZCAoKndrRHJhd01lZGlhU2xpZGVyVHJhY2spKENHQ29udGV4dFJlZiBjb250
ZXh0LCBDR1JlY3QgcmVjdCwgZmxvYXQgdGltZUxvYWRlZCwgZmxvYXQgY3VycmVudFRpbWUsCiAg
ICAgZmxvYXQgZHVyYXRpb24sIHVuc2lnbmVkIHN0YXRlKTsKIEJPT0wgKCp3a0hpdFRlc3RNZWRp
YVVJUGFydCkoaW50IHBhcnQsIENHUmVjdCBib3VuZHMsIENHUG9pbnQgcG9pbnQpOwpAQCAtNDIs
MTQgKzQxLDQgQEAgdm9pZCAoKndrUG9wdXBNZW51KShOU01lbnUqLCBOU1BvaW50IGxvY2F0aW9u
LCBmbG9hdCB3aWR0aCwgTlNWaWV3KiwgaW50IHNlbGVjdGUKIAogdm9pZCogd2tHZXRIeXBoZW5h
dGlvbkxvY2F0aW9uQmVmb3JlSW5kZXg7CiAKLWJvb2wgKCp3a0V4ZWN1dGFibGVXYXNMaW5rZWRP
bk9yQmVmb3JlU25vd0xlb3BhcmQpKHZvaWQpOwotCiBDRlN0cmluZ1JlZiAoKndrQ29weURlZmF1
bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKSh2b2lkKTsKLQotTlNDdXJzb3IgKigqd2tDdXJz
b3IpKGNvbnN0IGNoYXIqKTsKLQotI2lmICFQTEFURk9STShJT1MpCi1DR0Zsb2F0ICgqd2tOU0Vs
YXN0aWNEZWx0YUZvclRpbWVEZWx0YSkoQ0dGbG9hdCBpbml0aWFsUG9zaXRpb24sIENHRmxvYXQg
aW5pdGlhbFZlbG9jaXR5LCBDR0Zsb2F0IGVsYXBzZWRUaW1lKTsKLUNHRmxvYXQgKCp3a05TRWxh
c3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLUNHRmxvYXQgKCp3a05T
UmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDkzZThkNjE5NzE3
NjE3NWQ4Y2NiMzZlMTljZmVmYmE5YzQ4NjU1ZWYuLmYwMGM4Mzk3YjU4YTQxYWE5MzEyOGEyMjZh
YWU3NWE2ZmI5YWM1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0KQEAgLTc0LDYgKzc0LDcgQEAKICNpbXBvcnQgPG1hdGguaD4KICNpbXBvcnQgPHBhbC9z
cGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQ29sb3JT
UEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TQ2VsbFNQSS5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvTlNTaGFyaW5nU2VydmljZVBpY2tlclNQSS5oPgogI2ltcG9ydCA8d3RmL01hdGhFeHRy
YXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTg4NCw3ICs4ODUsNyBAQCB2b2lk
IFJlbmRlclRoZW1lTWFjOjphZGp1c3RUZXh0RmllbGRTdHlsZShTdHlsZVJlc29sdmVyJiwgUmVu
ZGVyU3R5bGUmLCBjb25zdCBFbAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRUZXh0QXJlYShj
b25zdCBSZW5kZXJPYmplY3QmIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBG
bG9hdFJlY3QmIHIpCiB7CiAgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29u
dGV4dChwYWludEluZm8uY29udGV4dCgpKTsKLSAgICB3a0RyYXdCZXplbGVkVGV4dEFyZWEociwg
aXNFbmFibGVkKG8pICYmICFpc1JlYWRPbmx5Q29udHJvbChvKSk7CisgICAgX05TRHJhd0NhcmJv
blRoZW1lTGlzdEJveChyLCBpc0VuYWJsZWQobykgJiYgIWlzUmVhZE9ubHlDb250cm9sKG8pLCBZ
RVMsIFlFUyk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCmluZGV4IDZmNzUyOTUy
ZTc2YzM0ODdiMmFjYTBkMmRlMTEzNWFhYzNkYWVlODcuLjEzOGJlNmI4ZmZjNzQzODg1MDFhNTE4
ZWJhZjAyNDJmOWYxMjkyNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCkBAIC00Miw2ICs0Miw3IEBACiAjaW1wb3J0
IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPG5vdGlmeS5oPgogI2ltcG9ydCA8
cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1bmNo
U2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHN5c2V4aXRzLmg+CiAjaW1wb3J0IDx3dGYvTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTU5
LDcgKzYwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3Qg
Q2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXIKIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZSA9
IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAIE5ldHdvcmtpbmci
LCAidmlzaWJsZSBuYW1lIG9mIHRoZSBuZXR3b3JrIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0
aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NO
YW1lXTsKLSAgICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxp
Y2F0aW9uTmFtZSk7CisgICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVm
YXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9rTFNEaXNwbGF5
TmFtZUtleSwgKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSwgbnVsbHB0cik7CiB9CiAKIHN0
YXRpYyB2b2lkIG92ZXJyaWRlU3lzdGVtUHJveGllcyhjb25zdCBTdHJpbmcmIGh0dHBQcm94eSwg
Y29uc3QgU3RyaW5nJiBodHRwc1Byb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbHVn
aW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9QbHVnaW5Q
cm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCmluZGV4IDI0ZDI2ZWQxZTY3NDNhZWM1NTdh
OGY3NjQ4OWI2NzM4MDQxN2ZkMDUuLmRhMjY2YjUxYjFmZjllZmU2MjBkZTA1MjE4MjQ0ODQ4YTNi
MGM0MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2lu
UHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdp
blByb2Nlc3NNYWMubW0KQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbXBvcnQgPG1hY2gvdm1fc3RhdGlz
dGljcy5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0Nv
cmVHcmFwaGljc1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQ
SS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CiAjaW1wb3J0IDxwYWwv
c3BpL21hYy9OU1dpbmRvd1NQSS5oPgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KQEAgLTYyMiw5ICs2
MjMsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVByb2Nlc3MoY29u
c3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYQogdm9pZCBQbHVnaW5Qcm9jZXNzOjppbml0
aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWUgPSBbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIlQCAoJUAgSW50ZXJuZXQgcGx1
Zy1pbikiLCAidmlzaWJsZSBuYW1lIG9mIHRoZSBwbHVnLWluIGhvc3QgcHJvY2Vzcy4gVGhlIGZp
cnN0IGFyZ3VtZW50IGlzIHRoZSBwbHVnLWluIG5hbWUgYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQg
aXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiksIFtbKE5TU3RyaW5nICopbV9wbHVnaW5QYXRoIGxh
c3RQYXRoQ29tcG9uZW50XSBzdHJpbmdCeURlbGV0aW5nUGF0aEV4dGVuc2lvbl0sIChOU1N0cmlu
ZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZV07Ci0gICAgV0tTZXRWaXNpYmxlQXBwbGljYXRp
b25OYW1lKChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUpOworICAgIF9MU1NldEFwcGxpY2F0
aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBs
aWNhdGlvbkFTTigpLCBfa0xTRGlzcGxheU5hbWVLZXksIChDRlN0cmluZ1JlZilhcHBsaWNhdGlv
bk5hbWUsIG51bGxwdHIpOwogICAgIGlmICghbV9wbHVnaW5CdW5kbGVJZGVudGlmaWVyLmlzRW1w
dHkoKSkKLSAgICAgICAgV0tTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNQbHVnSW5C
dW5kbGVJZGVudGlmaWVyS2V5LCBtX3BsdWdpbkJ1bmRsZUlkZW50aWZpZXIuY3JlYXRlQ0ZTdHJp
bmcoKS5nZXQoKSk7CisgICAgICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtM
U0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBrTFNQbHVn
SW5CdW5kbGVJZGVudGlmaWVyS2V5LCBtX3BsdWdpbkJ1bmRsZUlkZW50aWZpZXIuY3JlYXRlQ0ZT
dHJpbmcoKS5nZXQoKSwgbnVsbHB0cik7CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6aW5pdGlh
bGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1l
dGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvbWFjL1N0b3Jh
Z2VQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFn
ZVByb2Nlc3NNYWMubW0KaW5kZXggYzAzODg2MGY4ZjE0M2MwZGNmZmM5M2E1Mjc2NmQ2MzQ1NDc0
MWYzOS4uZTM5NjgxYWM3NGFmZWQxZDZmNDlmYmM4ZTUzMDViZmM1YzQzNmE3NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVByb2Nlc3NNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVByb2Nlc3NNYWMu
bW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVy
ZmFjZS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDcsNyArNDgsNyBAQCB2b2lkIFN0b3JhZ2VQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlv
blBhcmFtZXRlcgogdm9pZCBTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNv
bnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsK
ICAgICBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3Jt
YXQ6V0VCX1VJX1NUUklORygiJUAgU3RvcmFnZSIsICJ2aXNpYmxlIG5hbWUgb2YgdGhlIHN0b3Jh
Z2UgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiIpLCAoTlNT
dHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwotICAgIFdLU2V0VmlzaWJsZUFwcGxp
Y2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lKTsKKyAgICBfTFNTZXRBcHBs
aWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRDdXJyZW50
QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5LCAoQ0ZTdHJpbmdSZWYpYXBwbGlj
YXRpb25OYW1lLCBudWxscHRyKTsKIH0KIAogdm9pZCBTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6
ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1ldGVy
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5t
bQppbmRleCAzMjE0OGI5NTZjOTRmZjI4ODg5M2UxNmIyN2FiNTlmYjc0ZDdhYmIxLi5mOGI5ZGIy
NjVhOGEyNGM4NGIyODk5Nzg5ZWQzZmQ4ZWVhNWE0NWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC03MSw3ICs3MSw3IEBACiAj
aW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogI2lmIEhBVkUoQVBQX0xJTktTKQotI2lt
cG9ydCA8cGFsL3NwaS9pb3MvTGF1bmNoU2VydmljZXNTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4KICNlbmRpZgogCiAjaWYgVVNFKFFVSUNLX0xPT0sp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDk5
ODBlMTVlMmY5OTI2NmFiMDliOGE1YTAxYmE3ZWQ3ODdhNWI1MDUuLjAxNTVjYjE4YjE1MTQzOWEw
ZjEzYjIzYWFkYWFkNjE3NzFjNmU1OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTQsNiArOTQsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9t
YWMvTlNBY2Nlc3NpYmlsaXR5U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0FwcGxpY2F0
aW9uU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVS
ZWNvZ25pemVyU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1NwZWxsQ2hlY2tlclNQSS5oPgogI2ltcG9ydCA8cGFs
L3NwaS9tYWMvTlNUZXh0RmluZGVyU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1dpbmRv
d1NQSS5oPgpAQCAtMTI1OSw3ICsxMjYwLDcgQEAgc3RhdGljIE5TVHJhY2tpbmdBcmVhT3B0aW9u
cyB0cmFja2luZ0FyZWFPcHRpb25zKCkKIHsKICAgICAvLyBMZWdhY3kgc3R5bGUgc2Nyb2xsYmFy
cyBoYXZlIGRlc2lnbiBkZXRhaWxzIHRoYXQgcmVseSBvbiB0cmFja2luZyB0aGUgbW91c2UgYWxs
IHRoZSB0aW1lLgogICAgIE5TVHJhY2tpbmdBcmVhT3B0aW9ucyBvcHRpb25zID0gTlNUcmFja2lu
Z01vdXNlTW92ZWQgfCBOU1RyYWNraW5nTW91c2VFbnRlcmVkQW5kRXhpdGVkIHwgTlNUcmFja2lu
Z0luVmlzaWJsZVJlY3QgfCBOU1RyYWNraW5nQ3Vyc29yVXBkYXRlOwotICAgIGlmIChXS1JlY29t
bWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSkKKyAgICBpZiAo
X05TUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlTGVnYWN5KQog
ICAgICAgICBvcHRpb25zIHw9IE5TVHJhY2tpbmdBY3RpdmVBbHdheXM7CiAgICAgZWxzZQogICAg
ICAgICBvcHRpb25zIHw9IE5TVHJhY2tpbmdBY3RpdmVJbktleVdpbmRvdzsKQEAgLTE5NDUsNyAr
MTk0Niw3IEBAIGJvb2wgV2ViVmlld0ltcGw6Om1pZ2h0QmVnaW5EcmFnV2hpbGVJbmFjdGl2ZSgp
CiBib29sIFdlYlZpZXdJbXBsOjptaWdodEJlZ2luU2Nyb2xsV2hpbGVJbmFjdGl2ZSgpCiB7CiAg
ICAgLy8gTGVnYWN5IHN0eWxlIHNjcm9sbGJhcnMgaGF2ZSBkZXNpZ24gZGV0YWlscyB0aGF0IHJl
bHkgb24gdHJhY2tpbmcgdGhlIG1vdXNlIGFsbCB0aGUgdGltZS4KLSAgICBpZiAoV0tSZWNvbW1l
bmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kpCisgICAgaWYgKF9O
U1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCmluZGV4IGMz
ZTkyYTdlMTlkYWE4Y2VhNDMxYmI2NmU4YTE4NzE2ZDc5YWU4ZjYuLjljZTg0MTcxMzViZTRmMzgy
YTljNWJiMmViNjA1ZjliNWFkMzVjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCkBAIC00Nyw3ICs0Nyw3IEBACiAj
aW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEhBVkUoQVBQX0xJTktTKQotI2lt
cG9ydCA8cGFsL3NwaS9pb3MvTGF1bmNoU2VydmljZXNTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4KICNlbmRpZgogCiAjaWYgSEFWRShTQUZBUklfU0VS
VklDRVNfRlJBTUVXT1JLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYlBvcHVwTWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dl
YlBvcHVwTWVudVByb3h5TWFjLm1tCmluZGV4IDdkNmNiM2VkYTFkMDg5Yzg3NDVhYjM0YTAxYzNj
YjZjZmVmZTNjMjEuLjEyNDFiZDhkOWUxYjcwMTdmMDlkNGM0YzRmZjllYTMwMTljNzZiZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlN
YWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAj
aW1wb3J0ICJXZWJQb3B1cEl0ZW0uaCIKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5o
PgorI2ltcG9ydCA8cGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCkBAIC0xNjUsNyArMTY2LDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1h
Yzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQK
ICAgICB9CiAKICAgICBSZWY8V2ViUG9wdXBNZW51UHJveHlNYWM+IHByb3RlY3QoKnRoaXMpOwot
ICAgIFdLUG9wdXBNZW51KG1lbnUsIGxvY2F0aW9uLCByb3VuZGYoTlNXaWR0aChyZWN0KSksIGR1
bW15Vmlldy5nZXQoKSwgc2VsZWN0ZWRJbmRleCwgZm9udCwgY29udHJvbFNpemUsIGRhdGEuaGlk
ZUFycm93cyk7CisgICAgUEFMOjpwb3BVcE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dp
ZHRoKHJlY3QpKSwgZHVtbXlWaWV3LmdldCgpLCBzZWxlY3RlZEluZGV4LCBmb250LCBjb250cm9s
U2l6ZSwgZGF0YS5oaWRlQXJyb3dzKTsKIAogICAgIFttX3BvcHVwIGRpc21pc3NQb3BVcF07CiAg
ICAgW2R1bW15VmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2Fw
ZVBsdWdpbk1hYy5tbQppbmRleCBhMzEyMGU2MjUzODNiZWIyYWY3MDcwMjcwZjQ3Zjg1ODk5MzBj
MjA2Li5kMjkxYTExNDNjYzMxZWNkMTNjOGViYjgyMjUzMmNhN2VmMTFjOWZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQ
bHVnaW5NYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCkBAIC0zOCw2ICszOCw3IEBACiAjaW1wb3J0IDxX
ZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9y
dCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU01l
bnVTUEkuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL3Rl
eHQvU3RyaW5nVmlldy5oPgogCkBAIC0xNTgsNyArMTU5LDYgQEAgTlBCb29sIE5ldHNjYXBlUGx1
Z2luOjpjb252ZXJ0UG9pbnQoZG91YmxlIHNvdXJjZVgsIGRvdWJsZSBzb3VyY2VZLCBOUENvb3Jk
aW5hdGUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLQogTlBFcnJvciBOZXRzY2FwZVBsdWdpbjo6
cG9wVXBDb250ZXh0TWVudShOUE1lbnUqIG5wTWVudSkKIHsKICAgICBpZiAoIW1fY3VycmVudE1v
dXNlRXZlbnQpCkBAIC0xNjgsNyArMTY4LDcgQEAgTlBFcnJvciBOZXRzY2FwZVBsdWdpbjo6cG9w
VXBDb250ZXh0TWVudShOUE1lbnUqIG5wTWVudSkKICAgICBpZiAoIWNvbnZlcnRQb2ludChtX2N1
cnJlbnRNb3VzZUV2ZW50LT5kYXRhLm1vdXNlLnBsdWdpblgsIG1fY3VycmVudE1vdXNlRXZlbnQt
PmRhdGEubW91c2UucGx1Z2luWSwgTlBDb29yZGluYXRlU3BhY2VQbHVnaW4sIHNjcmVlblgsIHNj
cmVlblksIE5QQ29vcmRpbmF0ZVNwYWNlU2NyZWVuKSkKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAKLSAgICBXS1BvcHVwQ29udGV4dE1lbnUocmVpbnRlcnByZXRfY2FzdDxOU01lbnUg
Kj4obnBNZW51KSwgTlNNYWtlUG9pbnQoc2NyZWVuWCwgc2NyZWVuWSkpOworICAgIF9OU1BvcFVw
Q2FyYm9uTWVudTMocmVpbnRlcnByZXRfY2FzdDxOU01lbnUgKj4obnBNZW51KSwgbmlsLCBuaWws
IE5TTWFrZVBvaW50KHNjcmVlblgsIHNjcmVlblkpLCAtMSwgbmlsLCAwLCBuaWwsIE5TUG9wVXBN
ZW51VHlwZUNvbnRleHQsIG5pbCk7CiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpp
bmRleCA5MjdjOGFjNDNkMjVkNmY3YzdiODc4NTY2NjYwN2JkMjczYjNlYmExLi5hZmNmZmE1MTc0
NWIyNWI5ZTc0MDQyODMwN2ZhY2VkNTQ4ZGVjYWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDExLCAyMDEyLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODEs
NiArODEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuaD4KICNp
bXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3Jl
R3JhcGhpY3NTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9y
dCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW1wb3J0IDx3dGYvVVVJRC5oPgogCkBAIC0xNTg1LDcg
KzE1ODYsNyBAQCBib29sIFBERlBsdWdpbjo6aGFuZGxlQ29udGV4dE1lbnVFdmVudChjb25zdCBX
ZWJNb3VzZUV2ZW50JiBldmVudCkKICAgICBJbnRQb2ludCBwb2ludCA9IGZyYW1lVmlldy0+Y29u
dGVudHNUb1NjcmVlbihJbnRSZWN0KGZyYW1lVmlldy0+d2luZG93VG9Db250ZW50cyhldmVudC5w
b3NpdGlvbigpKSwgSW50U2l6ZSgpKSkubG9jYXRpb24oKTsKICAgICAKICAgICBpZiAoTlNNZW51
ICpuc01lbnUgPSBbbV9wZGZMYXllckNvbnRyb2xsZXIgbWVudUZvckV2ZW50Om5zRXZlbnRGb3JX
ZWJNb3VzZUV2ZW50KGV2ZW50KV0pIHsKLSAgICAgICAgV0tQb3B1cENvbnRleHRNZW51KG5zTWVu
dSwgcG9pbnQpOworICAgICAgICBfTlNQb3BVcENhcmJvbk1lbnUzKG5zTWVudSwgbmlsLCBuaWws
IHBvaW50LCAtMSwgbmlsLCAwLCBuaWwsIE5TUG9wVXBNZW51VHlwZUNvbnRleHQsIG5pbCk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0KaW5kZXggNmQxZGQ3MzM5MTllZDRmNDg2MzdkNjdjZTYxNWRjNmZkMDQ3MTIyNy4u
YjlhYzM5NmJiMDM2ZDU1ZDcxMmMyMjc0ODJhZmEzZmM5NzczMDkzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZh
Y2UubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTM3LDE3ICszNywxMCBAQCB2b2lkIEluaXRXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgCiAgICAgZGlzcGF0Y2hfb25jZSgmaW5pdE9uY2Us
IF57CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAgICAgSU5JVChEcmF3QmV6ZWxlZFRleHRBcmVh
KTsKICAgICAgICAgSU5JVChEcmF3TWVkaWFTbGlkZXJUcmFjayk7CiAgICAgICAgIElOSVQoRHJh
d01lZGlhVUlQYXJ0KTsKICAgICAgICAgSU5JVChIaXRUZXN0TWVkaWFVSVBhcnQpOwogICAgICAg
ICBJTklUKE1lYXN1cmVNZWRpYVVJUGFydCk7Ci0gICAgICAgIElOSVQoRXhlY3V0YWJsZVdhc0xp
bmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCk7Ci0gICAgICAgIElOSVQoQ29weURlZmF1bHRTZWFy
Y2hQcm92aWRlckRpc3BsYXlOYW1lKTsKLSAgICAgICAgSU5JVChDdXJzb3IpOwotICAgICAgICBJ
TklUKE5TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKTsKLSAgICAgICAgSU5JVChOU0VsYXN0aWNE
ZWx0YUZvclJlYm91bmREZWx0YSk7Ci0gICAgICAgIElOSVQoTlNSZWJvdW5kRGVsdGFGb3JFbGFz
dGljRGVsdGEpOwogI2VuZGlmCiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA3YzM1ZDhlOTBiNzkxYzk0MjYx
OWZkY2Y3NjYwM2M5YjQzMGVlMDJhLi4yYTNmMzhlMjE4ZTczNGY3NmNlOTdhYzEyYjc4YzIxNDBl
YjYwMmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KQEAgLTYyLDYgKzYyLDcgQEAKICNpbXBvcnQgPGRpc3BhdGNoL2Rpc3BhdGNo
Lmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3
b3JrU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmg+CiAj
aW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvcHRocmVhZFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNBY2Nlc3NpYmlsaXR5
U1BJLmg+CkBAIC0xOTQsNyArMTk1LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplUHJv
Y2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXIKICAgICAg
ICAgYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX1NU
UklORygiJUAgV2ViIEluc3BlY3RvciIsICJWaXNpYmxlIG5hbWUgb2YgV2ViIEluc3BlY3Rvcidz
IHdlYiBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiksIChO
U1N0cmluZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZV07CiAgICAgZWxzZQogICAgICAgICBh
cHBsaWNhdGlvbk5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5H
KCIlQCBXZWIgQ29udGVudCIsICJWaXNpYmxlIG5hbWUgb2YgdGhlIHdlYiBwcm9jZXNzLiBUaGUg
YXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiksIChOU1N0cmluZyAqKXBhcmFtZXRl
cnMudWlQcm9jZXNzTmFtZV07Ci0gICAgV0tTZXRWaXNpYmxlQXBwbGljYXRpb25OYW1lKChDRlN0
cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUpOworICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRp
b25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigp
LCBfa0xTRGlzcGxheU5hbWVLZXksIChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUsIG51bGxw
dHIpOwogI2VuZGlmCiB9CiAKQEAgLTM5NCw3ICszOTUsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnVw
ZGF0ZUFjdGl2ZVBhZ2VzKCkKICAgICB9CiAKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApLCBbYWN0
aXZlUGFnZVVSTHNdIHsKLSAgICAgICAgV0tTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShD
RlNUUigiTFNBY3RpdmVQYWdlVXNlclZpc2libGVPcmlnaW5zS2V5IiksIChfX2JyaWRnZSBDRkFy
cmF5UmVmKWFjdGl2ZVBhZ2VVUkxzLmdldCgpKTsKKyAgICAgICAgX0xTU2V0QXBwbGljYXRpb25J
bmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0
aW9uQVNOKCksIENGU1RSKCJMU0FjdGl2ZVBhZ2VVc2VyVmlzaWJsZU9yaWdpbnNLZXkiKSwgKF9f
YnJpZGdlIENGQXJyYXlSZWYpYWN0aXZlUGFnZVVSTHMuZ2V0KCksIG51bGxwdHIpOwogICAgIH0p
OwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0
RGVsZWdhdGVzL1dlYkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0
ZS5tbQppbmRleCAwMjY1YmYwYzUxYTlmMTg3MTU5NjU1NWQ2OTA3ZjkwMjM3MGU3OTU3Li42Mzky
YWIwNTFmMzM5MjQzM2EwMDcwZDRiZmNkNjQyYmQ0NTcxYTJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRDb250ZXh0TWVudURl
bGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMv
V2ViRGVmYXVsdENvbnRleHRNZW51RGVsZWdhdGUubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUxLDYgKzUxLDcgQEAKICNpbXBvcnQg
PFdlYktpdExlZ2FjeS9ET00uaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01Qcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHBhbC9zeXN0ZW0v
bWFjL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4K
IAogQGltcGxlbWVudGF0aW9uIFdlYkRlZmF1bHRVSURlbGVnYXRlIChXZWJDb250ZXh0TWVudSkK
QEAgLTkxLDcgKzkyLDcgQEAgLSAoTlNNZW51SXRlbSAqKW1lbnVJdGVtV2l0aFRhZzooaW50KXRh
ZyB0YXJnZXQ6KGlkKXRhcmdldCByZXByZXNlbnRlZE9iamVjdDooaWQKICAgICAgICAgICAgIGFj
dGlvbiA9IEBzZWxlY3Rvcihfc2VhcmNoV2l0aFNwb3RsaWdodEZyb21NZW51Oik7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJNZW51SXRlbVRhZ1NlYXJjaFdlYjogewotICAg
ICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzZWFyY2hQcm92aWRlck5hbWUgPSBhZG9w
dENGKFdLQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKCkpOworICAgICAgICAg
ICAgYXV0byBzZWFyY2hQcm92aWRlck5hbWUgPSBQQUw6OmRlZmF1bHRTZWFyY2hQcm92aWRlckRp
c3BsYXlOYW1lKCk7CiAgICAgICAgICAgICB0aXRsZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OlVJX1NUUklOR19JTlRFUk5BTCgiU2VhcmNoIHdpdGggJUAiLCAiU2VhcmNoIHdpdGggc2Vh
cmNoIHByb3ZpZGVyIGNvbnRleHQgbWVudSBpdGVtIHdpdGggcHJvdmlkZXIgbmFtZSBpbnNlcnRl
ZCIpLCBzZWFyY2hQcm92aWRlck5hbWUuZ2V0KCldOwogICAgICAgICAgICAgYWN0aW9uID0gQHNl
bGVjdG9yKF9zZWFyY2hXaXRoR29vZ2xlRnJvbU1lbnU6KTsKICAgICAgICAgICAgIGJyZWFrOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2Nh
cGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCAxOWIzOGFlMmU4MzQzMjdkZDY3
MzM4NjE3YjYxN2U4OTdkNzY4ZDliLi4zODRhNTkxZWZlMTc4MjYxOWVhMmQ4ZGRlYTE1MDBmZDk1
ZGYyY2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MSw2ICs0MSw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0lkZW50aWZpZXJS
ZXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgorI2ltcG9ydCA8cGFs
L3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAKIGV4dGVybiAiQyIgewpAQCAtMTE3LDcgKzExOCw3IEBAIE5ldHNjYXBlUGx1Z2luSG9zdFBy
b3h5OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eShtYWNoX3BvcnRfdCBjbGllbnRQb3J0LCBtYWNo
X3BvCiAgICAgCiAgICAgQ0ZSdW5Mb29wQWRkU291cmNlKENGUnVuTG9vcEdldEN1cnJlbnQoKSwg
ZGVhdGhQb3J0U291cmNlLmdldCgpLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUpOwogICAgIAotICAg
IG1fY2xpZW50UG9ydFNvdXJjZSA9IGFkb3B0Q0YoV0tDcmVhdGVNSUdTZXJ2ZXJTb3VyY2UoKG1p
Z19zdWJzeXN0ZW1fdCkmV0tXZWJLaXRQbHVnaW5DbGllbnRfc3Vic3lzdGVtLCBtX2NsaWVudFBv
cnQpKTsKKyAgICBtX2NsaWVudFBvcnRTb3VyY2UgPSBhZG9wdENGKE1TSENyZWF0ZU1JR1NlcnZl
clNvdXJjZShudWxscHRyLCAwLCAobWlnX3N1YnN5c3RlbV90KSZXS1dlYktpdFBsdWdpbkNsaWVu
dF9zdWJzeXN0ZW0sIDAsIG1fY2xpZW50UG9ydCwgbnVsbHB0cikpOwogICAgIENGUnVuTG9vcEFk
ZFNvdXJjZShDRlJ1bkxvb3BHZXRDdXJyZW50KCksIG1fY2xpZW50UG9ydFNvdXJjZS5nZXQoKSwg
a0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29w
R2V0Q3VycmVudCgpLCBtX2NsaWVudFBvcnRTb3VyY2UuZ2V0KCksIChDRlN0cmluZ1JlZilOU0V2
ZW50VHJhY2tpbmdSdW5Mb29wTW9kZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KaW5kZXggY2M1ZjgxZGZkNjU2
ZmM4ZTczNWQxODU3ZjVhZTg1MzhkMDc0ZmUxNC4uODFjZjRjNzVkMjA5Y2JjZjFjNDcxZjEzY2Uz
Y2U0ZjBmMWIxMGMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zMyw2ICszMyw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUG9wdXBNZW51Q2xpZW50
Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHBhbC9zeXN0
ZW0vbWFjL1BvcHVwTWVudS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0yMTcsNyArMjE4LDcgQEAgdm9pZCBQb3B1
cE1lbnVNYWM6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgp
CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIFdLUG9wdXBNZW51KG1lbnUsIGxvY2F0aW9u
LCByb3VuZGYoTlNXaWR0aChyKSksIGR1bW15Vmlldy5nZXQoKSwgaW5kZXgsIHRvTlNGb250KGZv
bnQpLCBjb250cm9sU2l6ZSwgIW1fY2xpZW50LT5tZW51U3R5bGUoKS5oYXNEZWZhdWx0QXBwZWFy
YW5jZSgpKTsKKyAgICBQQUw6OnBvcFVwTWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRmKE5TV2lk
dGgocikpLCBkdW1teVZpZXcuZ2V0KCksIGluZGV4LCB0b05TRm9udChmb250KSwgY29udHJvbFNp
emUsICFtX2NsaWVudC0+bWVudVN0eWxlKCkuaGFzRGVmYXVsdEFwcGVhcmFuY2UoKSk7CiAKICAg
ICBbbV9wb3B1cCBkaXNtaXNzUG9wVXBdOwogICAgIFtkdW1teVZpZXcgcmVtb3ZlRnJvbVN1cGVy
dmlld107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IGY5Yjg3MDIyYjY2MTlkMTkw
ODE3NmZhMTE3M2EwYzliOTk1NmExYzIuLjg5ZjNlMDY1ZWUzN2ZjZmYzMjdlNmYyOGJjNTRiNjE0
ZmI0OWU4ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xNTUsNyArMTU1LDcg
QEAKIAogI2lmIEhBVkUoQVBQX0xJTktTKQogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhyZWFk
UnVuLmg+Ci0jaW1wb3J0IDxwYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQSS5oPgorI2ltcG9y
dCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oPgogI2VuZGlmCiAKICNpZiBFTkFC
TEUoQ09OVEVOVF9GSUxURVJJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggYmY3MTZi
NzU3YjBjNTk3MzdmODgzMTAyZWE1MDU4NTkzMDAyMzdlYS4uYTk5Mjk4YmY2ODBkYWViMzA3Yjg0
YjIxYWM3MDU0MDQ2ZDgzN2RhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtNDMsMjQg
KzQzLDExIEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAgICAg
cmV0dXJuOwogCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICBJTklUKERyYXdCZXplbGVkVGV4dEFy
ZWEpOwogICAgIElOSVQoRHJhd01lZGlhVUlQYXJ0KTsKICAgICBJTklUKERyYXdNZWRpYVNsaWRl
clRyYWNrKTsKICAgICBJTklUKEhpdFRlc3RNZWRpYVVJUGFydCk7CiAgICAgSU5JVChNZWFzdXJl
TWVkaWFVSVBhcnQpOwogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQotICAgIElOSVQoRXhl
Y3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCk7Ci0gICAgSU5JVChDb3B5RGVm
YXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOwotICAgIElOSVQoQ3Vyc29yKTsKLSNlbmRp
ZgotCi0jaWYgIVBMQVRGT1JNKElPUykKLSAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yVGltZURl
bHRhKTsKLSAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKTsKLSAgICBJTklU
KE5TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKTsKLSNlbmRpZgotCiAgICAgZGlkSW5pdCA9
IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbQppbmRleCAyNzRhMTY4NzA1NzQ1NDQxNGFiOTI5NzVhNWMwNDhjNjBlZTVhNThhLi44ZDNm
OWViYmY4MjdmZTE0OGRlMjQxNjAyOWYzZmQ2YWJlMzMxMmRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTEzMCw3ICsxMzAsOSBAQAog
I2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxkbGZjbi5oPgogI2lt
cG9ydCA8bGltaXRzPgorI2ltcG9ydCA8cGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oPgogI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9OU1VSTEZpbGVUeXBlTWFwcGluZ3NTUEkuaD4KKyNpbXBvcnQg
PHBhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05T
U3BlbGxDaGVja2VyU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1ZpZXdTUEkuaD4KICNp
bXBvcnQgPHBhbC9zcGkvbWFjL05TV2luZG93U1BJLmg+CkBAIC00NjgyLDcgKzQ2ODQsNyBAQCAt
ICh2b2lkKXNldERhdGFTb3VyY2U6KFdlYkRhdGFTb3VyY2UgKilkYXRhU291cmNlCiAjaWYgUExB
VEZPUk0oTUFDKQogICAgIGlmICghX3ByaXZhdGUtPmluc3RhbGxlZFRyYWNraW5nQXJlYSkgewog
ICAgICAgICBOU1RyYWNraW5nQXJlYU9wdGlvbnMgb3B0aW9ucyA9IE5TVHJhY2tpbmdNb3VzZU1v
dmVkIHwgTlNUcmFja2luZ01vdXNlRW50ZXJlZEFuZEV4aXRlZCB8IE5TVHJhY2tpbmdJblZpc2li
bGVSZWN0IHwgTlNUcmFja2luZ0N1cnNvclVwZGF0ZTsKLSAgICAgICAgaWYgKFdLUmVjb21tZW5k
ZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlTGVnYWN5CisgICAgICAgIGlmIChf
TlNSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kKICNp
ZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgICAgICAgICB8fCBbW3NlbGYgX3dlYlZp
ZXddIF9kYXNoYm9hcmRCZWhhdmlvcjpXZWJEYXNoYm9hcmRCZWhhdmlvckFsd2F5c1NlbmRNb3Vz
ZUV2ZW50c1RvQWxsV2luZG93c10KICNlbmRpZgpAQCAtNjM1NCw3ICs2MzU2LDcgQEAgLSAodm9p
ZClhdHRhY2hSb290TGF5ZXI6KENBTGF5ZXIgKilsYXllcgogICAgIGlmIChbW3NlbGYgX3dlYlZp
ZXddIF9wb3N0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdOb3RpZmljYXRpb25zXSkKICAgICAgICAg
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFt
ZTpfV2ViVmlld0RpZFN0YXJ0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlvbiBvYmpl
Y3Q6W3NlbGYgX3dlYlZpZXddIHVzZXJJbmZvOm5pbF07CiAKLSAgICBpZiAoV0tFeGVjdXRhYmxl
V2FzTGlua2VkT25PckJlZm9yZUxpb24oKSkKKyAgICBpZiAoIV9DRkV4ZWN1dGFibGVMaW5rZWRP
bk9yQWZ0ZXIoQ0ZTeXN0ZW1WZXJzaW9uTW91bnRhaW5MaW9uKSkKICAgICAgICAgW3ZpZXdMYXll
ciBzZXRHZW9tZXRyeUZsaXBwZWQ6WUVTXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGFkMjlhODIyNTI5ODljNjZhNjVmNjU4OTRmNGU4NjEx
MzUxOTFjMzAuLjRlOGI4MjE2MTFiODg4ZDQ3ZTYyOGRkZWY5ZDNiZWI1OTg1MThmMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIwOSw2ICsyMDks
NyBAQAogI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgog
I2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY2Yv
Q0ZVdGlsaXRpZXNTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNUb3VjaEJhclNQSS5o
PgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU1VSTEZpbGVUeXBlTWFwcGluZ3NTUEkuaD4KICNp
bXBvcnQgPHBhbC9zcGkvbWFjL05TUmVzcG9uZGVyU1BJLmg+CkBAIC0yNjA5LDE2ICsyNjEwLDE2
IEBAIC0gKGlkKV9mb3JtRGVsZWdhdGVGb3JTZWxlY3RvcjooU0VMKXNlbGVjdG9yCiAjaWYgIVBM
QVRGT1JNKElPUykKIC0gKEJPT0wpX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrCiB7Ci0g
ICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJj
b20uYWRvYmUuQWNyb2JhdCIsIC0xLCA5LjApCi0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNr
TGVzc1RoYW4oQCJjb20uYWRvYmUuQWNyb2JhdC5Qcm8iLCAtMSwgOS4wKQotICAgICAgICB8fCBX
S0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLlJlYWRlciIsIC0xLCA5LjApCi0g
ICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuZGlzdGlsbGVy
IiwgLTEsIDkuMCkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5h
ZG9iZS5Db250cmlidXRlIiwgLTEsIDQuMikKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tM
ZXNzVGhhbihAImNvbS5hZG9iZS5kcmVhbXdlYXZlci05LjAiLCAtMSwgOS4xKQotICAgICAgICB8
fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLm1hY3JvbWVkaWEuZmlyZXdvcmtzIiwg
LTEsIDkuMSkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9i
ZS5JbkNvcHkiLCAtMSwgNS4xKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFu
KEAiY29tLmFkb2JlLkluRGVzaWduIiwgLTEsIDUuMSkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9u
Q2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5Tb3VuZGJvb3RoIiwgLTEsIDIpOworICAgIHN0YXRp
YyBCT09MIG5lZWRzUXVpcmsgPSBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29t
LmFkb2JlLkFjcm9iYXQiKSwgLTEsIDkuMCkKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lvbkNoZWNr
TGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5BY3JvYmF0LlBybyIpLCAtMSwgOS4wKQorICAgICAg
ICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLlJlYWRlciIp
LCAtMSwgOS4wKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigi
Y29tLmFkb2JlLmRpc3RpbGxlciIpLCAtMSwgOS4wKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9u
Q2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLkNvbnRyaWJ1dGUiKSwgLTEsIDQuMikKKyAg
ICAgICAgfHwgX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5kcmVh
bXdlYXZlci05LjAiKSwgLTEsIDkuMSkKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lvbkNoZWNrTGVz
c1RoYW4oQ0ZTVFIoImNvbS5tYWNyb21lZGlhLmZpcmV3b3JrcyIpLCAtMSwgOS4xKQorICAgICAg
ICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLkluQ29weSIp
LCAtMSwgNS4xKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigi
Y29tLmFkb2JlLkluRGVzaWduIiksIC0xLCA1LjEpCisgICAgICAgIHx8IF9DRkFwcFZlcnNpb25D
aGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuU291bmRib290aCIpLCAtMSwgMik7CiAKICAg
ICByZXR1cm4gbmVlZHNRdWlyazsKIH0KQEAgLTI2MjYsMTMgKzI2MjcsMTMgQEAgLSAoQk9PTClf
bmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsKIC0gKEJPT0wpX25lZWRzTGlua0VsZW1lbnRU
ZXh0Q1NTUXVpcmsKIHsKICAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gIVdlYktpdExpbmtl
ZE9uT3JBZnRlcihXRUJLSVRfRklSU1RfVkVSU0lPTl9XSVRIT1VUX0xJTktfRUxFTUVOVF9URVhU
X0NTU19RVUlSSykKLSAgICAgICAgJiYgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5l
LWZyb250aWVyLnNoYWRlMTAiLCAtMSwgMTAuNik7CisgICAgICAgICYmIF9DRkFwcFZlcnNpb25D
aGVja0xlc3NUaGFuKENGU1RSKCJjb20uZS1mcm9udGllci5zaGFkZTEwIiksIC0xLCAxMC42KTsK
ICAgICByZXR1cm4gbmVlZHNRdWlyazsKIH0KIAogLSAoQk9PTClfbmVlZHNJc0xvYWRpbmdJbkFQ
SVNlbnNlUXVpcmsKIHsKLSAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gV0tBcHBWZXJzaW9u
Q2hlY2tMZXNzVGhhbihAImNvbS5hcHBsZS5pQWRQcm9kdWNlciIsIC0xLCAyLjEpOworICAgIHN0
YXRpYyBCT09MIG5lZWRzUXVpcmsgPSBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigi
Y29tLmFwcGxlLmlBZFByb2R1Y2VyIiksIC0xLCAyLjEpOwogICAgIAogICAgIHJldHVybiBuZWVk
c1F1aXJrOwogfQpAQCAtMjY0NSw3ICsyNjQ2LDcgQEAgLSAoQk9PTClfbmVlZHNLZXlib2FyZEV2
ZW50RGlzYW1iaWd1YXRpb25RdWlya3MKIAogLSAoQk9PTClfbmVlZHNGcmFtZUxvYWREZWxlZ2F0
ZVJldGFpblF1aXJrCiB7Ci0gICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IFdLQXBwVmVyc2lv
bkNoZWNrTGVzc1RoYW4oQCJjb20uZXF1aW51eC5pU2FsZTUiLCAtMSwgNS42KTsgICAgCisgICAg
c3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENGU1RS
KCJjb20uZXF1aW51eC5pU2FsZTUiKSwgLTEsIDUuNik7CiAgICAgcmV0dXJuIG5lZWRzUXVpcms7
CiB9CiAKQEAgLTI5MjcsNyArMjkyOCw3IEBAIC0gKHZvaWQpX3ByZWZlcmVuY2VzQ2hhbmdlZDoo
V2ViUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcwogICAgIHNldHRpbmdzLnNldE5lZWRzQWRvYmVG
cmFtZVJlbG9hZGluZ1F1aXJrKFtzZWxmIF9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlya10p
OwogICAgIHNldHRpbmdzLnNldFRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0KFtzZWxm
IF9uZWVkc0xpbmtFbGVtZW50VGV4dENTU1F1aXJrXSk7CiAgICAgc2V0dGluZ3Muc2V0TmVlZHNL
ZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MoW3NlbGYgX25lZWRzS2V5Ym9hcmRFdmVu
dERpc2FtYmlndWF0aW9uUXVpcmtzXSk7Ci0gICAgc2V0dGluZ3Muc2V0RW5mb3JjZUNTU01JTUVU
eXBlSW5Ob1F1aXJrc01vZGUoIVdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYXBwbGUu
aVdlYiIsIC0xLCAyLjEpKTsKKyAgICBzZXR0aW5ncy5zZXRFbmZvcmNlQ1NTTUlNRVR5cGVJbk5v
UXVpcmtzTW9kZSghX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hcHBsZS5p
V2ViIiksIC0xLCAyLjEpKTsKICAgICBzZXR0aW5ncy5zZXROZWVkc0lzTG9hZGluZ0luQVBJU2Vu
c2VRdWlyayhbc2VsZiBfbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmtdKTsKICAgICBzZXR0
aW5ncy5zZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoW3ByZWZlcmVuY2VzIHRleHRBcmVhc0FyZVJl
c2l6YWJsZV0pOwogICAgIHNldHRpbmdzLnNldEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFi
bGVkKFtwcmVmZXJlbmNlcyBleHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZF0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321022</attachid>
            <date>2017-09-16 20:29:47 -0700</date>
            <delta_ts>2017-09-18 09:21:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177029-20170916202946.patch</filename>
            <type>text/plain</type>
            <size>90629</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRhMDI0YTAxYjFiZjQy
OGFjOWFmNzIwZmJiOGY3NjQyNmRlZGM1OC4uOTE1OWMxYWE3ODFhMDFkMmRiZjEyMjk4MTlkNzFi
ZTk0NWUyOWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA5LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcHN0cmVhbSBtaXNj
ZWxsYW5lb3VzIFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzAyOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZzogVXNlZCAtZm9yY2VfbG9hZCBvZiBsaWJQQUwgaW5zdGVhZCBvZiAtT2JqQy4g
VGhpcyBmb3JjZXMKKyAgICAgICAgdGhlIGxpbmtlciB0byBsb2FkIGJvdGggT2JqZWN0aXZlLUMg
YW5kIEMgUEFMIHN5bWJvbHMgaW4gV2ViQ29yZS4gVGhpcyBjaGFuZ2UgaXMgbmVlZGVkIGZvcgor
ICAgICAgICBQQUw6OnBvcFVwTWVudSgpLCB3aGljaCBpcyB1c2VkIGJ5IFdlYktpdCBhbmQgV2Vi
S2l0TGVnYWN5IGJ1dCBub3QgV2ViQ29yZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Mb2Nh
bGl6ZWRTdHJpbmdzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdTZWFyY2hXZWIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIu
bW06CisgICAgICAgIChXZWJDb3JlOjplbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6ZWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKToKKyAgICAgICAgKFdlYkNv
cmU6OnJlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMpOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpXS0NvcmVD
dXJzb3JfY29yZUN1cnNvclR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ29yZUN1cnNv
ckNsYXNzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvcmVDdXJzb3JDbGFzcyk6CisgICAgICAgIChX
ZWJDb3JlOjpjdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yOjplbnN1cmVQbGF0Zm9y
bUN1cnNvciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5t
bToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRUZXh0QXJlYSk6CisKIDIwMTctMDktMTUgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCBj
YWxsaW5nIFN0cmluZzo6Zm9ybWF0KCkgaW4gUGxhdGZvcm1DQUZpbHRlcnM6OnNldEZpbHRlcnNP
bkxheWVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDI1MjNiNjgyMzUwNGVlYzdmNzg3MGEwYTI2
MGQyMzA1MWFlM2JiOTMuLjY1NzgzMDY4MjEwYTI2OGEzNzdkMGRlNDc3ZTVhYTRjYjk1Mjc0YTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE3LTA5LTE1ICBBbmR5IEVz
dGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcHN0cmVhbSBtaXNjZWxs
YW5lb3VzIFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzAyOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogcGFsL1BsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIHBhbC9z
cGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaDoKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0xhdW5jaFNl
cnZpY2VzU1BJLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3Mv
TGF1bmNoU2VydmljZXNTUEkuaC4KKyAgICAgICAgKiBwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJ
Lmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvTlNDZWxsU1BJLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmguCisgICAgICAgICogcGFs
L3NwaS9tYWMvTlNNZW51U1BJLmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvTlNTY3JvbGxWaWV3
U1BJLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0
aWVzU1BJLmguCisgICAgICAgICogcGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oOgorICAg
ICAgICAqIHBhbC9zeXN0ZW0vY2YvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaC4KKyAgICAg
ICAgKFBBTDo6ZGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOgorICAgICAgICAqIHBh
bC9zeXN0ZW0vY2YvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmguCisgICAgICAgICogcGFsL3N5
c3RlbS9tYWMvUG9wdXBNZW51Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NmL0NGVXRpbGl0aWVzU1BJLmguCisgICAgICAgICogcGFsL3N5c3RlbS9tYWMvUG9wdXBN
ZW51Lm1tOiBBZGRlZC4KKyAgICAgICAgKFBBTDo6cG9wVXBNZW51KToKKwogMjAxNy0wOS0xNSAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhl
IG1hY09TIENNYWtlIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE0MDJmMWUzYzg2MzlkYmZkMjJjZDU5Yjhk
NjZjMDE2ODk5NmUwNjEuLjFlOGMzZjVhMTFlOTljNTk5NTlhOTA4YjQ5MGE1MTE5NzE2OTc4ZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTctMDktMTUgIEFuZHkgRXN0ZXMgIDxhZXN0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIFVwc3RyZWFtIG1pc2NlbGxhbmVvdXMgV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NN
YWMubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vz
c05hbWUpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6
CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvbWFjL1N0b3JhZ2VQcm9jZXNzTWFjLm1tOgorICAg
ICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6
OnRyYWNraW5nQXJlYU9wdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWln
aHRCZWdpblNjcm9sbFdoaWxlSW5hY3RpdmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2Vi
UG9wdXBNZW51UHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5
TWFjOjpzaG93UG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBs
dWdpbjo6cG9wVXBDb250ZXh0TWVudSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6aGFuZGxlQ29udGV4
dE1lbnVFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdlcyk6CisKIDIwMTctMDktMTUgIEpG
IEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdURjogdXNlIEZvcndh
cmQuaCB3aGVuIGFwcHJvcHJpYXRlIGluc3RlYWQgb2YgVmVjdG9yLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwppbmRleCA4ZDk4ZDQwMDY2NmJkYTJhOTExNmM0MjQwMmUxMDQ2NDU2MjI4NTA3
Li42NDBiMmQ2OTFmMWFjMWNhYmIzNzk5MmYwMzExYzEzOGIxMjk4YzA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzAgQEAKIDIwMTctMDktMTUgIEFuZHkgRXN0ZXMg
IDxhZXN0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFtNYWNdIFVwc3RyZWFtIG1pc2NlbGxhbmVv
dXMgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRD
b250ZXh0TWVudURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJEZWZhdWx0VUlEZWxlZ2F0ZSBt
ZW51SXRlbVdpdGhUYWc6dGFyZ2V0OnJlcHJlc2VudGVkT2JqZWN0Ol0pOgorICAgICAgICAqIFBs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbToKKyAgICAgICAgKFBvcHVwTWVu
dU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNl
Lm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOgorICAgICAgICAqIFdl
YlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNldERhdGFTb3Vy
Y2U6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0dGFjaFJvb3RMYXllcjpdKToKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX25lZWRzQWRvYmVG
cmFtZVJlbG9hZGluZ1F1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX25lZWRzTGlua0VsZW1l
bnRUZXh0Q1NTUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNJc0xvYWRpbmdJbkFQ
SVNlbnNlUXVpcmtdKToKKyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNGcmFtZUxvYWREZWxlZ2F0
ZVJldGFpblF1aXJrXSk6CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpd
KToKKworMjAxNy0wOS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKICAgICAg
ICAgW0NvY29hXSBVcHN0cmVhbSBNZWRpYVJlbW90ZSBhbmQgVmlkZW9Ub29sYm94IFdlYktpdFN5
c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3Njk1MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25m
aWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlv
bnMvV2ViQ29yZS54Y2NvbmZpZwppbmRleCA3NjY2N2JhZTc0MDQ3MWQ3NDVhOTUxMjIwNWViMWNm
NDlkN2EzMjM1Li5iMDNkZDRjZThhMjM2YjczZTg4OThlN2Y5ZGJkMzhmNWZhY2M4MmM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKQEAgLTc3
LDcgKzc3LDcgQEAgTElCV0VCUlRDX0xJQlJBUllfRElSX1VTRV9PVkVSUklERV9GUkFNRVdPUktT
X0RJUl9OTyA9ICQoV0VCQ09SRV9GUkFNRVdPUktTX0RJUikKIExJQldFQlJUQ19MSUJSQVJZX0RJ
Ul9VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfWUVTID0gJChXS19PVkVSUklERV9GUkFNRVdP
UktTX0RJUik7CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19SRUxPQ0FUQUJM
RV9GUkFNRVdPUktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9MU19MREZMQUdTKSAkKE9U
SEVSX0xERkxBR1NfUExBVEZPUk0pOwotT1RIRVJfTERGTEFHU19CQVNFID0gLWxzcWxpdGUzIC1s
b2JqYyAtbEFOR0xFIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgTWV0YWwgLWFsbG93
YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVfY2xpZW50IFdlYktpdExl
Z2FjeSAtT2JqQzsKK09USEVSX0xERkxBR1NfQkFTRSA9IC1sc3FsaXRlMyAtbG9iamMgLWxBTkdM
RSAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIE1ldGFsIC1hbGxvd2FibGVfY2xpZW50
IFdlYkNvcmVUZXN0U3VwcG9ydCAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRMZWdhY3kgLWZvcmNl
X2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlBBTC5hOwogLy8gRklYTUU6IFJlZHVjZSB0
aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnQgPHJkYXI6Ly9wcm9ibGVtLzMxODIzOTY5Pgog
T1RIRVJfTERGTEFHU19CQVNFX2lvcyA9ICQoT1RIRVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3Jr
IENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1m
cmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBNb2JpbGVD
b3JlU2VydmljZXMgLWZyYW1ld29yayBPcGVuR0xFUyAtbE1vYmlsZUdlc3RhbHQgJChXS19JT1Nf
QklOQ09NUEFUX0xERkxBR1MpIC1hbGxvd2FibGVfY2xpZW50IFdlYktpdCAtYWxsb3dhYmxlX2Ns
aWVudCBpVHVuZXNVIC1hbGxvd2FibGVfY2xpZW50IENhc2FibGFuY2EgLWFsbG93YWJsZV9jbGll
bnQgUmVtb3RlIC1hbGxvd2FibGVfY2xpZW50IFRWQm9va3MgLWFsbG93YWJsZV9jbGllbnQgRHVt
cFJlbmRlclRyZWUgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0VGVzdFJ1bm5lciAtYWxsb3dhYmxl
X2NsaWVudCBUZXN0V2ViS2l0QVBJOwogT1RIRVJfTERGTEFHU19QTEFURk9STVtzZGs9aXBob25l
b3MqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZy
YW1ld29yayBHcmFwaGljc1NlcnZpY2VzICQoTElCV0VCUlRDX0xERkxBR1MpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNhYjE0
Y2Q0YTdmZGIxYjdlZjRlYjg1NWRkYTlhZWFkNWVhOGM0OWIuLmYzM2M4ZDE5NmYwYzZmZjJmZDVi
OTBhODExMzA0ZTA0YzkwZDFhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNyw2ICsxMDcsMTIgQEAKIAkJQTEwODI2RkEx
RjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVs
Lm1tICovOyB9OwogCQlBMTA4MjZGRTFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFwaGljc1NQSS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RkQx
RjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCAqLzsgfTsKIAkJQTExNzVCNDkxRjZB
RkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNDgxRjZBRkY4RTAwQzRCOUYwIC8qIFNw
ZWVjaFN5bnRoZXNpc1NQSS5oICovOyB9OworCQlBMTE3NUI0QjFGNkIyRDdFMDBDNEI5RjAgLyog
TlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggKi87IH07CisJCUExMTc1
QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1
cE1lbnUuaCAqLzsgfTsKKwkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRE
MUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gKi87IH07CisJCUExMTc1QjU3MUY2QjQ3
MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjU1MUY2QjQ3MDUwMEM0QjlGMCAvKiBE
ZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCAqLzsgfTsKKwkJQTExNzVCNTgxRjZCNDcwNTAwQzRCOUYw
IC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI1NjFGNkI0NzA1MDBDNEI5RjAgLyogRGVmYXVsdFNl
YXJjaFByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJQTExNzVCNUExRjZCNEE4NDAwQzRCOUYwIC8qIE5T
U2Nyb2xsVmlld1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTExNzVCNTkxRjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oICovOyB9
OwogCQlBMUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1RENFMUY1NTI4RUMwMEVE
Qjc1RiAvKiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFGMEREMEVBMDBCNzE5NTQg
LyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9OwogCQlBMzBE
NDEyMjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMUYxRjBERDBFQTAwQjcxOTU0IC8qIEtp
bGxSaW5nLmNwcCAqLzsgfTsKQEAgLTIyOSw2ICsyMzUsMTIgQEAKIAkJQTEwODI2RjgxRjU3NjI5
MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUGFuZWwu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMDgyNkZEMUY1OEE0MzMwMDQ3NzJB
QyAvKiBOU0dyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TR3JhcGhpY3NTUEkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNzVCNDgxRjZBRkY4RTAwQzRCOUYwIC8qIFNw
ZWVjaFN5bnRoZXNpc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hTeW50aGVzaXNTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEExRjZCMkQ3RTAwQzRCOUYwIC8q
IE5TQ2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0NlbGxTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTExNzVCNEMxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFBvcHVwTWVudS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExNzVC
NTUxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBMTE3NUI1OTFGNkI0QTg0MDBDNEI5RjAgLyogTlNTY3JvbGxW
aWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TU2Nyb2xsVmlld1NQSS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWV0YWRhdGFTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLaWxsUmluZy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zMDcsNiArMzE5LDcgQEAKIAkJCQkwQzJEQTEyODFGM0JFQjQ5MDBE
QkMzMTcgLyogSU9SZXR1cm5TUEkuaCAqLywKIAkJCQkwQzJEQTEyOTFGM0JFQjQ5MDBEQkMzMTcg
LyogSU9TdXJmYWNlU1BJLmggKi8sCiAJCQkJMEMyREExMkExRjNCRUI0OTAwREJDMzE3IC8qIElP
VHlwZXNTUEkuaCAqLywKKwkJCQkwQzVBRjkxMjFGNDNBNEM3MDAyRUFDMDIgLyogTGF1bmNoU2Vy
dmljZXNTUEkuaCAqLywKIAkJCQkwQzJEQTEyQjFGM0JFQjQ5MDBEQkMzMTcgLyogTGlua1ByZXNl
bnRhdGlvblNQSS5oICovLAogCQkJCTBDMkRBMTJDMUYzQkVCNDkwMERCQzMxNyAvKiBNYWNoVk1T
UEkuaCAqLywKIAkJCQkwQzJEQTEyRDFGM0JFQjQ5MDBEQkMzMTcgLyogTkVGaWx0ZXJTb3VyY2VT
UEkuaCAqLywKQEAgLTMzNiw3ICszNDksNiBAQAogCQkJCTBDNUFGOTBGMUY0M0E0QzcwMDJFQUMw
MiAvKiBDb3JlVUlTUEkuaCAqLywKIAkJCQkwQzVBRjkxMDFGNDNBNEM3MDAyRUFDMDIgLyogRGF0
YURldGVjdG9yc1VJU1BJLmggKi8sCiAJCQkJMEM1QUY5MTExRjQzQTRDNzAwMkVBQzAyIC8qIEdy
YXBoaWNzU2VydmljZXNTUEkuaCAqLywKLQkJCQkwQzVBRjkxMjFGNDNBNEM3MDAyRUFDMDIgLyog
TGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkwQzVBRjkxMzFGNDNBNEM3MDAyRUFDMDIgLyog
TWVkaWFQbGF5ZXJTUEkuaCAqLywKIAkJCQkwQzVBRjkxNDFGNDNBNEM3MDAyRUFDMDIgLyogTW9i
aWxlR2VzdGFsdFNQSS5oICovLAogCQkJCTBDNUFGOTE1MUY0M0E0QzcwMDJFQUMwMiAvKiBPcGVu
R0xFU1NQSS5oICovLApAQCAtMzU5LDYgKzM3MSw3IEBACiAJCQkJQTFGNTVEQ0UxRjU1MjhFQzAw
RURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzQxRjQ1MTMwRjAwRjRFQkI2
IC8qIE5TQWNjZXNzaWJpbGl0eVNQSS5oICovLAogCQkJCTBDNzc4NTc1MUY0NTEzMEYwMEY0RUJC
NiAvKiBOU0FwcGxpY2F0aW9uU1BJLmggKi8sCisJCQkJQTExNzVCNEExRjZCMkQ3RTAwQzRCOUYw
IC8qIE5TQ2VsbFNQSS5oICovLAogCQkJCTBDNzc4NTc2MUY0NTEzMEYwMEY0RUJCNiAvKiBOU0V2
ZW50U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzcxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TRm9udFNQSS5o
ICovLAogCQkJCUExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi8s
CkBAIC0zNzAsNiArMzgzLDcgQEAKIAkJCQkwQzc3ODU3QzFGNDUxMzBGMDBGNEVCQjYgLyogTlNT
Y3JvbGxlckltcFNQSS5oICovLAogCQkJCTBDNzc4NTdEMUY0NTEzMEYwMEY0RUJCNiAvKiBOU1Nj
cm9sbGluZ0lucHV0RmlsdGVyU1BJLmggKi8sCiAJCQkJMEM3Nzg1N0UxRjQ1MTMwRjAwRjRFQkI2
IC8qIE5TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yU1BJLmggKi8sCisJCQkJQTExNzVCNTkx
RjZCNEE4NDAwQzRCOUYwIC8qIE5TU2Nyb2xsVmlld1NQSS5oICovLAogCQkJCTBDNzc4NTdGMUY0
NTEzMEYwMEY0RUJCNiAvKiBOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggKi8sCiAJCQkJMEM3
Nzg1ODAxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2hhcmluZ1NlcnZpY2VTUEkuaCAqLywKIAkJCQkw
Qzc3ODU4MTFGNDUxMzBGMDBGNEVCQjYgLyogTlNTcGVsbENoZWNrZXJTUEkuaCAqLywKQEAgLTQ4
Niw2ICs1MDAsMTAgQEAKIAkJQTM3ODhFQTAxRjA1QjdFMjAwNjc5NDI1IC8qIG1hYyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQTExNzVCNTYxRjZCNDcw
NTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgKi8sCisJCQkJQTExNzVCNTUx
RjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICovLAorCQkJCUExMTc1
QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLywKKwkJCQlBMTE3NUI0RDFGNkIz
MzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tICovLAogCQkJCUEzNzg4RTlEMUYwNUI3OEUwMDY3
OTQyNSAvKiBTb3VuZE1hYy5tbSAqLywKIAkJCQlBM0FCNkU2MjFGM0QyMTdGMDA5QzE0QjEgLyog
U3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oICovLAogCQkJCUEzQUI2RTYzMUYzRDIxN0YwMDlDMTRC
MSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tICovLApAQCAtNTI4LDYgKzU0Niw3IEBACiAJ
CQkJMEMyREExNDExRjNCRUI0OTAwREJDMzE3IC8qIERhdGFEZXRlY3RvcnNDb3JlU1BJLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVCQjYgLyogRGF0YURldGVjdG9y
c1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUExRjQzQTRDNzAwMkVBQzAyIC8qIERh
dGFEZXRlY3RvcnNVSVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTExNzVCNTcxRjZCNDcwNTAw
QzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMy
RDlFNzMxRUVGNUFGNjAwREJDMzE3IC8qIEV4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTEwMjY1ODcxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5kYXRpb25TUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBDNUFGOTFCMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFwaGljc1NlcnZpY2VzU1BJ
LmggaW4gSGVhZGVycyAqLywKQEAgLTU1Niw2ICs1NzUsNyBAQAogCQkJCTBDMkRBMTRBMUYzQkVC
NDkwMERCQzMxNyAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBDMkRBMTRCMUYzQkVCNDkwMERCQzMxNyAvKiBOU0J1dHRvbkNlbGxTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBDMkRBMTRDMUYzQkVCNDkwMERCQzMxNyAvKiBOU0NhbGVuZGFyRGF0ZVNQSS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQTExNzVCNEIxRjZCMkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQ
SS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNEQxRjNCRUI0OTAwREJDMzE3IC8qIE5TQ29s
b3JTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThGMUY0NTEzMEYwMEY0RUJCNiAvKiBO
U0V2ZW50U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0RTFGM0JFQjQ5MDBEQkMzMTcg
LyogTlNFeHRlbnNpb25TUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTcwLDYgKzU5MCw3IEBACiAJ
CQkJMEM3Nzg1OTUxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TU2Nyb2xsZXJJbXBTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBDNzc4NTk2MUY0NTEzMEYwMEY0RUJCNiAvKiBOU1Njcm9sbGluZ0lucHV0
RmlsdGVyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5NzFGNDUxMzBGMDBGNEVCQjYg
LyogTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUExMTc1QjVBMUY2QjRBODQwMEM0QjlGMCAvKiBOU1Njcm9sbFZpZXdTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBDNzc4NTk4MUY0NTEzMEYwMEY0RUJCNiAvKiBOU1NoYXJpbmdTZXJ2aWNlUGlj
a2VyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5OTFGNDUxMzBGMDBGNEVCQjYgLyog
TlNTaGFyaW5nU2VydmljZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM3Nzg1OUExRjQ1MTMw
RjAwRjRFQkI2IC8qIE5TU3BlbGxDaGVja2VyU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTU4NCw2
ICs2MDUsNyBAQAogCQkJCTBDNUFGOTFGMUY0M0E0QzcwMDJFQUMwMiAvKiBPcGVuR0xFU1NQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNTUxRjNCRUI0OTAwREJDMzE3IC8qIFBhc3NLaXRT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NTlFMUY0NTEzMEYwMEY0RUJCNiAvKiBQSVBT
UEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMTc1QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1
cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU2MUYzQkVCNDkwMERCQzMxNyAvKiBw
dGhyZWFkU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU5RjFGNDUxMzBGMDBGNEVCQjYg
LyogUVRLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU3MUYzQkVCNDkwMERCQzMx
NyAvKiBRdWFydHpDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTY5Miw4ICs3MTQsMTAgQEAK
IAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQkxQzA5
RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUExMTc1QjU4MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNo
UHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTMwRDQxMjIxRjBERDBFQTAwQjcxOTU0
IC8qIEtpbGxSaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0MTI1MUYwREQxMkQwMEI3
MTk1NCAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUExMTc1QjRGMUY2QjMz
NzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gaW4gU291cmNlcyAqLywKIAkJCQlBM0M2NkNEQzFG
NDYyRDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzQUI2
RTUyMUYzRDFEQzUwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUEzQUI2RTYwMUYzRDFFMzkwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyQ29jb2EuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3Jt
TWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybU1hYy5jbWFrZQppbmRl
eCBkODczZDcyMjk3MTZlZGYzMzRkZjRiNTEwMGRiNmVhMzViYzgyZjZiLi45ZDU3ZmY3ODRmYzFk
ZDExNDkzNjIzZDY1MzZmYzM4YmY3NTc2YjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxh
dGZvcm1NYWMuY21ha2UKQEAgLTMsNiArMyw4IEBAIGxpc3QoQVBQRU5EIFBBTF9TT1VSQ0VTCiAK
ICAgICBzeXN0ZW0vY29jb2EvU2xlZXBEaXNhYmxlckNvY29hLmNwcAogCisgICAgc3lzdGVtL21h
Yy9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwCisgICAgc3lzdGVtL21hYy9Qb3B1cE1lbnUubW0K
ICAgICBzeXN0ZW0vbWFjL1NvdW5kTWFjLm1tCiAgICAgc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExp
c3RlbmVyTWFjLm1tCiAgICAgc3lzdGVtL21hYy9XZWJQYW5lbC5tbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmgKaW5kZXggZmM4Y2Q3OTI3NjJiZjBh
NzYyMGExMmFjZjEyMGZhMzA5YTM3OGZmYy4uNWE2M2E0NzBjNTk0ZjE4YjlkNzM2NzQ4OWJhNDQ1
NjBkODk3OTNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZV
dGlsaXRpZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxp
dGllc1NQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI1LDE3ICsyNSwzMSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPENv
cmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+Ci0KICNpZiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQorCiAjaW1wb3J0IDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4KKworI2Vsc2UKKworI2lu
Y2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CisKK3R5cGVkZWYgQ0ZfRU5V
TShDRkluZGV4LCBDRlN5c3RlbVZlcnNpb24pIHsKKyAgICBDRlN5c3RlbVZlcnNpb25MaW9uID0g
NywKKyAgICBDRlN5c3RlbVZlcnNpb25Nb3VudGFpbkxpb24gPSA4LAorfTsKKwogI2VuZGlmCiAK
IFdURl9FWFRFUk5fQ19CRUdJTgogCi1DRkRpY3Rpb25hcnlSZWYgX0NGQ29weVN5c3RlbVZlcnNp
b25EaWN0aW9uYXJ5KHZvaWQpOwotZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZTeXN0ZW1W
ZXJzaW9uUHJvZHVjdFZlcnNpb25LZXk7CitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NGV2Vi
U2VydmljZXNQcm92aWRlckRlZmF1bHREaXNwbGF5TmFtZUtleTsKK2V4dGVybiBjb25zdCBDRlN0
cmluZ1JlZiBrQ0ZXZWJTZXJ2aWNlc1R5cGVXZWJTZWFyY2g7CiBleHRlcm4gY29uc3QgQ0ZTdHJp
bmdSZWYgX2tDRlN5c3RlbVZlcnNpb25CdWlsZFZlcnNpb25LZXk7CitleHRlcm4gY29uc3QgQ0ZT
dHJpbmdSZWYgX2tDRlN5c3RlbVZlcnNpb25Qcm9kdWN0VmVyc2lvbktleTsKIAotV1RGX0VYVEVS
Tl9DX0VORAorQm9vbGVhbiBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlN0cmluZ1JlZiBi
dW5kbGVJRCwgaW50IGxpbmtlZE9uQW5PbGRlclN5c3RlbVRoYW4sIGRvdWJsZSB2ZXJzaW9uTnVt
YmVyTGVzc1RoYW4pOworQm9vbGVhbiBfQ0ZFeGVjdXRhYmxlTGlua2VkT25PckFmdGVyKENGU3lz
dGVtVmVyc2lvbik7CitDRkRpY3Rpb25hcnlSZWYgX0NGQ29weVN5c3RlbVZlcnNpb25EaWN0aW9u
YXJ5KCk7CitDRkRpY3Rpb25hcnlSZWYgX0NGV2ViU2VydmljZXNDb3B5UHJvdmlkZXJJbmZvKENG
U3RyaW5nUmVmIHNlcnZpY2VUeXBlLCBCb29sZWFuKiBvdXRJc1VzZXJTZWxlY3Rpb24pOwogCitX
VEZfRVhURVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvTGF1bmNoU2VydmljZXNTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTJiY2ZjZjExZmQ5NzA1MGRhMzZk
ZmI4NWE2MWYxZmUxNmY4MDY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaApAQCAtMCwwICsxLDg4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0
aW9uLmg+CisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaWYgUExBVEZPUk0oTUFD
KQorI2ltcG9ydCA8TGF1bmNoU2VydmljZXMvTGF1bmNoU2VydmljZXNQcml2Lmg+CisjZWxpZiBQ
TEFURk9STShJT1MpCisjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTFNBcHBMaW5rUHJpdi5o
PgorI2VuZGlmCisKKyNlbmRpZgorCitAY2xhc3MgTFNBcHBMaW5rOwordHlwZWRlZiB2b2lkIChe
TFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpKExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAq
ZXJyb3IpOwordHlwZWRlZiB2b2lkICheTFNBcHBMaW5rT3BlbkNvbXBsZXRpb25IYW5kbGVyKShC
T09MIHN1Y2Nlc3MsIE5TRXJyb3IgKmVycm9yKTsKKworI2lmICFVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQorCitAaW50ZXJmYWNlIExTUmVzb3VyY2VQcm94eSA6IE5TT2JqZWN0IDxOU0NvcHlpbmcs
IE5TU2VjdXJlQ29kaW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExTQnVuZGxlUHJveHkgOiBMU1Jl
c291cmNlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgorQGVuZAorCitAaW50ZXJmYWNlIExTQXBwbGlj
YXRpb25Qcm94eSA6IExTQnVuZGxlUHJveHkgPE5TU2VjdXJlQ29kaW5nPgorLSAoTlNTdHJpbmcg
Kilsb2NhbGl6ZWROYW1lRm9yQ29udGV4dDooTlNTdHJpbmcgKiljb250ZXh0OworQGVuZAorCitA
aW50ZXJmYWNlIExTQXBwTGluayA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KK0BlbmQKKwor
QGludGVyZmFjZSBMU0FwcExpbmsgKCkKKysgKHZvaWQpZ2V0QXBwTGlua1dpdGhVUkw6KE5TVVJM
ICopYVVSTCBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rQ29tcGxldGlvbkhhbmRsZXIpY29t
cGxldGlvbkhhbmRsZXI7CisrICh2b2lkKW9wZW5XaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxl
dGlvbkhhbmRsZXI6KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFu
ZGxlcjsKKy0gKHZvaWQpb3BlbkluV2ViQnJvd3NlcjooQk9PTClpbldlYkJyb3dzZXIgc2V0QXBw
cm9wcmlhdGVPcGVuU3RyYXRlZ3lBbmRXZWJCcm93c2VyU3RhdGU6KE5TRGljdGlvbmFyeTxOU1N0
cmluZyAqLCBpZD4gKilzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooTFNBcHBMaW5rT3BlbkNvbXBs
ZXRpb25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ry
b25nKSBMU0FwcGxpY2F0aW9uUHJveHkgKnRhcmdldEFwcGxpY2F0aW9uUHJveHk7CitAZW5kCisK
KyNpZiBQTEFURk9STShNQUMpCitlbnVtIExTU2Vzc2lvbklEIHsKKyAgICBrTFNEZWZhdWx0U2Vz
c2lvbklEID0gLTIsCit9OworI2VuZGlmCisKKyNlbmRpZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKworI2lmIFBMQVRGT1JNKE1BQykKKwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgQ0ZfQlJJ
REdFRF9UWVBFKGlkKSBfX0xTQVNOKiBMU0FTTlJlZjsKK3R5cGVkZWYgZW51bSBMU1Nlc3Npb25J
RCBMU1Nlc3Npb25JRDsKKworV1RGX0VYVEVSTl9DX0JFR0lOCisKK2V4dGVybiBjb25zdCBDRlN0
cmluZ1JlZiBfa0xTRGlzcGxheU5hbWVLZXk7CisKK0xTQVNOUmVmIF9MU0dldEN1cnJlbnRBcHBs
aWNhdGlvbkFTTigpOworT1NTdGF0dXMgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0o
TFNTZXNzaW9uSUQsIExTQVNOUmVmLCBDRlN0cmluZ1JlZiBrZXlUb1NldFJlZiwgQ0ZUeXBlUmVm
IHZhbHVlVG9TZXRSZWYsIENGRGljdGlvbmFyeVJlZiogbmV3SW5mb3JtYXRpb25EaWN0UmVmKTsK
KworV1RGX0VYVEVSTl9DX0VORAorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL0xhdW5jaFNlcnZpY2VzU1BJLmggYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTGF1bmNoU2VydmljZXNTUEkuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTZhOGIyZTRmY2JlZTE1MTFlOGMwYzQzYjdhYmQ1Nzg1
MjI4MTgyMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTGF1bmNoU2VydmljZXNTUEkuaAorKysgL2Rl
di9udWxsCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lt
cG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQotCi0jaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTFNBcHBMaW5rUHJpdi5oPgotCi0j
ZW5kaWYKLQotQGNsYXNzIExTQXBwTGluazsKLXR5cGVkZWYgdm9pZCAoXkxTQXBwTGlua0NvbXBs
ZXRpb25IYW5kbGVyKShMU0FwcExpbmsgKmFwcExpbmssIE5TRXJyb3IgKmVycm9yKTsKLXR5cGVk
ZWYgdm9pZCAoXkxTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlcikoQk9PTCBzdWNjZXNzLCBO
U0Vycm9yICplcnJvcik7Ci0KLSNpZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLQotQGludGVy
ZmFjZSBMU1Jlc291cmNlUHJveHkgOiBOU09iamVjdCA8TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGlu
Zz4KLUBlbmQKLQotQGludGVyZmFjZSBMU0J1bmRsZVByb3h5IDogTFNSZXNvdXJjZVByb3h5IDxO
U1NlY3VyZUNvZGluZz4KLUBlbmQKLQotQGludGVyZmFjZSBMU0FwcGxpY2F0aW9uUHJveHkgOiBM
U0J1bmRsZVByb3h5IDxOU1NlY3VyZUNvZGluZz4KLS0gKE5TU3RyaW5nICopbG9jYWxpemVkTmFt
ZUZvckNvbnRleHQ6KE5TU3RyaW5nICopY29udGV4dDsKLUBlbmQKLQotQGludGVyZmFjZSBMU0Fw
cExpbmsgOiBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+Ci1AZW5kCi0KLUBpbnRlcmZhY2UgTFNB
cHBMaW5rICgpCi0rICh2b2lkKWdldEFwcExpbmtXaXRoVVJMOihOU1VSTCAqKWFVUkwgY29tcGxl
dGlvbkhhbmRsZXI6KExTQXBwTGlua0NvbXBsZXRpb25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVy
OwotKyAodm9pZClvcGVuV2l0aFVSTDooTlNVUkwgKilhVVJMIGNvbXBsZXRpb25IYW5kbGVyOihM
U0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIpY29tcGxldGlvbkhhbmRsZXI7Ci0tICh2b2lk
KW9wZW5JbldlYkJyb3dzZXI6KEJPT0wpaW5XZWJCcm93c2VyIHNldEFwcHJvcHJpYXRlT3BlblN0
cmF0ZWd5QW5kV2ViQnJvd3NlclN0YXRlOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICop
c3RhdGUgY29tcGxldGlvbkhhbmRsZXI6KExTQXBwTGlua09wZW5Db21wbGV0aW9uSGFuZGxlcilj
b21wbGV0aW9uSGFuZGxlcjsKLUBwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgTFNBcHBsaWNh
dGlvblByb3h5ICp0YXJnZXRBcHBsaWNhdGlvblByb3h5OwotQGVuZAotCi0jZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmggYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oCmluZGV4IGEzNTVi
OTRmZTYzMDkyZWY1YWNkMGI1Yzk1ZTAzZGQ0NmU5NTM4MTUuLmFhZDQzNDliOWY1ODA1YWZkNTc3
NDY2NTk5NDdiMDBhNjgzMmY0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL21hYy9ISVNlcnZpY2VzU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
bWFjL0hJU2VydmljZXNTUEkuaApAQCAtMjUsMTMgKzI1LDY0IEBACiAKICNwcmFnbWEgb25jZQog
CisjaW5jbHVkZSA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KKwogI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCiAKICNpbmNsdWRlIDxISVNlcnZpY2VzL0FYVGV4dE1hcmtlci5oPgor
I2luY2x1ZGUgPEhJU2VydmljZXMvQ29yZUN1cnNvci5oPgogI2luY2x1ZGUgPEhJU2VydmljZXMv
Q29yZURyYWcuaD4KIAogI2Vsc2UKIAordHlwZWRlZiBDRl9FTlVNKFNJbnQzMiwgQ29yZUN1cnNv
clR5cGUpIHsKKyAgICBrQ29yZUN1cnNvckZpcnN0Q3Vyc29yID0gMCwKKyAgICBrQ29yZUN1cnNv
ckFycm93ID0ga0NvcmVDdXJzb3JGaXJzdEN1cnNvciwKKyAgICBrQ29yZUN1cnNvcklCZWFtLAor
ICAgIGtDb3JlQ3Vyc29yTWFrZUFsaWFzLAorICAgIGtDb3JlQ3Vyc29yTm90QWxsb3dlZCwKKyAg
ICBrQ29yZUN1cnNvckJ1c3lCdXRDbGlja2FibGUsCisgICAga0NvcmVDdXJzb3JDb3B5LAorICAg
IGtDb3JlQ3Vyc29yU2NyZWVuU2hvdFNlbGVjdGlvbiA9IDcsCisgICAga0NvcmVDdXJzb3JTY3Jl
ZW5TaG90U2VsZWN0aW9uVG9DbGlwLAorICAgIGtDb3JlQ3Vyc29yU2NyZWVuU2hvdFdpbmRvdywK
KyAgICBrQ29yZUN1cnNvclNjcmVlblNob3RXaW5kb3dUb0NsaXAsCisgICAga0NvcmVDdXJzb3JD
bG9zZWRIYW5kLAorICAgIGtDb3JlQ3Vyc29yT3BlbkhhbmQsCisgICAga0NvcmVDdXJzb3JQb2lu
dGluZ0hhbmQsCisgICAga0NvcmVDdXJzb3JDb3VudGluZ1VwSGFuZCwKKyAgICBrQ29yZUN1cnNv
ckNvdW50aW5nRG93bkhhbmQsCisgICAga0NvcmVDdXJzb3JDb3VudGluZ1VwQW5kRG93bkhhbmQs
CisgICAga0NvcmVDdXJzb3JSZXNpemVMZWZ0LAorICAgIGtDb3JlQ3Vyc29yUmVzaXplUmlnaHQs
CisgICAga0NvcmVDdXJzb3JSZXNpemVMZWZ0UmlnaHQsCisgICAga0NvcmVDdXJzb3JDcm9zcywK
KyAgICBrQ29yZUN1cnNvclJlc2l6ZVVwLAorICAgIGtDb3JlQ3Vyc29yUmVzaXplRG93biwKKyAg
ICBrQ29yZUN1cnNvclJlc2l6ZVVwRG93biwKKyAgICBrQ29yZUN1cnNvckNvbnRleHR1YWxNZW51
LAorICAgIGtDb3JlQ3Vyc29yUG9vZiwKKyAgICBrQ29yZUN1cnNvcklCZWFtVmVydGljYWwsCisg
ICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVFYXN0LAorICAgIGtDb3JlQ3Vyc29yV2luZG93UmVz
aXplRWFzdFdlc3QsCisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aEVhc3QsCisgICAg
a0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aEVhc3RTb3V0aFdlc3QsCisgICAga0NvcmVDdXJz
b3JXaW5kb3dSZXNpemVOb3J0aCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoU291
dGgsCisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aFdlc3QsCisgICAga0NvcmVDdXJz
b3JXaW5kb3dSZXNpemVOb3J0aFdlc3RTb3V0aEVhc3QsCisgICAga0NvcmVDdXJzb3JXaW5kb3dS
ZXNpemVTb3V0aEVhc3QsCisgICAga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aCwKKyAgICBr
Q29yZUN1cnNvcldpbmRvd1Jlc2l6ZVNvdXRoV2VzdCwKKyAgICBrQ29yZUN1cnNvcldpbmRvd1Jl
c2l6ZVdlc3QsCisgICAga0NvcmVDdXJzb3JXaW5kb3dNb3ZlLAorICAgIGtDb3JlQ3Vyc29ySGVs
cCwKKyAgICBrQ29yZUN1cnNvckNlbGwsCisgICAga0NvcmVDdXJzb3Jab29tSW4sCisgICAga0Nv
cmVDdXJzb3Jab29tT3V0LAorICAgIGtDb3JlQ3Vyc29yTGFzdEN1cnNvciA9IGtDb3JlQ3Vyc29y
Wm9vbU91dAorfTsKKwogZW51bSB7CiAgICAga0NvcmVEcmFnSW1hZ2VTcGVjVmVyc2lvbk9uZSA9
IDEsCiB9OwpAQCAtNTEsNiArMTAyLDcgQEAgc3RydWN0IENvcmVEcmFnSW1hZ2VTcGVjIHsKIAog
I2VuZGlmCiAKK3R5cGVkZWYgVUludDMyIE1TSENyZWF0ZU9wdGlvbnM7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBfX0FYVGV4dE1hcmtlciogQVhUZXh0TWFya2VyUmVmOwogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgX19BWFRleHRNYXJrZXJSYW5nZSogQVhUZXh0TWFya2VyUmFuZ2VSZWY7CiB0eXBlZGVm
IHN0cnVjdCBDb3JlRHJhZ0ltYWdlU3BlYyBDb3JlRHJhZ0ltYWdlU3BlYzsKQEAgLTYzLDYgKzEx
NSw3IEBAIEFYVGV4dE1hcmtlclJlZiBBWFRleHRNYXJrZXJDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYs
IGNvbnN0IFVJbnQ4KiBieXRlcywgQ0ZJbmRleCBsCiBBWFRleHRNYXJrZXJSZWYgQVhUZXh0TWFy
a2VyUmFuZ2VDb3B5U3RhcnRNYXJrZXIoQVhUZXh0TWFya2VyUmFuZ2VSZWYpOwogQVhUZXh0TWFy
a2VyUmVmIEFYVGV4dE1hcmtlclJhbmdlQ29weUVuZE1hcmtlcihBWFRleHRNYXJrZXJSYW5nZVJl
Zik7CiBDRkluZGV4IEFYVGV4dE1hcmtlckdldExlbmd0aChBWFRleHRNYXJrZXJSZWYpOworQ0ZS
dW5Mb29wU291cmNlUmVmIE1TSENyZWF0ZU1JR1NlcnZlclNvdXJjZShDRkFsbG9jYXRvclJlZiwg
Q0ZJbmRleCBvcmRlciwgbWlnX3N1YnN5c3RlbV90IHN1Yl9zeXN0ZW0sIE1TSENyZWF0ZU9wdGlv
bnMsIG1hY2hfcG9ydF90LCB2b2lkKiB1c2VyX2RhdGEpOwogQ0ZUeXBlSUQgQVhUZXh0TWFya2Vy
R2V0VHlwZUlEKCk7CiBDRlR5cGVJRCBBWFRleHRNYXJrZXJSYW5nZUdldFR5cGVJRCgpOwogQ29y
ZURyYWdSZWYgQ29yZURyYWdHZXRDdXJyZW50RHJhZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvbWFjL05TQ2VsbFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvbWFjL05TQ2VsbFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMzNkYTNkM2RmYmJhN2NiMDYzZjYw
ZWQ0NzkxMDFlODY2OTM4NjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9tYWMvTlNDZWxsU1BJLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QXBw
S2l0L05TQ2VsbF9Qcml2YXRlLmg+CisKKyNlbmRpZgorCitXVEZfRVhURVJOX0NfQkVHSU4KKwor
dm9pZCBfTlNEcmF3Q2FyYm9uVGhlbWVMaXN0Qm94KE5TUmVjdCwgQk9PTCBlbmFibGVkLCBCT09M
IGZsaXBwZWQsIEJPT0wgdGV4dHVyZWQpOworCitXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNNZW51U1BJLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9tYWMvTlNNZW51U1BJLmgKaW5kZXggMWY1ZTdiYzY2YTAwMzIxOTQ4
MjIwNGM0ODE5OTQxZWQzYjRmYTVmZi4uNTBkNTA5YzUwNTNhODJjZTcwOWM2Mjc5MTI0MDlkZGVi
NzQ4ZjNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TTWVu
dVNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU01lbnVTUEkuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
OSw3ICsyOSw5IEBACiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCitXVEZfRVhURVJO
X0NfQkVHSU4KICNpbXBvcnQgPEFwcEtpdC9OU01lbnVfUHJpdmF0ZS5oPgorV1RGX0VYVEVSTl9D
X0VORAogCiAjZWxzZQogCkBAIC0zOCw2ICs0MCwxNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBOU01lbnVUeXBlKSB7CiAgICAgTlNNZW51VHlwZUNvbnRleHRNZW51LAogfTsKIAorZW51
bSB7CisgICAgTlNQb3BVcE1lbnVUeXBlR2VuZXJpYywKKyAgICBOU1BvcFVwTWVudVR5cGVQb3BV
cCwKKyAgICBOU1BvcFVwTWVudVR5cGVQdWxsc0Rvd24sCisgICAgTlNQb3BVcE1lbnVUeXBlTWFp
bk1lbnUsCisgICAgTlNQb3BVcE1lbnVUeXBlQ29udGV4dCwKKyAgICBOU1BvcFVwTWVudURlZmF1
bHRUb1BvcFVwQ29udHJvbEZvbnQgPSAweDEwLAorICAgIE5TUG9wVXBNZW51UG9zaXRpb25SZWxh
dGl2ZVRvUmlnaHRFZGdlID0gMHgyMCwKKyAgICBOU1BvcFVwTWVudUlzUG9wdXBCdXR0b24gPSAw
eDQwLAorfTsKKwogQGludGVyZmFjZSBOU01lbnUgKCkKICsgKE5TTWVudVR5cGUpbWVudVR5cGVG
b3JFdmVudDooTlNFdmVudCAqKWV2ZW50OwogQGVuZApAQCAtNTYsNCArNjksMTcgQEAgdHlwZWRl
ZiBOU19FTlVNKE5TSW50ZWdlciwgTlNNZW51VHlwZSkgewogCiAjZW5kaWYKIAotI2VuZGlmCit0
eXBlZGVmIE5TVUludGVnZXIgTlNQb3BVcE1lbnVGbGFnczsKKworV1RGX0VYVEVSTl9DX0JFR0lO
CisKK2V4dGVybiBOU1N0cmluZyAqIGNvbnN0IE5TUG9wVXBNZW51UG9wdXBCdXR0b25Cb3VuZHM7
CitleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBOU1BvcFVwTWVudVBvcHVwQnV0dG9uTGFiZWxPZmZz
ZXQ7CitleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBOU1BvcFVwTWVudVBvcHVwQnV0dG9uU2l6ZTsK
K2V4dGVybiBOU1N0cmluZyAqIGNvbnN0IE5TUG9wVXBNZW51UG9wdXBCdXR0b25XaWRnZXQ7CisK
K3ZvaWQgX05TUG9wVXBDYXJib25NZW51MyhOU01lbnUgKiwgTlNXaW5kb3cgKiwgTlNWaWV3ICpv
d25lclZpZXcsIE5TUG9pbnQgc2NyZWVuUG9pbnQsIE5TSW50ZWdlciBjaGVja2VkSXRlbSwgTlNG
b250ICosIENHRmxvYXQgbWluV2lkdGgsIE5TU3RyaW5nICpydW5Mb29wTW9kZSwgTlNQb3BVcE1l
bnVGbGFncywgTlNEaWN0aW9uYXJ5ICpvcHRpb25zKTsKKworV1RGX0VYVEVSTl9DX0VORAorCisj
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvbWFjL05TU2Nyb2xsVmlld1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
bWFjL05TU2Nyb2xsVmlld1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmNWI0OTcwYjM4NzU1MjVkMmMxZDAx
ODFlNGE5NTQ2ZDJmZThlZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9tYWMvTlNTY3JvbGxWaWV3U1BJLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9y
dCA8QXBwS2l0L05TU2Nyb2xsVmlld19Qcml2YXRlLmg+CisKKyNlbmRpZgorCitXVEZfRVhURVJO
X0NfQkVHSU4KKworQ0dGbG9hdCBfTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEoQ0dGbG9h
dCBkZWx0YSk7CitDR0Zsb2F0IF9OU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YShDR0Zsb2F0IGlu
aXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0aWFsVmVsb2NpdHksIENHRmxvYXQgZWxhcHNlZFRp
bWUpOworQ0dGbG9hdCBfTlNSZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEoQ0dGbG9hdCBkZWx0
YSk7CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9tYWMvTlNTY3JvbGxlckltcFNQSS5oCmluZGV4IDA0OTJjMWFiNjE5NTZjYjE5NjFjOWVhN2Iy
NzcxNTczNzgxZDU1MzMuLjE4NzA0OTZlMDdjMjBmMmViOWFiNWFmYWQ3MWU5ZGIxZGFkMWEyZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1Njcm9sbGVySW1w
U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBT
UEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0xNDksNCArMTQ5LDEwIEBAIHR5cGVkZWYgTlNVSW50ZWdlciBOU092ZXJsYXlTY3JvbGxl
clN0YXRlOwogCiAjZW5kaWYKIAorV1RGX0VYVEVSTl9DX0JFR0lOCisKK05TU2Nyb2xsZXJTdHls
ZSBfTlNSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKTsKKworV1RGX0VYVEVSTl9DX0VORAorCiAj
ZW5kaWYgLy8gVVNFKEFQUEtJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3lzdGVtL21hYy9EZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zeXN0ZW0vbWFjL0RlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUx
NmQ2YWJiYmIzNWFlODdjMmQ5ZWFiYTE2OWM3MjRiNWQzZGU2ZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9EZWZhdWx0U2VhcmNoUHJvdmlkZXIu
Y3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisK
KyNpbmNsdWRlICJDRlV0aWxpdGllc1NQSS5oIgorI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0Nv
cmVGb3VuZGF0aW9uLmg+CisKK25hbWVzcGFjZSBQQUwgeworCitSZXRhaW5QdHI8Q0ZTdHJpbmdS
ZWY+IGRlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKCkKK3sKKyAgICBhdXRvIHByb3Zp
ZGVySW5mbyA9IGFkb3B0Q0YoX0NGV2ViU2VydmljZXNDb3B5UHJvdmlkZXJJbmZvKGtDRldlYlNl
cnZpY2VzVHlwZVdlYlNlYXJjaCwgbnVsbHB0cikpOworICAgIGlmICghcHJvdmlkZXJJbmZvKQor
ICAgICAgICByZXR1cm4gQ0ZTVFIoIkdvb2dsZSIpOworCisgICAgQ0ZUeXBlUmVmIGRpc3BsYXlO
YW1lID0gQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUocHJvdmlkZXJJbmZvLmdldCgpLCBrQ0ZXZWJTZXJ2
aWNlc1Byb3ZpZGVyRGVmYXVsdERpc3BsYXlOYW1lS2V5KTsKKyAgICBpZiAoIWRpc3BsYXlOYW1l
KQorICAgICAgICByZXR1cm4gQ0ZTVFIoIkdvb2dsZSIpOworCisgICAgQVNTRVJUKENGR2V0VHlw
ZUlEKGRpc3BsYXlOYW1lKSA9PSBDRlN0cmluZ0dldFR5cGVJRCgpKTsKKyAgICByZXR1cm4gYWRv
cHRDRihDRlN0cmluZ0NyZWF0ZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENGU3RyaW5nUmVm
KWRpc3BsYXlOYW1lKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFBBTAorCisjZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFj
L0RlZmF1bHRTZWFyY2hQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0v
bWFjL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjZmNmZDgzN2I3NjA5YzY0
MzI3ZTc1NTk4MGQ2ZDRmZjk5MmZiZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3N5c3RlbS9tYWMvRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmgKQEAgLTAsMCArMSwz
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgorCituYW1lc3BhY2UgUEFMIHsKKworUEFMX0VYUE9SVCBSZXRhaW5QdHI8Q0ZTdHJpbmdS
ZWY+IGRlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKCk7CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUuaCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDc1YWI3
YjdiMjdiZDlkMDYzY2VjOWJlNTU2NjFjOTUyZWYyYWU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oCkBAIC0wLDAgKzEsMzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0IDxBcHBLaXQvQXBw
S2l0Lmg+CisKK25hbWVzcGFjZSBQQUwgeworCitQQUxfRVhQT1JUIHZvaWQgcG9wVXBNZW51KE5T
TWVudSAqLCBOU1BvaW50IGxvY2F0aW9uLCBmbG9hdCB3aWR0aCwgTlNWaWV3ICosIGludCBzZWxl
Y3RlZEl0ZW0sIE5TRm9udCAqLCBOU0NvbnRyb2xTaXplLCBib29sIHVzZXNDdXN0b21BcHBlYXJh
bmNlKTsKKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjIzMzU3NWRjMzRl
NzYxZTg2MWNiYjQ1Mjg3YjczM2YyY2Q0YWMyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUubW0KQEAgLTAsMCArMSw3NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUG9wdXBNZW51LmgiCisK
KyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIk5TTWVudVNQSS5oIgorI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgorCitAaW50ZXJmYWNlIE5TTWVudSAoV2ViUHJpdmF0ZSkKKy0gKGlkKV9t
ZW51SW1wbDsKK0BlbmQKKworQGludGVyZmFjZSBOU09iamVjdCAoV2ViUHJpdmF0ZSkKKy0gKHZv
aWQpcG9wVXBNZW51OihOU01lbnUqKW1lbnUgYXRMb2NhdGlvbjooTlNQb2ludClsb2NhdGlvbiB3
aWR0aDooQ0dGbG9hdCl3aWR0aCBmb3JWaWV3OihOU1ZpZXcqKXZpZXcgd2l0aFNlbGVjdGVkSXRl
bTooTlNJbnRlZ2VyKXNlbGVjdGVkSXRlbSB3aXRoRm9udDooTlNGb250Kilmb250IHdpdGhGbGFn
czooTlNQb3BVcE1lbnVGbGFncylmbGFncyB3aXRoT3B0aW9uczooTlNEaWN0aW9uYXJ5ICopb3B0
aW9uczsKK0BlbmQKKworbmFtZXNwYWNlIFBBTCB7CisKK3ZvaWQgcG9wVXBNZW51KE5TTWVudSAq
bWVudSwgTlNQb2ludCBsb2NhdGlvbiwgZmxvYXQgd2lkdGgsIE5TVmlldyAqdmlldywgaW50IHNl
bGVjdGVkSXRlbSwgTlNGb250ICpmb250LCBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplLCBib29s
IHVzZXNDdXN0b21BcHBlYXJhbmNlKQoreworICAgIE5TUmVjdCBhZGp1c3RlZFBvcHVwQm91bmRz
ID0gW3ZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W3ZpZXcgY29udmVydFJlY3Q6dmll
dy5ib3VuZHMgdG9WaWV3Om5pbF1dOworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIGlmIChjb250cm9sU2l6ZSAhPSBOU01pbmlDb250cm9sU2l6ZSkgeworI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBhZGp1c3RlZFBvcHVwQm91bmRzLm9yaWdpbi54
IC09IDM7CisgICAgICAgIGFkanVzdGVkUG9wdXBCb3VuZHMub3JpZ2luLnkgLT0gMTsKKyAgICAg
ICAgYWRqdXN0ZWRQb3B1cEJvdW5kcy5zaXplLndpZHRoICs9IDY7CisgICAgfQorCisgICAgLy8g
VGhlc2UgbnVtYmVycyB3ZXJlIGV4dHJhY3RlZCBmcm9tIHZpc3VhbCBpbnNwZWN0aW9uIGFzIHRo
ZSBtZW51IGFuaW1hdGVzIHNodXQuCisgICAgTlNTaXplIGxhYmVsT2Zmc2V0ID0gTlNNYWtlU2l6
ZSgxMSwgMSk7CisgICAgaWYgKG1lbnUudXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiA9PSBO
U1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25SaWdodFRvTGVmdCkKKyAgICAgICAgbGFiZWxP
ZmZzZXQgPSBOU01ha2VTaXplKDI0LCAxKTsKKworICAgIGF1dG8gb3B0aW9ucyA9IGFkb3B0TlMo
W0B7CisgICAgICAgIE5TUG9wVXBNZW51UG9wdXBCdXR0b25Cb3VuZHMgOiBbTlNWYWx1ZSB2YWx1
ZVdpdGhSZWN0OmFkanVzdGVkUG9wdXBCb3VuZHNdLAorICAgICAgICBOU1BvcFVwTWVudVBvcHVw
QnV0dG9uTGFiZWxPZmZzZXQgOiBbTlNWYWx1ZSB2YWx1ZVdpdGhTaXplOmxhYmVsT2Zmc2V0XSwK
KyAgICAgICAgTlNQb3BVcE1lbnVQb3B1cEJ1dHRvblNpemUgOiBAKGNvbnRyb2xTaXplKQorICAg
IH0gbXV0YWJsZUNvcHldKTsKKworICAgIGlmICh1c2VzQ3VzdG9tQXBwZWFyYW5jZSkKKyAgICAg
ICAgW29wdGlvbnMgc2V0T2JqZWN0OkAiIiBmb3JLZXk6TlNQb3BVcE1lbnVQb3B1cEJ1dHRvbldp
ZGdldF07CisKKyAgICBbW21lbnUgX21lbnVJbXBsXSBwb3BVcE1lbnU6bWVudSBhdExvY2F0aW9u
OmxvY2F0aW9uIHdpZHRoOndpZHRoIGZvclZpZXc6dmlldyB3aXRoU2VsZWN0ZWRJdGVtOnNlbGVj
dGVkSXRlbSB3aXRoRm9udDpmb250IHdpdGhGbGFnczoodXNlc0N1c3RvbUFwcGVhcmFuY2UgPyAw
IDogTlNQb3BVcE1lbnVJc1BvcHVwQnV0dG9uKSB3aXRoT3B0aW9uczpvcHRpb25zLmdldCgpXTsK
K30KKworfSAvLyBuYW1lc3BhY2UgUEFMCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29j
b2EubW0KaW5kZXggMTI5YjZlMmQ1MGQ1MjE2ZGI1YTQ2ODc2NmMxNGZkODJlYTUzYmM3Ny4uMTJk
ZDhhNzhlZjQyMTFkNTFiNTdmZTBlODFiZTQwZmUzMGNhMmY4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yMywxNSArMjMsMTYgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAKLSNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
aCIKLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorI2ltcG9ydCAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbXBvcnQgIldlYkNvcmVTeXN0
ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgPHBhbC9zeXN0ZW0vbWFjL0RlZmF1bHRTZWFyY2hQcm92
aWRlci5oPgorI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhy
ZWFkLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Niw3ICs2Nyw3IEBAIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQogewotICAgIGF1dG8gc2VhcmNoUHJvdmlkZXJOYW1lID0g
YWRvcHRDRih3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKKyAgICBh
dXRvIHNlYXJjaFByb3ZpZGVyTmFtZSA9IFBBTDo6ZGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxh
eU5hbWUoKTsKICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkco
IlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1l
bnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1l
LmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9s
bENvbnRyb2xsZXIubW0KaW5kZXggZWUzZTUzN2ZiOGMyYjY4NzBlNjFkZmQyMzk3NjA3ZWM3ZjFm
NGIxYS4uZDM3OWUyNDc0ZDE2NjY1NGE0YzEyOWNjY2IwZjFlZGUzZTYzMjVlMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNC0yMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjMsMjAgKzIzLDI0IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNjcm9sbENvbnRyb2xsZXIu
aCIKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiU2Nyb2xsQ29udHJvbGxlci5oIgogCi0j
aW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgot
I2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKLSNpbmNsdWRlICJXaGVlbEV2ZW50
VGVzdFRyaWdnZXIuaCIKLSNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+Ci0jaW5jbHVkZSA8c3lzL3Rp
bWUuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgIkxheW91dFNpemUu
aCIKKyNpbXBvcnQgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2ltcG9ydCAiV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5oIgorI2ltcG9ydCAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCisjaW1wb3J0
IDxzeXMvc3lzY3RsLmg+CisjaW1wb3J0IDxzeXMvdGltZS5oPgorI2ltcG9ydCA8d3RmL0N1cnJl
bnRUaW1lLmg+CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQotI2luY2x1ZGUgIlNjcm9s
bFNuYXBBbmltYXRvclN0YXRlLmgiCi0jaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKKyNpbXBv
cnQgIlNjcm9sbFNuYXBBbmltYXRvclN0YXRlLmgiCisjaW1wb3J0ICJTY3JvbGxhYmxlQXJlYS5o
IgorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1Nj
cm9sbFZpZXdTUEkuaD4KICNlbmRpZgogCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSB8fCBF
TkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQpAQCAtNTIsMTcgKzU2LDE3IEBAIHN0YXRpYyBjb25zdCBm
bG9hdCBydWJiZXJiYW5kTWluaW11bVJlcXVpcmVkRGVsdGFCZWZvcmVTdHJldGNoID0gMTA7CiAj
aWYgUExBVEZPUk0oTUFDKQogc3RhdGljIGZsb2F0IGVsYXN0aWNEZWx0YUZvclRpbWVEZWx0YShm
bG9hdCBpbml0aWFsUG9zaXRpb24sIGZsb2F0IGluaXRpYWxWZWxvY2l0eSwgZmxvYXQgZWxhcHNl
ZFRpbWUpCiB7Ci0gICAgcmV0dXJuIHdrTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEoaW5pdGlh
bFBvc2l0aW9uLCBpbml0aWFsVmVsb2NpdHksIGVsYXBzZWRUaW1lKTsKKyAgICByZXR1cm4gX05T
RWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFZlbG9jaXR5
LCBlbGFwc2VkVGltZSk7CiB9CiAKIHN0YXRpYyBmbG9hdCBlbGFzdGljRGVsdGFGb3JSZWJvdW5k
RGVsdGEoZmxvYXQgZGVsdGEpCiB7Ci0gICAgcmV0dXJuIHdrTlNFbGFzdGljRGVsdGFGb3JSZWJv
dW5kRGVsdGEoZGVsdGEpOworICAgIHJldHVybiBfTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVs
dGEoZGVsdGEpOwogfQogCiBzdGF0aWMgZmxvYXQgcmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRh
KGZsb2F0IGRlbHRhKQogewotICAgIHJldHVybiB3a05TUmVib3VuZERlbHRhRm9yRWxhc3RpY0Rl
bHRhKGRlbHRhKTsKKyAgICByZXR1cm4gX05TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKGRl
bHRhKTsKIH0KIAogc3RhdGljIGZsb2F0IHNjcm9sbFdoZWVsTXVsdGlwbGllcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcAppbmRleCBmNDI1Nzk3MDEwZGNhMjM3NzBiOGZlNDYwNWJjNDliMGY0ZDYwOGEwLi5jNjk0
NmQ2ZGZkM2JjZTNhMWY4NjI0YTM5NGJjNjg2OWQ3ZDJjM2RkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQs
NyArMjQsNiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQogI2luY2x1ZGUgIkdyYXBo
aWNzTGF5ZXJDQS5oIgogCiAjaWYgVVNFKENBKQpAQCAtNDcsNiArNDYsNyBAQAogI2luY2x1ZGUg
IlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ0FU
cmFuc2Zvcm0zRC5oPgogI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2Yv
Q0ZVdGlsaXRpZXNTUEkuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAt
Mjk4OCw3ICsyOTg4LDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFu
aW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWUKICAgICAgICAgLy8gb24g
b3IgYmVmb3JlIFNub3cgTGVvcGFyZC4KICAgICAgICAgLy8gRklYTUU6IFRoaXMgZml4IGhhcyBu
b3QgYmVlbiBhZGRlZCB0byBRdWFydHpDb3JlIG9uIFdpbmRvd3MgeWV0ICg8cmRhcjovL3Byb2Js
ZW0vOTExMjIzMz4pIHNvIHdlIGV4cGVjdCB0aGUKICAgICAgICAgLy8gcmV2ZXJzZWQgYW5pbWF0
aW9uIGJlaGF2aW9yCi0gICAgICAgIHN0YXRpYyBib29sIGV4ZWN1dGFibGVXYXNMaW5rZWRPbk9y
QmVmb3JlU25vd0xlb3BhcmQgPSB3a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xl
b3BhcmQoKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZv
cmVTbm93TGVvcGFyZCA9ICFfQ0ZFeGVjdXRhYmxlTGlua2VkT25PckFmdGVyKENGU3lzdGVtVmVy
c2lvbkxpb24pOwogICAgICAgICBpZiAoIWV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25v
d0xlb3BhcmQpCiAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uTGlzdCA9IGZhbHNlOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQppbmRleCBhYTM0NWU4
OGU0ODExOGM0Njg3YjllZWZiZmM3MzIxOGRjNDcwNzBjLi4yZmU1YTQzMjk4ZjZlYWFmZTA5Yzgy
YTZiOGY1NGFkZDI0MGI0OTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvQ3Vyc29yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JN
YWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjcsNiArMjcsOCBAQAogI2ltcG9ydCAiQ3Vyc29yLmgiCiAKICNp
bXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgPG9iamMvcnVudGltZS5o
PgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oPgogI2ltcG9ydCA8d3RmL0Js
b2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAt
MzcsNiArMzksMTM5IEBAIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQ3Vyc29yQnVuZGxlCiBAZW5k
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK3N0YXRpYyBOU0N1cnNvciAqYnVzeUJ1dENs
aWNrYWJsZU5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICptYWtlQWxpYXNOU0N1cnNvcjsKK3N0
YXRpYyBOU0N1cnNvciAqbW92ZU5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVFYXN0
TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZUVhc3RXZXN0TlNDdXJzb3I7CitzdGF0
aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRoTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6
ZU5vcnRoU291dGhOU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqcmVzaXplTm9ydGhlYXN0TlND
dXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZU5vcnRoZWFzdFNvdXRod2VzdE5TQ3Vyc29y
Oworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVOb3J0aHdlc3ROU0N1cnNvcjsKK3N0YXRpYyBOU0N1
cnNvciAqcmVzaXplTm9ydGh3ZXN0U291dGhlYXN0TlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3Ig
KnJlc2l6ZVNvdXRoTlNDdXJzb3I7CitzdGF0aWMgTlNDdXJzb3IgKnJlc2l6ZVNvdXRoZWFzdE5T
Q3Vyc29yOworc3RhdGljIE5TQ3Vyc29yICpyZXNpemVTb3V0aHdlc3ROU0N1cnNvcjsKK3N0YXRp
YyBOU0N1cnNvciAqcmVzaXplV2VzdE5TQ3Vyc29yOworCitzdGF0aWMgTlNDdXJzb3IgKmNlbGxO
U0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqaGVscE5TQ3Vyc29yOworc3RhdGljIE5TQ3Vyc29y
ICp6b29tSW5OU0N1cnNvcjsKK3N0YXRpYyBOU0N1cnNvciAqem9vbU91dE5TQ3Vyc29yOworCitz
dGF0aWMgTlNJbnRlZ2VyIFdLQ29yZUN1cnNvcl9jb3JlQ3Vyc29yVHlwZShpZCBzZWxmLCBTRUwp
Cit7CisgICAgaWYgKHNlbGYgPT0gYnVzeUJ1dENsaWNrYWJsZU5TQ3Vyc29yKQorICAgICAgICBy
ZXR1cm4ga0NvcmVDdXJzb3JCdXN5QnV0Q2xpY2thYmxlOworICAgIGlmIChzZWxmID09IG1ha2VB
bGlhc05TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JNYWtlQWxpYXM7CisgICAg
aWYgKHNlbGYgPT0gbW92ZU5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5k
b3dNb3ZlOworICAgIGlmIChzZWxmID09IHJlc2l6ZUVhc3ROU0N1cnNvcikKKyAgICAgICAgcmV0
dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplRWFzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVF
YXN0V2VzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVF
YXN0V2VzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVOb3J0aE5TQ3Vyc29yKQorICAgICAgICBy
ZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVOb3J0aDsKKyAgICBpZiAoc2VsZiA9PSByZXNp
emVOb3J0aFNvdXRoTlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jl
c2l6ZU5vcnRoU291dGg7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGhlYXN0TlNDdXJzb3Ip
CisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6ZU5vcnRoRWFzdDsKKyAgICBp
ZiAoc2VsZiA9PSByZXNpemVOb3J0aGVhc3RTb3V0aHdlc3ROU0N1cnNvcikKKyAgICAgICAgcmV0
dXJuIGtDb3JlQ3Vyc29yV2luZG93UmVzaXplTm9ydGhFYXN0U291dGhXZXN0OworICAgIGlmIChz
ZWxmID09IHJlc2l6ZU5vcnRod2VzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJz
b3JXaW5kb3dSZXNpemVOb3J0aFdlc3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplTm9ydGh3ZXN0
U291dGhlYXN0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvcldpbmRvd1Jlc2l6
ZU5vcnRoV2VzdFNvdXRoRWFzdDsKKyAgICBpZiAoc2VsZiA9PSByZXNpemVTb3V0aE5TQ3Vyc29y
KQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aDsKKyAgICBpZiAo
c2VsZiA9PSByZXNpemVTb3V0aGVhc3ROU0N1cnNvcikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vy
c29yV2luZG93UmVzaXplU291dGhFYXN0OworICAgIGlmIChzZWxmID09IHJlc2l6ZVNvdXRod2Vz
dE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4ga0NvcmVDdXJzb3JXaW5kb3dSZXNpemVTb3V0aFdl
c3Q7CisgICAgaWYgKHNlbGYgPT0gcmVzaXplV2VzdE5TQ3Vyc29yKQorICAgICAgICByZXR1cm4g
a0NvcmVDdXJzb3JXaW5kb3dSZXNpemVXZXN0OworICAgIGlmIChzZWxmID09IGNlbGxOU0N1cnNv
cikKKyAgICAgICAgcmV0dXJuIGtDb3JlQ3Vyc29yQ2VsbDsKKyAgICBpZiAoc2VsZiA9PSBoZWxw
TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvckhlbHA7CisgICAgaWYgKHNlbGYg
PT0gem9vbUluTlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNvclpvb21JbjsKKyAg
ICBpZiAoc2VsZiA9PSB6b29tT3V0TlNDdXJzb3IpCisgICAgICAgIHJldHVybiBrQ29yZUN1cnNv
clpvb21PdXQ7CisgICAgCisgICAgcmV0dXJuIE5TTm90Rm91bmQ7Cit9CisKK3N0YXRpYyBDbGFz
cyBjcmVhdGVDb3JlQ3Vyc29yQ2xhc3MoKQoreworICAgIENsYXNzIGNvcmVDdXJzb3JDbGFzcyA9
IG9iamNfYWxsb2NhdGVDbGFzc1BhaXIoW05TQ3Vyc29yIGNsYXNzXSwgIldLQ29yZUN1cnNvciIs
IDApOworICAgIFNFTCBjb3JlQ3Vyc29yVHlwZSA9IE5TU2VsZWN0b3JGcm9tU3RyaW5nKEAiX2Nv
cmVDdXJzb3JUeXBlIik7CisgICAgY2xhc3NfYWRkTWV0aG9kKGNvcmVDdXJzb3JDbGFzcywgY29y
ZUN1cnNvclR5cGUsIChJTVApV0tDb3JlQ3Vyc29yX2NvcmVDdXJzb3JUeXBlLCBtZXRob2RfZ2V0
VHlwZUVuY29kaW5nKGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFtOU0N1cnNvciBjbGFzc10sIGNv
cmVDdXJzb3JUeXBlKSkpOworICAgIG9iamNfcmVnaXN0ZXJDbGFzc1BhaXIoY29yZUN1cnNvckNs
YXNzKTsKKyAgICByZXR1cm4gY29yZUN1cnNvckNsYXNzOworfQorCitzdGF0aWMgQ2xhc3MgY29y
ZUN1cnNvckNsYXNzKCkKK3sKKyAgICBDbGFzcyBjb3JlQ3Vyc29yQ2xhc3MgPSBvYmpjX2xvb2tV
cENsYXNzKCJXS0NvcmVDdXJzb3IiKTsKKyAgICBpZiAoIWNvcmVDdXJzb3JDbGFzcykKKyAgICAg
ICAgY29yZUN1cnNvckNsYXNzID0gY3JlYXRlQ29yZUN1cnNvckNsYXNzKCk7CisgICAgcmV0dXJu
IGNvcmVDdXJzb3JDbGFzczsKK30KKworc3RhdGljIE5TQ3Vyc29yICpjdXJzb3IoY29uc3QgY2hh
ciAqbmFtZSkKK3sKKyAgICBOU0N1cnNvciAqKnNsb3QgPSAwOworICAgIAorICAgIGlmICghc3Ry
Y21wKG5hbWUsICJCdXN5QnV0Q2xpY2thYmxlIikpCisgICAgICAgIHNsb3QgPSAmYnVzeUJ1dENs
aWNrYWJsZU5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIk1ha2VBbGlhcyIp
KQorICAgICAgICBzbG90ID0gJm1ha2VBbGlhc05TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJj
bXAobmFtZSwgIk1vdmUiKSkKKyAgICAgICAgc2xvdCA9ICZtb3ZlTlNDdXJzb3I7CisgICAgZWxz
ZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplRWFzdCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6
ZUVhc3ROU0N1cnNvcjsKKyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJSZXNpemVFYXN0V2Vz
dCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZUVhc3RXZXN0TlNDdXJzb3I7CisgICAgZWxzZSBp
ZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGgiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVO
b3J0aE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZU5vcnRoU291
dGgiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVOb3J0aFNvdXRoTlNDdXJzb3I7CisgICAgZWxz
ZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGhlYXN0IikpCisgICAgICAgIHNsb3QgPSAm
cmVzaXplTm9ydGhlYXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVz
aXplTm9ydGhlYXN0U291dGh3ZXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplTm9ydGhlYXN0
U291dGh3ZXN0TlNDdXJzb3I7CisgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9y
dGh3ZXN0IikpCisgICAgICAgIHNsb3QgPSAmcmVzaXplTm9ydGh3ZXN0TlNDdXJzb3I7CisgICAg
ZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplTm9ydGh3ZXN0U291dGhlYXN0IikpCisgICAg
ICAgIHNsb3QgPSAmcmVzaXplTm9ydGh3ZXN0U291dGhlYXN0TlNDdXJzb3I7CisgICAgZWxzZSBp
ZiAoIXN0cmNtcChuYW1lLCAiUmVzaXplU291dGgiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVT
b3V0aE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZVNvdXRoZWFz
dCIpKQorICAgICAgICBzbG90ID0gJnJlc2l6ZVNvdXRoZWFzdE5TQ3Vyc29yOworICAgIGVsc2Ug
aWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6ZVNvdXRod2VzdCIpKQorICAgICAgICBzbG90ID0gJnJl
c2l6ZVNvdXRod2VzdE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlJlc2l6
ZVdlc3QiKSkKKyAgICAgICAgc2xvdCA9ICZyZXNpemVXZXN0TlNDdXJzb3I7CisgICAgZWxzZSBp
ZiAoIXN0cmNtcChuYW1lLCAiQ2VsbCIpKQorICAgICAgICBzbG90ID0gJmNlbGxOU0N1cnNvcjsK
KyAgICBlbHNlIGlmICghc3RyY21wKG5hbWUsICJIZWxwIikpCisgICAgICAgIHNsb3QgPSAmaGVs
cE5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlpvb21JbiIpKQorICAgICAg
ICBzbG90ID0gJnpvb21Jbk5TQ3Vyc29yOworICAgIGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlpv
b21PdXQiKSkKKyAgICAgICAgc2xvdCA9ICZ6b29tT3V0TlNDdXJzb3I7CisgICAgCisgICAgaWYg
KCFzbG90KQorICAgICAgICByZXR1cm4gbmlsOworICAgIAorICAgIGlmICghKnNsb3QpCisgICAg
ICAgICpzbG90ID0gW1tjb3JlQ3Vyc29yQ2xhc3MoKSBhbGxvY10gaW5pdF07CisgICAgcmV0dXJu
ICpzbG90OworfQogCiAvLyBTaW1wbGUgTlNDdXJzb3IgY2FsbHMgc2hvdWxkbid0IG5lZWQgcHJv
dGVjdGlvbiwKIC8vIGJ1dCBjcmVhdGluZyBhIGN1cnNvciB3aXRoIGEgYmFkIGltYWdlIG1pZ2h0
IHRocm93LgpAQCAtMTAzLDcyICsyMzgsNzIgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3Jt
Q3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6V2FpdDoK
LSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJCdXN5QnV0Q2xpY2thYmxlIik7
CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsK
ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6SGVscDoKLSAgICAgICAgbV9wbGF0
Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJIZWxwIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3Ig
PSBjdXJzb3IoIkhlbHAiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6TW92
ZToKICAgICBjYXNlIEN1cnNvcjo6TWlkZGxlUGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1
cnNvciA9IHdrQ3Vyc29yKCJNb3ZlIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJz
b3IoIk1vdmUiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6RWFzdFJlc2l6
ZToKICAgICBjYXNlIEN1cnNvcjo6RWFzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSB3a0N1cnNvcigiUmVzaXplRWFzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0g
Y3Vyc29yKCJSZXNpemVFYXN0Iik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6
Ok5vcnRoUmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFBhbm5pbmc6Ci0gICAgICAgIG1f
cGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGgiKTsKKyAgICAgICAgbV9wbGF0
Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplTm9ydGgiKTsKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIEN1cnNvcjo6Tm9ydGhFYXN0UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aEVh
c3RQYW5uaW5nOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5v
cnRoZWFzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0
aGVhc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhXZXN0UmVz
aXplOgogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFdlc3RQYW5uaW5nOgotICAgICAgICBtX3BsYXRm
b3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRod2VzdCIpOworICAgICAgICBtX3BsYXRm
b3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0aHdlc3QiKTsKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIEN1cnNvcjo6U291dGhSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoUGFu
bmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVTb3V0aCIp
OworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVTb3V0aCIpOwogICAg
ICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpTb3V0aEVhc3RSZXNpemU6CiAgICAgY2Fz
ZSBDdXJzb3I6OlNvdXRoRWFzdFBhbm5pbmc6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3
a0N1cnNvcigiUmVzaXplU291dGhlYXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBj
dXJzb3IoIlJlc2l6ZVNvdXRoZWFzdCIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vy
c29yOjpTb3V0aFdlc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoV2VzdFBhbm5pbmc6
Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplU291dGh3ZXN0Iik7
CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZVNvdXRod2VzdCIpOwog
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpXZXN0UmVzaXplOgogICAgIGNhc2Ug
Q3Vyc29yOjpXZXN0UGFubmluZzoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29y
KCJSZXNpemVXZXN0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6
ZVdlc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhTb3V0aFJl
c2l6ZToKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aFNv
dXRoIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlJlc2l6ZU5vcnRoU291
dGgiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6RWFzdFdlc3RSZXNpemU6
Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplRWFzdFdlc3QiKTsK
KyAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvcigiUmVzaXplRWFzdFdlc3QiKTsKICAg
ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhFYXN0U291dGhXZXN0UmVzaXpl
OgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRoZWFzdFNv
dXRod2VzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJSZXNpemVOb3J0
aGVhc3RTb3V0aHdlc3QiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9y
dGhXZXN0U291dGhFYXN0UmVzaXplOgotICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJz
b3IoIlJlc2l6ZU5vcnRod2VzdFNvdXRoZWFzdCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29y
ID0gY3Vyc29yKCJSZXNpemVOb3J0aHdlc3RTb3V0aGVhc3QiKTsKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIEN1cnNvcjo6Q29sdW1uUmVzaXplOgpAQCAtMTg0LDcgKzMxOSw3IEBAIHZvaWQg
Q3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogCiAg
ICAgY2FzZSBDdXJzb3I6OkNlbGw6Ci0gICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNv
cigiQ2VsbCIpOworICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJDZWxsIik7CiAg
ICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OkNvbnRleHRNZW51OgpAQCAtMTkyLDEx
ICszMjcsMTEgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAg
ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6QWxpYXM6Ci0gICAgICAgIG1fcGxhdGZv
cm1DdXJzb3IgPSB3a0N1cnNvcigiTWFrZUFsaWFzIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSBjdXJzb3IoIk1ha2VBbGlhcyIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vy
c29yOjpQcm9ncmVzczoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJCdXN5
QnV0Q2xpY2thYmxlIik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIkJ1c3lC
dXRDbGlja2FibGUiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9Ecm9w
OgpAQCAtMjE2LDExICszNTEsMTEgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29y
KCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Wm9vbUluOgotICAg
ICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlpvb21JbiIpOworICAgICAgICBtX3Bs
YXRmb3JtQ3Vyc29yID0gY3Vyc29yKCJab29tSW4iKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBj
YXNlIEN1cnNvcjo6Wm9vbU91dDoKLSAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29y
KCJab29tT3V0Iik7CisgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3IoIlpvb21PdXQi
KTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6R3JhYjoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCmluZGV4
IGFjZTI5OGMxMmY4MjBlZDUwZDY5Y2ZlZjY1MTYzMGQwODRjMDUyZmUuLjU1ZmNhMTI4MTYyZjYz
ODIwMTU2ZmEyMTFiMjdiN2FkMmNmMTk1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaApAQCAtMTIzLDcgKzEyMyw2IEBA
IHR5cGVkZWYgZW51bSB7CiAgICAgd2tQYXR0ZXJuVGlsaW5nQ29uc3RhbnRTcGFjaW5nCiB9IHdr
UGF0dGVyblRpbGluZzsKICNpZiAhUExBVEZPUk0oSU9TKQotZXh0ZXJuIHZvaWQgKCp3a0RyYXdC
ZXplbGVkVGV4dEFyZWEpKE5TUmVjdCwgQk9PTCBlbmFibGVkKTsKIGV4dGVybiB2b2lkICgqd2tE
cmF3TWVkaWFTbGlkZXJUcmFjaykoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCByZWN0LCBm
bG9hdCB0aW1lTG9hZGVkLCBmbG9hdCBjdXJyZW50VGltZSwKICAgICBmbG9hdCBkdXJhdGlvbiwg
dW5zaWduZWQgc3RhdGUpOwogZXh0ZXJuIHZvaWQgKCp3a0RyYXdNZWRpYVVJUGFydCkoaW50IHBh
cnQsIENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1JlY3QgcmVjdCwgdW5zaWduZWQgc3RhdGUpOwpA
QCAtMTM2LDI0ICsxMzUsMTAgQEAgZXh0ZXJuIHZvaWQgKCp3a1NldENvb2tpZVN0b3JhZ2VQcml2
YXRlQnJvd3NpbmdFbmFibGVkKShCT09MKTsKIGV4dGVybiB2b2lkKiB3a0dldEh5cGhlbmF0aW9u
TG9jYXRpb25CZWZvcmVJbmRleDsKICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKElPUykKLWV4dGVy
biBib29sICgqd2tFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKSh2b2lk
KTsKLQotZXh0ZXJuIENGU3RyaW5nUmVmICgqd2tDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlz
cGxheU5hbWUpKHZvaWQpOwotCi1leHRlcm4gTlNDdXJzb3IgKigqd2tDdXJzb3IpKGNvbnN0IGNo
YXIqKTsKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQotCiAjaWYgUExBVEZPUk0oSU9TKQogZXh0
ZXJuIHZvaWQgKCp3a1NldExheWVyQ29udGVudHNTY2FsZSkoQ0FMYXllciAqKTsKICNlbmRpZgog
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGVVJMU3RvcmFnZVNlc3Npb24qIENGVVJMU3RvcmFn
ZVNlc3Npb25SZWY7CiAKLSNpZiAhUExBVEZPUk0oSU9TKQotZXh0ZXJuIENHRmxvYXQgKCp3a05T
RWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKShDR0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwgQ0dGbG9h
dCBpbml0aWFsVmVsb2NpdHksIENHRmxvYXQgZWxhcHNlZFRpbWUpOwotZXh0ZXJuIENHRmxvYXQg
KCp3a05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLWV4dGVy
biBDR0Zsb2F0ICgqd2tOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSkoQ0dGbG9hdCBkZWx0
YSk7Ci0jZW5kaWYKLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
V2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQppbmRleCAzNTA3MzE5YjVkZDhhN2U3MDZmZTYzMTNk
MDQxZjM4NDkwODAwOGEzLi44ZmJiMWQzZDhjODg2OGMyNDU0ZjMwOWM2OWUwNjQwMGYzZGZmOTZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5tbQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KIAotdm9pZCAoKndrRHJhd0JlemVsZWRUZXh0QXJlYSkoTlNSZWN0LCBCT09M
IGVuYWJsZWQpOwogdm9pZCAoKndrRHJhd01lZGlhU2xpZGVyVHJhY2spKENHQ29udGV4dFJlZiBj
b250ZXh0LCBDR1JlY3QgcmVjdCwgZmxvYXQgdGltZUxvYWRlZCwgZmxvYXQgY3VycmVudFRpbWUs
CiAgICAgZmxvYXQgZHVyYXRpb24sIHVuc2lnbmVkIHN0YXRlKTsKIEJPT0wgKCp3a0hpdFRlc3RN
ZWRpYVVJUGFydCkoaW50IHBhcnQsIENHUmVjdCBib3VuZHMsIENHUG9pbnQgcG9pbnQpOwpAQCAt
NDIsMTQgKzQxLDQgQEAgdm9pZCAoKndrUG9wdXBNZW51KShOU01lbnUqLCBOU1BvaW50IGxvY2F0
aW9uLCBmbG9hdCB3aWR0aCwgTlNWaWV3KiwgaW50IHNlbGVjdGUKIAogdm9pZCogd2tHZXRIeXBo
ZW5hdGlvbkxvY2F0aW9uQmVmb3JlSW5kZXg7CiAKLWJvb2wgKCp3a0V4ZWN1dGFibGVXYXNMaW5r
ZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpKHZvaWQpOwotCiBDRlN0cmluZ1JlZiAoKndrQ29weURl
ZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKSh2b2lkKTsKLQotTlNDdXJzb3IgKigqd2tD
dXJzb3IpKGNvbnN0IGNoYXIqKTsKLQotI2lmICFQTEFURk9STShJT1MpCi1DR0Zsb2F0ICgqd2tO
U0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YSkoQ0dGbG9hdCBpbml0aWFsUG9zaXRpb24sIENHRmxv
YXQgaW5pdGlhbFZlbG9jaXR5LCBDR0Zsb2F0IGVsYXBzZWRUaW1lKTsKLUNHRmxvYXQgKCp3a05T
RWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLUNHRmxvYXQgKCp3
a05TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKShDR0Zsb2F0IGRlbHRhKTsKLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDkzZThkNjE5
NzE3NjE3NWQ4Y2NiMzZlMTljZmVmYmE5YzQ4NjU1ZWYuLmYwMGM4Mzk3YjU4YTQxYWE5MzEyOGEy
MjZhYWU3NWE2ZmI5YWM1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0KQEAgLTc0LDYgKzc0LDcgQEAKICNpbXBvcnQgPG1hdGguaD4KICNpbXBvcnQgPHBh
bC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQ29s
b3JTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TQ2VsbFNQSS5oPgogI2ltcG9ydCA8cGFs
L3NwaS9tYWMvTlNTaGFyaW5nU2VydmljZVBpY2tlclNQSS5oPgogI2ltcG9ydCA8d3RmL01hdGhF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTg4NCw3ICs4ODUsNyBAQCB2
b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RUZXh0RmllbGRTdHlsZShTdHlsZVJlc29sdmVyJiwg
UmVuZGVyU3R5bGUmLCBjb25zdCBFbAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRUZXh0QXJl
YShjb25zdCBSZW5kZXJPYmplY3QmIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBGbG9hdFJlY3QmIHIpCiB7CiAgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2Fs
Q29udGV4dChwYWludEluZm8uY29udGV4dCgpKTsKLSAgICB3a0RyYXdCZXplbGVkVGV4dEFyZWEo
ciwgaXNFbmFibGVkKG8pICYmICFpc1JlYWRPbmx5Q29udHJvbChvKSk7CisgICAgX05TRHJhd0Nh
cmJvblRoZW1lTGlzdEJveChyLCBpc0VuYWJsZWQobykgJiYgIWlzUmVhZE9ubHlDb250cm9sKG8p
LCBZRVMsIFlFUyk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCmluZGV4IDZmNzUy
OTUyZTc2YzM0ODdiMmFjYTBkMmRlMTEzNWFhYzNkYWVlODcuLjEzOGJlNmI4ZmZjNzQzODg1MDFh
NTE4ZWJhZjAyNDJmOWYxMjkyNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCkBAIC00Miw2ICs0Miw3IEBACiAjaW1w
b3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPG5vdGlmeS5oPgogI2ltcG9y
dCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1
bmNoU2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHN5c2V4aXRzLmg+CiAjaW1wb3J0IDx3dGYvTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAg
LTU5LDcgKzYwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29u
c3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXIKIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFt
ZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVAIE5ldHdvcmtp
bmciLCAidmlzaWJsZSBuYW1lIG9mIHRoZSBuZXR3b3JrIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBp
cyB0aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nl
c3NOYW1lXTsKLSAgICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVmKWFw
cGxpY2F0aW9uTmFtZSk7CisgICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xT
RGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9rTFNEaXNw
bGF5TmFtZUtleSwgKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSwgbnVsbHB0cik7CiB9CiAK
IHN0YXRpYyB2b2lkIG92ZXJyaWRlU3lzdGVtUHJveGllcyhjb25zdCBTdHJpbmcmIGh0dHBQcm94
eSwgY29uc3QgU3RyaW5nJiBodHRwc1Byb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9QbHVn
aW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCmluZGV4IDI0ZDI2ZWQxZTY3NDNhZWM1
NTdhOGY3NjQ4OWI2NzM4MDQxN2ZkMDUuLmRhMjY2YjUxYjFmZjllZmU2MjBkZTA1MjE4MjQ0ODQ4
YTNiMGM0MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1
Z2luUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1Bs
dWdpblByb2Nlc3NNYWMubW0KQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbXBvcnQgPG1hY2gvdm1fc3Rh
dGlzdGljcy5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2Nn
L0NvcmVHcmFwaGljc1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNl
c1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CiAjaW1wb3J0IDxw
YWwvc3BpL21hYy9OU1dpbmRvd1NQSS5oPgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KQEAgLTYyMiw5
ICs2MjMsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVByb2Nlc3Mo
Y29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYQogdm9pZCBQbHVnaW5Qcm9jZXNzOjpp
bml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWUgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIlQCAoJUAgSW50ZXJuZXQg
cGx1Zy1pbikiLCAidmlzaWJsZSBuYW1lIG9mIHRoZSBwbHVnLWluIGhvc3QgcHJvY2Vzcy4gVGhl
IGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBwbHVnLWluIG5hbWUgYW5kIHRoZSBzZWNvbmQgYXJndW1l
bnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiksIFtbKE5TU3RyaW5nICopbV9wbHVnaW5QYXRo
IGxhc3RQYXRoQ29tcG9uZW50XSBzdHJpbmdCeURlbGV0aW5nUGF0aEV4dGVuc2lvbl0sIChOU1N0
cmluZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZV07Ci0gICAgV0tTZXRWaXNpYmxlQXBwbGlj
YXRpb25OYW1lKChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUpOworICAgIF9MU1NldEFwcGxp
Y2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRB
cHBsaWNhdGlvbkFTTigpLCBfa0xTRGlzcGxheU5hbWVLZXksIChDRlN0cmluZ1JlZilhcHBsaWNh
dGlvbk5hbWUsIG51bGxwdHIpOwogICAgIGlmICghbV9wbHVnaW5CdW5kbGVJZGVudGlmaWVyLmlz
RW1wdHkoKSkKLSAgICAgICAgV0tTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNQbHVn
SW5CdW5kbGVJZGVudGlmaWVyS2V5LCBtX3BsdWdpbkJ1bmRsZUlkZW50aWZpZXIuY3JlYXRlQ0ZT
dHJpbmcoKS5nZXQoKSk7CisgICAgICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVt
KGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBrTFNQ
bHVnSW5CdW5kbGVJZGVudGlmaWVyS2V5LCBtX3BsdWdpbkJ1bmRsZUlkZW50aWZpZXIuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSwgbnVsbHB0cik7CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6aW5p
dGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFy
YW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvbWFjL1N0
b3JhZ2VQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvU3Rv
cmFnZVByb2Nlc3NNYWMubW0KaW5kZXggYzAzODg2MGY4ZjE0M2MwZGNmZmM5M2E1Mjc2NmQ2MzQ1
NDc0MWYzOS4uZTM5NjgxYWM3NGFmZWQxZDZmNDlmYmM4ZTUzMDViZmM1YzQzNmE3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVByb2Nlc3NNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVByb2Nlc3NN
YWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUlu
dGVyZmFjZS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDcsNyArNDgsNyBAQCB2b2lkIFN0b3Jh
Z2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcgogdm9pZCBTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1l
KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
IHsKICAgICBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6V0VCX1VJX1NUUklORygiJUAgU3RvcmFnZSIsICJ2aXNpYmxlIG5hbWUgb2YgdGhlIHN0
b3JhZ2UgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiIpLCAo
TlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwotICAgIFdLU2V0VmlzaWJsZUFw
cGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lKTsKKyAgICBfTFNTZXRB
cHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRDdXJy
ZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5LCAoQ0ZTdHJpbmdSZWYpYXBw
bGljYXRpb25OYW1lLCBudWxscHRyKTsKIH0KIAogdm9pZCBTdG9yYWdlUHJvY2Vzczo6aW5pdGlh
bGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1l
dGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0
ZS5tbQppbmRleCAzMjE0OGI5NTZjOTRmZjI4ODg5M2UxNmIyN2FiNTlmYjc0ZDdhYmIxLi5mOGI5
ZGIyNjVhOGEyNGM4NGIyODk5Nzg5ZWQzZmQ4ZWVhNWE0NWZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC03MSw3ICs3MSw3IEBA
CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogI2lmIEhBVkUoQVBQX0xJTktTKQot
I2ltcG9ydCA8cGFsL3NwaS9pb3MvTGF1bmNoU2VydmljZXNTUEkuaD4KKyNpbXBvcnQgPHBhbC9z
cGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4KICNlbmRpZgogCiAjaWYgVVNFKFFVSUNLX0xP
T0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4
IDk5ODBlMTVlMmY5OTI2NmFiMDliOGE1YTAxYmE3ZWQ3ODdhNWI1MDUuLjAxNTVjYjE4YjE1MTQz
OWEwZjEzYjIzYWFkYWFkNjE3NzFjNmU1OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTQsNiArOTQsNyBAQAogI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvTlNBY2Nlc3NpYmlsaXR5U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0FwcGxp
Y2F0aW9uU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0ltbWVkaWF0ZUFjdGlvbkdlc3R1
cmVSZWNvZ25pemVyU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJ
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1NwZWxsQ2hlY2tlclNQSS5oPgogI2ltcG9ydCA8
cGFsL3NwaS9tYWMvTlNUZXh0RmluZGVyU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1dp
bmRvd1NQSS5oPgpAQCAtMTI1OSw3ICsxMjYwLDcgQEAgc3RhdGljIE5TVHJhY2tpbmdBcmVhT3B0
aW9ucyB0cmFja2luZ0FyZWFPcHRpb25zKCkKIHsKICAgICAvLyBMZWdhY3kgc3R5bGUgc2Nyb2xs
YmFycyBoYXZlIGRlc2lnbiBkZXRhaWxzIHRoYXQgcmVseSBvbiB0cmFja2luZyB0aGUgbW91c2Ug
YWxsIHRoZSB0aW1lLgogICAgIE5TVHJhY2tpbmdBcmVhT3B0aW9ucyBvcHRpb25zID0gTlNUcmFj
a2luZ01vdXNlTW92ZWQgfCBOU1RyYWNraW5nTW91c2VFbnRlcmVkQW5kRXhpdGVkIHwgTlNUcmFj
a2luZ0luVmlzaWJsZVJlY3QgfCBOU1RyYWNraW5nQ3Vyc29yVXBkYXRlOwotICAgIGlmIChXS1Jl
Y29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSkKKyAgICBp
ZiAoX05TUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlTGVnYWN5
KQogICAgICAgICBvcHRpb25zIHw9IE5TVHJhY2tpbmdBY3RpdmVBbHdheXM7CiAgICAgZWxzZQog
ICAgICAgICBvcHRpb25zIHw9IE5TVHJhY2tpbmdBY3RpdmVJbktleVdpbmRvdzsKQEAgLTE5NDUs
NyArMTk0Niw3IEBAIGJvb2wgV2ViVmlld0ltcGw6Om1pZ2h0QmVnaW5EcmFnV2hpbGVJbmFjdGl2
ZSgpCiBib29sIFdlYlZpZXdJbXBsOjptaWdodEJlZ2luU2Nyb2xsV2hpbGVJbmFjdGl2ZSgpCiB7
CiAgICAgLy8gTGVnYWN5IHN0eWxlIHNjcm9sbGJhcnMgaGF2ZSBkZXNpZ24gZGV0YWlscyB0aGF0
IHJlbHkgb24gdHJhY2tpbmcgdGhlIG1vdXNlIGFsbCB0aGUgdGltZS4KLSAgICBpZiAoV0tSZWNv
bW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kpCisgICAgaWYg
KF9OU1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCmluZGV4
IGMzZTkyYTdlMTlkYWE4Y2VhNDMxYmI2NmU4YTE4NzE2ZDc5YWU4ZjYuLjljZTg0MTcxMzViZTRm
MzgyYTljNWJiMmViNjA1ZjliNWFkMzVjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCkBAIC00Nyw3ICs0Nyw3IEBA
CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEhBVkUoQVBQX0xJTktTKQot
I2ltcG9ydCA8cGFsL3NwaS9pb3MvTGF1bmNoU2VydmljZXNTUEkuaD4KKyNpbXBvcnQgPHBhbC9z
cGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4KICNlbmRpZgogCiAjaWYgSEFWRShTQUZBUklf
U0VSVklDRVNfRlJBTUVXT1JLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCmluZGV4IDdkNmNiM2VkYTFkMDg5Yzg3NDVhYjM0YTAx
YzNjYjZjZmVmZTNjMjEuLjEyNDFiZDhkOWUxYjcwMTdmMDlkNGM0YzRmZjllYTMwMTljNzZiZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94
eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJv
eHlNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgi
CiAjaW1wb3J0ICJXZWJQb3B1cEl0ZW0uaCIKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFj
ZS5oPgorI2ltcG9ydCA8cGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCkBAIC0xNjUsNyArMTY2LDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94
eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRl
eHQKICAgICB9CiAKICAgICBSZWY8V2ViUG9wdXBNZW51UHJveHlNYWM+IHByb3RlY3QoKnRoaXMp
OwotICAgIFdLUG9wdXBNZW51KG1lbnUsIGxvY2F0aW9uLCByb3VuZGYoTlNXaWR0aChyZWN0KSks
IGR1bW15Vmlldy5nZXQoKSwgc2VsZWN0ZWRJbmRleCwgZm9udCwgY29udHJvbFNpemUsIGRhdGEu
aGlkZUFycm93cyk7CisgICAgUEFMOjpwb3BVcE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihO
U1dpZHRoKHJlY3QpKSwgZHVtbXlWaWV3LmdldCgpLCBzZWxlY3RlZEluZGV4LCBmb250LCBjb250
cm9sU2l6ZSwgZGF0YS5oaWRlQXJyb3dzKTsKIAogICAgIFttX3BvcHVwIGRpc21pc3NQb3BVcF07
CiAgICAgW2R1bW15VmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRz
Y2FwZVBsdWdpbk1hYy5tbQppbmRleCBhMzEyMGU2MjUzODNiZWIyYWY3MDcwMjcwZjQ3Zjg1ODk5
MzBjMjA2Li5kMjkxYTExNDNjYzMxZWNkMTNjOGViYjgyMjUzMmNhN2VmMTFjOWZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2Nh
cGVQbHVnaW5NYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCkBAIC0zOCw2ICszOCw3IEBACiAjaW1wb3J0
IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogI2lt
cG9ydCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9O
U01lbnVTUEkuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nVmlldy5oPgogCkBAIC0xNTgsNyArMTU5LDYgQEAgTlBCb29sIE5ldHNjYXBl
UGx1Z2luOjpjb252ZXJ0UG9pbnQoZG91YmxlIHNvdXJjZVgsIGRvdWJsZSBzb3VyY2VZLCBOUENv
b3JkaW5hdGUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLQogTlBFcnJvciBOZXRzY2FwZVBsdWdp
bjo6cG9wVXBDb250ZXh0TWVudShOUE1lbnUqIG5wTWVudSkKIHsKICAgICBpZiAoIW1fY3VycmVu
dE1vdXNlRXZlbnQpCkBAIC0xNjgsNyArMTY4LDcgQEAgTlBFcnJvciBOZXRzY2FwZVBsdWdpbjo6
cG9wVXBDb250ZXh0TWVudShOUE1lbnUqIG5wTWVudSkKICAgICBpZiAoIWNvbnZlcnRQb2ludCht
X2N1cnJlbnRNb3VzZUV2ZW50LT5kYXRhLm1vdXNlLnBsdWdpblgsIG1fY3VycmVudE1vdXNlRXZl
bnQtPmRhdGEubW91c2UucGx1Z2luWSwgTlBDb29yZGluYXRlU3BhY2VQbHVnaW4sIHNjcmVlblgs
IHNjcmVlblksIE5QQ29vcmRpbmF0ZVNwYWNlU2NyZWVuKSkKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAKLSAgICBXS1BvcHVwQ29udGV4dE1lbnUocmVpbnRlcnByZXRfY2FzdDxOU01l
bnUgKj4obnBNZW51KSwgTlNNYWtlUG9pbnQoc2NyZWVuWCwgc2NyZWVuWSkpOworICAgIF9OU1Bv
cFVwQ2FyYm9uTWVudTMocmVpbnRlcnByZXRfY2FzdDxOU01lbnUgKj4obnBNZW51KSwgbmlsLCBu
aWwsIE5TTWFrZVBvaW50KHNjcmVlblgsIHNjcmVlblkpLCAtMSwgbmlsLCAwLCBuaWwsIE5TUG9w
VXBNZW51VHlwZUNvbnRleHQsIG5pbCk7CiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5t
bQppbmRleCA5MjdjOGFjNDNkMjVkNmY3YzdiODc4NTY2NjYwN2JkMjczYjNlYmExLi5hZmNmZmE1
MTc0NWIyNWI5ZTc0MDQyODMwN2ZhY2VkNTQ4ZGVjYWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDExLCAyMDEyLCAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
ODEsNiArODEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuaD4K
ICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2lt
cG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW1wb3J0IDx3dGYvVVVJRC5oPgogCkBAIC0xNTg1
LDcgKzE1ODYsNyBAQCBib29sIFBERlBsdWdpbjo6aGFuZGxlQ29udGV4dE1lbnVFdmVudChjb25z
dCBXZWJNb3VzZUV2ZW50JiBldmVudCkKICAgICBJbnRQb2ludCBwb2ludCA9IGZyYW1lVmlldy0+
Y29udGVudHNUb1NjcmVlbihJbnRSZWN0KGZyYW1lVmlldy0+d2luZG93VG9Db250ZW50cyhldmVu
dC5wb3NpdGlvbigpKSwgSW50U2l6ZSgpKSkubG9jYXRpb24oKTsKICAgICAKICAgICBpZiAoTlNN
ZW51ICpuc01lbnUgPSBbbV9wZGZMYXllckNvbnRyb2xsZXIgbWVudUZvckV2ZW50Om5zRXZlbnRG
b3JXZWJNb3VzZUV2ZW50KGV2ZW50KV0pIHsKLSAgICAgICAgV0tQb3B1cENvbnRleHRNZW51KG5z
TWVudSwgcG9pbnQpOworICAgICAgICBfTlNQb3BVcENhcmJvbk1lbnUzKG5zTWVudSwgbmlsLCBu
aWwsIHBvaW50LCAtMSwgbmlsLCAwLCBuaWwsIE5TUG9wVXBNZW51VHlwZUNvbnRleHQsIG5pbCk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1J
bnRlcmZhY2UubW0KaW5kZXggNmQxZGQ3MzM5MTllZDRmNDg2MzdkNjdjZTYxNWRjNmZkMDQ3MTIy
Ny4uYjlhYzM5NmJiMDM2ZDU1ZDcxMmMyMjc0ODJhZmEzZmM5NzczMDkzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTM3LDE3ICszNywxMCBAQCB2b2lkIEluaXRXZWJD
b3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgCiAgICAgZGlzcGF0Y2hfb25jZSgmaW5pdE9u
Y2UsIF57CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAgICAgSU5JVChEcmF3QmV6ZWxlZFRleHRB
cmVhKTsKICAgICAgICAgSU5JVChEcmF3TWVkaWFTbGlkZXJUcmFjayk7CiAgICAgICAgIElOSVQo
RHJhd01lZGlhVUlQYXJ0KTsKICAgICAgICAgSU5JVChIaXRUZXN0TWVkaWFVSVBhcnQpOwogICAg
ICAgICBJTklUKE1lYXN1cmVNZWRpYVVJUGFydCk7Ci0gICAgICAgIElOSVQoRXhlY3V0YWJsZVdh
c0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCk7Ci0gICAgICAgIElOSVQoQ29weURlZmF1bHRT
ZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKTsKLSAgICAgICAgSU5JVChDdXJzb3IpOwotICAgICAg
ICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKTsKLSAgICAgICAgSU5JVChOU0VsYXN0
aWNEZWx0YUZvclJlYm91bmREZWx0YSk7Ci0gICAgICAgIElOSVQoTlNSZWJvdW5kRGVsdGFGb3JF
bGFzdGljRGVsdGEpOwogI2VuZGlmCiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA3YzM1ZDhlOTBiNzkxYzk0
MjYxOWZkY2Y3NjYwM2M5YjQzMGVlMDJhLi4yYTNmMzhlMjE4ZTczNGY3NmNlOTdhYzEyYjc4YzIx
NDBlYjYwMmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0KQEAgLTYyLDYgKzYyLDcgQEAKICNpbXBvcnQgPGRpc3BhdGNoL2Rpc3Bh
dGNoLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZO
ZXR3b3JrU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPHBhbC9z
cGkvY29jb2EvcHRocmVhZFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNBY2Nlc3NpYmls
aXR5U1BJLmg+CkBAIC0xOTQsNyArMTk1LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXpl
UHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXIKICAg
ICAgICAgYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6V0VCX1VJ
X1NUUklORygiJUAgV2ViIEluc3BlY3RvciIsICJWaXNpYmxlIG5hbWUgb2YgV2ViIEluc3BlY3Rv
cidzIHdlYiBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiks
IChOU1N0cmluZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZV07CiAgICAgZWxzZQogICAgICAg
ICBhcHBsaWNhdGlvbk5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RS
SU5HKCIlQCBXZWIgQ29udGVudCIsICJWaXNpYmxlIG5hbWUgb2YgdGhlIHdlYiBwcm9jZXNzLiBU
aGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiksIChOU1N0cmluZyAqKXBhcmFt
ZXRlcnMudWlQcm9jZXNzTmFtZV07Ci0gICAgV0tTZXRWaXNpYmxlQXBwbGljYXRpb25OYW1lKChD
RlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUpOworICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3Jt
YXRpb25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFT
TigpLCBfa0xTRGlzcGxheU5hbWVLZXksIChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUsIG51
bGxwdHIpOwogI2VuZGlmCiB9CiAKQEAgLTM5NCw3ICszOTUsNyBAQCB2b2lkIFdlYlByb2Nlc3M6
OnVwZGF0ZUFjdGl2ZVBhZ2VzKCkKICAgICB9CiAKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRj
aF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApLCBb
YWN0aXZlUGFnZVVSTHNdIHsKLSAgICAgICAgV0tTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRl
bShDRlNUUigiTFNBY3RpdmVQYWdlVXNlclZpc2libGVPcmlnaW5zS2V5IiksIChfX2JyaWRnZSBD
RkFycmF5UmVmKWFjdGl2ZVBhZ2VVUkxzLmdldCgpKTsKKyAgICAgICAgX0xTU2V0QXBwbGljYXRp
b25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxp
Y2F0aW9uQVNOKCksIENGU1RSKCJMU0FjdGl2ZVBhZ2VVc2VyVmlzaWJsZU9yaWdpbnNLZXkiKSwg
KF9fYnJpZGdlIENGQXJyYXlSZWYpYWN0aXZlUGFnZVVSTHMuZ2V0KCksIG51bGxwdHIpOwogICAg
IH0pOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZh
dWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxl
Z2F0ZS5tbQppbmRleCAwMjY1YmYwYzUxYTlmMTg3MTU5NjU1NWQ2OTA3ZjkwMjM3MGU3OTU3Li42
MzkyYWIwNTFmMzM5MjQzM2EwMDcwZDRiZmNkNjQyYmQ0NTcxYTJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRDb250ZXh0TWVu
dURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0
ZXMvV2ViRGVmYXVsdENvbnRleHRNZW51RGVsZWdhdGUubW0KQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUxLDYgKzUxLDcgQEAKICNpbXBv
cnQgPFdlYktpdExlZ2FjeS9ET00uaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01Qcml2YXRl
Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHBhbC9zeXN0
ZW0vbWFjL0RlZmF1bHRTZWFyY2hQcm92aWRlci5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMu
aD4KIAogQGltcGxlbWVudGF0aW9uIFdlYkRlZmF1bHRVSURlbGVnYXRlIChXZWJDb250ZXh0TWVu
dSkKQEAgLTkxLDcgKzkyLDcgQEAgLSAoTlNNZW51SXRlbSAqKW1lbnVJdGVtV2l0aFRhZzooaW50
KXRhZyB0YXJnZXQ6KGlkKXRhcmdldCByZXByZXNlbnRlZE9iamVjdDooaWQKICAgICAgICAgICAg
IGFjdGlvbiA9IEBzZWxlY3Rvcihfc2VhcmNoV2l0aFNwb3RsaWdodEZyb21NZW51Oik7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJNZW51SXRlbVRhZ1NlYXJjaFdlYjogewot
ICAgICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzZWFyY2hQcm92aWRlck5hbWUgPSBh
ZG9wdENGKFdLQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKCkpOworICAgICAg
ICAgICAgYXV0byBzZWFyY2hQcm92aWRlck5hbWUgPSBQQUw6OmRlZmF1bHRTZWFyY2hQcm92aWRl
ckRpc3BsYXlOYW1lKCk7CiAgICAgICAgICAgICB0aXRsZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OlVJX1NUUklOR19JTlRFUk5BTCgiU2VhcmNoIHdpdGggJUAiLCAiU2VhcmNoIHdpdGgg
c2VhcmNoIHByb3ZpZGVyIGNvbnRleHQgbWVudSBpdGVtIHdpdGggcHJvdmlkZXIgbmFtZSBpbnNl
cnRlZCIpLCBzZWFyY2hQcm92aWRlck5hbWUuZ2V0KCldOwogICAgICAgICAgICAgYWN0aW9uID0g
QHNlbGVjdG9yKF9zZWFyY2hXaXRoR29vZ2xlRnJvbU1lbnU6KTsKICAgICAgICAgICAgIGJyZWFr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCAxOWIzOGFlMmU4MzQzMjdk
ZDY3MzM4NjE3YjYxN2U4OTdkNzY4ZDliLi4zODRhNTkxZWZlMTc4MjYxOWVhMmQ4ZGRlYTE1MDBm
ZDk1ZGYyY2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MSw2ICs0MSw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0lkZW50aWZp
ZXJSZXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgorI2ltcG9ydCA8
cGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CiAKIGV4dGVybiAiQyIgewpAQCAtMTE3LDcgKzExOCw3IEBAIE5ldHNjYXBlUGx1Z2luSG9z
dFByb3h5OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eShtYWNoX3BvcnRfdCBjbGllbnRQb3J0LCBt
YWNoX3BvCiAgICAgCiAgICAgQ0ZSdW5Mb29wQWRkU291cmNlKENGUnVuTG9vcEdldEN1cnJlbnQo
KSwgZGVhdGhQb3J0U291cmNlLmdldCgpLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUpOwogICAgIAot
ICAgIG1fY2xpZW50UG9ydFNvdXJjZSA9IGFkb3B0Q0YoV0tDcmVhdGVNSUdTZXJ2ZXJTb3VyY2Uo
KG1pZ19zdWJzeXN0ZW1fdCkmV0tXZWJLaXRQbHVnaW5DbGllbnRfc3Vic3lzdGVtLCBtX2NsaWVu
dFBvcnQpKTsKKyAgICBtX2NsaWVudFBvcnRTb3VyY2UgPSBhZG9wdENGKE1TSENyZWF0ZU1JR1Nl
cnZlclNvdXJjZShudWxscHRyLCAwLCAobWlnX3N1YnN5c3RlbV90KSZXS1dlYktpdFBsdWdpbkNs
aWVudF9zdWJzeXN0ZW0sIDAsIG1fY2xpZW50UG9ydCwgbnVsbHB0cikpOwogICAgIENGUnVuTG9v
cEFkZFNvdXJjZShDRlJ1bkxvb3BHZXRDdXJyZW50KCksIG1fY2xpZW50UG9ydFNvdXJjZS5nZXQo
KSwga0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5M
b29wR2V0Q3VycmVudCgpLCBtX2NsaWVudFBvcnRTb3VyY2UuZ2V0KCksIChDRlN0cmluZ1JlZilO
U0V2ZW50VHJhY2tpbmdSdW5Mb29wTW9kZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KaW5kZXggY2M1ZjgxZGZk
NjU2ZmM4ZTczNWQxODU3ZjVhZTg1MzhkMDc0ZmUxNC4uODFjZjRjNzVkMjA5Y2JjZjFjNDcxZjEz
Y2UzY2U0ZjBmMWIxMGMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zMyw2ICszMyw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUG9wdXBNZW51Q2xp
ZW50Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHBhbC9z
eXN0ZW0vbWFjL1BvcHVwTWVudS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0yMTcsNyArMjE4LDcgQEAgdm9pZCBQ
b3B1cE1lbnVNYWM6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5k
ZXgpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIFdLUG9wdXBNZW51KG1lbnUsIGxvY2F0
aW9uLCByb3VuZGYoTlNXaWR0aChyKSksIGR1bW15Vmlldy5nZXQoKSwgaW5kZXgsIHRvTlNGb250
KGZvbnQpLCBjb250cm9sU2l6ZSwgIW1fY2xpZW50LT5tZW51U3R5bGUoKS5oYXNEZWZhdWx0QXBw
ZWFyYW5jZSgpKTsKKyAgICBQQUw6OnBvcFVwTWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRmKE5T
V2lkdGgocikpLCBkdW1teVZpZXcuZ2V0KCksIGluZGV4LCB0b05TRm9udChmb250KSwgY29udHJv
bFNpemUsICFtX2NsaWVudC0+bWVudVN0eWxlKCkuaGFzRGVmYXVsdEFwcGVhcmFuY2UoKSk7CiAK
ICAgICBbbV9wb3B1cCBkaXNtaXNzUG9wVXBdOwogICAgIFtkdW1teVZpZXcgcmVtb3ZlRnJvbVN1
cGVydmlld107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IGY5Yjg3MDIyYjY2MTlk
MTkwODE3NmZhMTE3M2EwYzliOTk1NmExYzIuLjg5ZjNlMDY1ZWUzN2ZjZmYzMjdlNmYyOGJjNTRi
NjE0ZmI0OWU4ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xNTUsNyArMTU1
LDcgQEAKIAogI2lmIEhBVkUoQVBQX0xJTktTKQogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhy
ZWFkUnVuLmg+Ci0jaW1wb3J0IDxwYWwvc3BpL2lvcy9MYXVuY2hTZXJ2aWNlc1NQSS5oPgorI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oPgogI2VuZGlmCiAKICNpZiBF
TkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggYmY3
MTZiNzU3YjBjNTk3MzdmODgzMTAyZWE1MDU4NTkzMDAyMzdlYS4uYTk5Mjk4YmY2ODBkYWViMzA3
Yjg0YjIxYWM3MDU0MDQ2ZDgzN2RhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtNDMs
MjQgKzQzLDExIEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAg
ICAgcmV0dXJuOwogCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICBJTklUKERyYXdCZXplbGVkVGV4
dEFyZWEpOwogICAgIElOSVQoRHJhd01lZGlhVUlQYXJ0KTsKICAgICBJTklUKERyYXdNZWRpYVNs
aWRlclRyYWNrKTsKICAgICBJTklUKEhpdFRlc3RNZWRpYVVJUGFydCk7CiAgICAgSU5JVChNZWFz
dXJlTWVkaWFVSVBhcnQpOwogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQotICAgIElOSVQo
RXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCk7Ci0gICAgSU5JVChDb3B5
RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOwotICAgIElOSVQoQ3Vyc29yKTsKLSNl
bmRpZgotCi0jaWYgIVBMQVRGT1JNKElPUykKLSAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yVGlt
ZURlbHRhKTsKLSAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKTsKLSAgICBJ
TklUKE5TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKTsKLSNlbmRpZgotCiAgICAgZGlkSW5p
dCA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlldy5tbQppbmRleCAyNzRhMTY4NzA1NzQ1NDQxNGFiOTI5NzVhNWMwNDhjNjBlZTVhNThhLi44
ZDNmOWViYmY4MjdmZTE0OGRlMjQxNjAyOWYzZmQ2YWJlMzMxMmRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTEzMCw3ICsxMzAsOSBA
QAogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxkbGZjbi5oPgog
I2ltcG9ydCA8bGltaXRzPgorI2ltcG9ydCA8cGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oPgog
I2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU1VSTEZpbGVUeXBlTWFwcGluZ3NTUEkuaD4KKyNpbXBv
cnQgPHBhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFj
L05TU3BlbGxDaGVja2VyU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1ZpZXdTUEkuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TV2luZG93U1BJLmg+CkBAIC00NjgyLDcgKzQ2ODQsNyBA
QCAtICh2b2lkKXNldERhdGFTb3VyY2U6KFdlYkRhdGFTb3VyY2UgKilkYXRhU291cmNlCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIGlmICghX3ByaXZhdGUtPmluc3RhbGxlZFRyYWNraW5nQXJlYSkg
ewogICAgICAgICBOU1RyYWNraW5nQXJlYU9wdGlvbnMgb3B0aW9ucyA9IE5TVHJhY2tpbmdNb3Vz
ZU1vdmVkIHwgTlNUcmFja2luZ01vdXNlRW50ZXJlZEFuZEV4aXRlZCB8IE5TVHJhY2tpbmdJblZp
c2libGVSZWN0IHwgTlNUcmFja2luZ0N1cnNvclVwZGF0ZTsKLSAgICAgICAgaWYgKFdLUmVjb21t
ZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlTGVnYWN5CisgICAgICAgIGlm
IChfTlNSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kK
ICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgICAgICAgICB8fCBbW3NlbGYgX3dl
YlZpZXddIF9kYXNoYm9hcmRCZWhhdmlvcjpXZWJEYXNoYm9hcmRCZWhhdmlvckFsd2F5c1NlbmRN
b3VzZUV2ZW50c1RvQWxsV2luZG93c10KICNlbmRpZgpAQCAtNjM1NCw3ICs2MzU2LDcgQEAgLSAo
dm9pZClhdHRhY2hSb290TGF5ZXI6KENBTGF5ZXIgKilsYXllcgogICAgIGlmIChbW3NlbGYgX3dl
YlZpZXddIF9wb3N0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdOb3RpZmljYXRpb25zXSkKICAgICAg
ICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9u
TmFtZTpfV2ViVmlld0RpZFN0YXJ0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlvbiBv
YmplY3Q6W3NlbGYgX3dlYlZpZXddIHVzZXJJbmZvOm5pbF07CiAKLSAgICBpZiAoV0tFeGVjdXRh
YmxlV2FzTGlua2VkT25PckJlZm9yZUxpb24oKSkKKyAgICBpZiAoIV9DRkV4ZWN1dGFibGVMaW5r
ZWRPbk9yQWZ0ZXIoQ0ZTeXN0ZW1WZXJzaW9uTW91bnRhaW5MaW9uKSkKICAgICAgICAgW3ZpZXdM
YXllciBzZXRHZW9tZXRyeUZsaXBwZWQ6WUVTXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGFkMjlhODIyNTI5ODljNjZhNjVmNjU4OTRmNGU4
NjExMzUxOTFjMzAuLjRlOGI4MjE2MTFiODg4ZDQ3ZTYyOGRkZWY5ZDNiZWI1OTg1MThmMjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIwOSw2ICsy
MDksNyBAQAogI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5o
PgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkv
Y2YvQ0ZVdGlsaXRpZXNTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNUb3VjaEJhclNQ
SS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU1VSTEZpbGVUeXBlTWFwcGluZ3NTUEkuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TUmVzcG9uZGVyU1BJLmg+CkBAIC0yNjA5LDE2ICsyNjEw
LDE2IEBAIC0gKGlkKV9mb3JtRGVsZWdhdGVGb3JTZWxlY3RvcjooU0VMKXNlbGVjdG9yCiAjaWYg
IVBMQVRGT1JNKElPUykKIC0gKEJPT0wpX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrCiB7
Ci0gICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4o
QCJjb20uYWRvYmUuQWNyb2JhdCIsIC0xLCA5LjApCi0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNo
ZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuQWNyb2JhdC5Qcm8iLCAtMSwgOS4wKQotICAgICAgICB8
fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFkb2JlLlJlYWRlciIsIC0xLCA5LjAp
Ci0gICAgICAgIHx8IFdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYWRvYmUuZGlzdGls
bGVyIiwgLTEsIDkuMCkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNv
bS5hZG9iZS5Db250cmlidXRlIiwgLTEsIDQuMikKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hl
Y2tMZXNzVGhhbihAImNvbS5hZG9iZS5kcmVhbXdlYXZlci05LjAiLCAtMSwgOS4xKQotICAgICAg
ICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLm1hY3JvbWVkaWEuZmlyZXdvcmtz
IiwgLTEsIDkuMSkKLSAgICAgICAgfHwgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5h
ZG9iZS5JbkNvcHkiLCAtMSwgNS4xKQotICAgICAgICB8fCBXS0FwcFZlcnNpb25DaGVja0xlc3NU
aGFuKEAiY29tLmFkb2JlLkluRGVzaWduIiwgLTEsIDUuMSkKLSAgICAgICAgfHwgV0tBcHBWZXJz
aW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hZG9iZS5Tb3VuZGJvb3RoIiwgLTEsIDIpOworICAgIHN0
YXRpYyBCT09MIG5lZWRzUXVpcmsgPSBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigi
Y29tLmFkb2JlLkFjcm9iYXQiKSwgLTEsIDkuMCkKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lvbkNo
ZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5BY3JvYmF0LlBybyIpLCAtMSwgOS4wKQorICAg
ICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLlJlYWRl
ciIpLCAtMSwgOS4wKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNU
UigiY29tLmFkb2JlLmRpc3RpbGxlciIpLCAtMSwgOS4wKQorICAgICAgICB8fCBfQ0ZBcHBWZXJz
aW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLkNvbnRyaWJ1dGUiKSwgLTEsIDQuMikK
KyAgICAgICAgfHwgX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hZG9iZS5k
cmVhbXdlYXZlci05LjAiKSwgLTEsIDkuMSkKKyAgICAgICAgfHwgX0NGQXBwVmVyc2lvbkNoZWNr
TGVzc1RoYW4oQ0ZTVFIoImNvbS5tYWNyb21lZGlhLmZpcmV3b3JrcyIpLCAtMSwgOS4xKQorICAg
ICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNUUigiY29tLmFkb2JlLkluQ29w
eSIpLCAtMSwgNS4xKQorICAgICAgICB8fCBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNU
UigiY29tLmFkb2JlLkluRGVzaWduIiksIC0xLCA1LjEpCisgICAgICAgIHx8IF9DRkFwcFZlcnNp
b25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uYWRvYmUuU291bmRib290aCIpLCAtMSwgMik7CiAK
ICAgICByZXR1cm4gbmVlZHNRdWlyazsKIH0KQEAgLTI2MjYsMTMgKzI2MjcsMTMgQEAgLSAoQk9P
TClfbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsKIC0gKEJPT0wpX25lZWRzTGlua0VsZW1l
bnRUZXh0Q1NTUXVpcmsKIHsKICAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gIVdlYktpdExp
bmtlZE9uT3JBZnRlcihXRUJLSVRfRklSU1RfVkVSU0lPTl9XSVRIT1VUX0xJTktfRUxFTUVOVF9U
RVhUX0NTU19RVUlSSykKLSAgICAgICAgJiYgV0tBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNv
bS5lLWZyb250aWVyLnNoYWRlMTAiLCAtMSwgMTAuNik7CisgICAgICAgICYmIF9DRkFwcFZlcnNp
b25DaGVja0xlc3NUaGFuKENGU1RSKCJjb20uZS1mcm9udGllci5zaGFkZTEwIiksIC0xLCAxMC42
KTsKICAgICByZXR1cm4gbmVlZHNRdWlyazsKIH0KIAogLSAoQk9PTClfbmVlZHNJc0xvYWRpbmdJ
bkFQSVNlbnNlUXVpcmsKIHsKLSAgICBzdGF0aWMgQk9PTCBuZWVkc1F1aXJrID0gV0tBcHBWZXJz
aW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hcHBsZS5pQWRQcm9kdWNlciIsIC0xLCAyLjEpOworICAg
IHN0YXRpYyBCT09MIG5lZWRzUXVpcmsgPSBfQ0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlNU
UigiY29tLmFwcGxlLmlBZFByb2R1Y2VyIiksIC0xLCAyLjEpOwogICAgIAogICAgIHJldHVybiBu
ZWVkc1F1aXJrOwogfQpAQCAtMjY0NSw3ICsyNjQ2LDcgQEAgLSAoQk9PTClfbmVlZHNLZXlib2Fy
ZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MKIAogLSAoQk9PTClfbmVlZHNGcmFtZUxvYWREZWxl
Z2F0ZVJldGFpblF1aXJrCiB7Ci0gICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IFdLQXBwVmVy
c2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uZXF1aW51eC5pU2FsZTUiLCAtMSwgNS42KTsgICAgCisg
ICAgc3RhdGljIEJPT0wgbmVlZHNRdWlyayA9IF9DRkFwcFZlcnNpb25DaGVja0xlc3NUaGFuKENG
U1RSKCJjb20uZXF1aW51eC5pU2FsZTUiKSwgLTEsIDUuNik7CiAgICAgcmV0dXJuIG5lZWRzUXVp
cms7CiB9CiAKQEAgLTI5MjcsNyArMjkyOCw3IEBAIC0gKHZvaWQpX3ByZWZlcmVuY2VzQ2hhbmdl
ZDooV2ViUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcwogICAgIHNldHRpbmdzLnNldE5lZWRzQWRv
YmVGcmFtZVJlbG9hZGluZ1F1aXJrKFtzZWxmIF9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWly
a10pOwogICAgIHNldHRpbmdzLnNldFRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0KFtz
ZWxmIF9uZWVkc0xpbmtFbGVtZW50VGV4dENTU1F1aXJrXSk7CiAgICAgc2V0dGluZ3Muc2V0TmVl
ZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MoW3NlbGYgX25lZWRzS2V5Ym9hcmRF
dmVudERpc2FtYmlndWF0aW9uUXVpcmtzXSk7Ci0gICAgc2V0dGluZ3Muc2V0RW5mb3JjZUNTU01J
TUVUeXBlSW5Ob1F1aXJrc01vZGUoIVdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYXBw
bGUuaVdlYiIsIC0xLCAyLjEpKTsKKyAgICBzZXR0aW5ncy5zZXRFbmZvcmNlQ1NTTUlNRVR5cGVJ
bk5vUXVpcmtzTW9kZSghX0NGQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQ0ZTVFIoImNvbS5hcHBs
ZS5pV2ViIiksIC0xLCAyLjEpKTsKICAgICBzZXR0aW5ncy5zZXROZWVkc0lzTG9hZGluZ0luQVBJ
U2Vuc2VRdWlyayhbc2VsZiBfbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmtdKTsKICAgICBz
ZXR0aW5ncy5zZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoW3ByZWZlcmVuY2VzIHRleHRBcmVhc0Fy
ZVJlc2l6YWJsZV0pOwogICAgIHNldHRpbmdzLnNldEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNF
bmFibGVkKFtwcmVmZXJlbmNlcyBleHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZF0pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>