<?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>157188</bug_id>
          
          <creation_ts>2016-04-29 10:25:16 -0700</creation_ts>
          <short_desc>[Web IDL] Specify default parameter values for callback parameters</short_desc>
          <delta_ts>2016-04-29 22:40:32 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1188689</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-29 10:25:16 -0700</bug_when>
    <thetext>Specify default parameter values for callback parameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188710</commentid>
    <comment_count>1</comment_count>
      <attachid>277717</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-29 10:57:00 -0700</bug_when>
    <thetext>Created attachment 277717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188770</commentid>
    <comment_count>2</comment_count>
      <attachid>277717</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-04-29 13:26:15 -0700</bug_when>
    <thetext>Comment on attachment 277717
Patch

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

&gt; Source/WebCore/Modules/geolocation/Geolocation.idl:33
&gt; +                                     optional PositionErrorCallback? errorCallback = null,

Do we need to have an explicit &quot;null&quot; default value?

Also PositionErrorCallback should probably not be marked nullable.
Should we add a FIXME? Is there a way to not change at all the IDL?

&gt; Source/WebCore/Modules/notifications/Notification.h:127
&gt; +    static void requestPermission(Document&amp;, RefPtr&lt;NotificationPermissionCallback&gt;&amp;&amp; = nullptr);

Do we need = nullptr?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3472
&gt; +        die &quot;Optional parameters of non-nullable wrapper types are not supported&quot; if $optional &amp;&amp; !$parameter-&gt;isNullable &amp;&amp; $codeGenerator-&gt;IsWrapperType($argType);

Can we die only in the cases where optional parameters do not have default values?
If so, can we move this line after the code below that gives implicit default parameter values with an additional check of available default value?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3488
&gt; +            # For callback parameters, we treat the generated bindings treat undefined as null, so use null as implicit default value.

s/we treat//</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188773</commentid>
    <comment_count>3</comment_count>
      <attachid>277717</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-29 13:32:22 -0700</bug_when>
    <thetext>Comment on attachment 277717
Patch

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

&gt;&gt; Source/WebCore/Modules/geolocation/Geolocation.idl:33
&gt;&gt; +                                     optional PositionErrorCallback? errorCallback = null,
&gt; 
&gt; Do we need to have an explicit &quot;null&quot; default value?
&gt; 
&gt; Also PositionErrorCallback should probably not be marked nullable.
&gt; Should we add a FIXME? Is there a way to not change at all the IDL?

Oh, the default implicit value for nullable parameters is null so we don&apos;t technically need to update the IDL. I merely thought it was nice to be explicit in the IDL. I could be convinced otherwise though.

&gt;&gt; Source/WebCore/Modules/notifications/Notification.h:127
&gt;&gt; +    static void requestPermission(Document&amp;, RefPtr&lt;NotificationPermissionCallback&gt;&amp;&amp; = nullptr);
&gt; 
&gt; Do we need = nullptr?

Probably not, I&apos;ll check.

&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3472
&gt;&gt; +        die &quot;Optional parameters of non-nullable wrapper types are not supported&quot; if $optional &amp;&amp; !$parameter-&gt;isNullable &amp;&amp; $codeGenerator-&gt;IsWrapperType($argType);
&gt; 
&gt; Can we die only in the cases where optional parameters do not have default values?
&gt; If so, can we move this line after the code below that gives implicit default parameter values with an additional check of available default value?

Not really. For e.g. the following:
void open(optional Node n = null);

It has a default value and yet the bindings generator is not able to deal with this because the type is not nullable (We will throw if the parameter is omitted, which is probably not what the developer wants).

&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3488
&gt;&gt; +            # For callback parameters, we treat the generated bindings treat undefined as null, so use null as implicit default value.
&gt; 
&gt; s/we treat//

oops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188777</commentid>
    <comment_count>4</comment_count>
      <attachid>277731</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-29 13:42:26 -0700</bug_when>
    <thetext>Created attachment 277731
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189008</commentid>
    <comment_count>5</comment_count>
      <attachid>277731</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-29 21:26:05 -0700</bug_when>
    <thetext>Comment on attachment 277731
Patch

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

&gt; Source/WebCore/Modules/webdatabase/DOMWindowWebDatabase.h:49
&gt; +    DOMWindowWebDatabase() { }
&gt; +    ~DOMWindowWebDatabase() { }

Shouldn’t these be deleted instead?

&gt; Source/WebCore/Modules/webdatabase/Database.h:67
&gt; -    PassRefPtr&lt;SQLTransactionBackend&gt; runTransaction(PassRefPtr&lt;SQLTransaction&gt;, bool readOnly, const ChangeVersionData*);
&gt; +    PassRefPtr&lt;SQLTransactionBackend&gt; runTransaction(Ref&lt;SQLTransaction&gt;&amp;&amp;, bool readOnly, const ChangeVersionData*);

Since you are touching this, I would suggest changing the return value to return a RefPtr rather than a PassRefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189009</commentid>
    <comment_count>6</comment_count>
      <attachid>277717</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-29 21:27:27 -0700</bug_when>
    <thetext>Comment on attachment 277717
Patch

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

&gt;&gt;&gt; Source/WebCore/Modules/geolocation/Geolocation.idl:33
&gt;&gt;&gt; +                                     optional PositionErrorCallback? errorCallback = null,
&gt;&gt; 
&gt;&gt; Do we need to have an explicit &quot;null&quot; default value?
&gt;&gt; 
&gt;&gt; Also PositionErrorCallback should probably not be marked nullable.
&gt;&gt; Should we add a FIXME? Is there a way to not change at all the IDL?
&gt; 
&gt; Oh, the default implicit value for nullable parameters is null so we don&apos;t technically need to update the IDL. I merely thought it was nice to be explicit in the IDL. I could be convinced otherwise though.

I think it’s nicer to be brief instead of writing all those &quot;= null&quot;. I think we should return and remove them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189012</commentid>
    <comment_count>7</comment_count>
      <attachid>277797</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-29 21:46:27 -0700</bug_when>
    <thetext>Created attachment 277797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189015</commentid>
    <comment_count>8</comment_count>
      <attachid>277798</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-29 21:49:24 -0700</bug_when>
    <thetext>Created attachment 277798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189022</commentid>
    <comment_count>9</comment_count>
      <attachid>277798</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-29 22:40:26 -0700</bug_when>
    <thetext>Comment on attachment 277798
Patch

Clearing flags on attachment: 277798

Committed r200289: &lt;http://trac.webkit.org/changeset/200289&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189023</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-29 22:40:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277717</attachid>
            <date>2016-04-29 10:57:00 -0700</date>
            <delta_ts>2016-04-29 13:42:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157188-20160429105733.patch</filename>
            <type>text/plain</type>
            <size>44363</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjIzZTJkOGRmZDliNWQ0
