<?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>136529</bug_id>
          
          <creation_ts>2014-09-04 04:41:15 -0700</creation_ts>
          <short_desc>Remove CSS_FILTERS flag</short_desc>
          <delta_ts>2014-09-05 00:55:34 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Éva Balázsfalvi">evab.u-szeged</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>krit</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1033190</commentid>
    <comment_count>0</comment_count>
    <who name="Éva Balázsfalvi">evab.u-szeged</who>
    <bug_when>2014-09-04 04:41:15 -0700</bug_when>
    <thetext>CSS_FILTERS flag is enabled on all ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033191</commentid>
    <comment_count>1</comment_count>
      <attachid>237621</attachid>
    <who name="Éva Balázsfalvi">evab.u-szeged</who>
    <bug_when>2014-09-04 05:07:11 -0700</bug_when>
    <thetext>Created attachment 237621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033192</commentid>
    <comment_count>2</comment_count>
      <attachid>237621</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-09-04 05:59:13 -0700</bug_when>
    <thetext>Comment on attachment 237621
Patch

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

&gt; Source/WebCore/WebCore.exp.in:-3021
&gt; -#if ENABLE(CSS_FILTERS)
&gt;  __ZN7WebCore16FilterOperationsaSERKS0_
&gt; -#endif

We should move it to the unconditional list.

&gt; Source/WebCore/bindings/js/JSCSSValueCustom.cpp:-44
&gt; -#if ENABLE(CSS_FILTERS)
&gt;  #include &quot;JSWebKitCSSFilterValue.h&quot;
&gt;  #include &quot;WebKitCSSFilterValue.h&quot;
&gt; -#endif

alphabetical order

&gt; Source/WebCore/bindings/objc/DOMCSS.mm:-57
&gt; -#if ENABLE(CSS_FILTERS)
&gt;  #import &quot;DOMWebKitCSSFilterValue.h&quot;
&gt; -#endif

ditto

&gt; Source/WebCore/css/CSSFilterImageValue.cpp:-31
&gt; -
&gt; -#if ENABLE(CSS_FILTERS)
&gt; -

We need an empty line after #include &quot;CSSFilterImageValue.h&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033193</commentid>
    <comment_count>3</comment_count>
      <attachid>237622</attachid>
    <who name="Éva Balázsfalvi">evab.u-szeged</who>
    <bug_when>2014-09-04 06:15:11 -0700</bug_when>
    <thetext>Created attachment 237622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033194</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-09-04 06:49:38 -0700</bug_when>
    <thetext>discussion about it on webkit-dev without any objection:
https://lists.webkit.org/pipermail/webkit-dev/2014-May/026553.html

We could remove FILTERS too in the near future. 
Are you going to prepare a patch for it too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033246</commentid>
    <comment_count>5</comment_count>
      <attachid>237622</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-09-04 11:08:14 -0700</bug_when>
    <thetext>Comment on attachment 237622
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033259</commentid>
    <comment_count>6</comment_count>
      <attachid>237622</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-04 11:43:51 -0700</bug_when>
    <thetext>Comment on attachment 237622
Patch

Clearing flags on attachment: 237622

Committed r173268: &lt;http://trac.webkit.org/changeset/173268&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033260</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-04 11:43:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033419</commentid>
    <comment_count>8</comment_count>
    <who name="Éva Balázsfalvi">evab.u-szeged</who>
    <bug_when>2014-09-05 00:55:34 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; discussion about it on webkit-dev without any objection:
&gt; https://lists.webkit.org/pipermail/webkit-dev/2014-May/026553.html
&gt; 
&gt; We could remove FILTERS too in the near future. 
&gt; Are you going to prepare a patch for it too?

Yes, I&apos;m working on it already.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237621</attachid>
            <date>2014-09-04 05:07:11 -0700</date>
            <delta_ts>2014-09-04 06:15:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136529-20140904140701.patch</filename>
            <type>text/plain</type>
            <size>214270</size>
            <attacher name="Éva Balázsfalvi">evab.u-szeged</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZmU0OTM2ODhkMzkzMGI0MTUxOTRiOGRjMzQzMzhjOTEzM2Q2NmQ1Li44ODUwZTc3NGExOTQxOGNi
OWUwNzk4Y2I0MzUxZjlhN2I3ZjI3NmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNC0wOS0wNCAgRXZhIEJhbGF6c2ZhbHZpICA8ZXZhYi51LXN6ZWdlZEBw
YXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAgICAgIFJlbW92ZSBDU1NfRklMVEVSUyBmbGFnCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY1MjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE0LTA5LTAyICBCcmlhbiBKLiBC
dXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KIAogICAgICAgICBMZWdhY3lQcm9maWxlcjog
cmVtb3ZlIHJlZHVuZGFudCBQcm9maWxlTm9kZSBtZW1iZXJzIGFuZCBvdGhlciBjbGVhbnVwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmlu
ZGV4IDNhOGRkN2M5MDM2NDIxNTdkNWQwMzA4MTcxMzZiODg0YjA5ZjU1NzAuLjQ2ZDEzNzMwOWQ5
Y2RmZTY3NzM2MWI0NjM3ZjhkNjU4N2M1MjE1YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQt
MDktMDQgIEV2YSBCYWxhenNmYWx2aSAgPGV2YWIudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNv
bT4KKworICAgICAgICBSZW1vdmUgQ1NTX0ZJTFRFUlMgZmxhZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTI5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvRmVhdHVyZURlZmluZXMuaDoKKwog
MjAxNC0wOS0wMyAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgR01haW5Mb29wU291cmNlIGlzIGV4cG9zZWQgdG8gcmFjZSBjb25kaXRpb25zCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYzJkYzc5NDNkZWM0ZjllYWYxYTdiNDIyZWE1MTk2NTFlMWViNWU1Ni4uZDFiYzY4Yzdk
ZjdhNmRjMmE5N2ZhMWEyYTRiOTYzY2YzMWYyNTA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
OCBAQAorMjAxNC0wOS0wNCAgRXZhIEJhbGF6c2ZhbHZpICA8ZXZhYi51LXN6ZWdlZEBwYXJ0bmVy
LnNhbXN1bmcuY29tPgorCisgICAgICAgIFJlbW92ZSBDU1NfRklMVEVSUyBmbGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY1MjkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5v
IGJlaGF2aW9yIGNoYW5nZWQuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICog
V2ViQ29yZS5leHAuaW46CisgICAgICAgICogYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TUNTUy5tbToKKyAgICAgICAgKGtpdENsYXNzKToKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRy
YWN0b3I6OnZhbHVlRm9yRmlsdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmlzTGF5b3V0RGVwZW5k
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5
VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaDoKKyAg
ICAgICAgKiBjc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgICogY3NzL0NTU0Zp
bHRlckltYWdlVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjppbWFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjppc0ZpeGVkU2l6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpmaXhlZFNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6aXNQZW5kaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0ltYWdlR2VuZXJhdG9yVmFsdWU6Omtub3duVG9CZU9wYXF1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpsb2FkU3ViaW1hZ2VzKToK
KyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR2VuZXJh
dGVkSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZpbHRlckltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWx0ZXIpOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlOYW1lcy5pbjoKKyAg
ICAgICAgKiBjc3MvQ1NTVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6Omhh
c0ZhaWxlZE9yQ2FuY2VsZWRTdWJyZXNvdXJjZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWU6OmVxdWFscyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6ZGVzdHJveSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NW
YWx1ZTo6Y2xvbmVGb3JDU1NPTSk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlLmg6CisgICAgICAg
ICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZl
cjo6U3RhdGU6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFwcGx5
UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Z2VuZXJhdGVkT3JQ
ZW5kaW5nRnJvbVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmxvYWRQ
ZW5kaW5nUmVzb3VyY2VzKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAg
ICAqIGNzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHA6CisgICAgICAgICogY3NzL1dlYktpdENT
U0ZpbHRlclZhbHVlLmg6CisgICAgICAgICogY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmlkbDoK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuY3BwOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZS5oOgorICAg
ICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
c2Nyb2xsQ29udGVudHNGYXN0UGF0aCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0
aW9uQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjpBbmltYXRpb25C
YXNlKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmg6CisgICAgICAg
ICogcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YmxlbmRGaWx0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6YmxlbmRGdW5jKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcDo6Q1NTUHJvcGVydHlB
bmltYXRpb25XcmFwcGVyTWFwKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFu
aW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6cmVzZXQp
OgorICAgICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OmNoZWNrRm9yTWF0Y2hpbmdG
aWx0ZXJGdW5jdGlvbkxpc3RzKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFu
aW1hdGlvbi5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpLZXlmcmFtZUFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6Y2hlY2tGb3JNYXRjaGlu
Z0ZpbHRlckZ1bmN0aW9uTGlzdHMpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1l
QW5pbWF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjp2YWxpZGF0ZUZpbHRlck9wZXJh
dGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmFwcGx5RmlsdGVyQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJBbmltYXRpb246OmFwcGx5SW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbnRSZWN0RXh0ZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByb3BlcnR5SWRUb1N0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpzdXBwb3J0c0FjY2VsZXJhdGVkRmlsdGVyQW5pbWF0
aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmZpbHRlcnNDYW5CZUNv
bXBvc2l0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjptb3ZlT3JDb3B5
QW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldEZpbHRl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjphZGRBbmltYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZv
cmVTdWJsYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVG
aWx0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6ZW5zdXJlU3RydWN0
dXJhbExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlRmls
dGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25LZXlmcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYS9QbGF0Zm9ybUNBRmlsdGVycy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L1BsYXRmb3JtQ0FMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9Q
bGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW06CisgICAgICAgIChQbGF0Zm9ybUNBQW5pbWF0
aW9uTWFjOjpzZXRGcm9tVmFsdWUpOgorICAgICAgICAoUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6
c2V0VG9WYWx1ZSk6CisgICAgICAgIChQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRWYWx1ZXMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBRmlsdGVyc01h
Yy5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FGaWx0ZXJzOjphbmltYXRlZEZpbHRlclByb3BlcnR5
TmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXll
ck1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5
ZXJNYWMubW06CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJNYWM6OmNsb25lKToKKyAgICAgICAg
KFBsYXRmb3JtQ0FMYXllck1hYzo6ZmlsdGVyc0NhbkJlQ29tcG9zaXRlZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uY3BwOgorICAg
ICAgICAoUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0RnJvbVZhbHVlKToKKyAgICAgICAgKFBs
YXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFRvVmFsdWUpOgorICAgICAgICAoUGxhdGZvcm1DQUFu
aW1hdGlvbldpbjo6c2V0VmFsdWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93
aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL3dpbi9QbGF0Zm9ybUNBRmlsdGVyc1dpbi5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNBRmls
dGVyczo6YW5pbWF0ZWRGaWx0ZXJQcm9wZXJ0eU5hbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwOgorICAgICAgICAoUGxhdGZvcm1D
QUxheWVyV2luOjpjbG9uZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1Bs
YXRmb3JtQ0FMYXllcldpbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlck9wZXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GaWx0ZXJPcGVyYXRpb25zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpjb21taXRMYXllckNoYW5nZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnNldEZpbHRlcnMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0xEYXRhOjpUZXh0dXJlTWFwcGVyR0xEYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OnByZXBhcmVGaWx0ZXJQcm9ncmFtKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUpOgorICAgICAgICAoV2ViQ29yZTo6Qml0
bWFwVGV4dHVyZUdMOjphcHBseUZpbHRlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJp
dG1hcFRleHR1cmVJbWFnZUJ1ZmZlcjo6YXBwbHlGaWx0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldEFuaW1hdGVkRmlsdGVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OmNvbXB1dGVPdmVybGFwUmVnaW9ucyk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50SW50b1N1cmZhY2Up
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpzZXRGaWx0ZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6c3luY0FuaW1hdGlvbnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6aGFzRmlsdGVycyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmRpZENoYW5nZUZpbHRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpzZXRGaWx0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c3luY0ZpbHRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVyRmlsdGVyc0lmTmVlZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0TGF5ZXJTdGF0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9GaWx0
ZXJFZmZlY3RSZW5kZXJlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OmFkanVzdFN0eWxlRGlmZmVyZW5j
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckVsZW1lbnQ6Omhhc0ZpbHRlcik6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5k
ZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKToK
KyAgICAgICAgKFdlYkNvcmU6OnRyYW5zcGFyZW5jeUNsaXBCb3gpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6UmVuZGVyTGF5ZXJCYWNraW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6Y3JlYXRlUHJpbWFyeUdy
YXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRh
dGVGaWx0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
R2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFu
aW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0VHJh
bnNpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmdyYXBoaWNz
TGF5ZXJUb0NTU1Byb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2lu
Zzo6Y3NzVG9HcmFwaGljc0xheWVyUHJvcGVydHkpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWly
ZXNDb21wb3NpdGluZ0ZvckFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JGaWx0ZXJzKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVj
dDo6c3R5bGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29udGFpbmVyRm9yUmVwYWludCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJlcGFpbnRVc2luZ0NvbnRhaW5lcik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVmlldzo6UmVuZGVyVmlldyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVpcmVzTGF5b3V0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc0xheWVyUmVwYWludCk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1N0eWxlRmlsdGVyRGF0YS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
RmlsdGVyRGF0YS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpoYXNGaWx0ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU1ZHUmVzb3VyY2VDb250YWluZXI6Om1hcmtBbGxDbGllbnRMYXllcnNGb3JJbnZhbGlkYXRp
b24pOgorCiAyMDE0LTA5LTAyICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVk
dT4KIAogICAgICAgICBMZWdhY3lQcm9maWxlcjogcmVtb3ZlIHJlZHVuZGFudCBQcm9maWxlTm9k
ZSBtZW1iZXJzIGFuZCBvdGhlciBjbGVhbnVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYjVlOGM2YTFm
Yjc4MzA3OTZmM2JkN2ZkM2E3ODhkZDVjNjNhZDg4Mi4uN2ZiMTFlYWVlMzQ1MDcyNDMxYTdkZDA1
MjJmZWY4MDBhYzQwYTM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE0
LTA5LTA0ICBFdmEgQmFsYXpzZmFsdmkgIDxldmFiLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgUmVtb3ZlIENTU19GSUxURVJTIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjUyOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWc6CisKIDIwMTQtMDgtMzEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IChhbmQgdW5uZWNlc3Nh
cmlseSBpT1Mtc3BlY2lmaWMpIHNldFN0cm9rZUFuZEZpbGxDb2xvcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDA0
NzM2NzE1ZTU3YTRjNjFiMDQyZmI4NTJhMmJjYWQ5MmUxMjYwM2QuLjM0ODQ4YjUwOTM2N2ZjNWYx
YTQ1YTdhY2MyODJlNDBiZDNmNDlmNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAx
NC0wOS0wNCAgRXZhIEJhbGF6c2ZhbHZpICA8ZXZhYi51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcu
Y29tPgorCisgICAgICAgIFJlbW92ZSBDU1NfRklMVEVSUyBmbGFnCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY1MjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmRlY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8R3JhcGhpY3NMYXllckFuaW1hdGlvbj46OmVuY29kZSk6CisgICAg
ICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8R3JhcGhpY3NMYXllckFuaW1hdGlvbj46OmRlY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3Rh
dGU+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllclN0YXRlPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBT
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFw
aGljc0xheWVyQ0FSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpHcmFwaGljc0xheWVyQ0FS
ZW1vdGU6OmZpbHRlcnNDYW5CZUNvbXBvc2l0ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tOgorICAgICAgICAo
V2ViS2l0OjpQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRGcm9tVmFsdWUpOgorICAgICAg
ICAoV2ViS2l0OjpQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUb1ZhbHVlKToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VmFsdWVzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6dXBkYXRlQ2xvbmVkTGF5ZXJQ
cm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpmaWx0
ZXJzQ2FuQmVDb21wb3NpdGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Bs
YXRmb3JtQ0FMYXllclJlbW90ZS5oOgorCiAyMDE0LTA5LTAyICBZb25nanVuIFpoYW5nICA8eW9u
Z2p1bl96aGFuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUGFzcyB0aGUgcmVzb3VyY2UgaWRlbnRp
ZmllciBpbiB3aWxsU2VuZFJlcXVlc3QgY2FsbGJhY2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
aW5kZXggOWQwMjhmMzAwOTRiM2M5MTIzNDdjOWQ3ZTQwYTBjNTZiNDBjMjBhNy4uMGY2MTRkNjY1
YmQwNjU2NjYxZDkzZDc4YzI0MzhlODAzYTgzYmI2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwpAQCAtNTIsNyArNTIsNiBAQCBFTkFCTEVfQ1NQX05FWFQgPSA7CiBFTkFCTEVfQ1NTX0JPWF9E
RUNPUkFUSU9OX0JSRUFLID0gRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSzsKIEVOQUJM
RV9DU1NfQ09NUE9TSVRJTkcgPSBFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HOwogRU5BQkxFX0NTU19E
RVZJQ0VfQURBUFRBVElPTiA9IDsKLUVOQUJMRV9DU1NfRklMVEVSUyA9IEVOQUJMRV9DU1NfRklM
VEVSUzsKIEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQgPSBFTkFCTEVfQ1NTX0dSSURfTEFZT1VUOwog
RU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTiA9IDsKIEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xV
VElPTiA9IDsKQEAgLTI3Myw0ICsyNzIsNCBAQCBFTkFCTEVfTExJTlRfQ19MT09QID0gOwogCiBF
TkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDID0gRU5BQkxFX1NBVFVSQVRFRF9MQVlP
VVRfQVJJVEhNRVRJQzsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5H
KSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09W
RVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9Q
QVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkp
ICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykg
JChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChF
TkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQo
RU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NT
U19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5B
QkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVf
Q1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NT
M19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJ
U0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJP
QVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJB
TlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRU5D
UllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRF
UlMpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAk
KEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChF
TkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NF
UlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVY
RURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9N
T05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUsp
ICQoRU5BQkxFX0lOU1BFQ1RPUikgJChFTkFCTEVfSU9TX0FJUlBMQVkpICQoRU5BQkxFX0lPU19H
RVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9T
X1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5B
QkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVT
KSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFC
TEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9M
U19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElD
UykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNF
X0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxF
X05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJM
RV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VT
KSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1Qp
ICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFC
TEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChF
TkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9D
U1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9E
QVRBQkFTRSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVO
QUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVO
VCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5B
QkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxF
X1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChF
TkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9B
VURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxF
X1BJQ1RVUkVfU0laRVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJ
T05TKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJ
VCkgJChFTkFCTEVfTExJTlRfQ19MT09QKSAkKEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRI
TUVUSUMpICQoRkVBVFVSRV9ERUZJTkVTXyQoUExBVEZPUk1fTkFNRSkpOworRkVBVFVSRV9ERUZJ
TkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVZG
X0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19Q
QVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAk
KEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NT
U19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJM
RV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFC
TEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikg
JChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVO
QUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTKSAkKEVOQUJM
RV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJT
T1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9E
QVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFU
QV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJM
RV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVf
RklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9B
UEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFC
TEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5H
KSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFC
TEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVf
SU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01Q
TEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
V0VFSykgJChFTkFCTEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9JT1NfQUlSUExBWSkgJChFTkFCTEVf
SU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJM
RV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykg
JChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAk
KEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NP
TlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVf
TU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChF
TkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJP
TUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhf
TElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAk
KEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZ
KSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5B
QkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVf
U1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMp
ICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFURV9F
TEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykg
JChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChF
TkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVF
KSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVf
V0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChF
TkFCTEVfUElDVFVSRV9TSVpFUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCVlRU
X1JFR0lPTlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9G
VExfSklUKSAkKEVOQUJMRV9MTElOVF9DX0xPT1ApICQoRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRf
QVJJVEhNRVRJQykgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oIGIvU291cmNlL1dURi93dGYvRmVh
dHVyZURlZmluZXMuaAppbmRleCA3ZjI3OWFhZjQ4OWI2OTU4YTVlNGUwZDk2ZmY4Njc4YWRlNzJm
ODg3Li5jYWMyMDU4MDQxYjRlZjIzOTc5OGM4NGY5NjgyNjkxYTNhMmUzMjM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zl
YXR1cmVEZWZpbmVzLmgKQEAgLTM3NiwxMCArMzc2LDYgQEAgdGhlIHB1YmxpYyBpT1MgU0RLLiBX
ZSB3aWxsIGFsc28gbmVlZCB0byB1cGRhdGUgdGhlIEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGZp
bGUKICNkZWZpbmUgRU5BQkxFX0NTU19DT01QT1NJVElORyAwCiAjZW5kaWYKIAotI2lmICFkZWZp
bmVkKEVOQUJMRV9DU1NfRklMVEVSUykKLSNkZWZpbmUgRU5BQkxFX0NTU19GSUxURVJTIDAKLSNl
bmRpZgotCiAjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikKICNkZWZp
bmUgRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTiAwCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291
cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXgg
OWQwMjhmMzAwOTRiM2M5MTIzNDdjOWQ3ZTQwYTBjNTZiNDBjMjBhNy4uMGY2MTRkNjY1YmQwNjU2
NjYxZDkzZDc4YzI0MzhlODAzYTgzYmI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTUyLDcgKzUyLDYgQEAg
RU5BQkxFX0NTUF9ORVhUID0gOwogRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyA9IEVO
QUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUs7CiBFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HID0g
RU5BQkxFX0NTU19DT01QT1NJVElORzsKIEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04gPSA7
Ci1FTkFCTEVfQ1NTX0ZJTFRFUlMgPSBFTkFCTEVfQ1NTX0ZJTFRFUlM7CiBFTkFCTEVfQ1NTX0dS
SURfTEFZT1VUID0gRU5BQkxFX0NTU19HUklEX0xBWU9VVDsKIEVOQUJMRV9DU1NfSU1BR0VfT1JJ
RU5UQVRJT04gPSA7CiBFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04gPSA7CkBAIC0yNzMsNCAr
MjcyLDQgQEAgRU5BQkxFX0xMSU5UX0NfTE9PUCA9IDsKIAogRU5BQkxFX1NBVFVSQVRFRF9MQVlP
VVRfQVJJVEhNRVRJQyA9IEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUM7CiAKLUZF
QVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFU
RURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQo
RU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJM
RV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAk
KEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElO
RykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRklMVEVSUykg
JChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04p
ICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChF
TkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxF
X0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NT
M19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9D
VVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJM
RV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJM
RV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVf
RE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFC
TEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GT05UX0xP
QURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChF
TkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVf
SElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxFX0hJR0hfRFBJX0NBTlZB
UykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVO
QUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktF
UlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVU
X1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1Ip
ICQoRU5BQkxFX0lPU19BSVJQTEFZKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5B
QkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5B
QkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dF
Ql9BVURJTykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQo
RU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9N
RURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VM
RU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5B
QkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJS
RU5DWSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChF
TkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZ
X0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChF
TkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1Ip
ICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5H
KSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVO
QUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NV
QlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJF
Ul9ERVRFQ1RJT04pICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVU
T1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJ
TkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklE
RU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1Nf
TUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9S
RVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVO
QUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJChFTkFCTEVfWEhSX1RJ
TUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0xMSU5UX0Nf
TE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKSAkKEZFQVRVUkVfREVG
SU5FU18kKFBMQVRGT1JNX05BTUUpKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JF
TkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVS
QVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVf
Q0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFT
X1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxU
RVJJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJF
QUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFU
SU9OKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRB
VElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05T
KSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChF
TkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJM
RV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5B
QkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQo
RU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQo
RU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVO
QUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAk
KEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZP
TlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFE
KSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElf
Q0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMp
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5f
V09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQo
RU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BF
Q1RPUikgJChFTkFCTEVfSU9TX0FJUlBMQVkpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykg
JChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykg
JChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJ
RklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdB
Q1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRD
SCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5B
QkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVU
RVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkg
JChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NP
TkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lO
KSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9Y
SU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RB
KSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVNT1RFX0lOU1BF
Q1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUlVCQkVSX0JB
TkRJTkcpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVAp
ICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFC
TEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVf
TlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVY
VF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05f
TE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJM
RV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfVklFV19NT0RF
X0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVf
V0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1BJQ1RVUkVfU0laRVMp
ICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAkKEVOQUJMRV9Y
SFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfTExJ
TlRfQ19MT09QKSAkKEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpICQoRkVBVFVS
RV9ERUZJTkVTXyQoUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmlu
ZGV4IDc0YTUyYmYyZDVjM2M2NmMxOTg2OGY3NjRhZTRjMzMyMDQ2MWFlMDIuLjYyNGNlMTc4NDJl
M2FhOGE0ZTcyOTBlZmEyZWEyMWJkNGIwMDFlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5j
cHAKQEAgLTQ5NCw5ICs0OTQsNyBAQAogI2luY2x1ZGUgIkpTVmFsaWRpdHlTdGF0ZS5jcHAiCiAj
aW5jbHVkZSAiSlNWb2lkQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0QW5pbWF0aW9u
RXZlbnQuY3BwIgotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICNpbmNsdWRlICJKU1dlYktpdENT
U0ZpbHRlclZhbHVlLmNwcCIKLSNlbmRpZgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlLmNwcCIKICNpbmNsdWRlICJKU1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIgogI2luY2x1
ZGUgIkpTV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCA2ZDdhMmQ1YmY4MDI2ZjE3ZjhkOTY4ODE2Mzk0NjkyOTI4NjBmZDJlLi45M2NjZmJkNDI0Njkz
ODFjZTg5YWIyNGIzMGEwZTc4YmQwMzg5MjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMzAx
Niw5ICszMDE2LDcgQEAgX19aTjdXZWJDb3JlMTJET01XaW5kb3dDU1M2Y3JlYXRlRXYKIF9fWk43
V2ViQ29yZTR0b0pTRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5T
XzEyRE9NV2luZG93Q1NTRQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiBfX1pO
N1dlYkNvcmUxNkZpbHRlck9wZXJhdGlvbnNhU0VSS1MwXwotI2VuZGlmCiAKICNpZiBFTkFCTEUo
Q1NTX1NDUk9MTF9TTkFQKQogX19aTjdXZWJDb3JlMjdTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUyMnNldFZlcnRpY2FsU25hcE9mZnNldHNFUktOM1dURjZWZWN0b3JJZkxtMEVOUzFfMTVDcmFz
aE9uT3ZlcmZsb3dFRUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q1NTVmFsdWVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NWYWx1
ZUN1c3RvbS5jcHAKaW5kZXggYjU0ZGU3YmYxNWE3MGIxNTEyMzZmN2I1NGM2MTRkYjVkNWY3OWYw
Mi4uYWQ0ZmJlYzQ0OGRmZDk5YmE3YjdjZjA2NGNlNzE1MTlmZTA5YmQwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1c3RvbS5jcHAKQEAgLTM3LDExICsz
Nyw4IEBACiAjaW5jbHVkZSAiU1ZHQ29sb3IuaCIKICNpbmNsdWRlICJTVkdQYWludC5oIgogI2lu
Y2x1ZGUgIldlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgiCi0KLSNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIgogI2luY2x1ZGUgIldlYktp
dENTU0ZpbHRlclZhbHVlLmgiCi0jZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApAQCAt
ODcsMTAgKzg0LDggQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENTU1ZhbHVlKiB2YWx1ZSkKIAogICAgIGlmICh2YWx1ZS0+aXNXZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZSgpKQogICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQ
UEVSKGdsb2JhbE9iamVjdCwgV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUsIHZhbHVlKTsKLSNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgZWxzZSBpZiAodmFsdWUtPmlzV2ViS2l0Q1NTRmlsdGVy
VmFsdWUoKSkKICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmpl
Y3QsIFdlYktpdENTU0ZpbHRlclZhbHVlLCB2YWx1ZSk7Ci0jZW5kaWYKICAgICBlbHNlIGlmICh2
YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBF
UihnbG9iYWxPYmplY3QsIENTU1ZhbHVlTGlzdCwgdmFsdWUpOwogICAgIGVsc2UgaWYgKHZhbHVl
LT5pc1NWR1BhaW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUNTUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTLm1tCmluZGV4
IGJkYTcxMjZhNGJmMWY0NzliNWYwMTlkZjJkY2VhMzUyNTljNGU0YTAuLjNjNGE3ODg0NDY2OWM1
ZWVhY2MzZGNhMTVlNTVlZmRkZThlYTJjYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NQ1NTLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NQ1NTLm1tCkBAIC01MSwxMCArNTEsNyBAQAogI2ltcG9ydCAiRE9NV2ViS2l0Q1NTS2V5ZnJh
bWVSdWxlLmgiCiAjaW1wb3J0ICJET01XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiCiAjaW1wb3J0
ICJET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgotCi0jaWYgRU5BQkxFKENTU19GSUxURVJT
KQogI2ltcG9ydCAiRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCIKLSNlbmRpZgogCiAjaWYgRU5B
QkxFKENTU19SRUdJT05TKQogI2ltcG9ydCAiRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZS5oIgpAQCAt
MTI2LDEwICsxMjMsOCBAQCBDbGFzcyBraXRDbGFzcyhXZWJDb3JlOjpDU1NWYWx1ZSogaW1wbCkK
ICAgICAgICAgY2FzZSBXZWJDb3JlOjpDU1NWYWx1ZTo6Q1NTX1ZBTFVFX0xJU1Q6CiAgICAgICAg
ICAgICBpZiAoaW1wbC0+aXNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZSgpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBbRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUgY2xhc3NdOwotI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKICAgICAgICAgICAgIGlmIChpbXBsLT5pc1dlYktpdENTU0ZpbHRlclZh
bHVlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFtET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZSBj
bGFzc107Ci0jZW5kaWYKICAgICAgICAgICAgIHJldHVybiBbRE9NQ1NTVmFsdWVMaXN0IGNsYXNz
XTsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpDU1NWYWx1ZTo6Q1NTX0lOSEVSSVQ6CiAgICAgICAg
IGNhc2UgV2ViQ29yZTo6Q1NTVmFsdWU6OkNTU19JTklUSUFMOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA2MjczZTFhZWQ5
MDVkODBiN2Q2Zjg0ZTkwNzYzNTFjNjc2YTY3ZWI5Li44OGYwNTNlNTBkNzgwM2JmMTkxM2I4Njdj
M2UwYzNmMjM3NjhmMTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUgIlN0eWxl
UHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTaG9ydGhhbmQuaCIKICNpbmNs
dWRlICJTdHlsZVJlc29sdmVyLmgiCisjaW5jbHVkZSAiV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCIK
ICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgogI2luY2x1ZGUgIldlYktpdEZv
bnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtNzcs
MTAgKzc4LDYgQEAKICNpbmNsdWRlICJTaGFwZVZhbHVlLmgiCiAjZW5kaWYKIAotI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKLSNpbmNsdWRlICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIgotI2VuZGlm
Ci0KICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAjaW5jbHVkZSAiRGFzaGJvYXJkUmVn
aW9uLmgiCiAjZW5kaWYKQEAgLTI4Myw5ICsyODAsNiBAQCBzdGF0aWMgY29uc3QgQ1NTUHJvcGVy
dHlJRCBjb21wdXRlZFByb3BlcnRpZXNbXSA9IHsKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBP
UlQpCiAgICAgQ1NTUHJvcGVydHlXZWJraXREYXNoYm9hcmRSZWdpb24sCiAjZW5kaWYKLSNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAgQ1NTUHJvcGVydHlXZWJraXRGaWx0ZXIsCi0jZW5kaWYK
ICAgICBDU1NQcm9wZXJ0eVdlYmtpdEFsaWduQ29udGVudCwKICAgICBDU1NQcm9wZXJ0eVdlYmtp
dEFsaWduSXRlbXMsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRBbGlnblNlbGYsCkBAIC0yOTYsNiAr
MjkwLDcgQEAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9wZXJ0aWVzW10g
PSB7CiAgICAgQ1NTUHJvcGVydHlXZWJraXRGbGV4V3JhcCwKICAgICBDU1NQcm9wZXJ0eVdlYmtp
dEp1c3RpZnlDb250ZW50LAogICAgIENTU1Byb3BlcnR5V2Via2l0SnVzdGlmeVNlbGYsCisgICAg
Q1NTUHJvcGVydHlXZWJraXRGaWx0ZXIsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRGb250S2Vybmlu
ZywKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRTbW9vdGhpbmcsCiAgICAgQ1NTUHJvcGVydHlX
ZWJraXRGb250VmFyaWFudExpZ2F0dXJlcywKQEAgLTg4Miw3ICs4NzcsNiBAQCBQYXNzUmVmPENT
U1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclNoYWRvdyhjb25zdCBTaGFk
b3dEYXRhKiBzaGFkbwogICAgIHJldHVybiBXVEY6Om1vdmUobGlzdCk7CiB9CiAKLSNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCiBQYXNzUmVmPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9y
Ojp2YWx1ZUZvckZpbHRlcihjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIGNvbnN0IEZpbHRlck9w
ZXJhdGlvbnMmIGZpbHRlck9wZXJhdGlvbnMsIEFkanVzdFBpeGVsVmFsdWVzRm9yQ29tcHV0ZWRT
dHlsZSBhZGp1c3QpCiB7CiAgICAgaWYgKGZpbHRlck9wZXJhdGlvbnMub3BlcmF0aW9ucygpLmlz
RW1wdHkoKSkKQEAgLTk3Myw3ICs5NjcsNiBAQCBQYXNzUmVmPENTU1ZhbHVlPiBDb21wdXRlZFN0
eWxlRXh0cmFjdG9yOjp2YWx1ZUZvckZpbHRlcihjb25zdCBSZW5kZXJTdHlsZSogc3R5bAogCiAg
ICAgcmV0dXJuIFdURjo6bW92ZShsaXN0KTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19H
UklEX0xBWU9VVCkKIHN0YXRpYyBQYXNzUmVmPENTU1ZhbHVlPiBzcGVjaWZpZWRWYWx1ZUZvckdy
aWRUcmFja0JyZWFkdGgoY29uc3QgR3JpZExlbmd0aCYgdHJhY2tCcmVhZHRoLCBjb25zdCBSZW5k
ZXJTdHlsZSogc3R5bGUpCkBAIC0xNjE3LDkgKzE2MTAsNyBAQCBzdGF0aWMgYm9vbCBpc0xheW91
dERlcGVuZGVudChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIFJlbmRlclN0eWxlKiBzdHlsZSwg
UmVuZAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRQZXJzcGVjdGl2ZU9yaWdpbjoKICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luOgogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRUcmFuc2Zvcm06Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRGaWx0ZXI6Ci0jZW5kaWYKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eU1hcmdpbjogewogICAgICAgICBpZiAoIXJlbmRlcmVyIHx8ICFyZW5k
ZXJlci0+aXNCb3goKSkKQEAgLTI5MTEsMTAgKzI5MDIsOCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJv
cGVydAogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVPdXRzaWRlOgogICAgICAg
ICAgICAgcmV0dXJuIHNoYXBlUHJvcGVydHlWYWx1ZShzdHlsZS5nZXQoKSwgc3R5bGUtPnNoYXBl
T3V0c2lkZSgpKTsKICNlbmRpZgotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcjoKICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckZp
bHRlcihzdHlsZS5nZXQoKSwgc3R5bGUtPmZpbHRlcigpKTsKLSNlbmRpZgogI2lmIEVOQUJMRShD
U1NfQ09NUE9TSVRJTkcpCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNaXhCbGVuZE1vZGU6CiAg
ICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoc3R5bGUtPmJsZW5k
TW9kZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uaAppbmRleCBlMDYyNzFmYTgxYzk3MDU1MDNjYzhiYTFkOThhYzBjZDQxM2IxY2VhLi4z
NGFmMmE1MGZkODYxMDFhZDdmY2M0MjNkMDBkNzgwN2MwOGUyN2MwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCkBAIC01OCw5ICs1OCw3
IEBAIHB1YmxpYzoKICAgICBib29sIHVzZUZpeGVkRm9udERlZmF1bHRTaXplKCkgY29uc3Q7CiAg
ICAgYm9vbCBwcm9wZXJ0eU1hdGNoZXMoQ1NTUHJvcGVydHlJRCwgY29uc3QgQ1NTVmFsdWUqKSBj
b25zdDsKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBzdGF0aWMgUGFzc1JlZjxDU1NW
YWx1ZT4gdmFsdWVGb3JGaWx0ZXIoY29uc3QgUmVuZGVyU3R5bGUqLCBjb25zdCBGaWx0ZXJPcGVy
YXRpb25zJiwgQWRqdXN0UGl4ZWxWYWx1ZXNGb3JDb21wdXRlZFN0eWxlID0gQWRqdXN0UGl4ZWxW
YWx1ZXMpOwotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgLy8gVGhlIHN0eWxlZCBub2RlIGlzIGVp
dGhlciB0aGUgbm9kZSBwYXNzZWQgaW50byBjb21wdXRlZFByb3BlcnR5VmFsdWUsIG9yIHRoZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCmluZGV4IGIwYTdlNjlk
OTE4N2RmMzg5NmM0Y2JmNGIyMjRkNzA1OWQ3ZmM1MDMuLjg1NWFhZjliYmIwNzYxMzYyNmM1N2Zh
NWYzZGFmMTM3ZTZlNDIyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0
ZXJJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VW
YWx1ZS5jcHAKQEAgLTI2LDkgKzI2LDYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkNTU0ZpbHRlckltYWdlVmFsdWUuaCIKLQotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQog
I2luY2x1ZGUgIkNTU0ltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCkBAIC0xNjgsNSArMTY1LDMgQEAgYm9vbCBD
U1NGaWx0ZXJJbWFnZVZhbHVlOjplcXVhbElucHV0SW1hZ2VzKGNvbnN0IENTU0ZpbHRlckltYWdl
VmFsdWUmIG90aGVyKSBjb24KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZpbHRlckltYWdlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZh
bHVlLmgKaW5kZXggNWIyNDAyODExYzQ5NmU5OTcyNzE1MDBiODllZmE3ZDdmM2VmZjAxMS4uNjAw
NWY3ZTdjMDRjNjg0YWQwOTk4OWFlODliNzAzYjIwMWY4YTA2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oCkBAIC0yNyw4ICsyNyw2IEBACiAjaWZuZGVmIENTU0Zp
bHRlckltYWdlVmFsdWVfaAogI2RlZmluZSBDU1NGaWx0ZXJJbWFnZVZhbHVlX2gKIAotI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKLQogI2luY2x1ZGUgIkNTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaCIK
ICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlQ2xp
ZW50LmgiCkBAIC0xMjMsNiArMTIxLDQgQEAgQ1NTX1ZBTFVFX1RZUEVfQ0FTVFMoQ1NTRmlsdGVy
SW1hZ2VWYWx1ZSwgaXNGaWx0ZXJJbWFnZVZhbHVlKCkpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAotI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2VuZGlmIC8vIENTU0ZpbHRl
ckltYWdlVmFsdWVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2Vu
ZXJhdG9yVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFs
dWUuY3BwCmluZGV4IDA1MjVlNDFmNDU0MTA0OGMxMmIzOWQ1OGI3YzgwNTE2N2Y4NjI1YjYuLjBl
Zjc3NGY4NGIxYmE2NTM5NjljZWExOGE1ZWQ0NDYyOTk2MGI0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAKQEAgLTExMiwxMCArMTEyLDggQEAg
UGFzc1JlZlB0cjxJbWFnZT4gQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6aW1hZ2UoUmVuZGVyRWxl
bWVudCogcmVuZGVyZXIsIGNvbnN0IEYKICAgICAgICAgcmV0dXJuIHRvQ1NTQ2FudmFzVmFsdWUo
dGhpcyktPmltYWdlKHJlbmRlcmVyLCBzaXplKTsKICAgICBjYXNlIENyb3NzZmFkZUNsYXNzOgog
ICAgICAgICByZXR1cm4gdG9DU1NDcm9zc2ZhZGVWYWx1ZSh0aGlzKS0+aW1hZ2UocmVuZGVyZXIs
IHNpemUpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBjYXNlIEZpbHRlckltYWdlQ2xh
c3M6CiAgICAgICAgIHJldHVybiB0b0NTU0ZpbHRlckltYWdlVmFsdWUodGhpcyktPmltYWdlKHJl
bmRlcmVyLCBzaXplKTsKLSNlbmRpZgogICAgIGNhc2UgTGluZWFyR3JhZGllbnRDbGFzczoKICAg
ICAgICAgcmV0dXJuIHRvQ1NTTGluZWFyR3JhZGllbnRWYWx1ZSh0aGlzKS0+aW1hZ2UocmVuZGVy
ZXIsIHNpemUpOwogICAgIGNhc2UgUmFkaWFsR3JhZGllbnRDbGFzczoKQEAgLTEzMywxMCArMTMx
LDggQEAgYm9vbCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjppc0ZpeGVkU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIHJldHVybiB0b0NTU0NhbnZhc1ZhbHVlKHRoaXMpLT5pc0ZpeGVkU2l6ZSgpOwogICAg
IGNhc2UgQ3Jvc3NmYWRlQ2xhc3M6CiAgICAgICAgIHJldHVybiB0b0NTU0Nyb3NzZmFkZVZhbHVl
KHRoaXMpLT5pc0ZpeGVkU2l6ZSgpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBjYXNl
IEZpbHRlckltYWdlQ2xhc3M6CiAgICAgICAgIHJldHVybiB0b0NTU0ZpbHRlckltYWdlVmFsdWUo
dGhpcyktPmlzRml4ZWRTaXplKCk7Ci0jZW5kaWYKICAgICBjYXNlIExpbmVhckdyYWRpZW50Q2xh
c3M6CiAgICAgICAgIHJldHVybiB0b0NTU0xpbmVhckdyYWRpZW50VmFsdWUodGhpcyktPmlzRml4
ZWRTaXplKCk7CiAgICAgY2FzZSBSYWRpYWxHcmFkaWVudENsYXNzOgpAQCAtMTU0LDEwICsxNTAs
OCBAQCBGbG9hdFNpemUgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Zml4ZWRTaXplKGNvbnN0IFJl
bmRlckVsZW1lbnQqIHJlbmRlcmVyKQogICAgICAgICByZXR1cm4gdG9DU1NDYW52YXNWYWx1ZSh0
aGlzKS0+Zml4ZWRTaXplKHJlbmRlcmVyKTsKICAgICBjYXNlIENyb3NzZmFkZUNsYXNzOgogICAg
ICAgICByZXR1cm4gdG9DU1NDcm9zc2ZhZGVWYWx1ZSh0aGlzKS0+Zml4ZWRTaXplKHJlbmRlcmVy
KTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgY2FzZSBGaWx0ZXJJbWFnZUNsYXNzOgog
ICAgICAgICByZXR1cm4gdG9DU1NGaWx0ZXJJbWFnZVZhbHVlKHRoaXMpLT5maXhlZFNpemUocmVu
ZGVyZXIpOwotI2VuZGlmCiAgICAgY2FzZSBMaW5lYXJHcmFkaWVudENsYXNzOgogICAgICAgICBy
ZXR1cm4gdG9DU1NMaW5lYXJHcmFkaWVudFZhbHVlKHRoaXMpLT5maXhlZFNpemUocmVuZGVyZXIp
OwogICAgIGNhc2UgUmFkaWFsR3JhZGllbnRDbGFzczoKQEAgLTE3NSwxMCArMTY5LDggQEAgYm9v
bCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjppc1BlbmRpbmcoKSBjb25zdAogICAgICAgICByZXR1
cm4gdG9DU1NDcm9zc2ZhZGVWYWx1ZSh0aGlzKS0+aXNQZW5kaW5nKCk7CiAgICAgY2FzZSBDYW52
YXNDbGFzczoKICAgICAgICAgcmV0dXJuIHRvQ1NTQ2FudmFzVmFsdWUodGhpcyktPmlzUGVuZGlu
ZygpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBjYXNlIEZpbHRlckltYWdlQ2xhc3M6
CiAgICAgICAgIHJldHVybiB0b0NTU0ZpbHRlckltYWdlVmFsdWUodGhpcyktPmlzUGVuZGluZygp
OwotI2VuZGlmCiAgICAgY2FzZSBMaW5lYXJHcmFkaWVudENsYXNzOgogICAgICAgICByZXR1cm4g
dG9DU1NMaW5lYXJHcmFkaWVudFZhbHVlKHRoaXMpLT5pc1BlbmRpbmcoKTsKICAgICBjYXNlIFJh
ZGlhbEdyYWRpZW50Q2xhc3M6CkBAIC0xOTYsMTAgKzE4OCw4IEBAIGJvb2wgQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZTo6a25vd25Ub0JlT3BhcXVlKGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVy
KSBjb25zCiAgICAgICAgIHJldHVybiB0b0NTU0Nyb3NzZmFkZVZhbHVlKHRoaXMpLT5rbm93blRv
QmVPcGFxdWUocmVuZGVyZXIpOwogICAgIGNhc2UgQ2FudmFzQ2xhc3M6CiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgY2FzZSBGaWx0ZXJJbWFnZUNs
YXNzOgogICAgICAgICByZXR1cm4gdG9DU1NGaWx0ZXJJbWFnZVZhbHVlKHRoaXMpLT5rbm93blRv
QmVPcGFxdWUocmVuZGVyZXIpOwotI2VuZGlmCiAgICAgY2FzZSBMaW5lYXJHcmFkaWVudENsYXNz
OgogICAgICAgICByZXR1cm4gdG9DU1NMaW5lYXJHcmFkaWVudFZhbHVlKHRoaXMpLT5rbm93blRv
QmVPcGFxdWUocmVuZGVyZXIpOwogICAgIGNhc2UgUmFkaWFsR3JhZGllbnRDbGFzczoKQEAgLTIx
OSwxMSArMjA5LDkgQEAgdm9pZCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpsb2FkU3ViaW1hZ2Vz
KENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUwKICAgICBjYXNlIENhbnZhc0Ns
YXNzOgogICAgICAgICB0b0NTU0NhbnZhc1ZhbHVlKHRoaXMpLT5sb2FkU3ViaW1hZ2VzKGNhY2hl
ZFJlc291cmNlTG9hZGVyKTsKICAgICAgICAgYnJlYWs7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJT
KQogICAgIGNhc2UgRmlsdGVySW1hZ2VDbGFzczoKICAgICAgICAgdG9DU1NGaWx0ZXJJbWFnZVZh
bHVlKHRoaXMpLT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKICAgICAgICAg
YnJlYWs7Ci0jZW5kaWYKICAgICBjYXNlIExpbmVhckdyYWRpZW50Q2xhc3M6CiAgICAgICAgIHRv
Q1NTTGluZWFyR3JhZGllbnRWYWx1ZSh0aGlzKS0+bG9hZFN1YmltYWdlcyhjYWNoZWRSZXNvdXJj
ZUxvYWRlcik7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAz
MmUxZGI5YzQ3NWQ2YjA0YmVhNDRhZjA2NDhjZWYwYWMwNmExMjQ2Li4wMTA0MTE4NDhkZTBmNmRj
MTAzMmE3YjJlMTQ2NjQyMDg2YjFjNGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAt
NzgsNiArNzgsNyBAQAogI2luY2x1ZGUgIlN0eWxlUnVsZUltcG9ydC5oIgogI2luY2x1ZGUgIlN0
eWxlU2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgorI2luY2x1ZGUg
IldlYktpdENTU0ZpbHRlclZhbHVlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
LmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIgogI2luY2x1ZGUgIldlYktp
dENTU1JlZ2lvblJ1bGUuaCIKQEAgLTEwMCwxMCArMTAxLDYgQEAKICNpbmNsdWRlICJDU1NJbWFn
ZVNldFZhbHVlLmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSNpbmNsdWRl
ICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoQ1NTX1NDUk9M
TF9TTkFQKQogI2luY2x1ZGUgIkxlbmd0aFJlcGVhdC5oIgogI2VuZGlmCkBAIC0yNDMyLDcgKzI0
MjksNiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwg
Ym9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveE9yZGluYWxHcm91
cDoKICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2VyIHwg
Rk5vbk5lZywgQ1NTU3RyaWN0TW9kZSkgJiYgdmFsdWUtPmZWYWx1ZTsKICAgICAgICAgYnJlYWs7
Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGaWx0
ZXI6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUpCiAgICAgICAgICAgICB2YWxpZFBy
aW1pdGl2ZSA9IHRydWU7CkBAIC0yNDQ0LDcgKzI0NDAsNiBAQCBib29sIENTU1BhcnNlcjo6cGFy
c2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKLSNlbmRpZgogI2lmIEVO
QUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1peEJsZW5kTW9kZToK
ICAgICAgICAgaWYgKGNzc0NvbXBvc2l0aW5nRW5hYmxlZCgpKQpAQCAtODY4NSwxNSArODY4MCwx
MiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VHZW5lcmF0ZWRJbWFnZShDU1NQYXJzZXJWYWx1ZUxp
c3QqIHZhbHVlTGlzdCwgUmVmUHRyPENTU1ZhbAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2
YWwtPmZ1bmN0aW9uLT5uYW1lLCAiLXdlYmtpdC1jcm9zcy1mYWRlKCIpKQogICAgICAgICByZXR1
cm4gcGFyc2VDcm9zc2ZhZGUodmFsdWVMaXN0LCB2YWx1ZSk7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbC0+ZnVuY3Rpb24tPm5hbWUsICIt
d2Via2l0LWZpbHRlcigiKSkKICAgICAgICAgcmV0dXJuIHBhcnNlRmlsdGVySW1hZ2UodmFsdWVM
aXN0LCB2YWx1ZSk7Ci0jZW5kaWYKIAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZpbHRlckltYWdlKENTU1BhcnNl
clZhbHVlTGlzdCogdmFsdWVMaXN0LCBSZWZQdHI8Q1NTVmFsdWU+JiBmaWx0ZXIpCiB7CiAgICAg
UmVmUHRyPENTU0ZpbHRlckltYWdlVmFsdWU+IHJlc3VsdDsKQEAgLTg3MzQsNyArODcyNiw2IEBA
IGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZpbHRlckltYWdlKENTU1BhcnNlclZhbHVlTGlzdCogdmFs
dWVMaXN0LCBSZWZQdHI8Q1NTVmFsdWU+CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRpZgog
CiBib29sIENTU1BhcnNlcjo6cGFyc2VDcm9zc2ZhZGUoQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1
ZUxpc3QsIFJlZlB0cjxDU1NWYWx1ZT4mIGNyb3NzZmFkZSkKIHsKQEAgLTkyNDMsOCArOTIzNCw2
IEBAIGJvb2wgQ1NTUGFyc2VyOjppc0NvbXBvc2l0ZU9wZXJhdG9yKENTU1ZhbHVlSUQgdmFsdWVJ
RCkKICAgICByZXR1cm4gdmFsdWVJRCA+PSBDU1NWYWx1ZUNsZWFyICYmIHZhbHVlSUQgPD0gQ1NT
VmFsdWVYb3I7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0KIHN0YXRpYyB2b2lkIGZp
bHRlckluZm9Gb3JOYW1lKGNvbnN0IENTU1BhcnNlclN0cmluZyYgbmFtZSwgV2ViS2l0Q1NTRmls
dGVyVmFsdWU6OkZpbHRlck9wZXJhdGlvblR5cGUmIGZpbHRlclR5cGUsIHVuc2lnbmVkJiBtYXhp
bXVtQXJndW1lbnRDb3VudCkKIHsKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgImdy
YXlzY2FsZSgiKSkKQEAgLTk0MDYsNyArOTM5NSw2IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZp
bHRlcihDU1NQYXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCwgUmVmUHRyPENTU1ZhbHVlPiYgcmVz
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19SRUdJT05T
KQogc3RhdGljIGJvb2wgdmFsaWRGbG93TmFtZShjb25zdCBTdHJpbmcmIGZsb3dOYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5oCmluZGV4IGUyZWJkM2UwYTBmZWNiYTdiMGEzNTU4NzFmOWU0M2ZiYzM5
ZDM1NTkuLjYyYzZkM2FlNTAyMmFiMDE5N2VjYjYxMDdhMjIyYWNhMzM2Mjk0MmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmgKQEAgLTM0LDE2ICszNCwxMyBAQAogI2luY2x1ZGUgIkNvbG9yLmgiCiAj
aW5jbHVkZSAiTWVkaWFRdWVyeS5oIgogI2luY2x1ZGUgIlNvdXJjZVNpemVMaXN0LmgiCisjaW5j
bHVkZSAiV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAotI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKLSNpbmNsdWRlICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIgotI2Vu
ZGlmCi0KICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogI2luY2x1ZGUgIkNTU0dyaWRUZW1w
bGF0ZUFyZWFzVmFsdWUuaCIKICNlbmRpZgpAQCAtMjYzLDEyICsyNjAsMTAgQEAgcHVibGljOgog
ICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlSW1hZ2VTZXQoKTsKICNlbmRpZgogCi0jaWYg
RU5BQkxFKENTU19GSUxURVJTKQogICAgIGJvb2wgcGFyc2VGaWx0ZXJJbWFnZShDU1NQYXJzZXJW
YWx1ZUxpc3QqLCBSZWZQdHI8Q1NTVmFsdWU+Jik7CiAKICAgICBib29sIHBhcnNlRmlsdGVyKENT
U1BhcnNlclZhbHVlTGlzdCosIFJlZlB0cjxDU1NWYWx1ZT4mKTsKICAgICBQYXNzUmVmUHRyPFdl
YktpdENTU0ZpbHRlclZhbHVlPiBwYXJzZUJ1aWx0aW5GaWx0ZXJBcmd1bWVudHMoQ1NTUGFyc2Vy
VmFsdWVMaXN0KiwgV2ViS2l0Q1NTRmlsdGVyVmFsdWU6OkZpbHRlck9wZXJhdGlvblR5cGUpOwot
I2VuZGlmCiAKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZUNsaXBQYXRoKCk7CiAKQEAg
LTYzOSw5ICs2MzQsNyBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBwYXJzZWREb3VibGUoQ1NTUGFy
c2VyVmFsdWUqLCBSZWxlYXNlUGFyc2VkQ2FsY1ZhbHVlQ29uZGl0aW9uIHJlbGVhc2VDYWxjID0g
RG9Ob3RSZWxlYXNlUGFyc2VkQ2FsY1ZhbHVlKTsKICAgICAKICAgICBmcmllbmQgY2xhc3MgVHJh
bnNmb3JtT3BlcmF0aW9uSW5mbzsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgZnJpZW5k
IGNsYXNzIEZpbHRlck9wZXJhdGlvbkluZm87Ci0jZW5kaWYKIH07CiAKIENTU1Byb3BlcnR5SUQg
Y3NzUHJvcGVydHlJRChjb25zdCBDU1NQYXJzZXJTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggNWFmM2Y1Zjc4M2RiMzc4ZDI3NzBlMjRmNWUwZjIzY2Vi
YjZmNDAxNy4uM2RkYWI5ZTAyOWU0ZDA1NDg5MDJhOWUwNzZjMzlmNGFhZmFiZTJlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTI5Miw5ICsyOTIsNyBAQCB6LWlu
ZGV4CiBtaXgtYmxlbmQtbW9kZQogaXNvbGF0aW9uCiAjZW5kaWYKLSNpZiBkZWZpbmVkKEVOQUJM
RV9DU1NfRklMVEVSUykgJiYgRU5BQkxFX0NTU19GSUxURVJTCiAtd2Via2l0LWZpbHRlcgotI2Vu
ZGlmCiAtd2Via2l0LWFsaWduLWNvbnRlbnQKIC13ZWJraXQtYWxpZ24taXRlbXMKIC13ZWJraXQt
YWxpZ24tc2VsZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKaW5kZXggNDZiMDg3ZmNmYjhiMDFkOTJm
OWM5ZjJjZTY0MTMxNGQ1ZWE5NGI4Ni4uYWFjZjY4Njg1M2Q1YjI1YmE1MTA3Nzg1OTY2MzkzMjA0
ZDIwNTRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCkBAIC0xMzUsMTAgKzEzNSw4IEBAIGJv
b2wgQ1NTVmFsdWU6Omhhc0ZhaWxlZE9yQ2FuY2VsZWRTdWJyZXNvdXJjZXMoKSBjb25zdAogICAg
ICAgICByZXR1cm4gdG9DU1NJbWFnZVZhbHVlKHRoaXMpLT5oYXNGYWlsZWRPckNhbmNlbGVkU3Vi
cmVzb3VyY2VzKCk7CiAgICAgaWYgKGNsYXNzVHlwZSgpID09IENyb3NzZmFkZUNsYXNzKQogICAg
ICAgICByZXR1cm4gdG9DU1NDcm9zc2ZhZGVWYWx1ZSh0aGlzKS0+aGFzRmFpbGVkT3JDYW5jZWxl
ZFN1YnJlc291cmNlcygpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBpZiAoY2xhc3NU
eXBlKCkgPT0gRmlsdGVySW1hZ2VDbGFzcykKICAgICAgICAgcmV0dXJuIHRvQ1NTRmlsdGVySW1h
Z2VWYWx1ZSh0aGlzKS0+aGFzRmFpbGVkT3JDYW5jZWxlZFN1YnJlc291cmNlcygpOwotI2VuZGlm
CiAjaWYgRU5BQkxFKENTU19JTUFHRV9TRVQpCiAgICAgaWYgKGNsYXNzVHlwZSgpID09IEltYWdl
U2V0Q2xhc3MpCiAgICAgICAgIHJldHVybiB0b0NTU0ltYWdlU2V0VmFsdWUodGhpcyktPmhhc0Zh
aWxlZE9yQ2FuY2VsZWRTdWJyZXNvdXJjZXMoKTsKQEAgLTE2OSwxMCArMTY3LDggQEAgYm9vbCBD
U1NWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ZhbHVlJiBvdGhlcikgY29uc3QKICAgICAgICAgICAg
IHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU0NhbnZhc1ZhbHVlPigqdGhpcywgb3RoZXIpOwog
ICAgICAgICBjYXNlIEN1cnNvckltYWdlQ2xhc3M6CiAgICAgICAgICAgICByZXR1cm4gY29tcGFy
ZUNTU1ZhbHVlczxDU1NDdXJzb3JJbWFnZVZhbHVlPigqdGhpcywgb3RoZXIpOwotI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKICAgICAgICAgY2FzZSBGaWx0ZXJJbWFnZUNsYXNzOgogICAgICAgICAg
ICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTRmlsdGVySW1hZ2VWYWx1ZT4oKnRoaXMsIG90
aGVyKTsKLSNlbmRpZgogICAgICAgICBjYXNlIEZvbnRDbGFzczoKICAgICAgICAgICAgIHJldHVy
biBjb21wYXJlQ1NTVmFsdWVzPENTU0ZvbnRWYWx1ZT4oKnRoaXMsIG90aGVyKTsKICAgICAgICAg
Y2FzZSBGb250RmFjZVNyY0NsYXNzOgpAQCAtMjIzLDEwICsyMTksOCBAQCBib29sIENTU1ZhbHVl
OjplcXVhbHMoY29uc3QgQ1NTVmFsdWUmIG90aGVyKSBjb25zdAogICAgICAgICBjYXNlIEltYWdl
U2V0Q2xhc3M6CiAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NJbWFnZVNl
dFZhbHVlPigqdGhpcywgb3RoZXIpOwogI2VuZGlmCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQog
ICAgICAgICBjYXNlIFdlYktpdENTU0ZpbHRlckNsYXNzOgogICAgICAgICAgICAgcmV0dXJuIGNv
bXBhcmVDU1NWYWx1ZXM8V2ViS2l0Q1NTRmlsdGVyVmFsdWU+KCp0aGlzLCBvdGhlcik7Ci0jZW5k
aWYKICAgICAgICAgY2FzZSBTVkdDb2xvckNsYXNzOgogICAgICAgICAgICAgcmV0dXJuIGNvbXBh
cmVDU1NWYWx1ZXM8U1ZHQ29sb3I+KCp0aGlzLCBvdGhlcik7CiAgICAgICAgIGNhc2UgU1ZHUGFp
bnRDbGFzczoKQEAgLTI1OSwxMCArMjUzLDggQEAgU3RyaW5nIENTU1ZhbHVlOjpjc3NUZXh0KCkg
Y29uc3QKICAgICAgICAgcmV0dXJuIHRvQ1NTQ2FudmFzVmFsdWUodGhpcyktPmN1c3RvbUNTU1Rl
eHQoKTsKICAgICBjYXNlIEN1cnNvckltYWdlQ2xhc3M6CiAgICAgICAgIHJldHVybiB0b0NTU0N1
cnNvckltYWdlVmFsdWUodGhpcyktPmN1c3RvbUNTU1RleHQoKTsKLSNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCiAgICAgY2FzZSBGaWx0ZXJJbWFnZUNsYXNzOgogICAgICAgICByZXR1cm4gdG9DU1NG
aWx0ZXJJbWFnZVZhbHVlKHRoaXMpLT5jdXN0b21DU1NUZXh0KCk7Ci0jZW5kaWYKICAgICBjYXNl
IEZvbnRDbGFzczoKICAgICAgICAgcmV0dXJuIHRvQ1NTRm9udFZhbHVlKHRoaXMpLT5jdXN0b21D
U1NUZXh0KCk7CiAgICAgY2FzZSBGb250RmFjZVNyY0NsYXNzOgpAQCAtMzEzLDEwICszMDUsOCBA
QCBTdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAogICAgIGNhc2UgSW1hZ2VTZXRDbGFz
czoKICAgICAgICAgcmV0dXJuIHRvQ1NTSW1hZ2VTZXRWYWx1ZSh0aGlzKS0+Y3VzdG9tQ1NTVGV4
dCgpOwogI2VuZGlmCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGNhc2UgV2ViS2l0Q1NT
RmlsdGVyQ2xhc3M6CiAgICAgICAgIHJldHVybiB0b1dlYktpdENTU0ZpbHRlclZhbHVlKHRoaXMp
LT5jdXN0b21DU1NUZXh0KCk7Ci0jZW5kaWYKICAgICBjYXNlIFNWR0NvbG9yQ2xhc3M6CiAgICAg
ICAgIHJldHVybiB0b1NWR0NvbG9yKHRoaXMpLT5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBT
VkdQYWludENsYXNzOgpAQCAtNDIxLDE0ICs0MTEsMTIgQEAgdm9pZCBDU1NWYWx1ZTo6ZGVzdHJv
eSgpCiAgICAgICAgIGRlbGV0ZSB0b0NTU0ltYWdlU2V0VmFsdWUodGhpcyk7CiAgICAgICAgIHJl
dHVybjsKICNlbmRpZgotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBjYXNlIEZpbHRlcklt
YWdlQ2xhc3M6CiAgICAgICAgIGRlbGV0ZSB0b0NTU0ZpbHRlckltYWdlVmFsdWUodGhpcyk7CiAg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIFdlYktpdENTU0ZpbHRlckNsYXNzOgogICAgICAgICBk
ZWxldGUgdG9XZWJLaXRDU1NGaWx0ZXJWYWx1ZSh0aGlzKTsKICAgICAgICAgcmV0dXJuOwotI2Vu
ZGlmCiAgICAgY2FzZSBTVkdDb2xvckNsYXNzOgogICAgICAgICBkZWxldGUgdG9TVkdDb2xvcih0
aGlzKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDQ5LDEwICs0MzcsOCBAQCBQYXNzUmVmUHRyPENT
U1ZhbHVlPiBDU1NWYWx1ZTo6Y2xvbmVGb3JDU1NPTSgpIGNvbnN0CiAgICAgY2FzZSBJbWFnZUNs
YXNzOgogICAgIGNhc2UgQ3Vyc29ySW1hZ2VDbGFzczoKICAgICAgICAgcmV0dXJuIHRvQ1NTSW1h
Z2VWYWx1ZSh0aGlzKS0+Y2xvbmVGb3JDU1NPTSgpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykK
ICAgICBjYXNlIFdlYktpdENTU0ZpbHRlckNsYXNzOgogICAgICAgICByZXR1cm4gdG9XZWJLaXRD
U1NGaWx0ZXJWYWx1ZSh0aGlzKS0+Y2xvbmVGb3JDU1NPTSgpOwotI2VuZGlmCiAgICAgY2FzZSBX
ZWJLaXRDU1NUcmFuc2Zvcm1DbGFzczoKICAgICAgICAgcmV0dXJuIHRvV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUodGhpcyktPmNsb25lRm9yQ1NTT00oKTsKICNpZiBFTkFCTEUoQ1NTX0lNQUdFX1NF
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlLmgKaW5kZXggZmE2NGJmNDY4NmU1ODY2NWQzMjkxODc2MTBkNmIw
OWM5MWU1NTA2My4uODA0MTNmODgyMGE3Zjc2ZDJiYzRlZTIzYjI4YTFjYzI0NDRmYzM3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlLmgKQEAgLTkzLDEwICs5Myw4IEBAIHB1YmxpYzoKICAgICBib29sIGlz
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBX
ZWJLaXRDU1NUcmFuc2Zvcm1DbGFzczsgfQogICAgIGJvb2wgaXNMaW5lQm94Q29udGFpblZhbHVl
KCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gTGluZUJveENvbnRhaW5DbGFzczsgfQog
ICAgIGJvb2wgaXNDYWxjVmFsdWUoKSBjb25zdCB7cmV0dXJuIG1fY2xhc3NUeXBlID09IENhbGN1
bGF0aW9uQ2xhc3M7IH0KLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBpc0ZpbHRl
ckltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBGaWx0ZXJJbWFnZUNs
YXNzOyB9CiAgICAgYm9vbCBpc1dlYktpdENTU0ZpbHRlclZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9jbGFzc1R5cGUgPT0gV2ViS2l0Q1NTRmlsdGVyQ2xhc3M7IH0KLSNlbmRpZiAvLyBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKICAgICBib29sIGlzR3Jp
ZFRlbXBsYXRlQXJlYXNWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IEdyaWRU
ZW1wbGF0ZUFyZWFzQ2xhc3M7IH0KICAgICBib29sIGlzR3JpZExpbmVOYW1lc1ZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gR3JpZExpbmVOYW1lc0NsYXNzOyB9CkBAIC0xMzQs
OSArMTMyLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAvLyBJbWFnZSBnZW5lcmF0b3IgY2xhc3Nl
cy4KICAgICAgICAgQ2FudmFzQ2xhc3MsCiAgICAgICAgIENyb3NzZmFkZUNsYXNzLAotI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKICAgICAgICAgRmlsdGVySW1hZ2VDbGFzcywKLSNlbmRpZgogICAg
ICAgICBMaW5lYXJHcmFkaWVudENsYXNzLAogICAgICAgICBSYWRpYWxHcmFkaWVudENsYXNzLAog
CkBAIC0xNzEsOSArMTY3LDcgQEAgcHJvdGVjdGVkOgogI2lmIEVOQUJMRShDU1NfSU1BR0VfU0VU
KQogICAgICAgICBJbWFnZVNldENsYXNzLAogI2VuZGlmCi0jaWYgRU5BQkxFKENTU19GSUxURVJT
KQogICAgICAgICBXZWJLaXRDU1NGaWx0ZXJDbGFzcywKLSNlbmRpZgogICAgICAgICBXZWJLaXRD
U1NUcmFuc2Zvcm1DbGFzcywKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgICAgICBH
cmlkTGluZU5hbWVzQ2xhc3MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXgg
ZTkyMzYwOWI4NzE5Y2U2ODNlMjRkMmEyMDY4YmI5NjE3Y2UzN2MxMS4uOWI1NWU1MmM2OTI5NzRl
MTZmZmYxNjI4NjEwNDkzMmM3NTRhYmJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcApAQCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgIkRlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIu
aCIKICNpbmNsdWRlICJEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAi
RWxlbWVudFJ1bGVDb2xsZWN0b3IuaCIKKyNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb24uaCIKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCkBAIC0xMjgsNiArMTI5LDcgQEAKICNpbmNsdWRlICJVc2VyQWdlbnRTdHls
ZVNoZWV0cy5oIgogI2luY2x1ZGUgIlZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUg
IlZpc2l0ZWRMaW5rU3RhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIgog
I2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENTU0tl
eWZyYW1lc1J1bGUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NSZWdpb25SdWxlLmgiCkBAIC0xMzgs
MTEgKzE0MCw2IEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSNpbmNsdWRlICJGaWx0ZXJP
cGVyYXRpb24uaCIKLSNpbmNsdWRlICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIgotI2VuZGlmCi0K
ICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogI2luY2x1ZGUgIkNTU0dyaWRMaW5lTmFtZXNW
YWx1ZS5oIgogI2luY2x1ZGUgIkNTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuaCIKQEAgLTIzNiw5
ICsyMzMsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZVJlc29sdmVyOjpTdGF0ZTo6Y2xlYXIoKQogICAg
IG1fcGFyZW50U3R5bGUgPSBudWxscHRyOwogICAgIG1fcmVnaW9uRm9yU3R5bGluZyA9IG51bGxw
dHI7CiAgICAgbV9wZW5kaW5nSW1hZ2VQcm9wZXJ0aWVzLmNsZWFyKCk7Ci0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQogICAgIG1fZmlsdGVyc1dpdGhQZW5kaW5nU1ZHRG9jdW1lbnRzLmNsZWFyKCk7
Ci0jZW5kaWYKICAgICBtX2Nzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgPSBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhKCk7CiB9CiAKQEAgLTI2NjgsNyArMjY2Myw2IEBAIHZvaWQgU3R5bGVSZXNv
bHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcjogewogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRf
SU5JVElBTChmaWx0ZXIsIEZpbHRlcik7CiAgICAgICAgIEZpbHRlck9wZXJhdGlvbnMgb3BlcmF0
aW9uczsKQEAgLTI2NzYsNyArMjY3MCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgICAgICBzdGF0
ZS5zdHlsZSgpLT5zZXRGaWx0ZXIob3BlcmF0aW9ucyk7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0jZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEdyaWRBdXRvQ29sdW1uczogewogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRf
SU5JVElBTChncmlkQXV0b0NvbHVtbnMsIEdyaWRBdXRvQ29sdW1ucyk7CkBAIC0zMjUzLDEyICsz
MjQ3LDExIEBAIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gU3R5bGVSZXNvbHZlcjo6Y2FjaGVkT3JQ
ZW5kaW5nRnJvbVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvCiAKIFBhc3NSZWZQdHI8U3R5bGVJbWFn
ZT4gU3R5bGVSZXNvbHZlcjo6Z2VuZXJhdGVkT3JQZW5kaW5nRnJvbVZhbHVlKENTU1Byb3BlcnR5
SUQgcHJvcGVydHksIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUmIHZhbHVlKQogewotI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKICAgICBpZiAodmFsdWUuaXNGaWx0ZXJJbWFnZVZhbHVlKCkpIHsKICAg
ICAgICAgLy8gRmlsdGVySW1hZ2UgbmVlZHMgdG8gY2FsY3VsYXRlIEZpbHRlck9wZXJhdGlvbnMu
CiAgICAgICAgIHRvQ1NTRmlsdGVySW1hZ2VWYWx1ZSh2YWx1ZSkuY3JlYXRlRmlsdGVyT3BlcmF0
aW9ucyh0aGlzKTsKICAgICB9Ci0jZW5kaWYKKwogICAgIGlmICh2YWx1ZS5pc1BlbmRpbmcoKSkg
ewogICAgICAgICBtX3N0YXRlLnBlbmRpbmdJbWFnZVByb3BlcnRpZXMoKS5zZXQocHJvcGVydHks
ICZ2YWx1ZSk7CiAgICAgICAgIHJldHVybiBTdHlsZVBlbmRpbmdJbWFnZTo6Y3JlYXRlKCZ2YWx1
ZSk7CkBAIC0zNDY0LDcgKzM0NTcsNiBAQCBib29sIFN0eWxlUmVzb2x2ZXI6Omhhc01lZGlhUXVl
cmllc0FmZmVjdGVkQnlWaWV3cG9ydENoYW5nZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogc3RhdGljIEZpbHRlck9wZXJhdGlvbjo6T3Bl
cmF0aW9uVHlwZSBmaWx0ZXJPcGVyYXRpb25Gb3JUeXBlKFdlYktpdENTU0ZpbHRlclZhbHVlOjpG
aWx0ZXJPcGVyYXRpb25UeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CkBAIC0zNjU0
LDggKzM2NDYsNiBAQCBib29sIFN0eWxlUmVzb2x2ZXI6OmNyZWF0ZUZpbHRlck9wZXJhdGlvbnMo
Q1NTVmFsdWUqIGluVmFsdWUsIEZpbHRlck9wZXJhdGlvbnMmCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLSNlbmRpZgotCiBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IFN0eWxlUmVzb2x2ZXI6OmxvYWRQ
ZW5kaW5nSW1hZ2UoY29uc3QgU3R5bGVQZW5kaW5nSW1hZ2UmIHBlbmRpbmdJbWFnZSwgY29uc3Qg
UmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChhdXRvIGltYWdlVmFs
dWUgPSBwZW5kaW5nSW1hZ2UuY3NzSW1hZ2VWYWx1ZSgpKQpAQCAtMzgxNiwxMCArMzgwNiw4IEBA
IHZvaWQgU3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdSZXNvdXJjZXMoKQogICAgIC8vIFN0YXJ0
IGxvYWRpbmcgaW1hZ2VzIHJlZmVyZW5jZWQgYnkgdGhpcyBzdHlsZS4KICAgICBsb2FkUGVuZGlu
Z0ltYWdlcygpOwogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIC8vIFN0YXJ0IGxvYWRp
bmcgdGhlIFNWRyBEb2N1bWVudHMgcmVmZXJlbmNlZCBieSB0aGlzIHN0eWxlLgogICAgIGxvYWRQ
ZW5kaW5nU1ZHRG9jdW1lbnRzKCk7Ci0jZW5kaWYKIAogI2lmbmRlZiBOREVCVUcKICAgICBpbkxv
YWRQZW5kaW5nUmVzb3VyY2VzID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApp
bmRleCA2ZWE2NzA2ODBlNjg3ZDIzMzAwZjkyNGYxOGEwYmJhYTgwNTA5MmVjLi5jN2VlN2FiNGJk
YjhhZmQyNDFhY2IzYjkxNDU5ZjA4MjFiZWVhMjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmgKQEAgLTIzOCwxMCArMjM4LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGVhckNhY2hl
ZFByb3BlcnRpZXNBZmZlY3RlZEJ5Vmlld3BvcnRVbml0cygpOwogCi0jaWYgRU5BQkxFKENTU19G
SUxURVJTKQogICAgIGJvb2wgY3JlYXRlRmlsdGVyT3BlcmF0aW9ucyhDU1NWYWx1ZSogaW5WYWx1
ZSwgRmlsdGVyT3BlcmF0aW9ucyYgb3V0T3BlcmF0aW9ucyk7CiAgICAgdm9pZCBsb2FkUGVuZGlu
Z1NWR0RvY3VtZW50cygpOwotI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVSUykKIAogICAgIHZv
aWQgbG9hZFBlbmRpbmdSZXNvdXJjZXMoKTsKIApAQCAtMzgyLDkgKzM4MCw4IEBAIHB1YmxpYzoK
ICAgICAgICAgYm9vbCBhcHBseVByb3BlcnR5VG9SZWd1bGFyU3R5bGUoKSBjb25zdCB7IHJldHVy
biBtX2FwcGx5UHJvcGVydHlUb1JlZ3VsYXJTdHlsZTsgfQogICAgICAgICBib29sIGFwcGx5UHJv
cGVydHlUb1Zpc2l0ZWRMaW5rU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2FwcGx5UHJvcGVydHlU
b1Zpc2l0ZWRMaW5rU3R5bGU7IH0KICAgICAgICAgUGVuZGluZ0ltYWdlUHJvcGVydHlNYXAmIHBl
bmRpbmdJbWFnZVByb3BlcnRpZXMoKSB7IHJldHVybiBtX3BlbmRpbmdJbWFnZVByb3BlcnRpZXM7
IH0KLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisKICAgICAgICAgVmVjdG9yPFJlZlB0cjxSZWZl
cmVuY2VGaWx0ZXJPcGVyYXRpb24+PiYgZmlsdGVyc1dpdGhQZW5kaW5nU1ZHRG9jdW1lbnRzKCkg
eyByZXR1cm4gbV9maWx0ZXJzV2l0aFBlbmRpbmdTVkdEb2N1bWVudHM7IH0KLSNlbmRpZgogCiAg
ICAgICAgIHZvaWQgc2V0TGluZUhlaWdodFZhbHVlKENTU1ZhbHVlKiB2YWx1ZSkgeyBtX2xpbmVI
ZWlnaHRWYWx1ZSA9IHZhbHVlOyB9CiAgICAgICAgIENTU1ZhbHVlKiBsaW5lSGVpZ2h0VmFsdWUo
KSB7IHJldHVybiBtX2xpbmVIZWlnaHRWYWx1ZTsgfQpAQCAtNDMxLDkgKzQyOCw5IEBAIHB1Ymxp
YzoKICAgICAgICAgYm9vbCBtX2FwcGx5UHJvcGVydHlUb1Zpc2l0ZWRMaW5rU3R5bGU7CiAKICAg
ICAgICAgUGVuZGluZ0ltYWdlUHJvcGVydHlNYXAgbV9wZW5kaW5nSW1hZ2VQcm9wZXJ0aWVzOwot
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKKwogICAgICAgICBWZWN0b3I8UmVmUHRyPFJlZmVyZW5j
ZUZpbHRlck9wZXJhdGlvbj4+IG1fZmlsdGVyc1dpdGhQZW5kaW5nU1ZHRG9jdW1lbnRzOwotI2Vu
ZGlmCisKICAgICAgICAgQ1NTVmFsdWUqIG1fbGluZUhlaWdodFZhbHVlOwogICAgICAgICBib29s
IG1fZm9udERpcnR5OwogICAgICAgICBib29sIG1fZm9udFNpemVIYXNWaWV3cG9ydFVuaXRzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAKaW5kZXggYTRhZjVk
NDAzNmFlOWM1MDkzZGEwYjZkOTcyMTdiOTQ5ZTBhMTAwOS4uODZjYjRjYjZjMDY4Njc1NzEyYmU3
MjJiODZkNDZiZmY4ODQxZDA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU0ZpbHRlclZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRmls
dGVyVmFsdWUuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCIKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykK
LQogI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0xMDEsNSArOTksMyBAQCBib29s
IFdlYktpdENTU0ZpbHRlclZhbHVlOjplcXVhbHMoY29uc3QgV2ViS2l0Q1NTRmlsdGVyVmFsdWUm
IG90aGVyKSBjb25zdAogfQogCiB9Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oCmluZGV4IDlkYWVlZmY1NmZh
ODM1ZWVmNWY2YmZjZDJkNmNlMWQzZWM4ODlmZmYuLjRmOWQ5MTU4NjY5ZjUxYTBiYzFkMmQwNjdm
ZjYyYTgzMGZmZTQxMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NG
aWx0ZXJWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1
ZS5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFdlYktpdENTU0ZpbHRlclZhbHVlX2gKICNk
ZWZpbmUgV2ViS2l0Q1NTRmlsdGVyVmFsdWVfaAogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQot
CiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC03Niw2ICs3NCw0IEBAIENTU19WQUxVRV9UWVBF
X0NBU1RTKFdlYktpdENTU0ZpbHRlclZhbHVlLCBpc1dlYktpdENTU0ZpbHRlclZhbHVlKCkpCiAK
IH0KIAotI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaWRsIGIvU291cmNlL1dl
YkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmlkbAppbmRleCA3YTNjMGRlMGYwMGI3ZTA0
ZmQ0NWVkZjlhMzFkYjQyYTAwOGRjZjhjLi40NWU3YTJlZmM4OTVlNTk3YTI0Nzg0YmI0MjIyMGEx
NmI1YTIyYTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRmlsdGVy
VmFsdWUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5p
ZGwKQEAgLTI0LDcgKzI0LDYgQEAKICAqLwogCiBbCi0gICAgQ29uZGl0aW9uYWw9Q1NTX0ZJTFRF
UlMsCiAgICAgRG9Ob3RDaGVja0NvbnN0YW50cywKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRh
YmxlLAogXSBpbnRlcmZhY2UgV2ViS2l0Q1NTRmlsdGVyVmFsdWUgOiBDU1NWYWx1ZUxpc3Qgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50
UmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1
bWVudFJlZmVyZW5jZS5jcHAKaW5kZXggZmRhMGNjN2IyZTQ1YTEyMDQ1MzA1MjIyMjQxOTUzYjY3
NjgzZjI1Ni4uMDZmM2FiOGQ3MzI1YzU5MDY3NTdhYjU5NTdlODlkYjgwYjQ3ZmE1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJl
bmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1l
bnRSZWZlcmVuY2UuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuaCIKIAotI2lmIEVOQUJMRShDU1Nf
RklMVEVSUykKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgi
CkBAIC02NCw1ICs2MywzIEBAIHZvaWQgQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2U6OmxvYWQo
Q2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKIH0KIAogfQotCi0jZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5j
ZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJl
bmNlLmgKaW5kZXggYzY2MzZhZmM0ZmU4YmFmY2ZlZmZhZGEwNWVjOTg1NjUwOTA5NDhkZC4uNWRh
M2VlYzU1NDI5NjU1Nzc5OWYyNjJjZjRmMzE4ZDQwY2I0ZjRiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLmgK
QEAgLTI2LDcgKzI2LDYgQEAKICNpZm5kZWYgQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2VfaAog
I2RlZmluZSBDYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZV9oCiAKLSNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJDYWNo
ZWRTVkdEb2N1bWVudENsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpA
QCAtNTUsNiArNTQsNCBAQCBwcml2YXRlOgogCiB9OwogCi0jZW5kaWYgLy8gRU5BQkxFKENTU19G
SUxURVJTKQotCiAjZW5kaWYgLy8gQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2VfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDRhZTEzNDg1NzU1MTMxMzcyMTlkY2U0NTdiMzljYWIy
MDNjOWU3NTkuLjExNGRlMmM3NjNmNWNjMzI1YWRiZThjMzU2YjkyMTMzMDA0NjMxNDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTE3ODQsMTMgKzE3ODQsMTIgQEAgYm9vbCBGcmFt
ZVZpZXc6OnNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEs
IGNvbnN0IEludFJlY3QKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAgIGlmIChsYXllci0+aGFzQW5jZXN0b3JXaXRoRmls
dGVyT3V0c2V0cygpKSB7CiAgICAgICAgICAgICAvLyBJZiB0aGUgZml4ZWQgbGF5ZXIgaGFzIGEg
Ymx1ci9kcm9wLXNoYWRvdyBmaWx0ZXIgYXBwbGllZCBvbiBhdCBsZWFzdCBvbmUgb2YgaXRzIHBh
cmVudHMsIHdlIGNhbm5vdCAKICAgICAgICAgICAgIC8vIHNjcm9sbCB1c2luZyB0aGUgZmFzdCBw
YXRoLCBvdGhlcndpc2UgdGhlIG91dHNldHMgb2YgdGhlIGZpbHRlciB3aWxsIGJlIG1vdmVkIGFy
b3VuZCB0aGUgcGFnZS4KICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQotI2Vu
ZGlmCisKICAgICAgICAgSW50UmVjdCB1cGRhdGVSZWN0ID0gc25hcHBlZEludFJlY3QobGF5ZXIt
PnJlcGFpbnRSZWN0SW5jbHVkaW5nTm9uQ29tcG9zaXRpbmdEZXNjZW5kYW50cygpKTsKICAgICAg
ICAgdXBkYXRlUmVjdCA9IGNvbnRlbnRzVG9Sb290Vmlldyh1cGRhdGVSZWN0KTsKICAgICAgICAg
aWYgKCFpc0NvbXBvc2l0ZWRDb250ZW50TGF5ZXIgJiYgY2xpcHNSZXBhaW50cygpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAppbmRleCAzNDMw
MDFhZWZhYmJmMmU2YTZlYzAwMzM3MWY0NTQ1NjQxN2IxOWYwLi5kYTc1MmUwYjI3MzI0Mjk1OWVi
YzgzZGM3YzY0NWUyYjg3MDI5NjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcApAQCAtNzIsOSArNzIsNyBAQCBBbmltYXRpb25CYXNlOjpB
bmltYXRpb25CYXNlKGNvbnN0IEFuaW1hdGlvbiYgdHJhbnNpdGlvbiwgUmVuZGVyRWxlbWVudCog
cmVuZGVyZQogICAgIDogbV9hbmltYXRpb25TdGF0ZShBbmltYXRpb25TdGF0ZTo6TmV3KQogICAg
ICwgbV9pc0FjY2VsZXJhdGVkKGZhbHNlKQogICAgICwgbV90cmFuc2Zvcm1GdW5jdGlvbkxpc3RW
YWxpZChmYWxzZSkKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgLCBtX2ZpbHRlckZ1bmN0
aW9uTGlzdHNNYXRjaChmYWxzZSkKLSNlbmRpZgogICAgICwgbV9zdGFydFRpbWUoMCkKICAgICAs
IG1fcGF1c2VUaW1lKC0xKQogICAgICwgbV9yZXF1ZXN0ZWRTdGFydFRpbWUoMCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAppbmRleCBmZDNjYjBhY2Nl
OWE1MTg3YWQ4NzMyMmMzNTE0ZTAwN2QxNzI4NWMzLi4zYzZhZDIwYmY2ZWRmYjVjNzExZjQwMWNi
MmUwYTNjNjRjYzFlMjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25CYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQmFzZS5oCkBAIC0xODUsOSArMTg1LDcgQEAgcHVibGljOgogCiAgICAgLy8gRklYTUU6
IHJlbmFtZSB0aGlzIHVzaW5nIHRoZSAibGlzdHMgbWF0Y2giIHRlcm1pbm9sb2d5LgogICAgIGJv
b2wgaXNUcmFuc2Zvcm1GdW5jdGlvbkxpc3RWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNm
b3JtRnVuY3Rpb25MaXN0VmFsaWQ7IH0KLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9v
bCBmaWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2goKSBjb25zdCB7IHJldHVybiBtX2ZpbHRlckZ1bmN0
aW9uTGlzdHNNYXRjaDsgfQotI2VuZGlmCiAKICAgICAvLyBGcmVlemUgdGhlIGFuaW1hdGlvbjsg
dXNlZCBieSBEdW1wUmVuZGVyVHJlZS4KICAgICB2b2lkIGZyZWV6ZUF0VGltZShkb3VibGUgdCk7
CkBAIC0yNDIsOSArMjQwLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBtX2lzQWNjZWxlcmF0
ZWQ7CiAgICAgYm9vbCBtX3RyYW5zZm9ybUZ1bmN0aW9uTGlzdFZhbGlkOwotI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKICAgICBib29sIG1fZmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoOwotI2VuZGlm
CiAgICAgZG91YmxlIG1fc3RhcnRUaW1lOwogICAgIGRvdWJsZSBtX3BhdXNlVGltZTsKICAgICBk
b3VibGUgbV9yZXF1ZXN0ZWRTdGFydFRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggYmJkZWUxODJiODIy
NTk3Y2YzYTZjOWUzOTNkYzdlMzYyMWU5NWQ1My4uZDEwZjQxZjllYTViODY5NzU4N2FmMjI5Njkz
ZDhkMWNiNDRhNDg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
Q1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAtMTYxLDcgKzE2MSw2IEBAIHN0YXRpYyBp
bmxpbmUgUGFzc1JlZlB0cjxTaGFwZVZhbHVlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFz
ZSosIFNoYXBlVmFsdWUqCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIHN0
YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGJsZW5kRnVuYyhjb25zdCBB
bmltYXRpb25CYXNlKiBhbmltLCBGaWx0ZXJPcGVyYXRpb24qIGZyb21PcCwgRmlsdGVyT3BlcmF0
aW9uKiB0b09wLCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wgYmxlbmRUb1Bhc3N0aHJvdWdoID0gZmFs
c2UpCiB7CiAgICAgQVNTRVJUKHRvT3ApOwpAQCAtMjI0LDcgKzIyMyw2IEBAIHN0YXRpYyBpbmxp
bmUgUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZpbHRlcihjb25zdCBBbmltYXRpb25CYXNl
KiBhbmltLCBDYWNoCiAgICAgcmVzdWx0LmdldCgpLnNldEZpbHRlck9wZXJhdGlvbnMoZmlsdGVy
UmVzdWx0KTsKICAgICByZXR1cm4gU3R5bGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKFdURjo6bW92
ZShyZXN1bHQpKTsKIH0KLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAKIHN0YXRpYyBp
bmxpbmUgRVZpc2liaWxpdHkgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIEVW
aXNpYmlsaXR5IGZyb20sIEVWaXNpYmlsaXR5IHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CkBAIC0y
OTksNyArMjk3LDYgQEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5k
RnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBTdHlsZUkKICAgICAgICAgQ1NTSW1hZ2VH
ZW5lcmF0b3JWYWx1ZSYgZnJvbUdlbmVyYXRlZCA9IHRvU3R5bGVHZW5lcmF0ZWRJbWFnZShmcm9t
KS0+aW1hZ2VWYWx1ZSgpOwogICAgICAgICBDU1NJbWFnZUdlbmVyYXRvclZhbHVlJiB0b0dlbmVy
YXRlZCA9IHRvU3R5bGVHZW5lcmF0ZWRJbWFnZSh0byktPmltYWdlVmFsdWUoKTsKIAotI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKICAgICAgICAgaWYgKGZyb21HZW5lcmF0ZWQuaXNGaWx0ZXJJbWFn
ZVZhbHVlKCkgJiYgdG9HZW5lcmF0ZWQuaXNGaWx0ZXJJbWFnZVZhbHVlKCkpIHsKICAgICAgICAg
ICAgIC8vIEFuaW1hdGlvbiBvZiBnZW5lcmF0ZWQgaW1hZ2VzIGp1c3QgcG9zc2libGUgaWYgaW5w
dXQgaW1hZ2VzIGFyZSBlcXVhbC4KICAgICAgICAgICAgIC8vIE90aGVyd2lzZSBmYWxsIGJhY2sg
dG8gY3Jvc3MgZmFkZSBhbmltYXRpb24uCkBAIC0zMDgsNyArMzA1LDYgQEAgc3RhdGljIGlubGlu
ZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBh
bmltLCBTdHlsZUkKICAgICAgICAgICAgIGlmIChmcm9tRmlsdGVyLmVxdWFsSW5wdXRJbWFnZXMo
dG9GaWx0ZXIpICYmIGZyb21GaWx0ZXIuY2FjaGVkSW1hZ2UoKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gYmxlbmRGaWx0ZXIoYW5pbSwgZnJvbUZpbHRlci5jYWNoZWRJbWFnZSgpLCBmcm9tRmls
dGVyLmZpbHRlck9wZXJhdGlvbnMoKSwgdG9GaWx0ZXIuZmlsdGVyT3BlcmF0aW9ucygpLCBwcm9n
cmVzcyk7CiAgICAgICAgIH0KLSNlbmRpZgogCiAgICAgICAgIGlmIChmcm9tR2VuZXJhdGVkLmlz
Q3Jvc3NmYWRlVmFsdWUoKSAmJiB0b0dlbmVyYXRlZC5pc0Nyb3NzZmFkZVZhbHVlKCkpIHsKICAg
ICAgICAgICAgIENTU0Nyb3NzZmFkZVZhbHVlJiBmcm9tQ3Jvc3NmYWRlID0gdG9DU1NDcm9zc2Zh
ZGVWYWx1ZShmcm9tR2VuZXJhdGVkKTsKQEAgLTMxOSw3ICszMTUsNiBAQCBzdGF0aWMgaW5saW5l
IFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFu
aW0sIFN0eWxlSQogCiAgICAgICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgYW5pbWF0aW9u
IGJldHdlZW4gdHdvICpncmFkaWVudCgpIGZ1bmN0aW9ucy4KICAgICAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTk1NgotI2lmIEVOQUJMRShDU1NfRklM
VEVSUykKICAgICB9IGVsc2UgaWYgKGZyb20tPmlzR2VuZXJhdGVkSW1hZ2UoKSAmJiB0by0+aXND
YWNoZWRJbWFnZSgpKSB7CiAgICAgICAgIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUmIGZyb21HZW5l
cmF0ZWQgPSB0b1N0eWxlR2VuZXJhdGVkSW1hZ2UoZnJvbSktPmltYWdlVmFsdWUoKTsKICAgICAg
ICAgaWYgKGZyb21HZW5lcmF0ZWQuaXNGaWx0ZXJJbWFnZVZhbHVlKCkpIHsKQEAgLTMzNSw3ICsz
MzAsNiBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gYmxlbmRGdW5jKGNv
bnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFN0eWxlSQogICAgICAgICAgICAgaWYgKHRvRmlsdGVy
LmNhY2hlZEltYWdlKCkgJiYgdG9TdHlsZUNhY2hlZEltYWdlKGZyb20pLT5jYWNoZWRJbWFnZSgp
ID09IHRvRmlsdGVyLmNhY2hlZEltYWdlKCkpICAgICAKICAgICAgICAgICAgICAgICByZXR1cm4g
YmxlbmRGaWx0ZXIoYW5pbSwgdG9GaWx0ZXIuY2FjaGVkSW1hZ2UoKSwgRmlsdGVyT3BlcmF0aW9u
cygpLCB0b0ZpbHRlci5maWx0ZXJPcGVyYXRpb25zKCksIHByb2dyZXNzKTsKICAgICAgICAgfQot
I2VuZGlmCiAgICAgICAgIC8vIEZJWE1FOiBBZGQgaW50ZXJwb2xhdGlvbiBiZXR3ZWVuIGltYWdl
IHNvdXJjZSBhbmQgY3Jvc3MtZmFkZS4KICAgICB9CiAKQEAgLTU1Nyw3ICs1NTEsNiBAQCBwdWJs
aWM6CiAgICAgfQogfTsKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIGNsYXNzIFByb3BlcnR5
V3JhcHBlckFjY2VsZXJhdGVkRmlsdGVyIDogcHVibGljIFByb3BlcnR5V3JhcHBlcjxjb25zdCBG
aWx0ZXJPcGVyYXRpb25zJj4gewogcHVibGljOgogICAgIFByb3BlcnR5V3JhcHBlckFjY2VsZXJh
dGVkRmlsdGVyKCkKQEAgLTU3Miw3ICs1NjUsNiBAQCBwdWJsaWM6CiAgICAgICAgIGRzdC0+c2V0
RmlsdGVyKGJsZW5kRnVuYyhhbmltLCBhLT5maWx0ZXIoKSwgYi0+ZmlsdGVyKCksIHByb2dyZXNz
KSk7CiAgICAgfQogfTsKLSNlbmRpZgogCiBzdGF0aWMgaW5saW5lIHNpemVfdCBzaGFkb3dMaXN0
TGVuZ3RoKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdykKIHsKQEAgLTEyMjEsMTAgKzEyMTMsNyBA
QCBDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXA6OkNTU1Byb3BlcnR5QW5pbWF0aW9uV3Jh
cHBlck1hcCgpCiAKICAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlckFjY2VsZXJhdGVkT3BhY2l0
eSgpLAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyQWNjZWxlcmF0ZWRUcmFuc2Zvcm0oKSwK
LSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXJBY2Nl
bGVyYXRlZEZpbHRlcigpLAotI2VuZGlmCi0KICAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlckNs
aXBQYXRoKENTU1Byb3BlcnR5V2Via2l0Q2xpcFBhdGgsICZSZW5kZXJTdHlsZTo6Y2xpcFBhdGgs
ICZSZW5kZXJTdHlsZTo6c2V0Q2xpcFBhdGgpLAogCiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5j
cHAKaW5kZXggNmQ1NzdmNzAwNmEwYTViN2IwNTVlNDE4NmJkMmI2MTU3ODcxMDZkMi4uZDYyNjk4
NmM2MzgzZTQwNmJjM2UxYzNiYTFiNDNkY2MwZDk2YTVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcApAQCAtMTgxLDkgKzE4
MSw3IEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246OnJlc2V0KFJlbmRlclN0eWxlKiB0bykKICAg
ICAgICAgCiAgICAgLy8gc2V0IHRoZSB0cmFuc2Zvcm0gYW5pbWF0aW9uIGxpc3QKICAgICB2YWxp
ZGF0ZVRyYW5zZm9ybUZ1bmN0aW9uTGlzdCgpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAg
ICBjaGVja0Zvck1hdGNoaW5nRmlsdGVyRnVuY3Rpb25MaXN0cygpOwotI2VuZGlmCiB9CiAKIHZv
aWQgSW1wbGljaXRBbmltYXRpb246OnNldE92ZXJyaWRkZW4oYm9vbCBiKQpAQCAtMjQ0LDcgKzI0
Miw2IEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246OnZhbGlkYXRlVHJhbnNmb3JtRnVuY3Rpb25M
aXN0KCkKICAgICBtX3RyYW5zZm9ybUZ1bmN0aW9uTGlzdFZhbGlkID0gdHJ1ZTsKIH0KIAotI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgSW1wbGljaXRBbmltYXRpb246OmNoZWNrRm9yTWF0
Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCkKIHsKICAgICBtX2ZpbHRlckZ1bmN0aW9uTGlzdHNN
YXRjaCA9IGZhbHNlOwpAQCAtMjY4LDcgKzI2NSw2IEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246
OmNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCkKICAgICAvLyBGaWx0ZXIgbGlz
dHMgbWF0Y2guCiAgICAgbV9maWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2ggPSB0cnVlOwogfQotI2Vu
ZGlmCiAKIGRvdWJsZSBJbXBsaWNpdEFuaW1hdGlvbjo6dGltZVRvTmV4dFNlcnZpY2UoKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmgK
aW5kZXggOWRlNGJmODBiMmVjMzI0NmRlNTc1NjY2OTU0NDJmM2U3NjhjZWIwMi4uZDQyYzM4Yjdk
ZjExNTllZGMyZjg1Njg4OWQ1N2JkN2Y2NGNhZmI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCkBAIC03OSw5ICs3OSw3IEBAIHBy
b3RlY3RlZDoKICAgICBib29sIHNlbmRUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiwgZG91YmxlIGVsYXBzZWRUaW1lKTsKIAogICAgIHZvaWQgdmFsaWRhdGVUcmFuc2Zvcm1GdW5j
dGlvbkxpc3QoKTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdm9pZCBjaGVja0Zvck1h
dGNoaW5nRmlsdGVyRnVuY3Rpb25MaXN0cygpOwotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgSW1w
bGljaXRBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uJiwgQ1NTUHJvcGVydHlJRCwgUmVuZGVyRWxl
bWVudCosIENvbXBvc2l0ZUFuaW1hdGlvbiosIFJlbmRlclN0eWxlKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKaW5kZXggNjRj
MjM0NTliYWUzNGNjNjNkYjMyNmU1YjcxZDFhYmIzZTg0YTg1Ny4uMDg5ZGY4ODlhNTdkODgzZWJh
NjYyMDMwN2M1ZGMwMjI1MjJhZGRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcApAQCAtNTMsOSArNTMsNyBAQCBLZXlmcmFt
ZUFuaW1hdGlvbjo6S2V5ZnJhbWVBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uJiBhbmltYXRpb24s
IFJlbmRlckVsZW1lbnQqCiAKICAgICAvLyBVcGRhdGUgdGhlIG1fdHJhbnNmb3JtRnVuY3Rpb25M
aXN0VmFsaWQgZmxhZyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBmdW5jdGlvbiBsaXN0cyBpbiB0aGUg
a2V5ZnJhbWVzIG1hdGNoLgogICAgIHZhbGlkYXRlVHJhbnNmb3JtRnVuY3Rpb25MaXN0KCk7Ci0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlv
bkxpc3RzKCk7Ci0jZW5kaWYKIH0KIAogS2V5ZnJhbWVBbmltYXRpb246On5LZXlmcmFtZUFuaW1h
dGlvbigpCkBAIC0zNjEsNyArMzU5LDYgQEAgdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6dmFsaWRh
dGVUcmFuc2Zvcm1GdW5jdGlvbkxpc3QoKQogICAgIG1fdHJhbnNmb3JtRnVuY3Rpb25MaXN0VmFs
aWQgPSB0cnVlOwogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogdm9pZCBLZXlmcmFtZUFu
aW1hdGlvbjo6Y2hlY2tGb3JNYXRjaGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMoKQogewogICAgIG1f
ZmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoID0gZmFsc2U7CkBAIC00MDAsNyArMzk3LDYgQEAgdm9p
ZCBLZXlmcmFtZUFuaW1hdGlvbjo6Y2hlY2tGb3JNYXRjaGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMo
KQogICAgIAogICAgIG1fZmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoID0gdHJ1ZTsKIH0KLSNlbmRp
ZgogCiBkb3VibGUgS2V5ZnJhbWVBbmltYXRpb246OnRpbWVUb05leHRTZXJ2aWNlKCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oCmlu
ZGV4IGZkMTY1NDU3NjdlMDcyZTQ2M2EzMzc3N2Q3ZjA1MDcyMjkzMzk1YTkuLmI4YjJiYjViZDk1
MGRlYWEyMjA1MGRjMjIwZTA3YWNmNjkyZDRiNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaApAQCAtNzgsOSArNzgsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIGFmZmVjdHNQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgdmFsaWRhdGVUcmFuc2Zvcm1GdW5jdGlvbkxpc3Qo
KTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdm9pZCBjaGVja0Zvck1hdGNoaW5nRmls
dGVyRnVuY3Rpb25MaXN0cygpOwotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgS2V5ZnJhbWVBbmlt
YXRpb24oY29uc3QgQW5pbWF0aW9uJiwgUmVuZGVyRWxlbWVudCosIGludCBpbmRleCwgQ29tcG9z
aXRlQW5pbWF0aW9uKiwgUmVuZGVyU3R5bGUqIHVuYW5pbWF0ZWRTdHlsZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDg1
ZDBmM2E4ZWI1MjE2MTczYWQ4MzdjMGE3NzFkMzJhMjAyNTk0MTkuLjZjNjE0NmQwNmRhZTQzMWM1
MWRjYjU0MzNjOTZiYTEzNjRkMzAwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC00NDAsNyArNDQwLDYgQEAgdm9pZCBH
cmFwaGljc0xheWVyOjpkaXN0cmlidXRlT3BhY2l0eShmbG9hdCBhY2N1bXVsYXRlZE9wYWNpdHkp
CiAgICAgfQogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogc3RhdGljIGlubGluZSBjb25z
dCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJPcGVyYXRpb25zQXQoY29uc3QgS2V5ZnJhbWVWYWx1
ZUxpc3QmIHZhbHVlTGlzdCwgc2l6ZV90IGluZGV4KQogewogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSY+KHZhbHVlTGlzdC5hdChpbmRleCkpLnZhbHVl
KCk7CkBAIC00NzgsNyArNDc3LDYgQEAgaW50IEdyYXBoaWNzTGF5ZXI6OnZhbGlkYXRlRmlsdGVy
T3BlcmF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0KQogICAgIAogICAg
IHJldHVybiBmaXJzdEluZGV4OwogfQotI2VuZGlmCiAKIC8vIEFuICJpbnZhbGlkIiBsaXN0IGlz
IG9uZSB3aG9zZSBmdW5jdGlvbnMgZG9uJ3QgbWF0Y2gsIGFuZCB0aGVyZWZvcmUgaGFzIHRvIGJl
IGFuaW1hdGVkIGFzIGEgTWF0cml4CiAvLyBUaGUgaGFzQmlnUm90YXRpb24gZmxhZyB3aWxsIGFs
d2F5cyByZXR1cm4gZmFsc2UgaWYgaXNWYWxpZCBpcyBmYWxzZS4gT3RoZXJ3aXNlIGhhc0JpZ1Jv
dGF0aW9uIGlzIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5oCmluZGV4IDI2ODAwOWM1MWRhZTkxYTY4NTZjZDQ4OTE4ZTk1OGQwZjU1NTc5MGEu
LjdkYjdiNzBjYjUyMjU4YWRmNWM3YTZmYTE0YmZhOWZhZjJlNDFiNjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5j
bHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNs
dWRlICJGbG9hdFBvaW50M0QuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKQEAgLTM5LDEwICs0
MCw2IEBACiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0jaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9u
cy5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgIkdy
YXBoaWNzVHlwZXMuaCIKICNlbmRpZgpAQCAtMTQ1LDcgKzE0Miw2IEBAIHByaXZhdGU6CiAgICAg
VHJhbnNmb3JtT3BlcmF0aW9ucyBtX3ZhbHVlOwogfTsKIAotI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKIC8vIFVzZWQgdG8gc3RvcmUgb25lIGZpbHRlciB2YWx1ZSBpbiBhIGtleWZyYW1lIGxpc3Qu
CiAvLyBGSVhNRTogU2hvdWxkIGJlIG1vdmVkIHRvIGl0cyBvd24gaGVhZGVyIGZpbGUuCiBjbGFz
cyBGaWx0ZXJBbmltYXRpb25WYWx1ZSA6IHB1YmxpYyBBbmltYXRpb25WYWx1ZSB7CkBAIC0xNzEs
NyArMTY3LDYgQEAgcHJpdmF0ZToKIAogICAgIEZpbHRlck9wZXJhdGlvbnMgbV92YWx1ZTsKIH07
Ci0jZW5kaWYKIAogLy8gVXNlZCB0byBzdG9yZSBhIHNlcmllcyBvZiB2YWx1ZXMgaW4gYSBrZXlm
cmFtZSBsaXN0LgogLy8gVmFsdWVzIHdpbGwgYWxsIGJlIG9mIHRoZSBzYW1lIHR5cGUsIHdoaWNo
IGNhbiBiZSBpbmZlcnJlZCBmcm9tIHRoZSBwcm9wZXJ0eS4KQEAgLTM1NiwxMiArMzUxLDEwIEBA
IHB1YmxpYzoKICAgICBmbG9hdCBvcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gbV9vcGFjaXR5OyB9
CiAgICAgdmlydHVhbCB2b2lkIHNldE9wYWNpdHkoZmxvYXQgb3BhY2l0eSkgeyBtX29wYWNpdHkg
PSBvcGFjaXR5OyB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYgZmlsdGVycygpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyczsgfQogICAgIAog
ICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBmaWx0ZXIgY2FuIGJlIHJlbmRlcmVkIGJ5IHRoZSBjb21w
b3NpdG9yCiAgICAgdmlydHVhbCBib29sIHNldEZpbHRlcnMoY29uc3QgRmlsdGVyT3BlcmF0aW9u
cyYgZmlsdGVycykgeyBtX2ZpbHRlcnMgPSBmaWx0ZXJzOyByZXR1cm4gdHJ1ZTsgfQotI2VuZGlm
CiAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIEJsZW5kTW9kZSBibGVuZE1vZGUo
KSBjb25zdCB7IHJldHVybiBtX2JsZW5kTW9kZTsgfQpAQCAtNTMxLDcgKzUyNCw2IEBAIHByb3Rl
Y3RlZDoKICAgICAvLyBTaG91bGQgYmUgY2FsbGVkIGZyb20gZGVyaXZlZCBjbGFzcyBkZXN0cnVj
dG9ycy4gU2hvdWxkIGNhbGwgd2lsbEJlRGVzdHJveWVkKCkgb24gc3VwZXIuCiAgICAgV0VCQ09S
RV9FWFBPUlQgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogCi0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQogICAgIC8vIFRoaXMgbWV0aG9kIGlzIHVzZWQgYnkgcGxhdGZvcm0gR3JhcGhp
Y3NMYXllciBjbGFzc2VzIHRvIGNsZWFyIHRoZSBmaWx0ZXJzCiAgICAgLy8gd2hlbiBjb21wb3Np
dGluZyBpcyBub3QgZG9uZSBpbiBoYXJkd2FyZS4gSXQgaXMgbm90IHZpcnR1YWwsIHNvIHRoZSBj
YWxsZXIKICAgICAvLyBuZWVkcyB0byBub3RpZml5IHRoZSBjaGFuZ2UgdG8gdGhlIHBsYXRmb3Jt
IGxheWVyIGFzIG5lZWRlZC4KQEAgLTUzOSw3ICs1MzEsNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICAv
LyBHaXZlbiBhIEtleWZyYW1lVmFsdWVMaXN0IGNvbnRhaW5pbmcgZmlsdGVyT3BlcmF0aW9ucywg
cmV0dXJuIHRydWUgaWYgdGhlIG9wZXJhdGlvbnMgYXJlIHZhbGlkLgogICAgIHN0YXRpYyBpbnQg
dmFsaWRhdGVGaWx0ZXJPcGVyYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0Jik7Ci0jZW5k
aWYKIAogICAgIC8vIEdpdmVuIGEgbGlzdCBvZiBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZXMsIHNl
ZSBpZiBhbGwgdGhlIG9wZXJhdGlvbnMgZm9yIGVhY2gga2V5ZnJhbWUgbWF0Y2guIElmIHNvCiAg
ICAgLy8gcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgS2V5ZnJhbWVWYWx1ZUxpc3QgZW50cnkgdGhh
dCBoYXMgdGhhdCBsaXN0IG9mIG9wZXJhdGlvbnMgKGl0IG1heSBub3QgYmUKQEAgLTU4Miw5ICs1
NzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgZmxvYXQgbV9vcGFjaXR5OwogICAgIGZsb2F0IG1felBv
c2l0aW9uOwogICAgIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBGaWx0ZXJPcGVyYXRp
b25zIG1fZmlsdGVyczsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKICAg
ICBCbGVuZE1vZGUgbV9ibGVuZE1vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uY3BwCmluZGV4IGRjOWE2
OWIzYzI5NGM0YTQxYjk3ODliZGVmMTJlNzU1OGZhNTRmZmIuLjA3YTQzMjA5ZmU3ZmIzYjgxMDI3
OGRlYTFlMjk0NzcxNjlmOWMxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uY3BwCkBAIC0yNyw3ICsy
Nyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykK
IHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGJsZW5kRnVuYyhGaWx0
ZXJPcGVyYXRpb24qIGZyb21PcCwgRmlsdGVyT3BlcmF0aW9uKiB0b09wLCBkb3VibGUgcHJvZ3Jl
c3MsIGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgYm9vbCBibGVuZFRvUGFzc3Rocm91Z2ggPSBmYWxz
ZSkKIHsKICAgICBBU1NFUlQodG9PcCk7CkBAIC03Myw3ICs3Miw2IEBAIHN0YXRpYyBGaWx0ZXJP
cGVyYXRpb25zIGFwcGx5RmlsdGVyQW5pbWF0aW9uKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZy
b20sIGNvbnN0CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQotI2VuZGlmCiAKIHN0YXRpYyBib29s
IHNob3VsZFJldmVyc2VBbmltYXRpb25WYWx1ZShBbmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlv
biBkaXJlY3Rpb24sIGludCBsb29wQ291bnQpCiB7CkBAIC0yMzUsMTEgKzIzMyw5IEBAIHZvaWQg
R3JhcGhpY3NMYXllckFuaW1hdGlvbjo6YXBwbHlJbnRlcm5hbChDbGllbnQqIGNsaWVudCwgY29u
c3QgQW5pbWF0aW9uVmFsdWUmCiAgICAgY2FzZSBBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNm
b3JtOgogICAgICAgICBjbGllbnQtPnNldEFuaW1hdGVkVHJhbnNmb3JtKGFwcGx5VHJhbnNmb3Jt
QW5pbWF0aW9uKHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlJj4oZnJv
bSkudmFsdWUoKSwgc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUmPih0
bykudmFsdWUoKSwgcHJvZ3Jlc3MsIG1fYm94U2l6ZSwgbV9saXN0c01hdGNoKSk7CiAgICAgICAg
IHJldHVybjsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgY2FzZSBBbmltYXRlZFByb3Bl
cnR5V2Via2l0RmlsdGVyOgogICAgICAgICBjbGllbnQtPnNldEFuaW1hdGVkRmlsdGVycyhhcHBs
eUZpbHRlckFuaW1hdGlvbihzdGF0aWNfY2FzdDxjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSY+
KGZyb20pLnZhbHVlKCksIHN0YXRpY19jYXN0PGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlJj4o
dG8pLnZhbHVlKCksIHByb2dyZXNzLCBtX2JveFNpemUpKTsKICAgICAgICAgcmV0dXJuOwotI2Vu
ZGlmCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ckFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllckFuaW1hdGlvbi5oCmluZGV4IGQ1NTE3MzJhYTEyZjVhMzhmMjQzNTEzYTY4ZGEyNjA4MzNi
OGEzM2MuLmZkZTJmODMwMzNlZmE2YTkwNmQzNDZmZWYyNjA5MjcyNDdlOTkyYmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
QW5pbWF0aW9uLmgKQEAgLTM0LDkgKzM0LDcgQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICAg
ICAgdmlydHVhbCB2b2lkIHNldEFuaW1hdGVkVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0QW5pbWF0ZWRPcGFjaXR5KGZs
b2F0KSA9IDA7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgICAgICB2aXJ0dWFsIHZvaWQg
c2V0QW5pbWF0ZWRGaWx0ZXJzKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKSA9IDA7Ci0jZW5kaWYK
ICAgICB9OwogCiAgICAgR3JhcGhpY3NMYXllckFuaW1hdGlvbigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0RXh0ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0RXh0ZW50LmgKaW5kZXggNjUxN2Y4YWUwMGJj
NTUzNjVmYTY2OTliNmJjMWNkOGNkYTZiZDZmYy4uNjExNzM5MDU0MDIxYjQzMzRiN2JmYmY2NDdl
M2M2ZDE1OTYzZTk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW50UmVjdEV4dGVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ludFJlY3RFeHRlbnQuaApAQCAtMzAsOCArMzAsNiBAQAogI2lmbmRlZiBJbnRSZWN0RXh0ZW50
X2gKICNkZWZpbmUgSW50UmVjdEV4dGVudF9oCiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0K
ICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwNyw2
ICsxMDUsNCBAQCBpbmxpbmUgdm9pZCBvcGVyYXRvcis9KEludFJlY3RFeHRlbnQmIGEsIGNvbnN0
IEludFJlY3RFeHRlbnQmIGIpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8v
IEVOQUJMRShDU1NfRklMVEVSUykKLQogI2VuZGlmIC8vIEludFJlY3RFeHRlbnRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHAKaW5kZXggZTgwYTI5Y2YzZjdmYWQ4MjczZWJkODA4YzE2ZmRjNmNkOGU0ZWQyMC4uZTQz
OWY1MGViZjNlYWMyNTIzOWFiNzViNTk4ZTA0ZDdlOTg0ZWFhMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBA
IC0yNDMsMTEgKzI0Myw3IEBAIHN0YXRpYyBTdHJpbmcgcHJvcGVydHlJZFRvU3RyaW5nKEFuaW1h
dGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKICAgICBjYXNlIEFuaW1hdGVkUHJvcGVydHlCYWNrZ3Jv
dW5kQ29sb3I6CiAgICAgICAgIHJldHVybiAiYmFja2dyb3VuZENvbG9yIjsKICAgICBjYXNlIEFu
aW1hdGVkUHJvcGVydHlXZWJraXRGaWx0ZXI6Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAg
ICAgICByZXR1cm4gImZpbHRlcnMiOwotI2Vsc2UKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0jZW5kaWYKICAgICBjYXNlIEFuaW1hdGVkUHJvcGVydHlJbnZhbGlkOgogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC0yNzUsNyArMjcxLDYgQEAgc3RhdGljIGJv
b2wgYW5pbWF0aW9uSGFzU3RlcHNUaW1pbmdGdW5jdGlvbihjb25zdCBLZXlmcmFtZVZhbHVlTGlz
dCYgdmFsdWVMaXN0LAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklM
VEVSUykgfHwgIUFTU0VSVF9ESVNBQkxFRAogc3RhdGljIGlubGluZSBib29sIHN1cHBvcnRzQWNj
ZWxlcmF0ZWRGaWx0ZXJBbmltYXRpb25zKCkKIHsKIC8vIDxyZGFyOi8vcHJvYmxlbS8xMDkwNzI1
MT4gLSBXZWJLaXQyIGRvZXNuJ3Qgc3VwcG9ydCBDQSBhbmltYXRpb25zIG9mIENJIGZpbHRlcnMg
b24gTGlvbiBhbmQgYmVsb3cKQEAgLTI4NSw3ICsyODAsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c3VwcG9ydHNBY2NlbGVyYXRlZEZpbHRlckFuaW1hdGlvbnMoKQogICAgIHJldHVybiBmYWxzZTsK
ICNlbmRpZgogfQotI2VuZGlmCiAKIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBHcmFw
aGljc0xheWVyOjpjcmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqIGZhY3RvcnksIEdyYXBoaWNz
TGF5ZXJDbGllbnQmIGNsaWVudCkKIHsKQEAgLTMwMCw3ICsyOTQsNiBAQCBzdGQ6OnVuaXF1ZV9w
dHI8R3JhcGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0
b3J5KiBmYWN0bwogICAgIHJldHVybiBncmFwaGljc0xheWVyOwogfQogCi0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQogYm9vbCBHcmFwaGljc0xheWVyQ0E6OmZpbHRlcnNDYW5CZUNvbXBvc2l0ZWQo
Y29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykKIHsKICNpZiBQTEFURk9STShDT0NPQSkK
QEAgLTMwOSw3ICszMDIsNiBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6ZmlsdGVyc0NhbkJlQ29t
cG9zaXRlZChjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogICAgIHJldHVybiBQbGF0
Zm9ybUNBTGF5ZXJXaW46OmZpbHRlcnNDYW5CZUNvbXBvc2l0ZWQoZmlsdGVycyk7CiAjZW5kaWYK
IH0KLSNlbmRpZgogICAgIAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IEdyYXBoaWNzTGF5
ZXJDQTo6Y3JlYXRlUGxhdGZvcm1DQUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIGxh
eWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikKIHsKQEAgLTU3OCw5ICs1NzAs
NyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6bW92ZU9yQ29weUFuaW1hdGlvbnMoTW92ZU9yQ29w
eSBvcGVyYXRpb24sIFBsYXRmb3JtQ0FMYXllcgogICAgICAgICAgICAgCiAgICAgICAgICAgICBp
ZiAoY3VyckFuaW1hdGlvbi5tX3Byb3BlcnR5ID09IEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFu
c2Zvcm0gfHwgY3VyckFuaW1hdGlvbi5tX3Byb3BlcnR5ID09IEFuaW1hdGVkUHJvcGVydHlPcGFj
aXR5CiAgICAgICAgICAgICAgICAgICAgIHx8IGN1cnJBbmltYXRpb24ubV9wcm9wZXJ0eSA9PSBB
bmltYXRlZFByb3BlcnR5QmFja2dyb3VuZENvbG9yCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQog
ICAgICAgICAgICAgICAgICAgICB8fCBjdXJyQW5pbWF0aW9uLm1fcHJvcGVydHkgPT0gQW5pbWF0
ZWRQcm9wZXJ0eVdlYmtpdEZpbHRlcgotI2VuZGlmCiAgICAgICAgICAgICAgICAgKQogICAgICAg
ICAgICAgICAgIG1vdmVPckNvcHlMYXllckFuaW1hdGlvbihvcGVyYXRpb24sIGFuaW1hdGlvbklk
ZW50aWZpZXIoY3VyckFuaW1hdGlvbi5tX25hbWUsIGN1cnJBbmltYXRpb24ubV9wcm9wZXJ0eSwg
Y3VyckFuaW1hdGlvbi5tX2luZGV4LCBjdXJyQW5pbWF0aW9uLm1fc3ViSW5kZXgpLCBmcm9tTGF5
ZXIsIHRvTGF5ZXIpOwogICAgICAgICB9CkBAIC02NzMsNyArNjYzLDYgQEAgdm9pZCBHcmFwaGlj
c0xheWVyQ0E6OnNldE9wYWNpdHkoZmxvYXQgb3BhY2l0eSkKICAgICBub3RlTGF5ZXJQcm9wZXJ0
eUNoYW5nZWQoT3BhY2l0eUNoYW5nZWQpOwogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQog
Ym9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEZpbHRlcnMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYg
ZmlsdGVyT3BlcmF0aW9ucykKIHsKICAgICBib29sIGNhbkNvbXBvc2l0ZUZpbHRlcnMgPSBmaWx0
ZXJzQ2FuQmVDb21wb3NpdGVkKGZpbHRlck9wZXJhdGlvbnMpOwpAQCAtNjk1LDcgKzY4NCw2IEBA
IGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJzKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMm
IGZpbHRlck9wZXJhdGlvbnMpCiAgICAgfQogICAgIHJldHVybiBjYW5Db21wb3NpdGVGaWx0ZXJz
OwogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogdm9pZCBHcmFwaGlj
c0xheWVyQ0E6OnNldEJsZW5kTW9kZShCbGVuZE1vZGUgYmxlbmRNb2RlKQpAQCAtODAyLDEyICs3
OTAsMTAgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFkZEFuaW1hdGlvbihjb25zdCBLZXlmcmFt
ZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBGbG8KICAgICBib29sIGNyZWF0ZWRBbmltYXRp
b25zID0gZmFsc2U7CiAgICAgaWYgKHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09IEFuaW1hdGVkUHJv
cGVydHlXZWJraXRUcmFuc2Zvcm0pCiAgICAgICAgIGNyZWF0ZWRBbmltYXRpb25zID0gY3JlYXRl
VHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXModmFsdWVMaXN0LCBhbmltLCBhbmltYXRp
b25OYW1lLCB0aW1lT2Zmc2V0LCBib3hTaXplKTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAg
ICAgZWxzZSBpZiAodmFsdWVMaXN0LnByb3BlcnR5KCkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtp
dEZpbHRlcikgewogICAgICAgICBpZiAoc3VwcG9ydHNBY2NlbGVyYXRlZEZpbHRlckFuaW1hdGlv
bnMoKSkKICAgICAgICAgICAgIGNyZWF0ZWRBbmltYXRpb25zID0gY3JlYXRlRmlsdGVyQW5pbWF0
aW9uc0Zyb21LZXlmcmFtZXModmFsdWVMaXN0LCBhbmltLCBhbmltYXRpb25OYW1lLCB0aW1lT2Zm
c2V0KTsKICAgICB9Ci0jZW5kaWYKICAgICBlbHNlCiAgICAgICAgIGNyZWF0ZWRBbmltYXRpb25z
ID0gY3JlYXRlQW5pbWF0aW9uRnJvbUtleWZyYW1lcyh2YWx1ZUxpc3QsIGFuaW0sIGFuaW1hdGlv
bk5hbWUsIHRpbWVPZmZzZXQpOwogCkBAIC0xMzI0LDExICsxMzEwLDkgQEAgdm9pZCBHcmFwaGlj
c0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhDb21taXRTdGF0ZSYg
Y29tbWl0U3RhdGUKIAogICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIE9wYWNpdHlDaGFu
Z2VkKQogICAgICAgICB1cGRhdGVPcGFjaXR5T25MYXllcigpOwotICAgIAotI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKKwogICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIEZpbHRlcnNDaGFu
Z2VkKQogICAgICAgICB1cGRhdGVGaWx0ZXJzKCk7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShDU1Nf
Q09NUE9TSVRJTkcpCiAgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQmxlbmRNb2RlQ2hh
bmdlZCkKQEAgLTE2NDEsNyArMTYyNSw2IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVC
YWNrZmFjZVZpc2liaWxpdHkoKQogICAgIH0KIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykK
IHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVGaWx0ZXJzKCkKIHsKICAgICBtX2xheWVyLT5z
ZXRGaWx0ZXJzKG1fZmlsdGVycyk7CkBAIC0xNjU2LDcgKzE2MzksNiBAQCB2b2lkIEdyYXBoaWNz
TGF5ZXJDQTo6dXBkYXRlRmlsdGVycygpCiAgICAgICAgIH0KICAgICB9CiB9Ci0jZW5kaWYKIAog
I2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRl
QmxlbmRNb2RlKCkKQEAgLTE2ODcsOSArMTY2OSw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpl
bnN1cmVTdHJ1Y3R1cmFsTGF5ZXIoU3RydWN0dXJhbExheWVyUHVycG9zZSBwdXJwb3NlKQogICAg
ICAgICB8IENoaWxkcmVuVHJhbnNmb3JtQ2hhbmdlZAogICAgICAgICB8IENoaWxkcmVuQ2hhbmdl
ZAogICAgICAgICB8IEJhY2tmYWNlVmlzaWJpbGl0eUNoYW5nZWQKLSNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCiAgICAgICAgIHwgRmlsdGVyc0NoYW5nZWQKLSNlbmRpZgogICAgICAgICB8IE9wYWNp
dHlDaGFuZ2VkOwogCiAgICAgaWYgKHB1cnBvc2UgPT0gTm9TdHJ1Y3R1cmFsTGF5ZXIpIHsKQEAg
LTIzNzgsNyArMjM1OCw2IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVhdGVUcmFuc2Zvcm1B
bmltYXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlCiAgICAgcmV0dXJuIHZh
bGlkTWF0cmljZXM7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiBib29sIEdyYXBoaWNz
TGF5ZXJDQTo6YXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1
ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBvcGVyYXRpb24sIGNvbnN0
IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGludCBh
bmltYXRpb25JbmRleCwgZG91YmxlIHRpbWVPZmZzZXQpCiB7CiAgICAgYm9vbCBpc0tleWZyYW1l
ID0gdmFsdWVMaXN0LnNpemUoKSA+IDI7CkBAIC0yNDQyLDcgKzI0MjEsNiBAQCBib29sIEdyYXBo
aWNzTGF5ZXJDQTo6Y3JlYXRlRmlsdGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5
ZnJhbWVWYWx1ZUxpcwogCiAgICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKIAogUGFzc1JlZlB0
cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUJhc2ljQW5pbWF0
aW9uKGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGFk
ZGl0aXZlKQogewpAQCAtMjY5NSw3ICsyNjczLDYgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNl
dFRyYW5zZm9ybUFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmEK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIGJvb2wgR3Jh
cGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJhbWVW
YWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIFBsYXRmb3Jt
Q0FBbmltYXRpb24qIGJhc2ljQW5pbSwgaW50IGZ1bmN0aW9uSW5kZXgsIGludCBpbnRlcm5hbEZp
bHRlclByb3BlcnR5SW5kZXgpCiB7CiAgICAgQVNTRVJUKHZhbHVlTGlzdC5zaXplKCkgPT0gMik7
CkBAIC0yNzY4LDcgKzI3NDUsNiBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0RmlsdGVyQW5p
bWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZQogCiAgICAgcmV0
dXJuIHRydWU7CiB9Ci0jZW5kaWYKIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnN1c3BlbmRBbmlt
YXRpb25zKGRvdWJsZSB0aW1lKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRleCBiMjA0ZjRjM2ZkN2JiODU2ZTNj
MWFiZTExOGZhMTFiMzk4OWJhNmM4Li42NjBiZWE0MTRiNzM0ZjljNGIxZDMzYzliNmMyMTkzMjAy
ZDY5ZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuaApAQCAtMTAyLDEwICsxMDIsOCBAQCBwdWJsaWM6CiAgICAgLy8g
cmV0dXJuIHRydWUgaWYgd2Ugc3RhcnRlZCBhbiBhbmltYXRpb24KICAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIHZvaWQgc2V0T3BhY2l0eShmbG9hdCkgb3ZlcnJpZGU7CiAKLSNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBib29sIHNldEZpbHRlcnMo
Y29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBmaWx0
ZXJzQ2FuQmVDb21wb3NpdGVkKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKTsKLSNlbmRpZgogCiAj
aWYgRU5BQkxFKENTU19DT01QT1NJVElORykKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZv
aWQgc2V0QmxlbmRNb2RlKEJsZW5kTW9kZSkgb3ZlcnJpZGU7CkBAIC0yMDMsMTAgKzIwMSw3IEBA
IHByaXZhdGU6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGxheWVyRGlkRGlzcGxheShQbGF0
Zm9ybUNBTGF5ZXIqKTsKICAgICB2b2lkIHVwZGF0ZU9wYWNpdHlPbkxheWVyKCk7Ci0gICAgCi0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHZvaWQgdXBkYXRlRmlsdGVycygpOwotI2VuZGlm
CiAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIHZvaWQgdXBkYXRlQmxlbmRNb2Rl
KCk7CkBAIC0yMzAsOSArMjI1LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgY3JlYXRlQW5pbWF0
aW9uRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlv
biosIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHRpbWVPZmZzZXQpOwogICAg
IGJvb2wgY3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJh
bWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5h
bWUsIGRvdWJsZSB0aW1lT2Zmc2V0LCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUpOwotI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKICAgICBib29sIGNyZWF0ZUZpbHRlckFuaW1hdGlvbnNGcm9tS2V5
ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgQW5pbWF0aW9uKiwgY29uc3Qg
U3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgdGltZU9mZnNldCk7Ci0jZW5kaWYKIAogICAg
IC8vIFJldHVybiBhdXRvcmVsZWFzZWQgYW5pbWF0aW9uICh1c2UgUmV0YWluUHRyPykKICAgICBQ
YXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZUJhc2ljQW5pbWF0aW9uKGNvbnN0
IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhZGRpdGl2ZSk7CkBAIC0y
NDcsMTAgKzI0MCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzZXRUcmFuc2Zvcm1BbmltYXRpb25F
bmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24qLCBQbGF0
Zm9ybUNBQW5pbWF0aW9uKiwgaW50IGZ1bmN0aW9uSW5kZXgsIFRyYW5zZm9ybU9wZXJhdGlvbjo6
T3BlcmF0aW9uVHlwZSwgYm9vbCBpc01hdHJpeEFuaW1hdGlvbiwgY29uc3QgRmxvYXRTaXplJiBi
b3hTaXplKTsKICAgICBib29sIHNldFRyYW5zZm9ybUFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBL
ZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIFBsYXRmb3JtQ0FBbmltYXRpb24q
LCBpbnQgZnVuY3Rpb25JbmRleCwgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlLCBi
b29sIGlzTWF0cml4QW5pbWF0aW9uLCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUpOwogICAgIAot
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBib29sIHNldEZpbHRlckFuaW1hdGlvbkVuZHBv
aW50cyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIFBsYXRmb3Jt
Q0FBbmltYXRpb24qLCBpbnQgZnVuY3Rpb25JbmRleCwgaW50IGludGVybmFsRmlsdGVyUHJvcGVy
dHlJbmRleCk7CiAgICAgYm9vbCBzZXRGaWx0ZXJBbmltYXRpb25LZXlmcmFtZXMoY29uc3QgS2V5
ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24qLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiwg
aW50IGZ1bmN0aW9uSW5kZXgsIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgsIEZpbHRl
ck9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSk7Ci0jZW5kaWYKIAogICAgIGJvb2wgaXNSdW5uaW5n
VHJhbnNmb3JtQW5pbWF0aW9uKCkgY29uc3Q7CiAKQEAgLTQwNiw5ICszOTcsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgbW92ZU9yQ29weUFuaW1hdGlvbnMoTW92ZU9yQ29weSwgUGxhdGZvcm1DQUxh
eWVyICogZnJvbUxheWVyLCBQbGF0Zm9ybUNBTGF5ZXIgKiB0b0xheWVyKTsKICAgICAKICAgICBi
b29sIGFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0
JiwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyosIGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0
cmluZyYgYW5pbWF0aW9uTmFtZSwgY29uc3QgRmxvYXRTaXplJiBib3hTaXplLCBpbnQgYW5pbWF0
aW9uSW5kZXgsIGRvdWJsZSB0aW1lT2Zmc2V0LCBib29sIGlzTWF0cml4QW5pbWF0aW9uKTsKLSNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBhcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0
aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGNv
bnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgaW50IGFuaW1hdGlv
bkluZGV4LCBkb3VibGUgdGltZU9mZnNldCk7Ci0jZW5kaWYKIAogICAgIGVudW0gTGF5ZXJDaGFu
Z2UgewogICAgICAgICBOb0NoYW5nZSA9IDAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgKaW5kZXggMDViNDMw
YWNjMjU0ZGFmNjI3ODRiMTk4YjNjOGRhNWRiNGU5MzZjMi4uYTViYTY5M2I0YzM3OGU3NWQwN2Ez
ZjFjMzY1NGUzNGI3YjczMjU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaApAQCAtOTMsMTggKzkzLDE0
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFs
dWUoY29uc3QgRmxvYXRQb2ludDNEJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFs
dWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSA9IDA7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQog
ICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50
IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgPSAwOwotI2VuZGlmCiAgICAgdmlydHVhbCB2
b2lkIGNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKSA9IDA7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShmbG9hdCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYpID0gMDsKLSNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3Qg
RmlsdGVyT3BlcmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgPSAwOwot
I2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKikgPSAwOwogCiAgICAgLy8gS2V5ZnJhbWUtYW5pbWF0aW9uIHByb3BlcnRpZXMu
CkBAIC0xMTIsOSArMTA4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMo
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+JikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYp
ID0gMDsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVl
cyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiwgaW50IGludGVybmFsRmls
dGVyUHJvcGVydHlJbmRleCkgPSAwOwotI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGNvcHlWYWx1
ZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZv
aWQgc2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYpID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FGaWx0ZXJzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBRmlsdGVycy5oCmlu
ZGV4IDg4NjA2ODc4ODc4MThlMzA2YTBlODgzZTgxYzU3MGNmYWU4NTI1OTQuLjdjZGIzZDIyOTli
ZjZmZjRhOWIzMjg4NWY0ZGE5ZWJhYTk3ZTY5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FGaWx0ZXJzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUZpbHRlcnMuaApAQCAtMjYsOCAr
MjYsNiBAQAogI2lmbmRlZiBQbGF0Zm9ybUNBRmlsdGVyc19oCiAjZGVmaW5lIFBsYXRmb3JtQ0FG
aWx0ZXJzX2gKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2luY2x1ZGUgIkZpbHRlck9w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1MYXllci5oIgpAQCAtNjQsNiArNjIsNCBAQCBwdWJsaWM6CiAKIH0KIAotI2VuZGlmIC8vIEVO
QUJMRShDU1NfRklMVEVSUykKLQogI2VuZGlmIC8vIFBsYXRmb3JtQ0FGaWx0ZXJzX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVy
LmgKaW5kZXggNWMwYTg2MzNmMjc3MTJiZGU4ZDFhNDc3YjUzNzA3MDNhZDQ0MmIyYi4uMzEwZTkw
MTYxNjdjODQ5ODU2MDRhODBmMjczZGVmMWFjMThmNjkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKQEAgLTE4MSwx
MSArMTgxLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBmbG9hdCBvcGFjaXR5KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFjaXR5KGZsb2F0KSA9IDA7Ci0KLSNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2b2lkIHNldEZpbHRlcnMoY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29weUZpbHRlcnNGcm9tKGNvbnN0
IFBsYXRmb3JtQ0FMYXllciopID0gMDsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19DT01QT1NJ
VElORykKICAgICB2aXJ0dWFsIHZvaWQgc2V0QmxlbmRNb2RlKEJsZW5kTW9kZSkgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3Jt
Q0FBbmltYXRpb25NYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmgKaW5kZXggNGYwMDU0YzY1YTYxNTAxNjNlNmI2ZjFk
ZTNkYWMwY2I4ZjkyNDZmOS4uM2YzNzBiNTY2Zjg1MjBhOGNhM2ViMzI0Nzc5ZDEzNDUwNDhiNmEx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Bs
YXRmb3JtQ0FBbmltYXRpb25NYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oCkBAIC05OSwxOCArOTksMTQgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXgmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZh
bHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRG
cm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKLSNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBGaWx0ZXJPcGVy
YXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSBvdmVycmlkZTsKLSNlbmRp
ZgogICAgIHZpcnR1YWwgdm9pZCBjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5p
bWF0aW9uKikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShmbG9hdCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXgmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1
ZShjb25zdCBGbG9hdFBvaW50M0QmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9W
YWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOwotI2lmIEVOQUJMRShDU1NfRklM
VEVSUykKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24q
LCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSBvdmVycmlkZTsKLSNlbmRpZgogICAg
IHZpcnR1YWwgdm9pZCBjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiop
IG92ZXJyaWRlOwogCiAgICAgLy8gS2V5ZnJhbWUtYW5pbWF0aW9uIHByb3BlcnRpZXMuCkBAIC0x
MTgsOSArMTE0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb2xv
cj4mKSBvdmVycmlkZTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiwgaW50IGlu
dGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7Ci0jZW5kaWYKICAgICB2aXJ0dWFs
IHZvaWQgY29weVZhbHVlc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRl
OwogCiAgICAgdmlydHVhbCB2b2lkIHNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0KaW5kZXggZDhiNDNkNjcy
MGM0OTMyMjA5MWI2ZjIxOWI4YzI1MzIxZDBlZWIwYy4uMmJjNjVkYzkwYzMzYjYwNDc4NGMwNTVk
Y2NiMTkyZGNjMTc1Njg0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0KQEAg
LTM4NywxMyArMzg3LDExIEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0RnJvbVZh
bHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNp
Y0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRGcm9tVmFsdWU6YXJyYXldOwogfQog
Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpz
ZXRGcm9tVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBvcGVyYXRpb24sIGludCBpbnRlcm5h
bEZpbHRlclByb3BlcnR5SW5kZXgpCiB7CiAgICAgUmV0YWluUHRyPGlkPiB2YWx1ZSA9IFBsYXRm
b3JtQ0FGaWx0ZXJzOjpmaWx0ZXJWYWx1ZUZvck9wZXJhdGlvbihvcGVyYXRpb24sIGludGVybmFs
RmlsdGVyUHJvcGVydHlJbmRleCk7CiAgICAgW3N0YXRpY19jYXN0PENBQmFzaWNBbmltYXRpb24q
PihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0RnJvbVZhbHVlOnZhbHVlLmdldCgpXTsKIH0KLSNlbmRp
ZgogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0
IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQogewpAQCAtNDQ2LDEzICs0NDQsMTEgQEAgdm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9y
JiB2YWx1ZSkKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9u
LmdldCgpKSBzZXRUb1ZhbHVlOmFycmF5XTsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykK
IHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0VG9WYWx1ZShjb25zdCBGaWx0ZXJPcGVy
YXRpb24qIG9wZXJhdGlvbiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkKIHsKICAg
ICBSZXRhaW5QdHI8aWQ+IHZhbHVlID0gUGxhdGZvcm1DQUZpbHRlcnM6OmZpbHRlclZhbHVlRm9y
T3BlcmF0aW9uKG9wZXJhdGlvbiwgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KTsKICAgICBb
c3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRUb1Zh
bHVlOnZhbHVlLmdldCgpXTsKIH0KLSNlbmRpZgogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25N
YWM6OmNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsK
QEAgLTUyNiw3ICs1MjIsNiBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFZhbHVl
cyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKICAgICBbc3RhdGljX2Nhc3Q8
Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRWYWx1ZXM6YXJyYXld
OwogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+PiYgdmFs
dWVzLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KQogewogICAgIGlmIChhbmltYXRp
b25UeXBlKCkgIT0gS2V5ZnJhbWUpCkBAIC01NDAsNyArNTM1LDYgQEAgdm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uTWFjOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRp
b24+PiYgdmEKICAgICB9CiAgICAgW3N0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPiht
X2FuaW1hdGlvbi5nZXQoKSkgc2V0VmFsdWVzOmFycmF5XTsKIH0KLSNlbmRpZgogCiB2b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb25NYWM6OmNvcHlWYWx1ZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmlt
YXRpb24qIHZhbHVlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FGaWx0ZXJzTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FGaWx0ZXJzTWFjLm1tCmluZGV4IDYxYTky
MzA2NGFkNjdhMTQ0YzMyZmFkZGU1ZTljYmEyNDJhNjBjOTMuLjI0OGY5ZWQ2NTY4M2IzNjgyMGIy
ZmFmZDM5OTMwYTA0YTkzYWM0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBRmlsdGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUZpbHRlcnNNYWMubW0KQEAg
LTI1LDggKzI1LDYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgRU5BQkxFKENTU19G
SUxURVJTKQotCiAjaW1wb3J0ICJQbGF0Zm9ybUNBRmlsdGVycy5oIgogI2ltcG9ydCAiQmxvY2tF
eGNlcHRpb25zLmgiCiAjaW1wb3J0ICJGbG9hdENvbnZlcnNpb24uaCIKQEAgLTY2OSw1ICs2Njcs
MyBAQCBjb25zdCBjaGFyKiBQbGF0Zm9ybUNBRmlsdGVyczo6YW5pbWF0ZWRGaWx0ZXJQcm9wZXJ0
eU5hbWUoRmlsdGVyT3BlcmF0aW9uOjpPcGVyYQogICAgIH0KICNlbmRpZgogfQotCi0jZW5kaWYg
Ly8gRU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oCmluZGV4IDU0OWIw
OTJiNmU1NDM1ODgxZDExZjA1NzNkMWMwODg5MDg2MGQ5NDMuLjY1NGViNDg1Mjg1ODE5ODM2MGY0
ODlkODQ0YzE0OWJiOWEzMzQyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmgKQEAgLTExNywx
MiArMTE3LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBmbG9hdCBvcGFjaXR5KCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldE9wYWNpdHkoZmxvYXQpIG92ZXJyaWRlOwot
Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHZpcnR1YWwgdm9pZCBzZXRGaWx0ZXJzKGNv
bnN0IEZpbHRlck9wZXJhdGlvbnMmKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgYm9vbCBmaWx0ZXJzQ2FuQmVDb21wb3NpdGVkKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgY29weUZpbHRlcnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FMYXllciop
IG92ZXJyaWRlOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIHZp
cnR1YWwgdm9pZCBzZXRCbGVuZE1vZGUoQmxlbmRNb2RlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1D
QUxheWVyTWFjLm1tCmluZGV4IDgzNzdlOTU0OWJiZWUyMjUwMGRmZjJlYTJhYmU5MWJmNWFhM2Mz
YTYuLmFhZGM2MTFkMmY5ZjMyNzI4MjViNGIwZThhNTA0YTM0Mjg5YzhmOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRm
b3JtQ0FMYXllck1hYy5tbQpAQCAtMzIwLDkgKzMyMCw3IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1D
QUxheWVyPiBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmNsb25lKFBsYXRmb3JtQ0FMYXllckNsaWVudCog
b3duCiAgICAgbmV3TGF5ZXItPnNldE9wYXF1ZShpc09wYXF1ZSgpKTsKICAgICBuZXdMYXllci0+
c2V0QmFja2dyb3VuZENvbG9yKGJhY2tncm91bmRDb2xvcigpKTsKICAgICBuZXdMYXllci0+c2V0
Q29udGVudHNTY2FsZShjb250ZW50c1NjYWxlKCkpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykK
ICAgICBuZXdMYXllci0+Y29weUZpbHRlcnNGcm9tKHRoaXMpOwotI2VuZGlmCiAgICAgbmV3TGF5
ZXItPnVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UoY3VzdG9tQXBwZWFyYW5jZSgpKTsKIAogICAgIGlm
ICh0eXBlID09IExheWVyVHlwZUFWUGxheWVyTGF5ZXIpIHsKQEAgLTcxMCw3ICs3MDgsNiBAQCB2
b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0T3BhY2l0eShmbG9hdCB2YWx1ZSkKICAgICBFTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lk
IFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0RmlsdGVycyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBm
aWx0ZXJzKQogewogICAgIFBsYXRmb3JtQ0FGaWx0ZXJzOjpzZXRGaWx0ZXJzT25MYXllcihwbGF0
Zm9ybUxheWVyKCksIGZpbHRlcnMpOwpAQCAtNzQ2LDcgKzc0Myw2IEBAIGJvb2wgUGxhdGZvcm1D
QUxheWVyTWFjOjpmaWx0ZXJzQ2FuQmVDb21wb3NpdGVkKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMm
IGZpbHRlcnMpCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKENT
U19DT01QT1NJVElORykKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRCbGVuZE1vZGUoQmxl
bmRNb2RlIGJsZW5kTW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcAppbmRl
eCBjYzFjMjZlMTc0MTcxMTUwNTMyN2ZhM2Y5NDNlZGZiYmYxZTY0MmMyLi45OTViZGQ2NWM3OGI4
MTBhYTllOWExZDY1NDM4NGRkYTYwYmMzMjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRp
b25XaW4uY3BwCkBAIC0zNzQsMTIgKzM3NCwxMCBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25X
aW46OnNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCiAgICAgQ0FDRkFu
aW1hdGlvblNldEZyb21WYWx1ZShtX2FuaW1hdGlvbi5nZXQoKSwgdi5nZXQoKSk7CiB9CiAKLSNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldEZy
b21WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQpCiB7CiAgICAgLy8gRklYTUU6IEhh
cmR3YXJlIGZpbHRlciBhbmltYXRpb24gbm90IGltcGxlbWVudGVkIG9uIFdpbmRvd3MKIH0KLSNl
bmRpZgogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OmNvcHlGcm9tVmFsdWVGcm9tKGNv
bnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQogewpAQCAtNDI3LDEyICs0MjUsMTAgQEAg
dm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNv
bG9yJiB2YWx1ZSkKICAgICBDQUNGQW5pbWF0aW9uU2V0VG9WYWx1ZShtX2FuaW1hdGlvbi5nZXQo
KSwgdi5nZXQoKSk7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW46OnNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50KQog
ewogICAgIC8vIEZJWE1FOiBIYXJkd2FyZSBmaWx0ZXIgYW5pbWF0aW9uIG5vdCBpbXBsZW1lbnRl
ZCBvbiBXaW5kb3dzCiB9Ci0jZW5kaWYKIAogdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpj
b3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7CkBAIC01
MDEsMTIgKzQ5NywxMCBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFZhbHVlcyhj
b25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKICAgICBDQUNGQW5pbWF0aW9uU2V0
VmFsdWVzKG1fYW5pbWF0aW9uLmdldCgpLCBhcnJheS5nZXQoKSk7CiB9CiAKLSNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFZhbHVlcyhjb25z
dCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gPiYsIGludCkKIHsKICAgICAvLyBGSVhN
RTogSGFyZHdhcmUgZmlsdGVyIGFuaW1hdGlvbiBub3QgaW1wbGVtZW50ZWQgb24gV2luZG93cwog
fQotI2VuZGlmCiAKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6Y29weVZhbHVlc0Zyb20o
Y29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmlt
YXRpb25XaW4uaAppbmRleCBkZDJiMTlmNDNiNzQ1MDdhY2E0NTZjYzdjNTE1MzhjNDJjMzM3MThj
Li4wZGFlZjllZTRlYTM3MmNjN2U0NGIyOGQxZTYyZTNlNDVmOWRhY2I3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlv
bldpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0
Zm9ybUNBQW5pbWF0aW9uV2luLmgKQEAgLTg5LDE4ICs4OSwxNCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgRmxvYXRQ
b2ludDNEJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBX
ZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2
aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGludCBpbnRl
cm5hbEZpbHRlclByb3BlcnR5SW5kZXgpIG92ZXJyaWRlOwotI2VuZGlmCiAgICAgdmlydHVhbCB2
b2lkIGNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlk
ZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGZsb2F0KSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IEZsb2F0UG9p
bnQzRCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNv
cmU6OkNvbG9yJikgb3ZlcnJpZGU7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHZpcnR1
YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGludCBpbnRlcm5hbEZp
bHRlclByb3BlcnR5SW5kZXgpIG92ZXJyaWRlOwotI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGNv
cHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CiAKICAg
ICAvLyBLZXlmcmFtZS1hbmltYXRpb24gcHJvcGVydGllcy4KQEAgLTEwOCw5ICsxMDQsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6
VHJhbnNmb3JtYXRpb25NYXRyaXg+Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZh
bHVlcyhjb25zdCBWZWN0b3I8RmxvYXRQb2ludDNEPiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYpIG92ZXJyaWRlOwot
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0
IFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPj4mLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9w
ZXJ0eUluZGV4KSBvdmVycmlkZTsKLSNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBjb3B5VmFsdWVz
RnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFs
IHZvaWQgc2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FG
aWx0ZXJzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBRmlsdGVyc1dpbi5jcHAKaW5kZXggNzhlMTc5ZTNiMTJjM2RiOWNkMDk2YWIxMmEx
Zjc1MGU3NjZmZGE3Ny4uYmViMzk3YjAzZWFkYTIyNWI5ZjZhZWMxMzY2MjVhNTQ3ZWMxZTM0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRm
b3JtQ0FGaWx0ZXJzV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS93aW4vUGxhdGZvcm1DQUZpbHRlcnNXaW4uY3BwCkBAIC0yNCw5ICsyNCw2IEBACiAgKi8K
IAogI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQotCiAjaW5j
bHVkZSAiUGxhdGZvcm1DQUZpbHRlcnMuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBA
IC00Nyw1ICs0NCwzIEBAIGNvbnN0IGNoYXIqIFBsYXRmb3JtQ0FGaWx0ZXJzOjphbmltYXRlZEZp
bHRlclByb3BlcnR5TmFtZShGaWx0ZXJPcGVyYXRpb246Ok9wZXJhCiAgICAgLy8gSGFyZHdhcmUg
ZmlsdGVyIGFuaW1hdGlvbiBub3QgaW1wbGVtZW50ZWQgb24gV2luZG93cy4KICAgICByZXR1cm4g
IiI7CiB9Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5
ZXJXaW4uY3BwCmluZGV4IDE3MDg3ZTY1NjVjZDNkZDhiMGZhZDgxNzllM2VkOTViMWM3ZDdiZDIu
LmZkNmMxYTcxY2JhMGYxOGE2NTBjZDZlNDMxMzIzMTMyYWU2NjhlOGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9y
bUNBTGF5ZXJXaW4uY3BwCkBAIC0xODIsOSArMTgyLDcgQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNB
TGF5ZXI+IFBsYXRmb3JtQ0FMYXllcldpbjo6Y2xvbmUoUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBv
d24KICAgICBuZXdMYXllci0+c2V0T3BhcXVlKGlzT3BhcXVlKCkpOwogICAgIG5ld0xheWVyLT5z
ZXRCYWNrZ3JvdW5kQ29sb3IoYmFja2dyb3VuZENvbG9yKCkpOwogICAgIG5ld0xheWVyLT5zZXRD
b250ZW50c1NjYWxlKGNvbnRlbnRzU2NhbGUoKSk7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQog
ICAgIG5ld0xheWVyLT5jb3B5RmlsdGVyc0Zyb20odGhpcyk7Ci0jZW5kaWYKIAogICAgIHJldHVy
biBuZXdMYXllcjsKIH0KQEAgLTU0NSw4ICs1NDMsNiBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllcldp
bjo6c2V0T3BhY2l0eShmbG9hdCB2YWx1ZSkKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCi0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQotCiB2b2lkIFBsYXRmb3JtQ0FMYXllcldpbjo6c2V0Rmls
dGVycyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJikKIHsKIH0KQEAgLTU1NSw4ICs1NTEsNiBAQCB2
b2lkIFBsYXRmb3JtQ0FMYXllcldpbjo6Y29weUZpbHRlcnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FM
YXllciopCiB7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0KIHZvaWQgUGxh
dGZvcm1DQUxheWVyV2luOjpzZXROYW1lKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgQ0FD
RkxheWVyU2V0TmFtZShtX2xheWVyLmdldCgpLCB2YWx1ZS5jcmVhdGVDRlN0cmluZygpLmdldCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBTGF5ZXJXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaAppbmRleCA0MzhiMjY2MjUyMDQ4MzU2ZTNkMWFkNjZi
OGEwNGVmNDkzZjJjYjNlLi4zYmRhOGY1MDY1Mzc4Mjk2YTY1ZjdkN2ZmYmE1YjYyMTg1NTkzODVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxh
dGZvcm1DQUxheWVyV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oCkBAIC0xMDksMTEgKzEwOSw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGZsb2F0IG9wYWNpdHkoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0T3BhY2l0eShmbG9hdCkgb3ZlcnJpZGU7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiAgICAgdmlydHVhbCB2b2lkIHNldEZpbHRlcnMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYp
IG92ZXJyaWRlOwogICAgIHN0YXRpYyBib29sIGZpbHRlcnNDYW5CZUNvbXBvc2l0ZWQoY29uc3Qg
RmlsdGVyT3BlcmF0aW9ucyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGNv
cHlGaWx0ZXJzRnJvbShjb25zdCBQbGF0Zm9ybUNBTGF5ZXIqKSBvdmVycmlkZTsKLSNlbmRpZgog
CiAgICAgdmlydHVhbCB2b2lkIHNldE5hbWUoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
T3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyT3BlcmF0aW9uLmNwcAppbmRleCBkODdmMDY5NjU1NGFjOTA2YmNkNzA0YjY4NTk2ZmJj
OTY2ZTgzYmQzLi5mNWVkNzMyODRiMjJmMTRiNjdkZmJiMTBjNTNmYzNkODgwNjkwMjI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9w
ZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GaWx0ZXJPcGVyYXRpb24uY3BwCkBAIC0yNCw4ICsyNCw2IEBACiAgKi8KIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogI2luY2x1ZGUgIkZpbHRlck9w
ZXJhdGlvbi5oIgogCiAjaW5jbHVkZSAiQW5pbWF0aW9uVXRpbGl0aWVzLmgiCkBAIC0xOTUsNSAr
MTkzLDMgQEAgUGFzc1JlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IERyb3BTaGFkb3dGaWx0ZXJPcGVy
YXRpb246OmJsZW5kKGNvbnN0IEZpbHRlck9wZXJhdGkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmgK
aW5kZXggMGJjODRkYTgxZjYxNDQ1OTc5ZWY3MzYzMmM0MWIxMDdkYmEzNWNiZi4uYTE4ZDk5NWJi
ZDcwMjUzYzc1MWFhYzc0M2IxYTI4MzM2NWE2MDVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5oCkBA
IC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEZpbHRlck9wZXJhdGlvbl9oCiAjZGVmaW5lIEZpbHRl
ck9wZXJhdGlvbl9oCiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0KICNpbmNsdWRlICJDb2xv
ci5oIgogI2luY2x1ZGUgIkZpbHRlckVmZmVjdC5oIgogI2luY2x1ZGUgIkxheW91dFNpemUuaCIK
QEAgLTM1OSw2ICszNTcsNCBAQCBGSUxURVJPUEVSQVRJT05fVFlQRV9DQVNUUyhEcm9wU2hhZG93
RmlsdGVyT3BlcmF0aW9uLCB0eXBlKCkgPT0gRmlsdGVyT3BlcmF0aW9uOgogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0KICNlbmRpZiAv
LyBGaWx0ZXJPcGVyYXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5jcHAKaW5kZXggMjU0NTQ2
MTUwMjgxM2E0NzE1ZDBiOTViNjc0NjU5N2M5Y2RlODliNy4uYWY4MjM2NjIzNzEyYTdlNzgyMDNh
YzUzZTA0ZTcyYTY2NDA0N2NjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuY3BwCkBAIC0zMCw4
ICszMCw2IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkxlbmd0aEZ1bmN0aW9u
cy5oIgogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHN0YXRpYyBpbmxpbmUgSW50U2l6ZSBvdXRzZXRTaXplRm9yQmx1cihmbG9hdCBzdGREZXZpYXRp
b24pCkBAIC0xNTQsNSArMTUyLDMgQEAgYm9vbCBGaWx0ZXJPcGVyYXRpb25zOjpoYXNGaWx0ZXJU
aGF0TW92ZXNQaXhlbHMoKSBjb25zdAogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5oCmluZGV4IDcy
MGY2NjVkNmJkMTIyODc3NTAyZmJhZWFlYTRmZjhkYWQwNGRlY2IuLjQyNDY2MGEyY2ZiNDM3Nzdj
YTY1MjJiMWJlMzYzZDA3YjNmMjNmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5oCkBAIC0yNiw4
ICsyNiw2IEBACiAjaWZuZGVmIEZpbHRlck9wZXJhdGlvbnNfaAogI2RlZmluZSBGaWx0ZXJPcGVy
YXRpb25zX2gKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2luY2x1ZGUgIkZpbHRlck9w
ZXJhdGlvbi5oIgogI2luY2x1ZGUgIkludFJlY3RFeHRlbnQuaCIKICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CkBAIC03OCw2ICs3Niw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAotI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2VuZGlmIC8vIEZpbHRlck9w
ZXJhdGlvbnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKaW5k
ZXggOTM1N2EyODc5MWEyOWI1NjM2ZWFmZjJiMGI5MjRiOWM3NWY3NTJlYy4uOGQ2MjRlM2ViNmU4
YjEzMGU1YWNiZDRmNjg1MTBiZmNiODI1ZmZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIuY3BwCkBAIC01NDAsMTAgKzU0MCw4IEBAIHZvaWQgR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXI6OmNvbW1pdExheWVyQ2hhbmdlcygpCiAgICAgaWYgKG1fY2hhbmdlTWFz
ayAmIEJhY2tncm91bmRDb2xvckNoYW5nZSkKICAgICAgICAgbV9sYXllci0+c2V0U29saWRDb2xv
cihzb2xpZENvbG9yKCkpOwogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGlmIChtX2No
YW5nZU1hc2sgJiBGaWx0ZXJDaGFuZ2UpCiAgICAgICAgIG1fbGF5ZXItPnNldEZpbHRlcnMoZmls
dGVycygpKTsKLSNlbmRpZgogCiAgICAgaWYgKG1fY2hhbmdlTWFzayAmIEJhY2tpbmdTdG9yZUNo
YW5nZSkKICAgICAgICAgbV9sYXllci0+c2V0QmFja2luZ1N0b3JlKG1fYmFja2luZ1N0b3JlKTsK
QEAgLTY2NSw3ICs2NjMsNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpyZW1v
dmVBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lKQogICAgIG1fYW5pbWF0aW9u
cy5yZW1vdmUoYW5pbWF0aW9uTmFtZSk7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiBi
b29sIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRGaWx0ZXJzKGNvbnN0IEZpbHRlck9w
ZXJhdGlvbnMmIGZpbHRlcnMpCiB7CiAgICAgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciA9
IG1fbGF5ZXItPnRleHR1cmVNYXBwZXIoKTsKQEAgLTY3NSw3ICs2NzIsNiBAQCBib29sIEdyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRGaWx0ZXJzKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMm
IGZpbHRlcnMpCiAgICAgbm90aWZ5Q2hhbmdlKEZpbHRlckNoYW5nZSk7CiAgICAgcmV0dXJuIEdy
YXBoaWNzTGF5ZXI6OnNldEZpbHRlcnMoZmlsdGVycyk7CiB9Ci0jZW5kaWYKIAogdm9pZCBHcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Rml4ZWRUb1ZpZXdwb3J0KGJvb2wgZml4ZWQpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCmluZGV4IDgyZjhjYWI1ZTlk
ZTQxYmViNjNhMjNkYjkwOTk1OTNkNTJjZDg5M2MuLjdhODJiN2RhNzUyZDU0ODYxMzA5YWQ4YmIw
YjkyODg2ZjQxOGJmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5o
CkBAIC05MSw5ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzU2Nyb2xsYWJsZShib29s
KTsKICAgICBib29sIGlzU2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTY3JvbGxhYmxl
OyB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCBib29sIHNldEZpbHRl
cnMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpOwotI2VuZGlmCiAKICAgICB2b2lkIHNldEZpeGVk
VG9WaWV3cG9ydChib29sKTsKICAgICBib29sIGZpeGVkVG9WaWV3cG9ydCgpIGNvbnN0IHsgcmV0
dXJuIG1fZml4ZWRUb1ZpZXdwb3J0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAppbmRleCBmNDMxMzM5MDQzNjA3
Mjc0Nzk0ZWNmMDI0NWM1MDMyYmE2ZGQxNmM5Li45MGQ0ZTY0OWVkNTM5ODMwNzU2NGUwNzllMTAw
NTY3NGNiNGVhMTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKQEAgLTg3LDkgKzg3LDcgQEAgcHVibGljOgog
ICAgIGlubGluZSBpbnQgbnVtYmVyT2ZCeXRlcygpIGNvbnN0IHsgcmV0dXJuIHNpemUoKS53aWR0
aCgpICogc2l6ZSgpLmhlaWdodCgpICogYnBwKCkgPj4gMzsgfQogICAgIGlubGluZSBib29sIGlz
T3BhcXVlKCkgY29uc3QgeyByZXR1cm4gIShtX2ZsYWdzICYgU3VwcG9ydHNBbHBoYSk7IH0KIAot
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Qml0bWFwVGV4
dHVyZT4gYXBwbHlGaWx0ZXJzKFRleHR1cmVNYXBwZXIqLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25z
JikgeyByZXR1cm4gdGhpczsgfQotI2VuZGlmCiAKIHByb3RlY3RlZDoKICAgICBJbnRTaXplIG1f
Y29udGVudFNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCmluZGV4IDI0ZGVkMWUwN2ZjOWIzMGMw
MWExYmUxMGQxMGU4YWVlMTYyMTg0ODUuLjdlMzU3ODlkYjBkZjE2MWZlZGU2ZDg0ZTI2MmM0YzJi
NWEzMTMyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBAIC0xMjIsOSArMTIyLDcgQEAgcHVi
bGljOgogICAgICAgICAsIHByZXZpb3VzU2Npc3NvclN0YXRlKDApCiAgICAgICAgICwgcHJldmlv
dXNEZXB0aFN0YXRlKDApCiAgICAgICAgICwgc2hhcmVkRGF0YShUZXh0dXJlTWFwcGVyR0xEYXRh
OjpTaGFyZWRHTERhdGE6OmN1cnJlbnRTaGFyZWRHTERhdGEodGhpcy0+Y29udGV4dCkpCi0jaWYg
RU5BQkxFKENTU19GSUxURVJTKQogICAgICAgICAsIGZpbHRlckluZm8oMCkKLSNlbmRpZgogICAg
IHsgfQogCiAgICAgflRleHR1cmVNYXBwZXJHTERhdGEoKTsKQEAgLTE0Myw5ICsxNDEsNyBAQCBw
dWJsaWM6CiAgICAgUmVmUHRyPFNoYXJlZEdMRGF0YT4gc2hhcmVkRGF0YTsKICAgICBSZWZQdHI8
Qml0bWFwVGV4dHVyZT4gY3VycmVudFN1cmZhY2U7CiAgICAgSGFzaE1hcDxjb25zdCB2b2lkKiwg
UGxhdGZvcm0zRE9iamVjdD4gdmJvczsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgY29u
c3QgQml0bWFwVGV4dHVyZUdMOjpGaWx0ZXJJbmZvKiBmaWx0ZXJJbmZvOwotI2VuZGlmCiB9Owog
CiBQbGF0Zm9ybTNET2JqZWN0IFRleHR1cmVNYXBwZXJHTERhdGE6OmdldFN0YXRpY1ZCTyhHQzNE
ZW51bSB0YXJnZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKQpAQCAtMzY3
LDggKzM2Myw2IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3TnVtYmVyKGludCBudW1iZXIs
IGNvbnN0IENvbG9yJiBjb2xvciwgY29uc3QgRmxvYXRQb2luCiAjZW5kaWYKIH0KIAotI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKLQogc3RhdGljIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpP
cHRpb25zIG9wdGlvbnNGb3JGaWx0ZXJUeXBlKEZpbHRlck9wZXJhdGlvbjo6T3BlcmF0aW9uVHlw
ZSB0eXBlLCB1bnNpZ25lZCBwYXNzKQogewogICAgIHN3aXRjaCAodHlwZSkgewpAQCAtNTEyLDcg
KzUwNiw2IEBAIHN0YXRpYyB2b2lkIHByZXBhcmVGaWx0ZXJQcm9ncmFtKFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBGaWx0CiAgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KLSNlbmRpZgogCiB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUoY29uc3QgQml0
bWFwVGV4dHVyZSYgdGV4dHVyZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBmbG9hdCBvcGFjaXR5LCB1bnNpZ25lZCBleHBv
c2VkRWRnZXMpCiB7CkBAIC01MjMsOSArNTE2LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRy
YXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmIHRleHR1cmUsIGNvbnN0IEZsb2F0UmVjdCYK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgY29uc3QgQml0bWFwVGV4dHVyZUdMJiB0ZXh0dXJlR0wg
PSBzdGF0aWNfY2FzdDxjb25zdCBCaXRtYXBUZXh0dXJlR0wmPih0ZXh0dXJlKTsKLSNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCiAgICAgVGVtcG9yYXJ5Q2hhbmdlPGNvbnN0IEJpdG1hcFRleHR1cmVH
TDo6RmlsdGVySW5mbyo+IGZpbHRlckluZm8oZGF0YSgpLmZpbHRlckluZm8sIHRleHR1cmVHTC5m
aWx0ZXJJbmZvKCkpOwotI2VuZGlmCiAKICAgICBkcmF3VGV4dHVyZSh0ZXh0dXJlR0wuaWQoKSwg
dGV4dHVyZUdMLmlzT3BhcXVlKCkgPyAwIDogU2hvdWxkQmxlbmQsIHRleHR1cmVHTC5zaXplKCks
IHRhcmdldFJlY3QsIG1hdHJpeCwgb3BhY2l0eSwgZXhwb3NlZEVkZ2VzKTsKIH0KQEAgLTU0Nyw3
ICs1MzgsNiBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUoUGxhdGZvcm0zRE9i
amVjdCB0ZXh0dXJlLCBGbGFncyBmbGFncywgY29uc3QgSQogICAgICAgICBmbGFncyB8PSBTaG91
bGRBbnRpYWxpYXM7CiAgICAgfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIFJlZlB0
cjxGaWx0ZXJPcGVyYXRpb24+IGZpbHRlciA9IGRhdGEoKS5maWx0ZXJJbmZvID8gZGF0YSgpLmZp
bHRlckluZm8tPmZpbHRlcjogMDsKICAgICBHQzNEdWludCBmaWx0ZXJDb250ZW50VGV4dHVyZUlE
ID0gMDsKIApAQCAtNTU4LDcgKzU0OCw2IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4
dHVyZShQbGF0Zm9ybTNET2JqZWN0IHRleHR1cmUsIEZsYWdzIGZsYWdzLCBjb25zdCBJCiAgICAg
ICAgIGlmIChmaWx0ZXItPmFmZmVjdHNPcGFjaXR5KCkpCiAgICAgICAgICAgICBmbGFncyB8PSBT
aG91bGRCbGVuZDsKICAgICB9Ci0jZW5kaWYKIAogICAgIGlmICh1c2VBbnRpYWxpYXNpbmcgfHwg
b3BhY2l0eSA8IDEpCiAgICAgICAgIGZsYWdzIHw9IFNob3VsZEJsZW5kOwpAQCAtNTY2LDEwICs1
NTUsOCBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUoUGxhdGZvcm0zRE9iamVj
dCB0ZXh0dXJlLCBGbGFncyBmbGFncywgY29uc3QgSQogICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbT4gcHJvZ3JhbTsKICAgICBwcm9ncmFtID0gZGF0YSgpLnNoYXJlZEdMRGF0
YSgpLmdldFNoYWRlclByb2dyYW0ob3B0aW9ucyk7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CiAgICAgaWYgKGZpbHRlcikKICAgICAgICAgcHJlcGFyZUZpbHRlclByb2dyYW0ocHJvZ3JhbS5n
ZXQoKSwgKmZpbHRlci5nZXQoKSwgZGF0YSgpLmZpbHRlckluZm8tPnBhc3MsIHRleHR1cmVTaXpl
LCBmaWx0ZXJDb250ZW50VGV4dHVyZUlEKTsKLSNlbmRpZgogCiAgICAgZHJhd1RleHR1cmVkUXVh
ZFdpdGhQcm9ncmFtKHByb2dyYW0uZ2V0KCksIHRleHR1cmUsIGZsYWdzLCB0ZXh0dXJlU2l6ZSwg
dGFyZ2V0UmVjdCwgbW9kZWxWaWV3TWF0cml4LCBvcGFjaXR5KTsKIH0KQEAgLTg1Nyw3ICs4NDQs
NiBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMoSW1hZ2UqIGltYWdlLCBj
b25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjbwogICAgIHVwZGF0ZUNvbnRlbnRzKGltYWdlRGF0
YSwgdGFyZ2V0UmVjdCwgb2Zmc2V0LCBieXRlc1BlckxpbmUsIHVwZGF0ZUNvbnRlbnRzRmxhZyk7
CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJh
d0ZpbHRlcmVkKGNvbnN0IEJpdG1hcFRleHR1cmUmIHNhbXBsZXIsIGNvbnN0IEJpdG1hcFRleHR1
cmUqIGNvbnRlbnRUZXh0dXJlLCBjb25zdCBGaWx0ZXJPcGVyYXRpb24mIGZpbHRlciwgaW50IHBh
c3MpCiB7CiAgICAgLy8gRm9yIHN0YW5kYXJkIGZpbHRlcnMsIHdlIGFsd2F5cyBkcmF3IHRoZSB3
aG9sZSB0ZXh0dXJlIHdpdGhvdXQgdHJhbnNmb3JtYXRpb25zLgpAQCAtOTEzLDcgKzg5OSw2IEBA
IFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gQml0bWFwVGV4dHVyZUdMOjphcHBseUZpbHRlcnMo
VGV4dHVyZU1hcHBlciogdGV4dHVyZU1hCiAgICAgdGV4bWFwR0wtPmJpbmRTdXJmYWNlKHByZXZp
b3VzU3VyZmFjZS5nZXQoKSk7CiAgICAgcmV0dXJuIHJlc3VsdFN1cmZhY2U7CiB9Ci0jZW5kaWYK
IAogc3RhdGljIGlubGluZSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjcmVhdGVQcm9qZWN0aW9uTWF0
cml4KGNvbnN0IEludFNpemUmIHNpemUsIGJvb2wgbWlycm9yZWQpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdM
LmgKaW5kZXggODMyNDhmODZkMDNhZjJlZmIyYmVkZDFhNWQzOWU2Njc3OWI3ZDYzMC4uMDgyNDNj
YjFjMjBjZDdlYjE0ZDBkYWQ0NDgwMGZlYjE4ODVmYjM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaApA
QCAtNjcsOSArNjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJpdG1hcFRl
eHR1cmU+IGNyZWF0ZVRleHR1cmUoKSBvdmVycmlkZTsKICAgICBpbmxpbmUgR3JhcGhpY3NDb250
ZXh0M0QqIGdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0M0QuZ2V0
KCk7IH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2b2lkIGRyYXdGaWx0ZXJlZChj
b25zdCBCaXRtYXBUZXh0dXJlJiBzb3VyY2VUZXh0dXJlLCBjb25zdCBCaXRtYXBUZXh0dXJlKiBj
b250ZW50VGV4dHVyZSwgY29uc3QgRmlsdGVyT3BlcmF0aW9uJiwgaW50IHBhc3MpOwotI2VuZGlm
CiAKICAgICB2b2lkIHNldEVuYWJsZUVkZ2VEaXN0YW5jZUFudGlhbGlhc2luZyhib29sIGVuYWJs
ZWQpIHsgbV9lbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxpYXNpbmcgPSBlbmFibGVkOyB9CiAKQEAg
LTE1NSw3ICsxNTMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRz
KGNvbnN0IHZvaWQqLCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IEludFBvaW50JiBzb3Vy
Y2VPZmZzZXQsIGludCBieXRlc1BlckxpbmUsIFVwZGF0ZUNvbnRlbnRzRmxhZyk7CiAgICAgdmly
dHVhbCBib29sIGlzQmFja2VkQnlPcGVuR0woKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1
cmU+IGFwcGx5RmlsdGVycyhUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYp
IG92ZXJyaWRlOwogICAgIHN0cnVjdCBGaWx0ZXJJbmZvIHsKICAgICAgICAgUmVmUHRyPEZpbHRl
ck9wZXJhdGlvbj4gZmlsdGVyOwpAQCAtMTY5LDcgKzE2Niw2IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIHsgfQogICAgIH07CiAgICAgY29uc3QgRmlsdGVySW5mbyogZmlsdGVySW5mbygpIGNvbnN0
IHsgcmV0dXJuICZtX2ZpbHRlckluZm87IH0KLSNlbmRpZgogCiBwcml2YXRlOgogICAgIHZvaWQg
dXBkYXRlQ29udGVudHNOb1N3aXp6bGUoY29uc3Qgdm9pZCosIGNvbnN0IEludFJlY3QmIHRhcmdl
dCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5dGVzUGVyTGluZSwgdW5zaWdu
ZWQgYnl0ZXNQZXJQaXhlbCA9IDQsIFBsYXRmb3JtM0RPYmplY3QgZ2xGb3JtYXQgPSBHcmFwaGlj
c0NvbnRleHQzRDo6UkdCQSk7CkBAIC0xOTAsOSArMTg2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGNsZWFySWZOZWVkZWQoKTsKICAgICB2b2lkIGNyZWF0ZUZib0lmTmVlZGVkKCk7CiAKLSNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgRmlsdGVySW5mbyBtX2ZpbHRlckluZm87Ci0jZW5kaWYK
IAogICAgIGZyaWVuZCBjbGFzcyBUZXh0dXJlTWFwcGVyR0w7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckltYWdlQnVmZmVyLmNwcAppbmRleCA4YjhlZjE2NDBlMGQyZmQyOTkwYmQxMzZjNzE2
OWI3MzViZmQ5ZTg3Li4zYmVlYjlmNjMwNjc4MzMyMzgzOWNkNTVjMmRlM2I0MjIyYjMyYWM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckltYWdlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmNwcApAQCAtMTUwLDEzICsxNTAs
MTEgQEAgdm9pZCBUZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXI6OmRyYXdOdW1iZXIoaW50IC8qIG51
bWJlciAqLywgY29uc3QgQ29sb3ImLCBjb25zdAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
LSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1h
cFRleHR1cmVJbWFnZUJ1ZmZlcjo6YXBwbHlGaWx0ZXJzKFRleHR1cmVNYXBwZXIqLCBjb25zdCBG
aWx0ZXJPcGVyYXRpb25zJikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1
cm4gdGhpczsKIH0KLSNlbmRpZgogCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1h
Z2VCdWZmZXIuaAppbmRleCA4MmRmMDRlODZmMzEyNWY5N2IxNmIxYzRmZmRmNzgyZGNmNGJlNTlk
Li4wMTc3ZGRiN2UxNzA1MjBiZTg0YjE4NDMxNjI0YWM0OWIwZGVlZTYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdl
QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5oCkBAIC0zNyw5ICszNyw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoSW1hZ2UqLCBjb25zdCBJbnRSZWN0JiwgY29uc3Qg
SW50UG9pbnQmLCBVcGRhdGVDb250ZW50c0ZsYWcpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVD
b250ZW50cyhUZXh0dXJlTWFwcGVyKiwgR3JhcGhpY3NMYXllciosIGNvbnN0IEludFJlY3QmIHRh
cmdldCwgY29uc3QgSW50UG9pbnQmIG9mZnNldCwgVXBkYXRlQ29udGVudHNGbGFnKTsKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCosIGNvbnN0IEludFJlY3QmIHRh
cmdldCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5dGVzUGVyTGluZSwgVXBk
YXRlQ29udGVudHNGbGFnKTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgUGFzc1JlZlB0
cjxCaXRtYXBUZXh0dXJlPiBhcHBseUZpbHRlcnMoVGV4dHVyZU1hcHBlciosIGNvbnN0IEZpbHRl
ck9wZXJhdGlvbnMmKTsKLSNlbmRpZgogCiBwcml2YXRlOgogICAgIEJpdG1hcFRleHR1cmVJbWFn
ZUJ1ZmZlcigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCA2MDAzOTg3ZDBk
N2Q1YmFkZTNlNmEyMGY4ZmVkYWQ1MTM4NjkxYjBlLi5jOTc1ODJiM2M0NWZkN2QzZGM0NzFiNTgx
OGUzZDBjYTJmZWEwMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtMjM3LDEy
ICsyMzcsMTAgQEAgVHJhbnNmb3JtYXRpb25NYXRyaXggVGV4dHVyZU1hcHBlckxheWVyOjpyZXBs
aWNhVHJhbnNmb3JtKCkKICAgICByZXR1cm4gVHJhbnNmb3JtYXRpb25NYXRyaXgobV9zdGF0ZS5y
ZXBsaWNhTGF5ZXItPm1fY3VycmVudFRyYW5zZm9ybS5jb21iaW5lZCgpKS5tdWx0aXBseShtX2N1
cnJlbnRUcmFuc2Zvcm0uY29tYmluZWQoKS5pbnZlcnNlKCkpOwogfQogCi0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQogdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldEFuaW1hdGVkRmlsdGVycyhj
b25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogewogICAgIG1fY3VycmVudEZpbHRlcnMg
PSBmaWx0ZXJzOwogfQotI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHJlc29sdmVPdmVybGFwcyhSZWdp
b24gbmV3UmVnaW9uLCBSZWdpb24mIG92ZXJsYXBSZWdpb24sIFJlZ2lvbiYgbm9uT3ZlcmxhcFJl
Z2lvbikKIHsKQEAgLTI2NSw3ICsyNjMsNiBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6Y29t
cHV0ZU92ZXJsYXBSZWdpb25zKFJlZ2lvbiYgb3ZlcmxhcFJlZ2lvbiwgUmVnaW9uJiBubwogICAg
IGVsc2UgaWYgKG1fY29udGVudHNMYXllciB8fCBtX3N0YXRlLnNvbGlkQ29sb3IuYWxwaGEoKSkK
ICAgICAgICAgYm91bmRpbmdSZWN0ID0gbV9zdGF0ZS5jb250ZW50c1JlY3Q7CiAKLSNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYgKG1fY3VycmVudEZpbHRlcnMuaGFzT3V0c2V0cygpKSB7
CiAgICAgICAgIEZpbHRlck91dHNldHMgb3V0c2V0cyA9IG1fY3VycmVudEZpbHRlcnMub3V0c2V0
cygpOwogICAgICAgICBJbnRSZWN0IHVuZmlsdGVyZWRUYXJnZXRSZWN0KGJvdW5kaW5nUmVjdCk7
CkBAIC0yNzMsNyArMjcwLDYgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmNvbXB1dGVPdmVy
bGFwUmVnaW9ucyhSZWdpb24mIG92ZXJsYXBSZWdpb24sIFJlZ2lvbiYgbm8KICAgICAgICAgYm91
bmRpbmdSZWN0LmV4cGFuZChvdXRzZXRzLmxlZnQoKSArIG91dHNldHMucmlnaHQoKSwgb3V0c2V0
cy50b3AoKSArIG91dHNldHMuYm90dG9tKCkpOwogICAgICAgICBib3VuZGluZ1JlY3QudW5pdGUo
dW5maWx0ZXJlZFRhcmdldFJlY3QpOwogICAgIH0KLSNlbmRpZgogCiAgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggcmVwbGljYU1hdHJpeDsKICAgICBpZiAobV9zdGF0ZS5yZXBsaWNhTGF5ZXIpIHsK
QEAgLTM4Nyw5ICszODMsNyBAQCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IFRleHR1cmVNYXBw
ZXJMYXllcjo6cGFpbnRJbnRvU3VyZmFjZShjb25zdCBUZXh0dXJlTWFwcAogICAgIHBhaW50U2Vs
ZkFuZENoaWxkcmVuKHBhaW50T3B0aW9ucyk7CiAgICAgaWYgKG1fc3RhdGUubWFza0xheWVyKQog
ICAgICAgICBtX3N0YXRlLm1hc2tMYXllci0+YXBwbHlNYXNrKG9wdGlvbnMpOwotI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKICAgICBzdXJmYWNlID0gc3VyZmFjZS0+YXBwbHlGaWx0ZXJzKG9wdGlv
bnMudGV4dHVyZU1hcHBlciwgbV9jdXJyZW50RmlsdGVycyk7Ci0jZW5kaWYKICAgICBvcHRpb25z
LnRleHR1cmVNYXBwZXItPmJpbmRTdXJmYWNlKHN1cmZhY2UuZ2V0KCkpOwogICAgIHJldHVybiBz
dXJmYWNlOwogfQpAQCAtNjA1LDEyICs1OTksMTAgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6
OnNldFNvbGlkQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIG1fc3RhdGUuc29saWRDb2xv
ciA9IGNvbG9yOwogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogdm9pZCBUZXh0dXJlTWFw
cGVyTGF5ZXI6OnNldEZpbHRlcnMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykKIHsK
ICAgICBtX3N0YXRlLmZpbHRlcnMgPSBmaWx0ZXJzOwogfQotI2VuZGlmCiAKIHZvaWQgVGV4dHVy
ZU1hcHBlckxheWVyOjpzZXREZWJ1Z1Zpc3VhbHMoYm9vbCBzaG93RGVidWdCb3JkZXJzLCBjb25z
dCBDb2xvciYgZGVidWdCb3JkZXJDb2xvciwgZmxvYXQgZGVidWdCb3JkZXJXaWR0aCwgYm9vbCBz
aG93UmVwYWludENvdW50ZXIpCiB7CkBAIC02NzMsMTAgKzY2NSw4IEBAIHZvaWQgVGV4dHVyZU1h
cHBlckxheWVyOjpzeW5jQW5pbWF0aW9ucygpCiAgICAgaWYgKCFtX2FuaW1hdGlvbnMuaGFzQWN0
aXZlQW5pbWF0aW9uc09mVHlwZShBbmltYXRlZFByb3BlcnR5T3BhY2l0eSkpCiAgICAgICAgIG1f
Y3VycmVudE9wYWNpdHkgPSBtX3N0YXRlLm9wYWNpdHk7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiAgICAgaWYgKCFtX2FuaW1hdGlvbnMuaGFzQWN0aXZlQW5pbWF0aW9uc09mVHlwZShBbmlt
YXRlZFByb3BlcnR5V2Via2l0RmlsdGVyKSkKICAgICAgICAgbV9jdXJyZW50RmlsdGVycyA9IG1f
c3RhdGUuZmlsdGVyczsKLSNlbmRpZgogfQogCiBib29sIFRleHR1cmVNYXBwZXJMYXllcjo6aXNB
bmNlc3RvckZpeGVkVG9WaWV3cG9ydCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKaW5k
ZXggMGJmOTYyMTM5N2RiMDA0YWNmN2Q3NjJiYjM3MDE0M2E4MjI3MDBlMC4uMTQwYTBlZDJjNzdj
ZDU2MzY5Y2Y4OGNlNzYyOGYyOTViYTY5Nzc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaApA
QCAtMTAxLDE3ICsxMDEsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U29saWRDb2xvcihjb25z
dCBDb2xvciYpOwogICAgIHZvaWQgc2V0Q29udGVudHNUaWxlU2l6ZShjb25zdCBGbG9hdFNpemUm
KTsKICAgICB2b2lkIHNldENvbnRlbnRzVGlsZVBoYXNlKGNvbnN0IEZsb2F0UG9pbnQmKTsKLSNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdm9pZCBzZXRGaWx0ZXJzKGNvbnN0IEZpbHRlck9w
ZXJhdGlvbnMmKTsKLSNlbmRpZgogCiAgICAgYm9vbCBoYXNGaWx0ZXJzKCkgY29uc3QKICAgICB7
Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgICAgICByZXR1cm4gIW1fY3VycmVudEZpbHRl
cnMuaXNFbXB0eSgpOwotI2Vsc2UKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiAgICAg
fQogCiAgICAgdm9pZCBzZXREZWJ1Z1Zpc3VhbHMoYm9vbCBzaG93RGVidWdCb3JkZXJzLCBjb25z
dCBDb2xvciYgZGVidWdCb3JkZXJDb2xvciwgZmxvYXQgZGVidWdCb3JkZXJXaWR0aCwgYm9vbCBz
aG93UmVwYWludENvdW50ZXIpOwpAQCAtMTczLDkgKzE2Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8g
R3JhcGhpY3NMYXllckFuaW1hdGlvbjo6Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIHNldEFuaW1h
dGVkVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHNldEFuaW1hdGVkT3BhY2l0eShmbG9hdCkgb3ZlcnJpZGU7Ci0jaWYgRU5B
QkxFKENTU19GSUxURVJTKQogICAgIHZpcnR1YWwgdm9pZCBzZXRBbmltYXRlZEZpbHRlcnMoY29u
c3QgRmlsdGVyT3BlcmF0aW9ucyYpIG92ZXJyaWRlOwotI2VuZGlmCiAKICAgICBib29sIGlzVmlz
aWJsZSgpIGNvbnN0OwogICAgIGVudW0gQ29udGVudHNMYXllckNvdW50IHsKQEAgLTE5OCw5ICsx
OTAsNyBAQCBwcml2YXRlOgogICAgIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyKiBtX2NvbnRl
bnRzTGF5ZXI7CiAgICAgR3JhcGhpY3NMYXllclRyYW5zZm9ybSBtX2N1cnJlbnRUcmFuc2Zvcm07
CiAgICAgZmxvYXQgbV9jdXJyZW50T3BhY2l0eTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAg
ICAgRmlsdGVyT3BlcmF0aW9ucyBtX2N1cnJlbnRGaWx0ZXJzOwotI2VuZGlmCiAgICAgZmxvYXQg
bV9jZW50ZXJaOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgSGl0VGVzdENvbmRpdGlvbj4gVGV4dHVy
ZU1hcHBlckxheWVyKiBoaXRUZXN0KGNvbnN0IEZsb2F0UG9pbnQmLCBIaXRUZXN0Q29uZGl0aW9u
KTsKQEAgLTIyMiw5ICsyMTIsNyBAQCBwcml2YXRlOgogICAgICAgICBUZXh0dXJlTWFwcGVyTGF5
ZXIqIG1hc2tMYXllcjsKICAgICAgICAgVGV4dHVyZU1hcHBlckxheWVyKiByZXBsaWNhTGF5ZXI7
CiAgICAgICAgIENvbG9yIHNvbGlkQ29sb3I7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAg
ICAgICBGaWx0ZXJPcGVyYXRpb25zIGZpbHRlcnM7Ci0jZW5kaWYKICAgICAgICAgQ29sb3IgZGVi
dWdCb3JkZXJDb2xvcjsKICAgICAgICAgZmxvYXQgZGVidWdCb3JkZXJXaWR0aDsKICAgICAgICAg
aW50IHJlcGFpbnRDb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgK
aW5kZXggMzM0NWZjOWZlMmVhZDNmYjhlMTcxMThiZDUwZjM2ZDE2ODExYzNiZS4uNDNhNjUzNGJl
Y2Y2MmJmOWExY2JjMmEwZDY1MGVlOWE5NjkzY2RiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtLmgKQEAgLTc0LDEzICs3NCwxMSBAQCBwdWJsaWM6CiAgICAgVEVYTUFQ
X0RFQ0xBUkVfU0FNUExFUihzYW1wbGVyKQogICAgIFRFWE1BUF9ERUNMQVJFX1NBTVBMRVIobWFz
aykKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBURVhNQVBfREVDTEFSRV9VTklGT1JN
KGZpbHRlckFtb3VudCkKICAgICBURVhNQVBfREVDTEFSRV9VTklGT1JNKGdhdXNzaWFuS2VybmVs
KQogICAgIFRFWE1BUF9ERUNMQVJFX1VOSUZPUk0oYmx1clJhZGl1cykKICAgICBURVhNQVBfREVD
TEFSRV9VTklGT1JNKHNoYWRvd09mZnNldCkKICAgICBURVhNQVBfREVDTEFSRV9TQU1QTEVSKGNv
bnRlbnRUZXh0dXJlKQotI2VuZGlmCiAKICAgICB2b2lkIHNldE1hdHJpeChHQzNEdWludCwgY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCA2ZTNmNGY5MWNhOGQzYWE0
NDMyMzYzNjA2YmExNmNhNDNhODk0ZGExLi42MWNhNmU0MzIyMTdmZTM3NDE4Yjg2OWU1NzQ3Yjc3
YThlZmFkYzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtNzYsMTMgKzc2LDExIEBAIHZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpkaWRDaGFuZ2VDaGlsZHJlbigpCiAgICAgbm90aWZ5Rmx1c2hSZXF1aXJl
ZCgpOwogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmRpZENoYW5nZUZpbHRlcnMoKQogewogICAgIG1fc2hvdWxkU3luY0ZpbHRlcnMg
PSB0cnVlOwogICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KLSNlbmRpZgogCiB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlSW1hZ2VCYWNraW5nKCkKIHsKQEAgLTQy
MSw3ICs0MTksNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNU
b1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciogcGxhdGZvcgogI2VuZGlmCiB9CiAKLSNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiBib29sIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Rmls
dGVycyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBuZXdGaWx0ZXJzKQogewogICAgIGlmIChmaWx0
ZXJzKCkgPT0gbmV3RmlsdGVycykKQEAgLTQzMyw3ICs0MzAsNiBAQCBib29sIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6c2V0RmlsdGVycyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBuZXdGaWx0
ZXJzKQogICAgIGRpZENoYW5nZUZpbHRlcnMoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRp
ZgogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb1NvbGlkQ29s
b3IoY29uc3QgQ29sb3ImIGNvbG9yKQogewpAQCAtNjIyLDcgKzYxOCw2IEBAIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jQ2hpbGRyZW4oKQogICAgICAgICBtX2xheWVyU3RhdGUu
Y2hpbGRyZW4uYXBwZW5kKHRvQ29vcmRpbmF0ZWRMYXllcklEKGNoaWxkcmVuKClbaV0pKTsKIH0K
IAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzeW5jRmlsdGVycygpCiB7CiAgICAgaWYgKCFtX3Nob3VsZFN5bmNGaWx0ZXJzKQpAQCAtNjMy
LDcgKzYyNyw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jRmlsdGVycygp
CiAgICAgbV9sYXllclN0YXRlLmZpbHRlcnMgPSBHcmFwaGljc0xheWVyOjpmaWx0ZXJzKCk7CiAg
ICAgbV9sYXllclN0YXRlLmZpbHRlcnNDaGFuZ2VkID0gdHJ1ZTsKIH0KLSNlbmRpZgogCiB2b2lk
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0ltYWdlQmFja2luZygpCiB7CkBAIC03ODgs
OSArNzgyLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKQogICAgIHN5bmNBbmltYXRpb25zKCk7CiAgICAgY29t
cHV0ZVRyYW5zZm9ybWVkVmlzaWJsZVJlY3QoKTsKICAgICBzeW5jQ2hpbGRyZW4oKTsKLSNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgc3luY0ZpbHRlcnMoKTsKLSNlbmRpZgogI2lmIFVTRShH
UkFQSElDU19TVVJGQUNFKQogICAgIHN5bmNQbGF0Zm9ybUxheWVyKCk7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAppbmRl
eCBhNmE1OGYzMmI0NzQ2ZTI3NWVmNTFjODY0NjViNGJlOWU2ODU3NGJmLi41OGZiZmMwYjliMDBi
ZTdmZjNjNmI3Nzc2YWQzOGMwMDYwYzY4OWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC0xMDEsOSArMTAxLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZs
b2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3Rh
dGVGb3JUaGlzTGF5ZXJPbmx5KCkgb3ZlcnJpZGU7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQog
ICAgIHZpcnR1YWwgYm9vbCBzZXRGaWx0ZXJzKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKSBvdmVy
cmlkZTsKLSNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCBhZGRBbmltYXRpb24oY29uc3QgS2V5ZnJh
bWVWYWx1ZUxpc3QmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBBbmltYXRpb24qLCBjb25zdCBT
dHJpbmcmLCBkb3VibGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBwYXVzZUFuaW1hdGlv
bihjb25zdCBTdHJpbmcmLCBkb3VibGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVBbmltYXRpb24oY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CkBAIC0xNzYsMTggKzE3NCwxNCBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ2hhbmdlQW5pbWF0aW9ucygpOwogICAgIHZvaWQgZGlk
Q2hhbmdlR2VvbWV0cnkoKTsKICAgICB2b2lkIGRpZENoYW5nZUNoaWxkcmVuKCk7Ci0jaWYgRU5B
QkxFKENTU19GSUxURVJTKQogICAgIHZvaWQgZGlkQ2hhbmdlRmlsdGVycygpOwotI2VuZGlmCiAg
ICAgdm9pZCBkaWRDaGFuZ2VJbWFnZUJhY2tpbmcoKTsKIAogICAgIHZvaWQgcmVzZXRMYXllclN0
YXRlKCk7CiAgICAgdm9pZCBzeW5jTGF5ZXJTdGF0ZSgpOwogICAgIHZvaWQgc3luY0FuaW1hdGlv
bnMoKTsKICAgICB2b2lkIHN5bmNDaGlsZHJlbigpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykK
ICAgICB2b2lkIHN5bmNGaWx0ZXJzKCk7Ci0jZW5kaWYKICAgICB2b2lkIHN5bmNJbWFnZUJhY2tp
bmcoKTsKICAgICB2b2lkIGNvbXB1dGVUcmFuc2Zvcm1lZFZpc2libGVSZWN0KCk7CiAgICAgdm9p
ZCB1cGRhdGVDb250ZW50QnVmZmVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAppbmRleCA0OTE0MDNiMzQyNjIzNzZmYTc0
MjY4M2UwYzg2ZGU1MjQ3YTQzMWIyLi42NzNiOWU5Y2VjZTI0NjY0YjFjZWU4ZTgwZTljZmFlOWM1
NTU1YWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lLmNwcApAQCAtMjI2LDcgKzIyNiw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lOjpzZXRMYXllckNoaWxkcmVuSWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiBs
YXllCiAgICAgbGF5ZXItPnNldENoaWxkcmVuKGNoaWxkcmVuKTsKIH0KIAotI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRMYXllckZpbHRl
cnNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCiB7CiAgICAgaWYgKCFzdGF0ZS5maWx0ZXJzQ2hhbmdl
ZCkKQEAgLTIzNCw3ICsyMzMsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0
TGF5ZXJGaWx0ZXJzSWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiBsYXllcgogCiAgICAgbGF5
ZXItPnNldEZpbHRlcnMoc3RhdGUuZmlsdGVycyk7CiB9Ci0jZW5kaWYKIAogdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVyU3RhdGUoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBj
b25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgbGF5ZXJTdGF0ZSkKIHsKQEAgLTMx
NCw5ICszMTIsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0TGF5ZXJTdGF0
ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3JkaQogICAgIGNyZWF0ZVRpbGVzSWZO
ZWVkZWQobGF5ZXIsIGxheWVyU3RhdGUpOwogICAgIHJlbW92ZVRpbGVzSWZOZWVkZWQobGF5ZXIs
IGxheWVyU3RhdGUpOwogICAgIHVwZGF0ZVRpbGVzSWZOZWVkZWQobGF5ZXIsIGxheWVyU3RhdGUp
OwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBzZXRMYXllckZpbHRlcnNJZk5lZWRlZChs
YXllciwgbGF5ZXJTdGF0ZSk7Ci0jZW5kaWYKICAgICBzZXRMYXllckFuaW1hdGlvbnNJZk5lZWRl
ZChsYXllciwgbGF5ZXJTdGF0ZSk7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAgICAgc3lu
Y1BsYXRmb3JtTGF5ZXJJZk5lZWRlZChsYXllciwgbGF5ZXJTdGF0ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKaW5kZXggM2Q4YzA0
MmMyNTRlYmUzYTc2OWI1N2FmNmQzMDcwOGY5MDFkNjY0My4uMTY0YmE1YmJmMmMyNDg5YTY5MmY4
MmI0N2RjZjllOWZiMDQxMjNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaApAQCAtOTUsOSArOTUsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgdXBkYXRlVGlsZXNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwogICAgIHZvaWQgY3JlYXRlVGlsZXNJZk5lZWRl
ZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0
ZSYpOwogICAgIHZvaWQgcmVtb3ZlVGlsZXNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBj
b25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwotI2lmIEVOQUJMRShDU1NfRklM
VEVSUykKICAgICB2b2lkIHNldExheWVyRmlsdGVyc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXll
ciosIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7Ci0jZW5kaWYKICAgICB2
b2lkIHNldExheWVyQW5pbWF0aW9uc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZB
Q0UpCiAgICAgdm9pZCBjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQoVGV4dHVyZU1hcHBlckxh
eWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaAppbmRleCA3NzUy
YTdmNzRmZmU4NWM0MjY4OGE4MjNmZGY5YjcwYTQzYjVhOTk2Li4wYjVjYmI5MGUxNThjMzM3YTFl
NTEwMTJlN2U5MThhNDJkY2E4MzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaWYgVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTKQogCiAjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGaWx0
ZXJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRmxvYXRT
aXplLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckFuaW1hdGlvbi5oIgpAQCAtMzgsMTAgKzM5
LDYgQEAKICNpbmNsdWRlICJTdXJmYWNlVXBkYXRlSW5mby5oIgogI2luY2x1ZGUgIlRyYW5zZm9y
bWF0aW9uTWF0cml4LmgiCiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0jaW5jbHVkZSAiRmls
dGVyT3BlcmF0aW9ucy5oIgotI2VuZGlmCi0KICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICNp
bmNsdWRlICJHcmFwaGljc1N1cmZhY2UuaCIKICNpbmNsdWRlICJHcmFwaGljc1N1cmZhY2VUb2tl
bi5oIgpAQCAtMTQ4LDkgKzE0NSw3IEBAIHN0cnVjdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJT
dGF0ZSB7CiAgICAgQ29sb3Igc29saWRDb2xvcjsKICAgICBDb2xvciBkZWJ1Z0JvcmRlckNvbG9y
OwogICAgIGZsb2F0IGRlYnVnQm9yZGVyV2lkdGg7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQog
ICAgIEZpbHRlck9wZXJhdGlvbnMgZmlsdGVyczsKLSNlbmRpZgogICAgIEdyYXBoaWNzTGF5ZXJB
bmltYXRpb25zIGFuaW1hdGlvbnM7CiAgICAgVmVjdG9yPHVpbnQzMl90PiBjaGlsZHJlbjsKICAg
ICBWZWN0b3I8VGlsZUNyZWF0aW9uSW5mbz4gdGlsZXNUb0NyZWF0ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwCmluZGV4IDNmYWRkOTg1
M2ZkZGIyZmVlMGQ1NDlkMjVkZjMwNzliMDgzZDUwMmMuLmYzMWU3Yjk0YjdiNTExNzZjZjdjMzQ1
MTM5MGI4NWQ2MGM4MjcwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9G
aWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zp
bHRlckVmZmVjdFJlbmRlcmVyLmNwcApAQCAtMjYsOCArMjYsNiBAQAogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0KICNpbmNsdWRlICJGaWx0ZXJFZmZl
Y3RSZW5kZXJlci5oIgogCiAjaW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnQuaCIKQEAgLTQ0NCw1
ICs0NDIsMyBAQCB2b2lkIEZpbHRlckVmZmVjdFJlbmRlcmVySGVscGVyOjphcHBseUZpbHRlckVm
ZmVjdChHcmFwaGljc0NvbnRleHQqIGRlc3RpbmF0aW9uQwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oCmluZGV4IDYwODU3ZDg5MDMxNjU2
YWY3ZDIwOTc2ZTM4OTU4OTQ0MzZhYzk1NjkuLjVmZjg5OGI0MDY1NjQ5ZDBjODY0NzU2N2FkNWRm
MjJjMjBhZjkyNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJF
ZmZlY3RSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZl
Y3RSZW5kZXJlci5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEZpbHRlckVmZmVjdFJlbmRl
cmVyX2gKICNkZWZpbmUgRmlsdGVyRWZmZWN0UmVuZGVyZXJfaAogCi0jaWYgRU5BQkxFKENTU19G
SUxURVJTKQotCiAjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAiRmlsdGVyRWZmZWN0Lmgi
CiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgpAQCAtMTUyLDYgKzE1MCw0IEBAIHByaXZh
dGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShDU1NfRklM
VEVSUykKLQogI2VuZGlmIC8vIEZpbHRlckVmZmVjdFJlbmRlcmVyX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCBiZGI5ZDNiNGIwMWM3NTQ0NDhmYTYw
NGQ3NmNlZmZhYmY1ZWY2NWFhLi4xOTlhNjQ1NmZmMjAzMzE3ZjhlMzRjNDEzMjUxYjgzNjcxYjY5
YjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0y
NzQsOCArMjc0LDcgQEAgU3R5bGVEaWZmZXJlbmNlIFJlbmRlckVsZW1lbnQ6OmFkanVzdFN0eWxl
RGlmZmVyZW5jZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgdW5zaWcKICAgICAgICAgZWxzZSBpZiAo
ZGlmZiA8IFN0eWxlRGlmZmVyZW5jZVJlY29tcG9zaXRlTGF5ZXIpCiAgICAgICAgICAgICBkaWZm
ID0gU3R5bGVEaWZmZXJlbmNlUmVjb21wb3NpdGVMYXllcjsKICAgICB9Ci0gICAgCi0jaWYgRU5B
QkxFKENTU19GSUxURVJTKQorCiAgICAgaWYgKChjb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcyAm
IENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0eUZpbHRlcikgJiYgaGFzTGF5ZXIoKSkgewogICAgICAg
ICBSZW5kZXJMYXllciogbGF5ZXIgPSB0b1JlbmRlckxheWVyTW9kZWxPYmplY3QodGhpcyktPmxh
eWVyKCk7CiAgICAgICAgIGlmICghbGF5ZXItPmlzQ29tcG9zaXRlZCgpIHx8IGxheWVyLT5wYWlu
dHNXaXRoRmlsdGVycygpKQpAQCAtMjgzLDcgKzI4Miw2IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5k
ZXJFbGVtZW50OjphZGp1c3RTdHlsZURpZmZlcmVuY2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIHVu
c2lnCiAgICAgICAgIGVsc2UgaWYgKGRpZmYgPCBTdHlsZURpZmZlcmVuY2VSZWNvbXBvc2l0ZUxh
eWVyKQogICAgICAgICAgICAgZGlmZiA9IFN0eWxlRGlmZmVyZW5jZVJlY29tcG9zaXRlTGF5ZXI7
CiAgICAgfQotI2VuZGlmCiAgICAgCiAgICAgLy8gVGhlIGFuc3dlciB0byByZXF1aXJlc0xheWVy
KCkgZm9yIHBsdWdpbnMsIGlmcmFtZXMsIGFuZCBjYW52YXMgY2FuIGNoYW5nZSB3aXRob3V0IHRo
ZSBhY3R1YWwKICAgICAvLyBzdHlsZSBjaGFuZ2luZywgc2luY2UgaXQgZGVwZW5kcyBvbiB3aGV0
aGVyIHdlIGRlY2lkZSB0byBjb21wb3NpdGUgdGhlc2UgZWxlbWVudHMuIFdoZW4gdGhlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAppbmRleCAwYjNjZTk0NzExZTViMmU2
ZDkwN2JmNDM5YThjNGE0ODEyMWU2NGYzLi40MmI1ZGMwMjAxMWZkYjRmMDZhZDM4YjdmZGYwYzVm
NWJhODc0N2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKQEAg
LTEzMiwxMSArMTMyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQ2xpcFBhdGgoKSBjb25zdCB7
IHJldHVybiBzdHlsZSgpLmNsaXBQYXRoKCk7IH0KICAgICBib29sIGhhc0hpZGRlbkJhY2tmYWNl
KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS5iYWNrZmFjZVZpc2liaWxpdHkoKSA9PSBCYWNrZmFj
ZVZpc2liaWxpdHlIaWRkZW47IH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBib29s
IGhhc0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuIHN0eWxlKCkuaGFzRmlsdGVyKCk7IH0KLSNlbHNl
Ci0gICAgYm9vbCBoYXNGaWx0ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgaGFzQmxlbmRNb2RlKCkgY29u
c3QgeyByZXR1cm4gc3R5bGUoKS5oYXNCbGVuZE1vZGUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggMzUzNWNmMTJlNmRjYThhNmY2OTQ0ZjY4YWI5NDVj
NjMxMTNhODU5MC4uOTZhMjAzMGVlYzM1MzA5NjQ2MDQwNmNlYTRhOTZhZDQ1ZWMxYzk2MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC01Miw2ICs1Miw5IEBA
CiAjaW5jbHVkZSAiRG9jdW1lbnRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgog
I2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgorI2luY2x1ZGUgIkZFQ29sb3JNYXRyaXguaCIKKyNp
bmNsdWRlICJGRU1lcmdlLmgiCisjaW5jbHVkZSAiRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCIKICNp
bmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJGbG9hdFBvaW50M0QuaCIKICNp
bmNsdWRlICJGbG9hdFJlY3QuaCIKQEAgLTgzLDYgKzg2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2luY2x1ZGUgIlJl
bmRlckxheWVyQ29tcG9zaXRvci5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyRmlsdGVySW5mby5o
IgogI2luY2x1ZGUgIlJlbmRlck1hcnF1ZWUuaCIKICNpbmNsdWRlICJSZW5kZXJNdWx0aUNvbHVt
bkZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oIgpAQCAt
MTE1LDEzICsxMTksNiBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0jaW5jbHVk
ZSAiRkVDb2xvck1hdHJpeC5oIgotI2luY2x1ZGUgIkZFTWVyZ2UuaCIKLSNpbmNsdWRlICJGaWx0
ZXJFZmZlY3RSZW5kZXJlci5oIgotI2luY2x1ZGUgIlJlbmRlckxheWVyRmlsdGVySW5mby5oIgot
I2VuZGlmCi0KICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogI2luY2x1ZGUgIkF4aXNTY3Jv
bGxTbmFwT2Zmc2V0cy5oIgogI2VuZGlmCkBAIC0xODUsOSArMTgyLDcgQEAgUmVuZGVyTGF5ZXI6
OlJlbmRlckxheWVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJlbmRlcmVyTGF5ZXJNb2RlbE9i
amVjdCkKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgLCBtX2xheWVyTGlzdE11dGF0aW9uQWxs
b3dlZCh0cnVlKQogI2VuZGlmCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgICwgbV9oYXNG
aWx0ZXJJbmZvKGZhbHNlKQotI2VuZGlmCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKICAg
ICAsIG1fYmxlbmRNb2RlKEJsZW5kTW9kZU5vcm1hbCkKICAgICAsIG1faGFzTm90SXNvbGF0ZWRD
b21wb3NpdGVkQmxlbmRpbmdEZXNjZW5kYW50cyhmYWxzZSkKQEAgLTI1MiwxMCArMjQ3LDggQEAg
UmVuZGVyTGF5ZXI6On5SZW5kZXJMYXllcigpCiAKICAgICBpZiAobV9yZWZsZWN0aW9uKQogICAg
ICAgICByZW1vdmVSZWZsZWN0aW9uKCk7Ci0gICAgCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQor
CiAgICAgRmlsdGVySW5mbzo6cmVtb3ZlKCp0aGlzKTsKLSNlbmRpZgogCiAgICAgLy8gQ2hpbGQg
bGF5ZXJzIHdpbGwgYmUgZGVsZXRlZCBieSB0aGVpciBjb3JyZXNwb25kaW5nIHJlbmRlciBvYmpl
Y3RzLCBzbwogICAgIC8vIHdlIGRvbid0IG5lZWQgdG8gZGVsZXRlIHRoZW0gb3Vyc2VsdmVzLgpA
QCAtMzE0LDggKzMwNyw2IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmNhblJlbmRlcjNEVHJhbnNmb3Jt
cygpIGNvbnN0CiAgICAgcmV0dXJuIGNvbXBvc2l0b3IoKS5jYW5SZW5kZXIzRFRyYW5zZm9ybXMo
KTsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQogYm9vbCBSZW5kZXJMYXllcjo6cGFp
bnRzV2l0aEZpbHRlcnMoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHRoZXJl
IHdpbGwgYmUgY2FzZXMgd2hlcmUgd2UgcGFpbnQgd2l0aCBmaWx0ZXJzIGV2ZW4gd2l0aG91dCBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZywKQEAgLTM0Nyw4ICszMzgsNiBAQCBGaWx0ZXJFZmZlY3RS
ZW5kZXJlciogUmVuZGVyTGF5ZXI6OmZpbHRlclJlbmRlcmVyKCkgY29uc3QKICAgICByZXR1cm4g
ZmlsdGVySW5mbyA/IGZpbHRlckluZm8tPnJlbmRlcmVyKCkgOiAwOwogfQogCi0jZW5kaWYKLQog
dm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckxheW91dChjb25zdCBS
ZW5kZXJMYXllciogcm9vdExheWVyLCBVcGRhdGVMYXllclBvc2l0aW9uc0ZsYWdzIGZsYWdzKQog
ewogICAgIFJlbmRlckdlb21ldHJ5TWFwIGdlb21ldHJ5TWFwKFVzZVRyYW5zZm9ybXMpOwpAQCAt
MTQ1Miw4ICsxNDQxLDYgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdDb21w
b3NpdGluZ0xheWVyRm9yUmVwYWludChJbmNsdWRlU2VsZk9yTm90IGkKICAgICByZXR1cm4gMDsK
IH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVy
OjplbmNsb3NpbmdGaWx0ZXJMYXllcihJbmNsdWRlU2VsZk9yTm90IGluY2x1ZGVTZWxmKSBjb25z
dAogewogICAgIGNvbnN0IFJlbmRlckxheWVyKiBjdXJyID0gKGluY2x1ZGVTZWxmID09IEluY2x1
ZGVTZWxmKSA/IHRoaXMgOiBwYXJlbnQoKTsKQEAgLTE1MjIsOCArMTUwOSw2IEBAIGJvb2wgUmVu
ZGVyTGF5ZXI6Omhhc0FuY2VzdG9yV2l0aEZpbHRlck91dHNldHMoKSBjb25zdAogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotI2VuZGlmCi0KIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6Y2xpcHBp
bmdSb290Rm9yUGFpbnRpbmcoKSBjb25zdAogewogICAgIGlmIChpc0NvbXBvc2l0ZWQoKSkKQEAg
LTE2NTUsOSArMTY0MCw3IEBAIHN0YXRpYyBMYXlvdXRSZWN0IHRyYW5zcGFyZW5jeUNsaXBCb3go
Y29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBjb25zdCBSZW5kZXJMYXllCiAgICAgICAgIC8vIHBh
aW50cyB1bmZyYWdtZW50ZWQuCiAgICAgICAgIExheW91dFJlY3QgY2xpcFJlY3QgPSBsYXllci5i
b3VuZGluZ0JveCgmbGF5ZXIpOwogICAgICAgICBleHBhbmRDbGlwUmVjdEZvckRlc2NlbmRhbnRz
QW5kUmVmbGVjdGlvbihjbGlwUmVjdCwgbGF5ZXIsICZsYXllciwgdHJhbnNwYXJlbmN5QmVoYXZp
b3IsIHBhaW50QmVoYXZpb3IpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgbGF5
ZXIucmVuZGVyZXIoKS5zdHlsZSgpLmZpbHRlck91dHNldHMoKS5leHBhbmRSZWN0KGNsaXBSZWN0
KTsKLSNlbmRpZgogICAgICAgICBMYXlvdXRSZWN0IHJlc3VsdCA9IHRyYW5zZm9ybS5tYXBSZWN0
KGNsaXBSZWN0KTsKICAgICAgICAgaWYgKCFwYWdpbmF0aW9uTGF5ZXIpCiAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwpAQCAtMTY3Myw5ICsxNjU2LDggQEAgc3RhdGljIExheW91dFJlY3QgdHJh
bnNwYXJlbmN5Q2xpcEJveChjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIsIGNvbnN0IFJlbmRlckxh
eWUKICAgICAKICAgICBMYXlvdXRSZWN0IGNsaXBSZWN0ID0gbGF5ZXIuYm91bmRpbmdCb3gocm9v
dExheWVyLCBsYXllci5vZmZzZXRGcm9tQW5jZXN0b3Iocm9vdExheWVyKSwgdHJhbnNwYXJlbmN5
QmVoYXZpb3IgPT0gSGl0VGVzdGluZ1RyYW5zcGFyZW5jeUNsaXBCb3ggPyBSZW5kZXJMYXllcjo6
VXNlRnJhZ21lbnRCb3hlc0luY2x1ZGluZ0NvbXBvc2l0aW5nIDogUmVuZGVyTGF5ZXI6OlVzZUZy
YWdtZW50Qm94ZXNFeGNsdWRpbmdDb21wb3NpdGluZyk7CiAgICAgZXhwYW5kQ2xpcFJlY3RGb3JE
ZXNjZW5kYW50c0FuZFJlZmxlY3Rpb24oY2xpcFJlY3QsIGxheWVyLCByb290TGF5ZXIsIHRyYW5z
cGFyZW5jeUJlaGF2aW9yLCBwYWludEJlaGF2aW9yKTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CiAgICAgbGF5ZXIucmVuZGVyZXIoKS5zdHlsZSgpLmZpbHRlck91dHNldHMoKS5leHBhbmRSZWN0
KGNsaXBSZWN0KTsKLSNlbmRpZgorCiAgICAgcmV0dXJuIGNsaXBSZWN0OwogfQogCkBAIC0zOTQ1
LDggKzM5MjcsNiBAQCBib29sIFJlbmRlckxheWVyOjpzZXR1cENsaXBQYXRoKEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZgogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQogc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVm
ZmVjdFJlbmRlcmVySGVscGVyPiBSZW5kZXJMYXllcjo6c2V0dXBGaWx0ZXJzKEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgTGF5ZXJQYWludGluZ0luZm8mIHBhaW50aW5nSW5mbywgUGFpbnRMYXll
ckZsYWdzIHBhaW50RmxhZ3MsIGNvbnN0IExheW91dFNpemUmIG9mZnNldEZyb21Sb290LCBMYXlv
dXRSZWN0JiByb290UmVsYXRpdmVCb3VuZHMsIGJvb2wmIHJvb3RSZWxhdGl2ZUJvdW5kc0NvbXB1
dGVkKQogewogICAgIGlmIChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCkBAIC00MDA0LDgg
KzM5ODQsNiBAQCBHcmFwaGljc0NvbnRleHQqIFJlbmRlckxheWVyOjphcHBseUZpbHRlcnMoRmls
dGVyRWZmZWN0UmVuZGVyZXJIZWxwZXIqIGZpbHRlclBhaQogICAgIHJldHVybiBvcmlnaW5hbENv
bnRleHQ7CiB9CiAKLSNlbmRpZgotCiAvLyBIZWxwZXIgZm9yIHRoZSBzb3J0aW5nIG9mIGxheWVy
cyBieSB6LWluZGV4Lgogc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVaSW5kZXgoUmVuZGVyTGF5
ZXIqIGZpcnN0LCBSZW5kZXJMYXllciogc2Vjb25kKQogewpAQCAtNDA4OSw3ICs0MDY3LDYgQEAg
dm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgTGF5ZXJQYWludGkKICAgICBMYXllclBhaW50aW5nSW5mbyBsb2NhbFBhaW50
aW5nSW5mbyhwYWludGluZ0luZm8pOwogCiAgICAgR3JhcGhpY3NDb250ZXh0KiB0cmFuc3BhcmVu
Y3lMYXllckNvbnRleHQgPSBjb250ZXh0OwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0UmVuZGVyZXJIZWxwZXI+IGZpbHRlclBhaW50ZXIg
PSBzZXR1cEZpbHRlcnMoY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8sIHBhaW50RmxhZ3MsIG9m
ZnNldEZyb21Sb290LCByb290UmVsYXRpdmVCb3VuZHMsIHJvb3RSZWxhdGl2ZUJvdW5kc0NvbXB1
dGVkKTsKICAgICBpZiAoZmlsdGVyUGFpbnRlcikgewogICAgICAgICBjb250ZXh0ID0gZmlsdGVy
UGFpbnRlci0+ZmlsdGVyQ29udGV4dCgpOwpAQCAtNDA5OCw3ICs0MDc1LDYgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgTGF5ZXJQYWludGkKICAgICAgICAgICAgIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXJzKHRyYW5z
cGFyZW5jeUxheWVyQ29udGV4dCwgbG9jYWxQYWludGluZ0luZm8sIHBhaW50aW5nSW5mby5wYWlu
dERpcnR5UmVjdCk7CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKIAogICAgIC8vIElmIHRoaXMg
bGF5ZXIncyByZW5kZXJlciBpcyBhIGNoaWxkIG9mIHRoZSBzdWJ0cmVlUGFpbnRSb290LCB3ZSBy
ZW5kZXIgdW5jb25kaXRpb25hbGx5LCB3aGljaAogICAgIC8vIGlzIGRvbmUgYnkgcGFzc2luZyBh
IG5pbCBzdWJ0cmVlUGFpbnRSb290IGRvd24gdG8gb3VyIHJlbmRlcmVyIChhcyBpZiBubyBzdWJ0
cmVlUGFpbnRSb290IHdhcyBldmVyIHNldCkuCkBAIC00MTc0LDEyICs0MTUwLDEwIEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IExheWVyUGFpbnRpCiAgICAgaWYgKGlzUGFpbnRpbmdPdmVybGF5U2Nyb2xsYmFycykK
ICAgICAgICAgcGFpbnRPdmVyZmxvd0NvbnRyb2xzRm9yRnJhZ21lbnRzKGxheWVyRnJhZ21lbnRz
LCBjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mbyk7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CiAgICAgaWYgKGZpbHRlclBhaW50ZXIpIHsKICAgICAgICAgY29udGV4dCA9IGFwcGx5RmlsdGVy
cyhmaWx0ZXJQYWludGVyLmdldCgpLCB0cmFuc3BhcmVuY3lMYXllckNvbnRleHQsIGxvY2FsUGFp
bnRpbmdJbmZvLCBsYXllckZyYWdtZW50cyk7CiAgICAgICAgIGZpbHRlclBhaW50ZXIgPSBudWxs
cHRyOwogICAgIH0KLSNlbmRpZgogICAgIAogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHdlIG5vdyB1
c2UgdGhlIG9yaWdpbmFsIHRyYW5zcGFyZW5jeSBjb250ZXh0LgogICAgIEFTU0VSVCh0cmFuc3Bh
cmVuY3lMYXllckNvbnRleHQgPT0gY29udGV4dCk7CkBAIC01Nzk1LDE0ICs1NzY5LDEyIEBAIExh
eW91dFJlY3QgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUxheWVyQm91bmRzKGNvbnN0IFJlbmRlckxh
eWVyKiBhbmNlc3RvckxheWVyLCBjCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0g
ICAgCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQorCiAgICAgLy8gRklYTUU6IFdlIGNhbiBvcHRp
bWl6ZSB0aGUgc2l6ZSBvZiB0aGUgY29tcG9zaXRlZCBsYXllcnMsIGJ5IG5vdCBlbmxhcmdpbmcK
ICAgICAvLyBmaWx0ZXJlZCBhcmVhcyB3aXRoIHRoZSBvdXRzZXRzIGlmIHdlIGtub3cgdGhhdCB0
aGUgZmlsdGVyIGlzIGdvaW5nIHRvIHJlbmRlciBpbiBoYXJkd2FyZS4KICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEyMzkKICAgICBpZiAoZmxhZ3MgJiBJ
bmNsdWRlTGF5ZXJGaWx0ZXJPdXRzZXRzKQogICAgICAgICByZW5kZXJlcigpLnN0eWxlKCkuZmls
dGVyT3V0c2V0cygpLmV4cGFuZFJlY3QodW5pb25Cb3VuZHMpOwotI2VuZGlmCiAKICAgICBpZiAo
KGZsYWdzICYgSW5jbHVkZVNlbGZUcmFuc2Zvcm0pICYmIHBhaW50c1dpdGhUcmFuc2Zvcm0oUGFp
bnRCZWhhdmlvck5vcm1hbCkpIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgqIGFmZmlu
ZVRyYW5zID0gdHJhbnNmb3JtKCk7CkBAIC01ODQzLDkgKzU4MTUsNyBAQCBSZW5kZXJMYXllckJh
Y2tpbmcqIFJlbmRlckxheWVyOjplbnN1cmVCYWNraW5nKCkKICAgICAgICAgbV9iYWNraW5nID0g
c3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJMYXllckJhY2tpbmc+KCp0aGlzKTsKICAgICAgICAgY29t
cG9zaXRvcigpLmxheWVyQmVjYW1lQ29tcG9zaXRlZCgqdGhpcyk7CiAKLSNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCiAgICAgICAgIHVwZGF0ZU9yUmVtb3ZlRmlsdGVyRWZmZWN0UmVuZGVyZXIoKTsK
LSNlbmRpZgogICAgIH0KICAgICByZXR1cm4gbV9iYWNraW5nLmdldCgpOwogfQpAQCAtNTg1Niwx
MiArNTgyNiw4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNsZWFyQmFja2luZyhib29sIGxheWVyQmVp
bmdEZXN0cm95ZWQpCiAgICAgICAgIGNvbXBvc2l0b3IoKS5sYXllckJlY2FtZU5vbkNvbXBvc2l0
ZWQoKnRoaXMpOwogICAgIG1fYmFja2luZyA9IG51bGxwdHI7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCiAgICAgaWYgKCFsYXllckJlaW5nRGVzdHJveWVkKQogICAgICAgICB1cGRhdGVPclJl
bW92ZUZpbHRlckVmZmVjdFJlbmRlcmVyKCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShsYXll
ckJlaW5nRGVzdHJveWVkKTsKLSNlbmRpZgogfQogCiBib29sIFJlbmRlckxheWVyOjpoYXNDb21w
b3NpdGVkTWFzaygpIGNvbnN0CkBAIC01OTA4LDEwICs1ODc0LDggQEAgYm9vbCBSZW5kZXJMYXll
cjo6YmFja2dyb3VuZElzS25vd25Ub0JlT3BhcXVlSW5SZWN0KGNvbnN0IExheW91dFJlY3QmIGxv
Y2FsUmVjdCkKICAgICBpZiAocmVuZGVyZXIoKS5zdHlsZSgpLnZpc2liaWxpdHkoKSAhPSBWSVNJ
QkxFKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAg
ICAgaWYgKHBhaW50c1dpdGhGaWx0ZXJzKCkgJiYgcmVuZGVyZXIoKS5zdHlsZSgpLmZpbHRlcigp
Lmhhc0ZpbHRlclRoYXRBZmZlY3RzT3BhY2l0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0j
ZW5kaWYKIAogICAgIC8vIEZJWE1FOiBIYW5kbGUgc2ltcGxlIHRyYW5zZm9ybXMuCiAgICAgaWYg
KHBhaW50c1dpdGhUcmFuc2Zvcm0oUGFpbnRCZWhhdmlvck5vcm1hbCkpCkBAIC02MjMwLDkgKzYx
OTQsNyBAQCBib29sIFJlbmRlckxheWVyOjpzaG91bGRCZU5vcm1hbEZsb3dPbmx5KCkgY29uc3QK
ICAgICAgICAgJiYgIXJlbmRlcmVyKCkuaXNQb3NpdGlvbmVkKCkKICAgICAgICAgJiYgIXJlbmRl
cmVyKCkuaGFzVHJhbnNmb3JtKCkKICAgICAgICAgJiYgIXJlbmRlcmVyKCkuaGFzQ2xpcFBhdGgo
KQotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgJiYgIXJlbmRlcmVyKCkuaGFzRmls
dGVyKCkKLSNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgJiYgIWhhc0FjY2VsZXJh
dGVkVG91Y2hTY3JvbGxpbmcoKQogI2VuZGlmCkBAIC02NTExLDkgKzY0NzMsNyBAQCB2b2lkIFJl
bmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZQogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgdXBkYXRl
QmxlbmRNb2RlKCk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdXBkYXRl
T3JSZW1vdmVGaWx0ZXJDbGllbnRzKCk7Ci0jZW5kaWYKIAogICAgIHVwZGF0ZU5lZWRzQ29tcG9z
aXRlZFNjcm9sbGluZygpOwogCkBAIC02NTQ3LDcgKzY1MDcsNiBAQCB2b2lkIFJlbmRlckxheWVy
OjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZQogICAgIFVOVVNFRF9QQVJBTShkaWZmKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQogICAgIHVwZGF0ZU9yUmVtb3ZlRmlsdGVyRWZmZWN0UmVuZGVyZXIoKTsKICAg
ICBib29sIGJhY2tpbmdEaWRDb21wb3NpdGVMYXllcnMgPSBpc0NvbXBvc2l0ZWQoKSAmJiBiYWNr
aW5nKCktPmNhbkNvbXBvc2l0ZUZpbHRlcnMoKTsKICAgICBpZiAoaXNDb21wb3NpdGVkKCkgJiYg
YmFja2luZ0RpZENvbXBvc2l0ZUxheWVycyAmJiAhYmFja2luZygpLT5jYW5Db21wb3NpdGVGaWx0
ZXJzKCkpIHsKQEAgLTY1NTUsNyArNjUxNCw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnN0eWxlQ2hh
bmdlZChTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlCiAg
ICAgICAgIC8vIEZhbGxiYWNrIHRvIGRyYXdpbmcgdGhlbSBpbiBzb2Z0d2FyZS4KICAgICAgICAg
c2V0QmFja2luZ05lZWRzUmVwYWludCgpOwogICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIFJlbmRl
ckxheWVyOjp1cGRhdGVTY3JvbGxhYmxlQXJlYVNldChib29sIGhhc092ZXJmbG93KQpAQCAtNjY4
NCw4ICs2NjQyLDYgQEAgUGFzc1JlZjxSZW5kZXJTdHlsZT4gUmVuZGVyTGF5ZXI6OmNyZWF0ZVJl
ZmxlY3Rpb25TdHlsZSgpCiAgICAgcmV0dXJuIG5ld1N0eWxlOwogfQogCi0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQotCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVPclJlbW92ZUZpbHRlckNsaWVu
dHMoKQogewogICAgIGlmICghaGFzRmlsdGVyKCkpIHsKQEAgLTY3NDYsOCArNjcwMiw2IEBAIHZv
aWQgUmVuZGVyTGF5ZXI6OmZpbHRlck5lZWRzUmVwYWludCgpCiAgICAgcmVuZGVyZXIoKS5yZXBh
aW50KCk7CiB9CiAKLSNlbmRpZgotCiB2b2lkIFJlbmRlckxheWVyOjpwYWludE5hbWVkRmxvd1Ro
cmVhZEluc2lkZVJlZ2lvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFJlbmRlck5hbWVkRmxv
d0ZyYWdtZW50KiByZWdpb24sIExheW91dFJlY3QgcGFpbnREaXJ0eVJlY3QsIExheW91dFBvaW50
IHBhaW50T2Zmc2V0LCBQYWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3IsIFBhaW50TGF5ZXJGbGFn
cyBwYWludEZsYWdzKQogewogICAgIExheW91dFJlY3QgcmVnaW9uQ29udGVudEJveCA9IHRvUmVu
ZGVyQm94KHJlZ2lvbi0+bGF5ZXJPd25lcigpKS5jb250ZW50Qm94UmVjdCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAwOTIyYmZlZWM3NGMxZTg1MTE1NDg4ZDI5
OWM2MjI5NDc5ZTAxYzA2Li44YTdmNTg0MWRmMDM1NWRlNGQwOTdiZTQzNWNhNzdmOGY5ZDc4Nzgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNjMyLDEyICs2MzIs
MTAgQEAgcHVibGljOgogICAgIC8vIEFuY2VzdG9yIGNvbXBvc2l0aW5nIGxheWVyLCBleGNsdWRp
bmcgdGhpcy4KICAgICBSZW5kZXJMYXllciogYW5jZXN0b3JDb21wb3NpdGluZ0xheWVyKCkgY29u
c3QgeyByZXR1cm4gZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllcihFeGNsdWRlU2VsZik7IH0KIAot
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nRmlsdGVy
TGF5ZXIoSW5jbHVkZVNlbGZPck5vdCA9IEluY2x1ZGVTZWxmKSBjb25zdDsKICAgICBSZW5kZXJM
YXllciogZW5jbG9zaW5nRmlsdGVyUmVwYWludExheWVyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRG
aWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KGNvbnN0IExheW91dFJlY3QmKTsKICAg
ICBib29sIGhhc0FuY2VzdG9yV2l0aEZpbHRlck91dHNldHMoKSBjb25zdDsKLSNlbmRpZgogCiAg
ICAgYm9vbCBjYW5Vc2VDb252ZXJ0VG9MYXllckNvb3JkcygpIGNvbnN0CiAgICAgewpAQCAtNzQ3
LDEzICs3NDUsOSBAQCBwdWJsaWM6CiAgICAgLy8gQm91bmRzIHVzZWQgZm9yIGxheWVyIG92ZXJs
YXAgdGVzdGluZyBpbiBSZW5kZXJMYXllckNvbXBvc2l0b3IuCiAgICAgTGF5b3V0UmVjdCBvdmVy
bGFwQm91bmRzKCkgY29uc3QgeyByZXR1cm4gb3ZlcmxhcEJvdW5kc0luY2x1ZGVDaGlsZHJlbigp
ID8gY2FsY3VsYXRlTGF5ZXJCb3VuZHModGhpcywgTGF5b3V0U2l6ZSgpKSA6IGxvY2FsQm91bmRp
bmdCb3goKTsgfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIC8vIElmIHRydWUsIHRo
aXMgbGF5ZXIncyBjaGlsZHJlbiBhcmUgaW5jbHVkZWQgaW4gaXRzIGJvdW5kcyBmb3Igb3Zlcmxh
cCB0ZXN0aW5nLgogICAgIC8vIFdlIGNhbid0IHJlbHkgb24gdGhlIGNoaWxkcmVuJ3MgcG9zaXRp
b25zIGlmIHRoaXMgbGF5ZXIgaGFzIGEgZmlsdGVyIHRoYXQgY291bGQgaGF2ZSBtb3ZlZCB0aGUg
Y2hpbGRyZW4ncyBwaXhlbHMgYXJvdW5kLgogICAgIGJvb2wgb3ZlcmxhcEJvdW5kc0luY2x1ZGVD
aGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIGhhc0ZpbHRlcigpICYmIHJlbmRlcmVyKCkuc3R5bGUo
KS5maWx0ZXIoKS5oYXNGaWx0ZXJUaGF0TW92ZXNQaXhlbHMoKTsgfQotI2Vsc2UKLSAgICBib29s
IG92ZXJsYXBCb3VuZHNJbmNsdWRlQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQot
I2VuZGlmCiAKICAgICAvLyBDYW4gcGFzcyBvZmZzZXRGcm9tUm9vdCBpZiBrbm93bi4KICAgICBM
YXlvdXRSZWN0IGNhbGN1bGF0ZUxheWVyQm91bmRzKGNvbnN0IFJlbmRlckxheWVyKiBhbmNlc3Rv
ckxheWVyLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdCwgQ2FsY3VsYXRlTGF5ZXJC
b3VuZHNGbGFncyA9IERlZmF1bHRDYWxjdWxhdGVMYXllckJvdW5kc0ZsYWdzKSBjb25zdDsKQEAg
LTc5MiwxMiArNzg2LDggQEAgcHVibGljOgogICAgIGJvb2wgcHJlc2VydmVzM0QoKSBjb25zdCB7
IHJldHVybiByZW5kZXJlcigpLnN0eWxlKCkudHJhbnNmb3JtU3R5bGUzRCgpID09IFRyYW5zZm9y
bVN0eWxlM0RQcmVzZXJ2ZTNEOyB9CiAgICAgYm9vbCBoYXMzRFRyYW5zZm9ybSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHJhbnNmb3JtICYmICFtX3RyYW5zZm9ybS0+aXNBZmZpbmUoKTsgfQogCi0jaWYg
RU5BQkxFKENTU19GSUxURVJTKQogICAgIHZpcnR1YWwgdm9pZCBmaWx0ZXJOZWVkc1JlcGFpbnQo
KTsKICAgICBib29sIGhhc0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuIHJlbmRlcmVyKCkuaGFzRmls
dGVyKCk7IH0KLSNlbHNlCi0gICAgYm9vbCBoYXNGaWx0ZXIoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgaGFz
QmxlbmRNb2RlKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS5oYXNCbGVuZE1vZGUoKTsgfQpA
QCAtODUxLDExICs4NDEsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjb250YWluc0RpcnR5T3Zlcmxh
eVNjcm9sbGJhcnMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRhaW5zRGlydHlPdmVybGF5U2Nyb2xs
YmFyczsgfQogICAgIHZvaWQgc2V0Q29udGFpbnNEaXJ0eU92ZXJsYXlTY3JvbGxiYXJzKGJvb2wg
ZGlydHlTY3JvbGxiYXJzKSB7IG1fY29udGFpbnNEaXJ0eU92ZXJsYXlTY3JvbGxiYXJzID0gZGly
dHlTY3JvbGxiYXJzOyB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBwYWlu
dHNXaXRoRmlsdGVycygpIGNvbnN0OwogICAgIGJvb2wgcmVxdWlyZXNGdWxsTGF5ZXJJbWFnZUZv
ckZpbHRlcnMoKSBjb25zdDsKICAgICBGaWx0ZXJFZmZlY3RSZW5kZXJlciogZmlsdGVyUmVuZGVy
ZXIoKSBjb25zdDsKLSNlbmRpZgogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgIGJvb2wgbGF5
ZXJMaXN0TXV0YXRpb25BbGxvd2VkKCkgY29uc3QgeyByZXR1cm4gbV9sYXllckxpc3RNdXRhdGlv
bkFsbG93ZWQ7IH0KQEAgLTk4NywxMCArOTc1LDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2V0
dXBGb250U3VicGl4ZWxRdWFudGl6YXRpb24oR3JhcGhpY3NDb250ZXh0KiwgYm9vbCYgZGlkUXVh
bnRpemVGb250cyk7CiAgICAgYm9vbCBzZXR1cENsaXBQYXRoKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IExheWVyUGFpbnRpbmdJbmZvJiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0RnJvbVJvb3Qs
IExheW91dFJlY3QmIHJvb3RSZWxhdGl2ZUJvdW5kcywgYm9vbCYgcm9vdFJlbGF0aXZlQm91bmRz
Q29tcHV0ZWQpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxGaWx0ZXJFZmZlY3RSZW5kZXJlckhlbHBlcj4gc2V0dXBGaWx0ZXJzKEdyYXBoaWNzQ29udGV4
dCosIExheWVyUGFpbnRpbmdJbmZvJiwgUGFpbnRMYXllckZsYWdzLCBjb25zdCBMYXlvdXRTaXpl
JiBvZmZzZXRGcm9tUm9vdCwgTGF5b3V0UmVjdCYgcm9vdFJlbGF0aXZlQm91bmRzLCBib29sJiBy
b290UmVsYXRpdmVCb3VuZHNDb21wdXRlZCk7CiAgICAgR3JhcGhpY3NDb250ZXh0KiBhcHBseUZp
bHRlcnMoRmlsdGVyRWZmZWN0UmVuZGVyZXJIZWxwZXIqLCBHcmFwaGljc0NvbnRleHQqIG9yaWdp
bmFsQ29udGV4dCwgTGF5ZXJQYWludGluZ0luZm8mLCBMYXllckZyYWdtZW50cyYpOwotI2VuZGlm
CiAKICAgICB2b2lkIHBhaW50TGF5ZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5ZXJQYWlu
dGluZ0luZm8mLCBQYWludExheWVyRmxhZ3MpOwogICAgIHZvaWQgcGFpbnRGaXhlZExheWVyc0lu
TmFtZWRGbG93cyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYsIFBh
aW50TGF5ZXJGbGFncyk7CkBAIC0xMTI4LDEwICsxMTE1LDggQEAgcHJpdmF0ZToKICAgICBib29s
IHBhaW50aW5nSW5zaWRlUmVmbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcGFpbnRpbmdJbnNp
ZGVSZWZsZWN0aW9uOyB9CiAgICAgdm9pZCBzZXRQYWludGluZ0luc2lkZVJlZmxlY3Rpb24oYm9v
bCBiKSB7IG1fcGFpbnRpbmdJbnNpZGVSZWZsZWN0aW9uID0gYjsgfQogCi0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQogICAgIHZvaWQgdXBkYXRlT3JSZW1vdmVGaWx0ZXJDbGllbnRzKCk7CiAgICAg
dm9pZCB1cGRhdGVPclJlbW92ZUZpbHRlckVmZmVjdFJlbmRlcmVyKCk7Ci0jZW5kaWYKIAogI2lm
IEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCB1cGRhdGVBbmNlc3RvckNoYWluSGFz
QmxlbmRpbmdEZXNjZW5kYW50cygpOwpAQCAtMTI2OSw5ICsxMjU0LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fbGF5ZXJMaXN0TXV0YXRpb25BbGxvd2VkIDogMTsKICNlbmRpZgogCi0jaWYgRU5B
QkxFKENTU19GSUxURVJTKQogICAgIGJvb2wgbV9oYXNGaWx0ZXJJbmZvIDogMTsKLSNlbmRpZgog
CiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKICAgICB1bnNpZ25lZCBtX2JsZW5kTW9kZSA6
IDU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CmluZGV4IGY0ODQ0YzUyMDQzY2Q5YzJkMzIxY2M5ZTMyMTUzNTU0YzIxYWEyZWQuLmQ4ZmU2ZTcz
Y2QxOGJjYjljN2JiNDJiZGJhYzM1MzVlNzk4ZGI1ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5j
bHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCIKICNpbmNs
dWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQuaCIKQEAgLTYxLDEwICs2Miw2IEBACiAjaW5jbHVkZSAiVGlsZWRCYWNraW5n
LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCi0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQotI2luY2x1ZGUgIkZpbHRlckVmZmVjdFJlbmRlcmVyLmgiCi0jZW5kaWYKLQog
I2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2VuZGlmCkBAIC0xMTIsOSArMTA5LDcgQEAgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcoUmVuZGVyTGF5ZXImIGxheWVyKQog
ICAgICwgbV9pc01haW5GcmFtZVJlbmRlclZpZXdMYXllcihmYWxzZSkKICAgICAsIG1fdXNpbmdU
aWxlZENhY2hlTGF5ZXIoZmFsc2UpCiAgICAgLCBtX3JlcXVpcmVzT3duQmFja2luZ1N0b3JlKHRy
dWUpCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgICwgbV9jYW5Db21wb3NpdGVGaWx0ZXJz
KGZhbHNlKQotI2VuZGlmCiAgICAgLCBtX2JhY2tncm91bmRMYXllclBhaW50c0ZpeGVkUm9vdEJh
Y2tncm91bmQoZmFsc2UpCiB7CiAgICAgUGFnZSogcGFnZSA9IHJlbmRlcmVyKCkuZnJhbWUoKS5w
YWdlKCk7CkBAIC0zMTMsOSArMzA4LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0
ZVByaW1hcnlHcmFwaGljc0xheWVyKCkKICAgICAKICAgICB1cGRhdGVPcGFjaXR5KHJlbmRlcmVy
KCkuc3R5bGUoKSk7CiAgICAgdXBkYXRlVHJhbnNmb3JtKHJlbmRlcmVyKCkuc3R5bGUoKSk7Ci0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHVwZGF0ZUZpbHRlcnMocmVuZGVyZXIoKS5zdHls
ZSgpKTsKLSNlbmRpZgogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgdXBkYXRlQmxl
bmRNb2RlKHJlbmRlcmVyKCkuc3R5bGUoKSk7CiAjZW5kaWYKQEAgLTM3NSwxMiArMzY4LDEwIEBA
IHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVUcmFuc2Zvcm0oY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlKQogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldFRyYW5zZm9ybSh0KTsKIH0K
IAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRh
dGVGaWx0ZXJzKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKICAgICBtX2NhbkNvbXBvc2l0
ZUZpbHRlcnMgPSBtX2dyYXBoaWNzTGF5ZXItPnNldEZpbHRlcnMoc3R5bGUuZmlsdGVyKCkpOwog
fQotI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogdm9pZCBSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZUJsZW5kTW9kZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCkBAIC02
NTYsMTAgKzY0Nyw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHZW9tZXRyeSgp
CiAgICAgLy8gU2V0IG9wYWNpdHksIGlmIGl0IGlzIG5vdCBhbmltYXRpbmcuCiAgICAgaWYgKCFy
ZW5kZXJlcigpLmFuaW1hdGlvbigpLmlzUnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uT25SZW5k
ZXJlcigmcmVuZGVyZXIoKSwgQ1NTUHJvcGVydHlPcGFjaXR5LCBBbmltYXRpb25CYXNlOjpSdW5u
aW5nIHwgQW5pbWF0aW9uQmFzZTo6UGF1c2VkIHwgQW5pbWF0aW9uQmFzZTo6RmlsbGluZ0Zvd2Fy
ZHMpKQogICAgICAgICB1cGRhdGVPcGFjaXR5KHN0eWxlKTsKLSAgICAgICAgCi0jaWYgRU5BQkxF
KENTU19GSUxURVJTKQorCiAgICAgdXBkYXRlRmlsdGVycyhzdHlsZSk7Ci0jZW5kaWYKIAogI2lm
IEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgdXBkYXRlQmxlbmRNb2RlKHN0eWxlKTsKQEAg
LTIzMjUsMjAgKzIzMTQsMTQgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0QW5pbWF0
aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBjb25zdCBBbmltYXRpb24qIGFuaW0KIHsKICAgICBib29s
IGhhc09wYWNpdHkgPSBrZXlmcmFtZXMuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eU9wYWNp
dHkpOwogICAgIGJvb2wgaGFzVHJhbnNmb3JtID0gcmVuZGVyZXIoKS5pc0JveCgpICYmIGtleWZy
YW1lcy5jb250YWluc1Byb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtKTsKLSNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBoYXNGaWx0ZXIgPSBrZXlmcmFtZXMuY29udGFp
bnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcik7Ci0jZWxzZQotICAgIGJvb2wgaGFz
RmlsdGVyID0gZmFsc2U7Ci0jZW5kaWYKIAogICAgIGlmICghaGFzT3BhY2l0eSAmJiAhaGFzVHJh
bnNmb3JtICYmICFoYXNGaWx0ZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBL
ZXlmcmFtZVZhbHVlTGlzdCB0cmFuc2Zvcm1WZWN0b3IoQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRy
YW5zZm9ybSk7CiAgICAgS2V5ZnJhbWVWYWx1ZUxpc3Qgb3BhY2l0eVZlY3RvcihBbmltYXRlZFBy
b3BlcnR5T3BhY2l0eSk7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIEtleWZyYW1lVmFs
dWVMaXN0IGZpbHRlclZlY3RvcihBbmltYXRlZFByb3BlcnR5V2Via2l0RmlsdGVyKTsKLSNlbmRp
ZgogCiAgICAgc2l6ZV90IG51bUtleWZyYW1lcyA9IGtleWZyYW1lcy5zaXplKCk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBudW1LZXlmcmFtZXM7ICsraSkgewpAQCAtMjM1OCwxMCArMjM0
MSw4IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlvbihkb3VibGUgdGlt
ZU9mZnNldCwgY29uc3QgQW5pbWF0aW9uKiBhbmltCiAgICAgICAgIGlmICgoaGFzT3BhY2l0eSAm
JiBpc0ZpcnN0T3JMYXN0S2V5ZnJhbWUpIHx8IGN1cnJlbnRLZXlmcmFtZS5jb250YWluc1Byb3Bl
cnR5KENTU1Byb3BlcnR5T3BhY2l0eSkpCiAgICAgICAgICAgICBvcGFjaXR5VmVjdG9yLmluc2Vy
dChGbG9hdEFuaW1hdGlvblZhbHVlOjpjcmVhdGUoa2V5LCBrZXlmcmFtZVN0eWxlLT5vcGFjaXR5
KCksIHRmKSk7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAgIGlmICgoaGFzRmls
dGVyICYmIGlzRmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3VycmVudEtleWZyYW1lLmNvbnRhaW5z
UHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRGaWx0ZXIpKQogICAgICAgICAgICAgZmlsdGVyVmVj
dG9yLmluc2VydChGaWx0ZXJBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKGtleSwga2V5ZnJhbWVTdHls
ZS0+ZmlsdGVyKCksIHRmKSk7Ci0jZW5kaWYKICAgICB9CiAKICAgICBpZiAocmVuZGVyZXIoKS5m
cmFtZSgpLnBhZ2UoKSAmJiAhcmVuZGVyZXIoKS5mcmFtZSgpLnBhZ2UoKS0+c2V0dGluZ3MoKS5h
Y2NlbGVyYXRlZENvbXBvc2l0ZWRBbmltYXRpb25zRW5hYmxlZCgpKQpAQCAtMjM3NSwxMCArMjM1
Niw4IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlvbihkb3VibGUgdGlt
ZU9mZnNldCwgY29uc3QgQW5pbWF0aW9uKiBhbmltCiAgICAgaWYgKGhhc09wYWNpdHkgJiYgbV9n
cmFwaGljc0xheWVyLT5hZGRBbmltYXRpb24ob3BhY2l0eVZlY3RvciwgSW50U2l6ZSgpLCBhbmlt
LCBrZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpLCB0aW1lT2Zmc2V0KSkKICAgICAgICAgZGlkQW5p
bWF0ZSA9IHRydWU7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYgKGhhc0ZpbHRl
ciAmJiBtX2dyYXBoaWNzTGF5ZXItPmFkZEFuaW1hdGlvbihmaWx0ZXJWZWN0b3IsIEludFNpemUo
KSwgYW5pbSwga2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSwgdGltZU9mZnNldCkpCiAgICAgICAg
IGRpZEFuaW1hdGUgPSB0cnVlOwotI2VuZGlmCiAKICAgICByZXR1cm4gZGlkQW5pbWF0ZTsKIH0K
QEAgLTI0MjgsNyArMjQwNyw2IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydFRyYW5z
aXRpb24oZG91YmxlIHRpbWVPZmZzZXQsIENTU1Byb3BlcnR5SUQgcHJvcGVyCiAgICAgICAgIH0K
ICAgICB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYgKHByb3BlcnR5ID09IENT
U1Byb3BlcnR5V2Via2l0RmlsdGVyICYmIG1fb3duaW5nTGF5ZXIuaGFzRmlsdGVyKCkpIHsKICAg
ICAgICAgY29uc3QgQW5pbWF0aW9uKiBmaWx0ZXJBbmltID0gdG9TdHlsZS0+dHJhbnNpdGlvbkZv
clByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0RmlsdGVyKTsKICAgICAgICAgaWYgKGZpbHRlckFu
aW0gJiYgIWZpbHRlckFuaW0tPmlzRW1wdHlPclplcm9EdXJhdGlvbigpKSB7CkBAIC0yNDQyLDcg
KzI0MjAsNiBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJs
ZSB0aW1lT2Zmc2V0LCBDU1NQcm9wZXJ0eUlEIHByb3BlcgogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQotI2VuZGlmCiAKICAgICByZXR1cm4gZGlkQW5pbWF0ZTsKIH0KQEAgLTI1Mjks
MTEgKzI1MDYsNyBAQCBDU1NQcm9wZXJ0eUlEIFJlbmRlckxheWVyQmFja2luZzo6Z3JhcGhpY3NM
YXllclRvQ1NTUHJvcGVydHkoQW5pbWF0ZWRQcm9wZXJ0eUlECiAgICAgICAgICAgICBjc3NQcm9w
ZXJ0eSA9IENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZpbHRlcjoKLSNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCiAgICAgICAgICAgICBjc3NQcm9wZXJ0eSA9IENTU1Byb3BlcnR5V2Via2l0Rmls
dGVyOwotI2Vsc2UKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotI2VuZGlmCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBbmltYXRlZFByb3BlcnR5SW52YWxpZDoK
ICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjU1MCwxMCArMjUyMyw4IEBA
IEFuaW1hdGVkUHJvcGVydHlJRCBSZW5kZXJMYXllckJhY2tpbmc6OmNzc1RvR3JhcGhpY3NMYXll
clByb3BlcnR5KENTU1Byb3BlcnR5SUQKICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZFByb3Bl
cnR5T3BhY2l0eTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcjoKICAg
ICAgICAgICAgIHJldHVybiBBbmltYXRlZFByb3BlcnR5QmFja2dyb3VuZENvbG9yOwotI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcjoK
ICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZFByb3BlcnR5V2Via2l0RmlsdGVyOwotI2VuZGlm
CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAvLyBJdCdzIGZpbmUgaWYgd2Ugc2VlIG90
aGVyIGNzcyBwcm9wZXJ0aWVzIGhlcmU7IHRoZXkgYXJlIGp1c3Qgbm90IGFjY2VsZXJhdGVkLgog
ICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmgKaW5kZXggY2Y5MDhhYzg1ZGUwN2M3Yjg4ZGNmNWExODM3YjYzOGQ1MGMzOTQw
Zi4uYjQwY2UyYTk5ZWZkOWMwOTdhNDk0NGU3ZTFmYWU1YjdjYWYzYjg4MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMjMxLDkgKzIzMSw3
IEBAIHB1YmxpYzoKICAgICBHcmFwaGljc0xheWVyKiBsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFy
KCkgY29uc3QgeyByZXR1cm4gbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyLmdldCgpOyB9CiAg
ICAgR3JhcGhpY3NMYXllciogbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSBjb25zdCB7IHJldHVybiBt
X2xheWVyRm9yU2Nyb2xsQ29ybmVyLmdldCgpOyB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CiAgICAgYm9vbCBjYW5Db21wb3NpdGVGaWx0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9jYW5Db21w
b3NpdGVGaWx0ZXJzOyB9Ci0jZW5kaWYKIAogICAgIC8vIFJldHVybiBhbiBlc3RpbWF0ZSBvZiB0
aGUgYmFja2luZyBzdG9yZSBhcmVhIChpbiBwaXhlbHMpIGFsbG9jYXRlZCBieSB0aGlzIG9iamVj
dCdzIEdyYXBoaWNzTGF5ZXJzLgogICAgIGRvdWJsZSBiYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0
ZSgpIGNvbnN0OwpAQCAtMjgwLDkgKzI3OCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVwZGF0
ZU9wYWNpdHkoY29uc3QgUmVuZGVyU3R5bGUmKTsKICAgICB2b2lkIHVwZGF0ZVRyYW5zZm9ybShj
b25zdCBSZW5kZXJTdHlsZSYpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2b2lkIHVw
ZGF0ZUZpbHRlcnMoY29uc3QgUmVuZGVyU3R5bGUmKTsKLSNlbmRpZgogI2lmIEVOQUJMRShDU1Nf
Q09NUE9TSVRJTkcpCiAgICAgdm9pZCB1cGRhdGVCbGVuZE1vZGUoY29uc3QgUmVuZGVyU3R5bGUm
KTsKICNlbmRpZgpAQCAtMzUxLDkgKzM0Nyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzTWFp
bkZyYW1lUmVuZGVyVmlld0xheWVyOwogICAgIGJvb2wgbV91c2luZ1RpbGVkQ2FjaGVMYXllcjsK
ICAgICBib29sIG1fcmVxdWlyZXNPd25CYWNraW5nU3RvcmU7Ci0jaWYgRU5BQkxFKENTU19GSUxU
RVJTKQogICAgIGJvb2wgbV9jYW5Db21wb3NpdGVGaWx0ZXJzOwotI2VuZGlmCiAgICAgYm9vbCBt
X2JhY2tncm91bmRMYXllclBhaW50c0ZpeGVkUm9vdEJhY2tncm91bmQ7CiAKICAgICBzdGF0aWMg
Ym9vbCBtX2NyZWF0aW5nUHJpbWFyeUdyYXBoaWNzTGF5ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDIwMjlkNjI3MWEx
OWMwNGYyZDEzM2RjY2Q2NzIyNGMwMTIzYWVkYTAuLmFhZTJmYmIyZWZlMGM5OTg0MmMxZDcxZGY0
MzY0NGM4ZTA3ZWEzZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNDk5LDkgKzI0OTksNyBAQCBib29sIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvckFuaW1hdGlvbihSZW5kZXJMYXll
ck1vZGVsT2JqZQogICAgIEFuaW1hdGlvbkNvbnRyb2xsZXImIGFuaW1Db250cm9sbGVyID0gcmVu
ZGVyZXIuYW5pbWF0aW9uKCk7CiAgICAgcmV0dXJuIChhbmltQ29udHJvbGxlci5pc1J1bm5pbmdB
bmltYXRpb25PblJlbmRlcmVyKCZyZW5kZXJlciwgQ1NTUHJvcGVydHlPcGFjaXR5LCBhY3RpdmVB
bmltYXRpb25TdGF0ZSkKICAgICAgICAgICAgICYmIChpbkNvbXBvc2l0aW5nTW9kZSgpIHx8ICht
X2NvbXBvc2l0aW5nVHJpZ2dlcnMgJiBDaHJvbWVDbGllbnQ6OkFuaW1hdGVkT3BhY2l0eVRyaWdn
ZXIpKSkKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAgICAgICB8fCBhbmltQ29udHJv
bGxlci5pc1J1bm5pbmdBbmltYXRpb25PblJlbmRlcmVyKCZyZW5kZXJlciwgQ1NTUHJvcGVydHlX
ZWJraXRGaWx0ZXIsIGFjdGl2ZUFuaW1hdGlvblN0YXRlKQotI2VuZGlmIC8vIENTU19GSUxURVJT
CiAgICAgICAgICAgICB8fCBhbmltQ29udHJvbGxlci5pc1J1bm5pbmdBbmltYXRpb25PblJlbmRl
cmVyKCZyZW5kZXJlciwgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0sIGFjdGl2ZUFuaW1hdGlv
blN0YXRlKTsKIH0KIApAQCAtMjUzNiwxNSArMjUzNCwxMCBAQCBib29sIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvckluZGlyZWN0UmVhc29uKFJlbmRlckxheWVy
TW9kZQogCiBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0Zv
ckZpbHRlcnMoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYgcmVuZGVyZXIpIGNvbnN0CiB7Ci0jaWYg
RU5BQkxFKENTU19GSUxURVJTKQogICAgIGlmICghKG1fY29tcG9zaXRpbmdUcmlnZ2VycyAmIENo
cm9tZUNsaWVudDo6RmlsdGVyVHJpZ2dlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IHJldHVybiByZW5kZXJlci5oYXNGaWx0ZXIoKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHJl
bmRlcmVyKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAogYm9vbCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmlzQXN5bmNTY3JvbGxhYmxlU3RpY2t5TGF5ZXIoY29uc3QgUmVuZGVyTGF5
ZXImIGxheWVyLCBjb25zdCBSZW5kZXJMYXllcioqIGVuY2xvc2luZ0FjY2VsZXJhdGVkT3ZlcmZs
b3dMYXllcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckZpbHRlckluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyRmlsdGVySW5mby5jcHAKaW5kZXggZTU5NWRjNmE4MjQ1ZTllOGNiNjAzZTEzYjU1ZmRjNjdi
MjE1NjNjNy4uOGZiYjQxODNiZDdlM2IwMTNiMWU3ODcwYTIxZjE1YjQyYzE4OTU5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5jcHAK
QEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQogI2luY2x1ZGUgIlJlbmRlckxheWVyRmlsdGVySW5mby5oIgogCiAjaW5jbHVk
ZSAiQ2FjaGVkU1ZHRG9jdW1lbnQuaCIKQEAgLTEzOSw1ICsxMzgsMyBAQCB2b2lkIFJlbmRlckxh
eWVyOjpGaWx0ZXJJbmZvOjpyZW1vdmVSZWZlcmVuY2VGaWx0ZXJDbGllbnRzKCkKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKENTU19GSUxURVJTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5oCmluZGV4
IDcxZTgwZTNmYjljOTQ5MzllMDAwZmFmNTlkNGVjY2ZmOWJjYmMwYmUuLjI2NWY3M2YyZWFiMTlh
YTk4YzAzZWU5YWNjMTY5ODU5Njk5OWJhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmgKQEAgLTMxLDggKzMxLDYgQEAKICNpZm5kZWYg
UmVuZGVyTGF5ZXJGaWx0ZXJJbmZvX2gKICNkZWZpbmUgUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvX2gK
IAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFu
ZGxlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnRDbGllbnQuaCIKICNpbmNsdWRlICJS
ZW5kZXJMYXllci5oIgpAQCAtODksNiArODcsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0KICNlbmRpZiAvLyBS
ZW5kZXJMYXllckZpbHRlckluZm9faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCmluZGV4IGE5MjkwYmE5NWUzZWUyMTYwZmQ5MmFi
MjZkMDhkYWM2MGMxZmUwMDkuLmYzMzE2ZWYzYjYwOTQwYzY0MTJkNzg0NDQ4NTRjMzBhYTk4ZjUx
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5jcHAKQEAgLTExNyw5ICsxMTcsNyBAQCB2b2lkIFJlbmRlckxheWVyTW9kZWxPYmpl
Y3Q6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyUwog
ICAgICAgICAgICAgICAgICAgICB8fCBvbGRTdHlsZS0+aGFzQ2xpcCgpICE9IG5ld1N0eWxlLmhh
c0NsaXAoKQogICAgICAgICAgICAgICAgICAgICB8fCBvbGRTdHlsZS0+b3BhY2l0eSgpICE9IG5l
d1N0eWxlLm9wYWNpdHkoKQogICAgICAgICAgICAgICAgICAgICB8fCBvbGRTdHlsZS0+dHJhbnNm
b3JtKCkgIT0gbmV3U3R5bGUudHJhbnNmb3JtKCkKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAg
ICAgICAgICAgICAgICAgICAgIHx8IG9sZFN0eWxlLT5maWx0ZXIoKSAhPSBuZXdTdHlsZS5maWx0
ZXIoKQotI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICBsYXll
cigpLT5yZXBhaW50SW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKICAgICAgICAgICAgIH0gZWxzZSBp
ZiAobmV3U3R5bGUuaGFzVHJhbnNmb3JtKCkgfHwgbmV3U3R5bGUub3BhY2l0eSgpIDwgMSB8fCBu
ZXdTdHlsZS5oYXNGaWx0ZXIoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAppbmRleCBlYTBlZGE2NTUwMDQ1YzhiODdhNzBhYTNiNDk0NTg5MGJkMzYzMmZhLi4z
MjU4Y2Q2YjNmOTM5MmFkYjQ5MjAwZWY3NDQ5MWFkYzE3OGI3YWEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMTIzNSw4ICsxMjM1LDYgQEAgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogUmVuZGVyT2JqZWN0Ojpjb250YWluZXJGb3JSZXBhaW50KCkgY29u
c3QKICAgICAgICAgICAgICAgICByZXBhaW50Q29udGFpbmVyID0gJmNvbXBMYXllci0+cmVuZGVy
ZXIoKTsKICAgICAgICAgfQogICAgIH0KLSAgICAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAg
ICAgaWYgKHZpZXcoKS5oYXNTb2Z0d2FyZUZpbHRlcnMoKSkgewogICAgICAgICBpZiAoUmVuZGVy
TGF5ZXIqIHBhcmVudExheWVyID0gZW5jbG9zaW5nTGF5ZXIoKSkgewogICAgICAgICAgICAgUmVu
ZGVyTGF5ZXIqIGVuY2xvc2luZ0ZpbHRlckxheWVyID0gcGFyZW50TGF5ZXItPmVuY2xvc2luZ0Zp
bHRlckxheWVyKCk7CkBAIC0xMjQ0LDcgKzEyNDIsNiBAQCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiBSZW5kZXJPYmplY3Q6OmNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdAogICAgICAgICAgICAg
ICAgIHJldHVybiAmZW5jbG9zaW5nRmlsdGVyTGF5ZXItPnJlbmRlcmVyKCk7CiAgICAgICAgIH0K
ICAgICB9Ci0jZW5kaWYKIAogICAgIC8vIElmIHdlIGhhdmUgYSBmbG93IHRocmVhZCwgdGhlbiB3
ZSBuZWVkIHRvIGRvIGluZGl2aWR1YWwgcmVwYWludHMgd2l0aGluIHRoZSBSZW5kZXJSZWdpb25z
IGluc3RlYWQuCiAgICAgLy8gUmV0dXJuIHRoZSBmbG93IHRocmVhZCBhcyBhIHJlcGFpbnQgY29u
dGFpbmVyIGluIG9yZGVyIHRvIGNyZWF0ZSBhIGNob2tlcG9pbnQgdGhhdCBhbGxvd3MgdXMgdG8g
Y2hhbmdlCkBAIC0xMjc2LDEyICsxMjczLDEwIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50
VXNpbmdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYg
KHJlcGFpbnRDb250YWluZXItPmhhc0ZpbHRlcigpICYmIHJlcGFpbnRDb250YWluZXItPmxheWVy
KCkgJiYgcmVwYWludENvbnRhaW5lci0+bGF5ZXIoKS0+cmVxdWlyZXNGdWxsTGF5ZXJJbWFnZUZv
ckZpbHRlcnMoKSkgewogICAgICAgICByZXBhaW50Q29udGFpbmVyLT5sYXllcigpLT5zZXRGaWx0
ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KHIpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotI2VuZGlmCiAKICAgICBSZW5kZXJWaWV3JiB2ID0gdmlldygpOwogICAgIGlmIChyZXBhaW50
Q29udGFpbmVyLT5pc1JlbmRlclZpZXcoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuY3BwCmluZGV4IGI1Y2IxMTMzNDVlZTVjNGQ1NDg2OGU5MTQ1ZGEwNmIyMGNmNmI0NGYu
LjgxNDQ3MzMwMGVhNzdjNmM5M2YyZmQ3ZTZmMjNhZGUyMjNkNTg0YzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTExMCw5ICsxMTAsNyBAQCBSZW5kZXJWaWV3
OjpSZW5kZXJWaWV3KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5
bGUpCiAgICAgLCBtX3JlbmRlclF1b3RlSGVhZCgwKQogICAgICwgbV9yZW5kZXJDb3VudGVyQ291
bnQoMCkKICAgICAsIG1fc2VsZWN0aW9uV2FzQ2FyZXQoZmFsc2UpCi0jaWYgRU5BQkxFKENTU19G
SUxURVJTKQogICAgICwgbV9oYXNTb2Z0d2FyZUZpbHRlcnMoZmFsc2UpCi0jZW5kaWYKICNpZiBF
TkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICAsIG1fc2VsZWN0aW9uUmVjdEdhdGhlcmVyKCp0
aGlzKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA0NzY4
YzQyZDBkODBhNjA3Nzk2ODk3YWIxYmViZGIyMTg5ZWFjYTQyLi5iYTE3MzVhYThlNGQ0NTE3Mjgx
ZTA5ZDBlMzMyYTlkNzAwMWFhZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmgKQEAgLTIyMCwxMCArMjIwLDggQEAgcHVibGljOgogICAgIAogICAgIEltYWdlUXVhbGl0eUNv
bnRyb2xsZXImIGltYWdlUXVhbGl0eUNvbnRyb2xsZXIoKTsKIAotI2lmIEVOQUJMRShDU1NfRklM
VEVSUykKICAgICB2b2lkIHNldEhhc1NvZnR3YXJlRmlsdGVycyhib29sIGhhc1NvZnR3YXJlRmls
dGVycykgeyBtX2hhc1NvZnR3YXJlRmlsdGVycyA9IGhhc1NvZnR3YXJlRmlsdGVyczsgfQogICAg
IGJvb2wgaGFzU29mdHdhcmVGaWx0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNTb2Z0d2FyZUZp
bHRlcnM7IH0KLSNlbmRpZgogCiAgICAgdWludDY0X3QgcmVuZGVyZXJDb3VudCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVuZGVyZXJDb3VudDsgfQogICAgIHZvaWQgZGlkQ3JlYXRlUmVuZGVyZXIoKSB7
ICsrbV9yZW5kZXJlckNvdW50OyB9CkBAIC0zNjIsOSArMzYwLDcgQEAgcHJpdmF0ZToKICAgICB1
bnNpZ25lZCBtX3JlbmRlckNvdW50ZXJDb3VudDsKIAogICAgIGJvb2wgbV9zZWxlY3Rpb25XYXND
YXJldDsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBtX2hhc1NvZnR3YXJlRmls
dGVyczsKLSNlbmRpZgogCiAgICAgSGFzaFNldDxSZW5kZXJFbGVtZW50Kj4gbV9yZW5kZXJlcnNX
aXRoUGF1c2VkSW1hZ2VBbmltYXRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDM0MzEyNWMxMDE4NTZmYmJiYWZhNDU4MmE4ODA4
MThlNmI5NmFjY2QuLjhlZmMxNmI5N2NiODliNWM2MzA3MmE1YTRiZjEzODJmYzQ4YzZmMTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAt
NjMxLDEwICs2MzEsOCBAQCBib29sIFJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc0xheW91dChj
b25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYgKHJhcmVOb25J
bmhlcml0ZWREYXRhLT5oYXNGaWx0ZXJzKCkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRh
LT5oYXNGaWx0ZXJzKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiAKICAgICBjb25z
dCBRdW90ZXNEYXRhKiBxdW90ZXNEYXRhQSA9IHJhcmVJbmhlcml0ZWREYXRhLT5xdW90ZXMuZ2V0
KCk7CiAgICAgY29uc3QgUXVvdGVzRGF0YSogcXVvdGVzRGF0YUIgPSBvdGhlci0+cmFyZUluaGVy
aXRlZERhdGEtPnF1b3Rlcy5nZXQoKTsKQEAgLTY5NSwxMyArNjkzLDExIEBAIGJvb2wgUmVuZGVy
U3R5bGU6OmNoYW5nZVJlcXVpcmVzTGF5ZXJSZXBhaW50KGNvbnN0IFJlbmRlclN0eWxlKiBvdGhl
ciwgdW5zaWduZWQmCiAgICAgICAgIC8vIERvbid0IHJldHVybjsga2VlcCBsb29raW5nIGZvciBh
bm90aGVyIGNoYW5nZS4KICAgICB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYg
KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZpbHRlci5nZXQoKSAhPSBvdGhlci0+cmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fZmlsdGVyLmdldCgpCiAgICAgICAgICYmICpyYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9maWx0ZXIuZ2V0KCkgIT0gKm90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9m
aWx0ZXIuZ2V0KCkpIHsKICAgICAgICAgY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVz
IHw9IENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0eUZpbHRlcjsKICAgICAgICAgLy8gRG9uJ3QgcmV0
dXJuOyBrZWVwIGxvb2tpbmcgZm9yIGFub3RoZXIgY2hhbmdlLgogICAgIH0KLSNlbmRpZgogCiAg
ICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX21hc2sgIT0gb3RoZXItPnJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX21hc2sKICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFz
a0JveEltYWdlICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tYXNrQm94SW1hZ2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGI3
NGJjYzYwY2E3NjNmZTA4YmJhNjk3OTRjZTNiZmY5MTdlOTI3ZWIuLmFmYjc3ZDhiMTA5MjMxNGRj
NGU2NjgyMzEzYWZkZjJlZDkwY2E0ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiU3R5bGVCYWNr
Z3JvdW5kRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlQm94RGF0YS5oIgogI2luY2x1ZGUgIlN0eWxl
RGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5oIgorI2luY2x1ZGUgIlN0eWxlRmlsdGVyRGF0YS5o
IgogI2luY2x1ZGUgIlN0eWxlRmxleGlibGVCb3hEYXRhLmgiCiAjaW5jbHVkZSAiU3R5bGVNYXJx
dWVlRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlTXVsdGlDb2xEYXRhLmgiCkBAIC03NCwxMCArNzUs
NiBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0jaW5jbHVkZSAiU3R5bGVGaWx0ZXJEYXRh
LmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAjaW5jbHVkZSAiU3R5
bGVHcmlkRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlR3JpZEl0ZW1EYXRhLmgiCkBAIC0xMDcsMTAg
KzEwNCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIGNv
bXBhcmVFcXVhbChjb25zdCBUJiB0LCBjb25zdCBVJiB1CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIGNsYXNzIEZpbHRlck9wZXJhdGlvbnM7Ci0jZW5k
aWYKLQogY2xhc3MgQm9yZGVyRGF0YTsKIGNsYXNzIENvdW50ZXJDb250ZW50OwogY2xhc3MgQ3Vy
c29yTGlzdDsKQEAgLTU2OCwxMCArNTYyLDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gaW1h
Z2VPdXRzZXRzKG1hc2tCb3hJbWFnZSgpKTsKICAgICB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiAgICAgYm9vbCBoYXNGaWx0ZXJPdXRzZXRzKCkgY29uc3QgeyByZXR1cm4gaGFzRmlsdGVy
KCkgJiYgZmlsdGVyKCkuaGFzT3V0c2V0cygpOyB9CiAgICAgRmlsdGVyT3V0c2V0cyBmaWx0ZXJP
dXRzZXRzKCkgY29uc3QgeyByZXR1cm4gaGFzRmlsdGVyKCkgPyBmaWx0ZXIoKS5vdXRzZXRzKCkg
OiBGaWx0ZXJPdXRzZXRzKCk7IH0KLSNlbmRpZgogCiAgICAgT3JkZXIgcnRsT3JkZXJpbmcoKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxPcmRlcj4oaW5oZXJpdGVkX2ZsYWdzLm1fcnRsT3Jk
ZXJpbmcpOyB9CiAgICAgdm9pZCBzZXRSVExPcmRlcmluZyhPcmRlciBvKSB7IGluaGVyaXRlZF9m
bGFncy5tX3J0bE9yZGVyaW5nID0gbzsgfQpAQCAtMTEzMCwxMyArMTEyMiw5IEBAIHB1YmxpYzoK
ICAgICAKICAgICBFU3BlYWsgc3BlYWsoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFU3Bl
YWs+KHJhcmVJbmhlcml0ZWREYXRhLT5zcGVhayk7IH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKICAgICBGaWx0ZXJPcGVyYXRpb25zJiBtdXRhYmxlRmlsdGVyKCkgeyByZXR1cm4gcmFyZU5v
bkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZmlsdGVyLmFjY2VzcygpLT5tX29wZXJhdGlvbnM7
IH0KICAgICBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXIoKSBjb25zdCB7IHJldHVybiBy
YXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9maWx0ZXItPm1fb3BlcmF0aW9uczsgfQogICAgIGJvb2wg
aGFzRmlsdGVyKCkgY29uc3QgeyByZXR1cm4gIXJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZpbHRl
ci0+bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKS5pc0VtcHR5KCk7IH0KLSNlbHNlCi0gICAgYm9v
bCBoYXNGaWx0ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCiAKICNpZiBFTkFC
TEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIEJsZW5kTW9kZSBibGVuZE1vZGUoKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxCbGVuZE1vZGU+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2VmZmVj
dGl2ZUJsZW5kTW9kZSk7IH0KQEAgLTE1NjUsOSArMTU1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0UnVieVBvc2l0aW9uKFJ1YnlQb3NpdGlvbiBwb3NpdGlvbikgeyBTRVRfVkFSKHJhcmVJ
bmhlcml0ZWREYXRhLCBtX3J1YnlQb3NpdGlvbiwgcG9zaXRpb24pOyB9CiAKLSNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiAgICAgdm9pZCBzZXRGaWx0ZXIoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYg
b3BzKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZmlsdGVyLCBt
X29wZXJhdGlvbnMsIG9wcyk7IH0KLSNlbmRpZgogCiAgICAgdm9pZCBzZXRUYWJTaXplKHVuc2ln
bmVkIHNpemUpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgbV90YWJTaXplLCBzaXplKTsg
fQogCkBAIC0yMDAxLDkgKzE5ODcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFZlY3Rv
cjxTdHlsZURhc2hib2FyZFJlZ2lvbj4mIGluaXRpYWxEYXNoYm9hcmRSZWdpb25zKCk7CiAgICAg
c3RhdGljIGNvbnN0IFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4mIG5vbmVEYXNoYm9hcmRS
ZWdpb25zKCk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgc3RhdGljIGNv
bnN0IEZpbHRlck9wZXJhdGlvbnMmIGluaXRpYWxGaWx0ZXIoKSB7IERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChGaWx0ZXJPcGVyYXRpb25zLCBvcHMsICgpKTsgcmV0dXJuIG9wczsgfQot
I2VuZGlmCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKICAgICBzdGF0aWMgQmxlbmRNb2Rl
IGluaXRpYWxCbGVuZE1vZGUoKSB7IHJldHVybiBCbGVuZE1vZGVOb3JtYWw7IH0KICAgICBzdGF0
aWMgSXNvbGF0aW9uIGluaXRpYWxJc29sYXRpb24oKSB7IHJldHVybiBJc29sYXRpb25BdXRvOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGaWx0ZXJE
YXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEu
Y3BwCmluZGV4IDc3ZDNlZmE0MDk4M2E1M2Q2ZDg0NjZlNjhlYmM4NGQ3MTk3YTlkZmMuLjcxY2Zm
NjIyOGRkMTI2MzMzMzg3NzhlNjIyYzBmYzIwYWIwZDJlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuY3BwCkBAIC0yNyw5ICsyNyw2
IEBACiAjaW5jbHVkZSAiU3R5bGVGaWx0ZXJEYXRhLmgiCiAKICNpbmNsdWRlICJGRUdhdXNzaWFu
Qmx1ci5oIgotCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQotCiAjaW5jbHVkZSAiUmVuZGVyU3R5
bGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsNSArNTMsMyBAQCBib29sIFN0eWxl
RmlsdGVyRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZUZpbHRlckRhdGEmIG8pIGNvbnN0CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVS
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZpbHRl
ckRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEu
aAppbmRleCAyMGVjODk4NjZlZWZjNjkzMzAwNjVhMmE0ZTk4MWIzZjcxYjYyYzQ1Li5lOTg0NDYx
YTJiOGU5MmYzZTEwMTE5ZmZiMDY1NDEyMDEzYjA5Zjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmlsdGVyRGF0YS5oCkBAIC0yNiw4ICsyNiw2IEBACiAj
aWZuZGVmIFN0eWxlRmlsdGVyRGF0YV9oCiAjZGVmaW5lIFN0eWxlRmlsdGVyRGF0YV9oCiAKLSNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0KICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpA
QCAtNTQsNiArNTIsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNl
bmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0KICNlbmRpZiAvLyBTdHlsZUZpbHRlckRhdGFf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGVlODRhZTJlOTU1MTgyNDZlNzE0ZWJkYTFm
NzllM2RhZTY1Y2ZhNTYuLjRjZWY2YTRkYTY5MzIyZmVmZThjYzE4MTVhNDE4MzQxMDliNzc3ZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTQ2LDkgKzQ2LDcgQEAgU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAgICAgLCBtX21hcnF1
ZWUoU3R5bGVNYXJxdWVlRGF0YTo6Y3JlYXRlKCkpCiAgICAgLCBtX211bHRpQ29sKFN0eWxlTXVs
dGlDb2xEYXRhOjpjcmVhdGUoKSkKICAgICAsIG1fdHJhbnNmb3JtKFN0eWxlVHJhbnNmb3JtRGF0
YTo6Y3JlYXRlKCkpCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgICwgbV9maWx0ZXIoU3R5
bGVGaWx0ZXJEYXRhOjpjcmVhdGUoKSkKLSNlbmRpZgogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlP
VVQpCiAgICAgLCBtX2dyaWQoU3R5bGVHcmlkRGF0YTo6Y3JlYXRlKCkpCiAgICAgLCBtX2dyaWRJ
dGVtKFN0eWxlR3JpZEl0ZW1EYXRhOjpjcmVhdGUoKSkKQEAgLTExNyw5ICsxMTUsNyBAQCBpbmxp
bmUgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShj
b25zdCBTdHlsZVJhcmVOb25JbgogICAgICwgbV9tYXJxdWVlKG8ubV9tYXJxdWVlKQogICAgICwg
bV9tdWx0aUNvbChvLm1fbXVsdGlDb2wpCiAgICAgLCBtX3RyYW5zZm9ybShvLm1fdHJhbnNmb3Jt
KQotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAsIG1fZmlsdGVyKG8ubV9maWx0ZXIpCi0j
ZW5kaWYKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgICwgbV9ncmlkKG8ubV9ncmlk
KQogICAgICwgbV9ncmlkSXRlbShvLm1fZ3JpZEl0ZW0pCkBAIC0yMTMsOSArMjA5LDcgQEAgYm9v
bCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEmIG8pIGMKICAgICAgICAgJiYgbV9tYXJxdWVlID09IG8ubV9tYXJxdWVl
CiAgICAgICAgICYmIG1fbXVsdGlDb2wgPT0gby5tX211bHRpQ29sCiAgICAgICAgICYmIG1fdHJh
bnNmb3JtID09IG8ubV90cmFuc2Zvcm0KLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAg
ICYmIG1fZmlsdGVyID09IG8ubV9maWx0ZXIKLSNlbmRpZgogI2lmIEVOQUJMRShDU1NfR1JJRF9M
QVlPVVQpCiAgICAgICAgICYmIG1fZ3JpZCA9PSBvLm1fZ3JpZAogICAgICAgICAmJiBtX2dyaWRJ
dGVtID09IG8ubV9ncmlkSXRlbQpAQCAtMzQ1LDExICszMzksNyBAQCBib29sIFN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGE6OnRyYW5zaXRpb25EYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVO
b25JbmhlcgogCiBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Omhhc0ZpbHRlcnMoKSBj
b25zdAogewotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICByZXR1cm4gbV9maWx0ZXIuZ2V0
KCkgJiYgIW1fZmlsdGVyLT5tX29wZXJhdGlvbnMuaXNFbXB0eSgpOwotI2Vsc2UKLSAgICByZXR1
cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmgKaW5kZXggZTUzNmRlNDRkNTAxZTVhZTM5ZGVjMGJhOTNkNmNhN2QzZTAyY2MwZi4u
NjQxNzAyZGJiYTY0MGRhZDAxMDk4YTgwMjFkNzRmYjkyNDBiOGExOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5oCkBAIC00Myw5ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFuaW1h
dGlvbkxpc3Q7CiBjbGFzcyBTaGFkb3dEYXRhOwogY2xhc3MgU3R5bGVEZXByZWNhdGVkRmxleGli
bGVCb3hEYXRhOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIGNsYXNzIFN0eWxlRmlsdGVyRGF0
YTsKLSNlbmRpZgogY2xhc3MgU3R5bGVGbGV4aWJsZUJveERhdGE7CiAjaWYgRU5BQkxFKENTU19H
UklEX0xBWU9VVCkKIGNsYXNzIFN0eWxlR3JpZERhdGE7CkBAIC0xMTcsMTAgKzExNSw3IEBAIHB1
YmxpYzoKICAgICBEYXRhUmVmPFN0eWxlTWFycXVlZURhdGE+IG1fbWFycXVlZTsgLy8gTWFycXVl
ZSBwcm9wZXJ0aWVzCiAgICAgRGF0YVJlZjxTdHlsZU11bHRpQ29sRGF0YT4gbV9tdWx0aUNvbDsg
Ly8gIENTUzMgbXVsdGljb2wgcHJvcGVydGllcwogICAgIERhdGFSZWY8U3R5bGVUcmFuc2Zvcm1E
YXRhPiBtX3RyYW5zZm9ybTsgLy8gVHJhbnNmb3JtIHByb3BlcnRpZXMgKHJvdGF0ZSwgc2NhbGUs
IHNrZXcsIGV0Yy4pCi0KLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgRGF0YVJlZjxTdHls
ZUZpbHRlckRhdGE+IG1fZmlsdGVyOyAvLyBGaWx0ZXIgb3BlcmF0aW9ucyAodXJsLCBzZXBpYSwg
Ymx1ciwgZXRjLikKLSNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKICAgICBE
YXRhUmVmPFN0eWxlR3JpZERhdGE+IG1fZ3JpZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAKaW5kZXgg
NWIyMzNjODNlMjA1OTljNWIwODVkNjZiMjU4ZmNlNDEzMzk4YTg1ZS4uYzFhNGI1NTQ0NmE5NjYz
YzcxNTc5YjQxMGNkNzNmYTI4NjM5MTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAKQEAgLTEx
NSwxMCArMTE1LDggQEAgdm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6bWFya0FsbENs
aWVudHNGb3JJbnZhbGlkYXRpb24oSW52YWxpZGF0aW9uTW9kZQogCiB2b2lkIFJlbmRlclNWR1Jl
c291cmNlQ29udGFpbmVyOjptYXJrQWxsQ2xpZW50TGF5ZXJzRm9ySW52YWxpZGF0aW9uKCkKIHsK
LSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgZm9yIChhdXRvKiBjbGllbnRMYXllciA6IG1f
Y2xpZW50TGF5ZXJzKQogICAgICAgICBjbGllbnRMYXllci0+ZmlsdGVyTmVlZHNSZXBhaW50KCk7
Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6bWFya0NsaWVu
dEZvckludmFsaWRhdGlvbihSZW5kZXJPYmplY3QmIGNsaWVudCwgSW52YWxpZGF0aW9uTW9kZSBt
b2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA5ZDAyOGYzMDA5NGIzYzkxMjM0N2M5ZDdlNDBhMGM1
NmI0MGMyMGE3Li4wZjYxNGQ2NjViZDA2NTY2NjFkOTNkNzhjMjQzOGU4MDNhODNiYjY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwpAQCAtNTIsNyArNTIsNiBAQCBFTkFCTEVfQ1NQX05FWFQgPSA7CiBFTkFC
TEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLID0gRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9C
UkVBSzsKIEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcgPSBFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HOwog
RU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTiA9IDsKLUVOQUJMRV9DU1NfRklMVEVSUyA9IEVO
QUJMRV9DU1NfRklMVEVSUzsKIEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQgPSBFTkFCTEVfQ1NTX0dS
SURfTEFZT1VUOwogRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTiA9IDsKIEVOQUJMRV9DU1Nf
SU1BR0VfUkVTT0xVVElPTiA9IDsKQEAgLTI3Myw0ICsyNzIsNCBAQCBFTkFCTEVfTExJTlRfQ19M
T09QID0gOwogCiBFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDID0gRU5BQkxFX1NB
VFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQzsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVf
M0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FD
Q0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVO
QUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9D
QU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5U
X0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElP
Tl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FE
QVBUQVRJT04pICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQp
ICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09M
VVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVM
NCkgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUykg
JChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFC
TEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChF
TkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5B
QkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFC
TEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikg
JChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQo
RU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExT
Q1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQp
ICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhS
T1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0Up
ICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQo
RU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZF
UikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
X0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUikgJChFTkFCTEVfSU9TX0FJUlBMQVkpICQo
RU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykg
JChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVO
RE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQ
UkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9N
RURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVE
SUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQo
RU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJ
TFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5B
QkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNf
U1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9G
UkFNRSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJ
QV9RVUVSWSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJT
KSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQo
RU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZH
X0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVN
UExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9F
VkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9B
TEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNV
RV9WQUxVRSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQo
RU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tF
VFMpICQoRU5BQkxFX1BJQ1RVUkVfU0laRVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxF
X1dFQlZUVF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChF
TkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19MT09QKSAkKEVOQUJMRV9TQVRVUkFURURf
TEFZT1VUX0FSSVRITUVUSUMpICQoRkVBVFVSRV9ERUZJTkVTXyQoUExBVEZPUk1fTkFNRSkpOwor
RkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykg
JChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5B
QkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQp
ICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lU
SU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19HUklEX0xB
WU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0Vf
UkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNf
TEVWRUw0KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JV
TEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAk
KEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVS
KSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkg
JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAk
KEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVD
VE9SKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9W
MikgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVf
RlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQQURfREVQUkVD
QVRFRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1F
Ul9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRB
QkFTRSkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9V
SSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9Q
T1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9JT1NfQUlSUExB
WSkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVEVYVF9BVVRPU0la
SU5HKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRP
Ul9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FD
WV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xF
VFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5B
QkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRN
TCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVO
VF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PVElG
SUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykg
JChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BV
QkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9O
X01FRElBX1FVRVJZKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0hBUkVEX1dP
UktFUlMpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJ
UykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJM
RV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJM
RV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RP
VUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VM
RUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9E
QVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJH
TCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJf
U09DS0VUUykgJChFTkFCTEVfUElDVFVSRV9TSVpFUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChF
TkFCTEVfV0VCVlRUX1JFR0lPTlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xU
KSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9MTElOVF9DX0xPT1ApICQoRU5BQkxFX1NBVFVS
QVRFRF9MQVlPVVRfQVJJVEhNRVRJQykgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1F
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCmluZGV4IDlkMDI4ZjMwMDk0YjNjOTEyMzQ3YzlkN2U0MGEwYzU2YjQwYzIw
YTcuLjBmNjE0ZDY2NWJkMDY1NjY2MWQ5M2Q3OGMyNDM4ZTgwM2E4M2JiNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CkBAIC01Miw3ICs1Miw2IEBAIEVOQUJMRV9DU1BfTkVYVCA9IDsKIEVOQUJMRV9DU1NfQk9YX0RF
Q09SQVRJT05fQlJFQUsgPSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLOwogRU5BQkxF
X0NTU19DT01QT1NJVElORyA9IEVOQUJMRV9DU1NfQ09NUE9TSVRJTkc7CiBFTkFCTEVfQ1NTX0RF
VklDRV9BREFQVEFUSU9OID0gOwotRU5BQkxFX0NTU19GSUxURVJTID0gRU5BQkxFX0NTU19GSUxU
RVJTOwogRU5BQkxFX0NTU19HUklEX0xBWU9VVCA9IEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQ7CiBF
TkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OID0gOwogRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVU
SU9OID0gOwpAQCAtMjczLDQgKzI3Miw0IEBAIEVOQUJMRV9MTElOVF9DX0xPT1AgPSA7CiAKIEVO
QUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMgPSBFTkFCTEVfU0FUVVJBVEVEX0xBWU9V
VF9BUklUSE1FVElDOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcp
ICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZF
UkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BB
UlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkg
JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAk
KEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVO
QUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChF
TkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NT
X0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFC
TEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9D
U1NfU0hBUEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTKSAkKEVOQUJMRV9DU1Mz
X1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklT
SUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9B
UkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFO
U0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9FTkNS
WVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVS
UykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0VP
TE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVO
QUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VS
VklDRV9DT05UUk9MUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01P
TlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykg
JChFTkFCTEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9JT1NfQUlSUExBWSkgJChFTkFCTEVfSU9TX0dF
U1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9JT1Nf
VE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFC
TEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMp
ICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJM
RV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xT
X1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNT
KSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0Vf
Q1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVf
TkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPTUlTRVMp
ICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkg
JChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJM
RV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVO
QUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX0NT
U19TQ1JPTExfU05BUCkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1FMX0RB
VEFCQVNFKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5U
KSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFC
TEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVf
VklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVO
QUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FV
RElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVf
UElDVFVSRV9TSVpFUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCVlRUX1JFR0lP
TlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklU
KSAkKEVOQUJMRV9MTElOVF9DX0xPT1ApICQoRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhN
RVRJQykgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CitGRUFUVVJFX0RFRklO
RVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
UykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZf
Q0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BB
VEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQo
RU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NT
X0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxF
X0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJM
RV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAk
KEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5B
QkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxF
X0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNP
Ul9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RB
U0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRB
X1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxF
X0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9G
SUxURVJTKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJM
RV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcp
ICQoRU5BQkxFX0hJR0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJM
RV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9J
TkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBM
RVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9X
RUVLKSAkKEVOQUJMRV9JTlNQRUNUT1IpICQoRU5BQkxFX0lPU19BSVJQTEFZKSAkKEVOQUJMRV9J
T1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxF
X0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAk
KEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVG
SVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQo
RU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09O
VFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJ
U1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9N
T1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVO
QUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChF
TkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9N
SVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9M
SVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQo
RU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkp
ICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFC
TEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9T
UUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykg
JChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFTVBMQVRFX0VM
RU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAk
KEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVO
QUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUp
ICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9X
RUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVO
QUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRf
UkVHSU9OUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZU
TF9KSVQpICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9B
UklUSE1FVElDKSAkKEZFQVRVUkVfREVGSU5FU18kKFBMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4
IDU0YWNlNTk2MWE2NGFlNWQ5YzIwODkyMjdkZTZmYmY0NTE4OTllZGQuLmY3MjlmNWE3OGIxMTZh
NWVjNWMyZTE2ODg4N2M0OTY2Njk2M2MxOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvQW5pbWF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9GaWx0ZXJPcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50
M0QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0lkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmg+CkBAIC01MCwxMCArNTEs
NiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXguaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oPgogCi0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQotI2luY2x1ZGUgPFdlYkNvcmUvRmlsdGVyT3BlcmF0aW9ucy5oPgotI2VuZGlm
Ci0KICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNz
U3VyZmFjZS5oPgogI2VuZGlmCkBAIC02Myw3ICs2MCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogdm9pZCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+OjplbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJz
KQogewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGZpbHRlcnMuc2l6ZSgp
KTsKQEAgLTE3MSw3ICsxNjcsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVy
T3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsCiAKICAgICByZXR1
cm4gdHJ1ZTsKIH0KLSNlbmRpZgogCiB2b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0
aW9ucz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRyYW5zZm9ybU9w
ZXJhdGlvbnMmIHRyYW5zZm9ybU9wZXJhdGlvbnMpCiB7CkBAIC00NDYsMTEgKzQ0MSw5IEBAIHZv
aWQgQXJndW1lbnRDb2RlcjxHcmFwaGljc0xheWVyQW5pbWF0aW9uPjo6ZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlciwgY29uCiAgICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtp
dFRyYW5zZm9ybToKICAgICAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgVHJh
bnNmb3JtQW5pbWF0aW9uVmFsdWUmPih2YWx1ZSkudmFsdWUoKTsKICAgICAgICAgICAgIGJyZWFr
OwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgY2FzZSBBbmltYXRlZFByb3BlcnR5
V2Via2l0RmlsdGVyOgogICAgICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBG
aWx0ZXJBbmltYXRpb25WYWx1ZSY+KHZhbHVlKS52YWx1ZSgpOwogICAgICAgICAgICAgYnJlYWs7
Ci0jZW5kaWYKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CkBAIC01MzQsNyArNTI3LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPEdyYXBoaWNzTGF5ZXJBbmlt
YXRpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBHcmEKICAgICAgICAgICAg
IGtleWZyYW1lcy5pbnNlcnQoVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZShrZXlUaW1l
LCB0cmFuc2Zvcm0sIHRpbWluZ0Z1bmN0aW9uLmdldCgpKSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgY2FzZSBBbmltYXRl
ZFByb3BlcnR5V2Via2l0RmlsdGVyOiB7CiAgICAgICAgICAgICBGaWx0ZXJPcGVyYXRpb25zIGZp
bHRlcjsKICAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZmlsdGVyKSkKQEAgLTU0Miw3
ICs1MzQsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8R3JhcGhpY3NMYXllckFuaW1hdGlvbj46OmRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEdyYQogICAgICAgICAgICAga2V5ZnJhbWVz
Lmluc2VydChGaWx0ZXJBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKGtleVRpbWUsIGZpbHRlciwgdGlt
aW5nRnVuY3Rpb24uZ2V0KCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0jZW5k
aWYKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC02
NTcsMTAgKzY0OCw4IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXJTdGF0ZT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kCiAgICAgaWYgKHN0YXRlLmRl
YnVnQm9yZGVyV2lkdGhDaGFuZ2VkKQogICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmRlYnVnQm9y
ZGVyV2lkdGg7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYgKHN0YXRlLmZpbHRl
cnNDaGFuZ2VkKQogICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmZpbHRlcnM7Ci0jZW5kaWYKIAog
ICAgIGlmIChzdGF0ZS5hbmltYXRpb25zQ2hhbmdlZCkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0
ZS5hbmltYXRpb25zOwpAQCAtNzQzLDEwICs3MzIsOCBAQCBib29sIEFyZ3VtZW50Q29kZXI8Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNv
ZAogICAgIGlmIChzdGF0ZS5kZWJ1Z0JvcmRlcldpZHRoQ2hhbmdlZCAmJiAhZGVjb2Rlci5kZWNv
ZGUoc3RhdGUuZGVidWdCb3JkZXJXaWR0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKICAgICBpZiAoc3RhdGUuZmlsdGVyc0NoYW5nZWQgJiYgIWRl
Y29kZXIuZGVjb2RlKHN0YXRlLmZpbHRlcnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5k
aWYKIAogICAgIGlmIChzdGF0ZS5hbmltYXRpb25zQ2hhbmdlZCAmJiAhZGVjb2Rlci5kZWNvZGUo
c3RhdGUuYW5pbWF0aW9ucykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggZWRjNGMzOGYz
ZTA5ODJiNDVmYWFiZDljYjQ4ZmEwMmVkYmQ2ZTFiNy4uYWYzYWJlZmQzMDUzMDVjY2Y4ZTdiYTEx
MmNlOGNiNGE4Y2ZkZTY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0FyZ3VtZW50Q29kZXJzLmgKQEAgLTQ0LDkgKzQ0LDcgQEAgY2xhc3MgVHJhbnNmb3JtYXRp
b25NYXRyaXg7CiBjbGFzcyBUcmFuc2Zvcm1PcGVyYXRpb25zOwogc3RydWN0IExlbmd0aDsKIAot
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKIGNsYXNzIEZpbHRlck9wZXJhdGlvbnM7Ci0jZW5kaWYK
IAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQogc3RydWN0IEdyYXBoaWNzU3VyZmFjZVRva2Vu
OwpAQCAtNTUsMTIgKzUzLDEwIEBAIHN0cnVjdCBHcmFwaGljc1N1cmZhY2VUb2tlbjsKIAogbmFt
ZXNwYWNlIElQQyB7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+IHsKICAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0
aW9ucyYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3Jl
OjpGaWx0ZXJPcGVyYXRpb25zJik7CiB9OwotI2VuZGlmCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0aW9ucz4gewogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVy
YXRpb25zJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCmluZGV4IDM1OTkyZTViYjQzMGY2ODVkMTg2Y2RlNDhlYTA4NTAwYzViY2NlYjUuLmJh
NzNhYjMwNzVkYTNmYmRmYmNjMDNiOWUwMDY4OTNlNWUxNmExMDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xNTc2LDcgKzE1NzYs
NyBAQCBib29sIEFyZ3VtZW50Q29kZXI8U3RpY2t5UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRz
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZAogICAgIHJldHVybiB0cnVlOwogfQogCi0jaWYg
RU5BQkxFKENTU19GSUxURVJTKSAmJiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmICFV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiB2b2lkIEFyZ3VtZW50Q29kZXI8RmlsdGVyT3BlcmF0
aW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmlsdGVyT3BlcmF0
aW9uJiBmaWx0ZXIpCiB7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGZpbHRlci50eXBlKCkpOwpA
QCAtMTcwNyw3ICsxNzA3LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEZpbHRlck9wZXJhdGlvbnM+
OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBGaWx0ZXJPcGUKIAogICAgIHJldHVy
biB0cnVlOwogfQotI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVSUykgJiYgIVVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKKyNlbmRpZiAvLyAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiB2b2lkIEFyZ3VtZW50Q29kZXI8SURCRGF0YWJh
c2VNZXRhZGF0YT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IElEQkRh
dGFiYXNlTWV0YWRhdGEmIG1ldGFkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oCmluZGV4IDFiZWEwZDFiZDc5YjUyOTdkNDM1NGUyMzg0MjE1MGU5
YmRiZGViOTIuLjljNzZhYzZlMTVkMDhhYjc0MmJkNzQ3OGZlOGMxMGFjNDNhNGUxNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTM3NCw3
ICszNzQsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlN0aWNr
eVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cz4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWlu
dHMmKTsKIH07CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpICYmICFVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpCisjaWYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz4gewogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVy
YXRpb25zJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNv
cmU6OkZpbHRlck9wZXJhdGlvbnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcAppbmRl
eCBmNDQ4MDkzODRmM2M2YmI1ZTRkMDc3ODE0NTM3Y2JjNWI1MDNiMzlmLi5lMzU3NzU2NzdkNTFh
M2YzN2MyNzRiM2E0NGQxMGRmOGFjNTc3NTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUu
Y3BwCkBAIC0zNiwxMiArMzYsMTAgQEAgR3JhcGhpY3NMYXllckNBUmVtb3RlOjp+R3JhcGhpY3NM
YXllckNBUmVtb3RlKCkKIHsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIGJvb2wgR3Jh
cGhpY3NMYXllckNBUmVtb3RlOjpmaWx0ZXJzQ2FuQmVDb21wb3NpdGVkKGNvbnN0IEZpbHRlck9w
ZXJhdGlvbnMmIGZpbHRlcnMpCiB7CiAgICAgcmV0dXJuIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6
ZmlsdGVyc0NhbkJlQ29tcG9zaXRlZChmaWx0ZXJzKTsKIH0KLSNlbmRpZgogCiBQYXNzUmVmUHRy
PFBsYXRmb3JtQ0FMYXllcj4gR3JhcGhpY3NMYXllckNBUmVtb3RlOjpjcmVhdGVQbGF0Zm9ybUNB
TGF5ZXIoUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5
ZXJDbGllbnQqIG93bmVyKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgKaW5kZXggYzg3ODUz
NGYzZGU3Zjk1ZWZhM2UxYjM5MjE2NTk2MDIxNTQ2N2NmMi4uOGE3M2Y4Y2NmZDFmM2JlZWM0ODdi
YWNlNWU4NzNiZTk2NzJjMTkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oCkBAIC00Miwx
MCArNDIsOCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCB+R3JhcGhpY3NMYXllckNB
UmVtb3RlKCk7Ci0gICAgCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQorCiAgICAgdmlydHVhbCBi
b29sIGZpbHRlcnNDYW5CZUNvbXBvc2l0ZWQoY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9u
cyYgZmlsdGVycykgb3ZlcnJpZGU7Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgaXNHcmFwaGljc0xheWVyQ0FSZW1vdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Bs
YXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oCmluZGV4IGY3YzU0OTlmMWIyOTJj
N2VkMjE5NTg2ZjUwMmJmYzhkMzk4MDNmZjguLjkyZWJmZmQ5M2Y4ODE4MWJkOWVjZDBlMWM0MGZk
NzEzYjRjYTc0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oCkBAIC05MSwx
OCArOTEsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVy
cmlkZTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2b2lkIHNldEZyb21W
YWx1ZShjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQ
cm9wZXJ0eUluZGV4KSBvdmVycmlkZTsKLSNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBjb3B5RnJv
bVZhbHVlRnJvbShjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7
CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShmbG9hdCkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgm
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50M0QmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25z
dCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb24q
LCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSBvdmVycmlkZTsKLSNlbmRpZgogICAg
IHZpcnR1YWwgdm9pZCBjb3B5VG9WYWx1ZUZyb20oY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1DQUFu
aW1hdGlvbiopIG92ZXJyaWRlOwogCiAgICAgLy8gS2V5ZnJhbWUtYW5pbWF0aW9uIHByb3BlcnRp
ZXMuCkBAIC0xMTAsOSArMTA2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0
UG9pbnQzRD4mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpDb2xvcj4mKSBvdmVycmlkZTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6
OkZpbHRlck9wZXJhdGlvbj4+JiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3Zl
cnJpZGU7Ci0jZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgY29weVZhbHVlc0Zyb20oY29uc3QgV2Vi
Q29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lk
IHNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZS5tbQppbmRleCAxNmI0MWIwYjRlZTFkNzI0MzNiYjNiZTdlN2Mx
ZDk5MDhjYTk3ZDc1Li41ODYwNGRhZmMyYzgyZWVjODhmZmY5YTc3M2Y3MWRkZDE1NWYzNWI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGUubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCkBAIC00ODIsNyArNDgyLDYgQEAg
dm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRGcm9tVmFsdWUoY29uc3QgQ29sb3Im
IHZhbHVlKQogICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXNbMF0gPSBLZXlmcmFtZVZhbHVlKHZh
bHVlKTsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgUGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZTo6c2V0RnJvbVZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0aW9u
LCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KQogewogICAgIGlmIChhbmltYXRpb25U
eXBlKCkgIT0gQmFzaWMpCkBAIC00OTEsNyArNDkwLDYgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlOjpzZXRGcm9tVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBvcGVyYXRpb24s
IGkKICAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzLnJlc2l6ZSgyKTsKICAgICBtX3Byb3BlcnRp
ZXMua2V5VmFsdWVzWzBdID0gS2V5ZnJhbWVWYWx1ZShvcGVyYXRpb24tPmNsb25lKCkpOwogfQot
I2VuZGlmCiAKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weUZyb21WYWx1ZUZy
b20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7CkBAIC01NDAsNyArNTM4LDYg
QEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUb1ZhbHVlKGNvbnN0IENvbG9y
JiB2YWx1ZSkKICAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzWzFdID0gS2V5ZnJhbWVWYWx1ZSh2
YWx1ZSk7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGU6OnNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBvcGVyYXRpb24s
IGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5
cGUoKSAhPSBCYXNpYykKQEAgLTU1MSw3ICs1NDgsNiBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGU6OnNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBvcGVyYXRpb24sIGlu
dAogICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOwogICAgIG1fcHJvcGVydGll
cy5rZXlWYWx1ZXNbMV0gPSBLZXlmcmFtZVZhbHVlKG9wZXJhdGlvbi0+Y2xvbmUoKSk7CiB9Ci0j
ZW5kaWYKIAogdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5VG9WYWx1ZUZyb20o
Y29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7CkBAIC02MjAsNyArNjE2LDYgQEAg
dm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPENv
bG9yPiYgdmFsdWVzKQogICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMgPSBXVEY6Om1vdmUoa2V5
ZnJhbWVzKTsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZTo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0
aW9uPj4mIHZhbHVlcywgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkKIHsKICAgICBV
TlVTRURfUEFSQU0oaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KTsKQEAgLTYzNiw3ICs2MzEs
NiBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFZhbHVlcyhjb25zdCBWZWN0
b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JgogICAgIAogICAgIG1fcHJvcGVydGllcy5rZXlW
YWx1ZXMgPSBXVEY6Om1vdmUoa2V5ZnJhbWVzKTsKIH0KLSNlbmRpZgogCiB2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGU6OmNvcHlWYWx1ZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRp
b24qIHZhbHVlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IDU4MjdhODg3
NmE5MWQ0OWY3MjBkNzUxNjI3ZDAwZDE0ZWUzYzM3NDAuLjU1ODMxZjMwMTcyOGMyMmVmZmFiYjQy
YjYzOTBhMmI0N2NkMmYyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTEz
MiwxMCArMTMyLDggQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnVwZGF0ZUNsb25lZExh
eWVyUHJvcGVydGllcyhQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUmIGMKICAgICBjbG9uZS5zZXRPcGFx
dWUoaXNPcGFxdWUoKSk7CiAgICAgY2xvbmUuc2V0QmFja2dyb3VuZENvbG9yKGJhY2tncm91bmRD
b2xvcigpKTsKICAgICBjbG9uZS5zZXRDb250ZW50c1NjYWxlKGNvbnRlbnRzU2NhbGUoKSk7Ci0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGlmIChtX3Byb3BlcnRpZXMuZmlsdGVycykKICAg
ICAgICAgY2xvbmUuY29weUZpbHRlcnNGcm9tKHRoaXMpOwotI2VuZGlmCiAgICAgY2xvbmUudXBk
YXRlQ3VzdG9tQXBwZWFyYW5jZShjdXN0b21BcHBlYXJhbmNlKCkpOwogfQogCkBAIC01OTgsNyAr
NTk2LDYgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldE9wYWNpdHkoZmxvYXQgdmFs
dWUpCiAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbjo6T3BhY2l0eUNoYW5nZWQpOwogfQogCi0jaWYgRU5BQkxFKENTU19GSUxU
RVJTKQogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldEZpbHRlcnMoY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYgZmlsdGVycykKIHsKICAgICBtX3Byb3BlcnRpZXMuZmlsdGVycyA9IHN0ZDo6
bWFrZV91bmlxdWU8RmlsdGVyT3BlcmF0aW9ucz4oZmlsdGVycyk7CkBAIC02MjcsNyArNjI0LDYg
QEAgYm9vbCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmZpbHRlcnNDYW5CZUNvbXBvc2l0ZWQoY29u
c3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGUKIHsKICAgICByZXR1cm4gUGxhdGZvcm1DQUxheWVy
TWFjOjpmaWx0ZXJzQ2FuQmVDb21wb3NpdGVkKGZpbHRlcnMpOwogfQotI2VuZGlmCiAKIHZvaWQg
UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXROYW1lKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAppbmRleCA5OTQ1ZGZhODRiZjlmNzFkZWY0NzhkZDExYjdh
ZWQxZmY3MzFhMTFjLi4yNWRkNzk0OWEwNGFkYTY5YjE2MTcwZGI2MmY0ZmM2MjYyZDVjZTE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKQEAgLTEyMiwxMSArMTIyLDkgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgZmxvYXQgb3BhY2l0eSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRPcGFjaXR5KGZsb2F0KSBvdmVycmlkZTsKIAotI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKICAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsdGVycyhjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVy
YXRpb25zJikgb3ZlcnJpZGU7CiAgICAgc3RhdGljIGJvb2wgZmlsdGVyc0NhbkJlQ29tcG9zaXRl
ZChjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CiAgICAgdmlydHVhbCB2b2lkIGNv
cHlGaWx0ZXJzRnJvbShjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqKSBvdmVycmlkZTsK
LSNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQg
c2V0QmxlbmRNb2RlKFdlYkNvcmU6OkJsZW5kTW9kZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNt
YWtlCmluZGV4IGM4ZWM4NmU2Y2VlYmMxMTM4MzY5YmYyOWVmNDY2ZWIzMTMwMTdlZmIuLjAyNjlk
ZmEwYzYwOTRkMjQxMmIyYzBkYjhkODcwOGIyZTdjZDJmMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9j
bWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtl
CkBAIC03MCw3ICs3MCw2IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9CQVRURVJZX1NUQVRVUyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVO
QUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX0NTUzNfVEVYVCBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04gT04pCi1XRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX0ZJTFRFUlMgT04pCiBXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX0dSSURfTEFZT1VUIE9GRikKIFdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfSU1BR0VfU0VUIE9OKQogV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19SRUdJT05TIE9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dU
Sy5jbWFrZQppbmRleCAzNzdiODE5MmZiMTk3NWY3ZjhlMzBjMjExMzlhNjljNGI4NDQyYjhlLi4z
ZmVmYWU3Y2I1YjcxMDFlZTkyNDNhMGM0MGUzMDdhYjMwNGM0OWVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5j
bWFrZQpAQCAtMTEwLDcgKzExMCw2IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9DQU5WQVNfUEFUSCBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxV
RShFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1MzX1RFWFQgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTiBPRkYpCi1XRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX0ZJTFRFUlMgT04pCiBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX0dSSURfTEFZT1VUIE9GRikKIFdFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfSU1BR0VfU0VUIE9GRikKIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfUkVHSU9OUyBPTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zTWFjLmNtYWtlIGIvU291cmNlL2NtYWtlL09w
dGlvbnNNYWMuY21ha2UKaW5kZXggZjgwMzE3MzUzZWJmMmEyMmZjYzNiN2RhMGMzYWIyODg0NGQ0
NWUwMC4uYWNlNzYyZDI2NzcwYmYzM2MwODg5MTJiNTZkN2ExOTU4OGYyNzQxOSAxMDA2NDQKLS0t
IGEvU291cmNlL2NtYWtlL09wdGlvbnNNYWMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlv
bnNNYWMuY21ha2UKQEAgLTIwLDcgKzIwLDYgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX0NTUF9ORVhUIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsgT04pCiBXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HIE9OKQogV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTiBPRkYpCi1X
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX0ZJTFRFUlMgT04pCiBX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX0dSSURfTEFZT1VUIE9O
KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19JTUFHRV9PUklF
TlRBVElPTiBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NT
X0lNQUdFX1JFU09MVVRJT04gT0ZGKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZl
YXR1cmVzLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCmluZGV4IDlh
NzRjOTQxNTFjZDYzOTYwYjI5NDY4Y2RiZmUxYjRkYTdkMTE0MmYuLjYyN2E2MjhkOWMwNWYyMDhl
ZjE3M2E3YjAzMGE3MTZjMzFjMDUyNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRG
ZWF0dXJlcy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKQEAg
LTM2LDcgKzM2LDYgQEAgbWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BU
SU9OX0RFRklORShFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLICJUb2dnbGUgQm94IERl
Y29yYXRpb24gYnJlYWsgKENTUyBCYWNrZ3JvdW5kcyBhbmQgQm9yZGVycykgc3VwcG9ydCIgT04p
CiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0NTU19DT01QT1NJVElORyAiVG9nZ2xl
IENTUyBDT01QT1NJVElORyBzdXBwb3J0IiBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUo
RU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTiAiVG9nZ2xlIENTUyBEZXZpY2UgQWRhcHRhdGlv
biBzdXBwb3J0IiBPRkYpCi0gICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0NTU19GSUxU
RVJTICJUb2dnbGUgQ1NTIEZpbHRlcnMgc3VwcG9ydCIgT0ZGKQogICAgIFdFQktJVF9PUFRJT05f
REVGSU5FKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQgIlRvZ2dsZSBDU1MgR3JpZCBMYXlvdXQgc3Vw
cG9ydCIgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9DU1NfSU1BR0VfT1JJ
RU5UQVRJT04gIlRvZ2dsZSBDU1MgaW1hZ2Utb3JpZW50YXRpb24gc3VwcG9ydCIgT0ZGKQogICAg
IFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiAiVG9nZ2xl
IENTUyBpbWFnZS1yZXNvbHV0aW9uIHN1cHBvcnQiIE9GRikKZGlmZiAtLWdpdCBhL1NvdXJjZS9j
bWFrZWNvbmZpZy5oLmNtYWtlIGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKaW5kZXggMGE5
YThlZGNhMGRiMjU1MTA0YTliNjMwMjg1NjUyYjVlMTUxMWQ3YS4uMzkzYjMzMGYyYjVjNjVlMmMw
NGJhNDAxNTg3MzU2Nzg1YjQzMWVjNyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlY29uZmlnLmgu
Y21ha2UKKysrIGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKQEAgLTIxLDcgKzIxLDYgQEAK
ICNjbWFrZWRlZmluZTAxIEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsKICNjbWFrZWRl
ZmluZTAxIEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04KICNjbWFrZWRlZmluZTAxIEVOQUJM
RV9DU1NfQ09NUE9TSVRJTkcKLSNjbWFrZWRlZmluZTAxIEVOQUJMRV9DU1NfRklMVEVSUwogI2Nt
YWtlZGVmaW5lMDEgRU5BQkxFX0NTU19HUklEX0xBWU9VVAogI2NtYWtlZGVmaW5lMDEgRU5BQkxF
X0NTU19JTUFHRV9PUklFTlRBVElPTgogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0NTU19JTUFHRV9S
RVNPTFVUSU9OCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggY2QwMzJkNTZhYzVmMzM4Mjk1YmE1M2RlZGI4ODllOTNjNjZkMWYxZi4uMTkzNzViMjEz
MjNmZWU0MGQyZjRmODQ2MGE5MjdmNmE4Y2U5Njc1MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE0LTA5LTA0ICBF
dmEgQmFsYXpzZmFsdmkgIDxldmFiLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgUmVtb3ZlIENTU19GSUxURVJTIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjUyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBt
OgorCiAyMDE0LTA5LTAzICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBHTWFpbkxvb3BTb3VyY2UgaXMgZXhwb3NlZCB0byByYWNlIGNvbmRpdGlvbnMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQppbmRleCA3YzhhZDgxMGI2ZDVjNmM2
MTAxM2FlMTFlMTE2OGU2Y2Y0NmJhODcyLi45YTljMzJjOWZkNDFhOTI2M2E3ZTEyZTA5OTg2ZjAy
ZWY2NWY2MzljIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxp
c3QucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0x
NzgsOSArMTc4LDYgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJjc3Mtc2hh
cGVzIiwgZGVzYyA9PiAiVG9nZ2xlIENTUyBTaGFwZXMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9DU1NfU0hBUEVTIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGNzc1NoYXBl
c1N1cHBvcnQgfSwKIAotICAgIHsgb3B0aW9uID0+ICJjc3MtZmlsdGVycyIsIGRlc2MgPT4gIlRv
Z2dsZSBDU1MgRmlsdGVycyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTU19G
SUxURVJTIiwgZGVmYXVsdCA9PiAoaXNBcHBsZU1hY1dlYktpdCgpIHx8IGlzSU9TV2ViS2l0KCkg
fHwgaXNFZmwoKSB8fCBpc0d0aygpKSwgdmFsdWUgPT4gXCRjc3NGaWx0ZXJzU3VwcG9ydCB9LAot
CiAgICAgeyBvcHRpb24gPT4gImNzcy1ncmlkLWxheW91dCIsIGRlc2MgPT4gIlRvZ2dsZSBDU1Mg
R3JpZCBMYXlvdXQgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DU1NfR1JJRF9M
QVlPVVQiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkY3NzR3JpZExheW91dFN1cHBvcnQgfSwK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGZiZmViZTI2ZjQ0YWVkZWI3YjEwZDM4ZjJjYzBiOWY1NGQ3OTY2ZDUuLjNkNTc3
NWJlZDUxYjkxZDg2NmVkNDRmNzVlYmQ2MTQ1M2U2YmZjYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxNC0wOS0wNCAgRXZhIEJhbGF6c2ZhbHZpICA8ZXZhYi51LXN6ZWdlZEBwYXJ0bmVyLnNh
bXN1bmcuY29tPgorCisgICAgICAgIFJlbW92ZSBDU1NfRklMVEVSUyBmbGFnCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY1MjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0
RXhwZWN0YXRpb25zOgorCiAyMDE0LTA5LTAyICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNo
aW5ndG9uLmVkdT4KIAogICAgICAgICBMZWdhY3lQcm9maWxlcjogcmVtb3ZlIHJlZHVuZGFudCBQ
cm9maWxlTm9kZSBtZW1iZXJzIGFuZCBvdGhlciBjbGVhbnVwCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDNmYmU2YjVmOTdlOTJiMzk3ZjRmNDI5MDlhNTU5
MjBjZjYyYmVhZTIuLjc4MDZiMDFkNTFkMjNkNTEwZmY0OTM1NGNhOTFkOTk2ZGNhMTEwNzggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0yODgsNyArMjg4
LDYgQEAgd2Via2l0Lm9yZy9iLzY1NzA5IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdl
Lm91dHNpZGVzb3VyY2UuaHRtbCBbIEZhaWx1cmUKICMgQnVnIGluIHRoZSB0ZXN0IGl0c2VsZiwg
YXMgdGhlIGlucHV0IGJveCBjYW4gYmUgYmlnIGVub3VnaCBmb3IgdGhlIGdpdmVuIGNvb3JkaW5h
dGVzIHRvIGJlIGluc2lkZSBpdC4KIEJ1ZyhFRkwpIGZhc3QvZm9ybXMvaW5wdXQtdGV4dC1jbGlj
ay1vdXRzaWRlLmh0bWwKIAotIyBDU1MgRmlsdGVycyBzdXBwb3J0IG5vdCB5ZXQgZW5hYmxlZCAo
bmVlZHMgRU5BQkxFX0NTU19GSUxURVJTKS4KIHdlYmtpdC5vcmcvYi84NTQ2NSBjc3MzL2ZpbHRl
cnMgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi84NTQ2NSBjb21wb3NpdGluZy9maWx0ZXJzIFsgU2tp
cCBdCiAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlMDMyOGFhNGE5
YjNmN2RhNTE0OTEwNjk0NzgwYzdmMWFiZTBhNTQ5Li45N2ZlMDgwYmE4MTBhOGJjN2I0YTk2MTBm
YmI1NDFiYTQ5NzEwYmRkIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTQtMDktMDQgIEV2YSBCYWxhenNmYWx2aSAgPGV2YWIudS1zemVn
ZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KKworICAgICAgICBSZW1vdmUgQ1NTX0ZJTFRFUlMgZmxh
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTI5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3Vy
Y2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9u
c0dUSy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc01hYy5jbWFrZToKKyAg
ICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2U6CisgICAgICAgICogU291
cmNlL2NtYWtlY29uZmlnLmguY21ha2U6CisKIDIwMTQtMDktMDEgIEd5dXlvdW5nIEtpbSAgPGd5
dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbQ01BS0VdIEJ1aWxkIHdhcm5pbmcg
YnkgSU5URVJGQUNFX0xJTktfTElCUkFSSUVTCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMv
Q2hhbmdlTG9nIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRleCBiMWYyNGY3OTdjNTJl
NjU5MjA4MmFmMDU2MzRhZmZmNWRjMzg4MTU3Li40MjM5YjFmMWEzMjA4MDUxNmEwZjA4NzA5OWE1
N2MyMGNhYWYyNmEzIDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wOS0wNCAg
RXZhIEJhbGF6c2ZhbHZpICA8ZXZhYi51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgorCisg
ICAgICAgIFJlbW92ZSBDU1NfRklMVEVSUyBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY1MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHdpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVz
LnByb3BzOgorICAgICAgICAqIHdpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8u
cHJvcHM6CisKIDIwMTQtMDgtMjcgIHBlYXZvQG91dGxvb2suY29tICA8cGVhdm9Ab3V0bG9vay5j
b20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBMaW5rIGVycm9yLgpkaWZmIC0tZ2l0IGEvV2ViS2l0
TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnByb3BzIGIvV2ViS2l0
TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnByb3BzCmluZGV4IGJh
Njg3MjEwYzg3MjE4MDgzN2VmM2RlNGYxMzU1MWJmODg1Yzk4NjkuLjY1NzU2OTEzNGY2YjQ1M2Zk
Y2FkZDQxNGMwZTA0ZWRhNzg0YzE1NzYgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy93aW4v
dG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy5wcm9wcworKysgYi9XZWJLaXRMaWJyYXJpZXMv
d2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMucHJvcHMKQEAgLTEyLDcgKzEyLDYgQEAK
ICAgICA8RU5BQkxFX0NTUzNfVEVYVCAvPgogICAgIDxFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLPkVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUs8L0VOQUJMRV9DU1NfQk9YX0RF
Q09SQVRJT05fQlJFQUs+CiAgICAgPEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcgLz4KLSAgICA8RU5B
QkxFX0NTU19GSUxURVJTPkVOQUJMRV9DU1NfRklMVEVSUzwvRU5BQkxFX0NTU19GSUxURVJTPgog
ICAgIDxFTkFCTEVfQ1NTX0dSSURfTEFZT1VUPkVOQUJMRV9DU1NfR1JJRF9MQVlPVVQ8L0VOQUJM
RV9DU1NfR1JJRF9MQVlPVVQ+CiAgICAgPEVOQUJMRV9DU1NfSU1BR0VfU0VUPkVOQUJMRV9DU1Nf
SU1BR0VfU0VUPC9FTkFCTEVfQ1NTX0lNQUdFX1NFVD4KICAgICA8RU5BQkxFX0NTU19SRUdJT05T
PkVOQUJMRV9DU1NfUkVHSU9OUzwvRU5BQkxFX0NTU19SRUdJT05TPgpAQCAtODksNyArODgsNyBA
QAogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtRGVmaW5pdGlvbkdyb3VwPgogICAgIDxDbENv
bXBpbGU+Ci08UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+JChFTkFCTEVfQ1NQX05FWFQpOyQoRU5B
QkxFX1BST01JU0VTKTskKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSk7JChFTkFCTEVf
M0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0FD
Q0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORyk7JChFTkFCTEVfQ0FOVkFTX1BBVEgpOyQoRU5B
QkxFX0NBTlZBU19QUk9YWSk7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NT
UzNfQ09ORElUSU9OQUxfUlVMRVMpOyQoRU5BQkxFX0NTU19JTUFHRV9TRVQpOyQoRU5BQkxFX0NT
UzNfVEVYVCk7JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKTskKEVOQUJMRV9DU1Nf
RklMVEVSUyk7JChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7
JChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVf
Q1NTX1NFTEVDVE9SU19MRVZFTDQpOyQoRU5BQkxFX0NTU19TSEFQRVMpOyQoRU5BQkxFX0NTU19T
SEFQRV9JTlNJREUpOyQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVFJBTlNJVElP
TlNfVU5QUkVGSVhFRCk7JChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKTskKEVOQUJMRV9E
QVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCk7JChFTkFCTEVfREFUQV9UUkFOU0ZF
Ul9JVEVNUyk7JChFTkFCTEVfREVUQUlMU19FTEVNRU5UKTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5U
QVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5B
QkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChFTkFCTEVfR0FNRVBB
RCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9U
SFJPVFRMSU5HKTskKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpOyQoRU5BQkxFX0lDT05EQVRBQkFT
RSk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUik7
JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpOyQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRUxPQ0FMKTskKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKTskKEVOQUJMRV9JTlBVVF9UWVBF
X1RJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSyk7JChFTkFCTEVfTEVHQUNZX0NTU19WRU5E
T1JfUFJFRklYRVMpOyQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9MSU5L
X1BSRUZFVENIKTskKEVOQUJMRV9MSU5LX1BSRVJFTkRFUik7JChFTkFCTEVfTUFUSE1MKTskKEVO
QUJMRV9NRVRFUl9FTEVNRU5UKTskKEVOQUJMRV9NSUNST0RBVEEpOyQoRU5BQkxFX01PVVNFX0NV
UlNPUl9TQ0FMRSk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfUFJPWElNSVRZX0VW
RU5UUyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKTsk
KEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpOyQoRU5BQkxFX1NIQURPV19ET00pOyQoRU5BQkxFX1NI
QVJFRF9XT1JLRVJTKTskKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpOyQoRU5BQkxFX01F
RElBX1NPVVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfU1FMX0RBVEFC
QVNFKTskKEVOQUJMRV9TVFlMRV9TQ09QRUQpOyQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCk7JChF
TkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19G
T05UUyk7JChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCk7JChFTkFCTEVfVEVYVF9BVVRPU0laSU5H
KTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfVklERU9fVFJBQ0spOyQoRU5BQkxFX1ZJRVdfTU9E
RV9DU1NfTUVESUEpOyQoRU5BQkxFX1dFQl9BVURJTyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQo
RU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKTskKEVOQUJMRV9YSFJf
VElNRU9VVCk7JChFTkFCTEVfWFNMVCk7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXBy
b2Nlc3NvckRlZmluaXRpb25zPgorPFByZXByb2Nlc3NvckRlZmluaXRpb25zPiQoRU5BQkxFX0NT
UF9ORVhUKTskKEVOQUJMRV9QUk9NSVNFUyk7JChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFT
KTskKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpOyQoRU5BQkxFX0NBTlZB
U19QQVRIKTskKEVOQUJMRV9DQU5WQVNfUFJPWFkpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5H
KTskKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTKTskKEVOQUJMRV9DU1NfSU1BR0VfU0VU
KTskKEVOQUJMRV9DU1MzX1RFWFQpOyQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyk7
JChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChFTkFCTEVf
Q1NTX0NPTVBPU0lUSU5HKTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQpOyQoRU5BQkxFX0NTU19TSEFQRVMpOyQoRU5BQkxFX0NTU19TSEFQRV9JTlNJ
REUpOyQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVFJBTlNJVElPTlNfVU5QUkVG
SVhFRCk7JChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKTskKEVOQUJMRV9EQVRBR1JJRCk7
JChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCk7JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7
JChFTkFCTEVfREVUQUlMU19FTEVNRU5UKTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQo
RU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVf
U1lTVEVNKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFC
TEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5H
KTskKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpOyQoRU5BQkxFX0lDT05EQVRBQkFTRSk7JChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUik7JChFTkFCTEVf
SU5QVVRfU1BFRUNIKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpOyQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVfSU5DT01QTEVURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FM
KTskKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKTskKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpOyQo
RU5BQkxFX0lOUFVUX1RZUEVfV0VFSyk7JChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklY
RVMpOyQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9MSU5LX1BSRUZFVENI
KTskKEVOQUJMRV9MSU5LX1BSRVJFTkRFUik7JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9NRVRF
Ul9FTEVNRU5UKTskKEVOQUJMRV9NSUNST0RBVEEpOyQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FM
RSk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUyk7JChF
TkFCTEVfUVVPVEEpOyQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKTskKEVOQUJMRV9T
Q1JJUFRFRF9TUEVFQ0gpOyQoRU5BQkxFX1NIQURPV19ET00pOyQoRU5BQkxFX1NIQVJFRF9XT1JL
RVJTKTskKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpOyQoRU5BQkxFX01FRElBX1NPVVJD
RSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVO
QUJMRV9TVFlMRV9TQ09QRUQpOyQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCk7JChFTkFCTEVfU1ZH
KTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChF
TkFCTEVfVEVNUExBVEVfRUxFTUVOVCk7JChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKTskKEVOQUJM
RV9WSURFTyk7JChFTkFCTEVfVklERU9fVFJBQ0spOyQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVE
SUEpOyQoRU5BQkxFX1dFQl9BVURJTyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dF
Ql9USU1JTkcpOyQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKTskKEVOQUJMRV9YSFJfVElNRU9VVCk7
JChFTkFCTEVfWFNMVCk7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRl
ZmluaXRpb25zPgogICAgIDwvQ2xDb21waWxlPgogICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CiAg
IDxJdGVtR3JvdXA+CkBAIC0xMzcsMTAgKzEzNiw2IEBACiAgICAgICA8VmFsdWU+JChFTkFCTEVf
Q1NTX0NPTVBPU0lUSU5HKTwvVmFsdWU+CiAgICAgICA8RW52aXJvbm1lbnRWYXJpYWJsZT50cnVl
PC9FbnZpcm9ubWVudFZhcmlhYmxlPgogICAgIDwvQnVpbGRNYWNybz4KLSAgICA8QnVpbGRNYWNy
byBJbmNsdWRlPSJFTkFCTEVfQ1NTX0ZJTFRFUlMiPgotICAgICAgPFZhbHVlPiQoRU5BQkxFX0NT
U19GSUxURVJTKTwvVmFsdWU+Ci0gICAgICA8RW52aXJvbm1lbnRWYXJpYWJsZT50cnVlPC9FbnZp
cm9ubWVudFZhcmlhYmxlPgotICAgIDwvQnVpbGRNYWNybz4KICAgICA8QnVpbGRNYWNybyBJbmNs
dWRlPSJFTkFCTEVfQ1NTX0lNQUdFX1NFVCI+CiAgICAgICA8VmFsdWU+JChFTkFCTEVfQ1NTX0lN
QUdFX1NFVCk8L1ZhbHVlPgogICAgICAgPEVudmlyb25tZW50VmFyaWFibGU+dHJ1ZTwvRW52aXJv
bm1lbnRWYXJpYWJsZT4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNw
cm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnByb3BzIGIvV2ViS2l0TGlicmFyaWVzL3dpbi90b29s
cy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8ucHJvcHMKaW5kZXggNmVkZGRmNzI0YjQ4NWQy
MzJmNzI1OWU5YjdmYzc0YzM0NjNiMmI4MS4uMWI1NGU3MmY5NWQyZTMxZmRmOWFmODY3ZjAwZTQ4
NjU3NDdlYjNkMCAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3Bz
L0ZlYXR1cmVEZWZpbmVzQ2Fpcm8ucHJvcHMKKysrIGIvV2ViS2l0TGlicmFyaWVzL3dpbi90b29s
cy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8ucHJvcHMKQEAgLTEyLDcgKzEyLDYgQEAKICAg
ICA8RU5BQkxFX0NTUzNfVEVYVCAvPgogICAgIDxFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JS
RUFLPkVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUs8L0VOQUJMRV9DU1NfQk9YX0RFQ09S
QVRJT05fQlJFQUs+CiAgICAgPEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcgLz4KLSAgICA8RU5BQkxF
X0NTU19GSUxURVJTPkVOQUJMRV9DU1NfRklMVEVSUzwvRU5BQkxFX0NTU19GSUxURVJTPgogICAg
IDxFTkFCTEVfQ1NTX0dSSURfTEFZT1VUPkVOQUJMRV9DU1NfR1JJRF9MQVlPVVQ8L0VOQUJMRV9D
U1NfR1JJRF9MQVlPVVQ+CiAgICAgPEVOQUJMRV9DU1NfSU1BR0VfU0VUPkVOQUJMRV9DU1NfSU1B
R0VfU0VUPC9FTkFCTEVfQ1NTX0lNQUdFX1NFVD4KICAgICA8RU5BQkxFX0NTU19SRUdJT05TPkVO
QUJMRV9DU1NfUkVHSU9OUzwvRU5BQkxFX0NTU19SRUdJT05TPgpAQCAtODgsNyArODcsNyBAQAog
ICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtRGVmaW5pdGlvbkdyb3VwPgogICAgIDxDbENvbXBp
bGU+Ci08UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+JChFTkFCTEVfQ1NQX05FWFQpOyQoRU5BQkxF
X1BST01JU0VTKTskKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSk7JChFTkFCTEVfM0Rf
UkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0FDQ0VM
RVJBVEVEX09WRVJGTE9XX1NDUk9MTElORyk7JChFTkFCTEVfQ0FOVkFTX1BBVEgpOyQoRU5BQkxF
X0NBTlZBU19QUk9YWSk7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NTUzNf
Q09ORElUSU9OQUxfUlVMRVMpOyQoRU5BQkxFX0NTU19JTUFHRV9TRVQpOyQoRU5BQkxFX0NTUzNf
VEVYVCk7JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKTskKEVOQUJMRV9DU1NfRklM
VEVSUyk7JChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChF
TkFCTEVfQ1NTX0NPTVBPU0lUSU5HKTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVfQ1NT
X1NIQVBFUyk7JChFTkFCTEVfQ1NTX1NIQVBFX0lOU0lERSk7JChFTkFCTEVfQ1NTX1RSQU5TRk9S
TVNfQU5JTUFUSU9OU19UUkFOU0lUSU9OU19VTlBSRUZJWEVEKTskKEVOQUJMRV9DVVNUT01fU0NI
RU1FX0hBTkRMRVIpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5U
KTskKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQp
OyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7
JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0ZVTExTQ1JF
RU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVf
SElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpOyQoRU5BQkxFX0hJR0hfRFBJX0NBTlZB
Uyk7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKTsk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9O
VEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKTsk
KEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUyk7JChFTkFCTEVfTEVHQUNZX05PVElG
SUNBVElPTlMpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX0xJTktfUFJFUkVOREVS
KTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX0VMRU1FTlQpOyQoRU5BQkxFX01JQ1JP
REFUQSk7JChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKTskKEVOQUJMRV9OT1RJRklDQVRJT05T
KTskKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVfTkFW
SUdBVE9SX0NPTlRFTlRfVVRJTFMpOyQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCk7JChFTkFCTEVf
U0hBRE9XX0RPTSk7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX01FRElBX0NPTlRS
T0xTX1NDUklQVCk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFUSVNU
SUNTKTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX1NUWUxFX1NDT1BFRCk7JChFTkFC
TEVfU1VCUElYRUxfTEFZT1VUKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19C
SU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKTsk
KEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9WSURFT19U
UkFDSyk7JChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSk7JChFTkFCTEVfV0VCX0FVRElPKTsk
KEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV0VCVlRU
X1JFR0lPTlMpOyQoRU5BQkxFX1hIUl9USU1FT1VUKTskKEVOQUJMRV9YU0xUKTslKFByZXByb2Nl
c3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Cis8UHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM+JChFTkFCTEVfQ1NQX05FWFQpOyQoRU5BQkxFX1BST01JU0VTKTskKEVOQUJM
RV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSk7JChFTkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1ND
Uk9MTElORyk7JChFTkFCTEVfQ0FOVkFTX1BBVEgpOyQoRU5BQkxFX0NBTlZBU19QUk9YWSk7JChF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMp
OyQoRU5BQkxFX0NTU19JTUFHRV9TRVQpOyQoRU5BQkxFX0NTUzNfVEVYVCk7JChFTkFCTEVfQ1NT
X0JPWF9ERUNPUkFUSU9OX0JSRUFLKTskKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpOyQoRU5BQkxF
X0NTU19TSEFERVJTKTskKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpOyQoRU5BQkxFX0NTU19SRUdJ
T05TKTskKEVOQUJMRV9DU1NfU0hBUEVTKTskKEVOQUJMRV9DU1NfU0hBUEVfSU5TSURFKTskKEVO
QUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1RSQU5TSVRJT05TX1VOUFJFRklYRUQpOyQo
RU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUik7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxF
X0RBVEFMSVNUX0VMRU1FTlQpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5BQkxF
X0RFVEFJTFNfRUxFTUVOVCk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9E
SVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9GSUxFX1NZU1RFTSk7
JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dBTUVQQUQpOyQoRU5BQkxFX0dFT0xP
Q0FUSU9OKTskKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORyk7JChFTkFC
TEVfSElHSF9EUElfQ0FOVkFTKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lOREVY
RURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQ
RUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVU
SU1FX0lOQ09NUExFVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCk7JChFTkFC
TEVfSU5QVVRfVFlQRV9NT05USCk7JChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKTskKEVOQUJMRV9J
TlBVVF9UWVBFX1dFRUspOyQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKTskKEVO
QUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7JChFTkFC
TEVfTElOS19QUkVSRU5ERVIpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfRUxFTUVO
VCk7JChFTkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpOyQoRU5B
QkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpOyQoRU5BQkxFX1FV
T1RBKTskKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUyk7JChFTkFCTEVfU0NSSVBURURf
U1BFRUNIKTskKEVOQUJMRV9TSEFET1dfRE9NKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChF
TkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKTskKEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5B
QkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfU1RZ
TEVfU0NPUEVEKTskKEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpOyQoRU5BQkxFX1NWRyk7JChFTkFC
TEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1RF
TVBMQVRFX0VMRU1FTlQpOyQoRU5BQkxFX1RFWFRfQVVUT1NJWklORyk7JChFTkFCTEVfVklERU8p
OyQoRU5BQkxFX1ZJREVPX1RSQUNLKTskKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKTskKEVO
QUJMRV9XRUJfQVVESU8pOyQoRU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5H
KTskKEVOQUJMRV9XRUJWVFRfUkVHSU9OUyk7JChFTkFCTEVfWEhSX1RJTUVPVVQpOyQoRU5BQkxF
X1hTTFQpOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz4KICAgICA8L0NsQ29tcGlsZT4KICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbUdy
b3VwPgpAQCAtMTM2LDEwICsxMzUsNiBAQAogICAgICAgPFZhbHVlPiQoRU5BQkxFX0NTU19DT01Q
T1NJVElORyk8L1ZhbHVlPgogICAgICAgPEVudmlyb25tZW50VmFyaWFibGU+dHJ1ZTwvRW52aXJv
bm1lbnRWYXJpYWJsZT4KICAgICA8L0J1aWxkTWFjcm8+Ci0gICAgPEJ1aWxkTWFjcm8gSW5jbHVk
ZT0iRU5BQkxFX0NTU19GSUxURVJTIj4KLSAgICAgIDxWYWx1ZT4kKEVOQUJMRV9DU1NfRklMVEVS
Uyk8L1ZhbHVlPgotICAgICAgPEVudmlyb25tZW50VmFyaWFibGU+dHJ1ZTwvRW52aXJvbm1lbnRW
YXJpYWJsZT4KLSAgICA8L0J1aWxkTWFjcm8+CiAgICAgPEJ1aWxkTWFjcm8gSW5jbHVkZT0iRU5B
QkxFX0NTU19JTUFHRV9TRVQiPgogICAgICAgPFZhbHVlPiQoRU5BQkxFX0NTU19JTUFHRV9TRVQp
PC9WYWx1ZT4KICAgICAgIDxFbnZpcm9ubWVudFZhcmlhYmxlPnRydWU8L0Vudmlyb25tZW50VmFy
aWFibGU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237622</attachid>
            <date>2014-09-04 06:15:11 -0700</date>
            <delta_ts>2014-09-04 11:43:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136529-20140904151501.patch</filename>
            <type>text/plain</type>
            <size>214989</size>
            <attacher name="Éva Balázsfalvi">evab.u-szeged</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMjU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NGY4NTM0Y2RjM2U1YjM4MGUzNzRiMDg1YmI1YThmNzc2MDM3YTEwLi4wNDcyZjUyYjdiZTU2MmUx
NGM0OWE4NzRmZTA0NjdmOTI1MGYwMzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNC0wOS0wNCAgRXZhIEJhbGF6c2ZhbHZpICA8ZXZhYi51LXN6ZWdlZEBw
YXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAgICAgIFJlbW92ZSBDU1NfRklMVEVSUyBmbGFnCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY1MjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE0LTA5LTAyICBCcmlhbiBKLiBC
dXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBm
aXggcHJlZml4ZXMgZm9yIHN1YmNsYXNzZXMgb2YgSlNDOjpDb25zb2xlQ2xpZW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVj
NWRkMTA5NzUwNGI3NjM3YjcyMWRiZDU3MmIwZmE1YzMxZmU0YzkuLmM5YzFjZWQxYjQ0MWQ0NGQy
OWRjN2M5YzVjNWMyMmJkY2NhNTZhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDktMDQg
IEV2YSBCYWxhenNmYWx2aSAgPGV2YWIudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KKwor
ICAgICAgICBSZW1vdmUgQ1NTX0ZJTFRFUlMgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvRmVhdHVyZURlZmluZXMuaDoKKwogMjAxNC0w
OS0wMyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIEdldCByaWQg
b2YgSElHSF9EUElfQ0FOVkFTIGxlZnRvdmVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDc2NzQwNzQ0MjU3YmNl
ZGM5OWViMTU0ODViOTkwZGE3ZDFiOGFhM2UuLmYzNDE0ZmQyNTM3NTlmODRlYWUxZGRjNTgzYjQ0
NmQ4Mjg4MjE5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMDggQEAKKzIwMTQtMDktMDQgIEV2
YSBCYWxhenNmYWx2aSAgPGV2YWIudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KKworICAg
ICAgICBSZW1vdmUgQ1NTX0ZJTFRFUlMgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvdXIgY2hhbmdlZC4K
KworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0NTU1ZhbHVlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTLm1tOgorICAgICAgICAo
a2l0Q2xhc3MpOgorICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVGb3JGaWx0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6aXNMYXlvdXREZXBlbmRlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZSk6CisgICAgICAgICog
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAqIGNzcy9DU1NGaWx0
ZXJJbWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oOgor
ICAgICAgICAqIGNzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ltYWdlR2VuZXJhdG9yVmFsdWU6OmlzRml4ZWRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ltYWdlR2VuZXJhdG9yVmFsdWU6OmZpeGVkU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NJ
bWFnZUdlbmVyYXRvclZhbHVlOjppc1BlbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZTo6a25vd25Ub0JlT3BhcXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ltYWdlR2VuZXJhdG9yVmFsdWU6OmxvYWRTdWJpbWFnZXMpOgorICAgICAgICAqIGNzcy9DU1NQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHZW5lcmF0ZWRJbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlRmlsdGVySW1hZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyOjpwYXJzZUZpbHRlcik6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgor
ICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9DU1NWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aGFzRmFpbGVkT3JDYW5jZWxlZFN1
YnJlc291cmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6ZXF1YWxzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Zh
bHVlOjpkZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjpjbG9uZUZvckNTU09N
KToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpTdGF0ZTo6Y2xlYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpnZW5lcmF0ZWRPclBlbmRpbmdGcm9tVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdSZXNvdXJjZXMpOgor
ICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6CisgICAgICAgICogY3NzL1dlYktpdENTU0Zp
bHRlclZhbHVlLmNwcDoKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaDoKKyAg
ICAgICAgKiBjc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaWRsOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZS5jcHA6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLmg6CisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQ
YXRoKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OkFuaW1hdGlvbkJhc2UpOgorICAgICAgICAqIHBh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9D
U1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVuZEZpbHRlcik6
CisgICAgICAgIChXZWJDb3JlOjpibGVuZEZ1bmMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJv
cGVydHlBbmltYXRpb25XcmFwcGVyTWFwOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXAp
OgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjpyZXNldCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbXBsaWNpdEFuaW1hdGlvbjo6Y2hlY2tGb3JNYXRjaGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMp
OgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmg6CisgICAgICAg
ICogcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5ZnJhbWVBbmltYXRpb246OktleWZyYW1lQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OktleWZyYW1lQW5pbWF0aW9uOjpjaGVja0Zvck1hdGNoaW5nRmlsdGVyRnVuY3Rpb25MaXN0
cyk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXI6OnZhbGlkYXRlRmlsdGVyT3BlcmF0aW9ucyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBw
bHlGaWx0ZXJBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckFuaW1h
dGlvbjo6YXBwbHlJbnRlcm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckFuaW1hdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3RF
eHRlbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJvcGVydHlJZFRvU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OnN1cHBvcnRzQWNjZWxlcmF0ZWRGaWx0ZXJBbmltYXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6ZmlsdGVyc0NhbkJlQ29tcG9zaXRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6Om1vdmVPckNvcHlBbmltYXRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0RmlsdGVycyk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ0E6OmFkZEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUZpbHRlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjplbnN1cmVTdHJ1Y3R1cmFsTGF5ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjcmVhdGVGaWx0ZXJBbmltYXRpb25zRnJvbUtl
eWZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldEZpbHRlckFu
aW1hdGlvbktleWZyYW1lcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFu
aW1hdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FGaWx0
ZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25N
YWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1h
dGlvbk1hYy5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldEZyb21WYWx1
ZSk6CisgICAgICAgIChQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRUb1ZhbHVlKToKKyAgICAg
ICAgKFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFZhbHVlcyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FGaWx0ZXJzTWFjLm1tOgorICAgICAgICAoUGxh
dGZvcm1DQUZpbHRlcnM6OmFuaW1hdGVkRmlsdGVyUHJvcGVydHlOYW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbToKKyAgICAgICAg
KFBsYXRmb3JtQ0FMYXllck1hYzo6Y2xvbmUpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyTWFj
OjpmaWx0ZXJzQ2FuQmVDb21wb3NpdGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNBQW5p
bWF0aW9uV2luOjpzZXRGcm9tVmFsdWUpOgorICAgICAgICAoUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6c2V0VG9WYWx1ZSk6CisgICAgICAgIChQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRWYWx1
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0
aW9uV2luLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FG
aWx0ZXJzV2luLmNwcDoKKyAgICAgICAgKFBsYXRmb3JtQ0FGaWx0ZXJzOjphbmltYXRlZEZpbHRl
clByb3BlcnR5TmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRm
b3JtQ0FMYXllcldpbi5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJXaW46OmNsb25lKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXI6OmNvbW1pdExheWVyQ2hhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcjo6c2V0RmlsdGVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJHTERhdGE6OlRleHR1cmVNYXBwZXJHTERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
cHJlcGFyZUZpbHRlclByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdM
OjpkcmF3VGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OmFwcGx5
RmlsdGVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
SW1hZ2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUltYWdlQnVm
ZmVyOjphcHBseUZpbHRlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVN
YXBwZXJMYXllcjo6c2V0QW5pbWF0ZWRGaWx0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJMYXllcjo6Y29tcHV0ZU92ZXJsYXBSZWdpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRJbnRvU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldEZpbHRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlckxheWVyOjpzeW5jQW5pbWF0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlckxheWVyOjpoYXNGaWx0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdl
RmlsdGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNl
dEZpbHRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
eW5jRmlsdGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6c2V0TGF5ZXJGaWx0ZXJzSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRMYXllclN0YXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NTdGF0ZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9GaWx0ZXJFZmZlY3RS
ZW5kZXJlci5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRWxlbWVudDo6YWRqdXN0U3R5bGVEaWZmZXJlbmNlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6
aGFzRmlsdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
dHJhbnNwYXJlbmN5Q2xpcEJveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFp
bnRMYXllckNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxh
dGVDbGlwUmVjdHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVQcmltYXJ5R3JhcGhpY3NMYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUZpbHRlcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHZW9tZXRyeSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6Z3JhcGhpY3NMYXllclRvQ1NTUHJvcGVydHkp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjc3NUb0dyYXBoaWNzTGF5
ZXJQcm9wZXJ0eSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQW5p
bWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWly
ZXNDb21wb3NpdGluZ0ZvckZpbHRlcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckZpbHRlckluZm8uY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlcklu
Zm8uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2Up
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0Ojpjb250YWluZXJGb3JSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6cmVwYWludFVzaW5nQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpSZW5kZXJW
aWV3KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5oOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHls
ZTo6Y2hhbmdlUmVxdWlyZXNMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6
OmNoYW5nZVJlcXVpcmVzTGF5ZXJSZXBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVGaWx0ZXJEYXRh
LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6Omhhc0ZpbHRlcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZUNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUNvbnRh
aW5lcjo6bWFya0FsbENsaWVudExheWVyc0ZvckludmFsaWRhdGlvbik6CisKIDIwMTQtMDktMDQg
IENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTihyMTczMjQwKSBbR1RLXSBEZWJ1ZyBidWlsZCBicm9rZW4uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggODIwYjgzYmRmY2UzMDMwNGY5ODFiNTE4MTZlM2IzMWQ0MDc1NDA1OS4uYzRm
ODE3N2Q4MTFlN2Y2YjYyMDdhNjhkNWM0YzE1ZDU2MzM4ZjQxOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDE0LTA5LTA0ICBFdmEgQmFsYXpzZmFsdmkgIDxldmFiLnUtc3pl
Z2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVtb3ZlIENTU19GSUxURVJTIGZs
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjUy
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTQtMDktMDIgIEJyaWFu
IEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGZpeCBwcmVmaXhlcyBmb3Igc3ViY2xhc3NlcyBvZiBKU0M6OkNvbnNvbGVDbGllbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCBkNmVjZDY4ZGFiZjgzZjU3Y2JmZTUwNDZjOTFmMGYyNWE4ODFmN2NhLi5mMGU1
YmZlNDdiZWYxYThhZjcwZDNhMDljNzBjYzhhNDFhMTg5ODJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzMgQEAKKzIwMTQtMDktMDQgIEV2YSBCYWxhenNmYWx2aSAgPGV2YWIudS1zemVnZWRAcGFy
dG5lci5zYW1zdW5nLmNvbT4KKworICAgICAgICBSZW1vdmUgQ1NTX0ZJTFRFUlMgZmxhZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+OjpkZWNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEdyYXBoaWNzTGF5ZXJBbmltYXRpb24+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEdyYXBoaWNzTGF5ZXJBbmltYXRp
b24+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllclN0YXRlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmg6
CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R3Jh
cGhpY3NMYXllckNBUmVtb3RlOjpmaWx0ZXJzQ2FuQmVDb21wb3NpdGVkKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5t
bToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0RnJvbVZh
bHVlKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VG9W
YWx1ZSk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFZh
bHVlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnVwZGF0
ZUNsb25lZExheWVyUHJvcGVydGllcyk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6ZmlsdGVyc0NhbkJlQ29tcG9zaXRlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaDoKKwogMjAxNC0wOS0wNCAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW5pdGlhbGl6
ZSBtX3VzZXNOZXR3b3JrUHJvY2VzcyBlYXJsaWVyIGluIFdlYlByb2Nlc3M6OmluaXRpYWxpemVX
ZWJQcm9jZXNzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NGYxYmZhYTNmZTcwNWY2
ZDM5YzhlNDM4MDU0NDE5MWRkNTRlNTA5Li43MDViYWFmZDE1NWMwNGJlZjU4ZWJjNmUzMzVlOTgw
ZTBjOTAyMmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC01Miw3ICs1Miw2IEBAIEVO
QUJMRV9DU1BfTkVYVCA9IDsKIEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsgPSBFTkFC
TEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLOwogRU5BQkxFX0NTU19DT01QT1NJVElORyA9IEVO
QUJMRV9DU1NfQ09NUE9TSVRJTkc7CiBFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OID0gOwot
RU5BQkxFX0NTU19GSUxURVJTID0gRU5BQkxFX0NTU19GSUxURVJTOwogRU5BQkxFX0NTU19HUklE
X0xBWU9VVCA9IEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQ7CiBFTkFCTEVfQ1NTX0lNQUdFX09SSUVO
VEFUSU9OID0gOwogRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OID0gOwpAQCAtMjcyLDQgKzI3
MSw0IEBAIEVOQUJMRV9MTElOVF9DX0xPT1AgPSA7CiAKIEVOQUJMRV9TQVRVUkFURURfTEFZT1VU
X0FSSVRITUVUSUMgPSBFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDOwogCi1GRUFU
VVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVO
QUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVf
Q0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNT
QUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChF
TkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcp
ICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQo
RU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAk
KEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5B
QkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9D
U1MzX0NPTkRJVElPTkFMX1JVTEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNf
VEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VT
VE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVf
REFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVf
REVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RP
TTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxF
X0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FE
X0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5B
QkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJ
RERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQo
RU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5B
QkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5B
QkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lO
Q09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUikgJChFTkFCTEVfSU9TX0FJUlBMQVkpICQoRU5B
QkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChF
TkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklY
RVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9S
X1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVT
UykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJ
QV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFf
U1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5B
QkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMp
ICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxF
X1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VG
RklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFN
RSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9R
VUVSWSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAk
KEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5B
QkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZP
TlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExB
VEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVO
VFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwp
ICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9W
QUxVRSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5B
QkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMp
ICQoRU5BQkxFX1BJQ1RVUkVfU0laRVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dF
QlZUVF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFC
TEVfRlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19MT09QKSAkKEVOQUJMRV9TQVRVUkFURURfTEFZ
T1VUX0FSSVRITUVUSUMpICQoRkVBVFVSRV9ERUZJTkVTXyQoUExBVEZPUk1fTkFNRSkpOworRkVB
VFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChF
TkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxF
X0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQo
RU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5H
KSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19HUklEX0xBWU9V
VCkgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVT
T0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVW
RUw0KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVT
KSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVO
QUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAk
KEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChF
TkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9S
KSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikg
JChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVM
TFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRF
RCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9U
SFJPVFRMSU5HKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJP
TFMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0Vf
SU5fV09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1Ip
ICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lO
U1BFQ1RPUikgJChFTkFCTEVfSU9TX0FJUlBMQVkpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5U
UykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5U
UykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9M
RUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVG
RVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQo
RU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVf
TUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FM
RSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9I
V0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExV
R0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9Q
Uk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FV
T1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVNT1RFX0lO
U1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUlVCQkVS
X0JBTkRJTkcpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NO
QVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChF
TkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhP
TkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVf
VEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lD
T05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVO
QUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfVklFV19N
T0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFC
TEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1BJQ1RVUkVfU0la
RVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAkKEVOQUJM
RV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVf
TExJTlRfQ19MT09QKSAkKEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpICQoRkVB
VFVSRV9ERUZJTkVTXyQoUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvRmVhdHVyZURlZmluZXMuaCBiL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKaW5k
ZXggMmNlMDk0MjJkMmU4ZjVkMjY0ZmQzOWU3NmQ3NjZhNzBhNjZkYTFkNi4uNzVkZGRhNjJhOWRl
MGQ1ZmVhMDI2ODAyY2E5NmQwNzQ4MjMzMWQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
RmVhdHVyZURlZmluZXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCkBA
IC0zNzYsMTAgKzM3Niw2IEBAIHRoZSBwdWJsaWMgaU9TIFNESy4gV2Ugd2lsbCBhbHNvIG5lZWQg
dG8gdXBkYXRlIHRoZSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBmaWxlCiAjZGVmaW5lIEVOQUJM
RV9DU1NfQ09NUE9TSVRJTkcgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0ZJ
TFRFUlMpCi0jZGVmaW5lIEVOQUJMRV9DU1NfRklMVEVSUyAwCi0jZW5kaWYKLQogI2lmICFkZWZp
bmVkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pCiAjZGVmaW5lIEVOQUJMRV9DU1NfSU1B
R0VfT1JJRU5UQVRJT04gMAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg0ZjFiZmFhM2ZlNzA1ZjZk
MzljOGU0MzgwNTQ0MTkxZGQ1NGU1MDkuLjcwNWJhYWZkMTU1YzA0YmVmNThlYmM2ZTMzNWU5ODBl
MGM5MDIyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC01Miw3ICs1Miw2IEBAIEVOQUJMRV9DU1BfTkVYVCA9
IDsKIEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsgPSBFTkFCTEVfQ1NTX0JPWF9ERUNP
UkFUSU9OX0JSRUFLOwogRU5BQkxFX0NTU19DT01QT1NJVElORyA9IEVOQUJMRV9DU1NfQ09NUE9T
SVRJTkc7CiBFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OID0gOwotRU5BQkxFX0NTU19GSUxU
RVJTID0gRU5BQkxFX0NTU19GSUxURVJTOwogRU5BQkxFX0NTU19HUklEX0xBWU9VVCA9IEVOQUJM
RV9DU1NfR1JJRF9MQVlPVVQ7CiBFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OID0gOwogRU5B
QkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OID0gOwpAQCAtMjcyLDQgKzI3MSw0IEBAIEVOQUJMRV9M
TElOVF9DX0xPT1AgPSA7CiAKIEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMgPSBF
TkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDOwogCi1GRUFUVVJFX0RFRklORVMgPSAk
KEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChF
TkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElP
TlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQo
RU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9E
RUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19E
RVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19HUklE
X0xBWU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1B
R0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TRUxFQ1RP
UlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFM
X1JVTEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFL
KSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5E
TEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVO
VCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5U
KSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNU
UlVDVE9SKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJ
QV9WMikgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFC
TEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQQURfREVQ
UkVDQVRFRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9U
SU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NFUlZJQ0Vf
Q09OVFJPTFMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFU
QUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1RZUEVf
Q09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkg
JChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5B
QkxFX0lOU1BFQ1RPUikgJChFTkFCTEVfSU9TX0FJUlBMQVkpICQoRU5BQkxFX0lPU19HRVNUVVJF
X0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNI
X0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xF
R0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVO
QUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElO
S19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJ
UFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChF
TkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNP
Ul9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklH
QVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZL
SVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVO
QUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5B
QkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVN
T1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVf
UlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9DU1NfU0NS
T0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFT
RSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9U
RUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChF
TkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RP
VUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVP
KSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVf
VklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykg
JChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1BJQ1RV
UkVfU0laRVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAk
KEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChF
TkFCTEVfTExJTlRfQ19MT09QKSAkKEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMp
ICQoRkVBVFVSRV9ERUZJTkVTXyQoUExBVEZPUk1fTkFNRSkpOworRkVBVFVSRV9ERUZJTkVTID0g
JChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQo
RU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVZGX0NBUFRJ
T05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAk
KEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJM
RV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hf
REVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1Nf
REVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NT
X0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFC
TEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9D
U1NfU0hBUEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTKSAkKEVOQUJMRV9DU1Mz
X1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklT
SUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9B
UkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFO
U0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9FTkNS
WVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVS
UykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0VP
TE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVO
QUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX0lO
REVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChF
TkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9U
SU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUikgJChFTkFC
TEVfSU9TX0FJUlBMQVkpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9T
X1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVH
QUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAk
KEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElP
KSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVf
TUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NP
VVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkg
JChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFW
SUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAk
KEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9Q
T0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRT
KSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9S
RVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFC
TEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5B
QkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQ
RUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1VCVExFX0NS
WVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVD
VElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5H
KSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChF
TkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFD
SykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkg
JChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkg
JChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1BJQ1RVUkVfU0laRVMpICQoRU5BQkxFX1dF
Ql9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkg
JChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19MT09QKSAk
KEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpICQoRkVBVFVSRV9ERUZJTkVTXyQo
UExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDc0YTUyYmYy
ZDVjM2M2NmMxOTg2OGY3NjRhZTRjMzMyMDQ2MWFlMDIuLjYyNGNlMTc4NDJlM2FhOGE0ZTcyOTBl
ZmEyZWEyMWJkNGIwMDFlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTQ5NCw5
ICs0OTQsNyBAQAogI2luY2x1ZGUgIkpTVmFsaWRpdHlTdGF0ZS5jcHAiCiAjaW5jbHVkZSAiSlNW
b2lkQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIgot
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKICNpbmNsdWRlICJKU1dlYktpdENTU0ZpbHRlclZhbHVl
LmNwcCIKLSNlbmRpZgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCIKICNp
bmNsdWRlICJKU1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBiZmFlNTBhZTQz
ODRkNWRjMTQ2NWI2ZjA5MGEyMmEzYjJjMGQ0Yjg4Li5lMDgzMTNkM2YxMWJkNDJiZDJmYzJhNjM4
NjllYzI0YWVhYWQ4YTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjgzLDYgKzY4Myw3IEBA
IF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTEyQWNjZWxlcmF0aW9uNmNyZWF0ZUViZGJk
YmQKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTEyUm90YXRpb25SYXRlNmNyZWF0ZUVi
ZGJkYmQKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTZjcmVhdGVFTjNXVEYxMFBhc3NS
ZWZQdHJJTlMwXzEyQWNjZWxlcmF0aW9uRUVFUzRfTlMyX0lOUzBfMTJSb3RhdGlvblJhdGVFRUVi
ZAogX19aTjdXZWJDb3JlMTZGaWx0ZXJPcGVyYXRpb25zQzFFdgorX19aTjdXZWJDb3JlMTZGaWx0
ZXJPcGVyYXRpb25zYVNFUktTMF8KIF9fWk43V2ViQ29yZTE2Rm9udFBsYXRmb3JtRGF0YUQxRXYK
IF9fWk43V2ViQ29yZTE2RnJhbWVMb2FkUmVxdWVzdEMxRVBOU181RnJhbWVFUktOU18xNVJlc291
cmNlUmVxdWVzdEVSS05TXzE0U3Vic3RpdHV0ZURhdGFFCiBfX1pON1dlYkNvcmUxNkhUTUxJbnB1
dEVsZW1lbnQxM3NldEF1dG9maWxsZWRFYgpAQCAtMzAxMiwxMCArMzAxMyw2IEBAIF9fWk43V2Vi
Q29yZTEyRE9NV2luZG93Q1NTNmNyZWF0ZUV2CiBfX1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhl
Y1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBOU18xMkRPTVdpbmRvd0NTU0UKICNlbmRp
ZgogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQotX19aTjdXZWJDb3JlMTZGaWx0ZXJPcGVyYXRp
b25zYVNFUktTMF8KLSNlbmRpZgotCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKIF9fWk43
V2ViQ29yZTI3U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlMjJzZXRWZXJ0aWNhbFNuYXBPZmZz
ZXRzRVJLTjNXVEY2VmVjdG9ySWZMbTBFTlMxXzE1Q3Jhc2hPbk92ZXJmbG93RUVFCiBfX1pON1dl
YkNvcmUyN1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTI0c2V0SG9yaXpvbnRhbFNuYXBPZmZz
ZXRzRVJLTjNXVEY2VmVjdG9ySWZMbTBFTlMxXzE1Q3Jhc2hPbk92ZXJmbG93RUVFCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1ZhbHVlQ3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwCmluZGV4IGI1NGRl
N2JmMTVhNzBiMTUxMjM2ZjdiNTRjNjE0ZGI1ZDVmNzlmMDIuLjRhZDFmNjBlNTI2ZWI4ZjJkMDY0
ODdiZDg1ZjRhM2Y5YTRjY2FmMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ1NTVmFsdWVDdXN0b20uY3BwCkBAIC0zMywxNSArMzMsMTIgQEAKICNpbmNsdWRlICJKU05v
ZGUuaCIKICNpbmNsdWRlICJKU1NWR0NvbG9yLmgiCiAjaW5jbHVkZSAiSlNTVkdQYWludC5oIgor
I2luY2x1ZGUgIkpTV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCIKICNpbmNsdWRlICJKU1dlYktpdENT
U1RyYW5zZm9ybVZhbHVlLmgiCiAjaW5jbHVkZSAiU1ZHQ29sb3IuaCIKICNpbmNsdWRlICJTVkdQ
YWludC5oIgotI2luY2x1ZGUgIldlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgiCi0KLSNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCi0jaW5jbHVkZSAiSlNXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIgogI2lu
Y2x1ZGUgIldlYktpdENTU0ZpbHRlclZhbHVlLmgiCi0jZW5kaWYKKyNpbmNsdWRlICJXZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZS5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCkBAIC04NywxMCAr
ODQsOCBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ1NTVmFsdWUqIHZhbHVlKQogCiAgICAgaWYgKHZhbHVlLT5pc1dlYktpdENTU1Ry
YW5zZm9ybVZhbHVlKCkpCiAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xv
YmFsT2JqZWN0LCBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZSwgdmFsdWUpOwotI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKICAgICBlbHNlIGlmICh2YWx1ZS0+aXNXZWJLaXRDU1NGaWx0ZXJWYWx1ZSgp
KQogICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgV2Vi
S2l0Q1NTRmlsdGVyVmFsdWUsIHZhbHVlKTsKLSNlbmRpZgogICAgIGVsc2UgaWYgKHZhbHVlLT5p
c1ZhbHVlTGlzdCgpKQogICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2Jh
bE9iamVjdCwgQ1NTVmFsdWVMaXN0LCB2YWx1ZSk7CiAgICAgZWxzZSBpZiAodmFsdWUtPmlzU1ZH
UGFpbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1MubW0KaW5kZXggYmRhNzEy
NmE0YmYxZjQ3OWI1ZjAxOWRmMmRjZWEzNTI1OWM0ZTRhMC4uOTBmNmI5ZDJlMzVjZGIyNzBlYzI2
ODIzYWE3ZGE4YTE1ZTU5YzA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01DU1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1Mu
bW0KQEAgLTQ4LDE0ICs0OCwxMSBAQAogI2ltcG9ydCAiRE9NQ1NTVmFsdWVMaXN0LmgiCiAjaW1w
b3J0ICJET01JbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NU3R5bGVTaGVldEludGVybmFsLmgiCisj
aW1wb3J0ICJET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIgogI2ltcG9ydCAiRE9NV2ViS2l0Q1NT
S2V5ZnJhbWVSdWxlLmgiCiAjaW1wb3J0ICJET01XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiCiAj
aW1wb3J0ICJET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgogCi0jaWYgRU5BQkxFKENTU19G
SUxURVJTKQotI2ltcG9ydCAiRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCIKLSNlbmRpZgotCiAj
aWYgRU5BQkxFKENTU19SRUdJT05TKQogI2ltcG9ydCAiRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZS5o
IgogI2VuZGlmCkBAIC0xMjYsMTAgKzEyMyw4IEBAIENsYXNzIGtpdENsYXNzKFdlYkNvcmU6OkNT
U1ZhbHVlKiBpbXBsKQogICAgICAgICBjYXNlIFdlYkNvcmU6OkNTU1ZhbHVlOjpDU1NfVkFMVUVf
TElTVDoKICAgICAgICAgICAgIGlmIChpbXBsLT5pc1dlYktpdENTU1RyYW5zZm9ybVZhbHVlKCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIFtET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZSBjbGFz
c107Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgICAgICAgICAgaWYgKGltcGwtPmlzV2Vi
S2l0Q1NTRmlsdGVyVmFsdWUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gW0RPTVdlYktpdENT
U0ZpbHRlclZhbHVlIGNsYXNzXTsKLSNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIFtET01DU1NW
YWx1ZUxpc3QgY2xhc3NdOwogICAgICAgICBjYXNlIFdlYkNvcmU6OkNTU1ZhbHVlOjpDU1NfSU5I
RVJJVDoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpDU1NWYWx1ZTo6Q1NTX0lOSVRJQUw6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmlu
ZGV4IGU4MWUzZDQwZDRkZmQ4ZWI3MDY5NGFkOWRmYWIxZmI3NzRhNTM0MTAuLjc4ZmRjNmI3OWE4
MTFkNTAwNDQ2OGQ1MTk0MDJhMmIwZjlkYzIyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC02Miw2ICs2Miw3IEBACiAj
aW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNob3J0
aGFuZC5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKKyNpbmNsdWRlICJXZWJLaXRDU1NG
aWx0ZXJWYWx1ZS5oIgogI2luY2x1ZGUgIldlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0Rm9udEZhbWlseU5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CkBAIC03NywxMCArNzgsNiBAQAogI2luY2x1ZGUgIlNoYXBlVmFsdWUuaCIKICNlbmRp
ZgogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQotI2luY2x1ZGUgIldlYktpdENTU0ZpbHRlclZh
bHVlLmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICNpbmNsdWRl
ICJEYXNoYm9hcmRSZWdpb24uaCIKICNlbmRpZgpAQCAtMjgzLDkgKzI4MCw2IEBAIHN0YXRpYyBj
b25zdCBDU1NQcm9wZXJ0eUlEIGNvbXB1dGVkUHJvcGVydGllc1tdID0gewogI2lmIEVOQUJMRShE
QVNIQk9BUkRfU1VQUE9SVCkKICAgICBDU1NQcm9wZXJ0eVdlYmtpdERhc2hib2FyZFJlZ2lvbiwK
ICNlbmRpZgotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICBDU1NQcm9wZXJ0eVdlYmtpdEZp
bHRlciwKLSNlbmRpZgogICAgIENTU1Byb3BlcnR5V2Via2l0QWxpZ25Db250ZW50LAogICAgIENT
U1Byb3BlcnR5V2Via2l0QWxpZ25JdGVtcywKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEFsaWduU2Vs
ZiwKQEAgLTI5Niw2ICsyOTAsNyBAQCBzdGF0aWMgY29uc3QgQ1NTUHJvcGVydHlJRCBjb21wdXRl
ZFByb3BlcnRpZXNbXSA9IHsKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhXcmFwLAogICAgIENT
U1Byb3BlcnR5V2Via2l0SnVzdGlmeUNvbnRlbnQsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRKdXN0
aWZ5U2VsZiwKKyAgICBDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlciwKICAgICBDU1NQcm9wZXJ0eVdl
YmtpdEZvbnRLZXJuaW5nLAogICAgIENTU1Byb3BlcnR5V2Via2l0Rm9udFNtb290aGluZywKICAg
ICBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRWYXJpYW50TGlnYXR1cmVzLApAQCAtODgzLDcgKzg3OCw2
IEBAIFBhc3NSZWY8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yU2hh
ZG93KGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvCiAgICAgcmV0dXJuIFdURjo6bW92ZShsaXN0KTsK
IH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIFBhc3NSZWY8Q1NTVmFsdWU+IENvbXB1dGVk
U3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yRmlsdGVyKGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwg
Y29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVyT3BlcmF0aW9ucywgQWRqdXN0UGl4ZWxWYWx1
ZXNGb3JDb21wdXRlZFN0eWxlIGFkanVzdCkKIHsKICAgICBpZiAoZmlsdGVyT3BlcmF0aW9ucy5v
cGVyYXRpb25zKCkuaXNFbXB0eSgpKQpAQCAtOTc0LDcgKzk2OCw2IEBAIFBhc3NSZWY8Q1NTVmFs
dWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yRmlsdGVyKGNvbnN0IFJlbmRlclN0
eWxlKiBzdHlsCiAKICAgICByZXR1cm4gV1RGOjptb3ZlKGxpc3QpOwogfQotI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogc3RhdGljIFBhc3NSZWY8Q1NTVmFsdWU+IHNwZWNp
ZmllZFZhbHVlRm9yR3JpZFRyYWNrQnJlYWR0aChjb25zdCBHcmlkTGVuZ3RoJiB0cmFja0JyZWFk
dGgsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkKQEAgLTE2MTgsOSArMTYxMSw3IEBAIHN0YXRp
YyBib29sIGlzTGF5b3V0RGVwZW5kZW50KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgUmVuZGVy
U3R5bGUqIHN0eWxlLCBSZW5kCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFBlcnNwZWN0aXZl
T3JpZ2luOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1PcmlnaW46CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybToKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcjoKLSNlbmRpZgogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luOiB7CiAgICAgICAgIGlmICghcmVu
ZGVyZXIgfHwgIXJlbmRlcmVyLT5pc0JveCgpKQpAQCAtMjkxNywxMCArMjkwOCw4IEBAIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFsdWUoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRTaGFwZU91
dHNpZGU6CiAgICAgICAgICAgICByZXR1cm4gc2hhcGVQcm9wZXJ0eVZhbHVlKHN0eWxlLmdldCgp
LCBzdHlsZS0+c2hhcGVPdXRzaWRlKCkpOwogI2VuZGlmCi0jaWYgRU5BQkxFKENTU19GSUxURVJT
KQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0RmlsdGVyOgogICAgICAgICAgICAgcmV0
dXJuIHZhbHVlRm9yRmlsdGVyKHN0eWxlLmdldCgpLCBzdHlsZS0+ZmlsdGVyKCkpOwotI2VuZGlm
CiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1p
eEJsZW5kTW9kZToKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1
ZShzdHlsZS0+YmxlbmRNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5oCmluZGV4IGUwNjI3MWZhODFjOTcwNTUwM2NjOGJhMWQ5OGFj
MGNkNDEzYjFjZWEuLjM0YWYyYTUwZmQ4NjEwMWFkN2ZjYzQyM2QwMGQ3ODA3YzA4ZTI3YzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgK
QEAgLTU4LDkgKzU4LDcgQEAgcHVibGljOgogICAgIGJvb2wgdXNlRml4ZWRGb250RGVmYXVsdFNp
emUoKSBjb25zdDsKICAgICBib29sIHByb3BlcnR5TWF0Y2hlcyhDU1NQcm9wZXJ0eUlELCBjb25z
dCBDU1NWYWx1ZSopIGNvbnN0OwogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHN0YXRp
YyBQYXNzUmVmPENTU1ZhbHVlPiB2YWx1ZUZvckZpbHRlcihjb25zdCBSZW5kZXJTdHlsZSosIGNv
bnN0IEZpbHRlck9wZXJhdGlvbnMmLCBBZGp1c3RQaXhlbFZhbHVlc0ZvckNvbXB1dGVkU3R5bGUg
PSBBZGp1c3RQaXhlbFZhbHVlcyk7Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICAvLyBUaGUgc3R5
bGVkIG5vZGUgaXMgZWl0aGVyIHRoZSBub2RlIHBhc3NlZCBpbnRvIGNvbXB1dGVkUHJvcGVydHlW
YWx1ZSwgb3IgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1h
Z2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAK
aW5kZXggYjBhN2U2OWQ5MTg3ZGYzODk2YzRjYmY0YjIyNGQ3MDU5ZDdmYzUwMy4uMmY5ODZmZDQ5
ODllM2VjZmFjYWVhMGE5ZDIwOTVmNDhlNTdlYjUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGaWx0ZXJJbWFnZVZhbHVlLmNwcApAQCAtMjcsOCArMjcsNiBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkNTU0ZpbHRlckltYWdlVmFsdWUuaCIKIAotI2lmIEVOQUJMRShDU1Nf
RklMVEVSUykKLQogI2luY2x1ZGUgIkNTU0ltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRJ
bWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCkBAIC0xNjgsNSArMTY2
LDMgQEAgYm9vbCBDU1NGaWx0ZXJJbWFnZVZhbHVlOjplcXVhbElucHV0SW1hZ2VzKGNvbnN0IENT
U0ZpbHRlckltYWdlVmFsdWUmIG90aGVyKSBjb24KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYgLy8gRU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
aWx0ZXJJbWFnZVZhbHVlLmgKaW5kZXggNWIyNDAyODExYzQ5NmU5OTcyNzE1MDBiODllZmE3ZDdm
M2VmZjAxMS4uNjAwNWY3ZTdjMDRjNjg0YWQwOTk4OWFlODliNzAzYjIwMWY4YTA2MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oCkBAIC0yNyw4ICsyNyw2IEBACiAj
aWZuZGVmIENTU0ZpbHRlckltYWdlVmFsdWVfaAogI2RlZmluZSBDU1NGaWx0ZXJJbWFnZVZhbHVl
X2gKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2luY2x1ZGUgIkNTU0ltYWdlR2VuZXJh
dG9yVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNh
Y2hlZEltYWdlQ2xpZW50LmgiCkBAIC0xMjMsNiArMTIxLDQgQEAgQ1NTX1ZBTFVFX1RZUEVfQ0FT
VFMoQ1NTRmlsdGVySW1hZ2VWYWx1ZSwgaXNGaWx0ZXJJbWFnZVZhbHVlKCkpCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2VuZGlm
IC8vIENTU0ZpbHRlckltYWdlVmFsdWVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
R2VuZXJhdG9yVmFsdWUuY3BwCmluZGV4IDA1MjVlNDFmNDU0MTA0OGMxMmIzOWQ1OGI3YzgwNTE2
N2Y4NjI1YjYuLjBlZjc3NGY4NGIxYmE2NTM5NjljZWExOGE1ZWQ0NDYyOTk2MGI0ZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAKQEAgLTExMiwx
MCArMTEyLDggQEAgUGFzc1JlZlB0cjxJbWFnZT4gQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6aW1h
Z2UoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IEYKICAgICAgICAgcmV0dXJuIHRvQ1NT
Q2FudmFzVmFsdWUodGhpcyktPmltYWdlKHJlbmRlcmVyLCBzaXplKTsKICAgICBjYXNlIENyb3Nz
ZmFkZUNsYXNzOgogICAgICAgICByZXR1cm4gdG9DU1NDcm9zc2ZhZGVWYWx1ZSh0aGlzKS0+aW1h
Z2UocmVuZGVyZXIsIHNpemUpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBjYXNlIEZp
bHRlckltYWdlQ2xhc3M6CiAgICAgICAgIHJldHVybiB0b0NTU0ZpbHRlckltYWdlVmFsdWUodGhp
cyktPmltYWdlKHJlbmRlcmVyLCBzaXplKTsKLSNlbmRpZgogICAgIGNhc2UgTGluZWFyR3JhZGll
bnRDbGFzczoKICAgICAgICAgcmV0dXJuIHRvQ1NTTGluZWFyR3JhZGllbnRWYWx1ZSh0aGlzKS0+
aW1hZ2UocmVuZGVyZXIsIHNpemUpOwogICAgIGNhc2UgUmFkaWFsR3JhZGllbnRDbGFzczoKQEAg
LTEzMywxMCArMTMxLDggQEAgYm9vbCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjppc0ZpeGVkU2l6
ZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiB0b0NTU0NhbnZhc1ZhbHVlKHRoaXMpLT5pc0ZpeGVk
U2l6ZSgpOwogICAgIGNhc2UgQ3Jvc3NmYWRlQ2xhc3M6CiAgICAgICAgIHJldHVybiB0b0NTU0Ny
b3NzZmFkZVZhbHVlKHRoaXMpLT5pc0ZpeGVkU2l6ZSgpOwotI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKICAgICBjYXNlIEZpbHRlckltYWdlQ2xhc3M6CiAgICAgICAgIHJldHVybiB0b0NTU0ZpbHRl
ckltYWdlVmFsdWUodGhpcyktPmlzRml4ZWRTaXplKCk7Ci0jZW5kaWYKICAgICBjYXNlIExpbmVh
ckdyYWRpZW50Q2xhc3M6CiAgICAgICAgIHJldHVybiB0b0NTU0xpbmVhckdyYWRpZW50VmFsdWUo
dGhpcyktPmlzRml4ZWRTaXplKCk7CiAgICAgY2FzZSBSYWRpYWxHcmFkaWVudENsYXNzOgpAQCAt
MTU0LDEwICsxNTAsOCBAQCBGbG9hdFNpemUgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Zml4ZWRT
aXplKGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyKQogICAgICAgICByZXR1cm4gdG9DU1ND
YW52YXNWYWx1ZSh0aGlzKS0+Zml4ZWRTaXplKHJlbmRlcmVyKTsKICAgICBjYXNlIENyb3NzZmFk
ZUNsYXNzOgogICAgICAgICByZXR1cm4gdG9DU1NDcm9zc2ZhZGVWYWx1ZSh0aGlzKS0+Zml4ZWRT
aXplKHJlbmRlcmVyKTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgY2FzZSBGaWx0ZXJJ
bWFnZUNsYXNzOgogICAgICAgICByZXR1cm4gdG9DU1NGaWx0ZXJJbWFnZVZhbHVlKHRoaXMpLT5m
aXhlZFNpemUocmVuZGVyZXIpOwotI2VuZGlmCiAgICAgY2FzZSBMaW5lYXJHcmFkaWVudENsYXNz
OgogICAgICAgICByZXR1cm4gdG9DU1NMaW5lYXJHcmFkaWVudFZhbHVlKHRoaXMpLT5maXhlZFNp
emUocmVuZGVyZXIpOwogICAgIGNhc2UgUmFkaWFsR3JhZGllbnRDbGFzczoKQEAgLTE3NSwxMCAr
MTY5LDggQEAgYm9vbCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjppc1BlbmRpbmcoKSBjb25zdAog
ICAgICAgICByZXR1cm4gdG9DU1NDcm9zc2ZhZGVWYWx1ZSh0aGlzKS0+aXNQZW5kaW5nKCk7CiAg
ICAgY2FzZSBDYW52YXNDbGFzczoKICAgICAgICAgcmV0dXJuIHRvQ1NTQ2FudmFzVmFsdWUodGhp
cyktPmlzUGVuZGluZygpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBjYXNlIEZpbHRl
ckltYWdlQ2xhc3M6CiAgICAgICAgIHJldHVybiB0b0NTU0ZpbHRlckltYWdlVmFsdWUodGhpcykt
PmlzUGVuZGluZygpOwotI2VuZGlmCiAgICAgY2FzZSBMaW5lYXJHcmFkaWVudENsYXNzOgogICAg
ICAgICByZXR1cm4gdG9DU1NMaW5lYXJHcmFkaWVudFZhbHVlKHRoaXMpLT5pc1BlbmRpbmcoKTsK
ICAgICBjYXNlIFJhZGlhbEdyYWRpZW50Q2xhc3M6CkBAIC0xOTYsMTAgKzE4OCw4IEBAIGJvb2wg
Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6a25vd25Ub0JlT3BhcXVlKGNvbnN0IFJlbmRlckVsZW1l
bnQqIHJlbmRlcmVyKSBjb25zCiAgICAgICAgIHJldHVybiB0b0NTU0Nyb3NzZmFkZVZhbHVlKHRo
aXMpLT5rbm93blRvQmVPcGFxdWUocmVuZGVyZXIpOwogICAgIGNhc2UgQ2FudmFzQ2xhc3M6CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgY2FzZSBG
aWx0ZXJJbWFnZUNsYXNzOgogICAgICAgICByZXR1cm4gdG9DU1NGaWx0ZXJJbWFnZVZhbHVlKHRo
aXMpLT5rbm93blRvQmVPcGFxdWUocmVuZGVyZXIpOwotI2VuZGlmCiAgICAgY2FzZSBMaW5lYXJH
cmFkaWVudENsYXNzOgogICAgICAgICByZXR1cm4gdG9DU1NMaW5lYXJHcmFkaWVudFZhbHVlKHRo
aXMpLT5rbm93blRvQmVPcGFxdWUocmVuZGVyZXIpOwogICAgIGNhc2UgUmFkaWFsR3JhZGllbnRD
bGFzczoKQEAgLTIxOSwxMSArMjA5LDkgQEAgdm9pZCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjps
b2FkU3ViaW1hZ2VzKENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUwKICAgICBj
YXNlIENhbnZhc0NsYXNzOgogICAgICAgICB0b0NTU0NhbnZhc1ZhbHVlKHRoaXMpLT5sb2FkU3Vi
aW1hZ2VzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKICAgICAgICAgYnJlYWs7Ci0jaWYgRU5BQkxF
KENTU19GSUxURVJTKQogICAgIGNhc2UgRmlsdGVySW1hZ2VDbGFzczoKICAgICAgICAgdG9DU1NG
aWx0ZXJJbWFnZVZhbHVlKHRoaXMpLT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNlTG9hZGVy
KTsKICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKICAgICBjYXNlIExpbmVhckdyYWRpZW50Q2xhc3M6
CiAgICAgICAgIHRvQ1NTTGluZWFyR3JhZGllbnRWYWx1ZSh0aGlzKS0+bG9hZFN1YmltYWdlcyhj
YWNoZWRSZXNvdXJjZUxvYWRlcik7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmNwcAppbmRleCAyYWJmMTg4MjU3MGQyN2E2NDliYzI3NjUxNGYxN2MyNDdhNTllYTk2Li40MmVl
NDZiYzE1ODFmZTZmMjY2MDI2NDcyNmRhOGRhZGExZmZhYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2luY2x1ZGUgIlN0eWxlUnVsZUltcG9ydC5oIgog
I2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5o
IgorI2luY2x1ZGUgIldlYktpdENTU0ZpbHRlclZhbHVlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NT
S2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIgogI2lu
Y2x1ZGUgIldlYktpdENTU1JlZ2lvblJ1bGUuaCIKQEAgLTEwMCwxMCArMTAxLDYgQEAKICNpbmNs
dWRlICJDU1NJbWFnZVNldFZhbHVlLmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKLSNpbmNsdWRlICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIgotI2VuZGlmCi0KICNpZiBFTkFC
TEUoQ1NTX1NDUk9MTF9TTkFQKQogI2luY2x1ZGUgIkxlbmd0aFJlcGVhdC5oIgogI2VuZGlmCkBA
IC0yNDU2LDcgKzI0NTMsNiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0
eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJv
eE9yZGluYWxHcm91cDoKICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUs
IEZJbnRlZ2VyIHwgRk5vbk5lZywgQ1NTU3RyaWN0TW9kZSkgJiYgdmFsdWUtPmZWYWx1ZTsKICAg
ICAgICAgYnJlYWs7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRGaWx0ZXI6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUpCiAgICAgICAg
ICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CkBAIC0yNDY4LDcgKzI0NjQsNiBAQCBib29sIENT
U1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQp
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKLSNl
bmRpZgogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1p
eEJsZW5kTW9kZToKICAgICAgICAgaWYgKGNzc0NvbXBvc2l0aW5nRW5hYmxlZCgpKQpAQCAtODcw
OSwxNSArODcwNCwxMiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VHZW5lcmF0ZWRJbWFnZShDU1NQ
YXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCwgUmVmUHRyPENTU1ZhbAogICAgIGlmIChlcXVhbEln
bm9yaW5nQ2FzZSh2YWwtPmZ1bmN0aW9uLT5uYW1lLCAiLXdlYmtpdC1jcm9zcy1mYWRlKCIpKQog
ICAgICAgICByZXR1cm4gcGFyc2VDcm9zc2ZhZGUodmFsdWVMaXN0LCB2YWx1ZSk7CiAKLSNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbC0+ZnVuY3Rp
b24tPm5hbWUsICItd2Via2l0LWZpbHRlcigiKSkKICAgICAgICAgcmV0dXJuIHBhcnNlRmlsdGVy
SW1hZ2UodmFsdWVMaXN0LCB2YWx1ZSk7Ci0jZW5kaWYKIAogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZpbHRlcklt
YWdlKENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaXN0LCBSZWZQdHI8Q1NTVmFsdWU+JiBmaWx0
ZXIpCiB7CiAgICAgUmVmUHRyPENTU0ZpbHRlckltYWdlVmFsdWU+IHJlc3VsdDsKQEAgLTg3NTgs
NyArODc1MCw2IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZpbHRlckltYWdlKENTU1BhcnNlclZh
bHVlTGlzdCogdmFsdWVMaXN0LCBSZWZQdHI8Q1NTVmFsdWU+CiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KLSNlbmRpZgogCiBib29sIENTU1BhcnNlcjo6cGFyc2VDcm9zc2ZhZGUoQ1NTUGFyc2VyVmFs
dWVMaXN0KiB2YWx1ZUxpc3QsIFJlZlB0cjxDU1NWYWx1ZT4mIGNyb3NzZmFkZSkKIHsKQEAgLTky
NjcsOCArOTI1OCw2IEBAIGJvb2wgQ1NTUGFyc2VyOjppc0NvbXBvc2l0ZU9wZXJhdG9yKENTU1Zh
bHVlSUQgdmFsdWVJRCkKICAgICByZXR1cm4gdmFsdWVJRCA+PSBDU1NWYWx1ZUNsZWFyICYmIHZh
bHVlSUQgPD0gQ1NTVmFsdWVYb3I7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0KIHN0
YXRpYyB2b2lkIGZpbHRlckluZm9Gb3JOYW1lKGNvbnN0IENTU1BhcnNlclN0cmluZyYgbmFtZSwg
V2ViS2l0Q1NTRmlsdGVyVmFsdWU6OkZpbHRlck9wZXJhdGlvblR5cGUmIGZpbHRlclR5cGUsIHVu
c2lnbmVkJiBtYXhpbXVtQXJndW1lbnRDb3VudCkKIHsKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UobmFtZSwgImdyYXlzY2FsZSgiKSkKQEAgLTk0MzAsNyArOTQxOSw2IEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZUZpbHRlcihDU1NQYXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCwgUmVmUHRyPENT
U1ZhbHVlPiYgcmVzCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxF
KENTU19SRUdJT05TKQogc3RhdGljIGJvb2wgdmFsaWRGbG93TmFtZShjb25zdCBTdHJpbmcmIGZs
b3dOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IGUyZWJkM2UwYTBmZWNiYTdiMGEzNTU4
NzFmOWU0M2ZiYzM5ZDM1NTkuLjYyYzZkM2FlNTAyMmFiMDE5N2VjYjYxMDdhMjIyYWNhMzM2Mjk0
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTM0LDE2ICszNCwxMyBAQAogI2luY2x1ZGUg
IkNvbG9yLmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeS5oIgogI2luY2x1ZGUgIlNvdXJjZVNpemVM
aXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCIKICNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcu
aD4KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSNpbmNsdWRlICJXZWJLaXRDU1NGaWx0ZXJW
YWx1ZS5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogI2luY2x1ZGUg
IkNTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuaCIKICNlbmRpZgpAQCAtMjYzLDEyICsyNjAsMTAg
QEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlSW1hZ2VTZXQoKTsKICNl
bmRpZgogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGJvb2wgcGFyc2VGaWx0ZXJJbWFn
ZShDU1NQYXJzZXJWYWx1ZUxpc3QqLCBSZWZQdHI8Q1NTVmFsdWU+Jik7CiAKICAgICBib29sIHBh
cnNlRmlsdGVyKENTU1BhcnNlclZhbHVlTGlzdCosIFJlZlB0cjxDU1NWYWx1ZT4mKTsKICAgICBQ
YXNzUmVmUHRyPFdlYktpdENTU0ZpbHRlclZhbHVlPiBwYXJzZUJ1aWx0aW5GaWx0ZXJBcmd1bWVu
dHMoQ1NTUGFyc2VyVmFsdWVMaXN0KiwgV2ViS2l0Q1NTRmlsdGVyVmFsdWU6OkZpbHRlck9wZXJh
dGlvblR5cGUpOwotI2VuZGlmCiAKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZUNsaXBQ
YXRoKCk7CiAKQEAgLTYzOSw5ICs2MzQsNyBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBwYXJzZWRE
b3VibGUoQ1NTUGFyc2VyVmFsdWUqLCBSZWxlYXNlUGFyc2VkQ2FsY1ZhbHVlQ29uZGl0aW9uIHJl
bGVhc2VDYWxjID0gRG9Ob3RSZWxlYXNlUGFyc2VkQ2FsY1ZhbHVlKTsKICAgICAKICAgICBmcmll
bmQgY2xhc3MgVHJhbnNmb3JtT3BlcmF0aW9uSW5mbzsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CiAgICAgZnJpZW5kIGNsYXNzIEZpbHRlck9wZXJhdGlvbkluZm87Ci0jZW5kaWYKIH07CiAKIENT
U1Byb3BlcnR5SUQgY3NzUHJvcGVydHlJRChjb25zdCBDU1NQYXJzZXJTdHJpbmcmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggMjJmYTgwNDYwZTBkMTM3YjkwYjQ4
M2YzNzgwOTU0NDVhYThkM2QxMS4uYzhlMzViNWYyYThjMTBkNDY5MjY1MjFmMGY1NTg3MTY0YjBi
MDAwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTI5Miw5ICsy
OTIsNyBAQCB6LWluZGV4CiBtaXgtYmxlbmQtbW9kZQogaXNvbGF0aW9uCiAjZW5kaWYKLSNpZiBk
ZWZpbmVkKEVOQUJMRV9DU1NfRklMVEVSUykgJiYgRU5BQkxFX0NTU19GSUxURVJTCiAtd2Via2l0
LWZpbHRlcgotI2VuZGlmCiAtd2Via2l0LWFsaWduLWNvbnRlbnQKIC13ZWJraXQtYWxpZ24taXRl
bXMKIC13ZWJraXQtYWxpZ24tc2VsZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKaW5kZXggNDZiMDg3
ZmNmYjhiMDFkOTJmOWM5ZjJjZTY0MTMxNGQ1ZWE5NGI4Ni4uYWFjZjY4Njg1M2Q1YjI1YmE1MTA3
Nzg1OTY2MzkzMjA0ZDIwNTRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCkBAIC0xMzUsMTAg
KzEzNSw4IEBAIGJvb2wgQ1NTVmFsdWU6Omhhc0ZhaWxlZE9yQ2FuY2VsZWRTdWJyZXNvdXJjZXMo
KSBjb25zdAogICAgICAgICByZXR1cm4gdG9DU1NJbWFnZVZhbHVlKHRoaXMpLT5oYXNGYWlsZWRP
ckNhbmNlbGVkU3VicmVzb3VyY2VzKCk7CiAgICAgaWYgKGNsYXNzVHlwZSgpID09IENyb3NzZmFk
ZUNsYXNzKQogICAgICAgICByZXR1cm4gdG9DU1NDcm9zc2ZhZGVWYWx1ZSh0aGlzKS0+aGFzRmFp
bGVkT3JDYW5jZWxlZFN1YnJlc291cmNlcygpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAg
ICBpZiAoY2xhc3NUeXBlKCkgPT0gRmlsdGVySW1hZ2VDbGFzcykKICAgICAgICAgcmV0dXJuIHRv
Q1NTRmlsdGVySW1hZ2VWYWx1ZSh0aGlzKS0+aGFzRmFpbGVkT3JDYW5jZWxlZFN1YnJlc291cmNl
cygpOwotI2VuZGlmCiAjaWYgRU5BQkxFKENTU19JTUFHRV9TRVQpCiAgICAgaWYgKGNsYXNzVHlw
ZSgpID09IEltYWdlU2V0Q2xhc3MpCiAgICAgICAgIHJldHVybiB0b0NTU0ltYWdlU2V0VmFsdWUo
dGhpcyktPmhhc0ZhaWxlZE9yQ2FuY2VsZWRTdWJyZXNvdXJjZXMoKTsKQEAgLTE2OSwxMCArMTY3
LDggQEAgYm9vbCBDU1NWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ZhbHVlJiBvdGhlcikgY29uc3QK
ICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU0NhbnZhc1ZhbHVlPigqdGhp
cywgb3RoZXIpOwogICAgICAgICBjYXNlIEN1cnNvckltYWdlQ2xhc3M6CiAgICAgICAgICAgICBy
ZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NDdXJzb3JJbWFnZVZhbHVlPigqdGhpcywgb3RoZXIp
OwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgY2FzZSBGaWx0ZXJJbWFnZUNsYXNz
OgogICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTRmlsdGVySW1hZ2VWYWx1
ZT4oKnRoaXMsIG90aGVyKTsKLSNlbmRpZgogICAgICAgICBjYXNlIEZvbnRDbGFzczoKICAgICAg
ICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU0ZvbnRWYWx1ZT4oKnRoaXMsIG90aGVy
KTsKICAgICAgICAgY2FzZSBGb250RmFjZVNyY0NsYXNzOgpAQCAtMjIzLDEwICsyMTksOCBAQCBi
b29sIENTU1ZhbHVlOjplcXVhbHMoY29uc3QgQ1NTVmFsdWUmIG90aGVyKSBjb25zdAogICAgICAg
ICBjYXNlIEltYWdlU2V0Q2xhc3M6CiAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVl
czxDU1NJbWFnZVNldFZhbHVlPigqdGhpcywgb3RoZXIpOwogI2VuZGlmCi0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQogICAgICAgICBjYXNlIFdlYktpdENTU0ZpbHRlckNsYXNzOgogICAgICAgICAg
ICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8V2ViS2l0Q1NTRmlsdGVyVmFsdWU+KCp0aGlzLCBv
dGhlcik7Ci0jZW5kaWYKICAgICAgICAgY2FzZSBTVkdDb2xvckNsYXNzOgogICAgICAgICAgICAg
cmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8U1ZHQ29sb3I+KCp0aGlzLCBvdGhlcik7CiAgICAgICAg
IGNhc2UgU1ZHUGFpbnRDbGFzczoKQEAgLTI1OSwxMCArMjUzLDggQEAgU3RyaW5nIENTU1ZhbHVl
Ojpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRvQ1NTQ2FudmFzVmFsdWUodGhpcykt
PmN1c3RvbUNTU1RleHQoKTsKICAgICBjYXNlIEN1cnNvckltYWdlQ2xhc3M6CiAgICAgICAgIHJl
dHVybiB0b0NTU0N1cnNvckltYWdlVmFsdWUodGhpcyktPmN1c3RvbUNTU1RleHQoKTsKLSNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgY2FzZSBGaWx0ZXJJbWFnZUNsYXNzOgogICAgICAgICBy
ZXR1cm4gdG9DU1NGaWx0ZXJJbWFnZVZhbHVlKHRoaXMpLT5jdXN0b21DU1NUZXh0KCk7Ci0jZW5k
aWYKICAgICBjYXNlIEZvbnRDbGFzczoKICAgICAgICAgcmV0dXJuIHRvQ1NTRm9udFZhbHVlKHRo
aXMpLT5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBGb250RmFjZVNyY0NsYXNzOgpAQCAtMzEz
LDEwICszMDUsOCBAQCBTdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAogICAgIGNhc2Ug
SW1hZ2VTZXRDbGFzczoKICAgICAgICAgcmV0dXJuIHRvQ1NTSW1hZ2VTZXRWYWx1ZSh0aGlzKS0+
Y3VzdG9tQ1NTVGV4dCgpOwogI2VuZGlmCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGNh
c2UgV2ViS2l0Q1NTRmlsdGVyQ2xhc3M6CiAgICAgICAgIHJldHVybiB0b1dlYktpdENTU0ZpbHRl
clZhbHVlKHRoaXMpLT5jdXN0b21DU1NUZXh0KCk7Ci0jZW5kaWYKICAgICBjYXNlIFNWR0NvbG9y
Q2xhc3M6CiAgICAgICAgIHJldHVybiB0b1NWR0NvbG9yKHRoaXMpLT5jdXN0b21DU1NUZXh0KCk7
CiAgICAgY2FzZSBTVkdQYWludENsYXNzOgpAQCAtNDIxLDE0ICs0MTEsMTIgQEAgdm9pZCBDU1NW
YWx1ZTo6ZGVzdHJveSgpCiAgICAgICAgIGRlbGV0ZSB0b0NTU0ltYWdlU2V0VmFsdWUodGhpcyk7
CiAgICAgICAgIHJldHVybjsKICNlbmRpZgotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBj
YXNlIEZpbHRlckltYWdlQ2xhc3M6CiAgICAgICAgIGRlbGV0ZSB0b0NTU0ZpbHRlckltYWdlVmFs
dWUodGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIFdlYktpdENTU0ZpbHRlckNsYXNz
OgogICAgICAgICBkZWxldGUgdG9XZWJLaXRDU1NGaWx0ZXJWYWx1ZSh0aGlzKTsKICAgICAgICAg
cmV0dXJuOwotI2VuZGlmCiAgICAgY2FzZSBTVkdDb2xvckNsYXNzOgogICAgICAgICBkZWxldGUg
dG9TVkdDb2xvcih0aGlzKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDQ5LDEwICs0MzcsOCBAQCBQ
YXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NWYWx1ZTo6Y2xvbmVGb3JDU1NPTSgpIGNvbnN0CiAgICAg
Y2FzZSBJbWFnZUNsYXNzOgogICAgIGNhc2UgQ3Vyc29ySW1hZ2VDbGFzczoKICAgICAgICAgcmV0
dXJuIHRvQ1NTSW1hZ2VWYWx1ZSh0aGlzKS0+Y2xvbmVGb3JDU1NPTSgpOwotI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKICAgICBjYXNlIFdlYktpdENTU0ZpbHRlckNsYXNzOgogICAgICAgICByZXR1
cm4gdG9XZWJLaXRDU1NGaWx0ZXJWYWx1ZSh0aGlzKS0+Y2xvbmVGb3JDU1NPTSgpOwotI2VuZGlm
CiAgICAgY2FzZSBXZWJLaXRDU1NUcmFuc2Zvcm1DbGFzczoKICAgICAgICAgcmV0dXJuIHRvV2Vi
S2l0Q1NTVHJhbnNmb3JtVmFsdWUodGhpcyktPmNsb25lRm9yQ1NTT00oKTsKICNpZiBFTkFCTEUo
Q1NTX0lNQUdFX1NFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKaW5kZXggZmE2NGJmNDY4NmU1ODY2NWQz
MjkxODc2MTBkNmIwOWM5MWU1NTA2My4uODA0MTNmODgyMGE3Zjc2ZDJiYzRlZTIzYjI4YTFjYzI0
NDRmYzM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKQEAgLTkzLDEwICs5Myw4IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2Ns
YXNzVHlwZSA9PSBXZWJLaXRDU1NUcmFuc2Zvcm1DbGFzczsgfQogICAgIGJvb2wgaXNMaW5lQm94
Q29udGFpblZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gTGluZUJveENvbnRh
aW5DbGFzczsgfQogICAgIGJvb2wgaXNDYWxjVmFsdWUoKSBjb25zdCB7cmV0dXJuIG1fY2xhc3NU
eXBlID09IENhbGN1bGF0aW9uQ2xhc3M7IH0KLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAg
Ym9vbCBpc0ZpbHRlckltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBG
aWx0ZXJJbWFnZUNsYXNzOyB9CiAgICAgYm9vbCBpc1dlYktpdENTU0ZpbHRlclZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gV2ViS2l0Q1NTRmlsdGVyQ2xhc3M7IH0KLSNlbmRp
ZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKICAg
ICBib29sIGlzR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NU
eXBlID09IEdyaWRUZW1wbGF0ZUFyZWFzQ2xhc3M7IH0KICAgICBib29sIGlzR3JpZExpbmVOYW1l
c1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gR3JpZExpbmVOYW1lc0NsYXNz
OyB9CkBAIC0xMzQsOSArMTMyLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAvLyBJbWFnZSBnZW5l
cmF0b3IgY2xhc3Nlcy4KICAgICAgICAgQ2FudmFzQ2xhc3MsCiAgICAgICAgIENyb3NzZmFkZUNs
YXNzLAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgRmlsdGVySW1hZ2VDbGFzcywK
LSNlbmRpZgogICAgICAgICBMaW5lYXJHcmFkaWVudENsYXNzLAogICAgICAgICBSYWRpYWxHcmFk
aWVudENsYXNzLAogCkBAIC0xNzEsOSArMTY3LDcgQEAgcHJvdGVjdGVkOgogI2lmIEVOQUJMRShD
U1NfSU1BR0VfU0VUKQogICAgICAgICBJbWFnZVNldENsYXNzLAogI2VuZGlmCi0jaWYgRU5BQkxF
KENTU19GSUxURVJTKQogICAgICAgICBXZWJLaXRDU1NGaWx0ZXJDbGFzcywKLSNlbmRpZgogICAg
ICAgICBXZWJLaXRDU1NUcmFuc2Zvcm1DbGFzcywKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VU
KQogICAgICAgICBHcmlkTGluZU5hbWVzQ2xhc3MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKaW5kZXggYWIxODZmZTJkOGU2NmI5OTczMTczMTg3Njc1YzA1YWVmYjRhYjViYy4uZDAy
YjIyY2IwNmVlNWVjNzYzMzU2NjhkOTNhNDA2ODVmZDk0MmFhZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcApAQCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgIkRlcHJlY2F0ZWRT
dHlsZUJ1aWxkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmgi
CiAjaW5jbHVkZSAiRWxlbWVudFJ1bGVDb2xsZWN0b3IuaCIKKyNpbmNsdWRlICJGaWx0ZXJPcGVy
YXRpb24uaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgi
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC0xMjgsNiArMTI5LDcgQEAKICNpbmNsdWRlICJV
c2VyQWdlbnRTdHlsZVNoZWV0cy5oIgogI2luY2x1ZGUgIlZpZXdwb3J0U3R5bGVSZXNvbHZlci5o
IgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRDU1NGaWx0
ZXJWYWx1ZS5oIgogI2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lUnVsZS5oIgogI2luY2x1ZGUg
IldlYktpdENTU0tleWZyYW1lc1J1bGUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NSZWdpb25SdWxl
LmgiCkBAIC0xMzgsMTEgKzE0MCw2IEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSNpbmNs
dWRlICJGaWx0ZXJPcGVyYXRpb24uaCIKLSNpbmNsdWRlICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5o
IgotI2VuZGlmCi0KICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogI2luY2x1ZGUgIkNTU0dy
aWRMaW5lTmFtZXNWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUu
aCIKQEAgLTIzNiw5ICsyMzMsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZVJlc29sdmVyOjpTdGF0ZTo6
Y2xlYXIoKQogICAgIG1fcGFyZW50U3R5bGUgPSBudWxscHRyOwogICAgIG1fcmVnaW9uRm9yU3R5
bGluZyA9IG51bGxwdHI7CiAgICAgbV9wZW5kaW5nSW1hZ2VQcm9wZXJ0aWVzLmNsZWFyKCk7Ci0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIG1fZmlsdGVyc1dpdGhQZW5kaW5nU1ZHRG9jdW1l
bnRzLmNsZWFyKCk7Ci0jZW5kaWYKICAgICBtX2Nzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgPSBD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCk7CiB9CiAKQEAgLTI2NzAsNyArMjY2NSw2IEBAIHZv
aWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1
ZSogdmFsdWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcjogewogICAgICAgICBIQU5ETEVf
SU5IRVJJVF9BTkRfSU5JVElBTChmaWx0ZXIsIEZpbHRlcik7CiAgICAgICAgIEZpbHRlck9wZXJh
dGlvbnMgb3BlcmF0aW9uczsKQEAgLTI2NzgsNyArMjY3Miw3IEBAIHZvaWQgU3R5bGVSZXNvbHZl
cjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAg
ICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRGaWx0ZXIob3BlcmF0aW9ucyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0jZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRvQ29sdW1uczogewogICAgICAgICBIQU5ETEVf
SU5IRVJJVF9BTkRfSU5JVElBTChncmlkQXV0b0NvbHVtbnMsIEdyaWRBdXRvQ29sdW1ucyk7CkBA
IC0zMjc0LDEyICszMjY4LDExIEBAIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gU3R5bGVSZXNvbHZl
cjo6Y2FjaGVkT3JQZW5kaW5nRnJvbVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvCiAKIFBhc3NSZWZQ
dHI8U3R5bGVJbWFnZT4gU3R5bGVSZXNvbHZlcjo6Z2VuZXJhdGVkT3JQZW5kaW5nRnJvbVZhbHVl
KENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUmIHZhbHVlKQog
ewotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBpZiAodmFsdWUuaXNGaWx0ZXJJbWFnZVZh
bHVlKCkpIHsKICAgICAgICAgLy8gRmlsdGVySW1hZ2UgbmVlZHMgdG8gY2FsY3VsYXRlIEZpbHRl
ck9wZXJhdGlvbnMuCiAgICAgICAgIHRvQ1NTRmlsdGVySW1hZ2VWYWx1ZSh2YWx1ZSkuY3JlYXRl
RmlsdGVyT3BlcmF0aW9ucyh0aGlzKTsKICAgICB9Ci0jZW5kaWYKKwogICAgIGlmICh2YWx1ZS5p
c1BlbmRpbmcoKSkgewogICAgICAgICBtX3N0YXRlLnBlbmRpbmdJbWFnZVByb3BlcnRpZXMoKS5z
ZXQocHJvcGVydHksICZ2YWx1ZSk7CiAgICAgICAgIHJldHVybiBTdHlsZVBlbmRpbmdJbWFnZTo6
Y3JlYXRlKCZ2YWx1ZSk7CkBAIC0zNDg1LDcgKzM0NzgsNiBAQCBib29sIFN0eWxlUmVzb2x2ZXI6
Omhhc01lZGlhUXVlcmllc0FmZmVjdGVkQnlWaWV3cG9ydENoYW5nZSgpIGNvbnN0CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogc3RhdGljIEZpbHRlck9w
ZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSBmaWx0ZXJPcGVyYXRpb25Gb3JUeXBlKFdlYktpdENTU0Zp
bHRlclZhbHVlOjpGaWx0ZXJPcGVyYXRpb25UeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBl
KSB7CkBAIC0zNjc1LDggKzM2NjcsNiBAQCBib29sIFN0eWxlUmVzb2x2ZXI6OmNyZWF0ZUZpbHRl
ck9wZXJhdGlvbnMoQ1NTVmFsdWUqIGluVmFsdWUsIEZpbHRlck9wZXJhdGlvbnMmCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLSNlbmRpZgotCiBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IFN0eWxlUmVz
b2x2ZXI6OmxvYWRQZW5kaW5nSW1hZ2UoY29uc3QgU3R5bGVQZW5kaW5nSW1hZ2UmIHBlbmRpbmdJ
bWFnZSwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChh
dXRvIGltYWdlVmFsdWUgPSBwZW5kaW5nSW1hZ2UuY3NzSW1hZ2VWYWx1ZSgpKQpAQCAtMzgzNywx
MCArMzgyNyw4IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdSZXNvdXJjZXMoKQog
ICAgIC8vIFN0YXJ0IGxvYWRpbmcgaW1hZ2VzIHJlZmVyZW5jZWQgYnkgdGhpcyBzdHlsZS4KICAg
ICBsb2FkUGVuZGluZ0ltYWdlcygpOwogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIC8v
IFN0YXJ0IGxvYWRpbmcgdGhlIFNWRyBEb2N1bWVudHMgcmVmZXJlbmNlZCBieSB0aGlzIHN0eWxl
LgogICAgIGxvYWRQZW5kaW5nU1ZHRG9jdW1lbnRzKCk7Ci0jZW5kaWYKIAogI2lmbmRlZiBOREVC
VUcKICAgICBpbkxvYWRQZW5kaW5nUmVzb3VyY2VzID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuaAppbmRleCA2ZWE2NzA2ODBlNjg3ZDIzMzAwZjkyNGYxOGEwYmJhYTgwNTA5MmVj
Li5jN2VlN2FiNGJkYjhhZmQyNDFhY2IzYjkxNDU5ZjA4MjFiZWVhMjJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmgKQEAgLTIzOCwxMCArMjM4LDggQEAgcHVibGljOgogCiAgICAgdm9p
ZCBjbGVhckNhY2hlZFByb3BlcnRpZXNBZmZlY3RlZEJ5Vmlld3BvcnRVbml0cygpOwogCi0jaWYg
RU5BQkxFKENTU19GSUxURVJTKQogICAgIGJvb2wgY3JlYXRlRmlsdGVyT3BlcmF0aW9ucyhDU1NW
YWx1ZSogaW5WYWx1ZSwgRmlsdGVyT3BlcmF0aW9ucyYgb3V0T3BlcmF0aW9ucyk7CiAgICAgdm9p
ZCBsb2FkUGVuZGluZ1NWR0RvY3VtZW50cygpOwotI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVS
UykKIAogICAgIHZvaWQgbG9hZFBlbmRpbmdSZXNvdXJjZXMoKTsKIApAQCAtMzgyLDkgKzM4MCw4
IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBhcHBseVByb3BlcnR5VG9SZWd1bGFyU3R5bGUoKSBj
b25zdCB7IHJldHVybiBtX2FwcGx5UHJvcGVydHlUb1JlZ3VsYXJTdHlsZTsgfQogICAgICAgICBi
b29sIGFwcGx5UHJvcGVydHlUb1Zpc2l0ZWRMaW5rU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2Fw
cGx5UHJvcGVydHlUb1Zpc2l0ZWRMaW5rU3R5bGU7IH0KICAgICAgICAgUGVuZGluZ0ltYWdlUHJv
cGVydHlNYXAmIHBlbmRpbmdJbWFnZVByb3BlcnRpZXMoKSB7IHJldHVybiBtX3BlbmRpbmdJbWFn
ZVByb3BlcnRpZXM7IH0KLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisKICAgICAgICAgVmVjdG9y
PFJlZlB0cjxSZWZlcmVuY2VGaWx0ZXJPcGVyYXRpb24+PiYgZmlsdGVyc1dpdGhQZW5kaW5nU1ZH
RG9jdW1lbnRzKCkgeyByZXR1cm4gbV9maWx0ZXJzV2l0aFBlbmRpbmdTVkdEb2N1bWVudHM7IH0K
LSNlbmRpZgogCiAgICAgICAgIHZvaWQgc2V0TGluZUhlaWdodFZhbHVlKENTU1ZhbHVlKiB2YWx1
ZSkgeyBtX2xpbmVIZWlnaHRWYWx1ZSA9IHZhbHVlOyB9CiAgICAgICAgIENTU1ZhbHVlKiBsaW5l
SGVpZ2h0VmFsdWUoKSB7IHJldHVybiBtX2xpbmVIZWlnaHRWYWx1ZTsgfQpAQCAtNDMxLDkgKzQy
OCw5IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBtX2FwcGx5UHJvcGVydHlUb1Zpc2l0ZWRMaW5r
U3R5bGU7CiAKICAgICAgICAgUGVuZGluZ0ltYWdlUHJvcGVydHlNYXAgbV9wZW5kaW5nSW1hZ2VQ
cm9wZXJ0aWVzOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKwogICAgICAgICBWZWN0b3I8UmVm
UHRyPFJlZmVyZW5jZUZpbHRlck9wZXJhdGlvbj4+IG1fZmlsdGVyc1dpdGhQZW5kaW5nU1ZHRG9j
dW1lbnRzOwotI2VuZGlmCisKICAgICAgICAgQ1NTVmFsdWUqIG1fbGluZUhlaWdodFZhbHVlOwog
ICAgICAgICBib29sIG1fZm9udERpcnR5OwogICAgICAgICBib29sIG1fZm9udFNpemVIYXNWaWV3
cG9ydFVuaXRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0ZpbHRl
clZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAK
aW5kZXggYTRhZjVkNDAzNmFlOWM1MDkzZGEwYjZkOTcyMTdiOTQ5ZTBhMTAwOS4uODZjYjRjYjZj
MDY4Njc1NzEyYmU3MjJiODZkNDZiZmY4ODQxZDA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCIKIAotI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKLQogI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0xMDEsNSAr
OTksMyBAQCBib29sIFdlYktpdENTU0ZpbHRlclZhbHVlOjplcXVhbHMoY29uc3QgV2ViS2l0Q1NT
RmlsdGVyVmFsdWUmIG90aGVyKSBjb25zdAogfQogCiB9Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRmlsdGVy
VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oCmluZGV4
IDlkYWVlZmY1NmZhODM1ZWVmNWY2YmZjZDJkNmNlMWQzZWM4ODlmZmYuLjRmOWQ5MTU4NjY5ZjUx
YTBiYzFkMmQwNjdmZjYyYTgzMGZmZTQxMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NGaWx0ZXJWYWx1ZS5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFdlYktpdENTU0ZpbHRl
clZhbHVlX2gKICNkZWZpbmUgV2ViS2l0Q1NTRmlsdGVyVmFsdWVfaAogCi0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQotCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC03Niw2ICs3NCw0IEBAIENT
U19WQUxVRV9UWVBFX0NBU1RTKFdlYktpdENTU0ZpbHRlclZhbHVlLCBpc1dlYktpdENTU0ZpbHRl
clZhbHVlKCkpCiAKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaWRs
IGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmlkbAppbmRleCA3YTNj
MGRlMGYwMGI3ZTA0ZmQ0NWVkZjlhMzFkYjQyYTAwOGRjZjhjLi40NWU3YTJlZmM4OTVlNTk3YTI0
Nzg0YmI0MjIyMGExNmI1YTIyYTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTRmlsdGVyVmFsdWUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NG
aWx0ZXJWYWx1ZS5pZGwKQEAgLTI0LDcgKzI0LDYgQEAKICAqLwogCiBbCi0gICAgQ29uZGl0aW9u
YWw9Q1NTX0ZJTFRFUlMsCiAgICAgRG9Ob3RDaGVja0NvbnN0YW50cywKICAgICBJbXBsZW1lbnRh
dGlvbkxhY2tzVlRhYmxlLAogXSBpbnRlcmZhY2UgV2ViS2l0Q1NTRmlsdGVyVmFsdWUgOiBDU1NW
YWx1ZUxpc3QgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFNWR0RvY3VtZW50UmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZS5jcHAKaW5kZXggZmRhMGNjN2IyZTQ1YTEyMDQ1MzA1
MjIyMjQxOTUzYjY3NjgzZjI1Ni4uMDZmM2FiOGQ3MzI1YzU5MDY3NTdhYjU5NTdlODlkYjgwYjQ3
ZmE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0Rv
Y3VtZW50UmVmZXJlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuaCIKIAotI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmgiCkBAIC02NCw1ICs2MywzIEBAIHZvaWQgQ2FjaGVkU1ZHRG9jdW1lbnRSZWZl
cmVuY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKIH0KIAogfQotCi0jZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1
bWVudFJlZmVyZW5jZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0Rv
Y3VtZW50UmVmZXJlbmNlLmgKaW5kZXggYzY2MzZhZmM0ZmU4YmFmY2ZlZmZhZGEwNWVjOTg1NjUw
OTA5NDhkZC4uNWRhM2VlYzU1NDI5NjU1Nzc5OWYyNjJjZjRmMzE4ZDQwY2I0ZjRiNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJl
bmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50
UmVmZXJlbmNlLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpZm5kZWYgQ2FjaGVkU1ZHRG9jdW1lbnRS
ZWZlcmVuY2VfaAogI2RlZmluZSBDYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZV9oCiAKLSNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNp
bmNsdWRlICJDYWNoZWRTVkdEb2N1bWVudENsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgpAQCAtNTUsNiArNTQsNCBAQCBwcml2YXRlOgogCiB9OwogCi0jZW5kaWYgLy8g
RU5BQkxFKENTU19GSUxURVJTKQotCiAjZW5kaWYgLy8gQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVu
Y2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDRhZTEzNDg1NzU1MTMxMzcyMTlk
Y2U0NTdiMzljYWIyMDNjOWU3NTkuLjExNGRlMmM3NjNmNWNjMzI1YWRiZThjMzU2YjkyMTMzMDA0
NjMxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTE3ODQsMTMgKzE3ODQsMTIg
QEAgYm9vbCBGcmFtZVZpZXc6OnNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYg
c2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAgIGlmIChsYXllci0+aGFzQW5j
ZXN0b3JXaXRoRmlsdGVyT3V0c2V0cygpKSB7CiAgICAgICAgICAgICAvLyBJZiB0aGUgZml4ZWQg
bGF5ZXIgaGFzIGEgYmx1ci9kcm9wLXNoYWRvdyBmaWx0ZXIgYXBwbGllZCBvbiBhdCBsZWFzdCBv
bmUgb2YgaXRzIHBhcmVudHMsIHdlIGNhbm5vdCAKICAgICAgICAgICAgIC8vIHNjcm9sbCB1c2lu
ZyB0aGUgZmFzdCBwYXRoLCBvdGhlcndpc2UgdGhlIG91dHNldHMgb2YgdGhlIGZpbHRlciB3aWxs
IGJlIG1vdmVkIGFyb3VuZCB0aGUgcGFnZS4KICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQotI2VuZGlmCisKICAgICAgICAgSW50UmVjdCB1cGRhdGVSZWN0ID0gc25hcHBlZElu
dFJlY3QobGF5ZXItPnJlcGFpbnRSZWN0SW5jbHVkaW5nTm9uQ29tcG9zaXRpbmdEZXNjZW5kYW50
cygpKTsKICAgICAgICAgdXBkYXRlUmVjdCA9IGNvbnRlbnRzVG9Sb290Vmlldyh1cGRhdGVSZWN0
KTsKICAgICAgICAgaWYgKCFpc0NvbXBvc2l0ZWRDb250ZW50TGF5ZXIgJiYgY2xpcHNSZXBhaW50
cygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNw
cAppbmRleCAzNDMwMDFhZWZhYmJmMmU2YTZlYzAwMzM3MWY0NTQ1NjQxN2IxOWYwLi5kYTc1MmUw
YjI3MzI0Mjk1OWViYzgzZGM3YzY0NWUyYjg3MDI5NjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcApAQCAtNzIsOSArNzIsNyBAQCBBbmlt
YXRpb25CYXNlOjpBbmltYXRpb25CYXNlKGNvbnN0IEFuaW1hdGlvbiYgdHJhbnNpdGlvbiwgUmVu
ZGVyRWxlbWVudCogcmVuZGVyZQogICAgIDogbV9hbmltYXRpb25TdGF0ZShBbmltYXRpb25TdGF0
ZTo6TmV3KQogICAgICwgbV9pc0FjY2VsZXJhdGVkKGZhbHNlKQogICAgICwgbV90cmFuc2Zvcm1G
dW5jdGlvbkxpc3RWYWxpZChmYWxzZSkKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgLCBt
X2ZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaChmYWxzZSkKLSNlbmRpZgogICAgICwgbV9zdGFydFRp
bWUoMCkKICAgICAsIG1fcGF1c2VUaW1lKC0xKQogICAgICwgbV9yZXF1ZXN0ZWRTdGFydFRpbWUo
MCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJh
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAppbmRl
eCBmZDNjYjBhY2NlOWE1MTg3YWQ4NzMyMmMzNTE0ZTAwN2QxNzI4NWMzLi4zYzZhZDIwYmY2ZWRm
YjVjNzExZjQwMWNiMmUwYTNjNjRjYzFlMjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCkBAIC0xODUsOSArMTg1LDcgQEAgcHVibGljOgogCiAg
ICAgLy8gRklYTUU6IHJlbmFtZSB0aGlzIHVzaW5nIHRoZSAibGlzdHMgbWF0Y2giIHRlcm1pbm9s
b2d5LgogICAgIGJvb2wgaXNUcmFuc2Zvcm1GdW5jdGlvbkxpc3RWYWxpZCgpIGNvbnN0IHsgcmV0
dXJuIG1fdHJhbnNmb3JtRnVuY3Rpb25MaXN0VmFsaWQ7IH0KLSNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiAgICAgYm9vbCBmaWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2goKSBjb25zdCB7IHJldHVybiBt
X2ZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaDsgfQotI2VuZGlmCiAKICAgICAvLyBGcmVlemUgdGhl
IGFuaW1hdGlvbjsgdXNlZCBieSBEdW1wUmVuZGVyVHJlZS4KICAgICB2b2lkIGZyZWV6ZUF0VGlt
ZShkb3VibGUgdCk7CkBAIC0yNDIsOSArMjQwLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBt
X2lzQWNjZWxlcmF0ZWQ7CiAgICAgYm9vbCBtX3RyYW5zZm9ybUZ1bmN0aW9uTGlzdFZhbGlkOwot
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBib29sIG1fZmlsdGVyRnVuY3Rpb25MaXN0c01h
dGNoOwotI2VuZGlmCiAgICAgZG91YmxlIG1fc3RhcnRUaW1lOwogICAgIGRvdWJsZSBtX3BhdXNl
VGltZTsKICAgICBkb3VibGUgbV9yZXF1ZXN0ZWRTdGFydFRpbWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXgg
YmJkZWUxODJiODIyNTk3Y2YzYTZjOWUzOTNkYzdlMzYyMWU5NWQ1My4uZDEwZjQxZjllYTViODY5
NzU4N2FmMjI5NjkzZDhkMWNiNDRhNDg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAtMTYxLDcgKzE2MSw2
IEBAIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxTaGFwZVZhbHVlPiBibGVuZEZ1bmMoY29uc3Qg
QW5pbWF0aW9uQmFzZSosIFNoYXBlVmFsdWUqCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShDU1Nf
RklMVEVSUykKIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGJsZW5k
RnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBGaWx0ZXJPcGVyYXRpb24qIGZyb21PcCwg
RmlsdGVyT3BlcmF0aW9uKiB0b09wLCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wgYmxlbmRUb1Bhc3N0
aHJvdWdoID0gZmFsc2UpCiB7CiAgICAgQVNTRVJUKHRvT3ApOwpAQCAtMjI0LDcgKzIyMyw2IEBA
IHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZpbHRlcihjb25zdCBB
bmltYXRpb25CYXNlKiBhbmltLCBDYWNoCiAgICAgcmVzdWx0LmdldCgpLnNldEZpbHRlck9wZXJh
dGlvbnMoZmlsdGVyUmVzdWx0KTsKICAgICByZXR1cm4gU3R5bGVHZW5lcmF0ZWRJbWFnZTo6Y3Jl
YXRlKFdURjo6bW92ZShyZXN1bHQpKTsKIH0KLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CiAKIHN0YXRpYyBpbmxpbmUgRVZpc2liaWxpdHkgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJh
c2UqIGFuaW0sIEVWaXNpYmlsaXR5IGZyb20sIEVWaXNpYmlsaXR5IHRvLCBkb3VibGUgcHJvZ3Jl
c3MpCiB7CkBAIC0yOTksNyArMjk3LDYgQEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0eWxl
SW1hZ2U+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBTdHlsZUkKICAgICAg
ICAgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYgZnJvbUdlbmVyYXRlZCA9IHRvU3R5bGVHZW5lcmF0
ZWRJbWFnZShmcm9tKS0+aW1hZ2VWYWx1ZSgpOwogICAgICAgICBDU1NJbWFnZUdlbmVyYXRvclZh
bHVlJiB0b0dlbmVyYXRlZCA9IHRvU3R5bGVHZW5lcmF0ZWRJbWFnZSh0byktPmltYWdlVmFsdWUo
KTsKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgaWYgKGZyb21HZW5lcmF0ZWQu
aXNGaWx0ZXJJbWFnZVZhbHVlKCkgJiYgdG9HZW5lcmF0ZWQuaXNGaWx0ZXJJbWFnZVZhbHVlKCkp
IHsKICAgICAgICAgICAgIC8vIEFuaW1hdGlvbiBvZiBnZW5lcmF0ZWQgaW1hZ2VzIGp1c3QgcG9z
c2libGUgaWYgaW5wdXQgaW1hZ2VzIGFyZSBlcXVhbC4KICAgICAgICAgICAgIC8vIE90aGVyd2lz
ZSBmYWxsIGJhY2sgdG8gY3Jvc3MgZmFkZSBhbmltYXRpb24uCkBAIC0zMDgsNyArMzA1LDYgQEAg
c3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5kRnVuYyhjb25zdCBBbmlt
YXRpb25CYXNlKiBhbmltLCBTdHlsZUkKICAgICAgICAgICAgIGlmIChmcm9tRmlsdGVyLmVxdWFs
SW5wdXRJbWFnZXModG9GaWx0ZXIpICYmIGZyb21GaWx0ZXIuY2FjaGVkSW1hZ2UoKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gYmxlbmRGaWx0ZXIoYW5pbSwgZnJvbUZpbHRlci5jYWNoZWRJbWFn
ZSgpLCBmcm9tRmlsdGVyLmZpbHRlck9wZXJhdGlvbnMoKSwgdG9GaWx0ZXIuZmlsdGVyT3BlcmF0
aW9ucygpLCBwcm9ncmVzcyk7CiAgICAgICAgIH0KLSNlbmRpZgogCiAgICAgICAgIGlmIChmcm9t
R2VuZXJhdGVkLmlzQ3Jvc3NmYWRlVmFsdWUoKSAmJiB0b0dlbmVyYXRlZC5pc0Nyb3NzZmFkZVZh
bHVlKCkpIHsKICAgICAgICAgICAgIENTU0Nyb3NzZmFkZVZhbHVlJiBmcm9tQ3Jvc3NmYWRlID0g
dG9DU1NDcm9zc2ZhZGVWYWx1ZShmcm9tR2VuZXJhdGVkKTsKQEAgLTMxOSw3ICszMTUsNiBAQCBz
dGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1h
dGlvbkJhc2UqIGFuaW0sIFN0eWxlSQogCiAgICAgICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBm
b3IgYW5pbWF0aW9uIGJldHdlZW4gdHdvICpncmFkaWVudCgpIGZ1bmN0aW9ucy4KICAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTk1NgotI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKICAgICB9IGVsc2UgaWYgKGZyb20tPmlzR2VuZXJhdGVkSW1hZ2Uo
KSAmJiB0by0+aXNDYWNoZWRJbWFnZSgpKSB7CiAgICAgICAgIENTU0ltYWdlR2VuZXJhdG9yVmFs
dWUmIGZyb21HZW5lcmF0ZWQgPSB0b1N0eWxlR2VuZXJhdGVkSW1hZ2UoZnJvbSktPmltYWdlVmFs
dWUoKTsKICAgICAgICAgaWYgKGZyb21HZW5lcmF0ZWQuaXNGaWx0ZXJJbWFnZVZhbHVlKCkpIHsK
QEAgLTMzNSw3ICszMzAsNiBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4g
YmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFN0eWxlSQogICAgICAgICAgICAg
aWYgKHRvRmlsdGVyLmNhY2hlZEltYWdlKCkgJiYgdG9TdHlsZUNhY2hlZEltYWdlKGZyb20pLT5j
YWNoZWRJbWFnZSgpID09IHRvRmlsdGVyLmNhY2hlZEltYWdlKCkpICAgICAKICAgICAgICAgICAg
ICAgICByZXR1cm4gYmxlbmRGaWx0ZXIoYW5pbSwgdG9GaWx0ZXIuY2FjaGVkSW1hZ2UoKSwgRmls
dGVyT3BlcmF0aW9ucygpLCB0b0ZpbHRlci5maWx0ZXJPcGVyYXRpb25zKCksIHByb2dyZXNzKTsK
ICAgICAgICAgfQotI2VuZGlmCiAgICAgICAgIC8vIEZJWE1FOiBBZGQgaW50ZXJwb2xhdGlvbiBi
ZXR3ZWVuIGltYWdlIHNvdXJjZSBhbmQgY3Jvc3MtZmFkZS4KICAgICB9CiAKQEAgLTU1Nyw3ICs1
NTEsNiBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIGNs
YXNzIFByb3BlcnR5V3JhcHBlckFjY2VsZXJhdGVkRmlsdGVyIDogcHVibGljIFByb3BlcnR5V3Jh
cHBlcjxjb25zdCBGaWx0ZXJPcGVyYXRpb25zJj4gewogcHVibGljOgogICAgIFByb3BlcnR5V3Jh
cHBlckFjY2VsZXJhdGVkRmlsdGVyKCkKQEAgLTU3Miw3ICs1NjUsNiBAQCBwdWJsaWM6CiAgICAg
ICAgIGRzdC0+c2V0RmlsdGVyKGJsZW5kRnVuYyhhbmltLCBhLT5maWx0ZXIoKSwgYi0+ZmlsdGVy
KCksIHByb2dyZXNzKSk7CiAgICAgfQogfTsKLSNlbmRpZgogCiBzdGF0aWMgaW5saW5lIHNpemVf
dCBzaGFkb3dMaXN0TGVuZ3RoKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdykKIHsKQEAgLTEyMjEs
MTAgKzEyMTMsNyBAQCBDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXA6OkNTU1Byb3BlcnR5
QW5pbWF0aW9uV3JhcHBlck1hcCgpCiAKICAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlckFjY2Vs
ZXJhdGVkT3BhY2l0eSgpLAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyQWNjZWxlcmF0ZWRU
cmFuc2Zvcm0oKSwKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAgIG5ldyBQcm9wZXJ0
eVdyYXBwZXJBY2NlbGVyYXRlZEZpbHRlcigpLAotI2VuZGlmCi0KICAgICAgICAgbmV3IFByb3Bl
cnR5V3JhcHBlckNsaXBQYXRoKENTU1Byb3BlcnR5V2Via2l0Q2xpcFBhdGgsICZSZW5kZXJTdHls
ZTo6Y2xpcFBhdGgsICZSZW5kZXJTdHlsZTo6c2V0Q2xpcFBhdGgpLAogCiAjaWYgRU5BQkxFKENT
U19TSEFQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBs
aWNpdEFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNp
dEFuaW1hdGlvbi5jcHAKaW5kZXggNmQ1NzdmNzAwNmEwYTViN2IwNTVlNDE4NmJkMmI2MTU3ODcx
MDZkMi4uZDYyNjk4NmM2MzgzZTQwNmJjM2UxYzNiYTFiNDNkY2MwZDk2YTVkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcApA
QCAtMTgxLDkgKzE4MSw3IEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246OnJlc2V0KFJlbmRlclN0
eWxlKiB0bykKICAgICAgICAgCiAgICAgLy8gc2V0IHRoZSB0cmFuc2Zvcm0gYW5pbWF0aW9uIGxp
c3QKICAgICB2YWxpZGF0ZVRyYW5zZm9ybUZ1bmN0aW9uTGlzdCgpOwotI2lmIEVOQUJMRShDU1Nf
RklMVEVSUykKICAgICBjaGVja0Zvck1hdGNoaW5nRmlsdGVyRnVuY3Rpb25MaXN0cygpOwotI2Vu
ZGlmCiB9CiAKIHZvaWQgSW1wbGljaXRBbmltYXRpb246OnNldE92ZXJyaWRkZW4oYm9vbCBiKQpA
QCAtMjQ0LDcgKzI0Miw2IEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246OnZhbGlkYXRlVHJhbnNm
b3JtRnVuY3Rpb25MaXN0KCkKICAgICBtX3RyYW5zZm9ybUZ1bmN0aW9uTGlzdFZhbGlkID0gdHJ1
ZTsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgSW1wbGljaXRBbmltYXRpb246
OmNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCkKIHsKICAgICBtX2ZpbHRlckZ1
bmN0aW9uTGlzdHNNYXRjaCA9IGZhbHNlOwpAQCAtMjY4LDcgKzI2NSw2IEBAIHZvaWQgSW1wbGlj
aXRBbmltYXRpb246OmNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCkKICAgICAv
LyBGaWx0ZXIgbGlzdHMgbWF0Y2guCiAgICAgbV9maWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2ggPSB0
cnVlOwogfQotI2VuZGlmCiAKIGRvdWJsZSBJbXBsaWNpdEFuaW1hdGlvbjo6dGltZVRvTmV4dFNl
cnZpY2UoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1w
bGljaXRBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0
QW5pbWF0aW9uLmgKaW5kZXggOWRlNGJmODBiMmVjMzI0NmRlNTc1NjY2OTU0NDJmM2U3NjhjZWIw
Mi4uZDQyYzM4YjdkZjExNTllZGMyZjg1Njg4OWQ1N2JkN2Y2NGNhZmI2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCkBAIC03OSw5
ICs3OSw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIHNlbmRUcmFuc2l0aW9uRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiwgZG91YmxlIGVsYXBzZWRUaW1lKTsKIAogICAgIHZvaWQgdmFsaWRhdGVU
cmFuc2Zvcm1GdW5jdGlvbkxpc3QoKTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdm9p
ZCBjaGVja0Zvck1hdGNoaW5nRmlsdGVyRnVuY3Rpb25MaXN0cygpOwotI2VuZGlmCiAKIHByaXZh
dGU6CiAgICAgSW1wbGljaXRBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uJiwgQ1NTUHJvcGVydHlJ
RCwgUmVuZGVyRWxlbWVudCosIENvbXBvc2l0ZUFuaW1hdGlvbiosIFJlbmRlclN0eWxlKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5j
cHAKaW5kZXggNjRjMjM0NTliYWUzNGNjNjNkYjMyNmU1YjcxZDFhYmIzZTg0YTg1Ny4uMDg5ZGY4
ODlhNTdkODgzZWJhNjYyMDMwN2M1ZGMwMjI1MjJhZGRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcApAQCAtNTMsOSArNTMs
NyBAQCBLZXlmcmFtZUFuaW1hdGlvbjo6S2V5ZnJhbWVBbmltYXRpb24oY29uc3QgQW5pbWF0aW9u
JiBhbmltYXRpb24sIFJlbmRlckVsZW1lbnQqCiAKICAgICAvLyBVcGRhdGUgdGhlIG1fdHJhbnNm
b3JtRnVuY3Rpb25MaXN0VmFsaWQgZmxhZyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBmdW5jdGlvbiBs
aXN0cyBpbiB0aGUga2V5ZnJhbWVzIG1hdGNoLgogICAgIHZhbGlkYXRlVHJhbnNmb3JtRnVuY3Rp
b25MaXN0KCk7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGNoZWNrRm9yTWF0Y2hpbmdG
aWx0ZXJGdW5jdGlvbkxpc3RzKCk7Ci0jZW5kaWYKIH0KIAogS2V5ZnJhbWVBbmltYXRpb246On5L
ZXlmcmFtZUFuaW1hdGlvbigpCkBAIC0zNjEsNyArMzU5LDYgQEAgdm9pZCBLZXlmcmFtZUFuaW1h
dGlvbjo6dmFsaWRhdGVUcmFuc2Zvcm1GdW5jdGlvbkxpc3QoKQogICAgIG1fdHJhbnNmb3JtRnVu
Y3Rpb25MaXN0VmFsaWQgPSB0cnVlOwogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogdm9p
ZCBLZXlmcmFtZUFuaW1hdGlvbjo6Y2hlY2tGb3JNYXRjaGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMo
KQogewogICAgIG1fZmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoID0gZmFsc2U7CkBAIC00MDAsNyAr
Mzk3LDYgQEAgdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6Y2hlY2tGb3JNYXRjaGluZ0ZpbHRlckZ1
bmN0aW9uTGlzdHMoKQogICAgIAogICAgIG1fZmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoID0gdHJ1
ZTsKIH0KLSNlbmRpZgogCiBkb3VibGUgS2V5ZnJhbWVBbmltYXRpb246OnRpbWVUb05leHRTZXJ2
aWNlKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZy
YW1lQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFu
aW1hdGlvbi5oCmluZGV4IGZkMTY1NDU3NjdlMDcyZTQ2M2EzMzc3N2Q3ZjA1MDcyMjkzMzk1YTku
LmI4YjJiYjViZDk1MGRlYWEyMjA1MGRjMjIwZTA3YWNmNjkyZDRiNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaApAQCAtNzgsOSAr
NzgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIGFmZmVjdHNQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUlEKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgdmFsaWRhdGVUcmFuc2Zvcm1G
dW5jdGlvbkxpc3QoKTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdm9pZCBjaGVja0Zv
ck1hdGNoaW5nRmlsdGVyRnVuY3Rpb25MaXN0cygpOwotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAg
S2V5ZnJhbWVBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uJiwgUmVuZGVyRWxlbWVudCosIGludCBp
bmRleCwgQ29tcG9zaXRlQW5pbWF0aW9uKiwgUmVuZGVyU3R5bGUqIHVuYW5pbWF0ZWRTdHlsZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwCmluZGV4IDg1ZDBmM2E4ZWI1MjE2MTczYWQ4MzdjMGE3NzFkMzJhMjAyNTk0MTkuLjZjNjE0
NmQwNmRhZTQzMWM1MWRjYjU0MzNjOTZiYTEzNjRkMzAwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC00NDAsNyArNDQw
LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpkaXN0cmlidXRlT3BhY2l0eShmbG9hdCBhY2N1bXVs
YXRlZE9wYWNpdHkpCiAgICAgfQogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogc3RhdGlj
IGlubGluZSBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJPcGVyYXRpb25zQXQoY29uc3Qg
S2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgc2l6ZV90IGluZGV4KQogewogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSY+KHZhbHVlTGlzdC5hdChp
bmRleCkpLnZhbHVlKCk7CkBAIC00NzgsNyArNDc3LDYgQEAgaW50IEdyYXBoaWNzTGF5ZXI6OnZh
bGlkYXRlRmlsdGVyT3BlcmF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0
KQogICAgIAogICAgIHJldHVybiBmaXJzdEluZGV4OwogfQotI2VuZGlmCiAKIC8vIEFuICJpbnZh
bGlkIiBsaXN0IGlzIG9uZSB3aG9zZSBmdW5jdGlvbnMgZG9uJ3QgbWF0Y2gsIGFuZCB0aGVyZWZv
cmUgaGFzIHRvIGJlIGFuaW1hdGVkIGFzIGEgTWF0cml4CiAvLyBUaGUgaGFzQmlnUm90YXRpb24g
ZmxhZyB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UgaWYgaXNWYWxpZCBpcyBmYWxzZS4gT3RoZXJ3
aXNlIGhhc0JpZ1JvdGF0aW9uIGlzIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDI2ODAwOWM1MWRhZTkxYTY4NTZjZDQ4OTE4ZTk1
OGQwZjU1NTc5MGEuLjdkYjdiNzBjYjUyMjU4YWRmNWM3YTZmYTE0YmZhOWZhZjJlNDFiNjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkNv
bG9yLmgiCisjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkZsb2F0UG9p
bnQuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50M0QuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIK
QEAgLTM5LDEwICs0MCw2IEBACiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0jaW5jbHVkZSAiRmls
dGVyT3BlcmF0aW9ucy5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQog
I2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNlbmRpZgpAQCAtMTQ1LDcgKzE0Miw2IEBAIHBy
aXZhdGU6CiAgICAgVHJhbnNmb3JtT3BlcmF0aW9ucyBtX3ZhbHVlOwogfTsKIAotI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKIC8vIFVzZWQgdG8gc3RvcmUgb25lIGZpbHRlciB2YWx1ZSBpbiBhIGtl
eWZyYW1lIGxpc3QuCiAvLyBGSVhNRTogU2hvdWxkIGJlIG1vdmVkIHRvIGl0cyBvd24gaGVhZGVy
IGZpbGUuCiBjbGFzcyBGaWx0ZXJBbmltYXRpb25WYWx1ZSA6IHB1YmxpYyBBbmltYXRpb25WYWx1
ZSB7CkBAIC0xNzEsNyArMTY3LDYgQEAgcHJpdmF0ZToKIAogICAgIEZpbHRlck9wZXJhdGlvbnMg
bV92YWx1ZTsKIH07Ci0jZW5kaWYKIAogLy8gVXNlZCB0byBzdG9yZSBhIHNlcmllcyBvZiB2YWx1
ZXMgaW4gYSBrZXlmcmFtZSBsaXN0LgogLy8gVmFsdWVzIHdpbGwgYWxsIGJlIG9mIHRoZSBzYW1l
IHR5cGUsIHdoaWNoIGNhbiBiZSBpbmZlcnJlZCBmcm9tIHRoZSBwcm9wZXJ0eS4KQEAgLTM1Niwx
MiArMzUxLDEwIEBAIHB1YmxpYzoKICAgICBmbG9hdCBvcGFjaXR5KCkgY29uc3QgeyByZXR1cm4g
bV9vcGFjaXR5OyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE9wYWNpdHkoZmxvYXQgb3BhY2l0eSkg
eyBtX29wYWNpdHkgPSBvcGFjaXR5OyB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAg
Y29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycygpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVy
czsgfQogICAgIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBmaWx0ZXIgY2FuIGJlIHJlbmRlcmVk
IGJ5IHRoZSBjb21wb3NpdG9yCiAgICAgdmlydHVhbCBib29sIHNldEZpbHRlcnMoY29uc3QgRmls
dGVyT3BlcmF0aW9ucyYgZmlsdGVycykgeyBtX2ZpbHRlcnMgPSBmaWx0ZXJzOyByZXR1cm4gdHJ1
ZTsgfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIEJsZW5kTW9k
ZSBibGVuZE1vZGUoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kTW9kZTsgfQpAQCAtNTMxLDcgKzUy
NCw2IEBAIHByb3RlY3RlZDoKICAgICAvLyBTaG91bGQgYmUgY2FsbGVkIGZyb20gZGVyaXZlZCBj
bGFzcyBkZXN0cnVjdG9ycy4gU2hvdWxkIGNhbGwgd2lsbEJlRGVzdHJveWVkKCkgb24gc3VwZXIu
CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogCi0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIC8vIFRoaXMgbWV0aG9kIGlzIHVzZWQgYnkgcGxh
dGZvcm0gR3JhcGhpY3NMYXllciBjbGFzc2VzIHRvIGNsZWFyIHRoZSBmaWx0ZXJzCiAgICAgLy8g
d2hlbiBjb21wb3NpdGluZyBpcyBub3QgZG9uZSBpbiBoYXJkd2FyZS4gSXQgaXMgbm90IHZpcnR1
YWwsIHNvIHRoZSBjYWxsZXIKICAgICAvLyBuZWVkcyB0byBub3RpZml5IHRoZSBjaGFuZ2UgdG8g
dGhlIHBsYXRmb3JtIGxheWVyIGFzIG5lZWRlZC4KQEAgLTUzOSw3ICs1MzEsNiBAQCBwcm90ZWN0
ZWQ6CiAKICAgICAvLyBHaXZlbiBhIEtleWZyYW1lVmFsdWVMaXN0IGNvbnRhaW5pbmcgZmlsdGVy
T3BlcmF0aW9ucywgcmV0dXJuIHRydWUgaWYgdGhlIG9wZXJhdGlvbnMgYXJlIHZhbGlkLgogICAg
IHN0YXRpYyBpbnQgdmFsaWRhdGVGaWx0ZXJPcGVyYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVM
aXN0Jik7Ci0jZW5kaWYKIAogICAgIC8vIEdpdmVuIGEgbGlzdCBvZiBUcmFuc2Zvcm1BbmltYXRp
b25WYWx1ZXMsIHNlZSBpZiBhbGwgdGhlIG9wZXJhdGlvbnMgZm9yIGVhY2gga2V5ZnJhbWUgbWF0
Y2guIElmIHNvCiAgICAgLy8gcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgS2V5ZnJhbWVWYWx1ZUxp
c3QgZW50cnkgdGhhdCBoYXMgdGhhdCBsaXN0IG9mIG9wZXJhdGlvbnMgKGl0IG1heSBub3QgYmUK
QEAgLTU4Miw5ICs1NzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgZmxvYXQgbV9vcGFjaXR5OwogICAg
IGZsb2F0IG1felBvc2l0aW9uOwogICAgIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBG
aWx0ZXJPcGVyYXRpb25zIG1fZmlsdGVyczsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19DT01Q
T1NJVElORykKICAgICBCbGVuZE1vZGUgbV9ibGVuZE1vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uY3Bw
CmluZGV4IGRjOWE2OWIzYzI5NGM0YTQxYjk3ODliZGVmMTJlNzU1OGZhNTRmZmIuLjA3YTQzMjA5
ZmU3ZmIzYjgxMDI3OGRlYTFlMjk0NzcxNjlmOWMxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uY3Bw
CkBAIC0yNyw3ICsyNyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGJs
ZW5kRnVuYyhGaWx0ZXJPcGVyYXRpb24qIGZyb21PcCwgRmlsdGVyT3BlcmF0aW9uKiB0b09wLCBk
b3VibGUgcHJvZ3Jlc3MsIGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgYm9vbCBibGVuZFRvUGFzc3Ro
cm91Z2ggPSBmYWxzZSkKIHsKICAgICBBU1NFUlQodG9PcCk7CkBAIC03Myw3ICs3Miw2IEBAIHN0
YXRpYyBGaWx0ZXJPcGVyYXRpb25zIGFwcGx5RmlsdGVyQW5pbWF0aW9uKGNvbnN0IEZpbHRlck9w
ZXJhdGlvbnMmIGZyb20sIGNvbnN0CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQotI2VuZGlmCiAK
IHN0YXRpYyBib29sIHNob3VsZFJldmVyc2VBbmltYXRpb25WYWx1ZShBbmltYXRpb246OkFuaW1h
dGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIGludCBsb29wQ291bnQpCiB7CkBAIC0yMzUsMTEgKzIz
Myw5IEBAIHZvaWQgR3JhcGhpY3NMYXllckFuaW1hdGlvbjo6YXBwbHlJbnRlcm5hbChDbGllbnQq
IGNsaWVudCwgY29uc3QgQW5pbWF0aW9uVmFsdWUmCiAgICAgY2FzZSBBbmltYXRlZFByb3BlcnR5
V2Via2l0VHJhbnNmb3JtOgogICAgICAgICBjbGllbnQtPnNldEFuaW1hdGVkVHJhbnNmb3JtKGFw
cGx5VHJhbnNmb3JtQW5pbWF0aW9uKHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlv
blZhbHVlJj4oZnJvbSkudmFsdWUoKSwgc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNmb3JtQW5pbWF0
aW9uVmFsdWUmPih0bykudmFsdWUoKSwgcHJvZ3Jlc3MsIG1fYm94U2l6ZSwgbV9saXN0c01hdGNo
KSk7CiAgICAgICAgIHJldHVybjsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgY2FzZSBB
bmltYXRlZFByb3BlcnR5V2Via2l0RmlsdGVyOgogICAgICAgICBjbGllbnQtPnNldEFuaW1hdGVk
RmlsdGVycyhhcHBseUZpbHRlckFuaW1hdGlvbihzdGF0aWNfY2FzdDxjb25zdCBGaWx0ZXJBbmlt
YXRpb25WYWx1ZSY+KGZyb20pLnZhbHVlKCksIHN0YXRpY19jYXN0PGNvbnN0IEZpbHRlckFuaW1h
dGlvblZhbHVlJj4odG8pLnZhbHVlKCksIHByb2dyZXNzLCBtX2JveFNpemUpKTsKICAgICAgICAg
cmV0dXJuOwotI2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllckFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllckFuaW1hdGlvbi5oCmluZGV4IGQ1NTE3MzJhYTEyZjVhMzhmMjQzNTEz
YTY4ZGEyNjA4MzNiOGEzM2MuLmZkZTJmODMwMzNlZmE2YTkwNmQzNDZmZWYyNjA5MjcyNDdlOTky
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXJBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyQW5pbWF0aW9uLmgKQEAgLTM0LDkgKzM0LDcgQEAgcHVibGljOgogICAgIHB1
YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHNldEFuaW1hdGVkVHJhbnNmb3JtKGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0QW5pbWF0
ZWRPcGFjaXR5KGZsb2F0KSA9IDA7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgICAgICB2
aXJ0dWFsIHZvaWQgc2V0QW5pbWF0ZWRGaWx0ZXJzKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKSA9
IDA7Ci0jZW5kaWYKICAgICB9OwogCiAgICAgR3JhcGhpY3NMYXllckFuaW1hdGlvbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0RXh0ZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0RXh0ZW50LmgKaW5kZXgg
NjUxN2Y4YWUwMGJjNTUzNjVmYTY2OTliNmJjMWNkOGNkYTZiZDZmYy4uNjExNzM5MDU0MDIxYjQz
MzRiN2JmYmY2NDdlM2M2ZDE1OTYzZTk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW50UmVjdEV4dGVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ludFJlY3RFeHRlbnQuaApAQCAtMzAsOCArMzAsNiBAQAogI2lmbmRlZiBJ
bnRSZWN0RXh0ZW50X2gKICNkZWZpbmUgSW50UmVjdEV4dGVudF9oCiAKLSNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCi0KICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTEwNyw2ICsxMDUsNCBAQCBpbmxpbmUgdm9pZCBvcGVyYXRvcis9KEludFJlY3RFeHRl
bnQmIGEsIGNvbnN0IEludFJlY3RFeHRlbnQmIGIpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAotI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2VuZGlmIC8vIEludFJlY3RFeHRl
bnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggZTgwYTI5Y2YzZjdmYWQ4MjczZWJkODA4YzE2ZmRjNmNk
OGU0ZWQyMC4uZTQzOWY1MGViZjNlYWMyNTIzOWFiNzViNTk4ZTA0ZDdlOTg0ZWFhMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xh
eWVyQ0EuY3BwCkBAIC0yNDMsMTEgKzI0Myw3IEBAIHN0YXRpYyBTdHJpbmcgcHJvcGVydHlJZFRv
U3RyaW5nKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKICAgICBjYXNlIEFuaW1hdGVkUHJv
cGVydHlCYWNrZ3JvdW5kQ29sb3I6CiAgICAgICAgIHJldHVybiAiYmFja2dyb3VuZENvbG9yIjsK
ICAgICBjYXNlIEFuaW1hdGVkUHJvcGVydHlXZWJraXRGaWx0ZXI6Ci0jaWYgRU5BQkxFKENTU19G
SUxURVJTKQogICAgICAgICByZXR1cm4gImZpbHRlcnMiOwotI2Vsc2UKLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0jZW5kaWYKICAgICBjYXNlIEFuaW1hdGVkUHJvcGVydHlJbnZhbGlk
OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC0yNzUsNyArMjcxLDYg
QEAgc3RhdGljIGJvb2wgYW5pbWF0aW9uSGFzU3RlcHNUaW1pbmdGdW5jdGlvbihjb25zdCBLZXlm
cmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotI2lmIEVO
QUJMRShDU1NfRklMVEVSUykgfHwgIUFTU0VSVF9ESVNBQkxFRAogc3RhdGljIGlubGluZSBib29s
IHN1cHBvcnRzQWNjZWxlcmF0ZWRGaWx0ZXJBbmltYXRpb25zKCkKIHsKIC8vIDxyZGFyOi8vcHJv
YmxlbS8xMDkwNzI1MT4gLSBXZWJLaXQyIGRvZXNuJ3Qgc3VwcG9ydCBDQSBhbmltYXRpb25zIG9m
IENJIGZpbHRlcnMgb24gTGlvbiBhbmQgYmVsb3cKQEAgLTI4NSw3ICsyODAsNiBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZEZpbHRlckFuaW1hdGlvbnMoKQogICAgIHJl
dHVybiBmYWxzZTsKICNlbmRpZgogfQotI2VuZGlmCiAKIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGlj
c0xheWVyPiBHcmFwaGljc0xheWVyOjpjcmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqIGZhY3Rv
cnksIEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKIHsKQEAgLTMwMCw3ICsyOTQsNiBAQCBz
dGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdyYXBo
aWNzTGF5ZXJGYWN0b3J5KiBmYWN0bwogICAgIHJldHVybiBncmFwaGljc0xheWVyOwogfQogCi0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQogYm9vbCBHcmFwaGljc0xheWVyQ0E6OmZpbHRlcnNDYW5C
ZUNvbXBvc2l0ZWQoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykKIHsKICNpZiBQTEFU
Rk9STShDT0NPQSkKQEAgLTMwOSw3ICszMDIsNiBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6Zmls
dGVyc0NhbkJlQ29tcG9zaXRlZChjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogICAg
IHJldHVybiBQbGF0Zm9ybUNBTGF5ZXJXaW46OmZpbHRlcnNDYW5CZUNvbXBvc2l0ZWQoZmlsdGVy
cyk7CiAjZW5kaWYKIH0KLSNlbmRpZgogICAgIAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+
IEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlUGxhdGZvcm1DQUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6
TGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikKIHsKQEAg
LTU3OCw5ICs1NzAsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6bW92ZU9yQ29weUFuaW1hdGlv
bnMoTW92ZU9yQ29weSBvcGVyYXRpb24sIFBsYXRmb3JtQ0FMYXllcgogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBpZiAoY3VyckFuaW1hdGlvbi5tX3Byb3BlcnR5ID09IEFuaW1hdGVkUHJvcGVy
dHlXZWJraXRUcmFuc2Zvcm0gfHwgY3VyckFuaW1hdGlvbi5tX3Byb3BlcnR5ID09IEFuaW1hdGVk
UHJvcGVydHlPcGFjaXR5CiAgICAgICAgICAgICAgICAgICAgIHx8IGN1cnJBbmltYXRpb24ubV9w
cm9wZXJ0eSA9PSBBbmltYXRlZFByb3BlcnR5QmFja2dyb3VuZENvbG9yCi0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQogICAgICAgICAgICAgICAgICAgICB8fCBjdXJyQW5pbWF0aW9uLm1fcHJvcGVy
dHkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZpbHRlcgotI2VuZGlmCiAgICAgICAgICAgICAg
ICAgKQogICAgICAgICAgICAgICAgIG1vdmVPckNvcHlMYXllckFuaW1hdGlvbihvcGVyYXRpb24s
IGFuaW1hdGlvbklkZW50aWZpZXIoY3VyckFuaW1hdGlvbi5tX25hbWUsIGN1cnJBbmltYXRpb24u
bV9wcm9wZXJ0eSwgY3VyckFuaW1hdGlvbi5tX2luZGV4LCBjdXJyQW5pbWF0aW9uLm1fc3ViSW5k
ZXgpLCBmcm9tTGF5ZXIsIHRvTGF5ZXIpOwogICAgICAgICB9CkBAIC02NzMsNyArNjYzLDYgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldE9wYWNpdHkoZmxvYXQgb3BhY2l0eSkKICAgICBub3Rl
TGF5ZXJQcm9wZXJ0eUNoYW5nZWQoT3BhY2l0eUNoYW5nZWQpOwogfQogCi0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQogYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEZpbHRlcnMoY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYgZmlsdGVyT3BlcmF0aW9ucykKIHsKICAgICBib29sIGNhbkNvbXBvc2l0ZUZp
bHRlcnMgPSBmaWx0ZXJzQ2FuQmVDb21wb3NpdGVkKGZpbHRlck9wZXJhdGlvbnMpOwpAQCAtNjk1
LDcgKzY4NCw2IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJzKGNvbnN0IEZpbHRl
ck9wZXJhdGlvbnMmIGZpbHRlck9wZXJhdGlvbnMpCiAgICAgfQogICAgIHJldHVybiBjYW5Db21w
b3NpdGVGaWx0ZXJzOwogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQog
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldEJsZW5kTW9kZShCbGVuZE1vZGUgYmxlbmRNb2RlKQpA
QCAtODAyLDEyICs3OTAsMTAgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFkZEFuaW1hdGlvbihj
b25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBGbG8KICAgICBib29sIGNy
ZWF0ZWRBbmltYXRpb25zID0gZmFsc2U7CiAgICAgaWYgKHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09
IEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pCiAgICAgICAgIGNyZWF0ZWRBbmltYXRp
b25zID0gY3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXModmFsdWVMaXN0LCBh
bmltLCBhbmltYXRpb25OYW1lLCB0aW1lT2Zmc2V0LCBib3hTaXplKTsKLSNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCiAgICAgZWxzZSBpZiAodmFsdWVMaXN0LnByb3BlcnR5KCkgPT0gQW5pbWF0ZWRQ
cm9wZXJ0eVdlYmtpdEZpbHRlcikgewogICAgICAgICBpZiAoc3VwcG9ydHNBY2NlbGVyYXRlZEZp
bHRlckFuaW1hdGlvbnMoKSkKICAgICAgICAgICAgIGNyZWF0ZWRBbmltYXRpb25zID0gY3JlYXRl
RmlsdGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXModmFsdWVMaXN0LCBhbmltLCBhbmltYXRpb25O
YW1lLCB0aW1lT2Zmc2V0KTsKICAgICB9Ci0jZW5kaWYKICAgICBlbHNlCiAgICAgICAgIGNyZWF0
ZWRBbmltYXRpb25zID0gY3JlYXRlQW5pbWF0aW9uRnJvbUtleWZyYW1lcyh2YWx1ZUxpc3QsIGFu
aW0sIGFuaW1hdGlvbk5hbWUsIHRpbWVPZmZzZXQpOwogCkBAIC0xMzI0LDExICsxMzEwLDkgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhD
b21taXRTdGF0ZSYgY29tbWl0U3RhdGUKIAogICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAm
IE9wYWNpdHlDaGFuZ2VkKQogICAgICAgICB1cGRhdGVPcGFjaXR5T25MYXllcigpOwotICAgIAot
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKKwogICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAm
IEZpbHRlcnNDaGFuZ2VkKQogICAgICAgICB1cGRhdGVGaWx0ZXJzKCk7Ci0jZW5kaWYKIAogI2lm
IEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYg
QmxlbmRNb2RlQ2hhbmdlZCkKQEAgLTE2NDEsNyArMTYyNSw2IEBAIHZvaWQgR3JhcGhpY3NMYXll
ckNBOjp1cGRhdGVCYWNrZmFjZVZpc2liaWxpdHkoKQogICAgIH0KIH0KIAotI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVGaWx0ZXJzKCkKIHsKICAg
ICBtX2xheWVyLT5zZXRGaWx0ZXJzKG1fZmlsdGVycyk7CkBAIC0xNjU2LDcgKzE2MzksNiBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlRmlsdGVycygpCiAgICAgICAgIH0KICAgICB9CiB9
Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiB2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6dXBkYXRlQmxlbmRNb2RlKCkKQEAgLTE2ODcsOSArMTY2OSw3IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjplbnN1cmVTdHJ1Y3R1cmFsTGF5ZXIoU3RydWN0dXJhbExheWVyUHVycG9zZSBw
dXJwb3NlKQogICAgICAgICB8IENoaWxkcmVuVHJhbnNmb3JtQ2hhbmdlZAogICAgICAgICB8IENo
aWxkcmVuQ2hhbmdlZAogICAgICAgICB8IEJhY2tmYWNlVmlzaWJpbGl0eUNoYW5nZWQKLSNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAgIHwgRmlsdGVyc0NoYW5nZWQKLSNlbmRpZgogICAg
ICAgICB8IE9wYWNpdHlDaGFuZ2VkOwogCiAgICAgaWYgKHB1cnBvc2UgPT0gTm9TdHJ1Y3R1cmFs
TGF5ZXIpIHsKQEAgLTIzNzgsNyArMjM1OCw2IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVh
dGVUcmFuc2Zvcm1BbmltYXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlCiAg
ICAgcmV0dXJuIHZhbGlkTWF0cmljZXM7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiBi
b29sIEdyYXBoaWNzTGF5ZXJDQTo6YXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnMoY29uc3Qg
S2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBvcGVy
YXRpb24sIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlv
bk5hbWUsIGludCBhbmltYXRpb25JbmRleCwgZG91YmxlIHRpbWVPZmZzZXQpCiB7CiAgICAgYm9v
bCBpc0tleWZyYW1lID0gdmFsdWVMaXN0LnNpemUoKSA+IDI7CkBAIC0yNDQyLDcgKzI0MjEsNiBA
QCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlRmlsdGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFt
ZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpcwogCiAgICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYK
IAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBHcmFwaGljc0xheWVyQ0E6OmNyZWF0
ZUJhc2ljQW5pbWF0aW9uKGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgY29uc3QgU3RyaW5nJiBrZXlQ
YXRoLCBib29sIGFkZGl0aXZlKQogewpAQCAtMjY5NSw3ICsyNjczLDYgQEAgYm9vbCBHcmFwaGlj
c0xheWVyQ0E6OnNldFRyYW5zZm9ybUFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZh
bHVlTGlzdCYgdmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25FbmRwb2ludHMoY29u
c3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRp
b24sIFBsYXRmb3JtQ0FBbmltYXRpb24qIGJhc2ljQW5pbSwgaW50IGZ1bmN0aW9uSW5kZXgsIGlu
dCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCiB7CiAgICAgQVNTRVJUKHZhbHVlTGlzdC5z
aXplKCkgPT0gMik7CkBAIC0yNzY4LDcgKzI3NDUsNiBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6
c2V0RmlsdGVyQW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1
ZQogCiAgICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6
OnN1c3BlbmRBbmltYXRpb25zKGRvdWJsZSB0aW1lKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRleCBiMjA0ZjRj
M2ZkN2JiODU2ZTNjMWFiZTExOGZhMTFiMzk4OWJhNmM4Li42NjBiZWE0MTRiNzM0ZjljNGIxZDMz
YzliNmMyMTkzMjAyZDY5ZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApAQCAtMTAyLDEwICsxMDIsOCBAQCBwdWJs
aWM6CiAgICAgLy8gcmV0dXJuIHRydWUgaWYgd2Ugc3RhcnRlZCBhbiBhbmltYXRpb24KICAgICBX
RUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0T3BhY2l0eShmbG9hdCkgb3ZlcnJpZGU7CiAK
LSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBib29s
IHNldEZpbHRlcnMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgYm9vbCBmaWx0ZXJzQ2FuQmVDb21wb3NpdGVkKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKTsK
LSNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKICAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIHZvaWQgc2V0QmxlbmRNb2RlKEJsZW5kTW9kZSkgb3ZlcnJpZGU7CkBAIC0yMDMs
MTAgKzIwMSw3IEBAIHByaXZhdGU6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGxheWVyRGlk
RGlzcGxheShQbGF0Zm9ybUNBTGF5ZXIqKTsKICAgICB2b2lkIHVwZGF0ZU9wYWNpdHlPbkxheWVy
KCk7Ci0gICAgCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHZvaWQgdXBkYXRlRmlsdGVy
cygpOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIHZvaWQgdXBk
YXRlQmxlbmRNb2RlKCk7CkBAIC0yMzAsOSArMjI1LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wg
Y3JlYXRlQW5pbWF0aW9uRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNv
bnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHRpbWVP
ZmZzZXQpOwogICAgIGJvb2wgY3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMo
Y29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJpbmcm
IGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1lT2Zmc2V0LCBjb25zdCBGbG9hdFNpemUmIGJveFNp
emUpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBib29sIGNyZWF0ZUZpbHRlckFuaW1h
dGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgQW5pbWF0
aW9uKiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgdGltZU9mZnNldCk7Ci0j
ZW5kaWYKIAogICAgIC8vIFJldHVybiBhdXRvcmVsZWFzZWQgYW5pbWF0aW9uICh1c2UgUmV0YWlu
UHRyPykKICAgICBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZUJhc2ljQW5p
bWF0aW9uKGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhZGRp
dGl2ZSk7CkBAIC0yNDcsMTAgKzI0MCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzZXRUcmFuc2Zv
cm1BbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmlt
YXRpb24qLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiwgaW50IGZ1bmN0aW9uSW5kZXgsIFRyYW5zZm9y
bU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSwgYm9vbCBpc01hdHJpeEFuaW1hdGlvbiwgY29uc3Qg
RmxvYXRTaXplJiBib3hTaXplKTsKICAgICBib29sIHNldFRyYW5zZm9ybUFuaW1hdGlvbktleWZy
YW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIFBsYXRmb3Jt
Q0FBbmltYXRpb24qLCBpbnQgZnVuY3Rpb25JbmRleCwgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVy
YXRpb25UeXBlLCBib29sIGlzTWF0cml4QW5pbWF0aW9uLCBjb25zdCBGbG9hdFNpemUmIGJveFNp
emUpOwogICAgIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBib29sIHNldEZpbHRlckFu
aW1hdGlvbkVuZHBvaW50cyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlv
biosIFBsYXRmb3JtQ0FBbmltYXRpb24qLCBpbnQgZnVuY3Rpb25JbmRleCwgaW50IGludGVybmFs
RmlsdGVyUHJvcGVydHlJbmRleCk7CiAgICAgYm9vbCBzZXRGaWx0ZXJBbmltYXRpb25LZXlmcmFt
ZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24qLCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKiwgaW50IGZ1bmN0aW9uSW5kZXgsIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5
SW5kZXgsIEZpbHRlck9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSk7Ci0jZW5kaWYKIAogICAgIGJv
b2wgaXNSdW5uaW5nVHJhbnNmb3JtQW5pbWF0aW9uKCkgY29uc3Q7CiAKQEAgLTQwNiw5ICszOTcs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgbW92ZU9yQ29weUFuaW1hdGlvbnMoTW92ZU9yQ29weSwg
UGxhdGZvcm1DQUxheWVyICogZnJvbUxheWVyLCBQbGF0Zm9ybUNBTGF5ZXIgKiB0b0xheWVyKTsK
ICAgICAKICAgICBib29sIGFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKGNvbnN0IEtleWZy
YW1lVmFsdWVMaXN0JiwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyosIGNvbnN0IEFuaW1hdGlv
biosIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgY29uc3QgRmxvYXRTaXplJiBib3hTaXpl
LCBpbnQgYW5pbWF0aW9uSW5kZXgsIGRvdWJsZSB0aW1lT2Zmc2V0LCBib29sIGlzTWF0cml4QW5p
bWF0aW9uKTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBhcHBlbmRUb1VuY29t
bWl0dGVkQW5pbWF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEZpbHRlck9w
ZXJhdGlvbiosIGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwg
aW50IGFuaW1hdGlvbkluZGV4LCBkb3VibGUgdGltZU9mZnNldCk7Ci0jZW5kaWYKIAogICAgIGVu
dW0gTGF5ZXJDaGFuZ2UgewogICAgICAgICBOb0NoYW5nZSA9IDAsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgK
aW5kZXggMDViNDMwYWNjMjU0ZGFmNjI3ODRiMTk4YjNjOGRhNWRiNGU5MzZjMi4uYTViYTY5M2I0
YzM3OGU3NWQwN2EzZjFjMzY1NGUzNGI3YjczMjU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaApAQCAt
OTMsMTggKzkzLDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNv
bnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRGcm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSA9IDA7Ci0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgRmlsdGVyT3Bl
cmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgPSAwOwotI2VuZGlmCiAg
ICAgdmlydHVhbCB2b2lkIGNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRp
b24qKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShmbG9hdCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0
cml4JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IEZsb2F0UG9pbnQz
RCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xv
ciYpID0gMDsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2b2lkIHNldFRv
VmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJ
bmRleCkgPSAwOwotI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGNvcHlUb1ZhbHVlRnJvbShjb25z
dCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgPSAwOwogCiAgICAgLy8gS2V5ZnJhbWUtYW5pbWF0aW9u
IHByb3BlcnRpZXMuCkBAIC0xMTIsOSArMTA4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50
M0Q+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNv
cmU6OkNvbG9yPiYpID0gMDsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2
b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiwgaW50
IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgPSAwOwotI2VuZGlmCiAgICAgdmlydHVhbCB2
b2lkIGNvcHlWYWx1ZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKSA9IDA7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYpID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FG
aWx0ZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNB
RmlsdGVycy5oCmluZGV4IDg4NjA2ODc4ODc4MThlMzA2YTBlODgzZTgxYzU3MGNmYWU4NTI1OTQu
LjdjZGIzZDIyOTliZjZmZjRhOWIzMjg4NWY0ZGE5ZWJhYTk3ZTY5MWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FGaWx0ZXJzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUZpbHRlcnMu
aApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBQbGF0Zm9ybUNBRmlsdGVyc19oCiAjZGVmaW5l
IFBsYXRmb3JtQ0FGaWx0ZXJzX2gKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2luY2x1
ZGUgIkZpbHRlck9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1MYXllci5oIgpAQCAtNjQsNiArNjIsNCBAQCBwdWJsaWM6CiAKIH0KIAot
I2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2VuZGlmIC8vIFBsYXRmb3JtQ0FGaWx0
ZXJzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1Bs
YXRmb3JtQ0FMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUxheWVyLmgKaW5kZXggNWMwYTg2MzNmMjc3MTJiZGU4ZDFhNDc3YjUzNzA3MDNhZDQ0
MmIyYi4uMzEwZTkwMTYxNjdjODQ5ODU2MDRhODBmMjczZGVmMWFjMThmNjkyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVy
LmgKQEAgLTE4MSwxMSArMTgxLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBmbG9hdCBvcGFj
aXR5KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFjaXR5KGZsb2F0KSA9IDA7
Ci0KLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2b2lkIHNldEZpbHRlcnMo
Y29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29weUZpbHRl
cnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FMYXllciopID0gMDsKLSNlbmRpZgogCiAjaWYgRU5BQkxF
KENTU19DT01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgc2V0QmxlbmRNb2RlKEJsZW5kTW9k
ZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmgKaW5kZXggNGYwMDU0YzY1YTYx
NTAxNjNlNmI2ZjFkZTNkYWMwY2I4ZjkyNDZmOS4uM2YzNzBiNTY2Zjg1MjBhOGNhM2ViMzI0Nzc5
ZDEzNDUwNDhiNmExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oCkBAIC05OSwx
OCArOTksMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RnJvbVZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKLSNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25z
dCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSBvdmVy
cmlkZTsKLSNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9W
YWx1ZShmbG9hdCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOwotI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBGaWx0
ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSBvdmVycmlkZTsK
LSNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1D
QUFuaW1hdGlvbiopIG92ZXJyaWRlOwogCiAgICAgLy8gS2V5ZnJhbWUtYW5pbWF0aW9uIHByb3Bl
cnRpZXMuCkBAIC0xMTgsOSArMTE0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRW
YWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQz
RD4mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpDb2xvcj4mKSBvdmVycmlkZTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAg
dmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlv
bj4+JiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7Ci0jZW5kaWYK
ICAgICB2aXJ0dWFsIHZvaWQgY29weVZhbHVlc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlv
biopIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEtleVRpbWVzKGNvbnN0IFZlY3Rv
cjxmbG9hdD4mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0KaW5k
ZXggZDhiNDNkNjcyMGM0OTMyMjA5MWI2ZjIxOWI4YzI1MzIxZDBlZWIwYy4uMmJjNjVkYzkwYzMz
YjYwNDc4NGMwNTVkY2NiMTkyZGNjMTc1Njg0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRp
b25NYWMubW0KQEAgLTM4NywxMyArMzg3LDExIEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1h
Yzo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkKICAgICBbc3RhdGlj
X2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRGcm9tVmFsdWU6
YXJyYXldOwogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uTWFjOjpzZXRGcm9tVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBvcGVyYXRpb24s
IGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCiB7CiAgICAgUmV0YWluUHRyPGlkPiB2
YWx1ZSA9IFBsYXRmb3JtQ0FGaWx0ZXJzOjpmaWx0ZXJWYWx1ZUZvck9wZXJhdGlvbihvcGVyYXRp
b24sIGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCk7CiAgICAgW3N0YXRpY19jYXN0PENBQmFz
aWNBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0RnJvbVZhbHVlOnZhbHVlLmdldCgp
XTsKIH0KLSNlbmRpZgogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNvcHlGcm9tVmFs
dWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQogewpAQCAtNDQ2LDEzICs0
NDQsMTEgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRUb1ZhbHVlKGNvbnN0IFdl
YkNvcmU6OkNvbG9yJiB2YWx1ZSkKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+
KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRUb1ZhbHVlOmFycmF5XTsKIH0KIAotI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0VG9WYWx1ZShjb25z
dCBGaWx0ZXJPcGVyYXRpb24qIG9wZXJhdGlvbiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJ
bmRleCkKIHsKICAgICBSZXRhaW5QdHI8aWQ+IHZhbHVlID0gUGxhdGZvcm1DQUZpbHRlcnM6OmZp
bHRlclZhbHVlRm9yT3BlcmF0aW9uKG9wZXJhdGlvbiwgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUlu
ZGV4KTsKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdl
dCgpKSBzZXRUb1ZhbHVlOnZhbHVlLmdldCgpXTsKIH0KLSNlbmRpZgogCiB2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25NYWM6OmNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9u
KiB2YWx1ZSkKIHsKQEAgLTUyNiw3ICs1MjIsNiBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25N
YWM6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKICAgICBb
c3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRW
YWx1ZXM6YXJyYXldOwogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uTWFjOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVy
YXRpb24+PiYgdmFsdWVzLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KQogewogICAg
IGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUpCkBAIC01NDAsNyArNTM1LDYgQEAgdm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxG
aWx0ZXJPcGVyYXRpb24+PiYgdmEKICAgICB9CiAgICAgW3N0YXRpY19jYXN0PENBS2V5ZnJhbWVB
bmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0VmFsdWVzOmFycmF5XTsKIH0KLSNlbmRp
ZgogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNvcHlWYWx1ZXNGcm9tKGNvbnN0IFBs
YXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FGaWx0ZXJzTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FGaWx0ZXJzTWFjLm1t
CmluZGV4IDYxYTkyMzA2NGFkNjdhMTQ0YzMyZmFkZGU1ZTljYmEyNDJhNjBjOTMuLjI0OGY5ZWQ2
NTY4M2IzNjgyMGIyZmFmZDM5OTMwYTA0YTkzYWM0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBRmlsdGVyc01hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUZpbHRl
cnNNYWMubW0KQEAgLTI1LDggKzI1LDYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYg
RU5BQkxFKENTU19GSUxURVJTKQotCiAjaW1wb3J0ICJQbGF0Zm9ybUNBRmlsdGVycy5oIgogI2lt
cG9ydCAiQmxvY2tFeGNlcHRpb25zLmgiCiAjaW1wb3J0ICJGbG9hdENvbnZlcnNpb24uaCIKQEAg
LTY2OSw1ICs2NjcsMyBAQCBjb25zdCBjaGFyKiBQbGF0Zm9ybUNBRmlsdGVyczo6YW5pbWF0ZWRG
aWx0ZXJQcm9wZXJ0eU5hbWUoRmlsdGVyT3BlcmF0aW9uOjpPcGVyYQogICAgIH0KICNlbmRpZgog
fQotCi0jZW5kaWYgLy8gRU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5o
CmluZGV4IDU0OWIwOTJiNmU1NDM1ODgxZDExZjA1NzNkMWMwODg5MDg2MGQ5NDMuLjY1NGViNDg1
Mjg1ODE5ODM2MGY0ODlkODQ0YzE0OWJiOWEzMzQyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFj
LmgKQEAgLTExNywxMiArMTE3LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBmbG9hdCBvcGFj
aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldE9wYWNpdHkoZmxvYXQp
IG92ZXJyaWRlOwotCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHZpcnR1YWwgdm9pZCBz
ZXRGaWx0ZXJzKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKSBvdmVycmlkZTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgYm9vbCBmaWx0ZXJzQ2FuQmVDb21wb3NpdGVkKGNvbnN0IEZpbHRlck9w
ZXJhdGlvbnMmKTsKICAgICB2aXJ0dWFsIHZvaWQgY29weUZpbHRlcnNGcm9tKGNvbnN0IFBsYXRm
b3JtQ0FMYXllciopIG92ZXJyaWRlOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lU
SU5HKQogICAgIHZpcnR1YWwgdm9pZCBzZXRCbGVuZE1vZGUoQmxlbmRNb2RlKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBTGF5ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCmluZGV4IDgzNzdlOTU0OWJiZWUyMjUwMGRmZjJlYTJh
YmU5MWJmNWFhM2MzYTYuLmFhZGM2MTFkMmY5ZjMyNzI4MjViNGIwZThhNTA0YTM0Mjg5YzhmOTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBTGF5ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQpAQCAtMzIwLDkgKzMyMCw3IEBAIFBhc3NSZWZQ
dHI8UGxhdGZvcm1DQUxheWVyPiBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmNsb25lKFBsYXRmb3JtQ0FM
YXllckNsaWVudCogb3duCiAgICAgbmV3TGF5ZXItPnNldE9wYXF1ZShpc09wYXF1ZSgpKTsKICAg
ICBuZXdMYXllci0+c2V0QmFja2dyb3VuZENvbG9yKGJhY2tncm91bmRDb2xvcigpKTsKICAgICBu
ZXdMYXllci0+c2V0Q29udGVudHNTY2FsZShjb250ZW50c1NjYWxlKCkpOwotI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKICAgICBuZXdMYXllci0+Y29weUZpbHRlcnNGcm9tKHRoaXMpOwotI2VuZGlm
CiAgICAgbmV3TGF5ZXItPnVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UoY3VzdG9tQXBwZWFyYW5jZSgp
KTsKIAogICAgIGlmICh0eXBlID09IExheWVyVHlwZUFWUGxheWVyTGF5ZXIpIHsKQEAgLTcxMCw3
ICs3MDgsNiBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0T3BhY2l0eShmbG9hdCB2YWx1
ZSkKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0RmlsdGVycyhjb25zdCBGaWx0ZXJP
cGVyYXRpb25zJiBmaWx0ZXJzKQogewogICAgIFBsYXRmb3JtQ0FGaWx0ZXJzOjpzZXRGaWx0ZXJz
T25MYXllcihwbGF0Zm9ybUxheWVyKCksIGZpbHRlcnMpOwpAQCAtNzQ2LDcgKzc0Myw2IEBAIGJv
b2wgUGxhdGZvcm1DQUxheWVyTWFjOjpmaWx0ZXJzQ2FuQmVDb21wb3NpdGVkKGNvbnN0IEZpbHRl
ck9wZXJhdGlvbnMmIGZpbHRlcnMpCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRpZgogCiAj
aWYgRU5BQkxFKENTU19DT01QT1NJVElORykKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRC
bGVuZE1vZGUoQmxlbmRNb2RlIGJsZW5kTW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9u
V2luLmNwcAppbmRleCBjYzFjMjZlMTc0MTcxMTUwNTMyN2ZhM2Y5NDNlZGZiYmYxZTY0MmMyLi45
OTViZGQ2NWM3OGI4MTBhYTllOWExZDY1NDM4NGRkYTYwYmMzMjBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRm
b3JtQ0FBbmltYXRpb25XaW4uY3BwCkBAIC0zNzQsMTIgKzM3NCwxMCBAQCB2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW46OnNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUp
CiAgICAgQ0FDRkFuaW1hdGlvblNldEZyb21WYWx1ZShtX2FuaW1hdGlvbi5nZXQoKSwgdi5nZXQo
KSk7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b25XaW46OnNldEZyb21WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQpCiB7CiAgICAg
Ly8gRklYTUU6IEhhcmR3YXJlIGZpbHRlciBhbmltYXRpb24gbm90IGltcGxlbWVudGVkIG9uIFdp
bmRvd3MKIH0KLSNlbmRpZgogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OmNvcHlGcm9t
VmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQogewpAQCAtNDI3LDEy
ICs0MjUsMTAgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRUb1ZhbHVlKGNvbnN0
IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkKICAgICBDQUNGQW5pbWF0aW9uU2V0VG9WYWx1ZShtX2Fu
aW1hdGlvbi5nZXQoKSwgdi5nZXQoKSk7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0
aW9uKiwgaW50KQogewogICAgIC8vIEZJWE1FOiBIYXJkd2FyZSBmaWx0ZXIgYW5pbWF0aW9uIG5v
dCBpbXBsZW1lbnRlZCBvbiBXaW5kb3dzCiB9Ci0jZW5kaWYKIAogdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uV2luOjpjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFs
dWUpCiB7CkBAIC01MDEsMTIgKzQ5NywxMCBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46
OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKICAgICBDQUNG
QW5pbWF0aW9uU2V0VmFsdWVzKG1fYW5pbWF0aW9uLmdldCgpLCBhcnJheS5nZXQoKSk7CiB9CiAK
LSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNl
dFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gPiYsIGludCkKIHsK
ICAgICAvLyBGSVhNRTogSGFyZHdhcmUgZmlsdGVyIGFuaW1hdGlvbiBub3QgaW1wbGVtZW50ZWQg
b24gV2luZG93cwogfQotI2VuZGlmCiAKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6Y29w
eVZhbHVlc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFu
aW1hdGlvbldpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1Bs
YXRmb3JtQ0FBbmltYXRpb25XaW4uaAppbmRleCBkZDJiMTlmNDNiNzQ1MDdhY2E0NTZjYzdjNTE1
MzhjNDJjMzM3MThjLi4wZGFlZjllZTRlYTM3MmNjN2U0NGIyOGQxZTYyZTNlNDVmOWRhY2I3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUFuaW1hdGlvbldpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmgKQEAgLTg5LDE4ICs4OSwxNCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUo
Y29uc3QgRmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldEZyb21W
YWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOwotI2lmIEVOQUJMRShDU1NfRklM
VEVSUykKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlv
biosIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpIG92ZXJyaWRlOwotI2VuZGlmCiAg
ICAgdmlydHVhbCB2b2lkIGNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRp
b24qKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGZsb2F0KSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNv
bnN0IEZsb2F0UG9pbnQzRCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVl
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJT
KQogICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGlu
dCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpIG92ZXJyaWRlOwotI2VuZGlmCiAgICAgdmly
dHVhbCB2b2lkIGNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3Zl
cnJpZGU7CiAKICAgICAvLyBLZXlmcmFtZS1hbmltYXRpb24gcHJvcGVydGllcy4KQEAgLTEwOCw5
ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0
b3I8V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8RmxvYXRQb2ludDNEPiYpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYp
IG92ZXJyaWRlOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPj4mLCBpbnQgaW50ZXJu
YWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSBvdmVycmlkZTsKLSNlbmRpZgogICAgIHZpcnR1YWwgdm9p
ZCBjb3B5VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2lu
L1BsYXRmb3JtQ0FGaWx0ZXJzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9QbGF0Zm9ybUNBRmlsdGVyc1dpbi5jcHAKaW5kZXggNzhlMTc5ZTNiMTJjM2Ri
OWNkMDk2YWIxMmExZjc1MGU3NjZmZGE3Ny4uYmViMzk3YjAzZWFkYTIyNWI5ZjZhZWMxMzY2MjVh
NTQ3ZWMxZTM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1BsYXRmb3JtQ0FGaWx0ZXJzV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUZpbHRlcnNXaW4uY3BwCkBAIC0yNCw5ICsy
NCw2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKENTU19GSUxU
RVJTKQotCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUZpbHRlcnMuaCIKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC00Nyw1ICs0NCwzIEBAIGNvbnN0IGNoYXIqIFBsYXRmb3JtQ0FGaWx0ZXJz
OjphbmltYXRlZEZpbHRlclByb3BlcnR5TmFtZShGaWx0ZXJPcGVyYXRpb246Ok9wZXJhCiAgICAg
Ly8gSGFyZHdhcmUgZmlsdGVyIGFuaW1hdGlvbiBub3QgaW1wbGVtZW50ZWQgb24gV2luZG93cy4K
ICAgICByZXR1cm4gIiI7CiB9Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1D
QUxheWVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCmluZGV4IDE3MDg3ZTY1NjVjZDNkZDhiMGZhZDgxNzllM2Vk
OTViMWM3ZDdiZDIuLmZkNmMxYTcxY2JhMGYxOGE2NTBjZDZlNDMxMzIzMTMyYWU2NjhlOGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9y
bUNBTGF5ZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCkBAIC0xODIsOSArMTgyLDcgQEAgUGFzc1JlZlB0
cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllcldpbjo6Y2xvbmUoUGxhdGZvcm1DQUxh
eWVyQ2xpZW50KiBvd24KICAgICBuZXdMYXllci0+c2V0T3BhcXVlKGlzT3BhcXVlKCkpOwogICAg
IG5ld0xheWVyLT5zZXRCYWNrZ3JvdW5kQ29sb3IoYmFja2dyb3VuZENvbG9yKCkpOwogICAgIG5l
d0xheWVyLT5zZXRDb250ZW50c1NjYWxlKGNvbnRlbnRzU2NhbGUoKSk7Ci0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQogICAgIG5ld0xheWVyLT5jb3B5RmlsdGVyc0Zyb20odGhpcyk7Ci0jZW5kaWYK
IAogICAgIHJldHVybiBuZXdMYXllcjsKIH0KQEAgLTU0NSw4ICs1NDMsNiBAQCB2b2lkIFBsYXRm
b3JtQ0FMYXllcldpbjo6c2V0T3BhY2l0eShmbG9hdCB2YWx1ZSkKICAgICBzZXROZWVkc0NvbW1p
dCgpOwogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQotCiB2b2lkIFBsYXRmb3JtQ0FMYXll
cldpbjo6c2V0RmlsdGVycyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJikKIHsKIH0KQEAgLTU1NSw4
ICs1NTEsNiBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllcldpbjo6Y29weUZpbHRlcnNGcm9tKGNvbnN0
IFBsYXRmb3JtQ0FMYXllciopCiB7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMp
Ci0KIHZvaWQgUGxhdGZvcm1DQUxheWVyV2luOjpzZXROYW1lKGNvbnN0IFN0cmluZyYgdmFsdWUp
CiB7CiAgICAgQ0FDRkxheWVyU2V0TmFtZShtX2xheWVyLmdldCgpLCB2YWx1ZS5jcmVhdGVDRlN0
cmluZygpLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaAppbmRleCA0MzhiMjY2MjUyMDQ4
MzU2ZTNkMWFkNjZiOGEwNGVmNDkzZjJjYjNlLi4zYmRhOGY1MDY1Mzc4Mjk2YTY1ZjdkN2ZmYmE1
YjYyMTg1NTkzODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oCkBAIC0xMDksMTEgKzEwOSw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGZsb2F0IG9wYWNpdHkoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0T3BhY2l0eShmbG9hdCkgb3ZlcnJpZGU7CiAKLSNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2b2lkIHNldEZpbHRlcnMoY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYpIG92ZXJyaWRlOwogICAgIHN0YXRpYyBib29sIGZpbHRlcnNDYW5CZUNvbXBv
c2l0ZWQoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCB2b2lkIGNvcHlGaWx0ZXJzRnJvbShjb25zdCBQbGF0Zm9ybUNBTGF5ZXIqKSBvdmVycmlk
ZTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHNldE5hbWUoY29uc3QgU3RyaW5nJikgb3Zl
cnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcAppbmRleCBkODdmMDY5NjU1NGFjOTA2YmNk
NzA0YjY4NTk2ZmJjOTY2ZTgzYmQzLi5mNWVkNzMyODRiMjJmMTRiNjdkZmJiMTBjNTNmYzNkODgw
NjkwMjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlck9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uY3BwCkBAIC0yNCw4ICsyNCw2IEBACiAgKi8K
IAogI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogI2luY2x1
ZGUgIkZpbHRlck9wZXJhdGlvbi5oIgogCiAjaW5jbHVkZSAiQW5pbWF0aW9uVXRpbGl0aWVzLmgi
CkBAIC0xOTUsNSArMTkzLDMgQEAgUGFzc1JlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IERyb3BTaGFk
b3dGaWx0ZXJPcGVyYXRpb246OmJsZW5kKGNvbnN0IEZpbHRlck9wZXJhdGkKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVy
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
T3BlcmF0aW9uLmgKaW5kZXggMGJjODRkYTgxZjYxNDQ1OTc5ZWY3MzYzMmM0MWIxMDdkYmEzNWNi
Zi4uYTE4ZDk5NWJiZDcwMjUzYzc1MWFhYzc0M2IxYTI4MzM2NWE2MDVmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9w
ZXJhdGlvbi5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEZpbHRlck9wZXJhdGlvbl9oCiAj
ZGVmaW5lIEZpbHRlck9wZXJhdGlvbl9oCiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0KICNp
bmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkZpbHRlckVmZmVjdC5oIgogI2luY2x1ZGUgIkxh
eW91dFNpemUuaCIKQEAgLTM1OSw2ICszNTcsNCBAQCBGSUxURVJPUEVSQVRJT05fVFlQRV9DQVNU
UyhEcm9wU2hhZG93RmlsdGVyT3BlcmF0aW9uLCB0eXBlKCkgPT0gRmlsdGVyT3BlcmF0aW9uOgog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMp
Ci0KICNlbmRpZiAvLyBGaWx0ZXJPcGVyYXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5jcHAK
aW5kZXggMjU0NTQ2MTUwMjgxM2E0NzE1ZDBiOTViNjc0NjU5N2M5Y2RlODliNy4uYWY4MjM2NjIz
NzEyYTdlNzgyMDNhYzUzZTA0ZTcyYTY2NDA0N2NjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMu
Y3BwCkBAIC0zMCw4ICszMCw2IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkxl
bmd0aEZ1bmN0aW9ucy5oIgogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgSW50U2l6ZSBvdXRzZXRTaXplRm9yQmx1cihmbG9h
dCBzdGREZXZpYXRpb24pCkBAIC0xNTQsNSArMTUyLDMgQEAgYm9vbCBGaWx0ZXJPcGVyYXRpb25z
OjpoYXNGaWx0ZXJUaGF0TW92ZXNQaXhlbHMoKSBjb25zdAogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9u
cy5oCmluZGV4IDcyMGY2NjVkNmJkMTIyODc3NTAyZmJhZWFlYTRmZjhkYWQwNGRlY2IuLjQyNDY2
MGEyY2ZiNDM3NzdjYTY1MjJiMWJlMzYzZDA3YjNmMjNmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9u
cy5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEZpbHRlck9wZXJhdGlvbnNfaAogI2RlZmlu
ZSBGaWx0ZXJPcGVyYXRpb25zX2gKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2luY2x1
ZGUgIkZpbHRlck9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkludFJlY3RFeHRlbnQuaCIKICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CkBAIC03OCw2ICs3Niw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2VuZGlm
IC8vIEZpbHRlck9wZXJhdGlvbnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlci5jcHAKaW5kZXggOTM1N2EyODc5MWEyOWI1NjM2ZWFmZjJiMGI5MjRiOWM3NWY3NTJlYy4u
OGQ2MjRlM2ViNmU4YjEzMGU1YWNiZDRmNjg1MTBiZmNiODI1ZmZiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCkBAIC01NDAsMTAgKzU0MCw4IEBAIHZvaWQg
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmNvbW1pdExheWVyQ2hhbmdlcygpCiAgICAgaWYg
KG1fY2hhbmdlTWFzayAmIEJhY2tncm91bmRDb2xvckNoYW5nZSkKICAgICAgICAgbV9sYXllci0+
c2V0U29saWRDb2xvcihzb2xpZENvbG9yKCkpOwogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQog
ICAgIGlmIChtX2NoYW5nZU1hc2sgJiBGaWx0ZXJDaGFuZ2UpCiAgICAgICAgIG1fbGF5ZXItPnNl
dEZpbHRlcnMoZmlsdGVycygpKTsKLSNlbmRpZgogCiAgICAgaWYgKG1fY2hhbmdlTWFzayAmIEJh
Y2tpbmdTdG9yZUNoYW5nZSkKICAgICAgICAgbV9sYXllci0+c2V0QmFja2luZ1N0b3JlKG1fYmFj
a2luZ1N0b3JlKTsKQEAgLTY2NSw3ICs2NjMsNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyOjpyZW1vdmVBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lKQogICAg
IG1fYW5pbWF0aW9ucy5yZW1vdmUoYW5pbWF0aW9uTmFtZSk7CiB9CiAKLSNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCiBib29sIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRGaWx0ZXJzKGNv
bnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCiB7CiAgICAgVGV4dHVyZU1hcHBlciogdGV4
dHVyZU1hcHBlciA9IG1fbGF5ZXItPnRleHR1cmVNYXBwZXIoKTsKQEAgLTY3NSw3ICs2NzIsNiBA
QCBib29sIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRGaWx0ZXJzKGNvbnN0IEZpbHRl
ck9wZXJhdGlvbnMmIGZpbHRlcnMpCiAgICAgbm90aWZ5Q2hhbmdlKEZpbHRlckNoYW5nZSk7CiAg
ICAgcmV0dXJuIEdyYXBoaWNzTGF5ZXI6OnNldEZpbHRlcnMoZmlsdGVycyk7CiB9Ci0jZW5kaWYK
IAogdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Rml4ZWRUb1ZpZXdwb3J0KGJv
b2wgZml4ZWQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCmluZGV4
IDgyZjhjYWI1ZTlkZTQxYmViNjNhMjNkYjkwOTk1OTNkNTJjZDg5M2MuLjdhODJiN2RhNzUyZDU0
ODYxMzA5YWQ4YmIwYjkyODg2ZjQxOGJmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlci5oCkBAIC05MSw5ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzU2Ny
b2xsYWJsZShib29sKTsKICAgICBib29sIGlzU2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNTY3JvbGxhYmxlOyB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCBi
b29sIHNldEZpbHRlcnMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpOwotI2VuZGlmCiAKICAgICB2
b2lkIHNldEZpeGVkVG9WaWV3cG9ydChib29sKTsKICAgICBib29sIGZpeGVkVG9WaWV3cG9ydCgp
IGNvbnN0IHsgcmV0dXJuIG1fZml4ZWRUb1ZpZXdwb3J0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAppbmRleCBm
NDMxMzM5MDQzNjA3Mjc0Nzk0ZWNmMDI0NWM1MDMyYmE2ZGQxNmM5Li45MGQ0ZTY0OWVkNTM5ODMw
NzU2NGUwNzllMTAwNTY3NGNiNGVhMTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKQEAgLTg3LDkgKzg3LDcg
QEAgcHVibGljOgogICAgIGlubGluZSBpbnQgbnVtYmVyT2ZCeXRlcygpIGNvbnN0IHsgcmV0dXJu
IHNpemUoKS53aWR0aCgpICogc2l6ZSgpLmhlaWdodCgpICogYnBwKCkgPj4gMzsgfQogICAgIGlu
bGluZSBib29sIGlzT3BhcXVlKCkgY29uc3QgeyByZXR1cm4gIShtX2ZsYWdzICYgU3VwcG9ydHNB
bHBoYSk7IH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8Qml0bWFwVGV4dHVyZT4gYXBwbHlGaWx0ZXJzKFRleHR1cmVNYXBwZXIqLCBjb25zdCBGaWx0
ZXJPcGVyYXRpb25zJikgeyByZXR1cm4gdGhpczsgfQotI2VuZGlmCiAKIHByb3RlY3RlZDoKICAg
ICBJbnRTaXplIG1fY29udGVudFNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCmluZGV4IDI0ZGVk
MWUwN2ZjOWIzMGMwMWExYmUxMGQxMGU4YWVlMTYyMTg0ODUuLjdlMzU3ODlkYjBkZjE2MWZlZGU2
ZDg0ZTI2MmM0YzJiNWEzMTMyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBAIC0xMjIsOSAr
MTIyLDcgQEAgcHVibGljOgogICAgICAgICAsIHByZXZpb3VzU2Npc3NvclN0YXRlKDApCiAgICAg
ICAgICwgcHJldmlvdXNEZXB0aFN0YXRlKDApCiAgICAgICAgICwgc2hhcmVkRGF0YShUZXh0dXJl
TWFwcGVyR0xEYXRhOjpTaGFyZWRHTERhdGE6OmN1cnJlbnRTaGFyZWRHTERhdGEodGhpcy0+Y29u
dGV4dCkpCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgICAgICAsIGZpbHRlckluZm8oMCkK
LSNlbmRpZgogICAgIHsgfQogCiAgICAgflRleHR1cmVNYXBwZXJHTERhdGEoKTsKQEAgLTE0Myw5
ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFNoYXJlZEdMRGF0YT4gc2hhcmVkRGF0YTsK
ICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gY3VycmVudFN1cmZhY2U7CiAgICAgSGFzaE1hcDxj
b25zdCB2b2lkKiwgUGxhdGZvcm0zRE9iamVjdD4gdmJvczsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiAgICAgY29uc3QgQml0bWFwVGV4dHVyZUdMOjpGaWx0ZXJJbmZvKiBmaWx0ZXJJbmZvOwot
I2VuZGlmCiB9OwogCiBQbGF0Zm9ybTNET2JqZWN0IFRleHR1cmVNYXBwZXJHTERhdGE6OmdldFN0
YXRpY1ZCTyhHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBk
YXRhKQpAQCAtMzY3LDggKzM2Myw2IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3TnVtYmVy
KGludCBudW1iZXIsIGNvbnN0IENvbG9yJiBjb2xvciwgY29uc3QgRmxvYXRQb2luCiAjZW5kaWYK
IH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQogc3RhdGljIFRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtOjpPcHRpb25zIG9wdGlvbnNGb3JGaWx0ZXJUeXBlKEZpbHRlck9wZXJhdGlvbjo6
T3BlcmF0aW9uVHlwZSB0eXBlLCB1bnNpZ25lZCBwYXNzKQogewogICAgIHN3aXRjaCAodHlwZSkg
ewpAQCAtNTEyLDcgKzUwNiw2IEBAIHN0YXRpYyB2b2lkIHByZXBhcmVGaWx0ZXJQcm9ncmFtKFRl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBGaWx0CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KLSNlbmRpZgogCiB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1
cmUoY29uc3QgQml0bWFwVGV4dHVyZSYgdGV4dHVyZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRS
ZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBmbG9hdCBvcGFjaXR5LCB1
bnNpZ25lZCBleHBvc2VkRWRnZXMpCiB7CkBAIC01MjMsOSArNTE2LDcgQEAgdm9pZCBUZXh0dXJl
TWFwcGVyR0w6OmRyYXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmIHRleHR1cmUsIGNvbnN0
IEZsb2F0UmVjdCYKICAgICAgICAgcmV0dXJuOwogCiAgICAgY29uc3QgQml0bWFwVGV4dHVyZUdM
JiB0ZXh0dXJlR0wgPSBzdGF0aWNfY2FzdDxjb25zdCBCaXRtYXBUZXh0dXJlR0wmPih0ZXh0dXJl
KTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgVGVtcG9yYXJ5Q2hhbmdlPGNvbnN0IEJp
dG1hcFRleHR1cmVHTDo6RmlsdGVySW5mbyo+IGZpbHRlckluZm8oZGF0YSgpLmZpbHRlckluZm8s
IHRleHR1cmVHTC5maWx0ZXJJbmZvKCkpOwotI2VuZGlmCiAKICAgICBkcmF3VGV4dHVyZSh0ZXh0
dXJlR0wuaWQoKSwgdGV4dHVyZUdMLmlzT3BhcXVlKCkgPyAwIDogU2hvdWxkQmxlbmQsIHRleHR1
cmVHTC5zaXplKCksIHRhcmdldFJlY3QsIG1hdHJpeCwgb3BhY2l0eSwgZXhwb3NlZEVkZ2VzKTsK
IH0KQEAgLTU0Nyw3ICs1MzgsNiBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUo
UGxhdGZvcm0zRE9iamVjdCB0ZXh0dXJlLCBGbGFncyBmbGFncywgY29uc3QgSQogICAgICAgICBm
bGFncyB8PSBTaG91bGRBbnRpYWxpYXM7CiAgICAgfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJT
KQogICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGZpbHRlciA9IGRhdGEoKS5maWx0ZXJJbmZv
ID8gZGF0YSgpLmZpbHRlckluZm8tPmZpbHRlcjogMDsKICAgICBHQzNEdWludCBmaWx0ZXJDb250
ZW50VGV4dHVyZUlEID0gMDsKIApAQCAtNTU4LDcgKzU0OCw2IEBAIHZvaWQgVGV4dHVyZU1hcHBl
ckdMOjpkcmF3VGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0IHRleHR1cmUsIEZsYWdzIGZsYWdzLCBj
b25zdCBJCiAgICAgICAgIGlmIChmaWx0ZXItPmFmZmVjdHNPcGFjaXR5KCkpCiAgICAgICAgICAg
ICBmbGFncyB8PSBTaG91bGRCbGVuZDsKICAgICB9Ci0jZW5kaWYKIAogICAgIGlmICh1c2VBbnRp
YWxpYXNpbmcgfHwgb3BhY2l0eSA8IDEpCiAgICAgICAgIGZsYWdzIHw9IFNob3VsZEJsZW5kOwpA
QCAtNTY2LDEwICs1NTUsOCBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUoUGxh
dGZvcm0zRE9iamVjdCB0ZXh0dXJlLCBGbGFncyBmbGFncywgY29uc3QgSQogICAgIFJlZlB0cjxU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gcHJvZ3JhbTsKICAgICBwcm9ncmFtID0gZGF0YSgp
LnNoYXJlZEdMRGF0YSgpLmdldFNoYWRlclByb2dyYW0ob3B0aW9ucyk7CiAKLSNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiAgICAgaWYgKGZpbHRlcikKICAgICAgICAgcHJlcGFyZUZpbHRlclByb2dy
YW0ocHJvZ3JhbS5nZXQoKSwgKmZpbHRlci5nZXQoKSwgZGF0YSgpLmZpbHRlckluZm8tPnBhc3Ms
IHRleHR1cmVTaXplLCBmaWx0ZXJDb250ZW50VGV4dHVyZUlEKTsKLSNlbmRpZgogCiAgICAgZHJh
d1RleHR1cmVkUXVhZFdpdGhQcm9ncmFtKHByb2dyYW0uZ2V0KCksIHRleHR1cmUsIGZsYWdzLCB0
ZXh0dXJlU2l6ZSwgdGFyZ2V0UmVjdCwgbW9kZWxWaWV3TWF0cml4LCBvcGFjaXR5KTsKIH0KQEAg
LTg1Nyw3ICs4NDQsNiBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMoSW1h
Z2UqIGltYWdlLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjbwogICAgIHVwZGF0ZUNvbnRl
bnRzKGltYWdlRGF0YSwgdGFyZ2V0UmVjdCwgb2Zmc2V0LCBieXRlc1BlckxpbmUsIHVwZGF0ZUNv
bnRlbnRzRmxhZyk7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lkIFRleHR1cmVN
YXBwZXJHTDo6ZHJhd0ZpbHRlcmVkKGNvbnN0IEJpdG1hcFRleHR1cmUmIHNhbXBsZXIsIGNvbnN0
IEJpdG1hcFRleHR1cmUqIGNvbnRlbnRUZXh0dXJlLCBjb25zdCBGaWx0ZXJPcGVyYXRpb24mIGZp
bHRlciwgaW50IHBhc3MpCiB7CiAgICAgLy8gRm9yIHN0YW5kYXJkIGZpbHRlcnMsIHdlIGFsd2F5
cyBkcmF3IHRoZSB3aG9sZSB0ZXh0dXJlIHdpdGhvdXQgdHJhbnNmb3JtYXRpb25zLgpAQCAtOTEz
LDcgKzg5OSw2IEBAIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gQml0bWFwVGV4dHVyZUdMOjph
cHBseUZpbHRlcnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hCiAgICAgdGV4bWFwR0wtPmJpbmRT
dXJmYWNlKHByZXZpb3VzU3VyZmFjZS5nZXQoKSk7CiAgICAgcmV0dXJuIHJlc3VsdFN1cmZhY2U7
CiB9Ci0jZW5kaWYKIAogc3RhdGljIGlubGluZSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjcmVhdGVQ
cm9qZWN0aW9uTWF0cml4KGNvbnN0IEludFNpemUmIHNpemUsIGJvb2wgbWlycm9yZWQpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckdMLmgKaW5kZXggODMyNDhmODZkMDNhZjJlZmIyYmVkZDFhNWQzOWU2Njc3OWI3
ZDYzMC4uMDgyNDNjYjFjMjBjZDdlYjE0ZDBkYWQ0NDgwMGZlYjE4ODVmYjM5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuaApAQCAtNjcsOSArNjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPEJpdG1hcFRleHR1cmU+IGNyZWF0ZVRleHR1cmUoKSBvdmVycmlkZTsKICAgICBpbmxpbmUg
R3JhcGhpY3NDb250ZXh0M0QqIGdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3QgeyByZXR1cm4gbV9j
b250ZXh0M0QuZ2V0KCk7IH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2b2lkIGRy
YXdGaWx0ZXJlZChjb25zdCBCaXRtYXBUZXh0dXJlJiBzb3VyY2VUZXh0dXJlLCBjb25zdCBCaXRt
YXBUZXh0dXJlKiBjb250ZW50VGV4dHVyZSwgY29uc3QgRmlsdGVyT3BlcmF0aW9uJiwgaW50IHBh
c3MpOwotI2VuZGlmCiAKICAgICB2b2lkIHNldEVuYWJsZUVkZ2VEaXN0YW5jZUFudGlhbGlhc2lu
Zyhib29sIGVuYWJsZWQpIHsgbV9lbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxpYXNpbmcgPSBlbmFi
bGVkOyB9CiAKQEAgLTE1NSw3ICsxNTMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqLCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IElu
dFBvaW50JiBzb3VyY2VPZmZzZXQsIGludCBieXRlc1BlckxpbmUsIFVwZGF0ZUNvbnRlbnRzRmxh
Zyk7CiAgICAgdmlydHVhbCBib29sIGlzQmFja2VkQnlPcGVuR0woKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PEJpdG1hcFRleHR1cmU+IGFwcGx5RmlsdGVycyhUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYpIG92ZXJyaWRlOwogICAgIHN0cnVjdCBGaWx0ZXJJbmZvIHsKICAgICAgICAg
UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gZmlsdGVyOwpAQCAtMTY5LDcgKzE2Niw2IEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHsgfQogICAgIH07CiAgICAgY29uc3QgRmlsdGVySW5mbyogZmlsdGVy
SW5mbygpIGNvbnN0IHsgcmV0dXJuICZtX2ZpbHRlckluZm87IH0KLSNlbmRpZgogCiBwcml2YXRl
OgogICAgIHZvaWQgdXBkYXRlQ29udGVudHNOb1N3aXp6bGUoY29uc3Qgdm9pZCosIGNvbnN0IElu
dFJlY3QmIHRhcmdldCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5dGVzUGVy
TGluZSwgdW5zaWduZWQgYnl0ZXNQZXJQaXhlbCA9IDQsIFBsYXRmb3JtM0RPYmplY3QgZ2xGb3Jt
YXQgPSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSk7CkBAIC0xOTAsOSArMTg2LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGNsZWFySWZOZWVkZWQoKTsKICAgICB2b2lkIGNyZWF0ZUZib0lmTmVlZGVk
KCk7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgRmlsdGVySW5mbyBtX2ZpbHRlcklu
Zm87Ci0jZW5kaWYKIAogICAgIGZyaWVuZCBjbGFzcyBUZXh0dXJlTWFwcGVyR0w7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJJbWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmNwcAppbmRleCA4YjhlZjE2NDBlMGQyZmQy
OTkwYmQxMzZjNzE2OWI3MzViZmQ5ZTg3Li4zYmVlYjlmNjMwNjc4MzMyMzgzOWNkNTVjMmRlM2I0
MjIyYjMyYWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmNwcApAQCAt
MTUwLDEzICsxNTAsMTEgQEAgdm9pZCBUZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXI6OmRyYXdOdW1i
ZXIoaW50IC8qIG51bWJlciAqLywgY29uc3QgQ29sb3ImLCBjb25zdAogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiBQYXNzUmVmUHRyPEJpdG1hcFRl
eHR1cmU+IEJpdG1hcFRleHR1cmVJbWFnZUJ1ZmZlcjo6YXBwbHlGaWx0ZXJzKFRleHR1cmVNYXBw
ZXIqLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICByZXR1cm4gdGhpczsKIH0KLSNlbmRpZgogCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1h
Z2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVySW1hZ2VCdWZmZXIuaAppbmRleCA4MmRmMDRlODZmMzEyNWY5N2IxNmIxYzRmZmRm
NzgyZGNmNGJlNTlkLi4wMTc3ZGRiN2UxNzA1MjBiZTg0YjE4NDMxNjI0YWM0OWIwZGVlZTYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5oCkBAIC0zNyw5ICszNyw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoSW1hZ2UqLCBjb25zdCBJbnRS
ZWN0JiwgY29uc3QgSW50UG9pbnQmLCBVcGRhdGVDb250ZW50c0ZsYWcpOwogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiwgR3JhcGhpY3NMYXllciosIGNvbnN0
IEludFJlY3QmIHRhcmdldCwgY29uc3QgSW50UG9pbnQmIG9mZnNldCwgVXBkYXRlQ29udGVudHNG
bGFnKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCosIGNvbnN0
IEludFJlY3QmIHRhcmdldCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5dGVz
UGVyTGluZSwgVXBkYXRlQ29udGVudHNGbGFnKTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAg
ICAgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBhcHBseUZpbHRlcnMoVGV4dHVyZU1hcHBlcios
IGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKTsKLSNlbmRpZgogCiBwcml2YXRlOgogICAgIEJpdG1h
cFRleHR1cmVJbWFnZUJ1ZmZlcigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRl
eCA2MDAzOTg3ZDBkN2Q1YmFkZTNlNmEyMGY4ZmVkYWQ1MTM4NjkxYjBlLi5jOTc1ODJiM2M0NWZk
N2QzZGM0NzFiNTgxOGUzZDBjYTJmZWEwMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNw
cApAQCAtMjM3LDEyICsyMzcsMTAgQEAgVHJhbnNmb3JtYXRpb25NYXRyaXggVGV4dHVyZU1hcHBl
ckxheWVyOjpyZXBsaWNhVHJhbnNmb3JtKCkKICAgICByZXR1cm4gVHJhbnNmb3JtYXRpb25NYXRy
aXgobV9zdGF0ZS5yZXBsaWNhTGF5ZXItPm1fY3VycmVudFRyYW5zZm9ybS5jb21iaW5lZCgpKS5t
dWx0aXBseShtX2N1cnJlbnRUcmFuc2Zvcm0uY29tYmluZWQoKS5pbnZlcnNlKCkpOwogfQogCi0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQogdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldEFuaW1h
dGVkRmlsdGVycyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogewogICAgIG1fY3Vy
cmVudEZpbHRlcnMgPSBmaWx0ZXJzOwogfQotI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHJlc29sdmVP
dmVybGFwcyhSZWdpb24gbmV3UmVnaW9uLCBSZWdpb24mIG92ZXJsYXBSZWdpb24sIFJlZ2lvbiYg
bm9uT3ZlcmxhcFJlZ2lvbikKIHsKQEAgLTI2NSw3ICsyNjMsNiBAQCB2b2lkIFRleHR1cmVNYXBw
ZXJMYXllcjo6Y29tcHV0ZU92ZXJsYXBSZWdpb25zKFJlZ2lvbiYgb3ZlcmxhcFJlZ2lvbiwgUmVn
aW9uJiBubwogICAgIGVsc2UgaWYgKG1fY29udGVudHNMYXllciB8fCBtX3N0YXRlLnNvbGlkQ29s
b3IuYWxwaGEoKSkKICAgICAgICAgYm91bmRpbmdSZWN0ID0gbV9zdGF0ZS5jb250ZW50c1JlY3Q7
CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYgKG1fY3VycmVudEZpbHRlcnMuaGFz
T3V0c2V0cygpKSB7CiAgICAgICAgIEZpbHRlck91dHNldHMgb3V0c2V0cyA9IG1fY3VycmVudEZp
bHRlcnMub3V0c2V0cygpOwogICAgICAgICBJbnRSZWN0IHVuZmlsdGVyZWRUYXJnZXRSZWN0KGJv
dW5kaW5nUmVjdCk7CkBAIC0yNzMsNyArMjcwLDYgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6
OmNvbXB1dGVPdmVybGFwUmVnaW9ucyhSZWdpb24mIG92ZXJsYXBSZWdpb24sIFJlZ2lvbiYgbm8K
ICAgICAgICAgYm91bmRpbmdSZWN0LmV4cGFuZChvdXRzZXRzLmxlZnQoKSArIG91dHNldHMucmln
aHQoKSwgb3V0c2V0cy50b3AoKSArIG91dHNldHMuYm90dG9tKCkpOwogICAgICAgICBib3VuZGlu
Z1JlY3QudW5pdGUodW5maWx0ZXJlZFRhcmdldFJlY3QpOwogICAgIH0KLSNlbmRpZgogCiAgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggcmVwbGljYU1hdHJpeDsKICAgICBpZiAobV9zdGF0ZS5yZXBs
aWNhTGF5ZXIpIHsKQEAgLTM4Nyw5ICszODMsNyBAQCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+
IFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRJbnRvU3VyZmFjZShjb25zdCBUZXh0dXJlTWFwcAog
ICAgIHBhaW50U2VsZkFuZENoaWxkcmVuKHBhaW50T3B0aW9ucyk7CiAgICAgaWYgKG1fc3RhdGUu
bWFza0xheWVyKQogICAgICAgICBtX3N0YXRlLm1hc2tMYXllci0+YXBwbHlNYXNrKG9wdGlvbnMp
OwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBzdXJmYWNlID0gc3VyZmFjZS0+YXBwbHlG
aWx0ZXJzKG9wdGlvbnMudGV4dHVyZU1hcHBlciwgbV9jdXJyZW50RmlsdGVycyk7Ci0jZW5kaWYK
ICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmJpbmRTdXJmYWNlKHN1cmZhY2UuZ2V0KCkpOwog
ICAgIHJldHVybiBzdXJmYWNlOwogfQpAQCAtNjA1LDEyICs1OTksMTAgQEAgdm9pZCBUZXh0dXJl
TWFwcGVyTGF5ZXI6OnNldFNvbGlkQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIG1fc3Rh
dGUuc29saWRDb2xvciA9IGNvbG9yOwogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogdm9p
ZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldEZpbHRlcnMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYg
ZmlsdGVycykKIHsKICAgICBtX3N0YXRlLmZpbHRlcnMgPSBmaWx0ZXJzOwogfQotI2VuZGlmCiAK
IHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpzZXREZWJ1Z1Zpc3VhbHMoYm9vbCBzaG93RGVidWdC
b3JkZXJzLCBjb25zdCBDb2xvciYgZGVidWdCb3JkZXJDb2xvciwgZmxvYXQgZGVidWdCb3JkZXJX
aWR0aCwgYm9vbCBzaG93UmVwYWludENvdW50ZXIpCiB7CkBAIC02NzMsMTAgKzY2NSw4IEBAIHZv
aWQgVGV4dHVyZU1hcHBlckxheWVyOjpzeW5jQW5pbWF0aW9ucygpCiAgICAgaWYgKCFtX2FuaW1h
dGlvbnMuaGFzQWN0aXZlQW5pbWF0aW9uc09mVHlwZShBbmltYXRlZFByb3BlcnR5T3BhY2l0eSkp
CiAgICAgICAgIG1fY3VycmVudE9wYWNpdHkgPSBtX3N0YXRlLm9wYWNpdHk7CiAKLSNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYgKCFtX2FuaW1hdGlvbnMuaGFzQWN0aXZlQW5pbWF0aW9u
c09mVHlwZShBbmltYXRlZFByb3BlcnR5V2Via2l0RmlsdGVyKSkKICAgICAgICAgbV9jdXJyZW50
RmlsdGVycyA9IG1fc3RhdGUuZmlsdGVyczsKLSNlbmRpZgogfQogCiBib29sIFRleHR1cmVNYXBw
ZXJMYXllcjo6aXNBbmNlc3RvckZpeGVkVG9WaWV3cG9ydCgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckxheWVyLmgKaW5kZXggMGJmOTYyMTM5N2RiMDA0YWNmN2Q3NjJiYjM3MDE0M2E4MjI3MDBlMC4u
MTQwYTBlZDJjNzdjZDU2MzY5Y2Y4OGNlNzYyOGYyOTViYTY5Nzc0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTGF5ZXIuaApAQCAtMTAxLDE3ICsxMDEsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U29s
aWRDb2xvcihjb25zdCBDb2xvciYpOwogICAgIHZvaWQgc2V0Q29udGVudHNUaWxlU2l6ZShjb25z
dCBGbG9hdFNpemUmKTsKICAgICB2b2lkIHNldENvbnRlbnRzVGlsZVBoYXNlKGNvbnN0IEZsb2F0
UG9pbnQmKTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdm9pZCBzZXRGaWx0ZXJzKGNv
bnN0IEZpbHRlck9wZXJhdGlvbnMmKTsKLSNlbmRpZgogCiAgICAgYm9vbCBoYXNGaWx0ZXJzKCkg
Y29uc3QKICAgICB7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgICAgICByZXR1cm4gIW1f
Y3VycmVudEZpbHRlcnMuaXNFbXB0eSgpOwotI2Vsc2UKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
I2VuZGlmCiAgICAgfQogCiAgICAgdm9pZCBzZXREZWJ1Z1Zpc3VhbHMoYm9vbCBzaG93RGVidWdC
b3JkZXJzLCBjb25zdCBDb2xvciYgZGVidWdCb3JkZXJDb2xvciwgZmxvYXQgZGVidWdCb3JkZXJX
aWR0aCwgYm9vbCBzaG93UmVwYWludENvdW50ZXIpOwpAQCAtMTczLDkgKzE2Nyw3IEBAIHByaXZh
dGU6CiAgICAgLy8gR3JhcGhpY3NMYXllckFuaW1hdGlvbjo6Q2xpZW50CiAgICAgdmlydHVhbCB2
b2lkIHNldEFuaW1hdGVkVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldEFuaW1hdGVkT3BhY2l0eShmbG9hdCkgb3ZlcnJp
ZGU7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHZpcnR1YWwgdm9pZCBzZXRBbmltYXRl
ZEZpbHRlcnMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpIG92ZXJyaWRlOwotI2VuZGlmCiAKICAg
ICBib29sIGlzVmlzaWJsZSgpIGNvbnN0OwogICAgIGVudW0gQ29udGVudHNMYXllckNvdW50IHsK
QEAgLTE5OCw5ICsxOTAsNyBAQCBwcml2YXRlOgogICAgIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxh
eWVyKiBtX2NvbnRlbnRzTGF5ZXI7CiAgICAgR3JhcGhpY3NMYXllclRyYW5zZm9ybSBtX2N1cnJl
bnRUcmFuc2Zvcm07CiAgICAgZmxvYXQgbV9jdXJyZW50T3BhY2l0eTsKLSNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCiAgICAgRmlsdGVyT3BlcmF0aW9ucyBtX2N1cnJlbnRGaWx0ZXJzOwotI2VuZGlm
CiAgICAgZmxvYXQgbV9jZW50ZXJaOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgSGl0VGVzdENvbmRp
dGlvbj4gVGV4dHVyZU1hcHBlckxheWVyKiBoaXRUZXN0KGNvbnN0IEZsb2F0UG9pbnQmLCBIaXRU
ZXN0Q29uZGl0aW9uKTsKQEAgLTIyMiw5ICsyMTIsNyBAQCBwcml2YXRlOgogICAgICAgICBUZXh0
dXJlTWFwcGVyTGF5ZXIqIG1hc2tMYXllcjsKICAgICAgICAgVGV4dHVyZU1hcHBlckxheWVyKiBy
ZXBsaWNhTGF5ZXI7CiAgICAgICAgIENvbG9yIHNvbGlkQ29sb3I7Ci0jaWYgRU5BQkxFKENTU19G
SUxURVJTKQogICAgICAgICBGaWx0ZXJPcGVyYXRpb25zIGZpbHRlcnM7Ci0jZW5kaWYKICAgICAg
ICAgQ29sb3IgZGVidWdCb3JkZXJDb2xvcjsKICAgICAgICAgZmxvYXQgZGVidWdCb3JkZXJXaWR0
aDsKICAgICAgICAgaW50IHJlcGFpbnRDb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtLmgKaW5kZXggMzM0NWZjOWZlMmVhZDNmYjhlMTcxMThiZDUwZjM2ZDE2ODExYzNi
ZS4uNDNhNjUzNGJlY2Y2MmJmOWExY2JjMmEwZDY1MGVlOWE5NjkzY2RiZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKQEAgLTc0LDEzICs3NCwxMSBAQCBwdWJsaWM6
CiAgICAgVEVYTUFQX0RFQ0xBUkVfU0FNUExFUihzYW1wbGVyKQogICAgIFRFWE1BUF9ERUNMQVJF
X1NBTVBMRVIobWFzaykKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBURVhNQVBfREVD
TEFSRV9VTklGT1JNKGZpbHRlckFtb3VudCkKICAgICBURVhNQVBfREVDTEFSRV9VTklGT1JNKGdh
dXNzaWFuS2VybmVsKQogICAgIFRFWE1BUF9ERUNMQVJFX1VOSUZPUk0oYmx1clJhZGl1cykKICAg
ICBURVhNQVBfREVDTEFSRV9VTklGT1JNKHNoYWRvd09mZnNldCkKICAgICBURVhNQVBfREVDTEFS
RV9TQU1QTEVSKGNvbnRlbnRUZXh0dXJlKQotI2VuZGlmCiAKICAgICB2b2lkIHNldE1hdHJpeChH
QzNEdWludCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCA2ZTNm
NGY5MWNhOGQzYWE0NDMyMzYzNjA2YmExNmNhNDNhODk0ZGExLi42MWNhNmU0MzIyMTdmZTM3NDE4
Yjg2OWU1NzQ3Yjc3YThlZmFkYzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtNzYsMTMgKzc2LDExIEBAIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRDaGFuZ2VDaGlsZHJlbigpCiAgICAgbm90aWZ5
Rmx1c2hSZXF1aXJlZCgpOwogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUZpbHRlcnMoKQogewogICAgIG1fc2hvdWxk
U3luY0ZpbHRlcnMgPSB0cnVlOwogICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KLSNlbmRp
ZgogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlSW1hZ2VCYWNraW5n
KCkKIHsKQEAgLTQyMSw3ICs0MTksNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciogcGxhdGZvcgogI2VuZGlm
CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiBib29sIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c2V0RmlsdGVycyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBuZXdGaWx0ZXJzKQogewog
ICAgIGlmIChmaWx0ZXJzKCkgPT0gbmV3RmlsdGVycykKQEAgLTQzMyw3ICs0MzAsNiBAQCBib29s
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0RmlsdGVycyhjb25zdCBGaWx0ZXJPcGVyYXRp
b25zJiBuZXdGaWx0ZXJzKQogICAgIGRpZENoYW5nZUZpbHRlcnMoKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KLSNlbmRpZgogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVu
dHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogewpAQCAtNjIyLDcgKzYxOCw2IEBA
IHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jQ2hpbGRyZW4oKQogICAgICAgICBt
X2xheWVyU3RhdGUuY2hpbGRyZW4uYXBwZW5kKHRvQ29vcmRpbmF0ZWRMYXllcklEKGNoaWxkcmVu
KClbaV0pKTsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpzeW5jRmlsdGVycygpCiB7CiAgICAgaWYgKCFtX3Nob3VsZFN5bmNGaWx0
ZXJzKQpAQCAtNjMyLDcgKzYyNyw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
eW5jRmlsdGVycygpCiAgICAgbV9sYXllclN0YXRlLmZpbHRlcnMgPSBHcmFwaGljc0xheWVyOjpm
aWx0ZXJzKCk7CiAgICAgbV9sYXllclN0YXRlLmZpbHRlcnNDaGFuZ2VkID0gdHJ1ZTsKIH0KLSNl
bmRpZgogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0ltYWdlQmFja2luZygp
CiB7CkBAIC03ODgsOSArNzgyLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKQogICAgIHN5bmNBbmltYXRpb25z
KCk7CiAgICAgY29tcHV0ZVRyYW5zZm9ybWVkVmlzaWJsZVJlY3QoKTsKICAgICBzeW5jQ2hpbGRy
ZW4oKTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgc3luY0ZpbHRlcnMoKTsKLSNlbmRp
ZgogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQogICAgIHN5bmNQbGF0Zm9ybUxheWVyKCk7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuaAppbmRleCBhNmE1OGYzMmI0NzQ2ZTI3NWVmNTFjODY0NjViNGJlOWU2ODU3NGJmLi41
OGZiZmMwYjliMDBiZTdmZjNjNmI3Nzc2YWQzOGMwMDYwYzY4OWIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC0xMDEsOSAr
MTAxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3Rv
ckNoYW5nZWQoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0
YXRlKGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBmbHVzaENv
bXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkgb3ZlcnJpZGU7Ci0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQogICAgIHZpcnR1YWwgYm9vbCBzZXRGaWx0ZXJzKGNvbnN0IEZpbHRlck9wZXJh
dGlvbnMmKSBvdmVycmlkZTsKLSNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCBhZGRBbmltYXRpb24o
Y29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBBbmltYXRp
b24qLCBjb25zdCBTdHJpbmcmLCBkb3VibGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBw
YXVzZUFuaW1hdGlvbihjb25zdCBTdHJpbmcmLCBkb3VibGUpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVBbmltYXRpb24oY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CkBAIC0xNzYs
MTggKzE3NCwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ2hhbmdlQW5pbWF0aW9ucygpOwog
ICAgIHZvaWQgZGlkQ2hhbmdlR2VvbWV0cnkoKTsKICAgICB2b2lkIGRpZENoYW5nZUNoaWxkcmVu
KCk7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHZvaWQgZGlkQ2hhbmdlRmlsdGVycygp
OwotI2VuZGlmCiAgICAgdm9pZCBkaWRDaGFuZ2VJbWFnZUJhY2tpbmcoKTsKIAogICAgIHZvaWQg
cmVzZXRMYXllclN0YXRlKCk7CiAgICAgdm9pZCBzeW5jTGF5ZXJTdGF0ZSgpOwogICAgIHZvaWQg
c3luY0FuaW1hdGlvbnMoKTsKICAgICB2b2lkIHN5bmNDaGlsZHJlbigpOwotI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKICAgICB2b2lkIHN5bmNGaWx0ZXJzKCk7Ci0jZW5kaWYKICAgICB2b2lkIHN5
bmNJbWFnZUJhY2tpbmcoKTsKICAgICB2b2lkIGNvbXB1dGVUcmFuc2Zvcm1lZFZpc2libGVSZWN0
KCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50QnVmZmVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAppbmRleCA0OTE0MDNi
MzQyNjIzNzZmYTc0MjY4M2UwYzg2ZGU1MjQ3YTQzMWIyLi42NzNiOWU5Y2VjZTI0NjY0YjFjZWU4
ZTgwZTljZmFlOWM1NTU1YWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcApAQCAtMjI2LDcgKzIyNiw2IEBAIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRMYXllckNoaWxkcmVuSWZOZWVkZWQoVGV4dHVyZU1h
cHBlckxheWVyKiBsYXllCiAgICAgbGF5ZXItPnNldENoaWxkcmVuKGNoaWxkcmVuKTsKIH0KIAot
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpz
ZXRMYXllckZpbHRlcnNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCiB7CiAgICAgaWYgKCFzdGF0ZS5m
aWx0ZXJzQ2hhbmdlZCkKQEAgLTIzNCw3ICsyMzMsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZTo6c2V0TGF5ZXJGaWx0ZXJzSWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiBsYXll
cgogCiAgICAgbGF5ZXItPnNldEZpbHRlcnMoc3RhdGUuZmlsdGVycyk7CiB9Ci0jZW5kaWYKIAog
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVyU3RhdGUoQ29vcmRpbmF0ZWRM
YXllcklEIGlkLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgbGF5ZXJTdGF0
ZSkKIHsKQEAgLTMxNCw5ICszMTIsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6
c2V0TGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3JkaQogICAgIGNy
ZWF0ZVRpbGVzSWZOZWVkZWQobGF5ZXIsIGxheWVyU3RhdGUpOwogICAgIHJlbW92ZVRpbGVzSWZO
ZWVkZWQobGF5ZXIsIGxheWVyU3RhdGUpOwogICAgIHVwZGF0ZVRpbGVzSWZOZWVkZWQobGF5ZXIs
IGxheWVyU3RhdGUpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBzZXRMYXllckZpbHRl
cnNJZk5lZWRlZChsYXllciwgbGF5ZXJTdGF0ZSk7Ci0jZW5kaWYKICAgICBzZXRMYXllckFuaW1h
dGlvbnNJZk5lZWRlZChsYXllciwgbGF5ZXJTdGF0ZSk7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZB
Q0UpCiAgICAgc3luY1BsYXRmb3JtTGF5ZXJJZk5lZWRlZChsYXllciwgbGF5ZXJTdGF0ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgK
aW5kZXggM2Q4YzA0MmMyNTRlYmUzYTc2OWI1N2FmNmQzMDcwOGY5MDFkNjY0My4uMTY0YmE1YmJm
MmMyNDg5YTY5MmY4MmI0N2RjZjllOWZiMDQxMjNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaApAQCAtOTUsOSArOTUsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgdXBkYXRlVGlsZXNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIq
LCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwogICAgIHZvaWQgY3JlYXRl
VGlsZXNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXJTdGF0ZSYpOwogICAgIHZvaWQgcmVtb3ZlVGlsZXNJZk5lZWRlZChUZXh0dXJlTWFw
cGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwotI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKICAgICB2b2lkIHNldExheWVyRmlsdGVyc0lmTmVlZGVkKFRleHR1
cmVNYXBwZXJMYXllciosIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7Ci0j
ZW5kaWYKICAgICB2b2lkIHNldExheWVyQW5pbWF0aW9uc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJM
YXllciosIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CiAjaWYgVVNFKEdS
QVBISUNTX1NVUkZBQ0UpCiAgICAgdm9pZCBjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQoVGV4
dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUu
aAppbmRleCA3NzUyYTdmNzRmZmU4NWM0MjY4OGE4MjNmZGY5YjcwYTQzYjVhOTk2Li4wYjVjYmI5
MGUxNThjMzM3YTFlNTEwMTJlN2U5MThhNDJkY2E4MzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFw
aGljc1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oCkBAIC0zMCw2ICszMCw3IEBA
CiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogCiAjaW5jbHVkZSAiQ29sb3IuaCIKKyNp
bmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5j
bHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckFuaW1hdGlvbi5oIgpA
QCAtMzgsMTAgKzM5LDYgQEAKICNpbmNsdWRlICJTdXJmYWNlVXBkYXRlSW5mby5oIgogI2luY2x1
ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0j
aW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgotI2VuZGlmCi0KICNpZiBVU0UoR1JBUEhJQ1Nf
U1VSRkFDRSkKICNpbmNsdWRlICJHcmFwaGljc1N1cmZhY2UuaCIKICNpbmNsdWRlICJHcmFwaGlj
c1N1cmZhY2VUb2tlbi5oIgpAQCAtMTQ4LDkgKzE0NSw3IEBAIHN0cnVjdCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXJTdGF0ZSB7CiAgICAgQ29sb3Igc29saWRDb2xvcjsKICAgICBDb2xvciBkZWJ1
Z0JvcmRlckNvbG9yOwogICAgIGZsb2F0IGRlYnVnQm9yZGVyV2lkdGg7Ci0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQogICAgIEZpbHRlck9wZXJhdGlvbnMgZmlsdGVyczsKLSNlbmRpZgogICAgIEdy
YXBoaWNzTGF5ZXJBbmltYXRpb25zIGFuaW1hdGlvbnM7CiAgICAgVmVjdG9yPHVpbnQzMl90PiBj
aGlsZHJlbjsKICAgICBWZWN0b3I8VGlsZUNyZWF0aW9uSW5mbz4gdGlsZXNUb0NyZWF0ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwCmlu
ZGV4IDNmYWRkOTg1M2ZkZGIyZmVlMGQ1NDlkMjVkZjMwNzliMDgzZDUwMmMuLmYzMWU3Yjk0Yjdi
NTExNzZjZjdjMzQ1MTM5MGI4NWQ2MGM4MjcwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcApAQCAtMjYsOCArMjYsNiBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0KICNpbmNsdWRl
ICJGaWx0ZXJFZmZlY3RSZW5kZXJlci5oIgogCiAjaW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnQu
aCIKQEAgLTQ0NCw1ICs0NDIsMyBAQCB2b2lkIEZpbHRlckVmZmVjdFJlbmRlcmVySGVscGVyOjph
cHBseUZpbHRlckVmZmVjdChHcmFwaGljc0NvbnRleHQqIGRlc3RpbmF0aW9uQwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oCmluZGV4IDYw
ODU3ZDg5MDMxNjU2YWY3ZDIwOTc2ZTM4OTU4OTQ0MzZhYzk1NjkuLjVmZjg5OGI0MDY1NjQ5ZDBj
ODY0NzU2N2FkNWRmMjJjMjBhZjkyNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEZpbHRl
ckVmZmVjdFJlbmRlcmVyX2gKICNkZWZpbmUgRmlsdGVyRWZmZWN0UmVuZGVyZXJfaAogCi0jaWYg
RU5BQkxFKENTU19GSUxURVJTKQotCiAjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAiRmls
dGVyRWZmZWN0LmgiCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgpAQCAtMTUyLDYgKzE1
MCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVO
QUJMRShDU1NfRklMVEVSUykKLQogI2VuZGlmIC8vIEZpbHRlckVmZmVjdFJlbmRlcmVyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCBiZGI5ZDNiNGIw
MWM3NTQ0NDhmYTYwNGQ3NmNlZmZhYmY1ZWY2NWFhLi4xOTlhNjQ1NmZmMjAzMzE3ZjhlMzRjNDEz
MjUxYjgzNjcxYjY5YjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuY3BwCkBAIC0yNzQsOCArMjc0LDcgQEAgU3R5bGVEaWZmZXJlbmNlIFJlbmRlckVsZW1lbnQ6
OmFkanVzdFN0eWxlRGlmZmVyZW5jZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgdW5zaWcKICAgICAg
ICAgZWxzZSBpZiAoZGlmZiA8IFN0eWxlRGlmZmVyZW5jZVJlY29tcG9zaXRlTGF5ZXIpCiAgICAg
ICAgICAgICBkaWZmID0gU3R5bGVEaWZmZXJlbmNlUmVjb21wb3NpdGVMYXllcjsKICAgICB9Ci0g
ICAgCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQorCiAgICAgaWYgKChjb250ZXh0U2Vuc2l0aXZl
UHJvcGVydGllcyAmIENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0eUZpbHRlcikgJiYgaGFzTGF5ZXIo
KSkgewogICAgICAgICBSZW5kZXJMYXllciogbGF5ZXIgPSB0b1JlbmRlckxheWVyTW9kZWxPYmpl
Y3QodGhpcyktPmxheWVyKCk7CiAgICAgICAgIGlmICghbGF5ZXItPmlzQ29tcG9zaXRlZCgpIHx8
IGxheWVyLT5wYWludHNXaXRoRmlsdGVycygpKQpAQCAtMjgzLDcgKzI4Miw2IEBAIFN0eWxlRGlm
ZmVyZW5jZSBSZW5kZXJFbGVtZW50OjphZGp1c3RTdHlsZURpZmZlcmVuY2UoU3R5bGVEaWZmZXJl
bmNlIGRpZmYsIHVuc2lnCiAgICAgICAgIGVsc2UgaWYgKGRpZmYgPCBTdHlsZURpZmZlcmVuY2VS
ZWNvbXBvc2l0ZUxheWVyKQogICAgICAgICAgICAgZGlmZiA9IFN0eWxlRGlmZmVyZW5jZVJlY29t
cG9zaXRlTGF5ZXI7CiAgICAgfQotI2VuZGlmCiAgICAgCiAgICAgLy8gVGhlIGFuc3dlciB0byBy
ZXF1aXJlc0xheWVyKCkgZm9yIHBsdWdpbnMsIGlmcmFtZXMsIGFuZCBjYW52YXMgY2FuIGNoYW5n
ZSB3aXRob3V0IHRoZSBhY3R1YWwKICAgICAvLyBzdHlsZSBjaGFuZ2luZywgc2luY2UgaXQgZGVw
ZW5kcyBvbiB3aGV0aGVyIHdlIGRlY2lkZSB0byBjb21wb3NpdGUgdGhlc2UgZWxlbWVudHMuIFdo
ZW4gdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAppbmRleCAwYjNj
ZTk0NzExZTViMmU2ZDkwN2JmNDM5YThjNGE0ODEyMWU2NGYzLi40MmI1ZGMwMjAxMWZkYjRmMDZh
ZDM4YjdmZGYwYzVmNWJhODc0N2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bGVtZW50LmgKQEAgLTEzMiwxMSArMTMyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQ2xpcFBh
dGgoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmNsaXBQYXRoKCk7IH0KICAgICBib29sIGhhc0hp
ZGRlbkJhY2tmYWNlKCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS5iYWNrZmFjZVZpc2liaWxpdHko
KSA9PSBCYWNrZmFjZVZpc2liaWxpdHlIaWRkZW47IH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKICAgICBib29sIGhhc0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuIHN0eWxlKCkuaGFzRmlsdGVy
KCk7IH0KLSNlbHNlCi0gICAgYm9vbCBoYXNGaWx0ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQotI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgaGFzQmxl
bmRNb2RlKCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS5oYXNCbGVuZE1vZGUoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggMzUzNWNmMTJlNmRjYThhNmY2
OTQ0ZjY4YWI5NDVjNjMxMTNhODU5MC4uOTZhMjAzMGVlYzM1MzA5NjQ2MDQwNmNlYTRhOTZhZDQ1
ZWMxYzk2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC01
Miw2ICs1Miw5IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAi
RWxlbWVudC5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgorI2luY2x1ZGUgIkZFQ29sb3JN
YXRyaXguaCIKKyNpbmNsdWRlICJGRU1lcmdlLmgiCisjaW5jbHVkZSAiRmlsdGVyRWZmZWN0UmVu
ZGVyZXIuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJGbG9hdFBv
aW50M0QuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKQEAgLTgzLDYgKzg2LDcgQEAKICNpbmNs
dWRlICJSZW5kZXJJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVy
RmlsdGVySW5mby5oIgogI2luY2x1ZGUgIlJlbmRlck1hcnF1ZWUuaCIKICNpbmNsdWRlICJSZW5k
ZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dGcmFn
bWVudC5oIgpAQCAtMTE1LDEzICsxMTksNiBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCi0jaW5jbHVkZSAiRkVDb2xvck1hdHJpeC5oIgotI2luY2x1ZGUgIkZFTWVyZ2UuaCIKLSNp
bmNsdWRlICJGaWx0ZXJFZmZlY3RSZW5kZXJlci5oIgotI2luY2x1ZGUgIlJlbmRlckxheWVyRmls
dGVySW5mby5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogI2luY2x1
ZGUgIkF4aXNTY3JvbGxTbmFwT2Zmc2V0cy5oIgogI2VuZGlmCkBAIC0xODUsOSArMTgyLDcgQEAg
UmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJlbmRlcmVy
TGF5ZXJNb2RlbE9iamVjdCkKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgLCBtX2xheWVyTGlz
dE11dGF0aW9uQWxsb3dlZCh0cnVlKQogI2VuZGlmCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQog
ICAgICwgbV9oYXNGaWx0ZXJJbmZvKGZhbHNlKQotI2VuZGlmCiAjaWYgRU5BQkxFKENTU19DT01Q
T1NJVElORykKICAgICAsIG1fYmxlbmRNb2RlKEJsZW5kTW9kZU5vcm1hbCkKICAgICAsIG1faGFz
Tm90SXNvbGF0ZWRDb21wb3NpdGVkQmxlbmRpbmdEZXNjZW5kYW50cyhmYWxzZSkKQEAgLTI1Miwx
MCArMjQ3LDggQEAgUmVuZGVyTGF5ZXI6On5SZW5kZXJMYXllcigpCiAKICAgICBpZiAobV9yZWZs
ZWN0aW9uKQogICAgICAgICByZW1vdmVSZWZsZWN0aW9uKCk7Ci0gICAgCi0jaWYgRU5BQkxFKENT
U19GSUxURVJTKQorCiAgICAgRmlsdGVySW5mbzo6cmVtb3ZlKCp0aGlzKTsKLSNlbmRpZgogCiAg
ICAgLy8gQ2hpbGQgbGF5ZXJzIHdpbGwgYmUgZGVsZXRlZCBieSB0aGVpciBjb3JyZXNwb25kaW5n
IHJlbmRlciBvYmplY3RzLCBzbwogICAgIC8vIHdlIGRvbid0IG5lZWQgdG8gZGVsZXRlIHRoZW0g
b3Vyc2VsdmVzLgpAQCAtMzE0LDggKzMwNyw2IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmNhblJlbmRl
cjNEVHJhbnNmb3JtcygpIGNvbnN0CiAgICAgcmV0dXJuIGNvbXBvc2l0b3IoKS5jYW5SZW5kZXIz
RFRyYW5zZm9ybXMoKTsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQogYm9vbCBSZW5k
ZXJMYXllcjo6cGFpbnRzV2l0aEZpbHRlcnMoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBFdmVu
dHVhbGx5IHRoZXJlIHdpbGwgYmUgY2FzZXMgd2hlcmUgd2UgcGFpbnQgd2l0aCBmaWx0ZXJzIGV2
ZW4gd2l0aG91dCBhY2NlbGVyYXRlZCBjb21wb3NpdGluZywKQEAgLTM0Nyw4ICszMzgsNiBAQCBG
aWx0ZXJFZmZlY3RSZW5kZXJlciogUmVuZGVyTGF5ZXI6OmZpbHRlclJlbmRlcmVyKCkgY29uc3QK
ICAgICByZXR1cm4gZmlsdGVySW5mbyA/IGZpbHRlckluZm8tPnJlbmRlcmVyKCkgOiAwOwogfQog
Ci0jZW5kaWYKLQogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckxh
eW91dChjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVyLCBVcGRhdGVMYXllclBvc2l0aW9uc0Zs
YWdzIGZsYWdzKQogewogICAgIFJlbmRlckdlb21ldHJ5TWFwIGdlb21ldHJ5TWFwKFVzZVRyYW5z
Zm9ybXMpOwpAQCAtMTQ1Miw4ICsxNDQxLDYgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpl
bmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludChJbmNsdWRlU2VsZk9yTm90IGkKICAg
ICByZXR1cm4gMDsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQogUmVuZGVyTGF5ZXIq
IFJlbmRlckxheWVyOjplbmNsb3NpbmdGaWx0ZXJMYXllcihJbmNsdWRlU2VsZk9yTm90IGluY2x1
ZGVTZWxmKSBjb25zdAogewogICAgIGNvbnN0IFJlbmRlckxheWVyKiBjdXJyID0gKGluY2x1ZGVT
ZWxmID09IEluY2x1ZGVTZWxmKSA/IHRoaXMgOiBwYXJlbnQoKTsKQEAgLTE1MjIsOCArMTUwOSw2
IEBAIGJvb2wgUmVuZGVyTGF5ZXI6Omhhc0FuY2VzdG9yV2l0aEZpbHRlck91dHNldHMoKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotI2VuZGlmCi0KIFJlbmRlckxheWVyKiBSZW5kZXJM
YXllcjo6Y2xpcHBpbmdSb290Rm9yUGFpbnRpbmcoKSBjb25zdAogewogICAgIGlmIChpc0NvbXBv
c2l0ZWQoKSkKQEAgLTE2NTUsOSArMTY0MCw3IEBAIHN0YXRpYyBMYXlvdXRSZWN0IHRyYW5zcGFy
ZW5jeUNsaXBCb3goY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBjb25zdCBSZW5kZXJMYXllCiAg
ICAgICAgIC8vIHBhaW50cyB1bmZyYWdtZW50ZWQuCiAgICAgICAgIExheW91dFJlY3QgY2xpcFJl
Y3QgPSBsYXllci5ib3VuZGluZ0JveCgmbGF5ZXIpOwogICAgICAgICBleHBhbmRDbGlwUmVjdEZv
ckRlc2NlbmRhbnRzQW5kUmVmbGVjdGlvbihjbGlwUmVjdCwgbGF5ZXIsICZsYXllciwgdHJhbnNw
YXJlbmN5QmVoYXZpb3IsIHBhaW50QmVoYXZpb3IpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykK
ICAgICAgICAgbGF5ZXIucmVuZGVyZXIoKS5zdHlsZSgpLmZpbHRlck91dHNldHMoKS5leHBhbmRS
ZWN0KGNsaXBSZWN0KTsKLSNlbmRpZgogICAgICAgICBMYXlvdXRSZWN0IHJlc3VsdCA9IHRyYW5z
Zm9ybS5tYXBSZWN0KGNsaXBSZWN0KTsKICAgICAgICAgaWYgKCFwYWdpbmF0aW9uTGF5ZXIpCiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTY3Myw5ICsxNjU2LDggQEAgc3RhdGljIExh
eW91dFJlY3QgdHJhbnNwYXJlbmN5Q2xpcEJveChjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIsIGNv
bnN0IFJlbmRlckxheWUKICAgICAKICAgICBMYXlvdXRSZWN0IGNsaXBSZWN0ID0gbGF5ZXIuYm91
bmRpbmdCb3gocm9vdExheWVyLCBsYXllci5vZmZzZXRGcm9tQW5jZXN0b3Iocm9vdExheWVyKSwg
dHJhbnNwYXJlbmN5QmVoYXZpb3IgPT0gSGl0VGVzdGluZ1RyYW5zcGFyZW5jeUNsaXBCb3ggPyBS
ZW5kZXJMYXllcjo6VXNlRnJhZ21lbnRCb3hlc0luY2x1ZGluZ0NvbXBvc2l0aW5nIDogUmVuZGVy
TGF5ZXI6OlVzZUZyYWdtZW50Qm94ZXNFeGNsdWRpbmdDb21wb3NpdGluZyk7CiAgICAgZXhwYW5k
Q2xpcFJlY3RGb3JEZXNjZW5kYW50c0FuZFJlZmxlY3Rpb24oY2xpcFJlY3QsIGxheWVyLCByb290
TGF5ZXIsIHRyYW5zcGFyZW5jeUJlaGF2aW9yLCBwYWludEJlaGF2aW9yKTsKLSNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiAgICAgbGF5ZXIucmVuZGVyZXIoKS5zdHlsZSgpLmZpbHRlck91dHNldHMo
KS5leHBhbmRSZWN0KGNsaXBSZWN0KTsKLSNlbmRpZgorCiAgICAgcmV0dXJuIGNsaXBSZWN0Owog
fQogCkBAIC0zOTQ1LDggKzM5MjcsNiBAQCBib29sIFJlbmRlckxheWVyOjpzZXR1cENsaXBQYXRo
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZgogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQogc3RkOjp1bmlxdWVf
cHRyPEZpbHRlckVmZmVjdFJlbmRlcmVySGVscGVyPiBSZW5kZXJMYXllcjo6c2V0dXBGaWx0ZXJz
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgTGF5ZXJQYWludGluZ0luZm8mIHBhaW50aW5nSW5m
bywgUGFpbnRMYXllckZsYWdzIHBhaW50RmxhZ3MsIGNvbnN0IExheW91dFNpemUmIG9mZnNldEZy
b21Sb290LCBMYXlvdXRSZWN0JiByb290UmVsYXRpdmVCb3VuZHMsIGJvb2wmIHJvb3RSZWxhdGl2
ZUJvdW5kc0NvbXB1dGVkKQogewogICAgIGlmIChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkp
CkBAIC00MDA0LDggKzM5ODQsNiBAQCBHcmFwaGljc0NvbnRleHQqIFJlbmRlckxheWVyOjphcHBs
eUZpbHRlcnMoRmlsdGVyRWZmZWN0UmVuZGVyZXJIZWxwZXIqIGZpbHRlclBhaQogICAgIHJldHVy
biBvcmlnaW5hbENvbnRleHQ7CiB9CiAKLSNlbmRpZgotCiAvLyBIZWxwZXIgZm9yIHRoZSBzb3J0
aW5nIG9mIGxheWVycyBieSB6LWluZGV4Lgogc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVaSW5k
ZXgoUmVuZGVyTGF5ZXIqIGZpcnN0LCBSZW5kZXJMYXllciogc2Vjb25kKQogewpAQCAtNDA4OSw3
ICs0MDY3LDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGkKICAgICBMYXllclBhaW50aW5nSW5m
byBsb2NhbFBhaW50aW5nSW5mbyhwYWludGluZ0luZm8pOwogCiAgICAgR3JhcGhpY3NDb250ZXh0
KiB0cmFuc3BhcmVuY3lMYXllckNvbnRleHQgPSBjb250ZXh0OwotI2lmIEVOQUJMRShDU1NfRklM
VEVSUykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0UmVuZGVyZXJIZWxwZXI+IGZp
bHRlclBhaW50ZXIgPSBzZXR1cEZpbHRlcnMoY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8sIHBh
aW50RmxhZ3MsIG9mZnNldEZyb21Sb290LCByb290UmVsYXRpdmVCb3VuZHMsIHJvb3RSZWxhdGl2
ZUJvdW5kc0NvbXB1dGVkKTsKICAgICBpZiAoZmlsdGVyUGFpbnRlcikgewogICAgICAgICBjb250
ZXh0ID0gZmlsdGVyUGFpbnRlci0+ZmlsdGVyQ29udGV4dCgpOwpAQCAtNDA5OCw3ICs0MDc1LDYg
QEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgTGF5ZXJQYWludGkKICAgICAgICAgICAgIGJlZ2luVHJhbnNwYXJlbmN5
TGF5ZXJzKHRyYW5zcGFyZW5jeUxheWVyQ29udGV4dCwgbG9jYWxQYWludGluZ0luZm8sIHBhaW50
aW5nSW5mby5wYWludERpcnR5UmVjdCk7CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKIAogICAg
IC8vIElmIHRoaXMgbGF5ZXIncyByZW5kZXJlciBpcyBhIGNoaWxkIG9mIHRoZSBzdWJ0cmVlUGFp
bnRSb290LCB3ZSByZW5kZXIgdW5jb25kaXRpb25hbGx5LCB3aGljaAogICAgIC8vIGlzIGRvbmUg
YnkgcGFzc2luZyBhIG5pbCBzdWJ0cmVlUGFpbnRSb290IGRvd24gdG8gb3VyIHJlbmRlcmVyIChh
cyBpZiBubyBzdWJ0cmVlUGFpbnRSb290IHdhcyBldmVyIHNldCkuCkBAIC00MTc0LDEyICs0MTUw
LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyhHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpCiAgICAgaWYgKGlzUGFpbnRpbmdPdmVybGF5
U2Nyb2xsYmFycykKICAgICAgICAgcGFpbnRPdmVyZmxvd0NvbnRyb2xzRm9yRnJhZ21lbnRzKGxh
eWVyRnJhZ21lbnRzLCBjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mbyk7CiAKLSNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiAgICAgaWYgKGZpbHRlclBhaW50ZXIpIHsKICAgICAgICAgY29udGV4dCA9
IGFwcGx5RmlsdGVycyhmaWx0ZXJQYWludGVyLmdldCgpLCB0cmFuc3BhcmVuY3lMYXllckNvbnRl
eHQsIGxvY2FsUGFpbnRpbmdJbmZvLCBsYXllckZyYWdtZW50cyk7CiAgICAgICAgIGZpbHRlclBh
aW50ZXIgPSBudWxscHRyOwogICAgIH0KLSNlbmRpZgogICAgIAogICAgIC8vIE1ha2Ugc3VyZSB0
aGF0IHdlIG5vdyB1c2UgdGhlIG9yaWdpbmFsIHRyYW5zcGFyZW5jeSBjb250ZXh0LgogICAgIEFT
U0VSVCh0cmFuc3BhcmVuY3lMYXllckNvbnRleHQgPT0gY29udGV4dCk7CkBAIC01Nzk1LDE0ICs1
NzY5LDEyIEBAIExheW91dFJlY3QgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUxheWVyQm91bmRzKGNv
bnN0IFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyLCBjCiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9Ci0gICAgCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQorCiAgICAgLy8gRklYTUU6
IFdlIGNhbiBvcHRpbWl6ZSB0aGUgc2l6ZSBvZiB0aGUgY29tcG9zaXRlZCBsYXllcnMsIGJ5IG5v
dCBlbmxhcmdpbmcKICAgICAvLyBmaWx0ZXJlZCBhcmVhcyB3aXRoIHRoZSBvdXRzZXRzIGlmIHdl
IGtub3cgdGhhdCB0aGUgZmlsdGVyIGlzIGdvaW5nIHRvIHJlbmRlciBpbiBoYXJkd2FyZS4KICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEyMzkKICAgICBp
ZiAoZmxhZ3MgJiBJbmNsdWRlTGF5ZXJGaWx0ZXJPdXRzZXRzKQogICAgICAgICByZW5kZXJlcigp
LnN0eWxlKCkuZmlsdGVyT3V0c2V0cygpLmV4cGFuZFJlY3QodW5pb25Cb3VuZHMpOwotI2VuZGlm
CiAKICAgICBpZiAoKGZsYWdzICYgSW5jbHVkZVNlbGZUcmFuc2Zvcm0pICYmIHBhaW50c1dpdGhU
cmFuc2Zvcm0oUGFpbnRCZWhhdmlvck5vcm1hbCkpIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXgqIGFmZmluZVRyYW5zID0gdHJhbnNmb3JtKCk7CkBAIC01ODQzLDkgKzU4MTUsNyBAQCBS
ZW5kZXJMYXllckJhY2tpbmcqIFJlbmRlckxheWVyOjplbnN1cmVCYWNraW5nKCkKICAgICAgICAg
bV9iYWNraW5nID0gc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJMYXllckJhY2tpbmc+KCp0aGlzKTsK
ICAgICAgICAgY29tcG9zaXRvcigpLmxheWVyQmVjYW1lQ29tcG9zaXRlZCgqdGhpcyk7CiAKLSNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAgIHVwZGF0ZU9yUmVtb3ZlRmlsdGVyRWZmZWN0
UmVuZGVyZXIoKTsKLSNlbmRpZgogICAgIH0KICAgICByZXR1cm4gbV9iYWNraW5nLmdldCgpOwog
fQpAQCAtNTg1NiwxMiArNTgyNiw4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNsZWFyQmFja2luZyhi
b29sIGxheWVyQmVpbmdEZXN0cm95ZWQpCiAgICAgICAgIGNvbXBvc2l0b3IoKS5sYXllckJlY2Ft
ZU5vbkNvbXBvc2l0ZWQoKnRoaXMpOwogICAgIG1fYmFja2luZyA9IG51bGxwdHI7CiAKLSNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYgKCFsYXllckJlaW5nRGVzdHJveWVkKQogICAgICAg
ICB1cGRhdGVPclJlbW92ZUZpbHRlckVmZmVjdFJlbmRlcmVyKCk7Ci0jZWxzZQotICAgIFVOVVNF
RF9QQVJBTShsYXllckJlaW5nRGVzdHJveWVkKTsKLSNlbmRpZgogfQogCiBib29sIFJlbmRlckxh
eWVyOjpoYXNDb21wb3NpdGVkTWFzaygpIGNvbnN0CkBAIC01OTA4LDEwICs1ODc0LDggQEAgYm9v
bCBSZW5kZXJMYXllcjo6YmFja2dyb3VuZElzS25vd25Ub0JlT3BhcXVlSW5SZWN0KGNvbnN0IExh
eW91dFJlY3QmIGxvY2FsUmVjdCkKICAgICBpZiAocmVuZGVyZXIoKS5zdHlsZSgpLnZpc2liaWxp
dHkoKSAhPSBWSVNJQkxFKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCiAgICAgaWYgKHBhaW50c1dpdGhGaWx0ZXJzKCkgJiYgcmVuZGVyZXIoKS5zdHls
ZSgpLmZpbHRlcigpLmhhc0ZpbHRlclRoYXRBZmZlY3RzT3BhY2l0eSgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0jZW5kaWYKIAogICAgIC8vIEZJWE1FOiBIYW5kbGUgc2ltcGxlIHRyYW5zZm9y
bXMuCiAgICAgaWYgKHBhaW50c1dpdGhUcmFuc2Zvcm0oUGFpbnRCZWhhdmlvck5vcm1hbCkpCkBA
IC02MjMwLDkgKzYxOTQsNyBAQCBib29sIFJlbmRlckxheWVyOjpzaG91bGRCZU5vcm1hbEZsb3dP
bmx5KCkgY29uc3QKICAgICAgICAgJiYgIXJlbmRlcmVyKCkuaXNQb3NpdGlvbmVkKCkKICAgICAg
ICAgJiYgIXJlbmRlcmVyKCkuaGFzVHJhbnNmb3JtKCkKICAgICAgICAgJiYgIXJlbmRlcmVyKCku
aGFzQ2xpcFBhdGgoKQotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgJiYgIXJlbmRl
cmVyKCkuaGFzRmlsdGVyKCkKLSNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgJiYg
IWhhc0FjY2VsZXJhdGVkVG91Y2hTY3JvbGxpbmcoKQogI2VuZGlmCkBAIC02NTExLDkgKzY0NzMs
NyBAQCB2b2lkIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYs
IGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcp
CiAgICAgdXBkYXRlQmxlbmRNb2RlKCk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CiAgICAgdXBkYXRlT3JSZW1vdmVGaWx0ZXJDbGllbnRzKCk7Ci0jZW5kaWYKIAogICAgIHVwZGF0
ZU5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOwogCkBAIC02NTQ3LDcgKzY1MDcsNiBAQCB2b2lk
IFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJl
bmRlclN0eWxlKiBvbGRTdHlsZQogICAgIFVOVVNFRF9QQVJBTShkaWZmKTsKICNlbmRpZgogCi0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHVwZGF0ZU9yUmVtb3ZlRmlsdGVyRWZmZWN0UmVu
ZGVyZXIoKTsKICAgICBib29sIGJhY2tpbmdEaWRDb21wb3NpdGVMYXllcnMgPSBpc0NvbXBvc2l0
ZWQoKSAmJiBiYWNraW5nKCktPmNhbkNvbXBvc2l0ZUZpbHRlcnMoKTsKICAgICBpZiAoaXNDb21w
b3NpdGVkKCkgJiYgYmFja2luZ0RpZENvbXBvc2l0ZUxheWVycyAmJiAhYmFja2luZygpLT5jYW5D
b21wb3NpdGVGaWx0ZXJzKCkpIHsKQEAgLTY1NTUsNyArNjUxNCw2IEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OnN0eWxlQ2hhbmdlZChTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUq
IG9sZFN0eWxlCiAgICAgICAgIC8vIEZhbGxiYWNrIHRvIGRyYXdpbmcgdGhlbSBpbiBzb2Z0d2Fy
ZS4KICAgICAgICAgc2V0QmFja2luZ05lZWRzUmVwYWludCgpOwogICAgIH0KLSNlbmRpZgogfQog
CiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxhYmxlQXJlYVNldChib29sIGhhc092ZXJm
bG93KQpAQCAtNjY4NCw4ICs2NjQyLDYgQEAgUGFzc1JlZjxSZW5kZXJTdHlsZT4gUmVuZGVyTGF5
ZXI6OmNyZWF0ZVJlZmxlY3Rpb25TdHlsZSgpCiAgICAgcmV0dXJuIG5ld1N0eWxlOwogfQogCi0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQotCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVPclJlbW92
ZUZpbHRlckNsaWVudHMoKQogewogICAgIGlmICghaGFzRmlsdGVyKCkpIHsKQEAgLTY3NDYsOCAr
NjcwMiw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmZpbHRlck5lZWRzUmVwYWludCgpCiAgICAgcmVu
ZGVyZXIoKS5yZXBhaW50KCk7CiB9CiAKLSNlbmRpZgotCiB2b2lkIFJlbmRlckxheWVyOjpwYWlu
dE5hbWVkRmxvd1RocmVhZEluc2lkZVJlZ2lvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFJl
bmRlck5hbWVkRmxvd0ZyYWdtZW50KiByZWdpb24sIExheW91dFJlY3QgcGFpbnREaXJ0eVJlY3Qs
IExheW91dFBvaW50IHBhaW50T2Zmc2V0LCBQYWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3IsIFBh
aW50TGF5ZXJGbGFncyBwYWludEZsYWdzKQogewogICAgIExheW91dFJlY3QgcmVnaW9uQ29udGVu
dEJveCA9IHRvUmVuZGVyQm94KHJlZ2lvbi0+bGF5ZXJPd25lcigpKS5jb250ZW50Qm94UmVjdCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAwOTIyYmZlZWM3NGMx
ZTg1MTE1NDg4ZDI5OWM2MjI5NDc5ZTAxYzA2Li44YTdmNTg0MWRmMDM1NWRlNGQwOTdiZTQzNWNh
NzdmOGY5ZDc4NzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAt
NjMyLDEyICs2MzIsMTAgQEAgcHVibGljOgogICAgIC8vIEFuY2VzdG9yIGNvbXBvc2l0aW5nIGxh
eWVyLCBleGNsdWRpbmcgdGhpcy4KICAgICBSZW5kZXJMYXllciogYW5jZXN0b3JDb21wb3NpdGlu
Z0xheWVyKCkgY29uc3QgeyByZXR1cm4gZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllcihFeGNsdWRl
U2VsZik7IH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBSZW5kZXJMYXllciogZW5j
bG9zaW5nRmlsdGVyTGF5ZXIoSW5jbHVkZVNlbGZPck5vdCA9IEluY2x1ZGVTZWxmKSBjb25zdDsK
ICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nRmlsdGVyUmVwYWludExheWVyKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KGNvbnN0IExheW91
dFJlY3QmKTsKICAgICBib29sIGhhc0FuY2VzdG9yV2l0aEZpbHRlck91dHNldHMoKSBjb25zdDsK
LSNlbmRpZgogCiAgICAgYm9vbCBjYW5Vc2VDb252ZXJ0VG9MYXllckNvb3JkcygpIGNvbnN0CiAg
ICAgewpAQCAtNzQ3LDEzICs3NDUsOSBAQCBwdWJsaWM6CiAgICAgLy8gQm91bmRzIHVzZWQgZm9y
IGxheWVyIG92ZXJsYXAgdGVzdGluZyBpbiBSZW5kZXJMYXllckNvbXBvc2l0b3IuCiAgICAgTGF5
b3V0UmVjdCBvdmVybGFwQm91bmRzKCkgY29uc3QgeyByZXR1cm4gb3ZlcmxhcEJvdW5kc0luY2x1
ZGVDaGlsZHJlbigpID8gY2FsY3VsYXRlTGF5ZXJCb3VuZHModGhpcywgTGF5b3V0U2l6ZSgpKSA6
IGxvY2FsQm91bmRpbmdCb3goKTsgfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIC8v
IElmIHRydWUsIHRoaXMgbGF5ZXIncyBjaGlsZHJlbiBhcmUgaW5jbHVkZWQgaW4gaXRzIGJvdW5k
cyBmb3Igb3ZlcmxhcCB0ZXN0aW5nLgogICAgIC8vIFdlIGNhbid0IHJlbHkgb24gdGhlIGNoaWxk
cmVuJ3MgcG9zaXRpb25zIGlmIHRoaXMgbGF5ZXIgaGFzIGEgZmlsdGVyIHRoYXQgY291bGQgaGF2
ZSBtb3ZlZCB0aGUgY2hpbGRyZW4ncyBwaXhlbHMgYXJvdW5kLgogICAgIGJvb2wgb3ZlcmxhcEJv
dW5kc0luY2x1ZGVDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIGhhc0ZpbHRlcigpICYmIHJlbmRl
cmVyKCkuc3R5bGUoKS5maWx0ZXIoKS5oYXNGaWx0ZXJUaGF0TW92ZXNQaXhlbHMoKTsgfQotI2Vs
c2UKLSAgICBib29sIG92ZXJsYXBCb3VuZHNJbmNsdWRlQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQotI2VuZGlmCiAKICAgICAvLyBDYW4gcGFzcyBvZmZzZXRGcm9tUm9vdCBpZiBr
bm93bi4KICAgICBMYXlvdXRSZWN0IGNhbGN1bGF0ZUxheWVyQm91bmRzKGNvbnN0IFJlbmRlckxh
eWVyKiBhbmNlc3RvckxheWVyLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdCwgQ2Fs
Y3VsYXRlTGF5ZXJCb3VuZHNGbGFncyA9IERlZmF1bHRDYWxjdWxhdGVMYXllckJvdW5kc0ZsYWdz
KSBjb25zdDsKQEAgLTc5MiwxMiArNzg2LDggQEAgcHVibGljOgogICAgIGJvb2wgcHJlc2VydmVz
M0QoKSBjb25zdCB7IHJldHVybiByZW5kZXJlcigpLnN0eWxlKCkudHJhbnNmb3JtU3R5bGUzRCgp
ID09IFRyYW5zZm9ybVN0eWxlM0RQcmVzZXJ2ZTNEOyB9CiAgICAgYm9vbCBoYXMzRFRyYW5zZm9y
bSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtICYmICFtX3RyYW5zZm9ybS0+aXNBZmZpbmUo
KTsgfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHZpcnR1YWwgdm9pZCBmaWx0ZXJO
ZWVkc1JlcGFpbnQoKTsKICAgICBib29sIGhhc0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuIHJlbmRl
cmVyKCkuaGFzRmlsdGVyKCk7IH0KLSNlbHNlCi0gICAgYm9vbCBoYXNGaWx0ZXIoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQog
ICAgIGJvb2wgaGFzQmxlbmRNb2RlKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS5oYXNCbGVu
ZE1vZGUoKTsgfQpAQCAtODUxLDExICs4NDEsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjb250YWlu
c0RpcnR5T3ZlcmxheVNjcm9sbGJhcnMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRhaW5zRGlydHlP
dmVybGF5U2Nyb2xsYmFyczsgfQogICAgIHZvaWQgc2V0Q29udGFpbnNEaXJ0eU92ZXJsYXlTY3Jv
bGxiYXJzKGJvb2wgZGlydHlTY3JvbGxiYXJzKSB7IG1fY29udGFpbnNEaXJ0eU92ZXJsYXlTY3Jv
bGxiYXJzID0gZGlydHlTY3JvbGxiYXJzOyB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAg
ICAgYm9vbCBwYWludHNXaXRoRmlsdGVycygpIGNvbnN0OwogICAgIGJvb2wgcmVxdWlyZXNGdWxs
TGF5ZXJJbWFnZUZvckZpbHRlcnMoKSBjb25zdDsKICAgICBGaWx0ZXJFZmZlY3RSZW5kZXJlciog
ZmlsdGVyUmVuZGVyZXIoKSBjb25zdDsKLSNlbmRpZgogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAog
ICAgIGJvb2wgbGF5ZXJMaXN0TXV0YXRpb25BbGxvd2VkKCkgY29uc3QgeyByZXR1cm4gbV9sYXll
ckxpc3RNdXRhdGlvbkFsbG93ZWQ7IH0KQEAgLTk4NywxMCArOTc1LDkgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgc2V0dXBGb250U3VicGl4ZWxRdWFudGl6YXRpb24oR3JhcGhpY3NDb250ZXh0Kiwg
Ym9vbCYgZGlkUXVhbnRpemVGb250cyk7CiAgICAgYm9vbCBzZXR1cENsaXBQYXRoKEdyYXBoaWNz
Q29udGV4dCosIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zm
c2V0RnJvbVJvb3QsIExheW91dFJlY3QmIHJvb3RSZWxhdGl2ZUJvdW5kcywgYm9vbCYgcm9vdFJl
bGF0aXZlQm91bmRzQ29tcHV0ZWQpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RSZW5kZXJlckhlbHBlcj4gc2V0dXBGaWx0ZXJzKEdy
YXBoaWNzQ29udGV4dCosIExheWVyUGFpbnRpbmdJbmZvJiwgUGFpbnRMYXllckZsYWdzLCBjb25z
dCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdCwgTGF5b3V0UmVjdCYgcm9vdFJlbGF0aXZlQm91
bmRzLCBib29sJiByb290UmVsYXRpdmVCb3VuZHNDb21wdXRlZCk7CiAgICAgR3JhcGhpY3NDb250
ZXh0KiBhcHBseUZpbHRlcnMoRmlsdGVyRWZmZWN0UmVuZGVyZXJIZWxwZXIqLCBHcmFwaGljc0Nv
bnRleHQqIG9yaWdpbmFsQ29udGV4dCwgTGF5ZXJQYWludGluZ0luZm8mLCBMYXllckZyYWdtZW50
cyYpOwotI2VuZGlmCiAKICAgICB2b2lkIHBhaW50TGF5ZXIoR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgTGF5ZXJQYWludGluZ0luZm8mLCBQYWludExheWVyRmxhZ3MpOwogICAgIHZvaWQgcGFpbnRG
aXhlZExheWVyc0luTmFtZWRGbG93cyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXllclBhaW50
aW5nSW5mbyYsIFBhaW50TGF5ZXJGbGFncyk7CkBAIC0xMTI4LDEwICsxMTE1LDggQEAgcHJpdmF0
ZToKICAgICBib29sIHBhaW50aW5nSW5zaWRlUmVmbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
cGFpbnRpbmdJbnNpZGVSZWZsZWN0aW9uOyB9CiAgICAgdm9pZCBzZXRQYWludGluZ0luc2lkZVJl
ZmxlY3Rpb24oYm9vbCBiKSB7IG1fcGFpbnRpbmdJbnNpZGVSZWZsZWN0aW9uID0gYjsgfQogCi0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHZvaWQgdXBkYXRlT3JSZW1vdmVGaWx0ZXJDbGll
bnRzKCk7CiAgICAgdm9pZCB1cGRhdGVPclJlbW92ZUZpbHRlckVmZmVjdFJlbmRlcmVyKCk7Ci0j
ZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCB1cGRhdGVBbmNl
c3RvckNoYWluSGFzQmxlbmRpbmdEZXNjZW5kYW50cygpOwpAQCAtMTI2OSw5ICsxMjU0LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fbGF5ZXJMaXN0TXV0YXRpb25BbGxvd2VkIDogMTsKICNlbmRp
ZgogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGJvb2wgbV9oYXNGaWx0ZXJJbmZvIDog
MTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKICAgICB1bnNpZ25lZCBt
X2JsZW5kTW9kZSA6IDU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCmluZGV4IGY0ODQ0YzUyMDQzY2Q5YzJkMzIxY2M5ZTMyMTUzNTU0YzIxYWEy
ZWQuLmQ4ZmU2ZTczY2QxOGJjYjljN2JiNDJiZGJhYzM1MzVlNzk4ZGI1ODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0zMiw2ICsz
Miw3IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNhY2hlZElt
YWdlLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiRmlsdGVyRWZmZWN0UmVuZGVy
ZXIuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKQEAgLTYxLDEwICs2Miw2IEBACiAjaW5jbHVkZSAi
VGlsZWRCYWNraW5nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCi0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQotI2luY2x1ZGUgIkZpbHRlckVmZmVjdFJlbmRlcmVyLmgi
Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NB
TlZBUykKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2VuZGlmCkBAIC0xMTIsOSAr
MTA5LDcgQEAgUmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcoUmVuZGVyTGF5
ZXImIGxheWVyKQogICAgICwgbV9pc01haW5GcmFtZVJlbmRlclZpZXdMYXllcihmYWxzZSkKICAg
ICAsIG1fdXNpbmdUaWxlZENhY2hlTGF5ZXIoZmFsc2UpCiAgICAgLCBtX3JlcXVpcmVzT3duQmFj
a2luZ1N0b3JlKHRydWUpCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgICwgbV9jYW5Db21w
b3NpdGVGaWx0ZXJzKGZhbHNlKQotI2VuZGlmCiAgICAgLCBtX2JhY2tncm91bmRMYXllclBhaW50
c0ZpeGVkUm9vdEJhY2tncm91bmQoZmFsc2UpCiB7CiAgICAgUGFnZSogcGFnZSA9IHJlbmRlcmVy
KCkuZnJhbWUoKS5wYWdlKCk7CkBAIC0zMTMsOSArMzA4LDcgQEAgdm9pZCBSZW5kZXJMYXllckJh
Y2tpbmc6OmNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKCkKICAgICAKICAgICB1cGRhdGVPcGFj
aXR5KHJlbmRlcmVyKCkuc3R5bGUoKSk7CiAgICAgdXBkYXRlVHJhbnNmb3JtKHJlbmRlcmVyKCku
c3R5bGUoKSk7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHVwZGF0ZUZpbHRlcnMocmVu
ZGVyZXIoKS5zdHlsZSgpKTsKLSNlbmRpZgogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAg
ICAgdXBkYXRlQmxlbmRNb2RlKHJlbmRlcmVyKCkuc3R5bGUoKSk7CiAjZW5kaWYKQEAgLTM3NSwx
MiArMzY4LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVUcmFuc2Zvcm0oY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldFRyYW5z
Zm9ybSh0KTsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjp1cGRhdGVGaWx0ZXJzKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKICAgICBt
X2NhbkNvbXBvc2l0ZUZpbHRlcnMgPSBtX2dyYXBoaWNzTGF5ZXItPnNldEZpbHRlcnMoc3R5bGUu
ZmlsdGVyKCkpOwogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogdm9p
ZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUJsZW5kTW9kZShjb25zdCBSZW5kZXJTdHlsZSYg
c3R5bGUpCkBAIC02NTYsMTAgKzY0Nyw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRh
dGVHZW9tZXRyeSgpCiAgICAgLy8gU2V0IG9wYWNpdHksIGlmIGl0IGlzIG5vdCBhbmltYXRpbmcu
CiAgICAgaWYgKCFyZW5kZXJlcigpLmFuaW1hdGlvbigpLmlzUnVubmluZ0FjY2VsZXJhdGVkQW5p
bWF0aW9uT25SZW5kZXJlcigmcmVuZGVyZXIoKSwgQ1NTUHJvcGVydHlPcGFjaXR5LCBBbmltYXRp
b25CYXNlOjpSdW5uaW5nIHwgQW5pbWF0aW9uQmFzZTo6UGF1c2VkIHwgQW5pbWF0aW9uQmFzZTo6
RmlsbGluZ0Zvd2FyZHMpKQogICAgICAgICB1cGRhdGVPcGFjaXR5KHN0eWxlKTsKLSAgICAgICAg
Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQorCiAgICAgdXBkYXRlRmlsdGVycyhzdHlsZSk7Ci0j
ZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgdXBkYXRlQmxlbmRNb2Rl
KHN0eWxlKTsKQEAgLTIzMjUsMjAgKzIzMTQsMTQgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6
OnN0YXJ0QW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBjb25zdCBBbmltYXRpb24qIGFuaW0K
IHsKICAgICBib29sIGhhc09wYWNpdHkgPSBrZXlmcmFtZXMuY29udGFpbnNQcm9wZXJ0eShDU1NQ
cm9wZXJ0eU9wYWNpdHkpOwogICAgIGJvb2wgaGFzVHJhbnNmb3JtID0gcmVuZGVyZXIoKS5pc0Jv
eCgpICYmIGtleWZyYW1lcy5jb250YWluc1Byb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VHJhbnNm
b3JtKTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBoYXNGaWx0ZXIgPSBrZXlm
cmFtZXMuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcik7Ci0jZWxzZQot
ICAgIGJvb2wgaGFzRmlsdGVyID0gZmFsc2U7Ci0jZW5kaWYKIAogICAgIGlmICghaGFzT3BhY2l0
eSAmJiAhaGFzVHJhbnNmb3JtICYmICFoYXNGaWx0ZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAKICAgICBLZXlmcmFtZVZhbHVlTGlzdCB0cmFuc2Zvcm1WZWN0b3IoQW5pbWF0ZWRQcm9w
ZXJ0eVdlYmtpdFRyYW5zZm9ybSk7CiAgICAgS2V5ZnJhbWVWYWx1ZUxpc3Qgb3BhY2l0eVZlY3Rv
cihBbmltYXRlZFByb3BlcnR5T3BhY2l0eSk7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAg
IEtleWZyYW1lVmFsdWVMaXN0IGZpbHRlclZlY3RvcihBbmltYXRlZFByb3BlcnR5V2Via2l0Rmls
dGVyKTsKLSNlbmRpZgogCiAgICAgc2l6ZV90IG51bUtleWZyYW1lcyA9IGtleWZyYW1lcy5zaXpl
KCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1LZXlmcmFtZXM7ICsraSkgewpAQCAt
MjM1OCwxMCArMjM0MSw4IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlv
bihkb3VibGUgdGltZU9mZnNldCwgY29uc3QgQW5pbWF0aW9uKiBhbmltCiAgICAgICAgIGlmICgo
aGFzT3BhY2l0eSAmJiBpc0ZpcnN0T3JMYXN0S2V5ZnJhbWUpIHx8IGN1cnJlbnRLZXlmcmFtZS5j
b250YWluc1Byb3BlcnR5KENTU1Byb3BlcnR5T3BhY2l0eSkpCiAgICAgICAgICAgICBvcGFjaXR5
VmVjdG9yLmluc2VydChGbG9hdEFuaW1hdGlvblZhbHVlOjpjcmVhdGUoa2V5LCBrZXlmcmFtZVN0
eWxlLT5vcGFjaXR5KCksIHRmKSk7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAg
IGlmICgoaGFzRmlsdGVyICYmIGlzRmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3VycmVudEtleWZy
YW1lLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRGaWx0ZXIpKQogICAgICAgICAg
ICAgZmlsdGVyVmVjdG9yLmluc2VydChGaWx0ZXJBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKGtleSwg
a2V5ZnJhbWVTdHlsZS0+ZmlsdGVyKCksIHRmKSk7Ci0jZW5kaWYKICAgICB9CiAKICAgICBpZiAo
cmVuZGVyZXIoKS5mcmFtZSgpLnBhZ2UoKSAmJiAhcmVuZGVyZXIoKS5mcmFtZSgpLnBhZ2UoKS0+
c2V0dGluZ3MoKS5hY2NlbGVyYXRlZENvbXBvc2l0ZWRBbmltYXRpb25zRW5hYmxlZCgpKQpAQCAt
MjM3NSwxMCArMjM1Niw4IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlv
bihkb3VibGUgdGltZU9mZnNldCwgY29uc3QgQW5pbWF0aW9uKiBhbmltCiAgICAgaWYgKGhhc09w
YWNpdHkgJiYgbV9ncmFwaGljc0xheWVyLT5hZGRBbmltYXRpb24ob3BhY2l0eVZlY3RvciwgSW50
U2l6ZSgpLCBhbmltLCBrZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpLCB0aW1lT2Zmc2V0KSkKICAg
ICAgICAgZGlkQW5pbWF0ZSA9IHRydWU7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAg
aWYgKGhhc0ZpbHRlciAmJiBtX2dyYXBoaWNzTGF5ZXItPmFkZEFuaW1hdGlvbihmaWx0ZXJWZWN0
b3IsIEludFNpemUoKSwgYW5pbSwga2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSwgdGltZU9mZnNl
dCkpCiAgICAgICAgIGRpZEFuaW1hdGUgPSB0cnVlOwotI2VuZGlmCiAKICAgICByZXR1cm4gZGlk
QW5pbWF0ZTsKIH0KQEAgLTI0MjgsNyArMjQwNyw2IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5n
OjpzdGFydFRyYW5zaXRpb24oZG91YmxlIHRpbWVPZmZzZXQsIENTU1Byb3BlcnR5SUQgcHJvcGVy
CiAgICAgICAgIH0KICAgICB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYgKHBy
b3BlcnR5ID09IENTU1Byb3BlcnR5V2Via2l0RmlsdGVyICYmIG1fb3duaW5nTGF5ZXIuaGFzRmls
dGVyKCkpIHsKICAgICAgICAgY29uc3QgQW5pbWF0aW9uKiBmaWx0ZXJBbmltID0gdG9TdHlsZS0+
dHJhbnNpdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0RmlsdGVyKTsKICAgICAgICAg
aWYgKGZpbHRlckFuaW0gJiYgIWZpbHRlckFuaW0tPmlzRW1wdHlPclplcm9EdXJhdGlvbigpKSB7
CkBAIC0yNDQyLDcgKzI0MjAsNiBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRUcmFu
c2l0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBDU1NQcm9wZXJ0eUlEIHByb3BlcgogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgfQotI2VuZGlmCiAKICAgICByZXR1cm4gZGlkQW5pbWF0ZTsK
IH0KQEAgLTI1MjksMTEgKzI1MDYsNyBAQCBDU1NQcm9wZXJ0eUlEIFJlbmRlckxheWVyQmFja2lu
Zzo6Z3JhcGhpY3NMYXllclRvQ1NTUHJvcGVydHkoQW5pbWF0ZWRQcm9wZXJ0eUlECiAgICAgICAg
ICAgICBjc3NQcm9wZXJ0eSA9IENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZpbHRlcjoKLSNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAgICAgICBjc3NQcm9wZXJ0eSA9IENTU1Byb3Bl
cnR5V2Via2l0RmlsdGVyOwotI2Vsc2UKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotI2VuZGlmCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBbmltYXRlZFByb3Bl
cnR5SW52YWxpZDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjU1MCwx
MCArMjUyMyw4IEBAIEFuaW1hdGVkUHJvcGVydHlJRCBSZW5kZXJMYXllckJhY2tpbmc6OmNzc1Rv
R3JhcGhpY3NMYXllclByb3BlcnR5KENTU1Byb3BlcnR5SUQKICAgICAgICAgICAgIHJldHVybiBB
bmltYXRlZFByb3BlcnR5T3BhY2l0eTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91
bmRDb2xvcjoKICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZFByb3BlcnR5QmFja2dyb3VuZENv
bG9yOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEZpbHRlcjoKICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZFByb3BlcnR5V2Via2l0Rmls
dGVyOwotI2VuZGlmCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAvLyBJdCdzIGZpbmUg
aWYgd2Ugc2VlIG90aGVyIGNzcyBwcm9wZXJ0aWVzIGhlcmU7IHRoZXkgYXJlIGp1c3Qgbm90IGFj
Y2VsZXJhdGVkLgogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggY2Y5MDhhYzg1ZGUwN2M3Yjg4ZGNmNWExODM3
YjYzOGQ1MGMzOTQwZi4uYjQwY2UyYTk5ZWZkOWMwOTdhNDk0NGU3ZTFmYWU1YjdjYWYzYjg4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAt
MjMxLDkgKzIzMSw3IEBAIHB1YmxpYzoKICAgICBHcmFwaGljc0xheWVyKiBsYXllckZvclZlcnRp
Y2FsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFy
LmdldCgpOyB9CiAgICAgR3JhcGhpY3NMYXllciogbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSBjb25z
dCB7IHJldHVybiBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyLmdldCgpOyB9CiAKLSNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBjYW5Db21wb3NpdGVGaWx0ZXJzKCkgY29uc3QgeyByZXR1
cm4gbV9jYW5Db21wb3NpdGVGaWx0ZXJzOyB9Ci0jZW5kaWYKIAogICAgIC8vIFJldHVybiBhbiBl
c3RpbWF0ZSBvZiB0aGUgYmFja2luZyBzdG9yZSBhcmVhIChpbiBwaXhlbHMpIGFsbG9jYXRlZCBi
eSB0aGlzIG9iamVjdCdzIEdyYXBoaWNzTGF5ZXJzLgogICAgIGRvdWJsZSBiYWNraW5nU3RvcmVN
ZW1vcnlFc3RpbWF0ZSgpIGNvbnN0OwpAQCAtMjgwLDkgKzI3OCw3IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIHVwZGF0ZU9wYWNpdHkoY29uc3QgUmVuZGVyU3R5bGUmKTsKICAgICB2b2lkIHVwZGF0
ZVRyYW5zZm9ybShjb25zdCBSZW5kZXJTdHlsZSYpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykK
ICAgICB2b2lkIHVwZGF0ZUZpbHRlcnMoY29uc3QgUmVuZGVyU3R5bGUmKTsKLSNlbmRpZgogI2lm
IEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCB1cGRhdGVCbGVuZE1vZGUoY29uc3Qg
UmVuZGVyU3R5bGUmKTsKICNlbmRpZgpAQCAtMzUxLDkgKzM0Nyw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2lzTWFpbkZyYW1lUmVuZGVyVmlld0xheWVyOwogICAgIGJvb2wgbV91c2luZ1RpbGVk
Q2FjaGVMYXllcjsKICAgICBib29sIG1fcmVxdWlyZXNPd25CYWNraW5nU3RvcmU7Ci0jaWYgRU5B
QkxFKENTU19GSUxURVJTKQogICAgIGJvb2wgbV9jYW5Db21wb3NpdGVGaWx0ZXJzOwotI2VuZGlm
CiAgICAgYm9vbCBtX2JhY2tncm91bmRMYXllclBhaW50c0ZpeGVkUm9vdEJhY2tncm91bmQ7CiAK
ICAgICBzdGF0aWMgYm9vbCBtX2NyZWF0aW5nUHJpbWFyeUdyYXBoaWNzTGF5ZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4
IDIwMjlkNjI3MWExOWMwNGYyZDEzM2RjY2Q2NzIyNGMwMTIzYWVkYTAuLmFhZTJmYmIyZWZlMGM5
OTg0MmMxZDcxZGY0MzY0NGM4ZTA3ZWEzZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNDk5LDkgKzI0OTksNyBAQCBi
b29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvckFuaW1hdGlv
bihSZW5kZXJMYXllck1vZGVsT2JqZQogICAgIEFuaW1hdGlvbkNvbnRyb2xsZXImIGFuaW1Db250
cm9sbGVyID0gcmVuZGVyZXIuYW5pbWF0aW9uKCk7CiAgICAgcmV0dXJuIChhbmltQ29udHJvbGxl
ci5pc1J1bm5pbmdBbmltYXRpb25PblJlbmRlcmVyKCZyZW5kZXJlciwgQ1NTUHJvcGVydHlPcGFj
aXR5LCBhY3RpdmVBbmltYXRpb25TdGF0ZSkKICAgICAgICAgICAgICYmIChpbkNvbXBvc2l0aW5n
TW9kZSgpIHx8IChtX2NvbXBvc2l0aW5nVHJpZ2dlcnMgJiBDaHJvbWVDbGllbnQ6OkFuaW1hdGVk
T3BhY2l0eVRyaWdnZXIpKSkKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAgICAgICB8
fCBhbmltQ29udHJvbGxlci5pc1J1bm5pbmdBbmltYXRpb25PblJlbmRlcmVyKCZyZW5kZXJlciwg
Q1NTUHJvcGVydHlXZWJraXRGaWx0ZXIsIGFjdGl2ZUFuaW1hdGlvblN0YXRlKQotI2VuZGlmIC8v
IENTU19GSUxURVJTCiAgICAgICAgICAgICB8fCBhbmltQ29udHJvbGxlci5pc1J1bm5pbmdBbmlt
YXRpb25PblJlbmRlcmVyKCZyZW5kZXJlciwgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0sIGFj
dGl2ZUFuaW1hdGlvblN0YXRlKTsKIH0KIApAQCAtMjUzNiwxNSArMjUzNCwxMCBAQCBib29sIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvckluZGlyZWN0UmVhc29u
KFJlbmRlckxheWVyTW9kZQogCiBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXND
b21wb3NpdGluZ0ZvckZpbHRlcnMoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYgcmVuZGVyZXIpIGNv
bnN0CiB7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGlmICghKG1fY29tcG9zaXRpbmdU
cmlnZ2VycyAmIENocm9tZUNsaWVudDo6RmlsdGVyVHJpZ2dlcikpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIHJldHVybiByZW5kZXJlci5oYXNGaWx0ZXIoKTsKLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKHJlbmRlcmVyKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAogYm9v
bCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmlzQXN5bmNTY3JvbGxhYmxlU3RpY2t5TGF5ZXIoY29u
c3QgUmVuZGVyTGF5ZXImIGxheWVyLCBjb25zdCBSZW5kZXJMYXllcioqIGVuY2xvc2luZ0FjY2Vs
ZXJhdGVkT3ZlcmZsb3dMYXllcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5jcHAKaW5kZXggZTU5NWRjNmE4MjQ1ZTllOGNiNjAz
ZTEzYjU1ZmRjNjdiMjE1NjNjNy4uOGZiYjQxODNiZDdlM2IwMTNiMWU3ODcwYTIxZjE1YjQyYzE4
OTU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmls
dGVySW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmls
dGVySW5mby5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQogI2luY2x1ZGUgIlJlbmRlckxheWVyRmlsdGVySW5mby5o
IgogCiAjaW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnQuaCIKQEAgLTEzOSw1ICsxMzgsMyBAQCB2
b2lkIFJlbmRlckxheWVyOjpGaWx0ZXJJbmZvOjpyZW1vdmVSZWZlcmVuY2VGaWx0ZXJDbGllbnRz
KCkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKENTU19G
SUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
RmlsdGVySW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVy
SW5mby5oCmluZGV4IDcxZTgwZTNmYjljOTQ5MzllMDAwZmFmNTlkNGVjY2ZmOWJjYmMwYmUuLjI2
NWY3M2YyZWFiMTlhYTk4YzAzZWU5YWNjMTY5ODU5Njk5OWJhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmgKQEAgLTMxLDggKzMxLDYg
QEAKICNpZm5kZWYgUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvX2gKICNkZWZpbmUgUmVuZGVyTGF5ZXJG
aWx0ZXJJbmZvX2gKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLQogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnRDbGllbnQuaCIK
ICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgpAQCAtODksNiArODcsNCBAQCBwcml2YXRlOgogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0K
ICNlbmRpZiAvLyBSZW5kZXJMYXllckZpbHRlckluZm9faApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCmluZGV4IGE5MjkwYmE5NWUz
ZWUyMTYwZmQ5MmFiMjZkMDhkYWM2MGMxZmUwMDkuLmYzMzE2ZWYzYjYwOTQwYzY0MTJkNzg0NDQ4
NTRjMzBhYTk4ZjUxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllck1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKQEAgLTExNyw5ICsxMTcsNyBAQCB2b2lkIFJlbmRlckxh
eWVyTW9kZWxPYmplY3Q6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29u
c3QgUmVuZGVyUwogICAgICAgICAgICAgICAgICAgICB8fCBvbGRTdHlsZS0+aGFzQ2xpcCgpICE9
IG5ld1N0eWxlLmhhc0NsaXAoKQogICAgICAgICAgICAgICAgICAgICB8fCBvbGRTdHlsZS0+b3Bh
Y2l0eSgpICE9IG5ld1N0eWxlLm9wYWNpdHkoKQogICAgICAgICAgICAgICAgICAgICB8fCBvbGRT
dHlsZS0+dHJhbnNmb3JtKCkgIT0gbmV3U3R5bGUudHJhbnNmb3JtKCkKLSNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCiAgICAgICAgICAgICAgICAgICAgIHx8IG9sZFN0eWxlLT5maWx0ZXIoKSAhPSBu
ZXdTdHlsZS5maWx0ZXIoKQotI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg
ICAgICAgICBsYXllcigpLT5yZXBhaW50SW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKICAgICAgICAg
ICAgIH0gZWxzZSBpZiAobmV3U3R5bGUuaGFzVHJhbnNmb3JtKCkgfHwgbmV3U3R5bGUub3BhY2l0
eSgpIDwgMSB8fCBuZXdTdHlsZS5oYXNGaWx0ZXIoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBjZGE4ODFkMmY3ZTQxMjM0ZGZmMzQzZDdjNTA0NDIx
NjZlZjM4OTBjLi4yNDU5ZTUzZTFmMmI2ZmQ2YzdmYmQ4NjkxNzJlMjFhYTM2MzhhYjE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMTIzNSw4ICsxMjM1
LDYgQEAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogUmVuZGVyT2JqZWN0Ojpjb250YWluZXJGb3JS
ZXBhaW50KCkgY29uc3QKICAgICAgICAgICAgICAgICByZXBhaW50Q29udGFpbmVyID0gJmNvbXBM
YXllci0+cmVuZGVyZXIoKTsKICAgICAgICAgfQogICAgIH0KLSAgICAKLSNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCiAgICAgaWYgKHZpZXcoKS5oYXNTb2Z0d2FyZUZpbHRlcnMoKSkgewogICAgICAg
ICBpZiAoUmVuZGVyTGF5ZXIqIHBhcmVudExheWVyID0gZW5jbG9zaW5nTGF5ZXIoKSkgewogICAg
ICAgICAgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ0ZpbHRlckxheWVyID0gcGFyZW50TGF5ZXIt
PmVuY2xvc2luZ0ZpbHRlckxheWVyKCk7CkBAIC0xMjQ0LDcgKzEyNDIsNiBAQCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiBSZW5kZXJPYmplY3Q6OmNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdAog
ICAgICAgICAgICAgICAgIHJldHVybiAmZW5jbG9zaW5nRmlsdGVyTGF5ZXItPnJlbmRlcmVyKCk7
CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKIAogICAgIC8vIElmIHdlIGhhdmUgYSBmbG93IHRo
cmVhZCwgdGhlbiB3ZSBuZWVkIHRvIGRvIGluZGl2aWR1YWwgcmVwYWludHMgd2l0aGluIHRoZSBS
ZW5kZXJSZWdpb25zIGluc3RlYWQuCiAgICAgLy8gUmV0dXJuIHRoZSBmbG93IHRocmVhZCBhcyBh
IHJlcGFpbnQgY29udGFpbmVyIGluIG9yZGVyIHRvIGNyZWF0ZSBhIGNob2tlcG9pbnQgdGhhdCBh
bGxvd3MgdXMgdG8gY2hhbmdlCkBAIC0xMjc2LDEyICsxMjczLDEwIEBAIHZvaWQgUmVuZGVyT2Jq
ZWN0OjpyZXBhaW50VXNpbmdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiAgICAgaWYgKHJlcGFpbnRDb250YWluZXItPmhhc0ZpbHRlcigpICYmIHJlcGFpbnRDb250
YWluZXItPmxheWVyKCkgJiYgcmVwYWludENvbnRhaW5lci0+bGF5ZXIoKS0+cmVxdWlyZXNGdWxs
TGF5ZXJJbWFnZUZvckZpbHRlcnMoKSkgewogICAgICAgICByZXBhaW50Q29udGFpbmVyLT5sYXll
cigpLT5zZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KHIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQotI2VuZGlmCiAKICAgICBSZW5kZXJWaWV3JiB2ID0gdmlldygpOwogICAg
IGlmIChyZXBhaW50Q29udGFpbmVyLT5pc1JlbmRlclZpZXcoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IGI1Y2IxMTMzNDVlZTVjNGQ1NDg2OGU5MTQ1ZGEw
NmIyMGNmNmI0NGYuLjgxNDQ3MzMwMGVhNzdjNmM5M2YyZmQ3ZTZmMjNhZGUyMjNkNTg0YzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTExMCw5ICsxMTAsNyBA
QCBSZW5kZXJWaWV3OjpSZW5kZXJWaWV3KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5k
ZXJTdHlsZT4gc3R5bGUpCiAgICAgLCBtX3JlbmRlclF1b3RlSGVhZCgwKQogICAgICwgbV9yZW5k
ZXJDb3VudGVyQ291bnQoMCkKICAgICAsIG1fc2VsZWN0aW9uV2FzQ2FyZXQoZmFsc2UpCi0jaWYg
RU5BQkxFKENTU19GSUxURVJTKQogICAgICwgbV9oYXNTb2Z0d2FyZUZpbHRlcnMoZmFsc2UpCi0j
ZW5kaWYKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICAsIG1fc2VsZWN0aW9uUmVj
dEdhdGhlcmVyKCp0aGlzKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
aAppbmRleCA0NzY4YzQyZDBkODBhNjA3Nzk2ODk3YWIxYmViZGIyMTg5ZWFjYTQyLi5iYTE3MzVh
YThlNGQ0NTE3MjgxZTA5ZDBlMzMyYTlkNzAwMWFhZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmgKQEAgLTIyMCwxMCArMjIwLDggQEAgcHVibGljOgogICAgIAogICAgIElt
YWdlUXVhbGl0eUNvbnRyb2xsZXImIGltYWdlUXVhbGl0eUNvbnRyb2xsZXIoKTsKIAotI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKICAgICB2b2lkIHNldEhhc1NvZnR3YXJlRmlsdGVycyhib29sIGhh
c1NvZnR3YXJlRmlsdGVycykgeyBtX2hhc1NvZnR3YXJlRmlsdGVycyA9IGhhc1NvZnR3YXJlRmls
dGVyczsgfQogICAgIGJvb2wgaGFzU29mdHdhcmVGaWx0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9o
YXNTb2Z0d2FyZUZpbHRlcnM7IH0KLSNlbmRpZgogCiAgICAgdWludDY0X3QgcmVuZGVyZXJDb3Vu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyZXJDb3VudDsgfQogICAgIHZvaWQgZGlkQ3JlYXRl
UmVuZGVyZXIoKSB7ICsrbV9yZW5kZXJlckNvdW50OyB9CkBAIC0zNjIsOSArMzYwLDcgQEAgcHJp
dmF0ZToKICAgICB1bnNpZ25lZCBtX3JlbmRlckNvdW50ZXJDb3VudDsKIAogICAgIGJvb2wgbV9z
ZWxlY3Rpb25XYXNDYXJldDsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBtX2hh
c1NvZnR3YXJlRmlsdGVyczsKLSNlbmRpZgogCiAgICAgSGFzaFNldDxSZW5kZXJFbGVtZW50Kj4g
bV9yZW5kZXJlcnNXaXRoUGF1c2VkSW1hZ2VBbmltYXRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDQ4ZTIxMGQ5ZDFhZThiOGVl
NzYwYTRiMjRiNTYyZGYzYWJmMmFjMGIuLjc4MzI1ZGIyZGRiMDk3ZWVmNTUzYWNlMzBkNmU1ZTI4
MmFjYjJjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcApAQCAtNjMyLDEwICs2MzIsOCBAQCBib29sIFJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1
aXJlc0xheW91dChjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAg
aWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5oYXNGaWx0ZXJzKCkgIT0gb3RoZXItPnJhcmVOb25J
bmhlcml0ZWREYXRhLT5oYXNGaWx0ZXJzKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlm
CiAKICAgICBjb25zdCBRdW90ZXNEYXRhKiBxdW90ZXNEYXRhQSA9IHJhcmVJbmhlcml0ZWREYXRh
LT5xdW90ZXMuZ2V0KCk7CiAgICAgY29uc3QgUXVvdGVzRGF0YSogcXVvdGVzRGF0YUIgPSBvdGhl
ci0+cmFyZUluaGVyaXRlZERhdGEtPnF1b3Rlcy5nZXQoKTsKQEAgLTY5NiwxMyArNjk0LDExIEBA
IGJvb2wgUmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVpcmVzTGF5ZXJSZXBhaW50KGNvbnN0IFJlbmRl
clN0eWxlKiBvdGhlciwgdW5zaWduZWQmCiAgICAgICAgIC8vIERvbid0IHJldHVybjsga2VlcCBs
b29raW5nIGZvciBhbm90aGVyIGNoYW5nZS4KICAgICB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZpbHRlci5nZXQoKSAhPSBvdGhl
ci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmlsdGVyLmdldCgpCiAgICAgICAgICYmICpyYXJl
Tm9uSW5oZXJpdGVkRGF0YS0+bV9maWx0ZXIuZ2V0KCkgIT0gKm90aGVyLT5yYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9maWx0ZXIuZ2V0KCkpIHsKICAgICAgICAgY2hhbmdlZENvbnRleHRTZW5zaXRp
dmVQcm9wZXJ0aWVzIHw9IENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0eUZpbHRlcjsKICAgICAgICAg
Ly8gRG9uJ3QgcmV0dXJuOyBrZWVwIGxvb2tpbmcgZm9yIGFub3RoZXIgY2hhbmdlLgogICAgIH0K
LSNlbmRpZgogCiAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX21hc2sgIT0gb3RoZXIt
PnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX21hc2sKICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRl
ZERhdGEtPm1fbWFza0JveEltYWdlICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9t
YXNrQm94SW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCmluZGV4IDczNTM3ZWZjZjQ5NjFlNjBiZjUxYWFiN2IxOTcyY2Q3OGRmMDE5MjkuLjI3YmRm
M2ZkOTM5M2ViN2I2ZWEyNjM5NDZiNjEwMTYxOTA2NDEwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVk
ZSAiU3R5bGVCYWNrZ3JvdW5kRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlQm94RGF0YS5oIgogI2lu
Y2x1ZGUgIlN0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5oIgorI2luY2x1ZGUgIlN0eWxl
RmlsdGVyRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlRmxleGlibGVCb3hEYXRhLmgiCiAjaW5jbHVk
ZSAiU3R5bGVNYXJxdWVlRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlTXVsdGlDb2xEYXRhLmgiCkBA
IC03NCwxMCArNzUsNiBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0jaW5jbHVkZSAiU3R5
bGVGaWx0ZXJEYXRhLmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAj
aW5jbHVkZSAiU3R5bGVHcmlkRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlR3JpZEl0ZW1EYXRhLmgi
CkBAIC0xMDcsMTAgKzEwNCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlu
bGluZSBib29sIGNvbXBhcmVFcXVhbChjb25zdCBUJiB0LCBjb25zdCBVJiB1CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIGNsYXNzIEZpbHRlck9wZXJh
dGlvbnM7Ci0jZW5kaWYKLQogY2xhc3MgQm9yZGVyRGF0YTsKIGNsYXNzIENvdW50ZXJDb250ZW50
OwogY2xhc3MgQ3Vyc29yTGlzdDsKQEAgLTU2OCwxMCArNTYyLDggQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gaW1hZ2VPdXRzZXRzKG1hc2tCb3hJbWFnZSgpKTsKICAgICB9CiAKLSNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBoYXNGaWx0ZXJPdXRzZXRzKCkgY29uc3QgeyByZXR1
cm4gaGFzRmlsdGVyKCkgJiYgZmlsdGVyKCkuaGFzT3V0c2V0cygpOyB9CiAgICAgRmlsdGVyT3V0
c2V0cyBmaWx0ZXJPdXRzZXRzKCkgY29uc3QgeyByZXR1cm4gaGFzRmlsdGVyKCkgPyBmaWx0ZXIo
KS5vdXRzZXRzKCkgOiBGaWx0ZXJPdXRzZXRzKCk7IH0KLSNlbmRpZgogCiAgICAgT3JkZXIgcnRs
T3JkZXJpbmcoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxPcmRlcj4oaW5oZXJpdGVkX2Zs
YWdzLm1fcnRsT3JkZXJpbmcpOyB9CiAgICAgdm9pZCBzZXRSVExPcmRlcmluZyhPcmRlciBvKSB7
IGluaGVyaXRlZF9mbGFncy5tX3J0bE9yZGVyaW5nID0gbzsgfQpAQCAtMTEzNCwxMyArMTEyNiw5
IEBAIHB1YmxpYzoKICAgICAKICAgICBFU3BlYWsgc3BlYWsoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxFU3BlYWs+KHJhcmVJbmhlcml0ZWREYXRhLT5zcGVhayk7IH0KIAotI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKICAgICBGaWx0ZXJPcGVyYXRpb25zJiBtdXRhYmxlRmlsdGVyKCkgeyBy
ZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZmlsdGVyLmFjY2VzcygpLT5t
X29wZXJhdGlvbnM7IH0KICAgICBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXIoKSBjb25z
dCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9maWx0ZXItPm1fb3BlcmF0aW9uczsg
fQogICAgIGJvb2wgaGFzRmlsdGVyKCkgY29uc3QgeyByZXR1cm4gIXJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX2ZpbHRlci0+bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKS5pc0VtcHR5KCk7IH0KLSNl
bHNlCi0gICAgYm9vbCBoYXNGaWx0ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotI2VuZGlm
CiAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIEJsZW5kTW9kZSBibGVuZE1vZGUo
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxCbGVuZE1vZGU+KHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX2VmZmVjdGl2ZUJsZW5kTW9kZSk7IH0KQEAgLTE1NjksOSArMTU1Nyw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgc2V0UnVieVBvc2l0aW9uKFJ1YnlQb3NpdGlvbiBwb3NpdGlvbikgeyBT
RVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX3J1YnlQb3NpdGlvbiwgcG9zaXRpb24pOyB9CiAK
LSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdm9pZCBzZXRGaWx0ZXIoY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYgb3BzKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCkt
Pm1fZmlsdGVyLCBtX29wZXJhdGlvbnMsIG9wcyk7IH0KLSNlbmRpZgogCiAgICAgdm9pZCBzZXRU
YWJTaXplKHVuc2lnbmVkIHNpemUpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgbV90YWJT
aXplLCBzaXplKTsgfQogCkBAIC0yMDA5LDkgKzE5OTUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4mIGluaXRpYWxEYXNoYm9hcmRSZWdp
b25zKCk7CiAgICAgc3RhdGljIGNvbnN0IFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4mIG5v
bmVEYXNoYm9hcmRSZWdpb25zKCk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAg
ICAgc3RhdGljIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGluaXRpYWxGaWx0ZXIoKSB7IERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGaWx0ZXJPcGVyYXRpb25zLCBvcHMsICgpKTsgcmV0
dXJuIG9wczsgfQotI2VuZGlmCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKICAgICBzdGF0
aWMgQmxlbmRNb2RlIGluaXRpYWxCbGVuZE1vZGUoKSB7IHJldHVybiBCbGVuZE1vZGVOb3JtYWw7
IH0KICAgICBzdGF0aWMgSXNvbGF0aW9uIGluaXRpYWxJc29sYXRpb24oKSB7IHJldHVybiBJc29s
YXRpb25BdXRvOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVGaWx0ZXJEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUZpbHRlckRhdGEuY3BwCmluZGV4IDc3ZDNlZmE0MDk4M2E1M2Q2ZDg0NjZlNjhlYmM4NGQ3MTk3
YTlkZmMuLjcxY2ZmNjIyOGRkMTI2MzMzMzg3NzhlNjIyYzBmYzIwYWIwZDJlZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuY3BwCkBA
IC0yNyw5ICsyNyw2IEBACiAjaW5jbHVkZSAiU3R5bGVGaWx0ZXJEYXRhLmgiCiAKICNpbmNsdWRl
ICJGRUdhdXNzaWFuQmx1ci5oIgotCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQotCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsNSArNTMsMyBA
QCBib29sIFN0eWxlRmlsdGVyRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZUZpbHRlckRhdGEm
IG8pIGNvbnN0CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJM
RShDU1NfRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUZpbHRlckRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUZpbHRlckRhdGEuaAppbmRleCAyMGVjODk4NjZlZWZjNjkzMzAwNjVhMmE0ZTk4MWIzZjcxYjYy
YzQ1Li5lOTg0NDYxYTJiOGU5MmYzZTEwMTE5ZmZiMDY1NDEyMDEzYjA5Zjk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmlsdGVyRGF0YS5oCkBAIC0yNiw4
ICsyNiw2IEBACiAjaWZuZGVmIFN0eWxlRmlsdGVyRGF0YV9oCiAjZGVmaW5lIFN0eWxlRmlsdGVy
RGF0YV9oCiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0KICNpbmNsdWRlICJGaWx0ZXJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgpAQCAtNTQsNiArNTIsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0KICNlbmRpZiAvLyBTdHls
ZUZpbHRlckRhdGFfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IDNhMjQwNjZjNDk0Y2E2
MjE3NGExOGZlMzkxMDMwNzhmNWE4MjQxMTQuLjJhMjYyMTZiMzI4ZTZiYWEyMTAzMDFkYWQzOTIw
ZjcyNjRjYjI1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTQ3LDkgKzQ3LDcgQEAg
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAg
ICAgLCBtX21hcnF1ZWUoU3R5bGVNYXJxdWVlRGF0YTo6Y3JlYXRlKCkpCiAgICAgLCBtX211bHRp
Q29sKFN0eWxlTXVsdGlDb2xEYXRhOjpjcmVhdGUoKSkKICAgICAsIG1fdHJhbnNmb3JtKFN0eWxl
VHJhbnNmb3JtRGF0YTo6Y3JlYXRlKCkpCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgICwg
bV9maWx0ZXIoU3R5bGVGaWx0ZXJEYXRhOjpjcmVhdGUoKSkKLSNlbmRpZgogI2lmIEVOQUJMRShD
U1NfR1JJRF9MQVlPVVQpCiAgICAgLCBtX2dyaWQoU3R5bGVHcmlkRGF0YTo6Y3JlYXRlKCkpCiAg
ICAgLCBtX2dyaWRJdGVtKFN0eWxlR3JpZEl0ZW1EYXRhOjpjcmVhdGUoKSkKQEAgLTExOSw5ICsx
MTcsNyBAQCBpbmxpbmUgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25JbgogICAgICwgbV9tYXJxdWVlKG8ubV9tYXJx
dWVlKQogICAgICwgbV9tdWx0aUNvbChvLm1fbXVsdGlDb2wpCiAgICAgLCBtX3RyYW5zZm9ybShv
Lm1fdHJhbnNmb3JtKQotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAsIG1fZmlsdGVyKG8u
bV9maWx0ZXIpCi0jZW5kaWYKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgICwgbV9n
cmlkKG8ubV9ncmlkKQogICAgICwgbV9ncmlkSXRlbShvLm1fZ3JpZEl0ZW0pCkBAIC0yMTYsOSAr
MjEyLDcgQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0
IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGMKICAgICAgICAgJiYgbV9tYXJxdWVlID09
IG8ubV9tYXJxdWVlCiAgICAgICAgICYmIG1fbXVsdGlDb2wgPT0gby5tX211bHRpQ29sCiAgICAg
ICAgICYmIG1fdHJhbnNmb3JtID09IG8ubV90cmFuc2Zvcm0KLSNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiAgICAgICAgICYmIG1fZmlsdGVyID09IG8ubV9maWx0ZXIKLSNlbmRpZgogI2lmIEVOQUJM
RShDU1NfR1JJRF9MQVlPVVQpCiAgICAgICAgICYmIG1fZ3JpZCA9PSBvLm1fZ3JpZAogICAgICAg
ICAmJiBtX2dyaWRJdGVtID09IG8ubV9ncmlkSXRlbQpAQCAtMzQ4LDExICszNDIsNyBAQCBib29s
IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OnRyYW5zaXRpb25EYXRhRXF1aXZhbGVudChjb25z
dCBTdHlsZVJhcmVOb25JbmhlcgogCiBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Omhh
c0ZpbHRlcnMoKSBjb25zdAogewotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICByZXR1cm4g
bV9maWx0ZXIuZ2V0KCkgJiYgIW1fZmlsdGVyLT5tX29wZXJhdGlvbnMuaXNFbXB0eSgpOwotI2Vs
c2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggZjAyNTRjMDk4MmY2YzllNzA4OWE1ODc4ZWNmOTNl
MTczNjA4NjgxNC4uZjk1YTM4ZTZkOWUwYjkzYzQzN2MzMjFjZmRkMmE3N2ZkMjQ1MDEyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oCkBAIC00Myw5ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEFuaW1hdGlvbkxpc3Q7CiBjbGFzcyBTaGFkb3dEYXRhOwogY2xhc3MgU3R5bGVEZXBy
ZWNhdGVkRmxleGlibGVCb3hEYXRhOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIGNsYXNzIFN0
eWxlRmlsdGVyRGF0YTsKLSNlbmRpZgogY2xhc3MgU3R5bGVGbGV4aWJsZUJveERhdGE7CiAjaWYg
RU5BQkxFKENTU19HUklEX0xBWU9VVCkKIGNsYXNzIFN0eWxlR3JpZERhdGE7CkBAIC0xMjAsMTAg
KzExOCw3IEBAIHB1YmxpYzoKICAgICBEYXRhUmVmPFN0eWxlTWFycXVlZURhdGE+IG1fbWFycXVl
ZTsgLy8gTWFycXVlZSBwcm9wZXJ0aWVzCiAgICAgRGF0YVJlZjxTdHlsZU11bHRpQ29sRGF0YT4g
bV9tdWx0aUNvbDsgLy8gIENTUzMgbXVsdGljb2wgcHJvcGVydGllcwogICAgIERhdGFSZWY8U3R5
bGVUcmFuc2Zvcm1EYXRhPiBtX3RyYW5zZm9ybTsgLy8gVHJhbnNmb3JtIHByb3BlcnRpZXMgKHJv
dGF0ZSwgc2NhbGUsIHNrZXcsIGV0Yy4pCi0KLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAg
RGF0YVJlZjxTdHlsZUZpbHRlckRhdGE+IG1fZmlsdGVyOyAvLyBGaWx0ZXIgb3BlcmF0aW9ucyAo
dXJsLCBzZXBpYSwgYmx1ciwgZXRjLikKLSNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19HUklEX0xB
WU9VVCkKICAgICBEYXRhUmVmPFN0eWxlR3JpZERhdGE+IG1fZ3JpZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5l
ci5jcHAKaW5kZXggNWIyMzNjODNlMjA1OTljNWIwODVkNjZiMjU4ZmNlNDEzMzk4YTg1ZS4uYzFh
NGI1NTQ0NmE5NjYzYzcxNTc5YjQxMGNkNzNmYTI4NjM5MTE2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5l
ci5jcHAKQEAgLTExNSwxMCArMTE1LDggQEAgdm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5l
cjo6bWFya0FsbENsaWVudHNGb3JJbnZhbGlkYXRpb24oSW52YWxpZGF0aW9uTW9kZQogCiB2b2lk
IFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyOjptYXJrQWxsQ2xpZW50TGF5ZXJzRm9ySW52YWxp
ZGF0aW9uKCkKIHsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgZm9yIChhdXRvKiBjbGll
bnRMYXllciA6IG1fY2xpZW50TGF5ZXJzKQogICAgICAgICBjbGllbnRMYXllci0+ZmlsdGVyTmVl
ZHNSZXBhaW50KCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5l
cjo6bWFya0NsaWVudEZvckludmFsaWRhdGlvbihSZW5kZXJPYmplY3QmIGNsaWVudCwgSW52YWxp
ZGF0aW9uTW9kZSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NGYxYmZhYTNmZTcwNWY2ZDM5
YzhlNDM4MDU0NDE5MWRkNTRlNTA5Li43MDViYWFmZDE1NWMwNGJlZjU4ZWJjNmUzMzVlOTgwZTBj
OTAyMmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNTIsNyArNTIsNiBAQCBFTkFCTEVfQ1NQX05F
WFQgPSA7CiBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLID0gRU5BQkxFX0NTU19CT1hf
REVDT1JBVElPTl9CUkVBSzsKIEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcgPSBFTkFCTEVfQ1NTX0NP
TVBPU0lUSU5HOwogRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTiA9IDsKLUVOQUJMRV9DU1Nf
RklMVEVSUyA9IEVOQUJMRV9DU1NfRklMVEVSUzsKIEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQgPSBF
TkFCTEVfQ1NTX0dSSURfTEFZT1VUOwogRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTiA9IDsK
IEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiA9IDsKQEAgLTI3Miw0ICsyNzEsNCBAQCBFTkFC
TEVfTExJTlRfQ19MT09QID0gOwogCiBFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElD
ID0gRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQzsKIAotRkVBVFVSRV9ERUZJTkVT
ID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMp
ICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVZGX0NB
UFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRI
KSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVO
QUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19C
T1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9D
U1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1Nf
R1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NT
X0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0VM
RUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTM19DT05ESVRJ
T05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9C
UkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVf
SEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VM
RU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxF
TUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ET000X0VWRU5UU19D
T05TVFJVQ1RPUikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURf
TUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFE
X0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9E
T01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJW
SUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9O
VEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAk
KEVOQUJMRV9JTlNQRUNUT1IpICQoRU5BQkxFX0lPU19BSVJQTEFZKSAkKEVOQUJMRV9JT1NfR0VT
VFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX0lPU19U
T1VDSF9FVkVOVFMpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJM
RV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykg
JChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxF
X0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNf
U0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1Mp
ICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9D
VVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9O
QVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVf
UERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9NSVNFUykg
JChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAk
KEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxF
X1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5B
QkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfQ1NT
X1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFU
QUJBU0UpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFC
TEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQp
ICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJM
RV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9W
SURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5B
QkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVE
SU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9Q
SUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9O
UykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQp
ICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1F
VElDKSAkKEZFQVRVUkVfREVGSU5FU18kKFBMQVRGT1JNX05BTUUpKTsKK0ZFQVRVUkVfREVGSU5F
UyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFT
KSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FWRl9D
QVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFU
SCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChF
TkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1Nf
Qk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVf
Q1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxF
X0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQo
RU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFC
TEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVf
Q1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09S
X1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFT
SEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFf
VFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNF
X09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVf
RU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJ
TFRFUlMpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJ
KSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxF
X0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykg
JChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMp
ICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1IpICQo
RU5BQkxFX0lPU19BSVJQTEFZKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxF
X0lPU19URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxF
X0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9O
UykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9B
VURJTykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5B
QkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJ
QV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1F
TlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxF
X05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5D
WSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFC
TEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VW
RU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFC
TEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQo
RU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAk
KEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJM
RV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlRM
RV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9E
RVRFQ1RJT04pICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJ
WklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcp
ICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9f
VFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVE
SUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBM
QVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVOQUJM
RV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJChFTkFCTEVfWEhSX1RJTUVP
VVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0xMSU5UX0NfTE9P
UCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKSAkKEZFQVRVUkVfREVGSU5F
U18kKFBMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODRmMWJmYWEzZmU3MDVmNmQzOWM4
ZTQzODA1NDQxOTFkZDU0ZTUwOS4uNzA1YmFhZmQxNTVjMDRiZWY1OGViYzZlMzM1ZTk4MGUwYzkw
MjJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKQEAgLTUyLDcgKzUyLDYgQEAgRU5BQkxFX0NTUF9ORVhUID0gOwog
RU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyA9IEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJ
T05fQlJFQUs7CiBFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HID0gRU5BQkxFX0NTU19DT01QT1NJVElO
RzsKIEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04gPSA7Ci1FTkFCTEVfQ1NTX0ZJTFRFUlMg
PSBFTkFCTEVfQ1NTX0ZJTFRFUlM7CiBFTkFCTEVfQ1NTX0dSSURfTEFZT1VUID0gRU5BQkxFX0NT
U19HUklEX0xBWU9VVDsKIEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04gPSA7CiBFTkFCTEVf
Q1NTX0lNQUdFX1JFU09MVVRJT04gPSA7CkBAIC0yNzIsNCArMjcxLDQgQEAgRU5BQkxFX0xMSU5U
X0NfTE9PUCA9IDsKIAogRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQyA9IEVOQUJM
RV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUM7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5B
QkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJM
RV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykg
JChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFC
TEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09O
VEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09S
QVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklD
RV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURfTEFZ
T1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9S
RVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19M
RVZFTDQpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVM
RVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQo
RU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIp
ICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAk
KEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQo
RU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNU
T1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1Yy
KSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNB
VEVEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVS
X1RIUk9UVExJTkcpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VSVklDRV9DT05U
Uk9MUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xP
UikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVf
SU5TUEVDVE9SKSAkKEVOQUJMRV9JT1NfQUlSUExBWSkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZF
TlRTKSAkKEVOQUJMRV9JT1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZF
TlRTKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZ
X05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxF
X0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BS
RUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1ND
QUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9S
X0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9Q
TFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxF
X1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRU1PVEVf
SU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SVUJC
RVJfQkFORElORykgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX0NTU19TQ1JPTExf
U05BUCkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAk
KEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQ
SE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJM
RV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hf
SUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQo
RU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9WSUVX
X01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVO
QUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfUElDVFVSRV9T
SVpFUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICQoRU5B
QkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJM
RV9MTElOVF9DX0xPT1ApICQoRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykgJChG
RUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVO
QUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFC
TEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMp
ICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5B
QkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NP
TlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNP
UkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJ
Q0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1B
R0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9D
U1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19T
SEFQRVMpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVY
VCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklM
SVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9T
VVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVS
X0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRF
RF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTKSAk
KEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFC
TEVfR0FNRVBBRCkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HRU9MT0NB
VElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxF
X0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJM
RV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQ
RV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxP
Q0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9J
T1NfQUlSUExBWSkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVEVY
VF9BVVRPU0laSU5HKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MRUdBQ1lf
Q1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5B
QkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQo
RU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRI
TUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNF
KSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVO
QUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FU
T1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5B
QkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5U
RVJfTE9DSykgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQo
RU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9S
RVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVf
U0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfU1BFRUNI
X1NZTlRIRVNJUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRP
KSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9O
KSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQo
RU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJM
RV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAk
KEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVO
QUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVO
QUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfUElDVFVSRV9TSVpFUykgJChFTkFCTEVfV0VCX1RJ
TUlORykgJChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVO
QUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9MTElOVF9DX0xPT1ApICQoRU5B
QkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykgJChGRUFUVVJFX0RFRklORVNfJChQTEFU
Rk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0Fy
Z3VtZW50Q29kZXJzLmNwcAppbmRleCA1NGFjZTU5NjFhNjRhZTVkOWMyMDg5MjI3ZGU2ZmJmNDUx
ODk5ZWRkLi5mNzI5ZjVhNzhiMTE2YTVlYzVjMmUxNjg4ODdjNDk2NjY5NjNjMTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0FuaW1hdGlvbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvQ29sb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsdGVyT3BlcmF0aW9ucy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRmxvYXRQb2ludDNELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xh
eWVyQW5pbWF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JZGVudGl0eVRyYW5zZm9ybU9wZXJh
dGlvbi5oPgpAQCAtNTAsMTAgKzUxLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1RyYW5zZm9ybWF0
aW9uTWF0cml4Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRp
b24uaD4KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRl
ck9wZXJhdGlvbnMuaD4KLSNlbmRpZgotCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAjaW5j
bHVkZSA8V2ViQ29yZS9HcmFwaGljc1N1cmZhY2UuaD4KICNlbmRpZgpAQCAtNjMsNyArNjAsNiBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBuYW1lc3BhY2UgSVBDIHsKIAotI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRp
b25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6Rmls
dGVyT3BlcmF0aW9ucyYgZmlsdGVycykKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVp
bnQzMl90PihmaWx0ZXJzLnNpemUoKSk7CkBAIC0xNzEsNyArMTY3LDYgQEAgYm9vbCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLAogCiAgICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKIAogdm9pZCBBcmd1bWVu
dENvZGVyPFRyYW5zZm9ybU9wZXJhdGlvbnM+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB0cmFuc2Zvcm1PcGVyYXRpb25zKQogewpA
QCAtNDQ2LDExICs0NDEsOSBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8R3JhcGhpY3NMYXllckFuaW1h
dGlvbj46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbgogICAgICAgICBjYXNl
IEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm06CiAgICAgICAgICAgICBlbmNvZGVyIDw8
IHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlJj4odmFsdWUpLnZhbHVl
KCk7CiAgICAgICAgICAgICBicmVhazsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAg
IGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZpbHRlcjoKICAgICAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8Y29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUmPih2YWx1ZSkudmFsdWUo
KTsKICAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNTM0LDcgKzUyNyw2IEBAIGJvb2wgQXJndW1lbnRD
b2RlcjxHcmFwaGljc0xheWVyQW5pbWF0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgR3JhCiAgICAgICAgICAgICBrZXlmcmFtZXMuaW5zZXJ0KFRyYW5zZm9ybUFuaW1hdGlv
blZhbHVlOjpjcmVhdGUoa2V5VGltZSwgdHJhbnNmb3JtLCB0aW1pbmdGdW5jdGlvbi5nZXQoKSkp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZpbHRlcjogewogICAgICAgICAg
ICAgRmlsdGVyT3BlcmF0aW9ucyBmaWx0ZXI7CiAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGZpbHRlcikpCkBAIC01NDIsNyArNTM0LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPEdyYXBo
aWNzTGF5ZXJBbmltYXRpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBHcmEK
ICAgICAgICAgICAgIGtleWZyYW1lcy5pbnNlcnQoRmlsdGVyQW5pbWF0aW9uVmFsdWU6OmNyZWF0
ZShrZXlUaW1lLCBmaWx0ZXIsIHRpbWluZ0Z1bmN0aW9uLmdldCgpKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQotI2VuZGlmCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQpAQCAtNjU3LDEwICs2NDgsOCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBl
bmNvZAogICAgIGlmIChzdGF0ZS5kZWJ1Z0JvcmRlcldpZHRoQ2hhbmdlZCkKICAgICAgICAgZW5j
b2RlciA8PCBzdGF0ZS5kZWJ1Z0JvcmRlcldpZHRoOwogCi0jaWYgRU5BQkxFKENTU19GSUxURVJT
KQogICAgIGlmIChzdGF0ZS5maWx0ZXJzQ2hhbmdlZCkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0
ZS5maWx0ZXJzOwotI2VuZGlmCiAKICAgICBpZiAoc3RhdGUuYW5pbWF0aW9uc0NoYW5nZWQpCiAg
ICAgICAgIGVuY29kZXIgPDwgc3RhdGUuYW5pbWF0aW9uczsKQEAgLTc0MywxMCArNzMyLDggQEAg
Ym9vbCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlPjo6ZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYgZGVjb2QKICAgICBpZiAoc3RhdGUuZGVidWdCb3JkZXJXaWR0aENo
YW5nZWQgJiYgIWRlY29kZXIuZGVjb2RlKHN0YXRlLmRlYnVnQm9yZGVyV2lkdGgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYgKHN0YXRl
LmZpbHRlcnNDaGFuZ2VkICYmICFkZWNvZGVyLmRlY29kZShzdGF0ZS5maWx0ZXJzKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiAKICAgICBpZiAoc3RhdGUuYW5pbWF0aW9uc0NoYW5n
ZWQgJiYgIWRlY29kZXIuZGVjb2RlKHN0YXRlLmFuaW1hdGlvbnMpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENv
ZGVycy5oCmluZGV4IGVkYzRjMzhmM2UwOTgyYjQ1ZmFhYmQ5Y2I0OGZhMDJlZGJkNmUxYjcuLmFm
M2FiZWZkMzA1MzA1Y2NmOGU3YmExMTJjZThjYjRhOGNmZGU2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NB
cmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCkBAIC00NCw5ICs0NCw3
IEBAIGNsYXNzIFRyYW5zZm9ybWF0aW9uTWF0cml4OwogY2xhc3MgVHJhbnNmb3JtT3BlcmF0aW9u
czsKIHN0cnVjdCBMZW5ndGg7CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiBjbGFzcyBGaWx0
ZXJPcGVyYXRpb25zOwotI2VuZGlmCiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKIHN0cnVj
dCBHcmFwaGljc1N1cmZhY2VUb2tlbjsKQEAgLTU1LDEyICs1MywxMCBAQCBzdHJ1Y3QgR3JhcGhp
Y3NTdXJmYWNlVG9rZW47CiAKIG5hbWVzcGFjZSBJUEMgewogCi0jaWYgRU5BQkxFKENTU19GSUxU
RVJTKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVy
YXRpb25zPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwogfTsKLSNlbmRpZgog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJh
dGlvbnM+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0aW9ucyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAzNTk5MmU1YmI0MzBmNjg1ZDE4NmNk
ZTQ4ZWEwODUwMGM1YmNjZWI1Li5iYTczYWIzMDc1ZGEzZmJkZmJjYzAzYjllMDA2ODkzZTVlMTZh
MTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcApAQCAtMTU3Niw3ICsxNTc2LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFN0aWNreVBvc2l0
aW9uVmlld3BvcnRDb25zdHJhaW50cz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGQKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykgJiYgIVVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKKyNpZiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogdm9pZCBBcmd1
bWVudENvZGVyPEZpbHRlck9wZXJhdGlvbj46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IEZpbHRlck9wZXJhdGlvbiYgZmlsdGVyKQogewogICAgIGVuY29kZXIuZW5jb2Rl
RW51bShmaWx0ZXIudHlwZSgpKTsKQEAgLTE3MDcsNyArMTcwNyw3IEBAIGJvb2wgQXJndW1lbnRD
b2RlcjxGaWx0ZXJPcGVyYXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
RmlsdGVyT3BlCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjZW5kaWYgLy8gIVVTRShDT09S
RElOQVRFRF9HUkFQSElDUykKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogdm9pZCBB
cmd1bWVudENvZGVyPElEQkRhdGFiYXNlTWV0YWRhdGE+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJiBtZXRhZGF0YSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAxYmVhMGQxYmQ3
OWI1Mjk3ZDQzNTRlMjM4NDIxNTBlOWJkYmRlYjkyLi45Yzc2YWM2ZTE1ZDA4YWI3NDJiZDc0Nzhm
ZThjMTBhYzQzYTRlMTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCkBAIC0zNzQsNyArMzc0LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM+IHsKICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6U3RpY2t5UG9z
aXRpb25WaWV3cG9ydENvbnN0cmFpbnRzJik7CiB9OwogCi0jaWYgRU5BQkxFKENTU19GSUxURVJT
KSAmJiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmICFVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1MpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9w
ZXJhdGlvbnM+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJl
bW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNz
TGF5ZXJDQVJlbW90ZS5jcHAKaW5kZXggZjQ0ODA5Mzg0ZjNjNmJiNWU0ZDA3NzgxNDUzN2NiYzVi
NTAzYjM5Zi4uZTM1Nzc1Njc3ZDUxYTNmMzdjMjc0YjNhNDRkMTBkZjhhYzU3NzU0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVy
Q0FSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
R3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcApAQCAtMzYsMTIgKzM2LDEwIEBAIEdyYXBoaWNzTGF5
ZXJDQVJlbW90ZTo6fkdyYXBoaWNzTGF5ZXJDQVJlbW90ZSgpCiB7CiB9CiAKLSNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiBib29sIEdyYXBoaWNzTGF5ZXJDQVJlbW90ZTo6ZmlsdGVyc0NhbkJlQ29t
cG9zaXRlZChjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogewogICAgIHJldHVybiBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmZpbHRlcnNDYW5CZUNvbXBvc2l0ZWQoZmlsdGVycyk7CiB9
Ci0jZW5kaWYKIAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IEdyYXBoaWNzTGF5ZXJDQVJl
bW90ZTo6Y3JlYXRlUGxhdGZvcm1DQUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIGxh
eWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3Rl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJD
QVJlbW90ZS5oCmluZGV4IGM4Nzg1MzRmM2RlN2Y5NWVmYTNlMWIzOTIxNjU5NjAyMTU0NjdjZjIu
LjhhNzNmOGNjZmQxZjNiZWVjNDg3YmFjZTVlODczYmU5NjcyYzE5MzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3Rl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xh
eWVyQ0FSZW1vdGUuaApAQCAtNDIsMTAgKzQyLDggQEAgcHVibGljOgogICAgIH0KIAogICAgIHZp
cnR1YWwgfkdyYXBoaWNzTGF5ZXJDQVJlbW90ZSgpOwotICAgIAotI2lmIEVOQUJMRShDU1NfRklM
VEVSUykKKwogICAgIHZpcnR1YWwgYm9vbCBmaWx0ZXJzQ2FuQmVDb21wb3NpdGVkKGNvbnN0IFdl
YkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpIG92ZXJyaWRlOwotI2VuZGlmCiAKIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzR3JhcGhpY3NMYXllckNBUmVtb3RlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUu
aAppbmRleCBmN2M1NDk5ZjFiMjkyYzdlZDIxOTU4NmY1MDJiZmM4ZDM5ODAzZmY4Li45MmViZmZk
OTNmODgxODFiZDllY2QwZTFjNDBmZDcxM2I0Y2E3NDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGUuaApAQCAtOTEsMTggKzkxLDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50M0QmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0
IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAg
IHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9u
KiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7Ci0jZW5kaWYKICAg
ICB2aXJ0dWFsIHZvaWQgY29weUZyb21WYWx1ZUZyb20oY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1D
QUFuaW1hdGlvbiopIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoZmxv
YXQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFRv
VmFsdWUoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKLSNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2Vi
Q29yZTo6RmlsdGVyT3BlcmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkg
b3ZlcnJpZGU7Ci0jZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgY29weVRvVmFsdWVGcm9tKGNvbnN0
IFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKIAogICAgIC8vIEtleWZy
YW1lLWFuaW1hdGlvbiBwcm9wZXJ0aWVzLgpAQCAtMTEwLDkgKzEwNiw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUcmFuc2Zvcm1h
dGlvbk1hdHJpeD4mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFBvaW50M0Q+Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+Jikgb3ZlcnJpZGU7Ci0j
aWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3Qg
VmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb24+PiYsIGludCBpbnRlcm5hbEZp
bHRlclByb3BlcnR5SW5kZXgpIG92ZXJyaWRlOwotI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGNv
cHlWYWx1ZXNGcm9tKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlk
ZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+Jikg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KaW5kZXggMTZiNDFi
MGI0ZWUxZDcyNDMzYmIzYmU3ZTdjMWQ5OTA4Y2E5N2Q3NS4uNTg2MDRkYWZjMmM4MmVlYzg4ZmZm
OWE3NzNmNzFkZGQxNTVmMzViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5t
bQpAQCAtNDgyLDcgKzQ4Miw2IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0
RnJvbVZhbHVlKGNvbnN0IENvbG9yJiB2YWx1ZSkKICAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVz
WzBdID0gS2V5ZnJhbWVWYWx1ZSh2YWx1ZSk7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldEZyb21WYWx1ZShjb25zdCBGaWx0
ZXJPcGVyYXRpb24qIG9wZXJhdGlvbiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkK
IHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQpAQCAtNDkxLDcgKzQ5MCw2IEBA
IHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0RnJvbVZhbHVlKGNvbnN0IEZpbHRl
ck9wZXJhdGlvbiogb3BlcmF0aW9uLCBpCiAgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcy5yZXNp
emUoMik7CiAgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlc1swXSA9IEtleWZyYW1lVmFsdWUob3Bl
cmF0aW9uLT5jbG9uZSgpKTsKIH0KLSNlbmRpZgogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGU6OmNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVl
KQogewpAQCAtNTQwLDcgKzUzOCw2IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6
c2V0VG9WYWx1ZShjb25zdCBDb2xvciYgdmFsdWUpCiAgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVl
c1sxXSA9IEtleWZyYW1lVmFsdWUodmFsdWUpOwogfQogCi0jaWYgRU5BQkxFKENTU19GSUxURVJT
KQogdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUb1ZhbHVlKGNvbnN0IEZpbHRl
ck9wZXJhdGlvbiogb3BlcmF0aW9uLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KQog
ewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCkBAIC01NTEsNyArNTQ4LDYgQEAg
dm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUb1ZhbHVlKGNvbnN0IEZpbHRlck9w
ZXJhdGlvbiogb3BlcmF0aW9uLCBpbnQKICAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzLnJlc2l6
ZSgyKTsKICAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzWzFdID0gS2V5ZnJhbWVWYWx1ZShvcGVy
YXRpb24tPmNsb25lKCkpOwogfQotI2VuZGlmCiAKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJl
bW90ZTo6Y29weVRvVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQog
ewpAQCAtNjIwLDcgKzYxNiw2IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0
VmFsdWVzKGNvbnN0IFZlY3RvcjxDb2xvcj4mIHZhbHVlcykKICAgICBtX3Byb3BlcnRpZXMua2V5
VmFsdWVzID0gV1RGOjptb3ZlKGtleWZyYW1lcyk7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFZhbHVlcyhjb25zdCBWZWN0
b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiB2YWx1ZXMsIGludCBpbnRlcm5hbEZpbHRlclBy
b3BlcnR5SW5kZXgpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGludGVybmFsRmlsdGVyUHJvcGVydHlJ
bmRleCk7CkBAIC02MzYsNyArNjMxLDYgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
OjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+PiYKICAgICAK
ICAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzID0gV1RGOjptb3ZlKGtleWZyYW1lcyk7CiB9Ci0j
ZW5kaWYKIAogdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5VmFsdWVzRnJvbShj
b25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVt
b3RlLmNwcAppbmRleCA1ODI3YTg4NzZhOTFkNDlmNzIwZDc1MTYyN2QwMGQxNGVlM2MzNzQwLi41
NTgzMWYzMDE3MjhjMjJlZmZhYmI0MmI2MzkwYTJiNDdjZDJmMjA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUuY3BwCkBAIC0xMzIsMTAgKzEzMiw4IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVy
UmVtb3RlOjp1cGRhdGVDbG9uZWRMYXllclByb3BlcnRpZXMoUGxhdGZvcm1DQUxheWVyUmVtb3Rl
JiBjCiAgICAgY2xvbmUuc2V0T3BhcXVlKGlzT3BhcXVlKCkpOwogICAgIGNsb25lLnNldEJhY2tn
cm91bmRDb2xvcihiYWNrZ3JvdW5kQ29sb3IoKSk7CiAgICAgY2xvbmUuc2V0Q29udGVudHNTY2Fs
ZShjb250ZW50c1NjYWxlKCkpOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBpZiAobV9w
cm9wZXJ0aWVzLmZpbHRlcnMpCiAgICAgICAgIGNsb25lLmNvcHlGaWx0ZXJzRnJvbSh0aGlzKTsK
LSNlbmRpZgogICAgIGNsb25lLnVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UoY3VzdG9tQXBwZWFyYW5j
ZSgpKTsKIH0KIApAQCAtNTk4LDcgKzU5Niw2IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3Rl
OjpzZXRPcGFjaXR5KGZsb2F0IHZhbHVlKQogICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGll
c0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Ok9wYWNpdHlDaGFuZ2VkKTsKIH0K
IAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpz
ZXRGaWx0ZXJzKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCiB7CiAgICAgbV9wcm9w
ZXJ0aWVzLmZpbHRlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPEZpbHRlck9wZXJhdGlvbnM+KGZpbHRl
cnMpOwpAQCAtNjI3LDcgKzYyNCw2IEBAIGJvb2wgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpmaWx0
ZXJzQ2FuQmVDb21wb3NpdGVkKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlCiB7CiAgICAg
cmV0dXJuIFBsYXRmb3JtQ0FMYXllck1hYzo6ZmlsdGVyc0NhbkJlQ29tcG9zaXRlZChmaWx0ZXJz
KTsKIH0KLSNlbmRpZgogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0TmFtZShjb25z
dCBTdHJpbmcmIHZhbHVlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKaW5kZXggOTk0NWRm
YTg0YmY5ZjcxZGVmNDc4ZGQxMWI3YWVkMWZmNzMxYTExYy4uMjVkZDc5NDlhMDRhZGE2OWIxNjE3
MGRiNjJmNGZjNjI2MmQ1Y2UxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCkBAIC0xMjIs
MTEgKzEyMiw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGZsb2F0IG9wYWNpdHkoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0T3BhY2l0eShmbG9hdCkgb3ZlcnJpZGU7CiAK
LSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdmlydHVhbCB2b2lkIHNldEZpbHRlcnMoY29u
c3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpIG92ZXJyaWRlOwogICAgIHN0YXRpYyBib29s
IGZpbHRlcnNDYW5CZUNvbXBvc2l0ZWQoY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYp
OwogICAgIHZpcnR1YWwgdm9pZCBjb3B5RmlsdGVyc0Zyb20oY29uc3QgV2ViQ29yZTo6UGxhdGZv
cm1DQUxheWVyKikgb3ZlcnJpZGU7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJ
TkcpCiAgICAgdmlydHVhbCB2b2lkIHNldEJsZW5kTW9kZShXZWJDb3JlOjpCbGVuZE1vZGUpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UgYi9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQppbmRleCBjOGVjODZlNmNlZWJjMTEzODM2OWJmMjll
ZjQ2NmViMzEzMDE3ZWZiLi4wMjY5ZGZhMGM2MDk0ZDI0MTJiMmMwZGI4ZDg3MDhiMmU3Y2QyZjIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAtNzAsNyArNzAsNiBAQCBXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQkFUVEVSWV9TVEFUVVMgT04pCiBXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUyBPTikKIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1MzX1RFWFQgT04pCiBXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9O
IE9OKQotV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19GSUxURVJT
IE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19HUklEX0xB
WU9VVCBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX0lN
QUdFX1NFVCBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1Nf
UkVHSU9OUyBPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlIGIv
U291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKaW5kZXggMzc3YjgxOTJmYjE5NzVmN2Y4ZTMw
YzIxMTM5YTY5YzRiODQ0MmI4ZS4uM2ZlZmFlN2NiNWI3MTAxZWU5MjQzYTBjNDBlMzA3YWIzMDRj
NDllZCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKKysrIGIvU291
cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKQEAgLTExMCw3ICsxMTAsNiBAQCBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ0FOVkFTX1BBVEggT0ZGKQogV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMgT04p
CiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTM19URVhUIE9GRikK
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBU
QVRJT04gT0ZGKQotV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19G
SUxURVJTIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19H
UklEX0xBWU9VVCBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
Q1NTX0lNQUdFX1NFVCBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfQ1NTX1JFR0lPTlMgT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc01hYy5j
bWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zTWFjLmNtYWtlCmluZGV4IGNmYWJmNGE3MjJjNTU5
YmQ2YTRmODU2YmRjMDJiMmYxMTY4MjVhMTkuLjU3ZDk5ZjMzODdkNDlkMmY4NGVmYTJjM2NmYTk3
M2JlMWZiOGRkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zTWFjLmNtYWtlCisr
KyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zTWFjLmNtYWtlCkBAIC0yMCw3ICsyMCw2IEBAIFdFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1BfTkVYVCBPRkYpCiBXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFL
IE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19DT01QT1NJ
VElORyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfREVW
SUNFX0FEQVBUQVRJT04gT0ZGKQotV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX0NTU19GSUxURVJTIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX0NTU19HUklEX0xBWU9VVCBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04gT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OIE9GRikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRG
ZWF0dXJlcy5jbWFrZQppbmRleCA0MzNhYjc3YzkxYTI0OTkyZDlkY2I2NGFjZjJkZGFkMDRjNDRm
ZTg0Li5kOTBkZDllNWU1YTVjYzMwNzA5ZmMzYzNiODYxNDRlMzk1MDA1ZGNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dl
YktpdEZlYXR1cmVzLmNtYWtlCkBAIC0zNiw3ICszNiw2IEBAIG1hY3JvKFdFQktJVF9PUFRJT05f
QkVHSU4pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0NTU19CT1hfREVDT1JBVElP
Tl9CUkVBSyAiVG9nZ2xlIEJveCBEZWNvcmF0aW9uIGJyZWFrIChDU1MgQmFja2dyb3VuZHMgYW5k
IEJvcmRlcnMpIHN1cHBvcnQiIE9OKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9D
U1NfQ09NUE9TSVRJTkcgIlRvZ2dsZSBDU1MgQ09NUE9TSVRJTkcgc3VwcG9ydCIgT0ZGKQogICAg
IFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04gIlRvZ2ds
ZSBDU1MgRGV2aWNlIEFkYXB0YXRpb24gc3VwcG9ydCIgT0ZGKQotICAgIFdFQktJVF9PUFRJT05f
REVGSU5FKEVOQUJMRV9DU1NfRklMVEVSUyAiVG9nZ2xlIENTUyBGaWx0ZXJzIHN1cHBvcnQiIE9G
RikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfQ1NTX0dSSURfTEFZT1VUICJUb2dn
bGUgQ1NTIEdyaWQgTGF5b3V0IHN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklO
RShFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OICJUb2dnbGUgQ1NTIGltYWdlLW9yaWVudGF0
aW9uIHN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfQ1NTX0lN
QUdFX1JFU09MVVRJT04gIlRvZ2dsZSBDU1MgaW1hZ2UtcmVzb2x1dGlvbiBzdXBwb3J0IiBPRkYp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZSBiL1NvdXJjZS9jbWFrZWNv
bmZpZy5oLmNtYWtlCmluZGV4IDBhOWE4ZWRjYTBkYjI1NTEwNGE5YjYzMDI4NTY1MmI1ZTE1MTFk
N2EuLjM5M2IzMzBmMmI1YzY1ZTJjMDRiYTQwMTU4NzM1Njc4NWI0MzFlYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNt
YWtlCkBAIC0yMSw3ICsyMSw2IEBACiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfQ1NTX0JPWF9ERUNP
UkFUSU9OX0JSRUFLCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9O
CiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HCi0jY21ha2VkZWZpbmUwMSBF
TkFCTEVfQ1NTX0ZJTFRFUlMKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQK
ICNjbWFrZWRlZmluZTAxIEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04KICNjbWFrZWRlZmlu
ZTAxIEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE4ZDk1NDhmOGU4MGVjOTczZTg0OGI0ZDAxYTE1
NjgzOWQwOThhZDkuLjdlYjNjMjIxY2ZjNmQ5OTBiM2NiZDNiZmI3NWI1Nzk5YTk2ZTljZjggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxNC0wOS0wNCAgRXZhIEJhbGF6c2ZhbHZpICA8ZXZhYi51LXN6ZWdlZEBwYXJ0
bmVyLnNhbXN1bmcuY29tPgorCisgICAgICAgIFJlbW92ZSBDU1NfRklMVEVSUyBmbGFnCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY1MjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cGVybC9GZWF0dXJlTGlzdC5wbToKKwogMjAxNC0wOS0wMyAgQnJlbnQgRnVsZ2hhbSAgPGJm
dWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBVbnJldmlld2VkIHRlc3QgZml4Lgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCmluZGV4IDdjOGFkODEwYjZkNWM2
YzYxMDEzYWUxMWUxMTY4ZTZjZjQ2YmE4NzIuLjlhOWMzMmM5ZmQ0MWE5MjYzYTdlMTJlMDk5ODZm
MDJlZjY1ZjYzOWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJl
TGlzdC5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAg
LTE3OCw5ICsxNzgsNiBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gImNzcy1z
aGFwZXMiLCBkZXNjID0+ICJUb2dnbGUgQ1NTIFNoYXBlcyBzdXBwb3J0IiwKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX0NTU19TSEFQRVMiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkY3NzU2hh
cGVzU3VwcG9ydCB9LAogCi0gICAgeyBvcHRpb24gPT4gImNzcy1maWx0ZXJzIiwgZGVzYyA9PiAi
VG9nZ2xlIENTUyBGaWx0ZXJzIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NT
X0ZJTFRFUlMiLCBkZWZhdWx0ID0+IChpc0FwcGxlTWFjV2ViS2l0KCkgfHwgaXNJT1NXZWJLaXQo
KSB8fCBpc0VmbCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGNzc0ZpbHRlcnNTdXBwb3J0IH0s
Ci0KICAgICB7IG9wdGlvbiA9PiAiY3NzLWdyaWQtbGF5b3V0IiwgZGVzYyA9PiAiVG9nZ2xlIENT
UyBHcmlkIExheW91dCBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTU19HUklE
X0xBWU9VVCIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCRjc3NHcmlkTGF5b3V0U3VwcG9ydCB9
LAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggY2M2ZTQ5MTQxN2U4MzdiNTNlZTMwOTI0MjIxZTU1YzU1YzQ4ZjczOS4uOWEw
NGJiYTkyZDY0NDBkYzhmNDFhZjQ0MzY3ZDA1ODRmMDdiM2EzNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDE0LTA5LTA0ICBFdmEgQmFsYXpzZmFsdmkgIDxldmFiLnUtc3plZ2VkQHBhcnRuZXIu
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVtb3ZlIENTU19GSUxURVJTIGZsYWcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjUyOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rl
c3RFeHBlY3RhdGlvbnM6CisKIDIwMTQtMDktMDMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFi
bGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBYTUxIdHRwUmVxdWVzdCBhbHdheXMgZGVmYXVs
dHMgQ29udGVudC1UeXBlIHRvIGFwcGxpY2F0aW9uL3htbCwgd2hpbGUgaXQgc2hvdWxkIGRlcGVu
ZCBvbiBkYXRhIHR5cGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggYTliMDJiNTgxNWE0ZTY5MjlkYWJiYzE2MzI3YzgzNzkyNDMwMjQ2MC4uYzNlMzE1MmYz
MDgyZjVjYWQ3NWU4NzE0MmViZGEwODE2Njg4MjUwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI4OCw3ICsyODgsNiBAQCB3ZWJraXQub3JnL2IvNjU3
MDkgY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2Uub3V0c2lkZXNvdXJjZS5odG1sIFsg
RmFpbHVyZQogIyBCdWcgaW4gdGhlIHRlc3QgaXRzZWxmLCBhcyB0aGUgaW5wdXQgYm94IGNhbiBi
ZSBiaWcgZW5vdWdoIGZvciB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMgdG8gYmUgaW5zaWRlIGl0Lgog
QnVnKEVGTCkgZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LWNsaWNrLW91dHNpZGUuaHRtbAogCi0jIENT
UyBGaWx0ZXJzIHN1cHBvcnQgbm90IHlldCBlbmFibGVkIChuZWVkcyBFTkFCTEVfQ1NTX0ZJTFRF
UlMpLgogd2Via2l0Lm9yZy9iLzg1NDY1IGNzczMvZmlsdGVycyBbIFNraXAgXQogd2Via2l0Lm9y
Zy9iLzg1NDY1IGNvbXBvc2l0aW5nL2ZpbHRlcnMgWyBTa2lwIF0KIApkaWZmIC0tZ2l0IGEvQ2hh
bmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGUwMzI4YWE0YTliM2Y3ZGE1MTQ5MTA2OTQ3ODBjN2Yx
YWJlMGE1NDkuLjk3ZmUwODBiYTgxMGE4YmM3YjRhOTYxMGZiYjU0MWJhNDk3MTBiZGQgMTAwNjQ0
Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0w
OS0wNCAgRXZhIEJhbGF6c2ZhbHZpICA8ZXZhYi51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29t
PgorCisgICAgICAgIFJlbW92ZSBDU1NfRklMVEVSUyBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY1MjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNt
YWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlOgorICAgICAgICAq
IFNvdXJjZS9jbWFrZS9PcHRpb25zTWFjLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9X
ZWJLaXRGZWF0dXJlcy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2Vjb25maWcuaC5jbWFr
ZToKKwogMjAxNC0wOS0wMSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29t
PgogCiAgICAgICAgIFtDTUFLRV0gQnVpbGQgd2FybmluZyBieSBJTlRFUkZBQ0VfTElOS19MSUJS
QVJJRVMKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cgYi9XZWJLaXRMaWJy
YXJpZXMvQ2hhbmdlTG9nCmluZGV4IGIxZjI0Zjc5N2M1MmU2NTkyMDgyYWYwNTYzNGFmZmY1ZGMz
ODgxNTcuLjQyMzliMWYxYTMyMDgwNTE2YTBmMDg3MDk5YTU3YzIwY2FhZjI2YTMgMTAwNjQ0Ci0t
LSBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTA5LTA0ICBFdmEgQmFsYXpzZmFsdmkgIDxldmFi
LnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVtb3ZlIENTU19GSUxU
RVJTIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNjUyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMucHJvcHM6CisgICAgICAgICogd2lu
L3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby5wcm9wczoKKwogMjAxNC0wOC0yNyAg
cGVhdm9Ab3V0bG9vay5jb20gIDxwZWF2b0BvdXRsb29rLmNvbT4KIAogICAgICAgICBbV2luQ2Fp
cm9dIExpbmsgZXJyb3IuCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3Zz
cHJvcHMvRmVhdHVyZURlZmluZXMucHJvcHMgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3Zz
cHJvcHMvRmVhdHVyZURlZmluZXMucHJvcHMKaW5kZXggYmE2ODcyMTBjODcyMTgwODM3ZWYzZGU0
ZjEzNTUxYmY4ODVjOTg2OS4uNjU3NTY5MTM0ZjZiNDUzZmRjYWRkNDE0YzBlMDRlZGE3ODRjMTU3
NiAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVE
ZWZpbmVzLnByb3BzCisrKyBiL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0
dXJlRGVmaW5lcy5wcm9wcwpAQCAtMTIsNyArMTIsNiBAQAogICAgIDxFTkFCTEVfQ1NTM19URVhU
IC8+CiAgICAgPEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUs+RU5BQkxFX0NTU19CT1hf
REVDT1JBVElPTl9CUkVBSzwvRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSz4KICAgICA8
RU5BQkxFX0NTU19DT01QT1NJVElORyAvPgotICAgIDxFTkFCTEVfQ1NTX0ZJTFRFUlM+RU5BQkxF
X0NTU19GSUxURVJTPC9FTkFCTEVfQ1NTX0ZJTFRFUlM+CiAgICAgPEVOQUJMRV9DU1NfR1JJRF9M
QVlPVVQ+RU5BQkxFX0NTU19HUklEX0xBWU9VVDwvRU5BQkxFX0NTU19HUklEX0xBWU9VVD4KICAg
ICA8RU5BQkxFX0NTU19JTUFHRV9TRVQ+RU5BQkxFX0NTU19JTUFHRV9TRVQ8L0VOQUJMRV9DU1Nf
SU1BR0VfU0VUPgogICAgIDxFTkFCTEVfQ1NTX1JFR0lPTlM+RU5BQkxFX0NTU19SRUdJT05TPC9F
TkFCTEVfQ1NTX1JFR0lPTlM+CkBAIC04OSw3ICs4OCw3IEBACiAgIDwvUHJvcGVydHlHcm91cD4K
ICAgPEl0ZW1EZWZpbml0aW9uR3JvdXA+CiAgICAgPENsQ29tcGlsZT4KLTxQcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz4kKEVOQUJMRV9DU1BfTkVYVCk7JChFTkFCTEVfUFJPTUlTRVMpOyQoRU5BQkxF
X1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NS
T0xMSU5HKTskKEVOQUJMRV9DQU5WQVNfUEFUSCk7JChFTkFCTEVfQ0FOVkFTX1BST1hZKTskKEVO
QUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUyk7
JChFTkFCTEVfQ1NTX0lNQUdFX1NFVCk7JChFTkFCTEVfQ1NTM19URVhUKTskKEVOQUJMRV9DU1Nf
Qk9YX0RFQ09SQVRJT05fQlJFQUspOyQoRU5BQkxFX0NTU19GSUxURVJTKTskKEVOQUJMRV9DU1Nf
R1JJRF9MQVlPVVQpOyQoRU5BQkxFX0NTU19TSEFERVJTKTskKEVOQUJMRV9DU1NfQ09NUE9TSVRJ
TkcpOyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCk7
JChFTkFCTEVfQ1NTX1NIQVBFUyk7JChFTkFCTEVfQ1NTX1NIQVBFX0lOU0lERSk7JChFTkFCTEVf
Q1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19UUkFOU0lUSU9OU19VTlBSRUZJWEVEKTskKEVOQUJM
RV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRB
TElTVF9FTEVNRU5UKTskKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRB
SUxTX0VMRU1FTlQpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNU
T1JZX1VQTE9BRCk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9MT0NBVElP
Tik7JChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpOyQoRU5BQkxFX0hJ
R0hfRFBJX0NBTlZBUyk7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gp
OyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9J
TkNPTVBMRVRFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQoRU5BQkxFX0lO
UFVUX1RZUEVfTU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFCTEVfSU5QVVRf
VFlQRV9XRUVLKTskKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUyk7JChFTkFCTEVf
TEVHQUNZX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX0xJ
TktfUFJFUkVOREVSKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX0VMRU1FTlQpOyQo
RU5BQkxFX01JQ1JPREFUQSk7JChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKTskKEVOQUJMRV9O
T1RJRklDQVRJT05TKTskKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKTskKEVOQUJMRV9RVU9UQSk7
JChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpOyQoRU5BQkxFX1NDUklQVEVEX1NQRUVD
SCk7JChFTkFCTEVfU0hBRE9XX0RPTSk7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxF
X01FRElBX0NPTlRST0xTX1NDUklQVCk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX1NUWUxFX1ND
T1BFRCk7JChFTkFCTEVfU1VCUElYRUxfTEFZT1VUKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NW
R19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9URU1QTEFU
RV9FTEVNRU5UKTskKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpOyQoRU5BQkxFX1ZJREVPKTskKEVO
QUJMRV9WSURFT19UUkFDSyk7JChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSk7JChFTkFCTEVf
V0VCX0FVRElPKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChF
TkFCTEVfV0VCVlRUX1JFR0lPTlMpOyQoRU5BQkxFX1hIUl9USU1FT1VUKTskKEVOQUJMRV9YU0xU
KTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Cis8
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+JChFTkFCTEVfQ1NQX05FWFQpOyQoRU5BQkxFX1BST01J
U0VTKTskKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSk7JChFTkFCTEVfM0RfUkVOREVS
SU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0FDQ0VMRVJBVEVE
X09WRVJGTE9XX1NDUk9MTElORyk7JChFTkFCTEVfQ0FOVkFTX1BBVEgpOyQoRU5BQkxFX0NBTlZB
U19QUk9YWSk7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NTUzNfQ09ORElU
SU9OQUxfUlVMRVMpOyQoRU5BQkxFX0NTU19JTUFHRV9TRVQpOyQoRU5BQkxFX0NTUzNfVEVYVCk7
JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKTskKEVOQUJMRV9DU1NfR1JJRF9MQVlP
VVQpOyQoRU5BQkxFX0NTU19TSEFERVJTKTskKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpOyQoRU5B
QkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCk7JChFTkFCTEVf
Q1NTX1NIQVBFUyk7JChFTkFCTEVfQ1NTX1NIQVBFX0lOU0lERSk7JChFTkFCTEVfQ1NTX1RSQU5T
Rk9STVNfQU5JTUFUSU9OU19UUkFOU0lUSU9OU19VTlBSRUZJWEVEKTskKEVOQUJMRV9DVVNUT01f
U0NIRU1FX0hBTkRMRVIpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVF9FTEVN
RU5UKTskKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxTX0VMRU1F
TlQpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9B
RCk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0ZVTExT
Q1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFC
TEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpOyQoRU5BQkxFX0hJR0hfRFBJX0NB
TlZBUyk7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTsk
KEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRF
KTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVf
TU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVL
KTskKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUyk7JChFTkFCTEVfTEVHQUNZX05P
VElGSUNBVElPTlMpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX0xJTktfUFJFUkVO
REVSKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX0VMRU1FTlQpOyQoRU5BQkxFX01J
Q1JPREFUQSk7JChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKTskKEVOQUJMRV9OT1RJRklDQVRJ
T05TKTskKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVf
TkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpOyQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCk7JChFTkFC
TEVfU0hBRE9XX0RPTSk7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX01FRElBX0NP
TlRST0xTX1NDUklQVCk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFU
SVNUSUNTKTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX1NUWUxFX1NDT1BFRCk7JChF
TkFCTEVfU1VCUElYRUxfTEFZT1VUKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JK
Q19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9URU1QTEFURV9FTEVNRU5U
KTskKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9WSURF
T19UUkFDSyk7JChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSk7JChFTkFCTEVfV0VCX0FVRElP
KTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV0VC
VlRUX1JFR0lPTlMpOyQoRU5BQkxFX1hIUl9USU1FT1VUKTskKEVOQUJMRV9YU0xUKTslKFByZXBy
b2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CiAgICAgPC9DbENv
bXBpbGU+CiAgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KICAgPEl0ZW1Hcm91cD4KQEAgLTEzNywx
MCArMTM2LDYgQEAKICAgICAgIDxWYWx1ZT4kKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpPC9WYWx1
ZT4KICAgICAgIDxFbnZpcm9ubWVudFZhcmlhYmxlPnRydWU8L0Vudmlyb25tZW50VmFyaWFibGU+
CiAgICAgPC9CdWlsZE1hY3JvPgotICAgIDxCdWlsZE1hY3JvIEluY2x1ZGU9IkVOQUJMRV9DU1Nf
RklMVEVSUyI+Ci0gICAgICA8VmFsdWU+JChFTkFCTEVfQ1NTX0ZJTFRFUlMpPC9WYWx1ZT4KLSAg
ICAgIDxFbnZpcm9ubWVudFZhcmlhYmxlPnRydWU8L0Vudmlyb25tZW50VmFyaWFibGU+Ci0gICAg
PC9CdWlsZE1hY3JvPgogICAgIDxCdWlsZE1hY3JvIEluY2x1ZGU9IkVOQUJMRV9DU1NfSU1BR0Vf
U0VUIj4KICAgICAgIDxWYWx1ZT4kKEVOQUJMRV9DU1NfSU1BR0VfU0VUKTwvVmFsdWU+CiAgICAg
ICA8RW52aXJvbm1lbnRWYXJpYWJsZT50cnVlPC9FbnZpcm9ubWVudFZhcmlhYmxlPgpkaWZmIC0t
Z2l0IGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fp
cm8ucHJvcHMgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmlu
ZXNDYWlyby5wcm9wcwppbmRleCA2ZWRkZGY3MjRiNDg1ZDIzMmY3MjU5ZTliN2ZjNzRjMzQ2M2Iy
YjgxLi4xYjU0ZTcyZjk1ZDJlMzFmZGY5YWY4NjdmMDBlNDg2NTc0N2ViM2QwIDEwMDY0NAotLS0g
YS9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby5w
cm9wcworKysgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmlu
ZXNDYWlyby5wcm9wcwpAQCAtMTIsNyArMTIsNiBAQAogICAgIDxFTkFCTEVfQ1NTM19URVhUIC8+
CiAgICAgPEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUs+RU5BQkxFX0NTU19CT1hfREVD
T1JBVElPTl9CUkVBSzwvRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSz4KICAgICA8RU5B
QkxFX0NTU19DT01QT1NJVElORyAvPgotICAgIDxFTkFCTEVfQ1NTX0ZJTFRFUlM+RU5BQkxFX0NT
U19GSUxURVJTPC9FTkFCTEVfQ1NTX0ZJTFRFUlM+CiAgICAgPEVOQUJMRV9DU1NfR1JJRF9MQVlP
VVQ+RU5BQkxFX0NTU19HUklEX0xBWU9VVDwvRU5BQkxFX0NTU19HUklEX0xBWU9VVD4KICAgICA8
RU5BQkxFX0NTU19JTUFHRV9TRVQ+RU5BQkxFX0NTU19JTUFHRV9TRVQ8L0VOQUJMRV9DU1NfSU1B
R0VfU0VUPgogICAgIDxFTkFCTEVfQ1NTX1JFR0lPTlM+RU5BQkxFX0NTU19SRUdJT05TPC9FTkFC
TEVfQ1NTX1JFR0lPTlM+CkBAIC04OCw3ICs4Nyw3IEBACiAgIDwvUHJvcGVydHlHcm91cD4KICAg
PEl0ZW1EZWZpbml0aW9uR3JvdXA+CiAgICAgPENsQ29tcGlsZT4KLTxQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz4kKEVOQUJMRV9DU1BfTkVYVCk7JChFTkFCTEVfUFJPTUlTRVMpOyQoRU5BQkxFX1JF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FD
Q0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xM
SU5HKTskKEVOQUJMRV9DQU5WQVNfUEFUSCk7JChFTkFCTEVfQ0FOVkFTX1BST1hZKTskKEVOQUJM
RV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUyk7JChF
TkFCTEVfQ1NTX0lNQUdFX1NFVCk7JChFTkFCTEVfQ1NTM19URVhUKTskKEVOQUJMRV9DU1NfQk9Y
X0RFQ09SQVRJT05fQlJFQUspOyQoRU5BQkxFX0NTU19GSUxURVJTKTskKEVOQUJMRV9DU1NfR1JJ
RF9MQVlPVVQpOyQoRU5BQkxFX0NTU19TSEFERVJTKTskKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcp
OyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfU0hBUEVTKTskKEVOQUJMRV9DU1Nf
U0hBUEVfSU5TSURFKTskKEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1RSQU5TSVRJ
T05TX1VOUFJFRklYRUQpOyQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUik7JChFTkFCTEVf
REFUQUdSSUQpOyQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpOyQoRU5BQkxFX0RBVEFfVFJBTlNG
RVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCk7JChFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9GSUxURVJTKTskKEVO
QUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dBTUVQ
QUQpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJf
VEhST1RUTElORyk7JChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKTskKEVOQUJMRV9JQ09OREFUQUJB
U0UpOyQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1Ip
OyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTskKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVMT0NBTCk7JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCk7JChFTkFCTEVfSU5QVVRfVFlQ
RV9USU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspOyQoRU5BQkxFX0xFR0FDWV9DU1NfVkVO
RE9SX1BSRUZJWEVTKTskKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfTElO
S19QUkVGRVRDSCk7JChFTkFCTEVfTElOS19QUkVSRU5ERVIpOyQoRU5BQkxFX01BVEhNTCk7JChF
TkFCTEVfTUVURVJfRUxFTUVOVCk7JChFTkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9NT1VTRV9D
VVJTT1JfU0NBTEUpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX1BST1hJTUlUWV9F
VkVOVFMpOyQoRU5BQkxFX1FVT1RBKTskKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUyk7
JChFTkFCTEVfU0NSSVBURURfU1BFRUNIKTskKEVOQUJMRV9TSEFET1dfRE9NKTskKEVOQUJMRV9T
SEFSRURfV09SS0VSUyk7JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKTskKEVOQUJMRV9N
RURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1NRTF9EQVRB
QkFTRSk7JChFTkFCTEVfU1RZTEVfU0NPUEVEKTskKEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpOyQo
RU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdf
Rk9OVFMpOyQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpOyQoRU5BQkxFX1RFWFRfQVVUT1NJWklO
Ryk7JChFTkFCTEVfVklERU8pOyQoRU5BQkxFX1ZJREVPX1RSQUNLKTskKEVOQUJMRV9WSUVXX01P
REVfQ1NTX01FRElBKTskKEVOQUJMRV9XRUJfQVVESU8pOyQoRU5BQkxFX1dFQl9TT0NLRVRTKTsk
KEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XRUJWVFRfUkVHSU9OUyk7JChFTkFCTEVfWEhS
X1RJTUVPVVQpOyQoRU5BQkxFX1hTTFQpOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVw
cm9jZXNzb3JEZWZpbml0aW9ucz4KKzxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4kKEVOQUJMRV9D
U1BfTkVYVCk7JChFTkFCTEVfUFJPTUlTRVMpOyQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
Uyk7JChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKTskKEVOQUJMRV9DQU5W
QVNfUEFUSCk7JChFTkFCTEVfQ0FOVkFTX1BST1hZKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
Ryk7JChFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUyk7JChFTkFCTEVfQ1NTX0lNQUdFX1NF
VCk7JChFTkFCTEVfQ1NTM19URVhUKTskKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsp
OyQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCk7JChFTkFCTEVfQ1NTX1NIQURFUlMpOyQoRU5BQkxF
X0NTU19DT01QT1NJVElORyk7JChFTkFCTEVfQ1NTX1JFR0lPTlMpOyQoRU5BQkxFX0NTU19TSEFQ
RVMpOyQoRU5BQkxFX0NTU19TSEFQRV9JTlNJREUpOyQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FO
SU1BVElPTlNfVFJBTlNJVElPTlNfVU5QUkVGSVhFRCk7JChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9I
QU5ETEVSKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCk7JChF
TkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7JChFTkFCTEVfREVUQUlMU19FTEVNRU5UKTskKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5B
QkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0hJRERF
Tl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKTskKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpOyQo
RU5BQkxFX0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVf
SU5QVVRfVFlQRV9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSk7JChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKTskKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKTsk
KEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSyk7JChFTkFC
TEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpOyQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJ
T05TKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9MSU5LX1BSRVJFTkRFUik7JChF
TkFCTEVfTUFUSE1MKTskKEVOQUJMRV9NRVRFUl9FTEVNRU5UKTskKEVOQUJMRV9NSUNST0RBVEEp
OyQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChF
TkFCTEVfUFJPWElNSVRZX0VWRU5UUyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX05BVklHQVRP
Ul9DT05URU5UX1VUSUxTKTskKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpOyQoRU5BQkxFX1NIQURP
V19ET00pOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9NRURJQV9DT05UUk9MU19T
Q1JJUFQpOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7
JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9TVFlMRV9TQ09QRUQpOyQoRU5BQkxFX1NV
QlBJWEVMX0xBWU9VVCk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElO
R1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCk7JChFTkFC
TEVfVEVYVF9BVVRPU0laSU5HKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfVklERU9fVFJBQ0sp
OyQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpOyQoRU5BQkxFX1dFQl9BVURJTyk7JChFTkFC
TEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dFQlZUVF9SRUdJ
T05TKTskKEVOQUJMRV9YSFJfVElNRU9VVCk7JChFTkFCTEVfWFNMVCk7JShQcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgogICAgIDwvQ2xDb21waWxlPgog
ICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CiAgIDxJdGVtR3JvdXA+CkBAIC0xMzYsMTAgKzEzNSw2
IEBACiAgICAgICA8VmFsdWU+JChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKTwvVmFsdWU+CiAgICAg
ICA8RW52aXJvbm1lbnRWYXJpYWJsZT50cnVlPC9FbnZpcm9ubWVudFZhcmlhYmxlPgogICAgIDwv
QnVpbGRNYWNybz4KLSAgICA8QnVpbGRNYWNybyBJbmNsdWRlPSJFTkFCTEVfQ1NTX0ZJTFRFUlMi
PgotICAgICAgPFZhbHVlPiQoRU5BQkxFX0NTU19GSUxURVJTKTwvVmFsdWU+Ci0gICAgICA8RW52
aXJvbm1lbnRWYXJpYWJsZT50cnVlPC9FbnZpcm9ubWVudFZhcmlhYmxlPgotICAgIDwvQnVpbGRN
YWNybz4KICAgICA8QnVpbGRNYWNybyBJbmNsdWRlPSJFTkFCTEVfQ1NTX0lNQUdFX1NFVCI+CiAg
ICAgICA8VmFsdWU+JChFTkFCTEVfQ1NTX0lNQUdFX1NFVCk8L1ZhbHVlPgogICAgICAgPEVudmly
b25tZW50VmFyaWFibGU+dHJ1ZTwvRW52aXJvbm1lbnRWYXJpYWJsZT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>