ZTIyNDliY2Q0ZjBiOWE2YzkwYjYzYWEyYy4uYjAyMWFkOTkxNGM2MTM5MWY4ZGQ5MzE0MGQwYTYy
MzkxMmEwZDg1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ5IEBACiAyMDE2LTA0LTI5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgW1dlYiBJRExdIFNwZWNpZnkg
ZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWVzIGZvciBjYWxsYmFjayBwYXJhbWV0ZXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcxODgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGVjaWZ5IGRlZmF1bHQg
cGFyYW1ldGVyIHZhbHVlcyBmb3IgY2FsbGJhY2sgcGFyYW1ldGVycy4KKworICAgICAgICAqIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0
aW9uOjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25D
ZW50ZXIuaWRsOgorICAgICAgICAqIE1vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZUluZm86OnF1ZXJ5VXNhZ2VBbmRRdW90YSk6CisgICAgICAg
IChXZWJDb3JlOjpTdG9yYWdlSW5mbzo6cmVxdWVzdFF1b3RhKToKKyAgICAgICAgKiBNb2R1bGVz
L3F1b3RhL1N0b3JhZ2VJbmZvLmg6CisgICAgICAgICogTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5m
by5pZGw6CisgICAgICAgICogTW9kdWxlcy9xdW90YS9TdG9yYWdlUXVvdGEuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3F1b3RhL1N0b3JhZ2VRdW90YS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRE9N
V2luZG93V2ViRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViRGF0
YWJhc2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01X
aW5kb3dXZWJEYXRhYmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViRGF0YWJh
c2U6OkRPTVdpbmRvd1dlYkRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1dl
YkRhdGFiYXNlOjp+RE9NV2luZG93V2ViRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnJ1blRy
YW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpjaGFuZ2VWZXJzaW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjp0cmFuc2FjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZTo6cmVhZFRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5pZGw6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAg
IChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAgICAgIChDYW5Vc2VXVEZPcHRpb25hbEZv
clBhcmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RPYmouaWRsOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtLmg6CisgICAgICAgICog
ZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsOgorCisyMDE2LTA0LTI5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKICAgICAgICAgW1dlYiBJRExdIFNwZWNpZnkgZGVmYXVsdCB2YWx1
ZXMgZm9yIG9wdGlvbmFsIHBhcmFtZXRlcnMgb2Ygd3JhcHBlciB0eXBlcwogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MTYxCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKaW5kZXggZTNh
YzllYTY4YmI3MmQwMzkwMWJiZDgxMGFmZDMxMTM5MGIzNTNiMi4uY2E1ZTljNDg3NzMzODU4NTJh
YjlmMDQzNDMxZjVlNDg4YmRhY2RhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKQEAgLTMwLDExICszMCwxMSBAQAogICAgIEdl
bmVyYXRlSXNSZWFjaGFibGU9SW1wbEZyYW1lLAogXSBpbnRlcmZhY2UgR2VvbG9jYXRpb24gewog
ICAgIFtDdXN0b21dIHZvaWQgZ2V0Q3VycmVudFBvc2l0aW9uKFBvc2l0aW9uQ2FsbGJhY2sgc3Vj
Y2Vzc0NhbGxiYWNrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIFBvc2l0aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFBvc2l0aW9uRXJyb3JDYWxsYmFjaz8gZXJy
b3JDYWxsYmFjayA9IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3B0aW9uYWwgUG9zaXRpb25PcHRpb25zIG9wdGlvbnMpOwogCiAgICAgW0N1c3RvbV0gbG9uZyB3
YXRjaFBvc2l0aW9uKFBvc2l0aW9uQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBQb3NpdGlvbkVycm9yQ2FsbGJhY2sgZXJy
b3JDYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgUG9z
aXRpb25FcnJvckNhbGxiYWNrPyBlcnJvckNhbGxiYWNrID0gbnVsbCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgUG9zaXRpb25PcHRpb25zIG9wdGlvbnMpOwogCiAg
ICAgdm9pZCBjbGVhcldhdGNoKGxvbmcgd2F0Y2hJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IGMyOWFlMWY0
Y2U0YTYyMDc2YmFmOTQ5NTRkZTYwMmNiYjgwYzkxZmQuLmEzMjJkMzNiYTZlMzA0MTQwOWU2ZGM3
NDQyMjRjM2RmNzIxZDhlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC0yNDEsOSArMjQxLDkgQEAgY29uc3Qg
U3RyaW5nIE5vdGlmaWNhdGlvbjo6cGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRpb25DbGllbnQ6
OlBlcm1pc3Npb24gcGVybWkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLXZvaWQgTm90aWZp
Y2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8
Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiBjYWxsYmFjaykKK3ZvaWQgTm90aWZpY2F0
aW9uOjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZlB0cjxOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7Ci0gICAgTm90aWZpY2F0aW9u
Q29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC5wYWdlKCkpLT5jbGllbnQoKS0+cmVxdWVzdFBlcm1p
c3Npb24oJmRvY3VtZW50LCBjYWxsYmFjayk7CisgICAgTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6
ZnJvbShkb2N1bWVudC5wYWdlKCkpLT5jbGllbnQoKS0+cmVxdWVzdFBlcm1pc3Npb24oJmRvY3Vt
ZW50LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCmluZGV4IDI0ZTBjNWNh
MjY4Njg0MThkMDQzOTA1MTAzOGFmNzM3OGVlOTRlODAuLmYxZWIwOTgyMmFkMzU5YWVjM2YzNWNm
MDU2ZDVlYTE3N2Y1ODQyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgc3RhdGljIGNvbnN0IFN0cmluZyBwZXJtaXNz
aW9uKERvY3VtZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFN0cmluZyBw
ZXJtaXNzaW9uU3RyaW5nKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik7Ci0gICAgc3Rh
dGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQYXNzUmVmUHRyPE5vdGlmaWNh
dGlvblBlcm1pc3Npb25DYWxsYmFjaz4gPSBudWxscHRyKTsKKyAgICBzdGF0aWMgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbihEb2N1bWVudCYsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2Fs
bGJhY2s+JiYgPSBudWxscHRyKTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbAppbmRleCA0
MjE3OTNmMTg4Mjg5ZTM5ZmRiY2NiMzI3YTgxMmMxYThjODUxZTI4Li5hY2QwMThmNGRhZjVjZDE5
YTFlY2Y0MzM0NWVhN2VhNzE3Y2ViZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbApAQCAtNDMsNyArNDMsNyBAQAog
ICAgIFtDb25kaXRpb25hbD1OT1RJRklDQVRJT05TXSB2b2lkIGNsb3NlKCk7CiAKICAgICBbQ29u
ZGl0aW9uYWw9Tk9USUZJQ0FUSU9OUywgQ2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRpYyByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBlcm1pc3Npb247Ci0gICAgW0NvbmRpdGlvbmFsPU5PVElG
SUNBVElPTlMsIENhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lv
bihvcHRpb25hbCBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2sgY2FsbGJhY2spOworICAg
IFtDb25kaXRpb25hbD1OT1RJRklDQVRJT05TLCBDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb24ob3B0aW9uYWwgTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxi
YWNrPyBjYWxsYmFjayA9IG51bGwpOwogCiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmNs
aWNrOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25jbG9zZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRl
ci5pZGwKaW5kZXggNTQzNDNjZmE5ZDM4OTA2MWE2MWNlODUzNjNjNjNjY2JjZmQzZGM5ZS4uNmMw
YjI4ODdmYzFiMzhiYWViN2EwZTE5NmZiMzg4YTY4YjI2NTA2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRl
ci5pZGwKQEAgLTM3LDYgKzM3LDYgQEAKICAgIFtSYWlzZXNFeGNlcHRpb25dIE5vdGlmaWNhdGlv
biBjcmVhdGVOb3RpZmljYXRpb24oRE9NU3RyaW5nIGljb25VcmwsIERPTVN0cmluZyB0aXRsZSwg
RE9NU3RyaW5nIGJvZHkpOwogCiAgICBpbnQgY2hlY2tQZXJtaXNzaW9uKCk7Ci0gICB2b2lkIHJl
cXVlc3RQZXJtaXNzaW9uKG9wdGlvbmFsIFZvaWRDYWxsYmFjayBjYWxsYmFjayk7CisgICB2b2lk
IHJlcXVlc3RQZXJtaXNzaW9uKG9wdGlvbmFsIFZvaWRDYWxsYmFjaz8gY2FsbGJhY2sgPSBudWxs
KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaAppbmRleCA3MzFkZWQ4NzMzNDEwMzBmNGJjZjI0OTYy
ZjQ1NWMzM2E5YWRjNWFmLi5jN2ViOTBiZDI4YWJlYmUxMjdlZjg1MWI2YTBhOTNjMDkwMWNlMzg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC03NSwxMCArNzUsMTAgQEAgcHVibGljOgogICAgIC8v
IFJlcXVlc3RzIHVzZXIgcGVybWlzc2lvbiB0byBzaG93IGRlc2t0b3Agbm90aWZpY2F0aW9ucyBm
cm9tIGEgcGFydGljdWxhcgogICAgIC8vIHNjcmlwdCBjb250ZXh0LiBUaGUgY2FsbGJhY2sgcGFy
YW1ldGVyIHNob3VsZCBiZSBydW4gd2hlbiB0aGUgdXNlciBoYXMKICAgICAvLyBtYWRlIGEgZGVj
aXNpb24uCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4pID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFJlZlB0cjxWb2lk
Q2FsbGJhY2s+JiYpID0gMDsKICNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBSZWZQ
dHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKSA9IDA7CiAjZW5kaWYKIAogICAg
IHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3F1b3RhL1N0b3JhZ2VJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3Rv
cmFnZUluZm8uY3BwCmluZGV4IDU5MGU0MGIzYmVkNjMyZWFiYzY3ODIyYjIwNzI5MWMyZDBhYTk1
NTEuLmNkODNhNGE5MjIwOGY5NjI5OGVhYzJlZjY4MTc4MWM0N2M0NzU1YmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uY3BwCkBAIC01MiwyOCArNTIsMjgg
QEAgU3RvcmFnZUluZm86On5TdG9yYWdlSW5mbygpCiB7CiB9CiAKLXZvaWQgU3RvcmFnZUluZm86
OnF1ZXJ5VXNhZ2VBbmRRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBpbnQgc3RvcmFnZVR5cGUsIFBhc3NSZWZQdHI8U3RvcmFnZVVzYWdlQ2FsbGJh
Y2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxTdG9yYWdlRXJyb3JDYWxsYmFjaz4gZXJy
b3JDYWxsYmFjaykKK3ZvaWQgU3RvcmFnZUluZm86OnF1ZXJ5VXNhZ2VBbmRRdW90YShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBpbnQgc3RvcmFnZVR5cGUs
IFJlZlB0cjxTdG9yYWdlVXNhZ2VDYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2ssIFJlZlB0cjxT
dG9yYWdlRXJyb3JDYWxsYmFjaz4mJiBlcnJvckNhbGxiYWNrKQogewogICAgIC8vIERpc3BhdGNo
aW5nIHRoZSByZXF1ZXN0IHRvIFN0b3JhZ2VRdW90YSwgYXMgdGhpcyBpbnRlcmZhY2UgaXMgZGVw
cmVjYXRlZCBpbiBmYXZvciBvZiBTdG9yYWdlUXVvdGEuCiAgICAgU3RvcmFnZVF1b3RhKiBzdG9y
YWdlUXVvdGEgPSBnZXRTdG9yYWdlUXVvdGEoc3RvcmFnZVR5cGUpOwogICAgIGlmICghc3RvcmFn
ZVF1b3RhKSB7CiAgICAgICAgIC8vIFVua25vd24gc3RvcmFnZSB0eXBlIGlzIHJlcXVlc3RlZC4K
LSAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soU3RvcmFnZUVycm9yQ2Fs
bGJhY2s6OkNhbGxiYWNrVGFzazo6Y3JlYXRlKGVycm9yQ2FsbGJhY2ssIE5PVF9TVVBQT1JURURf
RVJSKSk7CisgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFN0b3JhZ2VF
cnJvckNhbGxiYWNrOjpDYWxsYmFja1Rhc2s6OmNyZWF0ZShXVEZNb3ZlKGVycm9yQ2FsbGJhY2sp
LCBOT1RfU1VQUE9SVEVEX0VSUikpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHN0b3Jh
Z2VRdW90YS0+cXVlcnlVc2FnZUFuZFF1b3RhKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHN1Y2Nl
c3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjayk7CisgICAgc3RvcmFnZVF1b3RhLT5xdWVyeVVzYWdl
QW5kUXVvdGEoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2sp
LCBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spKTsKIH0KIAotdm9pZCBTdG9yYWdlSW5mbzo6cmVxdWVz
dFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGlu
dCBzdG9yYWdlVHlwZSwgdW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3RhSW5CeXRlcywgUGFzc1Jl
ZlB0cjxTdG9yYWdlUXVvdGFDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPFN0
b3JhZ2VFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQordm9pZCBTdG9yYWdlSW5mbzo6cmVx
dWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IGludCBzdG9yYWdlVHlwZSwgdW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3RhSW5CeXRlcywgUmVm
UHRyPFN0b3JhZ2VRdW90YUNhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaywgUmVmUHRyPFN0b3Jh
Z2VFcnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2spCiB7CiAgICAgLy8gRGlzcGF0Y2hpbmcg
dGhlIHJlcXVlc3QgdG8gU3RvcmFnZVF1b3RhLCBhcyB0aGlzIGludGVyZmFjZSBpcyBkZXByZWNh
dGVkIGluIGZhdm9yIG9mIFN0b3JhZ2VRdW90YS4KICAgICBTdG9yYWdlUXVvdGEqIHN0b3JhZ2VR
dW90YSA9IGdldFN0b3JhZ2VRdW90YShzdG9yYWdlVHlwZSk7CiAgICAgaWYgKCFzdG9yYWdlUXVv
dGEpIHsKICAgICAgICAgLy8gVW5rbm93biBzdG9yYWdlIHR5cGUgaXMgcmVxdWVzdGVkLgotICAg
ICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhTdG9yYWdlRXJyb3JDYWxsYmFj
azo6Q2FsbGJhY2tUYXNrOjpjcmVhdGUoZXJyb3JDYWxsYmFjaywgTk9UX1NVUFBPUlRFRF9FUlIp
KTsKKyAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soU3RvcmFnZUVycm9y
Q2FsbGJhY2s6OkNhbGxiYWNrVGFzazo6Y3JlYXRlKFdURk1vdmUoZXJyb3JDYWxsYmFjayksIE5P
VF9TVVBQT1JURURfRVJSKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgc3RvcmFnZVF1
b3RhLT5yZXF1ZXN0UXVvdGEoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgbmV3UXVvdGFJbkJ5dGVz
LCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworICAgIHN0b3JhZ2VRdW90YS0+cmVx
dWVzdFF1b3RhKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIG5ld1F1b3RhSW5CeXRlcywgV1RGTW92
ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spKTsKIH0KIAogU3RvcmFn
ZVF1b3RhKiBTdG9yYWdlSW5mbzo6Z2V0U3RvcmFnZVF1b3RhKGludCBzdG9yYWdlVHlwZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uaAppbmRleCA0MmRhM2YyY2Nh
Y2RkYTk2MTMzYjZlZTE1ZmY0ZmQzZDY4ODYyM2IzLi5iNjg0MTM4OGI1MTgwZjYzZTg1MGMyNTNk
OGZjMzI1NzQ2ZWE2ZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3Rh
L1N0b3JhZ2VJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdl
SW5mby5oCkBAIC01Nyw5ICs1Nyw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU3RvcmFnZUluZm8oKSk7CiAgICAgfQogCi0gICAgdm9pZCBxdWVyeVVzYWdlQW5kUXVv
dGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGludCBzdG9yYWdlVHlwZSwgUGFzc1JlZlB0cjxT
dG9yYWdlVXNhZ2VDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3RvcmFnZUVycm9yQ2FsbGJhY2s+KTsK
KyAgICB2b2lkIHF1ZXJ5VXNhZ2VBbmRRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgaW50
IHN0b3JhZ2VUeXBlLCBSZWZQdHI8U3RvcmFnZVVzYWdlQ2FsbGJhY2s+JiYsIFJlZlB0cjxTdG9y
YWdlRXJyb3JDYWxsYmFjaz4mJik7CiAKLSAgICB2b2lkIHJlcXVlc3RRdW90YShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgaW50IHN0b3JhZ2VUeXBlLCB1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVv
dGFJbkJ5dGVzLCBQYXNzUmVmUHRyPFN0b3JhZ2VRdW90YUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxT
dG9yYWdlRXJyb3JDYWxsYmFjaz4pOworICAgIHZvaWQgcmVxdWVzdFF1b3RhKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBpbnQgc3RvcmFnZVR5cGUsIHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90
YUluQnl0ZXMsIFJlZlB0cjxTdG9yYWdlUXVvdGFDYWxsYmFjaz4mJiwgUmVmUHRyPFN0b3JhZ2VF
cnJvckNhbGxiYWNrPiYmKTsKIAogICAgIH5TdG9yYWdlSW5mbygpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uaWRsCmluZGV4IGU2MTU3YTBkM2RiYTFlZmU1
MTMxMjM1YjgwNmI1MDVkN2MyOWU5MGUuLmMzMDZmYjNiOTU1OTNmODBhNjBlMzJjOTQwMjc1MTgz
ZTY4MjdhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFn
ZUluZm8uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8u
aWRsCkBAIC0zMSw2ICszMSw2IEBACiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVEVNUE9SQVJZ
ID0gMDsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBQRVJTSVNURU5UID0gMTsKIAotICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIHF1ZXJ5VXNhZ2VBbmRRdW90YSh1
bnNpZ25lZCBzaG9ydCBzdG9yYWdlVHlwZSwgb3B0aW9uYWwgU3RvcmFnZVVzYWdlQ2FsbGJhY2sg
dXNhZ2VDYWxsYmFjaywgb3B0aW9uYWwgU3RvcmFnZUVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFj
ayk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgcmVxdWVzdFF1
b3RhKHVuc2lnbmVkIHNob3J0IHN0b3JhZ2VUeXBlLCB1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVv
dGFJbkJ5dGVzLCBvcHRpb25hbCBTdG9yYWdlUXVvdGFDYWxsYmFjayBxdW90YUNhbGxiYWNrLCBv
cHRpb25hbCBTdG9yYWdlRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKKyAgICBbQ2FsbFdp
dGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCBxdWVyeVVzYWdlQW5kUXVvdGEodW5zaWdu
ZWQgc2hvcnQgc3RvcmFnZVR5cGUsIG9wdGlvbmFsIFN0b3JhZ2VVc2FnZUNhbGxiYWNrPyB1c2Fn
ZUNhbGxiYWNrID0gbnVsbCwgb3B0aW9uYWwgU3RvcmFnZUVycm9yQ2FsbGJhY2s/IGVycm9yQ2Fs
bGJhY2sgPSBudWxsKTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9p
ZCByZXF1ZXN0UXVvdGEodW5zaWduZWQgc2hvcnQgc3RvcmFnZVR5cGUsIHVuc2lnbmVkIGxvbmcg
bG9uZyBuZXdRdW90YUluQnl0ZXMsIG9wdGlvbmFsIFN0b3JhZ2VRdW90YUNhbGxiYWNrPyBxdW90
YUNhbGxiYWNrID0gbnVsbCwgb3B0aW9uYWwgU3RvcmFnZUVycm9yQ2FsbGJhY2s/IGVycm9yQ2Fs
bGJhY2sgPSBudWxsKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1
b3RhL1N0b3JhZ2VRdW90YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdl
UXVvdGEuaAppbmRleCBjY2ZkZTgxZTRlMzlkNDBmYmQ4ZmE1ODI2YTNhMWUxZTM4ZTYyYzlmLi5j
NzIzOGQ5MDM1ZjQzYmZiZjQ0Zjg5YTFhM2JiZTM0YjA2YzIzNDliIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VRdW90YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZVF1b3RhLmgKQEAgLTU1LDkgKzU1LDkgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlUXVvdGEodHlwZSkpOwogICAg
IH0KIAotICAgIHZvaWQgcXVlcnlVc2FnZUFuZFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBQYXNzUmVmUHRyPFN0b3JhZ2VVc2FnZUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxTdG9yYWdlRXJy
b3JDYWxsYmFjaz4pOworICAgIHZvaWQgcXVlcnlVc2FnZUFuZFF1b3RhKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBSZWZQdHI8U3RvcmFnZVVzYWdlQ2FsbGJhY2s+JiYsIFJlZlB0cjxTdG9yYWdl
RXJyb3JDYWxsYmFjaz4mJik7CiAKLSAgICB2b2lkIHJlcXVlc3RRdW90YShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgdW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3RhSW5CeXRlcywgUGFzc1JlZlB0
cjxTdG9yYWdlUXVvdGFDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3RvcmFnZUVycm9yQ2FsbGJhY2s+
KTsKKyAgICB2b2lkIHJlcXVlc3RRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgdW5zaWdu
ZWQgbG9uZyBsb25nIG5ld1F1b3RhSW5CeXRlcywgUmVmUHRyPFN0b3JhZ2VRdW90YUNhbGxiYWNr
PiYmLCBSZWZQdHI8U3RvcmFnZUVycm9yQ2FsbGJhY2s+JiYpOwogCiAgICAgflN0b3JhZ2VRdW90
YSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VR
dW90YS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VRdW90YS5pZGwK
aW5kZXggOTM3ZGM0ZTE4Y2ZhMWY2ZmI1YTQ3NmUxMDE5NmFjNGI1YWU2NWFiYS4uYTczNjE1N2Rj
Y2MyMmNiM2RmZmUyMTJhM2Q5MGI2NmI1ZDFjOGZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlUXVvdGEuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcXVvdGEvU3RvcmFnZVF1b3RhLmlkbApAQCAtMjgsNiArMjgsNiBAQAogICAgIENvbmRp
dGlvbmFsPVFVT1RBLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCiBdIGludGVyZmFj
ZSBTdG9yYWdlUXVvdGEgewotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2
b2lkIHF1ZXJ5VXNhZ2VBbmRRdW90YShTdG9yYWdlVXNhZ2VDYWxsYmFjayB1c2FnZUNhbGxiYWNr
LCBvcHRpb25hbCBTdG9yYWdlRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKLSAgICBbQ2Fs
bFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCByZXF1ZXN0UXVvdGEodW5zaWduZWQg
bG9uZyBsb25nIG5ld1F1b3RhSW5CeXRlcywgb3B0aW9uYWwgU3RvcmFnZVF1b3RhQ2FsbGJhY2sg
cXVvdGFDYWxsYmFjaywgb3B0aW9uYWwgU3RvcmFnZUVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFj
ayk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgcXVlcnlVc2Fn
ZUFuZFF1b3RhKFN0b3JhZ2VVc2FnZUNhbGxiYWNrIHVzYWdlQ2FsbGJhY2ssIG9wdGlvbmFsIFN0
b3JhZ2VFcnJvckNhbGxiYWNrPyBlcnJvckNhbGxiYWNrID0gbnVsbCk7CisgICAgW0NhbGxXaXRo
PVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgcmVxdWVzdFF1b3RhKHVuc2lnbmVkIGxvbmcg
bG9uZyBuZXdRdW90YUluQnl0ZXMsIG9wdGlvbmFsIFN0b3JhZ2VRdW90YUNhbGxiYWNrPyBxdW90
YUNhbGxiYWNrID0gbnVsbCwgb3B0aW9uYWwgU3RvcmFnZUVycm9yQ2FsbGJhY2s/IGVycm9yQ2Fs
bGJhY2sgPSBudWxsKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5pZGwKaW5kZXggN2Q5YmQwOTRkYTllOTdjN2UwMTAwNjk3M2U1MDY1NmIz
YWIwYTMwNi4uNWM2YjI5ZWRhNGYxNTM5MjAyODhjZWJlYzhkZmJlMjkwZTU5Mjk4ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbApAQCAt
NjUsNyArNjUsNyBAQCBlbnVtIEF1ZGlvQ29udGV4dFN0YXRlIHsKIAogICAgIC8vIEFzeW5jaHJv
bm91cyBhdWRpbyBmaWxlIGRhdGEgZGVjb2RpbmcuCiAgICAgLy8gRklYTUU6IHN1Y2Nlc3NDYWxs
YmFjayBzaG91bGQgYmUgb3B0aW9uYWwgYW5kIHRoZSBjYWxsYmFja3Mgc2hvdWxkIG5vdCBiZSBu
dWxsYWJsZS4gVGhpcyBzaG91bGQgYWxzbyByZXR1cm4gYSBQcm9taXNlLgotICAgIHZvaWQgZGVj
b2RlQXVkaW9EYXRhKEFycmF5QnVmZmVyIGF1ZGlvRGF0YSwgQXVkaW9CdWZmZXJDYWxsYmFjaz8g
c3VjY2Vzc0NhbGxiYWNrLCBvcHRpb25hbCBBdWRpb0J1ZmZlckNhbGxiYWNrPyBlcnJvckNhbGxi
YWNrKTsKKyAgICB2b2lkIGRlY29kZUF1ZGlvRGF0YShBcnJheUJ1ZmZlciBhdWRpb0RhdGEsIEF1
ZGlvQnVmZmVyQ2FsbGJhY2s/IHN1Y2Nlc3NDYWxsYmFjaywgb3B0aW9uYWwgQXVkaW9CdWZmZXJD
YWxsYmFjaz8gZXJyb3JDYWxsYmFjayA9IG51bGwpOwogCiAgICAgLy8gU291cmNlcwogICAgIEF1
ZGlvQnVmZmVyU291cmNlTm9kZSBjcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFz
ZS5jcHAKaW5kZXggNWI5ZmRiMzJiMWExYThjYjQwMGE2OGEzMmRlZGU2YjgxMDg2NzA5NS4uM2U1
NTkwMmFhYzU1ZjU0YWU3ZGFiNjQzYjAwMDZmNTE5OTNlMzYzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFz
ZS5jcHAKQEAgLTM3LDE2ICszNywxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZlB0
cjxEYXRhYmFzZT4gRE9NV2luZG93V2ViRGF0YWJhc2U6Om9wZW5EYXRhYmFzZShET01XaW5kb3cm
IHdpbmRvdywgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24sIGNvbnN0
IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwgUGFzc1Jl
ZlB0cjxEYXRhYmFzZUNhbGxiYWNrPiBjcmVhdGlvbkNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBl
YykKK1JlZlB0cjxEYXRhYmFzZT4gRE9NV2luZG93V2ViRGF0YWJhc2U6Om9wZW5EYXRhYmFzZShE
T01XaW5kb3cmIHdpbmRvdywgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNp
b24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6
ZSwgUmVmUHRyPERhdGFiYXNlQ2FsbGJhY2s+JiYgY3JlYXRpb25DYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYgZWMpCiB7CiAgICAgaWYgKCF3aW5kb3cuaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1l
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPERhdGFiYXNlPiBkYXRh
YmFzZSA9IG51bGxwdHI7CisgICAgUmVmUHRyPERhdGFiYXNlPiBkYXRhYmFzZTsKICAgICBEYXRh
YmFzZU1hbmFnZXImIGRiTWFuYWdlciA9IERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCk7CiAg
ICAgRGF0YWJhc2VFcnJvciBlcnJvciA9IERhdGFiYXNlRXJyb3I6Ok5vbmU7CiAgICAgaWYgKGRi
TWFuYWdlci5pc0F2YWlsYWJsZSgpICYmIHdpbmRvdy5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdp
bigpLT5jYW5BY2Nlc3NEYXRhYmFzZSh3aW5kb3cuZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCkpKSB7
Ci0gICAgICAgIGRhdGFiYXNlID0gZGJNYW5hZ2VyLm9wZW5EYXRhYmFzZSh3aW5kb3cuZG9jdW1l
bnQoKSwgbmFtZSwgdmVyc2lvbiwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUsIGNyZWF0aW9u
Q2FsbGJhY2ssIGVycm9yKTsKKyAgICAgICAgZGF0YWJhc2UgPSBkYk1hbmFnZXIub3BlbkRhdGFi
YXNlKHdpbmRvdy5kb2N1bWVudCgpLCBuYW1lLCB2ZXJzaW9uLCBkaXNwbGF5TmFtZSwgZXN0aW1h
dGVkU2l6ZSwgV1RGTW92ZShjcmVhdGlvbkNhbGxiYWNrKSwgZXJyb3IpOwogICAgICAgICBBU1NF
UlQoZGF0YWJhc2UgfHwgZXJyb3IgIT0gRGF0YWJhc2VFcnJvcjo6Tm9uZSk7CiAgICAgICAgIGVj
ID0gRGF0YWJhc2VNYW5hZ2VyOjpleGNlcHRpb25Db2RlRm9yRGF0YWJhc2VFcnJvcihlcnJvcik7
CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmgKaW5kZXggNjU2Zjg4MzE4M2ZjMDk5ZWU5MDkw
YmY0Y2Y5ZTNhOGMzZjMzODJhYi4uNTU5N2QzN2UyY2QwMmNlNjZhZmQwODJmN2RlY2I0ODhiNzYz
MWZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01X
aW5kb3dXZWJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaApAQCAtNDIsMTEgKzQyLDExIEBAIGNsYXNzIEZyYW1l
OwogCiBjbGFzcyBET01XaW5kb3dXZWJEYXRhYmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZlB0cjxEYXRhYmFzZT4gb3BlbkRhdGFiYXNlKERPTVdpbmRvdyYsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNp
Z25lZCBsb25nIGVzdGltYXRlZFNpemUsIFBhc3NSZWZQdHI8RGF0YWJhc2VDYWxsYmFjaz4gY3Jl
YXRpb25DYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBSZWZQdHI8RGF0YWJh
c2U+IG9wZW5EYXRhYmFzZShET01XaW5kb3cmLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgdmVyc2lvbiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBl
c3RpbWF0ZWRTaXplLCBSZWZQdHI8RGF0YWJhc2VDYWxsYmFjaz4mJiBjcmVhdGlvbkNhbGxiYWNr
LCBFeGNlcHRpb25Db2RlJik7CiAKIHByaXZhdGU6Ci0gICAgRE9NV2luZG93V2ViRGF0YWJhc2Uo
KSB7IH07Ci0gICAgfkRPTVdpbmRvd1dlYkRhdGFiYXNlKCkgeyB9OworICAgIERPTVdpbmRvd1dl
YkRhdGFiYXNlKCkgeyB9CisgICAgfkRPTVdpbmRvd1dlYkRhdGFiYXNlKCkgeyB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsCmluZGV4IDE1ZWI0MzUx
NWFmYmIyYzA2NTBjYWZmMjk2NTcyMzc0MDYzMjc1ODUuLjBjYjE3Y2ZjZjRhYTBlNmZjYmMyOTUz
NDIzYmZiZGExMzcwZmQzMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsCkBAIC0yNiw2ICsyNiw2
IEBACiAKIFsKIF0gcGFydGlhbCBpbnRlcmZhY2UgRE9NV2luZG93IHsKLSAgICBbUmFpc2VzRXhj
ZXB0aW9uXSBEYXRhYmFzZSBvcGVuRGF0YWJhc2UoRE9NU3RyaW5nIG5hbWUsIERPTVN0cmluZyB2
ZXJzaW9uLCBET01TdHJpbmcgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6
ZSwgb3B0aW9uYWwgRGF0YWJhc2VDYWxsYmFjayBjcmVhdGlvbkNhbGxiYWNrKTsKKyAgICBbUmFp
c2VzRXhjZXB0aW9uXSBEYXRhYmFzZSBvcGVuRGF0YWJhc2UoRE9NU3RyaW5nIG5hbWUsIERPTVN0
cmluZyB2ZXJzaW9uLCBET01TdHJpbmcgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1h
dGVkU2l6ZSwgb3B0aW9uYWwgRGF0YWJhc2VDYWxsYmFjaz8gY3JlYXRpb25DYWxsYmFjayA9IG51
bGwpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlLmNwcAppbmRleCBjMDhiODYxNDA0Yjg1ODBhOTA5YjNlMjhhMzY0MTE5NmVlMjRmYTE1Li45
NTVhNWIyOWZjNDdhNjI5ZGRiOGU1MmNhMjYwYjFiOTlhMThlMjViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcApAQCAtNTU0LDcgKzU1NCw3
IEBAIHZvaWQgRGF0YWJhc2U6OnNjaGVkdWxlVHJhbnNhY3Rpb24oKQogICAgICAgICBtX3RyYW5z
YWN0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlOwogfQogCi1QYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9u
QmFja2VuZD4gRGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rp
b24+IHRyYW5zYWN0aW9uLCBib29sIHJlYWRPbmx5LCBjb25zdCBDaGFuZ2VWZXJzaW9uRGF0YSog
ZGF0YSkKK1Bhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBEYXRhYmFzZTo6cnVuVHJh
bnNhY3Rpb24oUmVmPFNRTFRyYW5zYWN0aW9uPiYmIHRyYW5zYWN0aW9uLCBib29sIHJlYWRPbmx5
LCBjb25zdCBDaGFuZ2VWZXJzaW9uRGF0YSogZGF0YSkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4KTsKICAgICBpZiAoIW1faXNUcmFuc2FjdGlv
blF1ZXVlRW5hYmxlZCkKQEAgLTU2NCw3ICs1NjQsNyBAQCBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0
aW9uQmFja2VuZD4gRGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FMVHJhbnNh
YwogICAgIGlmIChkYXRhKQogICAgICAgICB3cmFwcGVyID0gQ2hhbmdlVmVyc2lvbldyYXBwZXI6
OmNyZWF0ZShkYXRhLT5vbGRWZXJzaW9uKCksIGRhdGEtPm5ld1ZlcnNpb24oKSk7CiAKLSAgICBS
ZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiB0cmFuc2FjdGlvbkJhY2tlbmQgPSBTUUxUcmFu
c2FjdGlvbkJhY2tlbmQ6OmNyZWF0ZSh0aGlzLCB0cmFuc2FjdGlvbiwgd3JhcHBlciwgcmVhZE9u
bHkpOworICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IHRyYW5zYWN0aW9uQmFja2Vu
ZCA9IFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Y3JlYXRlKHRoaXMsIFdURk1vdmUodHJhbnNhY3Rp
b24pLCB3cmFwcGVyLCByZWFkT25seSk7CiAgICAgbV90cmFuc2FjdGlvblF1ZXVlLmFwcGVuZCh0
cmFuc2FjdGlvbkJhY2tlbmQpOwogICAgIGlmICghbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3MpCiAg
ICAgICAgIHNjaGVkdWxlVHJhbnNhY3Rpb24oKTsKQEAgLTYzNSwyMiArNjM1LDIwIEBAIHZvaWQg
RGF0YWJhc2U6Om1hcmtBc0RlbGV0ZWRBbmRDbG9zZSgpCiAgICAgc3luY2hyb25pemVyLndhaXRG
b3JUYXNrQ29tcGxldGlvbigpOwogfQogCi12b2lkIERhdGFiYXNlOjpjaGFuZ2VWZXJzaW9uKGNv
bnN0IFN0cmluZyYgb2xkVmVyc2lvbiwgY29uc3QgU3RyaW5nJiBuZXdWZXJzaW9uLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+
IGNhbGxiYWNrLCBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4gZXJyb3JD
YWxsYmFjaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxWb2lkQ2Fs
bGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaykKK3ZvaWQgRGF0YWJhc2U6OmNoYW5nZVZlcnNpb24oY29u
c3QgU3RyaW5nJiBvbGRWZXJzaW9uLCBjb25zdCBTdHJpbmcmIG5ld1ZlcnNpb24sIFJlZlB0cjxT
UUxUcmFuc2FjdGlvbkNhbGxiYWNrPiYmIGNhbGxiYWNrLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25F
cnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2ssIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYgc3Vj
Y2Vzc0NhbGxiYWNrKQogewogICAgIENoYW5nZVZlcnNpb25EYXRhIGRhdGEob2xkVmVyc2lvbiwg
bmV3VmVyc2lvbik7Ci0gICAgcnVuVHJhbnNhY3Rpb24oY2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ss
IHN1Y2Nlc3NDYWxsYmFjaywgZmFsc2UsICZkYXRhKTsKKyAgICBydW5UcmFuc2FjdGlvbihXVEZN
b3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgV1RGTW92ZShzdWNjZXNzQ2Fs
bGJhY2spLCBmYWxzZSwgJmRhdGEpOwogfQogCi12b2lkIERhdGFiYXNlOjp0cmFuc2FjdGlvbihQ
YXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrLCBQYXNzUmVmUHRyPFNR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgUGFzc1JlZlB0cjxWb2lk
Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaykKK3ZvaWQgRGF0YWJhc2U6OnRyYW5zYWN0aW9uKFJl
ZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiYmIGNhbGxiYWNrLCBSZWZQdHI8U1FMVHJhbnNh
Y3Rpb25FcnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2ssIFJlZlB0cjxWb2lkQ2FsbGJhY2s+
JiYgc3VjY2Vzc0NhbGxiYWNrKQogewotICAgIHJ1blRyYW5zYWN0aW9uKGNhbGxiYWNrLCBlcnJv
ckNhbGxiYWNrLCBzdWNjZXNzQ2FsbGJhY2ssIGZhbHNlKTsKKyAgICBydW5UcmFuc2FjdGlvbihX
VEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgV1RGTW92ZShzdWNjZXNz
Q2FsbGJhY2spLCBmYWxzZSk7CiB9CiAKLXZvaWQgRGF0YWJhc2U6OnJlYWRUcmFuc2FjdGlvbihQ
YXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrLCBQYXNzUmVmUHRyPFNR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgUGFzc1JlZlB0cjxWb2lk
Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaykKK3ZvaWQgRGF0YWJhc2U6OnJlYWRUcmFuc2FjdGlv
bihSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4mJiBjYWxsYmFjaywgUmVmUHRyPFNRTFRy
YW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4mJiBlcnJvckNhbGxiYWNrLCBSZWZQdHI8Vm9pZENhbGxi
YWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaykKIHsKLSAgICBydW5UcmFuc2FjdGlvbihjYWxsYmFjaywg
ZXJyb3JDYWxsYmFjaywgc3VjY2Vzc0NhbGxiYWNrLCB0cnVlKTsKKyAgICBydW5UcmFuc2FjdGlv
bihXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgV1RGTW92ZShzdWNj
ZXNzQ2FsbGJhY2spLCB0cnVlKTsKIH0KIAogU3RyaW5nIERhdGFiYXNlOjpzdHJpbmdJZGVudGlm
aWVyKCkgY29uc3QKQEAgLTczMiwxMSArNzMwLDExIEBAIHZvaWQgRGF0YWJhc2U6OnJlc2V0QXV0
aG9yaXplcigpCiAKIHZvaWQgRGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9uKFJlZlB0cjxTUUxUcmFu
c2FjdGlvbkNhbGxiYWNrPiYmIGNhbGxiYWNrLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNh
bGxiYWNrPiYmIGVycm9yQ2FsbGJhY2ssIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0Nh
bGxiYWNrLCBib29sIHJlYWRPbmx5LCBjb25zdCBDaGFuZ2VWZXJzaW9uRGF0YSogY2hhbmdlVmVy
c2lvbkRhdGEpCiB7Ci0gICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbiA9IFNR
TFRyYW5zYWN0aW9uOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKHN1
Y2Nlc3NDYWxsYmFjayksIGVycm9yQ2FsbGJhY2suY29weVJlZigpLCByZWFkT25seSk7CisgICAg
UmVmPFNRTFRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbiA9IFNRTFRyYW5zYWN0aW9uOjpjcmVhdGUo
KnRoaXMsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIGVycm9y
Q2FsbGJhY2suY29weVJlZigpLCByZWFkT25seSk7CiAKLSAgICBSZWZQdHI8U1FMVHJhbnNhY3Rp
b25CYWNrZW5kPiB0cmFuc2FjdGlvbkJhY2tlbmQgPSBydW5UcmFuc2FjdGlvbih0cmFuc2FjdGlv
bi5yZWxlYXNlKCksIHJlYWRPbmx5LCBjaGFuZ2VWZXJzaW9uRGF0YSk7CisgICAgUmVmUHRyPFNR
TFRyYW5zYWN0aW9uQmFja2VuZD4gdHJhbnNhY3Rpb25CYWNrZW5kID0gcnVuVHJhbnNhY3Rpb24o
V1RGTW92ZSh0cmFuc2FjdGlvbiksIHJlYWRPbmx5LCBjaGFuZ2VWZXJzaW9uRGF0YSk7CiAgICAg
aWYgKCF0cmFuc2FjdGlvbkJhY2tlbmQgJiYgZXJyb3JDYWxsYmFjaykgewotICAgICAgICBXVEY6
OlJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2tQcm90ZWN0
b3IgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spOworICAgICAgICBSZWZQdHI8U1FMVHJhbnNhY3Rp
b25FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrUHJvdGVjdG9yID0gV1RGTW92ZShlcnJvckNh
bGxiYWNrKTsKICAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhbZXJy
b3JDYWxsYmFja1Byb3RlY3Rvcl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKICAgICAgICAg
ICAgIGVycm9yQ2FsbGJhY2tQcm90ZWN0b3ItPmhhbmRsZUV2ZW50KFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OlVOS05PV05fRVJSLCAiZGF0YWJhc2UgaGFzIGJlZW4gY2xvc2VkIikucHRyKCkp
OwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2UuaAppbmRleCAzZDQ2NmVmNzBiYWIyOTRmNjgzMmJmM2ViMGFhMWExZmI2MDM2MTIyLi5j
MDdkZmJhZjViOWJjZDYxMjQzOGIzYzk4NmIxOGY0MjYwOTY1NTZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCkBAIC02NCw3ICs2NCw3IEBAIHB1
YmxpYzoKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtYXhpbXVtU2l6ZSgpIGNvbnN0OwogCi0g
ICAgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IHJ1blRyYW5zYWN0aW9uKFBhc3NS
ZWZQdHI8U1FMVHJhbnNhY3Rpb24+LCBib29sIHJlYWRPbmx5LCBjb25zdCBDaGFuZ2VWZXJzaW9u
RGF0YSopOworICAgIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBydW5UcmFuc2Fj
dGlvbihSZWY8U1FMVHJhbnNhY3Rpb24+JiYsIGJvb2wgcmVhZE9ubHksIGNvbnN0IENoYW5nZVZl
cnNpb25EYXRhKik7CiAgICAgdm9pZCBzY2hlZHVsZVRyYW5zYWN0aW9uU3RlcChTUUxUcmFuc2Fj
dGlvbkJhY2tlbmQqKTsKICAgICB2b2lkIGluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBsZXRlZCgp
OwogCkBAIC03OCwxMCArNzgsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBEaXJlY3Qgc3VwcG9ydCBm
b3IgdGhlIERPTSBBUEkKICAgICBTdHJpbmcgdmVyc2lvbigpIGNvbnN0OwotICAgIHZvaWQgY2hh
bmdlVmVyc2lvbihjb25zdCBTdHJpbmcmIG9sZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVy
c2lvbiwgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+LCBQYXNzUmVm
UHRyPFZvaWRDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrKTsKLSAgICB2b2lkIHRyYW5zYWN0aW9u
KFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8U1FMVHJhbnNh
Y3Rpb25FcnJvckNhbGxiYWNrPiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxs
YmFjayk7Ci0gICAgdm9pZCByZWFkVHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlv
bkNhbGxiYWNrPiwgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+LCBQYXNz
UmVmUHRyPFZvaWRDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrKTsKKyAgICB2b2lkIGNoYW5nZVZl
cnNpb24oY29uc3QgU3RyaW5nJiBvbGRWZXJzaW9uLCBjb25zdCBTdHJpbmcmIG5ld1ZlcnNpb24s
IFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiYmLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25F
cnJvckNhbGxiYWNrPiYmLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjayk7
CisgICAgdm9pZCB0cmFuc2FjdGlvbihSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4mJiwg
UmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4mJiwgUmVmUHRyPFZvaWRDYWxsYmFj
az4mJiBzdWNjZXNzQ2FsbGJhY2spOworICAgIHZvaWQgcmVhZFRyYW5zYWN0aW9uKFJlZlB0cjxT
UUxUcmFuc2FjdGlvbkNhbGxiYWNrPiYmLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxi
YWNrPiYmLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjayk7CiAKICAgICAv
LyBJbnRlcm5hbCBlbmdpbmUgc3VwcG9ydAogICAgIFN0cmluZyBzdHJpbmdJZGVudGlmaWVyKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2Uu
aWRsCmluZGV4IGNlYjNmMGIwMDI5NGYzNGQxMTQ0ZGM3MGFmYTc1ZDBiNDljMTI4OWQuLjU2NmJm
ZjdmZDMwMWFmZDM0OTU3NDgxYjM2ZDZlZjI1OGEwNTkzNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaWRsCkBAIC0yOCw4ICsyOCw4IEBACiAK
IGludGVyZmFjZSBEYXRhYmFzZSB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2
ZXJzaW9uOwotICAgIHZvaWQgY2hhbmdlVmVyc2lvbihET01TdHJpbmcgb2xkVmVyc2lvbiwgRE9N
U3RyaW5nIG5ld1ZlcnNpb24sIG9wdGlvbmFsIFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2sgY2FsbGJh
Y2ssIG9wdGlvbmFsIFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrLCBv
cHRpb25hbCBWb2lkQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrKTsKLSAgICB2b2lkIHRyYW5zYWN0
aW9uKFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIG9wdGlvbmFsIFNRTFRyYW5zYWN0
aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrLCBvcHRpb25hbCBWb2lkQ2FsbGJhY2sgc3Vj
Y2Vzc0NhbGxiYWNrKTsKLSAgICB2b2lkIHJlYWRUcmFuc2FjdGlvbihTUUxUcmFuc2FjdGlvbkNh
bGxiYWNrIGNhbGxiYWNrLCBvcHRpb25hbCBTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2sgZXJy
b3JDYWxsYmFjaywgb3B0aW9uYWwgVm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjayk7CisgICAg
dm9pZCBjaGFuZ2VWZXJzaW9uKERPTVN0cmluZyBvbGRWZXJzaW9uLCBET01TdHJpbmcgbmV3VmVy
c2lvbiwgb3B0aW9uYWwgU1FMVHJhbnNhY3Rpb25DYWxsYmFjaz8gY2FsbGJhY2sgPSBudWxsLCBv
cHRpb25hbCBTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s/IGVycm9yQ2FsbGJhY2sgPSBudWxs
LCBvcHRpb25hbCBWb2lkQ2FsbGJhY2s/IHN1Y2Nlc3NDYWxsYmFjayA9IG51bGwpOworICAgIHZv
aWQgdHJhbnNhY3Rpb24oU1FMVHJhbnNhY3Rpb25DYWxsYmFjayBjYWxsYmFjaywgb3B0aW9uYWwg
U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPyBlcnJvckNhbGxiYWNrID0gbnVsbCwgb3B0aW9u
YWwgVm9pZENhbGxiYWNrPyBzdWNjZXNzQ2FsbGJhY2sgPSBudWxsKTsKKyAgICB2b2lkIHJlYWRU
cmFuc2FjdGlvbihTUUxUcmFuc2FjdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBvcHRpb25hbCBTUUxU
cmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s/IGVycm9yQ2FsbGJhY2sgPSBudWxsLCBvcHRpb25hbCBW
b2lkQ2FsbGJhY2s/IHN1Y2Nlc3NDYWxsYmFjayA9IG51bGwpOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmlkbAppbmRl
eCA1MTZmNjk2YzhjOWViNWRhNWEyODU3Y2JkMmM2Zjg0OTI5MjE0MjNlLi4xMjViN2QyYzRlZWQ2
Y2VmMmQ4YzJmNThiOWQ5YjczNDAxMTRkM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmlkbApAQCAtMzEsNiArMzEsNiBA
QAogXSBpbnRlcmZhY2UgU1FMVHJhbnNhY3Rpb24gewogICAgIFtDdXN0b21dIHZvaWQgZXhlY3V0
ZVNxbChET01TdHJpbmcgc3FsU3RhdGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBPYmplY3RBcnJheSBhcmd1bWVudHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w
dGlvbmFsIFNRTFN0YXRlbWVudENhbGxiYWNrIGNhbGxiYWNrLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcHRpb25hbCBTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJh
Y2spOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBTUUxTdGF0ZW1lbnRD
YWxsYmFjaz8gY2FsbGJhY2sgPSBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
cHRpb25hbCBTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrPyBlcnJvckNhbGxiYWNrID0gbnVsbCk7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQppbmRleCA3NDBiYmRkNjI5OTMzOWE1MDVlZmUxNjI4MmRmOWQ3MDE2NGRlYTBkLi5h
MzA4YTNhY2Y3YmQyMTIyMDA5Y2VmNTMwZjZkZjFlYzdkMjgxNTA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzM3OCw3
ICszMzc4LDYgQEAgc3ViIENhblVzZVdURk9wdGlvbmFsRm9yUGFyYW1ldGVyCiAgICAgIyBGSVhN
RTogV2Ugc2hvdWxkIHByb2dyZXNzaXZlbHkgc3RvcCBibGFja2xpc3RpbmcgZWFjaCB0eXBlIGJl
bG93CiAgICAgIyBhbmQgZXZlbnR1YWxseSBnZXQgcmlkIG9mIHRoaXMgZnVuY3Rpb24gZW50aXJl
bHkuCiAgICAgcmV0dXJuIDAgaWYgJHBhcmFtZXRlci0+aXNWYXJpYWRpYzsKLSAgICByZXR1cm4g
MCBpZiAkY29kZUdlbmVyYXRvci0+SXNDYWxsYmFja0ludGVyZmFjZSgkdHlwZSk7CiAgICAgcmV0
dXJuIDAgaWYgJGNvZGVHZW5lcmF0b3ItPklzRW51bVR5cGUoJHR5cGUpOwogCiAgICAgcmV0dXJu
IDE7CkBAIC0zNDcwLDcgKzM0NjksNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAg
ICAgICAgbXkgJGFyZ1R5cGUgPSAkcGFyYW1ldGVyLT50eXBlOwogICAgICAgICBteSAkb3B0aW9u
YWwgPSAkcGFyYW1ldGVyLT5pc09wdGlvbmFsOwogCi0gICAgICAgIGRpZSAiT3B0aW9uYWwgcGFy
YW1ldGVycyBvZiBub24tbnVsbGFibGUgd3JhcHBlciB0eXBlcyBhcmUgbm90IHN1cHBvcnRlZCIg
aWYgJG9wdGlvbmFsICYmICEkcGFyYW1ldGVyLT5pc051bGxhYmxlICYmICRjb2RlR2VuZXJhdG9y
LT5Jc1dyYXBwZXJUeXBlKCRhcmdUeXBlKSAmJiAhJGNvZGVHZW5lcmF0b3ItPklzQ2FsbGJhY2tJ
bnRlcmZhY2UoJGFyZ1R5cGUpOworICAgICAgICBkaWUgIk9wdGlvbmFsIHBhcmFtZXRlcnMgb2Yg
bm9uLW51bGxhYmxlIHdyYXBwZXIgdHlwZXMgYXJlIG5vdCBzdXBwb3J0ZWQiIGlmICRvcHRpb25h
bCAmJiAhJHBhcmFtZXRlci0+aXNOdWxsYWJsZSAmJiAkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVy
VHlwZSgkYXJnVHlwZSk7CiAKICAgICAgICAgaWYgKCRvcHRpb25hbCAmJiAhZGVmaW5lZCgkcGFy
YW1ldGVyLT5kZWZhdWx0KSkgewogICAgICAgICAgICAgIyBBcyBwZXIgV2ViIElETCwgb3B0aW9u
YWwgZGljdGlvbmFyeSBwYXJhbWV0ZXJzIGFyZSBhbHdheXMgY29uc2lkZXJlZCB0byBoYXZlIGEg
ZGVmYXVsdCB2YWx1ZSBvZiBhbiBlbXB0eSBkaWN0aW9uYXJ5LCB1bmxlc3Mgb3RoZXJ3aXNlIHNw
ZWNpZmllZC4KQEAgLTM0ODUsMTAgKzM0ODQsMTMgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0No
ZWNrCiAgICAgICAgICAgICAjIEFzIHBlciBXZWIgSURMLCBwYXNzaW5nIHVuZGVmaW5lZCBmb3Ig
YSBudWxsYWJsZSBwYXJhbWV0ZXIgaXMgdHJlYXRlZCBhcyBudWxsLiBUaGVyZWZvcmUsIHVzZSBu
dWxsIGFzCiAgICAgICAgICAgICAjIGRlZmF1bHQgdmFsdWUgZm9yIG51bGxhYmxlIHBhcmFtZXRl
cnMgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQuCiAgICAgICAgICAgICAkcGFyYW1ldGVyLT5k
ZWZhdWx0KCJudWxsIikgaWYgJHBhcmFtZXRlci0+aXNOdWxsYWJsZTsKKworICAgICAgICAgICAg
IyBGb3IgY2FsbGJhY2sgcGFyYW1ldGVycywgd2UgdHJlYXQgdGhlIGdlbmVyYXRlZCBiaW5kaW5n
cyB0cmVhdCB1bmRlZmluZWQgYXMgbnVsbCwgc28gdXNlIG51bGwgYXMgaW1wbGljaXQgZGVmYXVs
dCB2YWx1ZS4KKyAgICAgICAgICAgICRwYXJhbWV0ZXItPmRlZmF1bHQoIm51bGwiKSBpZiAkY29k
ZUdlbmVyYXRvci0+SXNDYWxsYmFja0ludGVyZmFjZSgkYXJnVHlwZSk7CiAgICAgICAgIH0KIAog
ICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgZXZlbnR1YWxseSBzdG9wIGdlbmVyYXRpbmcgYW55
IGVhcmx5IGNhbGxzLCBhbmQgaW5zdGVhZCB1c2UgZWl0aGVyIGRlZmF1bHQgcGFyYW1ldGVyIHZh
bHVlcyBvciBXVEY6Ok9wdGlvbmFsPD4uCi0gICAgICAgIGlmICgkb3B0aW9uYWwgJiYgIWRlZmlu
ZWQoJHBhcmFtZXRlci0+ZGVmYXVsdCkgJiYgIUNhblVzZVdURk9wdGlvbmFsRm9yUGFyYW1ldGVy
KCRwYXJhbWV0ZXIpICYmICEkY29kZUdlbmVyYXRvci0+SXNDYWxsYmFja0ludGVyZmFjZSgkYXJn
VHlwZSkpIHsKKyAgICAgICAgaWYgKCRvcHRpb25hbCAmJiAhZGVmaW5lZCgkcGFyYW1ldGVyLT5k
ZWZhdWx0KSAmJiAhQ2FuVXNlV1RGT3B0aW9uYWxGb3JQYXJhbWV0ZXIoJHBhcmFtZXRlcikpIHsK
ICAgICAgICAgICAgICMgR2VuZXJhdGUgZWFybHkgY2FsbCBpZiB0aGVyZSBhcmUgZW5vdWdoIHBh
cmFtZXRlcnMuCiAgICAgICAgICAgICBpZiAoISRoYXNPcHRpb25hbEFyZ3VtZW50cykgewogICAg
ICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIlxuICAgIHNpemVfdCBhcmdzQ291bnQg
PSBzdGF0ZS0+YXJndW1lbnRDb3VudCgpO1xuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggY2RjMGQxNGMzNmNhNjUzYzVjYzk2
ODQ3ZmQ0Y2EzMWVlYWUzNGU0ZC4uOTkzNDBiYmVkMmNkMjdjYWE1ODRkZjE0OTcyYmU1NTNjN2Rk
NTRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
T2JqLmlkbApAQCAtMjA4LDE1ICsyMDgsMTUgQEAgZW51bSBfb3B0aW9uYWwgeyAiIiwgIk9wdGlv
bmFsVmFsdWUxIiwgIk9wdGlvbmFsVmFsdWUyIiwgIk9wdGlvbmFsVmFsdWUzIiB9OwogICAgIC8v
IENhbGxiYWNrIGludGVyZmFjZSBwYXJhbWV0ZXJzLgogICAgIHZvaWQgICAgbWV0aG9kV2l0aENh
bGxiYWNrQXJnKFRlc3RDYWxsYmFjayBjYWxsYmFjayk7CiAgICAgdm9pZCAgICBtZXRob2RXaXRo
Tm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZyhsb25nIG5vbkNhbGxiYWNrLCBUZXN0Q2FsbGJh
Y2sgY2FsbGJhY2spOwotICAgIHZvaWQgICAgbWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxB
cmcob3B0aW9uYWwgVGVzdENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICB2b2lkICAgIG1ldGhvZFdp
dGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKG9wdGlvbmFsIFRlc3RDYWxsYmFjaz8gY2FsbGJhY2sg
PSBudWxsKTsKIAogICAgIC8vIENhbGxiYWNrIGZ1bmN0aW9uIHBhcmFtZXRlcnMuCiAgICAgdm9p
ZCAgICBtZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFyZyhUZXN0Q2FsbGJhY2tGdW5jdGlvbiBj
YWxsYmFjayk7CiAgICAgdm9pZCAgICBtZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFj
a0Z1bmN0aW9uQXJnKGxvbmcgbm9uQ2FsbGJhY2ssIFRlc3RDYWxsYmFja0Z1bmN0aW9uIGNhbGxi
YWNrKTsKLSAgICB2b2lkICAgIG1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQW5kT3B0aW9uYWxB
cmcob3B0aW9uYWwgVGVzdENhbGxiYWNrRnVuY3Rpb24gY2FsbGJhY2spOworICAgIHZvaWQgICAg
bWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BbmRPcHRpb25hbEFyZyhvcHRpb25hbCBUZXN0Q2Fs
bGJhY2tGdW5jdGlvbj8gY2FsbGJhY2sgPSBudWxsKTsKIAogICAgIC8vIHN0YXRpYyBtZXRob2Rz
IHdpdGggJ0NhbGxiYWNrJyBleHRlbmRlZCBhdHRyaWJ1dGUKLSAgICBzdGF0aWMgdm9pZCAgICBz
dGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyhvcHRpb25hbCBUZXN0Q2FsbGJh
Y2sgY2FsbGJhY2spOworICAgIHN0YXRpYyB2b2lkICAgIHN0YXRpY01ldGhvZFdpdGhDYWxsYmFj
a0FuZE9wdGlvbmFsQXJnKG9wdGlvbmFsIFRlc3RDYWxsYmFjaz8gY2FsbGJhY2sgPSBudWxsKTsK
ICAgICBzdGF0aWMgdm9pZCAgICBzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmcoVGVzdENhbGxi
YWNrIGNhbGxiYWNrKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVySXRlbS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0u
aAppbmRleCAxMWY1OGU5NzkyYmUxYTI1MmE2MzY2MTI3ZDljMzdjMzVmOTQ5NDA1Li40NjQ4YzJh
NjdjYTgwNDdjMDNhYTViNzUzZmRkNjkwMDEwM2E0ZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXJJdGVtLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3Ry
aW5nIGtpbmQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgdHlwZSgpIGNvbnN0ID0g
MDsKIAotICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmluZ0NhbGxi
YWNrPikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhSZWZQdHI8U3Ry
aW5nQ2FsbGJhY2s+JiYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmxvYj4g
Z2V0QXNGaWxlKCkgY29uc3QgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ckl0ZW0uaWRsCmluZGV4IDhkZjk3NTkxYmYwODYyNDBhMDVmNDZmNTRmMGZkMDZiODU5NzhjY2Uu
LmVhNTM0ZmZiMjZiMWEzM2MzZDc2MmM0OGE4N2U1MWE2YTc1OTkyMTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKQEAgLTM2LDcgKzM2LDcgQEAKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGtpbmQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyB0eXBlOwogCi0gICAgdm9pZCBnZXRBc1N0cmluZyhvcHRpb25hbCBTdHJpbmdDYWxsYmFj
ayBjYWxsYmFjayk7CisgICAgdm9pZCBnZXRBc1N0cmluZyhvcHRpb25hbCBTdHJpbmdDYWxsYmFj
az8gY2FsbGJhY2sgPSBudWxsKTsKICAgICBCbG9iIGdldEFzRmlsZSgpOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQuaAppbmRleCAzZDVhNDVhMmZjMGE1MmQyOGNjMTM5OWJjNWQ3MTAyZmMzYjdkYzE0Li5k
ODdhYTE0M2Q0OTdiMDIxYTQxYTMzZTkzNmM0OTk2NWYyMzBhNWM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQu
aApAQCAtNjAsMTAgKzYwLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBub3RpZmljYXRpb25PYmpl
Y3REZXN0cm95ZWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBu
b3RpZmljYXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKExF
R0FDWV9OT1RJRklDQVRJT05TKQotICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNr
Pikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4mJikgb3ZlcnJp
ZGU7CiAjZW5kaWYKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICB2b2lkIHJlcXVlc3RQ
ZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFdl
YkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4pIG92ZXJyaWRlOworICAgIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFJl
ZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpIG92ZXJyaWRl
OwogI2VuZGlmCiAgICAgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlIHsgfQogICAgIGJvb2wgaGFzUGVuZGlu
Z1Blcm1pc3Npb25SZXF1ZXN0cyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgY29u
c3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0KaW5kZXggYWRlOTNkMGE3NDE5N2UxZTUwOTg5
OTlhYWEzYzM5MzBjMGQ5YzZlMy4uZjU1Mjk4Y2ZhYjMwMTAxZjZjOTNlOGI1ZjI4ODVlYTk4NGU0
ZDIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90
aWZpY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQpAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgV2ViTm90
aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBXCiAjZW5kaWYKIAogI2lmIEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykK
LXZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2sp
Cit2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mJiBjYWxsYmFjaykK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgV2ViTm90aWZpY2F0aW9u
UG9saWN5TGlzdGVuZXIgKmxpc3RlbmVyID0gW1tXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5l
ciBhbGxvY10gaW5pdFdpdGhWb2lkQ2FsbGJhY2s6Y2FsbGJhY2tdOwpAQCAtMjA0LDcgKzIwNCw3
IEBAIGJvb2wgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpoYXNQZW5kaW5nUGVybWlzc2lvblJlcXVl
c3RzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiB9CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKLXZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Np
b25DYWxsYmFjaz4gY2FsbGJhY2spCit2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVz
dFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUmVmUHRyPE5vdGlm
aWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJiBjYWxsYmFjaykKIHsKICAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CiAgICAgV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgKmxp
c3RlbmVyID0gW1tXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhD
YWxsYmFjazpjYWxsYmFja107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3Bw
CmluZGV4IDAyYzNjNThlMjY4MDY3NmMwOWJkOGJmMjdlN2ZhY2ZkZTUxMmQ4YmUuLjE0YTcwNTlk
NTkwNTk2ZDY4MmQ5Y2Q0ODZlMmYzNTYwMGRkYzkzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmlj
YXRpb25zRGVsZWdhdGUuY3BwCkBAIC0xNzAsMTQgKzE3MCwxNCBAQCB2b2lkIFdlYkRlc2t0b3BO
b3RpZmljYXRpb25zRGVsZWdhdGU6Om5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQog
ewogfQogCi12b2lkIFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6OnJlcXVlc3RQZXJt
aXNzaW9uKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPikK
K3ZvaWQgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6cmVxdWVzdFBlcm1pc3Npb24o
U2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mJikKIHsKICAgICBC
U3RyaW5nIG9yZyhvcmlnaW4tPnRvU3RyaW5nKCkpOwogICAgIGlmIChoYXNOb3RpZmljYXRpb25E
ZWxlZ2F0ZSgpKQogICAgICAgICBub3RpZmljYXRpb25EZWxlZ2F0ZSgpLT5yZXF1ZXN0Tm90aWZp
Y2F0aW9uUGVybWlzc2lvbihvcmcpOwogfQogCi12b2lkIFdlYkRlc2t0b3BOb3RpZmljYXRpb25z
RGVsZWdhdGU6OnJlcXVlc3RQZXJtaXNzaW9uKFNlY3VyaXR5T3JpZ2luKiwgUGFzc1JlZlB0cjxO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+KQordm9pZCBXZWJEZXNrdG9wTm90aWZpY2F0
aW9uc0RlbGVnYXRlOjpyZXF1ZXN0UGVybWlzc2lvbihTZWN1cml0eU9yaWdpbiosIFJlZlB0cjxO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVs
ZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3Rp
ZmljYXRpb25zRGVsZWdhdGUuaAppbmRleCBiOWU0NDc4YTA0YWM2MDRhNDgzZjk4YjNlNTcyNDli
MjE5ZDQ5ZWU4Li4yODc4YTk4MjJlOTNlYzdlNjQxZTQ1MjRkZDA0Y2QxY2E1MGUyYWE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZp
Y2F0aW9uc0RlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5oCkBAIC01MSwxMCArNTEsMTAgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uKiBvYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25D
b250cm9sbGVyRGVzdHJveWVkKCk7CiAjaWYgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQot
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPik7CisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgUmVmUHRyPFdlYkNv
cmU6OlZvaWRDYWxsYmFjaz4mJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
LSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4qLCBQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4p
OworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiosIFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYp
OwogI2VuZGlmCiAgICAgYm9vbCBoYXNQZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgY2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5jcHAKaW5kZXggMTVhNWJiYWE5ZWJiOWEzOTI5YTQ3OTU3NzZiZjZjYzUzYjY4
ZjQ1Mi4uODFmZjFiMWI3NWUwZmYyZmIwNGI3NGYwZjA3NWQ2NDcxZGEzMzgyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAK
QEAgLTY5LDcgKzY5LDcgQEAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGEKICNlbmRpZgogCiAjaWYg
RU5BQkxFKE5PVElGSUNBVElPTlMpCi12b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIFBhc3NSZWZQdHI8
Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiBjYWxsYmFjaykKK3ZvaWQgTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4q
IG9yaWdpbiwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJiBjYWxsYmFj
aykKIHsKICAgICBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gcGVybWlzc2lvbiA9IHBl
cm1pc3Npb25MZXZlbChvcmlnaW4pOwogICAgIGlmIChwZXJtaXNzaW9uICE9IE5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbk5vdEFsbG93ZWQpIHsKQEAgLTgxLDEzICs4MSwxMyBAQCB2b2lk
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KFNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4sCiAgICAgdWludDY0X3QgcmVxdWVzdElEID0gZ2VuZXJhdGVSZXF1
ZXN0SUQoKTsKICAgICBtX29yaWdpblRvSURNYXAuc2V0KG9yaWdpbiwgcmVxdWVzdElEKTsKICAg
ICBtX2lkVG9PcmlnaW5NYXAuc2V0KHJlcXVlc3RJRCwgb3JpZ2luKTsKLSAgICBtX2lkVG9DYWxs
YmFja01hcC5zZXQocmVxdWVzdElELCBjYWxsYmFjayk7CisgICAgbV9pZFRvQ2FsbGJhY2tNYXAu
c2V0KHJlcXVlc3RJRCwgV1RGTW92ZShjYWxsYmFjaykpOwogICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihyZXF1ZXN0
SUQsIG9yaWdpbi0+dG9TdHJpbmcoKSkpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTEVHQUNZ
X05PVElGSUNBVElPTlMpCi12b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjo6c3RhcnRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6Vm9pZENhbGxiYWNrPiBjYWxsYmFjaykKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgUmVmUHRy
PFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4mJiBjYWxsYmFjaykKIHsKICAgICBOb3RpZmljYXRpb25D
bGllbnQ6OlBlcm1pc3Npb24gcGVybWlzc2lvbiA9IHBlcm1pc3Npb25MZXZlbChvcmlnaW4pOwog
ICAgIGlmIChwZXJtaXNzaW9uICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbk5vdEFs
bG93ZWQpIHsKQEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChTZWN1cml0eU9yaWdpbiogb3JpZ2luLAogICAgIHVp
bnQ2NF90IHJlcXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVzdElEKCk7CiAgICAgbV9vcmlnaW5Ub0lE
TWFwLnNldChvcmlnaW4sIHJlcXVlc3RJRCk7CiAgICAgbV9pZFRvT3JpZ2luTWFwLnNldChyZXF1
ZXN0SUQsIG9yaWdpbik7Ci0gICAgbV9pZFRvVm9pZENhbGxiYWNrTWFwLnNldChyZXF1ZXN0SUQs
IGNhbGxiYWNrKTsKKyAgICBtX2lkVG9Wb2lkQ2FsbGJhY2tNYXAuc2V0KHJlcXVlc3RJRCwgV1RG
TW92ZShjYWxsYmFjaykpOwogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihyZXF1ZXN0SUQsIG9yaWdpbi0+dG9TdHJp
bmcoKSkpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmgKaW5kZXggNzA4MjdkNjBiZDQ1MTQ4MzFiYTg3MGU1YzcyM2Yy
Y2YzY2ZmNGMyZC4uODZlNGNmYzI2NGMyMTczN2FjMGFjN2RlYWQ4YTk2NjBhNDU2ZmMyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
aApAQCAtNTAsMTAgKzUwLDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gY3JlYXRlKFdlYlBhZ2UqKTsKIAogI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQotICAgIHZvaWQgc3RhcnRSZXF1ZXN0KFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJh
Y2s+KTsKKyAgICB2b2lkIHN0YXJ0UmVxdWVzdChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIFJl
ZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpOwogI2VuZGlm
CiAjaWYgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotICAgIHZvaWQgc3RhcnRSZXF1ZXN0
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJh
Y2s+KTsKKyAgICB2b2lkIHN0YXJ0UmVxdWVzdChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIFJl
ZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJhY2s+JiYpOwogI2VuZGlmCiAgICAgdm9pZCBjYW5jZWxS
ZXF1ZXN0KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKik7CiAgICAgYm9vbCBoYXNQZW5kaW5nUGVy
bWlzc2lvblJlcXVlc3RzKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKikgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNh
dGlvbkNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKaW5kZXggYzdkODIxYTExZWYwZjA4YzQ4Mzg2NTA1
OTViNzkwMjI4NTY0NzZiNy4uMjNhMTQwMTc3MTExNDU3YjMwMzRkZDQzZjY1NzY2ZGU1MWFlZWFl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcApAQCAtNzMsMTYgKzczLDE2
IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpub3RpZmljYXRpb25Db250cm9sbGVyRGVz
dHJveWVkKCkKIH0KIAogI2lmIEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLXZvaWQgV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4gY2FsbGJhY2sp
Cit2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4mJiBj
YWxsYmFjaykKIHsKLSAgICBtX3BhZ2UtPm5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcigpLT5zdGFydFJlcXVlc3QoY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwgY2FsbGJhY2sp
OworICAgIG1fcGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPnN0
YXJ0UmVxdWVzdChjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotdm9pZCBXZWJOb3RpZmlj
YXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiBjYWxsYmFj
aykKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNh
bGxiYWNrPiYmIGNhbGxiYWNrKQogewotICAgIG1fcGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyKCktPnN0YXJ0UmVxdWVzdChjb250ZXh0LT5zZWN1cml0eU9yaWdpbigp
LCBjYWxsYmFjayk7CisgICAgbV9wYWdlLT5ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIoKS0+c3RhcnRSZXF1ZXN0KGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUo
Y2FsbGJhY2spKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaApp
bmRleCAxZGYyNTVlNjJlNjNkZmNiMDNmMmYxNmJhMDkwYTc5Y2U5MWZiYTFjLi45YmM4MGQxZWU1
ZjUwYWNjYzY4MzZiOTM2ZTQzMzI1YTU3MDRlMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50LmgKQEAgLTUyLDEwICs1MiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgbm90aWZpY2F0
aW9uT2JqZWN0RGVzdHJveWVkKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopIG92ZXJyaWRlOwogICAg
IHZvaWQgbm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwogI2lmIEVO
QUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRD
YWxsYmFjaz4pIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFJlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJhY2s+JiYp
IG92ZXJyaWRlOwogI2VuZGlmCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgdm9pZCBy
ZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+KSBvdmVycmlkZTsK
KyAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKSBv
dmVycmlkZTsKICNlbmRpZgogICAgIHZvaWQgY2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVycmlkZTsKICAgICBib29sIGhhc1Bl
bmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCop
IGNvbnN0IG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277731</attachid>
            <date>2016-04-29 13:42:26 -0700</date>
            <delta_ts>2016-04-29 21:46:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157188-20160429134259.patch</filename>
            <type>text/plain</type>
            <size>44344</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjIzZTJkOGRmZDliNWQ0
ZTIyNDliY2Q0ZjBiOWE2YzkwYjYzYWEyYy4uYjAyMWFkOTkxNGM2MTM5MWY4ZGQ5MzE0MGQwYTYy
MzkxMmEwZDg1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ5IEBACiAyMDE2LTA0LTI5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgW1dlYiBJRExdIFNwZWNpZnkg
ZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWVzIGZvciBjYWxsYmFjayBwYXJhbWV0ZXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcxODgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGVjaWZ5IGRlZmF1bHQg
cGFyYW1ldGVyIHZhbHVlcyBmb3IgY2FsbGJhY2sgcGFyYW1ldGVycy4KKworICAgICAgICAqIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0
aW9uOjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25D
ZW50ZXIuaWRsOgorICAgICAgICAqIE1vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZUluZm86OnF1ZXJ5VXNhZ2VBbmRRdW90YSk6CisgICAgICAg
IChXZWJDb3JlOjpTdG9yYWdlSW5mbzo6cmVxdWVzdFF1b3RhKToKKyAgICAgICAgKiBNb2R1bGVz
L3F1b3RhL1N0b3JhZ2VJbmZvLmg6CisgICAgICAgICogTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5m
by5pZGw6CisgICAgICAgICogTW9kdWxlcy9xdW90YS9TdG9yYWdlUXVvdGEuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3F1b3RhL1N0b3JhZ2VRdW90YS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRE9N
V2luZG93V2ViRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViRGF0
YWJhc2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01X
aW5kb3dXZWJEYXRhYmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViRGF0YWJh
c2U6OkRPTVdpbmRvd1dlYkRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1dl
YkRhdGFiYXNlOjp+RE9NV2luZG93V2ViRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnJ1blRy
YW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpjaGFuZ2VWZXJzaW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjp0cmFuc2FjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZTo6cmVhZFRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5pZGw6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAg
IChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAgICAgIChDYW5Vc2VXVEZPcHRpb25hbEZv
clBhcmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RPYmouaWRsOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtLmg6CisgICAgICAgICog
ZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsOgorCisyMDE2LTA0LTI5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKICAgICAgICAgW1dlYiBJRExdIFNwZWNpZnkgZGVmYXVsdCB2YWx1
ZXMgZm9yIG9wdGlvbmFsIHBhcmFtZXRlcnMgb2Ygd3JhcHBlciB0eXBlcwogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MTYxCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKaW5kZXggZTNh
YzllYTY4YmI3MmQwMzkwMWJiZDgxMGFmZDMxMTM5MGIzNTNiMi4uY2E1ZTljNDg3NzMzODU4NTJh
YjlmMDQzNDMxZjVlNDg4YmRhY2RhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKQEAgLTMwLDExICszMCwxMSBAQAogICAgIEdl
bmVyYXRlSXNSZWFjaGFibGU9SW1wbEZyYW1lLAogXSBpbnRlcmZhY2UgR2VvbG9jYXRpb24gewog
ICAgIFtDdXN0b21dIHZvaWQgZ2V0Q3VycmVudFBvc2l0aW9uKFBvc2l0aW9uQ2FsbGJhY2sgc3Vj
Y2Vzc0NhbGxiYWNrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIFBvc2l0aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFBvc2l0aW9uRXJyb3JDYWxsYmFjaz8gZXJy
b3JDYWxsYmFjayA9IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3B0aW9uYWwgUG9zaXRpb25PcHRpb25zIG9wdGlvbnMpOwogCiAgICAgW0N1c3RvbV0gbG9uZyB3
YXRjaFBvc2l0aW9uKFBvc2l0aW9uQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBQb3NpdGlvbkVycm9yQ2FsbGJhY2sgZXJy
b3JDYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgUG9z
aXRpb25FcnJvckNhbGxiYWNrPyBlcnJvckNhbGxiYWNrID0gbnVsbCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgUG9zaXRpb25PcHRpb25zIG9wdGlvbnMpOwogCiAg
ICAgdm9pZCBjbGVhcldhdGNoKGxvbmcgd2F0Y2hJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IGMyOWFlMWY0
Y2U0YTYyMDc2YmFmOTQ5NTRkZTYwMmNiYjgwYzkxZmQuLmEzMjJkMzNiYTZlMzA0MTQwOWU2ZGM3
NDQyMjRjM2RmNzIxZDhlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC0yNDEsOSArMjQxLDkgQEAgY29uc3Qg
U3RyaW5nIE5vdGlmaWNhdGlvbjo6cGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRpb25DbGllbnQ6
OlBlcm1pc3Npb24gcGVybWkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLXZvaWQgTm90aWZp
Y2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8
Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiBjYWxsYmFjaykKK3ZvaWQgTm90aWZpY2F0
aW9uOjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZlB0cjxOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7Ci0gICAgTm90aWZpY2F0aW9u
Q29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC5wYWdlKCkpLT5jbGllbnQoKS0+cmVxdWVzdFBlcm1p
c3Npb24oJmRvY3VtZW50LCBjYWxsYmFjayk7CisgICAgTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6
ZnJvbShkb2N1bWVudC5wYWdlKCkpLT5jbGllbnQoKS0+cmVxdWVzdFBlcm1pc3Npb24oJmRvY3Vt
ZW50LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCmluZGV4IDI0ZTBjNWNh
MjY4Njg0MThkMDQzOTA1MTAzOGFmNzM3OGVlOTRlODAuLjc5NWM5MzdiMjdlYWU3NThkNTEzNjgw
ZTg2NWFjNTVlM2ZkOWMwNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgc3RhdGljIGNvbnN0IFN0cmluZyBwZXJtaXNz
aW9uKERvY3VtZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFN0cmluZyBw
ZXJtaXNzaW9uU3RyaW5nKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik7Ci0gICAgc3Rh
dGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQYXNzUmVmUHRyPE5vdGlmaWNh
dGlvblBlcm1pc3Npb25DYWxsYmFjaz4gPSBudWxscHRyKTsKKyAgICBzdGF0aWMgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbihEb2N1bWVudCYsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2Fs
bGJhY2s+JiYpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsCmluZGV4IDQyMTc5M2YxODgy
ODllMzlmZGJjY2IzMjdhODEyYzFhOGM4NTFlMjguLmFjZDAxOGY0ZGFmNWNkMTlhMWVjZjQzMzQ1
ZWE3ZWE3MTdjZWJmYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsCkBAIC00Myw3ICs0Myw3IEBACiAgICAgW0NvbmRp
dGlvbmFsPU5PVElGSUNBVElPTlNdIHZvaWQgY2xvc2UoKTsKIAogICAgIFtDb25kaXRpb25hbD1O
T1RJRklDQVRJT05TLCBDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgcGVybWlzc2lvbjsKLSAgICBbQ29uZGl0aW9uYWw9Tk9USUZJQ0FUSU9OUywg
Q2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKG9wdGlvbmFs
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjayBjYWxsYmFjayk7CisgICAgW0NvbmRpdGlv
bmFsPU5PVElGSUNBVElPTlMsIENhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgdm9pZCByZXF1ZXN0
UGVybWlzc2lvbihvcHRpb25hbCBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s/IGNhbGxi
YWNrID0gbnVsbCk7CiAKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uY2xpY2s7CiAgICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmNsb3NlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbAppbmRl
eCA1NDM0M2NmYTlkMzg5MDYxYTYxY2U4NTM2M2M2M2NjYmNmZDNkYzllLi42YzBiMjg4N2ZjMWIz
OGJhZWI3YTBlMTk2ZmIzODhhNjhiMjY1MDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbApAQCAt
MzcsNiArMzcsNiBAQAogICAgW1JhaXNlc0V4Y2VwdGlvbl0gTm90aWZpY2F0aW9uIGNyZWF0ZU5v
dGlmaWNhdGlvbihET01TdHJpbmcgaWNvblVybCwgRE9NU3RyaW5nIHRpdGxlLCBET01TdHJpbmcg
Ym9keSk7CiAKICAgIGludCBjaGVja1Blcm1pc3Npb24oKTsKLSAgIHZvaWQgcmVxdWVzdFBlcm1p
c3Npb24ob3B0aW9uYWwgVm9pZENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgIHZvaWQgcmVxdWVzdFBl
cm1pc3Npb24ob3B0aW9uYWwgVm9pZENhbGxiYWNrPyBjYWxsYmFjayA9IG51bGwpOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbkNsaWVudC5oCmluZGV4IDczMWRlZDg3MzM0MTAzMGY0YmNmMjQ5NjJmNDU1YzMzYTlh
ZGM1YWYuLmM3ZWI5MGJkMjhhYmViZTEyN2VmODUxYjZhMGE5M2MwOTAxY2UzODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ2xpZW50LmgKQEAgLTc1LDEwICs3NSwxMCBAQCBwdWJsaWM6CiAgICAgLy8gUmVxdWVzdHMg
dXNlciBwZXJtaXNzaW9uIHRvIHNob3cgZGVza3RvcCBub3RpZmljYXRpb25zIGZyb20gYSBwYXJ0
aWN1bGFyCiAgICAgLy8gc2NyaXB0IGNvbnRleHQuIFRoZSBjYWxsYmFjayBwYXJhbWV0ZXIgc2hv
dWxkIGJlIHJ1biB3aGVuIHRoZSB1c2VyIGhhcwogICAgIC8vIG1hZGUgYSBkZWNpc2lvbi4KLSAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUmVmUHRyPFZvaWRDYWxsYmFjaz4m
JikgPSAwOwogI2VuZGlmCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
PE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFJlZlB0cjxOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpID0gMDsKICNlbmRpZgogCiAgICAgdmlydHVhbCBi
b29sIGhhc1BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCop
IGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3Rv
cmFnZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mby5j
cHAKaW5kZXggNTkwZTQwYjNiZWQ2MzJlYWJjNjc4MjJiMjA3MjkxYzJkMGFhOTU1MS4uY2Q4M2E0
YTkyMjA4Zjk2Mjk4ZWFjMmVmNjgxNzgxYzQ3YzQ3NTViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mby5jcHAKQEAgLTUyLDI4ICs1MiwyOCBAQCBTdG9yYWdl
SW5mbzo6flN0b3JhZ2VJbmZvKCkKIHsKIH0KIAotdm9pZCBTdG9yYWdlSW5mbzo6cXVlcnlVc2Fn
ZUFuZFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IGludCBzdG9yYWdlVHlwZSwgUGFzc1JlZlB0cjxTdG9yYWdlVXNhZ2VDYWxsYmFjaz4gc3VjY2Vz
c0NhbGxiYWNrLCBQYXNzUmVmUHRyPFN0b3JhZ2VFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNr
KQordm9pZCBTdG9yYWdlSW5mbzo6cXVlcnlVc2FnZUFuZFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGludCBzdG9yYWdlVHlwZSwgUmVmUHRyPFN0
b3JhZ2VVc2FnZUNhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaywgUmVmUHRyPFN0b3JhZ2VFcnJv
ckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2spCiB7CiAgICAgLy8gRGlzcGF0Y2hpbmcgdGhlIHJl
cXVlc3QgdG8gU3RvcmFnZVF1b3RhLCBhcyB0aGlzIGludGVyZmFjZSBpcyBkZXByZWNhdGVkIGlu
IGZhdm9yIG9mIFN0b3JhZ2VRdW90YS4KICAgICBTdG9yYWdlUXVvdGEqIHN0b3JhZ2VRdW90YSA9
IGdldFN0b3JhZ2VRdW90YShzdG9yYWdlVHlwZSk7CiAgICAgaWYgKCFzdG9yYWdlUXVvdGEpIHsK
ICAgICAgICAgLy8gVW5rbm93biBzdG9yYWdlIHR5cGUgaXMgcmVxdWVzdGVkLgotICAgICAgICBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhTdG9yYWdlRXJyb3JDYWxsYmFjazo6Q2Fs
bGJhY2tUYXNrOjpjcmVhdGUoZXJyb3JDYWxsYmFjaywgTk9UX1NVUFBPUlRFRF9FUlIpKTsKKyAg
ICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soU3RvcmFnZUVycm9yQ2FsbGJh
Y2s6OkNhbGxiYWNrVGFzazo6Y3JlYXRlKFdURk1vdmUoZXJyb3JDYWxsYmFjayksIE5PVF9TVVBQ
T1JURURfRVJSKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgc3RvcmFnZVF1b3RhLT5x
dWVyeVVzYWdlQW5kUXVvdGEoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc3VjY2Vzc0NhbGxiYWNr
LCBlcnJvckNhbGxiYWNrKTsKKyAgICBzdG9yYWdlUXVvdGEtPnF1ZXJ5VXNhZ2VBbmRRdW90YShz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUo
ZXJyb3JDYWxsYmFjaykpOwogfQogCi12b2lkIFN0b3JhZ2VJbmZvOjpyZXF1ZXN0UXVvdGEoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgaW50IHN0b3JhZ2VU
eXBlLCB1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBQYXNzUmVmUHRyPFN0b3Jh
Z2VRdW90YUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8U3RvcmFnZUVycm9y
Q2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCit2b2lkIFN0b3JhZ2VJbmZvOjpyZXF1ZXN0UXVvdGEo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgaW50IHN0b3Jh
Z2VUeXBlLCB1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBSZWZQdHI8U3RvcmFn
ZVF1b3RhQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrLCBSZWZQdHI8U3RvcmFnZUVycm9yQ2Fs
bGJhY2s+JiYgZXJyb3JDYWxsYmFjaykKIHsKICAgICAvLyBEaXNwYXRjaGluZyB0aGUgcmVxdWVz
dCB0byBTdG9yYWdlUXVvdGEsIGFzIHRoaXMgaW50ZXJmYWNlIGlzIGRlcHJlY2F0ZWQgaW4gZmF2
b3Igb2YgU3RvcmFnZVF1b3RhLgogICAgIFN0b3JhZ2VRdW90YSogc3RvcmFnZVF1b3RhID0gZ2V0
U3RvcmFnZVF1b3RhKHN0b3JhZ2VUeXBlKTsKICAgICBpZiAoIXN0b3JhZ2VRdW90YSkgewogICAg
ICAgICAvLyBVbmtub3duIHN0b3JhZ2UgdHlwZSBpcyByZXF1ZXN0ZWQuCi0gICAgICAgIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFN0b3JhZ2VFcnJvckNhbGxiYWNrOjpDYWxsYmFj
a1Rhc2s6OmNyZWF0ZShlcnJvckNhbGxiYWNrLCBOT1RfU1VQUE9SVEVEX0VSUikpOworICAgICAg
ICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhTdG9yYWdlRXJyb3JDYWxsYmFjazo6
Q2FsbGJhY2tUYXNrOjpjcmVhdGUoV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgTk9UX1NVUFBPUlRF
RF9FUlIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBzdG9yYWdlUXVvdGEtPnJlcXVl
c3RRdW90YShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBuZXdRdW90YUluQnl0ZXMsIHN1Y2Nlc3ND
YWxsYmFjaywgZXJyb3JDYWxsYmFjayk7CisgICAgc3RvcmFnZVF1b3RhLT5yZXF1ZXN0UXVvdGEo
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgbmV3UXVvdGFJbkJ5dGVzLCBXVEZNb3ZlKHN1Y2Nlc3ND
YWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxsYmFjaykpOwogfQogCiBTdG9yYWdlUXVvdGEqIFN0
b3JhZ2VJbmZvOjpnZXRTdG9yYWdlUXVvdGEoaW50IHN0b3JhZ2VUeXBlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mby5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mby5oCmluZGV4IDQyZGEzZjJjY2FjZGRhOTYxMzNi
NmVlMTVmZjRmZDNkNjg4NjIzYjMuLmI2ODQxMzg4YjUxODBmNjNlODUwYzI1M2Q4ZmMzMjU3NDZl
YTZkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUlu
Zm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvLmgKQEAg
LTU3LDkgKzU3LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9y
YWdlSW5mbygpKTsKICAgICB9CiAKLSAgICB2b2lkIHF1ZXJ5VXNhZ2VBbmRRdW90YShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgaW50IHN0b3JhZ2VUeXBlLCBQYXNzUmVmUHRyPFN0b3JhZ2VVc2Fn
ZUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxTdG9yYWdlRXJyb3JDYWxsYmFjaz4pOworICAgIHZvaWQg
cXVlcnlVc2FnZUFuZFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBpbnQgc3RvcmFnZVR5
cGUsIFJlZlB0cjxTdG9yYWdlVXNhZ2VDYWxsYmFjaz4mJiwgUmVmUHRyPFN0b3JhZ2VFcnJvckNh
bGxiYWNrPiYmKTsKIAotICAgIHZvaWQgcmVxdWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBpbnQgc3RvcmFnZVR5cGUsIHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90YUluQnl0ZXMs
IFBhc3NSZWZQdHI8U3RvcmFnZVF1b3RhQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFN0b3JhZ2VFcnJv
ckNhbGxiYWNrPik7CisgICAgdm9pZCByZXF1ZXN0UXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIGludCBzdG9yYWdlVHlwZSwgdW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3RhSW5CeXRlcywg
UmVmUHRyPFN0b3JhZ2VRdW90YUNhbGxiYWNrPiYmLCBSZWZQdHI8U3RvcmFnZUVycm9yQ2FsbGJh
Y2s+JiYpOwogCiAgICAgflN0b3JhZ2VJbmZvKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9xdW90YS9TdG9yYWdlSW5mby5pZGwKaW5kZXggZTYxNTdhMGQzZGJhMWVmZTUxMzEyMzViODA2
YjUwNWQ3YzI5ZTkwZS4uYzMwNmZiM2I5NTU5M2Y4MGE2MGUzMmM5NDAyNzUxODNlNjgyN2FkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mby5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mby5pZGwKQEAgLTMx
LDYgKzMxLDYgQEAKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBURU1QT1JBUlkgPSAwOwogICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFBFUlNJU1RFTlQgPSAxOwogCi0gICAgW0NhbGxXaXRoPVNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgcXVlcnlVc2FnZUFuZFF1b3RhKHVuc2lnbmVkIHNo
b3J0IHN0b3JhZ2VUeXBlLCBvcHRpb25hbCBTdG9yYWdlVXNhZ2VDYWxsYmFjayB1c2FnZUNhbGxi
YWNrLCBvcHRpb25hbCBTdG9yYWdlRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKLSAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCByZXF1ZXN0UXVvdGEodW5zaWdu
ZWQgc2hvcnQgc3RvcmFnZVR5cGUsIHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90YUluQnl0ZXMs
IG9wdGlvbmFsIFN0b3JhZ2VRdW90YUNhbGxiYWNrIHF1b3RhQ2FsbGJhY2ssIG9wdGlvbmFsIFN0
b3JhZ2VFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOworICAgIFtDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0XSB2b2lkIHF1ZXJ5VXNhZ2VBbmRRdW90YSh1bnNpZ25lZCBzaG9ydCBz
dG9yYWdlVHlwZSwgb3B0aW9uYWwgU3RvcmFnZVVzYWdlQ2FsbGJhY2s/IHVzYWdlQ2FsbGJhY2sg
PSBudWxsLCBvcHRpb25hbCBTdG9yYWdlRXJyb3JDYWxsYmFjaz8gZXJyb3JDYWxsYmFjayA9IG51
bGwpOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIHJlcXVlc3RR
dW90YSh1bnNpZ25lZCBzaG9ydCBzdG9yYWdlVHlwZSwgdW5zaWduZWQgbG9uZyBsb25nIG5ld1F1
b3RhSW5CeXRlcywgb3B0aW9uYWwgU3RvcmFnZVF1b3RhQ2FsbGJhY2s/IHF1b3RhQ2FsbGJhY2sg
PSBudWxsLCBvcHRpb25hbCBTdG9yYWdlRXJyb3JDYWxsYmFjaz8gZXJyb3JDYWxsYmFjayA9IG51
bGwpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFn
ZVF1b3RhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VRdW90YS5oCmlu
ZGV4IGNjZmRlODFlNGUzOWQ0MGZiZDhmYTU4MjZhM2ExZTFlMzhlNjJjOWYuLmM3MjM4ZDkwMzVm
NDNiZmJmNDRmODlhMWEzYmJlMzRiMDZjMjM0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcXVvdGEvU3RvcmFnZVF1b3RhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9xdW90YS9TdG9yYWdlUXVvdGEuaApAQCAtNTUsOSArNTUsOSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VRdW90YSh0eXBlKSk7CiAgICAgfQogCi0gICAg
dm9pZCBxdWVyeVVzYWdlQW5kUXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFBhc3NSZWZQ
dHI8U3RvcmFnZVVzYWdlQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFN0b3JhZ2VFcnJvckNhbGxiYWNr
Pik7CisgICAgdm9pZCBxdWVyeVVzYWdlQW5kUXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IFJlZlB0cjxTdG9yYWdlVXNhZ2VDYWxsYmFjaz4mJiwgUmVmUHRyPFN0b3JhZ2VFcnJvckNhbGxi
YWNrPiYmKTsKIAotICAgIHZvaWQgcmVxdWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCB1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBQYXNzUmVmUHRyPFN0b3JhZ2VR
dW90YUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxTdG9yYWdlRXJyb3JDYWxsYmFjaz4pOworICAgIHZv
aWQgcmVxdWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1bnNpZ25lZCBsb25nIGxv
bmcgbmV3UXVvdGFJbkJ5dGVzLCBSZWZQdHI8U3RvcmFnZVF1b3RhQ2FsbGJhY2s+JiYsIFJlZlB0
cjxTdG9yYWdlRXJyb3JDYWxsYmFjaz4mJik7CiAKICAgICB+U3RvcmFnZVF1b3RhKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZVF1b3RhLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZVF1b3RhLmlkbAppbmRleCA5Mzdk
YzRlMThjZmExZjZmYjVhNDc2ZTEwMTk2YWM0YjVhZTY1YWJhLi5hNzM2MTU3ZGNjYzIyY2IzZGZm
ZTIxMmEzZDkwYjY2YjVkMWM4ZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3F1b3RhL1N0b3JhZ2VRdW90YS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90
YS9TdG9yYWdlUXVvdGEuaWRsCkBAIC0yOCw2ICsyOCw2IEBACiAgICAgQ29uZGl0aW9uYWw9UVVP
VEEsCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKIF0gaW50ZXJmYWNlIFN0b3JhZ2VR
dW90YSB7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgcXVlcnlV
c2FnZUFuZFF1b3RhKFN0b3JhZ2VVc2FnZUNhbGxiYWNrIHVzYWdlQ2FsbGJhY2ssIG9wdGlvbmFs
IFN0b3JhZ2VFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOwotICAgIFtDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIHJlcXVlc3RRdW90YSh1bnNpZ25lZCBsb25nIGxvbmcg
bmV3UXVvdGFJbkJ5dGVzLCBvcHRpb25hbCBTdG9yYWdlUXVvdGFDYWxsYmFjayBxdW90YUNhbGxi
YWNrLCBvcHRpb25hbCBTdG9yYWdlRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKKyAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCBxdWVyeVVzYWdlQW5kUXVvdGEo
U3RvcmFnZVVzYWdlQ2FsbGJhY2sgdXNhZ2VDYWxsYmFjaywgb3B0aW9uYWwgU3RvcmFnZUVycm9y
Q2FsbGJhY2s/IGVycm9yQ2FsbGJhY2sgPSBudWxsKTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dF0gdm9pZCByZXF1ZXN0UXVvdGEodW5zaWduZWQgbG9uZyBsb25nIG5ld1F1
b3RhSW5CeXRlcywgb3B0aW9uYWwgU3RvcmFnZVF1b3RhQ2FsbGJhY2s/IHF1b3RhQ2FsbGJhY2sg
PSBudWxsLCBvcHRpb25hbCBTdG9yYWdlRXJyb3JDYWxsYmFjaz8gZXJyb3JDYWxsYmFjayA9IG51
bGwpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0LmlkbAppbmRleCA3ZDliZDA5NGRhOWU5N2M3ZTAxMDA2OTczZTUwNjU2YjNhYjBhMzA2Li41
YzZiMjllZGE0ZjE1MzkyMDI4OGNlYmVjOGRmYmUyOTBlNTkyOThmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsCkBAIC02NSw3ICs2NSw3
IEBAIGVudW0gQXVkaW9Db250ZXh0U3RhdGUgewogCiAgICAgLy8gQXN5bmNocm9ub3VzIGF1ZGlv
IGZpbGUgZGF0YSBkZWNvZGluZy4KICAgICAvLyBGSVhNRTogc3VjY2Vzc0NhbGxiYWNrIHNob3Vs
ZCBiZSBvcHRpb25hbCBhbmQgdGhlIGNhbGxiYWNrcyBzaG91bGQgbm90IGJlIG51bGxhYmxlLiBU
aGlzIHNob3VsZCBhbHNvIHJldHVybiBhIFByb21pc2UuCi0gICAgdm9pZCBkZWNvZGVBdWRpb0Rh
dGEoQXJyYXlCdWZmZXIgYXVkaW9EYXRhLCBBdWRpb0J1ZmZlckNhbGxiYWNrPyBzdWNjZXNzQ2Fs
bGJhY2ssIG9wdGlvbmFsIEF1ZGlvQnVmZmVyQ2FsbGJhY2s/IGVycm9yQ2FsbGJhY2spOworICAg
IHZvaWQgZGVjb2RlQXVkaW9EYXRhKEFycmF5QnVmZmVyIGF1ZGlvRGF0YSwgQXVkaW9CdWZmZXJD
YWxsYmFjaz8gc3VjY2Vzc0NhbGxiYWNrLCBvcHRpb25hbCBBdWRpb0J1ZmZlckNhbGxiYWNrPyBl
cnJvckNhbGxiYWNrID0gbnVsbCk7CiAKICAgICAvLyBTb3VyY2VzCiAgICAgQXVkaW9CdWZmZXJT
b3VyY2VOb2RlIGNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAppbmRl
eCA1YjlmZGIzMmIxYTFhOGNiNDAwYTY4YTMyZGVkZTZiODEwODY3MDk1Li4zZTU1OTAyYWFjNTVm
NTRhZTdkYWI2NDNiMDAwNmY1MTk5M2UzNjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcApAQCAt
MzcsMTYgKzM3LDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmUHRyPERhdGFiYXNl
PiBET01XaW5kb3dXZWJEYXRhYmFzZTo6b3BlbkRhdGFiYXNlKERPTVdpbmRvdyYgd2luZG93LCBj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgY29uc3QgU3RyaW5nJiBk
aXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBQYXNzUmVmUHRyPERhdGFi
YXNlQ2FsbGJhY2s+IGNyZWF0aW9uQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRy
PERhdGFiYXNlPiBET01XaW5kb3dXZWJEYXRhYmFzZTo6b3BlbkRhdGFiYXNlKERPTVdpbmRvdyYg
d2luZG93LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgY29uc3Qg
U3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBSZWZQdHI8
RGF0YWJhc2VDYWxsYmFjaz4mJiBjcmVhdGlvbkNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBpZiAoIXdpbmRvdy5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8RGF0YWJhc2U+IGRhdGFiYXNlID0gbnVs
bHB0cjsKKyAgICBSZWZQdHI8RGF0YWJhc2U+IGRhdGFiYXNlOwogICAgIERhdGFiYXNlTWFuYWdl
ciYgZGJNYW5hZ2VyID0gRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKICAgICBEYXRhYmFz
ZUVycm9yIGVycm9yID0gRGF0YWJhc2VFcnJvcjo6Tm9uZTsKICAgICBpZiAoZGJNYW5hZ2VyLmlz
QXZhaWxhYmxlKCkgJiYgd2luZG93LmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhbkFj
Y2Vzc0RhdGFiYXNlKHdpbmRvdy5kb2N1bWVudCgpLT50b3BPcmlnaW4oKSkpIHsKLSAgICAgICAg
ZGF0YWJhc2UgPSBkYk1hbmFnZXIub3BlbkRhdGFiYXNlKHdpbmRvdy5kb2N1bWVudCgpLCBuYW1l
LCB2ZXJzaW9uLCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSwgY3JlYXRpb25DYWxsYmFjaywg
ZXJyb3IpOworICAgICAgICBkYXRhYmFzZSA9IGRiTWFuYWdlci5vcGVuRGF0YWJhc2Uod2luZG93
LmRvY3VtZW50KCksIG5hbWUsIHZlcnNpb24sIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplLCBX
VEZNb3ZlKGNyZWF0aW9uQ2FsbGJhY2spLCBlcnJvcik7CiAgICAgICAgIEFTU0VSVChkYXRhYmFz
ZSB8fCBlcnJvciAhPSBEYXRhYmFzZUVycm9yOjpOb25lKTsKICAgICAgICAgZWMgPSBEYXRhYmFz
ZU1hbmFnZXI6OmV4Y2VwdGlvbkNvZGVGb3JEYXRhYmFzZUVycm9yKGVycm9yKTsKICAgICB9IGVs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2lu
ZG93V2ViRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9N
V2luZG93V2ViRGF0YWJhc2UuaAppbmRleCA2NTZmODgzMTgzZmMwOTllZTkwOTBiZjRjZjllM2E4
YzNmMzM4MmFiLi41NTk3ZDM3ZTJjZDAyY2U2NmFmZDA4MmY3ZGVjYjQ4OGI3NjMxZmQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRh
dGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5k
b3dXZWJEYXRhYmFzZS5oCkBAIC00MiwxMSArNDIsMTEgQEAgY2xhc3MgRnJhbWU7CiAKIGNsYXNz
IERPTVdpbmRvd1dlYkRhdGFiYXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPERhdGFi
YXNlPiBvcGVuRGF0YWJhc2UoRE9NV2luZG93JiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIHZlcnNpb24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcg
ZXN0aW1hdGVkU2l6ZSwgUGFzc1JlZlB0cjxEYXRhYmFzZUNhbGxiYWNrPiBjcmVhdGlvbkNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAgc3RhdGljIFJlZlB0cjxEYXRhYmFzZT4gb3BlbkRh
dGFiYXNlKERPTVdpbmRvdyYsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJz
aW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNp
emUsIFJlZlB0cjxEYXRhYmFzZUNhbGxiYWNrPiYmIGNyZWF0aW9uQ2FsbGJhY2ssIEV4Y2VwdGlv
bkNvZGUmKTsKIAogcHJpdmF0ZToKLSAgICBET01XaW5kb3dXZWJEYXRhYmFzZSgpIHsgfTsKLSAg
ICB+RE9NV2luZG93V2ViRGF0YWJhc2UoKSB7IH07CisgICAgRE9NV2luZG93V2ViRGF0YWJhc2Uo
KSB7IH0KKyAgICB+RE9NV2luZG93V2ViRGF0YWJhc2UoKSB7IH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5pZGwKaW5kZXggMTVlYjQzNTE1YWZiYjJjMDY1
MGNhZmYyOTY1NzIzNzQwNjMyNzU4NS4uMGNiMTdjZmNmNGFhMGU2ZmNiYzI5NTM0MjNiZmJkYTEz
NzBmZDMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
T01XaW5kb3dXZWJEYXRhYmFzZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5pZGwKQEAgLTI2LDYgKzI2LDYgQEAKIAogWwog
XSBwYXJ0aWFsIGludGVyZmFjZSBET01XaW5kb3cgewotICAgIFtSYWlzZXNFeGNlcHRpb25dIERh
dGFiYXNlIG9wZW5EYXRhYmFzZShET01TdHJpbmcgbmFtZSwgRE9NU3RyaW5nIHZlcnNpb24sIERP
TVN0cmluZyBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBvcHRpb25h
bCBEYXRhYmFzZUNhbGxiYWNrIGNyZWF0aW9uQ2FsbGJhY2spOworICAgIFtSYWlzZXNFeGNlcHRp
b25dIERhdGFiYXNlIG9wZW5EYXRhYmFzZShET01TdHJpbmcgbmFtZSwgRE9NU3RyaW5nIHZlcnNp
b24sIERPTVN0cmluZyBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBv
cHRpb25hbCBEYXRhYmFzZUNhbGxiYWNrPyBjcmVhdGlvbkNhbGxiYWNrID0gbnVsbCk7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCmlu
ZGV4IGMwOGI4NjE0MDRiODU4MGE5MDliM2UyOGEzNjQxMTk2ZWUyNGZhMTUuLjk1NWE1YjI5ZmM0
N2E2MjlkZGI4ZTUyY2EyNjBiMWI5OWExOGUyNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC01NTQsNyArNTU0LDcgQEAgdm9pZCBE
YXRhYmFzZTo6c2NoZWR1bGVUcmFuc2FjdGlvbigpCiAgICAgICAgIG1fdHJhbnNhY3Rpb25JblBy
b2dyZXNzID0gZmFsc2U7CiB9CiAKLVBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBE
YXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbj4gdHJhbnNh
Y3Rpb24sIGJvb2wgcmVhZE9ubHksIGNvbnN0IENoYW5nZVZlcnNpb25EYXRhKiBkYXRhKQorUGFz
c1JlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IERhdGFiYXNlOjpydW5UcmFuc2FjdGlvbihS
ZWY8U1FMVHJhbnNhY3Rpb24+JiYgdHJhbnNhY3Rpb24sIGJvb2wgcmVhZE9ubHksIGNvbnN0IENo
YW5nZVZlcnNpb25EYXRhKiBkYXRhKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJhbnNh
Y3Rpb25JblByb2dyZXNzTXV0ZXgpOwogICAgIGlmICghbV9pc1RyYW5zYWN0aW9uUXVldWVFbmFi
bGVkKQpAQCAtNTY0LDcgKzU2NCw3IEBAIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5k
PiBEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxTUUxUcmFuc2FjCiAgICAgaWYg
KGRhdGEpCiAgICAgICAgIHdyYXBwZXIgPSBDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6Y3JlYXRlKGRh
dGEtPm9sZFZlcnNpb24oKSwgZGF0YS0+bmV3VmVyc2lvbigpKTsKIAotICAgIFJlZlB0cjxTUUxU
cmFuc2FjdGlvbkJhY2tlbmQ+IHRyYW5zYWN0aW9uQmFja2VuZCA9IFNRTFRyYW5zYWN0aW9uQmFj
a2VuZDo6Y3JlYXRlKHRoaXMsIHRyYW5zYWN0aW9uLCB3cmFwcGVyLCByZWFkT25seSk7CisgICAg
UmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4gdHJhbnNhY3Rpb25CYWNrZW5kID0gU1FMVHJh
bnNhY3Rpb25CYWNrZW5kOjpjcmVhdGUodGhpcywgV1RGTW92ZSh0cmFuc2FjdGlvbiksIHdyYXBw
ZXIsIHJlYWRPbmx5KTsKICAgICBtX3RyYW5zYWN0aW9uUXVldWUuYXBwZW5kKHRyYW5zYWN0aW9u
QmFja2VuZCk7CiAgICAgaWYgKCFtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzcykKICAgICAgICAgc2No
ZWR1bGVUcmFuc2FjdGlvbigpOwpAQCAtNjM1LDIyICs2MzUsMjAgQEAgdm9pZCBEYXRhYmFzZTo6
bWFya0FzRGVsZXRlZEFuZENsb3NlKCkKICAgICBzeW5jaHJvbml6ZXIud2FpdEZvclRhc2tDb21w
bGV0aW9uKCk7CiB9CiAKLXZvaWQgRGF0YWJhc2U6OmNoYW5nZVZlcnNpb24oY29uc3QgU3RyaW5n
JiBvbGRWZXJzaW9uLCBjb25zdCBTdHJpbmcmIG5ld1ZlcnNpb24sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4gY2FsbGJhY2ss
IFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gc3Vj
Y2Vzc0NhbGxiYWNrKQordm9pZCBEYXRhYmFzZTo6Y2hhbmdlVmVyc2lvbihjb25zdCBTdHJpbmcm
IG9sZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbiwgUmVmUHRyPFNRTFRyYW5zYWN0
aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJh
Y2s+JiYgZXJyb3JDYWxsYmFjaywgUmVmUHRyPFZvaWRDYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJh
Y2spCiB7CiAgICAgQ2hhbmdlVmVyc2lvbkRhdGEgZGF0YShvbGRWZXJzaW9uLCBuZXdWZXJzaW9u
KTsKLSAgICBydW5UcmFuc2FjdGlvbihjYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgc3VjY2Vzc0Nh
bGxiYWNrLCBmYWxzZSwgJmRhdGEpOworICAgIHJ1blRyYW5zYWN0aW9uKFdURk1vdmUoY2FsbGJh
Y2spLCBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIGZh
bHNlLCAmZGF0YSk7CiB9CiAKLXZvaWQgRGF0YWJhc2U6OnRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8
U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4gY2FsbGJhY2ssIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rp
b25FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4g
c3VjY2Vzc0NhbGxiYWNrKQordm9pZCBEYXRhYmFzZTo6dHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRy
YW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9y
Q2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaywgUmVmUHRyPFZvaWRDYWxsYmFjaz4mJiBzdWNjZXNz
Q2FsbGJhY2spCiB7Ci0gICAgcnVuVHJhbnNhY3Rpb24oY2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ss
IHN1Y2Nlc3NDYWxsYmFjaywgZmFsc2UpOworICAgIHJ1blRyYW5zYWN0aW9uKFdURk1vdmUoY2Fs
bGJhY2spLCBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayks
IGZhbHNlKTsKIH0KIAotdm9pZCBEYXRhYmFzZTo6cmVhZFRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8
U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4gY2FsbGJhY2ssIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rp
b25FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4g
c3VjY2Vzc0NhbGxiYWNrKQordm9pZCBEYXRhYmFzZTo6cmVhZFRyYW5zYWN0aW9uKFJlZlB0cjxT
UUxUcmFuc2FjdGlvbkNhbGxiYWNrPiYmIGNhbGxiYWNrLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25F
cnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2ssIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYgc3Vj
Y2Vzc0NhbGxiYWNrKQogewotICAgIHJ1blRyYW5zYWN0aW9uKGNhbGxiYWNrLCBlcnJvckNhbGxi
YWNrLCBzdWNjZXNzQ2FsbGJhY2ssIHRydWUpOworICAgIHJ1blRyYW5zYWN0aW9uKFdURk1vdmUo
Y2FsbGJhY2spLCBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFj
ayksIHRydWUpOwogfQogCiBTdHJpbmcgRGF0YWJhc2U6OnN0cmluZ0lkZW50aWZpZXIoKSBjb25z
dApAQCAtNzMyLDExICs3MzAsMTEgQEAgdm9pZCBEYXRhYmFzZTo6cmVzZXRBdXRob3JpemVyKCkK
IAogdm9pZCBEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYg
ZXJyb3JDYWxsYmFjaywgUmVmUHRyPFZvaWRDYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2ssIGJv
b2wgcmVhZE9ubHksIGNvbnN0IENoYW5nZVZlcnNpb25EYXRhKiBjaGFuZ2VWZXJzaW9uRGF0YSkK
IHsKLSAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uID0gU1FMVHJhbnNhY3Rp
b246OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoc3VjY2Vzc0NhbGxi
YWNrKSwgZXJyb3JDYWxsYmFjay5jb3B5UmVmKCksIHJlYWRPbmx5KTsKKyAgICBSZWY8U1FMVHJh
bnNhY3Rpb24+IHRyYW5zYWN0aW9uID0gU1FMVHJhbnNhY3Rpb246OmNyZWF0ZSgqdGhpcywgV1RG
TW92ZShjYWxsYmFjayksIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgZXJyb3JDYWxsYmFjay5j
b3B5UmVmKCksIHJlYWRPbmx5KTsKIAotICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+
IHRyYW5zYWN0aW9uQmFja2VuZCA9IHJ1blRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uLnJlbGVhc2Uo
KSwgcmVhZE9ubHksIGNoYW5nZVZlcnNpb25EYXRhKTsKKyAgICBSZWZQdHI8U1FMVHJhbnNhY3Rp
b25CYWNrZW5kPiB0cmFuc2FjdGlvbkJhY2tlbmQgPSBydW5UcmFuc2FjdGlvbihXVEZNb3ZlKHRy
YW5zYWN0aW9uKSwgcmVhZE9ubHksIGNoYW5nZVZlcnNpb25EYXRhKTsKICAgICBpZiAoIXRyYW5z
YWN0aW9uQmFja2VuZCAmJiBlcnJvckNhbGxiYWNrKSB7Ci0gICAgICAgIFdURjo6UmVmUHRyPFNR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFja1Byb3RlY3RvciA9IFdURk1v
dmUoZXJyb3JDYWxsYmFjayk7CisgICAgICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2Fs
bGJhY2s+IGVycm9yQ2FsbGJhY2tQcm90ZWN0b3IgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spOwog
ICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFtlcnJvckNhbGxiYWNr
UHJvdGVjdG9yXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewogICAgICAgICAgICAgZXJyb3JD
YWxsYmFja1Byb3RlY3Rvci0+aGFuZGxlRXZlbnQoU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6
VU5LTk9XTl9FUlIsICJkYXRhYmFzZSBoYXMgYmVlbiBjbG9zZWQiKS5wdHIoKSk7CiAgICAgICAg
IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCmlu
ZGV4IDNkNDY2ZWY3MGJhYjI5NGY2ODMyYmYzZWIwYWExYTFmYjYwMzYxMjIuLmMwN2RmYmFmNWI5
YmNkNjEyNDM4YjNjOTg2YjE4ZjQyNjA5NjU1NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogCiAg
ICAgdW5zaWduZWQgbG9uZyBsb25nIG1heGltdW1TaXplKCkgY29uc3Q7CiAKLSAgICBQYXNzUmVm
UHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4gcnVuVHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxTUUxU
cmFuc2FjdGlvbj4sIGJvb2wgcmVhZE9ubHksIGNvbnN0IENoYW5nZVZlcnNpb25EYXRhKik7Cisg
ICAgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IHJ1blRyYW5zYWN0aW9uKFJlZjxT
UUxUcmFuc2FjdGlvbj4mJiwgYm9vbCByZWFkT25seSwgY29uc3QgQ2hhbmdlVmVyc2lvbkRhdGEq
KTsKICAgICB2b2lkIHNjaGVkdWxlVHJhbnNhY3Rpb25TdGVwKFNRTFRyYW5zYWN0aW9uQmFja2Vu
ZCopOwogICAgIHZvaWQgaW5Qcm9ncmVzc1RyYW5zYWN0aW9uQ29tcGxldGVkKCk7CiAKQEAgLTc4
LDEwICs3OCw5IEBAIHB1YmxpYzoKIAogICAgIC8vIERpcmVjdCBzdXBwb3J0IGZvciB0aGUgRE9N
IEFQSQogICAgIFN0cmluZyB2ZXJzaW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBjaGFuZ2VWZXJzaW9u
KGNvbnN0IFN0cmluZyYgb2xkVmVyc2lvbiwgY29uc3QgU3RyaW5nJiBuZXdWZXJzaW9uLCBQYXNz
UmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+LAotICAgICAgICAgICAgICAgICAgICAgICBQ
YXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4sIFBhc3NSZWZQdHI8Vm9pZENh
bGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2spOwotICAgIHZvaWQgdHJhbnNhY3Rpb24oUGFzc1JlZlB0
cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiwgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9y
Q2FsbGJhY2s+LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrKTsKLSAg
ICB2b2lkIHJlYWRUcmFuc2FjdGlvbihQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+
LCBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4sIFBhc3NSZWZQdHI8Vm9p
ZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2spOworICAgIHZvaWQgY2hhbmdlVmVyc2lvbihjb25z
dCBTdHJpbmcmIG9sZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbiwgUmVmUHRyPFNR
TFRyYW5zYWN0aW9uQ2FsbGJhY2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJh
Y2s+JiYsIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKTsKKyAgICB2b2lk
IHRyYW5zYWN0aW9uKFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiYmLCBSZWZQdHI8U1FM
VHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiYmLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nl
c3NDYWxsYmFjayk7CisgICAgdm9pZCByZWFkVHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRyYW5zYWN0
aW9uQ2FsbGJhY2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYsIFJl
ZlB0cjxWb2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKTsKIAogICAgIC8vIEludGVybmFs
IGVuZ2luZSBzdXBwb3J0CiAgICAgU3RyaW5nIHN0cmluZ0lkZW50aWZpZXIoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGwKaW5kZXgg
Y2ViM2YwYjAwMjk0ZjM0ZDExNDRkYzcwYWZhNzVkMGI0OWMxMjg5ZC4uNTY2YmZmN2ZkMzAxYWZk
MzQ5NTc0ODFiMzZkNmVmMjU4YTA1OTM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGwKQEAgLTI4LDggKzI4LDggQEAKIAogaW50ZXJmYWNl
IERhdGFiYXNlIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlcnNpb247Ci0g
ICAgdm9pZCBjaGFuZ2VWZXJzaW9uKERPTVN0cmluZyBvbGRWZXJzaW9uLCBET01TdHJpbmcgbmV3
VmVyc2lvbiwgb3B0aW9uYWwgU1FMVHJhbnNhY3Rpb25DYWxsYmFjayBjYWxsYmFjaywgb3B0aW9u
YWwgU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2ssIG9wdGlvbmFsIFZv
aWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2spOwotICAgIHZvaWQgdHJhbnNhY3Rpb24oU1FMVHJh
bnNhY3Rpb25DYWxsYmFjayBjYWxsYmFjaywgb3B0aW9uYWwgU1FMVHJhbnNhY3Rpb25FcnJvckNh
bGxiYWNrIGVycm9yQ2FsbGJhY2ssIG9wdGlvbmFsIFZvaWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJh
Y2spOwotICAgIHZvaWQgcmVhZFRyYW5zYWN0aW9uKFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2sgY2Fs
bGJhY2ssIG9wdGlvbmFsIFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNr
LCBvcHRpb25hbCBWb2lkQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrKTsKKyAgICB2b2lkIGNoYW5n
ZVZlcnNpb24oRE9NU3RyaW5nIG9sZFZlcnNpb24sIERPTVN0cmluZyBuZXdWZXJzaW9uLCBvcHRp
b25hbCBTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPyBjYWxsYmFjayA9IG51bGwsIG9wdGlvbmFsIFNR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz8gZXJyb3JDYWxsYmFjayA9IG51bGwsIG9wdGlvbmFs
IFZvaWRDYWxsYmFjaz8gc3VjY2Vzc0NhbGxiYWNrID0gbnVsbCk7CisgICAgdm9pZCB0cmFuc2Fj
dGlvbihTUUxUcmFuc2FjdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBvcHRpb25hbCBTUUxUcmFuc2Fj
dGlvbkVycm9yQ2FsbGJhY2s/IGVycm9yQ2FsbGJhY2sgPSBudWxsLCBvcHRpb25hbCBWb2lkQ2Fs
bGJhY2s/IHN1Y2Nlc3NDYWxsYmFjayA9IG51bGwpOworICAgIHZvaWQgcmVhZFRyYW5zYWN0aW9u
KFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIG9wdGlvbmFsIFNRTFRyYW5zYWN0aW9u
RXJyb3JDYWxsYmFjaz8gZXJyb3JDYWxsYmFjayA9IG51bGwsIG9wdGlvbmFsIFZvaWRDYWxsYmFj
az8gc3VjY2Vzc0NhbGxiYWNrID0gbnVsbCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaWRsCmluZGV4IDUxNmY2OTZj
OGM5ZWI1ZGE1YTI4NTdjYmQyYzZmODQ5MjkyMTQyM2UuLjEyNWI3ZDJjNGVlZDZjZWYyZDhjMmY1
OGI5ZDliNzM0MDExNGQzZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaWRsCkBAIC0zMSw2ICszMSw2IEBACiBdIGludGVy
ZmFjZSBTUUxUcmFuc2FjdGlvbiB7CiAgICAgW0N1c3RvbV0gdm9pZCBleGVjdXRlU3FsKERPTVN0
cmluZyBzcWxTdGF0ZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdEFy
cmF5IGFyZ3VtZW50cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgU1FM
U3RhdGVtZW50Q2FsbGJhY2sgY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9wdGlvbmFsIFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFNRTFN0YXRlbWVudENhbGxiYWNrPyBj
YWxsYmFjayA9IG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFNR
TFN0YXRlbWVudEVycm9yQ2FsbGJhY2s/IGVycm9yQ2FsbGJhY2sgPSBudWxsKTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmlu
ZGV4IDc0MGJiZGQ2Mjk5MzM5YTUwNWVmZTE2MjgyZGY5ZDcwMTY0ZGVhMGQuLmUyMGE2YzFlMTUw
MGNmODczNTE3ODcxZjNmNTViNmQxNGYxM2U5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0zMzc4LDcgKzMzNzgsNiBA
QCBzdWIgQ2FuVXNlV1RGT3B0aW9uYWxGb3JQYXJhbWV0ZXIKICAgICAjIEZJWE1FOiBXZSBzaG91
bGQgcHJvZ3Jlc3NpdmVseSBzdG9wIGJsYWNrbGlzdGluZyBlYWNoIHR5cGUgYmVsb3cKICAgICAj
IGFuZCBldmVudHVhbGx5IGdldCByaWQgb2YgdGhpcyBmdW5jdGlvbiBlbnRpcmVseS4KICAgICBy
ZXR1cm4gMCBpZiAkcGFyYW1ldGVyLT5pc1ZhcmlhZGljOwotICAgIHJldHVybiAwIGlmICRjb2Rl
R2VuZXJhdG9yLT5Jc0NhbGxiYWNrSW50ZXJmYWNlKCR0eXBlKTsKICAgICByZXR1cm4gMCBpZiAk
Y29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgkdHlwZSk7CiAKICAgICByZXR1cm4gMTsKQEAgLTM0
NzAsNyArMzQ2OSw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgICAgICBteSAk
YXJnVHlwZSA9ICRwYXJhbWV0ZXItPnR5cGU7CiAgICAgICAgIG15ICRvcHRpb25hbCA9ICRwYXJh
bWV0ZXItPmlzT3B0aW9uYWw7CiAKLSAgICAgICAgZGllICJPcHRpb25hbCBwYXJhbWV0ZXJzIG9m
IG5vbi1udWxsYWJsZSB3cmFwcGVyIHR5cGVzIGFyZSBub3Qgc3VwcG9ydGVkIiBpZiAkb3B0aW9u
YWwgJiYgISRwYXJhbWV0ZXItPmlzTnVsbGFibGUgJiYgJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBl
clR5cGUoJGFyZ1R5cGUpICYmICEkY29kZUdlbmVyYXRvci0+SXNDYWxsYmFja0ludGVyZmFjZSgk
YXJnVHlwZSk7CisgICAgICAgIGRpZSAiT3B0aW9uYWwgcGFyYW1ldGVycyBvZiBub24tbnVsbGFi
bGUgd3JhcHBlciB0eXBlcyBhcmUgbm90IHN1cHBvcnRlZCIgaWYgJG9wdGlvbmFsICYmICEkcGFy
YW1ldGVyLT5pc051bGxhYmxlICYmICRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCRhcmdU
eXBlKTsKIAogICAgICAgICBpZiAoJG9wdGlvbmFsICYmICFkZWZpbmVkKCRwYXJhbWV0ZXItPmRl
ZmF1bHQpKSB7CiAgICAgICAgICAgICAjIEFzIHBlciBXZWIgSURMLCBvcHRpb25hbCBkaWN0aW9u
YXJ5IHBhcmFtZXRlcnMgYXJlIGFsd2F5cyBjb25zaWRlcmVkIHRvIGhhdmUgYSBkZWZhdWx0IHZh
bHVlIG9mIGFuIGVtcHR5IGRpY3Rpb25hcnksIHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLgpA
QCAtMzQ4NSwxMCArMzQ4NCwxMyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAg
ICAgICAgICMgQXMgcGVyIFdlYiBJREwsIHBhc3NpbmcgdW5kZWZpbmVkIGZvciBhIG51bGxhYmxl
IHBhcmFtZXRlciBpcyB0cmVhdGVkIGFzIG51bGwuIFRoZXJlZm9yZSwgdXNlIG51bGwgYXMKICAg
ICAgICAgICAgICMgZGVmYXVsdCB2YWx1ZSBmb3IgbnVsbGFibGUgcGFyYW1ldGVycyB1bmxlc3Mg
b3RoZXJ3aXNlIHNwZWNpZmllZC4KICAgICAgICAgICAgICRwYXJhbWV0ZXItPmRlZmF1bHQoIm51
bGwiKSBpZiAkcGFyYW1ldGVyLT5pc051bGxhYmxlOworCisgICAgICAgICAgICAjIEZvciBjYWxs
YmFjayBwYXJhbWV0ZXJzLCB0aGUgZ2VuZXJhdGVkIGJpbmRpbmdzIHRyZWF0IHVuZGVmaW5lZCBh
cyBudWxsLCBzbyB1c2UgbnVsbCBhcyBpbXBsaWNpdCBkZWZhdWx0IHZhbHVlLgorICAgICAgICAg
ICAgJHBhcmFtZXRlci0+ZGVmYXVsdCgibnVsbCIpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NhbGxi
YWNrSW50ZXJmYWNlKCRhcmdUeXBlKTsKICAgICAgICAgfQogCiAgICAgICAgICMgRklYTUU6IFdl
IHNob3VsZCBldmVudHVhbGx5IHN0b3AgZ2VuZXJhdGluZyBhbnkgZWFybHkgY2FsbHMsIGFuZCBp
bnN0ZWFkIHVzZSBlaXRoZXIgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWVzIG9yIFdURjo6T3B0aW9u
YWw8Pi4KLSAgICAgICAgaWYgKCRvcHRpb25hbCAmJiAhZGVmaW5lZCgkcGFyYW1ldGVyLT5kZWZh
dWx0KSAmJiAhQ2FuVXNlV1RGT3B0aW9uYWxGb3JQYXJhbWV0ZXIoJHBhcmFtZXRlcikgJiYgISRj
b2RlR2VuZXJhdG9yLT5Jc0NhbGxiYWNrSW50ZXJmYWNlKCRhcmdUeXBlKSkgeworICAgICAgICBp
ZiAoJG9wdGlvbmFsICYmICFkZWZpbmVkKCRwYXJhbWV0ZXItPmRlZmF1bHQpICYmICFDYW5Vc2VX
VEZPcHRpb25hbEZvclBhcmFtZXRlcigkcGFyYW1ldGVyKSkgewogICAgICAgICAgICAgIyBHZW5l
cmF0ZSBlYXJseSBjYWxsIGlmIHRoZXJlIGFyZSBlbm91Z2ggcGFyYW1ldGVycy4KICAgICAgICAg
ICAgIGlmICghJGhhc09wdGlvbmFsQXJndW1lbnRzKSB7CiAgICAgICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiXG4gICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0YXRlLT5hcmd1bWVudENv
dW50KCk7XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbAppbmRleCBjZGMwZDE0YzM2Y2E2NTNjNWNjOTY4NDdmZDRjYTMxZWVhZTM0ZTRk
Li45OTM0MGJiZWQyY2QyN2NhYTU4NGRmMTQ5NzJiZTU1M2M3ZGQ1NGE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC0yMDgsMTUg
KzIwOCwxNSBAQCBlbnVtIF9vcHRpb25hbCB7ICIiLCAiT3B0aW9uYWxWYWx1ZTEiLCAiT3B0aW9u
YWxWYWx1ZTIiLCAiT3B0aW9uYWxWYWx1ZTMiIH07CiAgICAgLy8gQ2FsbGJhY2sgaW50ZXJmYWNl
IHBhcmFtZXRlcnMuCiAgICAgdm9pZCAgICBtZXRob2RXaXRoQ2FsbGJhY2tBcmcoVGVzdENhbGxi
YWNrIGNhbGxiYWNrKTsKICAgICB2b2lkICAgIG1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENh
bGxiYWNrQXJnKGxvbmcgbm9uQ2FsbGJhY2ssIFRlc3RDYWxsYmFjayBjYWxsYmFjayk7Ci0gICAg
dm9pZCAgICBtZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyhvcHRpb25hbCBUZXN0Q2Fs
bGJhY2sgY2FsbGJhY2spOworICAgIHZvaWQgICAgbWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9u
YWxBcmcob3B0aW9uYWwgVGVzdENhbGxiYWNrPyBjYWxsYmFjayA9IG51bGwpOwogCiAgICAgLy8g
Q2FsbGJhY2sgZnVuY3Rpb24gcGFyYW1ldGVycy4KICAgICB2b2lkICAgIG1ldGhvZFdpdGhDYWxs
YmFja0Z1bmN0aW9uQXJnKFRlc3RDYWxsYmFja0Z1bmN0aW9uIGNhbGxiYWNrKTsKICAgICB2b2lk
ICAgIG1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrRnVuY3Rpb25BcmcobG9uZyBu
b25DYWxsYmFjaywgVGVzdENhbGxiYWNrRnVuY3Rpb24gY2FsbGJhY2spOwotICAgIHZvaWQgICAg
bWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BbmRPcHRpb25hbEFyZyhvcHRpb25hbCBUZXN0Q2Fs
bGJhY2tGdW5jdGlvbiBjYWxsYmFjayk7CisgICAgdm9pZCAgICBtZXRob2RXaXRoQ2FsbGJhY2tG
dW5jdGlvbkFuZE9wdGlvbmFsQXJnKG9wdGlvbmFsIFRlc3RDYWxsYmFja0Z1bmN0aW9uPyBjYWxs
YmFjayA9IG51bGwpOwogCiAgICAgLy8gc3RhdGljIG1ldGhvZHMgd2l0aCAnQ2FsbGJhY2snIGV4
dGVuZGVkIGF0dHJpYnV0ZQotICAgIHN0YXRpYyB2b2lkICAgIHN0YXRpY01ldGhvZFdpdGhDYWxs
YmFja0FuZE9wdGlvbmFsQXJnKG9wdGlvbmFsIFRlc3RDYWxsYmFjayBjYWxsYmFjayk7CisgICAg
c3RhdGljIHZvaWQgICAgc3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcob3B0
aW9uYWwgVGVzdENhbGxiYWNrPyBjYWxsYmFjayA9IG51bGwpOwogICAgIHN0YXRpYyB2b2lkICAg
IHN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZyhUZXN0Q2FsbGJhY2sgY2FsbGJhY2spOwogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oCmluZGV4IDExZjU4ZTk3OTJi
ZTFhMjUyYTYzNjYxMjdkOWMzN2MzNWY5NDk0MDUuLjQ2NDhjMmE2N2NhODA0N2MwM2FhNWI3NTNm
ZGQ2OTAwMTAzYTRkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaApAQCAt
NTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcga2luZCgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIFN0cmluZyB0eXBlKCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2
b2lkIGdldEFzU3RyaW5nKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+KSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGdldEFzU3RyaW5nKFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJikgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCbG9iPiBnZXRBc0ZpbGUoKSBjb25zdCA9
IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRl
bS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKaW5kZXggOGRm
OTc1OTFiZjA4NjI0MGEwNWY0NmY1NGYwZmQwNmI4NTk3OGNjZS4uZWE1MzRmZmIyNmIxYTMzYzNk
NzYyYzQ4YTg3ZTUxYTZhNzU5OTIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rh
dGFUcmFuc2Zlckl0ZW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJ
dGVtLmlkbApAQCAtMzYsNyArMzYsNyBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcga2luZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiAKLSAgICB2
b2lkIGdldEFzU3RyaW5nKG9wdGlvbmFsIFN0cmluZ0NhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICB2
b2lkIGdldEFzU3RyaW5nKG9wdGlvbmFsIFN0cmluZ0NhbGxiYWNrPyBjYWxsYmFjayA9IG51bGwp
OwogICAgIEJsb2IgZ2V0QXNGaWxlKCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCmluZGV4IDNkNWE0
NWEyZmMwYTUyZDI4Y2MxMzk5YmM1ZDcxMDJmYzNiN2RjMTQuLmQ4N2FhMTQzZDQ5N2IwMjFhNDFh
MzNlOTM2YzQ5OTY1ZjIzMGE1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC02MCwxMCArNjAsMTAg
QEAgcHJpdmF0ZToKICAgICB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3Jl
OjpOb3RpZmljYXRpb24qKSBvdmVycmlkZTsKICAgICB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMp
Ci0gICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJhY2s+KSBvdmVycmlkZTsKKyAgICB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBS
ZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiYmKSBvdmVycmlkZTsKICNlbmRpZgogI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQotICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9u
UGVybWlzc2lvbkNhbGxiYWNrPikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lv
bihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUmVmUHRyPFdlYkNvcmU6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAjZW5kaWYKICAgICB2b2lk
IGNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kikgb3ZlcnJpZGUgeyB9CiAgICAgYm9vbCBoYXNQZW5kaW5nUGVybWlzc2lvblJlcXVlc3Rz
KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBjb25zdCBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNs
aWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlv
bkNsaWVudC5tbQppbmRleCBhZGU5M2QwYTc0MTk3ZTFlNTA5ODk5OWFhYTNjMzkzMGMwZDljNmUz
Li5mNTUyOThjZmFiMzAxMDFmNmM5M2U4YjVmMjg4NWVhOTg0ZTRkMjAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50Lm1tCkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJl
cXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFcKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotdm9pZCBXZWJOb3RpZmljYXRp
b25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxsYmFjaykKK3ZvaWQgV2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIGNhbGxiYWNrKQogewogICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKICAgICBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciAqbGlz
dGVuZXIgPSBbW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFZv
aWRDYWxsYmFjazpjYWxsYmFja107CkBAIC0yMDQsNyArMjA0LDcgQEAgYm9vbCBXZWJOb3RpZmlj
YXRpb25DbGllbnQ6Omhhc1BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCoKIH0KIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotdm9pZCBXZWJOb3RpZmlj
YXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiBjYWxsYmFj
aykKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNh
bGxiYWNrPiYmIGNhbGxiYWNrKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
ICAgICBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciAqbGlzdGVuZXIgPSBbW1dlYk5vdGlm
aWNhdGlvblBvbGljeUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOmNhbGxiYWNrXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BO
b3RpZmljYXRpb25zRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAKaW5kZXggMDJjM2M1OGUyNjgw
Njc2YzA5YmQ4YmYyN2U3ZmFjZmRlNTEyZDhiZS4uMTRhNzA1OWQ1OTA1OTZkNjgyZDljZDQ4NmUy
ZjM1NjAwZGRjOTNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAK
QEAgLTE3MCwxNCArMTcwLDE0IEBAIHZvaWQgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0
ZTo6bm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCiB7CiB9CiAKLXZvaWQgV2ViRGVz
a3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6cmVxdWVzdFBlcm1pc3Npb24oU2VjdXJpdHlPcmln
aW4qIG9yaWdpbiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+KQordm9pZCBXZWJEZXNrdG9wTm90
aWZpY2F0aW9uc0RlbGVnYXRlOjpyZXF1ZXN0UGVybWlzc2lvbihTZWN1cml0eU9yaWdpbiogb3Jp
Z2luLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmKQogewogICAgIEJTdHJpbmcgb3JnKG9yaWdpbi0+
dG9TdHJpbmcoKSk7CiAgICAgaWYgKGhhc05vdGlmaWNhdGlvbkRlbGVnYXRlKCkpCiAgICAgICAg
IG5vdGlmaWNhdGlvbkRlbGVnYXRlKCktPnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKG9y
Zyk7CiB9CiAKLXZvaWQgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6cmVxdWVzdFBl
cm1pc3Npb24oU2VjdXJpdHlPcmlnaW4qLCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Np
b25DYWxsYmFjaz4pCit2b2lkIFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6OnJlcXVl
c3RQZXJtaXNzaW9uKFNlY3VyaXR5T3JpZ2luKiwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Np
b25DYWxsYmFjaz4mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5oIGIvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5o
CmluZGV4IGI5ZTQ0NzhhMDRhYzYwNGE0ODNmOThiM2U1NzI0OWIyMTlkNDllZTguLjI4NzhhOTgy
MmU5M2VjN2U2NDFlNDUyNGRkMDRjZDFjYTUwZTJhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0
aW9uc0RlbGVnYXRlLmgKQEAgLTUxLDEwICs1MSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmljYXRpb24qIG9i
amVjdCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQo
KTsKICNpZiBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi0gICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpWb2lkQ2FsbGJhY2s+KTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24o
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiYm
KTsKICNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPik7CisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgUmVmUHRyPFdlYkNv
cmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJik7CiAjZW5kaWYKICAgICBib29s
IGhhc1BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0c0Zv
clBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAppbmRl
eCAxNWE1YmJhYTllYmI5YTM5MjlhNDc5NTc3NmJmNmNjNTNiNjhmNDUyLi44MWZmMWIxYjc1ZTBm
ZjJmYjA0Yjc0ZjBmMDc1ZDY0NzFkYTMzODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtNjksNyArNjksNyBAQCBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Ok5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcihXZWJQYQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKLXZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVl
c3QoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNz
aW9uQ2FsbGJhY2s+IGNhbGxiYWNrKQordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBSZWZQdHI8Tm90
aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmIGNhbGxiYWNrKQogewogICAgIE5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbiBwZXJtaXNzaW9uID0gcGVybWlzc2lvbkxldmVsKG9yaWdp
bik7CiAgICAgaWYgKHBlcm1pc3Npb24gIT0gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9u
Tm90QWxsb3dlZCkgewpAQCAtODEsMTMgKzgxLDEzIEBAIHZvaWQgTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwK
ICAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOwogICAgIG1fb3Jp
Z2luVG9JRE1hcC5zZXQob3JpZ2luLCByZXF1ZXN0SUQpOwogICAgIG1faWRUb09yaWdpbk1hcC5z
ZXQocmVxdWVzdElELCBvcmlnaW4pOwotICAgIG1faWRUb0NhbGxiYWNrTWFwLnNldChyZXF1ZXN0
SUQsIGNhbGxiYWNrKTsKKyAgICBtX2lkVG9DYWxsYmFja01hcC5zZXQocmVxdWVzdElELCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHJlcXVlc3RJRCwgb3JpZ2luLT50b1N0cmlu
ZygpKSk7CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLXZv
aWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoU2Vj
dXJpdHlPcmlnaW4qIG9yaWdpbiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJhY2s+IGNh
bGxiYWNrKQordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0
UmVxdWVzdChTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxi
YWNrPiYmIGNhbGxiYWNrKQogewogICAgIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBw
ZXJtaXNzaW9uID0gcGVybWlzc2lvbkxldmVsKG9yaWdpbik7CiAgICAgaWYgKHBlcm1pc3Npb24g
IT0gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZCkgewpAQCAtOTksNyAr
OTksNyBAQCB2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRS
ZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sCiAgICAgdWludDY0X3QgcmVxdWVzdElEID0g
Z2VuZXJhdGVSZXF1ZXN0SUQoKTsKICAgICBtX29yaWdpblRvSURNYXAuc2V0KG9yaWdpbiwgcmVx
dWVzdElEKTsKICAgICBtX2lkVG9PcmlnaW5NYXAuc2V0KHJlcXVlc3RJRCwgb3JpZ2luKTsKLSAg
ICBtX2lkVG9Wb2lkQ2FsbGJhY2tNYXAuc2V0KHJlcXVlc3RJRCwgY2FsbGJhY2spOworICAgIG1f
aWRUb1ZvaWRDYWxsYmFja01hcC5zZXQocmVxdWVzdElELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAg
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3ROb3RpZmljYXRp
b25QZXJtaXNzaW9uKHJlcXVlc3RJRCwgb3JpZ2luLT50b1N0cmluZygpKSk7CiB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
aAppbmRleCA3MDgyN2Q2MGJkNDUxNDgzMWJhODcwZTVjNzIzZjJjZjNjZmY0YzJkLi44NmU0Y2Zj
MjY0YzIxNzM3YWMwYWM3ZGVhZDhhOTY2MGE0NTZmYzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC01MCwxMCArNTAsMTAg
QEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOwogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0g
ICAgdm9pZCBzdGFydFJlcXVlc3QoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBQYXNzUmVmUHRy
PFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4pOworICAgIHZvaWQgc3Rh
cnRSZXF1ZXN0KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgUmVmUHRyPFdlYkNvcmU6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoTEVHQUNZ
X05PVElGSUNBVElPTlMpCi0gICAgdm9pZCBzdGFydFJlcXVlc3QoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4qLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4pOworICAgIHZvaWQgc3Rh
cnRSZXF1ZXN0KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgUmVmUHRyPFdlYkNvcmU6OlZvaWRD
YWxsYmFjaz4mJik7CiAjZW5kaWYKICAgICB2b2lkIGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4qKTsKICAgICBib29sIGhhc1BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4qKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50LmNwcAppbmRleCBjN2Q4MjFhMTFlZjBmMDhjNDgzODY1MDU5NWI3OTAyMjg1NjQ3NmI3Li4y
M2ExNDAxNzcxMTE0NTdiMzAzNGRkNDNmNjU3NjZkZTUxYWVlYWUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJO
b3RpZmljYXRpb25DbGllbnQuY3BwCkBAIC03MywxNiArNzMsMTYgQEAgdm9pZCBXZWJOb3RpZmlj
YXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQogfQogCiAjaWYg
RU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6
OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiBjYWxsYmFjaykKK3ZvaWQgV2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiYmIGNhbGxiYWNrKQogewotICAgIG1f
cGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPnN0YXJ0UmVxdWVz
dChjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBjYWxsYmFjayk7CisgICAgbV9wYWdlLT5ub3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+c3RhcnRSZXF1ZXN0KGNvbnRleHQt
PnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KICNlbmRpZgogCiAjaWYg
RU5BQkxFKE5PVElGSUNBVElPTlMpCi12b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVz
dFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+IGNhbGxiYWNrKQordm9pZCBXZWJOb3RpZmlj
YXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2sp
CiB7Ci0gICAgbV9wYWdlLT5ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+
c3RhcnRSZXF1ZXN0KGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIGNhbGxiYWNrKTsKKyAgICBt
X3BhZ2UtPm5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5zdGFydFJlcXVl
c3QoY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCmluZGV4IDFkZjI1NWU2MmU2M2Rm
Y2IwM2YyZjE2YmEwOTBhNzljZTkxZmJhMWMuLjliYzgwZDFlZTVmNTBhY2NjNjgzNmI5MzZlNDMz
MjVhNTcwNGUxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaApAQCAtNTIsMTAg
KzUyLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQo
V2ViQ29yZTo6Tm90aWZpY2F0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZmljYXRpb25D
b250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKExFR0FDWV9OT1RJRklD
QVRJT05TKQotICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPikgb3ZlcnJpZGU7
CisgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4pIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFBl
cm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFJlZlB0cjxXZWJDb3Jl
OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogI2VuZGlmCiAg
ICAgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCopIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzUGVuZGluZ1Blcm1pc3Npb25SZXF1
ZXN0cyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgY29uc3Qgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277797</attachid>
            <date>2016-04-29 21:46:27 -0700</date>
            <delta_ts>2016-04-29 21:49:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157188-20160429214702.patch</filename>
            <type>text/plain</type>
            <size>43222</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU0NmQwNDg1NjE5NzRl
MTgyNjZjNGI4N2MzNmJmN2EzNDM3OWUyZi4uZTg5OTgxOGEwNzQ3M2Q0M2E2YWZjOWJiYmRmNjZi
YmNmNWM4OWM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE2LTA0LTI5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBJRExdIFNwZWNpZnkg
ZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWVzIGZvciBjYWxsYmFjayBwYXJhbWV0ZXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcxODgKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBTcGVjaWZ5IGRlZmF1bHQgcGFy
YW1ldGVyIHZhbHVlcyBmb3IgY2FsbGJhY2sgcGFyYW1ldGVycy4KKworICAgICAgICAqIE1vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9u
OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50
ZXIuaWRsOgorICAgICAgICAqIE1vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3RvcmFnZUluZm86OnF1ZXJ5VXNhZ2VBbmRRdW90YSk6CisgICAgICAgIChX
ZWJDb3JlOjpTdG9yYWdlSW5mbzo6cmVxdWVzdFF1b3RhKToKKyAgICAgICAgKiBNb2R1bGVzL3F1
b3RhL1N0b3JhZ2VJbmZvLmg6CisgICAgICAgICogTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mby5p
ZGw6CisgICAgICAgICogTW9kdWxlcy9xdW90YS9TdG9yYWdlUXVvdGEuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3F1b3RhL1N0b3JhZ2VRdW90YS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2lu
ZG93V2ViRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViRGF0YWJh
c2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5k
b3dXZWJEYXRhYmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViRGF0YWJhc2U6
OkRPTVdpbmRvd1dlYkRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1dlYkRh
dGFiYXNlOjp+RE9NV2luZG93V2ViRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnJ1blRyYW5z
YWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpjaGFuZ2VWZXJzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjp0cmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhYmFzZTo6cmVhZFRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5p
ZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5pZGw6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChH
ZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAgICAgIChDYW5Vc2VXVEZPcHRpb25hbEZvclBh
cmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtLmg6CisgICAgICAgICogZG9t
L0RhdGFUcmFuc2Zlckl0ZW0uaWRsOgorCiAyMDE2LTA0LTI5ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmFtZSBnZXRBc3NpZ25lZE5vZGVzIHRvIGFzc2ln
bmVkTm9kZXMgYW5kIHN1cHBvcnQgZmxhdHRlbmVkIG9wdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbAppbmRleCBlM2FjOWVhNjhi
YjcyZDAzOTAxYmJkODEwYWZkMzExMzkwYjM1M2IyLi4yMmU5YzE2NDhmMzdjYjkxYzNjYTEyNzk4
NGY0YTM4ZWQwZDljNzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmlkbApAQCAtMzAsMTEgKzMwLDExIEBACiAgICAgR2VuZXJhdGVJ
c1JlYWNoYWJsZT1JbXBsRnJhbWUsCiBdIGludGVyZmFjZSBHZW9sb2NhdGlvbiB7CiAgICAgW0N1
c3RvbV0gdm9pZCBnZXRDdXJyZW50UG9zaXRpb24oUG9zaXRpb25DYWxsYmFjayBzdWNjZXNzQ2Fs
bGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgUG9z
aXRpb25FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9uYWwgUG9zaXRpb25FcnJvckNhbGxiYWNrPyBlcnJvckNhbGxi
YWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFBvc2l0
aW9uT3B0aW9ucyBvcHRpb25zKTsKIAogICAgIFtDdXN0b21dIGxvbmcgd2F0Y2hQb3NpdGlvbihQ
b3NpdGlvbkNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3B0aW9uYWwgUG9zaXRpb25FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2ssCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFBvc2l0aW9uRXJyb3JDYWxs
YmFjaz8gZXJyb3JDYWxsYmFjaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0
aW9uYWwgUG9zaXRpb25PcHRpb25zIG9wdGlvbnMpOwogCiAgICAgdm9pZCBjbGVhcldhdGNoKGxv
bmcgd2F0Y2hJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IGMyOWFlMWY0Y2U0YTYyMDc2YmFmOTQ5NTRkZTYw
MmNiYjgwYzkxZmQuLmEzMjJkMzNiYTZlMzA0MTQwOWU2ZGM3NDQyMjRjM2RmNzIxZDhlOGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb24uY3BwCkBAIC0yNDEsOSArMjQxLDkgQEAgY29uc3QgU3RyaW5nIE5vdGlmaWNhdGlvbjo6
cGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gcGVybWkKICAg
ICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLXZvaWQgTm90aWZpY2F0aW9uOjpyZXF1ZXN0UGVybWlz
c2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lv
bkNhbGxiYWNrPiBjYWxsYmFjaykKK3ZvaWQgTm90aWZpY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lv
bihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJh
Y2s+JiYgY2FsbGJhY2spCiB7Ci0gICAgTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShkb2N1
bWVudC5wYWdlKCkpLT5jbGllbnQoKS0+cmVxdWVzdFBlcm1pc3Npb24oJmRvY3VtZW50LCBjYWxs
YmFjayk7CisgICAgTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC5wYWdlKCkp
LT5jbGllbnQoKS0+cmVxdWVzdFBlcm1pc3Npb24oJmRvY3VtZW50LCBXVEZNb3ZlKGNhbGxiYWNr
KSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5oCmluZGV4IDI0ZTBjNWNhMjY4Njg0MThkMDQzOTA1MTAzOGFm
NzM3OGVlOTRlODAuLjc5NWM5MzdiMjdlYWU3NThkNTEzNjgwZTg2NWFjNTVlM2ZkOWMwNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmgKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCiAgICAgc3RhdGljIGNvbnN0IFN0cmluZyBwZXJtaXNzaW9uKERvY3VtZW50Jik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFN0cmluZyBwZXJtaXNzaW9uU3RyaW5nKE5vdGlm
aWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik7Ci0gICAgc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1p
c3Npb24oRG9jdW1lbnQmLCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFj
az4gPSBudWxscHRyKTsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVu
dCYsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpOwogI2VuZGlmCiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb24uaWRsCmluZGV4IDQyMTc5M2YxODgyODllMzlmZGJjY2IzMjdhODEyYzFh
OGM4NTFlMjguLmRiZTQ4NzJkNzk4NGU5ODNkODQ1NjNiOWQzYThjM2U1NTRkOGEwNjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24u
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uaWRsCkBAIC00Myw3ICs0Myw3IEBACiAgICAgW0NvbmRpdGlvbmFsPU5PVElGSUNBVElPTlNd
IHZvaWQgY2xvc2UoKTsKIAogICAgIFtDb25kaXRpb25hbD1OT1RJRklDQVRJT05TLCBDYWxsV2l0
aD1Eb2N1bWVudF0gc3RhdGljIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcGVybWlzc2lv
bjsKLSAgICBbQ29uZGl0aW9uYWw9Tk9USUZJQ0FUSU9OUywgQ2FsbFdpdGg9RG9jdW1lbnRdIHN0
YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKG9wdGlvbmFsIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25DYWxsYmFjayBjYWxsYmFjayk7CisgICAgW0NvbmRpdGlvbmFsPU5PVElGSUNBVElPTlMsIENh
bGxXaXRoPURvY3VtZW50XSBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihvcHRpb25hbCBO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s/IGNhbGxiYWNrKTsKIAogICAgIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb25jbGljazsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uY2xv
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uQ2VudGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsCmluZGV4IDU0MzQzY2ZhOWQzODkwNjFhNjFjZTg1MzYz
YzYzY2NiY2ZkM2RjOWUuLjM5MTY1ZmUzODY5NmYyMmJmYjUwYjY2NGUxOGIwZGI4ZWNlMDM0ZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25DZW50ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsCkBAIC0zNyw2ICszNyw2IEBACiAgICBbUmFpc2VzRXhj
ZXB0aW9uXSBOb3RpZmljYXRpb24gY3JlYXRlTm90aWZpY2F0aW9uKERPTVN0cmluZyBpY29uVXJs
LCBET01TdHJpbmcgdGl0bGUsIERPTVN0cmluZyBib2R5KTsKIAogICAgaW50IGNoZWNrUGVybWlz
c2lvbigpOwotICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihvcHRpb25hbCBWb2lkQ2FsbGJhY2sg
Y2FsbGJhY2spOworICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihvcHRpb25hbCBWb2lkQ2FsbGJh
Y2s/IGNhbGxiYWNrKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaAppbmRleCA3MzFkZWQ4NzMzNDEw
MzBmNGJjZjI0OTYyZjQ1NWMzM2E5YWRjNWFmLi5jN2ViOTBiZDI4YWJlYmUxMjdlZjg1MWI2YTBh
OTNjMDkwMWNlMzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC03NSwxMCArNzUsMTAgQEAgcHVi
bGljOgogICAgIC8vIFJlcXVlc3RzIHVzZXIgcGVybWlzc2lvbiB0byBzaG93IGRlc2t0b3Agbm90
aWZpY2F0aW9ucyBmcm9tIGEgcGFydGljdWxhcgogICAgIC8vIHNjcmlwdCBjb250ZXh0LiBUaGUg
Y2FsbGJhY2sgcGFyYW1ldGVyIHNob3VsZCBiZSBydW4gd2hlbiB0aGUgdXNlciBoYXMKICAgICAv
LyBtYWRlIGEgZGVjaXNpb24uCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4pID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYpID0gMDsKICNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKSA9IDA7CiAj
ZW5kaWYKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcXVvdGEvU3RvcmFnZUluZm8uY3BwCmluZGV4IDU5MGU0MGIzYmVkNjMyZWFiYzY3ODIyYjIw
NzI5MWMyZDBhYTk1NTEuLmNkODNhNGE5MjIwOGY5NjI5OGVhYzJlZjY4MTc4MWM0N2M0NzU1YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uY3BwCkBAIC01
MiwyOCArNTIsMjggQEAgU3RvcmFnZUluZm86On5TdG9yYWdlSW5mbygpCiB7CiB9CiAKLXZvaWQg
U3RvcmFnZUluZm86OnF1ZXJ5VXNhZ2VBbmRRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBpbnQgc3RvcmFnZVR5cGUsIFBhc3NSZWZQdHI8U3RvcmFn
ZVVzYWdlQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxTdG9yYWdlRXJyb3JD
YWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3ZvaWQgU3RvcmFnZUluZm86OnF1ZXJ5VXNhZ2VBbmRR
dW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBpbnQg
c3RvcmFnZVR5cGUsIFJlZlB0cjxTdG9yYWdlVXNhZ2VDYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJh
Y2ssIFJlZlB0cjxTdG9yYWdlRXJyb3JDYWxsYmFjaz4mJiBlcnJvckNhbGxiYWNrKQogewogICAg
IC8vIERpc3BhdGNoaW5nIHRoZSByZXF1ZXN0IHRvIFN0b3JhZ2VRdW90YSwgYXMgdGhpcyBpbnRl
cmZhY2UgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBTdG9yYWdlUXVvdGEuCiAgICAgU3RvcmFn
ZVF1b3RhKiBzdG9yYWdlUXVvdGEgPSBnZXRTdG9yYWdlUXVvdGEoc3RvcmFnZVR5cGUpOwogICAg
IGlmICghc3RvcmFnZVF1b3RhKSB7CiAgICAgICAgIC8vIFVua25vd24gc3RvcmFnZSB0eXBlIGlz
IHJlcXVlc3RlZC4KLSAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soU3Rv
cmFnZUVycm9yQ2FsbGJhY2s6OkNhbGxiYWNrVGFzazo6Y3JlYXRlKGVycm9yQ2FsbGJhY2ssIE5P
VF9TVVBQT1JURURfRVJSKSk7CisgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RU
YXNrKFN0b3JhZ2VFcnJvckNhbGxiYWNrOjpDYWxsYmFja1Rhc2s6OmNyZWF0ZShXVEZNb3ZlKGVy
cm9yQ2FsbGJhY2spLCBOT1RfU1VQUE9SVEVEX0VSUikpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIHN0b3JhZ2VRdW90YS0+cXVlcnlVc2FnZUFuZFF1b3RhKHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjayk7CisgICAgc3RvcmFnZVF1b3Rh
LT5xdWVyeVVzYWdlQW5kUXVvdGEoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgV1RGTW92ZShzdWNj
ZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spKTsKIH0KIAotdm9pZCBTdG9yYWdl
SW5mbzo6cmVxdWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIGludCBzdG9yYWdlVHlwZSwgdW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3RhSW5C
eXRlcywgUGFzc1JlZlB0cjxTdG9yYWdlUXVvdGFDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQ
YXNzUmVmUHRyPFN0b3JhZ2VFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQordm9pZCBTdG9y
YWdlSW5mbzo6cmVxdWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIGludCBzdG9yYWdlVHlwZSwgdW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3Rh
SW5CeXRlcywgUmVmUHRyPFN0b3JhZ2VRdW90YUNhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaywg
UmVmUHRyPFN0b3JhZ2VFcnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2spCiB7CiAgICAgLy8g
RGlzcGF0Y2hpbmcgdGhlIHJlcXVlc3QgdG8gU3RvcmFnZVF1b3RhLCBhcyB0aGlzIGludGVyZmFj
ZSBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIFN0b3JhZ2VRdW90YS4KICAgICBTdG9yYWdlUXVv
dGEqIHN0b3JhZ2VRdW90YSA9IGdldFN0b3JhZ2VRdW90YShzdG9yYWdlVHlwZSk7CiAgICAgaWYg
KCFzdG9yYWdlUXVvdGEpIHsKICAgICAgICAgLy8gVW5rbm93biBzdG9yYWdlIHR5cGUgaXMgcmVx
dWVzdGVkLgotICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhTdG9yYWdl
RXJyb3JDYWxsYmFjazo6Q2FsbGJhY2tUYXNrOjpjcmVhdGUoZXJyb3JDYWxsYmFjaywgTk9UX1NV
UFBPUlRFRF9FUlIpKTsKKyAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2so
U3RvcmFnZUVycm9yQ2FsbGJhY2s6OkNhbGxiYWNrVGFzazo6Y3JlYXRlKFdURk1vdmUoZXJyb3JD
YWxsYmFjayksIE5PVF9TVVBQT1JURURfRVJSKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0g
ICAgc3RvcmFnZVF1b3RhLT5yZXF1ZXN0UXVvdGEoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgbmV3
UXVvdGFJbkJ5dGVzLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworICAgIHN0b3Jh
Z2VRdW90YS0+cmVxdWVzdFF1b3RhKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIG5ld1F1b3RhSW5C
eXRlcywgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spKTsK
IH0KIAogU3RvcmFnZVF1b3RhKiBTdG9yYWdlSW5mbzo6Z2V0U3RvcmFnZVF1b3RhKGludCBzdG9y
YWdlVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFn
ZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uaAppbmRl
eCA0MmRhM2YyY2NhY2RkYTk2MTMzYjZlZTE1ZmY0ZmQzZDY4ODYyM2IzLi5iNjg0MTM4OGI1MTgw
ZjYzZTg1MGMyNTNkOGZjMzI1NzQ2ZWE2ZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9x
dW90YS9TdG9yYWdlSW5mby5oCkBAIC01Nyw5ICs1Nyw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZUluZm8oKSk7CiAgICAgfQogCi0gICAgdm9pZCBxdWVy
eVVzYWdlQW5kUXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGludCBzdG9yYWdlVHlwZSwg
UGFzc1JlZlB0cjxTdG9yYWdlVXNhZ2VDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3RvcmFnZUVycm9y
Q2FsbGJhY2s+KTsKKyAgICB2b2lkIHF1ZXJ5VXNhZ2VBbmRRdW90YShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgaW50IHN0b3JhZ2VUeXBlLCBSZWZQdHI8U3RvcmFnZVVzYWdlQ2FsbGJhY2s+JiYs
IFJlZlB0cjxTdG9yYWdlRXJyb3JDYWxsYmFjaz4mJik7CiAKLSAgICB2b2lkIHJlcXVlc3RRdW90
YShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgaW50IHN0b3JhZ2VUeXBlLCB1bnNpZ25lZCBsb25n
IGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBQYXNzUmVmUHRyPFN0b3JhZ2VRdW90YUNhbGxiYWNrPiwg
UGFzc1JlZlB0cjxTdG9yYWdlRXJyb3JDYWxsYmFjaz4pOworICAgIHZvaWQgcmVxdWVzdFF1b3Rh
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBpbnQgc3RvcmFnZVR5cGUsIHVuc2lnbmVkIGxvbmcg
bG9uZyBuZXdRdW90YUluQnl0ZXMsIFJlZlB0cjxTdG9yYWdlUXVvdGFDYWxsYmFjaz4mJiwgUmVm
UHRyPFN0b3JhZ2VFcnJvckNhbGxiYWNrPiYmKTsKIAogICAgIH5TdG9yYWdlSW5mbygpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uaWRsCmluZGV4IGU2MTU3
YTBkM2RiYTFlZmU1MTMxMjM1YjgwNmI1MDVkN2MyOWU5MGUuLjA2MjYzODEyMzAxYTAyY2U0OWY4
NTVhYmNjYjY2YzQ2Mzc2MDhkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cXVvdGEvU3RvcmFnZUluZm8uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEv
U3RvcmFnZUluZm8uaWRsCkBAIC0zMSw2ICszMSw2IEBACiAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgVEVNUE9SQVJZID0gMDsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBQRVJTSVNURU5UID0g
MTsKIAotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIHF1ZXJ5VXNh
Z2VBbmRRdW90YSh1bnNpZ25lZCBzaG9ydCBzdG9yYWdlVHlwZSwgb3B0aW9uYWwgU3RvcmFnZVVz
YWdlQ2FsbGJhY2sgdXNhZ2VDYWxsYmFjaywgb3B0aW9uYWwgU3RvcmFnZUVycm9yQ2FsbGJhY2sg
ZXJyb3JDYWxsYmFjayk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZv
aWQgcmVxdWVzdFF1b3RhKHVuc2lnbmVkIHNob3J0IHN0b3JhZ2VUeXBlLCB1bnNpZ25lZCBsb25n
IGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBvcHRpb25hbCBTdG9yYWdlUXVvdGFDYWxsYmFjayBxdW90
YUNhbGxiYWNrLCBvcHRpb25hbCBTdG9yYWdlRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsK
KyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCBxdWVyeVVzYWdlQW5k
UXVvdGEodW5zaWduZWQgc2hvcnQgc3RvcmFnZVR5cGUsIG9wdGlvbmFsIFN0b3JhZ2VVc2FnZUNh
bGxiYWNrPyB1c2FnZUNhbGxiYWNrLCBvcHRpb25hbCBTdG9yYWdlRXJyb3JDYWxsYmFjaz8gZXJy
b3JDYWxsYmFjayk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQg
cmVxdWVzdFF1b3RhKHVuc2lnbmVkIHNob3J0IHN0b3JhZ2VUeXBlLCB1bnNpZ25lZCBsb25nIGxv
bmcgbmV3UXVvdGFJbkJ5dGVzLCBvcHRpb25hbCBTdG9yYWdlUXVvdGFDYWxsYmFjaz8gcXVvdGFD
YWxsYmFjaywgb3B0aW9uYWwgU3RvcmFnZUVycm9yQ2FsbGJhY2s/IGVycm9yQ2FsbGJhY2spOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZVF1b3Rh
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VRdW90YS5oCmluZGV4IGNj
ZmRlODFlNGUzOWQ0MGZiZDhmYTU4MjZhM2ExZTFlMzhlNjJjOWYuLmM3MjM4ZDkwMzVmNDNiZmJm
NDRmODlhMWEzYmJlMzRiMDZjMjM0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcXVvdGEvU3RvcmFnZVF1b3RhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90
YS9TdG9yYWdlUXVvdGEuaApAQCAtNTUsOSArNTUsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFN0b3JhZ2VRdW90YSh0eXBlKSk7CiAgICAgfQogCi0gICAgdm9pZCBx
dWVyeVVzYWdlQW5kUXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFBhc3NSZWZQdHI8U3Rv
cmFnZVVzYWdlQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFN0b3JhZ2VFcnJvckNhbGxiYWNrPik7Cisg
ICAgdm9pZCBxdWVyeVVzYWdlQW5kUXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZlB0
cjxTdG9yYWdlVXNhZ2VDYWxsYmFjaz4mJiwgUmVmUHRyPFN0b3JhZ2VFcnJvckNhbGxiYWNrPiYm
KTsKIAotICAgIHZvaWQgcmVxdWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1bnNp
Z25lZCBsb25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBQYXNzUmVmUHRyPFN0b3JhZ2VRdW90YUNh
bGxiYWNrPiwgUGFzc1JlZlB0cjxTdG9yYWdlRXJyb3JDYWxsYmFjaz4pOworICAgIHZvaWQgcmVx
dWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1bnNpZ25lZCBsb25nIGxvbmcgbmV3
UXVvdGFJbkJ5dGVzLCBSZWZQdHI8U3RvcmFnZVF1b3RhQ2FsbGJhY2s+JiYsIFJlZlB0cjxTdG9y
YWdlRXJyb3JDYWxsYmFjaz4mJik7CiAKICAgICB+U3RvcmFnZVF1b3RhKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZVF1b3RhLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZVF1b3RhLmlkbAppbmRleCA5MzdkYzRlMThj
ZmExZjZmYjVhNDc2ZTEwMTk2YWM0YjVhZTY1YWJhLi5lNTk2YWEzZjRiZDRhY2EyMjczYzU3NjIy
NmQ3NmEwZWE0NDdiNzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3Rh
L1N0b3JhZ2VRdW90YS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9y
YWdlUXVvdGEuaWRsCkBAIC0yOCw2ICsyOCw2IEBACiAgICAgQ29uZGl0aW9uYWw9UVVPVEEsCiAg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKIF0gaW50ZXJmYWNlIFN0b3JhZ2VRdW90YSB7
Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgcXVlcnlVc2FnZUFu
ZFF1b3RhKFN0b3JhZ2VVc2FnZUNhbGxiYWNrIHVzYWdlQ2FsbGJhY2ssIG9wdGlvbmFsIFN0b3Jh
Z2VFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOwotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0XSB2b2lkIHJlcXVlc3RRdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVv
dGFJbkJ5dGVzLCBvcHRpb25hbCBTdG9yYWdlUXVvdGFDYWxsYmFjayBxdW90YUNhbGxiYWNrLCBv
cHRpb25hbCBTdG9yYWdlRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKKyAgICBbQ2FsbFdp
dGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCBxdWVyeVVzYWdlQW5kUXVvdGEoU3RvcmFn
ZVVzYWdlQ2FsbGJhY2sgdXNhZ2VDYWxsYmFjaywgb3B0aW9uYWwgU3RvcmFnZUVycm9yQ2FsbGJh
Y2s/IGVycm9yQ2FsbGJhY2spOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
XSB2b2lkIHJlcXVlc3RRdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBv
cHRpb25hbCBTdG9yYWdlUXVvdGFDYWxsYmFjaz8gcXVvdGFDYWxsYmFjaywgb3B0aW9uYWwgU3Rv
cmFnZUVycm9yQ2FsbGJhY2s/IGVycm9yQ2FsbGJhY2spOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5j
cHAKaW5kZXggNWI5ZmRiMzJiMWExYThjYjQwMGE2OGEzMmRlZGU2YjgxMDg2NzA5NS4uM2U1NTkw
MmFhYzU1ZjU0YWU3ZGFiNjQzYjAwMDZmNTE5OTNlMzYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5j
cHAKQEAgLTM3LDE2ICszNywxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZlB0cjxE
YXRhYmFzZT4gRE9NV2luZG93V2ViRGF0YWJhc2U6Om9wZW5EYXRhYmFzZShET01XaW5kb3cmIHdp
bmRvdywgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24sIGNvbnN0IFN0
cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwgUGFzc1JlZlB0
cjxEYXRhYmFzZUNhbGxiYWNrPiBjcmVhdGlvbkNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykK
K1JlZlB0cjxEYXRhYmFzZT4gRE9NV2luZG93V2ViRGF0YWJhc2U6Om9wZW5EYXRhYmFzZShET01X
aW5kb3cmIHdpbmRvdywgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24s
IGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwg
UmVmUHRyPERhdGFiYXNlQ2FsbGJhY2s+JiYgY3JlYXRpb25DYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgaWYgKCF3aW5kb3cuaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPERhdGFiYXNlPiBkYXRhYmFz
ZSA9IG51bGxwdHI7CisgICAgUmVmUHRyPERhdGFiYXNlPiBkYXRhYmFzZTsKICAgICBEYXRhYmFz
ZU1hbmFnZXImIGRiTWFuYWdlciA9IERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCk7CiAgICAg
RGF0YWJhc2VFcnJvciBlcnJvciA9IERhdGFiYXNlRXJyb3I6Ok5vbmU7CiAgICAgaWYgKGRiTWFu
YWdlci5pc0F2YWlsYWJsZSgpICYmIHdpbmRvdy5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
LT5jYW5BY2Nlc3NEYXRhYmFzZSh3aW5kb3cuZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCkpKSB7Ci0g
ICAgICAgIGRhdGFiYXNlID0gZGJNYW5hZ2VyLm9wZW5EYXRhYmFzZSh3aW5kb3cuZG9jdW1lbnQo
KSwgbmFtZSwgdmVyc2lvbiwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUsIGNyZWF0aW9uQ2Fs
bGJhY2ssIGVycm9yKTsKKyAgICAgICAgZGF0YWJhc2UgPSBkYk1hbmFnZXIub3BlbkRhdGFiYXNl
KHdpbmRvdy5kb2N1bWVudCgpLCBuYW1lLCB2ZXJzaW9uLCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVk
U2l6ZSwgV1RGTW92ZShjcmVhdGlvbkNhbGxiYWNrKSwgZXJyb3IpOwogICAgICAgICBBU1NFUlQo
ZGF0YWJhc2UgfHwgZXJyb3IgIT0gRGF0YWJhc2VFcnJvcjo6Tm9uZSk7CiAgICAgICAgIGVjID0g
RGF0YWJhc2VNYW5hZ2VyOjpleGNlcHRpb25Db2RlRm9yRGF0YWJhc2VFcnJvcihlcnJvcik7CiAg
ICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RPTVdpbmRvd1dlYkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmgKaW5kZXggNjU2Zjg4MzE4M2ZjMDk5ZWU5MDkwYmY0
Y2Y5ZTNhOGMzZjMzODJhYi4uMWNlMjM5YzQ0ZDkwZWExMjU3YTU3NjI2ZDA5YTYxNDUwZTdiMzkx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5k
b3dXZWJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RE9NV2luZG93V2ViRGF0YWJhc2UuaApAQCAtNDIsMTEgKzQyLDEwIEBAIGNsYXNzIEZyYW1lOwog
CiBjbGFzcyBET01XaW5kb3dXZWJEYXRhYmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0
cjxEYXRhYmFzZT4gb3BlbkRhdGFiYXNlKERPTVdpbmRvdyYsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25l
ZCBsb25nIGVzdGltYXRlZFNpemUsIFBhc3NSZWZQdHI8RGF0YWJhc2VDYWxsYmFjaz4gY3JlYXRp
b25DYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBSZWZQdHI8RGF0YWJhc2U+
IG9wZW5EYXRhYmFzZShET01XaW5kb3cmLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmVyc2lvbiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3Rp
bWF0ZWRTaXplLCBSZWZQdHI8RGF0YWJhc2VDYWxsYmFjaz4mJiBjcmVhdGlvbkNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJik7CiAKLXByaXZhdGU6Ci0gICAgRE9NV2luZG93V2ViRGF0YWJhc2UoKSB7
IH07Ci0gICAgfkRPTVdpbmRvd1dlYkRhdGFiYXNlKCkgeyB9OworICAgIERPTVdpbmRvd1dlYkRh
dGFiYXNlKCkgPSBkZWxldGU7CisgICAgfkRPTVdpbmRvd1dlYkRhdGFiYXNlKCkgPSBkZWxldGU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsCmluZGV4
IDE1ZWI0MzUxNWFmYmIyYzA2NTBjYWZmMjk2NTcyMzc0MDYzMjc1ODUuLjdhNTM2ZDRkZjI3Yjc0
M2E3NDExZmZhZTBmYzkxNzg2NTVhYzYwYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsCkBAIC0y
Niw2ICsyNiw2IEBACiAKIFsKIF0gcGFydGlhbCBpbnRlcmZhY2UgRE9NV2luZG93IHsKLSAgICBb
UmFpc2VzRXhjZXB0aW9uXSBEYXRhYmFzZSBvcGVuRGF0YWJhc2UoRE9NU3RyaW5nIG5hbWUsIERP
TVN0cmluZyB2ZXJzaW9uLCBET01TdHJpbmcgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0
aW1hdGVkU2l6ZSwgb3B0aW9uYWwgRGF0YWJhc2VDYWxsYmFjayBjcmVhdGlvbkNhbGxiYWNrKTsK
KyAgICBbUmFpc2VzRXhjZXB0aW9uXSBEYXRhYmFzZSBvcGVuRGF0YWJhc2UoRE9NU3RyaW5nIG5h
bWUsIERPTVN0cmluZyB2ZXJzaW9uLCBET01TdHJpbmcgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxv
bmcgZXN0aW1hdGVkU2l6ZSwgb3B0aW9uYWwgRGF0YWJhc2VDYWxsYmFjaz8gY3JlYXRpb25DYWxs
YmFjayk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2UuY3BwCmluZGV4IGMwOGI4NjE0MDRiODU4MGE5MDliM2UyOGEzNjQxMTk2ZWUyNGZhMTUu
LjgxM2NhMDQ5MjFlOWYxZTA3MjRiYTU1ZTQyMGRhZTNmMmM2ZGIzZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC01NTQsMTcgKzU1
NCwxNyBAQCB2b2lkIERhdGFiYXNlOjpzY2hlZHVsZVRyYW5zYWN0aW9uKCkKICAgICAgICAgbV90
cmFuc2FjdGlvbkluUHJvZ3Jlc3MgPSBmYWxzZTsKIH0KIAotUGFzc1JlZlB0cjxTUUxUcmFuc2Fj
dGlvbkJhY2tlbmQ+IERhdGFiYXNlOjpydW5UcmFuc2FjdGlvbihQYXNzUmVmUHRyPFNRTFRyYW5z
YWN0aW9uPiB0cmFuc2FjdGlvbiwgYm9vbCByZWFkT25seSwgY29uc3QgQ2hhbmdlVmVyc2lvbkRh
dGEqIGRhdGEpCitSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBEYXRhYmFzZTo6cnVuVHJh
bnNhY3Rpb24oUmVmPFNRTFRyYW5zYWN0aW9uPiYmIHRyYW5zYWN0aW9uLCBib29sIHJlYWRPbmx5
LCBjb25zdCBDaGFuZ2VWZXJzaW9uRGF0YSogZGF0YSkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4KTsKICAgICBpZiAoIW1faXNUcmFuc2FjdGlv
blF1ZXVlRW5hYmxlZCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uV3JhcHBlcj4gd3JhcHBlcjsKICAgICBpZiAo
ZGF0YSkKICAgICAgICAgd3JhcHBlciA9IENoYW5nZVZlcnNpb25XcmFwcGVyOjpjcmVhdGUoZGF0
YS0+b2xkVmVyc2lvbigpLCBkYXRhLT5uZXdWZXJzaW9uKCkpOwogCi0gICAgUmVmUHRyPFNRTFRy
YW5zYWN0aW9uQmFja2VuZD4gdHJhbnNhY3Rpb25CYWNrZW5kID0gU1FMVHJhbnNhY3Rpb25CYWNr
ZW5kOjpjcmVhdGUodGhpcywgdHJhbnNhY3Rpb24sIHdyYXBwZXIsIHJlYWRPbmx5KTsKKyAgICBS
ZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiB0cmFuc2FjdGlvbkJhY2tlbmQgPSBTUUxUcmFu
c2FjdGlvbkJhY2tlbmQ6OmNyZWF0ZSh0aGlzLCBXVEZNb3ZlKHRyYW5zYWN0aW9uKSwgd3JhcHBl
ciwgcmVhZE9ubHkpOwogICAgIG1fdHJhbnNhY3Rpb25RdWV1ZS5hcHBlbmQodHJhbnNhY3Rpb25C
YWNrZW5kKTsKICAgICBpZiAoIW1fdHJhbnNhY3Rpb25JblByb2dyZXNzKQogICAgICAgICBzY2hl
ZHVsZVRyYW5zYWN0aW9uKCk7CkBAIC02MzUsMjIgKzYzNSwyMCBAQCB2b2lkIERhdGFiYXNlOjpt
YXJrQXNEZWxldGVkQW5kQ2xvc2UoKQogICAgIHN5bmNocm9uaXplci53YWl0Rm9yVGFza0NvbXBs
ZXRpb24oKTsKIH0KIAotdm9pZCBEYXRhYmFzZTo6Y2hhbmdlVmVyc2lvbihjb25zdCBTdHJpbmcm
IG9sZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiBjYWxsYmFjaywg
UGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNj
ZXNzQ2FsbGJhY2spCit2b2lkIERhdGFiYXNlOjpjaGFuZ2VWZXJzaW9uKGNvbnN0IFN0cmluZyYg
b2xkVmVyc2lvbiwgY29uc3QgU3RyaW5nJiBuZXdWZXJzaW9uLCBSZWZQdHI8U1FMVHJhbnNhY3Rp
b25DYWxsYmFjaz4mJiBjYWxsYmFjaywgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFj
az4mJiBlcnJvckNhbGxiYWNrLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFj
aykKIHsKICAgICBDaGFuZ2VWZXJzaW9uRGF0YSBkYXRhKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24p
OwotICAgIHJ1blRyYW5zYWN0aW9uKGNhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBzdWNjZXNzQ2Fs
bGJhY2ssIGZhbHNlLCAmZGF0YSk7CisgICAgcnVuVHJhbnNhY3Rpb24oV1RGTW92ZShjYWxsYmFj
ayksIFdURk1vdmUoZXJyb3JDYWxsYmFjayksIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgZmFs
c2UsICZkYXRhKTsKIH0KIAotdm9pZCBEYXRhYmFzZTo6dHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxT
UUxUcmFuc2FjdGlvbkNhbGxiYWNrPiBjYWxsYmFjaywgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlv
bkVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBz
dWNjZXNzQ2FsbGJhY2spCit2b2lkIERhdGFiYXNlOjp0cmFuc2FjdGlvbihSZWZQdHI8U1FMVHJh
bnNhY3Rpb25DYWxsYmFjaz4mJiBjYWxsYmFjaywgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjaz4mJiBlcnJvckNhbGxiYWNrLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3ND
YWxsYmFjaykKIHsKLSAgICBydW5UcmFuc2FjdGlvbihjYWxsYmFjaywgZXJyb3JDYWxsYmFjaywg
c3VjY2Vzc0NhbGxiYWNrLCBmYWxzZSk7CisgICAgcnVuVHJhbnNhY3Rpb24oV1RGTW92ZShjYWxs
YmFjayksIFdURk1vdmUoZXJyb3JDYWxsYmFjayksIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwg
ZmFsc2UpOwogfQogCi12b2lkIERhdGFiYXNlOjpyZWFkVHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxT
UUxUcmFuc2FjdGlvbkNhbGxiYWNrPiBjYWxsYmFjaywgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlv
bkVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBz
dWNjZXNzQ2FsbGJhY2spCit2b2lkIERhdGFiYXNlOjpyZWFkVHJhbnNhY3Rpb24oUmVmUHRyPFNR
TFRyYW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaywgUmVmUHRyPFZvaWRDYWxsYmFjaz4mJiBzdWNj
ZXNzQ2FsbGJhY2spCiB7Ci0gICAgcnVuVHJhbnNhY3Rpb24oY2FsbGJhY2ssIGVycm9yQ2FsbGJh
Y2ssIHN1Y2Nlc3NDYWxsYmFjaywgdHJ1ZSk7CisgICAgcnVuVHJhbnNhY3Rpb24oV1RGTW92ZShj
YWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxsYmFjayksIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNr
KSwgdHJ1ZSk7CiB9CiAKIFN0cmluZyBEYXRhYmFzZTo6c3RyaW5nSWRlbnRpZmllcigpIGNvbnN0
CkBAIC03MzIsMTEgKzczMCwxMSBAQCB2b2lkIERhdGFiYXNlOjpyZXNldEF1dGhvcml6ZXIoKQog
CiB2b2lkIERhdGFiYXNlOjpydW5UcmFuc2FjdGlvbihSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxs
YmFjaz4mJiBjYWxsYmFjaywgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4mJiBl
cnJvckNhbGxiYWNrLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaywgYm9v
bCByZWFkT25seSwgY29uc3QgQ2hhbmdlVmVyc2lvbkRhdGEqIGNoYW5nZVZlcnNpb25EYXRhKQog
ewotICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24gPSBTUUxUcmFuc2FjdGlv
bjo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJh
Y2spLCBlcnJvckNhbGxiYWNrLmNvcHlSZWYoKSwgcmVhZE9ubHkpOworICAgIFJlZjxTUUxUcmFu
c2FjdGlvbj4gdHJhbnNhY3Rpb24gPSBTUUxUcmFuc2FjdGlvbjo6Y3JlYXRlKCp0aGlzLCBXVEZN
b3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBlcnJvckNhbGxiYWNrLmNv
cHlSZWYoKSwgcmVhZE9ubHkpOwogCi0gICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4g
dHJhbnNhY3Rpb25CYWNrZW5kID0gcnVuVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24ucmVsZWFzZSgp
LCByZWFkT25seSwgY2hhbmdlVmVyc2lvbkRhdGEpOworICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlv
bkJhY2tlbmQ+IHRyYW5zYWN0aW9uQmFja2VuZCA9IHJ1blRyYW5zYWN0aW9uKFdURk1vdmUodHJh
bnNhY3Rpb24pLCByZWFkT25seSwgY2hhbmdlVmVyc2lvbkRhdGEpOwogICAgIGlmICghdHJhbnNh
Y3Rpb25CYWNrZW5kICYmIGVycm9yQ2FsbGJhY2spIHsKLSAgICAgICAgV1RGOjpSZWZQdHI8U1FM
VHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrUHJvdGVjdG9yID0gV1RGTW92
ZShlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxs
YmFjaz4gZXJyb3JDYWxsYmFja1Byb3RlY3RvciA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayk7CiAg
ICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soW2Vycm9yQ2FsbGJhY2tQ
cm90ZWN0b3JdKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CiAgICAgICAgICAgICBlcnJvckNh
bGxiYWNrUHJvdGVjdG9yLT5oYW5kbGVFdmVudChTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpV
TktOT1dOX0VSUiwgImRhdGFiYXNlIGhhcyBiZWVuIGNsb3NlZCIpLnB0cigpKTsKICAgICAgICAg
fSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmgKaW5k
ZXggM2Q0NjZlZjcwYmFiMjk0ZjY4MzJiZjNlYjBhYTFhMWZiNjAzNjEyMi4uZjNhNDc0MDdlMGRi
OTEyODRjZDhlMzZmZWRmOWNkZDQwODgzOWQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAKICAg
ICB1bnNpZ25lZCBsb25nIGxvbmcgbWF4aW11bVNpemUoKSBjb25zdDsKIAotICAgIFBhc3NSZWZQ
dHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBydW5UcmFuc2FjdGlvbihQYXNzUmVmUHRyPFNRTFRy
YW5zYWN0aW9uPiwgYm9vbCByZWFkT25seSwgY29uc3QgQ2hhbmdlVmVyc2lvbkRhdGEqKTsKKyAg
ICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBydW5UcmFuc2FjdGlvbihSZWY8U1FMVHJh
bnNhY3Rpb24+JiYsIGJvb2wgcmVhZE9ubHksIGNvbnN0IENoYW5nZVZlcnNpb25EYXRhKik7CiAg
ICAgdm9pZCBzY2hlZHVsZVRyYW5zYWN0aW9uU3RlcChTUUxUcmFuc2FjdGlvbkJhY2tlbmQqKTsK
ICAgICB2b2lkIGluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBsZXRlZCgpOwogCkBAIC03OCwxMCAr
NzgsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBEaXJlY3Qgc3VwcG9ydCBmb3IgdGhlIERPTSBBUEkK
ICAgICBTdHJpbmcgdmVyc2lvbigpIGNvbnN0OwotICAgIHZvaWQgY2hhbmdlVmVyc2lvbihjb25z
dCBTdHJpbmcmIG9sZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbiwgUGFzc1JlZlB0
cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiwKLSAgICAgICAgICAgICAgICAgICAgICAgUGFzc1Jl
ZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFj
az4gc3VjY2Vzc0NhbGxiYWNrKTsKLSAgICB2b2lkIHRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FM
VHJhbnNhY3Rpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxi
YWNrPiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjayk7Ci0gICAgdm9p
ZCByZWFkVHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiwgUGFz
c1JlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFZvaWRDYWxs
YmFjaz4gc3VjY2Vzc0NhbGxiYWNrKTsKKyAgICB2b2lkIGNoYW5nZVZlcnNpb24oY29uc3QgU3Ry
aW5nJiBvbGRWZXJzaW9uLCBjb25zdCBTdHJpbmcmIG5ld1ZlcnNpb24sIFJlZlB0cjxTUUxUcmFu
c2FjdGlvbkNhbGxiYWNrPiYmLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiYm
LCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjayk7CisgICAgdm9pZCB0cmFu
c2FjdGlvbihSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4mJiwgUmVmUHRyPFNRTFRyYW5z
YWN0aW9uRXJyb3JDYWxsYmFjaz4mJiwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mJiBzdWNjZXNzQ2Fs
bGJhY2spOworICAgIHZvaWQgcmVhZFRyYW5zYWN0aW9uKFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNh
bGxiYWNrPiYmLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiYmLCBSZWZQdHI8
Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjayk7CiAKICAgICAvLyBJbnRlcm5hbCBlbmdp
bmUgc3VwcG9ydAogICAgIFN0cmluZyBzdHJpbmdJZGVudGlmaWVyKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaWRsCmluZGV4IGNlYjNm
MGIwMDI5NGYzNGQxMTQ0ZGM3MGFmYTc1ZDBiNDljMTI4OWQuLjhkZjgwNGI2NGYyMTM3ZThiZTYz
MWZjOTViMTYxNTIyMzhjNTA1MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2UuaWRsCkBAIC0yOCw4ICsyOCw4IEBACiAKIGludGVyZmFjZSBEYXRh
YmFzZSB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZXJzaW9uOwotICAgIHZv
aWQgY2hhbmdlVmVyc2lvbihET01TdHJpbmcgb2xkVmVyc2lvbiwgRE9NU3RyaW5nIG5ld1ZlcnNp
b24sIG9wdGlvbmFsIFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIG9wdGlvbmFsIFNR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrLCBvcHRpb25hbCBWb2lkQ2Fs
bGJhY2sgc3VjY2Vzc0NhbGxiYWNrKTsKLSAgICB2b2lkIHRyYW5zYWN0aW9uKFNRTFRyYW5zYWN0
aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIG9wdGlvbmFsIFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFj
ayBlcnJvckNhbGxiYWNrLCBvcHRpb25hbCBWb2lkQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrKTsK
LSAgICB2b2lkIHJlYWRUcmFuc2FjdGlvbihTUUxUcmFuc2FjdGlvbkNhbGxiYWNrIGNhbGxiYWNr
LCBvcHRpb25hbCBTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjaywgb3B0
aW9uYWwgVm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjayk7CisgICAgdm9pZCBjaGFuZ2VWZXJz
aW9uKERPTVN0cmluZyBvbGRWZXJzaW9uLCBET01TdHJpbmcgbmV3VmVyc2lvbiwgb3B0aW9uYWwg
U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz8gY2FsbGJhY2ssIG9wdGlvbmFsIFNRTFRyYW5zYWN0aW9u
RXJyb3JDYWxsYmFjaz8gZXJyb3JDYWxsYmFjaywgb3B0aW9uYWwgVm9pZENhbGxiYWNrPyBzdWNj
ZXNzQ2FsbGJhY2spOworICAgIHZvaWQgdHJhbnNhY3Rpb24oU1FMVHJhbnNhY3Rpb25DYWxsYmFj
ayBjYWxsYmFjaywgb3B0aW9uYWwgU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPyBlcnJvckNh
bGxiYWNrLCBvcHRpb25hbCBWb2lkQ2FsbGJhY2s/IHN1Y2Nlc3NDYWxsYmFjayk7CisgICAgdm9p
ZCByZWFkVHJhbnNhY3Rpb24oU1FMVHJhbnNhY3Rpb25DYWxsYmFjayBjYWxsYmFjaywgb3B0aW9u
YWwgU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPyBlcnJvckNhbGxiYWNrLCBvcHRpb25hbCBW
b2lkQ2FsbGJhY2s/IHN1Y2Nlc3NDYWxsYmFjayk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaWRsCmluZGV4IDUxNmY2
OTZjOGM5ZWI1ZGE1YTI4NTdjYmQyYzZmODQ5MjkyMTQyM2UuLjIyNDhjOTQxMDRkMjAyMWNkZjUx
MWI3MDMxNjJkYmIxZjU3NzAzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaWRsCkBAIC0zMSw2ICszMSw2IEBACiBdIGlu
dGVyZmFjZSBTUUxUcmFuc2FjdGlvbiB7CiAgICAgW0N1c3RvbV0gdm9pZCBleGVjdXRlU3FsKERP
TVN0cmluZyBzcWxTdGF0ZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVj
dEFycmF5IGFyZ3VtZW50cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwg
U1FMU3RhdGVtZW50Q2FsbGJhY2sgY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9wdGlvbmFsIFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFNRTFN0YXRlbWVudENhbGxiYWNr
PyBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgU1FMU3Rh
dGVtZW50RXJyb3JDYWxsYmFjaz8gZXJyb3JDYWxsYmFjayk7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA3NDBiYmRk
NjI5OTMzOWE1MDVlZmUxNjI4MmRmOWQ3MDE2NGRlYTBkLi5lMjBhNmMxZTE1MDBjZjg3MzUxNzg3
MWYzZjU1YjZkMTRmMTNlOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzM3OCw3ICszMzc4LDYgQEAgc3ViIENhblVz
ZVdURk9wdGlvbmFsRm9yUGFyYW1ldGVyCiAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIHByb2dyZXNz
aXZlbHkgc3RvcCBibGFja2xpc3RpbmcgZWFjaCB0eXBlIGJlbG93CiAgICAgIyBhbmQgZXZlbnR1
YWxseSBnZXQgcmlkIG9mIHRoaXMgZnVuY3Rpb24gZW50aXJlbHkuCiAgICAgcmV0dXJuIDAgaWYg
JHBhcmFtZXRlci0+aXNWYXJpYWRpYzsKLSAgICByZXR1cm4gMCBpZiAkY29kZUdlbmVyYXRvci0+
SXNDYWxsYmFja0ludGVyZmFjZSgkdHlwZSk7CiAgICAgcmV0dXJuIDAgaWYgJGNvZGVHZW5lcmF0
b3ItPklzRW51bVR5cGUoJHR5cGUpOwogCiAgICAgcmV0dXJuIDE7CkBAIC0zNDcwLDcgKzM0Njks
NyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAgICAgbXkgJGFyZ1R5cGUgPSAk
cGFyYW1ldGVyLT50eXBlOwogICAgICAgICBteSAkb3B0aW9uYWwgPSAkcGFyYW1ldGVyLT5pc09w
dGlvbmFsOwogCi0gICAgICAgIGRpZSAiT3B0aW9uYWwgcGFyYW1ldGVycyBvZiBub24tbnVsbGFi
bGUgd3JhcHBlciB0eXBlcyBhcmUgbm90IHN1cHBvcnRlZCIgaWYgJG9wdGlvbmFsICYmICEkcGFy
YW1ldGVyLT5pc051bGxhYmxlICYmICRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCRhcmdU
eXBlKSAmJiAhJGNvZGVHZW5lcmF0b3ItPklzQ2FsbGJhY2tJbnRlcmZhY2UoJGFyZ1R5cGUpOwor
ICAgICAgICBkaWUgIk9wdGlvbmFsIHBhcmFtZXRlcnMgb2Ygbm9uLW51bGxhYmxlIHdyYXBwZXIg
dHlwZXMgYXJlIG5vdCBzdXBwb3J0ZWQiIGlmICRvcHRpb25hbCAmJiAhJHBhcmFtZXRlci0+aXNO
dWxsYWJsZSAmJiAkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkYXJnVHlwZSk7CiAKICAg
ICAgICAgaWYgKCRvcHRpb25hbCAmJiAhZGVmaW5lZCgkcGFyYW1ldGVyLT5kZWZhdWx0KSkgewog
ICAgICAgICAgICAgIyBBcyBwZXIgV2ViIElETCwgb3B0aW9uYWwgZGljdGlvbmFyeSBwYXJhbWV0
ZXJzIGFyZSBhbHdheXMgY29uc2lkZXJlZCB0byBoYXZlIGEgZGVmYXVsdCB2YWx1ZSBvZiBhbiBl
bXB0eSBkaWN0aW9uYXJ5LCB1bmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZC4KQEAgLTM0ODUsMTAg
KzM0ODQsMTMgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICAgICAjIEFz
IHBlciBXZWIgSURMLCBwYXNzaW5nIHVuZGVmaW5lZCBmb3IgYSBudWxsYWJsZSBwYXJhbWV0ZXIg
aXMgdHJlYXRlZCBhcyBudWxsLiBUaGVyZWZvcmUsIHVzZSBudWxsIGFzCiAgICAgICAgICAgICAj
IGRlZmF1bHQgdmFsdWUgZm9yIG51bGxhYmxlIHBhcmFtZXRlcnMgdW5sZXNzIG90aGVyd2lzZSBz
cGVjaWZpZWQuCiAgICAgICAgICAgICAkcGFyYW1ldGVyLT5kZWZhdWx0KCJudWxsIikgaWYgJHBh
cmFtZXRlci0+aXNOdWxsYWJsZTsKKworICAgICAgICAgICAgIyBGb3IgY2FsbGJhY2sgcGFyYW1l
dGVycywgdGhlIGdlbmVyYXRlZCBiaW5kaW5ncyB0cmVhdCB1bmRlZmluZWQgYXMgbnVsbCwgc28g
dXNlIG51bGwgYXMgaW1wbGljaXQgZGVmYXVsdCB2YWx1ZS4KKyAgICAgICAgICAgICRwYXJhbWV0
ZXItPmRlZmF1bHQoIm51bGwiKSBpZiAkY29kZUdlbmVyYXRvci0+SXNDYWxsYmFja0ludGVyZmFj
ZSgkYXJnVHlwZSk7CiAgICAgICAgIH0KIAogICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgZXZl
bnR1YWxseSBzdG9wIGdlbmVyYXRpbmcgYW55IGVhcmx5IGNhbGxzLCBhbmQgaW5zdGVhZCB1c2Ug
ZWl0aGVyIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlcyBvciBXVEY6Ok9wdGlvbmFsPD4uCi0gICAg
ICAgIGlmICgkb3B0aW9uYWwgJiYgIWRlZmluZWQoJHBhcmFtZXRlci0+ZGVmYXVsdCkgJiYgIUNh
blVzZVdURk9wdGlvbmFsRm9yUGFyYW1ldGVyKCRwYXJhbWV0ZXIpICYmICEkY29kZUdlbmVyYXRv
ci0+SXNDYWxsYmFja0ludGVyZmFjZSgkYXJnVHlwZSkpIHsKKyAgICAgICAgaWYgKCRvcHRpb25h
bCAmJiAhZGVmaW5lZCgkcGFyYW1ldGVyLT5kZWZhdWx0KSAmJiAhQ2FuVXNlV1RGT3B0aW9uYWxG
b3JQYXJhbWV0ZXIoJHBhcmFtZXRlcikpIHsKICAgICAgICAgICAgICMgR2VuZXJhdGUgZWFybHkg
Y2FsbCBpZiB0aGVyZSBhcmUgZW5vdWdoIHBhcmFtZXRlcnMuCiAgICAgICAgICAgICBpZiAoISRo
YXNPcHRpb25hbEFyZ3VtZW50cykgewogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIlxuICAgIHNpemVfdCBhcmdzQ291bnQgPSBzdGF0ZS0+YXJndW1lbnRDb3VudCgpO1xuIik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9i
ai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwK
aW5kZXggY2RjMGQxNGMzNmNhNjUzYzVjYzk2ODQ3ZmQ0Y2EzMWVlYWUzNGU0ZC4uNTg4OWYzZTE5
ZTk0YTc5ZWI0NzBiYjFmNDRiY2NjYTA1MWFiNmNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtMjA4LDE1ICsyMDgsMTUgQEAg
ZW51bSBfb3B0aW9uYWwgeyAiIiwgIk9wdGlvbmFsVmFsdWUxIiwgIk9wdGlvbmFsVmFsdWUyIiwg
Ik9wdGlvbmFsVmFsdWUzIiB9OwogICAgIC8vIENhbGxiYWNrIGludGVyZmFjZSBwYXJhbWV0ZXJz
LgogICAgIHZvaWQgICAgbWV0aG9kV2l0aENhbGxiYWNrQXJnKFRlc3RDYWxsYmFjayBjYWxsYmFj
ayk7CiAgICAgdm9pZCAgICBtZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZyhs
b25nIG5vbkNhbGxiYWNrLCBUZXN0Q2FsbGJhY2sgY2FsbGJhY2spOwotICAgIHZvaWQgICAgbWV0
aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcob3B0aW9uYWwgVGVzdENhbGxiYWNrIGNhbGxi
YWNrKTsKKyAgICB2b2lkICAgIG1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKG9wdGlv
bmFsIFRlc3RDYWxsYmFjaz8gY2FsbGJhY2spOwogCiAgICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24g
cGFyYW1ldGVycy4KICAgICB2b2lkICAgIG1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQXJnKFRl
c3RDYWxsYmFja0Z1bmN0aW9uIGNhbGxiYWNrKTsKICAgICB2b2lkICAgIG1ldGhvZFdpdGhOb25D
YWxsYmFja0FyZ0FuZENhbGxiYWNrRnVuY3Rpb25BcmcobG9uZyBub25DYWxsYmFjaywgVGVzdENh
bGxiYWNrRnVuY3Rpb24gY2FsbGJhY2spOwotICAgIHZvaWQgICAgbWV0aG9kV2l0aENhbGxiYWNr
RnVuY3Rpb25BbmRPcHRpb25hbEFyZyhvcHRpb25hbCBUZXN0Q2FsbGJhY2tGdW5jdGlvbiBjYWxs
YmFjayk7CisgICAgdm9pZCAgICBtZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFuZE9wdGlvbmFs
QXJnKG9wdGlvbmFsIFRlc3RDYWxsYmFja0Z1bmN0aW9uPyBjYWxsYmFjayk7CiAKICAgICAvLyBz
dGF0aWMgbWV0aG9kcyB3aXRoICdDYWxsYmFjaycgZXh0ZW5kZWQgYXR0cmlidXRlCi0gICAgc3Rh
dGljIHZvaWQgICAgc3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcob3B0aW9u
YWwgVGVzdENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICBzdGF0aWMgdm9pZCAgICBzdGF0aWNNZXRo
b2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyhvcHRpb25hbCBUZXN0Q2FsbGJhY2s/IGNhbGxi
YWNrKTsKICAgICBzdGF0aWMgdm9pZCAgICBzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmcoVGVz
dENhbGxiYWNrIGNhbGxiYWNrKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ckl0ZW0uaAppbmRleCAxMWY1OGU5NzkyYmUxYTI1MmE2MzY2MTI3ZDljMzdjMzVmOTQ5NDA1Li40
NjQ4YzJhNjdjYTgwNDdjMDNhYTViNzUzZmRkNjkwMDEwM2E0ZGMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EYXRhVHJhbnNmZXJJdGVtLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgU3RyaW5nIGtpbmQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgdHlwZSgpIGNv
bnN0ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmlu
Z0NhbGxiYWNrPikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhSZWZQ
dHI8U3RyaW5nQ2FsbGJhY2s+JiYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
QmxvYj4gZ2V0QXNGaWxlKCkgY29uc3QgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlckl0ZW0uaWRsCmluZGV4IDhkZjk3NTkxYmYwODYyNDBhMDVmNDZmNTRmMGZkMDZiODU5
NzhjY2UuLmZiNzIyYjhjNjNhNTRkNGZlMGViMjU5Yjk1NjNkMDBjNTg1OTVmNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKQEAgLTM2LDcgKzM2LDcgQEAKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGtpbmQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyB0eXBlOwogCi0gICAgdm9pZCBnZXRBc1N0cmluZyhvcHRpb25hbCBTdHJpbmdD
YWxsYmFjayBjYWxsYmFjayk7CisgICAgdm9pZCBnZXRBc1N0cmluZyhvcHRpb25hbCBTdHJpbmdD
YWxsYmFjaz8gY2FsbGJhY2spOwogICAgIEJsb2IgZ2V0QXNGaWxlKCk7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNs
aWVudC5oCmluZGV4IDNkNWE0NWEyZmMwYTUyZDI4Y2MxMzk5YmM1ZDcxMDJmYzNiN2RjMTQuLmQ4
N2FhMTQzZDQ5N2IwMjFhNDFhMzNlOTM2YzQ5OTY1ZjIzMGE1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5o
CkBAIC02MCwxMCArNjAsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIG5vdGlmaWNhdGlvbk9iamVj
dERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmljYXRpb24qKSBvdmVycmlkZTsKICAgICB2b2lkIG5v
dGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoTEVH
QUNZX05PVElGSUNBVElPTlMpCi0gICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJhY2s+
KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiYmKSBvdmVycmlk
ZTsKICNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIHZvaWQgcmVxdWVzdFBl
cm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPikgb3ZlcnJpZGU7CisgICAgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUmVm
UHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJikgb3ZlcnJpZGU7
CiAjZW5kaWYKICAgICB2b2lkIGNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Kikgb3ZlcnJpZGUgeyB9CiAgICAgYm9vbCBoYXNQZW5kaW5n
UGVybWlzc2lvblJlcXVlc3RzKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBjb25z
dCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQppbmRleCBhZGU5M2QwYTc0MTk3ZTFlNTA5ODk5
OWFhYTNjMzkzMGMwZDljNmUzLi5mNTUyOThjZmFiMzAxMDFmNmM5M2U4YjVmMjg4NWVhOTg0ZTRk
MjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3Rp
ZmljYXRpb25DbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBXZWJOb3Rp
ZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFcKICNlbmRpZgogCiAjaWYgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQot
dm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxsYmFjaykK
K3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIGNhbGxiYWNrKQog
ewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICBXZWJOb3RpZmljYXRpb25Q
b2xpY3lMaXN0ZW5lciAqbGlzdGVuZXIgPSBbW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVy
IGFsbG9jXSBpbml0V2l0aFZvaWRDYWxsYmFjazpjYWxsYmFja107CkBAIC0yMDQsNyArMjA0LDcg
QEAgYm9vbCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Omhhc1BlbmRpbmdQZXJtaXNzaW9uUmVxdWVz
dHMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKIH0KIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQotdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lv
bkNhbGxiYWNrPiBjYWxsYmFjaykKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0
UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8Tm90aWZp
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmIGNhbGxiYWNrKQogewogICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKICAgICBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciAqbGlz
dGVuZXIgPSBbW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aENh
bGxiYWNrOmNhbGxiYWNrXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAK
aW5kZXggMDJjM2M1OGUyNjgwNjc2YzA5YmQ4YmYyN2U3ZmFjZmRlNTEyZDhiZS4uMTRhNzA1OWQ1
OTA1OTZkNjgyZDljZDQ4NmUyZjM1NjAwZGRjOTNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNh
dGlvbnNEZWxlZ2F0ZS5jcHAKQEAgLTE3MCwxNCArMTcwLDE0IEBAIHZvaWQgV2ViRGVza3RvcE5v
dGlmaWNhdGlvbnNEZWxlZ2F0ZTo6bm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCiB7
CiB9CiAKLXZvaWQgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6cmVxdWVzdFBlcm1p
c3Npb24oU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+KQor
dm9pZCBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpyZXF1ZXN0UGVybWlzc2lvbihT
ZWN1cml0eU9yaWdpbiogb3JpZ2luLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmKQogewogICAgIEJT
dHJpbmcgb3JnKG9yaWdpbi0+dG9TdHJpbmcoKSk7CiAgICAgaWYgKGhhc05vdGlmaWNhdGlvbkRl
bGVnYXRlKCkpCiAgICAgICAgIG5vdGlmaWNhdGlvbkRlbGVnYXRlKCktPnJlcXVlc3ROb3RpZmlj
YXRpb25QZXJtaXNzaW9uKG9yZyk7CiB9CiAKLXZvaWQgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNE
ZWxlZ2F0ZTo6cmVxdWVzdFBlcm1pc3Npb24oU2VjdXJpdHlPcmlnaW4qLCBQYXNzUmVmUHRyPE5v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4pCit2b2lkIFdlYkRlc2t0b3BOb3RpZmljYXRp
b25zRGVsZWdhdGU6OnJlcXVlc3RQZXJtaXNzaW9uKFNlY3VyaXR5T3JpZ2luKiwgUmVmUHRyPE5v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxl
Z2F0ZS5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlm
aWNhdGlvbnNEZWxlZ2F0ZS5oCmluZGV4IGI5ZTQ0NzhhMDRhYzYwNGE0ODNmOThiM2U1NzI0OWIy
MTlkNDllZTguLjI4NzhhOTgyMmU5M2VjN2U2NDFlNDUyNGRkMDRjZDFjYTUwZTJhYTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmlj
YXRpb25zRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmgKQEAgLTUxLDEwICs1MSwxMCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3Jl
OjpOb3RpZmljYXRpb24qIG9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbkNv
bnRyb2xsZXJEZXN0cm95ZWQoKTsKICNpZiBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi0g
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
KiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJhY2s+KTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBSZWZQdHI8V2ViQ29y
ZTo6Vm9pZENhbGxiYWNrPiYmKTsKICNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQot
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPik7
CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luKiwgUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJik7
CiAjZW5kaWYKICAgICBib29sIGhhc1BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAppbmRleCAxNWE1YmJhYTllYmI5YTM5MjlhNDc5NTc3NmJmNmNjNTNiNjhm
NDUyLi44MWZmMWIxYjc1ZTBmZjJmYjA0Yjc0ZjBmMDc1ZDY0NzFkYTMzODJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApA
QCAtNjksNyArNjksNyBAQCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Ok5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYQogI2VuZGlmCiAKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKLXZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjpzdGFydFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgUGFzc1JlZlB0cjxO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+IGNhbGxiYWNrKQordm9pZCBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChTZWN1cml0eU9yaWdpbiog
b3JpZ2luLCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmIGNhbGxiYWNr
KQogewogICAgIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBwZXJtaXNzaW9uID0gcGVy
bWlzc2lvbkxldmVsKG9yaWdpbik7CiAgICAgaWYgKHBlcm1pc3Npb24gIT0gTm90aWZpY2F0aW9u
Q2xpZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZCkgewpAQCAtODEsMTMgKzgxLDEzIEBAIHZvaWQg
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoU2VjdXJp
dHlPcmlnaW4qIG9yaWdpbiwKICAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVl
c3RJRCgpOwogICAgIG1fb3JpZ2luVG9JRE1hcC5zZXQob3JpZ2luLCByZXF1ZXN0SUQpOwogICAg
IG1faWRUb09yaWdpbk1hcC5zZXQocmVxdWVzdElELCBvcmlnaW4pOwotICAgIG1faWRUb0NhbGxi
YWNrTWFwLnNldChyZXF1ZXN0SUQsIGNhbGxiYWNrKTsKKyAgICBtX2lkVG9DYWxsYmFja01hcC5z
ZXQocmVxdWVzdElELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHJlcXVlc3RJ
RCwgb3JpZ2luLT50b1N0cmluZygpKSk7CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShMRUdBQ1lf
Tk9USUZJQ0FUSU9OUykKLXZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjpzdGFydFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrKQordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBSZWZQdHI8
V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiYmIGNhbGxiYWNrKQogewogICAgIE5vdGlmaWNhdGlvbkNs
aWVudDo6UGVybWlzc2lvbiBwZXJtaXNzaW9uID0gcGVybWlzc2lvbkxldmVsKG9yaWdpbik7CiAg
ICAgaWYgKHBlcm1pc3Npb24gIT0gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uTm90QWxs
b3dlZCkgewpAQCAtOTksNyArOTksNyBAQCB2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sCiAgICAgdWlu
dDY0X3QgcmVxdWVzdElEID0gZ2VuZXJhdGVSZXF1ZXN0SUQoKTsKICAgICBtX29yaWdpblRvSURN
YXAuc2V0KG9yaWdpbiwgcmVxdWVzdElEKTsKICAgICBtX2lkVG9PcmlnaW5NYXAuc2V0KHJlcXVl
c3RJRCwgb3JpZ2luKTsKLSAgICBtX2lkVG9Wb2lkQ2FsbGJhY2tNYXAuc2V0KHJlcXVlc3RJRCwg
Y2FsbGJhY2spOworICAgIG1faWRUb1ZvaWRDYWxsYmFja01hcC5zZXQocmVxdWVzdElELCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHJlcXVlc3RJRCwgb3JpZ2luLT50b1N0cmlu
ZygpKSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaAppbmRleCA3MDgyN2Q2MGJkNDUxNDgzMWJhODcwZTVjNzIzZjJj
ZjNjZmY0YzJkLi44NmU0Y2ZjMjY0YzIxNzM3YWMwYWM3ZGVhZDhhOTY2MGE0NTZmYzI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5o
CkBAIC01MCwxMCArNTAsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8Tm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOwogCiAjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpCi0gICAgdm9pZCBzdGFydFJlcXVlc3QoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4qLCBQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFj
az4pOworICAgIHZvaWQgc3RhcnRSZXF1ZXN0KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgUmVm
UHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJik7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi0gICAgdm9pZCBzdGFydFJlcXVlc3Qo
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFj
az4pOworICAgIHZvaWQgc3RhcnRSZXF1ZXN0KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgUmVm
UHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4mJik7CiAjZW5kaWYKICAgICB2b2lkIGNhbmNlbFJl
cXVlc3QoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKTsKICAgICBib29sIGhhc1BlbmRpbmdQZXJt
aXNzaW9uUmVxdWVzdHMoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0
aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAppbmRleCBjN2Q4MjFhMTFlZjBmMDhjNDgzODY1MDU5
NWI3OTAyMjg1NjQ3NmI3Li4yM2ExNDAxNzcxMTE0NTdiMzAzNGRkNDNmNjU3NjZkZTUxYWVlYWUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Yk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCkBAIC03MywxNiArNzMsMTYg
QEAgdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0
cm95ZWQoKQogfQogCiAjaWYgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotdm9pZCBXZWJO
b3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiBjYWxsYmFjaykK
K3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiYmIGNh
bGxiYWNrKQogewotICAgIG1fcGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKCktPnN0YXJ0UmVxdWVzdChjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBjYWxsYmFjayk7
CisgICAgbV9wYWdlLT5ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+c3Rh
cnRSZXF1ZXN0KGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUoY2FsbGJhY2spKTsK
IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi12b2lkIFdlYk5vdGlmaWNh
dGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+IGNhbGxiYWNr
KQordm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2Fs
bGJhY2s+JiYgY2FsbGJhY2spCiB7Ci0gICAgbV9wYWdlLT5ub3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIoKS0+c3RhcnRSZXF1ZXN0KGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCks
IGNhbGxiYWNrKTsKKyAgICBtX3BhZ2UtPm5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcigpLT5zdGFydFJlcXVlc3QoY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShj
YWxsYmFjaykpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCmlu
ZGV4IDFkZjI1NWU2MmU2M2RmY2IwM2YyZjE2YmEwOTBhNzljZTkxZmJhMWMuLjliYzgwZDFlZTVm
NTBhY2NjNjgzNmI5MzZlNDMzMjVhNTcwNGUxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQuaApAQCAtNTIsMTAgKzUyLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBub3RpZmljYXRp
b25PYmplY3REZXN0cm95ZWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBub3RpZmljYXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAjaWYgRU5B
QkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENh
bGxiYWNrPikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4mJikg
b3ZlcnJpZGU7CiAjZW5kaWYKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICB2b2lkIHJl
cXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4pIG92ZXJyaWRlOwor
ICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpIG92
ZXJyaWRlOwogI2VuZGlmCiAgICAgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzUGVu
ZGluZ1Blcm1pc3Npb25SZXF1ZXN0cyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikg
Y29uc3Qgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277798</attachid>
            <date>2016-04-29 21:49:24 -0700</date>
            <delta_ts>2016-04-29 22:40:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157188-20160429214959.patch</filename>
            <type>text/plain</type>
            <size>43282</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmU1YzE0MjBhNDk4YTI3
MThmYzVlNzhkZWI2MTc5Y2JiMzliNDlmZC4uYjg0ZDM5MWUwMmQxNjMxOGM3Y2E3ZDQ2MTU4MDFl
YjJhNWZiMGUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ5IEBACiAyMDE2LTA0LTI5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgW1dlYiBJRExdIFNwZWNpZnkg
ZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWVzIGZvciBjYWxsYmFjayBwYXJhbWV0ZXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcxODgKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBTcGVjaWZ5IGRlZmF1bHQgcGFy
YW1ldGVyIHZhbHVlcyBmb3IgY2FsbGJhY2sgcGFyYW1ldGVycy4KKworICAgICAgICAqIE1vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9u
OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50
ZXIuaWRsOgorICAgICAgICAqIE1vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3RvcmFnZUluZm86OnF1ZXJ5VXNhZ2VBbmRRdW90YSk6CisgICAgICAgIChX
ZWJDb3JlOjpTdG9yYWdlSW5mbzo6cmVxdWVzdFF1b3RhKToKKyAgICAgICAgKiBNb2R1bGVzL3F1
b3RhL1N0b3JhZ2VJbmZvLmg6CisgICAgICAgICogTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mby5p
ZGw6CisgICAgICAgICogTW9kdWxlcy9xdW90YS9TdG9yYWdlUXVvdGEuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3F1b3RhL1N0b3JhZ2VRdW90YS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2lu
ZG93V2ViRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViRGF0YWJh
c2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5k
b3dXZWJEYXRhYmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93V2ViRGF0YWJhc2U6
OkRPTVdpbmRvd1dlYkRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1dlYkRh
dGFiYXNlOjp+RE9NV2luZG93V2ViRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnJ1blRyYW5z
YWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpjaGFuZ2VWZXJzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjp0cmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhYmFzZTo6cmVhZFRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5p
ZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5pZGw6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChH
ZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAgICAgIChDYW5Vc2VXVEZPcHRpb25hbEZvclBh
cmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtLmg6CisgICAgICAgICogZG9t
L0RhdGFUcmFuc2Zlckl0ZW0uaWRsOgorCisyMDE2LTA0LTI5ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKICAgICAgICAgVXNlIExJS0VMWSgpIC8gVU5MSUtFTFkoKSBoaW50cyB3
aGVuIHN1aXRhYmxlIGluIHRoZSBKYXZhU2NyaXB0IGJpbmRpbmdzCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcyMTAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbAppbmRleCBlM2FjOWVh
NjhiYjcyZDAzOTAxYmJkODEwYWZkMzExMzkwYjM1M2IyLi4yMmU5YzE2NDhmMzdjYjkxYzNjYTEy
Nzk4NGY0YTM4ZWQwZDljNzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbApAQCAtMzAsMTEgKzMwLDExIEBACiAgICAgR2VuZXJh
dGVJc1JlYWNoYWJsZT1JbXBsRnJhbWUsCiBdIGludGVyZmFjZSBHZW9sb2NhdGlvbiB7CiAgICAg
W0N1c3RvbV0gdm9pZCBnZXRDdXJyZW50UG9zaXRpb24oUG9zaXRpb25DYWxsYmFjayBzdWNjZXNz
Q2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwg
UG9zaXRpb25FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgUG9zaXRpb25FcnJvckNhbGxiYWNrPyBlcnJvckNh
bGxiYWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFBv
c2l0aW9uT3B0aW9ucyBvcHRpb25zKTsKIAogICAgIFtDdXN0b21dIGxvbmcgd2F0Y2hQb3NpdGlv
bihQb3NpdGlvbkNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3B0aW9uYWwgUG9zaXRpb25FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2ss
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFBvc2l0aW9uRXJyb3JD
YWxsYmFjaz8gZXJyb3JDYWxsYmFjaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3B0aW9uYWwgUG9zaXRpb25PcHRpb25zIG9wdGlvbnMpOwogCiAgICAgdm9pZCBjbGVhcldhdGNo
KGxvbmcgd2F0Y2hJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IGMyOWFlMWY0Y2U0YTYyMDc2YmFmOTQ5NTRk
ZTYwMmNiYjgwYzkxZmQuLmEzMjJkMzNiYTZlMzA0MTQwOWU2ZGM3NDQyMjRjM2RmNzIxZDhlOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb24uY3BwCkBAIC0yNDEsOSArMjQxLDkgQEAgY29uc3QgU3RyaW5nIE5vdGlmaWNhdGlv
bjo6cGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gcGVybWkK
ICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLXZvaWQgTm90aWZpY2F0aW9uOjpyZXF1ZXN0UGVy
bWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrPiBjYWxsYmFjaykKK3ZvaWQgTm90aWZpY2F0aW9uOjpyZXF1ZXN0UGVybWlz
c2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2Fs
bGJhY2s+JiYgY2FsbGJhY2spCiB7Ci0gICAgTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShk
b2N1bWVudC5wYWdlKCkpLT5jbGllbnQoKS0+cmVxdWVzdFBlcm1pc3Npb24oJmRvY3VtZW50LCBj
YWxsYmFjayk7CisgICAgTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC5wYWdl
KCkpLT5jbGllbnQoKS0+cmVxdWVzdFBlcm1pc3Npb24oJmRvY3VtZW50LCBXVEZNb3ZlKGNhbGxi
YWNrKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCmluZGV4IDI0ZTBjNWNhMjY4Njg0MThkMDQzOTA1MTAz
OGFmNzM3OGVlOTRlODAuLjc5NWM5MzdiMjdlYWU3NThkNTEzNjgwZTg2NWFjNTVlM2ZkOWMwNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmgKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCiAgICAgc3RhdGljIGNvbnN0IFN0cmluZyBwZXJtaXNzaW9uKERvY3VtZW50Jik7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFN0cmluZyBwZXJtaXNzaW9uU3RyaW5nKE5v
dGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik7Ci0gICAgc3RhdGljIHZvaWQgcmVxdWVzdFBl
cm1pc3Npb24oRG9jdW1lbnQmLCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxs
YmFjaz4gPSBudWxscHRyKTsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1
bWVudCYsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpOwogI2VuZGlm
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb24uaWRsCmluZGV4IDQyMTc5M2YxODgyODllMzlmZGJjY2IzMjdhODEy
YzFhOGM4NTFlMjguLmRiZTQ4NzJkNzk4NGU5ODNkODQ1NjNiOWQzYThjM2U1NTRkOGEwNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb24uaWRsCkBAIC00Myw3ICs0Myw3IEBACiAgICAgW0NvbmRpdGlvbmFsPU5PVElGSUNBVElP
TlNdIHZvaWQgY2xvc2UoKTsKIAogICAgIFtDb25kaXRpb25hbD1OT1RJRklDQVRJT05TLCBDYWxs
V2l0aD1Eb2N1bWVudF0gc3RhdGljIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcGVybWlz
c2lvbjsKLSAgICBbQ29uZGl0aW9uYWw9Tk9USUZJQ0FUSU9OUywgQ2FsbFdpdGg9RG9jdW1lbnRd
IHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKG9wdGlvbmFsIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25DYWxsYmFjayBjYWxsYmFjayk7CisgICAgW0NvbmRpdGlvbmFsPU5PVElGSUNBVElPTlMs
IENhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihvcHRpb25h
bCBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s/IGNhbGxiYWNrKTsKIAogICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25jbGljazsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
Y2xvc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ2VudGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsCmluZGV4IDU0MzQzY2ZhOWQzODkwNjFhNjFjZTg1
MzYzYzYzY2NiY2ZkM2RjOWUuLjM5MTY1ZmUzODY5NmYyMmJmYjUwYjY2NGUxOGIwZGI4ZWNlMDM0
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25DZW50ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsCkBAIC0zNyw2ICszNyw2IEBACiAgICBbUmFpc2Vz
RXhjZXB0aW9uXSBOb3RpZmljYXRpb24gY3JlYXRlTm90aWZpY2F0aW9uKERPTVN0cmluZyBpY29u
VXJsLCBET01TdHJpbmcgdGl0bGUsIERPTVN0cmluZyBib2R5KTsKIAogICAgaW50IGNoZWNrUGVy
bWlzc2lvbigpOwotICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihvcHRpb25hbCBWb2lkQ2FsbGJh
Y2sgY2FsbGJhY2spOworICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihvcHRpb25hbCBWb2lkQ2Fs
bGJhY2s/IGNhbGxiYWNrKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaAppbmRleCA3MzFkZWQ4NzMz
NDEwMzBmNGJjZjI0OTYyZjQ1NWMzM2E5YWRjNWFmLi5jN2ViOTBiZDI4YWJlYmUxMjdlZjg1MWI2
YTBhOTNjMDkwMWNlMzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC03NSwxMCArNzUsMTAgQEAg
cHVibGljOgogICAgIC8vIFJlcXVlc3RzIHVzZXIgcGVybWlzc2lvbiB0byBzaG93IGRlc2t0b3Ag
bm90aWZpY2F0aW9ucyBmcm9tIGEgcGFydGljdWxhcgogICAgIC8vIHNjcmlwdCBjb250ZXh0LiBU
aGUgY2FsbGJhY2sgcGFyYW1ldGVyIHNob3VsZCBiZSBydW4gd2hlbiB0aGUgdXNlciBoYXMKICAg
ICAvLyBtYWRlIGEgZGVjaXNpb24uCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9u
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4pID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYpID0gMDsKICNlbmRpZgogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKSA9IDA7
CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nUGVybWlzc2lvblJlcXVlc3Rz
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uY3BwCmluZGV4IDU5MGU0MGIzYmVkNjMyZWFiYzY3ODIy
YjIwNzI5MWMyZDBhYTk1NTEuLmNkODNhNGE5MjIwOGY5NjI5OGVhYzJlZjY4MTc4MWM0N2M0NzU1
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uY3BwCkBA
IC01MiwyOCArNTIsMjggQEAgU3RvcmFnZUluZm86On5TdG9yYWdlSW5mbygpCiB7CiB9CiAKLXZv
aWQgU3RvcmFnZUluZm86OnF1ZXJ5VXNhZ2VBbmRRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBpbnQgc3RvcmFnZVR5cGUsIFBhc3NSZWZQdHI8U3Rv
cmFnZVVzYWdlQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxTdG9yYWdlRXJy
b3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3ZvaWQgU3RvcmFnZUluZm86OnF1ZXJ5VXNhZ2VB
bmRRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBp
bnQgc3RvcmFnZVR5cGUsIFJlZlB0cjxTdG9yYWdlVXNhZ2VDYWxsYmFjaz4mJiBzdWNjZXNzQ2Fs
bGJhY2ssIFJlZlB0cjxTdG9yYWdlRXJyb3JDYWxsYmFjaz4mJiBlcnJvckNhbGxiYWNrKQogewog
ICAgIC8vIERpc3BhdGNoaW5nIHRoZSByZXF1ZXN0IHRvIFN0b3JhZ2VRdW90YSwgYXMgdGhpcyBp
bnRlcmZhY2UgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBTdG9yYWdlUXVvdGEuCiAgICAgU3Rv
cmFnZVF1b3RhKiBzdG9yYWdlUXVvdGEgPSBnZXRTdG9yYWdlUXVvdGEoc3RvcmFnZVR5cGUpOwog
ICAgIGlmICghc3RvcmFnZVF1b3RhKSB7CiAgICAgICAgIC8vIFVua25vd24gc3RvcmFnZSB0eXBl
IGlzIHJlcXVlc3RlZC4KLSAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2so
U3RvcmFnZUVycm9yQ2FsbGJhY2s6OkNhbGxiYWNrVGFzazo6Y3JlYXRlKGVycm9yQ2FsbGJhY2ss
IE5PVF9TVVBQT1JURURfRVJSKSk7CisgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBv
c3RUYXNrKFN0b3JhZ2VFcnJvckNhbGxiYWNrOjpDYWxsYmFja1Rhc2s6OmNyZWF0ZShXVEZNb3Zl
KGVycm9yQ2FsbGJhY2spLCBOT1RfU1VQUE9SVEVEX0VSUikpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotICAgIHN0b3JhZ2VRdW90YS0+cXVlcnlVc2FnZUFuZFF1b3RhKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjayk7CisgICAgc3RvcmFnZVF1
b3RhLT5xdWVyeVVzYWdlQW5kUXVvdGEoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgV1RGTW92ZShz
dWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spKTsKIH0KIAotdm9pZCBTdG9y
YWdlSW5mbzo6cmVxdWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIGludCBzdG9yYWdlVHlwZSwgdW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3Rh
SW5CeXRlcywgUGFzc1JlZlB0cjxTdG9yYWdlUXVvdGFDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNr
LCBQYXNzUmVmUHRyPFN0b3JhZ2VFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQordm9pZCBT
dG9yYWdlSW5mbzo6cmVxdWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQsIGludCBzdG9yYWdlVHlwZSwgdW5zaWduZWQgbG9uZyBsb25nIG5ld1F1
b3RhSW5CeXRlcywgUmVmUHRyPFN0b3JhZ2VRdW90YUNhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFj
aywgUmVmUHRyPFN0b3JhZ2VFcnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2spCiB7CiAgICAg
Ly8gRGlzcGF0Y2hpbmcgdGhlIHJlcXVlc3QgdG8gU3RvcmFnZVF1b3RhLCBhcyB0aGlzIGludGVy
ZmFjZSBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIFN0b3JhZ2VRdW90YS4KICAgICBTdG9yYWdl
UXVvdGEqIHN0b3JhZ2VRdW90YSA9IGdldFN0b3JhZ2VRdW90YShzdG9yYWdlVHlwZSk7CiAgICAg
aWYgKCFzdG9yYWdlUXVvdGEpIHsKICAgICAgICAgLy8gVW5rbm93biBzdG9yYWdlIHR5cGUgaXMg
cmVxdWVzdGVkLgotICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhTdG9y
YWdlRXJyb3JDYWxsYmFjazo6Q2FsbGJhY2tUYXNrOjpjcmVhdGUoZXJyb3JDYWxsYmFjaywgTk9U
X1NVUFBPUlRFRF9FUlIpKTsKKyAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRh
c2soU3RvcmFnZUVycm9yQ2FsbGJhY2s6OkNhbGxiYWNrVGFzazo6Y3JlYXRlKFdURk1vdmUoZXJy
b3JDYWxsYmFjayksIE5PVF9TVVBQT1JURURfRVJSKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgc3RvcmFnZVF1b3RhLT5yZXF1ZXN0UXVvdGEoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
bmV3UXVvdGFJbkJ5dGVzLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworICAgIHN0
b3JhZ2VRdW90YS0+cmVxdWVzdFF1b3RhKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIG5ld1F1b3Rh
SW5CeXRlcywgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGVycm9yQ2FsbGJhY2sp
KTsKIH0KIAogU3RvcmFnZVF1b3RhKiBTdG9yYWdlSW5mbzo6Z2V0U3RvcmFnZVF1b3RhKGludCBz
dG9yYWdlVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3Rv
cmFnZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uaApp
bmRleCA0MmRhM2YyY2NhY2RkYTk2MTMzYjZlZTE1ZmY0ZmQzZDY4ODYyM2IzLi5iNjg0MTM4OGI1
MTgwZjYzZTg1MGMyNTNkOGZjMzI1NzQ2ZWE2ZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9xdW90YS9TdG9yYWdlSW5mby5oCkBAIC01Nyw5ICs1Nyw5IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZUluZm8oKSk7CiAgICAgfQogCi0gICAgdm9pZCBx
dWVyeVVzYWdlQW5kUXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGludCBzdG9yYWdlVHlw
ZSwgUGFzc1JlZlB0cjxTdG9yYWdlVXNhZ2VDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3RvcmFnZUVy
cm9yQ2FsbGJhY2s+KTsKKyAgICB2b2lkIHF1ZXJ5VXNhZ2VBbmRRdW90YShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgaW50IHN0b3JhZ2VUeXBlLCBSZWZQdHI8U3RvcmFnZVVzYWdlQ2FsbGJhY2s+
JiYsIFJlZlB0cjxTdG9yYWdlRXJyb3JDYWxsYmFjaz4mJik7CiAKLSAgICB2b2lkIHJlcXVlc3RR
dW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgaW50IHN0b3JhZ2VUeXBlLCB1bnNpZ25lZCBs
b25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBQYXNzUmVmUHRyPFN0b3JhZ2VRdW90YUNhbGxiYWNr
PiwgUGFzc1JlZlB0cjxTdG9yYWdlRXJyb3JDYWxsYmFjaz4pOworICAgIHZvaWQgcmVxdWVzdFF1
b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBpbnQgc3RvcmFnZVR5cGUsIHVuc2lnbmVkIGxv
bmcgbG9uZyBuZXdRdW90YUluQnl0ZXMsIFJlZlB0cjxTdG9yYWdlUXVvdGFDYWxsYmFjaz4mJiwg
UmVmUHRyPFN0b3JhZ2VFcnJvckNhbGxiYWNrPiYmKTsKIAogICAgIH5TdG9yYWdlSW5mbygpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uaWRsCmluZGV4IGU2
MTU3YTBkM2RiYTFlZmU1MTMxMjM1YjgwNmI1MDVkN2MyOWU5MGUuLjA2MjYzODEyMzAxYTAyY2U0
OWY4NTVhYmNjYjY2YzQ2Mzc2MDhkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcXVvdGEvU3RvcmFnZUluZm8uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVv
dGEvU3RvcmFnZUluZm8uaWRsCkBAIC0zMSw2ICszMSw2IEBACiAgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgVEVNUE9SQVJZID0gMDsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBQRVJTSVNURU5U
ID0gMTsKIAotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIHF1ZXJ5
VXNhZ2VBbmRRdW90YSh1bnNpZ25lZCBzaG9ydCBzdG9yYWdlVHlwZSwgb3B0aW9uYWwgU3RvcmFn
ZVVzYWdlQ2FsbGJhY2sgdXNhZ2VDYWxsYmFjaywgb3B0aW9uYWwgU3RvcmFnZUVycm9yQ2FsbGJh
Y2sgZXJyb3JDYWxsYmFjayk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRd
IHZvaWQgcmVxdWVzdFF1b3RhKHVuc2lnbmVkIHNob3J0IHN0b3JhZ2VUeXBlLCB1bnNpZ25lZCBs
b25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBvcHRpb25hbCBTdG9yYWdlUXVvdGFDYWxsYmFjayBx
dW90YUNhbGxiYWNrLCBvcHRpb25hbCBTdG9yYWdlRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNr
KTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCBxdWVyeVVzYWdl
QW5kUXVvdGEodW5zaWduZWQgc2hvcnQgc3RvcmFnZVR5cGUsIG9wdGlvbmFsIFN0b3JhZ2VVc2Fn
ZUNhbGxiYWNrPyB1c2FnZUNhbGxiYWNrLCBvcHRpb25hbCBTdG9yYWdlRXJyb3JDYWxsYmFjaz8g
ZXJyb3JDYWxsYmFjayk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZv
aWQgcmVxdWVzdFF1b3RhKHVuc2lnbmVkIHNob3J0IHN0b3JhZ2VUeXBlLCB1bnNpZ25lZCBsb25n
IGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBvcHRpb25hbCBTdG9yYWdlUXVvdGFDYWxsYmFjaz8gcXVv
dGFDYWxsYmFjaywgb3B0aW9uYWwgU3RvcmFnZUVycm9yQ2FsbGJhY2s/IGVycm9yQ2FsbGJhY2sp
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZVF1
b3RhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VRdW90YS5oCmluZGV4
IGNjZmRlODFlNGUzOWQ0MGZiZDhmYTU4MjZhM2ExZTFlMzhlNjJjOWYuLmM3MjM4ZDkwMzVmNDNi
ZmJmNDRmODlhMWEzYmJlMzRiMDZjMjM0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcXVvdGEvU3RvcmFnZVF1b3RhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9x
dW90YS9TdG9yYWdlUXVvdGEuaApAQCAtNTUsOSArNTUsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VRdW90YSh0eXBlKSk7CiAgICAgfQogCi0gICAgdm9p
ZCBxdWVyeVVzYWdlQW5kUXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFBhc3NSZWZQdHI8
U3RvcmFnZVVzYWdlQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFN0b3JhZ2VFcnJvckNhbGxiYWNrPik7
CisgICAgdm9pZCBxdWVyeVVzYWdlQW5kUXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJl
ZlB0cjxTdG9yYWdlVXNhZ2VDYWxsYmFjaz4mJiwgUmVmUHRyPFN0b3JhZ2VFcnJvckNhbGxiYWNr
PiYmKTsKIAotICAgIHZvaWQgcmVxdWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1
bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBQYXNzUmVmUHRyPFN0b3JhZ2VRdW90
YUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxTdG9yYWdlRXJyb3JDYWxsYmFjaz4pOworICAgIHZvaWQg
cmVxdWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1bnNpZ25lZCBsb25nIGxvbmcg
bmV3UXVvdGFJbkJ5dGVzLCBSZWZQdHI8U3RvcmFnZVF1b3RhQ2FsbGJhY2s+JiYsIFJlZlB0cjxT
dG9yYWdlRXJyb3JDYWxsYmFjaz4mJik7CiAKICAgICB+U3RvcmFnZVF1b3RhKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZVF1b3RhLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZVF1b3RhLmlkbAppbmRleCA5MzdkYzRl
MThjZmExZjZmYjVhNDc2ZTEwMTk2YWM0YjVhZTY1YWJhLi5lNTk2YWEzZjRiZDRhY2EyMjczYzU3
NjIyNmQ3NmEwZWE0NDdiNzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1
b3RhL1N0b3JhZ2VRdW90YS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9T
dG9yYWdlUXVvdGEuaWRsCkBAIC0yOCw2ICsyOCw2IEBACiAgICAgQ29uZGl0aW9uYWw9UVVPVEEs
CiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKIF0gaW50ZXJmYWNlIFN0b3JhZ2VRdW90
YSB7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgcXVlcnlVc2Fn
ZUFuZFF1b3RhKFN0b3JhZ2VVc2FnZUNhbGxiYWNrIHVzYWdlQ2FsbGJhY2ssIG9wdGlvbmFsIFN0
b3JhZ2VFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOwotICAgIFtDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0XSB2b2lkIHJlcXVlc3RRdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgbmV3
UXVvdGFJbkJ5dGVzLCBvcHRpb25hbCBTdG9yYWdlUXVvdGFDYWxsYmFjayBxdW90YUNhbGxiYWNr
LCBvcHRpb25hbCBTdG9yYWdlRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKKyAgICBbQ2Fs
bFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCBxdWVyeVVzYWdlQW5kUXVvdGEoU3Rv
cmFnZVVzYWdlQ2FsbGJhY2sgdXNhZ2VDYWxsYmFjaywgb3B0aW9uYWwgU3RvcmFnZUVycm9yQ2Fs
bGJhY2s/IGVycm9yQ2FsbGJhY2spOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0XSB2b2lkIHJlcXVlc3RRdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVz
LCBvcHRpb25hbCBTdG9yYWdlUXVvdGFDYWxsYmFjaz8gcXVvdGFDYWxsYmFjaywgb3B0aW9uYWwg
U3RvcmFnZUVycm9yQ2FsbGJhY2s/IGVycm9yQ2FsbGJhY2spOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFz
ZS5jcHAKaW5kZXggNWI5ZmRiMzJiMWExYThjYjQwMGE2OGEzMmRlZGU2YjgxMDg2NzA5NS4uM2U1
NTkwMmFhYzU1ZjU0YWU3ZGFiNjQzYjAwMDZmNTE5OTNlMzYzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFz
ZS5jcHAKQEAgLTM3LDE2ICszNywxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZlB0
cjxEYXRhYmFzZT4gRE9NV2luZG93V2ViRGF0YWJhc2U6Om9wZW5EYXRhYmFzZShET01XaW5kb3cm
IHdpbmRvdywgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24sIGNvbnN0
IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwgUGFzc1Jl
ZlB0cjxEYXRhYmFzZUNhbGxiYWNrPiBjcmVhdGlvbkNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBl
YykKK1JlZlB0cjxEYXRhYmFzZT4gRE9NV2luZG93V2ViRGF0YWJhc2U6Om9wZW5EYXRhYmFzZShE
T01XaW5kb3cmIHdpbmRvdywgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNp
b24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6
ZSwgUmVmUHRyPERhdGFiYXNlQ2FsbGJhY2s+JiYgY3JlYXRpb25DYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYgZWMpCiB7CiAgICAgaWYgKCF3aW5kb3cuaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1l
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPERhdGFiYXNlPiBkYXRh
YmFzZSA9IG51bGxwdHI7CisgICAgUmVmUHRyPERhdGFiYXNlPiBkYXRhYmFzZTsKICAgICBEYXRh
YmFzZU1hbmFnZXImIGRiTWFuYWdlciA9IERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCk7CiAg
ICAgRGF0YWJhc2VFcnJvciBlcnJvciA9IERhdGFiYXNlRXJyb3I6Ok5vbmU7CiAgICAgaWYgKGRi
TWFuYWdlci5pc0F2YWlsYWJsZSgpICYmIHdpbmRvdy5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdp
bigpLT5jYW5BY2Nlc3NEYXRhYmFzZSh3aW5kb3cuZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCkpKSB7
Ci0gICAgICAgIGRhdGFiYXNlID0gZGJNYW5hZ2VyLm9wZW5EYXRhYmFzZSh3aW5kb3cuZG9jdW1l
bnQoKSwgbmFtZSwgdmVyc2lvbiwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUsIGNyZWF0aW9u
Q2FsbGJhY2ssIGVycm9yKTsKKyAgICAgICAgZGF0YWJhc2UgPSBkYk1hbmFnZXIub3BlbkRhdGFi
YXNlKHdpbmRvdy5kb2N1bWVudCgpLCBuYW1lLCB2ZXJzaW9uLCBkaXNwbGF5TmFtZSwgZXN0aW1h
dGVkU2l6ZSwgV1RGTW92ZShjcmVhdGlvbkNhbGxiYWNrKSwgZXJyb3IpOwogICAgICAgICBBU1NF
UlQoZGF0YWJhc2UgfHwgZXJyb3IgIT0gRGF0YWJhc2VFcnJvcjo6Tm9uZSk7CiAgICAgICAgIGVj
ID0gRGF0YWJhc2VNYW5hZ2VyOjpleGNlcHRpb25Db2RlRm9yRGF0YWJhc2VFcnJvcihlcnJvcik7
CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmgKaW5kZXggNjU2Zjg4MzE4M2ZjMDk5ZWU5MDkw
YmY0Y2Y5ZTNhOGMzZjMzODJhYi4uMWNlMjM5YzQ0ZDkwZWExMjU3YTU3NjI2ZDA5YTYxNDUwZTdi
MzkxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01X
aW5kb3dXZWJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaApAQCAtNDIsMTEgKzQyLDEwIEBAIGNsYXNzIEZyYW1l
OwogCiBjbGFzcyBET01XaW5kb3dXZWJEYXRhYmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZlB0cjxEYXRhYmFzZT4gb3BlbkRhdGFiYXNlKERPTVdpbmRvdyYsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNp
Z25lZCBsb25nIGVzdGltYXRlZFNpemUsIFBhc3NSZWZQdHI8RGF0YWJhc2VDYWxsYmFjaz4gY3Jl
YXRpb25DYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBSZWZQdHI8RGF0YWJh
c2U+IG9wZW5EYXRhYmFzZShET01XaW5kb3cmLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgdmVyc2lvbiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBl
c3RpbWF0ZWRTaXplLCBSZWZQdHI8RGF0YWJhc2VDYWxsYmFjaz4mJiBjcmVhdGlvbkNhbGxiYWNr
LCBFeGNlcHRpb25Db2RlJik7CiAKLXByaXZhdGU6Ci0gICAgRE9NV2luZG93V2ViRGF0YWJhc2Uo
KSB7IH07Ci0gICAgfkRPTVdpbmRvd1dlYkRhdGFiYXNlKCkgeyB9OworICAgIERPTVdpbmRvd1dl
YkRhdGFiYXNlKCkgPSBkZWxldGU7CisgICAgfkRPTVdpbmRvd1dlYkRhdGFiYXNlKCkgPSBkZWxl
dGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsCmlu
ZGV4IDE1ZWI0MzUxNWFmYmIyYzA2NTBjYWZmMjk2NTcyMzc0MDYzMjc1ODUuLjdhNTM2ZDRkZjI3
Yjc0M2E3NDExZmZhZTBmYzkxNzg2NTVhYzYwYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsCkBA
IC0yNiw2ICsyNiw2IEBACiAKIFsKIF0gcGFydGlhbCBpbnRlcmZhY2UgRE9NV2luZG93IHsKLSAg
ICBbUmFpc2VzRXhjZXB0aW9uXSBEYXRhYmFzZSBvcGVuRGF0YWJhc2UoRE9NU3RyaW5nIG5hbWUs
IERPTVN0cmluZyB2ZXJzaW9uLCBET01TdHJpbmcgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcg
ZXN0aW1hdGVkU2l6ZSwgb3B0aW9uYWwgRGF0YWJhc2VDYWxsYmFjayBjcmVhdGlvbkNhbGxiYWNr
KTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBEYXRhYmFzZSBvcGVuRGF0YWJhc2UoRE9NU3RyaW5n
IG5hbWUsIERPTVN0cmluZyB2ZXJzaW9uLCBET01TdHJpbmcgZGlzcGxheU5hbWUsIHVuc2lnbmVk
IGxvbmcgZXN0aW1hdGVkU2l6ZSwgb3B0aW9uYWwgRGF0YWJhc2VDYWxsYmFjaz8gY3JlYXRpb25D
YWxsYmFjayk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2UuY3BwCmluZGV4IGMwOGI4NjE0MDRiODU4MGE5MDliM2UyOGEzNjQxMTk2ZWUyNGZh
MTUuLjgxM2NhMDQ5MjFlOWYxZTA3MjRiYTU1ZTQyMGRhZTNmMmM2ZGIzZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC01NTQsMTcg
KzU1NCwxNyBAQCB2b2lkIERhdGFiYXNlOjpzY2hlZHVsZVRyYW5zYWN0aW9uKCkKICAgICAgICAg
bV90cmFuc2FjdGlvbkluUHJvZ3Jlc3MgPSBmYWxzZTsKIH0KIAotUGFzc1JlZlB0cjxTUUxUcmFu
c2FjdGlvbkJhY2tlbmQ+IERhdGFiYXNlOjpydW5UcmFuc2FjdGlvbihQYXNzUmVmUHRyPFNRTFRy
YW5zYWN0aW9uPiB0cmFuc2FjdGlvbiwgYm9vbCByZWFkT25seSwgY29uc3QgQ2hhbmdlVmVyc2lv
bkRhdGEqIGRhdGEpCitSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBEYXRhYmFzZTo6cnVu
VHJhbnNhY3Rpb24oUmVmPFNRTFRyYW5zYWN0aW9uPiYmIHRyYW5zYWN0aW9uLCBib29sIHJlYWRP
bmx5LCBjb25zdCBDaGFuZ2VWZXJzaW9uRGF0YSogZGF0YSkKIHsKICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4KTsKICAgICBpZiAoIW1faXNUcmFuc2Fj
dGlvblF1ZXVlRW5hYmxlZCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uV3JhcHBlcj4gd3JhcHBlcjsKICAgICBp
ZiAoZGF0YSkKICAgICAgICAgd3JhcHBlciA9IENoYW5nZVZlcnNpb25XcmFwcGVyOjpjcmVhdGUo
ZGF0YS0+b2xkVmVyc2lvbigpLCBkYXRhLT5uZXdWZXJzaW9uKCkpOwogCi0gICAgUmVmUHRyPFNR
TFRyYW5zYWN0aW9uQmFja2VuZD4gdHJhbnNhY3Rpb25CYWNrZW5kID0gU1FMVHJhbnNhY3Rpb25C
YWNrZW5kOjpjcmVhdGUodGhpcywgdHJhbnNhY3Rpb24sIHdyYXBwZXIsIHJlYWRPbmx5KTsKKyAg
ICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiB0cmFuc2FjdGlvbkJhY2tlbmQgPSBTUUxU
cmFuc2FjdGlvbkJhY2tlbmQ6OmNyZWF0ZSh0aGlzLCBXVEZNb3ZlKHRyYW5zYWN0aW9uKSwgd3Jh
cHBlciwgcmVhZE9ubHkpOwogICAgIG1fdHJhbnNhY3Rpb25RdWV1ZS5hcHBlbmQodHJhbnNhY3Rp
b25CYWNrZW5kKTsKICAgICBpZiAoIW1fdHJhbnNhY3Rpb25JblByb2dyZXNzKQogICAgICAgICBz
Y2hlZHVsZVRyYW5zYWN0aW9uKCk7CkBAIC02MzUsMjIgKzYzNSwyMCBAQCB2b2lkIERhdGFiYXNl
OjptYXJrQXNEZWxldGVkQW5kQ2xvc2UoKQogICAgIHN5bmNocm9uaXplci53YWl0Rm9yVGFza0Nv
bXBsZXRpb24oKTsKIH0KIAotdm9pZCBEYXRhYmFzZTo6Y2hhbmdlVmVyc2lvbihjb25zdCBTdHJp
bmcmIG9sZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiBjYWxsYmFj
aywgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ss
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBz
dWNjZXNzQ2FsbGJhY2spCit2b2lkIERhdGFiYXNlOjpjaGFuZ2VWZXJzaW9uKGNvbnN0IFN0cmlu
ZyYgb2xkVmVyc2lvbiwgY29uc3QgU3RyaW5nJiBuZXdWZXJzaW9uLCBSZWZQdHI8U1FMVHJhbnNh
Y3Rpb25DYWxsYmFjaz4mJiBjYWxsYmFjaywgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxs
YmFjaz4mJiBlcnJvckNhbGxiYWNrLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxs
YmFjaykKIHsKICAgICBDaGFuZ2VWZXJzaW9uRGF0YSBkYXRhKG9sZFZlcnNpb24sIG5ld1ZlcnNp
b24pOwotICAgIHJ1blRyYW5zYWN0aW9uKGNhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBzdWNjZXNz
Q2FsbGJhY2ssIGZhbHNlLCAmZGF0YSk7CisgICAgcnVuVHJhbnNhY3Rpb24oV1RGTW92ZShjYWxs
YmFjayksIFdURk1vdmUoZXJyb3JDYWxsYmFjayksIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwg
ZmFsc2UsICZkYXRhKTsKIH0KIAotdm9pZCBEYXRhYmFzZTo6dHJhbnNhY3Rpb24oUGFzc1JlZlB0
cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiBjYWxsYmFjaywgUGFzc1JlZlB0cjxTUUxUcmFuc2Fj
dGlvbkVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNr
PiBzdWNjZXNzQ2FsbGJhY2spCit2b2lkIERhdGFiYXNlOjp0cmFuc2FjdGlvbihSZWZQdHI8U1FM
VHJhbnNhY3Rpb25DYWxsYmFjaz4mJiBjYWxsYmFjaywgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJy
b3JDYWxsYmFjaz4mJiBlcnJvckNhbGxiYWNrLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nl
c3NDYWxsYmFjaykKIHsKLSAgICBydW5UcmFuc2FjdGlvbihjYWxsYmFjaywgZXJyb3JDYWxsYmFj
aywgc3VjY2Vzc0NhbGxiYWNrLCBmYWxzZSk7CisgICAgcnVuVHJhbnNhY3Rpb24oV1RGTW92ZShj
YWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxsYmFjayksIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNr
KSwgZmFsc2UpOwogfQogCi12b2lkIERhdGFiYXNlOjpyZWFkVHJhbnNhY3Rpb24oUGFzc1JlZlB0
cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiBjYWxsYmFjaywgUGFzc1JlZlB0cjxTUUxUcmFuc2Fj
dGlvbkVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNr
PiBzdWNjZXNzQ2FsbGJhY2spCit2b2lkIERhdGFiYXNlOjpyZWFkVHJhbnNhY3Rpb24oUmVmUHRy
PFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjxTUUxUcmFuc2FjdGlv
bkVycm9yQ2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaywgUmVmUHRyPFZvaWRDYWxsYmFjaz4mJiBz
dWNjZXNzQ2FsbGJhY2spCiB7Ci0gICAgcnVuVHJhbnNhY3Rpb24oY2FsbGJhY2ssIGVycm9yQ2Fs
bGJhY2ssIHN1Y2Nlc3NDYWxsYmFjaywgdHJ1ZSk7CisgICAgcnVuVHJhbnNhY3Rpb24oV1RGTW92
ZShjYWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxsYmFjayksIFdURk1vdmUoc3VjY2Vzc0NhbGxi
YWNrKSwgdHJ1ZSk7CiB9CiAKIFN0cmluZyBEYXRhYmFzZTo6c3RyaW5nSWRlbnRpZmllcigpIGNv
bnN0CkBAIC03MzIsMTEgKzczMCwxMSBAQCB2b2lkIERhdGFiYXNlOjpyZXNldEF1dGhvcml6ZXIo
KQogCiB2b2lkIERhdGFiYXNlOjpydW5UcmFuc2FjdGlvbihSZWZQdHI8U1FMVHJhbnNhY3Rpb25D
YWxsYmFjaz4mJiBjYWxsYmFjaywgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4m
JiBlcnJvckNhbGxiYWNrLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaywg
Ym9vbCByZWFkT25seSwgY29uc3QgQ2hhbmdlVmVyc2lvbkRhdGEqIGNoYW5nZVZlcnNpb25EYXRh
KQogewotICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24gPSBTUUxUcmFuc2Fj
dGlvbjo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShzdWNjZXNzQ2Fs
bGJhY2spLCBlcnJvckNhbGxiYWNrLmNvcHlSZWYoKSwgcmVhZE9ubHkpOworICAgIFJlZjxTUUxU
cmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24gPSBTUUxUcmFuc2FjdGlvbjo6Y3JlYXRlKCp0aGlzLCBX
VEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBlcnJvckNhbGxiYWNr
LmNvcHlSZWYoKSwgcmVhZE9ubHkpOwogCi0gICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2Vu
ZD4gdHJhbnNhY3Rpb25CYWNrZW5kID0gcnVuVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24ucmVsZWFz
ZSgpLCByZWFkT25seSwgY2hhbmdlVmVyc2lvbkRhdGEpOworICAgIFJlZlB0cjxTUUxUcmFuc2Fj
dGlvbkJhY2tlbmQ+IHRyYW5zYWN0aW9uQmFja2VuZCA9IHJ1blRyYW5zYWN0aW9uKFdURk1vdmUo
dHJhbnNhY3Rpb24pLCByZWFkT25seSwgY2hhbmdlVmVyc2lvbkRhdGEpOwogICAgIGlmICghdHJh
bnNhY3Rpb25CYWNrZW5kICYmIGVycm9yQ2FsbGJhY2spIHsKLSAgICAgICAgV1RGOjpSZWZQdHI8
U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrUHJvdGVjdG9yID0gV1RG
TW92ZShlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjaz4gZXJyb3JDYWxsYmFja1Byb3RlY3RvciA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayk7
CiAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soW2Vycm9yQ2FsbGJh
Y2tQcm90ZWN0b3JdKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CiAgICAgICAgICAgICBlcnJv
ckNhbGxiYWNrUHJvdGVjdG9yLT5oYW5kbGVFdmVudChTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9y
OjpVTktOT1dOX0VSUiwgImRhdGFiYXNlIGhhcyBiZWVuIGNsb3NlZCIpLnB0cigpKTsKICAgICAg
ICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmgK
aW5kZXggM2Q0NjZlZjcwYmFiMjk0ZjY4MzJiZjNlYjBhYTFhMWZiNjAzNjEyMi4uZjNhNDc0MDdl
MGRiOTEyODRjZDhlMzZmZWRmOWNkZDQwODgzOWQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAK
ICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbWF4aW11bVNpemUoKSBjb25zdDsKIAotICAgIFBhc3NS
ZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBydW5UcmFuc2FjdGlvbihQYXNzUmVmUHRyPFNR
TFRyYW5zYWN0aW9uPiwgYm9vbCByZWFkT25seSwgY29uc3QgQ2hhbmdlVmVyc2lvbkRhdGEqKTsK
KyAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBydW5UcmFuc2FjdGlvbihSZWY8U1FM
VHJhbnNhY3Rpb24+JiYsIGJvb2wgcmVhZE9ubHksIGNvbnN0IENoYW5nZVZlcnNpb25EYXRhKik7
CiAgICAgdm9pZCBzY2hlZHVsZVRyYW5zYWN0aW9uU3RlcChTUUxUcmFuc2FjdGlvbkJhY2tlbmQq
KTsKICAgICB2b2lkIGluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBsZXRlZCgpOwogCkBAIC03OCwx
MCArNzgsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBEaXJlY3Qgc3VwcG9ydCBmb3IgdGhlIERPTSBB
UEkKICAgICBTdHJpbmcgdmVyc2lvbigpIGNvbnN0OwotICAgIHZvaWQgY2hhbmdlVmVyc2lvbihj
b25zdCBTdHJpbmcmIG9sZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbiwgUGFzc1Jl
ZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiwKLSAgICAgICAgICAgICAgICAgICAgICAgUGFz
c1JlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFZvaWRDYWxs
YmFjaz4gc3VjY2Vzc0NhbGxiYWNrKTsKLSAgICB2b2lkIHRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8
U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNh
bGxiYWNrPiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjayk7Ci0gICAg
dm9pZCByZWFkVHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiwg
UGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFZvaWRD
YWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrKTsKKyAgICB2b2lkIGNoYW5nZVZlcnNpb24oY29uc3Qg
U3RyaW5nJiBvbGRWZXJzaW9uLCBjb25zdCBTdHJpbmcmIG5ld1ZlcnNpb24sIFJlZlB0cjxTUUxU
cmFuc2FjdGlvbkNhbGxiYWNrPiYmLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNr
PiYmLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjayk7CisgICAgdm9pZCB0
cmFuc2FjdGlvbihSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4mJiwgUmVmUHRyPFNRTFRy
YW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4mJiwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mJiBzdWNjZXNz
Q2FsbGJhY2spOworICAgIHZvaWQgcmVhZFRyYW5zYWN0aW9uKFJlZlB0cjxTUUxUcmFuc2FjdGlv
bkNhbGxiYWNrPiYmLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiYmLCBSZWZQ
dHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjayk7CiAKICAgICAvLyBJbnRlcm5hbCBl
bmdpbmUgc3VwcG9ydAogICAgIFN0cmluZyBzdHJpbmdJZGVudGlmaWVyKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaWRsCmluZGV4IGNl
YjNmMGIwMDI5NGYzNGQxMTQ0ZGM3MGFmYTc1ZDBiNDljMTI4OWQuLjhkZjgwNGI2NGYyMTM3ZThi
ZTYzMWZjOTViMTYxNTIyMzhjNTA1MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2UuaWRsCkBAIC0yOCw4ICsyOCw4IEBACiAKIGludGVyZmFjZSBE
YXRhYmFzZSB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZXJzaW9uOwotICAg
IHZvaWQgY2hhbmdlVmVyc2lvbihET01TdHJpbmcgb2xkVmVyc2lvbiwgRE9NU3RyaW5nIG5ld1Zl
cnNpb24sIG9wdGlvbmFsIFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIG9wdGlvbmFs
IFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrLCBvcHRpb25hbCBWb2lk
Q2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrKTsKLSAgICB2b2lkIHRyYW5zYWN0aW9uKFNRTFRyYW5z
YWN0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIG9wdGlvbmFsIFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxs
YmFjayBlcnJvckNhbGxiYWNrLCBvcHRpb25hbCBWb2lkQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNr
KTsKLSAgICB2b2lkIHJlYWRUcmFuc2FjdGlvbihTUUxUcmFuc2FjdGlvbkNhbGxiYWNrIGNhbGxi
YWNrLCBvcHRpb25hbCBTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjaywg
b3B0aW9uYWwgVm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjayk7CisgICAgdm9pZCBjaGFuZ2VW
ZXJzaW9uKERPTVN0cmluZyBvbGRWZXJzaW9uLCBET01TdHJpbmcgbmV3VmVyc2lvbiwgb3B0aW9u
YWwgU1FMVHJhbnNhY3Rpb25DYWxsYmFjaz8gY2FsbGJhY2ssIG9wdGlvbmFsIFNRTFRyYW5zYWN0
aW9uRXJyb3JDYWxsYmFjaz8gZXJyb3JDYWxsYmFjaywgb3B0aW9uYWwgVm9pZENhbGxiYWNrPyBz
dWNjZXNzQ2FsbGJhY2spOworICAgIHZvaWQgdHJhbnNhY3Rpb24oU1FMVHJhbnNhY3Rpb25DYWxs
YmFjayBjYWxsYmFjaywgb3B0aW9uYWwgU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPyBlcnJv
ckNhbGxiYWNrLCBvcHRpb25hbCBWb2lkQ2FsbGJhY2s/IHN1Y2Nlc3NDYWxsYmFjayk7CisgICAg
dm9pZCByZWFkVHJhbnNhY3Rpb24oU1FMVHJhbnNhY3Rpb25DYWxsYmFjayBjYWxsYmFjaywgb3B0
aW9uYWwgU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPyBlcnJvckNhbGxiYWNrLCBvcHRpb25h
bCBWb2lkQ2FsbGJhY2s/IHN1Y2Nlc3NDYWxsYmFjayk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaWRsCmluZGV4IDUx
NmY2OTZjOGM5ZWI1ZGE1YTI4NTdjYmQyYzZmODQ5MjkyMTQyM2UuLjIyNDhjOTQxMDRkMjAyMWNk
ZjUxMWI3MDMxNjJkYmIxZjU3NzAzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaWRsCkBAIC0zMSw2ICszMSw2IEBACiBd
IGludGVyZmFjZSBTUUxUcmFuc2FjdGlvbiB7CiAgICAgW0N1c3RvbV0gdm9pZCBleGVjdXRlU3Fs
KERPTVN0cmluZyBzcWxTdGF0ZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9i
amVjdEFycmF5IGFyZ3VtZW50cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9u
YWwgU1FMU3RhdGVtZW50Q2FsbGJhY2sgY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9wdGlvbmFsIFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFNRTFN0YXRlbWVudENhbGxi
YWNrPyBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgU1FM
U3RhdGVtZW50RXJyb3JDYWxsYmFjaz8gZXJyb3JDYWxsYmFjayk7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAzMjlh
YzYzM2E5MWIwZDk1ZGFlOTA2YzU0NDEyZjg5NzZiYTRjODU4Li41MThjNDZkMTkzZWYxNjgzZjcx
ZTkyNmIxYzFiOWNmOTVhZTc0YzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzM3OCw3ICszMzc4LDYgQEAgc3ViIENh
blVzZVdURk9wdGlvbmFsRm9yUGFyYW1ldGVyCiAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIHByb2dy
ZXNzaXZlbHkgc3RvcCBibGFja2xpc3RpbmcgZWFjaCB0eXBlIGJlbG93CiAgICAgIyBhbmQgZXZl
bnR1YWxseSBnZXQgcmlkIG9mIHRoaXMgZnVuY3Rpb24gZW50aXJlbHkuCiAgICAgcmV0dXJuIDAg
aWYgJHBhcmFtZXRlci0+aXNWYXJpYWRpYzsKLSAgICByZXR1cm4gMCBpZiAkY29kZUdlbmVyYXRv
ci0+SXNDYWxsYmFja0ludGVyZmFjZSgkdHlwZSk7CiAgICAgcmV0dXJuIDAgaWYgJGNvZGVHZW5l
cmF0b3ItPklzRW51bVR5cGUoJHR5cGUpOwogCiAgICAgcmV0dXJuIDE7CkBAIC0zNDcwLDcgKzM0
NjksNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAgICAgbXkgJGFyZ1R5cGUg
PSAkcGFyYW1ldGVyLT50eXBlOwogICAgICAgICBteSAkb3B0aW9uYWwgPSAkcGFyYW1ldGVyLT5p
c09wdGlvbmFsOwogCi0gICAgICAgIGRpZSAiT3B0aW9uYWwgcGFyYW1ldGVycyBvZiBub24tbnVs
bGFibGUgd3JhcHBlciB0eXBlcyBhcmUgbm90IHN1cHBvcnRlZCIgaWYgJG9wdGlvbmFsICYmICEk
cGFyYW1ldGVyLT5pc051bGxhYmxlICYmICRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCRh
cmdUeXBlKSAmJiAhJGNvZGVHZW5lcmF0b3ItPklzQ2FsbGJhY2tJbnRlcmZhY2UoJGFyZ1R5cGUp
OworICAgICAgICBkaWUgIk9wdGlvbmFsIHBhcmFtZXRlcnMgb2Ygbm9uLW51bGxhYmxlIHdyYXBw
ZXIgdHlwZXMgYXJlIG5vdCBzdXBwb3J0ZWQiIGlmICRvcHRpb25hbCAmJiAhJHBhcmFtZXRlci0+
aXNOdWxsYWJsZSAmJiAkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkYXJnVHlwZSk7CiAK
ICAgICAgICAgaWYgKCRvcHRpb25hbCAmJiAhZGVmaW5lZCgkcGFyYW1ldGVyLT5kZWZhdWx0KSkg
ewogICAgICAgICAgICAgIyBBcyBwZXIgV2ViIElETCwgb3B0aW9uYWwgZGljdGlvbmFyeSBwYXJh
bWV0ZXJzIGFyZSBhbHdheXMgY29uc2lkZXJlZCB0byBoYXZlIGEgZGVmYXVsdCB2YWx1ZSBvZiBh
biBlbXB0eSBkaWN0aW9uYXJ5LCB1bmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZC4KQEAgLTM0ODUs
MTAgKzM0ODQsMTMgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICAgICAj
IEFzIHBlciBXZWIgSURMLCBwYXNzaW5nIHVuZGVmaW5lZCBmb3IgYSBudWxsYWJsZSBwYXJhbWV0
ZXIgaXMgdHJlYXRlZCBhcyBudWxsLiBUaGVyZWZvcmUsIHVzZSBudWxsIGFzCiAgICAgICAgICAg
ICAjIGRlZmF1bHQgdmFsdWUgZm9yIG51bGxhYmxlIHBhcmFtZXRlcnMgdW5sZXNzIG90aGVyd2lz
ZSBzcGVjaWZpZWQuCiAgICAgICAgICAgICAkcGFyYW1ldGVyLT5kZWZhdWx0KCJudWxsIikgaWYg
JHBhcmFtZXRlci0+aXNOdWxsYWJsZTsKKworICAgICAgICAgICAgIyBGb3IgY2FsbGJhY2sgcGFy
YW1ldGVycywgdGhlIGdlbmVyYXRlZCBiaW5kaW5ncyB0cmVhdCB1bmRlZmluZWQgYXMgbnVsbCwg
c28gdXNlIG51bGwgYXMgaW1wbGljaXQgZGVmYXVsdCB2YWx1ZS4KKyAgICAgICAgICAgICRwYXJh
bWV0ZXItPmRlZmF1bHQoIm51bGwiKSBpZiAkY29kZUdlbmVyYXRvci0+SXNDYWxsYmFja0ludGVy
ZmFjZSgkYXJnVHlwZSk7CiAgICAgICAgIH0KIAogICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQg
ZXZlbnR1YWxseSBzdG9wIGdlbmVyYXRpbmcgYW55IGVhcmx5IGNhbGxzLCBhbmQgaW5zdGVhZCB1
c2UgZWl0aGVyIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlcyBvciBXVEY6Ok9wdGlvbmFsPD4uCi0g
ICAgICAgIGlmICgkb3B0aW9uYWwgJiYgIWRlZmluZWQoJHBhcmFtZXRlci0+ZGVmYXVsdCkgJiYg
IUNhblVzZVdURk9wdGlvbmFsRm9yUGFyYW1ldGVyKCRwYXJhbWV0ZXIpICYmICEkY29kZUdlbmVy
YXRvci0+SXNDYWxsYmFja0ludGVyZmFjZSgkYXJnVHlwZSkpIHsKKyAgICAgICAgaWYgKCRvcHRp
b25hbCAmJiAhZGVmaW5lZCgkcGFyYW1ldGVyLT5kZWZhdWx0KSAmJiAhQ2FuVXNlV1RGT3B0aW9u
YWxGb3JQYXJhbWV0ZXIoJHBhcmFtZXRlcikpIHsKICAgICAgICAgICAgICMgR2VuZXJhdGUgZWFy
bHkgY2FsbCBpZiB0aGVyZSBhcmUgZW5vdWdoIHBhcmFtZXRlcnMuCiAgICAgICAgICAgICBpZiAo
ISRoYXNPcHRpb25hbEFyZ3VtZW50cykgewogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIlxuICAgIHNpemVfdCBhcmdzQ291bnQgPSBzdGF0ZS0+YXJndW1lbnRDb3VudCgpO1xu
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGwKaW5kZXggY2RjMGQxNGMzNmNhNjUzYzVjYzk2ODQ3ZmQ0Y2EzMWVlYWUzNGU0ZC4uNTg4OWYz
ZTE5ZTk0YTc5ZWI0NzBiYjFmNDRiY2NjYTA1MWFiNmNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtMjA4LDE1ICsyMDgsMTUg
QEAgZW51bSBfb3B0aW9uYWwgeyAiIiwgIk9wdGlvbmFsVmFsdWUxIiwgIk9wdGlvbmFsVmFsdWUy
IiwgIk9wdGlvbmFsVmFsdWUzIiB9OwogICAgIC8vIENhbGxiYWNrIGludGVyZmFjZSBwYXJhbWV0
ZXJzLgogICAgIHZvaWQgICAgbWV0aG9kV2l0aENhbGxiYWNrQXJnKFRlc3RDYWxsYmFjayBjYWxs
YmFjayk7CiAgICAgdm9pZCAgICBtZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0Fy
Zyhsb25nIG5vbkNhbGxiYWNrLCBUZXN0Q2FsbGJhY2sgY2FsbGJhY2spOwotICAgIHZvaWQgICAg
bWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcob3B0aW9uYWwgVGVzdENhbGxiYWNrIGNh
bGxiYWNrKTsKKyAgICB2b2lkICAgIG1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKG9w
dGlvbmFsIFRlc3RDYWxsYmFjaz8gY2FsbGJhY2spOwogCiAgICAgLy8gQ2FsbGJhY2sgZnVuY3Rp
b24gcGFyYW1ldGVycy4KICAgICB2b2lkICAgIG1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQXJn
KFRlc3RDYWxsYmFja0Z1bmN0aW9uIGNhbGxiYWNrKTsKICAgICB2b2lkICAgIG1ldGhvZFdpdGhO
b25DYWxsYmFja0FyZ0FuZENhbGxiYWNrRnVuY3Rpb25BcmcobG9uZyBub25DYWxsYmFjaywgVGVz
dENhbGxiYWNrRnVuY3Rpb24gY2FsbGJhY2spOwotICAgIHZvaWQgICAgbWV0aG9kV2l0aENhbGxi
YWNrRnVuY3Rpb25BbmRPcHRpb25hbEFyZyhvcHRpb25hbCBUZXN0Q2FsbGJhY2tGdW5jdGlvbiBj
YWxsYmFjayk7CisgICAgdm9pZCAgICBtZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFuZE9wdGlv
bmFsQXJnKG9wdGlvbmFsIFRlc3RDYWxsYmFja0Z1bmN0aW9uPyBjYWxsYmFjayk7CiAKICAgICAv
LyBzdGF0aWMgbWV0aG9kcyB3aXRoICdDYWxsYmFjaycgZXh0ZW5kZWQgYXR0cmlidXRlCi0gICAg
c3RhdGljIHZvaWQgICAgc3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcob3B0
aW9uYWwgVGVzdENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICBzdGF0aWMgdm9pZCAgICBzdGF0aWNN
ZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyhvcHRpb25hbCBUZXN0Q2FsbGJhY2s/IGNh
bGxiYWNrKTsKICAgICBzdGF0aWMgdm9pZCAgICBzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmco
VGVzdENhbGxiYWNrIGNhbGxiYWNrKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFu
c2Zlckl0ZW0uaAppbmRleCAxMWY1OGU5NzkyYmUxYTI1MmE2MzY2MTI3ZDljMzdjMzVmOTQ5NDA1
Li40NjQ4YzJhNjdjYTgwNDdjMDNhYTViNzUzZmRkNjkwMDEwM2E0ZGMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgU3RyaW5nIGtpbmQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgdHlwZSgp
IGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0
cmluZ0NhbGxiYWNrPikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhS
ZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8QmxvYj4gZ2V0QXNGaWxlKCkgY29uc3QgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rh
dGFUcmFuc2Zlckl0ZW0uaWRsCmluZGV4IDhkZjk3NTkxYmYwODYyNDBhMDVmNDZmNTRmMGZkMDZi
ODU5NzhjY2UuLmZiNzIyYjhjNjNhNTRkNGZlMGViMjU5Yjk1NjNkMDBjNTg1OTVmNTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKQEAgLTM2LDcgKzM2LDcgQEAKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGtpbmQ7CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyB0eXBlOwogCi0gICAgdm9pZCBnZXRBc1N0cmluZyhvcHRpb25hbCBTdHJp
bmdDYWxsYmFjayBjYWxsYmFjayk7CisgICAgdm9pZCBnZXRBc1N0cmluZyhvcHRpb25hbCBTdHJp
bmdDYWxsYmFjaz8gY2FsbGJhY2spOwogICAgIEJsb2IgZ2V0QXNGaWxlKCk7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlv
bkNsaWVudC5oCmluZGV4IDNkNWE0NWEyZmMwYTUyZDI4Y2MxMzk5YmM1ZDcxMDJmYzNiN2RjMTQu
LmQ4N2FhMTQzZDQ5N2IwMjFhNDFhMzNlOTM2YzQ5OTY1ZjIzMGE1YzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVu
dC5oCkBAIC02MCwxMCArNjAsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIG5vdGlmaWNhdGlvbk9i
amVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmljYXRpb24qKSBvdmVycmlkZTsKICAgICB2b2lk
IG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKICNpZiBFTkFCTEUo
TEVHQUNZX05PVElGSUNBVElPTlMpCi0gICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJh
Y2s+KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiYmKSBvdmVy
cmlkZTsKICNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIHZvaWQgcmVxdWVz
dFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
V2ViQ29yZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPikgb3ZlcnJpZGU7CisgICAg
dm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJikgb3ZlcnJp
ZGU7CiAjZW5kaWYKICAgICB2b2lkIGNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikgb3ZlcnJpZGUgeyB9CiAgICAgYm9vbCBoYXNQZW5k
aW5nUGVybWlzc2lvblJlcXVlc3RzKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBj
b25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQppbmRleCBhZGU5M2QwYTc0MTk3ZTFlNTA5
ODk5OWFhYTNjMzkzMGMwZDljNmUzLi5mNTUyOThjZmFiMzAxMDFmNmM5M2U4YjVmMjg4NWVhOTg0
ZTRkMjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJO
b3RpZmljYXRpb25DbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBXZWJO
b3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFcKICNlbmRpZgogCiAjaWYgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05T
KQotdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxsYmFj
aykKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIGNhbGxiYWNr
KQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICBXZWJOb3RpZmljYXRp
b25Qb2xpY3lMaXN0ZW5lciAqbGlzdGVuZXIgPSBbW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3Rl
bmVyIGFsbG9jXSBpbml0V2l0aFZvaWRDYWxsYmFjazpjYWxsYmFja107CkBAIC0yMDQsNyArMjA0
LDcgQEAgYm9vbCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Omhhc1BlbmRpbmdQZXJtaXNzaW9uUmVx
dWVzdHMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKIH0KIAogI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKQotdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrPiBjYWxsYmFjaykKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1
ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8Tm90
aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmIGNhbGxiYWNrKQogewogICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciAq
bGlzdGVuZXIgPSBbW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0
aENhbGxiYWNrOmNhbGxiYWNrXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3BwIGIvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5j
cHAKaW5kZXggMDJjM2M1OGUyNjgwNjc2YzA5YmQ4YmYyN2U3ZmFjZmRlNTEyZDhiZS4uMTRhNzA1
OWQ1OTA1OTZkNjgyZDljZDQ4NmUyZjM1NjAwZGRjOTNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlm
aWNhdGlvbnNEZWxlZ2F0ZS5jcHAKQEAgLTE3MCwxNCArMTcwLDE0IEBAIHZvaWQgV2ViRGVza3Rv
cE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6bm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgp
CiB7CiB9CiAKLXZvaWQgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6cmVxdWVzdFBl
cm1pc3Npb24oU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+
KQordm9pZCBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpyZXF1ZXN0UGVybWlzc2lv
bihTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmKQogewogICAg
IEJTdHJpbmcgb3JnKG9yaWdpbi0+dG9TdHJpbmcoKSk7CiAgICAgaWYgKGhhc05vdGlmaWNhdGlv
bkRlbGVnYXRlKCkpCiAgICAgICAgIG5vdGlmaWNhdGlvbkRlbGVnYXRlKCktPnJlcXVlc3ROb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKG9yZyk7CiB9CiAKLXZvaWQgV2ViRGVza3RvcE5vdGlmaWNhdGlv
bnNEZWxlZ2F0ZTo6cmVxdWVzdFBlcm1pc3Npb24oU2VjdXJpdHlPcmlnaW4qLCBQYXNzUmVmUHRy
PE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4pCit2b2lkIFdlYkRlc2t0b3BOb3RpZmlj
YXRpb25zRGVsZWdhdGU6OnJlcXVlc3RQZXJtaXNzaW9uKFNlY3VyaXR5T3JpZ2luKiwgUmVmUHRy
PE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNE
ZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5v
dGlmaWNhdGlvbnNEZWxlZ2F0ZS5oCmluZGV4IGI5ZTQ0NzhhMDRhYzYwNGE0ODNmOThiM2U1NzI0
OWIyMTlkNDllZTguLjI4NzhhOTgyMmU5M2VjN2U2NDFlNDUyNGRkMDRjZDFjYTUwZTJhYTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3Rp
ZmljYXRpb25zRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmgKQEAgLTUxLDEwICs1MSwxMCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJD
b3JlOjpOb3RpZmljYXRpb24qIG9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlv
bkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKICNpZiBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMp
Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJhY2s+KTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBSZWZQdHI8V2Vi
Q29yZTo6Vm9pZENhbGxiYWNrPiYmKTsKICNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
Pik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luKiwgUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4m
Jik7CiAjZW5kaWYKICAgICBib29sIGhhc1BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmNwcAppbmRleCAxNWE1YmJhYTllYmI5YTM5MjlhNDc5NTc3NmJmNmNjNTNi
NjhmNDUyLi44MWZmMWIxYjc1ZTBmZjJmYjA0Yjc0ZjBmMDc1ZDY0NzFkYTMzODJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNw
cApAQCAtNjksNyArNjksNyBAQCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYQogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLXZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgUGFzc1JlZlB0
cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+IGNhbGxiYWNrKQordm9pZCBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChTZWN1cml0eU9yaWdp
biogb3JpZ2luLCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmIGNhbGxi
YWNrKQogewogICAgIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBwZXJtaXNzaW9uID0g
cGVybWlzc2lvbkxldmVsKG9yaWdpbik7CiAgICAgaWYgKHBlcm1pc3Npb24gIT0gTm90aWZpY2F0
aW9uQ2xpZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZCkgewpAQCAtODEsMTMgKzgxLDEzIEBAIHZv
aWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoU2Vj
dXJpdHlPcmlnaW4qIG9yaWdpbiwKICAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVJl
cXVlc3RJRCgpOwogICAgIG1fb3JpZ2luVG9JRE1hcC5zZXQob3JpZ2luLCByZXF1ZXN0SUQpOwog
ICAgIG1faWRUb09yaWdpbk1hcC5zZXQocmVxdWVzdElELCBvcmlnaW4pOwotICAgIG1faWRUb0Nh
bGxiYWNrTWFwLnNldChyZXF1ZXN0SUQsIGNhbGxiYWNrKTsKKyAgICBtX2lkVG9DYWxsYmFja01h
cC5zZXQocmVxdWVzdElELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgbV9wYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHJlcXVl
c3RJRCwgb3JpZ2luLT50b1N0cmluZygpKSk7CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShMRUdB
Q1lfTk9USUZJQ0FUSU9OUykKLXZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyOjpzdGFydFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrKQordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBSZWZQ
dHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiYmIGNhbGxiYWNrKQogewogICAgIE5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbiBwZXJtaXNzaW9uID0gcGVybWlzc2lvbkxldmVsKG9yaWdpbik7
CiAgICAgaWYgKHBlcm1pc3Npb24gIT0gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uTm90
QWxsb3dlZCkgewpAQCAtOTksNyArOTksNyBAQCB2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sCiAgICAg
dWludDY0X3QgcmVxdWVzdElEID0gZ2VuZXJhdGVSZXF1ZXN0SUQoKTsKICAgICBtX29yaWdpblRv
SURNYXAuc2V0KG9yaWdpbiwgcmVxdWVzdElEKTsKICAgICBtX2lkVG9PcmlnaW5NYXAuc2V0KHJl
cXVlc3RJRCwgb3JpZ2luKTsKLSAgICBtX2lkVG9Wb2lkQ2FsbGJhY2tNYXAuc2V0KHJlcXVlc3RJ
RCwgY2FsbGJhY2spOworICAgIG1faWRUb1ZvaWRDYWxsYmFja01hcC5zZXQocmVxdWVzdElELCBX
VEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHJlcXVlc3RJRCwgb3JpZ2luLT50b1N0
cmluZygpKSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuaAppbmRleCA3MDgyN2Q2MGJkNDUxNDgzMWJhODcwZTVjNzIz
ZjJjZjNjZmY0YzJkLi44NmU0Y2ZjMjY0YzIxNzM3YWMwYWM3ZGVhZDhhOTY2MGE0NTZmYzI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5oCkBAIC01MCwxMCArNTAsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8Tm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOwogCiAjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCi0gICAgdm9pZCBzdGFydFJlcXVlc3QoV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4qLCBQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxs
YmFjaz4pOworICAgIHZvaWQgc3RhcnRSZXF1ZXN0KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwg
UmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJik7CiAjZW5k
aWYKICNpZiBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi0gICAgdm9pZCBzdGFydFJlcXVl
c3QoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxs
YmFjaz4pOworICAgIHZvaWQgc3RhcnRSZXF1ZXN0KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwg
UmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4mJik7CiAjZW5kaWYKICAgICB2b2lkIGNhbmNl
bFJlcXVlc3QoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKTsKICAgICBib29sIGhhc1BlbmRpbmdQ
ZXJtaXNzaW9uUmVxdWVzdHMoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZp
Y2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAppbmRleCBjN2Q4MjFhMTFlZjBmMDhjNDgzODY1
MDU5NWI3OTAyMjg1NjQ3NmI3Li4yM2ExNDAxNzcxMTE0NTdiMzAzNGRkNDNmNjU3NjZkZTUxYWVl
YWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCkBAIC03MywxNiArNzMs
MTYgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbkNvbnRyb2xsZXJE
ZXN0cm95ZWQoKQogfQogCiAjaWYgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotdm9pZCBX
ZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiBjYWxsYmFj
aykKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiYm
IGNhbGxiYWNrKQogewotICAgIG1fcGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKCktPnN0YXJ0UmVxdWVzdChjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBjYWxsYmFj
ayk7CisgICAgbV9wYWdlLT5ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+
c3RhcnRSZXF1ZXN0KGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUoY2FsbGJhY2sp
KTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi12b2lkIFdlYk5vdGlm
aWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+IGNhbGxi
YWNrKQordm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9u
Q2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7Ci0gICAgbV9wYWdlLT5ub3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIoKS0+c3RhcnRSZXF1ZXN0KGNvbnRleHQtPnNlY3VyaXR5T3JpZ2lu
KCksIGNhbGxiYWNrKTsKKyAgICBtX3BhZ2UtPm5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcigpLT5zdGFydFJlcXVlc3QoY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92
ZShjYWxsYmFjaykpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5o
CmluZGV4IDFkZjI1NWU2MmU2M2RmY2IwM2YyZjE2YmEwOTBhNzljZTkxZmJhMWMuLjliYzgwZDFl
ZTVmNTBhY2NjNjgzNmI5MzZlNDMzMjVhNTcwNGUxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRp
b25DbGllbnQuaApAQCAtNTIsMTAgKzUyLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBub3RpZmlj
YXRpb25PYmplY3REZXN0cm95ZWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBub3RpZmljYXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAjaWYg
RU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24o
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9p
ZENhbGxiYWNrPikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4m
Jikgb3ZlcnJpZGU7CiAjZW5kaWYKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICB2b2lk
IHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNz
UmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4pIG92ZXJyaWRl
OworICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYp
IG92ZXJyaWRlOwogI2VuZGlmCiAgICAgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24o
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwogICAgIGJvb2wgaGFz
UGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
KikgY29uc3Qgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>